<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.2" -->
<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>Logan Koester</title>
	<link>http://blog.logankoester.com</link>
	<description>Just another web geek's blog</description>
	<pubDate>Tue, 11 Sep 2007 15:46:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>
	<language>en</language>
			<item>
		<title>slashhardcore.rb is a station tuner for Digitally Imported radio</title>
		<link>http://blog.logankoester.com/scripts/slashhardcore</link>
		<comments>http://blog.logankoester.com/scripts/slashhardcore#comments</comments>
		<pubDate>Wed, 29 Aug 2007 04:32:04 +0000</pubDate>
		<dc:creator>Logan Koester</dc:creator>
		
		<category><![CDATA[xchat]]></category>

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

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

		<guid isPermaLink="false">http://blog.logankoester.com/scripts/slashhardcore</guid>
		<description><![CDATA[I updated this script! Forgot to bind the /hardcore command before. Grab it now!
I was surprised how easy it is to write an XChat plugin in Ruby, even though it would be cooler to see a the xchat-ruby bindings pimped out DSL style&#8230;oh well.
Download slashhardcore.rb
Windows users must modify @launcher to the path to their Winamp, [...]]]></description>
			<content:encoded><![CDATA[<p class="new">I updated this script! Forgot to bind the /hardcore command before. Grab it <a href="http://logankoester.com/files/slashhardcore.rb">now</a>!</p>
<p>I was surprised how easy it is to write an <a href="http://www.xchat.org/">XChat</a> plugin in <a href="http://www.ruby-lang.org/en/">Ruby</a>, even though it would be cooler to see a the xchat-ruby bindings pimped out <a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language">DSL</a> style&#8230;oh well.</p>
<p class="download">Download <a href="http://logankoester.com/files/slashhardcore.rb">slashhardcore.rb</a></p>
<p class="information">Windows users must modify <strong>@launcher</strong> to the path to their Winamp, Firefox, IE, or other shoutcast-compatible player.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#008000; font-style:italic;"># slashhardcore.rb - A faster way to tune in than the playlist bot.</span>
<span style="color:#008000; font-style:italic;"># Should work on Windows if you set a valid browser/winamp location.</span>
<span style="color:#008000; font-style:italic;">#</span>
<span style="color:#008000; font-style:italic;"># Usage: Put in your $HOME/.xchat2 directory to autoload, and restart xchat,</span>
<span style="color:#008000; font-style:italic;"># or type &quot;/load /path/to/slashhardcore.rb&quot;</span>
<span style="color:#008000; font-style:italic;">#</span>
<span style="color:#008000; font-style:italic;"># Commands: /pls &lt;station, /stations (list stations), /hardcore</span>
<span style="color:#008000; font-style:italic;">#</span>
<span style="color:#008000; font-style:italic;"># Author: Logan Koester &lt;logan@logankoester.com&gt;</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">include</span> XChatRuby
&nbsp;
<span style="color:#9966CC; font-weight:bold;">class</span> SlashHardcore &lt; XChatRubyPlugin
&nbsp;
	attr_accessor <span style="color:#ff3333; font-weight:bold;">:launcher</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> initialize<span style="color:#006600; font-weight:bold;">&#40;</span> plugin <span style="color:#006600; font-weight:bold;">&#41;</span>
		<span style="color:#0066ff; font-weight:bold;">@launcher</span> = <span style="color:#996600;">&quot;/usr/bin/firefox&quot;</span>
		hook_command<span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#996600;">&quot;pls&quot;</span>, XCHAT_PRI_NORM,
			method <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#ff3333; font-weight:bold;">:pls</span> <span style="color:#006600; font-weight:bold;">&#41;</span>,
			<span style="color:#996600;">&quot;Use /pls &lt;station&gt; to tune in. Use /stations to check list
			of stations at di.fm&quot;</span>
		<span style="color:#006600; font-weight:bold;">&#41;</span>
		hook_command<span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#996600;">&quot;stations&quot;</span>, XCHAT_PRI_NORM,
			method <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#ff3333; font-weight:bold;">:stations_list</span> <span style="color:#006600; font-weight:bold;">&#41;</span>,
			<span style="color:#996600;">&quot;Fetches an updated list of DI.fm stations&quot;</span>
		<span style="color:#006600; font-weight:bold;">&#41;</span>
		hook_command<span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#996600;">&quot;hardcore&quot;</span>, XCHAT_PRI_NORM,
			method <span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#ff3333; font-weight:bold;">:hardcore</span> <span style="color:#006600; font-weight:bold;">&#41;</span>,
			<span style="color:#996600;">&quot;Tunes into the happyhardcore.com radio stream&quot;</span>
		<span style="color:#006600; font-weight:bold;">&#41;</span>
		puts_fmt <span style="color:#996600;">&quot;Digitally Imported!&quot;</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#008000; font-style:italic;"># Alias for /pls hardcore</span>
	<span style="color:#9966CC; font-weight:bold;">def</span> hardcore <span style="color:#006600; font-weight:bold;">&#40;</span>words, words_eol, data<span style="color:#006600; font-weight:bold;">&#41;</span>
		puts_fmt <span style="color:#996600;">&quot;Hardcore is good for you!&quot;</span>
		play <span style="color:#996600;">&quot;hardcore&quot;</span>
		<span style="color:#0000FF; font-weight:bold;">return</span> XCHAT_EAT_ALL
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#008000; font-style:italic;"># Tunes you in using your browses's default application</span>
	<span style="color:#008000; font-style:italic;"># for *.pls files</span>
	<span style="color:#9966CC; font-weight:bold;">def</span> pls <span style="color:#006600; font-weight:bold;">&#40;</span>words, words_eol, data<span style="color:#006600; font-weight:bold;">&#41;</span>
		station = words<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>
		puts_fmt <span style="color:#996600;">&quot;Tuning into #{station} (using #{@launcher})&quot;</span>
		<span style="color:#0066ff; font-weight:bold;">@plugin</span>.<span style="color:#9900CC;">command</span><span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#996600;">&quot;/msg #candyball test&quot;</span> <span style="color:#006600; font-weight:bold;">&#41;</span>
		play station
		<span style="color:#0000FF; font-weight:bold;">return</span> XCHAT_EAT_ALL
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#9966CC; font-weight:bold;">def</span> play <span style="color:#006600; font-weight:bold;">&#40;</span>station<span style="color:#006600; font-weight:bold;">&#41;</span>
		<span style="color:#CC0066; font-weight:bold;">exec</span> <span style="color:#996600;">&quot;#{@launcher} http://di.fm/mp3/#{station}.pls&quot;</span> <span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#CC0066; font-weight:bold;">fork</span> == <span style="color:#0000FF; font-weight:bold;">nil</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
	<span style="color:#008000; font-style:italic;"># Returns the playlist filenames of playlists at di.fm</span>
	<span style="color:#9966CC; font-weight:bold;">def</span> stations_list <span style="color:#006600; font-weight:bold;">&#40;</span>words, words_eol, data<span style="color:#006600; font-weight:bold;">&#41;</span>
		<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'open-uri'</span>
		uri = <span style="color:#996600;">&quot;http://www.di.fm/mobile/?type=mp3&quot;</span>
		index = <span style="color:#CC00FF; font-weight:bold;">URI</span>.<span style="color:#9900CC;">parse</span> uri
		list = index.<span style="color:#9900CC;">read</span>.<span style="color:#9900CC;">to_s</span>.<span style="color:#9900CC;">scan</span><span style="color:#006600; font-weight:bold;">&#40;</span>/=<span style="color:#996600;">&quot;<span style="color:#000099;">\/</span>mp3<span style="color:#000099;">\/</span>(.*)<span style="color:#000099;">\.</span>pls/).flatten
		puts_fmt list.join &quot;</span>, <span style="color:#996600;">&quot; # CSV string
		return XCHAT_EAT_ALL
	end
end</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.logankoester.com/scripts/slashhardcore/feed</wfw:commentRss>
		</item>
		<item>
		<title>killevery is what happens when programmers don&#8217;t sleep</title>
		<link>http://blog.logankoester.com/scripts/killevery-is-killall-by-process-name</link>
		<comments>http://blog.logankoester.com/scripts/killevery-is-killall-by-process-name#comments</comments>
		<pubDate>Wed, 22 Aug 2007 09:42:16 +0000</pubDate>
		<dc:creator>Logan Koester</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

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

		<guid isPermaLink="false">http://blog.logankoester.com/scripts/killevery-is-killall-by-process-name</guid>
		<description><![CDATA[A simple Ruby script to kill all processes with a specific name.
Looking back on what I&#8217;ve done after a night&#8217;s rest with mixed horror and amusement, it seems this script is completely and totally useless, unless you&#8217;re looking for a half-hearted reimplementation of killall in Ruby. Why the hell did I write this?
Download the script [...]]]></description>
			<content:encoded><![CDATA[<p>A simple Ruby script to kill all processes with a specific name.</p>
<p class="new">Looking back on what I&#8217;ve done after a night&#8217;s rest with mixed horror and amusement, it seems this script is completely and totally useless, unless you&#8217;re looking for a half-hearted reimplementation of killall in Ruby. Why the hell did I write this?</p>
<p class="download"><a href="http://logankoester.com/files/killevery">Download the script</a> to <strong>/usr/bin</strong> (or wherever) and <strong>chmod +x ./killevery</strong></p>
<div style="text-align: center;">
<object width="425" height="350">
<param name="movie" value="http://www.youtube.com/v/uDL1ryxnbB8"></param>
<param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/uDL1ryxnbB8" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>
</div>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#008000; font-style:italic;">#!/usr/bin/ruby</span>
<span style="color:#9966CC; font-weight:bold;">def</span> killevery<span style="color:#006600; font-weight:bold;">&#40;</span>victim, options<span style="color:#006600; font-weight:bold;">&#41;</span>
	processes = <span style="color:#996600;">`ps -A | grep #{victim}`</span>.<span style="color:#9900CC;">scan</span><span style="color:#006600; font-weight:bold;">&#40;</span>/<span style="color:#006600; font-weight:bold;">&#40;</span>d+<span style="color:#006600; font-weight:bold;">&#41;</span> .<span style="color:#9900CC;">*</span>/<span style="color:#006600; font-weight:bold;">&#41;</span>
	<span style="color:#9966CC; font-weight:bold;">if</span> processes.<span style="color:#9900CC;">length</span> &amp;gt; <span style="color:#006666;">0</span>
		<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;Killing #{processes.length} processes named #{victim}&quot;</span>
		processes.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> |p|
			<span style="color:#CC0066; font-weight:bold;">print</span> <span style="color:#996600;">`kill #{options} #{p}`</span>
		<span style="color:#006600; font-weight:bold;">&#125;</span>
	<span style="color:#9966CC; font-weight:bold;">else</span>
		<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;No processes are named #{victim}.&quot;</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">if</span> $*.<span style="color:#9900CC;">length</span> &amp;lt; <span style="color:#006666;">1</span>
	<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;Kill every process named &amp;gt;name&amp;lt;. Takes the same parameters as killall&quot;</span>
<span style="color:#9966CC; font-weight:bold;">else</span>
	killevery<span style="color:#006600; font-weight:bold;">&#40;</span>$*.<span style="color:#9900CC;">pop</span>, $*.<span style="color:#9900CC;">join</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">' '</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.logankoester.com/scripts/killevery-is-killall-by-process-name/feed</wfw:commentRss>
		</item>
		<item>
		<title>Installing Miro on Fedora Core 7</title>
		<link>http://blog.logankoester.com/patches/installing-miro-on-fedora-core-7</link>
		<comments>http://blog.logankoester.com/patches/installing-miro-on-fedora-core-7#comments</comments>
		<pubDate>Wed, 22 Aug 2007 01:58:58 +0000</pubDate>
		<dc:creator>Logan Koester</dc:creator>
		
		<category><![CDATA[Patches]]></category>

		<guid isPermaLink="false">http://blog.logankoester.com/patches/installing-miro-on-fedora-core-7</guid>
		<description><![CDATA[The official rpm provided at http://www.getmiro.com/download/ is dependent on an outdated Firefox.  If you have problems, try this:

Download my fixed Miro-0.9.8-1.fc7.i386.rpm
Run sudo yum &#8211;nogpgcheck localinstall Miro-0.9.8-1.fc7.i386.rpm

Enjoy!
]]></description>
			<content:encoded><![CDATA[<p>The official rpm provided at <a href="http://www.getmiro.com/download/">http://www.getmiro.com/download/</a> is dependent on an outdated Firefox.  If you have problems, try this:</p>
<ol>
<li>Download my fixed <a href="http://logankoester.com/files/Miro-0.9.8-1.fc7.i386.rpm" title="Miro-0.9.8-1.fc7.i386.rpm">Miro-0.9.8-1.fc7.i386.rpm</a></li>
<li>Run sudo yum &#8211;nogpgcheck localinstall Miro-0.9.8-1.fc7.i386.rpm</li>
</ol>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.logankoester.com/patches/installing-miro-on-fedora-core-7/feed</wfw:commentRss>
		</item>
		<item>
		<title>Hello again, world!</title>
		<link>http://blog.logankoester.com/announcements/hello-again-world</link>
		<comments>http://blog.logankoester.com/announcements/hello-again-world#comments</comments>
		<pubDate>Sun, 12 Aug 2007 23:49:15 +0000</pubDate>
		<dc:creator>Logan Koester</dc:creator>
		
		<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://blog.logankoester.com/announcements/there-and-back-again</guid>
		<description><![CDATA[
Maybe you&#8217;ve noticed that my blog, until now known as Skin Deep, hasn&#8217;t been updated in a while. Well, there are three reasons for this.

Wordpress is a complete and total pain in the ass. In particular, my half-assed theme was always breaking. Okay, maybe that&#8217;s my fault  
Tumblr was serving my needs quite well, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.logankoester.com/wp-content/uploads/2007/08/there_and_back_again.png" style="margin: 10px; float: right" height="249" width="287" /></p>
<p>Maybe you&#8217;ve noticed that my blog, until now known as <a href="http://skindeep.logankoester.com/" title="Skin Deep with Logan Koester">Skin Deep</a>, hasn&#8217;t been updated in a while. Well, there are three reasons for this.</p>
<ol>
<li>Wordpress is a complete and total pain in the ass. In particular, my half-assed theme was always breaking. Okay, maybe that&#8217;s my fault <img src='http://blog.logankoester.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </li>
<li><a href="http://logankoester.tumblr.com/" title="Logan Koester's Tumblelog">Tumblr</a> was serving my needs quite well, except when I needed special formatting or one of my feeds didn&#8217;t parse correctly.</li>
<li style="clear: both;">I rarely have time for lengthy, proofread editorial-style blogging, and was completely paranoid about bothering my subscribers with posts that may not be of interest. For the most part, <a href="http://twitter.com/logankoester">Twitter</a> has helped me overcome that phobia. From here on out, it&#8217;s my blog, and you&#8217;ll eat what I decide to feed ya.</li>
</ol>
<p>However, I&#8217;ve outgrown Tumblr after too many instances where I really needed something to look or work a bit differently than the default, and had no way to customize it beyond Yahoo Pipes -style solutions.</p>
<p>So, after much consideration, I&#8217;m giving Wordpress another go. It was my discovery of <span class="authordata"><span class="vcard author"><a href="http://www.deanjrobinson.com" title="deanjrobinson">dean.j.robinson</a></span></span>&#8217;s fantastic &#8220;<a href="http://www.deanjrobinson.com/wordpress/redoable" title="Redoable (wordpress theme)">Redoable</a>&#8221; theme that finally pushed me over the edge. Let me know if you like it as much as I do; I think it&#8217;s pretty damn sexy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.logankoester.com/announcements/hello-again-world/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
