<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>An Experiment in Bloggery &#187; typo</title>
	<atom:link href="http://kevin.sb.org/tag/typo/feed/" rel="self" type="application/rss+xml" />
	<link>http://kevin.sb.org</link>
	<description>The occasional view into my life</description>
	<lastBuildDate>Fri, 09 Sep 2011 00:19:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Back from the grave</title>
		<link>http://kevin.sb.org/2008/03/09/back-from-the-grave/</link>
		<comments>http://kevin.sb.org/2008/03/09/back-from-the-grave/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 19:14:30 +0000</pubDate>
		<dc:creator>Kevin Ballard</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[DreamHost]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[typo]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://kevin.sb.org/2008/03/09/back-from-the-grave/</guid>
		<description><![CDATA[Well, after about 5 hours of hacking, I got a ruby script together to migrate all my data from Typo 4.11 to WordPress, so the site is back from the dead, and now running on an engine that DreamHost is actually happy with. Update: The conversion script is now available at GitHub.]]></description>
			<content:encoded><![CDATA[<p>Well, after about 5 hours of hacking, I got a ruby script together to migrate all my data from Typo 4.11 to WordPress, so the site is back from the dead, and now running on an engine that DreamHost is actually happy with.</p>

<p><strong>Update</strong>: The conversion script is now available at <a href="http://github.com/kballard/typo-wordpress/">GitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.sb.org/2008/03/09/back-from-the-grave/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Resurrection of Typosphere</title>
		<link>http://kevin.sb.org/2007/01/22/the-resurrection-of-typosphere/</link>
		<comments>http://kevin.sb.org/2007/01/22/the-resurrection-of-typosphere/#comments</comments>
		<pubDate>Mon, 22 Jan 2007 19:34:00 +0000</pubDate>
		<dc:creator>Kevin Ballard</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[DreamHost]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[Planet Argon]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[trac]]></category>
		<category><![CDATA[typo]]></category>
		<category><![CDATA[Typosphere]]></category>

		<guid isPermaLink="false">http://54f021aa-61c3-4e07-82f3-51e46c740bca</guid>
		<description><![CDATA[After months of absence, Typosphere has returned from the dead! We migrated off of Planet Argon and onto DreamHost, where we should have more control. We also upgraded to Trac 0.10.3 and turned off anonymous editing (users now have to register to file a ticket). This should (hopefully) prevent the issue that lead to Typosphere [...]]]></description>
			<content:encoded><![CDATA[<p>After months of absence, <a href="http://www.typosphere.org">Typosphere</a> has returned from the dead!</p>

<p>We migrated off of <a href="http://www.planetargon.com">Planet Argon</a> and onto <a href="http://www.dreamhost.com">DreamHost</a>, where we should have more control.
We also upgraded to <a href="http://trac.edgewall.org">Trac</a> 0.10.3 and turned off anonymous editing (users now have to register to file a ticket).
This should (hopefully) prevent the issue that lead to Typosphere dying in the first place.</p>

<div class="highlight">
<p>One important thing to note is that as part of this process, we also moved the subversion repository.
Unfortunately, the old repository was hosted as an svn:// URI using the typosphere.org domain, which meant
there was no way to preserve this URI (since we can&#8217;t run long-lived background daemons on DreamHost). The
new URI uses http and a new subdomain, so if necessary we can move the repository without moving the website.</p>

<p style="text-align: left">The new repository URL is <a href="http://svn.typosphere.org/typo/trunk">http://svn.typosphere.org/typo/trunk</a>.</p>
</div>

<p><span id="more-136"></span></p>

<p>The issue, as near as I can tell, is Typosphere started getting spammed massively. At this time none of the
developers (and that includes me) was really paying attention to Typo, as we were busy with other things. So
for about a month Typosphere Trac got so full of spam that, well, it was more spam in one location than
I&#8217;ve ever seen in the rest of my life. This managed to trip a bug in Trac that caused it to start sucking
CPU and RAM, and so Planet Argon turned off Trac for our account.</p>

<p>Some time later, the other developers and I started trying to resurrect Typosphere. Unfortunately, at about
this time the systems administrator for Planet Argon was preparing to leave the company, so any attempts at
contacting him to resolve the issue went unanswered. I eventually called Planet Argon (which is how I learned
that the systems administrator had, in fact, left that very day) and spoke to the new systems administrator. He
agreed to try and fix Trac for us, but after hearing nothing for a few days, I decided it would be better to seek
hosting elsewhere.</p>

<p>Luckily, I had access to a <a href="http://www.dreamhost.com">DreamHost</a> account with plenty of spare bandwidth and disk space,
so we decided to move there. For the most part the migration went smoothly, until I started up Trac and discovered
exactly how much spam was in there.</p>

<p>This problem stumped me for about 2 weeks. I spent several hours trying to clean it by hand one day, and after those
several hours I couldn&#8217;t tell the difference. So, yesterday, I finally sat down to try and solve the problem.</p>

<p>With the help of the fine folks on the <a href="irc://chat.freenode.net/#trac">#trac</a> IRC channel, especially coderanger, I wrote a script which deleted
every single ticket change after a certain timestamp (corresponding to the first spam comment). Unfortunately, there
were probably a handful of legitimate changes lost, but there really was no other alternative. In any case, this script
worked flawlessly, and Trac was de-spammed. To prevent this from happening in the future, I turned off anonymous
editing and installed a plugin which allows users to register for an account. Hopefully the requirement of registration
will block most spam.</p>

<p>There was one interesting aspect to this that puzzled me until yesterday. The vast majority of the spam I saw contained
words that I had placed into the blacklist ages ago. I couldn&#8217;t figure out why the spam protection wasn&#8217;t working.
And then yesterday I discovered the reason. The blacklist is kept on a page called BadContent. The first code block
on that page consists of regular expressions, one per line, that each match a blacklisted expression. Unfortunately,
I forgot to mark this page read-only. So what happened was one of the random spam attempts happened to target this
page. The spammer replaced the content with his own code block containing a vast number of <code>&lt;a href&gt;</code> tags linking
to spammy websites. This had the effect of replacing the entire blacklist with a bunch of regular expressions matching
<code>&lt;a href&gt;</code> tags. This meant that all of the stuff that was previously blacklisted was no longer being blocked, opening
the floodgates for all sorts of spam.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.sb.org/2007/01/22/the-resurrection-of-typosphere/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Typo 4.0 is out</title>
		<link>http://kevin.sb.org/2006/07/23/typo-4-0-is-out/</link>
		<comments>http://kevin.sb.org/2006/07/23/typo-4-0-is-out/#comments</comments>
		<pubDate>Sun, 23 Jul 2006 04:15:00 +0000</pubDate>
		<dc:creator>Kevin Ballard</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[typo]]></category>

		<guid isPermaLink="false">http://04c0fc07-e4f6-4bfe-aa5c-76b5eb28984d</guid>
		<description><![CDATA[Typo 4.0 is out! Many thanks to Scott Laird for his wonderful work on Akismet support and the new gem installer.]]></description>
			<content:encoded><![CDATA[<p><a href="http://scottstuff.net/blog/articles/2006/07/22/typo-4-0-0">Typo 4.0</a> is out! Many thanks to <a href="http://www.scottstuff.net">Scott Laird</a> for his wonderful work on <a href="http://www.akismet.com">Akismet</a> support and the new gem installer.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.sb.org/2006/07/23/typo-4-0-is-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nearing 4.0</title>
		<link>http://kevin.sb.org/2006/04/13/nearing-4-0/</link>
		<comments>http://kevin.sb.org/2006/04/13/nearing-4-0/#comments</comments>
		<pubDate>Thu, 13 Apr 2006 05:27:00 +0000</pubDate>
		<dc:creator>Kevin Ballard</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[milestone]]></category>
		<category><![CDATA[slaird]]></category>
		<category><![CDATA[ticket]]></category>
		<category><![CDATA[typo]]></category>

		<guid isPermaLink="false">http://321f144e-6fc8-440e-bf47-75624c365d02</guid>
		<description><![CDATA[Well, it looks like we&#8217;re almost at the 4.0 milestone for Typo. Tonight I knocked off 7 tickets (a couple just got re-categorized, but others got fixed/closed). Now there&#8217;s just 1 left, and it&#8217;s slaird&#8217;s responsibility. Unfortunately I have no idea what the time frame is on finishing it. In any case, I&#8217;ll be pushing [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it looks like we&#8217;re almost at the 4.0 milestone for <a href="http://www.typosphere.org">Typo</a>. Tonight I knocked off 7 tickets (a couple just got re-categorized, but others got fixed/closed). Now there&#8217;s just 1 left, and it&#8217;s <a href="http://scottstuff.net/blog/">slaird</a>&#8217;s responsibility. Unfortunately I have no idea what the time frame is on finishing it.</p>

<p>In any case, I&#8217;ll be pushing to get 4.0 out the door as soon as possible.</p>

<p>BTW, anybody currently on trunk and Rails 1.1, I <em>highly</em> encourage you to upgrade to HEAD. Why? Because I squelched the exceedingly verbose logging of sidebar rendering (in a quick test, a single sidebar rendered on the front page shoved 70k into the log file). It&#8217;s a fairly ugly hack, but it&#8217;ll save you from having to wipe your logs every week.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.sb.org/2006/04/13/nearing-4-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails 1.1 and Typo</title>
		<link>http://kevin.sb.org/2006/03/28/rails-1-1-and-typo/</link>
		<comments>http://kevin.sb.org/2006/03/28/rails-1-1-and-typo/#comments</comments>
		<pubDate>Tue, 28 Mar 2006 05:09:00 +0000</pubDate>
		<dc:creator>Kevin Ballard</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[typo]]></category>

		<guid isPermaLink="false">http://4d6d45b0-5163-4798-942f-adfc39d48b55</guid>
		<description><![CDATA[Well, Rails 1.1 is out now. And that is a problem for Typo. See, when we tried running it under Rails 1.1rc1 we discovered that this new version of Rails has certain problems with components. Basically, Rails isn&#8217;t setting up the component namespaces that we&#8217;re expecting it to. I guess this is what I&#8217;ll be [...]]]></description>
			<content:encoded><![CDATA[<p>Well, <a href="http://weblog.rubyonrails.com/articles/2006/03/28/rails-1-1-rjs-active-record-respond_to-integration-tests-and-500-other-things">Rails 1.1</a> is out now. And that is a problem for <a href="http://www.typosphere.org">Typo</a>. See, when we tried running it under Rails 1.1rc1 we discovered that this new version of Rails has certain problems with components. Basically, Rails isn&#8217;t setting up the component namespaces that we&#8217;re expecting it to. I guess this is what I&#8217;ll be spending tomorrow evening hammering on.</p>

<p><strong>Update:</strong> As of 10:57 AM this morning, Typo <a href="http://typosphere.org/trac/wiki/DownloadCurrent">trunk</a> now supports Rails 1.1 (and should work with Rails 1.0 too).</p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.sb.org/2006/03/28/rails-1-1-and-typo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAX on Rails</title>
		<link>http://kevin.sb.org/2006/01/15/ajax-on-rails/</link>
		<comments>http://kevin.sb.org/2006/01/15/ajax-on-rails/#comments</comments>
		<pubDate>Sun, 15 Jan 2006 19:49:00 +0000</pubDate>
		<dc:creator>Kevin Ballard</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[typo]]></category>

		<guid isPermaLink="false">http://4c888bee-7866-4d37-90b7-57829cbf2786</guid>
		<description><![CDATA[Just a quick post about AJAX on Rails, to test out my latest feature, which is Lightbox support for Typo: If you click that and it doesn&#8217;t overlay the image on top of the current page, then you&#8217;ve run into a bug in Safari that I&#8217;m trying to figure out the cause of. Grrrrr. The [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick post about AJAX on Rails, to test out my latest feature, which is Lightbox support for Typo:</p>

<p><typo:lightbox img="19608403" thumbsize="small" displaysize="medium" /></p>

<p><strike>If you click that and it doesn&#8217;t overlay the image on top of the current page, then you&#8217;ve run into a bug in Safari that I&#8217;m trying to figure out the cause of. Grrrrr.</strike>
The bug has been worked around.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.sb.org/2006/01/15/ajax-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now with trunk goodness!</title>
		<link>http://kevin.sb.org/2005/07/18/now-with-trunk-goodness/</link>
		<comments>http://kevin.sb.org/2005/07/18/now-with-trunk-goodness/#comments</comments>
		<pubDate>Tue, 19 Jul 2005 01:55:00 +0000</pubDate>
		<dc:creator>Kevin Ballard</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svk]]></category>
		<category><![CDATA[typo]]></category>

		<guid isPermaLink="false">http://877e3679431f9125b387ff47415e0cf1</guid>
		<description><![CDATA[Well, I finally bit the bullet and upgraded my blog from the Typo stable release to the HEAD of the svn trunk. I wasn&#8217;t going to do this for a while, because of the complexity in keeping site-specific changes away from my Typo hacking, but I ran across this article that explained how to use [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I finally bit the bullet and upgraded my blog from the Typo stable release to the HEAD of the svn trunk. I wasn&#8217;t going to do this for a while, because of the complexity in keeping site-specific changes away from my Typo hacking, but I ran across <a href="http://scottstuff.net/blog/articles/2005/07/07/distributed-development-with-svk" title="Distributed Development with SVK">this article</a> that explained how to use <a href="http://svk.elixus.org/" title="svk Version Control System">svk</a> to manage all this for me, and now I&#8217;m testing it out. Hopefully everything will work fine, but if anything weird goes on, you&#8217;ll know why.</p>

<p>Typo trunk has a bunch of nifty stuff. The most noticeable is the new look, although I do plan on changing it at some point. Another thing that was just added is cached pages (and by just added I mean added yesterday). This is why the &#8220;Posted 27 days ago&#8221; timestamps are gone, although we&#8217;re looking into re-adding that with JavaScript (Update: this has now been re-added). There&#8217;s some other stuff in here, like support for <a href="http://daringfireball.net/projects/smartypants/">SmartyPants</a>, emails on the comments, and more.</p>

<p>If you notice anything wrong that doesn&#8217;t go away shortly, please, leave a comment telling me what the problem is, or if comments are a problem, send me an <a href="mailto:kevin@sb.org" title="kevin@sb.org">email</a> about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.sb.org/2005/07/18/now-with-trunk-goodness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typo Linkage</title>
		<link>http://kevin.sb.org/2005/07/13/typo-linkage/</link>
		<comments>http://kevin.sb.org/2005/07/13/typo-linkage/#comments</comments>
		<pubDate>Wed, 13 Jul 2005 11:24:00 +0000</pubDate>
		<dc:creator>Kevin Ballard</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[typo]]></category>

		<guid isPermaLink="false">http://5e4aeafb38258e1b5e6e56062e8e4ab9</guid>
		<description><![CDATA[Well, it turns out at least one person reads my blog. Jonas Luster kindly, and surprisingly, linked my blog in one of his posts, referring to my switch to Typo. Jonas himself switched to Typo 9 days ago, although he&#8217;s already got a nice new style to his site and I haven&#8217;t spent the time [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it turns out at least one person reads my blog. Jonas Luster kindly, and surprisingly, <a href="http://www.jluster.org/articles/2005/07/13/switcheroo">linked</a> my blog in one of his posts, referring to my switch to <a href="http://typo.leetsoft.com">Typo</a>. Jonas himself <a href="http://www.jluster.org/articles/2005/07/03/holy-shit-jonas-what-happened">switched</a> to Typo 9 days ago, although he&#8217;s already got a nice new style to his site and I haven&#8217;t spent the time coming up with one for this one yet.</p>

<p>Anyway, I think this is pretty cool, and I hope more blogs switch to Typo as it&#8217;s a great engine.</p>

<p>Thanks Jonas!</p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.sb.org/2005/07/13/typo-linkage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hacking Typo</title>
		<link>http://kevin.sb.org/2005/07/09/hacking-typo/</link>
		<comments>http://kevin.sb.org/2005/07/09/hacking-typo/#comments</comments>
		<pubDate>Sat, 09 Jul 2005 04:15:00 +0000</pubDate>
		<dc:creator>Kevin Ballard</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[typo]]></category>

		<guid isPermaLink="false">http://fc88bad30c41f6290d5c1e5d7dbbf020</guid>
		<description><![CDATA[Well, imagine my surprise when I discovered that a bunch of my old entries no longer worked right in Typo? The problem is, out of the box, Typo doesn&#8217;t bother showing the extended portions of entries, even though it does store them. So I sat down and started poking around the internals of Typo and [...]]]></description>
			<content:encoded><![CDATA[<p>Well, imagine my surprise when I discovered that a bunch of my old entries no longer worked right in Typo? The problem is, out of the box, Typo doesn&#8217;t bother showing the extended portions of entries, even though it does store them. So I sat down and started poking around the internals of Typo and got it to not only show the extended part, but also to let me edit the extended part from the admin interface. And it didn&#8217;t take very long at all, because of how powerful and flexible <a href="http://www.rubyonrails.com">Ruby on Rails</a> is.</p>

<p>And then, after that, I read up on mod_rewrite and added rewrite rules to get all the old MT URLs to point to the right place. Hopefully I didn&#8217;t miss anything.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.sb.org/2005/07/09/hacking-typo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Say Hello to Typo</title>
		<link>http://kevin.sb.org/2005/07/08/say-hello-to-typo/</link>
		<comments>http://kevin.sb.org/2005/07/08/say-hello-to-typo/#comments</comments>
		<pubDate>Sat, 09 Jul 2005 02:42:00 +0000</pubDate>
		<dc:creator>Kevin Ballard</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[DreamHost]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[typo]]></category>

		<guid isPermaLink="false">http://302963ed28fae471aa61677b43329bdb</guid>
		<description><![CDATA[If you can see this post, you&#8217;ll notice that everything&#8217;s changed. Not only has the entire look of the blog changed, but so has the server the blog is hosted on. This blog is now being hosted by DreamHost, and the blog system I&#8217;m using is Typo. Play around with it &#8212; I think you&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>If you can see this post, you&#8217;ll notice that everything&#8217;s changed. Not only has the entire look of the blog changed, but so has the server the blog is hosted on. This blog is now being hosted by <a href="http://www.dreamhost.com">DreamHost</a>, and the blog system I&#8217;m using is <a href="http://typo.leetsoft.com" title="Typo: A weblog written in Ruby on Rails">Typo</a>. Play around with it &#8212; I think you&#8217;ll find it&#8217;s very cool. For example, you can do live searches, posting a comment is live too, and everything should also be nice and zippy. The first two are because of the new <a href="http://typo.leetsoft.com" title="Typo: A weblog written in Ruby on Rails">Typo</a> engine (which uses <a href="http://www.rubyonrails.com/">Ruby on Rails</a>, an excellent web application framework), and the last is a combination of <a href="http://typo.leetsoft.com" title="Typo: A weblog written in Ruby on Rails">Typo</a> and the new server.</p>

<p>So hopefully, with this new blog in place, I&#8217;ll actually be motivated to start posting again. I&#8217;m sure if I have anybody that still reads this (and by reads I mean is subscribed in their newsreader), you&#8217;ll be happy to hear this.</p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.sb.org/2005/07/08/say-hello-to-typo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
