First diary entry in millenia. My how some things change and others just stay the same.
Some of the ambitions from a couple of years ago have been fulfilled. I released a lot of the code I was working on. For the big projects, like corengine, in some respects the system is better than anything else I've seen in the same field; but in some respects it's definitely not. What took 12K lines in corengine I've now done in 6K lines here at the office (and that code is slated for an open source release sometime this year) with much more power.
As an experiment in actualizing some ideas that project was a success: objectified content (now called "microcontent" I suppose) is a win, reusing objects by encoding structure as a generalized graph (so iterators are graph traversals; graphs can render to XML, really -- XSLT makes subgraphs) is also a win. Trying to write an useful objectified renderer in a language like PHP which has no mixins, interfaces, or multiple inheritance, is an exercise in futility. Coding (dirty nasty hacking) to a demo schedule when the next evolutionary design phase is clear, is a lose.
Oh, and cut-and-paste of objects through a web application to speed workflow: a big win. Hopefully more on that in the future.
The most recent news is that we (i.e., I and Brandon and Sean) finally re-released Litestream. I had been having email exchanges with Gene Kan before his death about getting litestream.net back online and loosening up the litestream license to a pure BSD license (no advertising clause). He renewed the domain, dug the machine back out for hosting, and agreed to a BSD license. And then he passed away.
I can't say that I knew him -- I just had a passing acquaintance with him over the Internet at the end of his life. But his death affected everybody who had any contact with him. I feel that we (all of us) really lost a lot when Gene left us.
After some months we approached Yaroslav and some of Gene's other XCF friends and asked if we could follow up on Gene's wish to bring litestream back online, update the license, and get the project going again. They said, yes, that Gene was happy when he was working on litestream and that we should bring it back.
It took us a year to get our act together -- we had to decide how we were going to maintain the project, and we set up a website, mailing lists, all the cruft that goes with development. Then we pulled out the code and spent a lot of time looking through it and testing it. Gene wrote really great code. Compared to the other streaming tools out there it's as if litestream is a Predator drone that can do Mach 2, while the competitors are like doublewide trailers that bounce up and down on rusty springs. I say that having looked closely at the code of a number of streamers.
We found one bug on Linux that has to do with how Linux handles non-blocking sockets, so we fixed it. In the process we added debug scaffolding (a probably ancient version of Fred Fish's public domain DBUG macros), updated the license, and took out the compiled-in mp3 (a relic from the old license).
We've got ideas for a litestream2 -- things like factoring the backend and making a liblitestream, e.g. It's daunting, though, looking at how well the code is written, to undertake big changes to a solid product. That's the beauty of open source though: both development and testing are parallelized. So, we'll see.
Anyway, it seems people are happy to see Gene's good work back in circulation again. I hope we can do him credit with maintaining what he left behind.