<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<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/"
	>

<channel>
	<title>Stephen Van Dahm</title>
	<link>http://vandahm.org</link>
	<description>http://vandahm.org/</description>
	<pubDate>Fri, 11 Apr 2008 16:43:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Total nerd meme</title>
		<link>http://vandahm.org/2008/04/11/total-nerd-meme/</link>
		<comments>http://vandahm.org/2008/04/11/total-nerd-meme/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 16:43:51 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
		
		<category><![CDATA[Computing]]></category>

		<category><![CDATA[computers]]></category>

		<category><![CDATA[meme]]></category>

		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://vandahm.org/2008/04/11/total-nerd-meme/</guid>
		<description><![CDATA[After reading James Bennett&#8217;s latest post, I immediately tried the following Unix command:

$ history &#124; awk '{print $2}' &#124; sort &#124; uniq -c &#124; sort -rn &#124; head
  140   ls
  120   cd
   47   su
   26   vim
   26   [...]]]></description>
			<content:encoded><![CDATA[<p>After reading <a href="http://www.b-list.org/weblog/2008/apr/10/meme/">James Bennett&#8217;s latest post</a>, I immediately tried the following Unix command:</p>

<pre><code>$ history | awk '{print $2}' | sort | uniq -c | sort -rn | head
  140   ls
  120   cd
   47   su
   26   vim
   26   exit
   14   svn
   11   cat
   10   ./manage.py
    8   mkdir
    7   python
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://vandahm.org/2008/04/11/total-nerd-meme/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HOWTO: Get rid of that revolting faux-3D Dock in Mac OS X 10.5 Leopard.</title>
		<link>http://vandahm.org/2007/10/29/howto-get-rid-of-that-revolting-faux-3d-dock-in-mac-os-x-105-leopard/</link>
		<comments>http://vandahm.org/2007/10/29/howto-get-rid-of-that-revolting-faux-3d-dock-in-mac-os-x-105-leopard/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 00:07:49 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
		
		<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://vandahm.org/2007/10/29/howto-get-rid-of-that-revolting-faux-3d-dock-in-mac-os-x-105-leopard/</guid>
		<description><![CDATA[I don&#8217;t know what the folks at Apple were smoking when they decided to build that ugly, glassy fake 3D Dock into Leopard.  There is no way in hell that I&#8217;m going to look at that every day for the next two years.  Fortunately, there appears to be a solution.  At the [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know what the folks at Apple were smoking when they decided to build that ugly, glassy fake 3D Dock into Leopard.  There is no way in hell that I&#8217;m going to look at that every day for the next two years.  Fortunately, there appears to be a solution.  At the Unix prompt, type:</p>

<pre><code>defaults write com.apple.dock no-glass -boolean YES
killall Dock
</code></pre>

<p>Now, when the Dock is positioned at the bottom, it takes on the somewhat less abrasive look it has when attached to the sides of the screen.  It&#8217;s still ugly, but I&#8217;ll be able to live with it until Apple releases 10.6.</p>
]]></content:encoded>
			<wfw:commentRss>http://vandahm.org/2007/10/29/howto-get-rid-of-that-revolting-faux-3d-dock-in-mac-os-x-105-leopard/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Writing a new CMS</title>
		<link>http://vandahm.org/2007/02/28/writing-a-new-cms/</link>
		<comments>http://vandahm.org/2007/02/28/writing-a-new-cms/#comments</comments>
		<pubDate>Thu, 01 Mar 2007 04:25:12 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://vandahm.org/2007/02/28/writing-a-new-cms/</guid>
		<description><![CDATA[Tonight, I&#8217;ve taken the first steps towards ditching WordPress and rolling my own custom CMS.  I&#8217;ve wanted to do this for a long time, and I&#8217;ve always dismissed it on the grounds that it&#8217;s too much work and time, and that there&#8217;s already a ton of blogging software out there.  But the truth [...]]]></description>
			<content:encoded><![CDATA[<p>Tonight, I&#8217;ve taken the first steps towards ditching <a href="http://wordpress.org/">WordPress</a> and rolling my own custom CMS.  I&#8217;ve wanted to do this for a long time, and I&#8217;ve always dismissed it on the grounds that it&#8217;s too much work and time, and that there&#8217;s already a ton of blogging software out there.  But the truth is, I don&#8217;t <em>want</em> a blog, or at least I don&#8217;t want my site to look like a blog and be organized like a blog.  Basically, I want to use my website to publish a few different kinds of things:</p>

<ul>
<li>basic information about who I am and what I do.</li>
<li>links to all the cool sites I find, with commentary on why they I think they&#8217;re interesting.</li>
<li>digital pictures</li>
<li>code snippets that I&#8217;ve written and collected.</li>
<li>longer article-length posts on different subjects that interest me.</li>
</ul>

<p>Each of these types of content needs to be presented in a different manner, so simply creating new categories in WordPress isn&#8217;t the answer.  Installing <em>n</em> separate applications to cover all these bases might work, but then I&#8217;ll be stuck with <em>n</em> different sets of user accounts, <em>n</em> different admin interfaces, and <em>n</em> different sets of HTML templates.  I&#8217;ve done that before, and I don&#8217;t want to do it ever again.  I&#8217;ve also tried hacking WordPress and Movable Type to accommodate these different roles, and it sucked, and I don&#8217;t want to do that ever again, either.</p>

<p>Besides, I&#8217;m a programmer and I want to program stuff.</p>

<p>I&#8217;ve decided that, for this project, I&#8217;ll use the <a href="http://www.python.org/">Python</a> language and the <a href="http://djangoproject.com/">Django</a> web framework.  I thought about using this opportunity to learn <a href="http://www.rubyonrails.org/">Rails</a>, but I&#8217;ve already got a project in mind for that.  I&#8217;ve loved Python since my college days, and Django is an <em>awesome</em> framework for rolling your own CMS.</p>

<p>Since I&#8217;m writing this on the evenings and weekends, it will be a while before the new system launches.  Until then, I&#8217;ll still be using WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://vandahm.org/2007/02/28/writing-a-new-cms/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Computer Error Message, Probably</title>
		<link>http://vandahm.org/2006/11/21/computer-error-message-probably/</link>
		<comments>http://vandahm.org/2006/11/21/computer-error-message-probably/#comments</comments>
		<pubDate>Tue, 21 Nov 2006 18:58:24 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
		
		<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://vandahm.org/2006/11/21/computer-error-message-probably/</guid>
		<description><![CDATA[This rates as one of the most unhelpful error messages I&#8217;ve ever seen:



&#8230;unless, of course, it didn&#8217;t.  Who knows?
]]></description>
			<content:encoded><![CDATA[<p>This rates as one of the most unhelpful error messages I&#8217;ve ever seen:</p>

<p><img src="http://vandahm.org/misc/pictures/probably.png" alt="An error has occured which probably prevented the proper execution of the program..." /></p>

<p>&#8230;unless, of course, it didn&#8217;t.  Who knows?</p>
]]></content:encoded>
			<wfw:commentRss>http://vandahm.org/2006/11/21/computer-error-message-probably/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cool Python Function</title>
		<link>http://vandahm.org/2006/10/03/cool-python-function/</link>
		<comments>http://vandahm.org/2006/10/03/cool-python-function/#comments</comments>
		<pubDate>Tue, 03 Oct 2006 18:56:18 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://vandahm.org/2006/10/03/cool-python-function/</guid>
		<description><![CDATA[I&#8217;m not sure that others would find this interesting, but I&#8217;m posting it anyway in case I need this later.  While working on a Python script, I needed something that would generate the proper suffixes to make ordinal numbers like 1st, 2nd, and 3rd.  Since some markup schemes allow you make the suffix [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not sure that others would find this interesting, but I&#8217;m posting it anyway in case I need this later.  While working on a Python script, I needed something that would generate the proper suffixes to make ordinal numbers like <code>1st</code>, <code>2nd</code>, and <code>3rd</code>.  Since some markup schemes allow you make the suffix a superscript, I wanted a function that only generates the suffix, so that I can use the function with multiple markup conventions.  I poked around in the module documentation and didn&#8217;t find anything useful, so I wrote this:</p>

<pre><code>def get_suffix(num):

    special_suffixes = { '1': 'st', '2': 'nd', '3': 'rd' }
    default_return = 'th'

    digits = str(abs(num)) # To work with negative numbers
    last_digit = digits[-1:]

    if last_digit in special_suffixes.keys():
        # Numbers that end in 11, 12, and 13 just get 'th'
        if len(digits) == 1 or digits[-2] != '1':
            default_return = special_suffixes[last_digit]

    return default_return
</code></pre>

<p>Short and easy.</p>
]]></content:encoded>
			<wfw:commentRss>http://vandahm.org/2006/10/03/cool-python-function/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hilarity From The Onion</title>
		<link>http://vandahm.org/2006/09/29/hilarity-from-the-onion/</link>
		<comments>http://vandahm.org/2006/09/29/hilarity-from-the-onion/#comments</comments>
		<pubDate>Fri, 29 Sep 2006 18:00:27 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
		
		<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://vandahm.org/2006/09/29/hilarity-from-the-onion/</guid>
		<description><![CDATA[I know this is juvenile, but I can&#8217;t stop laughing at this page on The Onion&#8217;s site.
]]></description>
			<content:encoded><![CDATA[<p>I know this is juvenile, but I can&#8217;t stop laughing at <a href="http://www.theonion.com/content/node/51603">this page</a> on <em>The Onion&#8217;s</em> site.</p>
]]></content:encoded>
			<wfw:commentRss>http://vandahm.org/2006/09/29/hilarity-from-the-onion/feed/</wfw:commentRss>
		</item>
		<item>
		<title>NOAA&#8217;s Weather Feeds</title>
		<link>http://vandahm.org/2006/09/25/noaas-weather-feeds/</link>
		<comments>http://vandahm.org/2006/09/25/noaas-weather-feeds/#comments</comments>
		<pubDate>Mon, 25 Sep 2006 16:10:52 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://vandahm.org/2006/09/25/noaas-weather-feeds/</guid>
		<description><![CDATA[For a project at work, I need to provide a constantly-updated weather forecast of a certain area in Northern Minnesota.  I was pleasantly surprised to learn that The National Weather Service provides this information for free in XML format.  Unfortunately, accessing it is kind of a pain.  I would like to be [...]]]></description>
			<content:encoded><![CDATA[<p>For a project at work, I need to provide a constantly-updated weather forecast of a certain area in Northern Minnesota.  I was pleasantly surprised to learn that <a href="http://www.nws.noaa.gov/">The National Weather Service</a> provides this information for free in XML format.  Unfortunately, accessing it is kind of a pain.  I would like to be able to do something like this:</p>

<pre><code>wget http://nws.noaa.gov/feeds/?zip=55xxx&amp;days=7
</code></pre>

<p>But that would be too easy.  Instead, you have to use <a href="http://en.wikipedia.org/wiki/SOAP">SOAP</a> to send a request and get a response.  Even in <a href="http://ruby-lang.org/">Ruby</a>, it&#8217;s more work and doesn&#8217;t really seem natural:</p>

<pre><code>#!/opt/local/bin/ruby

require 'soap/wsdlDriver.rb'

WSDL_URL = "Really long URL"
latitude = 47.716309
longitude = -90.489143

soap = SOAP::WSDLDriverFactory.new(WSDL_URL).create_rpc_driver
xml = soap.NDFDgenByDay(latitude, longitude,
                        Time.now.strftime("%Y-%m-%d"),
                        7, "24 hourly")

File.open("/path/to/data/weather.xml", "w") do |file|
    file &lt;&lt; xml
end
</code></pre>

<p>On the bright side, kudos to Ruby for including <a href="http://www.ruby-doc.org/stdlib/libdoc/soap/rdoc/index.html">SOAP classes</a> in its standard library.  <a href="http://python.org/">Python</a> doesn&#8217;t seem to do this, and the Python SOAP module in DarwinPorts wouldn&#8217;t build for some reason.</p>
]]></content:encoded>
			<wfw:commentRss>http://vandahm.org/2006/09/25/noaas-weather-feeds/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Apple&#8217;s open(1) Command</title>
		<link>http://vandahm.org/2006/09/07/apples-open1-command/</link>
		<comments>http://vandahm.org/2006/09/07/apples-open1-command/#comments</comments>
		<pubDate>Thu, 07 Sep 2006 19:00:37 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
		
		<category><![CDATA[Computing]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://vandahm.org/2006/09/07/apples-open1-command/</guid>
		<description><![CDATA[I really like OS X.  In particular, I like its open(1) command.  I seriously wish that Linux and BSD had something like this.  Basically, you type open &#60;filename&#62; and that file is handled as if you had double-clicked it.  This command is so useful and convenient that I can&#8217;t remember what [...]]]></description>
			<content:encoded><![CDATA[<p>I really like OS X.  In particular, I like its <a href="http://www.hmug.org/man/1/open.php"><code>open(1)</code></a> command.  I seriously wish that Linux and BSD had something like this.  Basically, you type <code>open &lt;filename&gt;</code> and that file is handled as if you had double-clicked it.  This command is so useful and convenient that I can&#8217;t remember what I did without it.  For instance, today I wanted to edit all the PHP files in a certain directory that had a certain text string in them.  Easy:</p>

<pre><code>grep -l text_string *.php | xargs open
</code></pre>

<p>Then, OS X opened up my text editor and loaded it with these two files, automagically.</p>

<p>As much as I wish this would appear in Free Unix implementations, I don&#8217;t see it happening.  Sigh&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://vandahm.org/2006/09/07/apples-open1-command/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Moving from WordPress to Typo</title>
		<link>http://vandahm.org/2006/07/27/moving-from-wordpress-to-typo/</link>
		<comments>http://vandahm.org/2006/07/27/moving-from-wordpress-to-typo/#comments</comments>
		<pubDate>Thu, 27 Jul 2006 20:12:41 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
		
		<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://vandahm.org/2006/07/27/moving-from-wordpress-to-typo/</guid>
		<description><![CDATA[I&#8217;m getting fed up with WordPress and am considering ditching it in favor of Typo.  You can check out my test weblog here.

Edit: In addition to being slow as tar, Typo is a serious memory hog.  For the time being, I&#8217;m sticking with WordPress.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m getting fed up with <a href="http://wordpress.org/">WordPress</a> and am considering ditching it in favor of <a href="http://typo.leetsoft.com/">Typo</a>.  You can check out my test weblog <a href="http://stephen.fomps.net/">here</a>.</p>

<p><strong>Edit:</strong> In addition to being slow as tar, Typo is a serious memory hog.  For the time being, I&#8217;m sticking with WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://vandahm.org/2006/07/27/moving-from-wordpress-to-typo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I Want to Cry</title>
		<link>http://vandahm.org/2006/07/02/i-want-to-cry/</link>
		<comments>http://vandahm.org/2006/07/02/i-want-to-cry/#comments</comments>
		<pubDate>Mon, 03 Jul 2006 03:19:58 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
		
		<category><![CDATA[Computing]]></category>

		<guid isPermaLink="false">http://vandahm.org/2006/07/02/i-want-to-cry/</guid>
		<description><![CDATA[I&#8217;m pretty bummed out after reading part of a transcript of a Senate Commerce Committee meeting on Net Neutrality.

Ted Stevens (from Alaska) apparently received the entire Internet in his e-mail:


  I just the other day got, an internet was sent by my staff at 10 o&#8217;clock in the morning on Friday and I just [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m pretty bummed out after reading <a href="http://blog.wired.com/27BStroke6/?entry_id=1512499">part of a transcript</a> of a Senate Commerce Committee meeting on Net Neutrality.</p>

<p>Ted Stevens (from Alaska) apparently received <em>the entire Internet</em> in his e-mail:</p>

<blockquote>
  <p>I just the other day got, an internet was sent by my staff at 10 o&#8217;clock in the morning on Friday and I just got it yesterday. Why?</p>
  
  <p>Because it got tangled up with all these things going on the internet commercially.</p>
</blockquote>

<p>These are the people making important technology decisions that will affect the entire country for decades?</p>

<p><strong>Edit (2006-07-14):</strong> Jon Stewart&#8217;s <a href="http://www.youtube.com/watch?v=DClkE64nFDY"><em>Daily Show</em> commentary</a> is absolutely hilarious.</p>

<p><strong>Edit (2006-07-17):</strong> And here&#8217;s the obligatory <a href="http://evhead.com/2006/07/massive-tangled-up-tubes.asp">techno remix</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://vandahm.org/2006/07/02/i-want-to-cry/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
