Another thing I never thought off

A while ago a made a post on web standards saving money (ie for google). Today I was listening to another podcast, they had an interview with Chris Dibona He works over at google. He was talking about how google has its own team of kernel hackers. He explained how some small improvements in the linux kernel of this team could save google millions of dollars.
My first reaction was offcourse, your site will run faster you need a couple of computers less and that’s where your savings come from. Well he explained it somewhat different. Let’s say you have 100.000 computers (prolly google has much much more), your computers will stay a little bit cooler maybe even consume less power. So your airco could run a little bit slower. So a code optimization could result in a cut back in power usage. You would maybe even save some trees!

It shows how in each and every sector of the it you have to worry about different things. I have to admit, when I’m doing java development and I’m not sure if I should choose an int or a long, I’ll be choosing a long because memory is no problem for us and it’s only running on 2 or 3 severs. These guys will check,recheck and then check again if they instead of the int maybe even could use a smaller datatype.

Xsd nillable

In one of my current projects we are sending data to another company. Because xml is somewhat the standard for exchanging data these days I wrote a small java app using velocity to generate the xml files. Sure I could have used Oracle’s features to create an xml file but if you use that feature you could just as well give them an ASCII file imho.

So I started by creating the xml schema (xsd). Because some fields can be empty I some nullable fields. And that’s where the issues started. We have some dateTime fields that can be null so I thought spitting out a <date /> tag or <date></date> would do the trick!!! Biep error, after some googling and reading a lot I came to the conclussion that I had to output this : <date xsi:nil=”true”/> . Stupid if you ask me, but hey it now works.

I wrote a small velocity macro that I called:

#macro( xmlempty $value $tag $cdata)
#if ($!value == "" || !$value)
< $tag xsi:nil="true"/>
#elseif ($cdata == "true")
< $tag>< ![CDATA[$!value]]>
< $tag>$!value

Works nice I have to say. The program was straight forward, a file that contains key value pairs. The key was the velocity template, the value was the query. I ran the query, retrieved the ResultSet cursor and while iterating it for every iteration I called upon the template that merged with my UTF-8 filewriter.

What kinde surprised me was the lack of good xsd/xml editors in the opensource. I tried the ones that were bundled with our myeclipse environment but they were more a pain than a gain. (omg lame!) So in the end I installed xmlspy and asked for a testing license. I have to say they have a really good product, but who wants to pay 600 € for an xml editor. People come on, even ms visual studio .net 2005 pro only costs 750. They also have xml support built in, for that I’m willing to pay because of the added value but not for an xml editor. There are only a couple of things I need from an xml editor.

  • xsd code completion
  • Is my xsd valid
  • Why not, with linenumber error
  • Xml code completion using the provided xsd
  • Is my xml valid
  • Why not, with linenumber error
  • Maybe an xpath,xquery and xsl features

That should be sufficient. Hmm looks like a project for the future 🙂