<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>HCoder.org: Category Ruby</title>
    <link>http://www.hcoder.org/articles/category/ruby</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>More Haberdasher: testsuites and RemixUI</title>
      <description>&lt;p&gt;After porting &lt;a href="http://haberdasherhq.org/"&gt;Haberdasher&lt;/a&gt; to Rails 2, I had forgotten to execute all the testsuites I had (unit, functional and acceptance, with &lt;a href="http://selenium.openqa.org/"&gt;Selenium&lt;/a&gt; and &lt;a href="http://selenium-on-rails.openqa.org/"&gt;Selenium on Rails&lt;/a&gt;). The bad news is that they didn&amp;#8217;t pass. The good news is that it wasn&amp;#8217;t such a big problem making them pass again.&lt;/p&gt;


	&lt;p&gt;The functional tests failed because of some stupid change in Rails 2. Namely, it seems that now you can&amp;#8217;t make more than one request in a single functional test method (bug?). The acceptance tests had some minor problems due to some changes I made in the interface. The rest worked without problems.&lt;/p&gt;


	&lt;p&gt;Now that everything is ported and working like a charm, it&amp;#8217;s time to make some interesting changes. I had been wanting to use a really cool library called RemixUI, made by my former company, &lt;a href="http://www.foton.es/"&gt;Fot&#243;n Sistemas Inteligentes&lt;/a&gt;, and these days I finally had the chance to use the latest version. RemixUI is a &amp;#8220;web widget&amp;#8221; library, similar to DJWidgets, MCWidgets and RemixWidgets (all of them available in the &lt;a href="http://fotonsi.berlios.de/"&gt;Fot&#243;n BerliOS page&lt;/a&gt;, but unfortunately obsolete), that makes it much easier to write validation, integration between client side and server side, interface improvements with Javascript, reusable widgets/controls, etc.&lt;/p&gt;


	&lt;p&gt;I haven&amp;#8217;t used it that much yet, but I&amp;#8217;m really eager to change all the forms and controls in the application to take advantage of the cool stuff offered by RemixUI. The problem now is that the RemixUI gem is not public yet, so I can&amp;#8217;t really release the new version of Haberdasher. I&amp;#8217;ll try to make them put the Gem somewhere public, so I can release Haberdasher, and other people can have a look at RemixUI.&lt;/p&gt;</description>
      <pubDate>Thu, 13 Mar 2008 23:19:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:3d007610-33cc-4412-bec8-e5e19399bf13</guid>
      <author>Esteban Manchado</author>
      <link>http://www.hcoder.org/articles/2008/03/13/more-haberdasher-testsuites-and-remixui</link>
      <category>Haberdasher</category>
      <category>Ruby</category>
      <category>rails</category>
      <category>remixui</category>
      <category>selenium</category>
      <category>tests</category>
      <category>rails2</category>
      <category>foton</category>
    </item>
    <item>
      <title>Haberdasher and Rails 2.0</title>
      <description>&lt;p&gt;I&amp;#8217;m kind of back to Haberdasher work, so I&amp;#8217;m playing again with Rails. However, I&amp;#8217;m a very late adopter for many things, and that included Rails because I wasn&amp;#8217;t that interested in investing time in learning all the new stuff and porting my applications to the new version.&lt;/p&gt;


	&lt;p&gt;But the universe had its own ideas about Rails 2.0 and me, so I had some retarded compatibility problems with Haberdasher and the up-to-date &lt;code&gt;rake&lt;/code&gt; utility version in Debian. The problems were related to some Rails plugins I was using, and they made me have a look at upgrading to Rails 2.0 from Rails 1.2. It turned out to be really easy to do, the hardest &lt;em&gt;by far&lt;/em&gt; was replacing the plugins that gave problems with application code or other plugins (yes, I know that if I was going to get rid of them anyway, I might as well have stayed in Rails 1.2, I just thought it was a good idea to upgrade if I was going to resume Haberdasher development).&lt;/p&gt;


	&lt;p&gt;To be honest I haven&amp;#8217;t really learned new stuff yet. I&amp;#8217;m just using the same things I was using, only now powered by Rails 2.0. A couple of improvements/clean ups in syntax, deprecated code removal and similar, but nothing big yet.&lt;/p&gt;


	&lt;p&gt;The other news is that now that I have a working Haberdasher again, I&amp;#8217;m making some changes I had in mind since months ago, namely adding some user preferences &amp;#8220;framework&amp;#8221;, and adding the ability to assign a copyright notice to the patches (with a configurable default notice per user, hence the user preferences). I haven&amp;#8217;t published this work yet, but I plan to do it in a couple of days, after updating the demo installation and checking that everything&amp;#8217;s alright.&lt;/p&gt;</description>
      <pubDate>Sun, 02 Mar 2008 22:57:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:b0bb2623-0335-4536-99ea-d1cbba85c08b</guid>
      <author>Esteban Manchado</author>
      <link>http://www.hcoder.org/articles/2008/03/02/haberdasher-and-rails-2-0</link>
      <category>Haberdasher</category>
      <category>Ruby</category>
      <category>rails</category>
      <category>upgrading</category>
      <category>compatibility</category>
      <category>problems</category>
      <category>plugins</category>
      <category>rake</category>
    </item>
    <item>
      <title>Haberdasher RSS</title>
      <description>&lt;p&gt;Haberdasher has been quite silent in the last months. I wanted to add some things, but I never got to actually devote some time to them, partly because of my work on &lt;code&gt;dhelp&lt;/code&gt;.&lt;/p&gt;


	&lt;p&gt;However, yesterday I added something that I wanted to add long ago: some simple changes in the &lt;span class="caps"&gt;RSS&lt;/span&gt; code, to make it &lt;em&gt;actually useful&lt;/em&gt;. Namely, (1) now the &lt;code&gt;pre&lt;/code&gt; tag is used for the patch contents, so they are readable, and (2) each news item adds the name of the program the patch is for (it used to be just the patch name/description, which is not that descriptive if you don&amp;#8217;t know which program it&amp;#8217;s for of course).&lt;/p&gt;


	&lt;p&gt;Those changes are of course updated now in the &lt;a href="http://haberdasherhq.org/demo/"&gt;demo installation&lt;/a&gt;, so go and have a look at the &lt;a href="http://haberdasherhq.org/demo/patches/patches_rss"&gt;new patches feed&lt;/a&gt; or some &lt;a href="http://haberdasherhq.org/demo/programs/patches_rss/6"&gt;application patches feed&lt;/a&gt; (in this case, my fake &lt;a href="http://ruby-pdf.rubyforge.org/pdf-writer/"&gt;&lt;span class="caps"&gt;PDF&lt;/span&gt;::Writer&lt;/a&gt; patches).&lt;/p&gt;


	&lt;p&gt;Comments welcome &lt;code&gt;:-)&lt;/code&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 25 Feb 2008 22:29:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:2d65a34d-a6d4-4dcb-896c-2e0dde1a8237</guid>
      <author>Esteban Manchado</author>
      <link>http://www.hcoder.org/articles/2008/02/25/more-haberdasher</link>
      <category>Haberdasher</category>
      <category>Ruby</category>
      <category>rss</category>
      <category>feed</category>
      <category>rails</category>
      <category>demo</category>
    </item>
    <item>
      <title>CruiseControl.rb</title>
      <description>&lt;p&gt;As part of my QA work on several projects, months ago I was looking for a &lt;a href="http://en.wikipedia.org/wiki/Continuous_integration"&gt;continuous integration&lt;/a&gt; server. I looked at several, but most of them seemed really scary judging from the documentation. I finally went for CruiseControl.rb, and I have been really happy with it all this time. It&amp;#8217;s a really nice, very simple continuous integration server written in Rails. I had it up and running before I even &lt;em&gt;understood&lt;/em&gt; how to install the others I looked.&lt;/p&gt;


	&lt;p&gt;Even though is a really cool piece of software, I was missing some better test result reporting. It was actually there, but only for Rails projects, and unfortunately we don&amp;#8217;t have any Rails (or Ruby, for that matter) projects at work. So, I just had a look at the sources to see if I could hook my own reporting there, and the code turned out to be impressively easy to understand (especially taking into account that it&amp;#8217;s a rather non-standard Rails application, as it has builders running as daemons, it doesn&amp;#8217;t really use a database, etc).&lt;/p&gt;


	&lt;p&gt;The result is a &lt;a href="http://jira.public.thoughtworks.org/browse/CCRB-172"&gt;patch for CC.rb&lt;/a&gt;, already submitted to their &lt;span class="caps"&gt;BTS&lt;/span&gt;, that adds a plugin-based result reporting, that can be extended to understand any kind of testsuite. It&amp;#8217;s basically a parser that collects all the test passes and test failures from the testsuite output log.&lt;/p&gt;


	&lt;p&gt;Also, the other day I had another need, which was even easier to make because it could be implemented as a simple &lt;a href="http://cruisecontrolrb.thoughtworks.com/documentation/plugins"&gt;CC.rb notification plugin&lt;/a&gt;. It depends on the above patch, and it collects all the bugs in the current build, searches in the history of the project, finds out who made the commits that produced the regressions, and bugs all those people by e-mail, pointing out which failures were supposedly made by them, and which build they started failing (so it&amp;#8217;s easier to locate the offending code).&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s not perfect, and it cannot be, but it&amp;#8217;s a nice addition to continuous integration. This notification plugin is not public yet, but it might be in the future (especially if they accept my patch as part of upstream), so stay tuned if you&amp;#8217;re interested.&lt;/p&gt;</description>
      <pubDate>Sun, 24 Feb 2008 23:28:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:c7ef3437-34da-4e85-84ce-840f08cb1b11</guid>
      <author>Esteban Manchado</author>
      <link>http://www.hcoder.org/articles/2008/02/24/cruisecontrol-rb</link>
      <category>Work</category>
      <category>Ruby</category>
      <category>Computers</category>
      <category>cc.rb</category>
      <category>cruisecontrol</category>
      <category>continuous</category>
      <category>integration</category>
      <category>ci</category>
      <category>rails</category>
      <category>patches</category>
    </item>
    <item>
      <title>Quote (quickie)</title>
      <description>&lt;p&gt;Too funny not to share &lt;code&gt;:-)&lt;/code&gt;&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;I always thought that Smalltalk would beat Java, I just didn&#8217;t know that it would be called &#8216;Ruby&#8217; when it did.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;From &lt;a href="http://www.lacaraoscura.com/2007/11/20/i-always-thought-that-smalltalk-would-beat-java/"&gt;La Cara Oscura del Desarrollo de Software&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 28 Nov 2007 22:53:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:0d7f57f8-2565-4122-a325-28082f1b67a3</guid>
      <author>Esteban Manchado</author>
      <link>http://www.hcoder.org/articles/2007/11/28/quote-quickie</link>
      <category>Ruby</category>
      <category>quotes</category>
    </item>
    <item>
      <title>Dhelp's new release</title>
      <description>&lt;p&gt;Dhelp&amp;#8217;s new release is coming along nicely. In the last days I have fixed a couple of bugs in &lt;code&gt;dhelp_parse&lt;/code&gt;&amp;#8217;s rewrite, and I think it&amp;#8217;s now ready for upload. The new package closes 28 bugs, which is &lt;em&gt;more than half&lt;/em&gt; the &lt;a href="http://bugs.debian.org/dhelp"&gt;current open bugs for the package&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;I have warned the current maintainer and the &lt;code&gt;debian-doc&lt;/code&gt; mailing list, so I hope to upload the new version in a couple of days&amp;#8230;&lt;/p&gt;</description>
      <pubDate>Sun, 21 Oct 2007 22:51:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:d068bb3d-bc44-43d5-8f0b-c8aabac94782</guid>
      <author>Esteban Manchado</author>
      <link>http://www.hcoder.org/articles/2007/10/21/dhelps-new-release</link>
      <category>Ruby</category>
      <category>Debian</category>
      <category>dhelp</category>
      <category>package</category>
      <category>upload</category>
      <category>bugs</category>
    </item>
    <item>
      <title>Dhelp strikes back</title>
      <description>&lt;p&gt;In the last days I have gone back to working on &lt;code&gt;dhelp&lt;/code&gt;, a Debian package for documentation indexing and search. Months ago I had started rewriting &lt;code&gt;dhelp_parse&lt;/code&gt;, the only program in the suite written in C, in Ruby.&lt;/p&gt;


	&lt;p&gt;The rewrite was almost done, but the program wasn&amp;#8217;t tested much (some modules had unit tests, but the program itself didn&amp;#8217;t), so I found a couple of big bugs easily :-D Now it looks better, so hopefully I&amp;#8217;ll be done soon, and I&amp;#8217;ll upload the new package to Debian so people can start testing it.&lt;/p&gt;</description>
      <pubDate>Thu, 18 Oct 2007 22:22:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:c53d4d63-4070-4457-bfaa-251fad0eb8a3</guid>
      <author>Esteban Manchado</author>
      <link>http://www.hcoder.org/articles/2007/10/18/dhelp-strikes-back</link>
      <category>Ruby</category>
      <category>Debian</category>
      <category>dhelp</category>
      <category>packages</category>
    </item>
    <item>
      <title>Some haberdasher work</title>
      <description>&lt;p&gt;In the last days I&amp;#8217;ve had some time to devote to Haberdasher. Finally the domain is up and running (&lt;a href="http://haberdasherhq.org"&gt;haberdasherhq.org&lt;/a&gt;), currenly pointing to the &lt;a href="http://www.rubyforge.org"&gt;RubyForge&lt;/a&gt; project page.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ve also set up a new &lt;a href="http://haberdasherhq.org/screenshots/"&gt;screenshot gallery&lt;/a&gt;, I&amp;#8217;ve the &lt;a href="http://haberdasherhq.org/darcs"&gt;Darcs repository&lt;/a&gt; online and soon I&amp;#8217;ll have a demo online, so you can try it out.&lt;/p&gt;


	&lt;p&gt;On the code side, I&amp;#8217;ve updated Rails to the latest 1.2.x, have updated all the plugins, and I have added a very simple &lt;em&gt;tag&lt;/em&gt; system. I&amp;#8217;m also experimenting with a new web widget system, more news when I have something interesting to show.&lt;/p&gt;</description>
      <pubDate>Sat, 13 Oct 2007 17:21:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:346ed5c8-47e6-4dad-9d9c-c46386f48da7</guid>
      <author>Esteban Manchado</author>
      <link>http://www.hcoder.org/articles/2007/10/13/some-haberdasher-work</link>
      <category>Ruby</category>
      <category>haberdasher</category>
    </item>
  </channel>
</rss>
