Six Apart dinner tomorrow cancelled

I just called the restaurant to cancel tomorrow night’s dinner in celebration of two years of Six Apart. I did not hear back from anyone at Six Apart regarding the event and the community did not express much interest.

I think it is important for companies to celebrate milestones and create a corporate culture and sense of pride. Hopefully Six Apart will do something on their own tomorrow to celebrate this business milestone in their own way.

Yahoo! acquires Ludicorp and Flickr

It’s official: Yahoo! has purchased Ludicorp and Flickr. “Pro account holders will get super mega bonuses, to be announced soon.”

News.com reports all Ludicorp employees will relocate to Sunnyvale later this year.

Stewart says: “we prefer to think of it as Flickr taking over Yahoo rather than the other way around.”

As previously reported I am skeptical of the ability to maintain a passionate user base within a big corporation such as Yahoo!. Congratulations to everyone involved and I hope you can continue to build great things and passionate communities.

Six Apart anniversary dinner on Monday

Ben and Mena Trott old picture
Six Apart team in 2004

Sunday is the two-year anniversary of Six Apart as a business entity. To celebrate I am hosting a dinner at Restaurant LuLu in San Francisco on Monday, March 21, at 6:30 p.m. Dinner should cost about $25, or $30 with drinks. Restaurant LuLu is located near Folsom Street and 4th Street in the SoMa area of San Francisco.

Thanks to the Internet Archive we can see what Six Apart looked like in 2003 and compare it to the Six Apart of today. Congratulations on making it this far, and creating a business out of a dedication to enable the individual voice.

If you are interested in having dinner in celebration on Monday evening please leave a comment below or send me an e-mail so I can make arrangements with the restaurant.

Update: Dinner cancelled due to lack of interest.

OpenSearch standard using Movable Type

OpenSearch is a search plugin technology building on RSS to allow content providers to enable searches from a multitude of sites from a common search protocol. You too can have an OpenSearch column using your Movable Type weblog and some small configuration tweaks. I will walk you through the necessary steps to create an OpenSearch channel for your Movable Type weblog. This hack is for advanced users who are comfortable editing their Movable Type configuration file. You break it, you fix it.

Create a new search template

First you need to create a new search template. Create a new text file named osrss.tmpl containing the text below or copy from this text file.

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<rss version="2.0" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">
<channel><MTSearchResults><MTBlogResultHeader>
<title><$MTBlogName remove_html="1" encode_xml="1"$> results for <$MTSearchString$></title>
<link><$MTBlogURL remove_html="1" encode_xml="1"$></link>
<description><$MTBlogDescription remove_html="1" encode_xml="1"$></description>
<managingEditor><MTEntries lastn="1"><$MTEntryAuthorEmail$></MTEntries></managingEditor>
<webMaster><MTEntries lastn="1"><$MTEntryAuthorEmail$></MTEntries></webMaster>
<language>en-us</language>
<pubDate><$MTDate format="%a, %d %b %Y %H:%M:%S "$><$MTBlogTimezone no_colon="1"$></pubDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Movable Type <$MTVersion$></generator>
<ttl>1440</ttl>
<openSearch:totalResults><$MTSearchResultCount$></openSearch:totalResults>
<openSearch:startIndex>1</openSearch:startIndex>
<openSearch:itemsPerPage><$MTSearchResultCount$></openSearch:itemsPerPage>
</MTBlogResultHeader><item>
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
<link><$MTEntryLink encode_xml="1"$></link>
<description><$MTEntryExcerpt encode_xml="1"$></description>
<pubDate><$MTEntryDate format="%a, %d %b %Y %H:%M:%S "$><$MTBlogTimezone no_colon="1"$></pubDate>
<guid isPermaLink="true"><$MTEntryLink encode_xml="1"$></guid>
<author><$MTEntryAuthorEmail$> (<$MTEntryAuthor$>)</author>
<MTEntryIfAllowComments>
<comments><$MTCGIPath$><$MTCommentScript$>?entry_id=<$MTEntryID$></comments>
</MTEntryIfAllowComments>
<MTIfNonEmpty tag="MTEntryCategory">
<category domain="<$MTBlogArchiveURL$>">
<MTParentCategories glue="/"><MTCategoryLabel dirify="1" encode_xml="1"></MTParentCategories>
</category></MTIfNonEmpty>
</item>
</MTSearchResults></channel>
</rss>

Next you will need to upload this search template to your search_templates directory inside your Movable Type installation.

Edit your Movable Type configuration file

Open mt.cfg in the root directory of your Movable Type installation. Find your alternative template section of your configuration file — search for AltTemplate — and add the line below.

AltTemplate osrss osrss.tmpl

Save your configuration file and exit.

Create your OpenSource description

Next you need to create a special XML to describe your search channel to Amazon. Follow the sample markup for the OpenSource description format and create your own description file. You can take a look at my OpenSearch description document for guidance. Upload your completed file to your weblog’s root directory.

You need to use a special URL in the descriptor to call the results of your newly created template.

<Url>PATH TO MT/mt-search.cgi?IncludeBlogs=WEBLOG ID&amp;SearchElement=entries&amp;SearchCutoff=9999999&amp;Template=osrss&amp;search={searchTerms}</Url>

Please note that you must escape the ampersands.

Description of variables
PATH TO MT
The location of your Movable Type installation.
WEBLOG ID
The numeric value corresponding to the weblog against which you would like to conduct a search.
SearchElement
Enter entries to search just weblog entries, comments to search just comments, or both to search both entries and comments.
SearchCutoff
Restrict your search to a number of days in the past. Setting this value to a very large number will allow a search of all your designated content.

Submit your search

That’s it! Submit your OpenSearch search to Amazon and run a test query to make sure you set everything up correctly.

Atom syndication format draft feed

I just finished my implementation of the latest draft of the Atom syndication format specification. I am currently publishing an Atom feed written to the new specification. If you use Movable Type you may be interested in my template.

I used permalinks for my id and I realize permalinks are not a permanent identifier throughout time, space, and switching weblog platforms. The id element is changing with each version and I will sit back and watch for best practices before updating my template.

Ranchero Software interview on DrunkenBlog

NetNewsWire icon

DrunkenBlog posted a lengthy interview with Brent and Sheila Simmons of Ranchero Software. The conversation focuses on what it is like to run a small software business and what about Mac software makes Brent love to write clever applications.

Brent estimates NetNewsWire has a million users including the full and Lite versions. It has been estimated that Bloglines has 2 million users, placing Mac-only NetNewsWire at about half the users of Bloglines.

Ranchero Software: “We grow software.”

Maintaining a high-return workforce

Professors Mark A. Huselid, Brian E. Becker, and Richard W. Beatty published a new book, The Workforce Scorecard, on the often overlooked issue of workforce strategy. HBS Working Knowledge published an excerpt from the book on its web site.

[I]f seniority and job level explain 90 percent of the variation in pay in your organization, you probably need to take another look at how jobs are valued in your firm.

The book emphasizes looking for key contributors outside of the structure of an org chart.

By treating all jobs more or less equally, the organization underinvests in high-return (“A”) positions and overinvests in low-return (“C”) positions. These losses are compounded by underinvestments in high-return employees (“A” players) and overinvestments in low-return employees (“C” players). As a result, high performers leave and low performers stay, which over time creates a drag on firm performance and the need for significant, and often unfocused, layoffs.

Human resource departments are often focused on correcting employees who are not a good organizational fit instead of creating an environment to nurture top performers. Low-return employees drag the performance of the organization down.

The excerpt mentions IBM‘s methods of identifying and enabling high-return positions throughout the organization. IBM is an on-demand business and attempts to create an on-demand workforce.

Key elements that help to create an on-demand workforce include deploying programs that recognize accomplishments, regarding people development as an investment, differentiating performance and rewards, nurturing leadership capacity, driving accountability, and balancing its human asset utilization.

Overall a really good article and in-line with my way of business thinking.

RSS source element: threading your feed

The source element in RSS 2.0 is the most under-utilized item element yet it solves many of the issues of tracking threads and citing an item’s source. I would like to lift the veil on this optional sub-element of item and introduce new ways to track related content inside a feed aggregator.

The purpose of the source element according to the RSS 2.0 specification is to “propagate credit for links, to publicize the sources of news items.” It contains two pieces of information about a cited source: a RSS feed URL and the name of the channel.

<source url=”https://www.niallkennedy.com/blog/index.xml”>Niall Kennedy’s Weblog</source>

Using the code above a weblog post could define the source of the data contained within the post. Using the example from Brent Simmons’ post, two posts from separate weblogs discussing the release of a software upgrade could both point at the software vendor’s release page within their source element to give credit and provide a service to their users to track common threads.

A feed aggregator could gather all of the source elements and determine similar sources and near-neighbor relations. A user could browse a commentary by topic, follow a conversation thread, and discover the most commonly cited post within a given topic.

Sources are commonly cited in HTML by including text such as “(via linked source).” A weblog authoring tool could generate a RSS source element when it parses the post and discovers one representation of a source citation. Aggregators supporting authorship tie-ins should pass this data to the weblog authoring tool. If everyone utilizes the specification to its fullest we should have a much richer experience authoring and consuming new content.