0.3.1 was released on thursday. It's been over half a year since the last release, and I guess that delays of this size are not good for free software projects. Anyway, what's more important, we now have a TODO for 0.3.2. One of the more interesting points in there is the suggested re-implementation of the parser. We're using a "proto-Earley" algorithm for parsing right now- it works, and it's not really performance critical because it's only used once right after something has been entered, but I don't really like it anyway. I'll read up on LL and LR parsers for this one; however, it looks as if the most sensible change would be to change the emulation of non-determininsm from set management to back-tracking in the algorithm. The Sierra grammar typically matches two to 8 derivation trees(is that the right phrase?), of which only the first one is considered, so we're wasting a lot of memory and resources in this place.
Looks like the others want to release a second alpha RSN- this means I need to catch up with the Alpha port again (probably tomorrow). Turns out that it's a bad thing that Compaq's cxx doesn't understand the -include flag- while it's possible to emulate that with 'make' rules, this emulation step appears to be a PITA in automake. This means that it won't be possible to de-uglify my Alpha/Linux/cxx modifications. Well, it wouldn't help with the main ugliness (#ifndef'd includes of standard system headers), so I won't investigate any further into that direction.
Now they did it. Looks like my ISP, which just happens to be the dominant ISP here in Germany and a remnant of the former telco monopolist, managed to blow up all of their routers and backup systems in Frankfurt/Main. Or something equivalent (that'd be the only "sane" explanation for the current situation). Anyway, my 'net connection is slow as hell and totally unreliable (using CVS is almost impossible). A friend of mine was told that this will probably be fixed "in a month or so". Oh, and on top of that, my DSL line will be delayed by, well, roughly half a year (Note that those guys never had any friends in the first place, so they're not risking anything there).
I had to take my system to work (where they have a T3 connection) just in order to release FreeSCI. This sucks badly.
Got a Cowboy Bebop DVD. They didn't have the first one, so I took #2 (after all, it's supposed to be rather episodic). Watched it yesterday, and I really like it. Somehow, it reminds me of Elite and Frontier, and anything that does can't be bad.
I also started learning Japanese. I guess it'll take a few years, but it's an interesting challenge. Thanks to Anime, I'm even semi-guaranteed to keep motivated for quite a while (Note that Sierra's adventure games were my base motivation for learning English...).
The semester is coming to an end. This means that I have to finish some work, including the seminar paper mentioned earlier, and prepare for a few tests (OK, so I'm not going to do that until one day before the test, but WTF).
My regular job resumes on February 22nd. Then it's back again to Java, XML, and e-commerce (shudder). I'm looking forward to doing more XSLT work, though- while the language does have its design-by-commitee weirdnesses and is a PITA to type (-> active code generator?), it's certainly a refreshing break from most of the other stuff I'm supposed to work with.
I wish I had time to play any. OTOH, the only commercial game that runs on my box would be Civ CTP, so I'd probably just play Nethack or Moria or Angband or something like that. Anyway, it looks as if Loki is having problems. This is an inherently bad sign, as they were the gaming company closest to "doing it right", in my book. This is going to send a very bad sign- I just hope they'll recover (and port Deus Ex to the Alpha).
Graphical User Interfaces
Regarding recent discussions of GUIs here: Personally, I never got the hang of GUIs. I do agree that customizeable keys (or even just functions available via hotkeys) are a good thing, though; in fact, my personal opinion is that the pointing device should be as optional as possible. We need graphics, for a vast amount of reasons, and we need pointing devices, because they are more efficient whenever some sort of aiming is required. However, without speech recognition or stylus + handwriting recognition, we can't go without a keyboard (and even /with/ those, I'd recommend against going without one), so there's no point in trying not to use it. OTOH, without a touch screen, we need the mouse for certain kinds of graphical interaction (at least for the rough aiming). Still, my impression is that the keyboard is superior for the vast majority of tasks, and GUI designers shouldn't forget about that. While I'm ranting, I might as well mention the other thing I perceive as a common misfeature in graphical programs: Popup windows, or, more precisely, stealing the keyboard focus. I don't care about the fact that Mozilla couldn't get a host name resolved while I'm typing my password for a remote account, so I don't see the point of it stealing my keyboard focus. Neither do I see the point of it opening a window to tell me so when it has ample space in the browser window to do just that. Of course it might be argued that some things are important, and should be brought to the user's attention as soon as possible. I guess some sort of "notification bar" would be most appropriate for that- a bar (occupying a few pixels on top of the screen) which flashes or shows some sort of icon whenever some program wants something urgently or believes that I absolutely have to be told about something else. Given a sufficiently versatile type system, users would even be able to weed out events they don't care about, or sort those by their own asessment of the events' priority. I guess what I'm proposing could be called a "non-intrusive user interface". I don't know whether this is the kind of thing Joe Random User would like to use, but it's the kind of GUI I'd be comfortable with (provided that it'd fulfill the usual requirements like customizeability and easy control from the keyboard). Come to think of it, we should also assign numbers and letters to windows (same as we do to virtual desktops), so that they can be addressed in very few keystrokes. (This might also help with voice input- changing the voice input focus should be easier if you don't have to say things like "the second x-term from the left").