<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.2.2" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Logan Koester</title>
	<link>http://blog.logankoester.com</link>
	<description>Freelance PHP / AJAX / Ruby Hacker</description>
	<pubDate>Tue, 11 Sep 2007 15:46:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>
	<language>en</language>
			<geo:lat>43.115874</geo:lat><geo:long>-71.110819</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/skindeep" type="application/rss+xml" /><feedburner:emailServiceId>607937</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fskindeep" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fskindeep" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fskindeep" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.rojo.com/add-subscription?resource=http%3A%2F%2Ffeeds.feedburner.com%2Fskindeep" src="http://blog.rojo.com/RojoWideRed.gif">Subscribe with Rojo</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/skindeep" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fskindeep" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fskindeep" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fskindeep" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fskindeep" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><item>
		<title>slashhardcore.rb is a station tuner for Digitally Imported radio</title>
		<link>http://feeds.feedburner.com/~r/skindeep/~3/149493358/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>
<pre lang="ruby">
# slashhardcore.rb - A faster way to tune in than the playlist bot.
# Should work on Windows if you set a valid browser/winamp location.
#
# Usage: Put in your $HOME/.xchat2 directory to autoload, and restart xchat,
# or type "/load /path/to/slashhardcore.rb"
#
# Commands: /pls <station, /stations (list stations), /hardcore
#
# Author: Logan Koester <logan@logankoester.com>

include XChatRuby

class SlashHardcore < XChatRubyPlugin

	attr_accessor :launcher

	def initialize( plugin )
		@launcher = "/usr/bin/firefox"
		hook_command( "pls", XCHAT_PRI_NORM,
			method ( :pls ),
			"Use /pls <station> to tune in. Use /stations to check list
			of stations at di.fm&#8221;
		)
		hook_command( &#8220;stations&#8221;, XCHAT_PRI_NORM,
			method ( :stations_list ),
			&#8220;Fetches an updated list of DI.fm stations&#8221;
		)
		hook_command( &#8220;hardcore&#8221;, XCHAT_PRI_NORM,
			method ( :hardcore ),
			&#8220;Tunes into the happyhardcore.com radio stream&#8221;
		)
		puts_fmt &#8220;Digitally Imported!&#8221;
	end

	# Alias for /pls hardcore
	def hardcore (words, words_eol, data)
		puts_fmt &#8220;Hardcore is good for you!&#8221;
		play &#8220;hardcore&#8221;
		return XCHAT_EAT_ALL
	end

	# Tunes you in using your browses&#8217;s default application
	# for *.pls files
	def pls (words, words_eol, data)
		station = words[1]
		puts_fmt &#8220;Tuning into #{station} (using #{@launcher})&#8221;
		@plugin.command( &#8220;/msg #candyball test&#8221; )
		play station
		return XCHAT_EAT_ALL
	end

	def play (station)
		exec &#8220;#{@launcher} http://di.fm/mp3/#{station}.pls&#8221; if fork == nil
	end

	# Returns the playlist filenames of playlists at di.fm
	def stations_list (words, words_eol, data)
		require &#8216;open-uri&#8217;
		uri = &#8220;http://www.di.fm/mobile/?type=mp3&#8243;
		index = URI.parse uri
		list = index.read.to_s.scan(/=&#8221;/mp3/(.*).pls/).flatten
		puts_fmt list.join &#8220;, &#8221; # CSV string
		return XCHAT_EAT_ALL
	end
end
</pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/skindeep?a=9CxXl"><img src="http://feeds.feedburner.com/~f/skindeep?i=9CxXl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/skindeep?a=pyk8L"><img src="http://feeds.feedburner.com/~f/skindeep?i=pyk8L" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/skindeep?a=mfn2l"><img src="http://feeds.feedburner.com/~f/skindeep?i=mfn2l" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.logankoester.com/scripts/slashhardcore/feed</wfw:commentRss>
		<enclosure url="http://logankoester.com/files/slashhardcore.rb" length="1803" type="application/ruby" /><feedburner:origLink>http://blog.logankoester.com/scripts/slashhardcore</feedburner:origLink></item>
		<item>
		<title>killevery is what happens when programmers don’t sleep</title>
		<link>http://feeds.feedburner.com/~r/skindeep/~3/146847942/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>
<pre line="0" lang="ruby">
#!/usr/bin/ruby
def killevery(victim, options)
	processes = `ps -A | grep #{victim}`.scan(/(d+) .*/)
	if processes.length &gt; 0
		puts "Killing #{processes.length} processes named #{victim}"
		processes.each { |p|
			print `kill #{options} #{p}`
		}
	else
		puts "No processes are named #{victim}."
	end
end
if $*.length &lt; 1
	puts "Kill every process named &gt;name&lt;. Takes the same parameters as killall"
else
	killevery($*.pop, $*.join(' '))
end
</pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/skindeep?a=yzK3l"><img src="http://feeds.feedburner.com/~f/skindeep?i=yzK3l" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/skindeep?a=36JAL"><img src="http://feeds.feedburner.com/~f/skindeep?i=36JAL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/skindeep?a=bgztl"><img src="http://feeds.feedburner.com/~f/skindeep?i=bgztl" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.logankoester.com/scripts/killevery-is-killall-by-process-name/feed</wfw:commentRss>
		<enclosure url="http://www.youtube.com/v/uDL1ryxnbB8" length="882" type="application/x-shockwave-flash" /><feedburner:origLink>http://blog.logankoester.com/scripts/killevery-is-killall-by-process-name</feedburner:origLink></item>
		<item>
		<title>Installing Miro on Fedora Core 7</title>
		<link>http://feeds.feedburner.com/~r/skindeep/~3/146741852/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>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/skindeep?a=Fr6wl"><img src="http://feeds.feedburner.com/~f/skindeep?i=Fr6wl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/skindeep?a=oh61L"><img src="http://feeds.feedburner.com/~f/skindeep?i=oh61L" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/skindeep?a=6LdHl"><img src="http://feeds.feedburner.com/~f/skindeep?i=6LdHl" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.logankoester.com/patches/installing-miro-on-fedora-core-7/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.logankoester.com/patches/installing-miro-on-fedora-core-7</feedburner:origLink></item>
		<item>
		<title>Hello again, world!</title>
		<link>http://feeds.feedburner.com/~r/skindeep/~3/143515820/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>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/skindeep?a=i6wfl"><img src="http://feeds.feedburner.com/~f/skindeep?i=i6wfl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/skindeep?a=b9rIL"><img src="http://feeds.feedburner.com/~f/skindeep?i=b9rIL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/skindeep?a=vCV6l"><img src="http://feeds.feedburner.com/~f/skindeep?i=vCV6l" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.logankoester.com/announcements/hello-again-world/feed</wfw:commentRss>
		<feedburner:origLink>http://blog.logankoester.com/announcements/hello-again-world</feedburner:origLink></item>
	</channel>
</rss>
