June 21st, 2013

Bits and Pieces

Katie survived her overnight trip to the water park nicely, although she got back just a little too late to go to dance camp today, so she'll need to catch up next week. And her friend was reportedly delighted with her birthday present, which was an assortment of card games and such like.

Both girls managed to distinguish themselves around dinner tonight and got sent to bed early. We'll see if this makes an impression.

In other news, I had a nice chat with my boss/coworker today and I may have found an XML format for our data that will work for me and keep anyone from losing their minds when they look at it. We'll see how this sorts out -- he's out of the office for a week, so I'll have time to pull a good chunk of this plan together. I already spent an afternoon yesterday doing a first refit of the format and followed it up with about an hour of work tonight that put in the mostly final tweaks.

(Part of the problem was that he and the other fellow were looking at the XML output from my unit test and couldn't understand why I'd be writing data that looked like that. The problem, of course, was that I wouldn't write data that looked like that -- I was just doing sample output from some of my classes to make sure that the input and output was working correctly. I created some classes by hand in binary format, dumped the XML, read it back in, and then dumped the XML again. If the first and second XML outputs matched, then the test was successful.

Of course, they may just have been shocked that I wrote a unit test for a proof of concept project. But I needed to know that what I was writing actually worked before going forward down a blind alley. :) )

All this showed one of the big advantages of writing an interface layer on top of the standard XML machinery: I had to change virtually none of the code that I'd written in the classes that were persisting themselves using XML. The interface layer just had to be trained to read and write a different format.

Abstraction: don't write code without it. :)