I got a few things done this weekend since my post on Friday, just not most of what I’d planned (and really need) to do.
First off, I wrote an interface and pair of streams to replace Externalizable and ObjectOutput/InputStream. I had a bug at work where I’d implemented Externalizable but not specified the serialVersionUID and the versionUID changed without my custom serialization changing so suddenly my old data logs couldn’t be read. Basically I hadn’t realized how much metadata (serialVersionUID, class name, and probably some other stuff) was written to the stream, and working on this at home was my reaction to how inefficient Externalizable is for what I’m using it for. Anyways, the library I wrote this weekend typically sends exactly 1 byte of stream header information, and only sends the class name when the class hasn’t been written to the stream recently. After the header it sends exactly what you specify. Once I’m convinced it’s tested enough I may release it somewhere, but not yet.
Unfortunately, I designed the library to prevent a problem I’ve already solved at work, and since I was more concerned with recovering the ~500 GB of data I’d already recorded than having extremely lightweight serialization I can’t apply this there. I don’t even have a project of my own that uses networking currently, which makes it hard to really test the library. I’ll probably use the lessons learned at some point, but the most obvious application of this is in another part that’s already finished, tested, and working.
What I’d planned to do this weekend (same thing I’ve intended to do for the last several weekends) was take my car in to the shop for an oil change and to swap the winter tires off, as well as have them look at one of the back wheels to try to figure out why it rumbles (I’m guessing bearings from talking to people at work). Instead I slept till noon, and that late on a Saturday I expect to have to wait a while, so I put it off again. The idea is to get there not too long after they open and have a book so I can just sit in the waiting room till they’re done.
I did at least manage to make it to an auto parts place to buy new windshield wipers since the rubber part had mostly fallen off mine. I also tried to twist one of the wiper arms back to where it should be (it’s twisted such that the blade doesn’t meet the windshield at a right angle), but that wasn’t happening with the little pair of pliers I have. Wish I hadn’t left so many of my tools at my parents house, but that will be partially resolved in a few weeks after I go home for vacation.
I also finished with (not “finished”) a couple books. The first I read all the way through. It wasn’t bad, but between a couple rather graphic scenes and the way the world building was done it wasn’t quite what I prefer reading. The other one I got over half way through and had to ask myself why I was still reading it (at which point I promptly stopped). It was very much not the type story I prefer, and the overly heavy usage of the main character’s magic in nearly every situation just got old. I need to make another trip to the library soon, possibly to just wander till something catches my eye.