<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>code in the ruins</title>
	
	<link>http://code.mogrify.org</link>
	<description>miscellaneous geekery by mogrify</description>
	<pubDate>Thu, 05 Jun 2008 16:49:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/mogrify" type="application/rss+xml" /><item>
		<title>Twitmon update: read and post to Twitter on the command line</title>
		<link>http://feeds.feedburner.com/~r/mogrify/~3/290634684/</link>
		<comments>http://code.mogrify.org/2008/05/14/twitmon-update-read-and-post-to-twitter/#comments</comments>
		<pubDate>Thu, 15 May 2008 03:42:26 +0000</pubDate>
		<dc:creator>mogrify</dc:creator>
		
		<category><![CDATA[Code monkey]]></category>

		<category><![CDATA[Web junkie]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[twitmon]]></category>

		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://code.mogrify.org/?p=61</guid>
		<description><![CDATA[I&#039;ve posted a new version of Twitmon, my Python command-line Twitter client.  The new version includes a fix to work with the latest version of Twyt, but more importantly, it can now be used to post status updates to Twitter as well!
Download: twitmon, and don&#039;t forget to set your username and password in the script!
Twitmon [...]]]></description>
			<content:encoded><![CDATA[<p>I&#039;ve posted a new version of <a href="http://code.mogrify.org/2008/05/12/twitmon-command-line-twitter-reader/">Twitmon</a>, my Python command-line Twitter client.  The new version includes a fix to work with the latest version of Twyt, but more importantly, it can now be used to post status updates to Twitter as well!</p>
<p>Download: <a href="/wp-content/twitmon">twitmon</a>, and don&#039;t forget to set your username and password in the script!</p>
<p>Twitmon will fetch new Twitter updates from your followees every couple of minutes, just as before.  But now you can update your status as well, just by typing the new status and hitting enter.</p>
<p>You can also edit the update as you&#039;re typing it, and use the arrow keys to navigate back and forth through updates you&#039;ve previously typed.</p>
<p>Occasionally, the Twitter posts will be refreshed while you&#039;re typing, and mess up the display.  You can use the arrow keys to go back, then forward, to clean things up.  It&#039;s ugly when this happens, but it still works.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.mogrify.org/2008/05/14/twitmon-update-read-and-post-to-twitter/feed/</wfw:commentRss>
		<feedburner:origLink>http://code.mogrify.org/2008/05/14/twitmon-update-read-and-post-to-twitter/</feedburner:origLink></item>
		<item>
		<title>Twitmon: command-line Twitter reader</title>
		<link>http://feeds.feedburner.com/~r/mogrify/~3/288801620/</link>
		<comments>http://code.mogrify.org/2008/05/12/twitmon-command-line-twitter-reader/#comments</comments>
		<pubDate>Mon, 12 May 2008 16:43:49 +0000</pubDate>
		<dc:creator>mogrify</dc:creator>
		
		<category><![CDATA[Code monkey]]></category>

		<category><![CDATA[Web junkie]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[twitmon]]></category>

		<category><![CDATA[twitter]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://code.mogrify.org/?p=60</guid>
		<description><![CDATA[I&#039;ve been feeling dissatisfied while trying to read the Twitter statuses of people I&#039;m following.  What I usually want to do is read everything that has come in since the last time I posted something.  Unfortunately, this is hard to do on Twitter&#039;s website.  I have to go back through the pages, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#039;ve been feeling dissatisfied while trying to read the <a href="http://twitter.com/">Twitter</a> statuses of people I&#039;m following.  What I usually want to do is read everything that has come in since the last time I posted something.  Unfortunately, this is hard to do on Twitter&#039;s website.  I have to go back through the pages, one by one, to find my last tweet, then start reading upwards and backwards until I get to the beginning again.  It&#039;s a lot of work and the page load times could be better, so it leaves a lot to be decided.</p>
<p><img class="alignright" style="float: right;" src="http://code.mogrify.org/wp-content/twitmon.png" alt="Twitmon screenshot" />I <a href="http://twitter.com/mogrify/statuses/809305506">decided</a> to use the <a href="http://groups.google.com/group/twitter-development-talk/web/api-documentation">Twitter API</a> to write a command-line client that would check Twitter every so often and spit out new updates.  Turns out I didn&#039;t need to do much work: <a href="http://andrewprice.me.uk/projects/twyt/">Twyt</a> is an existing Python implementation of the API.  I was going to write it in Python anyway, so I downloaded Twyt (on Ubuntu: <tt>sudo apt-get install python-twyt</tt>) and started poking around.</p>
<p>It wasn&#039;t immediately clear how to get started, but I read through Twyt&#039;s files until I figured out how to authenticate, fetch status data, and turn it into usable objects.  I added some extra stuff to print out color text and to periodically check Twitter, and I&#039;ve got something I can really use.  The code is here: <a href="http://code.mogrify.org/wp-content/twitmon">twitmon</a>.</p>
<p>I haven&#039;t tested it on Windows; it should work in general, but the text colors may not.  The colors can be turned off in the script.  Normally, it will use the colors to highlight links and usernames.  It will also highlight the current user&#039;s username separately from other names; I like this because I can quickly tell if anyone mentions me, and I can find my last tweet quickly.</p>
<p><strong>Update:</strong> I&#039;ve fixed the script to work with Twyt 0.7 (which is the version in Ubuntu 8.04) and 0.8 (which is currently the latest version). You can also now send updates to Twitter with it - just type them and hit enter, and they&#039;ll show up on the next refresh.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.mogrify.org/2008/05/12/twitmon-command-line-twitter-reader/feed/</wfw:commentRss>
		<feedburner:origLink>http://code.mogrify.org/2008/05/12/twitmon-command-line-twitter-reader/</feedburner:origLink></item>
		<item>
		<title>Roll your own remote RickRoll</title>
		<link>http://feeds.feedburner.com/~r/mogrify/~3/270087210/</link>
		<comments>http://code.mogrify.org/2008/04/14/roll-your-own-remote-rickroll/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 16:02:59 +0000</pubDate>
		<dc:creator>mogrify</dc:creator>
		
		<category><![CDATA[Code monkey]]></category>

		<category><![CDATA[Rogue sysadmin]]></category>

		<category><![CDATA[c#]]></category>

		<category><![CDATA[gpl]]></category>

		<category><![CDATA[prank]]></category>

		<category><![CDATA[rickroll]]></category>

		<category><![CDATA[visual studio]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://code.mogrify.org/?p=59</guid>
		<description><![CDATA[Last week I posted about a program I wrote to RickRoll someone at will by controlling their computer over the network.  Basically, you tell their computer to play &#034;Never Gonna Give You Up&#034; whenever you want.  I call it Remote RickRoll, and I&#039;m making it available to download today, including prebuilt binaries and [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I posted about a <a href="http://blog.mogrify.org/2008/04/11/remote-rickroll/">program I wrote to RickRoll someone at will</a> by controlling their computer over the network.  Basically, you tell their computer to play &#034;Never Gonna Give You Up&#034; whenever you want.  I call it Remote RickRoll, and I&#039;m making it available to download today, including prebuilt binaries and source code.</p>
<p><img src="/wp-content/remote-rickroll.png" alt="Remote RickRoll UI" title="Remote RickRoll UI"/></p>
<p>In the victim&#039;s list of Windows services:</p>
<p><img src="/wp-content/remote-rickroll-service.png" alt="Remote RickRoll service" title="Remote RickRoll service"/></p>
<p>In the victim&#039;s application log:</p>
<p><img src="/wp-content/remote-rickroll-log.png" alt="Remote RickRoll in the application log" title="Remote RickRoll in the application log"/></p>
<ul>
<li>Download: <a href="/wp-content/RemoteRickRoll.zip">RemoteRickRoll.zip</a></li>
<li>README file (included in zip): <a href="/wp-content/remote-rickroll-readme.txt">readme.txt</a></li>
</ul>
<p>The README file contains complete instructions for preparing your victim&#039;s computer without physical access to it.</p>
<p>Remote RickRoll runs as a Windows service, so you will need administrative rights on the victim&#039;s machine to make it work.  The victim&#039;s machine needs to be running Windows and have the .NET Framework 2.0 installed (although that can also be installed remotely without their knowledge). You&#039;ll find that <a href="http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx">Sysinternals PsExec</a> comes in handy.</p>
<p>The source code is C# and it&#039;s a Visual Studio 2005 solution.  But the zip file includes binaries, so you don&#039;t need to compile anything to use it.  It&#039;s GPL, so if you want to modify it, knock yourself out.</p>
<p>I&#039;ve used this on two people so far, to great effect.  That said, messing with people&#039;s computers without their knowledge can turn ugly, so be smart.</p>
<p>I&#039;d like to hear about your questions/comments/success stories/failures/modifications, so please comment below if you&#039;re inclined.</p>
<p>Thanks and enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.mogrify.org/2008/04/14/roll-your-own-remote-rickroll/feed/</wfw:commentRss>
		<feedburner:origLink>http://code.mogrify.org/2008/04/14/roll-your-own-remote-rickroll/</feedburner:origLink></item>
		<item>
		<title>Greasemonkey script: Pitchfork links</title>
		<link>http://feeds.feedburner.com/~r/mogrify/~3/230506041/</link>
		<comments>http://code.mogrify.org/2008/02/06/greasemonkey-script-pitchfork-links/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 20:23:37 +0000</pubDate>
		<dc:creator>mogrify</dc:creator>
		
		<category><![CDATA[Code monkey]]></category>

		<category><![CDATA[Web junkie]]></category>

		<category><![CDATA[firefox]]></category>

		<category><![CDATA[greasemonkey]]></category>

		<category><![CDATA[ilike]]></category>

		<category><![CDATA[isohunt]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[last.fm]]></category>

		<category><![CDATA[mashup]]></category>

		<category><![CDATA[mininova]]></category>

		<category><![CDATA[music]]></category>

		<category><![CDATA[pitchfork]]></category>

		<category><![CDATA[the pirate bay]]></category>

		<category><![CDATA[wikipedia]]></category>

		<guid isPermaLink="false">http://code.mogrify.org/2008/02/06/greasemonkey-script-pitchfork-links/</guid>
		<description><![CDATA[ I read a lot of record reviews over at Pitchfork, and when something sounds good, I usually jump over to Last.fm to listen to it, or to remind myself to check it out again later.  For a long time, I&#039;ve been meaning to write up a Greasemonkey script for Firefox to generate the [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border: 1px solid #aaaaaa; margin: 10px; padding: 4px; float: right" src="http://code.mogrify.org/wp-content/uploads/2008/02/pitchfork.png" alt="Last.fm links on Pitchfork" /> I read a lot of record reviews over at <a href="http://www.pitchforkmedia.com/">Pitchfork</a>, and when something sounds good, I usually jump over to <a href="http://last.fm/">Last.fm</a> to listen to it, or to remind myself to check it out again later.  For a long time, I&#039;ve been meaning to write up a <a href="http://www.greasespot.net/">Greasemonkey</a> script for Firefox to generate the Last.fm link for me, so I don&#039;t have to type it in every time.  You know, because that&#039;s <em>so hard</em>.</p>
<p>Anyway, I&#039;m working on an, ahem, <em>not tremendously exciting</em> project at work, so I finally got around to it.  I went ahead and made it extensible for other links besides Last.fm, so it can do links to <a href="http://www.ilike.com/">iLike</a> and Wikipedia, too; others are easy to add if you&#039;re reasonably familiar with Javascript.  The script adds the links right next to the album artwork, right below the links to Emusic, digg, del.icio.us, and so on.</p>
<p>I posted it on <a href="http://userscripts.org/scripts/show/22407">userscripts.org</a>.  I currently have a hundred or so back reviews to read, so hopefully I&#039;ll have saved net keystrokes by the time I catch up.</p>
<p><strong>Update:</strong> added links to IsoHunt, Mininova, and the Pirate Bay, by request.  I can&#039;t test right now because I&#039;m on Firefox 3 RC2 and Greasemonkey doesn&#039;t work there yet.  But you can get the <a href="/wp-content/pitchfork-links.js">new version right here</a> for now.  I will update it on userscripts.org as soon as I get it tested.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.mogrify.org/2008/02/06/greasemonkey-script-pitchfork-links/feed/</wfw:commentRss>
		<feedburner:origLink>http://code.mogrify.org/2008/02/06/greasemonkey-script-pitchfork-links/</feedburner:origLink></item>
		<item>
		<title>Acquisitions</title>
		<link>http://feeds.feedburner.com/~r/mogrify/~3/217775248/</link>
		<comments>http://code.mogrify.org/2008/01/16/acquisitions/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 18:07:17 +0000</pubDate>
		<dc:creator>mogrify</dc:creator>
		
		<category><![CDATA[Open source hippie]]></category>

		<category><![CDATA[Web junkie]]></category>

		<category><![CDATA[bea]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[sun]]></category>

		<guid isPermaLink="false">http://code.mogrify.org/2008/01/16/acquisitions/</guid>
		<description><![CDATA[I just think it&#039;s really interesting that Oracle is buying BEA and Sun is buying MySQL, and that both acquisitions were announced on the same day.  That is all.
]]></description>
			<content:encoded><![CDATA[<p>I just think it&#039;s really interesting that <a href="http://www.oracle.com/bea/index.html">Oracle is buying BEA</a> and <a href="http://mysql.com/news-and-events/sun-to-acquire-mysql.html">Sun is buying MySQL</a>, and that both acquisitions were announced on the same day.  That is all.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.mogrify.org/2008/01/16/acquisitions/feed/</wfw:commentRss>
		<feedburner:origLink>http://code.mogrify.org/2008/01/16/acquisitions/</feedburner:origLink></item>
		<item>
		<title>Upgraded my router with dd-wrt</title>
		<link>http://feeds.feedburner.com/~r/mogrify/~3/217441099/</link>
		<comments>http://code.mogrify.org/2008/01/16/upgraded-my-router-with-dd-wrt/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 05:14:37 +0000</pubDate>
		<dc:creator>mogrify</dc:creator>
		
		<category><![CDATA[Open source hippie]]></category>

		<category><![CDATA[Rogue sysadmin]]></category>

		<category><![CDATA[dd-wrt]]></category>

		<category><![CDATA[dhcp]]></category>

		<category><![CDATA[dns]]></category>

		<category><![CDATA[ipv6]]></category>

		<category><![CDATA[linksys]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[networking]]></category>

		<category><![CDATA[router]]></category>

		<category><![CDATA[samba]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[ssh]]></category>

		<category><![CDATA[sysadmin]]></category>

		<category><![CDATA[wi-fi]]></category>

		<category><![CDATA[wrt54g]]></category>

		<guid isPermaLink="false">http://code.mogrify.org/2008/01/16/upgraded-my-router-with-dd-wrt/</guid>
		<description><![CDATA[This weekend I finally did something I&#039;ve been meaning to do for a while - I installed the dd-wrt firmware on my Linksys WRT54G wireless router.  dd-wrt is based on the original firmware from Linksys, but it adds a ton of new features.
Since installing it three days ago, I&#039;ve done various things that I [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I finally did something I&#039;ve been meaning to do for a while - I installed the <a href="http://www.dd-wrt.com/">dd-wrt</a> firmware on my Linksys WRT54G wireless router.  dd-wrt is based on the original firmware from Linksys, but it adds a ton of new features.</p>
<p>Since installing it three days ago, I&#039;ve done various things that I couldn&#039;t have done before:</p>
<ul>
<li>Static DHCP leases for my machines, so they always get the same IP address.  This also makes the router act as a DNS server for free.</li>
<li>SSH access to the router</li>
<li><a href="http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access#WPA2">WPA2</a> wireless security</li>
<li>Increased the transmission power of the router&#039;s wireless signal</li>
<li>Set up <a href="http://en.wikipedia.org/wiki/Network_Time_Protocol">NTP</a> to keep the router&#039;s time current</li>
<li>Set up <a href="http://en.wikipedia.org/wiki/IPv6">IPv6</a> on my home network using <a href="http://en.wikipedia.org/wiki/6to4">6to4</a>.  The router will automatically assign IPv6 addresses to all clients.</li>
<li>Mounted a Samba share on the router</li>
</ul>
<p>I love doing this kind of thing.  dd-wrt is a fantastic piece of work, and has increased the value of my router a great deal.</p>
<p>The most satisfying bit was the IPv6 setup.  I find it kind of nifty that simply having a single IPv4 address entitles me to several quintillion contiguous IPv6 addresses. You know, just in case.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.mogrify.org/2008/01/16/upgraded-my-router-with-dd-wrt/feed/</wfw:commentRss>
		<feedburner:origLink>http://code.mogrify.org/2008/01/16/upgraded-my-router-with-dd-wrt/</feedburner:origLink></item>
		<item>
		<title>Restoring obelix's boot drive</title>
		<link>http://feeds.feedburner.com/~r/mogrify/~3/211149072/</link>
		<comments>http://code.mogrify.org/2008/01/04/restoring-obelixs-boot-drive/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 15:10:23 +0000</pubDate>
		<dc:creator>mogrify</dc:creator>
		
		<category><![CDATA[Rogue sysadmin]]></category>

		<category><![CDATA[backup]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[obelix]]></category>

		<category><![CDATA[recovery]]></category>

		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://code.mogrify.org/2008/01/04/restoring-obelixs-boot-drive/</guid>
		<description><![CDATA[Since the boot drive on my home server, obelix, died, I&#039;ve been trying to get at its data.  The large part of the important data had been on a separate drive, mounted as /home, so there was nothing of critical importance, but I still wanted to recover some of the config files and such that [...]]]></description>
			<content:encoded><![CDATA[<p>Since the boot drive on my home server, obelix, <a href="http://code.mogrify.org/2008/01/02/farewell-obelix/">died</a>, I&#039;ve been trying to get at its data.  The large part of the important data had been on a separate drive, mounted as /home, so there was nothing of critical importance, but I still wanted to recover some of the config files and such that I&#039;d spent years setting up.</p>
<p>I knew that it wouldn&#039;t be easy - the first sign of trouble with the server, after all, was when it hung during boot with the message &#034;Remounting root partition read/write.&#034;  Sure enough, when I pulled out the drive and put it in another machine, it couldn&#039;t be mounted, not even read-only.</p>
<p>First thing I did was to run <tt>fsck</tt> on the malfunctioning reiserfs partition.  After a while, it exited, telling me that the drive had bad blocks.  Great.</p>
<p>So I ran <tt>badblocks</tt> and got a list of five block numbers, and then <tt>fsck.reiserfs &#8211;fix-fixable</tt>, passing it the list of bad blocks, to see if it could work around them.  It choked on one, telling me I&#039;d have to run <tt>fsck.reiserfs &#8211;rebuild-tree</tt> on the partition.  When I did, it died at the same point - I wouldn&#039;t be able to repair the filesystem while it was still on the malfunctioning drive.  I&#039;d need to dump it out to a file on a good drive.  Unfortunately, I didn&#039;t have anything handy that could hold the entire partition, so I took the bad drive to work with me.</p>
<p>Once there, I hooked the drive back up and dumped it to a file on a network share (thanks for the space, John).  As <tt>fsck.reiserfs</tt> recommended, I used <tt>dd_rescue</tt>, which can nicely handle bad blocks by zeroing them out on the destination.  It completed successfully, finding several bad blocks and dealing with them gracefully.  Then I ran <tt>fsck.reiserfs &#8211;rebuild-tree</tt> on the dumped file.  It also completed successfully this time, so I held my breath and mounted the dumped file with <tt>mount -t reiserfs -o ro,loop</tt>, and, thankfully, it worked.  I&#039;m now copying everything I need onto a good drive.</p>
<p>Even though it wasn&#039;t that important, I&#039;m glad it worked out.  I&#039;ve never had to recover a bad drive before, so now that I&#039;ve had the chance, I&#039;ll know more about what to do when the time comes again.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.mogrify.org/2008/01/04/restoring-obelixs-boot-drive/feed/</wfw:commentRss>
		<feedburner:origLink>http://code.mogrify.org/2008/01/04/restoring-obelixs-boot-drive/</feedburner:origLink></item>
		<item>
		<title>Farewell, obelix</title>
		<link>http://feeds.feedburner.com/~r/mogrify/~3/210034904/</link>
		<comments>http://code.mogrify.org/2008/01/02/farewell-obelix/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 18:38:19 +0000</pubDate>
		<dc:creator>mogrify</dc:creator>
		
		<category><![CDATA[Open source hippie]]></category>

		<category><![CDATA[Rogue sysadmin]]></category>

		<category><![CDATA[dreamhost]]></category>

		<category><![CDATA[gentoo]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[networking]]></category>

		<category><![CDATA[obelix]]></category>

		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://code.mogrify.org/2008/01/02/farewell-obelix/</guid>
		<description><![CDATA[In the evening on Monday, December 31, my venerable home Linux server, obelix, went down for the last time.]]></description>
			<content:encoded><![CDATA[<p>In the evening on Monday, December 31, my venerable home Linux server, obelix, went down for the last time.  His boot drive developed a bad block and could no longer be mounted.  Efforts are still underway to recover the data from the drive, but on Tuesday, I made the decision to decommission obelix for good.</p>
<p>obelix was a Dell Dimension L667R with a Pentium III and 384 megabytes of RAM.  I&#039;ve had him for about seven years.  I bought him (refurbished!) on a whim, somewhere in the distant past.  He was extremely versatile; he acted as web, file, and database server, as well as providing services to our network as a Samba domain controller and an LDAP, DHCP, and DNS server.  In his early years, he was also my primary workstation, running countless window managers, desktop applications, and games over the years.  Due to his having a FireWire card installed, I used him to capture DV from my video camera to edit on another machine.  He spent most of his lifetime as a Gentoo Linux box, no doubt logging thousands of hours of software compilation.</p>
<p>Until recently, he served my websites over my home connection, although since I <a title="Living the dream" href="http://code.mogrify.org/2007/09/25/living-the-dream/">recently began hosting</a> with Dreamhost, he no longer performed this function.  This was a major factor in my decision not to stand him back up after the disk failure.  Although he had still been providing network, file, and database services, I knew that I would no longer need a dedicated server at home once the websites had been moved to external hosting.  So I moved his large data disk to another computer and dismantled the Samba domain, which was more or less unnecessary to begin with.  His primary function as a database server was to host my Amarok music collection database, which was easily rebuilt after he went down.</p>
<p>I will miss having obelix around, though; I named him after my favorite Asterix character, I&#039;ve had him longer than I&#039;ve known my own children, and I knew him backwards and forwards.  Tinkering with Gentoo, Apache, MySQL, OpenLDAP, and Samba on obelix was how I began to truly solidify my knowledge of Linux system administration; using obelix absolutely helped get me where I am today.</p>
<p>It&#039;s somehow fitting that he should go out on the last day of 2007; it&#039;s been quite a year.  There&#039;s been a lot of anxiety, some deaths, a birth, some sickness, some health, some successes, some failures, a new job, many highs, many lows.  It hasn&#039;t been the easiest year to live through in a lot of ways.  In no way is the loss of obelix anywhere near a significant event in the face of what&#039;s happened this year, but it does sort of reinforce the feelings I have about 2008 - cautiously hoping for a clean slate.  The new year always brings new things and does away with some of the old.  Whether that&#039;s for good or ill, we&#039;ll just have to wait and see.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.mogrify.org/2008/01/02/farewell-obelix/feed/</wfw:commentRss>
		<feedburner:origLink>http://code.mogrify.org/2008/01/02/farewell-obelix/</feedburner:origLink></item>
		<item>
		<title>Im in ur printrz</title>
		<link>http://feeds.feedburner.com/~r/mogrify/~3/174401814/</link>
		<comments>http://code.mogrify.org/2007/10/24/im-in-ur-printrz/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 16:46:54 +0000</pubDate>
		<dc:creator>mogrify</dc:creator>
		
		<category><![CDATA[Code monkey]]></category>

		<category><![CDATA[Rogue sysadmin]]></category>

		<category><![CDATA[d]]></category>

		<category><![CDATA[hp]]></category>

		<category><![CDATA[insert coin]]></category>

		<category><![CDATA[perl]]></category>

		<category><![CDATA[printer]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://code.mogrify.org/2007/10/24/im-in-ur-printrz/</guid>
		<description><![CDATA[When I read about INSERT COIN, the Perl script that changes the ready messages on HP network printers, I was overjoyed.  It seems to be a perfect way to wreak mild havoc without really harming anything.  I showed it to my buddy John this morning; it&#039;s right up his alley, too (for an [...]]]></description>
			<content:encoded><![CDATA[<p>When I read about <a href="http://kovaya.com/miscellany/2007/10/insert-coin.html">INSERT COIN</a>, the Perl script that changes the ready messages on HP network printers, I was overjoyed.  It seems to be a perfect way to wreak mild havoc without really harming anything.  I showed it to my buddy John this morning; it&#039;s right up his alley, too (for an idea of what John&#039;s alley is like, <a href="http://youtube.com/watch?v=tBh75eCoz5Q">check this out</a>).</p>
<p>Of course, he&#039;s a Windows guy (although <a href="http://youtube.com/watch?v=Ts2211_VX2k">not a Windows 95 guy</a>).  And INSERT COIN is a Perl script, and he doesn&#039;t have <a href="https://www.activestate.com/Products/activeperl/">ActivePerl</a> installed, because when you have <tt>cmd</tt>, you have everything you need!</p>
<p>So I decided to get him a standalone version of INSERT COIN that will run on his box.  I decided to try to port the thing to <a href="http://en.wikipedia.org/wiki/D_programming_language">D</a>.  Mainly because I have a short attention span, and I recently read an <a href="http://boscoh.com/programming/some-reflection-on-programming-in-d-and-why-it-kicks-serious-ass-over-c-leaving-it-died-and-tired-on-the-sidewalk">article</a> about D.</p>
<p>I&#039;m a scripting guy, only recently having delved into statically-typed-but-still-use-a-runtime languages like Java and C#, and hardly at all into lower levels of programming.  C and C++ scare me a bit, frankly, but D seems a little more accessible.  And by accessible, I mean that it seems like it would be harder to make a total ass of yourself as a newbie.  Image is everything.</p>
<p>So I ported INSERT COIN to D.  And I have to say it was a very enjoyable experience.  Here&#039;s the <a href="http://code.mogrify.org/wp-content/insertcoin.d">source</a> and the <a href="http://code.mogrify.org/wp-content/insertcoin.exe">Windows binary</a> (compiled with MinGW).  Now John can happily tweak the printers anytime he likes.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.mogrify.org/2007/10/24/im-in-ur-printrz/feed/</wfw:commentRss>
		<feedburner:origLink>http://code.mogrify.org/2007/10/24/im-in-ur-printrz/</feedburner:origLink></item>
		<item>
		<title>Living the dream</title>
		<link>http://feeds.feedburner.com/~r/mogrify/~3/161359207/</link>
		<comments>http://code.mogrify.org/2007/09/25/living-the-dream/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 03:37:20 +0000</pubDate>
		<dc:creator>mogrify</dc:creator>
		
		<category><![CDATA[Open source hippie]]></category>

		<category><![CDATA[Rogue sysadmin]]></category>

		<category><![CDATA[Web junkie]]></category>

		<category><![CDATA[dreamhost]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[mogrify.org]]></category>

		<category><![CDATA[obelix]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://code.mogrify.org/2007/09/25/living-the-dream/</guid>
		<description><![CDATA[Today I registered a new domain - mogrify.org - and began the process of migrating my websites to my new host, Dreamhost.  The now-venerable mogrify.homelinux.org, as you may have noticed, redirects to the shiny new code.mogrify.org.  I&#039;ll be moving other things across in the coming days and fixing problems whenever I notice them.
I&#039;ve [...]]]></description>
			<content:encoded><![CDATA[<p>Today I registered a new domain - mogrify.org - and began the process of migrating my websites to my new host, Dreamhost.  The now-venerable mogrify.homelinux.org, as you may have noticed, redirects to the shiny new <a href="http://code.mogrify.org/">code.mogrify.org</a>.  I&#039;ll be moving other things across in the coming days and fixing problems whenever I notice them.</p>
<p>I&#039;ve been wanting to host offsite for some time, since I&#039;m currently running three separate sites on a single, beige Pentium III Dell box in my study.  This is not exactly the most robust of setups, and there have been issues with power and network outages.</p>
<p>I expect to love Dreamhost for the same reason I love hosting at home - because I genuinely enjoy administering Linux systems, and Dreamhost gives you a lot of control - shell access, .htaccess files, log files, email accounts, etc., as well as a whole ton of other options.</p>
<p>So, the dream is becoming a reality.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.mogrify.org/2007/09/25/living-the-dream/feed/</wfw:commentRss>
		<feedburner:origLink>http://code.mogrify.org/2007/09/25/living-the-dream/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 1.657 seconds -->
