<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Bruno Pinto</title>
		<description>Writings by Bruno Pinto. Bruno works at ThoughtWorks and enjoys drinking beer.</description>
		<link>http://bpinto.github.com</link>
		
			<item>
				<title>Rails 4 precompile assets</title>
				<description>&lt;p&gt;Adding &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;config.assets.precompile&lt;/code&gt; to your config/environments/production.rb file is not working on rails 4. This &lt;a href=&quot;https://github.com/rails/sprockets-rails/pull/36&quot;&gt;bug&lt;/a&gt; has been raised on sprocket-rails and as a temporary fix, move this setting to config/application.rb&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Application&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Rails&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Application&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;

  &lt;span class=&quot;c1&quot;&gt;# Precompile additional assets.&lt;/span&gt;
  &lt;span class=&quot;c1&quot;&gt;# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;assets&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;precompile&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;sx&quot;&gt;%w( head.js )&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

</description>
				<published>2013-05-18 00:00:00 +0000</published>
				<link>http://bpinto.github.com/posts/rails-4-precompile-assets</link>
			</item>
		
			<item>
				<title>Hatmaker - An alfred workflow manager</title>
				<description>&lt;p&gt;It’s hard for me to use a computer without &lt;a href=&quot;http://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt; nowadays – it’s one of the first apps I install when bootstrapping my computer. And with its recent release – version 2 – where they have introduced workflows, it has gotten even better.&lt;/p&gt;

&lt;p&gt;There is one problem though and this is what I’m trying to solve with &lt;a href=&quot;https://github.com/bpinto/hatmaker&quot;&gt;Hatmaker&lt;/a&gt;: Workflows are made by the community and the official place to release them is a forum, as you can imagine, keeping your workflows up-to-date is a madness.&lt;/p&gt;

&lt;p&gt;There are some unofficial attempts to provide a solution for this problem but still they all miss some important features. Hatmaker goal is not to re-invent the wheels but to unify these solutions in order to provide an easy workflow manager.&lt;/p&gt;

&lt;p&gt;Hatmaker &lt;em&gt;version 1.3&lt;/em&gt; has been released and with the help of the community, new features are being added continuously. Great features are to be added on the next release versions, make sure you follow it on &lt;a href=&quot;https://github.com/bpinto/hatmaker&quot;&gt;github&lt;/a&gt; and on this blog.&lt;/p&gt;

</description>
				<published>2013-04-24 00:00:00 +0000</published>
				<link>http://bpinto.github.com/posts/hatmaker</link>
			</item>
		
			<item>
				<title>Running mocha tests on subdirectories</title>
				<description>&lt;p&gt;Over the weekend I started a &lt;a href=&quot;http://nodejs.org/&quot;&gt;node.js&lt;/a&gt; app and decided to give &lt;a href=&quot;http://visionmedia.github.com/mocha/&quot;&gt;mocha&lt;/a&gt; a try. Despite all google I did and all github issues I read, I couldn’t find an easy way to run tests that are on subdirectories.&lt;/p&gt;

&lt;p&gt;But why should it be &lt;strong&gt;easy&lt;/strong&gt;? :P&lt;/p&gt;

&lt;p&gt;Mocha advices you to use Makefiles to setup which tests it should run, IMHO this is over-engineering – maybe one day you will need it.
The solution I propose is quite easy, and I just needed to look at the &lt;a href=&quot;https://github.com/visionmedia/mocha/blob/master/bin/_mocha&quot;&gt;mocha binary file&lt;/a&gt; and see the possible arguments it accepts.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-r, --require &amp;lt;name&amp;gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;require the given module&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-R, --reporter &amp;lt;name&amp;gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;specify the reporter to use&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;dot&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-u, --ui &amp;lt;name&amp;gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;specify user-interface (bdd|tdd|exports)&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;bdd&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-g, --grep &amp;lt;pattern&amp;gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;only run tests matching &amp;lt;pattern&amp;gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-i, --invert&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;inverts --grep matches&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-t, --timeout &amp;lt;ms&amp;gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;set test-case timeout in milliseconds [2000]&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-s, --slow &amp;lt;ms&amp;gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&quot;slow&quot; test threshold in milliseconds [75]&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-w, --watch&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;watch files for changes&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-c, --colors&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;force enabling of colors&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-C, --no-colors&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;force disabling of colors&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-G, --growl&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;enable growl notification support&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-d, --debug&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;enable node's debugger, synonym for node --debug&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-b, --bail&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;bail after first test failure&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;-A, --async-only&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;force all tests to take a callback (async)&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;--recursive&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;include sub directories&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;--debug-brk&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;enable node's debugger breaking on the first line&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;--globals &amp;lt;names&amp;gt;&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;allow the given comma-delimited global [names]&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[])&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;--ignore-leaks&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;ignore global variable leaks&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;--interfaces&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;display available interfaces&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;--reporters&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;display available reporters&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;option&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;--compilers &amp;lt;ext&amp;gt;:&amp;lt;module&amp;gt;,...&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;use the given module(s) to compile files&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[])&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--recursive&lt;/code&gt; option does what we need. So, one just needs to run mocha using this option and mocha will find all files under the test directory.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;➜ mocha &lt;span class=&quot;nt&quot;&gt;--recursive&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;In order to set this as a default argument, configure this on your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;test/mocha.opts&lt;/code&gt; file.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;➜  &lt;span class=&quot;nb&quot;&gt;cat test&lt;/span&gt;/mocha.opts
&lt;span class=&quot;nt&quot;&gt;--recursive&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This also works when running &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm test&lt;/code&gt;, as long as your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;package.json&lt;/code&gt; is configured properly:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;scripts&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;mocha&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

</description>
				<published>2013-03-11 00:00:00 +0000</published>
				<link>http://bpinto.github.com/posts/running-mocha-tests-on-subdirectories</link>
			</item>
		
			<item>
				<title>Janky - The forgotten tool</title>
				<description>&lt;p&gt;Where I work we use &lt;a href=&quot;https://www.github.com&quot;&gt;GitHub&lt;/a&gt; as our Git central repository, and we have Yoda, our &lt;a href=&quot;http://hubot.github.com&quot;&gt;Hubot&lt;/a&gt;, helping us on our day to day tasks. We had to setup a Continuous Integration server for our project and after looking at all the CI options out there, we had to decide between &lt;a href=&quot;https://travis-ci.org/&quot;&gt;Travis-ci&lt;/a&gt; or &lt;a href=&quot;http://jenkins-ci.org/&quot;&gt;Jenkins&lt;/a&gt;. Both are well-known continuous integration servers but they were not exactly what we needed at the moment. Travis is $150 per month and Jenkins has to be manually installed and configured, plus it has an awkward interface.&lt;/p&gt;

&lt;p&gt;Travis could certainly be our solution in a future moment but, for now, we decided to try Jenkins out. As a solution for the issues raised, we decided to use &lt;a href=&quot;https://github.com/github/janky&quot;&gt;Janky&lt;/a&gt;, &lt;em&gt;“(…) a continuous integration server built on top of Jenkins, controlled by Hubot, and designed for GitHub”&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;When I first read Janky’s readme, I thought it would be an easy setup… Well, I couldn’t be more &lt;strong&gt;wrong&lt;/strong&gt;. It’s hard to know which values should be set for each of the required environment variables, and the gem is outdated forcing you to build it from git directly…&lt;/p&gt;

&lt;p&gt;Anyway, one can always fork and submit pull requests, right? So, let’s focus on the setup process.&lt;/p&gt;

&lt;h2 id=&quot;installing-jenkins&quot;&gt;Installing Jenkins&lt;/h2&gt;

&lt;p&gt;Janky recommends Jenkins version 1.427, but as I installed a newer version (1.498) you should be fine with newer versions. &lt;a href=&quot;https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins&quot;&gt;Installing Jenkins&lt;/a&gt; guide is easy to follow and will help you on installing a Jenkins server if you don’t have one yet.&lt;/p&gt;

&lt;h2 id=&quot;installing-janky&quot;&gt;Installing Janky&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/github/janky#deploying&quot;&gt;Janky’s guide&lt;/a&gt; on the other hand will guide you to &lt;strong&gt;failure&lt;/strong&gt; &lt;strike&gt;since the beginning as the [Gist][] you use to install is outdated and lacks the *JANKY_BRANCH* variable definition.&lt;/strike&gt;. Apparently the gist has been updated, so you can &lt;strong&gt;almost&lt;/strong&gt; run the commands as they say:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;➜ git clone git://gist.github.com/1497335 janky
➜ &lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;janky
➜ heroku create &lt;span class=&quot;nt&quot;&gt;--stack&lt;/span&gt; cedar&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;At this point, I suggest to not use the latest &lt;strong&gt;released gem&lt;/strong&gt; version (0.9.13) – as its &lt;strong&gt;outdated&lt;/strong&gt; – and bundle the gem directly from the repository by changing the following lines in the Gemfile.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;&lt;span class=&quot;n&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;janky&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;&lt;span class=&quot;n&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;janky&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:git&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;git://github.com/github/janky.git&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;And now we can proceed with the installation guide:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;➜ bundle &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt;
➜ git add Gemfile.lock
➜ git commit Gemfile.lock &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;lock bundle&quot;&lt;/span&gt;
➜ git push heroku master&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;configuring-janky&quot;&gt;Configuring Janky&lt;/h2&gt;

&lt;p&gt;All variables are defined with the following syntax:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;➜ heroku config:add &lt;span class=&quot;nv&quot;&gt;VARIABLE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;value&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Define janky’s URL on heroku &lt;strong&gt;with a trailing slash&lt;/strong&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;JANKY_BASE_URL: http://JANKY_APP_NAME.herokuapp.com/&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Our server has Jenkins’ &lt;em&gt;Matrix-based security&lt;/em&gt; enabled, so only registered users can access Jenkins. In order to authorize Janky, you need to create an account for it and specify both the username and its api token that can be found on the user configuration page: &lt;em&gt;http://jenkins.example.com/user/JENKINS_USER_NAME/configure&lt;/em&gt; on the URL.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;JANKY_BUILDER_DEFAULT: http://USER:API_TOKEN@jenkins.example.com/&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Define the configuration dir (default):&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-m2&quot; data-lang=&quot;m2&quot;&gt;JANKY_CONFIG_DIR: /app/config&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Hubot’s user and password are the same passwords you will use when configuring &lt;a href=&quot;https://github.com/github/hubot-scripts/blob/master/src/scripts/janky.coffee&quot;&gt;Janky’s hubot script&lt;/a&gt;. Create your own secure user/password here.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-m2&quot; data-lang=&quot;m2&quot;&gt;JANKY_HUBOT_USER: Login used to protect the Hubot API.
JANKY_HUBOT_PASSWORD: Password for the Hubot API.&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;You have to create a github account (or use your own) to allow janky to connect to github and set up service hooks for you.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-m2&quot; data-lang=&quot;m2&quot;&gt;JANKY_GITHUB_USER: Login of the GitHub user. Requires Administrative privileges to set up service hooks.
JANKY_GITHUB_PASSWORD: Password for the GitHub user.&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;There are two variables that apparently should be configured with the same value, and the token value is obtained by using the one that comes in the following curl command response:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;➜ curl &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; USERNAME:PASSWORD &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'{ &quot;scopes&quot;: [ &quot;repo:status&quot; ], &quot;note&quot;: &quot;janky&quot; }'&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
https://api.github.com/authorizations

JANKY_GITHUB_HOOK_SECRET: Secret used to sign hook requests from GitHub.
JANKY_GITHUB_STATUS_TOKEN: To update pull requests with the build status.&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;You should also specifiy the default chat room, but I don’t know whether this is the room name or number on campfire. It should not be a problem as long as you specify the room for each project.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;JANKY_CHAT_DEFAULT_ROOM: Chat room where notifications are sent by default.&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;migrating-the-database&quot;&gt;Migrating the database&lt;/h2&gt;

&lt;p&gt;Now you can run the database migration.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;➜ heroku run rake db:migrate&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;configuring-hubot&quot;&gt;Configuring hubot&lt;/h2&gt;

&lt;p&gt;Configuring hubot is pretty easy, all you have to do is enable its script on &lt;em&gt;hubot-scripts.json&lt;/em&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;janky.coffee&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;and define an environment variable on hubot’s server (not janky’s). Don’t forget to append &lt;strong&gt;_hubot/&lt;/strong&gt; to the URL:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;HUBOT_JANKY_URL: http://JANKY_HUBOT_USER:JANKY_HUBOT_PASSWORD@JANKY_APP_NAME.herokuapp.com/_hubot/&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;troubleshooting&quot;&gt;Troubleshooting&lt;/h2&gt;

&lt;p&gt;After all heroku commands you might need to specify the app on which you want to run the command using the argument &lt;em&gt;−−app&lt;/em&gt;.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;➜ heroku run rake db:migrate &lt;span class=&quot;nt&quot;&gt;--app&lt;/span&gt; MY_APP_NAME&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

</description>
				<published>2013-01-17 00:00:00 +0000</published>
				<link>http://bpinto.github.com/posts/janky-the-forgotten-tool</link>
			</item>
		
			<item>
				<title>Fish and RVM</title>
				<description>&lt;p&gt;Decided to move from bash/zsh/etc to &lt;a href=&quot;http://ridiculousfish.com/shell/&quot;&gt;fish&lt;/a&gt; shell? Developing in ruby? So, you probably use rvm.&lt;/p&gt;

&lt;p&gt;If you are &lt;em&gt;lucky&lt;/em&gt;, you found this &lt;a href=&quot;https://rvm.io/integration/fish/&quot;&gt;step-by-step tutorial&lt;/a&gt; that integrates rvm with fish. After using fish for a while, you noticed that your &lt;strong&gt;cd&lt;/strong&gt; function is missing some features… WTF!?&lt;/p&gt;

&lt;p&gt;Why would the cd function lose features if &lt;em&gt;“RVM just manipulates environment variables”&lt;/em&gt;?  Rvm is not &lt;strong&gt;just&lt;/strong&gt; manipulating environment variables, it also overrides shell commands like cd.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;➜ &lt;span class=&quot;nb&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-l&lt;/span&gt; GITHUB https://raw.github.com/lunks/fish-nuggets/master/functions
➜ curl &lt;span class=&quot;nt&quot;&gt;--create-dirs&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-o&lt;/span&gt; ~/.config/fish/functions/rvm.fish &lt;span class=&quot;nv&quot;&gt;$GITHUB&lt;/span&gt;/rvm.fish
➜ curl &lt;span class=&quot;nt&quot;&gt;-o&lt;/span&gt; ~/.config/fish/functions/cd.fish &lt;span class=&quot;nv&quot;&gt;$GITHUB&lt;/span&gt;/cd.fish&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;As you can see, the third step from the tutorial is actually redefining the cd function.
&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Fish has a philosophy different than most of the shells: &lt;em&gt;“Many other shells have a large library of builtin commands. Most of these commands are also available as standalone commands, but have been implemented in the shell anyway for whatever reason. To avoid code duplication, and to avoid the confusion of subtly differing versions of the same command, fish only implements builtins for actions which cannot be performed by a regular command.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;While you have the builtin command cd you also have the regular command defined in fish. The latter adds more features to the cd function.&lt;/p&gt;

&lt;p&gt;Functions in fish are lazy loaded, and ones priority depends on the directory that it was defined. When following the step-by-step guide, the cd function is copied to a user specific directory which has a higher priority than the default fish functions directory. Thus, the regular cd command is never loaded.&lt;/p&gt;

&lt;p&gt;One of the features your cd command loses is being able to cd into your previous path:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;➜ &lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; -
&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt;: The directory &lt;span class=&quot;s1&quot;&gt;'-'&lt;/span&gt; does not exist&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Currently, fish has no support for replacing functions without losing its functionality, and as I &lt;strong&gt;was&lt;/strong&gt; using rvm at that time I decided to create such behaviour. This functionality was added to &lt;a href=&quot;https://github.com/bpinto/oh-my-fish/&quot;&gt;Oh My Fish&lt;/a&gt; and its rvm plugin already fixes this issue.&lt;/p&gt;

</description>
				<published>2012-07-29 00:00:00 +0000</published>
				<link>http://bpinto.github.com/posts/fish-and-rvm</link>
			</item>
		
			<item>
				<title>Oh My Fish</title>
				<description>&lt;p&gt;I’ve been using &lt;a href=&quot;http://www.zsh.org/&quot;&gt;Zsh&lt;/a&gt; as my default shell for a long time, it has many builtin functions that I use on my day-to-day work. I also use some plugins that come with &lt;a href=&quot;https://github.com/robbyrussell/oh-my-zsh/&quot;&gt;Oh My Zsh&lt;/a&gt; and others that I did; This is my current plugin list: &lt;em&gt;autojump, brew, bundler, fast_rake, git, mkv, rails3, rake, rvm, wifi&lt;/em&gt; .&lt;/p&gt;

&lt;p&gt;Time has passed and I started noticing that my shell is &lt;strong&gt;really slow&lt;/strong&gt;. It’s certainly related to the amount of functions and plugins that I use, so I looked for a solution and found &lt;a href=&quot;http://ridiculousfish.com/shell/&quot;&gt;Fish&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://ridiculousfish.com/shell/&quot;&gt;Fish&lt;/a&gt; is a incredible fast shell which “uses a cutting-edge technology known as ‘threads,’ so it doesn’t stutter even on sluggish filesystems”. It has a different approach then &lt;a href=&quot;http://www.gnu.org/software/bash/&quot;&gt;Bash&lt;/a&gt; and &lt;a href=&quot;http://www.zsh.org/&quot;&gt;Zsh&lt;/a&gt; which might not meet your needs (and maybe not mine) but I’m willing to try it.&lt;/p&gt;

&lt;p&gt;At this moment, I’m adding these plugins to &lt;a href=&quot;https://github.com/bpinto/oh-my-fish/&quot;&gt;Oh My Fish&lt;/a&gt; (a framework for &lt;a href=&quot;http://ridiculousfish.com/shell/&quot;&gt;Fish&lt;/a&gt; that I’m developing) and in the future I intend to add support for more tools. Wanna help me and the &lt;a href=&quot;http://ridiculousfish.com/shell/&quot;&gt;Fish&lt;/a&gt; community? &lt;a href=&quot;https://github.com/bpinto/oh-my-fish/&quot;&gt;Fork it&lt;/a&gt;!&lt;/p&gt;

</description>
				<published>2012-07-25 00:00:00 +0000</published>
				<link>http://bpinto.github.com/posts/oh-my-fish</link>
			</item>
		
			<item>
				<title>Another blog attempt</title>
				<description>&lt;p&gt;I tried blogging a few times in the past but the result was always
the same: The blog was &lt;strong&gt;abandoned&lt;/strong&gt; after a while. From these attempts, I think
I’ve learned what I believe is essential to go beyond the &lt;em&gt;huge&lt;/em&gt; amount of 3
posts per blog:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Write about anything&lt;/li&gt;
  &lt;li&gt;Engage with your blog’s readers (if any)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Invest on the environment&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;investing-on-the-environment&quot;&gt;Investing on the environment&lt;/h2&gt;

&lt;p&gt;There are several ways one could invest on his blog environment, e.g., using
a good blog platform, using a good blog layout, etc.&lt;/p&gt;

&lt;p&gt;I’m using &lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; - a static site generator - as my blog platform, it
improves my &lt;strong&gt;limited&lt;/strong&gt; blogging capacity. Mixing it with the joy of building my
first blog layout… I can only preview a wonderful blog ahead!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; has many &lt;a href=&quot;https://github.com/mojombo/jekyll/wiki/Plugins&quot;&gt;Plugins&lt;/a&gt; one could use in order to improve their blog and it
also seems easy to develop new ones if necessary. With this in mind,
I believe I will start thinking about the blog not only as a way to learn &amp;amp; share
but also as a way to do what I most enjoy – developing.&lt;/p&gt;

&lt;p&gt;Lastly, but not least, I’m using &lt;a href=&quot;http://github.com&quot;&gt;github&lt;/a&gt; as a remote repository and to host
the blog.&lt;/p&gt;

</description>
				<published>2012-05-12 00:00:00 +0000</published>
				<link>http://bpinto.github.com/posts/another-blog-attempt</link>
			</item>
		
	</channel>
</rss>
