<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Dev411 Blog: Category typo</title>
    <link>http://www.dev411.com/blog/tag/typo</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>John Wang on Technology</description>
    <item>
      <title>Database Abstraction - code vs infrastructure</title>
      <description>&lt;p&gt;I've worked on a number of database-driven projects and no matter how much people want database abstraction, it was always difficult to code and maintain. I was recently reminded of this when I read this &lt;a href="http://www.drupal4hu.com/node/64" title="My stance on database abstraction"&gt;Drupal article on dropping PostgreSQL support&lt;/a&gt;. Not only can it be difficult to maintain support for multiple databases, but it may be difficult to find developers.&lt;/p&gt;

&lt;p&gt;One solution of modern programming is to move database abstraction from the code to the infrastructure using a ORM (Object-Relational Mapper) or Data Mapper. A ORM and Data Mapper abstracts the database for you so you no longer have to do tie db abstraction to each app. Not only does it let you code once for multiple databases it lets your users migrate their data from one database to another. This blog runs Typo which is based on Ruby on Rails and ActiveRecord. I've been contemplating migrating Typo from MySQL to PostgreSQL and I've been told that it would be as simple as exporting the data with YAML, updating the database.yml file and importing the data. I haven't gotten around to doing it yet but it is a powerful idea. ActiveRecord is a data mapper and isn't as flexible as a full blown ORM but it gets the job done for the most part. For a full-blown ORM, I think of Perl's DBIx::Class which provides a full OO interface to the RDBMS allowing you to code just once for multiple DBs without limiting you when you want to use some esoteric database-specific SQL. DBIx::Class is often used with the Catalyst Framework but is also used by itself.&lt;/p&gt;

&lt;p&gt;There are PHP frameworks out there like Symfony and Cake but do any of them have stand-alone ORMs? If so, could Drupal move to something like that and solve their maintainership problems once and for all? Drupal is part of the &lt;a href="http://gophp5.org"&gt;Go PHP5&lt;/a&gt; effort so there should be no issue using PHP 5 OO. Something to think about for the Drupal folks if a PHP ORM is available.&lt;/p&gt;

</description>
      <pubDate>Tue, 04 Sep 2007 23:38:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:fd57e1bd-e67a-47e8-96e7-2cffbf7b196a</guid>
      <author>John Wang</author>
      <link>http://www.dev411.com/blog/2007/09/04/database-abstraction-code-vs-infrastructure</link>
      <category>postgresql</category>
      <category>catalyst</category>
      <category>activerecord</category>
      <category>perl</category>
      <category>mysql</category>
      <category>typo</category>
      <category>php</category>
    </item>
    <item>
      <title>Typo - Upgrading to 4.1.1</title>
      <description>&lt;p&gt;I finally got around to upgrading from Typo 4.0.0 r1188 to Typo 4.1.1 and it was pretty smooth. I had held off for a while because Typo was changing a lot under the covers with some much needed refactoring and I have a few hacks I didn't feel like modifying with every minor update.&lt;/p&gt;

&lt;p&gt;I ran into some initial issues because I was installing from the tarball and not the gem. I had an older version of Rails and Typo 4.1.1 needs Rails 1.2.3. Running "rake migrate" doesn't check the Rails version and would just abort. Eventually I guessed the problem reading the &lt;span class="fix"&gt;--trace&lt;/span&gt; output and I was on my way. The other curiosity was that Gem's &lt;span class="fix"&gt;--install-dependencies&lt;/span&gt; didn't work for me. I still had to install/upgrade rake, activerecord and a number of other packages before installing rails using gem. I think it would be nice if &lt;span class="fix"&gt;--install-dependencies&lt;/span&gt; did install those or at least showed all the packages that were needed in one report instead of just showing one and aborting. Perhaps there was something wrong with my setup. With CPAN, you get to see all the required dependencies in the first report and it will install them all for you in one shot. However, compared to gem, CPAN might show too much information by default. Perhaps the majority of the information CPAN shows should be moved to a non-default verbose mode.&lt;/p&gt;

&lt;p&gt;I have a few hacks running on this blog so the update consisted of the following:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Theme: This blog runs a modified version of Azure which used a table that no longer exists in 4.1.1. Because of this Typo wouldn't start. To get around this I did a manual SQL update of the &lt;span class="fix"&gt;settings&lt;/span&gt; column in the &lt;span class="fix"&gt;blogs&lt;/span&gt; table to reset the theme to Azure before migrating my mods over. The settings field is an aggregate field with serialized information delimited by carriage returns. I prefer using JSON to serialize complex data structures stored in a single db field which I think is much more maintainable.&lt;/li&gt;
  &lt;li&gt;Categories Sidebar: This had moved from &lt;span class="fix"&gt;./components/plugins/sidebar/category&lt;/span&gt; to &lt;span class="fix"&gt;./vendor/plugins/category_sidebar&lt;/span&gt;. Now that the &lt;a href="http://blog.typosphere.org/articles/2007/04/15/the-futur-of-typo-sidebar-plugins"&gt;sidebars are stand-alone Rails plugins&lt;/a&gt;, it makes more sense for me to turn my custom Category sidebar into its own thing instead of modifying the existing one.&lt;/li&gt;
  &lt;li&gt;Notable Links: I put together some &lt;a href="/blog/2006/09/02/notable-social-bookmarking-networking-for-typo"&gt;social bookmarking links&lt;/a&gt; a while back for Typo 4.0.0 and it was reported to no longer function with 4.1.1. A little checking showed that &lt;span class="fix"&gt;article.location&lt;/span&gt; was no longer available and replaced by &lt;span class="fix"&gt;article.permalink_url&lt;/span&gt;. Both 4.1.1 and 4.0.0 versions of the Notable view are now available. The method call used to display the article body in &lt;span class="fix"&gt;./views/articles/read.rhtml&lt;/span&gt; had also changed. This is used as a reference point to insert new code.&lt;/li&gt;
  &lt;li&gt;Table of Contents: The &lt;a href="/blog/2006/06/26/adding-a-toc-to-typo"&gt;Table of Contents&lt;/a&gt; solution I had put together had also broken and is now fixed. It is interesting to see the progression of link creation from 2.6.0 to 4.0.0 to 4.1.1. The previous two used Rails' &lt;span class="fix"&gt;link_to&lt;/span&gt; helper but 4.1.1 creates the HTML manually.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The rest of the changes were pretty straight-forward to carry across, including the category icons and &lt;span class="fix"&gt;routes.rb&lt;/span&gt; mods I use.&lt;/p&gt;

&lt;p&gt;Overall, the upgrade was smooth after I figured out I needed to upgrade Rails from the &lt;span class="fix"&gt;rake migrate&lt;/span&gt; failure. I like the refactoring of the plugins and look forward to making some.&lt;/p&gt;

&lt;p&gt;Fr&#233;d&#233;ric de Villamil, the current Typo maintainer, menioned that 5.0 is coming and will have the following features:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Plugin Manager: to download and install plugins from the official repository&lt;/li&gt;
  &lt;li&gt;Advanced Theme Manager: to download and install themes from the official themes repository&lt;/li&gt;
  &lt;li&gt;Real Multi-User Support&lt;/li&gt;
  &lt;li&gt;OpenID Support&lt;/li&gt;
  &lt;li&gt;and more....&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've been pleasantly surprised with the development activity happening around Typo and can't wait for version 5.0.&lt;/p&gt;</description>
      <pubDate>Sat, 16 Jun 2007 17:36:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:81a8f9a2-64fa-49a2-b3cc-78f9db208593</guid>
      <author>John Wang</author>
      <link>http://www.dev411.com/blog/2007/06/16/typo-upgrading-to-4-1-1</link>
      <category>typo</category>
      <category>rails</category>
    </item>
    <item>
      <title>Displaying Dates and Times Using JavaScript</title>
      <description>&lt;p&gt;Some considerations when displaying dates and times on a website include showing delta times, customized timezones and caching. Often it's nice to show a delta time like "10 minutes ago" or "5 days ago" to give readers a frame of reference instead of an absolute date. When the date is far enough in the past and an absolute date becomes desired, customizing the date to the user's timezone is useful. And if your site grows large enough that caching becomes useful, finding a way to display customized deltas and timezone information in a cacheable static page becomes an ideal solution.&lt;/p&gt;

&lt;p&gt;JavaScript is an ideal solution for all three issues. With JavaScript you can place an absolute date in the web page and have the JS dynamically update it when the page is loaded. This can be used to calculate delta times and accommodate timezones as well. The result is that the page can embed the same date every time and thus becomes more cache-friendly.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://typosphere.org"&gt;Typo&lt;/a&gt; blog engine (which runs this blog) comes with a useful MIT-licensed JavaScript in it's &lt;a href="http://trac.typosphere.org/browser/trunk/public/javascripts/typo.js"&gt;typo.js&lt;/a&gt; script. Just copy three of the JS date/time functions, wrap your dates with spans (using the appropriate class name and absolute date in the span title) and then call &lt;span class="fix"&gt;show_dates_as_local_time()&lt;/span&gt; when your page is finished loading. The two other functions you'll need are &lt;span class="fix"&gt;get_local_time_for_date(time)&lt;/span&gt; and &lt;span class="fix"&gt;distance_of_time_in_words(minutes)&lt;/span&gt;. This is what I did for &lt;a href="http://planet.catalystframework.org/"&gt;Planet Catalyst&lt;/a&gt;'s &lt;a href="http://plagger.org"&gt;Plagger&lt;/a&gt; theme a while back.&lt;/p&gt;

&lt;p&gt;Although it's pretty easy to accommodate timezones, the Typo script doesn't do that. I've done this for some projects and might post some code in the future but it's not hard.&lt;/p&gt;

&lt;p&gt;Customization and cacheability, two great advantages for using JavaScript to handle dates and times.&lt;/p&gt;</description>
      <pubDate>Mon, 05 Feb 2007 18:28:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:f3906b2c-8ae7-4b4c-a5b6-bc1bd25f1746</guid>
      <author>John Wang</author>
      <link>http://www.dev411.com/blog/2007/02/05/displaying-dates-and-times-using-javascript</link>
      <category>scalability</category>
      <category>typo</category>
      <category>javascript</category>
      <category>dhtml</category>
      <category>datetime</category>
    </item>
    <item>
      <title>Notable social bookmarking/networking for Typo</title>
      <description>&lt;p&gt;Benjamin Gorlick asked for  &lt;a href="http://www.calevans.com/view.php/page/notable"&gt;WP-Notable&lt;/a&gt;-style social bookmarking/networking links on the &lt;span class="fix"&gt;#typo&lt;/span&gt; IRC channel so I put one together in the form of a single view (template file). WP-Notable, by Cal Evans, displays a row of icons with links to social bookmarking/networking sites under your blog article allowing for easy posting tovarious social bookmarking sites.&lt;/p&gt;

&lt;p&gt;All the icons used here are from the WP-Notable plugin and look like the following:&lt;/p&gt;

&lt;div style="text-align:center"&gt;&lt;img src="http://www.dev411.com/images/notable/notable.icon_bar.png" alt="notable icon bar"/&gt;&lt;/div&gt;

&lt;p&gt;Without further ado, here are the 4 steps (optional 5th step) to get this on your Typo blog:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Copy the &lt;span class="fix"&gt;&lt;a href="http://www.dev411.com/typo/notable/_article_notable_v4.1.1.rhtml"&gt;_article_notable_v4.1.1.rhtml&lt;/a&gt;&lt;/span&gt; or &lt;span class="fix"&gt;&lt;a href="http://www.dev411.com/typo/notable/_article_notable_v4.0.0.rhtml"&gt;_article_notable_v4.0.0.rhtml&lt;/a&gt;&lt;/span&gt; partial include file to your Typo install's &lt;span class="fix"&gt;app/views/articles/&lt;/span&gt; directory and rename it &lt;span class="fix"&gt;_article_notable.rhtml&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;I've put the code for this all in a single template file to keep the modification in a single place since I have a growing number of mods. There is an array of information for each site. Right now it will create this array each time it is included which may be several times on the homepage. This could be put into the config file or a helper so it gets instantiated only once but I left it in the template since it means updating fewer files and the HTML pages are cached so I don't think it's a big deal. It's also possible to create a notable_link method to generate each link instead of having it created in the template.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Install the icons by extracting the png files from &lt;a href="http://www.dev411.com/typo/notable/typo_notable.tgz"&gt;typo_notable.tgz&lt;/a&gt; into your &lt;span class="fix"&gt;/images/notable&lt;/span&gt; directory. This directory is ferenced in the &lt;span class="fix"&gt;_article_notable.rhtml&lt;/span&gt; file so edit that file if you wish to change the icon locations. The tarball also includes the rhtml file just for completeness.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Add the following to &lt;span class="fix"&gt;index.rhtml&lt;/span&gt; file under the &lt;span class="fix"&gt;"Read more..."&lt;/span&gt; article_link line.  This file is either in &lt;span class="fix"&gt;app/views/articles/&lt;/span&gt; or your theme directory.&lt;/p&gt;

&lt;pre&gt;&amp;lt;%= render :partial=&gt;"article_notable",:locals=&gt;{:article=&gt;article} %&amp;gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Edit the &lt;span class="fix"&gt;read.rhtml&lt;/span&gt; file and add the following line under the where the article body is rendered. In Typo 4.1.1, place this line under the &lt;span class="fix"&gt;&amp;lt;%= html(@article) %&amp;gt;&lt;/span&gt; line and in Typo 4.0.0, place this line under the &lt;span class="fix"&gt;&amp;lt;%= @article.full_html %&amp;gt;&lt;/span&gt; line. The &lt;span class="fix"&gt;read.rhtml&lt;/span&gt; file is either in &lt;span class="fix"&gt;app/views/articles/&lt;/span&gt; or your theme directory.&lt;/p&gt;

&lt;pre&gt;&amp;lt;%= render :partial=&gt;"article_notable",:locals=&gt;{:article=&gt;@article} %&amp;gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; If you want to style the notable icons, there are some CSS classes used &lt;span class="fix"&gt;typo_notable_line&lt;/span&gt;,&lt;span class="fix"&gt;typo_notable&lt;/span&gt; and &lt;span class="fix"&gt;typo_notable_icon&lt;/span&gt;. These are easy to spot in the &lt;span class="fix"&gt;_article_notable.rhtml&lt;/span&gt; file.&lt;/p&gt;

&lt;p&gt;So far I've only tested del.icio.us and digg and the links work since that's where I have accounts. Please let me know if any of the links don't work (or work) for you. Enjoy!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Thanks to Benjamin Gorlick for comments to these instructions.&lt;/p&gt;</description>
      <pubDate>Sat, 02 Sep 2006 12:20:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:99950a82-9949-47c6-84ff-65e929f19659</guid>
      <author>John Wang</author>
      <link>http://www.dev411.com/blog/2006/09/02/notable-social-bookmarking-networking-for-typo</link>
      <category>typo</category>
      <category>hacks</category>
    </item>
    <item>
      <title>Typo - License for TypoGarden Themes</title>
      <description>&lt;p&gt;There has been some confusion about the license that covers the themes submitted to the &lt;a href="http://www.typogarden.org/articles/2005/10/10/typo-theme-contest"&gt;2005 TypoGarden Theme Contest&lt;/a&gt;. Many themes do not mention a specific license and the contest page simply says:&lt;/p&gt;

&lt;div class="quote_simple"&gt;All themes submitted will be made available for download. Don&#8217;t submit it unless you want it to be used by tens of thousands of Typo users.&lt;/div&gt;

&lt;p&gt;Geoffrey Grosenbach, of &lt;a href="http://www.typogarden.org"&gt;TypoGarden&lt;/a&gt;, mentioned on the &lt;span class="fix"&gt;#typo&lt;/span&gt; IRC channel that all the themes submitted are under the &lt;a href="http://www.opensource.org/licenses/mit-license.php"&gt;MIT License&lt;/a&gt;. This makes sense since &lt;a href="http://www.typosphere.org/trac/browser/trunk/MIT-LICENSE"&gt;Typo itself is under the MIT License&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Some contest theme authors have released their themes under different licenses, notably:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://proofread.digital-achievement.com/catalog/themes/view/7"&gt;Lush&lt;/a&gt; by &lt;a href="http://www.i-marco.nl/weblog/"&gt;Marco van Hylckama Vlieg&lt;/a&gt;: This has a 2005 copyright notice and says the theme is "Licensed under the Creative Commons NC License (no commercial use)"&lt;/li&gt;
&lt;li&gt;&lt;a href="http://proofread.digital-achievement.com/catalog/themes/view/16"&gt;Lucid&lt;/a&gt; by &lt;a href="http://www.thelucid.com/"&gt;Jamie Hill&lt;/a&gt;: There's no license file with the Lucid theme, however, Jamie mentions the theme should only be used for Typo in a &lt;a href="http://www.thelucid.com/articles/2005/12/07/lucid-theme-gets-a-polish-ish#comments"&gt;blog comment&lt;/a&gt;: &lt;em&gt;"You can use it as-is on any typo blog however I would not want to see it used for anything other than that i.e. corporate website."&lt;/em&gt; Jamie has been kind enough to allow me to use the Lucid theme on this site &lt;a href="http://www.thelucid.com/articles/2006/07/23/now-running-on-the-latest-typo"&gt;saying&lt;/a&gt;: &lt;em&gt;"As for the licensing&#8230; strictly speaking it should only be used for blogs un-changed however I can&#8217;t see an issue with your usage as the projects you are using it for are open source (as long as the 'template by&#8230;' link stays on there)."&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;IMO, since there doesn't seem to be a license requirement on the theme page and I'm not sure whether the MIT License requirement was communicated to theme submitters via other channels, it seems safer to use the author specified license if it exists and the MIT License when none is specified. For future contests, specifying the submission license requirements with the rest of the rules seems best.&lt;/p&gt;</description>
      <pubDate>Sat, 26 Aug 2006 20:48:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:9624cb15-bad5-4987-ad51-044f223e2423</guid>
      <author>John Wang</author>
      <link>http://www.dev411.com/blog/2006/08/26/typo-license-for-typogarden-themes</link>
      <category>typo</category>
    </item>
    <item>
      <title>Categories vs. Tags</title>
      <description>&lt;p&gt;Today, Google announced the next version of Blogger, &lt;a href="http://buzz.blogger.com/2006/08/blogger-in-beta.html"&gt;Blogger Beta&lt;/a&gt;. As part of this upgrade, Blogger will finally get categorization. Like Gmail, Blogger will only give you 'labels' which other blog engines such as Typo and MovableType give you both categories and tags. When both categories and tags are available, there's often a question as how to use them, either together or one or the other. This can be seen in some blogs where there doesn't seem to be rhyme or reason to what is a category and what is a tag. For Typo, this is somewhat complicated by that fact that tags came along after categories, so some blogs used them for the same thing but never got rid of the old categories after switching to tags so there appears to be some overlap.&lt;/p&gt;

&lt;p&gt;In my opinion, categories should be used for high level groupings. For example, &lt;a href="http://www.theregister.co.uk/"&gt;The Register&lt;/a&gt; uses: Enterprise, Software, Internet, Telecoms, Mobile, Security, Management, Science and Odds &amp;amp; Sods. &lt;a href="http://news.google.com/"&gt;Google News&lt;/a&gt; uses : Top Stories, US, Business, Sci/Tech, Sports, Entertainment, Health and Most Popular. In the past, when people had different subjects they wished to talk about on Blogger, they often got different Blogger blogs to discuss each topic. When categories are available, they can e used to delineate such groupings. IMO, there should only be a limited number of categories and they should cover the general areas discussed by the blog. It would be nice if the categories appeard in a horizontal navbar under the header which will be a lot easer with the mulit-sidebar enhancement.&lt;/p&gt;

&lt;p&gt;I feel that tags, on the other hand, should be used liberally to cover just about any subject that one may wish to discuss on two or more articles, kind of like short cuts to a search. This follows the typical usage pattern for Delicious where one can end up with many tags.&lt;/p&gt;

&lt;p&gt;For this blog, I only have 'tags' (which are really renamed categories from when I was running 2.6.0) but I'm thinking about adding categories as well. Most of the articles now are related to software development so I don't think high level categories are needed. If I do add them however, they will be along the lines of: (a) Development (software programming), (b) Management (things like marketing, entrepreneurship, venturecapital) and (c) Legal (patents, contracts, etc.). That's just to give an idea of how I would use categories and tags together.&lt;/p&gt;</description>
      <pubDate>Wed, 16 Aug 2006 01:18:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e11a20ac-c1e6-41c9-888e-6a339717488e</guid>
      <author>John Wang</author>
      <link>http://www.dev411.com/blog/2006/08/16/categories-vs-tags</link>
      <category>blogger</category>
      <category>typo</category>
    </item>
    <item>
      <title>MediaWiki and Typo - Pros and Cons for Personal Use</title>
      <description>&lt;p&gt;Now that this site runs both MediaWiki and Typo, I need to decide what to post where. Unfortunately I want to continue running both because they each have their advantages but ideally I could just run one, at least externally facing. These are some of the features I like of both MediaWiki and Typo which makes it hard to choose one over the other for all my posts. As a disclaimer, this is a personal wiki so I won't be discussing multiple users. The below lists the pros for each, If it's listed it means the other one doesn't have it ;)&lt;/p&gt;

&lt;p style="font-weight:bold"&gt;MediaWiki&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Heading-based Article Formatting:&lt;/strong&gt; MediaWiki provides some functionality based on article headings. Headings are desginated by =, e.g. = My Heading =. This is similar to &amp;lt;h1&amp;gt;My Heading&amp;lt;/h1&amp;gt; but MediaWiki goes a couple steps further:
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Automatic Outline Numbered TOC:&lt;/strong&gt; A great feature of MediaWiki is the ability to take all the headings, assign anchors and create an outline numbered TOC. I find this invaluable for navigating long articles. For example, the TOC on my &lt;a href="http://www.dev411.com/wiki/Installing_Typo:_MySQL%2C_Apache%2C_lighttpd_and_FastCGI"&gt;Installing Typo&lt;/a&gt; document lets me quickly nagivate to the section I want, whether it's to reference it or to edit it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Edit at Arbitrary Levels:&lt;/strong&gt; MediaWiki's ability to open up just sections of an article for editing makes it a lot more convenient to update articles if you only want to work on a section. There's no need to scroll through lots of text you aren't interested in modifying. If you choose a heading level with its own sub-headings, they'll be included for editing. This makes editing large articles especially easy.&lt;/li&gt;
&lt;/ul&gt;
I'm actually kind of surprised that I haven't seen this feature on other wikis since I find it so useful.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;URI Redirects:&lt;/strong&gt; When you change the name of an article and the URI changes, MediaWiki will automatically add a redirect so sites using the old link will still get the article but be notified that the location has changed. This is very useful if you want to change a URI of an article that's already been indexed or bookmarked by others.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Category Pages:&lt;/strong&gt; MediaWiki's category pages are useful for scanning articles because they list all the titles in multiple columns with alphabetical headers. Many blogs I've run across don't seem to have effective ways to scan articles by title. The TOC I added to my Typo install is very useful for me but some blogs have many times the articles this one does. I think a MediaWiki style category page would work better for scanning lots of articles quickly. The ability to have sub-categories is also nice.&lt;li&gt;
&lt;/ul&gt;

&lt;p style="font-weight:bold"&gt;Typo&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Comments:&lt;/strong&gt; One big feature of blogs that they let people comment on the articles. MediaWiki has a "discussion" section per-page but that's really just another wiki page, not a chronological list of comments identified by author. Some sites have links to forums and other software but it's nice to have the comments right on the page. Most blogs don't get too many comments per article but for blogs that do, say Tim O'Reilly's blog or the RoR blog, it'd be nice to have threaded, scored comments like on Digg or Slashdot. Howeve,r for my purposes, having comments is a lot better than no comments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dynamic Sidebars for Catgories and Tags:&lt;/strong&gt; Typo sidebars for categories and tags are plugins that make database queries and retrieve the number of articles per group. This means that new categories/tags are automatically added to the list and it's pretty easy to sort the items by different criteria. To add custom items in the nav bar for MediaWiki, you have to create two MediaWiki entries per link and then reference them in LocalSettings.php config file, and you still don't get number of articles per group. Getting the number of articles and even listing all the groups in the nav bar probably doesn't make sense for Wikipedia but it could be nice on smaller wikis. Perhaps it can be done with a custom include. MediaWiki seems harder to browse and the Wikipedia portal pages seem a bit cumbersome to make. Something optimized for smaller sites would be useful&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I don't mind hacking software but I'm not crazy about either adding heading-based articles to Typo or adding comments to MediaWiki. That being said, adding MediaWiki formatting to Typo seems to be better than adding comments to MediaWiki. The cleanest way would be to port the formatting code to Ruby and create a Wikimedia text filter. The other features should be easier to add.&lt;/p&gt;</description>
      <pubDate>Fri, 11 Aug 2006 13:37:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:3121ae8f-216a-45f7-92d1-cc3af63a3713</guid>
      <author>John Wang</author>
      <link>http://www.dev411.com/blog/2006/08/11/mediawiki-and-typo-pros-and-cons-for-personal-use</link>
      <category>typo</category>
    </item>
    <item>
      <title>Upgrading Typo 4.0.0 to Rails 1.1.5/1.1.6</title>
      <description>&lt;p&gt;It was recently announced that &lt;a href="http://weblog.rubyonrails.org/2006/8/9/rails-1-1-5-mandatory-security-patch-and-other-tidbits"&gt;Rails 1.1.0, 1.1.1, 1.1.2, and 1.1.4. have a very serious security hole&lt;/a&gt;. Although the RoR blog hasn't discussed exactly what the hole is, it has been rumored to involve uploading of .rb files to execute arbitrary code on the server (UPDATE: &lt;a href="http://www.dev411.com/blog/2006/08/10/rails-1-1-4-load_path-vulernability"&gt;now confirmed&lt;/a&gt;). Typo only allows file uploads by administrators so certain applications may be somewhat safer. (UPDATE: Running arbitrary code was fixed in 1.1.5 however you could still crash it. 1.1.6 has been released to fix these lingering bugs. Just change 1.1.5 to 1.1.6 below).&lt;/p&gt;

&lt;p&gt;Scott Laird is working on releasing Typo 4.0.1 (&lt;a href="http://scottstuff.net/blog/articles/2006/08/10/typo-4-0-1"&gt;now released&lt;/a&gt;) which will include Rails 1.1.5 but until then, or if you don't want to upgrade Typo, you can simply upgrade the Rails used by Typo by installing the 1.1.5 &lt;span class="fix"&gt;vendor/rails&lt;/span&gt; directory over the existing one. Here are some steps:&lt;/p&gt;

&lt;pre&gt;$ cd /tmp
$ wget http://rubyforge.org/frs/download.php/12258/rails-1.1.5.tgz
$ tar -zxf rails-1.1.5.tgz
$ cd rails/vendor
$ tar -zcf rails-1.1.5-vendor-rails.tgz rails
$ mv rails-1.1.5-vendor-rails.tgz /path/to/typo/vendor
$ cd /path/to/typo/vendor
$ tar -zxf rails-1.1.5-vendor-rails.tgz&lt;/pre&gt;
&lt;p&gt;To verify that Rails has been updated you can view the &lt;span class="fix"&gt;version.rb&lt;/span&gt; file which should now give you the following:&lt;/p&gt;
&lt;pre&gt;$ cat rails/railties/lib/rails/version.rb
module Rails
  module VERSION #:nodoc:
    MAJOR = 1
    MINOR = 1
    TINY  = 5

    STRING = [MAJOR, MINOR, TINY].join('.')
  end
end&lt;/pre&gt;

&lt;p&gt;You'll probably want to back up the existing &lt;span class="fix"&gt;vendor/rails&lt;/span&gt; directory as this will extract the 1.1.5 files over it. If you simply swap &lt;span class="fix"&gt;vendor&lt;/span&gt; directories, you'll get a lot of missing requirements errors (e.g. redcloth, bluecloth, rubypants, uuidtools, etc.) because rails isn't the only thing installed under &lt;span class="fix"&gt;vendor&lt;/span&gt; for Typo.&lt;/p&gt;</description>
      <pubDate>Thu, 10 Aug 2006 01:14:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:9e4a4521-59c8-4dd7-b698-e201f4eb144a</guid>
      <author>John Wang</author>
      <link>http://www.dev411.com/blog/2006/08/10/upgrading-typo-4-0-0-to-rails-1-1-5</link>
      <category>security</category>
      <category>typo</category>
      <category>rails</category>
    </item>
    <item>
      <title>Typo Upgrade: 2.6.0 to 4.0.0 r1188</title>
      <description>&lt;p&gt;I finally got around to upgrading Typo here to the latest trunk. At first I was waiting to upgrade to 4.0.0 (officially r1161) but decided to move to SVN after hearing about some post-r1161 bugfixes and it seems like a fairly common practice to run off SVN, at least for Typo. I've hacked a few changes onto 2.6.0 and had to manually merge the mods to r1181. Merging one's own mods to the trunk was discussed today on the Typo mailing list under the heading "Version Controling Modifications" and most of the respondents have their own mods and use Chia-Liang Kao's &lt;a href="http://svk.elixus.org/"&gt;SVK&lt;/a&gt; to keep their mods synced with the trunk. Scott Laird has a &lt;a href="http://scottstuff.net/blog/articles/search?q=svk"&gt;number of articles on using SVK with Typo's repo&lt;/a&gt;. Seems like running off of the trunk with SVK may be a best practice for Typo installations.&lt;/p&gt;

&lt;p&gt;Hopefully I'll be on SVK for my next upgrade since I had to manually update the following files this time around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;app/controllers/articles_controller.rb&lt;/li&gt;
&lt;li&gt;app/helpers/application_helper.rb&lt;/li&gt;
&lt;li&gt;app/helpers/articles_helper.rb&lt;/li&gt;
&lt;li&gt;app/views/articles/_article.rhtml&lt;/li&gt;
&lt;li&gt;app/views/articles/_articles_toc.rhtml&lt;/li&gt;
&lt;li&gt;app/views/articles/index.rhtml&lt;/li&gt;
&lt;li&gt;app/views/articles/read.rhtml&lt;/li&gt;
&lt;li&gt;components/plugins/sidebars/category/content.rhtml&lt;/li&gt;
&lt;li&gt;components/plugins/sidebars/xml/content.rhtml&lt;/li&gt;
&lt;li&gt;config/routes.rb&lt;/li&gt;
&lt;li&gt;themes/azure/layouts/default.rhtml&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've moved all my Azure theme changes to a custom theme so the changes are easier to keep track of and don't interfere with the base Azure theme.&lt;/p&gt;

&lt;p&gt;I've updated my &lt;a href="http://www.dev411.com/wiki/Installing_Typo:_MySQL%2C_Apache%2C_lighttpd_and_FastCGI"&gt;Installing Typo&lt;/a&gt; article to cover SVN checkout, Feedburner customization and rake migrate. The &lt;a href="http://www.dev411.com/blog/2006/06/26/adding-a-toc-to-typo"&gt;Typo TOC How-to&lt;/a&gt; has also been updated for 4.0.0.&lt;/p&gt;

&lt;p&gt;While code diving, I was happy to see lots of refactoring though the code is still pretty easy to follow and modify. Hopefully soon I'll be back to hacking more enhancements. I'm particularly interested in extending the sidebar functionality so groups of plugins can be positioned in multiple locations on the page, e.g. a 3-col layout.&lt;/p&gt;

&lt;p style="font-weight:bold"&gt;Upgrade Gotchas&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;div style="background-color:#ffebeb;border:1px solid #ef9a9c;padding:2px"&gt;UPDATE: this section on Feed URIs seems to be inaccurate because I chose to use my old 2.6.0 routes.rb file. I didn't think the feed URIs would change. New approach: don't assume anything has stayed the same and move to svk.&lt;/div&gt;&lt;strong&gt;Feed URIs:&lt;/strong&gt; Typo 4.0.0 changes the feed URIs from 2.6.0 so if you have these URIs registered somewhere, e.g. Feedburner or LiveJournal, you'll need to upgrade your URIs. The new URI styles are:&lt;ul style="color:green"&gt;&lt;li&gt;http://www.dev411.com/blog/xml/feed/feed.xml?type=feed&amp;amp;format=atom&lt;/li&gt; &lt;li&gt;http://www.dev411.com/blog/xml/feed/feed.xml?type=feed&amp;amp;format=rss20&lt;/li&gt;
&lt;/ul&gt;
For comparison, the 2.6.0 style is:&lt;ul style="color:red"&gt;&lt;li&gt;http://www.dev411.com/blog/xml/rss/feed.xml&lt;/li&gt;
&lt;/ul&gt;
Everytime this URI changes I need to file a support ticket at LiveJournal whereas on Feedburner I can change the URI myself. I've been wondering if I should just have LiveJournal use the Feedburner URI ;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Categories sidebar no longer alphabetized:&lt;/strong&gt; My categories list was no longer alphabetized so I edited the &lt;span class="fix"&gt;components/plugins/sidebars/category/content.rhtml&lt;/span&gt; page from:
&lt;pre&gt;&amp;lt;% for category in @categories -%&amp;gt;&lt;/pre&gt;
to 
&lt;pre&gt;&amp;lt;% for category in @categories.sort {|a,b| a.name &amp;lt;=&amp;gt; b.name} -%&amp;gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;config no longer used in ArticlesController:&lt;/strong&gt; If you used config, the code needs to be changed like this example:
&lt;pre&gt;config[:blog_name]&lt;/pre&gt;
to
&lt;pre&gt;this_blog.blog_name&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Wed, 02 Aug 2006 18:32:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:ddbedfc6-1c40-4b97-943d-cb05376a525c</guid>
      <author>John Wang</author>
      <link>http://www.dev411.com/blog/2006/08/02/typo-upgrade-2-6-0-to-4-0-0-r1188</link>
      <category>typo</category>
    </item>
    <item>
      <title>Mongrel and non-root URIs</title>
      <description>&lt;p&gt;Two weeks ago, Scott Laird posted a Mongrel patch to the Typo list to make it work with non-root URIs. I'm particularly interested in this because Mongrel is getting more mindshare and my blog uses a non-root URI. The patch has been submitted to Zed Shaw for inclusion but, until it's in, here are some links since I don't think this is easy to find:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.mail-archive.com/typo-list@rubyforge.org/msg02733.html"&gt;archived email&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mail-archive.com/typo-list@rubyforge.org/msg02733/mongrel.diff"&gt;mongrel.diff patch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; This is now included in &lt;a href="http://www.mail-archive.com/mongrel-users@rubyforge.org/msg00596.html"&gt;Mongrel 0.3.13.4 pre-release&lt;/a&gt;.&lt;/p&gt;

</description>
      <pubDate>Sun, 23 Jul 2006 12:59:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:af2bb512b69726744a3c11699feb93c2</guid>
      <author>John Wang</author>
      <link>http://www.dev411.com/blog/2006/07/23/mongrel-and-non-root-uris</link>
      <category>typo</category>
      <category>rails</category>
    </item>
  </channel>
</rss>
