<?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>LolocoJr &#187; andy</title>
	<atom:link href="http://www.railsguru.com/articles/author/andy/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.railsguru.com</link>
	<description>Andy Lo-A-Foe&#039;s blog</description>
	<lastBuildDate>Thu, 21 Jul 2011 13:31:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>IR_Black on MacOS X Lion</title>
		<link>http://www.railsguru.com/articles/2011/07/03/ir_black-on-macos-x-lion/</link>
		<comments>http://www.railsguru.com/articles/2011/07/03/ir_black-on-macos-x-lion/#comments</comments>
		<pubDate>Sun, 03 Jul 2011 20:55:00 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[ir_black lion simbl]]></category>

		<guid isPermaLink="false">http://www.railsguru.com/?p=4621</guid>
		<description><![CDATA[Just upgraded to GM developer release of MacOS X Lion and noticed SIMBL TerminalColour plugin hack I use to get the right colors on the popular IR_Black theme was broken. The new terminal however finally allows you to actually pick &#8230; <a href="http://www.railsguru.com/articles/2011/07/03/ir_black-on-macos-x-lion/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just upgraded to GM developer release of MacOS X Lion and noticed SIMBL TerminalColour plugin hack I use to get the right colors on the popular <a href="http://blog.toddwerth.com/entries/show/6">IR_Black</a> theme was broken.  The new terminal however <strong>finally</strong> allows you to actually pick your own colors for the ANSI set. This means no more struggling with SIMBL or 32/64-bit TerminalColour installations or .plist tweaking for every dot release. </p>
<p>Download the <a href="http://www.railsguru.com/wp-content/uploads/2011/07/IR_Black.terminal">IR_Black.terminal</a> exported file.</p>
<p>And just use the &#8220;Import&#8230;&#8221; menu item as seen below. Done!</p>
<p><img src="http://www.railsguru.com/wp-content/uploads/2011/07/terminalconfig.png" /></p>
<p>Screenshot:</p>
<p><img src="http://www.railsguru.com/wp-content/uploads/2011/07/ansi.png" /></p>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "pub-6322765154114793";
/* 300x250, created 7/3/11 */
google_ad_slot = "6228709946";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.railsguru.com/articles/2011/07/03/ir_black-on-macos-x-lion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Snow Leopard + MySQL + Ruby + 64-bit = #fail</title>
		<link>http://www.railsguru.com/articles/2010/07/09/snow-leopard-mysql-ruby-64-bit-fail/</link>
		<comments>http://www.railsguru.com/articles/2010/07/09/snow-leopard-mysql-ruby-64-bit-fail/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 12:08:16 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.railsguru.com/?p=4618</guid>
		<description><![CDATA[Running into the following error after your Snow Leopard upgrade? uninitialized constant MysqlCompat::MysqlRes Then the following build line for the mysql gem might fix it for you: ARCHFLAGS="-arch i386 -arch x86_64" \ gem install --no-rdoc --no-ri mysql ]] \ -- &#8230; <a href="http://www.railsguru.com/articles/2010/07/09/snow-leopard-mysql-ruby-64-bit-fail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Running into the following error after your Snow Leopard upgrade?</p>
<pre>uninitialized constant MysqlCompat::MysqlRes</pre>
<p>Then the following build line for the mysql gem might fix it for you:</p>
<pre>ARCHFLAGS="-arch i386 -arch x86_64"  \</pre>
<pre>  gem install --no-rdoc --no-ri mysql ]] \</pre>
<pre>  -- --with-mysql-dir=/opt/local/lib/mysql5 \</pre>
<pre>  --with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config</pre>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "pub-6322765154114793";
/* 300x250, created 7/3/11 */
google_ad_slot = "6228709946";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.railsguru.com/articles/2010/07/09/snow-leopard-mysql-ruby-64-bit-fail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Microblogging FTW?</title>
		<link>http://www.railsguru.com/articles/2010/04/15/microblogging-ftw/</link>
		<comments>http://www.railsguru.com/articles/2010/04/15/microblogging-ftw/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 19:56:00 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blog microblogging]]></category>

		<guid isPermaLink="false">http://www.railsguru.com/articles/2010/04/15/microblogging-ftw/</guid>
		<description><![CDATA[Haven&#8217;t updated this blog in quite a while. On the other hand I&#8217;ve been very active on Twitter. Going to hunt for a WordPress plugin that &#8216;reblogs&#8217; the microblogging activity]]></description>
			<content:encoded><![CDATA[<p>Haven&#8217;t updated this blog in quite a while. On the other hand I&#8217;ve been very active on Twitter. Going to hunt for a WordPress plugin that &#8216;reblogs&#8217; the microblogging activity</p>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "pub-6322765154114793";
/* 300x250, created 7/3/11 */
google_ad_slot = "6228709946";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.railsguru.com/articles/2010/04/15/microblogging-ftw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EngineYard takes over the JRuby team</title>
		<link>http://www.railsguru.com/articles/2009/07/28/engineyard-takes-over-the-jruby-team/</link>
		<comments>http://www.railsguru.com/articles/2009/07/28/engineyard-takes-over-the-jruby-team/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 03:29:17 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[sun jruby ruby]]></category>

		<guid isPermaLink="false">http://www.railsguru.com/articles/2009/07/28/engineyard-takes-over-the-jruby-team/</guid>
		<description><![CDATA[Wow, EngineYard is really stepping up! Have to wonder though what&#8217;s going on at Sun, is the whole thing now imploding?! Crazy!]]></description>
			<content:encoded><![CDATA[<p>Wow, EngineYard is really stepping up! Have to wonder though what&#8217;s going on at Sun, is the whole thing now imploding?! <a href="http://blog.headius.com/">Crazy!</a></p>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "pub-6322765154114793";
/* 300x250, created 7/3/11 */
google_ad_slot = "6228709946";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.railsguru.com/articles/2009/07/28/engineyard-takes-over-the-jruby-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scala scripting continued</title>
		<link>http://www.railsguru.com/articles/2009/07/13/scala-scripting-continued/</link>
		<comments>http://www.railsguru.com/articles/2009/07/13/scala-scripting-continued/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 13:08:45 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://www.railsguru.com/?p=4593</guid>
		<description><![CDATA[It took a day or two of blog reading and scala console try outs but I managed to create my first usable Scala script. import scala.xml._ /** Sequence number fix script. See http://fugamusic.com/docs/ingestion/ingestion.xsd **/ object FixSequence { var seq: List[Pair[Int,Int]] &#8230; <a href="http://www.railsguru.com/articles/2009/07/13/scala-scripting-continued/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It took a day or two of blog reading and scala console try outs but I managed to create my first usable Scala script.</p>
<pre class="brush:scala">
import scala.xml._

/**
  Sequence number fix script. See http://fugamusic.com/docs/ingestion/ingestion.xsd
**/

object FixSequence {
	var seq: List[Pair[Int,Int]] = List()
	var working_vol = 0

	def main(args: Array[String]) {
		val pp = new PrettyPrinter(80, 2)
		val fuga = XML.loadFile(args(0))(0)
		loadSeq(fuga)
		println(pp.format(fixSeq(fuga)))
	}

	def loadSeq(xml: Node) {
		for (t <- xml \ "tracks" \ "track")
			seq = ((t \ "on_disc" text).toInt, (t \ "sequence_number" text).toInt) :: seq
	}

	def maxSeq(vol:Int) = {
		seq.foldLeft(0){(s,v) => if(v._1 == vol &#038;&#038; v._2 > s) v._2 else s}
	}

	def maxVol: Int = {
		seq.foldLeft(0){(m,v) => if (v._1 > m) v._1 else m }
	}

	def baseVal(vol: Int): Int = {
		(for (t <- 1 to vol-1) yield maxSeq(t)).foldLeft(0) {_+_}
	}

	def fixSeq(xml: Node): Node = {
		def updateSeq(ns: Seq[Node]): Seq[Node] = {
			for (n <- ns) yield n match {
				case <on_disc>{ disc_nr }</on_disc> => {
					working_vol = disc_nr.text.toInt
					<on_disc>{ disc_nr }</on_disc>
				}
				case <sequence_number>{ seq_nr }</sequence_number> => {
					<sequence_number>{ seq_nr.text.toInt + baseVal(working_vol) }</sequence_number>
				}
				case Elem(prefix, label, attribs, scope, children @ _*) =>
					Elem(prefix, label, attribs, scope, updateSeq(children) : _*)
				case other => other
			}
		}
		updateSeq(xml.theSeq)(0)
	}
}

FixSequence.main(args)
</pre>
<p>While working on the script I rewrote several methods to be more Scala-like as I got more feeling for some of the functional traits of Scala. For instance the method:</p>
<pre class="brush:scala">
def baseVal(vol: Int): Int = {
	var base_val = 0
	for (t <- 1 to vol-1) base_val += maxSeq(t)
	base_val
}
</pre>
<p>was rewritten to be var'less:</p>
<pre class="brush:scala">
def baseVal(vol: Int): Int = {
	(for (t <- 1 to vol-1) yield maxSeq(t)).foldLeft(0) {_+_}
}
</pre>
<p>(the { } can even be omitted in this case). Thanks for the foldLeft tip <a href="http://log4p.com" target="_blank">p3t0r</a>!</p>
<p>But the hardest part was figuring out how to modify the XML structure in Scala without using DOM. Scala's XML support is quite amazing, especially the pattern matching and the ability to mix XML constructs with code!<br />
I did cheat a bit IMHO by keeping some of the state in a var while using the recursion to walk through the XML, but it seems to work quite well. See my <a href="http://www.railsguru.com/articles/2009/07/10/first-stab-at-scala-scripting-filters-do-not-work-like-my-ruby-brain-thinks-they-do/">previous post</a> for a problem description. Basically I need to modify the contents of the &lt;sequence_number&gt; based on the &lt;on_disc&gt; values. So first all (vol,sequence_number) pairs are parsed and based on the (max) values the &lt;sequence_numbers&gt; are modified.<br />
While thinking about it some more there is an issue where the script will break down if the &lt;on_disc&gt; comes after the &lt;sequence_number&gt; but this is not the case for the XML batch that needed fixing. That could be solved by doing a element lookup in the case match of &lt;sequence_number&gt;. Anyway, tastes like more.. So I'll definitely be doing more Scala coding.. I've already registered <a href="http://scalaguru.com">scalaguru.com</a>, so watch out! <img src='http://www.railsguru.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "pub-6322765154114793";
/* 300x250, created 7/3/11 */
google_ad_slot = "6228709946";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.railsguru.com/articles/2009/07/13/scala-scripting-continued/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>First stab at Scala scripting.. filters do not work like my Ruby brain thinks they do</title>
		<link>http://www.railsguru.com/articles/2009/07/10/first-stab-at-scala-scripting-filters-do-not-work-like-my-ruby-brain-thinks-they-do/</link>
		<comments>http://www.railsguru.com/articles/2009/07/10/first-stab-at-scala-scripting-filters-do-not-work-like-my-ruby-brain-thinks-they-do/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 15:36:23 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://www.railsguru.com/?p=4551</guid>
		<description><![CDATA[So I decided to pick up the Scala language. Having done Ruby for a couple of years now Scala is one of the few, if not the only language that&#8217;s gotten me excited. Being a first class citizen on the &#8230; <a href="http://www.railsguru.com/articles/2009/07/10/first-stab-at-scala-scripting-filters-do-not-work-like-my-ruby-brain-thinks-they-do/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I decided to pick up the Scala language. Having done Ruby for a couple of years now Scala is one of the few, if not the only language that&#8217;s gotten me excited. Being a first class citizen on the JVM has many advantages and I&#8217;m really liking <a href="http://liftweb.net">LiftWeb</a>.</p>
<p>I also suspect I&#8217;ll be doing a bit more Java related stuff in the very near future (stay tuned for that one <img src='http://www.railsguru.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ) so it&#8217;s a good idea to dive  into the J world again, and what better way then with Scala!</p>
<p>Problem definition: there is an issue with some XML files which came with a large batch ingest for one of our clients. In short there are a bunch of track elements in the XML which each element having a on_disc and sequence_number (think audio CDs) . However, the sequence_numbers should always be incremented e.g. if you have 2 tracks on disc 1 and 3 tracks on disc 2 the tracks on disc 2 should be have sequence numbers 3,4 and 5 respectively. The XML files we got have reset the sequence_number to 1 whenever a new disc begins.The fix is thus a simple matter of adding the highest sequence number of the previous disc to the sequence number of the current disc. Easy enough.</p>
<p>I tried to implement this in Scala and one of the helper methods calculates the highest sequence number of a given disc. This is the odd part though</p>
<pre class="brush:scala">
// The XML is first parsed to read all tracks
// These are stored in a tuple list
// Note the order of the tuples!
// Tuple values are (on_volume, sequence_number)

val sequence = List((1,2),(1,1),(2,1),(2,2),(2,3))

// Find the max value given a volume
def maxVal(vol: Int): Int = {
  var max = 1
  for (t <- sequence
    if t._1 == vol;
    if t._2 > max) max = t._2
 max
}

println(maxVal(1))
</pre>
<p>Now my Ruby brain would expect this to print out <b>2</b>, however when you run this code the result will be <b>1</b>! That&#8217;s because the filters are actually creating a new list before feeding that to for clause  so max is always 1 in the test. I did not expect this <img src='http://www.railsguru.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "pub-6322765154114793";
/* 300x250, created 7/3/11 */
google_ad_slot = "6228709946";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.railsguru.com/articles/2009/07/10/first-stab-at-scala-scripting-filters-do-not-work-like-my-ruby-brain-thinks-they-do/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Installing new Ruby postgresql adapter on Leopard</title>
		<link>http://www.railsguru.com/articles/2009/06/05/installing-new-ruby-postgresql-adapter-on-leopard/</link>
		<comments>http://www.railsguru.com/articles/2009/06/05/installing-new-ruby-postgresql-adapter-on-leopard/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 12:04:51 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[postgresql ruby gem leopard]]></category>

		<guid isPermaLink="false">http://www.railsguru.com/?p=4547</guid>
		<description><![CDATA[I need to fix a project which uses PostgreSQL. On a fresh Leopard install with postgresql 8.3 installed from ports I ran into this problem: $ sudo gem install pg Building native extensions.  This could take a while... ERROR:  Error &#8230; <a href="http://www.railsguru.com/articles/2009/06/05/installing-new-ruby-postgresql-adapter-on-leopard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I need to fix a project which uses PostgreSQL. On a fresh Leopard install with postgresql 8.3 installed from ports I ran into this problem:</p>
<pre>$ sudo gem install pg
Building native extensions.  This could take a while...
ERROR:  Error installing ruby-pg:
ERROR: Failed to build gem native extension.</pre>
<p>The solution is quite simply. Just make sure pg_config can be found by the gem installer.</p>
<pre>$ mdfind pg_config|grep bin|uniq
/opt/local/lib/postgresql83/bin/pg_config</pre>
<p>In this case make sure /opt/local/lib/postgresql/bin is available in the path when executing the gem command</p>
<pre>$ PATH=/opt/local/lib/postgresql83/bin:$PATH sudo gem install pg</pre>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "pub-6322765154114793";
/* 300x250, created 7/3/11 */
google_ad_slot = "6228709946";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.railsguru.com/articles/2009/06/05/installing-new-ruby-postgresql-adapter-on-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suriname</title>
		<link>http://www.railsguru.com/articles/2009/02/09/suriname/</link>
		<comments>http://www.railsguru.com/articles/2009/02/09/suriname/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 15:18:05 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[suriname vacation]]></category>

		<guid isPermaLink="false">http://www.railsguru.com/articles/2009/02/09/suriname/</guid>
		<description><![CDATA[Currently enjoying some vacation in  Suriname. Update: and back again (2009-03-06)]]></description>
			<content:encoded><![CDATA[<p>Currently enjoying some vacation in  <a href="http://en.wikipedia.org/wiki/Suriname">Suriname</a>.</p>
<p><strong>Update</strong>: and back again (2009-03-06)</p>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "pub-6322765154114793";
/* 300x250, created 7/3/11 */
google_ad_slot = "6228709946";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.railsguru.com/articles/2009/02/09/suriname/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Typo -&gt; Mephisto -&gt; WordPress</title>
		<link>http://www.railsguru.com/articles/2009/01/21/typo-mephisto-wordpress/</link>
		<comments>http://www.railsguru.com/articles/2009/01/21/typo-mephisto-wordpress/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 16:19:01 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[typo]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.railsguru.com/?p=4486</guid>
		<description><![CDATA[First I tried Typo, then Mephisto and now this blog is running WordPress. As a Ruby fan I really wanted to use Ruby everywhere, 2 years ago. I&#8217;m now at the point where I just want working stuff (kids will &#8230; <a href="http://www.railsguru.com/articles/2009/01/21/typo-mephisto-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>First I tried Typo, then Mephisto and now this blog is running WordPress. As a Ruby fan I really wanted to use Ruby everywhere, 2 years ago. I&#8217;m now at the point where I just want working stuff (kids will do that to you I guess). The migration from Mephisto to WordPress was very very smooth, thanks to <a href="http://jayunit.net/2008/04/16/mephisto-to-wordpress/" target="_blank">this excellent article</a>. The Mephisto version I was running was producing a Rails error based on some spam message which was posted. I really didn&#8217;t want to dig into the error and upgrading to the latest Mephisto was going to be quite a bit of work. All in all the switch to WordPress took about 2 hours in total, including customizing the theme a bit and making sure the old permalinks kept working. Cool!</p>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "pub-6322765154114793";
/* 300x250, created 7/3/11 */
google_ad_slot = "6228709946";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.railsguru.com/articles/2009/01/21/typo-mephisto-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Passenger with RACK apps</title>
		<link>http://www.railsguru.com/articles/2009/01/18/pasenger-with-rack-app/</link>
		<comments>http://www.railsguru.com/articles/2009/01/18/pasenger-with-rack-app/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 18:16:42 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.railsguru.com/2008/11/17/pasenger-with-rack-app</guid>
		<description><![CDATA[I started converting various apps running on mongrel clusters over to Apache + Passenger. One component of our production system is implemented as as mongrel plugin so it kind of sucks tot keep mongrel around just for this part. The &#8230; <a href="http://www.railsguru.com/articles/2009/01/18/pasenger-with-rack-app/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I started converting various apps running on mongrel clusters over to Apache + Passenger. One component of our production system is implemented as as mongrel plugin so it kind of sucks tot keep mongrel around just for this part. The reason I&#8217;m looking to abandon mongrel is because it requires all sorts of crappy monitoring tools to keep working properly. Luckily Passenger implements a RACK adapter so converting the mongrel plugin to a full blown RACK app should allow us to host it righ inside Passenger as well.</p>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "pub-6322765154114793";
/* 300x250, created 7/3/11 */
google_ad_slot = "6228709946";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.railsguru.com/articles/2009/01/18/pasenger-with-rack-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

