This Space for Rent

Feb 29, 2016

Gold Star!

Gold Star!

An excellent use for a scrap of ripstop I had lying around (for 4-5 years) after making a bag lining.

Feb 28, 2016

Writing peeve of the day.

Self-proclaimed typography experts who state – as if it was handed down on stone tablets from G-d – that you can only put one space after the period at the end of a sentence.

On a computer. Most likely in the context of html. Which, unless you insert special space-like objects (like  , and if someone ends their sentences with .   you should probably back slowly away because they know exactly what they’re doing and it’s not writing (hint: 8 letters, starts with t, lives under a bridge and goes fishing)), treats text as a compressible fluid that serves to separate items and which is typically squashed down to an ~1em wide void.

Look, it’s lovely that you’re doing all your composition on a typewriter, then scanning it in with some bespoke OCR software inside a vmware’d Windows 3.1 environment, and that if you accidentally put a second space after a period the OCR software will dump core and bring the entire virtual machine down with it, but that’s not how everybody does it. I use software that lets me feed regular old text into the computer and end up with nicely typeset pages with, shockingly, automatically set spacing between sentences. And it doesn’t matter if I put one space after the period. Or if I put five. Or twenty.

How about, just as a bit of friendly advice, that you upgrade your publishing dataflow so it doesn’t involve a linotype? If you actually use a computer, wonderful things will happen without having to worry about counting how many effing spaces come after the end of the sentence.

Feb 27, 2016

Out with the old

The old Sellwood bridge from the new Sellwood bridge

Looking across the old Sellwood Bridge from the new Sellwood Bridge.

Fixing a rendering glitch?

Safari (and Firefox) have, for the longest time, rendered monospace fonts in a really teeny size for no particular reason aside from what I can only guess is that there are webkit developers who really don’t like monospace fonts are and trying their damnest to ensure that nobody uses them. I’ve been grouchily living with it for a long time now, but this weekend I published a couple of new releases (postoffice and discount) with lists of feature/bugfixes that were laden with monospace bits and I finally snapped when I saw all the goddamn text in the rendered documents.

So, I took advantage of da google and found a css patch:


Amazing that I have to explicitly tell web software to make fonts regular sized unless otherwise specified.

Sheesh, I can’t wait for the next round of “lets break things” from the open source world.

New Code!

Postoffice has been updated to version 1.5.9 with a year’s worth of debugging and tweaks to make it work more happily on OSX and versions of Linux that use systemd instead of the traditional Unix init/rc setup.

  • Tweak the punctuation on the various “you are tcp wrappered; go away” messages
  • Display env->localhost as part of the DEBUG output
  • Set a default for env->localhost after doing all the configfile and command line options.
  • Add the option ohostname=auto|literal|name;
    • if auto, do as we’ve always done (get machine name from uname, then use gethostbyname to pick up the canonical dns name)
    • if literal, get machine name from uname)
    • otherwise use “name”.

    This means I needed to do some changes to the way I process /etc/ (or whatever config file is set with -C) ; I now make a pass of the command line processing everything EXCEPT -o arguments, then process /etc/ (-C config files were processed when they were encountered on the command line), and finally make a second pass on the command line to process -o options.)

  • If PAM is configured, add “PAM: T” to the output from DEBUG
  • The flock sanity test was bizarrely & brokenly wrong?
  • Add PAM support for AUTH LOGIN (--with-pam configuration option)
  • Check for existance of pw && pass && crypt(pass,pw) before strcmp'ing them.
  • If –with-gdbm, don’t even bother to look for ndbm routines (check $WITH_GDBM)
  • Handle SIGTSTP (signal 18) on modern Unices (temp kludge; need a wrapper)
  • add postoffice -bD (fake daemonize w/o going to bg for Linux systemd rc files)
  • have the ns debug program display AAAA records as AAAA records instead of unknown type records
  • Fix mf.c & smtp.c to compile if milters are not defined
  • Add plists for osx daemonisation (tested on osx 10.5, nothing newer)
  • If the message is being dumped to the spam folder because of tcpwrappers, add a X-Spam header with the reason why.

Some of this support may not be completely baked (I had to migrate my mail server from a FreeBSD 7.x machine to Linux in a hurry when my freebsd service provider went out of business) but it at least works for me™. A large caution is my support for $DENY and $WHY environment variables with tcp wrappers depended on how tcp wrappers handled running twist scripts – I was doing setenv WHY blah blah blah which put $WHY into my environment on 7.x, but when I switched to Linux the environment was given to the child process that ran setenv, so I couldn’t get that value (I fixed this by rewriting tcp wrappers to explicitly set the environment when the twist script was $NAME=value; I need to further modify my copy of tcp wrappers to use instead of the somewhat less than intuitive make arrangement it has right now, and then I'l publish it as a derivative work so I don’t have to keep looking for my modified copy.)

Feb 26, 2016

Friday Dust Mite Blogging™

Dust Mite helps sew up a rando bag

Dust Mite helps me sew up an experimental green rando bag.

New Code!

After a period of almost a year, Discount has been nudged up to version 2.2.0 with a whole huge pile of changes, which are (mainly?):

  • mathjax support (–with-latex) ($$..$$, \(..\), and \[..\], not $..$))
  • make the amalloc() paranoia malloc library even more paranoid by putting markers at the start and the end of each allocated block.
  • Redo comment block handling; standard markdown only treats comments as block html if the start comment marker starts at the beginning of a line and the end comment marker is at the end of a line.
  • clean up broken and insufficiently paranoid parts of
  • When attempting to match the closing tag of an html block, don’t advance the match index unless that character actually matches. (defect: <p></>* was splitting into 2 lines when it should have generated <p><p></>*</p>)
  • if mkd_compile() is called multiple times, actually recompile the document if the flags change.
  • When processing automatic links, explicitly allow extended utf-8 characters as part of the url.
  • Tweak to quote __cwd & __d so that a $__cwd with spaces in the path won’t make (or make install) puke
  • messed up the fwrite() error check in mkd_generatehtml,
  • return EOF instead of -1 on error in mkd_xhtmlpage,
  • if the mkd output fails, exit with nonzero status
  • Handle error conditions and pass errorcodes out of various mkd_xxx output functions (inspired by a patch written by Koen Punt)
  • in mkd_document() don’t pad the generated html with a 0 unless it’s actually generated.
  • If the C compiler generates .dSYM directories, get rid of them during distclean
  • Change the message for the –with-(foo) variables to reflect what it’s actually doing with them.
  • Theme really wants the old behavior of –with-(foo), so pass those settings into theme in a #define
  • Have just state that an option is not supported instead of dying.
  • Convert many configure-time settings to runtime flags
  • Manpage editing by Nathan Phillip Brink
  • Update plan9 support.

I’ve been running this weblog withl all of these tweaks, and it has survived without any mysterious datacenter-destroying explosions (though the FreeBSD vhosting service I was running on went belly-up last month and forced a switch to a linux vhost; I did have the option of another freebsd vhost, but freebsd is chasing Linux down into the cavern of tweaking things for the sake of tweaking things, and if I’m going to have to deal with the Unix equivalent of mystery meat I’ll choose one with a package management system that isn’t as horribly stupid as ports turned out to be) so there’s actually a good chance that you can update your discount libraries and not end up sobbing piteously as everything software related on your server disintegrates.


On Colorado Avenue in Santa Monica

The Santa Monica Air Line lives!

Feb 25, 2016

One last ride across the Sellwood Bridge

One last ride across the Sellwood Bridge

In the middle of the day so I won’t get squashed by rush hour traffic.

Feb 24, 2016

Trolley picture of the day

A southbound S/N train approaches Mason Street

I had to ride up to Harbor Freight to pick up a tubing bender (the [cheap] one I was using for 3/8ths tubing snapped, and my attempts to make up a homemade bender ended up with a couple of kinked tubes :-( ) and when I was loading up after buying one this southbound interurban came sailing around the corner towards me.

Feb 19, 2016

Friday Dust Mite Blogging™

Green Cordura Mite

Dust Mite & the raw materials for another rando bag

Panorama fail

I haven't yet figured out how the panorama feature on my iphone works

I tried to use the panorama feature on my iphone today, and, as you can see, I don’t quite know how it works yet.

Feb 17, 2016

Time to build another frame :-)

At the summit of Mount Tabor

There’s nothing wrong with the kit bike, but I’ve now put enough miles onto it so that I’m moderately confident that my brazing skills are actually up to building trusses that can carry significant weight & there’s nothing like practice to make my skills better. (Also a local bike shop wants to display one of my frames, so I should probably glue one together where the TT doesn'’t slide sideways while I’m brazing the front triangle together)

Feb 15, 2016

Fixed-gear burrito truck

Burrito truck

@Laughing Planet tonight

Feb 13, 2016



The kit bike lives up to its nameplate :-)

Feb 12, 2016

Friday Dust Mite Blogging™

Dust Mite examines a box of worn-out cassettes

Dust Mite & I are collecting a box of old bike parts to be repurposed as bikey art supplies.

Eggcorn of the year?

“tow the conservative party lion” (Kolohe, in a comment on the left-libertarian weblog “Ordinary Times”) is something I’m going to have to work into my intartubing commentary early and often this year.

Feb 10, 2016

Anti-focussed park

Westmoreland Park

The bokeh is pretty good with this lens (a soviet-era Mir-1B; it would be better except that I bought the lens used and the optics are a bit loose) so why not get as much of it as I can fit into the *istDS?

Feb 09, 2016

Not stealthy enough


The paint on the kit bike isn’t weathered nearly as much as the paint on the working Eng!

Feb 08, 2016

Wiring a bike

Internal wiring

The advantage of running the wiring inside the frame is that it reduces the places where wires can trap dirt against the bicycle tubing (and where it can get snagged by blackberry bushes.) The disadvantage of running the wiring inside the frame is fishing the stupid thing through the frame – it took me about 45 minutes to successfully fish a pilot thread through the fork leg. Compared to this amount of time it’s going to be pretty easy to thread wire through the frame because both the DT and the NDS chainstay open into the BB shell, which is huge enough to be able to fit all sorts of implements of grabbing destruction into (thread a pilot in from the chainstay, thread a pilot in from the DT wiring port, tie them together and pull one of them out so there’s just one pilot, then splice it to the power wire, draw that through, then make an offering at the shrine of Frank Sprague before tying it into the power bus and tail light.)

Feb 06, 2016

Trolley picture of the day

A northbound S/N train leaves Tacoma St station

A northbound S/N train departs Tacoma Street.

Feb 05, 2016

Friday Dust Mite Blogging™

Fruits & Mite

Fruits & Mite


Painted and partially assembled

The traction orange spraypaint/primer I used is not very good in the adhesion department, so the first thing I’m going to do when I win the lottery will be to tear it down to the frame and send it off for powdercoating (the second thing will be hiring a contractor to fix everything that’s broken on our house – I’m not COMPLETELY stupid here.)

Feb 03, 2016


Tiny? This box shouldn’t be this small?

Feb 02, 2016

Double ugh!

Oh, yeah, I forgot; Redhat based Linuxes (most of them) use PAM instead of the traditional /etc/password stuff. So vm-pop3d won’t work, nor will postoffice (a /whole/ shitload of other stuff doesn’t work either, like the posting interface to this weblog. So even if I write up a PAM authentication shim layer to configure into vm-pop3d (edit: okay, it turns out vm-pop3d already has a pam layer in it, but it authenticates against the service “vm-pop3d” which make install doesn’t even try to install. Weird. So I modified it to use the “passwd” auth and now it works. It saves me from dovecot, which has the annoying misfeatures of (a) adding new headers to all of the mail in /var/mail/orc and (b) spitting them all up to my mac as Brand! New! messages. Yay open source software, I guess) and postoffice I’d still be left with a nonfunctional system. Ugh, I picked the wrong week to stop sniffing glue.) Argh, just kill me now – I should just find a hosting provider that lets me install homemade system images, then find a way to image the existing gehenna and move it over.

Feb 01, 2016


So the vhosting provider this website is on has decided to go out of business at the end of the month. “No problem”, said I, “it’s a freebsd host so it should be simple to move everything over to a new machine.” So this morning I picked a new vhost provider, paid for a month’s worth of hosting, and started provisioning.


My first attempt was to use a freebsd (10.something) image; gehenna was running 7.something, so it shouldn’t be too much trouble. It took me about a hour to realize that basically EVERYTHING had been subtly CADT‘ed to the point where I was starting to think about flinging my macbook (OSX is also infected with CADT, but since I’m not using it as a server the full fucking horror of the thing is not as much of a showstopper) across the room.

It didn’t help that freebsd switched to clang, which is, horrifically, even more pointlessly anal than gcc has EVER dreamed of being, and which meant that I had to rebuild pretty much all of my'ed programs to compensate for various ridiculous “oh, we know what this function is supposed to do even if you don’t include the header files” failures.

So goodbye to freebsd and back to Linux, which has the dubious advantage of being brain-damaged for much longer than freebsd, so it can’t get /too/ badly fucked up. And then I get to fight with gnu configure (to build lighttpd) and I don’t know what the hell I’m going to need to wedge rc scripts into the all-singing-all-dancing init replacement that infests modern Linuces. But at least here I’ve got a usable package manager (yum) instead of the mindbogglingly stupid ports system that is spiked into the throat of freebsd.

11 packages that I need to carry: lighttpd (kind of horribly open sourceish, but about 1/20th as bloated as Apache is), spamassassin, postoffice, a dnsbl milter, the milter glue for spamassassin, tcp wrappers (no linux package for tcp wrappers. Slick!), git (I don’t know what sort of nonsensical policy is written into $CURRENT, so I’m sticking with, discount, annotations, dropbear (not going to run opensshd, sorry!), and my dns (bind. Yuk. But it’s really the only game in town, and I don’t think I’ve got the patience to write my own dns server.) And only 4 of them use the special snowflake that is GNU configure (which I suspect is the app that made Docker necessary), so once I’ve got lighttpd,spamassassin, the dnsbl milter, the spamassassin milter glue (these last two require special versions to work with postoffice, because the stock ones won’t work with anything except sendmail for no good reason at all) built and starting up it will simply be a slow slide down the hill to insanity.