May 2008 Archives

PHP Paginator 1.01

Comments (4)

I just released PHP Paginator 1.01. PHP Paginator was born out of the frustration of having to reinvent the wheel too many times to do something as simple as creating the next and previous links at the bottom of a page.

I had grown to really like Flickr's model of pagination, which uses a very intelligent way of scaling to provide navigation between potentially thousands of pages. It works by showing only the pages proximal to your current page and then to show you the extremes of your current set. Something far better than Google's atrocious Goooooooooooooooooooooogle pagination "feature."

About PHP Paginator: PHP Paginator is an open source PHP library which makes it trivial to create a list of pages to navigate between.

Living the Dream

Comments (1)

There are few people I respect more on this planet than my cousin Ford. Ford is a person who, for as long as I have known him, has been devoted to helping other people. There are few people I know who give so selflessly.

Several years ago he started The Cottonwood Institute, a non-profit devoted to helping kids obtain a closer understanding and connection with their environment and their community through outdoor education and survival programs.

After several years, I finally feel like things are starting to take off for him. Not only has he hired his first full time employee and cultivated a solid base of benefactors, but the formations of a community around the CWI is beginning to form. Students just recently produced a video for him on YouTube:

People often ask me why blogs are important, and this is why. Ford's blog started off as nothing more than a website, hosted on TypePad. But slowly and surely his blog is evolving into a hub of activity for his students, alumni, benefactors and an entire community of people who share a common interest: The Cottonwood Institute.

Congrats Ford. You have so much to be proud of!

Automagic URL redirection and SEO maximization in Movable Type

TrackBacks (0) Comments (5)
Clean Sweep now allows me to change my URL structure without worrying about how Google might penalize me.

Clean Sweep is a plugin I released in conjunction with Movable Type 4.0 to help users keep URLs and permalinks valid on their web site even after a major change to your URL structure. The plugin worked by tracking broken links on your web site and allowing you to create rewrite rules within Movable Type for those broken links. So, how did this help me?

  1. It increased my site traffic! I am not SEO obsessed. I probably should be, but I am not. So over the years as I have changed my URL structure numerous times and unwittingly broke a lot of inbound links to me. As someone who does not monitor my web server access log for 404s, this went largely unnoticed. Then when I installed Clean Sweep I discovered hundreds of URLs people were attempting to access that resulted in a dead end. As soon as I fixed them people entered my site as opposed to leaving, and many of them stuck around to look for more content. Traffic went up immediately.

  2. Ad revenue went up! This is naturally the result of #1 above as there is always a correlation between ad revenue and site traffic. I will add though that many of the links coming into me were simple a cut and paste error somewhere on the Interweb. These are broken links I could never anticipate. Clean Sweep allowed me to catch all possible ways someone could attempt to come into my site and correct them before they hit a 404 page.

  3. I fixed broken images! Web pages were not the only thing people were trying to find but couldn't. I also found a number of images and screenshots that had managed to break over the years. As a result my content actually got better and looked as professional as the day I published it.

Today I released a new version of Clean Sweep that is smarter than ever before.

This new version (1.1) will look at the URL being requested that could not be found and attempt to auto correct it for any common causes for broken links. This new simple rule set will automatically correct the following mistakes:

  • Change underscores to hyphens - many users like hyphenated URLs not only for their aesthetics but for their purported SEO benefits. Users wishing to switch to using hyphens can now do so without affecting their page rank and without losing traffic.
  • Map legacy Movable Type URL formats - old, old, old versions of Movable Type created file names that used an entry id as opposed to a basename. Clean Sweep will automatically detect this and redirect a user to the proper destination.
  • Look for entries with a common basename - users who have switched from a category-based permalink to a date-based permalink will now have Clean Sweep redirect users accordingly.

These changes have added one last benefit for Clean Sweep:

Clean Sweep now allows me to clean up a lot of cruft that had built up on my blog and to safely change my URL structure without worrying about how Google might penalize me or how it might impact my users.

Want to test it out? Check out these URLs and see how majordojo redirects them accordingly:

Creating plugins in Movable Type, with NO PERL REQUIRED

Comments (1)

Not to long ago I began work on a very cool new theme, or Template Set, for Movable Type. I had built out all the templates and nearly completed all of my work without having to write a single line of Perl code, which was one of those unstated design goals for the project because let's face it, no one should have to write a single line of code, be it Perl, PHP, Python or Ruby, to create a theme for any blog and web site. That is outside the skill set of a typical designer.

But then I got to a point in the project where I wanted to surface configuration options to the user for the theme.

Byrne, meet Wall. Wall, meet Byrne. Smack.

That is when the "unstated design goal" permuted into a new proposal and prototype for how Movable Type can be extended in the future to support 100% perl-less plugins. No kidding. The experimental plugin is called "Movable Type Configuration Assistant."

How it Works

Say you are a designer. You want to build a theme for a web site that someone can just drop in to their blog and have it work. You also want to make the theme configurable while keeping your users from having to know anything about HTML, CSS, PHP or Perl themselves. Just fill out a form and be done with it. Here's the challenge: you don't know how to do that because while you know HTML and CSS like the back of your hand, your knowledge of Perl and/or PHP is some what lacking.

Enter Configuration Assistant.

Configuration Assistant for Movable Type allows you to easily design an entire settings page for your theme or plugin complete with field sets, labels, default values, pull down menus, radio buttons, check boxes, text areas, and text input fields for all the options you wish to expose. You can do this all through a simple config file. Did I say that no perl is required?

The settings a user then saves using this form will automatically be made available to you, the designer, through a set of template tags you choose and that you can use within your templates. Here is a simple example:

Here is an excerpt from a Movable Type config.yaml file that will define two settings for your plugin:

id: MyPluginID
name: My Plugin
blog_config_template: '<mt:PluginConfigForm id="MyPluginID">'
plugin_config:
    MyPluginID:
        fieldset_1:
            feedburner_id:
                type: text
                label: "Feedburner ID"
                hint: "This is the name of your Feedburner feed."
                tag: 'MyPluginFeedburnerID'
            use_feedburner:
                type: checkbox
                label: "Use Feedburner?"
                tag: 'IfFeedburner?'

This is the settings page it creates:

Config Assistant Screenshot

And here is the template code that utilizes the tags it auto-creates for you:

<mt:IfFeedburner>
  My feedburner id is <mt:FeedburnerID>.
<mt:Else>
  Feedburner is disabled!
</mt:IfFeedburner>

Documentation

Status of the Plugin

This plugin is a prototype for something I believe strongly should be in the core of Movable Type. I have built this plugin to serve as a working example for a proposal made to the Movable Type Open Source community.

The plugin needs additional refinement before being fully integrated. Namely:

  • this plugin should extend the existing settings registry key as opposed to defining its own plugin_config registry key.
  • this plugin should support additional form elements like radio, multiple checkboxes, and more.
  • simplify the semantics of the configuration options.
  • this plugin needs to be used by users, have its documentation completed, and be more thoroughly tested.
  • this plugin needs endorsements and approval from the community.

Download

I need help testing this concept. Please consider downloading it and playing around with iit:

Keeping a watch over customers using Twitter, and what it really means to be "open"

Comments (0)

Not too long ago I stumbled upon a user who was having problems with Movable Type who I later helped by working directly with his hosting provider. A couple days later he asked if I would like to do an interview with him, which he published today. The main thrust of the interview is about how companies can better utilize the multitude of emerging communications channels to stay better connected with their customers.

However the interview covers a lot more ground than just the use Twitter. Mike Moran also asks, "Six Apart has been one of the huge forces in blogging over the years. The last few years WordPress has gotten a lot of attention, but what has Six Apart been doing to take back the momentum?"

This is a question I am glad I got to answer:

By focusing more then ever on what we do best: innovation, design and openness. We pay a lot more than lip service to the technologies and products that shape the Internet today. We commit our resources, time, money and energy to things like Atom), TrackBack, DiSO and OpenID. Furthermore we are almost always the first to support cool products and technologies like the iPhone, Fire Eagle and Atom. Then there is all of our open source technology as well, like memcached, perlbal, mogilefs, Movable Type and other cool projects we will be announcing soon.

However, being "open" in our eyes is so much more then creating and maintaining open source software. In this day and age almost anyone can make that claim.

To be truly open is a much larger commitment to embracing good ideas, even when they are not your own, and to supporting the products your customers use, even again, when they are not your own. Take BlogIt for instance--one of Facebook's most popular applications built by Six Apart. Not only does it allow you to post Vox, TypePad and Movable Type like you would expect, but you can also post to WordPress.com, WordPress.org blogs, Twitter, Blogger and others. I think you will be hard pressed to find our competitors actively embracing us the way we are willing to embrace them.

This quality I think really sets us apart from our competitors and is the kind of attitude that I think will draw people to our products.

A right of passage for Harper?

Comments (0)

"Muslims in western India have been observing a bizarre ritual - they've been throwing their young children off a tall building to improve their health."

You kinda have to see it to believe it.



Recent Entries

PHP Paginator 1.01
I just released PHP Paginator 1.01. PHP Paginator was born out of the frustration of having to reinvent the wheel…
Living the Dream
There are few people I respect more on this planet than my cousin Ford. Ford is a person who, for…
Automagic URL redirection and SEO maximization in Movable Type
Clean Sweep now allows me to change my URL structure without worrying about how Google might penalize me. Clean Sweep…
Change Congress