Colophon

Not all bloggers are computer geeks with nothing to do but write on Friday nights. We do make up a majority, but there are significant minorities as well.

Punctuation

To stipulate: I realize that I use what is currently non-standard punctuation in certain circumstances, usually near the end of sentences or phrases where two or more punctuation marks succeed each other.

In particular, I put the period or comma outside the quotation mark if it was not in the original, and I do similar things in similar situations. I know this is contrary to centuries of typesetting practice. However, I believe it should be considered correct practice now. Donald Knuth, who among other accomplishments developed the text-formatting program TeX, has studied and thought about the problems of typesetting in the modern world as deeply as anyone, in my opinion. My understanding of his position on this issue is that the original reason we put the comma or period inside the quotes was that otherwise it looked like there was a space between the closing quote and the comma or period. But now, with phototypesetting (and your laser printer is, after all, a small-scale phototypesetter), we can place everything anywhere we want it. So we should start doing it the right way. As with most other things Knuth says, this makes such complete sense that people just start doing it. My intention is always to follow this prescription. (I also converted, as he recommended, from "e-mail" to "email" some time ago. As he said, you're gonna do it sometime; why not do it now and save yourself the trouble of typing all those dashes?)

The Gear

My guess is that almost all bloggers are interested in, and many are even excited about, the process of blogging. It's not just exposing ourselves and our ideas in public; it's also what Thomas de Zengotita in a recent (July 2003) Harper's article named "the gear": all the stuff and knowledge required to perform a specialized task. We get some identity from it, apparently, and the ethic of the community seems to contribute positively to our self-esteem as well. This probably won't last; someone will figure out creative ways to make money on blogging, and the real fun will die out rapidly. But in the meantime, we have a chance to make some serious progress on the issues involved in turning the United States into a real democracy.

Anyway, for the time being, we can all hang virtually, and nerd out over our blogging schemes. This colophon briefly describes mine.

Blogging Tools

Although there are a number of blogging packages available, many of them quite capable to judge by the comments of their users, I decided to make the initial incarnation of this site "by hand". This is how I learn fastest. Then, when I get so I can do the coding in my sleep, I'm ready for a computer to take over.

In the end, I built my own tools using programs of days gone by: AWK/SED and friends, and DOS ("Command Prompt") batch files—okay, you can stop drooling now. These tools allow me to continue using things I've gotten accustomed to, especially Emacs. I don't need a server-based editor; by definition it will be weaker and harder to use than mine. Now I'm thinking about how I can integrate my tools into Emacs.

What to Automate

Basically it seems to me that most of a blog's contents falls into one of two categories: long-term stuff that doesn't change very often, and short-term stuff that changes all the time. I think everything that can be automated should automated; but automation should not be allowed to interfere with those things that can't be automated. Those are reserved to us.

Problems arise in part because we each draw that line in a different place. I don't want software helping me write; I couldn't publish without it. I don't need assistance in spelling; I do need a link checker. And so on. But such a list is necessarily idiosyncratic.

Version 2.0

After blogging for a few months I began to yearn for a new, style-sheet-based implementation, leaving behind the theoretically obsolete method of laying out pages in tables. Also, I came across those gorgeous buttons at Mozilla's developer site. I needed some buttons like those.

Once I figured out how they'd done it, I realized their method had a great advantage for a blog: the buttons are automatically resizable to cover text of any length, because the graphic effect is created by a one-pixel-high JPEG image, repeated vertically. This naturally also makes the site load quickly. So I pretty much just cribbed the idea of using such a linear gradient for buttons from Mozilla.

As for style sheets, if you haven't visted the Zen Garden you should take a look; it's pretty, and impressive, and useful.

Color Schemes

One result of converting to style sheets is the ability to use client-side scripting (in my case, JavaScript) and the Document Object Model (DOM) to provide a choice of color schemes.

This feature was requested by a reader (Hi Eric!) who found the dark backgrounds unpleasant to use. I tried a number of methods for changing the styles before encountering the one I'm using. It involves switching the class name of various HTML elements, so the rendering uses a different set of CSS rules. This method accomplishes my goals in about twenty lines of JavaScript. The CSS has grown due to the extra rules, but it's easy to organize style sheets for readability. And the bottom line is, it works.

Problems I Encountered

I did encounter some problems getting the whole thing together. Probably everyone's heard such sob stories before, so I'm only reporting the high points.

  • Finding various resources on the web

    I spent a lot of time looking at the available fonts, HTML and blogging tools, JavaScripts, and so on. But it was worth it when I found the font I used for the site logo. I found this font, apparently created by Dan Zadorozny at Iconian Fonts, on "Lord Kyl's Medieval & Fantasy Fonts". It's really very close to what I was looking for.

    But what really jumped off the screen was the fact that its name is "Justinian", the Roman emperor during the time of Belisarius, and the source of both his troubles and his opportunities.

  • Becoming facile with the graphics tools

    I've spent a lot of time with text tools and am pretty comfortable with them. As I got better at using Photoshop/ImageReady to construct web objects, I tended to prefer it over Fireworks for most operations, but not all, and moving back and forth was a bit confusing. Plus, when you look at the HTML these programs generate, it looks like it was generated by machine: it's horrible. Even a moderately inept person would generate better code within an hour of being introduced to the relevant algorithms. Fireworks is often a little better here, but neither is really good.

    So I rolled my own HTML using the generated graphics, and a lot of problems went away. In particular, slices tended to break on at least one of the three browsers I habitually test on (Opera, Mozilla, IE). It appeared that the various spacers inserted by Photoshop and Fireworks were irrelevant or worse, but I never found a method that worked reliably on all three browsers. Switching to human-built image maps solved all my problems, and made the HTML simpler and cleaner too.

  • Wanting to use the tools with which I'm familiar

    I've been a user and promoter of Emacs for a quarter century, and although I've learned a lot of other editors, none compare. Therefore I wanted tools that would let me edit in Emacs using HTML Mode. I wanted as much as possible to store all formatting information in cascading style sheets. And I wanted navigation to be consistent and reliable throughout the site, which to me means building the HTML files with a certain amount of automation, including boilerplate material from central sources.

You're welcome to use this form for private as well as public comments; but if you don't want your comments posted to this site, please say so explicitly. As far as I know, this form works in every case, unless you're running XP (and if so, why?). If you have problems with this form, send your comment to count_belisarius@earthlink.net.

All fields are optional.