This week, I've gotten a plausible burndown list together, which is always as useful for the things not on it as for the things that are ("yes I know that part would be interesting to hack on and we know clever things about doing it, but it's not in the way of the deployment so back off of it for now.") One or two things may turn out to be dependencies (getting RSS generation right might require actually implementing the README.md parser so I have the classic material to start with, although it's also possible that I can treat those as legacy components for now just to get this out the door, since I have generic blogging working.)
Since this is a relatively small static site on a tiny network, the
constraints on web server choice aren't weighted the same, and in
particular "sane configuration" takes precedence over performance
(because none of them are that bad at just throwing files over the
wire) once the basic feature checklist is satisfied. This led me to
satisfy my decade of frustration with Apache configuration by tossing
it out the window and using nginx instead. The
configuration is still arcane, of course, it's just not syntactically
horrifying, and it does start with more modern assumptions about what
things should be easy to express. It's also nearly as pathologically
undebuggable as apache configuration is, and could really use a higher
level configuration language that generates the one it includes - or
at least a macro language - I could easily take the hundred lines of
config I have now and drop it down to fewer than ten descriptive
lines just using cpp
but it's not really worth doing that here and
now.
I also need to start using a simple problem-tracker to remind me of things like that, but a few text files are working out well enough as well, and I really shouldn't let that get in the way of deployment :-)
A codes-well-with-others shoutout to moreutils; a pattern of roughly
chronic flock $command 2>&1 | ifne mail -s "failed" $me
makes a decent git
post-update
hook for triggering a deployment
command on a push to a particular repo.