<?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>Penguins-On-Hudson &#187; Essays</title>
	<atom:link href="http://codefix.wordpress.com/category/essays/feed/" rel="self" type="application/rss+xml" />
	<link>http://codefix.wordpress.com</link>
	<description>Linux &#38; F.O.S.S. in the Hudson River Valley.</description>
	<lastBuildDate>Sat, 01 Nov 2008 21:45:07 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='codefix.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/904cee70020c986d4c7351c3f0a73f32?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Penguins-On-Hudson &#187; Essays</title>
		<link>http://codefix.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://codefix.wordpress.com/osd.xml" title="Penguins-On-Hudson" />
		<item>
		<title>Red Box</title>
		<link>http://codefix.wordpress.com/2007/10/06/red-box/</link>
		<comments>http://codefix.wordpress.com/2007/10/06/red-box/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 16:35:15 +0000</pubDate>
		<dc:creator>Garrison</dc:creator>
				<category><![CDATA[Case Study]]></category>
		<category><![CDATA[Essays]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Telephony]]></category>

		<guid isPermaLink="false">http://blog.penguins-on-hudson.com/2007/10/06/red-box/</guid>
		<description><![CDATA[ I finally built a red box, not the phone phreak device that generates coin tones for pay phones, but rather a Linux PBX which gives me the power and flexibility of a commercial grade phone system at a fraction of the cost. I call it a red box because the primary VoIP number I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=24&subd=codefix&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://codefix.files.wordpress.com/2007/10/copper-float.png" title="Red Box"><img src="http://codefix.files.wordpress.com/2007/10/copper-float.thumbnail.png" alt="Red Box" align="right" border="0" /></a> I finally built a red box, not the phone <a href="http://en.wikipedia.org/wiki/Red_box_%28phreaking%29">phreak device</a> that generates coin tones for pay phones, but rather a <a href="http://en.wikipedia.org/wiki/Asterisk_%28PBX%29">Linux PBX</a> which gives me the power and flexibility of a commercial grade phone system at a fraction of the cost. I call it a red box because the primary <a href="http://en.wikipedia.org/wiki/VoIP">VoIP</a> number I chose suggests <sup><a href="#ref1" name="refref1">[1]</a></sup>June 20, 1963&#8211; the day the “<a href="http://en.wikipedia.org/wiki/Red_telephone">red telephone</a>” went live between Washington and Moscow. Once I painted the side panels a nice, shiny red, I decided that in keeping with the metallic network naming I use (cobalt, tungsten, strontium, etc.) the best name for my new PBX would be &#8216;copper&#8217;.<span id="more-24"></span></p>
<p>After I explained what a PBX is, my neighbor asked me, “Why do you need a $50,000 phone system?” A big factor is that it doesn&#8217;t cost $50,000 with Open Source software: I purchased $200 in <a href="http://newegg.com">computer parts</a>, a $50 <a href="http://www.voipsupply.com/product_info.php?products_id=518&amp;searchid=406406">Grandstream GS-386</a> analog adapter, and a $275 <a href="http://www.voipsupply.com/product_info.php?products_id=1007&amp;searchid=406405">Aastra 480i CT</a>. My total hardware cost for a working PBX was about $525. Add in the cost of new VoIP accounts, transferring numbers, etc. and I spent about 10% of the cost of even a low end <a href="http://www.virtualpbx.com/support/tutorials/standard-pbx/standard-pbx-costs.asp">commercial PBX</a>.</p>
<p>Fortunately, low end features are not what the Linux PBX offers. The possibilities of Asterisk, perhaps the prime component of a Linux PBX, are limitless because the Open Source license allows any developer the freedom to modify the software as needed. Practically speaking, this means that mature Open Source projects tend to do all the things the users want.</p>
<p>For my PBX, I wanted all the features I grew accustomed to as a Vonage user&#8211; call waiting, forwarding, ring groups, voice mail via phone, web, &amp; e-mail, etc.&#8211; but I also wanted one high end feature not normally available without a costly PBX: Direct Inward Dialing.</p>
<p><a href="http://en.wikipedia.org/wiki/Direct_Inward_Dialing">Direct Inward Dialing</a> (DID) is a feature which allows virtual phone numbers to be routed directly to extensions while using shared trunks (phone lines). DID has clear advantages when one considers that VoIP lines usually cost $15-$30 per month while auxiliary numbers are only $2-$5 per month. Dedicated fax numbers, home/work numbers, listed/unlisted numbers, even toll free numbers all become reasonable options.</p>
<p>By far the best part of a Linux PBX is the ability to work around problems. I&#8217;m using <a href="http://broadvoice.com">Broadvoice</a> as a primary VoIP provider, in conjunction with <a href="http://callwithus.com">CallWithUs</a> for overflow, backup, and cheap rates. The inbound calls come through Broadvoice; unfortunately all calls are routed through  the same DID, which is to say that all inbound calls appear to be placed to the same phone number. With a bit of research and experimentation, I was able to use the distinctive ring feature to create my own DID and route the calls as I needed. Open Source to the rescue!</p>
<ol>
<li>I dumped the number when I <a href="http://blog.penguins-on-hudson.com/2008/09/19/three-things-to-avoid-in-a-voip-provider/">got smart</a>;<br />
it was 206-1963 (20.6.1963). <b><a href="#refref1" name="ref1">^</a></b></li>
</ol>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codefix.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codefix.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codefix.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codefix.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codefix.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codefix.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codefix.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codefix.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codefix.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codefix.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codefix.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codefix.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=24&subd=codefix&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codefix.wordpress.com/2007/10/06/red-box/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/932fa462763c5b3be2e55e2bb2053999?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">codefix</media:title>
		</media:content>

		<media:content url="http://codefix.files.wordpress.com/2007/10/copper-float.thumbnail.png" medium="image">
			<media:title type="html">Red Box</media:title>
		</media:content>
	</item>
		<item>
		<title>Voodoo Programming</title>
		<link>http://codefix.wordpress.com/2007/09/16/voodoo-programming/</link>
		<comments>http://codefix.wordpress.com/2007/09/16/voodoo-programming/#comments</comments>
		<pubDate>Sun, 16 Sep 2007 17:45:17 +0000</pubDate>
		<dc:creator>Garrison</dc:creator>
				<category><![CDATA[Essays]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://blog.penguins-on-hudson.com/2007/09/16/voodoo-programming/</guid>
		<description><![CDATA[One of the reasons I’m a consultant is because I love to solve problems; this does not mean, however, that I enjoy all the problems I solve, nor that the pursuit is always rewarding in itself. This week I got stuck in a mind-bender that had all the satisfying crunch of a soggy pretzel.
I was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=22&subd=codefix&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of the reasons I’m a consultant is because I love to solve problems; this does not mean, however, that I enjoy all the problems I solve, nor that the pursuit is always rewarding in itself. This week I got stuck in a mind-bender that had all the satisfying crunch of a soggy pretzel.<span id="more-22"></span></p>
<p style="margin-bottom:0;">I was writing code to produce a simple label in PDF format. The code isn’t tricky, in fact, it’s a simplified version of what I use to generate invoices. For the label project I used <a href="http://www.inkscape.org/">Inkscape</a> to create a dashed cut-out box (think coupon) measuring 11mm high and 95mm wide, along with some ancillary text; I saved this as label.pdf. The code I wrote accepted two lines of text from a web form and wrote these inside the cut-out box using <a href="http://pdfapi2.sourceforge.net/">PDF::API2</a> and sent the resulting PDF to the browser. The result should have been a two line label ready to be printed and cut out. It wasn’t.</p>
<p style="margin-bottom:0;">Despite careful calculations, the text missed. I double checked my math to no avail. I did <a href="http://catb.org/jargon/html/V/voodoo-programming.html">voodoo</a>, <a href="http://catb.org/jargon/html/C/casting-the-runes.html">cast runes</a>, and <a href="http://catb.org/jargon/html/W/wave-a-dead-chicken.html">waved a dead chicken</a>, with surprisingly little success. Once I had some success by saving the Inkscape file to postscript (*.ps), then converting it with <a href="http://www.scottnesbitt.net/techdocs/ps2pdf.html">ps2pdf</a>; it only worked the one time, ditto with encapsulated postscript (*.eps). After wasting most of a day in this fashion, I finally succeeded in getting my text to print in somewhat reliable positions, but only upside down and reversed&#8211; note that I don’t mean reversed from right to left, the individual characters were reversed. Fortunately, this behavior should have been impossible, which meant I was close to solving my problem.</p>
<p style="margin-bottom:0;">As used here, the word “solving” has what may be a non-intuitive use. To “solve” this problem I really only needed to avoid it, which is to say that this problem was an impediment to creating a PDF and removing said impediment was the only requirement of a successful solution, understanding the cause was optional. A few quick tests proved that the source of my woes was Inkscape’s PDF and (E)PS output. I recreated my template with <a href="http://www.scribus.net/">Scribus</a> and it <a href="http://codefix.net/label">worked flawlessly</a>. I still don’t know with certainty that the fault lies with Inkscape and not PDF::API2, and I don’t really want to know that much about PDF internals. Inkscape is still my preferred vector drawing program just as Scribus is my preferred layout program, it just happens that for creating PDF templates for use with PDF::API2, Scribus is the path of least resistance.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codefix.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codefix.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codefix.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codefix.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codefix.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codefix.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codefix.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codefix.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codefix.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codefix.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codefix.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codefix.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=22&subd=codefix&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codefix.wordpress.com/2007/09/16/voodoo-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/932fa462763c5b3be2e55e2bb2053999?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">codefix</media:title>
		</media:content>
	</item>
		<item>
		<title>Music on the Go (part 2)</title>
		<link>http://codefix.wordpress.com/2007/07/09/music-on-the-go-part-2/</link>
		<comments>http://codefix.wordpress.com/2007/07/09/music-on-the-go-part-2/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 14:20:36 +0000</pubDate>
		<dc:creator>Garrison</dc:creator>
				<category><![CDATA[Essays]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://blog.penguins-on-hudson.com/2007/07/09/music-on-the-go-part-2/</guid>
		<description><![CDATA[The first Ogg-friendly music player I purchased was a Neuros II;  this was late in 2004 and hardware support was fairly new as the Vorbis codec didn&#8217;t reach 1.0 until 2002. Then, as now, the best place for information on Ogg-friendly devices was XiphWiki. I recall being quite impresssed with Neuros&#8217; willingness to open [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=16&subd=codefix&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The first <a href="http://en.wikipedia.org/wiki/Ogg">Ogg</a>-friendly music player I purchased was a Neuros II; <a href="http://codefix.files.wordpress.com/2007/07/3oggplayers.png" title="Three Ogg Players"><img src="http://codefix.files.wordpress.com/2007/07/3oggplayers.png" alt="Three Ogg Players" align="right" border="0" /></a> this was late in 2004 and hardware support was fairly new as the <a href="http://en.wikipedia.org/wiki/Vorbis">Vorbis</a> codec didn&#8217;t reach 1.0 until 2002. Then, as now, the best place for information on Ogg-friendly devices was <a href="http://wiki.xiph.org/VorbisHardware">XiphWiki</a>. I recall being quite impresssed with <a href="http://www.neurostechnology.com/">Neuros&#8217;</a> willingness to open up the device specifications and embrace the Open Source community, unfortunately the device suffered from a number of design flaws that no amount of firmware hacking could ever resolve. Ultimately the combination of charging problems, a design plagued by awkwardness and bulk, and the manufacturer&#8217;s shift to focus on newer devices doomed the Neuros II to my technology junk drawer.<span id="more-16"></span></p>
<p>The next portable Ogg player I bought, <a href="http://www.iriver.com/product/p_detail.asp?pidx=34">iRiver&#8217;s IFP 899</a>, had a number of laudable features. I like the small size since I generally want to listen to, rather than look at my music player, so it&#8217;s usually stuck in a pocket. Not surprisingly, most of its bulk was to house the power supply: a single AA battery. I tried both rechargeable and disposable AA batteries but my cheap chinese rechargeables perform better in high drain devices. The disposables worked nicely, each battery was good for about 35 hours of playtime. Ogg support was limited (96-224kb/s) and a firmware update was required to mount the device as USB storage. The biggest downer was that the UMS firmware doesn&#8217;t sort the files (or sorts by inode, if you prefer) so the tracks are played in the order by which they are transferred to the device. There are a few ways to work around this, but in the end it remains an annoying flaw and joins the other outcasts in my junk drawer.</p>
<p>The new product I referred to in <a href="http://blog.penguins-on-hudson.com/2007/06/25/music-on-the-go-part-one/">part one</a> is Cowon&#8217;s <a href="http://www.cowonamerica.com/products/iaudio/u3/">iAUDIO U3</a>. Like the other two players, the U3 uses flash storage, but it sports a full color screen and even plays tiny little pointless movies <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  It has an internal rechargeable battery but some checking has indicated that replacement does not require sending the unit back to the manufacturer. The U3, I&#8217;m happy to report, seems to meet or exceed my <a href="http://blog.penguins-on-hudson.com/2007/06/25/music-on-the-go-part-one/">four basic requirements</a> for a portable audio player, and I haven&#8217;t even flashed the firmware.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codefix.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codefix.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codefix.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codefix.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codefix.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codefix.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codefix.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codefix.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codefix.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codefix.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codefix.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codefix.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=16&subd=codefix&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codefix.wordpress.com/2007/07/09/music-on-the-go-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/932fa462763c5b3be2e55e2bb2053999?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">codefix</media:title>
		</media:content>

		<media:content url="http://codefix.files.wordpress.com/2007/07/3oggplayers.png" medium="image">
			<media:title type="html">Three Ogg Players</media:title>
		</media:content>
	</item>
		<item>
		<title>Music on the Go (part one)</title>
		<link>http://codefix.wordpress.com/2007/06/25/music-on-the-go-part-one/</link>
		<comments>http://codefix.wordpress.com/2007/06/25/music-on-the-go-part-one/#comments</comments>
		<pubDate>Mon, 25 Jun 2007 05:30:05 +0000</pubDate>
		<dc:creator>Garrison</dc:creator>
				<category><![CDATA[Essays]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://blog.penguins-on-hudson.com/2007/06/25/music-on-the-go-part-one/</guid>
		<description><![CDATA[I have music on my mind. I&#8217;m listening to Voodoo Child (ten point bonus if you know how this relates to Doctor Who) and thinking about my next portable music player. Like most geeks, the first question I ask about any digital music device is, &#8220;does it play OGG?&#8221;
Generally superior to MP3,  Ogg Vorbis [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=13&subd=codefix&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I have music on my mind. I&#8217;m listening to <a href="http://en.wikipedia.org/wiki/Voodoo_Child_%28song%29">Voodoo Child</a> (ten point bonus if you know how this relates to <a href="http://en.wikipedia.org/wiki/Doctor_Who">Doctor Who</a>) and thinking about my next portable music player. Like most geeks, the first question I ask about any digital music device is, &#8220;does it play OGG?&#8221;</p>
<p>Generally superior to MP3,  <a href="http://en.wikipedia.org/wiki/Vorbis">Ogg Vorbis</a> is a must for any <a href="http://en.wikipedia.org/wiki/Lossy_compression">lossy</a> digital music collection, but it&#8217;s not the only feature I look for in a music player. I use four basic criteria to judge music players:<span id="more-13"></span></p>
<p><strong>Ogg Support</strong><br />
The level of Ogg support varies quite a bit between vendors, so I always check reviews and the <a href="http://wiki.xiph.org/index.php/PortablePlayers">XiphWiki list</a> of portable players. Any product noted for complete Ogg support gets a second look. Be wary of vendors with unenthusiastic Ogg support.</p>
<p><strong>Flash Media</strong><br />
I prefer flash to hard drive storage; I can be rough on my toys so flash media&#8217;s lack of moving parts gives it a leg up in durability. There is a trade off in storage capacity, but I find one or two <a href="http://en.wikipedia.org/wiki/GiB">gibibytes</a> sufficient. To score full marks here the product also needs fast USB transfers.</p>
<p><strong>User Replaceable Battery</strong><br />
The way I buy electronics, battery replacement isn&#8217;t usually an issue, but I firmly believe that any product intended to last more than a year or two ought to have batteries replaceable by the user. Forcing us to send our toys back to the factory for such minutiae is a crime punishable by poor sales.</p>
<p><strong>Design</strong><br />
A bit of an optimist, I&#8217;m still amazed at the appallingly stupid design choices that continue to show up in products, I categorize both subjective and objective judgments here, ranging from the merely unpleasant to outright unusable.</p>
<p><a href="http://blog.penguins-on-hudson.com/2007/07/09/music-on-the-go-part-2/">Part two</a> of this article will apply these criteria to music devices I have owned, as well as a new product on it&#8217;s way as I write this.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codefix.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codefix.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codefix.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codefix.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codefix.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codefix.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codefix.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codefix.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codefix.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codefix.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codefix.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codefix.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=13&subd=codefix&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codefix.wordpress.com/2007/06/25/music-on-the-go-part-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/932fa462763c5b3be2e55e2bb2053999?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">codefix</media:title>
		</media:content>
	</item>
		<item>
		<title>A Linux Success Story</title>
		<link>http://codefix.wordpress.com/2007/05/29/a-linux-success-story/</link>
		<comments>http://codefix.wordpress.com/2007/05/29/a-linux-success-story/#comments</comments>
		<pubDate>Tue, 29 May 2007 05:28:32 +0000</pubDate>
		<dc:creator>Garrison</dc:creator>
				<category><![CDATA[Case Study]]></category>
		<category><![CDATA[Essays]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.penguins-on-hudson.com/2007/05/29/a-linux-success-story/</guid>
		<description><![CDATA[I&#8217;m working on a marketing letter, and I&#8217;ll be using one of my favorite success stories which is about Russ, owner of a small Internet service provider (ISP) providing web hosting, e-mail, and related services to his local community.
Once upon a time, I would listen to Russ complain of problems with his proprietary e-mail server, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=9&subd=codefix&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m working on a marketing letter, and I&#8217;ll be using one of my favorite success stories which is about Russ, owner of a small Internet service provider (ISP) providing web hosting, e-mail, and related services to his local community.</p>
<p>Once upon a time, I would listen to Russ complain of problems with his proprietary e-mail server, then I would suggest he let me set up a Linux server running open source software, and Russ would sigh, “Yeah, I really should&#8230;” but he could usually get his e-mail running again without too much help and everything would continue as before.<span id="more-9"></span></p>
<p>As time went on, Russ&#8217; business grew and more customers relied upon his e-mail server; moreover, the spam, viruses, and e-mail scams multiplied even faster than his customers. Eventually the day came when Russ&#8217; e-mail server crashed and he could not repair it. The server was down, angry customers were calling, and the company that sold the e-mail software to Russ told him, “We won&#8217;t fix it, You need to purchase the latest version.” They had him over a barrel: the latest release of their  software sells for $1,795.50 and requires a more powerful computer to run smoothly. Russ called me and asked, “How fast can you set up a Linux server?” We set one up the next day and it ran for more than a year before Russ chose to upgrade the computer hardware. The current server is almost a year and a half old, has about five hundred users, easily filters spam attacks up to over 80 messages per minute, and still has plenty of room for growth. For over two years Russ has enjoyed happy customers, he eventually had us set up Linux servers to handle e-mail, web page hosting, DNS, file sharing, and some custom applications. Russ hired Codefix Consulting to migrate him to the Linux platform, and I make sure his servers are up to date, but software license fees and corporate profiteering are a distant memory. Open source software is free and it does what it&#8217;s supposed to do.<br />
<a href="http://codefix.files.wordpress.com/2007/05/spam.png" title="Spam"><img src="http://codefix.files.wordpress.com/2007/05/spam.png" alt="Spam" border="0" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codefix.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codefix.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codefix.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codefix.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codefix.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codefix.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codefix.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codefix.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codefix.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codefix.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codefix.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codefix.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=9&subd=codefix&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codefix.wordpress.com/2007/05/29/a-linux-success-story/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/932fa462763c5b3be2e55e2bb2053999?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">codefix</media:title>
		</media:content>

		<media:content url="http://codefix.files.wordpress.com/2007/05/spam.png" medium="image">
			<media:title type="html">Spam</media:title>
		</media:content>
	</item>
		<item>
		<title>Digital Photography with Linux</title>
		<link>http://codefix.wordpress.com/2007/05/17/digital-photography-with-linux/</link>
		<comments>http://codefix.wordpress.com/2007/05/17/digital-photography-with-linux/#comments</comments>
		<pubDate>Thu, 17 May 2007 20:49:12 +0000</pubDate>
		<dc:creator>Garrison</dc:creator>
				<category><![CDATA[Essays]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://blog.penguins-on-hudson.com/2007/05/17/digital-photography-with-linux/</guid>
		<description><![CDATA[ During the summer of 1982, I borrowed a 35mm camera from my father and enrolled in a photography workshop; I took surprisingly decent photographs with that old Argus C3 and found that I very much enjoyed working in the darkroom as well. Still the oldest camera I own, the Argus has long been retired [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=6&subd=codefix&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://codefix.files.wordpress.com/2007/05/crw_3931.jpg" title="Argus"><img src="http://codefix.files.wordpress.com/2007/05/crw_3931.jpg?w=300&#038;h=200" alt="Argus" align="right" border="0" height="200" width="300" /></a> During the summer of 1982, I borrowed a 35mm camera from my father and enrolled in a photography workshop; I took surprisingly decent photographs with that old <a href="http://en.wikipedia.org/wiki/Argus_C3">Argus C3</a> and found that I very much enjoyed working in the darkroom as well. Still the oldest camera I own, the Argus has long been retired to my camera collection in favor newer models, most recently a <a href="http://www.dpreview.com/reviews/canoneos350d/">Canon Digital Rebel XT</a>. Today I am writing from the perspective of one fortunate enough to enjoy the intersection of two interests.<span id="more-6"></span></p>
<p>Linux is a great platform for digital photography with many great software tools, but in the interest of brevity I will only expound my own workflow. I use Canon digital cameras, so my “film” is a type II compact flash card; thanks to the Linux kernel’s strong USB support and some other Linux mojo (<a href="http://en.wikipedia.org/wiki/HAL_%28software%29">hal</a>, <a href="http://en.wikipedia.org/wiki/Udev">udev</a>), I simply plug in my card reader and an EOS_DIGITAL folder appears on my desktop while Gnome asks if I would like to import some photos. I click in the affirmative and it launches <a href="http://gthumb.sourceforge.net/">gThumb</a>, a wonderful tool for importing images.</p>
<p><a href="http://gthumb.sourceforge.net/">gThumb</a> is billed as an image viewer, but what sets it apart from the image viewer crowd is its rich set of features for digital photos: my favorite is the ability to select all photos and have them automatically rotated to the proper orientation using the <a href="http://en.wikipedia.org/wiki/EXIF">EXIF</a> data stored in the image by the camera. <a href="http://gthumb.sourceforge.net/">gThumb</a> even manages this without re-compressing JPEG images, meaning that there is no loss of quality whatsoever.</p>
<p><a href="http://gthumb.sourceforge.net/">gThumb</a> sports other useful features for photographers, but if I need to touch up any images I prefer to use the <a href="http://www.gimp.org/">GIMP</a> (Gnu Image Manipulation Program). The <a href="http://www.gimp.org/">GIMP</a> is the Open Source answer to Adobe’s Photoshop, and I feel surpasses the latter in every way. More often, I just want to resize and adjust the white balance of all the images I’m importing and using a GUI for such a task would be repetitive and boring: <a href="http://www.imagemagick.org/">ImageMagick</a> is a powerful set of image manipulation libraries whose interfaces include a <a href="http://www.imagemagick.org/script/perl-magick.php">Perl API</a> and several command line utilities. Instead of the GUI, I simply type</p>
<p><code>mogrify -normalize -resize 800x800 *.jpg</code></p>
<p>The result will be a set of 800&#215;533 or 533&#215;800 (The Rebel has a 3:2 ratio) JPEG images with auto white balance applied. The images are now ready to be uploaded to my web photo gallery, but that’s a topic for another day. Many of my photographs are on display at <a href="http://nonegatives.com/">http://nonegatives.com/</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codefix.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codefix.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codefix.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codefix.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codefix.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codefix.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codefix.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codefix.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codefix.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codefix.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codefix.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codefix.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=6&subd=codefix&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codefix.wordpress.com/2007/05/17/digital-photography-with-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/932fa462763c5b3be2e55e2bb2053999?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">codefix</media:title>
		</media:content>

		<media:content url="http://codefix.files.wordpress.com/2007/05/crw_3931.jpg" medium="image">
			<media:title type="html">Argus</media:title>
		</media:content>
	</item>
		<item>
		<title>Happy Birthday, Codefix</title>
		<link>http://codefix.wordpress.com/2006/08/22/hello-world/</link>
		<comments>http://codefix.wordpress.com/2006/08/22/hello-world/#comments</comments>
		<pubDate>Tue, 22 Aug 2006 00:00:20 +0000</pubDate>
		<dc:creator>Garrison</dc:creator>
				<category><![CDATA[Essays]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Today is sort of a birthday for Codefix: I first registered the codefix.net domain on August 22, 2003&#8211; eight days after the Great North American Blackout; however, wondering how people lived without electricity and meeting my Brooklyn neighbors weren&#8217;t the only things going on back then.  Work as a Linux consultant was just starting [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=1&subd=codefix&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Today is sort of a birthday for Codefix: I first registered the codefix.net domain on August 22, 2003&#8211; eight days after the <a href="http://en.wikipedia.org/wiki/2003_North_America_blackout">Great North American Blackout</a>; however, wondering how people lived without electricity and meeting my Brooklyn neighbors weren&#8217;t the only things going on back then.  Work as a Linux consultant was just starting to become steady, but incorporation was more than a year away and I was still <a href="http://nonegatives.com/">moonlighting as a photographer</a>.Later that year, <a href="http://www.redhat.com/">Red Hat</a> made waves by announcing that they would discontinue support for their (free as in beer) non-enterprise Linux distributions.  Fortunately Open Source projects are particularly well suited for stepping in when another has dropped the torch; in this case, there were even a couple new contenders: <a href="http://fedora.redhat.com/">Fedora</a> and <a href="http://www.gentoo.org/">Gentoo</a>.  Fedora was Red Hat&#8217;s consolation prize to the Open Source community and early versions were not impressive; Gentoo, on the other hand, seemed like a genuine revolution in the Linux world.<span id="more-1"></span><br />
Gentoo&#8217;s appeal stemmed partly from its ability to attract an eclectic user base consisting of kernel-tweaking über geeks and herd-loving newbies both; the most laudable elements of the Gentoo experience were well written, clear documentation, actively helpful user forums, and Portage.</p>
<p>Portage is what pushed Gentoo from laudable to revolutionary.  Inspired by BSD Ports, Portage is a system for managing software packages much like Debian&#8217;s apt/dpkg or Red Hat&#8217;s rpm.  The aim of Portage was to be as comprehensive and easy to use as other systems, but to have the power and flexibility of compiling from source code; in fact, compiling from source is exactly what Portage does.</p>
<p>Unfortunately, Open Source developers are all too often better at writing code than leading free software projects, and over time Gentoo has alienated many members of the community and seems determined to become an obscure curiosity rather than the Linux meta-distribution as it was intended.<br />
These days there&#8217;s another new kid on the block: <a href="http://www.ubuntu.com/">Ubuntu Linux</a>.  Ubuntu is also well documented and has active user forums, but it isn&#8217;t revolutionary; quite the opposite, Ubuntu is a direct descendent of <a href="http://www.debian.org/">Debian</a>, one of the oldest Linux distributions with a reputation for security and stability.  Ubuntu packages are a bit more cutting edge, but Ubuntu 6.06 (aka Dapper Drake) is backed by by an extended life cycle, meaning that <a href="http://www.canonical.com/">Canonical</a> has promised to keep bug fixes and security patches flowing to Dapper for five years.  Where Codefix Linux deployments were once dominated by Gentoo and Red Hat, one now sees Debian and Ubuntu; nonetheless, there is consistency here, as Mason Cooley once put it, &#8220;I change my opinions often, but not my way of thinking.&#8221;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codefix.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codefix.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codefix.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codefix.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codefix.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codefix.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codefix.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codefix.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codefix.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codefix.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codefix.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codefix.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=1&subd=codefix&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codefix.wordpress.com/2006/08/22/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/932fa462763c5b3be2e55e2bb2053999?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">codefix</media:title>
		</media:content>
	</item>
		<item>
		<title>The Ultimate Backpack</title>
		<link>http://codefix.wordpress.com/2006/07/07/the-ultimate-backpack/</link>
		<comments>http://codefix.wordpress.com/2006/07/07/the-ultimate-backpack/#comments</comments>
		<pubDate>Fri, 07 Jul 2006 00:00:39 +0000</pubDate>
		<dc:creator>Garrison</dc:creator>
				<category><![CDATA[Essays]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://blog.penguins-on-hudson.com/2006/07/07/the-ultimate-backpack/</guid>
		<description><![CDATA[A funny thing happened in Chicago, I was there for YAPC:NA and avoided having to check luggage at the airport by cramming everything I would need into a garden variety nylon backpack.  On the last day of the conference, I noticed that my backpack had torn at the seam near it&#8217;s laptop compartment.  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=3&subd=codefix&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A funny thing happened in Chicago, I was there for<a href="http://www.yapcchicago.org/"> YAPC:NA</a> and avoided having to check luggage at the airport by cramming everything I would need into a garden variety nylon backpack.  On the last day of the conference, I noticed that my backpack had torn at the seam near it&#8217;s laptop compartment.  Noting the irony of circumstance (Perl is known as &#8220;the duct tape of the Internet&#8221;), I went off in search of some duct tape to keep my newly ventilated bag together.  Naturally the duct tape worked, my makeshift repair even survived an airport search, but I still needed a new bag. (NB: Individually wrapped <a href="http://www.lactaid.com/">Lactaid</a> pills can set off metal detectors).<span id="more-3"></span></p>
<p><img src="http://codefix.net/img/essays/oakley_bag.jpg" alt="Kitchen Sink Pack" align="left" height="242" width="226" /></p>
<p>I had decided that I was willing to pay for quality and after much online searching I decided the bag I liked best was Oakley&#8217;s <a href="http://oakley.com/o/o3088d">Kitchen Sink Pak</a>. It&#8217;s 3.8 lbs of pockets, attachment points, tie downs, and just plain cool; so cool, in fact, that everybody was out of stock.</p>
<p>While trying to locate a Kitchen Sink pack, I began to consider alternatives, chiefly the <a href="http://www.booqbags.com/Detail.bok?no=456">Python XM</a> from Booq.  I already own a<br />
<a href="http://www.booqbags.com/Detail.bok?no=98">Vyper</a> laptop sleeve, so I started comparing:  although slightly different dimensions, both bags are approximately the same size and weight, (Python ~ +0.2 lbs, -0.5&#8243;) and the Python is only about $15 more.</p>
<p><img src="http://codefix.net/img/essays/PythonXM.jpg" alt="Python XM" align="right" height="255" width="260" /></p>
<p>Ultimately the choice came down to durability: which bag could endure the abuse to which I planned to subject it? Without physical access to the bags I decided the easiest durability test would be to compare the warranties.  To my surprise, Oakley&#8217;s $175 pack comes with a mere 90 day warranty.  That&#8217;s right, they guarantee that their quality bag will get you through the next three months.  So what does the extra $15 buy from Booq? A lifetime repair warranty.</p>
<p>There&#8217;s nothing like a company that&#8217;s willing to stand behind their products. As much as I like the bells and whistles on the Kitchen Sink Pack, I truly believe that Booq makes the better bag.  Judging by their warranty, Oakley think so as well.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codefix.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codefix.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codefix.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codefix.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codefix.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codefix.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codefix.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codefix.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codefix.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codefix.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codefix.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codefix.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=3&subd=codefix&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codefix.wordpress.com/2006/07/07/the-ultimate-backpack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/932fa462763c5b3be2e55e2bb2053999?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">codefix</media:title>
		</media:content>

		<media:content url="http://codefix.net/img/essays/oakley_bag.jpg" medium="image">
			<media:title type="html">Kitchen Sink Pack</media:title>
		</media:content>

		<media:content url="http://codefix.net/img/essays/PythonXM.jpg" medium="image">
			<media:title type="html">Python XM</media:title>
		</media:content>
	</item>
		<item>
		<title>Vim, lately?</title>
		<link>http://codefix.wordpress.com/2006/06/05/vim-lately/</link>
		<comments>http://codefix.wordpress.com/2006/06/05/vim-lately/#comments</comments>
		<pubDate>Mon, 05 Jun 2006 00:00:10 +0000</pubDate>
		<dc:creator>Garrison</dc:creator>
				<category><![CDATA[Essays]]></category>

		<guid isPermaLink="false">http://blog.penguins-on-hudson.com/2006/06/05/vim-lately/</guid>
		<description><![CDATA[As I write this, Vim 7 is making waves as the next great thing in Open Source software; although it&#8217;s not yet available in most package management systems.  Fortunately, Vim is easy to compile from source.  I used the following to compile the source on my Ubuntu laptop:
sudo apt-get build-dep vim-gtk
sudo aptitude install [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=4&subd=codefix&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>As I write this, Vim 7 is making waves as the next great thing in Open Source software; although it&#8217;s not yet available in most package management systems.  Fortunately, Vim is easy to compile from source.  I used the following to compile the source on my Ubuntu laptop:</p>
<p><code>sudo apt-get build-dep vim-gtk<br />
sudo aptitude install xlibs-dev<br />
svn co https://svn.sourceforge.net/svnroot/vim/vim7<br />
cd vim7<br />
./configure --enable-gui --enable-perlinterp<br />
--with-compiledby='Codefix Consulting &lt;garrison@codefix.net&gt;'<br />
make &amp;&amp; sudo make install<br />
</code><span id="more-4"></span><br />
IMHO, Vim 7 sports two features that make it an urgent necessity worth compiling.  First is tab support.  Vim has traditionally had clumsy methods for editing multiple documents, either serially or by dividing the screen into smaller windows.  With tabs (vim -p *) you&#8217;ll see a row of tabs at the top of the screen, one per file, switching tabs is as easy as point and click or &#8216;gt&#8217; in command mode.</p>
<p>The other feature worth getting to know is spell check.  Vim 7 casts off the aspell/ispell bindings in favor of a built in spell checker, activated with &#8216;:set spell&#8217;.  Use the following to work with the spell check in command mode:</p>
<p><code>]s          next mispelling<br />
[s          previous mispelling<br />
z=          spelling suggestions<br />
zg          add word to dictionary<br />
zug         remove word from dictionary<br />
</code><br />
Vim has many great features and I recommend O&#8217;Reilly&#8217;s &#8220;<a href="http://www.oreilly.com/catalog/vi6/">Learning the vi Editor</a>&#8221; if you&#8217;re interested in discovering more.  Because the sixth edition only covers Vim through version 5, here are a few commands to get started with folding, a remarkable feature introduced in Vim 6:</p>
<p><code>zf          fold selected text<br />
zf%         fold here to closing brace<br />
zz          I like to map this to zf%<br />
zo          open this fold<br />
</code></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codefix.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codefix.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codefix.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codefix.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codefix.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codefix.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codefix.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codefix.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codefix.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codefix.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codefix.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codefix.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codefix.wordpress.com&blog=1031461&post=4&subd=codefix&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://codefix.wordpress.com/2006/06/05/vim-lately/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/932fa462763c5b3be2e55e2bb2053999?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">codefix</media:title>
		</media:content>
	</item>
	</channel>
</rss>