<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Tom Purl's Web Site</title>
	<atom:link href="http://tompurl.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://tompurl.com</link>
	<description>My '83 Datsun On The Side Of The Information Superhighway</description>
	<lastBuildDate>Sat, 12 Jun 2010 01:15:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='tompurl.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/620cc5862148afd2b2d0242871afa4ab?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Tom Purl's Web Site</title>
		<link>http://tompurl.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://tompurl.com/osd.xml" title="Tom Purl&#039;s Web Site" />
	<atom:link rel='hub' href='http://tompurl.com/?pushpress=hub'/>
		<item>
		<title>Review &#8211; Release It!</title>
		<link>http://tompurl.com/2010/06/12/review-release-it/</link>
		<comments>http://tompurl.com/2010/06/12/review-release-it/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 01:15:01 +0000</pubDate>
		<dc:creator>Tom Purl</dc:creator>
				<category><![CDATA[Review]]></category>
		<category><![CDATA[book-review]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[systems-administration]]></category>

		<guid isPermaLink="false">http://tompurl.com/?p=217</guid>
		<description><![CDATA[Release It!: Design and Deploy Production-Ready Software by Michael Nygard My rating: 5 of 5 stars I need to start by saying that this is one of the best technical books I have ever read. To me, it&#8217;s easily as enjoyable and useful as Code Complete, The Pragmatic Programmer, or The Mythical Man Month. If [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=217&subd=tompurl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a style="float:left;padding-right:20px;" href="http://www.goodreads.com/book/show/1069827.Release_It_Design_and_Deploy_Production_Ready_Software"><img src="http://photo.goodreads.com/books/1180726533m/1069827.jpg" border="0" alt="Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)" /></a> <a href="http://www.goodreads.com/book/show/1069827.Release_It_Design_and_Deploy_Production_Ready_Software">Release It!: Design and Deploy Production-Ready Software</a> by <a href="http://www.goodreads.com/author/show/530838.Michael_Nygard">Michael Nygard</a></p>
<p>My rating: <a href="http://www.goodreads.com/review/show/97762352">5 of 5 stars</a><br />
I need to start by saying that this is one of the best technical books I have ever read.  To me, it&#8217;s easily as enjoyable and useful as <a title="Code Complete book page." href="http://cc2e.com/">Code Complete</a>, <a title="Pragmatic Programmer book page." href="http://www.pragprog.com/the-pragmatic-programmer">The Pragmatic Programmer</a>, or <a title="Mythical Man Month book page at Amazon" href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959">The Mythical Man Month</a>.  If you&#8217;re a sysadmin, an architect, or a developer that works with medium-to-large-sized systems, then do the following:</p>
<ol>
<li>Stop reading this post</li>
<li>Order this book from your library or buy it from The Pragmatic Programmer&#8217;s web site</li>
<li>Owe me a pint <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
</ol>
<p><strong>What The Book Is Really About</strong></p>
<p>Actually, there is one thing that I don&#8217;t like about this book, but it really has nothing to do with the book.  The description of this book on the Pragmatic Programmer&#8217;s web site sucks.  It&#8217;s vague, and it really gives the potential reader a tiny amount of insight into the book&#8217;s contents.</p>
<p>What it should have said is that this book contains *tons* of great information on designing, deploying, maintaining and <em>improving</em> medium-to-large-sized IT systems.  It&#8217;s filled with patterns, anti-patterns, and general best practices that should be part of the shared lexicon of every developer, administrator, and system architect.  Also, it does a good job of giving you enough information to be useful without boring you to death.  And finally, it&#8217;s written very well and is a joy to read.</p>
<p><strong>The Highlights</strong></p>
<p><em>Thread Dumps &amp; Garbage Collection Tuning</em></p>
<p>The internals of the Java Virtual Machine (JVM) have been a black box to me for the majority of my career in IT.  Thankfully, this book has provided excellent examples of how you can troubleshoot and improve your system using tools that interrogate and manipulate a JVM at runtime.</p>
<p>For me, this was the most interesting and useful part of the book, and I am looking forward to seeing what can be gained by tuning and &#8220;poking at&#8221; the JVM&#8217;s that are in the system that I maintain.</p>
<p><em>Patterns and Anti-Patterns</em></p>
<p>It&#8217;s great to finally find a book that codifies some patterns that administrators and architects can use.</p>
<p><em>Transparency</em></p>
<p>I thought that I new a lot about monitoring and transparency before reading this book, but now I know better.  I especially like the concept of a unified &#8220;OpsDB&#8221;, and I am eager to build something like this myself for the system that I maintain.</p>
<p><em>Integration Point Risks </em></p>
<p>I always knew that integration points (e.g. data feeds, databases, LDAP providers, etc.) added risk to you system, but the author does a great job calculating the actual risk.  Also, he shows you many ways in which you can avoid brittle integration points.</p>
<p><strong>Caveats</strong></p>
<p>I have one warning about this book, but it&#8217;s half-hearted.  This book is what I would all Java-centric.  All of the case studies involve systems that are written in Java, and some of the sections will only apply directly to you if you are working with Java-based software.</p>
<p>But does that mean that you should avoid this book if you are working with Ruby, PHP, or .Net-based software?  Absolutely not.  Even though there are a few small sections of the book that won&#8217;t directly apply to your line of work, most of them will apply in an indirect way, regardless of your platform.  And the other 94% of the book will directly apply to medium-to-large systems of every stripe.</p>
<p><a href="http://www.goodreads.com/review/list/1593897-tom-purl">View all my reviews &gt;&gt;</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tompurl.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tompurl.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tompurl.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tompurl.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tompurl.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tompurl.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tompurl.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tompurl.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tompurl.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tompurl.wordpress.com/217/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=217&subd=tompurl&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://tompurl.com/2010/06/12/review-release-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b972ff5d62434623ade7ad88b02aa99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tpurl</media:title>
		</media:content>

		<media:content url="http://photo.goodreads.com/books/1180726533m/1069827.jpg" medium="image">
			<media:title type="html">Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)</media:title>
		</media:content>
	</item>
		<item>
		<title>New Blog Announcement &#8211; Shell Magic</title>
		<link>http://tompurl.com/2010/06/05/new-blog-announcement-shell-magic/</link>
		<comments>http://tompurl.com/2010/06/05/new-blog-announcement-shell-magic/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 12:39:30 +0000</pubDate>
		<dc:creator>Tom Purl</dc:creator>
				<category><![CDATA[*Cough*Plug*Cough*]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[shell-magic]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[command-line]]></category>

		<guid isPermaLink="false">http://tompurl.com/?p=213</guid>
		<description><![CDATA[I&#8217;m excited to say that I am working on a series of screencasts that target Unix command-line newbies. The series is called $hell Magic, and it&#8217;s my first attempt at making screencasts.  It was a lot of fun and surprisingly simple to create my first one. If you would like to learn more about the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=213&subd=tompurl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m excited to say that I am working on a series of screencasts that target Unix command-line newbies.  The series is called <a title="Shellmagic blog" href="http://shellmagic.wordpress.com">$hell Magic</a>, and it&#8217;s my first attempt at making screencasts.  It was a lot of fun and surprisingly simple to create my first one.</p>
<p>If you would like to learn more about the Unix or Linux command-line, or you know someone else who would, please feel free to check it out.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tompurl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tompurl.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tompurl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tompurl.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tompurl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tompurl.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tompurl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tompurl.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tompurl.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tompurl.wordpress.com/213/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=213&subd=tompurl&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://tompurl.com/2010/06/05/new-blog-announcement-shell-magic/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b972ff5d62434623ade7ad88b02aa99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tpurl</media:title>
		</media:content>
	</item>
		<item>
		<title>Review: The Victorian Internet</title>
		<link>http://tompurl.com/2010/04/22/review-the-victorian-internet/</link>
		<comments>http://tompurl.com/2010/04/22/review-the-victorian-internet/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 02:28:13 +0000</pubDate>
		<dc:creator>Tom Purl</dc:creator>
				<category><![CDATA[Review]]></category>
		<category><![CDATA[book-review]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[telegraph]]></category>

		<guid isPermaLink="false">http://tompurl.com/?p=208</guid>
		<description><![CDATA[The Victorian Internet by Tom Standage My rating: 3 of 5 stars This book is a fascinating account of the history of the telegraph and how it changed the world. If you are a history and technology buff, you will definitely get a lot out of this book. Please don&#8217;t be fooled by the title, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=208&subd=tompurl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.goodreads.com/book/show/52853.The_Victorian_Internet" style="float:left;padding-right:20px;"><img alt="The Victorian Internet" border="0" src="http://photo.goodreads.com/books/1170392910m/52853.jpg" /></a> <a href="http://www.goodreads.com/book/show/52853.The_Victorian_Internet">The Victorian Internet</a> by <a href="http://www.goodreads.com/author/show/2636.Tom_Standage">Tom Standage</a></p>
<p>My rating: <a href="http://www.goodreads.com/review/show/99545559">3 of 5 stars</a><br />
This book is a fascinating account of the history of the telegraph and how it changed the world.  If you are a history and technology buff, you will definitely get a lot out of this book.  </p>
<p>Please don&#8217;t be fooled by the title, however.  This book does not make deep comparisons between the histories of the internet and the telegraph.  A small chapter at the end of the book provides the only comparison between the two technologies.  </p>
<p>Even with this flaw, this is a solid technical history book, and I really feel like I gained a lot of perspective.</p>
<p><a href="http://www.goodreads.com/review/list/1593897-tom-purl">View all my reviews &gt;&gt;</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tompurl.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tompurl.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tompurl.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tompurl.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tompurl.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tompurl.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tompurl.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tompurl.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tompurl.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tompurl.wordpress.com/208/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=208&subd=tompurl&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://tompurl.com/2010/04/22/review-the-victorian-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b972ff5d62434623ade7ad88b02aa99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tpurl</media:title>
		</media:content>

		<media:content url="http://photo.goodreads.com/books/1170392910m/52853.jpg" medium="image">
			<media:title type="html">The Victorian Internet</media:title>
		</media:content>
	</item>
		<item>
		<title>Running Depot On Tomcat</title>
		<link>http://tompurl.com/2010/03/25/running-depot-on-tomcat/</link>
		<comments>http://tompurl.com/2010/03/25/running-depot-on-tomcat/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 01:49:49 +0000</pubDate>
		<dc:creator>Tom Purl</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[agile-web-development-with-rails]]></category>
		<category><![CDATA[ruby-on-rails]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://tompurl.com/?p=200</guid>
		<description><![CDATA[This is my second article about running the Depot application from the Agile Development With Rails book on top of Jruby. The first article, which covers development and testing, can be found here. This article covers the following topics: Packaging our RoR project into a WAR file Deploying that WAR file on Tomcat Please note [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=200&subd=tompurl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>This is my second article about running the Depot application from the <a href="http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition">Agile Development With Rails</a> book on top of Jruby.  The <a href="http://tompurl.com/2010/03/02/running-the-depot-application-with-jruby/">first article</a>, which covers development and testing, can be found <a href="http://tompurl.com/2010/03/02/running-the-depot-application-with-jruby/">here</a>.</p>
<p>This article covers the following topics:</p>
<ul>
<li>Packaging our RoR project into a WAR file</li>
<li>Deploying that WAR file on Tomcat</li>
</ul>
<p>Please note that this article only covers deploying Jruby-On-Rails applications in a non-Production (i.e. non-public-facing) environment.  This example is designed to allow a <strong>developer</strong> to deploy a Jruby-On-Rails application <strong>on her workstation</strong>.  If you want to install Tomcat in a public-facing environment, then you need a different tutorial <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Tomcat Installation</h2>
<p><a title="Home page for the Apache Tomcat app server" href="http://tomcat.apache.org/">Tomcat</a> was my choice for the following reasons:</p>
<ol>
<li>It’s very easy to install.  Just unpack it and go (if you already have the proper version of Java installed).</li>
<li>It’s very easy to administer on my netbook (which is where I’m learning about RoR and Jruby).</li>
<li>It’s relatively lightweight compared to JBoss or WebLogic.</li>
<li>It’s very easy to deploy war files.  Just drop them in <code>$TOMCAT_HOME/webapps</code>, restart Tomcat, and you’re up-and-running.</li>
</ol>
<p>So let’s install Tomcat:</p>
<pre class="brush: plain;">
$ cd /tmp
$ wget http://apache.opensourceresources.org/tomcat/tomcat-6/v6.0.24/bin/apache-tomcat-6.0.24.tar.gz
$ tar xvfz apache-tomcat-6.0.24.tar.gz
$ sudo cp -r apache-tomcat-6.0.24 /opt
# please replace tom:tom with your user and group
$ sudo chown -R tom:tom /opt/apache-tomcat-6.0.24
</pre>
<p>Assuming that you have the minimum version of Java (I’m using 1.6.0_15 from the sun-java6-jdk Ubuntu package), you can start Tomcat like this:</p>
<pre class="brush: plain;">
$ cd /opt/apache-tomcat-6.0.24/bin
$ ./startup.sh
Using CATALINA_BASE:   /opt/apache-tomcat-6.0.24
Using CATALINA_HOME:   /opt/apache-tomcat-6.0.24
Using CATALINA_TMPDIR: /opt/apache-tomcat-6.0.24/temp
Using JRE_HOME:        /usr/lib/jvm/java-6-sun
Using CLASSPATH:       /opt/apache-tomcat-6.0.24/bin/bootstrap.jar
</pre>
<p>Great, now you can test your installation by pointing your browser at the following url:</p>
<ul>
<li>http://localhost:8080</li>
</ul>
<p>You can also shut the server down using the <code>shutdown.sh</code> script from the same directory.</p>
<h2>Packaging Depot In A WAR File</h2>
<p>Now that Tomcat is up-and-running, let’s build our WAR file.  If you haven’t already installed <code>warbler</code>, then you can do so with the following command:</p>
<pre class="brush: plain;">
$ jruby -S gem install warbler
</pre>
<p><a href="http://blog.nicksieger.com/articles/2007/09/04/warbler-a-little-birdie-to-introduce-your-rails-app-to-java">Warbler</a> is a gem that makes it very easy to package RoR applications as WAR files. However, before we can use it, we need to tell it that we’re using the <code>activerecord-jdbcsqlite3-adapter</code> driver.  Here’s how you do that:</p>
<ol>
<li>Run the <code>warble config</code> command from the root directory of your project. This command will create the <code>config/warble.rb</code> file.</li>
<li>Add the following line to the newly-created <code>config/warble.rb</code> file:
<ol>
<li><code>config.gems &lt;&lt; "activerecord-jdbcsqlite3-adapter"</code></li>
</ol>
</li>
</ol>
<p>That’s it!  Now you can build your war file:</p>
<pre class="brush: plain;">
$ warble
</pre>
<p>In a minute or so, you should see a file named <code>depot-jruby.war</code> in the root of your project directory.  If you need to rebuild you war file, then simply execute the following command:</p>
<pre class="brush: plain;">
$ warble war:clean &amp;amp;&amp;amp; warble
</pre>
<h2>Deploying On Tomcat</h2>
<p>Now we can finally deploy the WAR file to our Tomcat instance.  Here’s how I do it on my machine:</p>
<pre class="brush: plain;">
$ cd /opt/apache-tomcat-6.0.24
$ cp /home/tom/Dev/ruby/depot-jruby/depot-jruby.war ./webapps
$ ./bin/shutdown.sh &amp;amp;&amp;amp; ./bin/startup.sh
</pre>
<p>Then you can test your application by visiting the following URL:</p>
<ul>
<li>http://localhost:8080/depot-jruby/store</li>
</ul>
<h2>Conclusion</h2>
<p>I know that I said this in my previous tutorial, but that was a lot easier than I thought it would be.  It only took 3 simple steps, and the Tomcat installation step only needs to be done once.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tompurl.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tompurl.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tompurl.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tompurl.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tompurl.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tompurl.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tompurl.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tompurl.wordpress.com/200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tompurl.wordpress.com/200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tompurl.wordpress.com/200/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=200&subd=tompurl&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://tompurl.com/2010/03/25/running-depot-on-tomcat/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b972ff5d62434623ade7ad88b02aa99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tpurl</media:title>
		</media:content>
	</item>
		<item>
		<title>Week 1 Hosting SSHD &#8211; Gee Whiz Security Stats</title>
		<link>http://tompurl.com/2010/03/20/week-1-hosting-sshd-gee-whiz-security-stats/</link>
		<comments>http://tompurl.com/2010/03/20/week-1-hosting-sshd-gee-whiz-security-stats/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 19:17:49 +0000</pubDate>
		<dc:creator>Tom Purl</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[crackers]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://tompurl.com/?p=193</guid>
		<description><![CDATA[I installed the 8.0 version of FreeBSD this week in a VirtualBox image, and I thought that it would be fun to let some of my friends use it as a web server test bed.  I therefore setup an SSH server and hardened it using some of the recommendations from this web page: Securing OpenSSH [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=193&subd=tompurl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I installed the <a title="8.0 Release Page For FreeBSD" href="http://www.freebsd.org/releases/8.0R/announce.html">8.0 version of FreeBSD</a> this week in a VirtualBox image, and I thought that it would be fun to let some of my friends use it as a web server test bed.  I therefore setup an SSH server and hardened it using some of the recommendations from this web page:</p>
<ul>
<li><a href="http://wiki.centos.org/HowTos/Network/SecuringSSH">Securing OpenSSH</a></li>
</ul>
<p>Specifically, I set the following properties:</p>
<ul>
<li><strong>I explicitly turned off root logins.</strong> This is the default on FreeBSD, and it should be the default on <strong>every</strong> Linux and Unix server (even though it isn&#8217;t).</li>
<li><strong>I deny access to anyone using the SSH 1 protocol</strong>.</li>
<li><strong>I turned off password</strong> <strong>authentication</strong>.  Instead, anyone who logs in has to use <a title="Tutorial on SSH keypair authentication" href="http://sial.org/howto/openssh/publickey-auth/">keypair authentication</a>.</li>
</ul>
<p>With all of these settings, I feel like my SSH server is safe enough.  However, I was curious to see if anyone had actually tried to crack it.  I mean, it&#8217;s only been up for 3 days.  The bad robots of the Internet could not have possibly found my little SSH garden in the shade, right?</p>
<p>A quick look at /var/log/auth.log brings me back to Earth.  To my surprise, their have already been hundreds of attempted logins from multiple sources.  Here&#8217;s the statistics related to people who are trying to crack my SSH server.  Remember, this server is 3-days old.</p>
<ul>
<li><strong>865 </strong>failed login attempts</li>
<li><strong>281 </strong>unique login names
<ul>
<li>Some of the names are fairly comical (12345?), and many of them are very uncommon (Agatha?).</li>
</ul>
</li>
<li><strong>0 </strong>login attempts using the<strong> root</strong> user name.
<ul>
<li>This was a big surprise for me.</li>
</ul>
</li>
<li>The attacks originated from <strong>6</strong> IP addresses.
<ul>
<li>It&#8217;s anyone&#8217;s guess if all of these computers are part of the same botnet or if there are multiple groups trying to crack my server.</li>
</ul>
</li>
</ul>
<p>I can&#8217;t help but compare any publicly-available, networked service to a car that is parked in the middle of a city containing a billion people.  No matter how small and obscure your car is, you can&#8217;t afford to park it without locking your doors.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tompurl.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tompurl.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tompurl.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tompurl.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tompurl.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tompurl.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tompurl.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tompurl.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tompurl.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tompurl.wordpress.com/193/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=193&subd=tompurl&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://tompurl.com/2010/03/20/week-1-hosting-sshd-gee-whiz-security-stats/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b972ff5d62434623ade7ad88b02aa99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tpurl</media:title>
		</media:content>
	</item>
		<item>
		<title>Stupid Unix Tricks &#8211; Creating A Self-Updating Dashboard</title>
		<link>http://tompurl.com/2010/03/17/stupid-unix-tricks-creating-a-self-updating-dashboard/</link>
		<comments>http://tompurl.com/2010/03/17/stupid-unix-tricks-creating-a-self-updating-dashboard/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 22:27:25 +0000</pubDate>
		<dc:creator>Tom Purl</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[stupid-unix-tricks]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://tompurl.com/?p=188</guid>
		<description><![CDATA[Have you ever wanted to automatically run the same command every 5, 10, or 60 seconds on a Unix/Linux machine until the output changed? For example, let&#8217;s say that you&#8217;re deploying a new application on top of a Tomcat app server. After starting Tomcat and deploying your application, it can take a couple of minutes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=188&subd=tompurl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Have you ever wanted to automatically run the same command every 5, 10, or 60 seconds on a Unix/Linux machine until the output changed?</p>
<p>For example, let&#8217;s say that you&#8217;re deploying a new application on top of a <a title="Tomcat home page" href="http://tomcat.apache.org" target="_self">Tomcat</a> app server. After starting Tomcat and deploying your application, it can take a couple of minutes before the application is really available.  However, you want to know <em>exactly</em> when the new version of the application is usable (give or take 10 seconds).</p>
<p>A good way of testing whether the application is really &#8220;up&#8221; is to ping a URL.  You can do this using a web browser, but this approach has a few disadvantages.  First, it&#8217;s a manual,  tedious process.  Second, web browsers can be a little flaky sometimes. For example, they may cache your last results, giving you incorrect results.</p>
<p>For me, I get much better results testing this sort of thing with curl.  Here&#8217;s an example of how you could test the availability of the Hello World application that comes with Tomcat 6.x:</p>
<pre>$ curl http://localhost:8080/examples/servlets/servlet/HelloWorldExample
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Hello World!&lt;/title&gt;
&lt;/head&gt;
&lt;body bgcolor="white"&gt;
&lt;a href="../helloworld.html"&gt;
&lt;img src="../images/code.gif" height=24 width=24 align=right border=0 alt="view code"&gt;&lt;/a&gt;
&lt;a href="../index.html"&gt;
&lt;img src="../images/return.gif" height=24 width=24 align=right border=0 alt="return"&gt;&lt;/a&gt;
&lt;h1&gt;Hello World!&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>This is fine, but it can also very labor-intensive and tedious to execute the same command over and over.  Wouldn&#8217;t it be nice if we could just create an ad-hoc &#8220;dashboard&#8221; for this command?</p>
<p>Here&#8217;s how you can do it.  All we have to do is a little shell magic:</p>
<pre>$ while true; do curl http://localhost:8080/examples/servlets/servlet/HelloWorldExample; sleep 10; done</pre>
<p>Here&#8217;s what I&#8217;m doing:</p>
<ul>
<li>First, I&#8217;m creating an infinite while loop.  You&#8217;ll see why this isn&#8217;t a bad idea in a second.</li>
<li>Next, I&#8217;m running our curl command.</li>
<li>After that, I&#8217;m sleeping for 10 seconds.  This is very important, because you don&#8217;t want to command to execute multiple times a second in an infinite loop.</li>
</ul>
<p>This loop will repeat itself forever until you kill it with a Ctrl-C.</p>
<p>And here&#8217;s my results (assuming that I just restarted the server and it took that servlet 20 seconds to respond):</p>
<pre>curl: (7) couldn't connect to host # First execution
curl: (7) couldn't connect to host # second
&lt;html&gt;                             # Success!
&lt;head&gt;
&lt;title&gt;Hello World!&lt;/title&gt;
&lt;/head&gt;
&lt;body bgcolor="white"&gt;
&lt;a href="../helloworld.html"&gt;
&lt;img src="../images/code.gif" height=24 width=24 align=right border=0 alt="view code"&gt;&lt;/a&gt;
&lt;a href="../index.html"&gt;
&lt;img src="../images/return.gif" height=24 width=24 align=right border=0 alt="return"&gt;&lt;/a&gt;
&lt;h1&gt;Hello World!&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Ta-da!  Easy, automatic command testing.  Of course, you can use this trick with commands other than curl.  It&#8217;s very handy in any situation where you want to check a command for a change in output.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tompurl.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tompurl.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tompurl.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tompurl.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tompurl.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tompurl.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tompurl.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tompurl.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tompurl.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tompurl.wordpress.com/188/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=188&subd=tompurl&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://tompurl.com/2010/03/17/stupid-unix-tricks-creating-a-self-updating-dashboard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b972ff5d62434623ade7ad88b02aa99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tpurl</media:title>
		</media:content>
	</item>
		<item>
		<title>Running The Depot Application With Jruby</title>
		<link>http://tompurl.com/2010/03/02/running-the-depot-application-with-jruby/</link>
		<comments>http://tompurl.com/2010/03/02/running-the-depot-application-with-jruby/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 02:49:04 +0000</pubDate>
		<dc:creator>Tom Purl</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[agile-development-with-rails]]></category>

		<guid isPermaLink="false">http://tompurl.com/?p=179</guid>
		<description><![CDATA[I completed the Depot application from the Agile Development With Rails book, and I feel that I have a good understanding of the basics of developing with Ruby on Rails. It’s a great framework, and creating the Depot application was a fun and enlightening process. I thought that it might be equally enlightening to “port” [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=179&subd=tompurl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I completed the Depot application from the <a title="PragProg page for the book" href="http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition">Agile Development With Rails</a> book, and I feel that I have a good understanding of the basics of developing with Ruby on Rails.  It’s a great framework, and creating the <strong>Depot</strong> application was a fun and enlightening process.</p>
<p>I thought that it might be equally enlightening to “port” the Depot application to <a title="Jruby home page" href="http://jruby.org/">Jruby</a> using the <a title="The Jruby on Rails page on the Jruby wiki" href="http://kenai.com/projects/jruby/pages/JRubyOnRails">Jruby On Rails</a> libraries.  I had two basic milestones in mind:</p>
<ol>
<li><strong>Development &amp; Testing</strong> – I wanted to be able to develop and test my application just like I did with CRuby, using tools such as <code>mongrel</code> and <code>rake</code>.</li>
<li><strong>J2EE Deployment</strong> – The most popular process for deploying a Java-based application is to build a WAR file and then deploy it to a Java application server such as Tomcat (which was my choice).  I wanted to be able to complete these steps with my RoR application.</li>
</ol>
<p>The entire process was surprisingly easy.  The first milestone, <strong>Development and Testing</strong>, is covered in this article.  The <strong>J2EE Deployment</strong> milestone will be covered in a <a title="Running Depot On Tomcat article" href="http://tompurl.com/2010/03/25/running-depot-on-tomcat/">different blog article</a>.</p>
<h2>Development &amp; Testing</h2>
<p>Here are some simple steps that will have your application running with <code>mongrel</code> very quickly.</p>
<p><strong>Please note</strong> that I am executing the steps below on a netbook running Ubuntu 9.10.  These commands should work on most Linux distributions, however.  Also, they should work with a few small adjustments on a Windows machine.</p>
<h3>Prepping Your Project Directory</h3>
<p>First, you’re not going to want to make these changes to your original version of the Depot code.  You will probably want to create a copy of it that is designed to work with Jruby.  Here’s how I did it on my machine:</p>
<pre><code>$ cd /home/tom/Dev/ruby
$ cp -r depot depot-jruby
</code></pre>
<p>The location of your <code>depot</code> folder will probably be different on your machine, but I’m sure that you can make the necessary adjustments <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Also, please  note that it is a good idea to “freeze” your rails version now if you have not done so already.  You can do this by executing the following command:</p>
<pre><code>$ cd /home/tom/Dev/ruby/depot-jruby
$ jruby -S rake rails:freeze:edge RELEASE=2.2.2
</code></pre>
<h3>Installing Jruby</h3>
<p>Next, you’ll want to install Jruby.  There’s a lot of ways of doing this, but this method worked pretty well on my development machine:</p>
<pre><code>$ cd /tmp
$ wget http://jruby.kenai.com/downloads/1.4.0/jruby-bin-1.4.0.tar.gz
$ tar xvfz jruby-bin-1.4.0.tar.gz
$ sudo cp -r jruby-1.4.0 /opt
# please replace tom:tom with your user and group
$ sudo chown -R tom:tom /opt/jruby-1.4.0
$ sudo ln -s /opt/jruby-1.4.0 /opt/jruby
</code></pre>
<p>Then simply add <code>/opt/jruby</code> to your <code>PATH</code>, and see if you can execute <code>jirb</code>.</p>
<h3>Installing Rails And Other Libraries</h3>
<p>This process is just as easy using Jruby as it is using CRuby.</p>
<p>Install the gems using these commands:</p>
<pre><code>$ jruby -S gem install rails --version 2.2.2
$ jruby -S gem install mongrel jruby-openssl jdbc-sqlite3
</code></pre>
<p>A few notes on those commands:</p>
<ul>
<li>Prepend the gem command with <code>jruby -S</code> to ensure that you are using the right version of the <code>gem</code> command.  This also works with any other Jruby command, such as <code>rake</code>.</li>
<li>Since the example uses the 2.2.2 version of Rails, we’re going to need it too.</li>
<li><code>jdbc-sqlite3</code> is the Java version of the sqlite3 DB driver.</li>
<li>The <code>jruby-openssl</code> package is nice to have regardless of what you’re installing with <code>rubygems</code>.</li>
</ul>
<h3>Making Depot Safe For JDBC</h3>
<p>You can’t use the C-based database drivers with Jruby, but luckily, the Jruby developers have made it very easy to use the JDBC-based equivalents.</p>
<p>First, make sure that you are using version <strong>0.9.2</strong> of the <code>activerecord-jdbc-adapter</code> driver or higher.  You can check this by executing the following command:</p>
<pre><code>$ jruby -S gem list | grep activerecord-jdbc-adapter
activerecord-jdbc-adapter (0.9.2)
</code></pre>
<p>Next, execute the following command from the root directory of your project:</p>
<pre><code>$ jruby script/generate jdbc
exists  config/initializers
create  config/initializers/jdbc.rb
create  lib/tasks
create  lib/tasks/jdbc.rake
</code></pre>
<p>That’s it!  Your Depot application is now ready to use Jruby-on-Rails.</p>
<p><strong>Please note</strong> that I <strong>did not modify my config/database.yml file</strong> or hack any part of the Rails libraries to make JDBC work.  These steps <strong>used</strong> to be necessary, but the command listed above gives you a much easier and cleaner way of using JDBC.  For more information, please check out this article:</p>
<ul>
<li><a href="http://blog.nicksieger.com/articles/2009/10/12/fresh-0-9-2-activerecord-jdbc-adapter-release">Fresh 0.9.2 activerecord-jdbc-adapter Release</a></li>
</ul>
<h3>Test</h3>
<p>To test my work, I did the following:</p>
<ul>
<li>I ran the <code>mongrel</code> app server and executed some manual tests of the Depot web site.  That worked well.</li>
<li>I execute all of my tests using the <code>rake test</code> command.  This also worked as well as it had with the CRuby version of my application.</li>
</ul>
<p>Success!  Now it would be nice to review all of the files that changed or were added.  Since I checked my project into my <code>git</code> repository before making any changes, I can get the information that I need pretty easily:</p>
<pre><code>$ git status
# branch master
# Changes to be committed:
#   (use "git reset HEAD &lt;file&gt;..." to unstage)
#
#       new file:   config/initializers/jdbc.rb
#       new file:   lib/tasks/jdbc.rake
</code></pre>
<p>That’s it!  No code or config changes were necessary.</p>
<h2>Conclusion</h2>
<p>As you can see, it’s fairly easy to “port” the Depot application to use Java-based versions of <code>mongrel</code>, <code>rails</code>, and the other libraries from the <a title="PragProg page for the book" href="http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition">Agile Development With Rails</a> book.  In my <a title="Running Depot On Tomcat article" href="http://tompurl.com/2010/03/25/running-depot-on-tomcat/">next article</a>, I will take this application and deploy it on top of a Tomcat server.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tompurl.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tompurl.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tompurl.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tompurl.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tompurl.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tompurl.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tompurl.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tompurl.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tompurl.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tompurl.wordpress.com/179/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=179&subd=tompurl&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://tompurl.com/2010/03/02/running-the-depot-application-with-jruby/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b972ff5d62434623ade7ad88b02aa99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tpurl</media:title>
		</media:content>
	</item>
		<item>
		<title>Tab Sweep – Week Of 2/14/10</title>
		<link>http://tompurl.com/2010/02/22/tab-sweep-%e2%80%93-week-of-21410/</link>
		<comments>http://tompurl.com/2010/02/22/tab-sweep-%e2%80%93-week-of-21410/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 17:55:56 +0000</pubDate>
		<dc:creator>Tom Purl</dc:creator>
				<category><![CDATA[Tab Sweep]]></category>
		<category><![CDATA[jruby-on-rails]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[gnome-3]]></category>
		<category><![CDATA[myths-of-innnovation]]></category>

		<guid isPermaLink="false">http://tompurl.com/?p=172</guid>
		<description><![CDATA[I spent most of my &#8220;hobby-time&#8221; this week &#8220;converting&#8221; my demo Ruby On Rails (RoR) application to Jruby.  I hope to have a post on all of my steps posted this week. Rails Powered by the GlassFish Application Server &#8211; Nice overview of RoR on top of the Glassfish J2EE server, but it&#8217;s a bit [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=172&subd=tompurl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I spent most of my &#8220;hobby-time&#8221; this week &#8220;converting&#8221; my demo Ruby On Rails (RoR) application to Jruby.  I hope to have a post on all of my steps posted this week.</p>
<ul>
<li><a href="http://developers.sun.com/appserver/reference/techart/rails_gf/">Rails Powered by the GlassFish Application Server</a> &#8211; Nice overview of RoR on top of the Glassfish J2EE server, but it&#8217;s a bit dated.</li>
<li><a href="http://www.omgubuntu.co.uk/2009/09/gnome-3-quick-visual-tour.html">Gnome 3 – A Quick Visual Tour</a> &#8211; A few of my nerdy friends are pretty excited about this.  I&#8217;ve been using Gnome on-and-off for about 8 years now, and am pretty happy with it, so I hope the new revision doesn&#8217;t break any of my favorite features.</li>
<li><a href="http://www.livinginternet.com/w/wi_browse.htm">Web Browser History &#8211; First, Early</a> &#8211; This is a cool link courtesy of the <a href="http://www.scottberkun.com/blog/2007/the-book-the-myths-of-innovation/">Myths Of Innovation </a>book by <a href="http://www.scottberkun.com/">Scott Berkun</a>.  I&#8217;m surprised by the total number, and that I had never heard of most of them.</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tompurl.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tompurl.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tompurl.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tompurl.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tompurl.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tompurl.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tompurl.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tompurl.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tompurl.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tompurl.wordpress.com/172/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=172&subd=tompurl&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://tompurl.com/2010/02/22/tab-sweep-%e2%80%93-week-of-21410/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b972ff5d62434623ade7ad88b02aa99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tpurl</media:title>
		</media:content>
	</item>
		<item>
		<title>Tab Sweep &#8211; Week Of 2/7/10</title>
		<link>http://tompurl.com/2010/02/15/tab-sweep-week-of-2710/</link>
		<comments>http://tompurl.com/2010/02/15/tab-sweep-week-of-2710/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 00:00:23 +0000</pubDate>
		<dc:creator>Tom Purl</dc:creator>
				<category><![CDATA[Tab Sweep]]></category>
		<category><![CDATA[capistrano]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[ruby-on-rails]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[toto]]></category>
		<category><![CDATA[zones]]></category>

		<guid isPermaLink="false">http://tompurl.com/?p=160</guid>
		<description><![CDATA[I had lots of great opportunities to work with unfamiliar technologies last week, so I have an unusually large list of links in my tab sweep. Solaris Zones I learned late last week that Solaris Zones use different monitoring tools than any other Unix or Linux distribution, so I spent a good portion of this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=160&subd=tompurl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I had lots of great opportunities to work with unfamiliar technologies last week, so I have an unusually large list of links in my tab sweep.</p>
<h2 id="lsolaris-zones">Solaris Zones</h2>
<p>I learned late last week that Solaris Zones use different monitoring tools than any other Unix or Linux distribution, so I spent a good portion of this week learning about them.</p>
<ul>
<li><a title="Monitoring Memory and Disk usage [Joyent Wiki]" href="http://wiki.joyent.com/accelerators:kb:monitor_rss_disk">Monitoring Memory and Disk usage [Joyent Wiki]</a> &#8211; This has some nice information on using <code>prstat</code> from within a Zone.</li>
<li><a title="The Joyent Community / How to check my zone size?" href="http://discuss.joyent.com/viewtopic.php?id=23310">The Joyent Community / How to check my zone size?</a> &#8211; Another great post on Zones from the <a title="Joyent" href="http://www.joyent.com/">Joyent</a> web sites.  This article discusses the differences between RSS and SIZE/SWAP on Solaris.</li>
<li><a title="Slightly Skeptical View on Solaris Zones" href="http://www.softpanorama.org/Solaris/Virtualization/zones.shtml">Slightly Skeptical View on Solaris Zones</a> &#8211; This is a good, general overview of Solaris Zone technology.</li>
</ul>
<h2 id="lror-deployment-with-capistrano">RoR Deployment With Capistrano</h2>
<p>I get the impression that a lot of people have a love/hate relationship with <a title="Capistrano" href="///home/tom/UbuntuOne/wiki/TabSweep100207.html#lcapistrano">Capistrano</a>,  and I believe that I&#8217;m joining those ranks.  When your recipe finally works, it works very well, but getting to that point can be very frustrating.  Here are some links that helped me figure things out:</p>
<ul>
<li><a title="Capistrano Home Page" href="http://www.capify.org/index.php/Capistrano">Capistrano Home Page</a> &#8211; This is a good starting point, but it&#8217;s lacking much advanced information.</li>
<li><a title="Streaming Capistrano — err.the_blog" href="http://errtheblog.com/posts/19-streaming-capistrano">Streaming Capistrano — err.the_blog</a> &#8211; A nice little tip if you want to monitor remote command-line streams using Capistrano.</li>
</ul>
<h2 id="lheroku">Heroku + Toto</h2>
<p>I discovered the <a title="Toto" href="http://cloudhead.io/toto">Toto</a> blogging &#8220;engine&#8221; this week, which led me to <a title="Heroku" href="http://www.heroku.com/">Heroku</a>. It&#8217;s a very interesting deployment and hosting model for Ruby web applications, and I  look forward to learning more about it.</p>
<ul>
<li><a href="http://www.rubyinside.com/deploy-blog-with-toto-and-heroku-2962.html">Deploy A Free, Ruby Powered Blog In 5 Minutes with Toto and Heroku</a> &#8211; The title really says it all.</li>
<li><a title="My Toto Test Blog" href="http://tompurl.heroku.com/">My Toto Test Blog</a> &#8211; An interesting test, but I don&#8217;t think that it will replace my WordPress blog any time soon.</li>
<li><a href="http://www.usabilitypost.com/2010/02/06/blogging-simplified/">UsabilityPost &#8211; Blogging Simplified</a> &#8211; A cool Toto blog with a great CSS stylesheet.</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tompurl.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tompurl.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tompurl.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tompurl.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tompurl.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tompurl.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tompurl.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tompurl.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tompurl.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tompurl.wordpress.com/160/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=160&subd=tompurl&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://tompurl.com/2010/02/15/tab-sweep-week-of-2710/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b972ff5d62434623ade7ad88b02aa99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tpurl</media:title>
		</media:content>
	</item>
		<item>
		<title>Review: Rails Deployment: Production Configuration and Advanced Rails Tactics</title>
		<link>http://tompurl.com/2010/02/13/review-rails-deployment-production-configuration-and-advanced-rails-tactics/</link>
		<comments>http://tompurl.com/2010/02/13/review-rails-deployment-production-configuration-and-advanced-rails-tactics/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 02:47:44 +0000</pubDate>
		<dc:creator>Tom Purl</dc:creator>
				<category><![CDATA[Review]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[mongrel]]></category>
		<category><![CDATA[capistrano]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[phusion-passenger]]></category>
		<category><![CDATA[mod_rails]]></category>

		<guid isPermaLink="false">http://tompurl.com/?p=153</guid>
		<description><![CDATA[Rails Deployment: Production Configuration and Advanced Rails Tactics by Ezra Zygmuntowicz My rating: 4 of 5 stars Overall, this book had a lot of very good information, and it was very helpful to me as I deployed my first Ruby-On-Rails application into a &#8220;Production&#8221; environment. Here&#8217;s the high points: Lots of good information on tools [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=153&subd=tompurl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a style="float:left;padding-right:20px;" href="http://www.goodreads.com/book/show/1032760.Rails_Deployment_Production_Configuration_and_Advanced_Rails_Tactics"><img src="http://photo.goodreads.com/books/1187734194m/1032760.jpg" border="0" alt="Rails Deployment: Production Configuration and Advanced Rails Tactics" /></a> <a href="http://www.goodreads.com/book/show/1032760.Rails_Deployment_Production_Configuration_and_Advanced_Rails_Tactics">Rails Deployment: Production Configuration and Advanced Rails Tactics</a> by <a href="http://www.goodreads.com/author/show/515376.Ezra_Zygmuntowicz">Ezra Zygmuntowicz</a></p>
<p>My rating: <a href="http://www.goodreads.com/review/show/88022716">4 of 5 stars</a><br />
Overall, this book had a lot of very good information, and it was very helpful to me as I deployed my first Ruby-On-Rails application into a &#8220;Production&#8221; environment.</p>
<p>Here&#8217;s the high points:</p>
<ul>
<li>Lots of good information on tools such as <a title="Capistrano Home Page" href="http://www.capify.org/">Capistrano</a>, MySQL, <a title="Mongrel home page" href="http://mongrel.rubyforge.org/">Mongrel</a>, Apache, and <a title="nginx Home Page" href="http://nginx.net/">nginx</a>.</li>
<li>The authors clearly know what they are talking about.</li>
<li>It&#8217;s helpful if you&#8217;re deploying a &#8220;toy&#8221; application (like I am) <strong>and</strong> if you&#8217;re deploying a large, clustered application.</li>
<li>It doesn&#8217;t assume that you&#8217;re already an expert on either Web app deployment or Ruby-On-Rails.</li>
</ul>
<p>Here are some of the things that could be better:</p>
<ul>
<li>This book was published over a year ago, and it already feels out-of-date.  For example, there isn&#8217;t one mention of <a title="Home page for Phusion Passenger" href="http://www.modrails.com/">Phusion Passenger</a>, even though this tool seems to be the new standard app server for Ruby-On-Rails in Production environments.</li>
<li>This is very subjective, but I feel like the information could have been organized a little better.  I felt as if the author jumped around a bit sometimes.</li>
<li>Also, some of the passages were a little difficult to read due to their incorrect sentence structure.  My writing isn&#8217;t perfect either, but I believe that the editor should have fixed more of these mistakes.</li>
</ul>
<p>If you&#8217;re deploying a Ruby app in any setting, then this is a good book to get.  I just don&#8217;t know if I would actually buy it.</p>
<p><a href="http://www.goodreads.com/review/list/1593897-tom-purl">View all my reviews &gt;&gt;</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tompurl.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tompurl.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tompurl.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tompurl.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tompurl.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tompurl.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tompurl.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tompurl.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tompurl.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tompurl.wordpress.com/153/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tompurl.com&blog=3216699&post=153&subd=tompurl&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://tompurl.com/2010/02/13/review-rails-deployment-production-configuration-and-advanced-rails-tactics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b972ff5d62434623ade7ad88b02aa99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tpurl</media:title>
		</media:content>

		<media:content url="http://photo.goodreads.com/books/1187734194m/1032760.jpg" medium="image">
			<media:title type="html">Rails Deployment: Production Configuration and Advanced Rails Tactics</media:title>
		</media:content>
	</item>
	</channel>
</rss>