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

<channel>
	<title>Open Sourcery &#187; linux</title>
	<atom:link href="http://www.opensourcery.co.za/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.opensourcery.co.za</link>
	<description>Wizardry through open source</description>
	<lastBuildDate>Wed, 04 Aug 2010 13:04:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Quick *nix shadow passwords with Ruby</title>
		<link>http://www.opensourcery.co.za/2009/05/01/quick-nix-shadow-passwords-with-ruby/</link>
		<comments>http://www.opensourcery.co.za/2009/05/01/quick-nix-shadow-passwords-with-ruby/#comments</comments>
		<pubDate>Fri, 01 May 2009 11:00:41 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[shadow]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=192</guid>
		<description><![CDATA[Just thought I&#8217;d share this one to boost the available online information. Using String#crypt and man crypt you&#8217;ll come up with something similar to the gist below (extract from a project I&#8217;m busy working on).

module Linux
  class User
    class &#60;&#60; self
      # Generate an MD5 salt [...]]]></description>
			<content:encoded><![CDATA[<p>Just thought I&#8217;d share this one to boost the available online information. Using <a href="http://www.ruby-doc.org/core/classes/String.html#M000823">String#crypt</a> and <a href="http://www.kernel.org/doc/man-pages/online/pages/man3/crypt.3.html"><em>man crypt</em></a> you&#8217;ll come up with something similar to the <a href="http://gist.github.com/104980">gist</a> below (extract from a project I&#8217;m busy working on).</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">module</span> Linux
  <span style="color:#9966CC; font-weight:bold;">class</span> User
    <span style="color:#9966CC; font-weight:bold;">class</span> <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> <span style="color:#0000FF; font-weight:bold;">self</span>
      <span style="color:#008000; font-style:italic;"># Generate an MD5 salt string</span>
      <span style="color:#9966CC; font-weight:bold;">def</span> salt
        seeds = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'a'</span>..<span style="color:#996600;">'z'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">to_a</span>
        seeds.<span style="color:#9900CC;">concat</span><span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'A'</span>..<span style="color:#996600;">'Z'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">to_a</span> <span style="color:#006600; font-weight:bold;">&#41;</span>
        seeds.<span style="color:#9900CC;">concat</span><span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#006600; font-weight:bold;">&#40;</span>0..9<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">to_a</span> <span style="color:#006600; font-weight:bold;">&#41;</span>
        seeds.<span style="color:#9900CC;">concat</span> <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'/'</span>, <span style="color:#996600;">'.'</span><span style="color:#006600; font-weight:bold;">&#93;</span>
        seeds.<span style="color:#9900CC;">compact</span>!
&nbsp;
        salt_string = <span style="color:#996600;">'$1$'</span>
        8.<span style="color:#9900CC;">times</span> <span style="color:#006600; font-weight:bold;">&#123;</span> salt_string <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> seeds<span style="color:#006600; font-weight:bold;">&#91;</span> <span style="color:#CC0066; font-weight:bold;">rand</span><span style="color:#006600; font-weight:bold;">&#40;</span>seeds.<span style="color:#9900CC;">size</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">to_s</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;
        salt_string
      <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
      <span style="color:#008000; font-style:italic;"># Crypt a password suitable for use in shadow files</span>
      <span style="color:#9966CC; font-weight:bold;">def</span> crypt<span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#CC0066; font-weight:bold;">string</span> <span style="color:#006600; font-weight:bold;">&#41;</span>
        <span style="color:#CC0066; font-weight:bold;">string</span>.<span style="color:#9900CC;">crypt</span><span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">salt</span> <span style="color:#006600; font-weight:bold;">&#41;</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;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>And the spec</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">dirname</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">__FILE__</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">'/../spec_helper'</span>
&nbsp;
describe <span style="color:#6666ff; font-weight:bold;">Linux::User</span> <span style="color:#9966CC; font-weight:bold;">do</span>
  describe <span style="color:#996600;">&quot;generating shadow passwords&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    it <span style="color:#996600;">&quot;should generate a salt for crypt&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
      salt = <span style="color:#6666ff; font-weight:bold;">Linux::User</span>.<span style="color:#9900CC;">salt</span>
      salt.<span style="color:#9900CC;">length</span>.<span style="color:#9900CC;">should</span> be<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">11</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      salt.<span style="color:#9900CC;">should</span> match<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">/</span>^\$<span style="color:#006666;">1</span>\$<span style="color:#006600; font-weight:bold;">&#91;</span>a<span style="color:#006600; font-weight:bold;">-</span>zA<span style="color:#006600; font-weight:bold;">-</span>Z0<span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">9</span>\.\<span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">8</span><span style="color:#006600; font-weight:bold;">&#125;</span>$<span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    it <span style="color:#996600;">&quot;should generate a shadow password&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
      pass = <span style="color:#6666ff; font-weight:bold;">Linux::User</span>.<span style="color:#9900CC;">crypt</span><span style="color:#006600; font-weight:bold;">&#40;</span> <span style="color:#996600;">'secret'</span> <span style="color:#006600; font-weight:bold;">&#41;</span>
      pass.<span style="color:#9900CC;">should</span> match<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">/</span>^\$<span style="color:#006666;">1</span>\$<span style="color:#006600; font-weight:bold;">&#91;</span>a<span style="color:#006600; font-weight:bold;">-</span>zA<span style="color:#006600; font-weight:bold;">-</span>Z0<span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">9</span>\.\<span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">8</span><span style="color:#006600; font-weight:bold;">&#125;</span>\$<span style="color:#006600; font-weight:bold;">&#91;</span>a<span style="color:#006600; font-weight:bold;">-</span>zA<span style="color:#006600; font-weight:bold;">-</span>Z0<span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">9</span>\.\<span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">22</span><span style="color:#006600; font-weight:bold;">&#125;</span>$<span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      pass.<span style="color:#9900CC;">length</span>.<span style="color:#9900CC;">should</span> be<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">34</span><span style="color:#006600; font-weight:bold;">&#41;</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;">end</span></pre></div></div>

<p><em>HTH</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2009/05/01/quick-nix-shadow-passwords-with-ruby/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pluck out an old revision of a file with git show</title>
		<link>http://www.opensourcery.co.za/2009/03/20/pluck-out-an-old-revision-of-a-file-with-git-show/</link>
		<comments>http://www.opensourcery.co.za/2009/03/20/pluck-out-an-old-revision-of-a-file-with-git-show/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 11:48:19 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[quickies]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=168</guid>
		<description><![CDATA[I was busy merging work back and forth between topic branches today and by accident miss-merged a 700-line spec. Everything else was fine (or so I hope) except this one file. I couldn&#8217;t use git revert, since that would mean I&#8217;ll have to redo all the merges I made.
So in panic I googled and read [...]]]></description>
			<content:encoded><![CDATA[<p>I was busy merging work back and forth between topic branches today and by accident miss-merged a 700-line spec. Everything else was fine (or so I hope) except this one file. I couldn&#8217;t use <em><span style="color: #333333;">git revert</span></em>, since that would mean I&#8217;ll have to redo all the merges I made.</p>
<p>So in panic I googled and read several man pages, coming to the following conclusion that worked quite well:</p>
<ol>
<li>Find the offending commit with <em><span style="color: #333333;">git log</span></em> or <span style="color: #333333;"><em>git log -p</em></span>, not the revision number prior to the catastrophic change.</li>
<li>View the file at that point in time with <span style="color: #333333;"><em>git show SHA-ID:path/to/file</em></span></li>
<li>Replace current copy with <em><span style="color: #333333;">git show SHA-ID:path/to/file &gt; path/to/file</span></em></li>
<li>Verify the damage has been undone with <span style="color: #333333;"><em>git diff</em></span></li>
<li>Commit</li>
<li>Breathe</li>
</ol>
<p>Git is a double edged sword, it is extremely powerful and useful, but can be a real pain in the behind. I love git, and will not easily be convinced to move to something else.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2009/03/20/pluck-out-an-old-revision-of-a-file-with-git-show/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Clear the log files of all your rails projects</title>
		<link>http://www.opensourcery.co.za/2008/11/21/clear-the-log-files-of-all-your-rails-projects/</link>
		<comments>http://www.opensourcery.co.za/2008/11/21/clear-the-log-files-of-all-your-rails-projects/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 08:21:07 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[gist]]></category>
		<category><![CDATA[quickies]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=140</guid>
		<description><![CDATA[I hit a barrier last night where my virtual machine I use for Rails development ran out of space. I quickly checked around and saw my current Rails project had 800MB in log files (thanks autospec).
So I decided to quickly cook up this little bash script that I run from my top level working directory, [...]]]></description>
			<content:encoded><![CDATA[<p>I hit a barrier last night where my virtual machine I use for Rails development ran out of space. I quickly checked around and saw my current Rails project had 800MB in log files (thanks autospec).</p>
<p>So I decided to quickly cook up this little bash script that I run from my top level working directory, and have it clear all the log files, in all my Rails projects.</p>
<p>Hope it helps.</p>
<p><script src="http://gist.github.com/27389.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2008/11/21/clear-the-log-files-of-all-your-rails-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postfix log grep gist</title>
		<link>http://www.opensourcery.co.za/2008/10/23/postfix-log-grep-gist/</link>
		<comments>http://www.opensourcery.co.za/2008/10/23/postfix-log-grep-gist/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 14:06:54 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[quickies]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=121</guid>
		<description><![CDATA[Just a quickie to tell you about my (first) latest gist: http://gist.github.com/19021
Basically search through the postfix maillog for a pattern, extract the postfix message id from each matched line, and then search through the log file for each corresponding line.
This rebuilds your original search with some more context, and makes it a snap to trace [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quickie to tell you about my (first) latest gist: <a href="http://gist.github.com/19021" target="_blank">http://gist.github.com/19021</a></p>
<p>Basically search through the postfix maillog for a pattern, extract the postfix message id from each matched line, and then search through the log file for each corresponding line.</p>
<p>This rebuilds your original search with some more context, and makes it a snap to trace a message through its lifecycle&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2008/10/23/postfix-log-grep-gist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Capistrano Presentation @ TUT</title>
		<link>http://www.opensourcery.co.za/2008/07/06/capistrano-presentation-tut/</link>
		<comments>http://www.opensourcery.co.za/2008/07/06/capistrano-presentation-tut/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 17:27:13 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[capistrano]]></category>
		<category><![CDATA[presentations]]></category>

		<guid isPermaLink="false">http://www.opensourcery.co.za/?p=29</guid>
		<description><![CDATA[Yip, its yet another Capistrano presentation&#8230; Grab it here.
I had the fortunate pleasure of guest lecturing at the Tshwane University of Technology a couple of weeks ago on Capistrano. The class was a group of final year students that are just learning Rails. The lecturer had already covered Capistrano with the students to some degree [...]]]></description>
			<content:encoded><![CDATA[<p>Yip, its yet another Capistrano presentation&#8230; <a href="http://www.opensourcery.co.za/wp-content/uploads/2008/07/20080529-capistrano.pdf" mce_href="http://www.opensourcery.co.za/wp-content/uploads/2008/07/20080529-capistrano.pdf">Grab it here.</a></p>
<p>I had the fortunate pleasure of guest lecturing at the <a href="http://www.tut.ac.za" mce_href="http://www.tut.ac.za" target="_blank">Tshwane University of Technology</a> a couple of weeks ago on Capistrano. The class was a group of final year students that are just learning Rails. The lecturer had already covered Capistrano with the students to some degree and called me in to get them excited and show them how it works in the wild.</p>
<p>The presentation itself doesn&#8217;t really do the session justice, it was driven more by the Q&amp;A session afterwards.</p>
<p>I really enjoyed this session in particular since the students really interacted well with me and came up with some good questions and counter-arguments. I think one of the successes of the lecture was staying as far away from Rails as possible, and just focus on the dynamics of Capistrano and what an awesome tool it really is.</p>
<p>I&#8217;d also like to thank <a mce_href="http://weblog.jamisbuck.org/" href="http://weblog.jamisbuck.org/">Jamis</a> for this awesome tool, and all the members on the <a mce_href="http://groups.google.com/group/capistrano" href="http://groups.google.com/group/capistrano">Capistrano Google Group</a> who tirelessly help other people out with their deployment woes. Several members of the group also <a mce_href="http://groups.google.com/group/capistrano/browse_thread/thread/1300b56dfb8670b3/b14015f765660183?lnk=gst&amp;q=presentation+feedback#b14015f765660183" href="http://groups.google.com/group/capistrano/browse_thread/thread/1300b56dfb8670b3/b14015f765660183?lnk=gst&amp;q=presentation+feedback#b14015f765660183">reviewed the presentation</a> before my class, giving valuable feedback that I could convey to the students as well.</p>
<p><a href="http://www.opensourcery.co.za/wp-content/uploads/2008/07/20080529-capistrano.pdf" mce_href="http://www.opensourcery.co.za/wp-content/uploads/2008/07/20080529-capistrano.pdf">Capistrano Presentation @ TUT (20080529)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2008/07/06/capistrano-presentation-tut/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gentoo rant</title>
		<link>http://www.opensourcery.co.za/2006/03/31/gentoo-rant/</link>
		<comments>http://www.opensourcery.co.za/2006/03/31/gentoo-rant/#comments</comments>
		<pubDate>Thu, 30 Mar 2006 23:08:00 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://wordpress/2006/03/31/gentoo-rant/</guid>
		<description><![CDATA[I&#8217;ve been playing with Gentoo the last couple of days, and what a pleasure it has been! I&#8217;ve moved most of my development from PHP to either Python or Ruby (more on that later), in favour of speed and productivity. CentOS was just giving me more troubles than I needed, not because of them but [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing with <a href="http://www.gentoo.org">Gentoo</a> the last couple of days, and what a pleasure it has been! I&#8217;ve moved most of my development from <a href="http://www.php.net">PHP</a> to either <a href="http://www.python.org">Python</a> or <a href="http://www.ruby-lang.org">Ruby</a> (more on that later), in favour of speed and productivity. <a href="http://www.centos.org">CentOS</a> was just giving me more troubles than I needed, not because of them but because of <a href="http://www.redhat.com">RedHat</a> that uses ancient packages in their flagship distribution. I can understand why, but if you need to move with the times, you need an operating system that can respond quickly to your needs.</p>
<p>Try it, you&#8217;ll love it&#8230;.</p>
<p>Posts to come on <a href="http://www.xensource.com">Xen</a>, <a href="http://www.ruby-lang.org">Ruby</a> &#038; <a href="http://www.rubyonrails.com">Ruby on Rails</a>, <a href="http://www.python.org">Python</a> &amp; <a href="http://www.djangoproject.com">Django</a> and killing spam&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2006/03/31/gentoo-rant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The real power of open-source</title>
		<link>http://www.opensourcery.co.za/2006/02/01/the-real-power-of-open-source/</link>
		<comments>http://www.opensourcery.co.za/2006/02/01/the-real-power-of-open-source/#comments</comments>
		<pubDate>Wed, 01 Feb 2006 12:27:00 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[policyd]]></category>
		<category><![CDATA[postfix]]></category>

		<guid isPermaLink="false">http://wordpress/2006/02/01/the-real-power-of-open-source/</guid>
		<description><![CDATA[My first post in a while, I have seriously  neglected the whole blog&#8230;
Back to business, this blog was conceptualized to  focus on some of the real benefits of using open-source software in business. Not the kind of business that Novell and IBM try to make of open-source, but small businesses seeking to gain [...]]]></description>
			<content:encoded><![CDATA[<p>My first post in a while, I have seriously  neglected the whole blog&#8230;</p>
<p>Back to business, this blog was conceptualized to  focus on some of the real benefits of using open-source software in business. Not the kind of business that Novell and IBM try to make of open-source, but small businesses seeking to gain an advantage in a very competitive market space.</p>
<p>Today this power shined through dramatically again, through a little piece of software called <a href="http://policyd.sourceforge.net">policyd</a>. Policyd is a greylisting service built for <a href="http://www.postfix.org">Postfix</a> (the ever so popular MTA) and allows anyone with a mail server to implement greylisting, blacklisting, whitelisting and a host of other features in the fight against spam.</p>
<p>I needed to change the way policyd used the <a href="http://www.mysql.com">MySQL</a> backend, and in doing so it meant editing C code that I know nothing about. It turn out to be relatively easy when you apply common sense and all the knowledge you&#8217;ve gained from coding in interpreted languages all your life. So I need to be able to prefix the tables in the MySQL database used by policyd in order to prevent clashes with other mail-related software sharing the same database. It is scheduled for the next major release version, but I needed this feature today. So after skimming through some of the .c files I realized that this wouldn&#8217;t be a too big feat&#8230;</p>
<p>It took me an hour, more or less, to complete modify every single SQL statement in the code, add new configuration directives and create a patch that I submitted to the policyd-users list for testing. Currently I&#8217;m still testing as well, and everything looks 100%.</p>
<p>This allows me to actually adapt software in an hour to fit my needs. This is the real power of open source. Imagine the time and effort it would take to consult with the developers of proprietary software to get such a minor change done. Even if I push my rates per hour up 10 fold, it would not compare to the cost of getting proprietary software adapted quickly and easily.</p>
<p>And in the true spirit of open-source (blatantly ignoring any licenses) the patch is available on the list archive pages of the policyd-users mailing list at SourceForge. If you need it, grab it here: <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9613438&#038;forum_id=46105">http://sourceforge.net/mailarchive/forum.php?thread_id=9613438&amp;forum_id=46105</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2006/02/01/the-real-power-of-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Freedom Toaster</title>
		<link>http://www.opensourcery.co.za/2005/03/17/freedom-toaster/</link>
		<comments>http://www.opensourcery.co.za/2005/03/17/freedom-toaster/#comments</comments>
		<pubDate>Thu, 17 Mar 2005 12:56:00 +0000</pubDate>
		<dc:creator>Kenneth Kalmer</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://wordpress/2005/03/17/freedom-toaster/</guid>
		<description><![CDATA[The Freedom Toaster allows people to stop by and pickup a linux distribution of their choice at the click of a button!
Absolutely amazing, what will we see next&#8230;?
]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.cs.up.ac.za/news.php/81/">Freedom Toaster</a> allows people to stop by and pickup a linux distribution of their choice at the click of a button!</p>
<p>Absolutely amazing, what will we see next&#8230;?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcery.co.za/2005/03/17/freedom-toaster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
