Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Linux

Journal Journal: Linux: It Doesn't Work (TM) 3

OK, so I decide it's about time to take a look at the Linux desktop offerings again. It's been a while, so I reboot into my Linux system and very quickly discover a problem:

My mouse doesn't work any more. That's odd, because I haven't replaced it since I first installed the system, and it's a standard HID compliant mouse. My USB keyboard seems to be working fine, so I jump over to another virtual terminal and start attempting to fix it.

Well, I succeed in getting X to lock up hard when I restart it. OK, so I can't use the keyboard anymore. So I press the ATX power button in the hopes that Linux would be intelligent enough to trap this interupt and shut down the system cleanly. Nope: it just immediately powers off.

Oh well. So I continue mucking around with the configuration file. I still haven't gotten it to work. There's apparently no "auto-detect" option either - I'm expected to configure my mouse by hand. Uh, right. This is 2004. There's no excuse for me to have to configure an HID complaint mouse. Period.

For comparison, the installation proceedure to install the mouse under Windows 98+ (note: also works with MacOS since like 8 or so):

  1. Plug the mouse into a free USB port.

The same proceedure under Linux:

  1. Reconfigure your kernel with USB support and HID mouse support. Hopefully your distro already did this for you - if it didn't, it's time for a new one.
  2. Plug the mouse into a free USB port.
  3. Make wild-ass guesses as to where in /dev that mouse is now going to show up.
  4. Make wild-ass guesses as to what protocol XFree thinks an HID-compliant USB mouse is, since "auto" doesn't work and the documentation won't tell you.
  5. Hard-crash your system when you guess wrong.
  6. Restart, fsck, and make more wild-ass guesses.
  7. Corrupt your root file system, give up, and realize that Windows XP offers a far superior desktop experience where plugging in an HID-compliant device just works.

It's a USB mouse! It's worked in Windows since like 1997! It's not rocket science!

Not only that, but there's no reason I should even have to tell X about my mouse. It's an HID USB mouse - the system should be able to find it and use it with no user interaction - that's the entire point behind HID USB devices! You plug them in and the computer starts accepting input from them - what a concept.

I shouldn't need special drivers. I shouldn't need to configure X to recognize a USB mouse. I can understand if I'm using some random PS/2 mouse that uses a non-standard configuration, but it's a freaking HID-compliant mouse!

So, anyway, I never got to actually use any of the new desktop programs (since, apparently, they haven't bothered with something minor like keyboard interaction), so I have no idea if a working Linux desktop compares to a Windows desktop.

Of course, the fact that to get a USB mouse to work involves editting a random configuration file in /etc means it can't have come that far. It's "minor" things like this that convince me that Linux is never going to succeed on the desktop.

(For the pedantic: note that I cannot confirm that this wasn't really a problem with the way the Linux kernel itself handles USB. It really could be a true "Linux problem" - a problem with the Linux kernel itself.)

User Journal

Journal Journal: Get Me To Subscribe... Make Slashdot Look Nice! 1

You know what would get me to subscribe to Slashdot?

If Slashdot hired a site designer to fix the horrendous look and color scheme that Slashdot currently uses. It's actually painful. I've even had a dream about Slashdot using a nice new design, but alas, it never actually happened...

No one uses Netscape 4 anymore. Everyone has access to a better browser than that. We have Opera and Mozilla/Firebird, as well as everyone's favorite, Internet Explorer. Move into the modern web, please, Slashdot, and create a nice, visually attractive site that I don't feel the need to hide every five minutes to allow my eyes some time to rest.

Please, Slashdot, please... fix your design.

Although on a serious note, give us something more than just "ad free Slashdot" for subscribing. Honestly, I don't care about the ads. I don't really notice them anymore. Sometimes I actually am interested in the ThinkGeek ones (although I have yet to actually buy something). The *? Lame. Being able to read stories before they're "posted"? Not enough. (And limiting comments to just my friend list? No one reads this anyway, why would I want to do that?!)

Start a monthly subscription to a "nice" version of Slashdot, and then maybe, just maybe, I'll consider subscribing. As it is, there's really no reason for me to subscribe. Give a monthly subscription for a few bucks with actual reasons to subscribe (a Slashdot e-mail address, access to "special content," added functionality in the posts, infinite mod points in my own journal, anything), and then maybe I'll think about subscribing. As it is, I just don't see a reason to.

Oh, and here's an idea: stop logging me out every five page views. Fix that, and maybe I'll subscribe. I almost lost this journal entry thanks to that.

Role Playing (Games)

Journal Journal: Final Fantasy XI PC First Impressions - It Works Now

OK, I start off on a sour note by trying to install off the FFXI disc and not the PlayOnline disc first. Oh well, easy fix - my bad, I didn't read the install instructions.

So I install PlayOnline and start the registration process. I'm most of the way through, and then the program crashes. Why? Well, because I hit ALT-TAB to view another program. OK, so I can't do that. Never mind that any modern DirectX game since DirectX 7 was released should be able to accept losing the graphics context.

After completely the registration process - a second time - and now I can finally start to try and play Final Fantasy XI. OK - it needs to "update" - kinda strange for a game that's been out all of three days, but whatever. I suppose things could have changed since it was RTM. It starts scanning through all 7,200 files, and after ten minutes or so starts the two hour download for all the updated files.

After an hour and a half, I discover that the download has failed part way through. So I restart it, and it has to scan all 7,200 files again. After another ten minutes or so, it continues where it left off, downloads three files, and fails again. Third times the charm, though - it makes it through the remaining 150 files, and finally starts "installing" the update.

So, three hours after I installed the game, I can finally play it. Ignoring the efforts that I made to get onto a specific server, which was my own stupid efforts, I finally get to start playing.

And the fog's backwards. Seriously - everthing near me is grey. I can't see anything except buildings that are far away. Nothing. After fiddling with graphics options for a couple of hours, I give up. (Not to mention the time I accidently logged off by having the gaul to hit the Windows key, which crashed the program because it lost full-screen mode. Give me a break.)

So here I am. I can't play the game because the world is just a giant grey screen with my character in the middle. I go online looking for help, and can't find any. The support is no help. So I have no idea what's wrong. The FFXI benchmark runs fine on my system - the high resolution is a little choppy, but acceptable for a movie (although not for game playing).

If anyone can tell me how to fix this, I'd love to know. Otherwise I just blew $50 and am 30 days away from blowing $14/month.

This is with a GeForce FX 5600 on a Windows XP system, if that matters to anyone. Buyer beware...

Update November 2: Disabling Bump Mapping fixed the fog issues (uh, ok, whatever), and allowed me to actually play the game for all of a minute before my computer crashed. *grumble*

Update November 11: Well, it hasn't been crashing since, and it seems to be a fun game. I'll just have to wait and see...

Update February 14: I've been really bad at updating this - I've been happily playing FFXI for the past four months and haven't updated it in ages. No more crashes - I dunno why.

The Internet

Journal Journal: The Problem with BitTorrent 7

If you've been reading Slashdot for any length of time, you'll have run across mentions of BitTorrent, a P2P content distribution system. Basically, it's a method of spreading the bandwidth allocation across multiple clients.

This is all well and good - BitTorrent is very useful to a content distributer since it moves bandwidth restrictions off of their server and on to those who want the file. It allows people to help share the burden of distributing something.

Unfortunately, BitTorrent is a little too good at utilizing clients bandwidth. In fact, it quite happily takes up all the bandwidth that it can. Since BitTorrent is an "always on" system (since it does uploads/downloads at the same time) it can easily completely fill up an Internet connection up to the bandwidth available on most PCs. Since most new PCs and modern networks use the 100Mbit/s standard, this makes it quite possible for a single BitTorrent user to completely flood most Internet connections.

The average broadband user has an internet connection of around 1MBit/s if they're lucky. Many larger sites (like educational institutions and buisnesses) will have connections with larger pipes, some of which may exceed 100MBit/s, but even if a site has a 300MBit/s connection to the Internet at large all that means is that three BitTorrent users can completely flood that connection. And with sites that require more bandwidth, more users can be expected, easily reaching the critical mass required to completely flood the local network.

To state it simply, BitTorrent is a bandwidth hog just like most other P2P services. And because of this, many sites have found it necessary to block BitTorrent to ensure bandwidth for other uses. (Blocking BitTorrent is fairly simple - you only need to block connections to the tracker, and then the system cannot connect to peers. The site I'm at blocks BitTorrent connections to/from peers.)

This defeats BitTorrent's purpose - actually making it cause the problem it was supposed to solve. (BitTorrent was supposed to allow a server to survive many users wanting the same file - but it instead swamps the local network, acting as an effective DDOS system against all other users on the network.)

The solution can be stated simply: BitTorrent needs to allow throttling. This is not an easy task, a router would need a software update to allow "intelligent" throttling of BitTorrent connections to a reasonable percentage of total bandwidth usage. If it were possible to simply tell BitTorrent that it cannot exceed a given download rate for a given network, then it could be safely unblocked without worrying about it flooding the network. (A given client can set a bandwidth cap for themselves - the problem is forcing all users on a network to set a reasonable cap. Some user will likely decide to remove such a restriction; other users might not know about the restriction when they start using BitTorrent for the first time.)

A better plan then might be to set up a "proxy" for a given network, creating a server on the network edge that handles BitTorrent connections out to the Internet and throttles them to a reasonable amount but encourages peers within the local network to utilize each other and not the Internet link. (This still has the problem of flooding the internal network, but bandwidth on an internal network is usually cheaper than to the Internet at large. This problem can be solved using internal infrastructure.)

The proxy solution is probably the best solution if it can do so transparently. This allows internal connections to remain at full speed and external connections not to flood the system. (At the very least, it creates a "choke point" where BitTorrent connections cannot progress beyond the bandwidth alloted to the proxy.) It also prevents clients from finding ways of circumventing controls on the network, since they are automatically routed through the proxy regardless of their actions.

There is another problem, though: the BitTorrent tracker sends "random" peers back to the client. For the proxy to work optimally, it needs to know about all clients on the network currently linked to a given tracker. This can probably be solved as well, given some sort of smart proxy.

BitTorrent is a worthy project and has a good goal. It is unfortunate that it has an unintended side effect of flooding the local network, and this problem needs solving in some fashion. If it can be done through the client, that would be great. However, unscrupulous people likely would try and maximize the bandwidth they receive, so a solution would most likely need to be forced upon all users so that all clients must obey the restrictions. If this problem is not solved, though, more and more sites will find it necessary to block BitTorrent to prevent their networks from being flooded by only a few computers.

Linux

Journal Journal: Why I Switched Back to Windows from Linux 8

About three years ago, I made the switch to Linux off of Windows 98. And after figuring out how to get the system up and running, I was finally able to use Linux as my primary operating system. The only time I would return to Windows 98 was if I wanted to play a game that wouldn't run in Wine (or wasn't playable in Wine).

And life was good, I used Evolution for e-mail when it finally stabalized, and used Mozilla for my web-browser. The platform was stable, and would do anything I wanted it to do. But something happened. Windows 2000 was released, and I upgraded to it (being a student at a college with a campus license agreement means I basically paid for it already). I still used Linux for my desktop, and Windows for gaming. But Windows was much more stable, and much more usable.

I continued to fight with my RedHat install over software I wanted to install. Eventually I gave up on RedHat and moved to Mandrake. But I didn't stay there long, getting fed up with Mandrake and finally moving over to Debian. Debian was a lot nicer at giving you want you wanted, software wise, and much better at avoiding the dependency hell that RPMs inevitably seem to bring. Until I wanted to install Gnome 2.

Well, Gnome 2 had packages. But the requirements worked out like this. The Gnome 2 task, which would install all the other packages, required X. (Not surprisingly.) But X required XDM, for some reason. Gnome 2 also required GDM. But GDM conflicts with XDM. It was impossible to install Gnome 2. So, fed up with dselect, and finding aptitude to be subpar (although superior to dselect, although almost anything is), I switched to Gentoo.

Gentoo, for the most part, alleviated the dependency hell. The Gentoo packagers where much better at creating a stable ports tree. However, Gentoo takes forever to set up and requires a weekend a month to get it up to date. (I am currently unaware of how to say "only update packages with security problems," other than to figure out what's installed and update manually, assuming you know all the security flaws. I haven't found a good way to do that.)

While switching over to Gentoo, I also started switching back over to Windows. In Windows, everything just worked. It crashed occasionally, but it worked. (Then again, at least for me, X would crash - hard - occasionally, and only sometimes would I be able to SSH in and fix it.) With the Cygwin tools, I was able to use the powerful Unix commands on my Windows system. Plus I no longer needed to reboot if I wanted to play games.

Several other things keep me on Windows. All the Linux software I want that I don't have free (beer) equivilents on Windows have a native Windows port. This comes to the sum total of the Gimp and Mozilla. I use Mozilla for my day to day browsing and find that it works just fine for me. Plus I no longer have to go through crap to configure the graphical environment, and my hardware all works out of the box without patching or tweaking.

Since I mostly do Java development, and jEdit, Ant, and Jakarta Tomcat all work on Windows, I have all the development tools I need. Windows does what I need from an operating system, better than Linux does.

So - what does Linux need to do before I return to it? (Or, for the hopelessly pendantic, what do Linux distributions need?) Several things:

  • Get rid of X as it currently exists.
    • I want never to have to deal with modelines, and I want standard resolutions to be available. (Namely, I want 1280x960 to be possible without having to use modelines, since it is the best resolution for my monitor to use.)
    • A user should be able to boot directly into the graphical environment, and configure it from there. I should be able to change resolution and color depth without restarting X, or any of my programs.
    • Fonts should be made readable, and it should be made possible and easy to get them installed through a standard mechanism. mkfontdir doesn't cut it.
  • Make software packaging sane.
    • If a package depends on a specific, exact version of another package, it should probably be part of that package. I never want to see "A depends B == 1.2.3.501294059122" again, so that when B develops a security flaw and becomes version 1.2.3.501294059123", I can easily update it without removing A. (Or playing the "were on earth did A come from, and why isn't it updated along with B?" game.)
    • Create the idea of standard programs that offer a standard set of features. For instance, A shouldn't require Mailer B, it should require a package be installed that satisifies the standard Mailer interface.
    • Allow graphical installation for complicated software. Loki created their own installer for their games, shouldn't there be a standard one that uses the system package manager? This would allow installations that have user requests in a nice fashion. Debian has something like this, but I'm invisioning putting up a download on a webpage that a user can then "run" and have an installer pop up that helps them answer any needed questions.
    • Along the same lines, create a standard mirrored update system like apt. Allow dependencies to be automatically downloaded with the user's agreement.
  • A simple, standard way for file types to be understood. If I write a text editor, I should be able to say "I can handle editting text." A web browser should be able to say "I can view HTML." The user should then be able to select the application that they would like to view or edit the file. (Since viewing and editting are quite commonly two different actions - viewing a JPG is quite different than editting it in the Gimp.)

These are just the things I most remember being annoyed at with Linux. There are others, but most of them have to do with crappy software. (I'd really like a nice, stable, easy to use media player, but I'm not currently willing to write one. Oh, and can someone remind Nautilus that it's dead? It sucked when it was a bad e-commerce idea, and it still sucks now. It is far easier for me to deal with files using Windows Explorer than it is with Nautilus.)

So will I always use Windows? Probably not. I intend to reevaluate Linux from time to time, and if my situtation changes, I very well could find myself back using Linux. But presently, Windows is a far better operating system for me to use.

Games

Journal Journal: Parsec: My Review

This is a review of Parsec which was recently "open sourced."

I'm going to start out with the good. Parsec seems to play fairly well, although I haven't been able to play against others. I'm sure that if I had a joystick available, the control would be fine. It's smooth, and things seem to react the way you'd expect them to. The game's requirements are fairly low, and the graphics are decent. The controls aren't too hard to figure out. I think it shows promise to be a really good LAN-party game. I'm guessing that they have something interesting planned for Internet play which involves being able to move from star-system to star-system (ie, from server to server) as a wandering space hunter.

Now onto the more negative critism. The HUD needs work. The retical takes up too much space and offers far too little. In my opinion, the energy, the ammo count, health rating, and the throttle display should all be moved to bars along the retical. These are important bits of information and should be in the center of the screen, where the player is most interesting. The lock-on indicator should be made larger - the entire point to the box around the craft is to aid the pilot in seeing targets that are too far away. A lead-indicator would be nice, but not necessary. I don't like the GUI style, I prefer the cleaner interface presented by Freespace. But I won't hold that against them.

Understanding that it is a game created without the larger budgets of commerical game companies, I'll give it a 4/5 - it has room to grow. Compared to current commerical games though, the current "LAN Play Test" can only score a 2/5. There is still room to grow, and there aren't enough options while playing to keep it interesting for long periods of time. However, since it is a work in progress, great things could be coming...

Games

Journal Journal: Unreal Tournament 2003 Under Linux

I recently got Unreal Tournament 2003, and after playing it a bit under Windows 2000, decided to try it under my Linux install. I use Gentoo Linux right now, so I can tell you that it works with Gentoo.

UT2003 comes on three mis-labeled disks, with only the Windows installer calling them by their printed names. Everything else refers to them in an off-by-one fashion. The game itself and the Linux installer consider the disc labeled "Disc One" to be the "Play Disc" and the discs labeled "Disc Two" and "Disc Three" to be "Disc One" and "Disc Two" respectively. (In other words, when the Windows version tells you to insert the "Play Disc," insert "Disc One.") The Linux installer isn't mentioned clearly on anything that I found, but is on "Disc Three" in the root directory and is called "linux_installer.sh." You'll need to install the game as root or a user that has access to mount the first CD-ROM (whatever /dev/cdrom/cdrom0 is on your system) and the directory where you intend to install it (defaults to "/usr/local/games/ut2003").

I'd suggest copying the install script to a local filesystem and then executing it because the script will try and unmount your CD-ROM drive and then re-mount it. I believe it expects /dev/cdrom/cdrom0 to mount at /mnt/cdrom by default, but am unsure of exactly how it handles the mount. I just know that it expects to handle mounting and unmounting the drive itself. Installing is fairly smooth, the install script will ask several questions at the beginning before copying files to the given distination. It will also automatically create symlinks in the directory of your choice for easy access to the UT 2003 game.

Once finished, the installer will ask for your CD-key. It warns you that the key is not verified here, so be careful to get it correct! The key is on the back of the manual, and not on the back of the "jewel case" like the Windows installer says. After the key is entered, you can begin to play! Actually running UT2003 does not require root privileges or the CD to be in the drive. I find that this makes it better than the Windows version, which also does not require administrative privileges but makes me play "find the CD" before I can just play the game.

The game itself runs quite smoothly under Linux, looking just as nice as its Windows counterpart. The only issue I had is that the gamma seemed to be turned over-bright by default and needed to be toned down. After creating my profile, I was able to get online and play a game on the LAN against my younger brother. Eventually he ran into problems with finding the server I was running, but eventually that was traced down to his copy of ZoneAlarm, letting the Linux version off the hook.

Tweaking the Graphics Settings

The graphics settings contains several settings ranging from "Very Low" to "Very High." I'd suggest keeping the Player Detail relatively low as I couldn't notice any difference with it turned all the way up while raising the Texture Detail first and then the World Detail to make the game look prettier. The "Folliage" effect is nice, but quite useless. It doesn't seem to really badly effect my frame rate, but turning it off won't really effect the look of the game in a serious way. (Foliage seems to increase the complexity of the leaves in trees and includes swaying shadows on the ground.) Finally, using "Detail Textures" can make the walls look nice up-close by adding in a "pitting" texture when they are viewed closely, which is a nice effect but not truely useful and can be shut off without creating too much of a loss of quality.

Single Player Ladder

I've found that the single player mode suffers as soon as you enter the "team" matches, as too much of the game then relies on your computer-controlled team mates. Double Domination suffers the most from this, as it is impossible to give instructions to your bot teammates towards a given "checkpoint." In other words, I'd like to be able to say "you go to checkpoint B and keep it under control" but instead am only able to say "attack" or "defend." This causes the game to almost always rely on your teammates doing something without you being around, in that you can either attempt to protect a domination point or force your teammates to do so.

Likewise, Team Deathmatch suffers in that I usually found myself running around looking for my teammates who are off somewhere else. You win or lose depending more on how well your teammates do then on how well you do. It's possible to completely dominate the other team yourself but lose due to poor teammates, and possible to just completely suck the round and win anyway because your bot teammates were having a good day. In the end, it just takes control away from the player.

However, when playing in multi-player mode with other humans, the teamplay aspect can be much more further realized and allow a much more interesting style of play other than just hoping your bot teammates will actually help you.

Bottom Line

If you're going to buy this game, make sure you do it for online play. The single-player ladder isn't really worth it. If you're a Linux user, don't worry about it under Linux - it seems to run fine, and works just as well as the Windows version. I'll give it a 8 out of 10 - execellent deathmatch and multiplayer, but suffers in the single player ladder. My score may be adjusted later depending on the eaze of setting up a dedicated server, something really required for allowing a good online gaming experience.

Enlightenment

Journal Journal: The Building Metaphore for Storage Systems

I've heard many people complaining about how poor the "desktop" metaphore is for a harddrive, so now I offer a suggestion as to a replacement:

The Building Metaphore

The Building Metaphore simply states that your hard drive is a warehouse. A building. You can build "rooms" into your building and put rooms inside rooms. A directory is represtented as a "room." A room can contain other rooms as well as "objects" that may be things like movies, games, programs, or word processing documents - the files. The files are "objects" in this scheme where the object is anything from simple "data" to a graphical representation of an item.

Since the building cannot change in size, this presents the concept of "fixed storage size" in a way that the "desktop" metaphore does not. While it is true that most people have a fixed amount of space on their desktop and filing cabinet, it does not readily make a pictoral sense as to things taking up space and being able to fill up space. In the building metaphore, the representation is simple - it's just like your closet. There's only so much stuff you can throw into a closet before it becomes full.

A building can be partitioned exactly in the same way a hard drive can. Doors can be locked (security) and objects within a building can be individually "guarded." (Although this is the biggest point where the metaphore falls apart - the fact that rooms with locks are the best physical metaphore of file permissions; while in a file system, individual files can have permissions).

A building does not just hold sheets of paper. It can hold 3D models, sound recordings, movies, and other things - much more like a hard drive can store information describing sounds or movies or other types of data. Accepting that data represents some form of object, then the data on the hard drive is just like an "object" in a "room" on your hard drive.

This is just a thought. I haven't really fleshed out exactly how the "building" metaphore should be presented to the user. But I think it might be a better way to represent the concept of a hard drive and a file system to a user than the idea of a "desktop."

(And yes, I do know what Enlightenment is a topic for. I just can't really come up with a topic this really fits in, and since this does deal with a GUI environment...)

Java

Journal Journal: Java, versioning, and 3D

This is several rants about the Java programming language in one.

Versioning Confusion

My first rant is on the utterly confusing versioning system used by Sun. Java refers to three things all at once: the Java language, the Java class libraries, and the Java Virtual Machine. Which makes an amount of sense, since the three are closely tied: most application written in Java are compiled into bytecode designed to be used with the Java Virutal Machine (JVM). That's fine.

However, the problem came with release 1.1 of Java, where several changes were all merged into one large version. First, the entire Java AWT library was altered to completely change the way user events were handled by the program. (In other words, the way a program is told "the user clicked on you.") This was a good change, since the previous version - eh, sucked. One very large change was made to the language - the addition of "inner classes" - and several improvements where made to the JVM in regards to improving performance. Java 1.0 to 1.1 was a very major change. (Most of the deprecated methods - methods that are left to allow old programs to run but will be removed in the future - left in the Java spec were deprecated in the 1.0 to 1.1 change.)

Then came "Java 2." Java 2 refers to the class library part of Java - there were no changes to the base language specification and few changes to the JVM. (I believe the standard distribution picked up the "Hotspot" Just In Time compiler for the JVM, designed to improve JVM performance.)

There were many additions in Java 2 class libraries. The addition of Java2D, the addition of Swing as a standard, included library. The new collections utilies. Massive changes in the underlying graphics library resulting in a much more powerful Java graphics library which was many times slower than the 1.1 version.

Except that Java 2 was released as "Java 1.2." In order to download the Java 2 platform, a user must go and download Java 1.2. Shouldn't that be Java 2.0? Apparently not. (Java 2 also introduced a new "doclet" engine, a process that allows documentation to be created about the source code that makes up a Java program.)

Java has progressed further. Java 1.3 brought a new compiler interface, improved graphics performance (but not that improved), and many bug fixes. Java 1.4 again dumps a lot of changes onto the class library.

Off the top of my head: XML parsing, logging (which many complain is poor), non-blocking I/O (a feature many have longed for), improved Windows Swing theme (just in time for the switch to Luna - the name for the Windows XP "look and feel"), greatly improved graphic performance (supposedly), many new Java Beans utilities, and more that I've probably missed.

But 1.3 to 1.4 is still a dot release. No Java 2.0 in site. And when Java 2.0 does get released, will they call it "Java 3?" The versioning is just confusing, especially since many people just assume that the differences between dot releases are just bug fixes. Having to explain that vast new capabilities were added between releases is getting old, fast.

Java 3D

I recently started playing around with the Java 3D API, and have found that it is far more complex than needed for what I had hoped to do with it. All I want to do is have a method of displaying textured polys to the screen in a relatively quick fashion. Unfortunately, I have to learn about "behaviors," the difference between "geometry" and an actual instance "shape," and the strange view structure used to define where the camera is in relation to the scene.

And I'm using Java 3D in the assumption that it would be easier than attempting to create a C application using OpenGL.

Fortunately, they have an "immediate mode" of rendering information. Which means that instead of explicitly adding objects to the scene, you instead have to tell the renderer to render them one at a time. You still don't get to just say "these are the polys, these are the textures, render them."

I'm thinking that it might be easier to just try and use OpenGL in a standard application... except that I'd then have to implement an actual rendering engine. I intend to eventually anyway for use in a very simple game structure, but it would be nice if I didn't have to concern myself with something that appears to be basically a very complicated system for building VR worlds to just display and texture a single model.

But I'll live, I'm sure.

Slashdot's Java Icon

What the hell is that? It looks like a picture of a tea bag in a styrofoam cup containing cocoa. Either that or someone likes very, very little cream in their coffee. And brewing it using those coffee-in-a-tea-bag products. I'd love to know what those marshmallow-looking things are on the far side of the cup. Are they supposed to be bubbles? That doesn't seem right...

Bottom Line

Gotta love Java. I really do. It's a very nice, easy to use, language for creating powerful applications in a fairly easy and platform-independant manor. It has it's flaws, it's not perfect, but it works for what I need it to. Long live Java.

Games

Journal Journal: The Problem with Video Games

This is just a rant about what's wrong with video games these days. Sorta. Actually, it's a rant about problems I see repeated in various video games that just piss me off in an otherwise good game.

First of all, there's the Inconsistant Application of Rules problem. A game is just a set of rules - that's all it is. Inconsistant Application of Rules comes when the rules change for inconsistant reasons - as an example, the spikes always kill you, except for one place where they don't and are instead the only safe place to stand.

Other examples of iconsistant application of rules are when the same rules do not apply to the computer players for no apparent reason. For example, in a RTS game where characters must scout out the terrain to find the enemy, if the computer can just magically know where the enemies are "to make the AI easier", that is an inconsistant application of rules. If the rules apply to the human players and the computer is playing an "equal opponent" than the rules should apply in exactly the same way to the computer.

The next annoying thing I've seen games do is Require Precognisance - require that you've already played (and presumably, failed) in order to successfully complete a task. I've got two examples off the top of my head: MagiMaster at the top of the Tower of Magic in Final Fantasy VI, and the Land-Speeder sequences in the MegaMan X series.

In Final Fantasy, after defeating MagiMaster, he would instantly cast a spell that would instantly kill all of your characters without chance to block or miss. At the levels when your characters could successfully reach him and defeat him, your characters would not stand a chance against his deadly final attack. Your only hope was to already know that his final attack would instantly kill you and use a magically ability that would instantly raise your character from the dead after being slain. Basically, you'd waste a half-hour reaching the boss only to be instantly slain by an attack you couldn't possibly know was coming because you defeated him.

The Land-Speeder, or Speeder-Bike, or whatever they call them in MegaMan X, are side-scrolling levels where the main character is traveling on a fast-moving bike, and is limited in control to jumping, boosting (speeding up greatly) and shooting. And you could move left and right on the screen, which is sort of like a slight deceleration and acceleration, although the speed of the bike would remain the same and you couldn't move off the edge of the screen.

Anyway, there are several places where you must jump or boost before the area where you need to land is scrolled onto the screen. The only way to know how to properly traverse the level is to have already played through it and be aware that if you boost through the obstacles, you won't be able to jump off the pit that's immediately right of them but cannot be seen while initializing the boost. There are also occassionally times where the player must jump onto platforms that haven't yet scrolled onto the screen. Lot's of fun, if by fun you mean wishing you could tear out the guts of whoever developed the bike.

My final axe to grind today is the Computer Advantage, where the AI players are given an obvious and annoying advantage that for the most part is being used in place of actually developing an intelligent AI.

One example of this can be the suggested Campaign map construction in StarCraft - give the computers tons of resources at the start. (To be fair, though, melee computer players did not have this advantage and could play without being given advantages.) Other more obvious examples of this are when computer players get to ignore certain rules. (In fighting games, this is often shown by the fact that the computer players can execute the "hold back two seconds and then press forward and punch" move instantly, or instantly switch from one move to the "grapple and throw you into the spikes " move even though if the player were executing the previous move they would be disallowed to change.)

Ah... that's better. I've got other rants on ways that game developers manage to spoil perfectly good games. Although I don't have a solution to the biggest problem, letting losers play them online. (TKers, crash bug people, etc.)

User Journal

Journal Journal: KDE Mirror: Getting Slashdotted (sorta)

Well, here we go with the initial "Getting Slashdotted" journal entry a day later than I had hoped to do. Since journals can be updated, I'll update this entry as I do more stuff with the data I logged. (Side note: this is the first journal where I'm not bitching about Slashdot!)

Anyway, I mirrored some screenshots mentioned in "KDE 3.0 Screenshots" as the KDE sight had basically been shot to hell. (It should be noted that when I grabbed the shots there were like 5 comments on the story and I failed to download most of the little images that surround the KDE page - fortunately, I was able to grab the images themselves. I didn't get the stylesheet they used, so that was left out of the mirror as well (doesn't really matter).)

I started getting hits literally seconds after posting the comment. I reached something like 3,000 hits in the first half hour. (All this is logged so if I ever get off my lazy ass I can check the logs and get more exact times - although I also found out that my server's clock is off by a few minutes.)

My server logs were set to log everything seeing as my site's not very - well, useful. And I'm anal like that. (Well, not quite everything - it logs the time of the request, the request itself, the response code, the number of bytes sent, and the Referrer and User-Agent headers. Which is basically everything useful that Apache will log.)

I've churned through the 50,000 hits that this has caused so far (50,420 as of right now) and have some interesting statistics about the Slashdot readership. (Small rant: why no <PRE> in the journal? Update 2002-08-19: Because there's now <ecode>.)

When reading the following, remember that these are users who are interested in KDE 3 in theory. It's also probable that a large number of users were at work when viewing the page.

Browser Actually Used By Slashdotters

Galeon .............. 511 .. 3.00%
iCab .................. 9 .. 0.02%
Konqueror .......... 4149 .. 8.25%
Lynx .................. 6 .. 0.01%
Internet Explorer . 24885 . 49.47%
Mozilla ............ 9340 . 18.57%
Netscape ........... 3756 .. 7.47%
OmniWeb ............. 190 .. 0.38%
Opera .............. 3267 .. 6.50%
Other .............. 3187 .. 6.34%

Note: Other contains browsers whose User-Agents could not be parsed. It may contain valid browsers, but for the most part is either badly formed User-Agent strings or unknown User Agents.

The other interesting statistic culled from the User-Agents are the operating systems reported...

Operating Systems Reported by Slashdotters

Unix ..... 1468 ... 3.23%
BSD ....... 481 ... 1.06%
Linux ... 12193 .. 26.80%
Windows . 31072 .. 68.29%
Mac ....... 227 ... 0.50%
BeOS ....... 57 ... 0.13%

Notes:

  • Unix is a collection of AIX, HP-UX, IRIX, and SunOS, as well as any User Agent which claimed to be an X11 client.
  • BSD is a collection of FreeBSD, OpenBSD, and NetBSD.
  • Windows is a collection of Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, and Windows XP.
  • Mac is any client claiming to belong to any Macintosh platform.

Make of these what you will :).

Update 2002-08-19: Cstrike is dead, probably never to return. (Although it is now clear that eventually I will be a WPI student again and probably will be able to get my degree - I hope.) I reformated that tables so that they would line up thanks to the Slashcode update that removes any extra spacing and any HTML entites besides &amp;, &lt;, or &gt;. (Update 2004-07-10: Cstrike is the server name, and yeah, it's down, permenantly.)

Slashdot.org

Journal Journal: Slashdot Rant II

My last rant was on Slashdot eating some of the settings I had that I rather liked, such as resetting my posting to the inproperly-named "Plain Old Text". This rant is on Slashcode deciding that if I don't enter a webpage, I obviously meant to set my homepage to http://slashdot.org/, which I (surprise) didn't.

Which means I should probably send off a bug report to the Slash-folks, but instead I moved the homepage to my user page. Hah.

Anyway, I'm going to change my .sig (slightly, changing it from the standard Apache-SSI Something Went Wrong message to be slightly more appropriate (ie, instead of [an error occured while processing this directive] it's now [an error occured while processing this sig] - I'm not very creative when limited to 128 chars). After I saveuser my changes, I discover - surprise! - I now have a homepage, and it's listed as http://slashdot.org/. Well, OK, but I happen not to want to post a homepage on Slashdot, mainly because I really haven't bothered creating a very nice one.

Long story short, my homepage is now my user-info page. Take that Slashcode!

Slashdot.org

Journal Journal: Slashdot 2.2 - It ate my preferences!

Bah. I just posted my first comment to Slashdot while it was using 2.2, and I discovered - much to my horror - that my choice of "HTML Formatted" had been changed to Plain Old Text. Obviously I missed this when previewing it, but the ramifications were that:
  1. Slashdot changed my newlines into <BR>s. And made my paragraphs look really funny as a result. This might explain all the recent posts with the three-space-paragraphs - people write:

    <p>
    Paragraph 1.
    </p>
    <p>
    Paragraph 2.
    </p>

    Which should be rendered as:

    Paragraph 1.

    Paragraph 2.

    But gets bastardized as:

    Paragraph 1.

    Paragraph 2.

  2. Apparently, Plain Old Text doesn't really mean it, since my links came through fine. Although I find that [domain.com] really annoying (found the pref though, it's in Comments like it should be). I think Plain Old Text should be changed to Extrans, with the current Plain Old Text (format paragraphs for me) being replaced with some new name...

It also completely screwed up my Slashboxes - I got to have some fun moving them around to the way they were. I tried to come up with an easier way to do that, but it involves JavaScript (the horrors), and so probably wouldn't be accepted... I might wanna try and play around with Slashcode and create a patch for the fun of it anyway.

That and the "renest highly rated parents" is nice, except that it becomes much harder to read the comment they were replying to since the Parent link now links to the parent comment that it was renested to. I should see if unchecking that option fixes that in Nested mode.

Slashdot Top Deals

Any circuit design must contain at least one part which is obsolete, two parts which are unobtainable, and three parts which are still under development.

Working...