<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2titles.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemtitles.css"?><rss version="2.0">
   <channel>
      <title>Ogawa::Hacks</title>
      <link>http://as-is.net/hacks/</link>
      <description>Hirotaka Ogawa's Hacks and Softwares mainly for Movable Type.  All articles in this blog are written in English.</description>
      <language>en</language>
      <copyright>Copyright 2006</copyright>
      <lastBuildDate>Fri, 28 Oct 2005 16:31:01 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/?v=3.2</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/ogawahacks" type="application/rss+xml" /><item>
         <title>A Patch for SpamLookup 2.0 bundled with MT 3.2</title>
         <description>&lt;p&gt;Of course I'm addicted to using SpamLookup 2.0, but its Keyword Filter doesn't recognize regular expressions with multi-bytes strings and Unicode properties/blocks/scripts which are supported by Perl 5.8.  Therefore it's not easy to train SpamLookup for rejecting comment/trackback spams in foreign languages, especially in asian languages.&lt;/p&gt;

&lt;p&gt;The following is a patch for enabling Unicode support in SpamLookup 2.0.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://as-is.net/blog/archives/misc/mt32/SpamLookup2.0-encode.patch" class="download"&gt;SpamLookup2.0-encode.patch&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are using a Linux box, it is easy to apply. Just download or copy it into your MT directory and type as follows:&lt;/p&gt;

&lt;pre&gt;patch -p0 &amp;lt; SpamLookup2.0-encode.patch&lt;/pre&gt;

&lt;p&gt;Once you applied this patch, you could write regular expressions enpowered by Unicode support, as Keyword Filter rules.&lt;/p&gt;

&lt;p&gt;For example, to reject comments/trackbacks with Hiragana strings, just as follows:&lt;/p&gt;

&lt;pre&gt;/\p{Hiragana}+/&lt;/pre&gt;

&lt;p&gt;Or to accept only Latin-1 comments/trackbacks, you can do as follows:&lt;/p&gt;

&lt;pre&gt;/^[^\x00-\xff]+$/&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=T_UtakVkAkQ:JvLPqOwl700:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=T_UtakVkAkQ:JvLPqOwl700:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=T_UtakVkAkQ:JvLPqOwl700:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/10/a_patch_for_spamlookup_2_0_bundled_with_mt_3.html</link>
         <guid>http://as-is.net/hacks/2005/10/a_patch_for_spamlookup_2_0_bundled_with_mt_3.html</guid>
         <category>Movable Type</category>
         <pubDate>Fri, 28 Oct 2005 16:31:01 +0900</pubDate>
      </item>
            <item>
         <title>Entry Category Entries Plugin</title>
         <description>&lt;p&gt;A Movable Type plugin for listing entries included in the primary category of the current entry.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://as-is.net/blog/archives/misc/EntryCategoryEntries.zip" class="download"&gt;EntryCategoryEntries.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This plugin allows you to list entries included in the primary category of the current entry. This plugin can be used only in the entry context, which means the inside of the MTEntries container or the individual entry archives.&lt;/p&gt;

&lt;h3&gt;TAGS&lt;/h3&gt;

&lt;h4&gt;MTEntryCategoryEntries&lt;/h4&gt;

&lt;p&gt;A container tag for listing entries included in the primary category of the current entry.&lt;/p&gt;

&lt;p&gt;Almost same options are availablable as MTEntries.&lt;/p&gt;

&lt;h3&gt;EXAMPLE&lt;/h3&gt;

&lt;pre&gt;
&amp;lt;ul&amp;gt;
&amp;lt;MTEntryCategoryEntries lastn="10"&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href="&amp;lt;$MTEntryPermalink$&amp;gt;"&amp;gt;&amp;lt;MTEntryTitle&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/MTEntryCategoryEntries&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;

&lt;h4&gt;LICENSE&lt;/h4&gt;

&lt;p&gt;This code is released under the Artistic License. The terms of the Artistic License are described at &lt;a href="http://www.perl.com/language/misc/Artistic.html"&gt;http://www.perl.com/language/misc/Artistic.html&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;AUTHOR &amp;amp; COPYRIGHT&lt;/h4&gt;

&lt;p&gt;Copyright (c) 2005 Hirotaka Ogawa (hirotaka.ogawa at gmail.com)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=I3O8byQtZ5o:fsf_VdjJ-HU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=I3O8byQtZ5o:fsf_VdjJ-HU:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=I3O8byQtZ5o:fsf_VdjJ-HU:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/10/entry_category_entries_plugin.html</link>
         <guid>http://as-is.net/hacks/2005/10/entry_category_entries_plugin.html</guid>
         <category>Movable Type</category>
         <pubDate>Thu, 27 Oct 2005 15:36:38 +0900</pubDate>
      </item>
            <item>
         <title>Delicious Tags Plugin</title>
         <description>&lt;p&gt;A simple Movable Type plugin for importing and displaying your del.icio.us tags.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://as-is.net/blog/archives/misc/DeliciousTags.zip" class="download"&gt;DeliciousTags.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This plugin allows you to import and display your del.icio.us tags into your MT blogs. This plugin requires Net::Delicious module (&lt;a title="search.cpan.org: Aaron Straup Cope / Net-Delicious" href="http://search.cpan.org/~ascope/Net-Delicious/"&gt;search.cpan.org: Aaron Straup Cope / Net-Delicious&lt;/a&gt;).&lt;/p&gt;

&lt;h3&gt;TAGS&lt;/h3&gt;

&lt;h4&gt;MTDeliciousTags [user="..."][pass="..."][sort_by="tag|count"][sort_order="ascend|descend][lastn="N"]&lt;/h4&gt;

&lt;p&gt;A container tag for your del.icio.us tags. "user" and "pass" are required.&lt;/p&gt;

&lt;h4&gt;MTDeliciousTag&lt;/h4&gt;

&lt;p&gt;Generates a del.icio.us tag.&lt;/p&gt;

&lt;h4&gt;MTDeliciousTagURL&lt;/h4&gt;

&lt;p&gt;Generates the URL to a del.icio.us (e.g., http://del.icio.us/user/tag).&lt;/p&gt;

&lt;h4&gt;MTDeliciousTagCount&lt;/h4&gt;

&lt;p&gt;Generates the number how many a del.icio.us tag appears in your del.icio.us bookmarks.&lt;/p&gt;

&lt;h4&gt;MTDeliciousTagsHeader&lt;/h4&gt;

&lt;p&gt;A container tag that renders its contents before the first del.icio.us tag.&lt;/p&gt;

&lt;h4&gt;MTDeliciousTagsFooter&lt;/h4&gt;

&lt;p&gt;A container tag that renders its contents after the last del.icio.us tag.&lt;/p&gt;

&lt;h3&gt;EXAMPLE&lt;/h3&gt;

&lt;pre&gt;
&amp;lt;MTDeliciousTags user="del.icio.us.username" pass="del.icio.us.password"&amp;gt;
&amp;lt;MTDeliciousTagsHeader&amp;gt;&amp;lt;ol&amp;gt;&amp;lt;/MTDeliciousTagsHeader&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;a href="&amp;lt;$MTDeliciousTagURL$&amp;gt;"&amp;gt;&amp;lt;$MTDeliciousTag$&amp;gt;&amp;lt;/a&amp;gt;
  (&amp;lt;$MTDeliciousTagCount$&amp;gt;)&amp;lt;/li&amp;gt;
&amp;lt;MTDeliciousTagsFooter&amp;gt;&amp;lt;/ol&amp;gt;&amp;lt;/MTDeliciousTagsFooter&amp;gt;
&amp;lt;/MTDeliciousTags&amp;gt;
&lt;/pre&gt;

&lt;h4&gt;LICENSE&lt;/h4&gt;

&lt;p&gt;This code is released under the Artistic License. The terms of the Artistic License are described at &lt;a href="http://www.perl.com/language/misc/Artistic.html"&gt;http://www.perl.com/language/misc/Artistic.html&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;AUTHOR &amp;amp; COPYRIGHT&lt;/h4&gt;

&lt;p&gt;Copyright (c) 2005 Hirotaka Ogawa (hirotaka.ogawa at gmail.com)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=OxU4IkHVajk:61vjnWGe-dI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=OxU4IkHVajk:61vjnWGe-dI:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=OxU4IkHVajk:61vjnWGe-dI:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/10/delicious_tags_plugin.html</link>
         <guid>http://as-is.net/hacks/2005/10/delicious_tags_plugin.html</guid>
         <category>Movable Type</category>
         <pubDate>Wed, 26 Oct 2005 23:17:33 +0900</pubDate>
      </item>
            <item>
         <title>Duplicated TBPing Lookup Plugin</title>
         <description>&lt;p&gt;An MT 3.2 JunkFilter plugin for rejecting duplicated and/or repeated trackbacks from the same source URLs. These kind of trackbacks seem to be spams or caused by authors' mistakes.&lt;/p&gt;

&lt;p&gt;&lt;a class="download" href="http://as-is.net/blog/archives/misc/DuplicatedTBPingLookup.zip"&gt;DuplicatedTBPingLookup.zip&lt;/a&gt;&lt;/p&gt;

&lt;div class="note"&gt;The basic idea of this plugin is derived from &lt;a title="小粋空間: 重複トラックバック防止プラグイン" href="http://www.koikikukan.com/archives/2005/05/28-235959.php"&gt;Koiki-kukan: duplicateTBPingfilter Plugin&lt;/a&gt; (This page is written by Japanese).&lt;/div&gt;

&lt;p&gt;"Duplicated TBPing Lookup Plugin" is a JunkFilter plugin which is a building block of &lt;a title="Six Apart - ProNet - The Feedback Rating System in Movable Type 3.2" href="http://www.sixapart.com/pronet/weblog/2005/07/the_feedback_ra.html"&gt;The Feedback Rating System in Movable Type 3.2&lt;/a&gt;.  This plugin checks whether incoming trackbacks are duplicated and/or repeated ones from the same source URL, and if so, treats them as negative trackbacks.&lt;/p&gt;

&lt;p&gt;To install the plugin, just copy DuplicatedTBPingLookup.pl into your plugins directory.  This plugin allows you to change the score weight for negative trackbacks from the plugin configuration screen.&lt;/p&gt;

&lt;p&gt;The development version is also available from &lt;a href="http://code.as-is.net/viewvc/mt/DuplicatedTBPingLookup/trunk/"&gt;http://code.as-is.net/viewvc/mt/DuplicatedTBPingLookup/trunk/&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=Be0JcERUtL8:DsyJ_GfhCZs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=Be0JcERUtL8:DsyJ_GfhCZs:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=Be0JcERUtL8:DsyJ_GfhCZs:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/10/duplicated_tbping_lookup_plugin.html</link>
         <guid>http://as-is.net/hacks/2005/10/duplicated_tbping_lookup_plugin.html</guid>
         <category>Movable Type</category>
         <pubDate>Tue, 04 Oct 2005 19:36:30 +0900</pubDate>
      </item>
            <item>
         <title>mt-db-convert.cgi: MT Database Converter</title>
         <description>&lt;p&gt;A CGI script for converting Movable Type Database between DB engines.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://as-is.net/blog/archives/misc/mt-db-convert.zip" class="download"&gt;mt-db-convert.zip&lt;/a&gt;&lt;/p&gt;

&lt;div class="note"&gt;
0.11 (2005.07.16):
&lt;ul&gt;
&lt;li&gt;Initial release.&lt;/li&gt;
&lt;/ul&gt;
0.12 (2005.07.18):
&lt;ul&gt;
&lt;li&gt;Bug fix for using BerkeleyDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;p&gt;This script allows you to mutually convert Movable Type Data between BerkeleyDB, MySQL, PostgreSQL, and SQLite. When you want to move your database from MySQL to SQLite, or move from a testing environment to a production, this script can help you.&lt;/p&gt;

&lt;p&gt;This script is a kind of a derived work of Six Apart's mt-db2sql.cgi. So I may cease publishing this article and this script anytime as requested.&lt;/p&gt;

&lt;h3&gt;INSTALLATION&lt;/h3&gt;

&lt;p&gt;To install this script, upload or copy "mt-db-convert.cgi" into your Movable Type directory and set the permission of the script to 0755 (be executable).&lt;/p&gt;

&lt;p&gt;To use it, just acccess it with your Web browser. &lt;em&gt;(I have to write more)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After running this script, I strongly recommend to delete it&lt;/strong&gt;, because it becomes a security hole of your MT. I mean anybody else could access it and read your DB configuration.&lt;/p&gt;

&lt;h3&gt;NOTE&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;This script is compatible with Movable Type version 3.1x.  I didn't test it at any other versions.&lt;/li&gt;
&lt;li&gt;This script may be stopped publishing anytime at Six Apart's request.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=x-bc3m9JDZQ:tFdAcQZvdlA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=x-bc3m9JDZQ:tFdAcQZvdlA:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=x-bc3m9JDZQ:tFdAcQZvdlA:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/07/mt_db_convert_cgi_mt_database_converter.html</link>
         <guid>http://as-is.net/hacks/2005/07/mt_db_convert_cgi_mt_database_converter.html</guid>
         <category>Movable Type</category>
         <pubDate>Sat, 16 Jul 2005 05:22:20 +0900</pubDate>
      </item>
            <item>
         <title>Dynamic Tag Archiving with Tagwire and MT-XSearch</title>
         <description>&lt;p&gt;Instead of static tag/category archives supported by Tags Plugin, Tagwire provides Dynamic Tag Archiving by using Tim Appnel's MT-XSearch. Dynamic Tag Archiving is slower than static one but preferable to support more flexible archiving. For example, Tagwire supports listing entries having two or more tags.&lt;/p&gt;

&lt;p&gt;In this article, I will explain how &lt;a title="Ogawa::Hacks: Tagwire Plugin" href="http://as-is.net/hacks/2005/06/tagwire_plugin.html"&gt;Tagwire plugin&lt;/a&gt; cooperates with Tim Appnel's MT-XSearch and realize Dynamic Tag Archiving.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=I8zZTsMABwA:taZzBcl0kuY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=I8zZTsMABwA:taZzBcl0kuY:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=I8zZTsMABwA:taZzBcl0kuY:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/06/dynamic_tag_archiving_with_tagwire_and_mt_xse.html</link>
         <guid>http://as-is.net/hacks/2005/06/dynamic_tag_archiving_with_tagwire_and_mt_xse.html</guid>
         <category>Movable Type</category>
         <pubDate>Wed, 29 Jun 2005 20:45:14 +0900</pubDate>
      </item>
            <item>
         <title>Tagwire Plugin</title>
         <description>&lt;p&gt;A plugin for handling entries' keywords as "tag" in Movable Type.&lt;/p&gt;

&lt;p&gt;&lt;a class="download" href="http://as-is.net/blog/archives/misc/tagwire.zip"&gt;tagwire.zip&lt;/a&gt;&lt;/p&gt;

&lt;div class="note"&gt;
0.10 (2005.03.19):
&lt;ul&gt;
&lt;li&gt;Initial release of AllKeywords Plugin&lt;/li&gt;
&lt;/ul&gt;
0.20 (2005.06.24):
&lt;ul&gt;
&lt;li&gt;Change plugin name to "Tagwire Plugin" and released with English document&lt;/li&gt;
&lt;/ul&gt;
0.21 (2005.06.25):
&lt;ul&gt;
&lt;li&gt;Add encode_urlplus filter and its document&lt;/li&gt;
&lt;/ul&gt;
0.22 (2005.06.30):
&lt;ul&gt;
&lt;li&gt;Minor bug fix.&lt;/li&gt;
&lt;li&gt;Support newer plugin interface of MT3.X?&lt;/li&gt;
&lt;/ul&gt;
0.23 (2005.07.06):
&lt;ul&gt;
&lt;li&gt;Fix for the duplicated PluginData problem when using with SQLite.&lt;/li&gt;
&lt;/ul&gt;
0.24 (2005.07.13):
&lt;ul&gt;
&lt;li&gt;Add MTTagDate for displaying the last date the tag added.&lt;/li&gt;
&lt;li&gt;Add MTRelatedTags for listing tags related to the current tag.&lt;/li&gt;
&lt;li&gt;Add MTXSearchTags for listing tags specified by MT-XSearch's argument.&lt;/li&gt;
&lt;li&gt;Modify README.txt for these changes.&lt;/li&gt;
&lt;li&gt;Add tagwire-pdcleaner.cgi which is a simple tool for cleaning PluginData for tagwire.&lt;/li&gt;
&lt;/ul&gt;
0.24a (2005.07.14):
&lt;ul&gt;
&lt;li&gt;Fix minor bugs.&lt;/li&gt;
&lt;/ul&gt;
0.25 (2005.07.20):
&lt;ul&gt;
&lt;li&gt;More bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;p&gt;Tagwire Plugin (aka AllKeywords Plugin) provides an easier way to handling "tags" in Movable Type. The keywords fields of any entries are used as "tags".&lt;/p&gt;

&lt;p&gt;Unlike Tags and Tagslite Plugin, this plugin has the following features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multilingual Tagging:&lt;/li&gt;
&lt;li&gt;Flexible Tag Format:&lt;/li&gt;
&lt;li&gt;MT's categories are Untaint:&lt;br /&gt;Tagwire Plugin uses only "keywords" field of entries, so users can use "categories" just as themselves separately.&lt;/li&gt;
&lt;li&gt;Full-fledged support for tag handling:&lt;br /&gt;Tagwire provides various functions including blog-wide/entry-wise tag listing and counting, listing entries that have user-specified tags, and listing related entries.&lt;/li&gt;
&lt;li&gt;Moderate Rebuilding Time:&lt;br /&gt;Tagwire realizes tag indexing without support of your DB engines.  It often leads to performance degradation especially for rebuilding, but Tagwire employs PluginData and Request Cache effectively and achieves enough speed.&lt;/li&gt;
&lt;li&gt;Dynamic Tag Archiving coupled with MT-XSearch:&lt;br /&gt;Though Tagwire generates no static tag archives, it couples with Tim Appnel's MT-XSearch and supports Dynamic Tag Archiving.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=zNRyvlEGAs0:tf2WL2t_lus:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=zNRyvlEGAs0:tf2WL2t_lus:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=zNRyvlEGAs0:tf2WL2t_lus:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/06/tagwire_plugin.html</link>
         <guid>http://as-is.net/hacks/2005/06/tagwire_plugin.html</guid>
         <category>Movable Type</category>
         <pubDate>Fri, 24 Jun 2005 18:49:43 +0900</pubDate>
      </item>
            <item>
         <title>FlickrPublicPhotos Plugin</title>
         <description>&lt;p&gt;A Movable Type plugin for listing &lt;a title="Welcome to Flickr!" href="http://www.flickr.com/"&gt;Flickr&lt;/a&gt;'s Public Photos.  This plugin employs &lt;a href="http://www.flickr.com/services/api/"&gt;Flickr API&lt;/a&gt; and &lt;a href="http://search.cpan.org/~iamcal/Flickr-API-0.03/"&gt;Flickr::API&lt;/a&gt; module.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://as-is.net/blog/archives/misc/FlickrPublicPhotos.zip" class="download"&gt;FlickrPublicPhotos.zip&lt;/a&gt;&lt;/p&gt;

&lt;div class="note"&gt;
0.10(2005.05.05):&lt;ul&gt;&lt;li&gt;First Release&lt;/li&gt;&lt;/ul&gt;
0.11(2005.05.06):&lt;ul&gt;&lt;li&gt;Code cleanup&lt;/li&gt;&lt;/ul&gt;
0.12(2005.05.07):&lt;ul&gt;&lt;li&gt;Support 100+ public photos&lt;/li&gt;&lt;li&gt;Add more variable tags for displaying the information of the photo&lt;/li&gt;&lt;/ul&gt;
0.13(2005.05.08):&lt;ul&gt;&lt;li&gt;First Release in English&lt;/li&gt;&lt;/ul&gt;
0.20(2005.05.27):&lt;ul&gt;&lt;li&gt;Speedup, countermeasure for Flickr service down.&lt;/li&gt;&lt;/ul&gt;
0.21(2005.06.08):&lt;ul&gt;&lt;li&gt;A bug fix release&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;p&gt;FlickrPublicPhotos Plugin allows you to list public photos of an Flickr account owner, which can be specified by his/her username or mail address, or NSID.  The plugin can show not only full-set of his/her public photos, but also recent N photos or random N photos.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=oao8BIBVIsM:iW9lFTd7L7c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=oao8BIBVIsM:iW9lFTd7L7c:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=oao8BIBVIsM:iW9lFTd7L7c:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/05/flickrpublicphotos_plugin.html</link>
         <guid>http://as-is.net/hacks/2005/05/flickrpublicphotos_plugin.html</guid>
         <category>Movable Type</category>
         <pubDate>Tue, 10 May 2005 11:07:41 +0900</pubDate>
      </item>
            <item>
         <title>Benchmark: Importing Multiple Entries</title>
         <description>&lt;p&gt;This benchmark is intended to make clear the performance characteristics of the underlying DB engines which can be used by Movable Type.&lt;/p&gt;

&lt;div class="note"&gt;
I recognize this is not a typical transaction for Movable Type.  My intention of performing this benchmark was to test the hardest transactions for any DBs, because importing has leastly-read but mostly-write operations.  Rebuilding takes a long time but it is a mostly-read case and doesn't push DBs so hardly.  I believe that the rebuilding time is dominated by Disk I/O rather than DB accesses.  Also thinking about other cases such as coutinueously commenting or tbpinging, CGI setup time is supposed to be dominant.  
&lt;/div&gt;

&lt;h3&gt;Method&lt;/h3&gt;

&lt;p&gt;Importing multiple entries (40, 200, 1000) and couting the cpu times and elapsed times by using Benchmark and Time::HiRes modules.  In each cases, I ran the benchmark four times and picked up the best case.&lt;/p&gt;

&lt;h3&gt;Server Specification&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Intel Pentium 4 2.40Ghz 384MB Memory&lt;/li&gt;
&lt;li&gt;Fedora Core 3&lt;/li&gt;
&lt;li&gt;Apache httpd 2.0.52&lt;/li&gt;
&lt;li&gt;MySQL 3.23.58&lt;/li&gt;
&lt;li&gt;Movable Type 3.15&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Movable Type and MySQL are running on a server.&lt;/p&gt;

&lt;h3&gt;Importing Data&lt;/h3&gt;

&lt;p&gt;All entry have "GNU Public License" as their entry body, and they have diffrent titles and same one category.&lt;/p&gt;

&lt;h3&gt;DB Engines&lt;/h3&gt;

&lt;dl&gt;
&lt;dt&gt;DBD&lt;/dt&gt;
&lt;dd&gt;Berkeley DB 4.2.52 + DB_File 1.809&lt;/dd&gt;
&lt;dt&gt;MySQL&lt;/dt&gt;
&lt;dd&gt;MySQL 3.23.58 + DBD-mysql 2.903&lt;/dd&gt;
&lt;dt&gt;SQLite2&lt;/dt&gt;
&lt;dd&gt;DBD-SQLite2 0.33&lt;/dd&gt;
&lt;dt&gt;SQLite3&lt;/dt&gt;
&lt;dd&gt;DBD-SQLite 1.0.8&lt;/dd&gt;
&lt;dt&gt;MySQL*&lt;/dt&gt;
&lt;dd&gt;MySQL 3.23.58 + DBD-mysql 2.903 + w/o AutoCommit&lt;/dd&gt;
&lt;dt&gt;SQLite2*&lt;/dt&gt;
&lt;dd&gt;DBD-SQLite2 0.33 + w/o AutoCommit&lt;/dd&gt;
&lt;dt&gt;SQLite3*&lt;/dt&gt;
&lt;dd&gt;DBD-SQLite 1.0.8 + w/o AutoCommit&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;MySQL*, SQLite2*, and SQLite3* disable AutoCommit option and do "begin_work" and "commit" at the start and end of the importing process.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=QboG0r7J1EA:raf0DqBXh8Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=QboG0r7J1EA:raf0DqBXh8Q:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=QboG0r7J1EA:raf0DqBXh8Q:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/03/benchmark_importing_multiple_entries.html</link>
         <guid>http://as-is.net/hacks/2005/03/benchmark_importing_multiple_entries.html</guid>
         <category>Movable Type</category>
         <pubDate>Wed, 02 Mar 2005 16:56:30 +0900</pubDate>
      </item>
            <item>
         <title>Update-n-Ping Plugin</title>
         <description>&lt;p&gt;A plugin for sending 'update pings' when updating entries.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://as-is.net/blog/archives/misc/update-n-ping.zip" class="download"&gt;update-n-ping.zip&lt;/a&gt;&lt;/p&gt;

&lt;div class="note"&gt;
0.01(2005.02.23): &lt;ul&gt;&lt;li&gt;First Release&lt;/li&gt;&lt;/ul&gt;
0.02(2005.02.24): &lt;ul&gt;&lt;li&gt;Bug Fix&lt;/li&gt;&lt;/ul&gt;
0.04(2005.03.06): &lt;ul&gt;&lt;li&gt;Support Perl 5.0&lt;/li&gt;&lt;/ul&gt;
0.10(2005.04.25): &lt;ul&gt;&lt;li&gt;Support Plugin customization feature for MT3.16 or later&lt;/li&gt;&lt;/ul&gt;
0.11(2005.06.10): &lt;ul&gt;&lt;li&gt;Fix for sending Update-pings when updating via XMLRPC or Atom API&lt;/li&gt;&lt;/ul&gt;
0.12(2005.10.24): &lt;ul&gt;&lt;li&gt;Now support MT 3.2.&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;

&lt;p&gt;The default Movable Type 3.1 does send 'update pings' if you post new entries or change entries' state from 'Draft' to 'Publish'.  On other hand, MT3 does NOT send any update pings if modify 'published' entries.&lt;/p&gt;

&lt;p&gt;This plugin enables MT to send update pings when updating published entries and adding newly published entries.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=MurPdz8O4Jw:lBwpZd7198Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=MurPdz8O4Jw:lBwpZd7198Y:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=MurPdz8O4Jw:lBwpZd7198Y:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/02/update_n_ping_plugin.html</link>
         <guid>http://as-is.net/hacks/2005/02/update_n_ping_plugin.html</guid>
         <category>Movable Type</category>
         <pubDate>Wed, 23 Feb 2005 20:12:07 +0900</pubDate>
      </item>
            <item>
         <title>recently_pinged_on Plugin</title>
         <description>&lt;p&gt;A plugin for adding 'recently_pinged_on' option to MTEntries container&lt;/p&gt;

&lt;p&gt;&lt;a href="http://as-is.net/blog/archives/misc/recently-pinged-on.zip" class="download"&gt;recently-pinged-on.zip&lt;/a&gt;&lt;/p&gt;

&lt;div class="note"&gt;
&lt;div&gt;0.10(2005.01.29): First Release&lt;/div&gt;
&lt;div&gt;0.11(2005.01.29): Several fixes for better performance&lt;/div&gt;
&lt;div&gt;0.12(2005.02.06): Performance tuning. And now MTEntryDate, MTEntriesHeader, MTEntriesFooter, MTEntryIfExtended, MTEntryIfAllowComments, MTEntryIfCommentsOpen, and MTEntryIfAllowPings can be used in MTEntries container.&lt;/div&gt;
&lt;div&gt;0.15(2005.02.13): Now disables the plugin function if specified with lastn, days, or recently_commented_on options.  And if using in category or date-based archives, the plugin lists up only pinged entries which are included in targeted archives.&lt;/div&gt;
&lt;div&gt;0.16(2005.02.19): Fix an embarrassing bug.&lt;/div&gt;
&lt;div&gt;0.18(2005.09.01): Fix for Movable Type 3.2.&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The default MTEntries container tag does not have a function listing up recent incoming TB pings, as opposed to recent incoming comments.  This plugin adds "recently_pinged_on" option to MTEntries and allows you to list up recent incoming pings as like comments.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=B2uRF_iRlGA:gYoEW-UBfYI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=B2uRF_iRlGA:gYoEW-UBfYI:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=B2uRF_iRlGA:gYoEW-UBfYI:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/01/recently_pinged_on_plugin.html</link>
         <guid>http://as-is.net/hacks/2005/01/recently_pinged_on_plugin.html</guid>
         <category>Movable Type</category>
         <pubDate>Sat, 29 Jan 2005 10:38:22 +0900</pubDate>
      </item>
            <item>
         <title>Quasi-Spam Filter Plugin</title>
         <description>&lt;p&gt;A reference implementation of a Spam filter plugin&lt;/p&gt;

&lt;p&gt;&lt;a href="http://as-is.net/blog/archives/misc/quasi-spamfilter.zip" class="download"&gt;quasi-spamfilter.zip&lt;/a&gt;&lt;/p&gt;

&lt;div class="note"&gt;
&lt;div&gt;0.10(2005.01.28): First Release&lt;/div&gt;
&lt;div&gt;0.15(2005.02.01): Support TBPing spam filtering&lt;/div&gt;
&lt;div&gt;0.17(2005.03.05): Support Perl 5.0&lt;/div&gt;
&lt;div&gt;0.20(2005.04.08): Support Logging feature and refine the interfaces of spam-detection functions&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;This is a reference implementation of a Spam filter plugin and mainly targetted to spam filter developpers as well as actual users.  This plugin allows you to easily customize your filtering policy and your reaction to comment &amp;amp; trackback spammers.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=AFl6sZePFOo:d2MRFZzSEvs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=AFl6sZePFOo:d2MRFZzSEvs:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=AFl6sZePFOo:d2MRFZzSEvs:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/01/quasi_spam_filter_plugin.html</link>
         <guid>http://as-is.net/hacks/2005/01/quasi_spam_filter_plugin.html</guid>
         <category>Movable Type</category>
         <pubDate>Sat, 29 Jan 2005 03:12:37 +0900</pubDate>
      </item>
            <item>
         <title>Show "nofollow" bookmarklet</title>
         <description>&lt;p&gt;&lt;a href="javascript:var t=document.getElementsByTagName('a');for(i=0;i&lt;t.length;i++){if(t[i].rel.toLowerCase()=='nofollow'){void(t[i].style.color='lime');}}"&gt;Show "nofollow"&lt;/a&gt; (Drag this and drop your brower's menu bar)&lt;/p&gt;

&lt;p&gt;This bookmarklet allows you to change "nofollow" links' color "lime". You can customize it whatever you like ;-)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=G54iUoFgQrY:8Wfw7ePaHMc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=G54iUoFgQrY:8Wfw7ePaHMc:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=G54iUoFgQrY:8Wfw7ePaHMc:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2005/01/show_nofollow_bookmarklet.html</link>
         <guid>http://as-is.net/hacks/2005/01/show_nofollow_bookmarklet.html</guid>
         <category>Bookmarklet</category>
         <pubDate>Fri, 21 Jan 2005 13:39:53 +0900</pubDate>
      </item>
            <item>
         <title>A bunch of fixes for MT 3.121</title>
         <description>&lt;p&gt;This entry introduces a bunch of fixes for Movable Type 3.121. The following is an aggregated patch for these fixes.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://as-is.net/blog/archives/misc/MT-3.121-en_us-p01.zip" class="download"&gt;MT-3.121-en_us-p01.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My intension of building this patch is just to fix *not-functioned* and *mal-functioned* features in Movable Type, and to make it work properly as possible.  So, the patch does not include any function extensions or any arbitrary changes to the original version of Movable Type.&lt;/p&gt;

&lt;div class="note"&gt;This patch is also applicable to Movable Type 3.14.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=8QBSllVboKU:JO2jJjcWv4U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=8QBSllVboKU:JO2jJjcWv4U:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=8QBSllVboKU:JO2jJjcWv4U:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2004/12/a_bunch_of_fixes_for_mt_3_121.html</link>
         <guid>http://as-is.net/hacks/2004/12/a_bunch_of_fixes_for_mt_3_121.html</guid>
         <category>Movable Type</category>
         <pubDate>Sat, 18 Dec 2004 09:11:11 +0900</pubDate>
      </item>
            <item>
         <title>MT-ShrinkFInfo</title>
         <description>&lt;p&gt;A Tool for Shrinking an Enlarged FileInfo DB&lt;/p&gt;

&lt;p&gt;&lt;a href="http://as-is.net/blog/archives/misc/ShrinkFInfo.zip" class="download"&gt;ShinkFInfo.zip&lt;/a&gt;&lt;/p&gt;

&lt;div class="note"&gt;
&lt;div&gt;0.01(2004.11.28): First Release&lt;/div&gt;
&lt;div&gt;0.02(2004.11.28): A fix to stop unnecessary shrinking if possible. A little bit of code cleanup.&lt;/div&gt;
&lt;div&gt;0.03(2004.11.29): Add a plugin interface and an experimental access restriction using a cookie.&lt;/div&gt;
&lt;div&gt;0.04(2004.12.10): A little bit improvement on the plugin user-interface.&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;If using Movable Type 3.1 with BerkeleyDB, you will encounter a problem that db/fileinfo.db is enlarging whenever you repeat rebuilding.  This problem makes it slow to rebuild contents, and even worse it may cause HTTP Error 500 which means Internal Server Error.&lt;/p&gt;

&lt;p&gt;MT-ShinkFInfo allows you to shrink an enlarged db/fileinfo.db.  It employs MT Perl API so as to provide a safer and easier method to shrink fileinfo.db, rather than removing it manually.  And it also provides a plugin interface to invoke this easily from the management screen of Movable Type.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=8OMrOL2Z8Bg:QCHrNAbAiQY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ogawahacks?a=8OMrOL2Z8Bg:QCHrNAbAiQY:R3Xqr3igUVg"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ogawahacks?i=8OMrOL2Z8Bg:QCHrNAbAiQY:R3Xqr3igUVg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
         <link>http://as-is.net/hacks/2004/11/mt_shrinkfinfo.html</link>
         <guid>http://as-is.net/hacks/2004/11/mt_shrinkfinfo.html</guid>
         <category>Movable Type</category>
         <pubDate>Mon, 29 Nov 2004 23:45:48 +0900</pubDate>
      </item>
      
   </channel>
</rss>
