<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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: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/" 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>Idle Hacking</title>
	
	<link>http://www.idle-hacking.com</link>
	<description>Ruby, XUL/Javascript, C/C++, and more...</description>
	<lastBuildDate>Sun, 28 Jun 2009 20:10:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<geo:lat>38.906778</geo:lat><geo:long>-77.041481</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/XulForThought" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>MD5 Partial Calculations – save and restore the calculation of large files</title>
		<link>http://feedproxy.google.com/~r/XulForThought/~3/UKn5Yl__WNE/</link>
		<comments>http://www.idle-hacking.com/2009/06/md5-partial-calculations-save-and-restore-the-calculation-of-large-files/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 20:10:58 +0000</pubDate>
		<dc:creator>taf2</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.idle-hacking.com/?p=717</guid>
		<description>Calculating an MD5 checksum of a files transmitted over a network is a pretty important for both security and integrity.  Calculating an MD5 digest can be time and CPU intensive.  
One solution to alleviate the time constraint, is to compute the MD5 as the file is received over a network.  This works [...]</description>
			<content:encoded><![CDATA[<p>Calculating an MD5 checksum of a files transmitted over a network is a pretty important for both security and integrity.  Calculating an MD5 digest can be time and CPU intensive.  </p>
<p>One solution to alleviate the time constraint, is to compute the MD5 as the file is received over a network.  This works great, until you decide the transfer should be resumable.  In fact, making the transfer resumable, makes computing the checksum even more valuable for integrity. Ruby provides a fairly straight forward API for calculating an MD5 in partial bytes.  The only part that is missing is the ablity to serialize Ruby&#8217;s Digest::MD5 class.  </p>
<p>Looking at the internal implementation, I decided it was easiest to just provide an alternative class.  The main reason for doing this instead of extending the existing ruby class is because it switches between two different backends, either md5.c or openssl&#8217;s.  Both are of comparable speed, so I decided to take the md5.c implementation because serializing it&#8217;s  MD5_CTX structure is relatively easy.  Here&#8217;s the structure:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">typedef</span> <span style="color: #993333;">struct</span> md5_state_s <span style="color: #009900;">&#123;</span>
  uint32_t count<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>  <span style="color: #808080; font-style: italic;">/* message length in bits, lsw first */</span>
  uint32_t state<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>  <span style="color: #808080; font-style: italic;">/* digest buffer */</span>
  uint8_t buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">64</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #808080; font-style: italic;">/* accumulate block */</span>
<span style="color: #009900;">&#125;</span> MD5_CTX<span style="color: #339933;">;</span></pre></div></div>

<p><cite>The only downside is the duplicated the code&#8230; I am fairly confident the md5.c code will not be changing too much over time&#8230; but it&#8217;s easy enough to keep up with any changes.</cite></p>
<p>I added two serializations methods, save and restore.  This allows an implementation to receive, compute, pause and resume file transfers while still calculating a small checksum per chunk of file received.  This means, the load on the server can remain small whether a user is transmitting a large or small file.  Here&#8217;s the gist of how it works:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">      hasher = <span style="color:#6666ff; font-weight:bold;">Digest::MD5Partial</span>.<span style="color:#9900CC;">new</span>
      offset = <span style="color:#006666;">0</span>
      total = <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">size</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>
&nbsp;
      <span style="color:#9966CC; font-weight:bold;">until</span> offset <span style="color:#006600; font-weight:bold;">&amp;</span>gt;= total <span style="color:#9966CC; font-weight:bold;">do</span>
        buf = <span style="color:#0000FF; font-weight:bold;">nil</span>
        <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">__FILE__</span>, <span style="color:#996600;">'rb'</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span><span style="color:#006600; font-weight:bold;">|</span>io<span style="color:#006600; font-weight:bold;">|</span>
          io.<span style="color:#9900CC;">seek</span><span style="color:#006600; font-weight:bold;">&#40;</span>offset, <span style="color:#6666ff; font-weight:bold;">IO::SEEK_SET</span><span style="color:#006600; font-weight:bold;">&#41;</span>
          buf = io.<span style="color:#9900CC;">readpartial</span><span style="color:#006600; font-weight:bold;">&#40;</span>buf_size<span style="color:#006600; font-weight:bold;">&#41;</span>
          hasher.<span style="color:#9900CC;">update</span><span style="color:#006600; font-weight:bold;">&#40;</span>buf<span style="color:#006600; font-weight:bold;">&#41;</span>
        <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
        <span style="color:#008000; font-style:italic;"># save the partial</span>
        <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;partial&quot;</span>, <span style="color:#996600;">&quot;wb&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span><span style="color:#006600; font-weight:bold;">|</span>io<span style="color:#006600; font-weight:bold;">|</span>
          str = hasher.<span style="color:#9900CC;">save</span>
          io <span style="color:#006600; font-weight:bold;">&amp;</span>lt;<span style="color:#006600; font-weight:bold;">&amp;</span>lt; str
        <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
        <span style="color:#008000; font-style:italic;"># restore the partial</span>
        hasher.<span style="color:#9900CC;">restore</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">read</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;partial&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
        <span style="color:#008000; font-style:italic;"># advance the offset</span>
        offset <span style="color:#006600; font-weight:bold;">+</span>= buf.<span style="color:#9900CC;">size</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
      from_partial = hasher.<span style="color:#9900CC;">hexdigest</span>
      directly = <span style="color:#6666ff; font-weight:bold;">Digest::MD5</span>.<span style="color:#9900CC;">hexdigest</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">read</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;">&#41;</span>
      assert_equal directly, from_partial</pre></div></div>

<p>Check it out: <a href="http://github.com/taf2/md5-partial/tree/master">http://github.com/taf2/md5-partial/tree/master</a></p>
<pre lang="bash"
git clone git://github.com/taf2/md5-partial.git
cd md5-partial
rake
</pre>



Share and Enjoy:


	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fmd5-partial-calculations-save-and-restore-the-calculation-of-large-files%2F&amp;title=MD5%20Partial%20Calculations%20-%20save%20and%20restore%20the%20calculation%20of%20large%20files&amp;bodytext=Calculating%20an%20MD5%20checksum%20of%20a%20files%20transmitted%20over%20a%20network%20is%20a%20pretty%20important%20for%20both%20security%20and%20integrity.%20%20Calculating%20an%20MD5%20digest%20can%20be%20time%20and%20CPU%20intensive.%20%20%0D%0A%0D%0AOne%20solution%20to%20alleviate%20the%20time%20constraint%2C%20is%20to%20compute%20the%20M" title="Digg"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fmd5-partial-calculations-save-and-restore-the-calculation-of-large-files%2F&amp;title=MD5%20Partial%20Calculations%20-%20save%20and%20restore%20the%20calculation%20of%20large%20files" title="Sphinn"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fmd5-partial-calculations-save-and-restore-the-calculation-of-large-files%2F&amp;title=MD5%20Partial%20Calculations%20-%20save%20and%20restore%20the%20calculation%20of%20large%20files&amp;notes=Calculating%20an%20MD5%20checksum%20of%20a%20files%20transmitted%20over%20a%20network%20is%20a%20pretty%20important%20for%20both%20security%20and%20integrity.%20%20Calculating%20an%20MD5%20digest%20can%20be%20time%20and%20CPU%20intensive.%20%20%0D%0A%0D%0AOne%20solution%20to%20alleviate%20the%20time%20constraint%2C%20is%20to%20compute%20the%20M" title="del.icio.us"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fmd5-partial-calculations-save-and-restore-the-calculation-of-large-files%2F&amp;t=MD5%20Partial%20Calculations%20-%20save%20and%20restore%20the%20calculation%20of%20large%20files" title="Facebook"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fmd5-partial-calculations-save-and-restore-the-calculation-of-large-files%2F&amp;title=MD5%20Partial%20Calculations%20-%20save%20and%20restore%20the%20calculation%20of%20large%20files" title="Mixx"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fmd5-partial-calculations-save-and-restore-the-calculation-of-large-files%2F&amp;title=MD5%20Partial%20Calculations%20-%20save%20and%20restore%20the%20calculation%20of%20large%20files&amp;annotation=Calculating%20an%20MD5%20checksum%20of%20a%20files%20transmitted%20over%20a%20network%20is%20a%20pretty%20important%20for%20both%20security%20and%20integrity.%20%20Calculating%20an%20MD5%20digest%20can%20be%20time%20and%20CPU%20intensive.%20%20%0D%0A%0D%0AOne%20solution%20to%20alleviate%20the%20time%20constraint%2C%20is%20to%20compute%20the%20M" title="Google Bookmarks"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/XulForThought?a=UKn5Yl__WNE:WAq1atXdtg0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=UKn5Yl__WNE:WAq1atXdtg0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=UKn5Yl__WNE:WAq1atXdtg0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=UKn5Yl__WNE:WAq1atXdtg0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=UKn5Yl__WNE:WAq1atXdtg0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=UKn5Yl__WNE:WAq1atXdtg0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=UKn5Yl__WNE:WAq1atXdtg0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=UKn5Yl__WNE:WAq1atXdtg0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=UKn5Yl__WNE:WAq1atXdtg0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/XulForThought/~4/UKn5Yl__WNE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.idle-hacking.com/2009/06/md5-partial-calculations-save-and-restore-the-calculation-of-large-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.idle-hacking.com/2009/06/md5-partial-calculations-save-and-restore-the-calculation-of-large-files/</feedburner:origLink></item>
		<item>
		<title>Curb with a simpler multi interface and a new release 0.4.2</title>
		<link>http://feedproxy.google.com/~r/XulForThought/~3/vzSZ85ifiqE/</link>
		<comments>http://www.idle-hacking.com/2009/06/curb-with-a-simpler-multi-interface-and-a-new-release-0-4-2/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 15:33:19 +0000</pubDate>
		<dc:creator>taf2</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.idle-hacking.com/?p=685</guid>
		<description>Curb provides ruby bindings for libcurl.  Last year around this time, I decided to start hacking on curb by adding support for libcurl&amp;#8217;s multi interface.   At the time, I remember wanting to have an interface as similar to curl-multi as possible, but with the added benefit of being able to initialize requests using the features [...]</description>
			<content:encoded><![CDATA[<p><a href="http://curb.rubyforge.org/">Curb</a> provides <a href="http://ruby-lang.org">ruby</a> bindings for <a href="http://curl.haxx.se/">libcurl</a>.  Last year around this time, I decided to start hacking on curb by <a href="http://www.idle-hacking.com/2008/07/curb-meet-multi-interface/">adding support</a> for <a href="http://www.idle-hacking.com/2008/07/updated-curb-multi-interface-patch/">libcurl&#8217;s multi interface</a>.   At the time, I remember wanting to have an interface as similar to <a href="http://curl-multi.rubyforge.org/">curl-multi</a> as possible, but with the added benefit of being able to initialize requests using the features of Curl::Easy.   The upside of this approach is any easy handle can be configured and dispatched through a Multi handle in parallel.  The downside is the interface can be complicated for simple use cases.   To simplify the interface, I added a more direct method for sending multiple concurrent requests.   Here&#8217;s how the new interface works:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#6666ff; font-weight:bold;">Curl::Multi</span>.<span style="color:#9900CC;">get</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'http://www.google.com/'</span>, 
                <span style="color:#996600;">'http://www.yahoo.com/'</span>, 
                <span style="color:#996600;">'http://www.msn.com/'</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span><span style="color:#006600; font-weight:bold;">|</span>easy<span style="color:#006600; font-weight:bold;">|</span>
  <span style="color:#CC0066; font-weight:bold;">puts</span> easy.<span style="color:#9900CC;">header_str</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Now that&#8217;s great you issue multiple GET requests using a default easy handle configuration.  As each request is completed, it yield&#8217;s passing the easy handle to the block.</p>
<p>The get method also can be passed 2 additional Hash arguments that configure each easy handle and the multi handle.  For example,</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#6666ff; font-weight:bold;">Curl::Multi</span>.<span style="color:#9900CC;">get</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'http://www.google.com/'</span>, 
                <span style="color:#996600;">'http://www.yahoo.com/'</span>, 
                <span style="color:#996600;">'http://www.msn.com/'</span>, 
                <span style="color:#006600; font-weight:bold;">&#123;</span>:follow_location <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span><span style="color:#006600; font-weight:bold;">&#125;</span>, 
                <span style="color:#006600; font-weight:bold;">&#123;</span>:pipeline <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span><span style="color:#006600; font-weight:bold;">|</span>easy<span style="color:#006600; font-weight:bold;">|</span>
  <span style="color:#CC0066; font-weight:bold;">puts</span> easy.<span style="color:#9900CC;">header_str</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>You can try it out using my <a href="http://github.com/taf2/curb/tree/master">github branch</a> or stay tuned I should have a new release ready for <a href="http://curb.rubyforge.org/">rubyforge</a> soon.</p>
<p>Also, I thought it would be nice to reflect on many of the changes collected over the course of the year&#8230;</p>
<ul>
<li><a href="http://github.com/taf2/curb/commit/4a8bd7e66be3ca27d0ce86850d46cfe82bce0d4f">on_failure callbacks now include curb error codes as well as the easy handle.</a></li>
<li><a href="http://github.com/taf2/curb/commit/43356d6bfc049665d352303bb444f4624f2ae43f">Multi Interface</a></li>
<li><a href="http://github.com/taf2/curb/commit/5269163caeab28160d6eee30db8f38bf4856bede">Support obscure error codes from sites like yahoo.com</a></li>
<li><a href="http://github.com/taf2/curb/commit/ab4137958f0a69776e3f107435c67ebc8c98051e">Ruby 1.9 support</a></li>
<li><a href="http://github.com/taf2/curb/commit/3c3e53c64a2417f78aa19f593a5f66e3ddffc969">Support setting cookies</a></li>
<li><a href="http://github.com/taf2/curb/commit/8f46873c2018d29287846986aec14425385587b1">Curl::Easy requests do not block other ruby threads</a></li>
<li><a href="http://github.com/taf2/curb/commit/3da753ddec639c7cb79cca1fdab6e749e1303708">Put support for uploading large files</a></li>
<li><a href="http://github.com/taf2/curb/commit/d953fe3caeae66b7bbe055fa79008ca379327576">Updated to latest libcurl, including many new error codes</a></li>
<li><a href="http://github.com/taf2/curb/commit/9833f005cf309afaa33316372b34519d6988c8c2">Cent OS 4.5 support</a></li>
<li><a href="http://github.com/taf2/curb/commit/350157aca0b1395a5a30229cfa5d824e79a3fb1e">Improve build extconf.rb to auto detect curl-config</a></li>
<li><a href="http://github.com/taf2/curb/commits/">Numerous other fixes and enhancements contributed</a></li>
</ul>
<p>All of that and we have a new release: 0.4.2 on rubyforge.org.  </p>
<pre>
   gem install curb
</pre>



Share and Enjoy:


	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fcurb-with-a-simpler-multi-interface-and-a-new-release-0-4-2%2F&amp;title=Curb%20with%20a%20simpler%20multi%20interface%20and%20a%20new%20release%200.4.2&amp;bodytext=Curb%20provides%20ruby%20bindings%20for%20libcurl.%C2%A0%20Last%20year%20around%20this%20time%2C%20I%20decided%20to%20start%20hacking%20on%20curb%20by%20adding%20support%20for%20libcurl%27s%20multi%20interface.%C2%A0%C2%A0%20At%20the%20time%2C%20I%20remember%20wanting%20to%20have%20an%20interface%20as%20similar%20to%20curl-multi%20as%20possible%2C%20" title="Digg"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fcurb-with-a-simpler-multi-interface-and-a-new-release-0-4-2%2F&amp;title=Curb%20with%20a%20simpler%20multi%20interface%20and%20a%20new%20release%200.4.2" title="Sphinn"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fcurb-with-a-simpler-multi-interface-and-a-new-release-0-4-2%2F&amp;title=Curb%20with%20a%20simpler%20multi%20interface%20and%20a%20new%20release%200.4.2&amp;notes=Curb%20provides%20ruby%20bindings%20for%20libcurl.%C2%A0%20Last%20year%20around%20this%20time%2C%20I%20decided%20to%20start%20hacking%20on%20curb%20by%20adding%20support%20for%20libcurl%27s%20multi%20interface.%C2%A0%C2%A0%20At%20the%20time%2C%20I%20remember%20wanting%20to%20have%20an%20interface%20as%20similar%20to%20curl-multi%20as%20possible%2C%20" title="del.icio.us"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fcurb-with-a-simpler-multi-interface-and-a-new-release-0-4-2%2F&amp;t=Curb%20with%20a%20simpler%20multi%20interface%20and%20a%20new%20release%200.4.2" title="Facebook"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fcurb-with-a-simpler-multi-interface-and-a-new-release-0-4-2%2F&amp;title=Curb%20with%20a%20simpler%20multi%20interface%20and%20a%20new%20release%200.4.2" title="Mixx"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fcurb-with-a-simpler-multi-interface-and-a-new-release-0-4-2%2F&amp;title=Curb%20with%20a%20simpler%20multi%20interface%20and%20a%20new%20release%200.4.2&amp;annotation=Curb%20provides%20ruby%20bindings%20for%20libcurl.%C2%A0%20Last%20year%20around%20this%20time%2C%20I%20decided%20to%20start%20hacking%20on%20curb%20by%20adding%20support%20for%20libcurl%27s%20multi%20interface.%C2%A0%C2%A0%20At%20the%20time%2C%20I%20remember%20wanting%20to%20have%20an%20interface%20as%20similar%20to%20curl-multi%20as%20possible%2C%20" title="Google Bookmarks"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/XulForThought?a=vzSZ85ifiqE:7fPlnudSzUY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=vzSZ85ifiqE:7fPlnudSzUY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=vzSZ85ifiqE:7fPlnudSzUY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=vzSZ85ifiqE:7fPlnudSzUY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=vzSZ85ifiqE:7fPlnudSzUY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=vzSZ85ifiqE:7fPlnudSzUY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=vzSZ85ifiqE:7fPlnudSzUY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=vzSZ85ifiqE:7fPlnudSzUY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=vzSZ85ifiqE:7fPlnudSzUY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/XulForThought/~4/vzSZ85ifiqE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.idle-hacking.com/2009/06/curb-with-a-simpler-multi-interface-and-a-new-release-0-4-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.idle-hacking.com/2009/06/curb-with-a-simpler-multi-interface-and-a-new-release-0-4-2/</feedburner:origLink></item>
		<item>
		<title>Firefox 3.5 logos</title>
		<link>http://feedproxy.google.com/~r/XulForThought/~3/SHQxARiYMFI/</link>
		<comments>http://www.idle-hacking.com/2009/06/firefox-3-5-logos/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 22:29:38 +0000</pubDate>
		<dc:creator>taf2</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.idle-hacking.com/?p=674</guid>
		<description>Just noticed the new icons in Firefox 3.5 are slightly more saturated &amp;#8211; and included in the icon bundle is a very large version.  Check it out see the difference:
Firefox 3.0.x
Firefox 3.5

And this is on top of an already amazing job on the updated browser.



Share and Enjoy:</description>
			<content:encoded><![CDATA[<p>Just noticed the new icons in Firefox 3.5 are slightly more saturated &#8211; and included in the icon bundle is a very large version.  Check it out see the difference:</p>
<p>Firefox 3.0.x</p>
<p><img class="aligncenter size-full wp-image-675" title="firefox30x" src="http://idle-hacking.s3.amazonaws.com/wp-content/uploads/2009/06/firefox30x.png" alt="firefox30x" width="128" height="128" /><a href="http://www.mozilla.com/en-US/firefox/all-beta.html">Firefox 3.5</a></p>
<p><img class="aligncenter size-full wp-image-676" title="firefox35" src="http://idle-hacking.s3.amazonaws.com/wp-content/uploads/2009/06/firefox35.png" alt="firefox35" width="128" height="128" /></p>
<p>And this is on top of an already amazing job on the updated browser.</p>



Share and Enjoy:


	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Ffirefox-3-5-logos%2F&amp;title=Firefox%203.5%20logos&amp;bodytext=Just%20noticed%20the%20new%20icons%20in%20Firefox%203.5%20are%20slightly%20more%20saturated%20-%20and%20included%20in%20the%20icon%20bundle%20is%20a%20very%20large%20version.%C2%A0%20Check%20it%20out%20see%20the%20difference%3A%0D%0A%0D%0AFirefox%203.0.x%0D%0A%0D%0AFirefox%203.5%0D%0A%0D%0A%0D%0A%0D%0AAnd%20this%20is%20on%20top%20of%20an%20already%20amazing%20job%20on" title="Digg"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Ffirefox-3-5-logos%2F&amp;title=Firefox%203.5%20logos" title="Sphinn"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Ffirefox-3-5-logos%2F&amp;title=Firefox%203.5%20logos&amp;notes=Just%20noticed%20the%20new%20icons%20in%20Firefox%203.5%20are%20slightly%20more%20saturated%20-%20and%20included%20in%20the%20icon%20bundle%20is%20a%20very%20large%20version.%C2%A0%20Check%20it%20out%20see%20the%20difference%3A%0D%0A%0D%0AFirefox%203.0.x%0D%0A%0D%0AFirefox%203.5%0D%0A%0D%0A%0D%0A%0D%0AAnd%20this%20is%20on%20top%20of%20an%20already%20amazing%20job%20on" title="del.icio.us"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Ffirefox-3-5-logos%2F&amp;t=Firefox%203.5%20logos" title="Facebook"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Ffirefox-3-5-logos%2F&amp;title=Firefox%203.5%20logos" title="Mixx"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Ffirefox-3-5-logos%2F&amp;title=Firefox%203.5%20logos&amp;annotation=Just%20noticed%20the%20new%20icons%20in%20Firefox%203.5%20are%20slightly%20more%20saturated%20-%20and%20included%20in%20the%20icon%20bundle%20is%20a%20very%20large%20version.%C2%A0%20Check%20it%20out%20see%20the%20difference%3A%0D%0A%0D%0AFirefox%203.0.x%0D%0A%0D%0AFirefox%203.5%0D%0A%0D%0A%0D%0A%0D%0AAnd%20this%20is%20on%20top%20of%20an%20already%20amazing%20job%20on" title="Google Bookmarks"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/XulForThought?a=SHQxARiYMFI:eDQDjXuWADs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=SHQxARiYMFI:eDQDjXuWADs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=SHQxARiYMFI:eDQDjXuWADs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=SHQxARiYMFI:eDQDjXuWADs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=SHQxARiYMFI:eDQDjXuWADs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=SHQxARiYMFI:eDQDjXuWADs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=SHQxARiYMFI:eDQDjXuWADs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=SHQxARiYMFI:eDQDjXuWADs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=SHQxARiYMFI:eDQDjXuWADs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/XulForThought/~4/SHQxARiYMFI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.idle-hacking.com/2009/06/firefox-3-5-logos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.idle-hacking.com/2009/06/firefox-3-5-logos/</feedburner:origLink></item>
		<item>
		<title>Virtual Conference Center</title>
		<link>http://feedproxy.google.com/~r/XulForThought/~3/YKcIOYcZBZw/</link>
		<comments>http://www.idle-hacking.com/2009/06/virtual-conference-center/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 19:55:35 +0000</pubDate>
		<dc:creator>taf2</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Anerian]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.idle-hacking.com/?p=664</guid>
		<description>We&amp;#8217;ve been busy and now we have an updated Virtual Conference Center.  It includes all the video footage from the World Congress 2009 SAE conference and the Hybrid SAE 2009 conference.  As more SAE conferences take place we&amp;#8217;ll be publishing the new video footage &amp;#8211; so stay tuned!  If you&amp;#8217;re interested in the Automotive industry [...]</description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-665" title="picturethumb" src="http://idle-hacking.s3.amazonaws.com/wp-content/uploads/2009/06/picturethumb.png" alt="picturethumb" width="300" height="175" />We&#8217;ve been busy and now we have an updated <a href="http://vcc-sae.org">Virtual Conference Center</a>.  It includes all the video footage from the World Congress 2009 <a href="http://www.sae.org">SAE</a> conference and the Hybrid SAE 2009 conference.  As more SAE conferences take place we&#8217;ll be publishing the new video footage &#8211; so stay tuned!  If you&#8217;re interested in the Automotive industry and how it works and the different aspects of innovation going on in the field these video&#8217;s are definitely worth the money.    There are preview videos for most of the sections hybrid being the one exception.</p>
<p>We integrated the purchase flow into SAE&#8217;s store &#8211; so be prepared to either sign up as an SAE member or register for access to their content.</p>
<p>The coverflow really makes it easy to navigate the video&#8217;s.  Jon did an awesome job of integrating it into the site.</p>
<p><img class="aligncenter size-full wp-image-669" title="picture-71" src="http://idle-hacking.s3.amazonaws.com/wp-content/uploads/2009/06/picture-71.png" alt="picture-71" width="749" height="454" /></p>
<p>You can visist the Virtual Conference Center at <a href="http://vcc-sae.org/">http://vcc-sae.org/</a> .</p>



Share and Enjoy:


	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fvirtual-conference-center%2F&amp;title=Virtual%20Conference%20Center%20&amp;bodytext=We%27ve%20been%20busy%20and%20now%20we%20have%20an%20updated%20Virtual%20Conference%20Center.%C2%A0%20It%20includes%20all%20the%20video%20footage%20from%20the%20World%20Congress%202009%20SAE%20conference%20and%20the%20Hybrid%20SAE%202009%20conference.%C2%A0%20As%20more%20SAE%20conferences%20take%20place%20we%27ll%20be%20publishing%20the%20new" title="Digg"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fvirtual-conference-center%2F&amp;title=Virtual%20Conference%20Center%20" title="Sphinn"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fvirtual-conference-center%2F&amp;title=Virtual%20Conference%20Center%20&amp;notes=We%27ve%20been%20busy%20and%20now%20we%20have%20an%20updated%20Virtual%20Conference%20Center.%C2%A0%20It%20includes%20all%20the%20video%20footage%20from%20the%20World%20Congress%202009%20SAE%20conference%20and%20the%20Hybrid%20SAE%202009%20conference.%C2%A0%20As%20more%20SAE%20conferences%20take%20place%20we%27ll%20be%20publishing%20the%20new" title="del.icio.us"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fvirtual-conference-center%2F&amp;t=Virtual%20Conference%20Center%20" title="Facebook"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fvirtual-conference-center%2F&amp;title=Virtual%20Conference%20Center%20" title="Mixx"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F06%2Fvirtual-conference-center%2F&amp;title=Virtual%20Conference%20Center%20&amp;annotation=We%27ve%20been%20busy%20and%20now%20we%20have%20an%20updated%20Virtual%20Conference%20Center.%C2%A0%20It%20includes%20all%20the%20video%20footage%20from%20the%20World%20Congress%202009%20SAE%20conference%20and%20the%20Hybrid%20SAE%202009%20conference.%C2%A0%20As%20more%20SAE%20conferences%20take%20place%20we%27ll%20be%20publishing%20the%20new" title="Google Bookmarks"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/XulForThought?a=YKcIOYcZBZw:WIATf-4VtoM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=YKcIOYcZBZw:WIATf-4VtoM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=YKcIOYcZBZw:WIATf-4VtoM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=YKcIOYcZBZw:WIATf-4VtoM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=YKcIOYcZBZw:WIATf-4VtoM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=YKcIOYcZBZw:WIATf-4VtoM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=YKcIOYcZBZw:WIATf-4VtoM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=YKcIOYcZBZw:WIATf-4VtoM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=YKcIOYcZBZw:WIATf-4VtoM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/XulForThought/~4/YKcIOYcZBZw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.idle-hacking.com/2009/06/virtual-conference-center/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.idle-hacking.com/2009/06/virtual-conference-center/</feedburner:origLink></item>
		<item>
		<title>bsdiff/bspatch ruby extension</title>
		<link>http://feedproxy.google.com/~r/XulForThought/~3/Fru4jQjzCb0/</link>
		<comments>http://www.idle-hacking.com/2009/05/bsdiffbspatch-ruby-extension/#comments</comments>
		<pubDate>Sun, 24 May 2009 15:37:02 +0000</pubDate>
		<dc:creator>taf2</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[bsdiff]]></category>
		<category><![CDATA[bspatch]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.idle-hacking.com/?p=662</guid>
		<description>bsdiff and bspatch are great little tools for creating patches of binary files.  I used them for the updater in SimoHealth and I believe firefox and chromium use them to deliver application updates.  I&amp;#8217;m thinking they may be very useful for backups and archiving.   I extracted out the bsdiff and bspatch binaries into [...]</description>
			<content:encoded><![CDATA[<p><a href="http://www.daemonology.net/bsdiff/">bsdiff and bspatch</a> are great little tools for creating patches of binary files.  I used them for the updater in SimoHealth and I believe firefox and chromium use them to deliver application updates.  I&#8217;m thinking they may be very useful for backups and archiving.   I extracted out the bsdiff and bspatch binaries into an <a href="http://github.com/taf2/rb-bsdiff/tree/master">easy to use ruby interface</a>.    For now the ruby interface is exactly the same interface as the command line counterparts meaning all patching and diffing is done via files.  E.g.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">bsdiff oldfile newfile patchfile</pre></div></div>

<p>in ruby would be:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">BSDiff.<span style="color:#9900CC;">diff</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'oldfilepath'</span>, <span style="color:#996600;">'newfilepath'</span>, <span style="color:#996600;">'patchfilepath'</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>and patching would be:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">bspatch oldfile newfile patchfile</pre></div></div>

<p>in ruby would be:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">BSDiff.<span style="color:#9900CC;">patch</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'oldfilepath'</span>, <span style="color:#996600;">'newfilepath'</span>, <span style="color:#996600;">'patchfilepath'</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>




Share and Enjoy:


	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fbsdiffbspatch-ruby-extension%2F&amp;title=bsdiff%2Fbspatch%20ruby%20extension&amp;bodytext=bsdiff%20and%20bspatch%20are%20great%20little%20tools%20for%20creating%20patches%20of%20binary%20files.%20%20I%20used%20them%20for%20the%20updater%20in%20SimoHealth%20and%20I%20believe%20firefox%20and%20chromium%20use%20them%20to%20deliver%20application%20updates.%20%20I%27m%20thinking%20they%20may%20be%20very%20useful%20for%20backups%20a" title="Digg"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fbsdiffbspatch-ruby-extension%2F&amp;title=bsdiff%2Fbspatch%20ruby%20extension" title="Sphinn"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fbsdiffbspatch-ruby-extension%2F&amp;title=bsdiff%2Fbspatch%20ruby%20extension&amp;notes=bsdiff%20and%20bspatch%20are%20great%20little%20tools%20for%20creating%20patches%20of%20binary%20files.%20%20I%20used%20them%20for%20the%20updater%20in%20SimoHealth%20and%20I%20believe%20firefox%20and%20chromium%20use%20them%20to%20deliver%20application%20updates.%20%20I%27m%20thinking%20they%20may%20be%20very%20useful%20for%20backups%20a" title="del.icio.us"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fbsdiffbspatch-ruby-extension%2F&amp;t=bsdiff%2Fbspatch%20ruby%20extension" title="Facebook"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fbsdiffbspatch-ruby-extension%2F&amp;title=bsdiff%2Fbspatch%20ruby%20extension" title="Mixx"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fbsdiffbspatch-ruby-extension%2F&amp;title=bsdiff%2Fbspatch%20ruby%20extension&amp;annotation=bsdiff%20and%20bspatch%20are%20great%20little%20tools%20for%20creating%20patches%20of%20binary%20files.%20%20I%20used%20them%20for%20the%20updater%20in%20SimoHealth%20and%20I%20believe%20firefox%20and%20chromium%20use%20them%20to%20deliver%20application%20updates.%20%20I%27m%20thinking%20they%20may%20be%20very%20useful%20for%20backups%20a" title="Google Bookmarks"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/XulForThought?a=Fru4jQjzCb0:aDij-D7o_PU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=Fru4jQjzCb0:aDij-D7o_PU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=Fru4jQjzCb0:aDij-D7o_PU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=Fru4jQjzCb0:aDij-D7o_PU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=Fru4jQjzCb0:aDij-D7o_PU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=Fru4jQjzCb0:aDij-D7o_PU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=Fru4jQjzCb0:aDij-D7o_PU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=Fru4jQjzCb0:aDij-D7o_PU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=Fru4jQjzCb0:aDij-D7o_PU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/XulForThought/~4/Fru4jQjzCb0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.idle-hacking.com/2009/05/bsdiffbspatch-ruby-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.idle-hacking.com/2009/05/bsdiffbspatch-ruby-extension/</feedburner:origLink></item>
		<item>
		<title>release a new version of rbtagger</title>
		<link>http://feedproxy.google.com/~r/XulForThought/~3/wjMYQ_y6rh8/</link>
		<comments>http://www.idle-hacking.com/2009/05/release-a-new-version-of-rbtagger/#comments</comments>
		<pubDate>Fri, 22 May 2009 02:53:27 +0000</pubDate>
		<dc:creator>taf2</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Gem]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tagging]]></category>

		<guid isPermaLink="false">http://www.idle-hacking.com/2009/05/release-a-new-version-of-rbtagger/</guid>
		<description>Just released a new version of rbtagger gem.  It&amp;#8217;s much easier to use as I now include the Brown Corpus and Lexicon in the gem.  This means to create the tagger using the default Corpus no arguments are required.

tagger = Brill::Tagger.new
tagger.tag&amp;#40;&amp;#34;some body of text&amp;#34;&amp;#41;

To install:
gem install rbtagger

&amp;#160;




Share and Enjoy:</description>
			<content:encoded><![CDATA[<p>Just released a new version of<a href="http://rbtagger.rubyforge.org/"> rbtagger gem</a>.  It&#8217;s much easier to use as I now include the Brown Corpus and Lexicon in the gem.  This means to create the tagger using the default Corpus no arguments are required.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">tagger = <span style="color:#6666ff; font-weight:bold;">Brill::Tagger</span>.<span style="color:#9900CC;">new</span>
tagger.<span style="color:#9900CC;">tag</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;some body of text&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>To install:</p>
<p>gem install rbtagger</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">&nbsp;</pre></div></div>




Share and Enjoy:


	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Frelease-a-new-version-of-rbtagger%2F&amp;title=release%20a%20new%20version%20of%20rbtagger&amp;bodytext=Just%20released%20a%20new%20version%20of%20rbtagger%20gem.%20%20It%27s%20much%20easier%20to%20use%20as%20I%20now%20include%20the%20Brown%20Corpus%20and%20Lexicon%20in%20the%20gem.%20%20This%20means%20to%20create%20the%20tagger%20using%20the%20default%20Corpus%20no%20arguments%20are%20required.%0D%0Atagger%20%3D%20Brill%3A%3ATagger.new%0D%0Atagger.t" title="Digg"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Frelease-a-new-version-of-rbtagger%2F&amp;title=release%20a%20new%20version%20of%20rbtagger" title="Sphinn"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Frelease-a-new-version-of-rbtagger%2F&amp;title=release%20a%20new%20version%20of%20rbtagger&amp;notes=Just%20released%20a%20new%20version%20of%20rbtagger%20gem.%20%20It%27s%20much%20easier%20to%20use%20as%20I%20now%20include%20the%20Brown%20Corpus%20and%20Lexicon%20in%20the%20gem.%20%20This%20means%20to%20create%20the%20tagger%20using%20the%20default%20Corpus%20no%20arguments%20are%20required.%0D%0Atagger%20%3D%20Brill%3A%3ATagger.new%0D%0Atagger.t" title="del.icio.us"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Frelease-a-new-version-of-rbtagger%2F&amp;t=release%20a%20new%20version%20of%20rbtagger" title="Facebook"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Frelease-a-new-version-of-rbtagger%2F&amp;title=release%20a%20new%20version%20of%20rbtagger" title="Mixx"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Frelease-a-new-version-of-rbtagger%2F&amp;title=release%20a%20new%20version%20of%20rbtagger&amp;annotation=Just%20released%20a%20new%20version%20of%20rbtagger%20gem.%20%20It%27s%20much%20easier%20to%20use%20as%20I%20now%20include%20the%20Brown%20Corpus%20and%20Lexicon%20in%20the%20gem.%20%20This%20means%20to%20create%20the%20tagger%20using%20the%20default%20Corpus%20no%20arguments%20are%20required.%0D%0Atagger%20%3D%20Brill%3A%3ATagger.new%0D%0Atagger.t" title="Google Bookmarks"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/XulForThought?a=wjMYQ_y6rh8:QtEF0SeaDOo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=wjMYQ_y6rh8:QtEF0SeaDOo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=wjMYQ_y6rh8:QtEF0SeaDOo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=wjMYQ_y6rh8:QtEF0SeaDOo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=wjMYQ_y6rh8:QtEF0SeaDOo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=wjMYQ_y6rh8:QtEF0SeaDOo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=wjMYQ_y6rh8:QtEF0SeaDOo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=wjMYQ_y6rh8:QtEF0SeaDOo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=wjMYQ_y6rh8:QtEF0SeaDOo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/XulForThought/~4/wjMYQ_y6rh8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.idle-hacking.com/2009/05/release-a-new-version-of-rbtagger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.idle-hacking.com/2009/05/release-a-new-version-of-rbtagger/</feedburner:origLink></item>
		<item>
		<title>Character Encoding in Ruby with ActiveSupport</title>
		<link>http://feedproxy.google.com/~r/XulForThought/~3/VZ1zromUG_k/</link>
		<comments>http://www.idle-hacking.com/2009/05/character-encoding-in-ruby-with-activesupport/#comments</comments>
		<pubDate>Mon, 18 May 2009 04:03:58 +0000</pubDate>
		<dc:creator>taf2</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[ActiveSupport]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Text Encoding]]></category>

		<guid isPermaLink="false">http://www.idle-hacking.com/2009/05/character-encoding-in-ruby-with-activesupport/</guid>
		<description>In rails environment the following works:
"àáâãäå".mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').downcase.to_s
Outside of rails you might need to wrap your strings explicitly in a ActiveSupport::Multibyte::Chars object.  The following for example:
ActiveSupport::Multibyte::Chars.new("àáâãäå").mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').downcase.to_s



Share and Enjoy:</description>
			<content:encoded><![CDATA[<p>In rails environment the following works:</p>
<pre>"àáâãäå".mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').downcase.to_s</pre>
<p>Outside of rails you might need to wrap your strings explicitly in a ActiveSupport::Multibyte::Chars object.  The following for example:</p>
<pre>ActiveSupport::Multibyte::Chars.new("àáâãäå").mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').downcase.to_s</pre>



Share and Enjoy:


	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fcharacter-encoding-in-ruby-with-activesupport%2F&amp;title=Character%20Encoding%20in%20Ruby%20with%20ActiveSupport&amp;bodytext=In%20rails%20environment%20the%20following%20works%3A%0D%0A%22%C3%A0%C3%A1%C3%A2%C3%A3%C3%A4%C3%A5%22.mb_chars.normalize%28%3Akd%29.gsub%28%2F%5B%5E%5Cx00-%5Cx7F%5D%2Fn%2C%27%27%29.downcase.to_s%0D%0AOutside%20of%20rails%20you%20might%20need%20to%20wrap%20your%20strings%20explicitly%20in%20a%20ActiveSupport%3A%3AMultibyte%3A%3AChars%20object.%20%20The%20following%20for%20" title="Digg"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fcharacter-encoding-in-ruby-with-activesupport%2F&amp;title=Character%20Encoding%20in%20Ruby%20with%20ActiveSupport" title="Sphinn"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fcharacter-encoding-in-ruby-with-activesupport%2F&amp;title=Character%20Encoding%20in%20Ruby%20with%20ActiveSupport&amp;notes=In%20rails%20environment%20the%20following%20works%3A%0D%0A%22%C3%A0%C3%A1%C3%A2%C3%A3%C3%A4%C3%A5%22.mb_chars.normalize%28%3Akd%29.gsub%28%2F%5B%5E%5Cx00-%5Cx7F%5D%2Fn%2C%27%27%29.downcase.to_s%0D%0AOutside%20of%20rails%20you%20might%20need%20to%20wrap%20your%20strings%20explicitly%20in%20a%20ActiveSupport%3A%3AMultibyte%3A%3AChars%20object.%20%20The%20following%20for%20" title="del.icio.us"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fcharacter-encoding-in-ruby-with-activesupport%2F&amp;t=Character%20Encoding%20in%20Ruby%20with%20ActiveSupport" title="Facebook"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fcharacter-encoding-in-ruby-with-activesupport%2F&amp;title=Character%20Encoding%20in%20Ruby%20with%20ActiveSupport" title="Mixx"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fcharacter-encoding-in-ruby-with-activesupport%2F&amp;title=Character%20Encoding%20in%20Ruby%20with%20ActiveSupport&amp;annotation=In%20rails%20environment%20the%20following%20works%3A%0D%0A%22%C3%A0%C3%A1%C3%A2%C3%A3%C3%A4%C3%A5%22.mb_chars.normalize%28%3Akd%29.gsub%28%2F%5B%5E%5Cx00-%5Cx7F%5D%2Fn%2C%27%27%29.downcase.to_s%0D%0AOutside%20of%20rails%20you%20might%20need%20to%20wrap%20your%20strings%20explicitly%20in%20a%20ActiveSupport%3A%3AMultibyte%3A%3AChars%20object.%20%20The%20following%20for%20" title="Google Bookmarks"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/XulForThought?a=VZ1zromUG_k:lcKZCNndJcQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=VZ1zromUG_k:lcKZCNndJcQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=VZ1zromUG_k:lcKZCNndJcQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=VZ1zromUG_k:lcKZCNndJcQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=VZ1zromUG_k:lcKZCNndJcQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=VZ1zromUG_k:lcKZCNndJcQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=VZ1zromUG_k:lcKZCNndJcQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=VZ1zromUG_k:lcKZCNndJcQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=VZ1zromUG_k:lcKZCNndJcQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/XulForThought/~4/VZ1zromUG_k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.idle-hacking.com/2009/05/character-encoding-in-ruby-with-activesupport/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.idle-hacking.com/2009/05/character-encoding-in-ruby-with-activesupport/</feedburner:origLink></item>
		<item>
		<title>Go Dunkin go!</title>
		<link>http://feedproxy.google.com/~r/XulForThought/~3/fMaFV8EAMIQ/</link>
		<comments>http://www.idle-hacking.com/2009/05/go-dunkin-go/#comments</comments>
		<pubDate>Fri, 15 May 2009 17:11:25 +0000</pubDate>
		<dc:creator>taf2</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.idle-hacking.com/2009/05/go-dunkin-go/</guid>
		<description>dunk&amp;#8217;in donuts coffee has always been one of my favorites.



Share and Enjoy:</description>
			<content:encoded><![CDATA[<p><a href='http://siteanalytics.compete.com/cariboucoffee.com+starbucks.com+dunkindonuts.com/?metric=uv'><img src='http://grapher.compete.com/cariboucoffee.com+starbucks.com+dunkindonuts.com_uv.png' /></a></p>
<p><a href="http://www.dunkindonuts.com">dunk&#8217;in donuts coffee</a> has always been one of my favorites.</p>



Share and Enjoy:


	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fgo-dunkin-go%2F&amp;title=Go%20Dunkin%20go%21&amp;bodytext=%0A%0Adunk%27in%20donuts%20coffee%20has%20always%20been%20one%20of%20my%20favorites." title="Digg"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fgo-dunkin-go%2F&amp;title=Go%20Dunkin%20go%21" title="Sphinn"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fgo-dunkin-go%2F&amp;title=Go%20Dunkin%20go%21&amp;notes=%0A%0Adunk%27in%20donuts%20coffee%20has%20always%20been%20one%20of%20my%20favorites." title="del.icio.us"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fgo-dunkin-go%2F&amp;t=Go%20Dunkin%20go%21" title="Facebook"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fgo-dunkin-go%2F&amp;title=Go%20Dunkin%20go%21" title="Mixx"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Fgo-dunkin-go%2F&amp;title=Go%20Dunkin%20go%21&amp;annotation=%0A%0Adunk%27in%20donuts%20coffee%20has%20always%20been%20one%20of%20my%20favorites." title="Google Bookmarks"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/XulForThought?a=fMaFV8EAMIQ:NfM3Is_UvP4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=fMaFV8EAMIQ:NfM3Is_UvP4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=fMaFV8EAMIQ:NfM3Is_UvP4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=fMaFV8EAMIQ:NfM3Is_UvP4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=fMaFV8EAMIQ:NfM3Is_UvP4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=fMaFV8EAMIQ:NfM3Is_UvP4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=fMaFV8EAMIQ:NfM3Is_UvP4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=fMaFV8EAMIQ:NfM3Is_UvP4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=fMaFV8EAMIQ:NfM3Is_UvP4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/XulForThought/~4/fMaFV8EAMIQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.idle-hacking.com/2009/05/go-dunkin-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.idle-hacking.com/2009/05/go-dunkin-go/</feedburner:origLink></item>
		<item>
		<title>Typhoeus  Another libcurl Ruby binding?</title>
		<link>http://feedproxy.google.com/~r/XulForThought/~3/aJ8l7aSwNr8/</link>
		<comments>http://www.idle-hacking.com/2009/05/typhoeus-another-libcurl-ruby-binding/#comments</comments>
		<pubDate>Fri, 08 May 2009 03:33:49 +0000</pubDate>
		<dc:creator>taf2</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[libcurl]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.idle-hacking.com/2009/05/typhoeus-another-libcurl-ruby-binding/</guid>
		<description>I just saw this today: http://www.pauldix.net/2009/05/breath-fire-over-http-in-ruby-with-typhoeus.html  Looks like a really nice library.  I really like the libcurl easy bindings it provides.



Share and Enjoy:</description>
			<content:encoded><![CDATA[<p>I just saw this today:<a href="http://www.pauldix.net/2009/05/breath-fire-over-http-in-ruby-with-typhoeus.html "> http://www.pauldix.net/2009/05/breath-fire-over-http-in-ruby-with-typhoeus.html </a> Looks like a really nice library.  I really like the libcurl easy bindings it provides.</p>



Share and Enjoy:


	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Ftyphoeus-another-libcurl-ruby-binding%2F&amp;title=Typhoeus%20%20Another%20libcurl%20Ruby%20binding%3F&amp;bodytext=I%20just%20saw%20this%20today%3A%20http%3A%2F%2Fwww.pauldix.net%2F2009%2F05%2Fbreath-fire-over-http-in-ruby-with-typhoeus.html%20%20Looks%20like%20a%20really%20nice%20library.%20%20I%20really%20like%20the%20libcurl%20easy%20bindings%20it%20provides." title="Digg"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Ftyphoeus-another-libcurl-ruby-binding%2F&amp;title=Typhoeus%20%20Another%20libcurl%20Ruby%20binding%3F" title="Sphinn"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Ftyphoeus-another-libcurl-ruby-binding%2F&amp;title=Typhoeus%20%20Another%20libcurl%20Ruby%20binding%3F&amp;notes=I%20just%20saw%20this%20today%3A%20http%3A%2F%2Fwww.pauldix.net%2F2009%2F05%2Fbreath-fire-over-http-in-ruby-with-typhoeus.html%20%20Looks%20like%20a%20really%20nice%20library.%20%20I%20really%20like%20the%20libcurl%20easy%20bindings%20it%20provides." title="del.icio.us"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Ftyphoeus-another-libcurl-ruby-binding%2F&amp;t=Typhoeus%20%20Another%20libcurl%20Ruby%20binding%3F" title="Facebook"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Ftyphoeus-another-libcurl-ruby-binding%2F&amp;title=Typhoeus%20%20Another%20libcurl%20Ruby%20binding%3F" title="Mixx"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F05%2Ftyphoeus-another-libcurl-ruby-binding%2F&amp;title=Typhoeus%20%20Another%20libcurl%20Ruby%20binding%3F&amp;annotation=I%20just%20saw%20this%20today%3A%20http%3A%2F%2Fwww.pauldix.net%2F2009%2F05%2Fbreath-fire-over-http-in-ruby-with-typhoeus.html%20%20Looks%20like%20a%20really%20nice%20library.%20%20I%20really%20like%20the%20libcurl%20easy%20bindings%20it%20provides." title="Google Bookmarks"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/XulForThought?a=aJ8l7aSwNr8:pnfTd0JTj9c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=aJ8l7aSwNr8:pnfTd0JTj9c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=aJ8l7aSwNr8:pnfTd0JTj9c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=aJ8l7aSwNr8:pnfTd0JTj9c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=aJ8l7aSwNr8:pnfTd0JTj9c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=aJ8l7aSwNr8:pnfTd0JTj9c:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=aJ8l7aSwNr8:pnfTd0JTj9c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=aJ8l7aSwNr8:pnfTd0JTj9c:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=aJ8l7aSwNr8:pnfTd0JTj9c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/XulForThought/~4/aJ8l7aSwNr8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.idle-hacking.com/2009/05/typhoeus-another-libcurl-ruby-binding/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.idle-hacking.com/2009/05/typhoeus-another-libcurl-ruby-binding/</feedburner:origLink></item>
		<item>
		<title>Accessing process memory usage</title>
		<link>http://feedproxy.google.com/~r/XulForThought/~3/mDLX3CpaDHY/</link>
		<comments>http://www.idle-hacking.com/2009/04/accessing-process-memory-usage/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 02:46:15 +0000</pubDate>
		<dc:creator>taf2</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Memory]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.idle-hacking.com/?p=648</guid>
		<description>Did some googling and figured out it&amp;#8217;s not too difficult to get your processes rough memory usage.  Packged things up as a basic ruby extension and now from ruby you can access the process memory usage via:
RMem::Report.memory
It return&amp;#8217;s the number of bytes reported as in use by the specific system&amp;#8230; In the case of linux [...]</description>
			<content:encoded><![CDATA[<p>Did some googling and figured out it&#8217;s not too difficult to get your processes rough memory usage.  Packged things up as a basic ruby extension and now from ruby you can access the process memory usage via:</p>
<pre>RMem::Report.memory</pre>
<p>It return&#8217;s the number of bytes reported as in use by the specific system&#8230; In the case of linux reading from the /proc file system and Darwin using the libproc.h.</p>
<p>Check it out here: <a href="http://github.com/taf2/rmem/tree/master">http://github.com/taf2/rmem/tree/master</a></p>



Share and Enjoy:


	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F04%2Faccessing-process-memory-usage%2F&amp;title=Accessing%20process%20memory%20usage&amp;bodytext=Did%20some%20googling%20and%20figured%20out%20it%27s%20not%20too%20difficult%20to%20get%20your%20processes%20rough%20memory%20usage.%C2%A0%20Packged%20things%20up%20as%20a%20basic%20ruby%20extension%20and%20now%20from%20ruby%20you%20can%20access%20the%20process%20memory%20usage%20via%3A%0D%0ARMem%3A%3AReport.memory%0D%0AIt%20return%27s%20the%20numb" title="Digg"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F04%2Faccessing-process-memory-usage%2F&amp;title=Accessing%20process%20memory%20usage" title="Sphinn"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F04%2Faccessing-process-memory-usage%2F&amp;title=Accessing%20process%20memory%20usage&amp;notes=Did%20some%20googling%20and%20figured%20out%20it%27s%20not%20too%20difficult%20to%20get%20your%20processes%20rough%20memory%20usage.%C2%A0%20Packged%20things%20up%20as%20a%20basic%20ruby%20extension%20and%20now%20from%20ruby%20you%20can%20access%20the%20process%20memory%20usage%20via%3A%0D%0ARMem%3A%3AReport.memory%0D%0AIt%20return%27s%20the%20numb" title="del.icio.us"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F04%2Faccessing-process-memory-usage%2F&amp;t=Accessing%20process%20memory%20usage" title="Facebook"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F04%2Faccessing-process-memory-usage%2F&amp;title=Accessing%20process%20memory%20usage" title="Mixx"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.idle-hacking.com%2F2009%2F04%2Faccessing-process-memory-usage%2F&amp;title=Accessing%20process%20memory%20usage&amp;annotation=Did%20some%20googling%20and%20figured%20out%20it%27s%20not%20too%20difficult%20to%20get%20your%20processes%20rough%20memory%20usage.%C2%A0%20Packged%20things%20up%20as%20a%20basic%20ruby%20extension%20and%20now%20from%20ruby%20you%20can%20access%20the%20process%20memory%20usage%20via%3A%0D%0ARMem%3A%3AReport.memory%0D%0AIt%20return%27s%20the%20numb" title="Google Bookmarks"><img src="http://www.idle-hacking.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/XulForThought?a=mDLX3CpaDHY:lH4gi0NT2hE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=mDLX3CpaDHY:lH4gi0NT2hE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=mDLX3CpaDHY:lH4gi0NT2hE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=mDLX3CpaDHY:lH4gi0NT2hE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=mDLX3CpaDHY:lH4gi0NT2hE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=mDLX3CpaDHY:lH4gi0NT2hE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=mDLX3CpaDHY:lH4gi0NT2hE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/XulForThought?i=mDLX3CpaDHY:lH4gi0NT2hE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/XulForThought?a=mDLX3CpaDHY:lH4gi0NT2hE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/XulForThought?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/XulForThought/~4/mDLX3CpaDHY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.idle-hacking.com/2009/04/accessing-process-memory-usage/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.idle-hacking.com/2009/04/accessing-process-memory-usage/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.998 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-07-13 07:55:38 -->
