Straw 0.19

Yow. Just released it. Finally. It's bloody late. Late as in it was supposed to be out three months ago, and late as in it was supposed to be out earlier today. Or yesterday, really, seeing what the clock says. It involved adventures with CVS (My First Branch) and stuff like that. Plenty of new stuff there, though mostly rather minor. BTW, have I ever mentioned that doing releases is way too much a hassle? I announce them on the Straw news page (hasn't updated yet when writing this, but the updated pages are in CVS), Freshmeat and the GNOME Software Map (which I see still sports the old look), and it always feels like it takes ages.

I hope I didn't screw up too badly when fooling around with CVS.

Article page

Straw and Dashboard

As you might have noticed if you follow these things, I actually did something about that Dashboard thing and now the changes to Straw are in CVS. I don't have screenshots of it myself, but Nat has.

Article page

Groan like it's 1997

I used AIX today. The last time was in 1997. Except for the fact that the black POWER (tee hee) box packed quite a bit more punch than the horrible Apple-branded POS the size of a small fridge I had to use six years ago, it felt like nothing had changed. CDE. ksh. It all came rushing back.

Man, this old slow Linux box running GNOME feels good.

Article page

UI infatuation

As an excercise in pain, I've been installing quite a bit of software on a old IBM ThinkPad 600 running Windows 2000 today. I only have to use the machine for two weeks or so, but for that time I do need software. Like a sensible browser. And because W2K makes Galeon and Epiphany non-options, the next choice was Mozilla Firebird.

It's not too bad. It seems to fit in a lot better in the Windows UI than Seamonkey, the previous version of Mozilla's browser, ever did in GNOME. Maybe because my Windows looks the same as every other Windows out there, but my GNOME is running non-default theme (oh, I just checked: Firebird is better at mimicking GNOME than Seamonkey is. Cool.) Mozilla does manage to assimilate some of the customizations, but not nearly all. It's fast, too; it feels faster than IE6.

And, man, I stumbled upon the coolest thing. The RadialContext extension is sexy: good looking, fast, functional. I've heard of pie menus before, but never used one. Partly because all the screenshots always looked butt-ugly. Well, not with RadialContext. In fact, in real life it looks better than in the screen shots. And it feels good to use. It does mostly everything gestures do, but better. Fast and easy gestures accomplish all the operations in the context menus, and you get visual help while still learning where everything is.

Highly recommended.

Article page

Mark Watson on automatic accessors for Java

Mark Watson proposes a change to the Java language, in the form of making it possible to automatically generate accessor methods for class attributes. It would work a bit like the generic functions created by the :reader, :writer and :accessor slot options given to defclass in Common Lisp.

However, I think that if that part of the language is to be changed — and I agree it should be — the new design should go all the way to hiding the methods from the users of the class. It should be possible to optionally define the accessor methods you want and then have them accessible by simply using the attribute name. So object.attribute = value would invoke object.setAttribute(value) behind the scenes, if such a method was defined. For backwards compatibility, it would need to do the normal assignment if it was permitted and no method was defined. A close relative to look at for inspiration would be C#. This one of those places where the language is, simply put, better.

[UPDATE]

Reading Bruce Eckel's great blog, I stumbled across this: The Java team is clearly not ignoring the threat of C# [...] along with the new features already on the list for "Tiger" (JDK 1.5), including true enumerations, autoboxing, and generics (templates), they are adding attributes, something (along with autoboxing) taken directly from C#, because it's a good idea.

Article page

99 bottles of GOO

Here's a version of 99 bottles written in GOO. I have submitted it.


(df bottles (n)
        (cat
                (cond ((= n 0) "No more bottles")
                        ((= n 1) "One bottle")
                        (#t (cat (num-to-str n) " bottles")))
        " of beer"))

(df bow (n)
        (cat (bottles n) " on the wall"))

(do 
        (fun (n) 
                (post (bow n)) 
                (post "\n") 
                (post (bottles n)) 
                (post "\nTake one down, pass it around\n") 
                (post (bow (1- n))) 
                (post "\n\n")) 
        (range-by 100 >= 1 1-))

Happy easter. Article page