You may wonder, what’s up with all these posts about Java? The answer is simple: I have thousands of lines of code in Java, and I’m not about to sit down and take the time to rewrite them in C# (in my opinion perhaps the only interesting language of Visual Studio).

This probably doesn’t bode well for the student ambassador for Microsoft at Massey I guess, but here’s something I said to Sean and Paul when I met them in Wellington a while back:

Don’t sell to students.

We don’t want to know that C# is 67% better than Java. It doesn’t really matter to us. What follows from this is the second point I made:

Do tell us about your cool ‘feature x’

This understanding was discovered after a recent presentation made to students at Massey in Palmy North – we left full of stats, but not really knowledgeable about the cool new features that we should take note of.

It is these features that make us want to switch to Microsoft solutions.

You all probably know that I’m a programmer – I don’t really care about the management and business aspects of things as much as I care about the beauty of the code (this coming from a managing director of his own business). I make no attempts to hide my desire to find the best tool for the job, as do many of my friends who left the presentation that day. Sadly, many of us left the presentation disappointed – we were effectively being sold to, and being sold to means percentages, misleading graphs, and ‘studies’. We are smart, we generally know what is happening in the world of IT, and we are students, we have the future ahead of us to use your products. We come to presentations open-minded, but we really don’t want to be told stats, and just as important:

Don’t speak negatively of your competition – we may just like / use them now, and mentally switch off (or worse, form a negative opinion of yourselves and your product) once the slagging begins.

Sorry for the long blog, I thought I would get something off my chest. I’m not inherently negative, I just want to save us wasting students, and consequently our, times. So, to return to the start: I use Java because thats what I have used, what I have all my code in, and what the people I work for want me to work in. I’m willing to change to a tool that makes my life easier / more enjoyable, but features, not stats, are going to convince me.

What is my feature x? Thats what we should all be asking whoever has the answers, and for those of us with the answers, that’s what we should be answering in the clearest way possible.



Started work on XPath integration into the mandarax project today. This is one of the three current projects I am working on, and to say the least, is interesting. Before a few days ago I didn’t even know what XPath was, let alone how to extend it to be able to retrieve data stored within an uncommon document model (i.e. the Mandarax KnowledgeBase class).

Results have started appearing. I can now request all facts (think declarative programming, knowledge bases, and in general, a Java version of Prolog) simply by giving the following XPath query:


Isn’t that cool? Ok, maybe not to you, but to the people at Massey who created the rest of Mandarax, this will be incredibly useful. Maybe another example would be in order. If I want a list (an Iterator to be specific) of all predicates in the head of a rule, I can give the XPath query:


I’m still working on a lot of things, so whilst this looks like good progress, I know I have a fair bit more work to do (considering this is a 3-4 week job).


So, I’ve spent yesterday and today doing a slightly different thing – I wrote my first ever decent server application. It’s a little, 1000 line Java application which is designed to provide a server-side to my research. Currently, it handles:

  • Users requests for reminder alerts to be emailed or SMS’d.
  • Users subscriptions to be emailed or SMS’d when something they have subscribed to changes in a way in which they are interested.
  • Server side SQL. Previously, the client directly communicated with the database through JDBC. This is obviously not optimal. Now, the server can handle both database queries (‘SELECT’, returning a CachedResultSet) and INSERT/UPDATE statements.
  • LDAP user authentication. Once again, the client currently communicates directly with the LDAP server, so this is now replaced with the client communicating with the server, which then takes care of talking to LDAP.

The last two points meant I had to define my own protocol for the various options. This was rather ‘cute’, with my communication between the server and client being messages like ‘hello’, ‘ok’, ‘sql’, ‘ldap’, and ‘bye’.

A benefit to doing this is that it lessens the filesize of the client – we no longer need JDBC or LDAP libraries. For the MySQL and Novell eDirectory libraries, this cuts out about 540Kb of file size. It only gets bigger on larger database servers as well.

I’ve pretty much done my server work now, so I may go relax for a bit. Next week I start work out at Massey for three weeks, which should be a bit of money but I need to actually study the stuff I’m doing – mainly XPath, XSLT, XML, and a library called Jaxen.


Merry Christmas

Hi there,

I thought I’d just write to say that I hope everyone has a good Christmas and new year. My plans are simple – spending time at home with family and Julia (my fiancee).

Next year over the Summer break I plan to continue with my three software projects (Leopard Tutor, Centruflow, and Mandarax), and get out and enjoy the sun a bit. I’m planning to get away to Kuratau (at the southern end of Lake Taupo, and right on the beach), and Microsoft is flying me up to Auckland for an orientation as to my role as a student ambassador for Massey University here in Palmy. I’m hoping to come up a few days early with Julia and make a mini-holiday out of it as well – 4 or so days away from the laptop. Yes, I know laptops are portable, but having been on it so much these last few months with massey, it’ll be nice to get away from it for a bit.

Anyway, one other thing – I have a bad hand – nerve damage up by the elbow in fact. It’s still getting worse, and causes my fingers on my left hand to be very weak and droop. As you can imagine this makes typing quite a long process. Hence my lack of updates. I have already had one operation to try and fix it (in April 2005), but they couldn’t find the problem. I’m likely in the next few months to need another operation, and hopefully this time the (new) surgeon can help out.

Catch you later,