Tinkering

I’ve been contemplating leaving WordPress for a while. Part of it was a desire for something simpler, part of it was that as I worked on Hieroglyph, I found myself really appreciating the Sphinx build pipeline. Older blog posts on my site have also been in varying states of brokenness for the past few years: I used to use Textile for writing posts, but at some point the WordPress plugin I was using stopped working, so I just let it serve them with the raw markup. It felt like it’d be easier to fix those up into something sane if I had flat files to work with, instead of a relational database.

There are quite a few static site generators these days, but only one that I’ve found that leverages Sphinx. Tinkerer leverages Sphinx, adding an extension for aggregating post pages into archives, categories, and tag pages. Its use of Sphinx means that you can also generate non-blog pages with it, and you have quite a bit of flexibility to extend it if you need to.

Moving from my WordPress backend, I wanted keep the URLs as stable as possible. Tinkerer 1.0 is great, but it did a few things differently than I’d like. Specifically, it:

  • uses the Sphinx HTML builder, which adds .html extensions to the output pages
  • assumes that the blog’s root is the root of the domain (on my site it’s in the /blog/ path)
  • places every post in your RSS feed
  • doesn’t allow you to configure the output path for the feed or archives

I’ve forked Tinkerer on Bitbucket and addressed those issues. Making Tinkerer work with the dirhtml builder was most of the work, as there were several places that assumed you were dealing with HTML files (instead of directories with an index.html inside them). My experience with Sphinx from Hieroglyph came in handy here: the Sphinx HTML builders all have a .get_target_uri() method, which does the right thing. I’m sure there are some things I’ve missed or broken in the process, but my hope is that I can get my changes into shape and merged upstream. I’ve also added several configuration directives for customizing how Tinkerer works. I still need to update the documentation in my fork, but you can see those in the source.

As an aside, if you’re looking at migrating from WordPress to another platform, the exitwp script is a pretty sane place to start. I used it, along with pandoc, to transform my WordPress export into more uniform Restructured Text.

author:Nathan Yergler
category:yergler.net
tags:sphinx, tinkerer, rst
comments:

Meta: What’s up with all the Reading?

So far this year, I’ve published seven posts with the tag “reading“. Of 24 posts this year (already more than all of 2009!), that’s almost a third of my blogging. Put another way, in the first five years of blogging I wrote four book-related posts; I’ve almost doubled that in the first quarter of 2010.

I’ve always loved reading. In middle school, I’d sit with a novel in my lap, trying to read during class without getting caught. Going into this year, I wanted to try things that I hypothesized would make me a better writer. One of these things is reading, specifically reading and thinking about what makes a book or story work or not for me. Another of the things is blogging1, so it made sense to me that I would start to blog what I read. I also wanted to keep track of what I read a little better. Instead of using this as another excuse to build a tool that I’m not sure I’ll actually use, I’m just using tags on the posts: sfpl for books I check-out from the the San Francisco Public Library, fiction for works of fiction, etc. I’d like to use something more structured for this (probably RDFa), but right now I have enough half finished software projects, so tags it is.

And that’s why my blog seems like a book report lately.


1 I see blogging as a practice: something that I do with regularity, which has immediate and cumulative benefits.

date:2010-03-10 07:04:26
wordpress_id:1559
layout:post
slug:meta-whats-up-with-all-the-reading
comments:
category:reading, yergler.net
tags:meta, reading

“All Things in Moderation”

Just a house-keeping note, Akismet seems to be missing lots of single-word comment link spam (ironically many of the comments have “sorry” as the body text; yeah, right). So moderation is now on for all comments, at least for a while. It wouldn’t be such a big deal except that I haven’t been paying daily attention to the site lately, so when I do get around to it, there’s a pile to weed out. If I start having more time for the site, moderation will be lifted. Thanks.

date:2007-06-10 16:20:06
wordpress_id:525
layout:post
slug:all-things-in-moderation
comments:
category:yergler.net

Im-Pressed

I recently blogged about developing a CherryPy application to drive the non-blog portion of yergler.net. Important features (for me) were a clean, web-based admin interface, the ability to organize content into “folders” and the ability to arbitrarily extend the system. After putting together a prototype (which actually worked… mostly), I realized that WordPress had added support for sub-page URLs. “Holy crap,” I thought, “Word Press can act as a mini-CMS, and I’ll get to leverage everything they’ve done [even if it is in PHP]”. So I did.

You’ll notice that yergler.net is now powered by Word Press, along with a handful of plugins and hacks. In the development of the site, I actually did put together my own WordPress plugin, which I’ll hopefully be releasing “real soon now.” Stay tuned.

date:2005-05-25 13:09:38
wordpress_id:299
layout:post
slug:im-pressed
comments:False
category:yergler.net

New Hosting, Again

Well if you can see this post, the DNS changes have propogated, and yergler.net has safely arrived at it’s new home. I’ve moved the domain to TextDrive, and not just because they seem really geeky. More importantly, they have amazing support, really smart people working for them, and Python 2.4 already on their web servers.

Of course, not everything’s quite up to speed yet. The photo albums are offline, as is the CVS repository. They should both be back real soon now, although CVS will be converted to Subversion. If you find something seriously amiss, let me know.

date:2005-01-26 07:05:11
wordpress_id:255
layout:post
slug:new-hosting-again
comments:False
category:yergler.net

WordPress-ed

As I mentioned earlier, the proliferation of spam comments and the flap over Movable Type’s new licensing scheme motivated me to search out other blogging software. As I looked around, my two favorites were TextPattern and WordPress. Given the title of this post, you can probably guess which one I chose.

It took me a couple hours this morning, but I managed to wrangle my MT entries into WordPress, and even got my templates mostly working. I initially evaluated WP 1.02, the latest release, but decided to live on the edge and actually use the current release candidate of 1.2. Overall, it’s very impressive. What have I gained over Movable Type?

  • an improved, stream-lined editting interface that doesn’t require multiple windows for assigning more than one category
  • a template system that doesn’t rely on magic tags, but rather exploits the power of the underlying language (in this case PHP); this might not seem like a lot, but it’s allowed me to recreate parts of MT that WordPress doesn’t provide an interface for (like template “blocks”)
  • templates that live on the filesystem, which makes editting and back up a lot easier
  • oh yeah, and it’s really, really Free. Mark Pilgrim has an excellent post on this very subject, and when smart people agree with me, I feel better.

So why not TextPattern? I have to admit, I was initially drawn to the clean lines and good looks of it’s user interface. Yet somehow, even after reading the license and seeing that it allowed redistribution, I didn’t feel good about it. And then I read this page in the TextPattern forum, and realized that if I chose TP, it’d be MT all over again: free enough for now, not free enough forever.

date:2004-05-20 12:20:23
wordpress_id:132
layout:post
slug:wordpress-ed
comments:
category:yergler.net

Comments, Spam and Dollars

So I’ve been busy with work and yard work lately, so not much time to blog. That said, there’s big news comin’…. just you wait. Until then, I’ve been battling annoying comment spammers who want to promote their “wonder pill” in the obscure entries of my blog. I’ve grown tired of banning IP addresses, so I went and looked at MovableType.org to see if they had anything new I might use to remedy the situation. Boy, was I in for a suprise.

I’ve used MovableType for about 8 months now, with good results. I’ve played with PyBlosxom, and been impressed with it’s customizability and general Python-ness. But the web interface of MT has kept me in place, despite my documented allergy to Perl. I’ve been meaning to write a plugin for PyBlosxom which provides support for the Atom API, but haven’t had the time or motivation. I did manage to convert my photo album to PyBlosxom, and while it’s still not perfect, the entire posting process is going to be much better (from my perspective). So, long story short (too late, I know), I was suprised to see that MT has launched a new 3.0 “Developer’s Edition”. I was even more suprised to see the strong reactions to their newly announced pricing plan.

I don’t begrudge Six Apart’s desire to make money on Movable Type. They’ve obviously put quite a lot of effort into making it one of the easiest to use platforms around. While I love it when my software is free, I also don’t mind putting out for software that does what I want, how I want it (and even better if I can further hack it to my needs). I’m a programmer, and I need to eat, too.

That said, I also understand some of the reactions. Even though they’ve never attempted to disguise their licensing, Movable Type has long been easy to confuse with Open Source. And Open Source is even easier to confuse with “free” (as in Dollars). Evidence: MT is written in Perl, which is Open Source, and as such the code is by nature available. Ben and Menna were invited to present at OSCON 2002. So when you suddenly reassert (in a much more real way) your commercial nature and interests, people are naturally confused and possibly upset. I’m not sure there’s anything Six Apart could have done to prevent this; it’s sort of the nature of the beast, I think (can anyone else think of similar examples?).

Will I be shelling out for MT3? Um, no. First, my usage is so light that I still qualify for the “developer’s” edition, which is free and unsupported. But more than that, I think I want my “free” software to be truly free, if possible. So maybe I’ll write that Atom plugin for PyBlosxom so I can use any Atom-enabled client. Or maybe I’ll try WordPress. And maybe I’ll actually pay the developers of whatever Free tool I use, since that’s what I’d appreciate for my own work.

Whatever I do, it has to be soon: I can’t stand much more of the comment spam.

date:2004-05-14 14:05:06
wordpress_id:128
layout:post
slug:comments-spam-and-dollars
comments:
category:yergler.net

Publishing with PyBlosxom

I’ve now managed to convert the majority of yergler.net over to PyBlosxom. Maybe not the majority… but the non-blog, non-pixelated content. I’m still impressed with it’s flexibility, and even more impressed with the plugin API.

I knew going into the conversion that I didn’t want my entire website to look like a blog. That’s why my blog doesn’t render in the root of my domain. But I also recognized the power of formatting things as “posts.” My solution works like this. I abuse the PyBlosxom “each directory is a category” idea to create the heirarchical structure that I want. Each “entry” in the directories becomes a different page, then, in that category area. Finally, when serving the directory index, I serve the contents of the README file (if it exists) instead of the typical blog-like entry list. This allows for some really simple content management with near-instantaneous publishing.

To get the README file served, each entry as a page, and the directory tree, I wrote a handful of plugins. They’re not really documented yet, but you can find them in cvs.

I order to get the mix of dynamic and static content served the right way, I had to do some serious mod_rewrite hacking. If you find a link that doesn’t work, please, let me know .

date:2004-02-04 13:34:00
wordpress_id:81
layout:post
slug:publishing-with-pyblosxom
comments:
category:yergler.net

Atomic Fun

So the Atom 0.3 Spec is out. For those of you not following the action, Atom is a community driven syndication format proposed as an alternative (nay, better) to RSS. Mark Pilgrim blogged the release with lots of relevant links. Also check out the presentation Atom In Depth given at XML 2003 by Sam Ruby. Oh, and yergler.net is now Atomic.

date:2003-12-16 08:37:33
wordpress_id:63
layout:post
slug:atomic-fun
comments:
category:geek, yergler.net

The Law of Averages 2.0

After doing the design for the mozCC website, I decided that The Law of Averages needed an overhaul, too. Just in time for my birthday, here it is; at least it’s first iteration. I know there are still some layout bugs when viewed with Safari, but I’ll get those worked out. In the mean time, let me know how you like it (or don’t). But remember, I’m not a designer, and I don’t play on one television.

UPDATE: I think the layout bugs in Safari have been fixed. Damn style sheet.

date:2003-11-21 16:25:34
wordpress_id:46
layout:post
slug:the-law-of-averages-20
comments:
category:yergler.net