I don't write often enough, either here or at my always-in-development weblog. Maybe if I finish the software behind it, I'll write more often ;-)

Outsourced Hardware - More failures at work, this time with our main UPS. It has a dead cell, which will likely cost us over $1k CAD (arg). At least we know now what was causing the server reboots. It took a week of weird failures for us to catch it, as the UPS wasn't logging the problems.

So we're looking seriously at outsourcing our hardware. Not our IT, of course, but we're looking to rent rackspace and hardware somewhere (like at dreamhost or rackspace) ... as our fleet is aging, and we're more interested in writing great software.

Hardware/hosting has become a commodity, and the companies that are good at it are *really* good. I've worked with one host for 5+ years now, and they've got their stuff together, and they understand how it works. Our own IT guys will take years to get where most good vhost admins are at, in terms of planning hardware/network/configuration stuff.

It helps to work at the larger scale that the vhosts manage ... we only have ~30 servers here (and each running only a few services), which could really be replaced by a fraction of that. Most vhost farms have a dozens servers running thousands of users each ... which requires actually knowing what you're doing, or learning it. I've seen the difference between vhost farms who know their stuff and those who don't (and it ain't pretty).

BenderBlog - I'm getting closer with the current version of bender ... it's running my test site, and I'm hoping to switch it live soon. It won't be complete, of course, but it will do enough on the front-end to allow people to view the weblog, projects, linklog and articles. The back-end will still require some twiddling, but that's ok for now.

The docutils-style parser (magicmarkup) is coming along well too, and is part of the bender prototype. I ended up with a data-driven recursive-decent parser, despite aiming for something a lot simpler. The parser needed the context and depth (in the dom) to properly represent various types documents.

The data-drive part was fun too, and a future version will be able to load parts of it's parse tree on-demand (startup, or based on special document parts). This will allow the parser to be trained and customized on the fly, something that a lot of the plain-text -> formatted output parsers seem to miss. I'm hoping to support html, xml (for rss), and ps (or latex) for the first version. So far it's limited to html though.

The html renderer for magic-markup is hacked, but it is almost complete enough to use ... except for the special blocks (like meta data). I'll have to add a layer to the dom to handle meta-data, and document sections better (like comments, notes, etc.). Maybe on the weekend.

Hack, slash, refactor - Prototyping complete, working systems, based on first-order design is my current-favorite approach. Documenting a pass of requirements, decomposing the architectre/design (focus on capacity), and prototyping the initial design gives you something to prove a system. It validates requirements, design, capacity and architectural problems, and it makes it easier to complete remaining requirements/design. And, it results in something you can use.