Results tagged “blogging”

A friend of mine recently expressed their confusion over the GPL and how it all relates to the recent bruhaha happening in WordPress land. A quick search on Google will reveal a number of people attempting to answer the same question. Here is my own attempt to answer this question, paying special attention to how this may relate to WordPress themes and plugins.


In an effort to further everyone's understanding of the GPL, let me see if I can shed some light on what the GPL is and how it works.

  1. The GPL governs ones rights to redistribute software using the GPL as a license.

  2. The GPL gives me the right to take GPL code and redistribute it as is (provided that I also respect any related trademarks). For example, I can't take Firefox and redistribute it under the name "Firefox" since the name is a trademark owned by Mozilla and only they have the right to convey its name on software.

  3. Believe it or not, the GPL also allows people to sell copies of GPL software. Most people don't understand this for one simple reason, "why buy the cow when I can get the milk for free." Selling GPL software just doesn't make sense in that regard. But it has been done very successfully. People used to sell Linux on CD - but the value of doing so was clear: at the time to download Linux could take days, so for many shelling out $29.95 for the 5 of so CDs was a huge convenience.

  4. The GPL also says that you can take GPL software, and modify it and redistribute it as well. For example, Microsoft could take the OpenOffice suite, make tons of changes (under auspices of making it better) and then turn right around and sell it. --- There is a catch though, any change you make to GPL software AND also redistribute you must also make available under the same license. In other words, Microsoft would need to make any changes they made to Open Office freely available to others.

    Note: the key here is "redistribution." Because the GPL governs distribution only, it means that I could, as an individual, take OpenOffice, make changes of my own that are TOTALLY AWESOME (naturally) and, provided that I never give a copy of that software to a friend or anyone else, I would never have to share my modifications.

    Another Note: the above note is important because this is why it is reasonable and acceptable for someone to download a copy of WordPress, modify it, pay a consultant to modify it, add features to it, redesign it, etc, etc, etc. and never be compelled to share the mods they have made, or be compelled to open source anything else in their organization.

  5. The GPL also says I can take a portion of code from a GPL program and include it in my own. For example, say I want to write a blogging platform in Perl. I have written most of the code myself, but I deem Movable Type's commenting system to be perfect. So I cut and paste large portions of it into my software. Under the GPL, this is equivalent to forming a derived work, and my new blogging platform is compelled to be GPL as well.

Now let's look at what makes the WordPress theme debate special:

  • The GPL defines something called a "derivative work." When I take Firefox, edit the source, recompile and redistribute it, that forms an obvious derivative work. All derivative works are bound by the terms of the GPL.

  • The GPL also defines a derivative work as a piece of software that runs in the same shared memory space as a GPL program. In layman's terms this means that if a piece of software, say a theme or plugin (even it is distributed separately from the another piece of GPL software), is designed to run in conjunction with GPL software, then the two of them, by virtue of sharing the same memory/process when they run form a derivative work, and thus, the theme/plugin is bound by the GPL.

Ok, why the debate?

Well, their is some ambiguity over what forms a derivative work. I believe this stems from the fact that most people don't understand technically the concept of "shared memory space." But I believe this FAQ answer from the FSF makes clear the intent of the licensor:

If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed. (emphasis mine)

So, although the Free Software foundation states their belief that this forms a derivative work, their own language admits that it does not conclusively do so.

But Byrne, I still don't understand all this techno-mumbo-jumbo. Just tell me, why is there a debate?

Let's clarify one more thing that I have seen many people get confused about. The GPL is NOT law. It is just a contract between two parties. If those two parties have a dispute over the terms, or their interpretation of the contract, then it is up to a judge to resolve the dispute and assess damages.

What makes the GPL special with regards to contracts is that is a standardized one. Meaning tons of people have accepted and/or conveyed the license to others. So if a judge rendered a judgement that helped to resolve the ambiguity of what constitutes a derivative work, then just like that, we would have legal precedence to reinforce anyone else's claims contingent upon this definition.

Finally, let's suppose Matt does sue Chris Pearson, what could he actually get from Chris?

I do not personally think Matt can claim that he has suffered any damages (e.g. lost revenue) from Chris' distribution of a proprietary theme, so I don't think a law suit would result in any money changing hands. But Matt can ask a judge to compel him to comply with the license and force him, by way of a court order, to distribute his themes according to the terms of the GPL. That's it.


And that is my take on the GPL, especially with regards to themes. I have my opinion as to whether Chris should open source his themes, but at the end of the day it doesn't matter what I think because in my mind this amounts to nothing more than a contract dispute between Chris and Matt. So, have at it guys. Wait, let me get some popcorn.

Ok, now have at it.

To my Movable Type fans and followers, I apologize for not posting here more frequently about Movable Type. You will find that I have moved a lot of my Movable Type blogging to two places:

My most recent post however is one that I feel warrants being cross posted, because it is news I am particular excited about. From the blog post on Melody:

A couple of weeks ago I posted my thoughts on creating a new packaging format for Melody plugins and its advantages:

The biggest advantage to [this new packaging format] is to allow us to use github to automate plugin and theme installation and upgrades because now one could easily do this: (snip)

What I am snipping out of the above quote are some geeky command lines which illustrate how to checkout a project from git. Such command line snippets now seem anachronistic given that the community has taken a major step in implementing this vision through a new plugin which, after a little TLC, will find its way right into Melody.

What is most exciting I think is the path and roadmap this plugin squarely puts us on. From the plugin's README:

This plugin is part of a larger effort to completely overhaul how plugins are discovered, installed and managed in Movable Type and Melody. The roadmap for this plugin is for it to interface directly with a centralized plugin directory managed by the community. In this capacity, the need to enter a git url at all will be completely obviated. Instead, users will search for the plugin they want from within Melody, and then click "install." The directory will know the git URL so users don't have to.

For the most part, Media Manager does not yet expose any template tags of its own. The only template tags exposes by this plugin are specifically for interfacing with Amazon's API.

AmazonItemSearch

AmazonItemSearch is a container tag and is responsible for conducting virtually all searches against Amazon's Marketing/Product API. Using this container tag you can search for Books, DVDs, or any product in their catalog, as well wishlists and more.

The arguments/attributes this template tag supports is drawn directly from the Net::Amazon. In fact, all of the search parameters supported by Net::Amazon's search() method are supported as attributed by this tag. This tag can be used to search for a specific item (e.g. by UPC or ASIN ID), or a group of items (e.g. by keyword or category).

For example, here are some of the search parameters supported by Net::Amazon (for a complete list please visit Net::Amazon's homepage).

  • asin - Returns a single item identified by its ASIN (or Amazon ID).
  • actor - Return items starring an actor (or actress!). This is useful for video. Can return many results.
  • artist - Return items created by an artist. This is useful for music. Can return many results.
  • author - Search for items created by the specified author. This is useful for books obviously. Can return many results.
  • browsenode - Returns a list of items by category ID (node). For example node "4025" is the CGI books category. You can add a keywords parameter to filter the results by that keyword.
  • exchange - Returns an item offered by a third-party seller. The item is referenced by the so-called exchange ID.
  • keyword (or keywords) - Search by keyword, mandatory parameters keyword and mode. Can return many results.
  • wishlist - Search for all items in a specified wishlist. Can return many results.
  • upc - Music search by UPC (product barcode), mandatory parameter upc. mode has to be set to music. Returns at most one result.
  • isbn - Book search by ISBN (International Standard Book Number), mandatory parameter isbn. Returns at most one result. When searching non-US locales use the 13-digit ISBN.
  • similar - Search for all items similar to the one represented by the ASIN provided. Can return many results.
  • blended - Initiate a search for items in all categories.
  • seller - Start a search on items sold by a specific third-party seller, referenced by its ID (not seller name).
  • mode - The catalog by which to restrict your search. Common values are: Books, DVD, DigitalMusic, Merchants, VHS, and Video. A complete list can be found on Amazon's web site.

You can even combine the attributes to create compound searches. For example, to search for all books about "Blogging" you would use this tag:

<mt:AmazonItemSearch mode="book" keyword="blogging">
  <mt:if name="__first__"><ul></mt:if>
  <li><$mt:AmazonTitle$></li>
  <mt:if name="__last__"></ul></mt:if>
</mt:AmazonItemSearch>

AmazonASIN

Return the ASIN of the current Amazon product or item in context. This must be contained by the AmazonItemSearch tag.

AmazonTitle

Return the title or product name of the current Amazon product or item in context. This must be contained by the AmazonItemSearch tag.

AmazonDetailPageURL

Return the URL to the product currently in context. This URL will contain your Amazon associates ID if you have specified one. This must be contained by the AmazonItemSearch tag.

AmazonProductGroup

Return the product group of the item currently in context. This must be contained by the AmazonItemSearch tag.

AmazonImageTag

This returns a complete HTML tag referring the image associated with the current item in context. A user can optionally specify the size of the image they would like returned. The following values are allowed to be used in the size attribute:

  • thumb
  • small
  • medium
  • large

For example, the following template tag:

<$mt:AmazonImageTag size="small"$>

Returns the following HTML:

<img src="URL" width="WIDTH" height="HEIGHT" alt="ITEM TITLE" />

AmazonCustomImageURL

Amazon has a robust system for transforming images in the catalog in a number of different ways. Through this mechanism users can:

  • blur an image
  • rotate an image
  • specify the exact width of an image
  • add a drop shadow to the image
  • and more

To make it easier to tweak images in these ways, the CustomImageURL tag was created. It accepts the following attributes:

  • size - small|medium|large|thumb
  • width -
  • blur - 0-100, where 0 is clear, and 100 is blurry as hell
  • rotate -
  • shadow - left|right, to display a drop shadow on the left and right side respectively
  • percent - 0-100, to display a "45% off" pill on the image
  • percent_loc - left|right to display the "percent off pill" in the lower left, or lower right hand corner respectively

AmazonPrice

This returns the price of the current item. Amazon of course sells multiple version of an item. One can buy an item used or new. To specify which price you would like to display on your weblog use the type attribute. Acceptable values are:

  • New
  • Used
  • Refurbished
  • Consult Amazon's Web services documentation for a complete list

For example:

<$mt:AmazonPrice type="New"$>

The price that is returned is "formatted." In other words, it contains a currency character (like the dollar, pound, or euro sign), and the necessary decimals.

AmazonItemProperty

This is one of the more powerful template tags provided by Media Manager for Amazon, as it provides direct access to any attribute or property that a product might have. The list of all of these properties is not listed here because it is an extensive list. The best place to look for these properties can be found at the Net::Amazon homepage. When you click through you will see a bunch of links to modules like:

  • Net::Amazon::Property
  • Net::Amazon::Property::Book
  • Net::Amazon::Property::CE
  • Net::Amazon::Property::DVD
  • Net::Amazon::Property::Music
  • Net::Amazon::Property::Software
  • Net::Amazon::Property::VideoGames

These modules each document the list of properties associated with each product/media type. Let's look at an example. The media type of "Software" supports a property called "studio" which is meant to hold the name of the studio that produced the software. To output this property you could use the following code:

<mt:AmazonItemSearch asin="B00005JNOG">
<img src="<$mt:AmazonItemProperty property="ImageUrlMedium"$>" /><br />
<a href="<$mt:AmazonDetailPageURL$>"><$mt:AmazonTitle$></a> - 
Studio: <$mt:AmazonItemProperty property="studio"$>
</mt:AmazonItemSearch>

Example Code

The following template tag sample code will show the last 4 Amazon items you added your system.

<mt:Assets type="amazon" lastn="4">
<mt:AssetsHeader>
<div class="sidebar-module pkg" style="width: 185px; clear: right;">
  <h2 class="module-header">Currently</h2>
  <div class="module-content">
    <ul class="module-list"></mt:AssetsHeader>
      <li class="item" style="float:left">
        <a class="asset-image" href="<$mt:AssetURL$>">
          <div style="height: 75px; width: 75px; padding: 5px; background-repeat: no-repeat; background-position: center center; background-image: url(<$mt:AssetThumbnailURL width="75"$>)"></div></a>
      </li>
    <mt:AssetsFooter></ul>
  </div>
</div>
</mt:AssetsFooter>
</mt:Assets>

See the documentation for the "Assets" tag for more information.

Meet Melody

People who know me, know that I love Movable Type. In fact I have devoted much of the last five years to the product and its community. Therefore it gives me great pride and much relief to be a part of the launch of Melody, a new community-driven content management and blogging platform based upon Movable Type.

melody-logo-on-white.jpg

I have written extensively about what motivated me and others to create this project so I won't bother recapitulating that here.

What is likely to get lost today in whatever attention this humble project is likely to attract is any mention of the people who have helped take this project this far. Without the dedication of these people over the past six years Movable Type would be a fundamentally different product than it is today, and Melody might never have happened. So I would like to carve out a little space to say thank you to the following contributors to Melody and my friends:

  • Jay Allen - While I have been remiss in mentioning it here, Jay and I are now partners in what is becoming a very successful Movable Type (and now Melody) consulting business. For Melody Jay has been playing the role of lead developer by helping manage code merges with Movable Type, organizing our source code and writing all of our developer contribution guidelines.

  • Jesse Gardner - I have worked with Jesse for years. It was a pleasure to work with him on the design of Movable Type [dot org] and an even greater privilege to work with him on what I think is a damn fine looking web site and the home for our new community: OpenMelody.org.

  • Tim Appnel - Tim has been a dutiful project manager as well as our system administrator taking on the unglamorous and thankless task of setting up servers, managing ACLs, and all the other stuff that makes the bits and bytes flow as God intended.

  • Dan Wolfgang - Dan built out our web site, and has been first in line to take stuff off of people's plates when they become too full. Never under-estimate the value of load balancing people. Seriously.

  • Mark Stosberg - Mark's invaluable experience in serving on the boards of several non-profits has helped us greatly in our process of writing our own by-laws for the Open Melody Software Group. He is also our unofficial ambassador to the greater Perl community in CPAN, where he helps to maintain a number of modules.

  • Su - I have never known Su to be one who likes the lime light, so I will simply say this: he has been a consistent and reliable voice of reason within our group, which is essential when dealing with so many people who are as passionate as we are.

  • Arvind Satyanarayn - The famous Movable Type prodigy-kid and author of Custom Fields took a break from college girls and parties to help contribute much needed code and infrastructure that will undoubtedly become essential to the project. He also surprised us all by merging all of Movable Type 4.261 into the latest development branch of Melody - hoooo-aaaah!

Finally, I would like to thank Six Apart. There is no doubt that many people will want to spin this initiative by the community in a way that impugns the company and the many people who work there and whom I call a friend. There is no way around the simple and basic truth: without them, this project would not exist and without their support of the project, I doubt it could reach its fullest potential.

And after all is said and done, this is what Melody is all about: these people, our community, and the many people who will follow. Thank you!

The Photo Gallery Plugin for Movable Type does more than provide a photo blogging theme for Movable Type users, it transforms the Movable Type user interface to make managing, editing and uploading photos easier.

Mid-Century Photo Gallery

Prerequisites

Download

Bug Reports

The Photo Gallery plugin is constantly being improved. Please submit bug reports via the following approved mechanisms:

Features

  • Quickly install a professionally design photo gallery to your web site that is seamless extension of the popular "Mid-Century" blog theme for Movable Type.
  • Multiple layouts for the front door, including a traditional photo blog layout, or a grid layout in which thumbnails predominate.
  • Feature photos on the front door of your photo blog using the @featured tag.
  • Utilize an enhanced photo management screen that replaces Movable Type's default Manage Entries and Manage Assets screens.
  • Use a stream lined and enhanced upload wizard which replaces Movable Type's default Upload File dialog.

Documentation

Installation

To install this plugin follow the instructions found here:

http://tinyurl.com/easy-plugin-install

Usage: Uploading Photos and More

Check out: Using Photo Gallery

About Mid-Century Photo Gallery

This theme is open source and based upon the amazing design work of Jim Ramsey. It is designed to be a seamless extension of his popular Movable Type theme called Mid-Century.

Release Notes

Stop Design/Doug Bowman's Templates

Starting with version 2.2 of this plugin, the popular Stop Design Photo Gallery Templates are no longer included in this plugin, and sadly, no longer supported. They simply were too complex and costly to support going forward. However, for users wishing to have access to those templates, they may download the Stop Design Gallery Theme separately.

Upgrading from Photo Gallery 1.0

See "Upgrading Photo Gallery."

Software providers never want you to know that success will not come from their tools alone. That is because "social media" is about people and content first, and technology second.

My experience in managing communities as well as building the software that has helped others do the same gives me a unique perspective on the process and tools needed to make a web site powered in whole or in part by its community successful. I can advise you on your next major community-oriented web site, produce or initiative.


Understanding the Value of Social Media

Slowly the world is beginning to appreciate that "social media" is a concept that can great extend a company's reach into their customer base, carry their message and products to new markets and great improve customer relations by opening up communications and actively engaging in and seeking out a dialog with them. But how do you put this concept into practice? And perhaps more importantly, how do you measure your success after doing so?

This is where I can help with a number of different services, including:

  • Strategic Consulting - let me come and assess your company's "social media readiness" and compile a report outlining specific techniques you can utilize to achieve the goals we work together to define.

  • Training - let me come to your company and present the concepts behind "social media" to a select team, or the entire company. Then let me setup hands-on training with your community managers to help them make the most of the many tools and services at their disposal.

  • Technology and Implementation Services - I am well versed not just in the concepts behind social media, but also in putting them to practice among community managers, and also in implementing them in products and the tools you are already using. After a more thorough examination of your needs, I can also help you to implement the recommendations I provide.

Contact me now.

Learning more about Social Media

Services

I am an experienced entrepreneur, blogger, community manager, technologist and product manager. My breadth of experience across the many disciplines that work together to make a product and community successful enable me to be incredibly creative and effective at helping clients bring innovative and engaging products to market.

Learn more about my services in the following areas:

Getting Fired CartoonThree weeks ago my wonderful and fruitful tenure at Six Apart came to an unexpected and abrupt end when the company laid me and 8% of my friends coworkers off. In the wake of my dismissal I tried to understand why such a dedicated and passionate employee with so many accomplishments, with such a deep knowledge of each of their many products and who, as a former coworker told me, was "part of the DNA of the company" could be cut loose.

Layoff Tweet

The more I thought about it though, the more I realized that it is just too easy to be bitter, and that the truth is that I have so much more to be proud of and thankful for having worked there: such as playing an important role in the invention of OpenID, helping to drive one of the most successful launches in Six Apart's history and spear heading the effort to open source Movable Type. In fact, it is my having worked there that may very well be what saves me in the end. Following what few initial slightly ambiguous tweets I did make regarding my change in status, I was inundated with email not only from friends, but also and more surprisingly from readers and followers of my blog that I didn't even know I had.

The influx of inquiries, offers of freelance work, job referrals and simple words of encouragement made me conscious for the first time of the extent of the network I was building just by doing and sharing with people what I love and do best: creating. And I can't help but think that the knowledge, experience and connections made while at Six Apart had a little something to do with the amazing network of friends, followers and supporters I now know I have.

So, now I begin to look forward, past the upset and disappointment of having been laid off from a company I love and admire, and towards a future I may otherwise have never been able to imagine for myself. What that future is however has not fully taken shape, as there is surprisingly a great deal of opportunity out there.

I would be curious what friends and followers of this blog think I should do? Should I venture off on my own? Try to make something of Test Run? Become a premiere Movable Type consultant? Join a new and innovative company? Or, considering the economic climate, play it safe and join something more established? Let me know what you think:

As I am in the process of deciding what is next for me, I am also looking for contract work that will allow me to make this decision in my own time. I already have some exciting projects lined up and that I am working on, but I am looking for more. So if you, or someone you know needs help, there are few who know more about Movable Type. Drop me a line and let me know what you need help with, be it Movable Type, PHP, Perl, TypePad, blogging, or Product Management.

This plugin is a prototype that provides a new layout and design to a blog's Member Users area of the Movable Type CMS/blogging/publishing platform.

Screenshot

Enhanced Member Management Screenshot

The Revolution Theme will begin to transcend the blogging platform it was originally designed for, and Brian as a designer will gain greater visibility in a market he has yet to tap.

In a post on wordpress wank, one of the only blogs by a WordPress user who actually thinks and blogs critically about the service they love, an interesting thread has begun following the announcement that the popular Revolution WordPress theme would go open source. In that discussion Nathan Rice asks:

As long as themes are selling, why make them free?

The answer to this question is easy in my mind: distribution. The real question people should be asking themselves is this: can selling themes be a profit center for a designer. Meaning, if all they did was sell themes, could they support a family. The answer is almost certainly: no. (But I invite anyone to tell me differently because I would sincerely like to know).

Why is this?

First, the blogging market is already relatively commoditized forcing most customers to be pretty price sensitive since bloggers have grown accustomed to get everything for free. That means that a designer cannot sell a theme for more than $150 or so because their customer base feels that anything higher would be too much.

Second, if the max I could sell a theme for is $150 per theme let's say, how many do I have to sell in order to make a living doing so? Too many. So many in fact, that I have exceeded the number of people willing to pay anything at all in the first place. Designer, meet ceiling.

So as a designer, what good is it for me to sell themes at all?

Simple: selling themes is a relatively low cost way to establish a recurring revenue stream for your business. Even if it never becomes a profit center, at least you can count on making a couple hundred bucks or more a month.

Ok, then, so if it makes me any money at all, then why make it free?

Perhaps never, but by selling a product you establish some obligation with the customer to support the product you are selling, and it is quite possible based upon the popularity of your theme, that the cost to the designer to provide support begins to eat away at the revenue they are making selling it. That could have happened to Brian.

But perhaps Brian saw his gross revenues decline. It would be reasonable for him to attribute that trend to one of two things:

  1. the market is not growing - everyone who has a theme has already purchased one and the market is saturated.

  2. increased competition - more and more people are trying to sell to the same market and you are losing customers to competition.

It is safe to say that #1 is definitely not true as the number of blogs created every day is astounding. That leaves us with option #2: increased competition.

So how do you compete more effectively in an increasingly competitive market?

You make your designs ubiquitous, and by so doing you make your brand ubiquitous. You use your design to service every designer's real revenue base: the services they provide.

And that is precisely what Brian has done. He is going to compete better than everyone else because more people will go to him to get started with a good looking design because the design is free. Then, when the user needs to take their design to the next level, who are they most likely going to go to for help?

Brian.

Only time will tell if Brian's decision was a good one for his business, but I suspect that it will be. I for one am ecstatic about his GPL'ing Revolution and you can bet that as soon as it is released, you will find a version available for Movable Type soon after, which is what I think will be his greatest win: the Revolution Theme will begin to transcend the blogging platform it was originally designed for, and Brian as a designer will gain greater visibility in a market he has yet to tap. He may choose not to support Movable Type users, that is a distinct possibility, but his brand will be known among its users - and that is always good for business.

It must be a great source of pride to have your web site surface as the number one search result on Google when you search for just your singular first name. Even with a relatively unique name like "Byrne" I have no hope in hell of appearing above the likes of David Byrne or Gabriel Byrne. Alas my relative obscurity.

Of course what must be even more impressive is when your name is as common as Bill, John or Matt and your website still comes up as the number on search result. I mean come on, how many Matts must there be in the world?

TypePad LogoFor example, if you search for "Matt" today, guess who comes up? A TypePad blogger who in 2006, chronicled a 6 month adventure that took him through 39 countries on all 7 continents to do one simple thing: video tape himself dancing. Then one year later after gaining a little bit of notoriety he was approached again to go on another round-the-world trip; but this time to video tape himself dancing with other people.



The pride I feel is that it is the company I work for is the one that helps Matt tell his story and millions more like him. Not all them come up as the number one search result in Google for their name, but thanks to TypePad and other blogging systems, their blog and web site does come up as their stories unfold.

Today I am happy to announce the availability of the first Movable Type plugin to make use of Movable Type 4.2's built in support for OpenID 2.0. The Yahoo! OpenID plugin for Movable Type allows users to provide Yahoo! users with a specially crafted login experience specific to them:

Movable Type's ability to allow developers to build these customized logins, such as the one for AOL/AIM and WordPress, helps to make OpenID accessible to everyone - especially those who don't understand that a URL can be used to login to a web site.

Movable Type and Drupal are the only blogging platforms that have support for OpenID 2.0 built into its core that I know of.

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.

Major props to David Recordon, Bryan Tighe and Jamison Weiser on the release of Blog It Powered by TypePad. Blog It is special to me because it manifests a core value and principal we all share at Six Apart: to make blogging better for everyone. It shows a desire to reach out to bloggers everywhere, regardless of your preferred blogging tool, and help make your blogging experience better. By the way, if the idea of working on cool projects like this one, or if the idea of having 1 day a week to hack on anything you like, or if the idea of helping to shape the very fabric of the Internet like OpenID, Atom and OAuth is exciting to you, or if you share with us the genuine desire to make blogging better for everyone - Six Apart is hiring!

Years ago Ben Trott introduced one of the first seminal technologies and protocols that would shape the very nature of blogging and our industry today. Subsequently, WordPress released an alternate Link Back protocol, the umbrella term to refer to all of these notification schemes.

The release of a second notification protocol spurred some mild debate among protocol junkies about which one is better. Let's review the general state of affairs:

  • TrackBack is pretty broken as it stands today. The discovery mechanism is god-awful, and the protocol is prone to exploitation and spam. Generally speaking, given the percentage of TrackBacks that are spam, it makes me wonder why bother at all. The spec is so bad for example that WordPress claims it supports TrackBack, but blatantly doesn't even implement it as written.
  • PingBack does not have the breadth of adoption that TrackBack has (at least when TrackBack was first released), but it is moot given the sheer market force of WordPress. It is in some respects more secure, but not fundamentally, just consequentially. That too doesn't matter because the net result is the same: there is less PingBack spam then TrackBack spam.

So in this week's hackathon I thought I would take a stab at implementing PingBack for Movable Type. I am not done yet, but there is code available and it does technically work.

Up until now, all of my opinions on PingBack were merely philosophical, but now that I have an implementation under my belt I have a deeper more informed position on the pros and cons of the protocol.

  • XML-RPC - the fact that PingBack utilizes XML-RPC is most likely the reason why the protocol is marginally less spammy than TrackBack, because it raises the bar for spammers and eliminates random HTTP POST spam from the equation. But here is the rub - because PingBack has no authentication layer associated with it, it is still fundamentally as insecure as TrackBack.

  • Weak Requirements - The idea behind PingBack is more reliable stems from the requirement that a server ("A") should confirm that the client ("B") indeed has a valid link from B to A. However, the requirement, as stated, is actually:

    The server MAY attempt to fetch the source URI to verify that the source does indeed link to the target.

    Something I learned from Brad Fitzpatrick when helping to shape the YADIS protocol is that any specification that includes a MAY requirement, might as well not stipulate the requirement at all because you are signaling to the developer that the requirement is not important. Even though authors of the PingBack specification cannot control the implementations, they should at least put a stake in the ground and say - if you want to be compliant with this spec, then you MUST take steps to ensure the validity of the ping. As it stands now, that step is optional.

  • Insufficient Data Exchange - strictly from a developer perspective the fact that the protocol only calls for two pieces of data to be sent from a client to a server, the source URL and target URL, makes the process of implementation a little frustrating. With so little data being exchanged, it is incumbent upon the developer to extract any meaningful data at all from the source URL. There is no transmission of an excerpt, an author, a source title, or anything. I must determine all that for myself.

    Now in theory this is not so bothersome, because in theory that is all the data you should need. But in practice the fact that there is no deterministic, specified or even recommended way for me to do so, makes the process of implementation bothersome. What PingBack needs is a binding to Atom, or a recommendation that states a source URI should publish an XML representation of the originating resource to make it easier for a server to extract an excerpt, author name, post title, etc. Then again perhaps rewriting a spec to work around my laziness isn't always the best approach. :)

Does it matter?

Actually no. My opinions actually have no bearing on whether or not I will implement or how I will implement PingBack. Because the reality is that with so many WordPress blogs out there, it would be a disservice to Movable Type users not to.

Plus, let's face it: noone is going to change the PingBack protocol simply because I have some issues with it. C'est la vie.

Which leaves us with...

Where to go from here?

What this process has left me with is a renewed appreciation for how important notifications are in the world of online communications. Ben Trott invented something fundamental to modern communications and the fabric of interconnected online content, and just because the current set of specifications all kind of suck in their own way, does not lessen that importance.

Therefore, the industry really should reinvest in these protocols in to improve security, reduce spam, and broaden adoption to more communications tools.

I don't know what the solution is, but my growing belief is that neither TrackBack or PingBack is adequate anymore. I am confident however that there is no need to waste time in the politics of inventing a new standard when we already have one that is more then sufficient: Atom).

So I wonder, does Atom have a role to play in enabling publishing systems to help communicate and establish links between one another?

When I started blogging 5 years ago I had a vision that majordojo would be the place where I would collect and share those things that I find online that interest and inspire me. It would be a soap box at times, but mostly a scrap book and way for me to stay connected to the people I care about. As innovators recognized, as I had, this power and freedom in publishing they began to develop new tools and services to help build communities around and to connect people around the world to all sorts of content: photos, music, bookmarks, news stories, books, etc.

And build tools they did. The Internet exploded with amazing new ways for people to share information with each other. Their tools integrated seamlessly with existing desktop applications like Flickr's photo uploader, with your music player like Last.fm's iTunes plugin, with your browser like del.icio.us' bookmark extension for Firefox and even with your cell phone like Twitter's text messaging service. These new tools made the process of sharing such a seamless extension of my everyday experience online that naturally I began to use them.

the people I care about [became] frustrated by the fact that there are too many places to check on the Internet to follow what I am doing.

And now, I often post photos of Harper on Vox for my family and friends, I collect bookmarks on del.icio.us and mag.nolia, I send text messages to Twitter, I watch my friends post photos on Flickr and flag the best photos as a "favorite," I use Digg, Last.fm, Pandora and the list goes on and on. And the more services like these that I use, the farther away I get from the original vision of what my blog, majordojo, would be: a place to collect and share all of this information.

Who cares right? Well, the net result has ultimately led to many of the people I care about to become frustrated by the fact that there are too many places to check on the Internet to follow what I am doing. And that matters to me.

And I believe it matters to others as well, which is why I believe a number of the services I use such as Flickr, Mag.nolia and del.icio.us to ultimately develop features that are capable of automatically publishing an entry to my blog summarizing my activity within their service for the day. This, at the very least, helps to keep a blogger's activity cataloged and aggregated in one place.

But this process is still broken. First of all the level of knowledge required to take advantage of these features makes them virtually inaccessible to all except an elite geeky few. Just look at del.icio.us' daily blog posting settings area. Can anyone honestly tell me this makes sense?

delicious-blog-post.png

But poor usability and UI design on the part of the service provider is not the only reason why this process is broken.

Aggregating all of these activities I participate in across the Internet should be as seamless and as easy as it was for me to create them in the first place. And until now, nothing has been made available that collects and publishes this data for your personal blog.

But this plugin is not just about activity aggregation, it about control.

Today, we released for Movable Type Open Source a plugin called Action Streams that allows users to input the various services they use, and from that information automatically aggregate and make available for publishing a list of all the events on those services, provided of course that the service actually exposes this information in some way shape or form.

But this plugin is not just about activity aggregation, it about control. Because if there is one thing to learn from the one service that even remotely capable of performing this service for you, is that control and privacy is not just important, it is paramount. That is why this plugin:

  • is 100% free and open source
  • is available for a 100% free and open source blogging platform
  • allows users to select which events are public and which are private
  • allows users to select which services to aggregate and show activity from
  • utilizes open standards to collect and publish data
  • and allows users to distribute and do with this data what they please

You can see this plugin in action in a number of different places:

But no matter how "cool" I think this is, the single most important thing to me is that Action Streams has helped majordojo return to its original purpose: to act as a central aggregation for all of my activity online, and to do so in a way that just works that doesn't require me to do any extra work. Just use the tools I like to use, and let it do the rest.

To Learn More

My Dojo

This is a blog by Byrne Reese. I proudly live in Oakland, California and work at Six Apart - the makers of the blogging software powering this blog - and hundreds of thousands more like it. I support Open Source, Open Internet Standards and Data Portability. I create software and manage people who create software.

For the record:

  • I don't even want to disclose how much money I pissed down the toilet when I bought back all my NBCi stock options and then sold them for next to nothing.
  • I am blogging about this song.
  • Harper never blogged from the womb.
  • If I am past my prime at age 29, then I am screwed. Next week I turn 33.
  • I am firmly entrenched in almost all of the buzz words listed: wiki, open api, social graph, tag, user contributed content, ajax, folksonomy, podcast, mashup, and rss

Thanks Tina!

CMSWire recently published a video/interview with me about Movable Type 4, the Movable Type Community Solution and MTOS and the future of blogging and the future of products at Six Apart and... no that's it.

During a recent visit to the Six Apart offices in San Francisco, we had a chance to pick the brains of one of the fine gentlemen sitting in the eye of this storm. Byrne Reese is the lead product manager for Movable Type. He’s the person primarily responsible for the release of Movable Type 4, and has been intimately involved in what’s now called the Movable Type Community Solution. Byrne is presently heads-down on the open source version of Movable Type (MTOS).

So yesterday was a day just like any other day, except that I had the pleasure of listening to a Movable Type user rant about our claimed, but "lacking" support for podcasting. Man, it hurts hearing such a passionate user become so frustrated.

But it is precisely at times like those that we at Six Apart swallow our pride and listen to our users. Not hear them. But actually listen to them.

And you know what, Todd is right about at least one thing: Movable Type's support for podcasting could be better. A lot better. So I went ahead and slapped together the first Podcasting Plugin for Movable Type 4.0, and I call upon Todd (and the rest of the Movable Type user community) to help me make this the best podcasting plugin for any blogging product.

Now I put together this first pass really quickly - in just a couple of hours actually, which I think is a testament to how easy it is to build a plugin on Movable Type for anyone who knows a little Perl, not to mention evidence to what it means to be a true Media Platform (see also the YouTube, Flickr and Amazon asset integration provided by Media Manager).

But I digress. I purposefully put together the most minimal feature set possible and still meet Todd's basic requirement: the ability to link to an externally hosted MP3 file and have Movable Type encode the necessary enclosures within an RSS and/or Atom feed. For fun I am redistributing a free flash MP3 player licensed under the creative commons to make it easy for users to allow readers to listen to their MP3 files directly from their blog.

But now I need to pass the baton to Todd, ProNet (especially Budd) and any other serious podcaster (Niall?) to help me shape the remaining feature set for this plugin. As a Product Manager myself I am reasonably certain think I could define a feature set myself, despite how clueless Todd may think I am, but I really do want this plugin to be something informed directly by the community. So please, everyone, chime in.

Todd, I am personally sorry you had a hard time with Movable Type. I sincerely hope this plugin will begin to provide the functionality you need, and I hope we can continue to evolve its feature set together as a team.

2 3  


Recent Comments

  • Welcome back Todd! Thank you so much for your help. Remember, I wanted to create a shell of a plugin for the first pass. A clean-slate if you will, that we can begin to refine. ...

  • Byrne We are going to start testing this tomorrow, thanks for putting it together and I hope the rest of the plugin developers add all the extra goodies to it that will make it a better plugin. Todd.. ...

Close