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
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").