Need someone to lead product management at your software company? I build high-craft software and the teams that build it. I'm looking for my next opportunity. Check out my resume and get in touch.

This is the blog of Adam Kalsey. Unusual depth and complexity. Rich, full body with a hint of nutty earthiness.

Content Management

Technorati plugin

Freshness Warning
This blog post is over 21 years old. It's possible that the information you read below isn't current and the links no longer work.

Dave Sifry has opened up a Technorati interface that allows outside developers to use the Technorati data. I’ve whipped up a quick MT plugin that can get the Technorati link Cosmos for your entire blog or a specific entry and insert it into your blog pages.

Tim Appnel has taken over the maintenance and support of this plugin as of Oct 2004.

Requirements

  • Movable Type 2.21 or greater.
  • XML::Simple
    The plugin will check to see if this is installed. Any version newer than 1.0 should work, but the plugin has only been tested using v1.08. You can get the module here, or directly from CPAN. Copy the XML directory into your Movable Type extlib directory.
  • XML::Parser
    This is required by XML::Simple. If you don’t already have this installed, your hosting provider will have to do it for you.
  • File::Spec
    Movable Type needs this to run, so you already have it. Don’t worry about it.
  • LWP::UserAgent
    You can run mt-check.cgi to see if you have this. If you need it, follow the Movable Type installation instructions

Suggested

  • MTPlugins::Expressions
    My Expressions plugin is optional and is only needed if you want to use MT tags in your attributes.

Download

Technorati 1.1

Installation

Unzip the Technorati zip file to a directory on your computer.

Configuration

Open the file called technorati.config. You can set common configuration options in this file.

  • Key (required)
    In order to use the Technorati plugin, you’ll need to get an API key from Technorati. Without it, the plugin can’t get any information from Technorati. Find the line that starts with “Key” and change the portion that reads XXXXXXXXXXXX to your developer’s token.
  • CacheDir (optional)
    By default, Technorati looks for a directory called cache in your MT directory. If you would like to have the cache directory located somewhere else, uncomment the line that starts with CacheDir and change it to match your preferences.
  • NoCache (optional)
    If for some reason you don’t want to use the caching features of Technorati, uncomment this line and caching won’t be used. This is not recommended, as it will increase the rebuild times for your pages, but if you are unable to create a writeable cache directory, you can disable caching.
  • Parser (optional)
    You probably don’t need to set this, but if you get XML parsing errors mentioning ASCII encoding, uncomment this line in the config file. Advanced users can specify their own parser instead of XML::Parser if desired.
  • Debug (optional)
    If you are having trouble with the plugin, uncomment this line. Messages will be shown to you during rebuild that tell you whether or not the cache is being used, the Technorati API URL being used by the plugin, and some other information.

Upload

Open your FTP program and navigate to the directory where you have Movable Type (MT) installed.

Upload the MTPlugins directory to MT’s extlib directory in ASCII mode.

Upload technorati.pl in ASCII mode to MT’s plugins directory. If you don’t have a directory called plugins, create one inside your MT directory.

Upload technorati.config in ASCII mode to your MT directory. This file should be in the same place your mt.cfg is.

Create your cache directory. Unless you changed the location in the config file, you should create a directory called cache inside your MT directory. Set the permissions on this directory to 666. (Tip: On some hosts, you may need to set the directory permissions to 777. Try using 666 first and if you get errors about writing to a file, then use 777.)

The cache directory is where the cache files are stored. You may find that this directory ends up with a large number of files in it. If this concerns you, all of the files in the cache directory can be periodically deleted without causing any harm. Technorati will recreate any cache files it needs.

Usage

Oonce you’ve installed the Technorati plugin, you�ll have a set of new Movable Type tags. Use these in your templates to display information about who’s linking to you.

Available tags.

MTTechnorati
A container tag that defines what information you want to retreive from Technorati. MTTechnorati is a smart tag. What it does depends upon the context where it is used. If you use the tag inside an entry, the tag will retreive a list of incoming links to that entry. If you use it outside an entry, the tag will create a list of blogs that link to your blog, a reverse blogroll of sorts. If you want to override this behavior, you can add some attributes to the tag and tell it what URL you would like to retreive Technorati data for.

This container can have the following attributes:

  • url If you define the url attribute, the smart behavior of Technorati is turned off. Instead of getting the links for the blog or for the entry, the plugin will get the links for the URL you specify.
  • mode You can choose to get the Technorati link cosmos for the weblog or a specfic permalink. If you don’t specify the url attribute, the mode is set automatically, but you can override it if you want. If you do set a url, the mode defaults to the cosmos for the weblog. Valid values here are weblog and link.
  • lastn This tells the plugin how many links you want to get back. The plugin will retreive all the links up to the maximum you define. The default is 10.

MTTechnoratiLinkTitle
A tag representing the title of the blog or page that is linking to you. It supports an if_blank attribute that specifies alternate text to display if the tag is empty. The attribute can contain MT Expressions.

MTTechnoratiLinkURL
The URL of the blog that is linking to you. It supports an if_blank attribute that specifies alternate text to display if the tag is empty. The attribute can contain MT Expressions.

MTTechnoratiLinkRSS
The RSS feed for the blog that is linking to you, if it is known by Technorati. It supports an if_blank attribute that specifies alternate text to display if the tag is empty. The attribute can contain MT Expressions.

MTTechnoratiLinkInbound
The number of inbound links to the blog that is linking to you. This is not the number of links to you, but rather the number of links to them.

MTTechnoratiLinkBlogs
The number of blogs linking to the blog that is linking to you. Like MTTechnoratiLinkInbound, this is not the number of blogs linking to you. It supports an if_blank attribute that specifies alternate text to display if the tag is empty. The attribute can contain MT Expressions.

MTTechnoratiLinkPermalink
Technorati’s best guess as to the permalink URL for the blog entry that is linking to you. It supports an if_blank attribute that specifies alternate text to display if the tag is empty. The attribute can contain MT Expressions.

MTTechnoratiLinkExcerpt
An excert from the page that is linking to you. This will be blank for reverse-blogroll searches. It supports an if_blank attribute that specifies alternate text to display if the tag is empty. The attribute can contain MT Expressions.

MTTechnoratiLinkCreated
The date that Technorati first became aware of the link. This will be blank for reverse-blogroll searches. You can use MT’s date tag formatting to format this the way you would like.

MTTechnoratiVersion
The version number of the Technorati plugin.

MTTechnoratiCacheDateTime
The date and time that the plugin cache was last created. The date and time when the cache was last updated. If the cache is new, the current date and time are returned. You can use MT’s date tag formatting to format this the way you would like.

Examples

Get the last 25 sites that linked to your blog:

<ul>
<MTTechnorati lastn="25">
<li><a href="<MTTechnoratiLinkURL>"><MTTechnoratiLinkTitle></a></li>
</MTTechnorati>
</ul>
<p>Last 25 inbound links. <a href="http://technorati.com">Powered by Technorati.</a></p>

Get a list of sites that link to any given blog entry:

<MTEntries lastn="15">
<p><MTEntryTitle></p>
<p>Inbound links to this entry. <a href="http://technorati.com">Powered by Technorati.</a></p>
<ul>
<MTTechnorati>
<li><a href="<MTTechnoratiLinkURL>"><MTTechnoratiLinkTitle></a><br>
<MTTechnoratiLinkExcerpt></li>
</MTTechnorati>
</ul>
</MTEntries>

License

Like our other freeware, this plugin is released under the open-source MIT License. In plain English, that means you can do whatever you want with the software, including modifying it, selling it, or eating it, but we�re not responsible for anything that goes wrong.

Revision History

1.1 - Jun 25, 2004

  • (change) XML errors now give a message in the activity log instead of halting the rebuild.
  • (new) If Technorati doesn’t respond, a message is added to the activity log.
  • (change) The Technorati API’s output is now UTF-8. Removed Jacques Distler’s patch (added in 0.92) to strip control chars, as it now causes problems with multi-byte characters.
  • (change) Support for the LIMIT parameter to the API. You can now request up to 100 lastn items from the plugin without slowing hte rebuild or using more than one request.

1.0 - Jul 24, 2003

  • (Change) Default parser is now XML::Parser on all systems
  • (Fix) Parser preferences are sometimes ignored
  • (New) If Technorati service doesn’t respond, the plugin doesn’t interrupt the build
  • (Change) Better handling of nocache option
  • (New) New arguments on inside tags. ‘if_blank’ allows you to specify text to use if the tag is empty.

0.93 - May 15, 2003

  • (Fix) True/False values in the config file are always interpreted as false in some versions of perl.
  • (Fix) Date formatting tags don’t work on some perl versions.

0.92 - May 14, 2003

  • (New) Added an optional configuration variable for a prefered XML parser.
  • (New) Added an optional configuration variable to disable the cache.
  • (New) Added an optional configuration variable to display debug information.
  • (New) Added an optional configuration variable that forces XML::Simple to use a specific XML parser.
  • (New) TechnoratiLinkCreated tag now accepts date formating arguments.
  • (New) Plugin attempts to correct some common XML mistakes like unescaped ampersands. Thanks to Jacques Distler for the patch.
  • (Change) The Expressions plugin is now optional. If it is installed, MT tag attributes will be processed for embeded tag expressions.

0.91 - May 12, 2003

  • (Fix) Documentation error. The Expressions plugin is required, but wasn’t listed in the documentation or included in the download.
  • (Fix) When using date formatting tags, errors occur.

0.9 - May 12, 2003
* Initial release.

Recently Written

Product Add-Ons Are An Expansion Myth
Dec 1: Add-ons can enhance your product’s appeal but won’t drive significant market growth. To expand your customer base, focus on developing standalone products.
Protecting your Product Soul when the Same Product meets New People.
Nov 23: Expand into new markets while preserving your product’s core value. Discover how to adapt and grow without losing your product’s soul.
Building the Next Big Thing: A Framework for Your Second Product
Nov 19: You need a first product sooner than you think. Here's a framework for helping you identify a winner.
A Framework for Scaling product teams
Oct 9: The people, processes, and systems that make up a product organization change radically as you go through the stages of a company. This framework will guide that scaling.
My Networked Webcam Setup
Sep 25: A writeup of my network-powered conference call camera setup.
Roadmap Outcomes, not Features
Sep 4: Drive success by roadmapping the outcomes you'll create instead of the features you'll deliver.
Different roadmaps for different folks
Sep 2: The key to effective roadmapping? Different views for different needs.
Micromanaging and competence
Jul 2: Providing feedback or instruction can be seen as micromanagement unless you provide context.

Older...

What I'm Reading