<?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"
	>

<channel>
	<title>Dirk.Net</title>
	<atom:link href="http://dirk.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://dirk.net</link>
	<description>Ecce loco!</description>
	<pubDate>Sat, 12 May 2012 18:25:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Thumbs from Downloaded Images in Clojure</title>
		<link>http://dirk.net/2012/05/12/thumbs-from-downloaded-images-in-clojure/</link>
		<comments>http://dirk.net/2012/05/12/thumbs-from-downloaded-images-in-clojure/#comments</comments>
		<pubDate>Sat, 12 May 2012 18:23:14 +0000</pubDate>
		<dc:creator>dirk</dc:creator>
		
		<category><![CDATA[Clojure]]></category>

		<guid isPermaLink="false">http://dirk.net/2012/05/12/thumbs-from-downloaded-images-in-clojure/</guid>
		<description><![CDATA[The code creates a thumb from either a local file or a remote URI. It combines ideas from a&#160;blog post dealing with image downoads in clojure and an older post dealing with thumbnail creation.
Example usage:

(make-thumbnail-from-stream&#160;some-image-url (str &#8220;~/my_thumbs/&#8221; (some-image-id) &#8220;.png&#8221;) 100)


Enjoy!










]]></description>
			<content:encoded><![CDATA[<p>The code creates a thumb from either a local file or a remote URI. It combines ideas from a&nbsp;blog post dealing with <a href="http://users.utu.fi/machra/posts/2011-08-24-2-reddit-clojure.html">image downoads in clojure </a>and an older post dealing with <a href="http://briancarper.net/blog/465/">thumbnail creation.</a></p>
<p>Example usage:</p>
<blockquote>
<p>(make-thumbnail-from-stream&nbsp;some-image-url (str &#8220;~/my_thumbs/&#8221; (some-image-id) &#8220;.png&#8221;) 100)</p>
</blockquote>
<pre><script src="https://gist.github.com/2667994.js?file=gistfile1.clj"></script></pre>
<p>Enjoy!</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdirk.net%2F2012%2F05%2F12%2Fthumbs-from-downloaded-images-in-clojure%2F&amp;title=Thumbs+from+Downloaded+Images+in+Clojure" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdirk.net%2F2012%2F05%2F12%2Fthumbs-from-downloaded-images-in-clojure%2F&amp;title=Thumbs+from+Downloaded+Images+in+Clojure" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdirk.net%2F2012%2F05%2F12%2Fthumbs-from-downloaded-images-in-clojure%2F&amp;title=Thumbs+from+Downloaded+Images+in+Clojure" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdirk.net%2F2012%2F05%2F12%2Fthumbs-from-downloaded-images-in-clojure%2F&amp;title=Thumbs+from+Downloaded+Images+in+Clojure" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdirk.net%2F2012%2F05%2F12%2Fthumbs-from-downloaded-images-in-clojure%2F&amp;title=Thumbs+from+Downloaded+Images+in+Clojure', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdirk.net%2F2012%2F05%2F12%2Fthumbs-from-downloaded-images-in-clojure%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdirk.net%2F2012%2F05%2F12%2Fthumbs-from-downloaded-images-in-clojure%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdirk.net%2F2012%2F05%2F12%2Fthumbs-from-downloaded-images-in-clojure%2F&amp;title=Thumbs+from+Downloaded+Images+in+Clojure" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdirk.net%2F2012%2F05%2F12%2Fthumbs-from-downloaded-images-in-clojure%2F&amp;title=Thumbs+from+Downloaded+Images+in+Clojure" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://dirk.net/2012/05/12/thumbs-from-downloaded-images-in-clojure/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Naïveté to Brilliance</title>
		<link>http://dirk.net/2012/02/21/naivete-to-brilliance/</link>
		<comments>http://dirk.net/2012/02/21/naivete-to-brilliance/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 07:12:07 +0000</pubDate>
		<dc:creator>dirk</dc:creator>
		
		<category><![CDATA[Clojure]]></category>

		<guid isPermaLink="false">http://dirk.net/2012/02/21/naivete-to-brilliance/</guid>
		<description><![CDATA[Unlike Scala, even beginning learners of Clojure will experience the fun of functional programming almost immediately.&#160;
Converting the Rails function &#8220;simple_format&#8221; from Ruby

def simple_format(text, html_options={}, options={})&#160;&#160;&#160;&#160;&#160;&#160;&#160; text = text ? text.to_str : &#8221;&#160;&#160;&#160;&#160;&#160;&#160;&#160; text = text.dup if text.frozen?&#160;&#160;&#160;&#160;&#160;&#160;&#160; start_tag = tag(&#8217;p', html_options, true)&#160;&#160;&#160;&#160;&#160;&#160;&#160; text.gsub!(/\r\n?/, &#8220;\n&#8221;)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; # \r\n and \r -&#62; \n&#160;&#160;&#160;&#160;&#160;&#160;&#160; text.gsub!(/\n\n+/, &#8220;&#60;/p&#62;\n\n#{start_tag}&#8221;)&#160; # 2+ newline&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Unlike Scala, even beginning learners of <a href="http://clojure.org/">Clojure</a> will experience the fun of functional programming almost immediately.&nbsp;</p>
<p>Converting the Rails function &ldquo;simple_format&rdquo; from Ruby</p>
<blockquote>
<p>def simple_format(text, html_options={}, options={})<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text = text ? text.to_str : &#8221;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text = text.dup if text.frozen?<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start_tag = tag(&#8217;p', html_options, true)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text.gsub!(/\r\n?/, &#8220;\n&#8221;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # \r\n and \r -&gt; \n<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text.gsub!(/\n\n+/, &#8220;&lt;/p&gt;\n\n#{start_tag}&#8221;)&nbsp; # 2+ newline&nbsp; -&gt; paragraph<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text.gsub!(/([^\n]\n)(?=[^\n])/, &#8216;\1&lt;br /&gt;&#8217;) # 1 newline&nbsp;&nbsp; -&gt; br<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text.insert 0, start_tag<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text.concat(&#8221;&lt;/p&gt;&#8221;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text = sanitize(text) unless options[:sanitize] == false<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end</p>
</blockquote>
<p>to Clojure (leaving out options)</p>
<blockquote>
<p>(defn simple-format [text]<br />&nbsp; (let [patterns&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {#"\r\n?" "\n"&nbsp; #"\n\n+" "&lt;/p&gt;\n\n&lt;p&gt;" #"([^\n]\n)(?=[^\n])&#8221; (str #&#8221;$1&#8243;&nbsp; &#8220;&lt;br /&gt;&#8221;)}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]<br />&nbsp;&nbsp;&nbsp; (str &#8220;&lt;p&gt;&#8221; (reduce #(clojure.string/replace %1&nbsp; (key %2) (val %2)) text patterns) &#8220;&lt;/p&gt;&#8221;)))</p>
</blockquote>
<p>illustrates the fundamental&nbsp;naïveté of imperative programming with its silly reassignments, incidental state and mutability. It&#8217;s laughing at this and marvelling&nbsp;at the sheer brilliance of Clojure in equal measure that make Clojure so much fun.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdirk.net%2F2012%2F02%2F21%2Fnaivete-to-brilliance%2F&amp;title=Na%C3%AFvet%C3%A9+to+Brilliance" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdirk.net%2F2012%2F02%2F21%2Fnaivete-to-brilliance%2F&amp;title=Na%C3%AFvet%C3%A9+to+Brilliance" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdirk.net%2F2012%2F02%2F21%2Fnaivete-to-brilliance%2F&amp;title=Na%C3%AFvet%C3%A9+to+Brilliance" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdirk.net%2F2012%2F02%2F21%2Fnaivete-to-brilliance%2F&amp;title=Na%C3%AFvet%C3%A9+to+Brilliance" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdirk.net%2F2012%2F02%2F21%2Fnaivete-to-brilliance%2F&amp;title=Na%C3%AFvet%C3%A9+to+Brilliance', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdirk.net%2F2012%2F02%2F21%2Fnaivete-to-brilliance%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdirk.net%2F2012%2F02%2F21%2Fnaivete-to-brilliance%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdirk.net%2F2012%2F02%2F21%2Fnaivete-to-brilliance%2F&amp;title=Na%C3%AFvet%C3%A9+to+Brilliance" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdirk.net%2F2012%2F02%2F21%2Fnaivete-to-brilliance%2F&amp;title=Na%C3%AFvet%C3%A9+to+Brilliance" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://dirk.net/2012/02/21/naivete-to-brilliance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>LessCss / Less.js With &#8211;watch Option Watching Included Files</title>
		<link>http://dirk.net/2011/12/09/lessjs-lessc-command-with-watch-option-watching-included-files/</link>
		<comments>http://dirk.net/2011/12/09/lessjs-lessc-command-with-watch-option-watching-included-files/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 18:56:05 +0000</pubDate>
		<dc:creator>dirk</dc:creator>
		
		<category><![CDATA[LessCss]]></category>

		<guid isPermaLink="false">http://dirk.net/2011/12/09/lessjs-with-watch-option/</guid>
		<description><![CDATA[Needed a less css compiler who watches changes to a main .less file as well as all those include with an @import statement.
Weighing the options:
One could just use an old version of the less gem that still supported the —watch option, i.e. the 1.x versions. However, the gem won&#8217;t track included/imported files, the obsolete more plugin [...]]]></description>
			<content:encoded><![CDATA[<p>Needed a <a href="http://www.lesscss.org/">less</a> css compiler who watches changes to a main .less file as well as all those include with an @import statement.</p>
<h3>Weighing the options:</h3>
<p>One could just use an old version of the <a href="http://rubygems.org/gems/less/versions">less gem</a> that still supported the —watch option, i.e. the 1.x versions. However, the gem won&#8217;t track included/imported files, the obsolete <a href="https://github.com/cloudhead/more">more plugin</a> was required for this in Ruby on Rails.</p>
<p>Peeking over the platform wall, the <a href="http://www.dotlesscss.org/">dotless</a> compiler does all this well under Windows and it&#8217;s very fast. However, running this app with mono on Linux will not work with the —watch option, it will stop watching files after all and any file changes. This may be due to different backends of the mono FileSystemWatcher implementation on different Linux platforms, so YMMV.</p>
<p>Meanwhile, the author of less.js has <a href="https://github.com/cloudhead/less.js/pull/194">declined</a> to support the —watch option and has <a href="https://github.com/cloudhead/less.js/pull/246#issuecomment-1869806">rejected</a> at least one merge request with this functionality.</p>
<h3>Solution:</h3>
<p>Alas,  there&#8217;s a fork that supports watching the main file as well as all includes:</p>
<blockquote><p><a href="https://github.com/wvl/less.js">https://github.com/wvl/less.js</a></p></blockquote>
<p>It works great and is stable. All you have to do is clone the repo and add bin/lessc to your path.</p>
<p>Now with a <a href="http://nodejs.org/">node</a> installation (since recently there is a Windows installer) you should be good to go with silent and effortless server side compilation of less on all platforms.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdirk.net%2F2011%2F12%2F09%2Flessjs-lessc-command-with-watch-option-watching-included-files%2F&amp;title=LessCss+%2F+Less.js+With+%26%238211%3Bwatch+Option+Watching+Included+Files" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F12%2F09%2Flessjs-lessc-command-with-watch-option-watching-included-files%2F&amp;title=LessCss+%2F+Less.js+With+%26%238211%3Bwatch+Option+Watching+Included+Files" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F12%2F09%2Flessjs-lessc-command-with-watch-option-watching-included-files%2F&amp;title=LessCss+%2F+Less.js+With+%26%238211%3Bwatch+Option+Watching+Included+Files" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdirk.net%2F2011%2F12%2F09%2Flessjs-lessc-command-with-watch-option-watching-included-files%2F&amp;title=LessCss+%2F+Less.js+With+%26%238211%3Bwatch+Option+Watching+Included+Files" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F12%2F09%2Flessjs-lessc-command-with-watch-option-watching-included-files%2F&amp;title=LessCss+%2F+Less.js+With+%26%238211%3Bwatch+Option+Watching+Included+Files', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdirk.net%2F2011%2F12%2F09%2Flessjs-lessc-command-with-watch-option-watching-included-files%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdirk.net%2F2011%2F12%2F09%2Flessjs-lessc-command-with-watch-option-watching-included-files%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdirk.net%2F2011%2F12%2F09%2Flessjs-lessc-command-with-watch-option-watching-included-files%2F&amp;title=LessCss+%2F+Less.js+With+%26%238211%3Bwatch+Option+Watching+Included+Files" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F12%2F09%2Flessjs-lessc-command-with-watch-option-watching-included-files%2F&amp;title=LessCss+%2F+Less.js+With+%26%238211%3Bwatch+Option+Watching+Included+Files" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://dirk.net/2011/12/09/lessjs-lessc-command-with-watch-option-watching-included-files/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Debugging Scala with IntelliJ and the SBT Plugin</title>
		<link>http://dirk.net/2011/10/10/debugging-scala-with-intellij-and-the-sbt-plugin/</link>
		<comments>http://dirk.net/2011/10/10/debugging-scala-with-intellij-and-the-sbt-plugin/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 00:30:29 +0000</pubDate>
		<dc:creator>dirk</dc:creator>
		
		<category><![CDATA[SBT]]></category>

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

		<guid isPermaLink="false">http://dirk.net/2011/10/10/debugging-scala-with-intellij-and-the-sbt-plugin/</guid>
		<description><![CDATA[Here&#8217;s the correct setup, including the remote build configuration:
http://blog.morroni.com/2011/06/30/debugging-scala-projects-in-intellij/comment-page-1/
You may have to restart the IDE to get the debugger to stop when running from the SBT console. Yes, you can actually run your tests on the SBT console that comes with the SBT plugin for IntelliJ (test-only etc.), set breakpoints on your test code, and [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the correct setup, including the remote build configuration:</p>
<p><a href="http://blog.morroni.com/2011/06/30/debugging-scala-projects-in-intellij/comment-page-1/">http://blog.morroni.com/2011/06/30/debugging-scala-projects-in-intellij/comment-page-1/</a></p>
<p>You may have to restart the IDE to get the debugger to stop when running from the SBT console. Yes, you can actually run your tests on the SBT console that comes with the SBT plugin for IntelliJ (test-only etc.), set breakpoints on your test code, and the debugger will open when it hits the break points. This is really cool.</p>
<p><a href="http://dirk.net/wordpress/wp-content/uploads/2011/10/pxsnapshot2.png"><img height="446" alt="Snapshot2" src="http://dirk.net/wordpress/wp-content/uploads/2011/10/pxsnapshot2.png" width="728" align="left" border="0" /></a></p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdirk.net%2F2011%2F10%2F10%2Fdebugging-scala-with-intellij-and-the-sbt-plugin%2F&amp;title=Debugging+Scala+with+IntelliJ+and+the+SBT+Plugin" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F10%2F10%2Fdebugging-scala-with-intellij-and-the-sbt-plugin%2F&amp;title=Debugging+Scala+with+IntelliJ+and+the+SBT+Plugin" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F10%2F10%2Fdebugging-scala-with-intellij-and-the-sbt-plugin%2F&amp;title=Debugging+Scala+with+IntelliJ+and+the+SBT+Plugin" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdirk.net%2F2011%2F10%2F10%2Fdebugging-scala-with-intellij-and-the-sbt-plugin%2F&amp;title=Debugging+Scala+with+IntelliJ+and+the+SBT+Plugin" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F10%2F10%2Fdebugging-scala-with-intellij-and-the-sbt-plugin%2F&amp;title=Debugging+Scala+with+IntelliJ+and+the+SBT+Plugin', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdirk.net%2F2011%2F10%2F10%2Fdebugging-scala-with-intellij-and-the-sbt-plugin%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdirk.net%2F2011%2F10%2F10%2Fdebugging-scala-with-intellij-and-the-sbt-plugin%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdirk.net%2F2011%2F10%2F10%2Fdebugging-scala-with-intellij-and-the-sbt-plugin%2F&amp;title=Debugging+Scala+with+IntelliJ+and+the+SBT+Plugin" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F10%2F10%2Fdebugging-scala-with-intellij-and-the-sbt-plugin%2F&amp;title=Debugging+Scala+with+IntelliJ+and+the+SBT+Plugin" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://dirk.net/2011/10/10/debugging-scala-with-intellij-and-the-sbt-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rails Migration to Convert all Table Names and Column Names to underscore</title>
		<link>http://dirk.net/2011/08/30/rails-migration-to-convert-all-table-names-and-column-names-to-underscore/</link>
		<comments>http://dirk.net/2011/08/30/rails-migration-to-convert-all-table-names-and-column-names-to-underscore/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 21:52:37 +0000</pubDate>
		<dc:creator>dirk</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://dirk.net/2011/08/30/rails-migration-to-convert-all-table-names-and-column-names-to-underscore/</guid>
		<description><![CDATA[This may be useful for legacy database, whose table and column names are in CamelCase. Use with extreme caution:

class ChangeAllColumnsToUnderscore &#60; ActiveRecord::Migration&#160; include ActiveRecord::ConnectionAdapters::SchemaStatements&#160; require &#8216;active_record/connection_adapters/abstract_adapter&#8217;
&#160; #not needed in Rails 3&#160; #pilfered from here:&#160; #http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-column_exists-3F&#160; def self.column_exists?(table_name, column_name, type = nil, options = {})&#160;&#160;&#160; columns(table_name).any?{ &#124;c&#124; c.name == column_name.to_s &#38;&#38;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (!type&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124;&#124; c.type == type) [...]]]></description>
			<content:encoded><![CDATA[<p>This may be useful for legacy database, whose table and column names are in CamelCase. Use with extreme caution:</p>
<blockquote>
<p><font face="Courier New">class ChangeAllColumnsToUnderscore &lt; ActiveRecord::Migration<br />&nbsp; include ActiveRecord::ConnectionAdapters::SchemaStatements<br />&nbsp; require &#8216;active_record/connection_adapters/abstract_adapter&#8217;</font></p>
<p><font face="Courier New">&nbsp; #not needed in Rails 3<br />&nbsp; #pilfered from here:<br />&nbsp; #http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-column_exists-3F<br />&nbsp; def self.column_exists?(table_name, column_name, type = nil, options = {})<br />&nbsp;&nbsp;&nbsp; columns(table_name).any?{ |c| c.name == column_name.to_s &amp;&amp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (!type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || c.type == type) &amp;&amp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (!options[:limit]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || c.limit == options[:limit]) &amp;&amp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (!options[:precision]&nbsp; || c.precision == options[:precision]) &amp;&amp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (!options[:scale]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || c.scale == options[:scale]) }<br />&nbsp; end</font></p>
<p><font face="Courier New">&nbsp; def self.up<br />&nbsp;&nbsp;&nbsp; tables.reject {|t| t == &#8220;schema_migrations&#8221;}.each do |table|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; columns(table.to_sym).each do |column|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unless self.column_exists?(table.to_sym, column.name.underscore.to_sym)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rename_column table.to_sym, column.name.to_sym, column.name.underscore.to_sym<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unless table_exists?(table.underscore.to_sym)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rename_table table, table.underscore<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />&nbsp;&nbsp;&nbsp; end<br />&nbsp; end</font></p>
<p><font face="Courier New">&nbsp; def self.down<br />&nbsp;&nbsp;&nbsp; tables.reject {|t| t == &#8220;schema_migrations&#8221;}.each do |table|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; columns(table.to_sym).each do |column|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unless column_exists?(table.to_sym, column.name.camelize.to_sym)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rename_column table.to_sym, column.name.to_sym, column.name.camelize.to_sym<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unless table_exists?(table.camelize.to_sym)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rename_table table, table.camelize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<br />&nbsp;&nbsp;&nbsp; end<br />&nbsp; end<br />end</font></p>
</blockquote>
<p>Hope it helps.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F30%2Frails-migration-to-convert-all-table-names-and-column-names-to-underscore%2F&amp;title=Rails+Migration+to+Convert+all+Table+Names+and+Column+Names+to+underscore" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F30%2Frails-migration-to-convert-all-table-names-and-column-names-to-underscore%2F&amp;title=Rails+Migration+to+Convert+all+Table+Names+and+Column+Names+to+underscore" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F30%2Frails-migration-to-convert-all-table-names-and-column-names-to-underscore%2F&amp;title=Rails+Migration+to+Convert+all+Table+Names+and+Column+Names+to+underscore" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F30%2Frails-migration-to-convert-all-table-names-and-column-names-to-underscore%2F&amp;title=Rails+Migration+to+Convert+all+Table+Names+and+Column+Names+to+underscore" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F30%2Frails-migration-to-convert-all-table-names-and-column-names-to-underscore%2F&amp;title=Rails+Migration+to+Convert+all+Table+Names+and+Column+Names+to+underscore', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdirk.net%2F2011%2F08%2F30%2Frails-migration-to-convert-all-table-names-and-column-names-to-underscore%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdirk.net%2F2011%2F08%2F30%2Frails-migration-to-convert-all-table-names-and-column-names-to-underscore%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdirk.net%2F2011%2F08%2F30%2Frails-migration-to-convert-all-table-names-and-column-names-to-underscore%2F&amp;title=Rails+Migration+to+Convert+all+Table+Names+and+Column+Names+to+underscore" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F30%2Frails-migration-to-convert-all-table-names-and-column-names-to-underscore%2F&amp;title=Rails+Migration+to+Convert+all+Table+Names+and+Column+Names+to+underscore" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://dirk.net/2011/08/30/rails-migration-to-convert-all-table-names-and-column-names-to-underscore/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gitosis Installation on OpenSuse</title>
		<link>http://dirk.net/2011/08/22/gitosis-installation-on-opensuse/</link>
		<comments>http://dirk.net/2011/08/22/gitosis-installation-on-opensuse/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 00:50:30 +0000</pubDate>
		<dc:creator>dirk</dc:creator>
		
		<category><![CDATA[Git]]></category>

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

		<guid isPermaLink="false">http://dirk.net/2011/08/22/gitosis-installation-on-opensuse/</guid>
		<description><![CDATA[The repo info is here&#160;(click and expand that page&#8217;s silly javascript widgets), so for OpenSuse 11.4 (use sudo for all commands that need it):

zypper addrepo http://download.opensuse.org/repositories/home:elvigia/openSUSE_11.4/home:elvigia.repo 
zypper refresh 
zypper install gitosis

Then continue as outlined here, slightly adjusted for OpenSuse with user creation: 

groupadd git
useradd git -d /home/git -c &#8216;git version control&#8217; -s /bin/sh -g git [...]]]></description>
			<content:encoded><![CDATA[<p>The repo info is <a href="http://software.opensuse.org/download.html?project=home:elvigia&amp;package=gitosis">here</a>&nbsp;(click and expand that page&#8217;s silly javascript widgets), so for OpenSuse 11.4 (use sudo for all commands that need it):</p>
<blockquote>
<p>zypper addrepo <a href="http://download.opensuse.org/repositories/home:elvigia/openSUSE_11.4/home:elvigia.repo">http://download.opensuse.org/repositories/home:elvigia/openSUSE_11.4/home:elvigia.repo</a> </p>
<p>zypper refresh </p>
<p>zypper install gitosis</p>
</blockquote>
<p>Then continue as outlined <a href="http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way">here</a>, slightly adjusted for OpenSuse with user creation: </p>
<blockquote>
<p>groupadd git</p>
<p>useradd git -d /home/git -c &#8216;git version control&#8217; -s /bin/sh -g git -r -m</p>
<p>sudo -H -u git gitosis-init &lt; /tmp/id_rsa.pub</p>
</blockquote>
<p>Then just proceed with</p>
<blockquote>
<p><code>git clone git@YOUR_SERVER_HOSTNAME:gitosis-admin.git</code></p>
</blockquote>
<p><code><font face="Verdana">on your local machine etc. etc.</font></code></p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F22%2Fgitosis-installation-on-opensuse%2F&amp;title=Gitosis+Installation+on+OpenSuse" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F22%2Fgitosis-installation-on-opensuse%2F&amp;title=Gitosis+Installation+on+OpenSuse" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F22%2Fgitosis-installation-on-opensuse%2F&amp;title=Gitosis+Installation+on+OpenSuse" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F22%2Fgitosis-installation-on-opensuse%2F&amp;title=Gitosis+Installation+on+OpenSuse" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F22%2Fgitosis-installation-on-opensuse%2F&amp;title=Gitosis+Installation+on+OpenSuse', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdirk.net%2F2011%2F08%2F22%2Fgitosis-installation-on-opensuse%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdirk.net%2F2011%2F08%2F22%2Fgitosis-installation-on-opensuse%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdirk.net%2F2011%2F08%2F22%2Fgitosis-installation-on-opensuse%2F&amp;title=Gitosis+Installation+on+OpenSuse" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F22%2Fgitosis-installation-on-opensuse%2F&amp;title=Gitosis+Installation+on+OpenSuse" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://dirk.net/2011/08/22/gitosis-installation-on-opensuse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Install RubyGems Legacy Versions</title>
		<link>http://dirk.net/2011/08/21/install-rubygems-legacy-versions/</link>
		<comments>http://dirk.net/2011/08/21/install-rubygems-legacy-versions/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 12:46:31 +0000</pubDate>
		<dc:creator>dirk</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

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

		<guid isPermaLink="false">http://dirk.net/2011/08/21/install-rubygems-legacy-versions/</guid>
		<description><![CDATA[To install a legacy version of RubyGems, you will need some version installed first, so use aptitude, yum, zypper etc:

apt-get install rubygems 

Then revert to an older version (for example 1.3.6):

gem install rubygems-update -v=1.3.6
update_rubygems

Check your version with 

gem env











]]></description>
			<content:encoded><![CDATA[<p>To install a legacy version of RubyGems, you will need some version installed first, so use aptitude, yum, zypper etc:</p>
<blockquote>
<p>apt-get install rubygems </p>
</blockquote>
<p>Then revert to an older version (for example 1.3.6):</p>
<blockquote>
<p>gem install rubygems-update -v=1.3.6</p>
<p>update_rubygems</p>
</blockquote>
<p>Check your version with </p>
<blockquote>
<p>gem env</p>
</blockquote>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F21%2Finstall-rubygems-legacy-versions%2F&amp;title=Install+RubyGems+Legacy+Versions" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F21%2Finstall-rubygems-legacy-versions%2F&amp;title=Install+RubyGems+Legacy+Versions" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F21%2Finstall-rubygems-legacy-versions%2F&amp;title=Install+RubyGems+Legacy+Versions" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F21%2Finstall-rubygems-legacy-versions%2F&amp;title=Install+RubyGems+Legacy+Versions" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F21%2Finstall-rubygems-legacy-versions%2F&amp;title=Install+RubyGems+Legacy+Versions', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdirk.net%2F2011%2F08%2F21%2Finstall-rubygems-legacy-versions%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdirk.net%2F2011%2F08%2F21%2Finstall-rubygems-legacy-versions%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdirk.net%2F2011%2F08%2F21%2Finstall-rubygems-legacy-versions%2F&amp;title=Install+RubyGems+Legacy+Versions" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F08%2F21%2Finstall-rubygems-legacy-versions%2F&amp;title=Install+RubyGems+Legacy+Versions" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://dirk.net/2011/08/21/install-rubygems-legacy-versions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PostgreSQL - Add a Column to All Tables in the Database Unless it Exists</title>
		<link>http://dirk.net/2011/06/12/postgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists/</link>
		<comments>http://dirk.net/2011/06/12/postgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 15:26:21 +0000</pubDate>
		<dc:creator>dirk</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dirk.net/2011/06/12/postgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists/</guid>
		<description><![CDATA[To be able to use NHibernate &#8211;&#160;and as a general purpose and learning exercise &#8211;&#160; I wanted to write a script that adds a version column of type integer to all tables in the database,&#160;unless such column exists (in Rails the schema_migrations table&#160;has a version column for example). 
In SQL Server we have the &#8220;secret&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>To be able to use NHibernate &ndash;&nbsp;and as a general purpose and learning exercise &ndash;&nbsp; I wanted to write a script that adds a version column of type integer to all tables in the database,&nbsp;unless such column exists (in Rails the schema_migrations table&nbsp;has a version column for example). </p>
<p>In SQL Server we have the &ldquo;secret&rdquo; sproc&nbsp;<a href="http://stackoverflow.com/questions/5146070/add-a-column-if-it-doesnt-exist-to-all-tables">sp_MSforeachtable</a>&nbsp;for this purpose, but how to bend the&nbsp;stricter syntax of&nbsp;plpgslq&nbsp;to achieve something similar?&nbsp;After a number of hours of trial and error, here&#8217;s is a script that actually appears to work, at least with PostgreSQL 9.0 and probably earlier versions:</p>
<p>CREATE OR REPLACE FUNCTION add_version_column_to_all_tables()<br />RETURNS VOID<br />AS $$<br />DECLARE<br />&nbsp;&nbsp;&nbsp; my_row&nbsp;&nbsp;&nbsp; RECORD;<br />BEGIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; FOR my_row IN <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT table_name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM&nbsp;&nbsp; information_schema.tables<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE&nbsp; table_schema = &#8216;public&#8217;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; LOOP<br />&nbsp;&nbsp;&nbsp; IF NOT EXISTS <br />&nbsp;&nbsp;&nbsp; (<br />&nbsp;&nbsp;&nbsp; SELECT attname FROM pg_attribute WHERE attrelid = <br />&nbsp;&nbsp;&nbsp; (SELECT oid FROM pg_class WHERE relname =&nbsp; my_row.table_name )<br />&nbsp;&nbsp;&nbsp;&nbsp; AND attname = &#8216;version&#8217;<br />&nbsp;&nbsp;&nbsp;&nbsp; )<br />&nbsp;&nbsp;&nbsp;&nbsp; THEN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EXECUTE(&#8217;ALTER TABLE &#8216; || my_row.table_name || &#8216; ADD COLUMN version int NOT NULL DEFAULT 0;&#8217;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END IF;<br />&nbsp;&nbsp;&nbsp; END LOOP;<br />END<br />$$<br />LANGUAGE plpgsql;</p>
<p>SELECT add_version_column_to_all_tables();</p>
<p>Im sure this script can be optimized, please post any improvements in the columns.</p>
<p>Hope it helps.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdirk.net%2F2011%2F06%2F12%2Fpostgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists%2F&amp;title=PostgreSQL+-+Add+a+Column+to+All+Tables+in+the+Database+Unless+it+Exists" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F06%2F12%2Fpostgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists%2F&amp;title=PostgreSQL+-+Add+a+Column+to+All+Tables+in+the+Database+Unless+it+Exists" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F06%2F12%2Fpostgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists%2F&amp;title=PostgreSQL+-+Add+a+Column+to+All+Tables+in+the+Database+Unless+it+Exists" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdirk.net%2F2011%2F06%2F12%2Fpostgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists%2F&amp;title=PostgreSQL+-+Add+a+Column+to+All+Tables+in+the+Database+Unless+it+Exists" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F06%2F12%2Fpostgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists%2F&amp;title=PostgreSQL+-+Add+a+Column+to+All+Tables+in+the+Database+Unless+it+Exists', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdirk.net%2F2011%2F06%2F12%2Fpostgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdirk.net%2F2011%2F06%2F12%2Fpostgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdirk.net%2F2011%2F06%2F12%2Fpostgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists%2F&amp;title=PostgreSQL+-+Add+a+Column+to+All+Tables+in+the+Database+Unless+it+Exists" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F06%2F12%2Fpostgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists%2F&amp;title=PostgreSQL+-+Add+a+Column+to+All+Tables+in+the+Database+Unless+it+Exists" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://dirk.net/2011/06/12/postgresql-add-a-column-to-all-tables-in-the-database-unless-it-exists/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Installation von LX-Office auf Ubuntu und mit Eigenem Port</title>
		<link>http://dirk.net/2011/01/07/installation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2/</link>
		<comments>http://dirk.net/2011/01/07/installation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 16:19:26 +0000</pubDate>
		<dc:creator>dirk</dc:creator>
		
		<category><![CDATA[ERP]]></category>

		<guid isPermaLink="false">http://dirk.net/2011/01/07/installation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2/</guid>
		<description><![CDATA[Update: Ich sah gerade diese Anleitung hier, die relativ neu und aktuell ist im Gegensatz zur veralteten Debian Anleitung. Der&#160;untenstende&#160;Eintrag kann vielleicht als Kondensat dienen oder als Hilfe zur Einrichtung eines VirtualHost mit eigenem Port.
Lx-Office ist ein komplettes und recht ausgereiftes Buchhaltungs und ERP-System für Linux, ein Fork von SQL Ledger.
Installation
Mit Firefox runterladen und mit [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update:</strong> Ich sah gerade <a href="http://wiki.lx-office.org/index.php?title=Ubuntu">diese Anleitung hier</a>, die relativ neu und aktuell ist im Gegensatz zur <a href="http://www.lx-office.org/uploads/media/debian_01.pdf">veralteten Debian Anleitung</a>. Der&nbsp;untenstende&nbsp;Eintrag kann vielleicht als Kondensat dienen oder als Hilfe zur Einrichtung eines VirtualHost mit eigenem Port.</p>
<p>Lx-Office ist ein komplettes und recht ausgereiftes <a href="http://www.lx-office.org/index.php">Buchhaltungs und ERP-System für Linux</a>, ein Fork von <a href="http://www.sql-ledger.com/">SQL Ledger</a>.</p>
<h3>Installation</h3>
<p>Mit Firefox runterladen und mit Package-Manger installieren; oder shell:</p>
<blockquote>
<p>wget <a href="http://sourceforge.net/projects/lx-office/files/Lx-Office%20ERP/2.6.1/lx-office-erp_2.6.1-0-all.deb">http://sourceforge.net/projects/lx-office/files/Lx-Office%20ERP/2.6.1/lx-office-erp_2.6.1-0-all.deb</a></p>
<p>sudo dpkg -i lx-office-erp_2.6.1&ndash;0&ndash;all.deb</p>
</blockquote>
<p>Wahrscheinlich git es einige fehlende Dependencies, die im unmittelbaren Anschluss nun mit</p>
<blockquote>
<p>sudo apt-get install -f</p>
</blockquote>
<p>installiert werden können.</p>
<h3>Einstellungen für Apache</h3>
<p>Mein&nbsp;Webserver ist mit Phusion Passenger für Ruby on Rails ausgestattet, die Perl Skripten von LX-Office benötigen also ihren eigenen VirtualHost mit eigenem Port. </p>
<p>Wer nicht Passenger/Rails fährt, braucht die Einstellungen betreffs VirtualHost nicht vorzunehmen, die Einrichtung eines eigenen Ports könnte aber mittelfristig ohnehin flexibler sein.</p>
<p>In /etc/apache2/ports.conf:</p>
<p>NameVirtualHost *:8080<br />Listen 8080</p>
<p>In /etc/apache2/sites-available/default ans Ende</p>
<blockquote>
<p>&lt;VirtualHost *:8080&gt;&nbsp;<br />&nbsp;AddHandler cgi-script .pl<br />&nbsp;Alias /lx-office-erp/ /usr/lib/lx-office-erp/<br />&nbsp;&lt;Directory /usr/lib/lx-office-erp&gt;<br />&nbsp;&nbsp;Order Deny,Allow<br />&nbsp;&nbsp;Allow from All<br />&nbsp;&nbsp;Options +ExecCGI +Includes +FollowSymlinks<br />&nbsp;&lt;/Directory&gt;<br />&nbsp;&lt;Directory /usr/lib/lx-office-erp/users&gt;<br />&nbsp;&nbsp;Order Deny,Allow<br />&nbsp;&nbsp;Deny from All<br />&nbsp;&lt;/Directory&gt;<br />&lt;/VirtualHost&gt;</p>
</blockquote>
<p>Dann </p>
<blockquote>
<p>sudo a2dissite</p>
</blockquote>
<p>und</p>
<blockquote>
<p>sudo a2ensite </p>
</blockquote>
<p>und Apache Neustart.</p>
<h3>Einstellungen für Postgresql</h3>
<p>Wenn noch nicht passiert,&nbsp;<span class="APPLICATION">PL/pgSQL</span> in template1 installieren:</p>
<blockquote><p><font face="CAAAAA+BitstreamVeraSans-Roman"></p>
<p>psql -U postgres template1</p>
<p></font></p>
<p>createlang plpgsql template1</p>
</blockquote>
<h4>In postgresql.conf </h4>
<blockquote>
<p>tcpip_socket = true</p>
</blockquote>
<p>zu setzen funktioniert <strong>nicht</strong> mehr in Postgresql 8.1 +, es muss jetzt stattdessen</p>
<blockquote>
<p><strong>listen_addresses = &#8216;*&#8217;</strong></p>
</blockquote>
<p>gesetzt werden.</p>
<h4>In pg_hba.conf</h4>
<p>Ich hatte guten Erfolg mit</p>
<blockquote>
<p>local all all trust<br />host all all 127.0.0.1 255.0.0.0 trust<br />host all all ::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff trust</p>
</blockquote>
<p>am Ende der Datei wie in der <a href="http://www.lx-office.org/uploads/media/debian_01.pdf">Debian Anleitung</a> empfohlen. Ansonsten ist diese Anleitung weitgehend veraltet.</p>
<p>Dann geht&#8217;s weiter mit</p>
<p><a href="http://localhost:8080/lx-office-erp/admin.pl">http://localhost:8080/lx-office-erp/admin.pl</a></p>
<p>und die Datenbank(en) werden initialisiert. Das ist eigentlich alles selbsterklärend, nur sollte man nicht vergessen, den angelegten Benutzer einer Gruppe mit Vollzugriff zuzuordnen.</p>
<p>YMMV</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdirk.net%2F2011%2F01%2F07%2Finstallation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2%2F&amp;title=Installation+von+LX-Office+auf+Ubuntu+und+mit+Eigenem+Port" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F01%2F07%2Finstallation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2%2F&amp;title=Installation+von+LX-Office+auf+Ubuntu+und+mit+Eigenem+Port" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F01%2F07%2Finstallation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2%2F&amp;title=Installation+von+LX-Office+auf+Ubuntu+und+mit+Eigenem+Port" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdirk.net%2F2011%2F01%2F07%2Finstallation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2%2F&amp;title=Installation+von+LX-Office+auf+Ubuntu+und+mit+Eigenem+Port" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdirk.net%2F2011%2F01%2F07%2Finstallation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2%2F&amp;title=Installation+von+LX-Office+auf+Ubuntu+und+mit+Eigenem+Port', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdirk.net%2F2011%2F01%2F07%2Finstallation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdirk.net%2F2011%2F01%2F07%2Finstallation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdirk.net%2F2011%2F01%2F07%2Finstallation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2%2F&amp;title=Installation+von+LX-Office+auf+Ubuntu+und+mit+Eigenem+Port" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdirk.net%2F2011%2F01%2F07%2Finstallation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2%2F&amp;title=Installation+von+LX-Office+auf+Ubuntu+und+mit+Eigenem+Port" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://dirk.net/2011/01/07/installation-von-lx-office-auf-ubuntu-und-mit-eigenem-port-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Enabling gzip Compression with SOAP4R</title>
		<link>http://dirk.net/2010/12/30/enabling-gzip-compression-with-soap4r/</link>
		<comments>http://dirk.net/2010/12/30/enabling-gzip-compression-with-soap4r/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 02:06:43 +0000</pubDate>
		<dc:creator>dirk</dc:creator>
		
		<category><![CDATA[Ruby on Rails]]></category>

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

		<guid isPermaLink="false">http://dirk.net/2010/12/30/enabling-gzip-compression-with-soap4r/</guid>
		<description><![CDATA[It&#8217;s a one-liner, but info isn&#8217;t easy to find (as usual with soap4r).
When you generate your local driver&#160;with for example
wsdl2ruby.rb --wsdl MyService.wsdl --classdef&#160;MyService --type client --force
and you instantiate your proxy driver like so

ms&#160;= MyService.newms.wiredump_dev = STDERR

you simply add

ms.streamhandler.accept_encoding_gzip = true

That&#8217;s all. No need for custom headers etc.
And: zlib (compression library used by soap4r) is built [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a one-liner, but info isn&#8217;t easy to find (as usual with soap4r).</p>
<p>When you generate your local driver&nbsp;with for example</p>
<pre>wsdl2ruby.rb --wsdl MyService.wsdl --classdef&nbsp;MyService --type client --force</pre>
<p>and you instantiate your proxy driver like so</p>
<blockquote>
<p>ms&nbsp;= MyService.new<br />ms.wiredump_dev = STDERR</p>
</blockquote>
<p>you simply add</p>
<blockquote>
<p><strong>ms.streamhandler.accept_encoding_gzip = true</strong></p>
</blockquote>
<p>That&#8217;s all. No need for custom headers etc.</p>
<p>And: zlib (compression library used by soap4r) is built into Ruby since version 1.8. No need for any gems or other shenenigans.</p>
<h3>Link List</h3>
<p>As an added year-end bonus, here&#8217;s a list of links that helped me with SOAP and ruby over the years:</p>
<p>Excellent SAP article:</p>
<p><a href="http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/505ac48e-0578-2a10-60be-c5ffe14a0134">http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/505ac48e-0578-2a10-60be-c5ffe14a0134</a></p>
<p>Correct usage of wsdl2ruby (must be wsdl2ruby.rb)</p>
<p><a href="http://www.hostingrails.com/236/Using-Web-Services-Description-Language-wsdl2ruby-and-soap4r-as-a-clientI">http://www.hostingrails.com/236/Using-Web-Services-Description-Language-wsdl2ruby-and-soap4r-as-a-clientI</a></p>
<p>ActionWebService:</p>
<p><a href="http://www.datanoise.com/articles/2008/7/2/actionwebservice-is-back">http://www.datanoise.com/articles/2008/7/2/actionwebservice-is-back</a></p>
<p>Links:</p>
<p><a href="http://www.brendonwilson.com/blog/2006/04/02/ruby-soap4r-wsdl-hell/">http://www.brendonwilson.com/blog/2006/04/02/ruby-soap4r-wsdl-hell/</a></p>
<p>WSDL/Ruby:</p>
<p><a href="http://codeidol.com/other/rubyckbk/Web-Services-and-Distributed-Programming/Using-a-WSDL-File-to-Make-SOAP-Calls-Easier/">http://codeidol.com/other/rubyckbk/Web-Services-and-Distributed-Programming/Using-a-WSDL-File-to-Make-SOAP-Calls-Easier/</a> </p>
<p>Very Helpful Detailed Article:</p>
<p><a href="http://www.ibm.com/developerworks/opensource/library/os-ws-rubyrails/index.html">http://www.ibm.com/developerworks/opensource/library/os-ws-rubyrails/index.html</a></p>
<p>xsltproc examples:</p>
<p><a href="http://linux.byexamples.com/archives/463/xslt-processor-command-line/">http://linux.byexamples.com/archives/463/xslt-processor-command-line/</a></p>
<p>xsd2wsdl:</p>
<p><a href="http://jira.springframework.org/secure/attachment/12306/XsdToWsdl.xsl">http://jira.springframework.org/secure/attachment/12306/XsdToWsdl.xsl</a></p>
<p>linked from here:</p>
<p><a href="http://jira.springframework.org/browse/SWS-79">http://jira.springframework.org/browse/SWS-79</a></p>
<p>Don&rsquo;t forget to enable wiredump:</p>
<p>fe.wiredump_dev = STDERR</p>
<p>Get rid of NS1:</p>
<p><a href="http://www.pluitsolutions.com/2007/08/10/remove-n1-namespace-for-soap4r/">http://www.pluitsolutions.com/2007/08/10/remove-n1-namespace-for-soap4r/</a></p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Fdirk.net%2F2010%2F12%2F30%2Fenabling-gzip-compression-with-soap4r%2F&amp;title=Enabling+gzip+Compression+with+SOAP4R" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdirk.net%2F2010%2F12%2F30%2Fenabling-gzip-compression-with-soap4r%2F&amp;title=Enabling+gzip+Compression+with+SOAP4R" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Fdirk.net%2F2010%2F12%2F30%2Fenabling-gzip-compression-with-soap4r%2F&amp;title=Enabling+gzip+Compression+with+SOAP4R" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Fdirk.net%2F2010%2F12%2F30%2Fenabling-gzip-compression-with-soap4r%2F&amp;title=Enabling+gzip+Compression+with+SOAP4R" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Fdirk.net%2F2010%2F12%2F30%2Fenabling-gzip-compression-with-soap4r%2F&amp;title=Enabling+gzip+Compression+with+SOAP4R', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdirk.net%2F2010%2F12%2F30%2Fenabling-gzip-compression-with-soap4r%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Fdirk.net%2F2010%2F12%2F30%2Fenabling-gzip-compression-with-soap4r%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fdirk.net%2F2010%2F12%2F30%2Fenabling-gzip-compression-with-soap4r%2F&amp;title=Enabling+gzip+Compression+with+SOAP4R" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fdirk.net%2F2010%2F12%2F30%2Fenabling-gzip-compression-with-soap4r%2F&amp;title=Enabling+gzip+Compression+with+SOAP4R" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://dirk.net/2010/12/30/enabling-gzip-compression-with-soap4r/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

