Recently in Movable Type Category

Vindictapart.

| No TrackBacks

Yesterday I made a post to my business weblog with some rough thoughts on the TypePad outage. I had some additional observations that didn't make it into that post I'm going to write up here. These are rhetorical questions that I find fascinating to look at.

Why does the blogosphere think Six Apart sucks so much? We all suck. I suck. You suck. Software sucks. For some reason though it seems Six Apart is at a different level when it comes to ridicule. Why is that? Even people that have never used their tools take pot shots at them. Granted they've made their fair share of mistakes. Take last week's outage for example. Om Malik reported that a number of other hosted applications suffered outages last week. WordPress.com was down for some time as was del.icio.us, gone for most of the weekend. All of these outages are unfortunate, if not annoying, yet you'd be hard pressed to find these others receiving a fraction of the rants that are aimed at Six Apart. The difference in intensity is pretty startling.

Why is the WordPress community so vocal, bordering on vindictive, when it comes to Six Apart? This might be related to my first question, but I've noticed that the WordPress community is pretty aggressive in kicking Six Apart when they're down. Take the comments in this post (the suggestions to use WordPress.com is a bit amusing given they had their own meltdown last week) and this post for example. Why is this? If you are a MT or TypePad user of any stature, make a post griping about your tool and see how many WordPress users show up in the comments. See how many other blog tool users show up. The difference is also pretty startling.

What's even more fascinating to me then all of this is that despite years of "MT|TypePad|Six Apart sucks" rhetoric the company still continues to grow and thrive in leading the market.

So what's the lesson to be learned here?

I Should Be Fired.

| No TrackBacks

Please fire whoever wrot[sic] those install instructions, you've completely cut out and alienated the population who is not very web savvy.

I got a laugh out of the thread this quote came from. Being said person how wrote the installation instructions, I guess I should be fired.

As much as I'm the first one to admit there is always room for improvement in my work, it never ceases to amaze me how many people walk into setting up Movable Type believing it's like installing MS Word on their desktop. No matter how hard any technologist tries, whether it be Microsoft or Six Apart, installing server-based software (remotely nonetheless) will always be a more complex affair then anything on you face on your desktop. Imagine everytime someone in your neighborhood crashed their computer, yours and every neighbor's machine went with it. A scenario like this is only the beginning of what you face.

So here is some advice. If you have never installed software on a server and want a weblog stick with TypePad and if you absolutely must have Movable Type, spring for the extra fee a MT hosting partner like Pair Networks to do it for you.

O'Reilly Mac OS X Developers Conference Speaker

I'll be presenting in just over a week at the O'Reilly Mac OS X Developers conference. My presentation is entitled Running Movable Type Locally. The official abstract posted on my session:

Movable Type is one of the most popular server-based tools for publishing weblogs, but do you know that it can used as a local Mac OS X publishing or knowledge management tool? With MT and Darwin's open source foundations you can. In this session Tim discusses some of the tips and techniques used to do it. Topics covered will range from usage patterns to technical know-how including installation, utilizing the MT API, and a review of helpful plugins and scripts. The session will conclude with some questions, answers and brainstorming.

The idea of this presentation came from the fact I do all of my initial development and testing locally on my Powerbook before moving it to a remote server. (I actually have 3 versions of MT currently running on my machine.) When initially setting my my environment I found a few posts on the topic, but I thought they could be better. While I could easily fill 45 minutes going over that installation step by step, even being so bold as to try doing it live in front of a studio audience, I thought the idea of running MT as a local productivity tool was far more interesting. After all, MT is making strides towards being a platform, why would should it be limited to servers?

  • Do you use (or have tried running) MT in this local manner and if so how?
  • What hurdle do you perceive to running MT in this manner? What is missing?
  • How would you like to see this concept evolved?
  • What specific topics would you like to see covered that is not mentioned in the abstract if you were attending?

Comments are open. Your thoughts are appreciated.

I'll be making any slides or notes I create available after the conference. (Watch this space for more.)

Lastly, if you will be at the conference, please attend my session! My slot is on the last day, last session. I keep telling myself they are saving the best for last, but I'm doing a poor job of convincing myself of that presently.

UPDATE: I tried to put comments into my layout here, but alas the code from the default templates is too much of a hairball to get working. Please use the old fashion way and email me.

MT-Feeds Public Beta.

| No TrackBacks

MT-Feeds is a plugin for publishing syndication feed content into Movable Type templates and the next generation and completely re-written version of my most popular Movable Type plugin mt-rssfeed. Today I'm releasing MT-Feeds as a public beta.

This is a long time coming of course and I am deserving of criticism for taking so damn long. (Though not too much, please.) However when you are a consultant whose livelihood depends on paying work its hard to find the time to focus on such things. This plugin required a great deal of focus since syndication has become far more complex in the past 2 years.

I finally reached the point were I got frustrated with myself having this mostly finished piece of work sitting on my hard drive with few using it. It's here and I still have work to do. See the documentation for specifics. Also know that I am working on a proper business website and other formalities to support this work.

Here is what you need to know about this release.

  • It's a beta. All warnings apply. Please read the documentation for the known bugs and shortcomings.
  • This is a complete rewrite of mt-rssfeed and is not backwards compatable.
  • -Currently it requires MT 3.1. I plan on invesigating how to support 3.0 again and perhaps 2.661. (I make no promises of 2.661 support, but will give it a try.) As of Beta 2, version 3.0D is supported. 2.661 will not be supported.
  • Like its predecessor, MT-Feeds will be released under what I call the Classic MT license. Free for personal and non-profit use though a donation is request. Commercial use requires a paid license. There are limitations on the distribution and associated services you can provide with this work. mt-rssfeed was released under these terms though many overlooked it. Thanks to the handful of you who did!
  • Because of the growing complexity and sophistication of user's needs this plugin is a bit involved to install. I apologize for this, but given the functional requirements there was little I could do. In the future I hope to work on making this easier.
  • Once released I'll be offering low cost installation services for this plugin in addition to investigating a zero-install service offering.
  • New features include:
    • Atom syndication support.
    • Additional support and improved mapping of RSS tags including date tags with native MT formatting support.
    • Easier to configure. (I hope.)
    • Smarter faster caching of syndication feeds including HTTP ETag support.
    • Ability to refresh your subscriptions separately or in the background via cron.
    • Internalization of mt-list functionality.
    • OPML, CSV and plain-text support of subscriptions lists.
    • The ability to render the latest entries from a group of subscriptions.
  • Read this post for more (though dated) detail if you are so inclined.

More to come. I hope the wait was worth it.

This plugin has been officially released under the name Feeds.App.

Adopted Plugins.

| No TrackBacks

As announced here, I'm taking on the responsibility of tending to several plugins originally written and published by Adam Kalsey formerly of the Kalsey Group and now CTO of Pheedo.

When it comes to plugins, Adam has written most of my personal favorites (my own withstanding) that I use on my own site, so I'm honored to take the mantle of these useful widgets. I will now be maintaining:

  • Word count
  • NicknameLink
  • SmartBody
  • Related Entries
  • Archive Date Header
  • Double Space
  • Technorati

I'll be getting them up onto my site shortly with a notice of the change in maintainers. Eventually I suppose I will convert them to PHP though I can't say when.

In related news, Adam has released an update to SimpleComments another great plugin I've used and admired that he has chosen to continue maintaining himself.

After some time in the wild, I am issuing a patch to both the XSearch and Plus packages included in the Six Apart plugin pack initially released with MT 3.1. I'm working with Six Apart to get the plugin pack code updated. Until then and for those who have installed these two packages, I'm making these fixes available now. Users are highly recommended to upgrade.

Download tar.gz
Download zip

This fixes a bug in the MT::Plus module that caused a significant drag on performance of searches that sometimes resulted in occcasion Perl errors. It also handled some exceptions that were generating annoying warning messages when mt-xsearch (XSearch plugin tags) were being used. Includes updated documentation to those packages including installation tips for Plucene and Plucene::Simple.

Installation of these patches is quite straight forward. After successfully installing both XSearch and Plus included in the Six Apart plugin pack, copy the included files into your MT CGI directory maintaining the same structure in the archive.

Lastly, If really want Plucene and Plus on your MT system, but can't or don't want to be bother with installation, contact me about my paid installation services: info@appnel.com

MT 3.1 was released the other day only 3 months after the release of the last version. (The good news) The new version introduces subcategories, publishing in the future, plugin pack (including MT-XSearch and Plus) and new callback hooks. It also introduced dynamic publishing which is causing controversey and has left me rather stunned. (The bad news.) Personally, this one hurts a lot more then the whole licensing controversy.

The issue is that this dynamic page feature was implemented as its own template engine using PHP and Smarty. The dynamic page generation system in MT was a hefty piece of work, but there are some major issues that have me and others wondering if there wasn't a better way. While all built-in tags have been ported and switching between the two models are a matter of a checkbox, all plugin tags will not work. Worse yet, going forward, plugins will have to be developed twice and in two different languages to support both publishing models.

A thread I started on the mt-dev list has errupted into a discussion of the features merits and demerits with this post that Ben Hammersley made.

I'm of a similar mind with Mr. Hammersley's post. Ben Trott was kind enough to post the reasoning and process Six Apart went through in regards to MT's dynamic publishing feature. I wrote a lengthy reply that I thought was worth turning into a weblog post since I've been making so few.

Thank you Ben. It does help. I think a lot and will try and be as concise as possible. (This message will be long anyway, but it could have been much much longer.)

I want to repeat my stance one more time for all just so that is abundantly clear: options are good, very good. The need for dynamic page generation understandable. PHP is fine too. Its how this feature is implemented and was introduced that I have issue with.

One of the biggest burdens I find to working with MT these days is that it requires A LOT of effort to figure out how things work and what is in there because of a lack of timely and accurate documentation.

I did receive the technology preview and frankly didn't notice it was in there until someone mentioned it matter-of-factly at BlogOn. I take the responsibility for not having done my part and looked at those previews so I could said something sooner. I didn't have the time (still don't) in the short span from preview release to beta and didn't realize I was looking at such a seismic shift in architecture. (I had to create (guess at?) my own change log by diffing the lib directory in the the sneak peaks and post it to the mailing list.) In hindsight though Six Apart should have made it more of an issue in its communication. It also should have eased something this big into the community. Having handed out the documentation to how the dynamic page generation system works under the hood and how plugins are developed would have been marvelous!

The options you explored were mostly what I was thinking with option 3 being the most promising also though I had more in mind.

As mentioned by Ben Hammersley, I would have put more effort into the optimizing the rebuild functionality. Part and parcel to that, I would have explored how templates are developed and constructed so they could be optimized for static AND dynamic generation. The bonus being those opting to stick with static generation also benefit. In my experience working with users complaining about the rebuild time of MT, a fair amount was due to resource intensive elements being used repetitively throughout their templates primarily in their sidebars and navigation – next/previous X, latest entry/comments and calendars being the biggest culprits.

For some time now I've had the concept of a Master Site Template on my wishlist. (Start at around the 4th paragraph of this post for what I mean: http://www.timaoutloud.org/archives/000311.html) While making users lives easier by avoiding all of the cutting and pasting involved in the current system, I would think this could help performance because that HTML would be generated once and could be cached or used in the dynamic assembly pages whether it be PHP or Perl.

I also know the comments in the rebuild process says that There is not a good way to determine exact dependencies, but could a template be tokenized and its tag usage recorded when its saved so rebuilds like next/previous pages are more intelligent? (If my templates don't have a NextEntry tag why rebuild the next entry?) Couldn't some of this more intensive information be cached for faster lookups? What if MT would rebuild a series of HTML fragments and assemble those with a lightweight CGI (ala blosxom perhaps with a bit of funky caching) instead of going through the whole MT startup and initialization and incurring the overhead?

I would have been OK with some type of special tag set or other delineation for dynamic page generation. (By making it seem as easy as checking a box, you give an impression that isn't consistent with reality – if you use plugins the templates won't work.) A tool to convert existing templates (instead of the check box) to dynamic ones and flag issues (unrecognized tags) along with advise to potentially working around them – like Arvind's advise of includes – would have been brilliant. While this flies in the face of some of the ideals Ben laid out, so does the current implementation. I've seen a number of users grumbling that their templates don't work. Yes its because their layouts use plugin tags, but as we know, users don't read the manual – some may not even know which tags are plugins and which are not. This is why the current approach and its introduction is so serious in my mind.

The current solution essentially says that the users ideals are absolute and the weight of these ideals will be dumped on (3rd party) developers and there are no tradeoffs. Developers must work twice as hard and be equally as proficient in two languages in order to meet user expectations. I know this was probably not the intent, but that is the result in its current state.

The dynamic page generation technology should have been released as a separate entity and once plugins, know-how and design issues were worked out, integrating it into the MT core. If anything warranted the D moniker in MT this is it!

I realize figuring this out is not trivial (then again that's why you folks are making the big bucks!) and that my ideas are admittedly half baked since I don't have the resources or motivation to figure them out. Despite the analysis you shared, I'm sorry to say that this was still hastily rushed to market and more care should have been applied by easing this into the community rather then the big bang it is.

Now the toothpaste is out of the tube and I'm dreading the impact it going to have my projects and the tool that I've bet my current career and livelihood on.

I regret if I come off heavy handed or a whining crotchety old man (I have not no plans of [making] and a donation of $500 to WordPress), but this is how I honestly feel and it serves little purpose in my mind to not state it.

This text was originally posted here.

Invigorated by my contest win I wrote a plugin over lunch and documentated while only mildly interested in a session I was sitting in.

Entry Edit Link (EEL) enables a weblog to dynamically inserts an Edit This Entry link that will take the user to the MT edit screen for the entry they are viewing. This link is displayed using JavaScript and only is displayed if the user is logged into the MT system that they are publishing the site with.

CAVEATS: EEL only checks if the mt_user cookie exists. Currently it does not check if the cookie is valid or if the author has permission to edit the specific weblog or entry. See the TO DO section in the docs for future directions.

You can download it here

I learned (in person) that I took second place in the SixApart plugin contest last night. I'm floored and honored. Congratulations to my fellow developers who placed.

I only released one of my entries (Tiny Orwell) the other day. That wasn't the winning entry though. The winning entry had two parts. The most relevant to all is Plus 1.0. Plus is a advanced MT entry search engine built on Plucene which allows for a lot more sophisticated and faster searching of content. (Plus is derived from PLUcene Simple a module I relied on to rapidly tap into Plucenes vast functionality.) MT has a built in search, but it only covers the basics and has an akward template and configuration process. Another feature of Plus comes from the second part of my entry that my fellow plugin developers may be interesting. Its called XSearch (eXtensible Search) and its a framework for creating pluggable search facilties in MT. (Plus is just an implementation of one of these search functions.). The built-in search is hardwired and is not extensible which makes its functionality and tags useless to developers like myself. Like so many good works of software, XSearch was scratching my own itch as a MT developer for hire who found myself in situations were I need more control over how the search behaves and needed to seamless integrate with a sites look and feel.

Want to get your hands on it? Wondering were the link is to it? To avoid any confusion I'm going to hold off releasing it and wait for it to come out in Plugin Pack Six Apart is going to be releasing. Besides, having such an unmovable deadline my documentation needs work. I wouldn't want to inflict such frustration on the world. If you really need it now contact me and I'll see what I can do.

As I've been mentioning almost all year, I've been quite busy with coding tasks and other life issues. More recently I focused a great deal of time on my contest entries for the Six Apart plugin developer's contest. I worked right up to the wire and got two entries in. Today I thought I'd make one of them avilable to the public here

Tiny Orwell is a simple TypeKey-like authentication system written in the spirit of the Trackback reference implementation and blosxom. This script provides an alternate to TypeKey for small groups using MT 3.0D or any other tool that supports the TypeKey API with a minimal amount of fuss. It is completely standalone and doesn't require MT at all. How crazy is that for a MT developer's contest?!?!

Users will want to note that currently Tiny Orwell does not have a profile mode nor does it support forced email disclosure the TypeKey API 1.1 (the required use of a token). These are all things I intend on addressing in a future release.

If you are looking for something more commercial grade contact me. I do Movable Type consulting and can help you out.

About this Archive

This page is a archive of recent entries in the Movable Type category.

Mobile Computing is the previous category.

Musings is the next category.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.2rc2-en