Since 2008, I ran the Scot­tos­phere on a rel­a­tive­ly obscure plat­form called Pyblosx­om, host­ed on a dusty FreeB­SD machine at the far end of a slow DSL con­nec­tion. This arrange­ment worked out sur­pris­ing­ly well.

Begin­ning about a year and a half ago, some frus­trat­ing extend­ed out­ages led me to believe that it was time to move the whole oper­a­tion to a serv­er “in the cloud.” (For­give my egre­gious use of a buzz­word.) This I did, but before I could go live with it, I had to con­front a whole bunch of bugs caused by some arcane incom­pat­i­bil­i­ties between the lat­est ver­sions of Pyblosx­om, some new­er Python libraries, and the heav­i­ly cus­tomized plu­g­ins on which the Scot­tos­phere relied. Among oth­er prob­lems, com­ments didn’t work at all. I hacked on it for longer than nec­es­sary to con­vince myself that it was time to take a dif­fer­ent approach!

I want­ed to move every­thing to a new plat­form that was fea­ture-rich and well sup­port­ed (so I wouldn’t have to write every new fea­ture myself!) but capa­ble of being ful­ly cus­tomized. This left me with only a few choic­es. Word­Press was the obvi­ous stand­out, but it has a lot of neg­a­tives: it’s huge, rel­a­tive­ly slow, and writ­ten in PHP. The default tem­plates and func­tion calls pro­duce a hor­ri­ble mess of HTML that’s near­ly unread­able by humans. But it turns out you can cor­rect most of WordPress’s sins with a clev­er­ly-designed theme, which I set out to do.

But first, I had to bring in my old data. One of the won­der­ful design fea­tures of Pyblosx­om which I will miss is its abil­i­ty to store posts in any sort of markup you desire (HTML, Mark­down, Tex­tile, etc.) and refor­mat them on-the-fly in any out­put “fla­vor” you can design (HTML, XML, etc.). I designed a spe­cial “fla­vor” for Pyblosx­om to spit out the entire site—entries, com­ments, and all—as a WXR file, an XML for­mat used by Word­Press. After pro­cess­ing with a bunch of cus­tom Python scripts to cor­rect obso­lete markup, fix bro­ken links, and move old images over to the new serv­er, I was in busi­ness. Near­ly.

Writ­ing a Word­Press theme from scratch was a lit­tle intim­i­dat­ing. I had no desire to write a bunch of PHP or learn the inter­nal work­ings of the soft­ware, but it was the only way to meet my many design objec­tives. Here is a list of fea­tures that I think are impor­tant:

Posts are locat­ed at exact­ly the same URLs as they were before. Link rot both­ers me, so it was impor­tant not to cre­ate a new scheme.

Respon­sive design. I read Ethan Marcotte’s fan­tas­tic book, Respon­sive Web Design, and real­ized that the era of pix­el-based fixed-width lay­outs is over. Near­ly every ele­ment on this site, includ­ing the images, is now agnos­tic about the size of your screen. Try resiz­ing your brows­er or view­ing the site on a smart-o-phone and you’ll see what I mean. Imple­ment­ing respon­sive design hard­er than it seems, par­tic­u­lar­ly with image cap­tions and embed­ded videos.

New fonts and graph­ic design. It’s dif­fer­ent, but I con­fess I’m not much of a design­er. What do you think?

Bet­ter typog­ra­phy. Auto­mat­ic hyphen­ation of words helps keep the right mar­gin look­ing nice on these long posts.

Micro­for­mat sup­port. The addi­tion of some machine-read­able tags to the HTML makes it pos­si­ble for search engines to bet­ter make sense of this site.

Ten­ta­tive HTML5 forms sup­port. I designed this site to be more or less XHTML 1.0 com­pli­ant, but one of the bet­ter fea­tures of HTML5 is brows­er-based val­i­da­tion of form fields. For the com­ment form, I turn this on with a lit­tle (oh no!) JavaScript. A pleas­ant side-effect on mobile devices is that a more appro­pri­ate vir­tu­al key­board is dis­played for each of the fields.

Word­Press post for­mat sup­port. I want­ed a bet­ter way to show off pho­tos and set them apart from the more text-based con­tent. You prob­a­bly won’t notice if you read this site pri­mar­i­ly through a feed, but I think it’s cool. Watch for it!

This site runs on Pyblosx­om, a weird but
inter­est­ing weblog sys­tem writ­ten in Python. Pyblosx­om has the dual
ben­e­fits of being very light­weight and extreme­ly cus­tomiz­able.
Instead of using a SQL data­base, it stores entries and com­ments in
a filesys­tem tree, which is very con­ve­nient for peo­ple who pre­fer a
com­mand line to a Web inter­face (me). When I select­ed it in ear­ly
2008, it was still being active­ly devel­oped. It also gave me a good
excuse to learn Python, which I have done with mod­est suc­cess.

Per­for­mance and reli­a­bil­i­ty prob­lems with my cur­rent serv­er have
led me to want to move this site to a faster vir­tu­al serv­er
“in the cloud.” Nat­u­ral­ly, I would install the lat­est
ver­sion of Pyblosx­om on said machine, right? Well… For a few
months I’ve been test­ing pyblosx­om 1.5rc2, the fruit of two
years of spo­radic devel­op­ment by the 3 oth­er peo­ple who actu­al­ly
use this soft­ware. Because some back-end redesign neces­si­tat­ed many
changes to my Scot­tos­phere mod­i­fi­ca­tions, it took a while to get it
con­fig­ured again. And indeed, my non-pub­lic stag­ing serv­er is now
about 100 times faster than the cur­rent site. But, to my great
frus­tra­tion, I still can’t get com­ments to work prop­er­ly with
Ajax. It has become a huge waste of time to debug, and I’m
ready to throw in the tow­el. I real­ly don’t want to start
over, but I won­der: should I just give up and switch to
Word­press?

Some excit­ing work is under­way behind the scenes and I will be
announc­ing the addi­tion of more gal­leries as they become avail­able.
There are many improve­ments over my old, home­brew sys­tem: more
speed, a bet­ter inter­face, and high­er res­o­lu­tion top the list. Many
of my old pho­to gal­leries (2002–2009) will be re-appear­ing
under this new site, enhanced with search­able cap­tions and key­words
and, in many cas­es, improved qual­i­ty.

Thanks for your ear­li­er
sug­ges­tions on how to do this. As always, I wel­come your
feed­back.

After an extend­ed absence, the Scot­tos­phere is up and run­ning at
a new domain: scottosphere.org.

My orig­i­nal domain was hijacked last month by a spam­mer in
Domini­ca. Godad­dy, my orig­i­nal reg­is­trar, was moti­vat­ed to not
con­tact me about my pend­ing expi­ra­tion: by auc­tion­ing expir­ing
domain names at a markup to spam­mers, Godad­dy makes an extra
prof­it. And by tak­ing over pop­u­lar sites, spam­mers get a brief
burst of search engine expo­sure and traf­fic. The Inter­net is no
longer a friend­ly place.

I used to take a cer­tain mea­sure of pride in keep­ing no
archives of my old posts. There is some­thing appeal­ing about
using the Web as a sound­ing board for thoughts that even­tu­al­ly fade
away, but more fre­quent­ly I find myself wish­ing I could refer back
to old mate­r­i­al.

Well, it was no small feat, but I’ve done it. Using a
mish­mash of home­made soft­ware I was able to recov­er every dat­ed
entry from the old hand-edit­ed Web page going back to 2001. Fol­low
the links at the bot­tom of this page to year­ly sum­maries. You can
browse entire months or view indi­vid­ual entries direct­ly.

Despite my well-doc­u­ment­ed and some­times poignant dis­like of
weblogs, weblog­ging, the blo­gos­phere, and espe­cial­ly the word
“blog,” I have decid­ed to ven­ture into the land of
“Web 2.0” with this… well, what­ev­er you want to
call it. I’ll call it the Scot­tos­phere.

I hope that this medi­um will allow me to post more fre­quent­ly
than the old hand-edit­ed web page, and that the
“com­ments” fea­ture will fos­ter dis­cus­sion when the
sub­ject war­rants it. Entries will have per­ma­nent links. In
addi­tion, a feed is avail­able for syn­di­ca­tion.

I also took this oppor­tu­ni­ty to school myself on the sur­pris­ing
num­ber of changes to Web stan­dards that have been made since the
release of my favorite brows­er, Netscape 4.0. This site strives to
com­ply with the lat­est good prac­tice for XHTML and CSS while
pre­serv­ing the min­i­mal­ist look of the orig­i­nal
web-page-o’-fun. Syn­di­ca­tion is avail­able as an Atom 1.0
feed, since that is the for­mat endorsed by the IETF. RSS is also
avail­able on request.