XSLT Support
I’ve been wanting to develop a “dashboard” style system to information from a bunch of different systems at work. Since we use an awful lot of XML around the place at work the easiest way to do that is most likely to use XSLT to transform the various XML feeds into HTML to be displayed and piece it all together into one page. Systems that don’t speak XML could have a gateway developed for them easily enough. Anyway, I figured I’d write a few simple perl scripts to piece the various XSTLs together and make it all work, hopefully develop something fairly pluggable so that it’s easy to add new feeds as required. So I went looking for XSLT processors for perl and wasn’t particularly impressed with anything I found. The XSLT I had been using and that worked with both XAlan and MSXML but barfed with XML::XSLT. The other XSLT libraries I found either failed to compile on OS X or failed to run once installed. Now admittedly that’s mostly going to be my lack of knowledge of C and perl but I was surprised there wasn’t a simple, standard XSLT processor. So then I tried PHP and while it has XSLT commands that looked promising, they weren’t compiled in to my copy of PHP. It appears to be off by default in PHP because it depends on a bunch of native libraries that may not be present on most systems. So in the end, I think I’ll write the system in Java simply because it’s actually good at handling XSLT. Why isn’t XSLT straight forward in other languages? It seems that they’re trying to leverage off existing C libraries to save having to write a complete XML parser and XSLT processor natively in the language. Unfortunately, that seems to introduce a number of headaches when actually trying to use the libraries. I guess Java makes communicating with C libraries more difficult than with languages like perl or PHP and that in combination with it’s dedication to cross-platform support seems to have given it an big advantage in situations like this by not encouraging the reuse of existing code in another language. It certainly makes it a heck of a lot easier for users of the language. So what am I missing? Is there a simple way to get a fully compliant XSLT processor in an effective scripting language? Is there another scripting language that’s good for piecing together simple systems that does have straight-forward XSLT support? Python? Ruby? Help!
AppleScript is cool
I hate how slow Entourage is when accessing an imap server. Most of it’s problems stem from the fact that it only downloads things from the server when you actually ask for them. While that’s great for saving bandwidth, it means a lot of latency between clicking on a message and actually getting to see it – particularly since Entourage and imapd don’t seem to get on much and occassionally just hang the connection.
Leo’s Lost It
You know, I can understand Leo being disappointed at my dropping out of his powerbook acquisition scheme but I didn’t expect him to get nasty:
Also, I know need to find a way to stick it to Adrian. There’s but one way: I need the 17″ model now (he got a 15″). I think someone’s compensating for something. The fact that my first comment to my housemate (who owns a 12″ powerbook) was “this should put an end to your computing supremacy” not withstanding. Of course I think Leo’s desperation is getting in the way of his logic now:
Oh So Nice
Well my new PowerBook G4 is up and running and it’s amazing how much difference in speed there is compared to my old 400Mhz clunker. I’ve only got 256MB of RAM in the new one at the moment (the old had 384MB) which I’ll upgrade once my bank account recovers a bit, but things absolutely fly! I just tried our latest product which does some pretty intensive stuff with XML and is a bit on the slow side on both my development machine at work (700Mhz Celeron believe it or not) and my old powerbook. It flys on this little baby though! The keyboard on the new laptop is better than the old one too, much to my surprise. I loved the only powerbook keyboards, but these new ones feel even better. More “oomph” to the keys. The speakers have improved out of sight as well. I can actually listen to music through the builtin speakers and quite enjoy it instead of cringing at the tinny sound. It’s obviously still not as good as a really nice stereo system but very nice all the same. Mostly though, I’m appreciating all the extra hard drive space. Going from a 10GB hard drive to a 60GB drive really makes a difference. I’m currently in the process of moving my data back off of the external firewire drive and onto the internal drive. The firewire drive wasn’t bad but it’s so nice to not have to plug an extra device in to use your laptop all the time. It also tends to drain the battery. Speaking of battery, it’s nice to have a shiny new battery as well. The one in my old laptop was really starting to get worn out. The other thing I’ve immediately appreciated is having a CD burner in my laptop. I listen to all my music using iTunes on my laptop and all the music is carefully rated and sorted, being able to easily make a CD to listen to in the car using all those ratings is wonderful. I was really starting to get sick of the CDs I had in the car. All that goodness and I haven’t even started playing with GarageBand yet – I’ve been looking forward to getting my hands on it for quite a while.
Shiny New Toys
It seems that Leo Simmons and my plans to acquire powerbooks isn’t working, I went out and purchased a 15″ PowerBook for myself. Sorry Leo, but you can’t have my crappy old 15″ powerbook, it’s most likely going to my Nan. Though if someone does give me a shiny new 17″ powerbook you can have my shiny new 15″…
Taking over planetapache.org
It appears that my back to back rants pretty much completely took over Planet Apache the other day. er, sorry about that… I’ll try to use my “extended entry” box a little more in future…
Gnome
In response to this, I have a few things to say. Firstly I thought the original article was very much on target – opensource software *does* suffer from poor user interfaces and it is typically because it’s so difficult to get a cohesive UI out of a widely dispersed group of people, from different cultures and in different time zones. The particular issues I had with that particular response:
The newly designed save and open dialogs are a great example of the simplicity the GNOME project seeks to achieve. True, the dialogs may irk those who like tab completion and other esoteric features (I’m guessing their issues will be worked out in future releases) the boxes are notably simpler and clearer than their Windows counterparts. And they look just like the OS X file dialogs. Not to mention the fact that the extra mouse click introduced by the “browse for other folders” toggle makes the user interface slower and less intuitive. It was a mistake when Apple put it in and it’s a mistake when Gnome copied it – hopefully the Gnome mob were smart enough to make the dialog remember whether the user wants it expanded or not (as Apple eventually managed to do).
XUL
Jono Bacon comments on how XUL could be great for providing more interactive web applications. My take on it: he’s gone off the deep end. I just don’t get what the current obsession is for having to run everything in a web browser these days.
This framework not only brings the web browser out of the dark ages in terms of the potential for interaction, but the Mozilla developers made the right choice and picked XML as the language for specifying user interfaces. See here and here for why XML not a good programming language.
Spider vs Grasshopper
It appears that there is an epic battle unfolding right in my own back yard. Firstly, let me explain my philosophy on gardening: if it grows, it’s meant to be there, if it dies, it wasn’t. I don’t pay any attention to my garden, there’s enough shrubs and low level cover that they’ve managed to grow up enough to smother most of the nut grass the landscapers so brilliantly put in before I moved in here. So generally, my garden has reached this equilibrium where the strong plants are surviving and the weeds being shorter are dying out. There’s one odd looking purple tree that grew out of nowhere and now dominates the back yard – some people argue it’s a weed, I call it a feature. Anyway, back to the epic battle. A week or two ago I heard a rustling in the shrubbery while I was hanging out the washing. Prodding the shrub in question resulted in about 50 massive grasshoppers taking flight and then promptly resuming their feeding frenzy elsewhere in the garden. Upon investigation it turned out that pretty much every shrub and tree hid a similar infestation of grasshoppers. I mentally noted that I probably should do something to get rid of the grasshoppers before they ate my entire garden but never got around to it. So today I went out to hang out my washing and discovered significantly fewer grasshoppers. It seems the spiders have been having a feeding fest as well. More than a quarter of my garden is now covered in this massive spider web with 5 or 6 grasshoppers hanging in it. I couldn’t find any trace of the massively huge spider that must have created this web and have the strength of overpower my oversized grasshoppers. It turns out that instead of one big spider, there are 5 or 6 little spiders all working together, creating this massively interconnected web that sprawls over about 2 cubic meters (read: a large space in 3 dimensions). It appears the coalition of the 8-legged is having a devastating effect on the local grasshopper population. I love the way nature balances itself out. It saves me an awful lot of gardening effort.
Loners
Kathy Sierra writes about being a loner and how it makes pair programming very frustrating. I can see her point – some people enjoy being alone and don’t like feeling crowded by others. That is different to not being a team player – loners can be very good in a team, but they do run into trouble when the team happens to be using pair programming or is just a very “in each others back-pocket” type of team.
JXTA
Okay, I have to ask – why the sudden massive interest in JXTA? It seems to have taken over all the weblogs on java.net and most other places I look around. Maybe if I actually had a clue what it was really about I might be excited about it too, but I just haven’t had time to look into it. Sigh.
Opensource Java Continues…
I can’t resist picking apart this comment to my earlier post.
It’s easy to look at the code and modify it, but it’s not as easy to actually test that code. You need to mess with bootclasspaths and things like that. How is this different to an opensource version of Java? You would still have to set up all the correct bootclasspaths and make sure you had things in the right place for it to work. That’s the design of Java, it has nothing to do with whether or not it’s opensource. Additionally, it’s not that difficult, just replace rt.jar (on Sun based JREs, classes.jar on Mac) with your new modified version and viola, you have a modified JRE.