<?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:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Shane Sveller &#187; Linux</title>
	<atom:link href="http://shanesveller.com/category/computers/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://shanesveller.com</link>
	<description>Somewhere between happy and total f**king wreck</description>
	<lastBuildDate>Thu, 07 Jan 2010 18:31:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Redmine and Passenger bugfix</title>
		<link>http://shanesveller.com/2008/08/11/redmine-and-passenger-bugfix/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=redmine-and-passenger-bugfix</link>
		<comments>http://shanesveller.com/2008/08/11/redmine-and-passenger-bugfix/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 15:15:25 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[redmine]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://shanesveller.com/?p=77</guid>
		<description><![CDATA[Redmine+Passenger has issues with RedCloth 4.x so use 3.0.4 or the included version instead.]]></description>
			<content:encoded><![CDATA[<p>Source: <a href="http://www.redmine.org/issues/show/1714">Redmine.org</a></p>
<p>For those of you who are running Redmine on Phusion Passenger, if you have certain versions of the <code>RedCloth</code> gem installed, you are in for some trouble.<br />
<span id="more-47"></span><br />
I was getting something along the lines of:</p>
<pre>Error message:
    superclass must be a Class (Module given)
Exception class:
    TypeError
Application root:
    /var/rails/redmine-0.7</pre>
<p>This was on Ubuntu Hardy 8.04.1, with Apache 2.2.8-1, Ruby Enterprise Edition 080704 (I think), and Passenger 2.0.2, with Redmine from SVN-stable r1729.</p>
<p>A simple solution that worked perfectly for me was to remove ALL version of the RedCloth gem, allowing Redmine to use its own included version of RC.</p>
<pre>gem uninstall RedCloth</pre>
<p>One of the responses on that bug thread also indicates that gem version 3.0.4 of RedCloth is the most recent version compatible with Redmine, so you could also try using (only) that version.</p>
]]></content:encoded>
			<wfw:commentRss>http://shanesveller.com/2008/08/11/redmine-and-passenger-bugfix/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Passenger and RubyEnt updates</title>
		<link>http://shanesveller.com/2008/08/11/passenger-and-rubyent-updates/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=passenger-and-rubyent-updates</link>
		<comments>http://shanesveller.com/2008/08/11/passenger-and-rubyent-updates/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 15:01:00 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[updates]]></category>

		<guid isPermaLink="false">http://shanesveller.com/?p=73</guid>
		<description><![CDATA[My webserver is now running Phusion Passenger 2.0.3 for Ruby/Rails apps using Ruby Enterprise Edition 1.8.6-20080810. This greatly simplifies application deployment and helps improve performance and memory usage.]]></description>
			<content:encoded><![CDATA[<p>Updated my web server with <a href="http://rubyenterpriseedition.com">Ruby Enterprise Edition</a> 1.8.6-20080810 and <a href="http://modrails.com">Phusion Passenger</a> 2.0.3 successfully. Both releases feature bugfixes for security issues and the like. My web server currently powers this blog, a <a href="http://www.redmine.org">Redmine</a> instance for my own projects, and some &#8220;production&#8221; servers for a few <a href="http://isgilded.com">Rails apps</a> I&#8217;m writing right now.</p>
<p>I&#8217;d highly recommend Passenger and RubyEnt for low-volume or even high-traffic production Rails servers. It has greatly simplified my deployment and performance on a VPS with, say, 540MB of RAM is stellar. If you set the idle timeout to something huge, you can get almost Nginx+Mongrel/Thin level performance even on a low-traffic server; otherwise you have to wait a brief time (10-15 seconds) when the app has been idle for a while.</p>
]]></content:encoded>
			<wfw:commentRss>http://shanesveller.com/2008/08/11/passenger-and-rubyent-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building libxml-ruby gem on Ubuntu Hardy</title>
		<link>http://shanesveller.com/2008/07/14/building-libxml-ruby-gem-on-ubuntu-hardy/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=building-libxml-ruby-gem-on-ubuntu-hardy</link>
		<comments>http://shanesveller.com/2008/07/14/building-libxml-ruby-gem-on-ubuntu-hardy/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 17:07:39 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[bugfix]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[libxml]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://shanesveller.com/?p=61</guid>
		<description><![CDATA[<pre>no such file to load -- libxml_so</pre>
<br/>
<pre>sudo apt-get install libxml2 libxml2-dev
cd /usr/lib/ruby/gems/1.8/gems/libxml-ruby-0.7.0
sudo ruby ext/libxml/extconf.rb
sudo make; sudo make install</pre>]]></description>
			<content:encoded><![CDATA[<p>Source: <a href="http://mrtibs.blogspot.com/2008/03/ubuntu-no-such-file-to-load-libxmlso.html" target="_blank">Tibs&#8217; Blog</a></p>
<p>I had been having a lot of trouble using libxml-ruby on Ubuntu Hardy for a hobby project of mine. Any task including libxml calls via <code>require 'xml/libxml'</code> fails with the message:</p>
<pre>no such file to load -- libxml_so</pre>
<p><span id="more-35"></span><br />
To solve this:</p>
<pre class="brush: bash">
sudo apt-get install libxml2 libxml2-dev
cd /usr/lib/ruby/gems/1.8/gems/libxml-ruby-0.7.0
sudo ruby ext/libxml/extconf.rb
sudo make; sudo make install
</pre>
]]></content:encoded>
			<wfw:commentRss>http://shanesveller.com/2008/07/14/building-libxml-ruby-gem-on-ubuntu-hardy/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Another successful Passenger deployment</title>
		<link>http://shanesveller.com/2008/06/25/another-successful-passenger-deployment/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=another-successful-passenger-deployment</link>
		<comments>http://shanesveller.com/2008/06/25/another-successful-passenger-deployment/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 18:16:38 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[linode]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://shanesveller.com/?p=56</guid>
		<description><![CDATA[This morning, as a result of a hardware failure on my home server, I decided to move my Redmine devtracker to my Linode host.I used: Ubuntu Server 8.04 AMD64 Apache2-prefork 2.2.8 Passenger 2.0.1 Ruby Enterprise Edition 1.8.6-20080624 Redmine 0.7 stable (SVN r1547) My apache vhost is as follows: &#60;VirtualHost *:80&#62; ServerName dev.shanesveller.com DocumentRoot /var/rails/redmine-0.7/public &#60;Directory]]></description>
			<content:encoded><![CDATA[<p>This morning, as a result of a hardware failure on my home server, I decided to move my <a href="http://www.redmine.org">Redmine</a> devtracker to my Linode host.<span id="more-30"></span>I used:</p>
<ul>
<li><a href="http://www.ubuntu.com">Ubuntu</a> Server 8.04 AMD64</li>
<li>Apache2-prefork 2.2.8</li>
<li><a href="http://www.modrails.com">Passenger</a> 2.0.1</li>
<li><a href="http://www.rubyenterpriseedition.com">Ruby Enterprise Edition</a> 1.8.6-20080624</li>
<li><a href="http://www.redmine.org">Redmine</a> 0.7 stable (SVN r1547)</li>
</ul>
<p>My apache vhost is as follows:</p>
<pre>&lt;VirtualHost *:80&gt;
  ServerName dev.shanesveller.com

  DocumentRoot /var/rails/redmine-0.7/public

&lt;Directory "/var/rails/redmine-0.7/public"&gt;
   Options FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all
&lt;/Directory&gt;

  # Custom log file locations
  # ErrorLog  /var/rails/redmine/log/error.log
  # CustomLog /var/rails/redmine/log/access.log combined

&lt;/VirtualHost&gt;</pre>
<div>The passage in the middle is there because my CSS styles and images were missing. This is explained in the <a href="http://modrails.com/documentation/Users%20guide.html#_static_assets_such_as_images_and_stylesheets_aren_t_being_displayed">User&#8217;s Guide</a>.</div>
<p>This allows me to serve my WordPress blog and my Redmine tracker and use about 260MB of RAM. If you take off the buffers and cache memory, it&#8217;s actually more like 110MB.</p>
<p>To enable Passenger and RubyEE in Apache, I used the following file in <code>/etc/apache2/conf.d/passenger</code>:</p>
<pre>   LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.1/ext/apache2/mod_passenger.so
   PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.1
   RailsRuby /opt/ruby-enterprise/bin/ruby</pre>
<p>The relevant Ubuntu packages are:</p>
<pre>apache2 apache2-prefork-dev apache2-mpm-prefork build-essential ruby1.8-dev ruby ri rake irb rdoc libmysqlclient15-dev libopenssl-ruby</pre>
]]></content:encoded>
			<wfw:commentRss>http://shanesveller.com/2008/06/25/another-successful-passenger-deployment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live backups using LVM and dump</title>
		<link>http://shanesveller.com/2008/05/27/live-backups-using-lvm-and-dump/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=live-backups-using-lvm-and-dump</link>
		<comments>http://shanesveller.com/2008/05/27/live-backups-using-lvm-and-dump/#comments</comments>
		<pubDate>Tue, 27 May 2008 19:15:09 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://shanesveller.com/?p=42</guid>
		<description><![CDATA[If, like me, you&#8217;ve built your Ubuntu machine using LVM for all partitions except /boot, you can do a live backup of your system using LVM snapshots and the dump tool. # lvdisplay --- Logical volume --- LV Name /dev/odin/root_1 VG Name odin ... LV Size 30.00 GB ... Since my root partition is on]]></description>
			<content:encoded><![CDATA[<p>If, like me, you&#8217;ve built your Ubuntu machine using LVM for all partitions except <code>/boot</code>, you can do a live backup of your system using LVM snapshots and the <a href="http://surf.ap.seikei.ac.jp/~nakano/dump-restore/dump-restore-mini-HOWTO.en.html">dump tool</a>.<span id="more-27"></span></p>
<pre># lvdisplay
  --- Logical volume ---
  LV Name                /dev/odin/root_1
  VG Name                odin
  ...
  LV Size                30.00 GB
  ...</pre>
<p>Since my root partition is on LVM, I can do a snapshot to get a point-in-time view of the root partition even as the system is running and software is making changes to the filesystem. To create the snapshot:</p>
<pre>lvcreate -L 30G -s -n root_1_snap /dev/odin/root_1</pre>
<p>The arguments are: <code>lvcreate -L {size} -n {snapshot name} {lvm device path}</code></p>
<p>Then, you do a <code>dump</code> backup:</p>
<pre># dump 0uf odin.0.img /dev/mapper/odin-root_1_snap
  DUMP: Date of this level 0 dump: Mon Apr 28 10:52:39 2008
  DUMP: Dumping /dev/mapper/odin-root_1_snap (an unlisted file system) to odin.0.img
  DUMP: Label: none
  DUMP: Writing 10 Kilobyte records
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 3130770 blocks.
  DUMP: Volume 1 started with block 1 at: Mon Apr 28 10:52:46 2008
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: Closing odin.0.img
  DUMP: Volume 1 completed at: Mon Apr 28 10:55:49 2008
  DUMP: Volume 1 3120540 blocks (3047.40MB)
  DUMP: Volume 1 took 0:03:03
  DUMP: Volume 1 transfer rate: 17052 kB/s
  DUMP: 3120540 blocks (3047.40MB) on 1 volume(s)
  DUMP: finished in 182 seconds, throughput 17145 kBytes/sec
  DUMP: Date of this level 0 dump: Mon Apr 28 10:52:39 2008
  DUMP: Date this dump completed:  Mon Apr 28 10:55:49 2008
  DUMP: Average transfer rate: 17052 kB/s
  DUMP: DUMP IS DONE</pre>
<p>The arguments are: <code>dump {level}uf {output file} {source device path}</code></p>
<p>Next, remove the snapshot to keep from hogging LVM space:</p>
<pre>  lvremove /dev/odin/root_1_snap
Do you really want to remove active logical volume "root_1_snap"? [y/n]: y
  Logical volume "root_1_snap" successfully removed</pre>
<p>Optionally, compress the backup image for safekeeping.</p>
<pre>gzip /backup/odin.0.img &amp;</pre>
<p>The ampersand (&amp;) will make the process run in the background. By doing this, I saved 71.2% of the size, down to an image that was 878MB from 3050MB!</p>
<p>To restore from said backup, assuming you have a ready ext3 partition of the appropriate size: Uncompress it if need be:</p>
<pre>gunzip /backup/odin.0.img.gz</pre>
<p>Then:</p>
<pre>cd / &amp;&amp; rrestore rf /backup/odin.0.img</pre>
]]></content:encoded>
			<wfw:commentRss>http://shanesveller.com/2008/05/27/live-backups-using-lvm-and-dump/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tip: Ubuntu default runlevel</title>
		<link>http://shanesveller.com/2008/04/24/quick-tip-ubuntu-default-runlevel/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=quick-tip-ubuntu-default-runlevel</link>
		<comments>http://shanesveller.com/2008/04/24/quick-tip-ubuntu-default-runlevel/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 18:39:16 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[runlevel]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://shanesveller.com/?p=41</guid>
		<description><![CDATA[<pre>
/etc/inittab:
id:3:initdefault
</pre>]]></description>
			<content:encoded><![CDATA[<p>If you, like me, use <code>sysv-rc-conf</code> to change the services that run a particular runlevel, i.e. so that runlevel 2 is actually only networked and not GUI as tradition holds, you can set the default runlevel to boot in Ubuntu by editing:</p>
<pre>
/etc/inittab:
id:3:initdefault
</pre>
<p>The number in the middle is the runlevel to start by default.</p>
]]></content:encoded>
			<wfw:commentRss>http://shanesveller.com/2008/04/24/quick-tip-ubuntu-default-runlevel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Personal internet acceleration, part 1</title>
		<link>http://shanesveller.com/2008/04/14/personal-internet-acceleration-part-1/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=personal-internet-acceleration-part-1</link>
		<comments>http://shanesveller.com/2008/04/14/personal-internet-acceleration-part-1/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 17:57:07 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://shanesveller.com/?p=38</guid>
		<description><![CDATA[My SFF server machine has been configured to speed up my digital life. Squid caching web proxy apt-cacher caching apt proxy BIND9 caching/local DNS server Installing the squid web proxy apt-get install squid squid-prefetch You will then need to configure the ACL to allow access through the proxy from the local network. nano /etc/squid/squid.conf visible_hostname]]></description>
			<content:encoded><![CDATA[<p>My SFF server machine has been configured to speed up my digital life.<span id="more-20"></span></p>
<ul>
<li>Squid caching web proxy</li>
<li>apt-cacher caching apt proxy</li>
<li>BIND9 caching/local DNS server</li>
</ul>
<h3>Installing the squid web proxy</h3>
<p><code>apt-get install squid squid-prefetch</code></p>
<p>You will then need to configure the ACL to allow access through the proxy from the local network.</p>
<p><code>nano /etc/squid/squid.conf</code></p>
<pre>
visible_hostname server1     #Line added
...
http_port 8080     #Line changed
...
cache_dir ufs /var/spool/squid 2000 16 256     #Line changed
...
acl local src 10.0.1.0/255.255.255.0     #Line added
http_access allow local     #Line added
</pre>
<p>This configures the squid cache to listen on port 8080 instead of 3128, allows access from all IPs in the range 10.0.1.1 &#8211; 10.0.1.255, and sets the cache size to 2000MB. Then you need to restart the squid service:<br />
<code>/etc/init.d/squid restart</code></p>
<p>You can then configure your end users&#8217; machines to use <code>http://server1:8080/</code> as their internet proxy. I recommend setting this for insecure (non-SSL) traffic only as I have noticed some odd behavior with SSL proxying.</p>
<p>In <a href="http://getfirefox.com">Firefox</a> this is dead-simple:</p>
<ol>
<li>Open the Preferences window from the application menu on OSX or the Options window from the Tools menu on Windows.</li>
<li>Choose the Advanced section at the top, followed by the Network tab.</li>
<li>Click the Settings button under the Connection header.</li>
<li>Choose the &#8220;Manual configuration&#8221; radio button and enter <code>http://server1:8080/</code> in the HTTP Proxy box.</li>
</ol>
<p>Safari on OSX uses the system-wide proxy settings:</p>
<ol>
<li>Choose System Preferences from the Apple menu</li>
<li>Click the Network item under the Internet &amp; Network heading</li>
<li>Select your primary connection, wireless or wired, from the left-hand list and click the Advanced button</li>
<li>Choose the Proxies tab, choose Manually in the drop-down menu, check the box next to Web Proxy</li>
<li>Enter <code>server1</code> in the first box and <code>8080</code> in the second box</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://shanesveller.com/2008/04/14/personal-internet-acceleration-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using binary NVidia 8800GT drivers on Ubuntu Gutsy</title>
		<link>http://shanesveller.com/2008/04/14/using-binary-nvidia-8800gt-drivers-on-ubuntu-gutsy/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=using-binary-nvidia-8800gt-drivers-on-ubuntu-gutsy</link>
		<comments>http://shanesveller.com/2008/04/14/using-binary-nvidia-8800gt-drivers-on-ubuntu-gutsy/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 14:31:36 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[169.12]]></category>
		<category><![CDATA[8800gt]]></category>
		<category><![CDATA[binary]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[geforce]]></category>
		<category><![CDATA[gutsy]]></category>
		<category><![CDATA[nvidia]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://shanesveller.com/?p=35</guid>
		<description><![CDATA[In order for me to use the official binary drivers, version 169.12, from NVidia with my GeForce 8800GT on Ubuntu Gutsy, I had to do some research. Alberto Milone&#8216;s envy tool makes the whole thing almost idiot-proof. Text-based install After completing a fresh install of Gutsy via alternate CD, boot into the &#8220;recovery mode&#8221; option]]></description>
			<content:encoded><![CDATA[<p>In order for me to use the official binary drivers, version 169.12, from NVidia with my GeForce 8800GT on Ubuntu Gutsy, I had to do some research. <a href="http://albertomilone.com/nvidia_scripts1.html">Alberto Milone</a>&#8216;s <a href="http://albertomilone.com/ubuntu/nvidia/scripts/legacy/envy_0.9.10-0ubuntu10_all.deb">envy tool</a> makes the whole thing almost idiot-proof.<br />
<span id="more-19"></span></p>
<h2>Text-based install</h2>
<p>After completing a fresh install of Gutsy via alternate CD, boot into the &#8220;recovery mode&#8221; option from GRUB. You will be dumped into a BASH shell.</p>
<p><code>apt-get update &amp;&amp; wget http://albertomilone.com/ubuntu/nvidia/scripts/legacy/envy_0.9.10-0ubuntu10_all.deb<br />
gdebi -n envy_0.9.10-0ubuntu10_all.deb<br />
envy -t</code></p>
<p>At this point it will probably install a few required packages via apt-get and then give you a menu. Here we want <b>option 1</b>, &#8220;Install the NVidia driver&#8221;. It theoretically will install all required development packages, download the driver from nvidia.com, and build and install it for you. It may fail saying it was missing a bunch of required packages, but if you install them by hand it will complete successfully.</p>
<p><code>apt-get install &lt;packages&gt;</code></p>
<p>GUI-based write-up to follow.</p>
]]></content:encoded>
			<wfw:commentRss>http://shanesveller.com/2008/04/14/using-binary-nvidia-8800gt-drivers-on-ubuntu-gutsy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Gutsy AMD64, LVM, and Xen from repositories</title>
		<link>http://shanesveller.com/2008/04/10/ubuntu-gutsy-amd64-lvm-and-xen-from-repositories/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ubuntu-gutsy-amd64-lvm-and-xen-from-repositories</link>
		<comments>http://shanesveller.com/2008/04/10/ubuntu-gutsy-amd64-lvm-and-xen-from-repositories/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 16:08:57 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[64-bit]]></category>
		<category><![CDATA[gutsy]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://shanesveller.com/?p=33</guid>
		<description><![CDATA[For a weekend project, I installed and configured Xen as a virtual machine hosting solution on Ubuntu Gutsy AMD64 using LVM for drive/partition management.]]></description>
			<content:encoded><![CDATA[<p>My desktop just grew by two 500GB Western Digital Caviar drives. Having installed those, I loaded Gutsy-AMD64 on one using LVM. The partition schema is as follows:</p>
<pre>
Drive: 500GB #1
Volume Group: server1
Volumes:
	swap_1 - 6GB - swap
	root_1 - 30GB - ext3 - mounted as /
	home_1 - 20GB - ext3 - mounted as /home/
Free space: ~398GB
</pre>
<p>500GB number two will probably wind up being a RAID mirror via my motherboard. This LVM layout allows me to dynamically allocate space for the many potential Xen DomUs I create.</p>
<p>To install Xen on Gutsy-AMD64 desktop version:<br />
<code>sudo apt-get install ubuntu-xen-desktop-amd64</code></p>
<p><span id="more-18"></span><br />
My <code>/etc/xen-tools/xen-tools.conf</code>:</p>
<pre>
lvm = server1               # LVM volume group to use
install-method = debootstrap
size   = 4Gb                # Disk image size.
memory = 256Mb              # Memory size
swap   = 512Mb              # Swap size
fs     = ext3               # use the EXT3 filesystem for the disk image.
dist   = gutsy              # Default distribution to install.
gateway = 10.0.1.1
netmask = 255.255.255.0
cache = yes                 # Cache downloaded debs
passwd = 1                  # Set up root password during creation
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
arch = amd64                # 64-bit domU
mirror = http://us.archive.ubuntu.com/ubuntu
ext3_options = noatime,nodiratime,errors=remount-ro
serial_device = tty1
</pre>
<p>My <code>/etc/xen/xend-config.sxp</code>:</p>
<pre>
(xend-tcp-xmlrpc-server yes)
(xend-relocation-server yes)
(xend-relocation-server yes)
(xend-tcp-xmlrpc-server-address '')
(xend-tcp-xmlrpc-server-port 8006)
(xend-relocation-port 8002)
(xend-relocation-address '')
(xend-relocation-hosts-allow '')
(network-script network-bridge)
(vif-script vif-bridge)
(dom0-min-mem 196)
(dom0-cpus 0)
(vncpasswd '')
</pre>
<p>Edit the file <code>/etc/xen-tools/xm.tmpl</code> as follows, around line 19:</p>
<pre>
memory      = '{$memory}'
extra='xencons=tty'
</pre>
<p>To generate one Gutsy-based DomU:<br />
<code>xen-create-image --hostname=gutsy1 --ip=10.0.1.3 --verbose --force</code>
</p>
<p>To boot created DomU:<br />
<code>xm create gutsy1.cfg -c</p>
]]></content:encoded>
			<wfw:commentRss>http://shanesveller.com/2008/04/10/ubuntu-gutsy-amd64-lvm-and-xen-from-repositories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>God is watching over my Rails</title>
		<link>http://shanesveller.com/2008/04/07/god-is-watching-over-my-rails/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=god-is-watching-over-my-rails</link>
		<comments>http://shanesveller.com/2008/04/07/god-is-watching-over-my-rails/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 19:48:58 +0000</pubDate>
		<dc:creator>Shane</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[god]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://shanesveller.com/?p=32</guid>
		<description><![CDATA[On my home server, I'm using <a href="http://god.rubyforge.org">God</a> to monitor many server daemons using clean, elegant Ruby code.]]></description>
			<content:encoded><![CDATA[<p>On my home server I&#8217;m toying with some Rails clustering and such, using nginx and thin, and now <a href="http://god.rubyforge.org/">God</a> to watch over things.<br />
With this setup, I can add apps and port-ranges to monitor any time I like, and I can split off a particularly specific configuration group if an app has unusual trends or requirements, such as using loads of memory.<br />
<span id="more-17"></span></p>
<pre class="brush: ruby">RAILS_ROOT = &#039;/var/www/rails&#039;

APPS = {
  &#039;redmine&#039; =&amp;gt; %w{5000 5001 5002 5003 5004},
  &#039;typo5&#039; =&amp;gt; %w{4000 4001 4002}
  }

for app in APPS.keys
  for port in APPS[app]
    God.watch do |w|
      w.name = &#039;#{app}-thin-#{port}&#039;
      w.interval = 30.seconds # default
      w.start = &#039;thin start -C #{RAILS_ROOT}/#{app}/config/thin.yml -o #{port}&#039;
      w.stop = &#039;thin stop -C #{RAILS_ROOT}/#{app}/config/thin.yml -o #{port}&#039;
      w.restart = &#039;thin restart -C #{RAILS_ROOT}/#{app}/config/thin.yml -o #{port}&#039;
      w.start_grace = 10.seconds
      w.restart_grace = 10.seconds
      w.pid_file = File.join(RAILS_ROOT, &#039;/#{app}/tmp/pids/thin.#{port}.pid&#039;)

      w.behavior(:clean_pid_file)

      w.start_if do |start|
        start.condition(:process_running) do |c|
          c.interval = 5.seconds
          c.running = false
        end
      end

      w.restart_if do |restart|
        restart.condition(:memory_usage) do |c|
          c.above = 80.megabytes
          c.times = [3, 5] # 3 out of 5 intervals
        end

        restart.condition(:cpu_usage) do |c|
          c.above = 50.percent
          c.times = 3
        end
      end

      # lifecycle
      w.lifecycle do |on|
        on.condition(:flapping) do |c|
          c.to_state = [:start, :restart]
          c.times = 5
          c.within = 5.minute
          c.transition = :unmonitored
          c.retry_in = 10.minutes
          c.retry_times = 5
          c.retry_within = 2.hours
        end
      end
    end
  end
end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://shanesveller.com/2008/04/07/god-is-watching-over-my-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
