Learning Solaris
I’ve brought home one of the SunBlade 100s from work with the intent of installing Solaris 10 on it and trying to get a grip on the idiosyncrasies of Solaris. Eventually I hope to be able to put the e250 we have at work to better use and learn enough to actually admin it properly instead of just doing the very minimum possible to get things to work.
Being a programmer by trade, picking up sysadmin skills isn’t exactly the easiest thing in the world so it will be a bit of a journey. Fortunately I have a basic working knowledge of UNIX and only a few fairly straight forward things to get up and running on the machine.
Crossroads Christmas Party
Tomorrow night the band will be playing at the Crossroads Christmas Party. Crossroads is a support group for people with mental and physical disabilities. The Christmas party is always a heap of fun and the crossroads folk are simply the best audience anyone could ask for. They dance to every song, sing along anytime they know the words and really show how much they appreciate the music. It’s definitely very uplifting.to see such joy on people’s faces. I can’t wait.
Bugzilla Search Bites
A while back I complained that Mozilla didn’t support align on colgroups. Byron suggested that I should log a bug and his comment suggests that he’d actually searched and found that one hadn’t yet been logged.
I too searched, specifically for the term "colgroup" and out of the 3 or 4 bugs that were returned, none were what I was complaining about. So I spent the 20 minutes or so that it takes to jump through all the hoops that the Mozilla team want you to jump through to log a bug and gather all the required information, including creating a simple test case etc. Finally I submit my bug and within five minutes it’s marked as a duplicate of a bug that has been going on and on and on and on forever. Seriously, it shouldn’t take over two years and hundreds of comments to sort this out.
Speccing Lists
I’ve commented a few times before about how difficult it is to test text manipulation code and most of that is caused by the fact that it’s so hard to comprehensively define all the possible states, user actions and resultant behaviors that are expected. There’s just way too many different cases that can occur (infinite in fact). The two hardest areas for most rich text editors are lists and tables (not surprisingly since their really the only complex structure used in text markup). In order to improve behavior in those areas and avoid any regressions we’ve started specing out the expected behavior.
No Wonder XML Databases Haven’t Taken Off
XML databases and the standards to work with them (primarily XUpdate and XQuery) are just plain crap. Why is it that I need to learn two completely different languages which utilize two completely different programming styles to work with a database? Why is it that I can’t seem to convert between a String and XML nodes in either of those languages? I mean, wouldn’t seem obvious that when working with an XML database someone might have some XML coming in as a parameter and want to deal with it as XML instead of as a String – say to put it into the database? Isn’t it obvious that someone might want to get a part of the XML file they’re processing using XSLT as a string instead of a node-set? I don’t mean get the text nodes within the XML fragment, I mean all the element declarations and namespaces etc, etc. Sure they’re more than just random text but if you wanted to output it so it could be edited it would be nice to be able to without jumping through hoops.
RSS Reader Feature Idea
It would be really nice to be able to subscribe to an RSS feed for a limited time. There’s two reasons for this. Firstly so that you can subscribe to the comments RSS feed for a particular article you won’t to track the discussion for but then have it drop out of your feeds once the conversation dies down (this might be best implemented as auto-unsubscribe after x days of inactivity).
Beauty Is Only Skin Deep
A couple of people commented on my beautful code entry saying that the IDE should take care of code formatting and indentation and that ‘beautiful code’ is mostly about design. I’d have to disagree, beauty is only skin deep. The design of code doesn’t make it beautiful, it makes it maintainable – it makes it work.
You’ll have to excuse the inherent sexism in the following analogy – it happens to be the best one I can think of.
Object.equals(“Adrian Sutton”) == true
According to Google, I’m now the Object.equals() guy (for those who read via RSS only, I notice this because of the Google search that displays on the front page).
Beautiful Code Is Important
Any half-decent coder will agree that writing readable code is important and that good comments are a part of that. More and more I’m getting the impression that that’s not enough.
Code should be a thing of beauty. Not necessarily "oh that’s a beautiful algorithm" and definitely not "oh wow that’s clever" but beautifully laid out with every blank line considered for meaning and well thought out comments everywhere. Every construct and every line should match the selected coding style and real thought should be put into why that particular coding style was selected.
XML In Java In XML Is Ugly
I’ve been struggling with getting Cocoon and Exist to work together properly and allow me to insert an XML snippet into a document in the database. Apart from the fact that the apparent assumption seems to be that no one would ever have an XML snippet being fed into an XML-based system and thus all the < and > characters should be converted to entities, plus the fact that Exists seems to only want to retrieve stuff from the database and not change stuff in the database, I’ve wound up with the following:
So Much For Standards Compliant
Maybe I’m expecting too much but I would have thought that a browser that claimed to be standards compliant might actually implement the standard…. In particular I’m annoyed that Gecko doesn’t fully support HTML 4 tables (it ignores the align and valign attributes on colgroup and col elements). IE gets it right. To be fair, Safari also ignores them. Oh and of course you can’t achieve the same thing via CSS since CSS styles don’t get applied either via a styles attribute or via embedded styles (rightfully so since the standard doesn’t say they should be applied). You have to manually markup each cell in the column. Yuck..
Derby Is Cool
I thought it was worth mentioning that I got to play with Derby as part of the Time Tracker mini-project I mentioned earlier. Very cool. I’ve not had a need to work with an embedded database before so it was really nice to have a small, efficient library that handled all my data storage needs. The only complaint I’d have is that it needs to use a directory to store stuff in (it’s a little more flexible than that but a directory is always created and used). It would be really nice to be able to just point it at a file and say "that’s my database, do your thing".