Lessons learned

We're working on dropping the mxDateTime dependency from Straw for version 0.22. It's proving to be a bit more difficult than expected, and exposes two design blunders made early in the development. The other is easy to circumvent, the other one isn't.

First, you should store a version identifier in all files you create that you expect to read back. Including the data store. That's easy enough to deal with later on, luckily, just assume that in the case of absent version identifier, it's version 1.

The other is the result of too eager use of Python's pickle mechanism and a total brain-fart. For whatever reason, I've been storing mxDateTime instances in the database. Duh. Now to get rid of those, we can't drop the mxDateTime dependency completely. Luckily we can restrict it to the conversion function called, if necessary, on start up, but still, that's something I should have seen coming. It's not as if it's difficult to serialize a date object independently of the object format.

I'll just close this with a quote from Franklin P. Jones, whoever he is: Experience is that marvelous thing that enables you recognize a mistake when you make it again.

© Juri Pakaste 2023