Such devlog, many progress, wow

A project log for poobrains

A paranoid web framework for aspiring media terrorists

phrykphryk 02/28/2018 at 08:350 Comments

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

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:

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).