Technology Weblogging

From Press to Form

When I post the Wordform files for download, I’ll provide details of the conversion from WordPress 1.5 to Wordform, but I thought I would provide an overview of the changes, upfront.

First, my decision to make such extensive modifications to WordPress that I decided to fork the code isn’t an indication that I think WordPress is a ‘bad’ tool, or is based on ‘bad’ coding. On the contrary: with this new release, I consider WordPress 1.5 to be one of the best weblogging tools on the market. The new themes design is absolutely brilliant, the user interface is intuitive and easy to use, and the code has been cleaned up very nicely–the developers can be justifiably proud of what they’ve delivered with this release. When the first bug release of the product is available for download, (1.5.1) I can, without hesitation, recommend this tool to any weblogger.

However, my views of what I want from a weblogging tool have been diverging from the WordPress developers for some time; luckily, since WordPress is GPL and I’m also a coder, I can do something about it.

Many of the changes I made to the code to take this tool from WordPress to Wordform are ‘under the covers’. For instance, I pulled all database queries into a separate file so that if I want to make changes to the underlying database I can easily without having to go through individual files looking to see what has broken. Of course, if I add or remove fields, I will have to change code, but in many cases, this additional separation of application and data can mean that even a significant change, such as multi-weblog support, can be made with relatively little impact on the application.

Other changes I made are very apparant to the user. For instance, I pulled all trackback and pingback code. Yup, every last bit of it, including dropping the table columns from the database. The more I looked at pingback and trackback, the more I didn’t like either: the former because it’s nothing more than referrer linking, and the latter because it’s too vulnerable to abuse. Instead of trackback and pingbacks, I’m incorporting the concept of ‘tagbacks’ into the tool, specifically as a focus for either a discussion thread, or as a multi-threaded topic. (More on this in a later post.)

(One side benefit of removing pingback and trackback is that the tool is very fast now. It was fast before I made the change; afterwards, updates and new posts are instantaneous. In addition, I think not having to manage these within the code has also simplified much of it, and simpler code (or more focused code), is easier to maintain.)

Picture of Bam-in-a-CanAnother change I made was to the new WordPress Desktop. Instead of scraping in the WordPress Development weblog and Planet WordPress syndication feeds, I’ve incorporated a page that uses Feed on Feeds, a server-based aggregator that works somewhat like Bloglines. Feed on Feeds is just one of the external applications that can be installed with Wordform, and it allows you to subscribe to various sites. Then, when you access the Wordform Desktop (which has been renamed to “Bam-in-a-Can!”, for no other reason than it’s such a cheerful phrase), you’ll see the updated feeds from all your subscribed sites.

I pulled all implementations of ‘nofollow’ from the tool. I was going to detail how to do this for WordPress users; unfortunately, though, if you want to use WordPress as a tool, you’ll actually have to modify the tool libraries to remove this attribute, not just modify the tool templates. I’m reluctant to provide a ‘how to’ on this, as this will make the tool incompatible with future releases. If you want this information, you’ll need to send me an email.

I also added an option to turn on or off the enclosure functionality. Right now, if you link an MP3 in your post in WordPress, it’s automatically added as a syndication feed podcast. I’d rather give people the option whether to list this as an enclosure or not in their feeds.

I pulled in-page preview from the edit page, and added preview as an option for the main template. With this you can preview a post ‘in context’ –within the page design. I also added spell checking to the edit page, and am pulling the Quicktags in favor of a more sophisticated designer bar (which can be switched out for the existing Quicktags if you prefer the older design bar).

Some other major architectural changes:

  1. Creating a page literally creates a hard page, which can be individually moved. If .htaccess is writable, the page is linked to a virtual directory location; otherwise, you have to move it.
  2. I pulled private posts. The one time I’ve seen this, I didn’t like it. Here you have a weblog with this big “PRIVATE POST” blob in the middle of the page, taunting the readers with what they could not access–the plebians. I figure if a person wants private posts, they should think about having a private weblog. And again, this change nicely simplified the code — the old fewer moving parts, less breakage thing.
  3. I’m incorporating the concept of Wordform Application Modules (WAM) into the underlying tool architecture. These are full featured applications, wrapped to work with Wordform, as compared with plugins, which are bits of code written specifically for Wordform (or I should say, WordPress, as I’m keeping the plugin architecture the same so that Wordform can use most WordPress plugins). The Feed of Feeds implementation in the Bam-in-a-Can page is a example of a WAM.
  4. Comment and post status are pulled from the database and populated in a dropdown box. This allows application module and plug-in developers to add new statuses. I used this myself to add comment moderation on a post-by-post basis.

There are other new changes that I’m still working on, and hope to roll out with the first beta release of the product, some time next week or so.

I did incorporate my old comment management system in Wordform, and pulled the existing WordPress whitelisting functionality. I’m not crazy about whitelisting, and I don’t like blacklisting. What I’m doing is providing an option that allows a person to turn off comments older than a certain date. However, the comment itself isn’t turned off until the first comment that post received after this date. That comment is moderated and than the post is turned off. This allows the weblog user to see if the comment is spam, and if it isn’t, to make a decision whether they want to turn comments back on with that post.

I’ve also added in my old throttle, which will keep a person from being crapflooded; and am enhancing the manageability of the pages that display comments and posts — providing NEXT and PREVIOUS page functionality so a person can page through results. People can also search for comments and posts based on dates and post or comment IDs.

The post-comment editing functionality can take multiple tool backends, so you can use this with WordPress, Textpattern, Movable Type or other weblogging tool. In addition, I have a comments.php file that will work with both Wordform and WordPress, and which will enable spell checking, live preview, and post-comment editing.

While this is all going on, I’m also keeping an eye on the WordPress codebase, to incorporate relevant fixes to functions in Wordform, as they occur. And I have a couple of patches for the WordPress folks that I need to drop into the WordPress bug system, soon as I have a spare moment.

I’ll say one thing with all this effort: if you need help with your WordPress weblog, I’m your woman: I’ll probably know the code almost as well as the developers when I release Wordform 1.0a.

Technology Weblogging

Wordform 1.0a in test

Wordform 1.0a is in development and test at Burningbird. This site has not been updated to most recent version, though I hope to by week’s end.

I also hope to have the first alpha release of the code ready for download next week. Knock on wood.


Sponsorship and client lists

Recovered from the Wayback Machine.

One result of my ruminations while I was on the road the last few weeks was a decision to accept sponsorship and/or ads for Burningbird and my other sites. I’ve signed up at Blogads, and have put a few feelers out here and there for possible sponsorship opportunities.

In addition, I also decided to create a photo shop at Tinfoil Project, where I’ll sell prints of my photos and merchandise that feature my photos. I know that online photo sales is an iffy proposition, but I figure it would give me more experience combining photo software like Coppermine, with a storefront like OsCommerce.

When I returned from the trip, I found out that Kottke had also made a life changing move by quitting his development gig and deciding to weblog fulltime. He coined the term micropatron to describe folks contributing to his site, and it’s one I decided to also grab and use for own nefarious purposes. I can’t promise the grand goody bag that he’s giving out for those who contribute 30.00 or more a year, but I did put together a few odds and ends, as thank-you gifts.

Based on all of this, I’m in the process of creating a Sponsoring Burningbird page, and if you have time, could you check it out and tell me what you think? In addition, I would like to build up a page containing links and small snapshots to sites that I’ve helped in the past–either with design and/or web development. If I’ve helped you in the past, and you wouldn’t mind being included in this page, could you drop me a comment or send me an email?

I still see myself primarily as a writer, and I am spending time each day, either on current assignments or looking for new writing opportunties. I have two specific books I’m currently shopping around to publishers, and also keeping my options open for others. I’m also submitting article suggestions and ideas here and there. If you have some suggestions, or better yet, contacts, in this regard, I’d love to hear from you.

The reason for all of this activity is that I need to kick myself in the butt and get a life going again. And this includes earning enough income to get by and keep my kitty in kibble, and my car in the driveway. Unfortunately, there aren’t a lot of development jobs in St. Louis that use the technologies that I’m most proficient in at the moment. Most places are J2EE with WebSphere, or .NET, neither of which I’ve worked with for a couple of years now. I don’t want to move, and couldn’t afford to anyway, so I need to be aggressive seeking work and opportunities online (in addition to whatever odd jobs I can find here in town). If you know of any that you think might be a good fit for me, or you have other suggestions, again, I sure would love to hear from you.

It’s going to be a nice Spring this year, followed by a kickass year and I feel positive about the future, thanks in no small part to many of you who have helped me in the past. I managed to lose weight during my road trip, and not all of it had to do with body fat–I also dropped some mental baggage that was slowing me down along the way. (I’d be careful traveling along I24 in Tennessee, if I were you. If you see a puddle of depressing looking ooze alongside the road, just keep on going.)

This year is going to be a good year, but as I’m discovering, good things don’t come to you: you have to go find them, make them, or grab them when they hurry past. This is my start, my new year.