Saturday, November 18

App::WRT - WRiting Tool, a static site generator and related utilities

Probably a decade after the first time I put it on a TODO list, I finally got around to publishing this site’s underlying software on CPAN. It didn’t used to be called App::WRT; for a long time it was just display.pl, and then Display.pm when I turned it into (sort of) a library.

Last February, I switched it from CGI that ran server-side on every page request to a site generator that would render the entire site to static HTML files. That July, after agonizing about good command names not already taken by real software, I switched the command-line interface from display to wrt, short for writing tool. CPAN naming guidelines suggest putting this sort of thing in the App namespace, so that’s what I did.

CPAN is the Comprehensive Perl Archive Network, a big repository of libraries, utilities, and documentation in Perl. Which is to say that it’s Perl’s answer to npm, Packagist, RubyGems, PyPI, etc. (It would probably be more accurate to say those things are other languages' answer to CPAN, since CPAN dates to the mid-1990s.)

I’ve generally had a bad experience with language-specific package management systems, but after all these years CPAN remains an exception, for all of its foibles. Publishing a release to CPAN turns out to be a very 1990s / early 2000s kind of experience, with a wait to see results and a generally piecemeal feeling. It suffers by comparison to the “push a git tag to the remote” approach to creating a “release” on GitHub. On the other hand, it pushed me to make a bunch of improvements to the documentation and fill out a handful of the features that wrt needs to be usable as a standalone tool.

🌲

I know no one else will ever use this thing. In case you did want to, installing on most GNU/Linux systems should be as simple as running:

$ sudo cpan -i App::WRT

Or, if you happen to have cpanm installed:

$ sudo cpanm App::WRT

Once installed, you should be able to run wrt:

$ wrt
wrt - a writing tool

Usage: /usr/local/bin/wrt [command] [args]
    wrt init        Initialize a wrt repository
    wrt display     Print HTML for entries
    wrt render-all  Render all defined entries to filesystem
    wrt addprop     Add a property to an entry
    wrt findprop    Find entries containing certain properties
    wrt -h          Print this help message

You must specify a command.

In order to make an entry for the current day, create a file like archives/2017/9/18, and write some HTML in it. Or use Markdown, like so:

<h1>Saturday, November 18</>

<markdown>
Your text here.
</markdown>

If I live long enough, I might get around to rewriting wrt in something else, but aside from C, I’m not sure I could have started out by picking a language more boringly likely than Perl to keep working for a couple of decades.

The underlying archive format could be better in some ways, but so far it’s also been fairly future-proof. My only real worry is that one of these days, as the open web vanishes further into the maw of facegooglemazon, HTML itself may start to seem like a bad idea. In that case, however, it should be pretty easy to convert the simple subset of HTML I’m using here to some other language.

Monday, November 13

wednesday, november 8

the snow melting over the green grass
the leaves half fallen
three blackbirds chasing a hawk
haze over the flatirons and
a single lenticular disc of
cloud above the canyon

Tuesday, November 7

mushrooms

A couple of summers ago, we took a roadtrip with some good friends of ours, meeting them in Slovenia and taking a van down to Croatia and along the coast into Albania.

We saw a lot of remarkable things, and spent time with a lot of remarkable people. This isn’t really a post about most of that, though. This is a post about the Albanian built environment.

Albanian architecture is nuts. Our friend, a local by birth, described the predominant mode of building as “mushrooms”. From googling, “concrete mushrooms” is a term often applied to the pillboxes scattered paranoically all over the country during the course of the Hoxha dictatorship. In her usage, though, it was more along the lines of: These ridiculous things that grew up all over the landscape like fungus after a rain once communism collapsed.

One of the first things you notice is concrete and rebar (“the national plant”, as a friend remarked). Reinforced concrete is everywhere, and little tufts of rebar seem to protrude from every other roof and column. This is because few of the buildings started within living memory ever seem to be quite finished. It’s routine to see three or four level structures which are mostly open concrete boxes with businesses or housing built out only the first floor, the top story looking ready to serve as platform for the next layer once someone gets around to it.

I don’t have the vocabulary or the eye to describe the style, really, but there’s a kind of characteristic hodgepodge of clashing designs and types. Brutalism and weird outbursts of eclecticism coexist with a neo-classical-by-way-of-Las-Vegas vibe, sometimes in the same building. Materials will shift radically halfway through a structure. Sometimes you look over and there’s just a tiny house build on the roof of the casino-hotel next door. Multi-story coffeeshop-hotel-gas-stations with cavernous interiors are a routine feature of the landscape, as are empty shells scattered at odd angles in the middle of fields.

Anyway, I took some pictures, thinking that at some point I’d try to do a kind of photo essay about this. They aren’t very good, but they catch some of the flavor and a handful seemed worth posting, even though I don’t really have the time and energy to research and write about the subject like it deserves.

(I should also say that Albania is a fascinating place for many reasons, and the buildings are probably the least of it, though they point to a lot in the history.)