<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Musings of an Anonymous Geek &#187; Productivity</title>
	<atom:link href="http://www.protocolostomy.com/category/productivity/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.protocolostomy.com</link>
	<description>Made with only the finest 1's and 0's</description>
	<lastBuildDate>Thu, 03 Nov 2011 04:08:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Nose and Coverage.py Reporting in Hudson</title>
		<link>http://www.protocolostomy.com/2010/12/02/nose-and-coverage-py-reporting-in-hudson/</link>
		<comments>http://www.protocolostomy.com/2010/12/02/nose-and-coverage-py-reporting-in-hudson/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 14:21:39 +0000</pubDate>
		<dc:creator>bkjones</dc:creator>
				<category><![CDATA[Big Ideas]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.protocolostomy.com/?p=851</guid>
		<description><![CDATA[I like Hudson. Sure, it&#8217;s written in Java, but let&#8217;s be honest, it kinda rocks. If you&#8217;re a Java developer, it&#8217;s admittedly worlds better because it integrates with seemingly every Java development tool out there, but we can do some cool things in Python too, and I thought I&#8217;d share a really simple setup to [...]]]></description>
			<content:encoded><![CDATA[<p>I like Hudson. Sure, it&#8217;s written in Java, but let&#8217;s be honest, it kinda rocks. If you&#8217;re a Java developer, it&#8217;s admittedly worlds better because it integrates with seemingly every Java development tool out there, but we can do some cool things in Python too, and I thought I&#8217;d share a really simple setup to get coverage.py&#8217;s HTML reports and nose&#8217;s xUnit-style reports into your Hudson interface.</p>
<p>I&#8217;m going to assume that you know what these tools are and have them installed. I&#8217;m working with a local install of Hudson for this demo, but it&#8217;s worth noting that I&#8217;ve come to find a local install of Hudson pretty useful, and it doesn&#8217;t really eat up too much CPU (so far). More on that in another post. Let&#8217;s get moving.</p>
<h3>Process Overview</h3>
<p>As mentioned, this process is really pretty easy. I&#8217;m only documenting it because I haven&#8217;t seen it documented before, and someone else might find it handy. So here it is in a nutshell:</p>
<ul>
<li>Install the <a href="http://wiki.hudson-ci.org/display/HUDSON/HTML+Publisher+Plugin">HTML Publisher</a> plugin</li>
<li>Create or alter a configuration for a &#8220;free-style software project&#8221;</li>
<li>Add a Build Step using the &#8216;Execute Shell&#8217; option, and enter a &#8216;nosetests&#8217; command, using its built-in support for xUnit-style test reports and coverage.py</li>
<li>Check the &#8216;Publish HTML Report&#8217;, and enter the information required to make Hudson find the coverage.py HTML report.</li>
<li>Build, and enjoy.</li>
</ul>
<h3>Install The HTMLReport Plugin</h3>
<p>From the dashboard, click &#8216;Manage Hudson&#8217;, and then on &#8216;Manage Plugins&#8217;. Click on the &#8216;Available&#8217; tab to see the plugins available for installation. It&#8217;s a huge list, so I generally just hit &#8216;/&#8217; in Firefox or cmd-F in Chrome and search for &#8216;HTML Publisher Plugin&#8217;. Check the box, go to the bottom, and click &#8216;Install&#8217;. Hudson will let you know when it&#8217;s done installing, at which time you need to restart Hudson.</p>
<div id="attachment_855" class="wp-caption alignnone" style="width: 310px"><a href="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-11.01-AM.png"><img class="size-medium wp-image-855 " title="HTML Publisher Plugin" src="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-11.01-AM-300x164.png" alt="Install tab" width="300" height="164" /></a><p class="wp-caption-text">HTML Publisher Plugin: Check!</p></div>
<h3><strong>Configure a &#8216;free-style software project&#8217;</strong></h3>
<p>If you have an existing project already, click on it and then click the &#8216;Configure&#8217; link in the left column. Otherwise, click on &#8216;New Job&#8217;, and choose &#8216;Build a free-style software project&#8217; from the list of options. Give the job a name, and click &#8216;OK&#8217;.</p>
<div id="attachment_856" class="wp-caption alignnone" style="width: 310px"><a href="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-17.13-AM.png"><img class="size-medium wp-image-856 " title="build-project" src="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-17.13-AM-300x255.png" alt="Build a free-style software project." width="300" height="255" /></a><p class="wp-caption-text">You have to give the job a name to enable the &#39;ok&#39; button <img src='http://www.protocolostomy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></div>
<h3>Add a Build Step</h3>
<p>In the configuration screen for the job, which you should now be looking at, scroll down and click the button that says &#8216;Add build step&#8217;, and choose &#8216;Execute shell&#8217; from the resulting menu.</p>
<div id="attachment_857" class="wp-caption alignnone" style="width: 310px"><a href="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-27.18-AM.png"><img class="size-medium wp-image-857" title="add build" src="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-27.18-AM-300x145.png" alt="Add Build Step" width="300" height="145" /></a><p class="wp-caption-text">Execute shell. Mmmmm... shells.</p></div>
<p>This results in a &#8216;Command&#8217; textarea appearing, which is where you type the shell command to run. In that box, type this:</p>
<pre class="brush: bash; title: ; notranslate">
/usr/local/bin/nosetests --with-xunit --with-coverage --cover-package demo --cover-html -w tests
</pre>
<p>Of course, replace &#8216;demo&#8217; with the name of the package you want covered in your coverage tests to avoid the mess of having coverage.py try to seek out every module used in your entire application.</p>
<p>We&#8217;re telling Nose to generate an xUnit-style report, which by default will be put in the current directory in a file called &#8216;nosetests.xml&#8217;. We&#8217;re also asking for coverage analysis using coverage.py, and requesting an HTML report of the analysis. By default, this is placed in the current directory in &#8216;cover/index.html&#8217;.</p>
<p><a href="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-44.17-AM.png"><img class="alignnone size-full wp-image-864" title="exec shell truncated" src="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-44.17-AM.png" alt="execute shell area" width="423" height="239" /></a></p>
<p>Now we need to set up our reports by telling Hudson we want them, and where to find them.</p>
<h3>Enable JUnit Reports</h3>
<p>In the &#8216;Post-Build Actions&#8217; area at the bottom of the page, check &#8216;Publish JUnit test result report&#8217;, and make it look like this:</p>
<p><a href="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-48.16-AM.png"><img class="alignnone size-full wp-image-866" title="Screen shot 2010-12-02 at ,Dec 2 -48.16 AM" src="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-48.16-AM.png" alt="" width="539" height="125" /></a></p>
<p>The &#8216;**&#8217; is part of the <a href="http://ant.apache.org/manual/Types/fileset.html">Ant Glob Syntax</a>, and stands for the current working directory. Remember that we said earlier nose will publish, by default, to a file called &#8216;nosetests.xml&#8217; in the current working directory.</p>
<p>The current working directory is going to be the Hudson &#8216;workspace&#8217; for that job, linked to in the &#8216;workspace root&#8217; link you see in the above image. It should mostly be a checkout of your source code. Most everything happens relative to the workspace, which is why in my nosetest command you&#8217;ll notice I pass &#8216;-w tests&#8217; to tell nose to look in the &#8216;tests&#8217; subdirectory of the current working directory.</p>
<p>You could stop right here if you don&#8217;t track coverage, just note that these reports don&#8217;t get particularly exciting until you&#8217;ve run a number of builds.</p>
<h3>Enable Coverage Reports</h3>
<p>Just under the JUnit reporting checkbox should be the Publish HTML Reports checkbox. The ordering of things can differ depending on the plugins you have installed, but it should at least still be in the Post-build Actions section of the page.</p>
<p>Check the box, and a form will appear. Make it look like this:</p>
<p><a href="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-58.52-AM.png"><img class="alignnone size-full wp-image-867" title="html report form" src="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-58.52-AM.png" alt="" width="954" height="116" /></a></p>
<p><span style="font-size: 13.3333px;"> </span></p>
<p><span style="font-size: 13.3333px;">By default, coverage.py will create a directory called &#8216;cover&#8217; and put its files in there (one for each covered package, and an index). It puts them in the directory you pass to nose with the &#8216;-w&#8217; flag. If you don&#8217;t use a &#8216;-w&#8217; flag&#8230; I dunno &#8212; I&#8217;d guess it puts it in the directory from where you run nose, in which case the above would become &#8216;**/cover&#8217; or just &#8216;cover&#8217; if this option doesn&#8217;t use Ant Glob Syntax. </span></p>
<h3>Go Check It Out!</h3>
<p>Now that you have everything put together, click on &#8216;Save&#8217;, and run some builds!</p>
<p>On the main page for your job, after you&#8217;ve run a build, you should see a &#8216;Coverage.py Report&#8217; link and a &#8216;Latest Test Result&#8217; link. After multiple builds, you should see a test result &#8216;Trend&#8217; chart on the job&#8217;s main page as well.</p>
<p><a href="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-08.56-AM.png"><img class="alignnone size-full wp-image-870" title="jobpage" src="http://www.protocolostomy.com/wp-content/uploads/2010/12/Screen-shot-2010-12-02-at-Dec-2-08.56-AM-e1291299370205.png" alt="job page" width="800" height="203" /></a></p>
<p>Almost everything on the page is clickable. The trend graph isn&#8217;t too enlightening until multiple builds have run, but I find the coverage.py reports a nice way to see at-a-glance what chunks of code need work. It&#8217;s way nicer than reading the line numbers output on the command line (though I sometimes use those too).</p>
<h3>How &#8217;bout you?</h3>
<p>If you&#8217;ve found other nice tricks in working with Hudson, share! I&#8217;ve been using Hudson for a while now, but that doesn&#8217;t mean I&#8217;m doing anything super cool with it &#8212; it just means I know enough to suspect I could be doing way cooler stuff with it that I haven&#8217;t gotten around to playing with. <img src='http://www.protocolostomy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.protocolostomy.com/2010/12/02/nose-and-coverage-py-reporting-in-hudson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python IDE Frustration</title>
		<link>http://www.protocolostomy.com/2010/05/13/python-ide-frustration/</link>
		<comments>http://www.protocolostomy.com/2010/05/13/python-ide-frustration/#comments</comments>
		<pubDate>Fri, 14 May 2010 02:22:32 +0000</pubDate>
		<dc:creator>bkjones</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.protocolostomy.com/?p=777</guid>
		<description><![CDATA[I didn&#8217;t think I was looking for a lot in an IDE. Turns out what I want is impossibly hard to find. In the past 6 months I&#8217;ve tried (or tried to try): Komodo Edit Eclipse w/ PyDev PyCharm (from the first EAP build to&#8230; yesterday) Wingware Textmate Wingware First, let&#8217;s get Wingware out of [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t think I was looking for a lot in an IDE. Turns out what I want is impossibly hard to find.</p>
<p>In the past 6 months I&#8217;ve tried (or tried to try):</p>
<ul>
<li>Komodo Edit</li>
<li>Eclipse w/ PyDev</li>
<li>PyCharm (from the first EAP build to&#8230; yesterday)</li>
<li>Wingware</li>
<li>Textmate</li>
</ul>
<h3>Wingware</h3>
<p>First, let&#8217;s get Wingware out of the way. I&#8217;m on a Mac, and if you&#8217;re not going to develop for the Mac, I&#8217;m not going to pay you hundreds of dollars for your product. Period. I don&#8217;t even use free software that requires X11. Lemme know when you figure out that coders like Macs and I&#8217;ll try Wingware.</p>
<h3>Komodo Edit</h3>
<p>Well, I wanted to try the IDE but I downloaded it, launched it once for 5 minutes (maybe less), forgot about it, and now my trial is over. I&#8217;ll email sales about this tomorrow. In the meantime, I use Komodo Edit.</p>
<p>Komodo Edit is pretty nice. One thing I like about it is that it doesn&#8217;t really go overboard forcing its world view down my throat. If I&#8217;m working on bunny, which is a one-file Python project I keep in a git repository, I don&#8217;t have to figure out their system for managing projects. I can just &#8220;Open File&#8221; and use it as a text editor.</p>
<p>It has &#8220;ok&#8221; support for Vi key bindings, and it&#8217;s not a plugin: it&#8217;s built in. The support has some annoying limitations, but for about 85% of what I need it to do it&#8217;s fine. One big annoyance is that I can&#8217;t write out a file and assign it a name (e.g. &#8216;:w /some/filename.txt&#8217;). It&#8217;s not supported.</p>
<p>Komodo Edit, unless I missed it, doesn&#8217;t integrate with Git, and doesn&#8217;t offer a Python console. Its capabilities in the area of collaboration in general are weak. I don&#8217;t absolutely have to have them, but things like that are nice for keeping focused and not having to switch away from the window to do anything else, so ideally I could get an IDE that has this. I believe Komodo IDE has these things, so I&#8217;m looking forward to trying it out.</p>
<p>Komodo is pretty quick compared to most IDEs, and has always been rock solid stable for me on both Mac and Linux, so if I&#8217;m not in the mood to use Vim, or I need to work on lots of files at once, Komodo Edit is currently my &#8216;go-to&#8217; IDE.</p>
<h3>PyCharm</h3>
<p>PyCharm doesn&#8217;t have an officially supported release. I&#8217;ve been using Early Adopter Previews since the first one, though. When it&#8217;s finally stable I&#8217;m definitely going to revisit it, because to be honest&#8230; it&#8217;s kinda dreamy.</p>
<p>Git integration is very good. I used it with GitHub without incident for some time, but these are early adopter releases, and things happen: two separate EAP releases of PyCharm made my project files completely disappear without warning, error, or any indication that anything was wrong at all. Of course, this is git, so running &#8216;git checkout -f&#8217; brought things back just fine, but it&#8217;s unsettling, so now I&#8217;m just waiting for the EAP to be over with and I&#8217;ll check it out when it&#8217;s done.</p>
<p>I think for the most part, PyCharm nails it. This is the IDE I want to be using assuming the stability issues are worked out (and I don&#8217;t have reason to believe they won&#8217;t be). It gives me a Python console, VCS integration, a good class and project browser, some nice code analytics, and more complex syntax checking that &#8220;just works&#8221; than I&#8217;ve seen elsewhere. It&#8217;s a pretty handsome, very intuitive IDE, and it leverages an underlying platform whose plugins are available to PyCharm users as well, so my Vim keys are there (and, by the way, the IDEAVim plugin is the most advanced Vim support I&#8217;ve seen in any IDE, hands down).</p>
<h3>Eclipse with PyDev</h3>
<p>One thing I learned from using PyCharm and Eclipse is that where tools like this are concerned, I really prefer a specialized tool to a generic one with plugins layered on to provide the necessary functionality. Eclipse with PyDev really feels to me like a Java IDE that you have to spend time laboriously chiseling, drilling, and hammering to get it to do what you need if you&#8217;re not a Java developer. The configuration is extremely unintuitive, with a profuse array of dialogs, menus, options, options about options and menus, menus about menus and options&#8230; it never seems to end.</p>
<p>All told, I&#8217;ve probably spent the equivalent of 2 working days mucking with Eclipse configuration, and I&#8217;ve only been able to get it &#8220;pretty close&#8221; to where I want it. The Java-loving underpinnings of the Eclipse platform simply cannot be suppressed, while things I had to layer on with plugins don&#8217;t show up in the expected places.</p>
<p>Add to this Eclipse&#8217;s world-view, which reads something like &#8220;there is no filesystem tree: only projects&#8221;, and you have a really damned annoying IDE. I&#8217;ve tried on and off for over a year to make friends with Eclipse because of the good things I hear about PyDev, but it just feels like a big hacky, duct-taped mess to me, and if PyCharm has proven anything to me, it&#8217;s that building a language specific IDE on an underlying platform devoted to Java doesn&#8217;t have to be like this. When I finally got it to some kind of usable point, and after going through the &#8220;fonts and colors&#8221; maze, it turns out the syntax highlighting isn&#8217;t really all that great!</p>
<p>A quick word about Vi key bindings in Eclipse: it&#8217;s not a pretty picture, but the best I&#8217;ve been able to find is a free tool called Vrapper. It&#8217;s not bad. I could get by with Vrapper, but I don&#8217;t believe it&#8217;s as mature and evolved as IDEAVim plugin in PyCharm.</p>
<p>So, I&#8217;ll probably turn back to Eclipse for Java development (I&#8217;m planning on taking on a personal Android project), but I think I&#8217;ve given up on it for anything not Java-related.</p>
<h3>Vim</h3>
<p>Vim is technically &#8216;just an editor&#8217;, but it has some nice benefits, and with the right plugins, it can technically do all of the things a fancy IDE can. I use the taglist plugin to provide the project and class browser functionality, and the kicker here is that you can actually switch to the browser pane, type &#8216;/&#8217; and the object or member you&#8217;re looking for, and jump to it in a flash. It&#8217;s also the most complete Vim key binding implementation available <img src='http://www.protocolostomy.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>The big win for me in using Vim though is remote work. Though I&#8217;d rather do all of my coding locally, there are times when I really have to write code on remote machines, and I don&#8217;t want to go through the rigmarole of coding, pushing my changes, going to my terminal, pulling down the changes, testing, failing, fixing the code on my machine, pushing my changes, pulling my changes&#8230; ugh.</p>
<p>So why not just use Vim? I could do it. I&#8217;ve been using Vim for many years and am pretty good with it, but I just feel like separating my coding from my terminal whenever I can is a good thing. I don&#8217;t want my code to look like my terminal, nor do I want my terminal to look like my IDE theme. I&#8217;m SUPER picky about fonts and colors in my IDE, and I&#8217;m not that picky about them in my terminal. I also want the option of using my mouse while I&#8217;m coding, mostly to scroll, and getting that to work on a Mac in Terminal.app isn&#8217;t as simple as you might expect (and I&#8217;m not a fan of iTerm&#8230; and its ability to do this comes at a cost as well).</p>
<p>MacVim is nice, solves the separation of Terminal and IDE, and I might give it a more serious try, but let&#8217;s face it, it&#8217;s just not an IDE. Code completion is still going to be mediocre, the interface is still going to be terminal-ish&#8230; I just don&#8217;t know. One thing I really love though is the taglist plugin. I think if I could just find a way to embed a Python console along the bottom of MacVim I might be sold.</p>
<p>One thing I absolutely love about Vim, the thing that Vim gets right that none of the IDEs get is colorschemes: MacVim comes with like 20 or 30 colorschemes! And you can download more on the &#8216;net! The other IDEs must lump colorscheme information into the general preferences or something, because you can&#8217;t just download a colorscheme as far as I&#8217;ve seen. The IDE with the worst color/font configuration? Eclipse &#8211; the one all my Python brethren seem to rave about. That is so frustrating. Some day I&#8217;ll make it to PyCon and someone will show me the kool-aid I guess.</p>
<h3>The Frustrating Conclusion</h3>
<p>PyCharm isn&#8217;t soup yet, Wingware is all but ignoring the Mac platform, Eclipse is completely wrong for my brain and I don&#8217;t know how anyone uses it for Python development, Komodo Edit is rock solid but lacking features, and Komodo IDE is fairly pricey and a 30-day trial is always just really annoying (and I kinda doubt it beats PyCharm for Python-specific development). MacVim is a stand-in for a real IDE and it does the job, but I really want more&#8230; integration! I also don&#8217;t like maintaining the plugins and colorschemes and *rc files and ctags, and having to understand its language and all that.</p>
<p>I don&#8217;t cover them here, but I&#8217;ve tried a bunch of the Linux-specific Python IDEs as well, and I didn&#8217;t like a single one of them at all. At some point I&#8217;ll spend more time with those tools to see if I missed something crucial that, once learned, might make it hug my brain like a warm blanket (and make me consider running Linux on my desktop again, something I haven&#8217;t done on a regular ongoing basis in about 4 years).</p>
<p>So&#8230; I don&#8217;t really have an IDE yet. I *did* however just realize that the laptop I&#8217;m typing on right now has never had a Komodo IDE install, so I&#8217;m off to test it now. Wish me luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.protocolostomy.com/2010/05/13/python-ide-frustration/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>Per-machine Bash History</title>
		<link>http://www.protocolostomy.com/2010/05/10/per-machine-bash-history/</link>
		<comments>http://www.protocolostomy.com/2010/05/10/per-machine-bash-history/#comments</comments>
		<pubDate>Mon, 10 May 2010 19:12:52 +0000</pubDate>
		<dc:creator>bkjones</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.protocolostomy.com/?p=775</guid>
		<description><![CDATA[I do work on a lot of machines no matter what environment I&#8217;m working in, and a lot of the time each machine has a specific purpose. One thing that really annoys me when I work in an environment with NFS-mounted home directories is that if I log into a machine I haven&#8217;t used in [...]]]></description>
			<content:encoded><![CDATA[<p>I do work on a lot of machines no matter what environment I&#8217;m working in, and a lot of the time each machine has a specific purpose. One thing that really annoys me when I work in an environment with NFS-mounted home directories is that if I log into a machine I haven&#8217;t used in some time, none of the history specific to that machine is around anymore.</p>
<p>If I had a separate ~/.bash_history file on each machine, this would likely solve the problem. It&#8217;s pretty simple to do as it turns out. Just add the following lines to ~/.bashrc:</p>
<pre>srvr=`hostname`
export HISTFILE="/home/jonesy/.bash_history_${srvr}"
</pre>
<p>Don&#8217;t be alarmed when you source ~/.bashrc and you don&#8217;t see the file appear in your home directory. Unless you&#8217;ve configured things otherwise, history is only written at the end of a bash session. So go ahead and source bashrc, run a few commands, end your session, log back in, and the file should be there.</p>
<p>I&#8217;m not actually sure if this is going to be a great idea for everyone. If you work in an environment where you run the same commands from machine to machine, it might be better to just leave things alone. For me, I&#8217;m running different psql/mysql connection commands and stuff like that which differ depending on the machine I&#8217;m on and the connection perms it has.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.protocolostomy.com/2010/05/10/per-machine-bash-history/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Job, Car, Baby, and Other News</title>
		<link>http://www.protocolostomy.com/2009/10/22/new-job-car-baby-and-other-news/</link>
		<comments>http://www.protocolostomy.com/2009/10/22/new-job-car-baby-and-other-news/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 02:02:48 +0000</pubDate>
		<dc:creator>bkjones</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[LinuxLaboratory]]></category>
		<category><![CDATA[Other Cool Blogs]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.protocolostomy.com/?p=631</guid>
		<description><![CDATA[New Baby! I know this is my geek blog, but geeks have kids too, so first I want to announce the birth of our second daughter, Sadie, who was born on September 15th. She&#8217;s now over a month old. This is the first time I&#8217;ve stayed up late enough to blog about her. Everyone is [...]]]></description>
			<content:encoded><![CDATA[<h3>New Baby!</h3>
<p>I know this is my geek blog, but geeks have kids too, so first I want to announce the birth of our second daughter, Sadie, who was born on September 15th. She&#8217;s now over a month old. This is the first time I&#8217;ve stayed up late enough to blog about her. Everyone is healthy, if slightly sleep-deprived <img src='http://www.protocolostomy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>New Job!</h3>
<p>The day before Sadie&#8217;s birth, I got a call with an offer for a job. A *full-time* job, as a Senior Operations Developer for <a href="http://myyearbook.com">MyYearbook.com</a>. After learning about the cool and very geeky things going on at MyYearbook during the interview process, I couldn&#8217;t turn it down. I started on October 5, and it&#8217;s been a blast digging into all of the cool stuff going on there. While I&#8217;m certainly doing my fair share of PHP code review, maintenance, and general coding, I&#8217;m also getting plenty of hours in working out the Python side of my brain. I&#8217;m finding that while it&#8217;s easier switching gears than I had anticipated, I do make some really funny minor syntax errors, like using dot notation to access object attributes in PHP ;-P</p>
<p>What I find super exciting is something that might turn some peoples&#8217; stomachs: at the end of my first week, I sat back and looked at my monitors to find roughly 15 tabs in Firefox open to pages explaining various tools I&#8217;d never gotten to use, protocols I&#8217;ve never heard of, etc. I had my laptop and desktop both configured with 2 virtual machines for testing and playing with new stuff. I had something north of 25 terminal windows open, and 8 files open in Komodo Edit.</p>
<p>Now THAT, THAT is FUN!</p>
<p>The projects I&#8217;m working on run the gamut from code cleanups that nobody else has had time to do (a good tool for getting my brain wrapped around various parts of the code base), to working on scalability solutions and new offerings involving my background in coding *and* system administration. It&#8217;s like someone cherry-picked a Bay Area startup and dropped it randomly 30 minutes from my house.</p>
<p>My own business is officially &#8220;not taking new clients&#8221;. I have some regular clients that I still do work for, so my &#8220;regulars&#8221; are still being served, but they&#8217;ve all been put on notice that I&#8217;m unavailable until the new year.</p>
<h3>New Car!</h3>
<p>I&#8217;m less excited about the new car, really. I used to drive a Jeep Liberty, and I loved it. However, in early September, before Sadie&#8217;s arrival, it became clear to me that putting two car seats in that beast wasn&#8217;t going to happen. The Jeep is great for drivers, and it has some cargo space. It&#8217;s not a great vehicle for passengers, though.</p>
<p>At the same time, I was running a business (this was before the job offer came along), and I was finding myself slightly uncomfortable delivering rather serious business proposals in a well-used 2003 Jeep. So, I needed something that could fit my young family (my oldest is 2 yrs), and that was presentable to clients. So, I got a Lexus ES350.</p>
<p>I like most things about the car, except for the audio system. It seems schizophrenic to me to have like 6 sound &#8216;zones&#8217; to isolate the audio to certain sets of speakers, but then controls like bass and treble only go from 0 to 5. Huh? And the sound always sounds like it&#8217;s lying on the floor for some reason. It&#8217;s not at all immersive. The sound system on my Jeep completely kicked ass. I miss it. A lot.</p>
<h3>Other News</h3>
<p>I&#8217;ve submitted an article to <a href="http://pythonmagazine.com">Python Magazine</a> about my (relatively) recent work with Django and my (temporarily stalled) overhaul of <a href="http://linuxlaboratory.org">LinuxLaboratory.org</a>, and my experiences with various learning resources related to Django. If you&#8217;re looking to get into Django, it&#8217;s probably a good read.</p>
<p>I&#8217;ve been getting into some areas of Python that were previously dark, dusty corners, so hopefully I&#8217;ll be writing more about Python here, because writing about something helps me to solidify things in my own brain. Short of that, it serves as a future reference point in case it didn&#8217;t get solidified enough <img src='http://www.protocolostomy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>My sister launched<a href="http://thedancejones.com/blog"> The Dance Jones</a>, a blog where she talks about fitness, balance, dance, and stuff I should probably pay much more attention to (I&#8217;m close to declaring war on my gut). Also, if you ever wanted to know how to <a href="http://thedancejones.com/blog/2009/10/19/how-to-shoulder-shimmy/">shoulder shimmy</a> (and who hasn&#8217;t wanted to do that?), you should check it out <img src='http://www.protocolostomy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.protocolostomy.com/2009/10/22/new-job-car-baby-and-other-news/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Cool Mac/Mobile Software for Sysadmins, Programmers, and People</title>
		<link>http://www.protocolostomy.com/2009/09/03/cool-macmobile-software-for-sysadmins-programmers-and-people/</link>
		<comments>http://www.protocolostomy.com/2009/09/03/cool-macmobile-software-for-sysadmins-programmers-and-people/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 19:55:34 +0000</pubDate>
		<dc:creator>bkjones</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.protocolostomy.com/?p=622</guid>
		<description><![CDATA[I recently upgraded my primary workhorse (a MacBook Pro) to Snow Leopard. Before I did, I decided to go through and take stock of all of the documents and software I&#8217;d accumulated. While I was doing this, I simultaneously got into a conversation with a buddy of mine about the software he uses on his [...]]]></description>
			<content:encoded><![CDATA[<p>I recently upgraded my primary workhorse (a MacBook Pro) to Snow Leopard. Before I did, I decided to go through and take stock of all of the documents and software I&#8217;d accumulated. While I was doing this, I simultaneously got into a conversation with a buddy of mine about the software he uses on his Macs. Turns out he maintains <a href="http://www.a440.org/mac_software">a whole page</a> devoted to (mostly non-geek, but still somehow geeky) Mac software he uses. </p>
<p>I decided to go ahead and list the software I use for stuff whether it was geeky or not. Then I realized that pretty much all of the software I use is kinda geeky. I guess if you&#8217;re someone who&#8217;s going to create a list of software you use, it&#8217;s pretty hopeless. </p>
<p>So&#8230; here&#8217;s what I&#8217;m using. Suggestions welcome in the comments! </p>
<h3>Social Media</h3>
<ul>
<li><a href="http://www.atebits.com/tweetie-mac/">Tweetie</a></li>
<li><a href="http://www.twitterlocal.net/">Twitterlocal</a></li>
<li><a href="http://tweetdeck.com/beta/">Tweetdeck</a></li>
<li><a href="http://tweetgrid.com">TweetGrid</a></li>
<li><a href="http://brightkite.com">Brightkite</a> (iPhone)</li>
<li><a href="http://linkedin.com">LinkedIn</a></li>
</ul>
<p>My <a href="http://www.twitter.com/bkjones">Twitter</a> account updates my <a href="http://www.facebook.com">Facebook</a> status. My <a href="http://www.brightkite.com">Brightkite</a> checkins update the location information on my Twitter account. It also sends a tweet&#8230; which updates my Facebook status. I pay less attention to the ongoing status in my <a href="http://www.linkedin.com">LinkedIn</a> account, but it gets updated automatically as well, I just don&#8217;t remember how or by what anymore. </p>
<p>I&#8217;ve tried a bunch of Twitter clients. Tweetie is &#8220;good enough&#8221;. It&#8217;s the one I use most often. If I need something hardcore I use Tweetdeck or TweetGrid, which has the benefit of being web-based. </p>
<p>TwitterLocal lets you put in your location and a radius, and then shows you tweets from people who are discernibly near you. I think Brightkite does a better overall job with this, since its whole reason for being is to be location-aware, but it seems like I get fewer updates than with TwitterLocal. </p>
<h3>Communication</h3>
<ul>
<li><a href="http://colloquy.info/">Colloquy</a></li>
<li>Tweetie</li>
<li>Mail</li>
<li>Skype</li>
<li>Google Talk</li>
</ul>
<p>Right. Twitter is also a communication tool. I have, in fact, checked in with people via Twitter. It&#8217;s not how I typically use it, but I think it counts <img src='http://www.protocolostomy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>I have to use both Skype and Google Talk because I&#8217;m on the road a lot (I&#8217;m a consultant) and there are enough hotels who do stupid things with their network that I&#8217;m forced to use whichever one works on that particular network. Though I mostly use GMail for mail, it&#8217;s gone down a few times on me, so it&#8217;s good to have Mail around. I&#8217;ve recently found GMail notifier to be almost useless as well, so when I use Mail, I find that getting alerted to incoming messages frees my brain. I use <a href="http://www.bronsonbeta.com/mailappetizer/">Mail.appetizer</a> to show me previews of incoming mail so I don&#8217;t have to switch gears from what I&#8217;m doing to see the latest spam. Note, however, that it&#8217;s not quite ready for Snow Leopard. </p>
<p>I haven&#8217;t tried Mail in Snow Leopard yet. If they ever fix the search functionality (I find it useless) I&#8217;ll stop using the GMail interface. I&#8217;ve tried thunderbird, but its search is even worse (or was, the last time I tried it). </p>
<h3>Fun Stuff</h3>
<ul>
<li>GarageBand</li>
<li><a href="http://www.flickr.com/tools/uploadr/">Flickr Uploadr</a></li>
<li>iPhoto</li>
<li><a href="http://stella.sourceforge.net">StellaOSX</a></li>
<li>Sim City 4</li>
</ul>
<p>I play guitar and piano, and have also played drums, saxophone, and lots of other noise-making apparatuses. I like that GarageBand will let me put down bass and drum tracks without having to own a bass or drum set. </p>
<p>I also enjoy photography, though I don&#8217;t often get out on long quiet hikes in nature or gastronomical adventures that would make for the kinds of stunning things I see on Flickr all the time. However, I do have a family, and we do travel, so while not even 10% of my pics on Flickr are stock quality photos, at least 90% of them are interesting to me personally <img src='http://www.protocolostomy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>iPhoto I see as a necessary evil these days. I used to love it, but now that it tries to help me out by autocategorizing on things that, as it turns out, are pretty arbitrary in the context of my life, I don&#8217;t like it as much. It&#8217;s good for quick touch-ups though. I&#8217;ve saved a number of pics with it. </p>
<p>StellaOSX is an Atari 2600 emulator for the Mac that comes with like, I dunno, thousands of ROMs? If you miss your old Atari games, and you have a Mac, it&#8217;s all you&#8217;ll ever need. </p>
<p>Sim City 4 is a city-building game. If you haven&#8217;t heard of Sim City before, it&#8217;s not like the Sims. At all. I don&#8217;t get that game, in fact. Sim City is a game where you have to try to build a city, build its wealth and prestige, and try to keep the residents happy as well. </p>
<h3>Productivity</h3>
<ul>
<li><a href="http://culturedcode.com/things/">Things for Mac</a> (and iPhone)</li>
<li>Google Calendar</li>
<li>iCal</li>
</ul>
<p>Things for Mac is the first application I&#8217;ve personally seen that seamlessly syncs with Things for my iPhone. It works great. It&#8217;s not a full-blown project management solution, but it&#8217;s more than a todo list. It&#8217;s not about work-related stuff, either. Things is really about keeping my personal things in order. I have to call the township for an inspection on my recent AC replacement, schedule for a followup doctor visit for my dog, hire an insulation contractor by the fall, send out my quarterly taxes, make a dentist appointment&#8230; that kind of stuff. It&#8217;s also a great place to put ideas for blog posts and stuff, and since it&#8217;s right there on my iPhone, I don&#8217;t forget as many ideas anymore. I can&#8217;t say enough good things about Things, so I&#8217;ll just say <a href="http://culturedcode.com/things/">go try it</a>. </p>
<p>Google Calendar and iCal are kept in sync, so I don&#8217;t have to use the horrifically slow Google Calendar on my iPhone. I can sync to iCal on the desktop, sync that to my iPhone, and use iCal on the phone as well. Why the whole calendar synchronization thing has to *still* be hard after like 4 years of trying is beyond me. </p>
<h3>Office</h3>
<ul>
<li>Keynote (and Remote for iPhone)</li>
<li>Pages</li>
<li><a href="http://docs.google.com">Google Docs</a></li>
<li><a href="http://openoffice.org">OpenOffice</a></li>
<li><a href="http://www.omnigroup.com/applications/OmniGraffle/">OmniGraffle Pro</a></li>
<li>Preview</li>
<li>Dictionary</li>
<li><a href="http://www.telestream.net/screen-flow/overview.htm">ScreenFlow</a></li>
</ul>
<p>Keynote makes doing things that are hard in PowerPoint and impossible in OpenOffice or Google Docs easy as all getout. As a trainer, I spend a lot of time putting content together and trying to find new ways to make it more engaging, less boring, etc. (not that I&#8217;ve been accused of being boring, mind you) <img src='http://www.protocolostomy.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>I deliver all of my training from a MacBook Pro using either the remote that came with my laptop or the Remote iPhone application. Usually I can&#8217;t use Remote for iPhone because of restrictions regarding the wireless network, but I sometimes use it at home to rehearse new content. </p>
<p>I do use Google Docs for lots of other stuff. It&#8217;s not what I&#8217;d call full-featured, but when you discover that it&#8217;s integrated with Google Talk, it actually makes real-time collaboration pretty nice. Sadly, Microsoft Word is still the only word processing application I&#8217;ve seen with offline collaboration features that I&#8217;d call &#8220;pretty good&#8221;. Nothing I&#8217;ve seen recently can do what Word did 5 years ago in terms of collaboration. Again &#8212; sad. </p>
<p>Preview is a PDF viewer, but it also will do screen grabs. I know there&#8217;s a keyboard shortcut to do screen captures. I think it&#8217;s shift-command-4. I&#8217;m just as happy opening Preview, which is right there on the Dock anyway. It&#8217;s better than the old utility Apple provided for this, which would only save in TIFF format. </p>
<p>I feel like people look at me strange when I say that I use a dictionary every single day I&#8217;m on the computer (so&#8230; every day). I used it for this post, as a matter of fact (&#8220;apparatuses&#8221; still doesn&#8217;t sound right to me). I wish there was an app that could tell you how often you&#8217;ve used an app in the last day, week, month, etc. I&#8217;ll bet the Dictionary app outnumbers Mail (I usually only use Mail when GMail is down).  </p>
<h3>System Maintenance</h3>
<ul>
<li>Time Capsule/Time Machine</li>
<li>AppCleaner</li>
<li>Disk Inventory X</li>
<li>Apple Remote Desktop</li>
</ul>
<p>I bought a Time Capsule. It&#8217;s an Apple product. It&#8217;s an enclosed 1TB hard drive inside of a wireless access point. It also has a USB port where you can connect a hub and then connect up other external USB hard drives, and a USB printer that can then be shared with the whole network without running a long-in-the-tooth Mac G4 with the mirrored doors and the fan that sounds like the landing of the mothership&#8230;. uh&#8230;. I mean&#8230; It&#8217;s really easy to use! I use it to back up all of the Macs in the house. The iPhone backs up to my Mac, so that&#8217;s covered too. </p>
<p>AppCleaner isn&#8217;t horribly useful, but I do use it, and it helps slightly. Maybe. It&#8217;s supposed to help you get rid of apps you no longer use, but it still leaves behind seemingly everything that would normally be left behind if you just opened Terminal and typed &#8220;sudo rm -rf ./AppName&#8221;. I give it the benefit of the doubt. Maybe it catches some stuff sometimes, and then I know all of the usual suspects that hang on to old app cruft, so I can clean some of it out manually without too much fuss. </p>
<p>Disk Inventory X is pretty cool. It presents a tree map view of the contents of your hard drive which makes it dead easy to spot where the disk hogs are. And here I was writing scripts for this <img src='http://www.protocolostomy.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   It&#8217;s a great spotting tool, but because it&#8217;s constantly scraping the disk, it&#8217;s quite slow. You also can&#8217;t select multiple things in the interface and move them all to the trash at one time, which would be nice. Still, it definitely helped me find stuff I didn&#8217;t know was there, and that was taking up lots and lots of space. </p>
<p>Apple Remote Desktop isn&#8217;t something I use often, but it&#8217;s handy to have around. It lets you do all kinds of advanced stuff by connecting to the desktop of a remote Mac, but I just do simple things with it. If you didn&#8217;t know about it, it&#8217;s worth at least being aware of. </p>
<h3>System Administration/Geekery</h3>
<ul>
<li>Terminal</li>
<li>Vim</li>
<li>SSH Tunnel Manager</li>
<li>VMware Fusion</li>
<li>Cisco VPN Client</li>
</ul>
<p>This is the &#8220;where do I start&#8221; section for me. I do lots of geekery, and these tools facilitate a lot of the geekery. I stuck with the basics here. I use Terminal because tons of what I do is on the command line. There are things I do on the command line for which GUI applications exist, but to be honest, some of those cost money, and none of them are as efficient or reliable as the command line. I know that makes me sound like an old graybeard, but it&#8217;s mostly true. A GUI that really makes something you already know how to do on the command line easier is rare. </p>
<p>Vim, of course, runs inside of Terminal. If I&#8217;m writing a bunch of code across lots of files or something, I&#8217;ll try to use Komodo Edit (and I might upgrade to Komodo IDE), but if I&#8217;m on a remote machine, or I just need to do a quick edit here or there, one file at a time, I&#8217;ll just use Vim. Vim can do window splitting and code folding and stuff like that, so Komodo isn&#8217;t a requirement for me, it&#8217;s just slightly more convenient, and it has Vi key bindings <img src='http://www.protocolostomy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>SSH Tunnel Manager is a GUI for managing SSH tunnels. Go figure. I&#8217;ve been using it for years now, but to be honest, if I don&#8217;t use it for a while, the interface becomes unintuitive to me and I go back to the command line or my SSH config file to set up tunnels. </p>
<p>VMware Fusion is great. I can test the latest Linux distros without devoting a whole machine to them, or I can run Windows and test web stuff in IE. There seems to be no end to the stuff I find myself using VMware Fusion for. Surprising. </p>
<p>I&#8217;m told there&#8217;s a VPN client built into Snow Leopard, but I haven&#8217;t tested it out yet. Some have reported issues, so hopefully they don&#8217;t bite me. </p>
<h3>Programming/Development</h3>
<ul>
<li><a href="http://www.activestate.com/komodo_edit/">Komodo Edit</a></li>
<li><a href="http://www.vim.org">Vim</a></li>
<li><a href="http://www.python.org">Python</a></li>
<li><a href="http://www.djangoproject.com/">Django</a></li>
<li><a href="http://mercurial.selenic.com/wiki/">Mercurial</a></li>
<li><a href="http://subversion.tigris.org/">Subversion</a></li>
<li><a href="http://www.nongnu.org/fab/">Fabric</a></li>
<li>Terminal</li>
<li>VMware Fusion</li>
<li><a href="http://getfirebug.com/">Firebug</a></li>
</ul>
<p>Komodo Edit is my favorite editor for writing code, period. If it didn&#8217;t have Vi keybindings, I&#8217;d likely just use Vim. And I do, sometimes. My first-choice language these days is Python, but I still write plenty of PHP, shell, SQL, Perl, etc. The Mac comes with XCode as an optional install, and I should really give it another shot, but in the past I&#8217;ve felt that it was kind of overwhelming, not to mention kinda clunky and slow.</p>
<p>Django is a Python web framework that comes with a development stand-in web server so you can do all of your development on the laptop, test it all locally, then push out to some environment that more closely matches production. </p>
<p>Speaking of pushing out changes, I mostly use Mercurial for my own projects nowadays, and I rather like it, but lots of things still use Subversion, which is wildly popular. My open source project actually uses Subversion with Google Code, but Google recently announced Mercurial support for hosted projects, so I&#8217;ll need to look at changing that over. </p>
<p>Fabric is a deployment tool. It&#8217;s written in Python and uses the paramiko library, which I found interesting, because I&#8217;d written a couple of automation scripts using paramiko that would have been easier to do with Fabric. I&#8217;ve only done simple things with Fabric so far, but it&#8217;s worth a look if you do a lot of rsync-ish stuff, followed by some &#8220;ssh in a for loop&#8221; stuff, supported by some cron jobs&#8230;. Fabric can really ease your life. </p>
<p>VMware Fusion is used in a programming context in two ways: to test web stuff on IE (I have an XP VM), and to work with libraries that are more convenient to work with under Linux than on the Mac. Sometimes Linux distros have things built-in that I&#8217;d have to build from source (along with all the dependencies) on the Mac. </p>
<p>Firebug is just basically a necessity if you do any kind of web development. It lets you inspect the design elements on the page visually, as well as in code, which makes debugging your CSS so easy it&#8217;s almost a non-event. </p>
<p>So&#8230; what tools are you using? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.protocolostomy.com/2009/09/03/cool-macmobile-software-for-sysadmins-programmers-and-people/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

