College English Class on the Postprint Era

Excellent looking course syllabus and overview for Internet-Age Writing. The class is ENG 371WR: Writing for Nonreaders in the Postprint Era.

Week 4 looks excellent:

Week 4: The Kindle Question

Is Amazon’s wireless reading device the Segway of handheld gadgets? Should it be smaller, come with headphones, and play MP3s instead of display book text? Students will discuss.

Also not to be missed are the course electives.


Automatically Post Safari Tabs to With “topost” Tag

I wrote a short AppleScript yesterday to allow you to automatically add the current tab in Safari to your bookmarks in with a specified tag or tags. The default tag is “toPost.” Add the script into Quicksilver as a trigger and you’ve got an über convenient post later (or never) script.

Here is the script (or download it here):

-- To change the tags, edit text inside quotes below
-- Use spaces to seperate multiple tags (ex: "tagOne tagTwo")
set tags to "toPost"

-- build delicious URL for current tab in frontmost window of Safari
tell application "Safari"
    set u to (name of current tab of front window) & ¬
        "&url=" & (URL of current tab of front window) & ¬
        "&tags=" & tags
end tell

-- Add URL to Delicious
tell application "Safari"
    do JavaScript "javascript:void(open('" & u & "','delicious','toolbar=no,width=150,height=100'));" in document 1
    delay 0.5
    close current tab of front window

end tell

This is basically a simple modification of the script written by Andrew Faden which does pretty much the same except from NetNewsWire instead of Safari. Be sure to check out his original script and also the much improved version submitted by Larry from

WordPress 2.3.1 Plugin Incompatibility

I upgraded to WordPress 2.3.1 last week and for the most part, all seemed to go well. Even though I’m not actually displaying any tags for my posts yet, I wanted to get upgraded quickly so that I could start working on generating tags for new and old posts. It’s going to be a lot of back-breaking labor to get caught up (okay fine, slight exaggeration).

I noticed a couple of days ago that when I tried to post to the site using the Textmate blogging bundle, I was getting the following error at the top of the window.

Received exception:Missing return value!

Normally when you post successfully from TextMate, all sorts of metadata is appended to the top of you post in TextMate, including the permalink for the post. It also automatically opens a new tab to the post in your web browser.

When I started getting this error both the permalink appending and web browser page opening functions stopped working. Oddly enough, the entry was still actually posted to my blog. I immediately assumed that this error had something to do with the new tagging features and that maybe the TextMate blogging bundle wasn’t quite up to snuff. No problem, Google to the rescue.

Amazingly, my Google searches turned up almost nothing useful on the subject. Eventually, I recovered one tiny little detail using “wordpress 2.3 xmlrpc error” as my search term.

The solution appears in a comment by Daniel Jalkut on the Red Sweater Blog.

…my first reaction when I see that kind of vague error is that a plugin in your WordPress installation is incompatible with WP 2.3. By any chance are you running the Google Sitemap Generator plugin? It’s one that has been identified by a few users as needing update after going to 2.3. See:

If you’re not running that, it could be another plugin. Generally the “XML-RPC Response Parsing Failed” happens when some plugin causes the entire fetch to fail, so WordPress just returns a blank response instead of an XML document.

While the error in question was actually somewhat different than mine, I do in fact use the Google Sitemap plugin. I disabled the plugin and tried posting again. Bingo, problem solved.

UPDATE: The version of the Google Sitemap plugin that was giving me this problem was 2.7.1. My WordPress install indicated that there wasn’t an update for this plugin, but when I actually went to the site I found that there was one. The new version is 3.0.1 and seems to work fine. The admin interface also looks much better.

Creating An Archives Page In WordPress

In my most recent blog design I’ve created a single page for all of my post archives. Previously, I had links to my monthly archive pages in the sidebar. After blogging for about 14 months, this list became a little bit unwieldy. My solution was to move the entire archives section out of the sidebar, and into its own page. The archives page is now more prominently linked from the main navigation bar.

Unfortunately, doing all of this in WordPress is not quite as straightforward as one might hope. Now that I have mine all set up, I figured I’d post a walkthrough of how to set up something like my archive index page.

Get A Plugin To Do the Dirty Work

Unless you’re interested in writing the PHP code and MYSQL queries to retrieve all of your archives in an organized fashion, a plugin is the way to go. After a quick Google search, I found the SRG Clean Archives plugin. This plugin is quite nice I’ve found. It’s realatively easy to implement and also (and importantly), it’s also very easy to modify to fit your site design.

The plugin will give you a list of all your post titles, organized by month. There is also the nice feature where the post titles begin with a post date. Check out the clean archives demo page for an example.

Simply install the plugin like any other normal plugin and then activate it.

Set Up the Archive Page In WordPress

The next step is to set up the actual archive page in WordPress. There is a tutorial in the WordPress codex about how to do this called Creating An Archive Index. I’m just going to briefly outline the steps here.


Open your archives.php file. If you’re using a basic template, then this file probably already exists. If you’re using the default Kubric theme, your archives.php file will look like this:

Template Name: Archives

<?php get_header(); ?>

<div id="content" class="widecolumn">

<?php include (TEMPLATEPATH . '/searchform.php'); ?>

<h2>Archives by Month:</h2>
        <?php wp_get_archives('type=monthly'); ?>

<h2>Archives by Subject:</h2>
         <?php wp_list_categories(); ?>


<?php get_footer(); ?>

As always, I would suggest making a backup of this file before changing anything. Now modify the archives.php file to look like this:

Template Name: Archives

<?php get_header(); ?>

<div id="content" class="widecolumn">


<?php get_footer(); ?>

If you’re using your own template (like I am), then you may need to either update or create the archives.php file to make sure it is consistant with your blog design. A good starting place for this is to simply copy your single.php file to your archives.php. Now, delete the entire “loop”.

Note on Page Templates You can create any kind of page template you want. All you need to do is insert the following code at the very top of your PHP file.

Template Name: template-name

Make sure your archives.php file starts with these lines, or else you’ll be banging you head against the monitor trying to figure out while ‘Archives’ isn’t listed as an option in the Page Template dropdown menu. Believe me, I speak from experience.

Create A Page In WordPress

Now have to set up a plain old page in WordPress.

  1. Login to the WordPress Admin area
  2. Go to Manage -> Pages
  3. Click Create a new page
  4. Enter an appropriate title. This will be the title of your archive index page.
  5. Leave the content area blank
  6. In the Page Template box, select Archives.
  7. In the Page Slug box. Type something suitable as this will be the permalink for your archives page (
  8. Click Save.

Now obviously, you have to create a link to your new archives page. We already set it up, complete with the URL. Yours should be in the form of Just make a link to it somewhere on your site.

Call the Plugin

As you’ll notice, our fancy Archive Index is empty. In order to get all of our archives in there, we have to use a simple PHP function to call the SRG Clean Archives plugin.

Open your archives.php file again. Find this section of the page:

<div id="content" class="widecolumn">


Now add the following PHP function to call the plugin:

<div id="content" class="widecolumn">
    <?php srg_clean_archives(); ?>

Save the archives.php file and refresh your browser. You should now see a nice list of all of your archives.


As I noted earlier, the SRG Clean Archives plugin is nice because it’s easy to modify if you want to. The Clean Archives website is well documented and the plugin contains a readme file explaining this as well.

The default style for SRG Clean Archives is to output the month and year, surrounded by <strong> tags. You might want something else, like a list or header tags.

To change this, open the srg_clean_archives.php file in your plugins folder and find the following line:

 echo get_archives_link($url, $text, '','<strong>','</strong>');

Modify the strong tags to suit your needs. For example, mine now looks like this:

 echo get_archives_link($url, $text, '','<h2 class="archivemonth">','</h2>');

You can find more information about this on the SRG Clean Archives plugin website.

SRG Clean Archives also provides you with class names so that you can style list however you want in your CSS. I’ve added the following styles to mine:

/* For Archive page */
h2.archivemonth {margin:30px 0 0 0;padding:0;}
    h2.archivemonth a:visited {color:#9db550;}
ul.archivelist {border-bottom:1px #ddd solid;list-style:none;margin:0;padding:0;}
    ul.archivelist li {border-top:1px #ddd solid;}
        ul.archivelist li a {display:block;padding:2px 0 0 20px;}
        ul.archivelist li a:link, ul.archivelist li a:visited, ul.archivelist li a:active {color:#000;}
        ul.archivelist li a:hover {background-color:#eee;color:#000;text-decoration:none;}


Note: I changed SRG’s default class name from ‘postpermonth’ to ‘archivelist’.

That’s All

Well, that’s pretty much it. I hope you guys find this useful. Feedback and corrections are always appreciated.

Update 2/25/09: This method was tested and works on SRG Clean Archives version 2.1. This version is old! Please check out all of the feature upgrades for the plugin from it’s home page. If you still want to proceed with my method, you can download the plugin here:


So here it is. My blog, on WordPress, finally. So far, things are kind of rough. I’ve recently found out the a couple of months ago when I moved my Blogger blog over to the new Blogger Beta, that it was actually a really bad idea. Blogger Beta is fine, but apparently nobody has gotten around to writing anything to import a Blogger Beta blog to WordPress. Yikes, a total disaster. My blog isn’t even that big either.

Luckily, I’m not the only one having this problem. I found this great post on WebbleYou that explains how to hack your way around the old Blogger import and get it to work.

Everything worked great for me until I got to the part where I had to import my mysql dump into my WordPress database. The query failed for some reason I couldn’t understand (I understand very little mysql). I tried twice with no luck and then gave up. It turned out to be okay that I couldn’t figure it out because my WordPress database was actually empty, so I was able to just replace the whole damn thing without going through that funky import thing.

The import was great, but it left a lot of work to be done still.

  • Finish formatting of posts: A lot of the formatting on the posts got really messed up during the import so I have to backtrack that and fix it. I’m also kind of trying to standardize the style of my posts (if you look back, I’ve tried quite a few different things over the last couple of months).
  • Fix broken links for photos and videos: None of the links for the photos or videos transferred, so I’ve been working through those as well. I’m also moving them all over to my new web space as well.
  • Format Comments and get rid of some of those Anonymous comments: I want to check all of the comments to make sure they look good as well. I’m also going to add in the names (or something that identifies) of most of the commentors. I know who you are.
  • Categories: I was really excited about finally being able to do categories (in a non-hackish way) on my blogs. Then I realized that that means I have to created them and tag all my posts. Yuck.
  • Add muchas plugins: I’ve already started this, but I want to get all of the cool plugins set up of course.
  • Design Descisions: For now, while I get all of the basics up to snuff, I’m sticking with the default template with only a few changes. I plan on brining back something very similar to my design on Blogger, but that’s gonna be a whole new project. It will take me some time to work through developing a template for WordPress. I can modify things pretty easilty, but I think that I want to do a complete overhaul.

I’m sure there are a few other things that I’m missing here, but that’s a good start. As you may have noticed, the url has changed for my blog. Please update any bookmarks to the new url:

The old url,, will still work for a little while. Eventually though, I will be putting up a different site at that address.