Poobrains devlog #6

A few months have passed since I last wrote anything about poobrains' development and I think it's about time I told you what I was up to since then. It's been a lot, so this is probably going to be a semi-long post, even without going into too much depth.

The SVG system has seen the addition of maps and continued work on making plots better. An automatically calculated grid and the application of a hue-rotated color palette to datasets should reduce some of the visual clutter. Error bars are now rendered as well.

Datasets and -points are linkable by fragment identifiers and show their respective info when addressed. Dataset descriptions use the <foreignObject> tag to show a nicely formatted and scrollable HTML description generated from markdown. The same technique is used for the points on a map.

The only problem with <foreignObject> is that chrome simply doesn't support it, so I had to create a shitty text-only fallback as well. At least markdown is pretty human-readable, I guess…

For easy extractability, a json-encoded version of the whole dataset is included in the generated SVG as well.

The CLI can now be used to render plots and maps into files, too.

It also has some important new commands. import and export consume and create ASCII-separated text files, which are just like CSV – only good.

The form system got some TLC too, with paginated forms for foreign key relations, a bunch of fixes and better support for fieldsets through the addition of ProxyFieldset which allows wrapping any form inside a fieldset.

Oh, and checkboxes now use SVG instead of the ugly native controls, sadly without working animation because both firefox and chrome fail at properly handling SVG backgrounds with fragment identifiers…

Another big thing is that poobrains is now self-documenting. A poobrains site can now render its own documentation. This system comes with a custom-written HTML5 pydoc writer because there wasn't a good one.

I also wrote a "quick"start which managed to break the 2000 word barrier. You can access it through the documentation system: documentation/quickstart.

On a typographic note, I changed the default text font to ClearSans because OpenSans seems to have legibility issues on a lot of platforms and changed the default decorative font from Ostrich Sans to Orbitron (both by the dank League of Movable Type) because it's way more cybre.

Last but not least, I spent the last few days making poobrains compatible to peewee 3, the new major version of the ORM poobrains utilizes.

I should be mostly through with it now, but a bunch of issues might still be popping up.

I don't want to stick my neck out too far here, but I think I have all systems I want in poobrains in place. There's still one or two things I'm not sure I want to include, but from now on poobrains development is probably going to be mostly bugfixing and styling/templating work as well as some UX things that are still missing (like letting users properly administer their client certs).