About

I'm Sean Hise. I build software, and I run Crafted, where we build it for other people.

Most of that is the ordinary kind of work: web and mobile products for companies that need them to actually ship, on actual dates. The rest is tooling -- the small sharp things that sit around the work and make it go faster. Lately most of those are for coding agents, which was a strange thing to start spending my time on and has turned into the most interesting problem on my desk.

How I work

I write the design down before I write the code. Not a specification -- a page or two saying what the thing is, what it deliberately will not do, and which decisions are already settled and why. The list of non-goals does more work than the list of features. It is much cheaper to find out an idea is wrong on the page than three days into it.

I like plain files. When I built a writing app, the first rule I gave it was that documents are plain text on disk and the app owns no format, no library, and no lock-in: writing outlives the app that made it. Most software should be more embarrassed than it is about the data it holds hostage.

And I would rather build the real mechanism than a picture of one. That same app keeps a genuine 80x25 grid of character cells and blits them from the IBM VGA ROM into a framebuffer -- it is a DOS screen because it is built like one, not because it is styled like one. That costs more at the start, and it is almost always the version still standing after the second feature.

Elsewhere

I watch a lot of television and every so often write about it. At the moment I am going through The X-Files from the beginning, which is proceeding roughly how you would expect. Those end up in Writings.

My code is at github.com/srhise, the company's at github.com/craftedup, and mail reaches me at sean@craftedup.com.


Colophon

This screen is simulated fairly honestly. The typeface is the IBM VGA character-generator ROM -- 256 glyphs of 8x16 pixels, dumped from 1987 hardware and compiled into a 5KB webfont in which one character measures exactly nine pixels by sixteen. VGA drew those eight columns into a nine pixel cell and copied the eighth into the ninth across the box-drawing range so the lines would join; that rule is reproduced here, which is why the blocks in the portrait meet without a seam.

Because the cell is exact, everything is measured in whole cells. The screen is eighty columns. The text is sixty-five, centred -- a 6.5 inch line at ten characters per inch, which is what an 8.5 inch page with one inch margins gives you, and what WordPerfect was showing. The status line does the arithmetic a word processor did: six lines to the inch, fifty-four to the page. Scroll and watch it count.

The portrait is a grid of code page 437 cells, each carrying a foreground and a background colour exactly as a cell of VGA text memory did. The half-blocks are where the detail comes from: one cell holding a lower half block, dark over light, is an eyebrow.

No framework, no build step past a Python script, and nothing the page needs JavaScript in order to do. It grew out of phosphor, a writing app that emulates VGA text mode, which is where the font, the palette, the measure and the status line all come from. The link previews are the same screen, drawn through the same ROM.

...: ABOUT.TXT Doc 1Pg 1Ln 1.0"Pos 1"