<?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>DEV_MEM.dump_to(:blog) - Multimedia systems blog &#187; Miscelaneas</title>
	<atom:link href="http://blog.mmediasys.com/category/misc/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mmediasys.com</link>
	<description>Compartiendo fragmentos de código con el mundo.</description>
	<lastBuildDate>Sat, 26 Nov 2011 21:09:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>RubyConf Argentina and Fenix</title>
		<link>http://blog.mmediasys.com/2011/11/26/rubyconf-argentina-and-fenix/</link>
		<comments>http://blog.mmediasys.com/2011/11/26/rubyconf-argentina-and-fenix/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 21:09:15 +0000</pubDate>
		<dc:creator>Luis</dc:creator>
				<category><![CDATA[Miscelaneas]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.mmediasys.com/?p=505</guid>
		<description><![CDATA[Recently I had the honor to speak at RubyConf Argentina 2011 (which I must say was a blast). My talk was titled Tirando Ruby por la Ventana, which translates to Throwing Ruby through the Window The talk was aimed at highlight a few issues with Ruby on Windows, ranging from the community to the implementation. [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had the honor to speak at <a href="http://rubyconfargentina.org">RubyConf Argentina 2011</a> (which I must say was a blast).</p>
<p>My talk was titled <em>Tirando Ruby por la Ventana</em>, which translates to <em>Throwing Ruby through the Window</em></p>
<p>The talk was aimed at highlight a few issues with Ruby on Windows, ranging from the community to the implementation.</p>
<p>Here are the slides:</p>
<p><script src="http://speakerdeck.com/embed/4ed143da2faa930050000d25.js"></script></p>
<p>While the slides are in spanish, you might get the idea from the profiling to all the other charts <img src='http://blog.mmediasys.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>But ranting without something to back you up is silly, so I&#8217;ve tried to proof that platform is not the issue.</p>
<p>On my slides I showed <a href="http://github.com/luislavena/fenix">Fenix</a> a proof-of-concept of harness the power of Windows <span class="caps">API </span>just re-implementing <code>File.expand_path</code> function, which was considered one of the culprits of performance issues on Windows.</p>
<p>Fenix as an experiment is a nice sandbox to play with Ruby without the lengthy compilation times on building Ruby from scratch on Windows.</p>
<p>It also helped to have a side-by-side comparison of Ruby own implementation.</p>
<p>But, most important, it served the purpose of document <code>File.expand_path</code> behavior through specs.</p>
<p>Ruby itself has no code to ensure that <code>File.expand_path</code> behave consistently across versions.</p>
<p>The goals were simple:</p>
<ul>
<li>* Figure out what Ruby it is supposed to do and document it (specs)</li>
<li>* Implement the minimum code that make those specs pass</li>
<li>* Harness the power of newer Windows <span class="caps">API</span></li>
<li>* Benchmark and compare always</li>
</ul>
<p></p>
<p>So I have only done the minimum set of requirement to make Rails run, and run faster. There are plenty of corner cases that I didn&#8217;t cover and some that I&#8217;ve acknowledge in the specs but require its implementation.</p>
<p>The end result is use Fenix as playground to start working on better internals for Ruby itself, but without the tedious build process.</p>
<p>Also, all the work is aiming at Ruby 2.0, since the inner changes on Ruby to accommodate something similar are too big to be included back in 1.9.3</p>
<p><strong>How I&#8217;m supposed to test this out?</strong></p>
<p>So I guess you don&#8217;t believe in my slides&#8230; neither <a href="http://itreallymatters.net/post/12897174267/speedup-ruby-1-9-3-on-windows" title="Speedup Ruby 1.9.3 On Windows" target="_blank">other developer&#8217;s conclusions</a></p>
<p>You can take a look to <a href="http://thecodeshop.github.com" target="_blank">TheCodeShop</a> builds that already include Fenix and test for your self.</p>
<p><strong>Want to join us make Ruby better?</strong></p>
<p>Please, try out and send us your feedback at <a href="https://groups.google.com/group/thecodeshop" target="_blank">TheCodeShop group</a>.</p>
<p>A faster Ruby is possible, we just need to get rid of the legacy stuff and build for the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmediasys.com/2011/11/26/rubyconf-argentina-and-fenix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A thank you to Ruby Masters Conf and Brazilian community</title>
		<link>http://blog.mmediasys.com/2011/04/14/a-thank-you-to-ruby-masters-conf-and-brazilian-community/</link>
		<comments>http://blog.mmediasys.com/2011/04/14/a-thank-you-to-ruby-masters-conf-and-brazilian-community/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 23:38:16 +0000</pubDate>
		<dc:creator>Luis</dc:creator>
				<category><![CDATA[Frontpage]]></category>
		<category><![CDATA[Miscelaneas]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.mmediasys.com/?p=439</guid>
		<description><![CDATA[Back in January I posted about Ruby Masters Conf online conference. I must say that I&#8217;m happy to inform that not only was a blast, but RubyInstaller received some financial backing! Yes, along with Phusion Passenger, RubyInstaller project received donations from the amazing Brazilian Community that attended to Ruby Masters Conf. Thanks goes to e-Genial [...]]]></description>
			<content:encoded><![CDATA[<p>Back in January I <a href="http://blog.mmediasys.com/2011/01/25/ruby-masters-conf/">posted</a> about Ruby Masters Conf online conference.</p>
<p>I must say that I&#8217;m happy to inform that not only was a blast, but RubyInstaller received some financial backing!</p>
<p>Yes, along with <a href="http://blog.phusion.nl/2011/03/11/phusion-passenger-3-0-5-released/">Phusion Passenger</a>, RubyInstaller project received donations from the amazing Brazilian Community that attended to Ruby Masters Conf.</p>
<p>Thanks goes to <a href="http://www.egenial.pro/pt/site">e-Genial</a> too, the company behind the conference.</p>
<p>This contribution is well received, specially in the light of upcoming changes to the project that will be soon announced.</p>
<p>As lead developer of RubyInstaller, to all Brazilians who participated: Muito obrigado!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmediasys.com/2011/04/14/a-thank-you-to-ruby-masters-conf-and-brazilian-community/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Masters Conf</title>
		<link>http://blog.mmediasys.com/2011/01/25/ruby-masters-conf/</link>
		<comments>http://blog.mmediasys.com/2011/01/25/ruby-masters-conf/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 21:30:43 +0000</pubDate>
		<dc:creator>Luis</dc:creator>
				<category><![CDATA[Frontpage]]></category>
		<category><![CDATA[Miscelaneas]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.mmediasys.com/?p=433</guid>
		<description><![CDATA[In case nobody noticed, but next February 25 and 26 there will be a huge conference, called Ruby Mastesr Conf (See the banner bellow) And yes, the conference will be online with an excellent line up of speakers Video, chat, slides and interaction with the speakers all using e-Genial online platform, kinda cool, isn&#8217;t? Is [...]]]></description>
			<content:encoded><![CDATA[<p>In case nobody noticed, but next February 25 and 26 there will be a huge conference, called <a href="http://rubymastersconf.com/">Ruby Mastesr Conf</a> (See the banner bellow)</p>
<p><a href='http://rubymastersconf.com' target='_blank'><img src='http://rubymastersconf.com/images/banner-01.png'  title='Ruby Masters Conf - EdiĆ§Ć£o 2011' width='619' height='77' /></a> </p>
<p>And yes, the conference will be <em>online</em> with an excellent <a href="http://rubymastersconf.com/speakers">line up</a> of speakers</p>
<p>Video, chat, slides and interaction with the speakers all using <a href="http://www.egenialsas.com.br">e-Genial</a> online platform, kinda cool, isn&#8217;t?</p>
<p>Is cheap! R$ 35 (Brazil reais) is around 21 <span class="caps">USD.</span> You gain access to all the talks and if you couldn&#8217;t watch them live, you can see the videos 15 days later.</p>
<p>And the awesome part? Their objective is collect money for open source projects, like <a href="http://www.modrails.com/">Phusion Passenger</a> and, wait for it&#8230; <a href="http://rubyinstaller.org/">RubyInstaller</a> !!!</p>
<p>What are you waiting for?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmediasys.com/2011/01/25/ruby-masters-conf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>rake-compiler: Updated list of supported Ruby versions (for cross-compilation)</title>
		<link>http://blog.mmediasys.com/2011/01/22/rake-compiler-updated-list-of-supported-ruby-versions-for-cross-compilation/</link>
		<comments>http://blog.mmediasys.com/2011/01/22/rake-compiler-updated-list-of-supported-ruby-versions-for-cross-compilation/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 18:54:09 +0000</pubDate>
		<dc:creator>Luis</dc:creator>
				<category><![CDATA[Miscelaneas]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.mmediasys.com/?p=421</guid>
		<description><![CDATA[Been a while since the last list of supported Ruby versions was published. So, time of updates! Ruby Version Works? Command line 1.8.6-p398 Yes1 rake-compiler cross-ruby 1.8.7-p330 Yes rake-compiler cross-ruby VERSION=1.8.7-p330 1.9.2-p136 Yes rake-compiler cross-ruby VERSION=1.9.2-p136 All of the above results were obtained using rake-compiler 0.7.5. Compilers All the tests of compilation where performed against [...]]]></description>
			<content:encoded><![CDATA[<p>Been a while since the last list of supported Ruby versions was published. So, time of updates!</p>
<table>
<tr>
<th>Ruby Version</th>
<th>Works?</th>
<th>Command line</th>
</tr>
<tr>
<td>1.8.6-p398</td>
<td>Yes<sup class="footnote"><a href="#fn1">1</a></sup></td>
<td><code>rake-compiler cross-ruby</code></td>
</tr>
<tr>
<td>1.8.7-p330</td>
<td>Yes</td>
<td><code>rake-compiler cross-ruby VERSION=1.8.7-p330</code></td>
</tr>
<tr>
<td>1.9.2-p136</td>
<td>Yes</td>
<td><code>rake-compiler cross-ruby VERSION=1.9.2-p136</code></td>
</tr>
</table>
<p>All of the above results were obtained using rake-compiler <code>0.7.5</code>.</p>
<h3>Compilers</h3>
<p>All the tests of compilation where performed against the following compilers:</p>
<table>
<tr>
<th>Platform</th>
<th>Compiler</th>
<th>Installation</th>
<th>rake-compiler flag</th>
</tr>
<tr>
<td><span class="caps">OSX</span></td>
<td><span class="caps">GCC</span> 3.4.5</td>
<td><code>sudo port install i386-mingw32-gcc</code></td>
<td><code>HOST=i386-mingw32</code></td>
</tr>
<tr>
<td>Linux/Ubuntu</td>
<td><span class="caps">GCC</span> 3.4.5</td>
<td><code>sudo apt-get install mingw32</code></td>
<td><code>HOST=i586-pc-mingw32</code></td>
</tr>
<tr>
<td>Linux/OSX</td>
<td>MinGW-w64 <span class="caps">GCC</span> 4.5.2</td>
<td>Download<sup class="footnote"><a href="#fn2">2</a></sup></td>
<td><code>HOST=i686-w64-mingw32</code></td>
</tr>
</table>
<p>While there are other cross compilers available out there, I haven&#8217;t done any testing against them, so can&#8217;t verify it&#8217;s correctness in the above results.</p>
<p>I would personally recommend the usage of mingw-w64 compilers since are fresh and updated quite often.</p>
<h3>Recommendations</h3>
<p>If you&#8217;re creating extensions, it is recommend you use both 1.8.7 and 1.9.2 as test-beds for your extensions. That will ensure maximum compatibility with future versions of Ruby.</p>
<p>Next version of rake-compiler will bump the default version to 1.8.7, so is better you start preparing now.</p>
<p class="footnote" id="fn1"><sup>1</sup> 1.8.6 compilation fails when used with mingw-w64 compiler (i686-w64-mingw32 host)</p>
<p class="footnote" id="fn2"><sup>2</sup> You can download mingw-w64 compiler from SourceForge <a href="http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Automated%20Builds/">Automated Builds</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmediasys.com/2011/01/22/rake-compiler-updated-list-of-supported-ruby-versions-for-cross-compilation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>We all love colors</title>
		<link>http://blog.mmediasys.com/2010/11/24/we-all-love-colors/</link>
		<comments>http://blog.mmediasys.com/2010/11/24/we-all-love-colors/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 00:03:35 +0000</pubDate>
		<dc:creator>Luis</dc:creator>
				<category><![CDATA[Miscelaneas]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.mmediasys.com/?p=390</guid>
		<description><![CDATA[Indeed, pretty much everybody will agree with this statement, even developers like them, and of course, want to use them. Is quite common use coloring in the output of your tools to indicate an error or a success, or some sort of information. To make things easy, there is something called ANSI escape sequences which [...]]]></description>
			<content:encoded><![CDATA[<p>Indeed, pretty much everybody will agree with this statement, even developers<br />
like them, and of course, want to use them.</p>
<p>Is quite common use coloring in the output of your tools to indicate an error<br />
or a success, or some sort of information.</p>
<p><span id="more-390"></span></p>
<p>To make things easy, there is something called <a href="http://en.wikipedia.org/wiki/ANSI_escape_code"><span class="caps">ANSI </span>escape sequences</a> which has great support on Unix systems, but not Windows.</p>
<p>Back in <span class="caps">DOS </span>days, there was something called <code>ANSI.SYS</code> which allowed certain <span class="caps">ANSI </span>codes to work.</p>
<p>But <span class="caps">DOS </span>has been dead for quite some time, and Windows (32 and 64 bits) had no more this nice <span class="caps">ANSI </span>support.</p>
<p>Instead, Microsoft created a <a href="http://en.wikipedia.org/wiki/Win32_console">lot of functions</a> that make it more easy to use screen buffers, flip between them to avoid flickering and other stuff, but <em>we</em> (developers) loose the ability to use colors across platforms transparently from the code perspective.</p>
<p>Because of that, and because we are eager to use colors (remember, we all love colors), developers created libraries on every language that mimic <span class="caps">ANSI </span>sequences on Windows using the Win32 console functions.</p>
<p><a href="http://jansi.fusesource.org/">Java</a>, <a href="http://search.cpan.org/~jdb/Win32-Console-0.09/Console.pm">Perl</a> and others all have their implementation.</p>
<p>In the case Ruby, it does too, as port from Perl&#8217;s Win32::Console module by <a href="http://rubyforge.org/projects/win32console">Gonzalo Garramuno</a> which then was packaged as gem by <a href="http://rubyforge.org/projects/winconsole">Justin Bailey</a> and is currently maintained by me.</p>
<p>With the move of Ruby to version 1.9.x, certain changes were required and still suffer from some compatibility issues, speed been one.</p>
<p>Thanks to the Internet, we found a little gem hidden on the tubes called &#8220;ANSICON&#8221; created by Jason Hood, which provides &#8212; in C &#8212; <span class="caps">ANSI </span>escaping codes completely independent of your language of choice.</p>
<p><span class="caps">ANSICON </span>works hooking your console process and any program, extracting any <span class="caps">ANSI </span>sequence automatically and translating to the proper Win32 console <span class="caps">API.</span></p>
<p>It works under 32 and 64 bits systems.</p>
<h3>What all that means to me?</h3>
<p>I <a href="http://groups.google.com/group/rubyinstaller/browse_thread/thread/2d2a62db7281509a">proposed the deprecation</a> of win32console and replace it with <span class="caps">ANSICON, </span>but what are the benefits of it?</p>
<ul>
<li>Proven to work under several scenarios</li>
<li>Its written in C, not Ruby, which make it available to any other language</li>
<li>Its faster than win32console</li>
<li>One less gems for me to maintain</li>
</ul>
<h3>Now, how to use this?</h3>
<p>Well, projects like RSpec and Cucumber haven&#8217;t still been adapted to use <span class="caps">ANSICON </span>yet, but developers are working to provide the changes.</p>
<p>First, you will need to visit <span class="caps">ANSICON </span>website and download the binaries:</p>
<p><a href="http://adoxa.110mb.com/ansicon/index.html">http://adoxa.110mb.com/ansicon/index.html</a></p>
<p>Grab the latest package (1.31) and extract its contents somewhere.</p>
<p>Depending on your system architecture, copy the contents of x86 (32bits) or x64 (64bits) to a folder that you have in your <span class="caps">PATH.</span> On previous post I&#8217;ve recommended have a <code>Tools\bin</code> folder inside your <span class="caps">HOME.</span> See <a href="https://github.com/luislavena/binfiles/blob/master/README.rdoc">my binfiles <span class="caps">README</span></a> for suggestions</p>
<p>Now that <code>ansicon.exe</code> and it&#8217;s support libraries are placed there, you can start it manually:</p>
<pre>ansicon</pre>
<p>That will simply create a new <code>cmd.exe</code> with <span class="caps">ANSICON </span>hooks enabled. At any time you can type <code>exit</code> and return to your previous <code>cmd.exe</code> process that is clean of ansicon.</p>
<p>I will recommend you read the <span class="caps">README </span>file that comes with <span class="caps">ANSICON </span>to know about permanently install <span class="caps">ANSICON </span>in your system.</p>
<p>Now, let&#8217;s get back to an example:</p>
<pre><code>puts &quot;\e[34mHello \e[31mWorld\e[0m&quot;</code></pre>
<p>In this case, I entered manually the escape codes. If you&#8217;re serious for colors, take a look to <a href="https://github.com/flori/term-ansicolor">term-ansicolor</a></p>
<p>Anyhow, now let&#8217;s execute our program:</p>
<pre>ruby hello.rb</pre>
<p>On a normal prompt, we got something like this:</p>
<p><img src="http://blog.mmediasys.com/wp-content/uploads/2010/11/without-ansicon.png" alt="The output generated by the sample script without ansicon installed" title="without-ansicon" width="358" height="132" class="alignnone size-full wp-image-393" /></p>
<p>But, powered by ansicon, we get this lovely result:</p>
<p><img src="http://blog.mmediasys.com/wp-content/uploads/2010/11/with-ansicon.png" alt="Enjoy the colors provided by ansicon!" title="with-ansicon" width="422" height="142" class="alignnone size-full wp-image-394" /></p>
<p>Now, extra to that, <span class="caps">ANSICON </span>advertise certain information into the <span class="caps">ANSICON </span>environment variable</p>
<pre>C:\Users\Luis&gt;ECHO %ANSICON%
100x3000 (100x28)</pre>
<p>In that variable, we have 4 values. The first two are buffer dimensions and the ones between parenthesis are the size of my visible console.</p>
<p>For example, you can use the visible size information to truncate rows of information.</p>
<h3>So what, why care?</h3>
<p>Unless you suffer from color blind-ness, colors are useful. Tools like RSpec communicate visually errors from other states using colors.</p>
<p><span class="caps">ANSICON </span>offers a less intrusive approach than previous solutions for coloring, less work for me and more fun for you!</p>
<p>Start using it today!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmediasys.com/2010/11/24/we-all-love-colors/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>RubyInstaller &#8211; What, where, when #1</title>
		<link>http://blog.mmediasys.com/2010/09/23/rubyinstaller-what-where-when-1/</link>
		<comments>http://blog.mmediasys.com/2010/09/23/rubyinstaller-what-where-when-1/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 00:43:56 +0000</pubDate>
		<dc:creator>Luis</dc:creator>
				<category><![CDATA[Miscelaneas]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.mmediasys.com/?p=375</guid>
		<description><![CDATA[In my previous post, I mentioned exciting changes coming to RubyInstaller Over the past month some of these changes materialize and others are still in progress. Consider the following post an status update of the project. RubyInstaller is been promoted in Ruby-Lang website. Yes! finally RubyInstaller downloads are displayed first in Ruby&#8217;s download page This [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://blog.mmediasys.com/2010/08/07/exciting-times-for-rubyinstaller-project/">previous post</a>, I mentioned exciting changes coming to RubyInstaller</p>
<p>Over the past month some of these changes materialize and others are still in progress. Consider the following post an <em>status update</em> of the project.</p>
<p><span id="more-375"></span></p>
<h3>RubyInstaller is been promoted in Ruby-Lang website.</h3>
<p>Yes! finally RubyInstaller downloads are displayed first in Ruby&#8217;s <a href="http://www.ruby-lang.org/en/downloads/">download page</a></p>
<p>This marks an important step for the project and it&#8217;s goals of make it more easy to try out Ruby <strong>on</strong> Windows. One less pebble on our path.</p>
<h3>Ruby 1.9.2-p0 release and <span class="caps">GCC</span> 4.5.0 been used</h3>
<p>So 1.9.2-p0 went out, so was RubyInstaller package of it. It felt great release the newer packages just 2 days after the official source code release.</p>
<p>I must admit that it was only possible thanks to the hard work of all the <a href="http://rubyinstaller.org/about/contributors">contributors</a> and the ones that prefer to remain anonymous.</p>
<h3>Lots of buzz</h3>
<p>Since I declared One-Click Installer dead and put the initial bricks for RubyInstaller back in 2007, lot of things happened.</p>
<p>Over the past years thanks to many developers, the project has gained visibility and with it, a bigger user base.</p>
<p>I found that with the diversity of the growing user base, it also increased and exposed issues in the way we work with the project and deal with either bugs, feature requests or even support.</p>
<p>It is hard to keep everybody pleased and is hard to teach people coming to Ruby for the first time how to deal with things they never needed in their dotNET or Java jobs.</p>
<p>It is even harder when the first thing they hear are negativity to their environment (yes, Windows ala windoze, windblows, etc)</p>
<p>So we decided to put all the collective knowledge in our Wiki, specially the <a href="http://github.com/oneclick/rubyinstaller/wiki/Tutorials">Tutorials</a> page. It is interesting to see how that particular page grew over the past 6 months.</p>
<p>Even more interesting and satisfying is see that not only individuals are paying attention to the project but even groups like Pragmatic Studio and their <a href="http://pragmaticstudio.com/rails">Ruby on Rails</a> training program acknowledge Windows users and <a href="http://pragmaticstudio.com/blog/2010/9/23/install-rails-ruby-windows">provide instructions</a> for getting them started.</p>
<h3>Still lot to do</h3>
<p>Work on the DevKit installer still goes as we adjust minor details to improve the first time experience and the support for both RubyInstaller and possibly JRuby.</p>
<p>People has been asking to get the DevKit included in the same Ruby package because that will reduce the errors users get. Not everybody needs to compile things all the time.</p>
<p>I personally don&#8217;t believe that will fix the education and lack of documentation problem, it will just make the installers 12MB bigger.</p>
<h3>We need your help</h3>
<p>The project needs more people involved. There is not a huge technical barrier to get started, just the willingness to get things done.</p>
<p>Either you want to document things (tutorials and such) or help out others with issues. Anything you want to do will be appreciated.</p>
<h3>More to come</h3>
<p>I&#8217;m trying to improve the cross-compilation support of Ruby so Linux/OSX developers can provide compatible code for other Windows users. Lot to be done there.</p>
<p>Other exciting things are coming and will post in follow ups. Enough for today!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmediasys.com/2010/09/23/rubyinstaller-what-where-when-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>To require or not require rubygems in your applications or libraries</title>
		<link>http://blog.mmediasys.com/2009/12/30/to-require-or-not-require-rubygems-in-your-applications-or-libraries/</link>
		<comments>http://blog.mmediasys.com/2009/12/30/to-require-or-not-require-rubygems-in-your-applications-or-libraries/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 22:57:20 +0000</pubDate>
		<dc:creator>Luis</dc:creator>
				<category><![CDATA[Miscelaneas]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.mmediasys.com/?p=323</guid>
		<description><![CDATA[NOTE Undusting this post as better response to a conversation in Tweeter, with tenderlove and nickseiger Nick commented out here that Ryan Tomayko post is correct. Well, kind of, sorta&#8230; not entirely correct. Mandatory warning Take the following statements with a grain of objectivity without pondering how much bits and bytes a packaging solution like [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span class="caps">NOTE</span></strong> Undusting this post as better response to a <em>conversation</em> in Tweeter, with <a href="http://twitter.com/tenderlove">tenderlove</a> and <a href="http://twitter.com/nicksieger">nickseiger</a> </p>
<p><span id="more-323"></span></p>
<p>Nick commented out <a href="http://twitter.com/nicksieger/status/7209501582">here</a> that Ryan Tomayko <a href="http://tomayko.com/writings/require-rubygems-antipattern">post</a> is correct.</p>
<p>Well, kind of, sorta&#8230; not entirely correct.</p>
<h3>Mandatory warning</h3>
<p>Take the following statements with a grain of <em>objectivity</em> without pondering how much bits and bytes a packaging solution like RubyGems adds to your scenario.</p>
<p>Now, let me present this with a story (I love stories)</p>
<h3>Creating my application or library</h3>
<p>I had an excellent idea for a new library we needed here at the office. This library will provide a client-side <span class="caps">OOP </span>access to a remote webservice we use daily.</p>
<p>After investigation of my remote webservice <span class="caps">API </span>and structure and exploration of existing <span class="caps">HTTP</span>/REST like interfaces, I decided that would be best to invest my time in leverage the low-level <span class="caps">HTTP </span>complexity to an existing library published by another developer.</p>
<h3>Filling the gaps and start working</h3>
<p>Started creating my library (called <em>Foo</em>) and based the internals calls on what was published for <em>Bar</em> at that time (let&#8217;s say was version 1)</p>
<p>So far, everything is great. Everything works great on my computer.</p>
<h3>Time to share</h3>
<p>It has been 2 weeks since I created this library and we internally wanted to use in another project.</p>
<p>This time, my colleague check out my library repository and try to use the library.</p>
<p>He realizes that <em>Bar</em> is required and is not present in his environment, which leads him to start a gem installation process.</p>
<p>He succeed installing <em>Bar</em> version 2, as is the latest available version by the developer of it, but my library no longer works with it, since there are several <span class="caps">API </span>changes.</p>
<p>Spotting that issue can be simple, but now think the following: I&#8217;ve used <a href="http://hellorip.com/">Rip</a> instead of Rubygems, and Rip uses repositories directly, not packaged versions.</p>
<p>So now, <em>Foo</em> is not only version specific, but <em>commit specific</em> since the developer of <em>Bar</em> could have changed <span class="caps">API </span>between commits to finalize or stabilize it.</p>
<p>Even worse could be that I used <code>setup.rb</code> that was part of <em>Bar</em> and installed inside my Ruby installation, which then will make complicated to figure out which version I used to implement <em>Foo</em></p>
<h3>But what if&#8230;</h3>
<ul>
<li>Usage of Git submodules for my dependencies&#8230; if I&#8217;m using Git at all.</li>
<li>Gemify my library, which then will lead to negative comments from others about me imposing a packaging system on them.</li>
<li>Do not release or share my library at all. Problem solved.</li>
</ul>
<p>Add to that, that even if I released my library as a gem or not, there is no way to determine the usage of my <em>Foo</em> from Joe&#8217;s <em>Foo</em> variation. Something I raised about GitHub gem forks and commented out <a href="http://drnicwilliams.com/2009/11/04/hacking-someones-gem-with-github-and-gemcutter/">here</a></p>
<p>So, try all the approaches, get your own conclusions, but don&#8217;t say that the way I implement something is flawed. That is plain subjective.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmediasys.com/2009/12/30/to-require-or-not-require-rubygems-in-your-applications-or-libraries/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>win32console upcoming changes and feedback</title>
		<link>http://blog.mmediasys.com/2009/12/17/win32console-upcoming-changes-and-feedback/</link>
		<comments>http://blog.mmediasys.com/2009/12/17/win32console-upcoming-changes-and-feedback/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 04:23:39 +0000</pubDate>
		<dc:creator>Luis</dc:creator>
				<category><![CDATA[Miscelaneas]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.mmediasys.com/?p=314</guid>
		<description><![CDATA[For the ones not aware of, win32console (originally here, gemified here) is a project that provides ANSI coloring for Windows. Yeah, Windows doesn&#8217;t do ANSI coloring like any POSIX terminal, and it has it&#8217;s own API with extended control of the console functionality. UPDATE: Please see this post for the beta1 release of new win32console. [...]]]></description>
			<content:encoded><![CDATA[<p>For the ones not aware of, win32console (originally <a href="http://rubyforge.org/projects/win32console">here</a>, gemified <a href="http://rubyforge.org/projects/winconsole">here</a>) is a project that provides <span class="caps">ANSI </span>coloring for Windows.</p>
<p>Yeah, Windows doesn&#8217;t do <span class="caps">ANSI </span>coloring like any <span class="caps">POSIX </span>terminal, and it has it&#8217;s own <span class="caps">API </span>with extended control of the console functionality.</p>
<p><span id="more-314"></span></p>
<p><strong><span class="caps">UPDATE</span>:</strong> Please see <a href="http://blog.mmediasys.com/2009/12/29/win32console-1-3-0-prerelease/">this post</a> for the beta1 release of new win32console.</p>
<p>So, I took over the project long ago, since required a couple of fixed. You could find the code <a href="http://github.com/luislavena/win32console">here</a> at GitHub</p>
<p>I must say that my backyard and house is getting crowded. Lot of small Open Source projects that require attention and some of those that require some special care, like this case.</p>
<p>What do I mean by this?</p>
<p>win32console do more than just fancy colors, it also translates the current console page back and forth using some clever but not portable character extrapolation&#8230;</p>
<p>Now, Ruby 1.9 doesn&#8217;t like you do that, not at all.</p>
<p>So wonder, what if I just get rid of that? How much of win32console features are being used beyond the <span class="caps">ANSI </span>coloring?</p>
<p>I just verified that tweak work with cucumber in 1.8 and 1.9, but dunno other user cases.</p>
<p>Want to know all that, since I&#8217;m creating a much simpler solution that uses <a href="http://github.com/ffi/ffi"><span class="caps">FFI</span></a> and will provide colors for both <span class="caps">MRI </span>and JRuby, no extension compilation and will deprecate the need of win32console.</p>
<p>What do you think? Please let me know your thoughts in the comments.</p>
<p>Thank you <img src='http://blog.mmediasys.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmediasys.com/2009/12/17/win32console-upcoming-changes-and-feedback/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>rake-compiler: safe list of Ruby versions that can be cross-compiled</title>
		<link>http://blog.mmediasys.com/2009/12/16/rake-compiler-safe-list-of-ruby-versions-that-can-be-cross-compiled/</link>
		<comments>http://blog.mmediasys.com/2009/12/16/rake-compiler-safe-list-of-ruby-versions-that-can-be-cross-compiled/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 06:00:12 +0000</pubDate>
		<dc:creator>Luis</dc:creator>
				<category><![CDATA[Miscelaneas]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.mmediasys.com/?p=307</guid>
		<description><![CDATA[Seems that I&#8217;m going to suffer a series of bug reports in the upcoming weeks due continious changes between patchlevels of Ruby. Update: See the new list of supported versions here Update 2: Added 1.8.7-p299 to the list of no compatible Update 3: Added 1.8.6-p398 to the list of compatibles and 1.8.7 still is not [...]]]></description>
			<content:encoded><![CDATA[<p>Seems that I&#8217;m going to suffer a series of bug reports in the upcoming weeks due continious changes between patchlevels of Ruby.</p>
<p><strong>Update:</strong> See the new list of supported versions <a href="http://blog.mmediasys.com/2011/01/22/rake-compiler-updated-list-of-supported-ruby-versions-for-cross-compilation/">here</a></p>
<p><strong>Update 2:</strong> Added 1.8.7-p299 to the list of <em>no compatible</em></p>
<p><strong>Update 3:</strong> Added 1.8.6-p398 to the list of <em>compatibles</em> and 1.8.7 still is not cross-compilable, sorry. 1.9.1-p378 is not cross-compilable either.</p>
<p>To give some background, for the fresh ones just arriving to the blog. <a href="http://github.com/luislavena/rake-compiler">rake-compiler</a> provides, besides C/Java extension standardization structure, the ability to cross-compile versions of Ruby to allow developers on Linux/OSX build and release gems for users running Windows.</p>
<p>Seems that latest patchlevels of Ruby 1.8.7 (172) and 1.9.1 (376) cannot be cross compiled.</p>
<p>I&#8217;ve reported that to Ruby&#8217;s bug tracker under issues <a href="http://redmine.ruby-lang.org/issues/show/2464">#2464</a> and <a href="http://redmine.ruby-lang.org/issues/show/2484">#2484</a></p>
<p>From what you can read there, there is a clear change in the rules about what is the minimum Ruby version that can be used to cross compile (known as <code>BASERUBY</code>)</p>
<p>Now, being pointed to the <a href="http://redmine.ruby-lang.org/wiki/ruby/DeveloperHowto">Developer&#8217;s Howto</a> page, and checking the history and time, it is clear the note about the limitation is <em>really fresh</em></p>
<p>The funny thing is that I still can cross compile 1.9.2dev using 1.8.6! Which is contrary to what the recently edited howto states!</p>
<p>Don&#8217;t get me wrong, I have no personal issue besides being annoyed, and that will require put some lock in <code>cross-ruby</code> compilation to avoid bug reports about something that is beyond my control.</p>
<p>So, with the goal of making this public and have a link to include in my canned response to people reporting bugs about it, the following is the list of versions and patchlevels of Ruby that I know works and aim to support in relation to bug fixes of rake-compiler itself:</p>
<table>
<tr>
<th>Version</th>
<th>Patchlevel</th>
<th>supported?</th>
<th>Command</th>
</tr>
<tr>
<td>1.8.6</td>
<td>287</td>
<td>Yes</td>
<td><code>rake-compiler cross-ruby</code></td>
</tr>
<tr>
<td>1.8.6</td>
<td>383</td>
<td>Yes</td>
<td><code>rake-compiler cross-ruby VERSION=1.8.6-p383</code></td>
</tr>
<tr>
<td>1.8.6</td>
<td>398</td>
<td>Yes</td>
<td><code>rake-compiler cross-ruby VERSION=1.8.6-p398</code></td>
</tr>
<tr>
<td>1.8.7</td>
<td>72</td>
<td>NO</td>
<td>&#8230;</td>
</tr>
<tr>
<td>1.8.7</td>
<td>173</td>
<td>NO</td>
<td>&#8230;</td>
</tr>
<tr>
<td>1.8.7</td>
<td>249</td>
<td>NO</td>
<td>&#8230;</td>
</tr>
<tr>
<td>1.8.7</td>
<td>299</td>
<td>NO</td>
<td>&#8230;</td>
</tr>
<tr>
<td>1.9.1</td>
<td>243</td>
<td>Yes</td>
<td><code>rake-compiler cross-ruby VERSION=1.9.1-p243</code></td>
</tr>
<tr>
<td>1.9.1</td>
<td>376</td>
<td>NO</td>
<td>&#8230;</td>
</tr>
<tr>
<td>1.9.1</td>
<td>378</td>
<td>NO</td>
<td>&#8230;</td>
</tr>
<tr>
<td>1.9.2</td>
<td>trunk</td>
<td>Yes</td>
<td>(that is true up to revision 26108)</td>
</tr>
</table>
<p>Tricky list, even switching the version of Ruby to match the one desired to be installed, it doesn&#8217;t work (reported as <a href="http://redmine.ruby-lang.org/issues/show/2485">#2485</a>, I&#8217;m very persistent).</p>
<p>So, apologies to anyone having issues with this: I&#8217;m having the same ones here.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmediasys.com/2009/12/16/rake-compiler-safe-list-of-ruby-versions-that-can-be-cross-compiled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lot of small but rewarding news</title>
		<link>http://blog.mmediasys.com/2009/10/06/lot-of-small-but-rewarding-news/</link>
		<comments>http://blog.mmediasys.com/2009/10/06/lot-of-small-but-rewarding-news/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 22:54:29 +0000</pubDate>
		<dc:creator>Luis</dc:creator>
				<category><![CDATA[Miscelaneas]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.mmediasys.com/?p=298</guid>
		<description><![CDATA[For the ones that cares: I&#8217;m still alive. I have so cool news to everybody: MySQL/Ruby support As I announced 2 months ago, new releases of MySQL gem are going to be build from my repository at GitHub Please note: only report bugs related to the gem itself, more likely the binary issues. Other type [...]]]></description>
			<content:encoded><![CDATA[<p>For the ones that cares: I&#8217;m still alive.</p>
<p>I have so cool news to everybody:</p>
<h3>MySQL/Ruby support</h3>
<p>As I announced <a href="http://blog.mmediasys.com/2009/08/21/mysqlruby-2-8-1-released/">2 months ago</a>, new releases of MySQL <em>gem</em> are going to be build from <a href="http://github.com/luislavena/mysql-gem">my repository</a> at GitHub</p>
<p><strong>Please note</strong>: only report bugs related to the gem itself, more likely the binary issues. Other type of bugs will be rejected, since this gem is a wrapper around <a href="http://rubyforge.org/projects/mysql-ruby">MySQL/Ruby</a> code from Tomita Mashahiro (tmtm)</p>
<h3><span class="caps">SQL</span>ite3/Ruby bindings</h3>
<p>I took the role of maintainer of <span class="caps">SQL</span>ite3/Ruby project, but I really lack the skills to dig into all the inner details of it.</p>
<p>So, I&#8217;m opening the door to anyone with new features, enhancements or bug fixes to fork my clone of the project (<a href="http://github.com/luislavena/sqlite3-ruby">here</a>), do your changes and send a pull request.</p>
<p>Both RubyForge Tracker and GitHub pull requests will be honored.</p>
<h3>Pure-Ruby Readline (rb-readline)</h3>
<p>Released version 0.2.0 a <a href="http://blog.mmediasys.com/2009/09/21/pure-ruby-readline-released-0-2-0/">couple of weeks ago</a>, but still is far from perfect.</p>
<p>We are still missing IO redirect and be able to run <code>test_readline.rb</code> test directly.</p>
<p><a href="http://github.com/rdp">Roger Pack</a> worked on that, but he also needs some help <img src='http://blog.mmediasys.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Please, fork the project, do your changes and send your pull requests!</p>
<h3>Windows Console (win32console) new release soon.</h3>
<p>A few patches to improve 1.9 compatibility are under way.</p>
<h3>rake-compiler get more audience!</h3>
<p>That&#8217;s right folks!, rake-compiler now is being used to drive the compile and release process of native gems for DataMapper, <a href="http://groups.google.com/group/ruby-ffi/browse_thread/thread/e46d8a6a71a0ff0f"><span class="caps">FFI</span></a> and even <a href="http://groups.google.com/group/thin-ruby/browse_thread/thread/769b4a51b526aeb3">Thin</a> !</p>
<p>Not too bad for <a href="http://blog.mmediasys.com/2008/12/13/while-leaving-ny-rake-compiler-for-the-masses/">10 months old tool</a>, ah?</p>
<p>Thanks to all the developers involved in these projects for <em>caring</em> about their products and adding the compatibility for Windows.</p>
<p>More projects listed <a href="http://wiki.github.com/luislavena/rake-compiler/projects-using-rake-compiler">here</a> &#8230; Keep them coming!</p>
<h3>Ruby Installer for Windows</h3>
<p>Preview and DevKit releases has been <a href="http://rubyforge.org/frs/?group_id=167&amp;release_id=38052">moved to RubyForge</a></p>
<p>While our <em>preview</em> concept is quite stable, we are working on getting it better <img src='http://blog.mmediasys.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Got my certificates to deliver signed installers, how cool is that?</p>
<h3>Still alive an kicking</h3>
<p>If you think I&#8217;m quiet, please join us at <a href="http://groups.google.com/group/rubyinstaller">RubyInstaller</a> Google Group, will find out that I talk more there than here <img src='http://blog.mmediasys.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmediasys.com/2009/10/06/lot-of-small-but-rewarding-news/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

