<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!--Thanks to Mikael Lind of http://elemel.github.com --><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
  <title>Sudhindra Rao</title>
  
  <link href="http://betarelease.github.com/" />
  <updated>2012-02-15T21:29:17-08:00</updated>
  <id>http://betarelease.github.com/</id>
  <author>
    <name>Sudhindra Rao</name>
    <email>srrao2k (at) gmail.com</email>
  </author>
  
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/betarelease" /><feedburner:info uri="betarelease" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
      <title>Bundler with vendorized gems</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/OERV61urmR4/bundler-is-awesome.html" />
      <updated>2012-02-15T00:00:00-08:00</updated>
      <id>http://betarelease.github.com/2012/02/15/bundler-is-awesome</id>
      <content type="html">&lt;p&gt;Bundler is a tool for managing installed libraries on a ruby project. It comes bundled with rails 3 but can be used standalone without rails. &lt;br /&gt;
Bundler tries to fix issues with having to manage your gems(and their related dependencies and versions) in a clean way. In doing so it allows you to work on your application and not have to worry about dependencies sucking the life out of your releases.&lt;/p&gt;
&lt;p&gt;Off late I have been working on an application that vendorizes its gems and packages them while shipping the application. Since this application is also been built in the traditional way(rails 2) I was looking to use bundler with it to do the vendorization. Turns out bundler supports such a use case.&lt;/p&gt;
&lt;p&gt;For a packaged application bundler allows you to freeze the gems and unpack them in the &lt;br /&gt;
location of your choosing. This path can then be added to your application to load all the &lt;br /&gt;
frozen gems. The following command with the path set to the location you would like to unpack your gems allows you to use bundler to vendorize gems.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;   &lt;span class="n"&gt;bundle&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="n"&gt;vendor&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bundle&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;You can then add these gems to your application as you would for vendorized gems.&lt;/p&gt;
&lt;h3&gt;Bundler with rvm and gemsets&lt;/h3&gt;
&lt;p&gt;One of the popular opinions is to just use bundler and ditch gemsets. I tend to use both gemsets and bundler to my advantage. This helps especially when I am working on multiple applications and when I am not online all the time. I ensure that my bundle is upto date before I go offline and then can work on my apps when I am offline by switching gemsets. Sometimes I tend to have multiple gemsets built when I am working on changing or experimenting with gems.&lt;/p&gt;
&lt;p&gt;That way I do not have conflicts when I am using one version of rake for a ruby 1.8.7 application while my other ruby 1.9.3 application uses the latest and greatest rake gem.&lt;/p&gt;
&lt;h3&gt;Cleaning your gems before using bundler&lt;/h3&gt;
&lt;p&gt;Bundler allows you to install and update a set of gems based on the Gemfile. But it is not obvious how you would set up an application that has local gems installed to start using bundler. To start you need to delete all gems from the current gems. Having a clean workspace allows bundler to install gems from Gemfile without conflicts and can prevent a lot of confusion when multiple versions of a gem being installed side by side.&lt;/p&gt;
&lt;p&gt;Here is a snippet that will allow you to clean your gemset.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;   &lt;span class="no"&gt;Delete&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="n"&gt;gems&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;gemset&lt;/span&gt;

   &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;cut&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;f1&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;xargs&lt;/span&gt; &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="n"&gt;uninstall&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;aIx&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;In most cases this will work. But rake seems to be installed as part of the global gemset. So the above command will delete all gems till rake and then abort. To skip deleting rake change the above script as follows&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;   &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;cut&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;f1&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;ack&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;rake&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;xargs&lt;/span&gt; &lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="n"&gt;uninstall&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;aIx&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;(ack is further reading if you don&amp;#8217;t already know what it does.)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=OERV61urmR4:cZrJ1OB5URM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/OERV61urmR4" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2012/02/15/bundler-is-awesome.html</feedburner:origLink></entry>
  
    <entry>
      <title>grok grack</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/737IBjqS5SI/grok-grack.html" />
      <updated>2012-01-19T00:00:00-08:00</updated>
      <id>http://betarelease.github.com/2012/01/19/grok-grack</id>
      <content type="html">&lt;p&gt;Recently I was trying to host git repository from an already existing(non-bare) repository. I &lt;br /&gt;
was looking for a solution that does not force me to create a bare repository and does not &lt;br /&gt;
require me to install apache or some such webserver on my machine.&lt;/p&gt;
&lt;p&gt;I found a wonderful tool written by Scott Chacon called &lt;a href="https://github.com/schacon/grack.git"&gt;grack&lt;/a&gt;. grack is a git server on top of rack. Its elegance is in its design. It consists of few hundred lines of a rack middleware(awesome!) and a 6-8 line config file that allows you to host any repository over http. Setting it up on a local &lt;br /&gt;
machine was really easy. Even hosting multiple repositories is trivial.&lt;/p&gt;
&lt;p&gt;I discovered one quirk when my server was not accessible, was due to binding it specifically to 127.0.0.1.&lt;br /&gt;
Avoid this and bind to the hostname instead.&lt;/p&gt;
&lt;p&gt;Many thanks to Scott Chacon, Github, Rack and Ruby for keeping it so simple.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=737IBjqS5SI:MNo7Oqa4kG8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/737IBjqS5SI" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2012/01/19/grok-grack.html</feedburner:origLink></entry>
  
    <entry>
      <title>Simple Dashboard with Tab Slideshow</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/VWEsuKbIk7o/simple-dashboard-with-tab-slideshow.html" />
      <updated>2011-12-07T00:00:00-08:00</updated>
      <id>http://betarelease.github.com/2011/12/07/simple-dashboard-with-tab-slideshow</id>
      <content type="html">&lt;p&gt;I had almost forgotten about &lt;a href="http://addons.mozilla.org/en-US/firefox/addon/tab-slideshow/"&gt;Tab Slideshow&lt;/a&gt; for Firefox but an appropriate application of it jogged my memory. We wanted to show a few build reports on the dashboard and also wanted them to be big and visible. Also the reports do not change as rapidly as the build and can afford to be little delayed(since mostly we are showing long running build results). So we just opened up those reports in a tab each and started &amp;#8216;Tab Slideshow&amp;#8217;. Worked like a charm. We now have the simplest dashboard.&lt;/p&gt;
&lt;p&gt;Note: &lt;a href="https://chrome.google.com/webstore/detail/loepeenhjndiclafjgoackjblfhonogb"&gt;Tab Slideshow for Chrome&lt;/a&gt; does not seem to refresh the tabs where as the Firefox version does what is expected.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=VWEsuKbIk7o:hbmnmOb9PWw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/VWEsuKbIk7o" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2011/12/07/simple-dashboard-with-tab-slideshow.html</feedburner:origLink></entry>
  
    <entry>
      <title>Airport Express as Remote Speakers for Airplay - Also with Linux</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/4OB3w3pG5B8/airport_express_as_remote_speakers_for_airplay.html" />
      <updated>2011-09-30T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2011/09/30/airport_express_as_remote_speakers_for_airplay</id>
      <content type="html">&lt;p&gt;I have an airport express that I used to use as my wireless router when I travel.  Very convenient and useful when hotels do not provide a wireless.(Yes I am looking at you Marriott.) Airport Express thanks to apple technology also supports airplay to play music over the air, and/or printer sharing via a &lt;span class="caps"&gt;USB&lt;/span&gt; connection.&lt;/p&gt;
&lt;p&gt;I was hoping to connect my desktop and my laptop to my music system which is located in another room than these machines. Apparently airport express can connect with your existing wireless router as a client(yes they have thought of everything) allowing you to do exactly that. &lt;br /&gt;
Here is a list of quirks you need to remember when you try to set it up as a &lt;a href="http://support.apple.com/kb/HT2272?viewlocale=en_US"&gt;wireless client&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Prerequisites &amp;#8211; Note down the channel number your current wireless router is transmitting on &amp;#8211; anywhere between 1-11. (numbers higher than 11 are not supported in the US.)&lt;/li&gt;
	&lt;li&gt;Plug in the airport express and connect it to your mac using the ethernet cable.&lt;/li&gt;
	&lt;li&gt;Start airport utility &amp;#8211; which will try to detect any airport devices but will not find any.&lt;/li&gt;
	&lt;li&gt;Hard reset by pressing the reset button with a paper clip for atleast 10 seconds. The light blinks rapidly when you are holding the pin and then in 30 seconds becomes steady &amp;#8211; this means that airport express is restarting.&lt;/li&gt;
	&lt;li&gt;Now rescan on the airport utility &amp;#8211; it should find one device with name &amp;#8216;Base station xxxxxx&amp;#8217; &amp;#8211; with last 6 digits from the mac address. It should have a yellow icon next to it &amp;#8211; indicating that it has not connected to the internet.&lt;/li&gt;
	&lt;li&gt;Perform a Manual Setup &amp;#8211; DO &lt;span class="caps"&gt;NOT&lt;/span&gt; hit continue.&lt;/li&gt;
	&lt;li&gt;Change the channel number that is automatically set on the airport express to the one from your wireless router.&lt;/li&gt;
	&lt;li&gt;In &amp;#8216;Wireless&amp;#8217; connect the airport express as a client &amp;#8211; select &amp;#8216;Join an existing wireless network&amp;#8217; &amp;#8211; select appropriate &lt;span class="caps"&gt;SSID&lt;/span&gt; of the wireless router.&lt;/li&gt;
	&lt;li&gt;Browse through other tabs if you are interested in the details &amp;#8211; else click &amp;#8216;Update&amp;#8217;.&lt;/li&gt;
	&lt;li&gt;The airport express should restart and reappear on the Airport Utility. This usually takes over a minute. When it reappears it should appear with the new name you chose and with a green light next to it &amp;#8211; indicating it was able to connect to your wireless router.&lt;/li&gt;
	&lt;li&gt;If everything was successful and airport express liked the &amp;#8216;Enable for Airplay&amp;#8217; selection you made &amp;#8211; you will see a red light in the stereo socket light up. Connect your speakers to airport express and you should be able to airplay your music using iTunes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Notes:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;You may encounter &amp;#8220;AirPort Utility was unable to find your AirPort wireless device after restarting.&amp;#8221; One of the reasons for this is that Airport express cannot connect to your router with WPA2 or any other security.(Look at &lt;a href="http://www.mac-forums.com/forums/internet-networking-wireless/103890-airport-express-existing-wireless-network-help.html"&gt;Airport Express Amber Light&lt;/a&gt; for more details.)&lt;/li&gt;
	&lt;li&gt;To ensure security I disabled &amp;#8216;&lt;span class="caps"&gt;SSID&lt;/span&gt; broadcast&amp;#8217; and enabled &lt;span class="caps"&gt;MAC&lt;/span&gt; filtering on my router. I added the &lt;span class="caps"&gt;MAC&lt;/span&gt; addresses of my Airport Express(Airport Admin Utility will show those addresses when it detects Airport Express.)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To allow your linux machine to connect and airplay to the airport express you need install pulseaudio&amp;#8217;s drivers and support for remote audio protocol by running &lt;a href="http://www.makeuseof.com/tag/apples-airtunes-ubuntulinux/"&gt;airtunes with Linux&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;&lt;span class="lineno"&gt;1&lt;/span&gt; &lt;span class="n"&gt;sudo&lt;/span&gt; &lt;span class="n"&gt;apt&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;pulseaudio&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;raop&lt;/span&gt; &lt;span class="n"&gt;paprefs&lt;/span&gt;
&lt;span class="lineno"&gt;2&lt;/span&gt; 
&lt;span class="lineno"&gt;3&lt;/span&gt; &lt;span class="c1"&gt;# (I am not making this up- The protocol is Remote Audio Output Protocol - raop)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Setup pulseaudio to enable remote speakers as described in &lt;a href="http://blog.paulbetts.org/index.php/2007/04/15/pulseaudio-in-ubuntu-feisty-play-sound-over-the-network/"&gt;PulseAudio settings&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once it is installed you may need to restart your Linux machine. On restarting you should see your newly available remote speakers in your Sound Preferences. Now you should be able to stream from your Linux machine too.&lt;/p&gt;
&lt;p&gt;And you are done.&lt;br /&gt;
Enjoy remote streaming.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=4OB3w3pG5B8:9rbPeVt-SVc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/4OB3w3pG5B8" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2011/09/30/airport_express_as_remote_speakers_for_airplay.html</feedburner:origLink></entry>
  
    <entry>
      <title>Why I use Firefox over Chrome?</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/9tQ-wqs_dLM/why-firefox.html" />
      <updated>2010-12-18T00:00:00-08:00</updated>
      <id>http://betarelease.github.com/2010/12/18/why-firefox</id>
      <content type="html">&lt;p&gt;For development I choose to use tools which make the code transparent. Hence I prefer to use simple text editors over IDEs(although I like IntelliJ for Java code), or browsers that have good builtin support for debugging over closed/magical ones(hence Firefox/Chrome/Safari over IE).&lt;/p&gt;
&lt;p&gt;Recently I switched to Chrome as my primary browser since it promised to have all the add-ons to make it comparable to Firefox. On the contrary, in fact it still lacks the power and the flexibility of Firefox for development. Here are a few reasons why Firefox is still better at supporting development:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/748/"&gt;greasemonkey&lt;/a&gt; for Firefox works with XMLHTTPRequests for different origin &amp;#8211; &lt;a href="http://greasemetal.31tools.com/"&gt;greasemetal&lt;/a&gt; (now &lt;a href="http://www.chromium.org/developers/design-documents/user-scripts"&gt;userscripts&lt;/a&gt;) for Google Chrome has still not been able to fix this issue.&lt;br /&gt;
&lt;em&gt;&amp;#8220;GM_xmlhttpRequest is same-origin only.&amp;#8221; &amp;#8211; &lt;a href="http://www.chromium.org/developers/design-documents/user-scripts"&gt;User Scripts&lt;/a&gt; .&lt;/em&gt;&lt;/li&gt;
	&lt;li&gt;A number of add-ons on Firefox show useful information on the status bar &amp;#8211; I use &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/6462/"&gt;DCurrency&lt;/a&gt;, &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/896/"&gt;CruiseControl Monitor&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://seleniumhq.org/projects/ide/"&gt;Selenium &lt;span class="caps"&gt;IDE&lt;/span&gt;&lt;/a&gt; is available for Firefox &amp;#8211; a big plus when I am trying to record and play while I am trying to debug some apps.&lt;/li&gt;
	&lt;li&gt;In the minimal view my frequently used bookmarks always show in Firefox -Google Chrome shows them when I open a new tab only. Maybe a minor annoyance but I cannot reuse the current tab with a single click access to my bookmarks.&lt;/li&gt;
	&lt;li&gt;Minor annoyance &amp;#8211; when I maximize the window on &lt;span class="caps"&gt;OSX&lt;/span&gt; Google Chrome expands only vertically. Firefox does not have this problem.&lt;/li&gt;
	&lt;li&gt;Even with proxy switchers Chrome depends/modifies system proxy settings(diabolical). When using on Windows  changing the proxy on IE will affect Chrome and vice-versa.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&amp;#8220;Chrome uses system&amp;#8217;s proxy settings (IE proxy settings on Wndows) because it&lt;br /&gt;
  doesn&amp;#8217;t have its own proxy settings yet (see http://crbug.com/266).&lt;br /&gt;
  Therefore, changing Chrome&amp;#8217;s proxy settings using Switchy will also affect the&lt;br /&gt;
  system proxy settings.&amp;#8221; &amp;#8211; quote from &lt;a href="https://chrome.google.com/extensions/detail/caehdcpeofiiigpdhbabniblemipncjj"&gt;Proxy Switchy!&lt;/a&gt; extension.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;That means when I use Chrome as a browser with tools like &lt;a href="http://sahi.co.in/w/"&gt;Sahi&lt;/a&gt;, it will affect how other things work.&lt;/p&gt;
&lt;p&gt;In conclusion, for now Firefox is the best browser for development.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=9tQ-wqs_dLM:2GpGND_tKOg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/9tQ-wqs_dLM" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/12/18/why-firefox.html</feedburner:origLink></entry>
  
    <entry>
      <title>Boost your BASH - and never again work with a plain shell</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/0aDdl0TldFw/boost-your-bash.html" />
      <updated>2010-10-25T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2010/10/25/boost-your-bash</id>
      <content type="html">&lt;p&gt;Over the past few months I have been using a community version of bash_profile, bash_login, emacs settings and such. It started when &lt;a href="http://github.com/muness"&gt;Muness&lt;/a&gt; shared his bash_vcs(which was pimped command prompt) and I was hooked. I noticed a few projects that were sharing similar shell settings and enhancements. Forking from &lt;a href="http://github.com/ttripp/dotfiles"&gt;Toby&amp;#8217;s dotfiles&lt;/a&gt; I started enhancing my experience on every machine I worked. This not only lead me to have a better understanding how different flavours of Unix work and also helped me automate a lot of my day to day activities.&lt;/p&gt;
&lt;p&gt;Allow me to introduce &lt;a href="http://github.com/betarelease/dotfiles"&gt;the dotfiles project&lt;/a&gt; which comes with all those enhancements &amp;#8211; stolen and tweaked from many sources &amp;#8211; and with valuable help from &lt;a href="http://github.com/pturley"&gt;Patrick Turley&lt;/a&gt; . &lt;br /&gt;
Recent additions include bash_boost and what could be called the beginnings of a javavm(inspired by rvm for ruby.)&lt;br /&gt;
Now with more brainpower behind dotfiles we hope to add more features fast. Next steps include adding support for zsh.&lt;/p&gt;
&lt;p&gt;Give it a try, fork it or point us to more stuff we can steal to improve it for you.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=0aDdl0TldFw:hUMDjX_BD5Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/0aDdl0TldFw" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/10/25/boost-your-bash.html</feedburner:origLink></entry>
  
    <entry>
      <title>Software KVM that works on linux, OSX and Windows</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/j5k42eBAO58/software-kvm-for-linux-osx-windows.html" />
      <updated>2010-09-12T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2010/09/12/software-kvm-for-linux-osx-windows</id>
      <content type="html">&lt;p&gt;I was using &lt;a href="http://www.abyssoft.com/software/teleport/"&gt;Teleport for Mac&lt;/a&gt; as my &lt;span class="caps"&gt;KVM&lt;/span&gt;. But I could only control a mac mini and my laptop with it. I was looking for something that would work with Ubuntu and MacOSX switching the keyboard and mouse between them.&lt;/p&gt;
&lt;p&gt;I found &lt;a href="http://code.google.com/p/synergy-plus/"&gt;Synergy Plus&lt;/a&gt; that was exactly the software &lt;span class="caps"&gt;KVM&lt;/span&gt; for my purpose. (There is also an older project called &lt;a href="http://synergy2.sourceforge.net/"&gt;Synergy&lt;/a&gt;, but Synergy Plus is the latest copy being managed on google code.)&lt;/p&gt;
&lt;p&gt;Setting up my Ubuntu machine as the server and my &lt;span class="caps"&gt;OSX&lt;/span&gt; laptop as a client was facilitated by&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mattcutts.com/blog/how-to-configure-synergy-in-six-steps/"&gt;Configure Synergy in six steps&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.foogazi.com/2010/05/27/how-to-configure-synergy-on-mac-osx-and-windows-xp/"&gt;Use synergy between &lt;span class="caps"&gt;OSX&lt;/span&gt; and linux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One issue I had was using a PC keyboard with &lt;acronym title="since my Ubuntu server is the synergy server"&gt;&lt;span class="caps"&gt;OSX&lt;/span&gt;&lt;/acronym&gt;. I was not able to map the Super key to be the Command key. Tried various options with keymapping on Ubuntu without much success. Resolutions welcome.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=j5k42eBAO58:uybO7llPTCo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/j5k42eBAO58" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/09/12/software-kvm-for-linux-osx-windows.html</feedburner:origLink></entry>
  
    <entry>
      <title>Ruby Kaigi 2010 - Report</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/tIK7_yz1XWw/ruby-kaigi-report.html" />
      <updated>2010-09-12T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2010/09/12/ruby-kaigi-report</id>
      <content type="html">&lt;p&gt;Returned from Ruby Kaigi last weekend. The conference was held in Tsukuba International Convention Center and attended much of the enthusiastic ruby community(including Matz, Chad Fowler, Charles Nutter, Yehuda Katz et al). Had a blast presenting &amp;#8216;Rocking the Enterprise with Ruby&amp;#8217;.&lt;/p&gt;
&lt;p&gt;Of all the sessions I could attend I liked Matz keynote focusing on the direction of Ruby 2.0. Especially the focus on mix-ins, issues with module mixins and list of ancestors. Class-boxes also looked a very interesting concept. Makes me want to use ruby 2.0 now. Based on the timeline discussed it is on track to be released sometime in 2011. (&lt;a href="http://rubykaigi.tdiary.net/20100829.html#"&gt;Ruby 2.0&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;I also liked the treatment of metaprogramming handed out by &lt;a href="http://ducktypo.blogspot.com/"&gt;Paolo &amp;#8216;Nusco&amp;#8217; Perrotta&lt;/a&gt;. A delightful presenter who can draw great illustrations as well as explain the issues in ruby programming very well. His message &amp;#8216;Look at source code from projects to learn what they are doing&amp;#8217;. Also, he concluded that what works in Ruby works because of its design(metaprogramming, mixins) may not work in Java/C#. So when you come to ruby you may have to change the way you think.&lt;/p&gt;
&lt;p&gt;Very enthusiastic response to lightning talks(in fact entries to lightning talks were closed even before the start of the conference). &lt;br /&gt;
Youngest ruby programmer(Shota Fukumori @sora_h) who wants to change ruby internals with his gem &amp;#8216;few&amp;#8217; and &lt;a href="http://github.com/benhoskings/babushka"&gt;babushka&lt;/a&gt; by Ben Hoskings were my favourites.(&lt;a href="http://rubykaigi.tdiary.net/20100831.html#p01"&gt;Lightning Talks&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The conference was organised very well, with an unofficial and official party on Friday and Saturday. Thanks to everyone who worked to make this a success.&lt;/p&gt;
&lt;p&gt;&lt;img class="image" src="/images/rubykaigi_staff.jpg"&gt;&lt;br /&gt;
(RubyKaigi 2010 Staff (by Naoto Takai))&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=tIK7_yz1XWw:CxI8etbcMWc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/tIK7_yz1XWw" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/09/12/ruby-kaigi-report.html</feedburner:origLink></entry>
  
    <entry>
      <title>Ruby Kaigi 2010 - Rocking the Enterprise with Ruby</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/IGoNFckn8jQ/ruby-kaigi-2010.html" />
      <updated>2010-08-28T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2010/08/28/ruby-kaigi-2010</id>
      <content type="html">&lt;p&gt;Uploading the beta version of the presentation for today&amp;#8217;s ruby kaigi talk.&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/rocking_the_enterprise.key"&gt;Rocking the Enterprise with Ruby(Keynote)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/rocking_the_enterprise.ppt"&gt;Rocking the Enterprise with Ruby(PowerPoint)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Be virtually there!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=IGoNFckn8jQ:k_oL7iNfROA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/IGoNFckn8jQ" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/08/28/ruby-kaigi-2010.html</feedburner:origLink></entry>
  
    <entry>
      <title>Streaming Media from Ubuntu to Bravia</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/r9TAt67u8ws/streaming-media-from-ubuntu-to-bravia.html" />
      <updated>2010-08-04T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2010/08/04/streaming-media-from-ubuntu-to-bravia</id>
      <content type="html">&lt;p&gt;Over this weekend I set out to connect my Ubuntu machine with my Sony Bravia TV.( With inspiration from &lt;a href="http://thoughtworker.in/2010/07/20/dns-323-ps3-and-upnp/"&gt;Sachin Dharmapurikar&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Digital_Living_Network_Alliance"&gt;&lt;span class="caps"&gt;DLNA&lt;/span&gt;&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;Googling yielded a number of techniques to stream media from linux over the home network. Some that did suit Bravia and some that did not. The easiest one to work with was &lt;a href="http://blog.mycila.com/2010/01/dlna-on-sony-bravia-tvs.html"&gt;minidlna server&lt;/a&gt;. Snappy install and my Bravia recognised it like any other streaming website. I am running the minidlna server for my music and photos and all the content that is in &lt;span class="caps"&gt;DVD&lt;/span&gt;/mpeg2 format.(&lt;a href="http://wiki.oppodigital.com/index.php?title=DLNA_Linux"&gt;How to install on linux&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;I do have some videos that came to me as avi and minidlna does not support transcoding. (There are some that describe how to do it with Windows but no out of the box solution with linux yet.) Google for &lt;a href="http://ps3mediaserver.blogspot.com/"&gt;PS3 Media servers&lt;/a&gt; I stumbled upon a &lt;a href="http://code.google.com/p/ps3mediaserver/"&gt;PS3 Media Server for Linux&lt;/a&gt; &amp;#8211; which is a java application that streams and transcodes nicely.&lt;/p&gt;
&lt;p&gt;To get the video to be non-jittery and avoid ffmpeg/tsmuxer crashing I had to tone the transcoding down to Lowest Quality. Even with that the video is pleasing albeit a bit grainy in some cases. Documentation suggests allocating more memory or &lt;span class="caps"&gt;CPU&lt;/span&gt; might help.&lt;/p&gt;
&lt;p&gt;To support all this I also installed a bunch of libraries described by many to help &lt;br /&gt;
&lt;a href="http://juliensimon.blogspot.com/2008/12/howto-compiling-mediatomb.html"&gt;transcode, mux and display thumbnails.&lt;/a&gt;. The instructions are for mediatomb but these libraries work with other dlna servers.&lt;/p&gt;
&lt;p&gt;Next stop Getting &lt;a href="http://www.r3uk.com/index.php/home/38-software/122-ps3-dlna-streaming-in-ubuntu-gutsy"&gt;mediatomb to work on linux and bravia&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=r9TAt67u8ws:mZjETNN0u3U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/r9TAt67u8ws" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/08/04/streaming-media-from-ubuntu-to-bravia.html</feedburner:origLink></entry>
  
    <entry>
      <title>Setting up wireless usb card on Ubuntu - Lucid Lynx</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/5vHzZuorliM/setup-wireless-on-ubuntu.html" />
      <updated>2010-06-25T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2010/06/25/setup-wireless-on-ubuntu</id>
      <content type="html">&lt;p&gt;I have faced the same problems with Wireless Networking as mentioned by many on the web. &lt;br /&gt;
I tried &lt;a 
href="https://help.ubuntu.com/community/HardwareSupportComponentsWirelessNetworkCardsLink
sys#USB"&gt;Hardware Compatibility List for Linux&lt;/a&gt; and many links on that list. In an attempt to install custom drivers I would always end up with a network card that would detect wireless but never would communicate over wireless. After going through a number of cards and uninstalling and installing drivers I found one that worked really well without resorting to the ndiswrapper solution(dealing with anything windows just feels unclean). Finally I found a card that worked and also provided native linux drivers.The wireless usb card that worked was &amp;#8211; &lt;a href="http://sasha.gerrand.id.au/2010/06/03/resolving-driver-problems-for-d-link-dwa-125-
wireless-150-usb-adapter-in-ubuntu/"&gt;D-Link &lt;span class="caps"&gt;DWA&lt;/span&gt;-125 with Ubuntu Lucid Lynx&lt;/a&gt;.It also helped that D-Link in fact published a linux driver for their wireless usb card&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=5vHzZuorliM:Sh96hKBuERc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/5vHzZuorliM" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/06/25/setup-wireless-on-ubuntu.html</feedburner:origLink></entry>
  
    <entry>
      <title>ActiveResource is an oxymoron?</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/_7Zgr82JBaM/activeresource-is-an-oxymoron.html" />
      <updated>2010-06-07T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2010/06/07/activeresource-is-an-oxymoron</id>
      <content type="html">&lt;p&gt;One of the projects I worked on recently consisted of a number of applications interacting with each other over &lt;span class="caps"&gt;REST&lt;/span&gt;. These applications were written with an intention to obtain loose-coupling between them.&lt;/p&gt;
&lt;p&gt;While writing more controller actions I noticed something that we were doing repeatedly &amp;#8211; anytime one particular model changed in the domain it caused a ripple effect of making us change all the consumers in the application suite. These models were all exposed across applications by using ActiveResource. ActiveResource forced us to change every one of the model/model manifestations in the application.&lt;/p&gt;
&lt;p&gt;The main intent of the decoupling effort was to help us change these applications almost independently of each other. These applications were supposed to only depend on the exposed interfaces. What ActiveResource did was forced us to tightly-couple them and a single change caused a ripple effect.&lt;/p&gt;
&lt;p&gt;So my question is &amp;#8216;Is ActiveResource an oxymoron?&amp;#8217; &amp;#8211; Especially considering the fact that Active means really simple but strong coupling. Active does apply nicely to a database record and eases development by getting out of the way. But in case of lightly or ideally decoupled applications does the Active make sense? &amp;#8211; Probably not. So if you want to expose objects and their behaviours over the wire maybe ActiveResource is not such a good idea.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=_7Zgr82JBaM:cYek64i2Lco:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/_7Zgr82JBaM" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/06/07/activeresource-is-an-oxymoron.html</feedburner:origLink></entry>
  
    <entry>
      <title>Preparing the Training Venue</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/d_gekIVFf8I/prepare-training-venue.html" />
      <updated>2010-03-15T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2010/03/15/prepare-training-venue</id>
      <content type="html">&lt;p&gt;The venue and the setting in which the training is conducted forms a very important part of how the training is received. When selecting the venue ensure a few things beforehand:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Venue is accessible &amp;#8211; by suitable means of transportation &amp;#8211; by walk would be the optimum&lt;/li&gt;
	&lt;li&gt;Venue has ample space &amp;#8211; to be rearranged and suited for all kinds of training sessions.[#seating]&lt;/li&gt;
	&lt;li&gt;Venue has a high ceiling and is mostly soundproof &amp;#8211; this ensures that there is enough air circulation and privacy when the training is in session.&lt;/li&gt;
	&lt;li&gt;Consider custom lighting arrangement to be used during facilitation. Most of our sessions did run with full lighting as well as the projector running all the time. Activities during training do need sufficient lighting.&lt;/li&gt;
	&lt;li&gt;Venue has the facility to provide for the meals for the day &amp;#8211; coffee/breakfast, lunch, high tea &amp;#8211; which is why hotels with restaurant service are preferable. This can help cater to trainees with special food requirements.&lt;/li&gt;
	&lt;li&gt;Venue has ample electricity outlets to support the training crew as well as the trainees. We did carry some of our own extension cords to ensure availability of power near the trainee tables.&lt;/li&gt;
	&lt;li&gt;Venue has decent internet connectivity &amp;#8211; Now I have seen and heard about venues that mostly suck at providing decent internet connectivity for anything over 10 users. If that is the case with your venue arrange for some way to get to the internet. Most importantly arrange for some way of sharing the computers over a network &amp;#8211; this helps in distributing material, assignments, solutions. We arranged for our own wireless router which allowed to share the internet as well as create a private network. Not to mention we did have plenty of &lt;span class="caps"&gt;USB&lt;/span&gt; keys available for quick transfer of large files.&lt;/li&gt;
	&lt;li&gt;Ensure that the venue has a person to be the point of contact when the training is in session. This will help resolve last minute issues/hiccups. Treat this person with respect &amp;#8211; when you do this you are sure to get better service.&lt;/li&gt;
	&lt;li&gt;Have the venue arrange for a projector on site. Alternatively also carry your own projector in case the projector at the venue dies or you need to project multiple things at the same time.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
	&lt;li&gt;Transportation&lt;/li&gt;
	&lt;li&gt;Space&lt;/li&gt;
	&lt;li&gt;Food and drinks availability&lt;/li&gt;
	&lt;li&gt;Electric outlets and Wireless Internet/Shared network&lt;/li&gt;
	&lt;li&gt;Projectors&lt;/li&gt;
&lt;/ol&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=d_gekIVFf8I:w_Ow07c7XOg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/d_gekIVFf8I" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/03/15/prepare-training-venue.html</feedburner:origLink></entry>
  
    <entry>
      <title>Preparing to be a trainer</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/rwZKw9HKZc8/prepare-to-be-a-trainer.html" />
      <updated>2010-03-12T00:00:00-08:00</updated>
      <id>http://betarelease.github.com/2010/03/12/prepare-to-be-a-trainer</id>
      <content type="html">&lt;p&gt;Preparing to be a trainer is more of a mental activity than physical. To be one you would want to observe one and learn how they do it. I had the opportunity of being trained by a set of great trainers/speakers and also working them to understand how they prepared to be a trainer. Mostly it is about being aware of the responsibility. It takes time to get a feel for the amount of work that goes into being a trainer. To facilitate this we started by studying the course material that was already available(In a sense I was lucky that there was so much refined course material available that I did not need to invest any time in design the course. Designing a course is a major undertaking and can be done only after much experience [#feedback]).&lt;/p&gt;
&lt;p&gt;Another thing you must do is actually be a co-trainer/teaching assistant at a training session to get a feel of the mechanics of it all.(What gets overlooked is the fact that managing time/schedule and training content is harder than it appears.) To prepare to be such a person one needs to know the complete training course. To be a developer trainer I went through the exercise of reading all the material and also solving and reasoning all the examples for the course. At times it also helps to have multiple solutions at hand. In collaboration with other trainers and trainees we have managed to have a repository of such sample solutions that we are prepared with to hand out to trainees.&lt;/p&gt;
&lt;p&gt;Once you have a grip on the course content you need to plan and replay the plan of how the content will be presented. Pairing on course content tremendously helps. In case of vast curriculum it helps to divide responsibility between the pair to deliver certain topics based on experience, enthusiasm and freshness of the trainer. Making a plan of the day for every half hour slot helps get a feel of timeliness as well as helps focus on delivering the most important message of the session effectively. Rehearsing all this with a pair is greatly useful. We had the opportunity to rehearse this training with the smaller group to time ourselves as well as refine delivery of content. Understanding what messages are to be delivering during the session and what content is to be learnt after class/further exercise helps divide the content and reduce course load.&lt;/p&gt;
&lt;p&gt;There is a lot of physical activity involved too. To enhance retention and recollection it may be a good idea to prepare homework/extra work problems. Some students really gain a lot from working on these in their spare time. A trick that also helps retention is &amp;#8216;rinse and repeat&amp;#8217; &amp;#8211; We provided handouts of the most important messages of the session and reviewed sessions at the end and few days later.&lt;/p&gt;
&lt;p&gt;Preparing also needs to consider the amount of stationary required, hardware required, accessories such as timers, props and power availability at the venue.[#venue]&lt;/p&gt;
&lt;p&gt;Training is a lot of hard work. Do not jump in if you don&amp;#8217;t thing 12 hour days + dinner + a night out are not something you can take. Not to mention activities that require you to be available on a weekend.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Prepare course content&lt;/li&gt;
	&lt;li&gt;Plan out each day&lt;/li&gt;
	&lt;li&gt;Rehearse&lt;/li&gt;
	&lt;li&gt;Ensure retention by way of handouts or reviews&lt;/li&gt;
	&lt;li&gt;Prepare the venue to suit the training&lt;/li&gt;
&lt;/ol&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=rwZKw9HKZc8:pU9dC7ffkLA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/rwZKw9HKZc8" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/03/12/prepare-to-be-a-trainer.html</feedburner:origLink></entry>
  
    <entry>
      <title>no such file to load --rubygems</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/yCi9g1FOZ2w/no-such-file-to-load-rubygems.html" />
      <updated>2010-03-12T00:00:00-08:00</updated>
      <id>http://betarelease.github.com/2010/03/12/no-such-file-to-load-rubygems</id>
      <content type="html">&lt;p&gt;While working on my mac and trying to use giternal I ran into &amp;#8216;no such file to load &amp;#8212;rubygems&amp;#8217;. While I had been using ruby apps on the machine for a while, without any issues and with all the installed gems, this seemed weird.&lt;/p&gt;
&lt;p&gt;I tried using the irb and check if&lt;/p&gt;
&lt;p&gt;irb&amp;gt; require &amp;#8216;rubygems&amp;#8217;&lt;/p&gt;
&lt;p&gt;would work. But I got the same error. I was using the default mac version of the ruby installation that is installed at &amp;#8216;/System/Library/Frameworks/Ruby.framework&amp;#8230;..&amp;#8217; and did verify that rubygems was installed and that rubygems.rb was also present.&lt;/p&gt;
&lt;p&gt;On further investigation I found that the default ruby that was run on the command line was 1.8.7 when I expected 1.8.6. &lt;br /&gt;
It appears that my path contained &amp;#8216;/opt/local/bin&amp;#8217; before &amp;#8216;/usr/bin&amp;#8217; which made the 1.8.7 version of ruby default and thus clobbered all by 1.8.6 settings and lost rubygems.&lt;/p&gt;
&lt;p&gt;To fix this I moved &amp;#8216;opt/local/bin&amp;#8217; to be after &amp;#8216;/usr/bin&amp;#8217; in my $&lt;span class="caps"&gt;PATH&lt;/span&gt; and voila everything works again.&lt;/p&gt;
&lt;p&gt;I have also been meaning to try &lt;span class="caps"&gt;RVM&lt;/span&gt; &amp;#8211; maybe its time to give it a shot since my personal projects are on 1.8.7 and I have jruby as well as 1.8.6 installed on my mac.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=yCi9g1FOZ2w:K5CfOnSiYes:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/yCi9g1FOZ2w" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/03/12/no-such-file-to-load-rubygems.html</feedburner:origLink></entry>
  
    <entry>
      <title>Why should you be a trainer?</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/-bCbvRKv-bU/want-to-be-a-trainer.html" />
      <updated>2010-03-11T00:00:00-08:00</updated>
      <id>http://betarelease.github.com/2010/03/11/want-to-be-a-trainer</id>
      <content type="html">&lt;p&gt;After being thoroughly impressed by the &lt;a href=""&gt;training&lt;/a&gt; that I received when I joined ThoughtWorks I was driven to become a trainer myself. I did that in 2008 (yes it&amp;#8217;s already been that long) and am a different person professionally since then.&lt;/p&gt;
&lt;p&gt;I am documenting my experiences for future reference as a mulitpost on Training. As I continue posting the topics on the list here will become active. Maybe as you read it will excite you to be a trainer too.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Preparation
	&lt;ol&gt;
		&lt;li&gt;&lt;a href="/2010/01/02/prepare-to-be-a-trainer.html"&gt;Preparing to be a trainer&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="/2010/03/15/preparing-training-venue.html"&gt;Preparing the Venue&lt;/a&gt;&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Training to be a Trainer
	&lt;ol&gt;
		&lt;li&gt;Science of Learning&lt;/li&gt;
		&lt;li&gt;Cognition&lt;/li&gt;
		&lt;li&gt;Psychology of a trainee/student/learner&lt;/li&gt;
		&lt;li&gt;Training tools&lt;/li&gt;
		&lt;li&gt;Imaginative use of training tools to suit trainee/trainer/class&lt;/li&gt;
		&lt;li&gt;Studying the material&lt;/li&gt;
		&lt;li&gt;Suiting the training material to your style and needs&lt;/li&gt;
		&lt;li&gt;Dry runs&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Delivering as a Trainer
	&lt;ol&gt;
		&lt;li&gt;Preparing for the session
		&lt;ol&gt;
			&lt;li&gt;Seating&lt;/li&gt;
			&lt;li&gt;Be ready with the accessories for the session&lt;/li&gt;
			&lt;li&gt;Prepare the material&lt;/li&gt;
		&lt;/ol&gt;&lt;/li&gt;
		&lt;li&gt;How to present yourself and still be yourself&lt;/li&gt;
		&lt;li&gt;Finishing up the day&lt;/li&gt;
		&lt;li&gt;Coaching/Mentoring/One-on-one training&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
	&lt;li&gt;Feedback &amp;#8211; Desiging training
	&lt;ol&gt;
		&lt;li&gt;Updating session content&lt;/li&gt;
		&lt;li&gt;Updating training style&lt;/li&gt;
		&lt;li&gt;Updating training schedule&lt;/li&gt;
		&lt;li&gt;Updating training theme&lt;/li&gt;
		&lt;li&gt;Adding new content&lt;/li&gt;
		&lt;li&gt;Applying what you learnt as a trainer to your profession&lt;/li&gt;
	&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=-bCbvRKv-bU:4qrLRxGa7fI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/-bCbvRKv-bU" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2010/03/11/want-to-be-a-trainer.html</feedburner:origLink></entry>
  
    <entry>
      <title>CruiseControl Monitors - Graphs and Configuration</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/jSwb00vd4lQ/cc-monitor-graphs.html" />
      <updated>2009-12-11T00:00:00-08:00</updated>
      <id>http://betarelease.github.com/2009/12/11/cc-monitor-graphs</id>
      <content type="html">&lt;p&gt;&lt;a href="http://github.com/betarelease/cc_monitor"&gt;cc_monitor&lt;/a&gt; now has graphs with the success and failure showing as below&lt;/p&gt;
&lt;p&gt;&lt;img src="/images/cc_monitor_example.png" class="image"/&gt;&lt;/p&gt;
&lt;p&gt;Not only that it is now configurable with a config file to set variables at &lt;br /&gt;
startup. And now it is also armed with activerecord mgirations. So if you want &lt;br /&gt;
to look at a working example of activerecord migrations outside of rails you &lt;br /&gt;
can use this code.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=jSwb00vd4lQ:KF-dEJtWdD4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/jSwb00vd4lQ" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/12/11/cc-monitor-graphs.html</feedburner:origLink></entry>
  
    <entry>
      <title>CruiseControl Monitors - Gotchas and repost</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/Wiske9JBmYg/cruisecontrol-monitors-gotchas.html" />
      <updated>2009-10-04T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2009/10/04/cruisecontrol-monitors-gotchas</id>
      <content type="html">&lt;p&gt;When trying to use &lt;a href="http://github.com/betarelease/cc_monitor"&gt;cc_monitor&lt;/a&gt; on my current project(which is completely ruby) I hit the known snag of making it work with cruisecontrol.rb. For the umpteenth time I was not able to find any documentation on making it publish cc_tray compatible xml, which would make cc_monitor work with cc.rb.&lt;/p&gt;
&lt;p&gt;After some googling and mucking around I downloaded latest cruisecontrol.rb and looked at its routes. I found a route &amp;#8220;XmlServerReport.aspx&amp;#8221; which does publish in &amp;#8216;cctray&amp;#8217; format. I plugged it in to cc_monitor and it works like a charm.&lt;/p&gt;
&lt;p&gt;So now I can announce that cc_monitor works with any java/ruby versions of cruisecontrol. If you would like to use cc_monitor with a continuous integration tool make sure it publishes a cc_tray compatible xml and you are all set.&lt;/p&gt;
&lt;p&gt;Recently I successfully added &amp;#8216;bacon&amp;#8217; to test my ramaze code for cc_monitor. The repository has been updated so check it out.&lt;/p&gt;
&lt;p&gt;I was also suggested to check out &lt;a href="http://github.com/betarelease/cc_board"&gt;cc_board&lt;/a&gt; which is a build monitor written in sinatra by David Vollbracht. Another app to make big visible charts for your team!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=Wiske9JBmYg:XoV7xV2_A9c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/Wiske9JBmYg" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/10/04/cruisecontrol-monitors-gotchas.html</feedburner:origLink></entry>
  
    <entry>
      <title>Flash on Linux</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/jxZlg0I8bU8/flash-on-linux.html" />
      <updated>2009-09-18T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2009/09/18/flash-on-linux</id>
      <content type="html">&lt;p&gt;Last night when struggling to get Firefox to play with Ubuntu and Flash I found this &lt;br /&gt;
&lt;a href="https://answers.launchpad.net/ubuntu/+source/firefox-3.0/+question/57822"&gt;forum&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The instructions that worked for me are as follows&lt;/p&gt;
&lt;p&gt;1. Remove all installations of flash (9, 10.. )&lt;br /&gt;
2. Remove all installations of gnash&lt;br /&gt;
3. Remove all installations of swfdec&lt;br /&gt;
4. (Basically remove everything that conflicts with flash player &amp;#8211; some of these things come bundled with Ubuntu)&lt;br /&gt;
5. Remove any file in &amp;#8220;/usr/lib/firefox/plugins&amp;#8221; with the word flash in its name. &lt;br /&gt;
eg. libflashplayer.so or in my case alternate-flashplugin.so.&lt;/p&gt;
&lt;p&gt;6. Once you have verified that all this has gone (You could use about:plugins url in your firefox to see all the plugins you have along with their associated file types) &amp;#8211; reinstall the latest version of flash player from adobe website.&lt;/p&gt;
&lt;p&gt;7. You should have Hulu.com working.&lt;/p&gt;
&lt;p&gt;Hope this helps someone who is trying to do the same.&lt;/p&gt;
&lt;p&gt;&amp;#8220;Now when someone asks &amp;#8211; Do you have Flash working on Linux &amp;#8211; you know what to say&amp;#8221;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=jxZlg0I8bU8:h6Kv5t2KO9A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/jxZlg0I8bU8" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/09/18/flash-on-linux.html</feedburner:origLink></entry>
  
    <entry>
      <title>Learn Git</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/eVf8lyZ6eCU/learn-git.html" />
      <updated>2009-09-16T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2009/09/16/learn-git</id>
      <content type="html">&lt;p&gt;One big &lt;a href="http://www.github.com"/&gt;repository&lt;/a&gt; and one big repository on &lt;a href="http://learn.github.com/"&gt;learning it all&lt;/a&gt; about git.&lt;/p&gt;
&lt;p&gt;Now you can&amp;#8217;t say you do not know enough not to try it.&lt;/p&gt;
&lt;p&gt;&amp;#8220;May the Git be with you!&amp;#8221;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=eVf8lyZ6eCU:5ckb4fNpXb0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/eVf8lyZ6eCU" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/09/16/learn-git.html</feedburner:origLink></entry>
  
    <entry>
      <title>Agile Conference 2009 - TDD with Iphone</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/Bb95g9ck5ww/tdd-with-iphone-agile-09.html" />
      <updated>2009-08-30T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2009/08/30/tdd-with-iphone-agile-09</id>
      <content type="html">&lt;p&gt;On the last day I had just enough time to listen to &lt;a href="http://www.8thlight.com/main/bio?sub_action=eric"&gt;Eric Smith&lt;/a&gt; and &lt;a href="http://www.8thlight.com/main/bio?sub_action=eric_meyer"&gt;Eric Meyer&lt;/a&gt; from &lt;a href="http://www.8thlight.com/"&gt;8th light&lt;/a&gt; where they talked about &lt;span class="caps"&gt;TDD&lt;/span&gt; with IPhone. &lt;br /&gt;
What was interesting was even while working with this difficult technology (Objective C is not hard but Xcode is nothing but cryptic &amp;#8211; &lt;span class="caps"&gt;XIB&lt;/span&gt; files really?) they were able to build iPhone apps without giving up of basic principles of &lt;span class="caps"&gt;TDD&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;They demonstrated their struggle before any tools were available for Unit testing with iPhone.&lt;br /&gt;
Couple of tools they mentioned were&lt;/p&gt;
&lt;p&gt;1. &lt;a href="http://code.google.com/p/google-toolbox-for-mac/"&gt;Google Toolbox for the Mac&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2. &lt;a href="http://developer.apple.com/tools/unittest.html"&gt;OCUnit&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Something to make life less miserable when building better applications with iPhone.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=Bb95g9ck5ww:UbT4bpaJLhQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/Bb95g9ck5ww" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/08/30/tdd-with-iphone-agile-09.html</feedburner:origLink></entry>
  
    <entry>
      <title>Agile Conference 2009 - day 1</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/LSzDLfpWb24/agile-09-day-1.html" />
      <updated>2009-08-24T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2009/08/24/agile-09-day-1</id>
      <content type="html">&lt;p&gt;Very busy even though I started at 11:00am.&lt;/p&gt;
&lt;p&gt;Met a number of ThoughtWorkers, ex-ThoughtWorkers(talking about Aslak, Liz, h, Foemmel, Glenn Bernsohn, Naresh Jain) and many people I did not know before.&lt;/p&gt;
&lt;p&gt;ThoughtWorks booth is a hit &amp;#8211; atleast 25 entries for the free ipod touch.&lt;/p&gt;
&lt;p&gt;Met people from Moscow, Israel, Brazil, India, UK.&lt;/p&gt;
&lt;p&gt;Met people from different Agile organizations. So wonderful to see so much activity in the agile space. Just proves that ThoughtWorks has been right all along and we can say &amp;#8220;We told you so&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Went to interesting session from Mary Poppendieck &amp;#8211; impressed by her speaking&lt;br /&gt;
skills. (Hope I can come close to those skills during my talk with &lt;a href="http://www.caroli.org"/&gt;Paulo&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Hope to see many more at the Agile Open office at the ThoughtWorks Chicago office tomorrow.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=LSzDLfpWb24:IMmD7kZKW68:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/LSzDLfpWb24" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/08/24/agile-09-day-1.html</feedburner:origLink></entry>
  
    <entry>
      <title>Speaking at Agile Conf 2009 in Chicago</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/VuNrftLF3UE/agile-2009.html" />
      <updated>2009-08-06T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2009/08/06/agile-2009</id>
      <content type="html">&lt;p&gt;I will be speaking at Agile Conference 2009 in Chicago between August 24-28. You will find all the other speakers from ThoughtWorks on &lt;a href="http://connect.thoughtworks.com/agile2009/"&gt;ThoughtWorks website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My colleague and compadre from my &lt;span class="caps"&gt;TWU&lt;/span&gt; trainer stint Paulo Caroli and Sumeet Moghe will be there too.&lt;/p&gt;
&lt;p&gt;See you there.&lt;/p&gt;
&lt;p&gt;After Print: Want to attend my session &amp;#8230; there is an app for that(&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=325405256&amp;mt=8"&gt;Agile 2009 Conference Connection at the AppStore&lt;/a&gt; &amp;#8211; written by ThoughtWorks)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=VuNrftLF3UE:kh4ctaOAPJg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/VuNrftLF3UE" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/08/06/agile-2009.html</feedburner:origLink></entry>
  
    <entry>
      <title>top ten reasons why maven sucks</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/ner9WggY47M/top-ten-reasons-why-maven-sucks.html" />
      <updated>2009-06-01T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2009/06/01/top-ten-reasons-why-maven-sucks</id>
      <content type="html">&lt;p&gt;10. maven corrupts &amp;#8211; software, people.&lt;/p&gt;
&lt;p&gt;9. maven uses an archetype(appfuse) and expects that all your projects look like the apache projects &amp;#8211; even those that are not webservers.&lt;/p&gt;
&lt;p&gt;8. maven has only four build stages &amp;#8211; compile, test, install, package &amp;#8211; if you have a requirement to automate performance testing you are out of luck&lt;/p&gt;
&lt;p&gt;7. maven requires you to have a standard directory structure that is 5 subdirectories deep &amp;#8211; regardless of the fact that your project only has 10 java files.&lt;/p&gt;
&lt;p&gt;6. tasks that are not implemented in maven have to be implemented in ant and need to be integrated with maven &amp;#8211; a big nightmare.&lt;/p&gt;
&lt;p&gt;5. maven encourages you to integrate via binaries &amp;#8211; thus making continuous integration difficult&lt;/p&gt;
&lt;p&gt;4. every time maven builds it connects to the internet (to verify/update dependencies) &amp;#8211; building your project without the internet is extremely hard.&lt;/p&gt;
&lt;p&gt;3. maven manages the projects and subprojects implicitly (since there is convention and then there are overrides) &amp;#8211; it makes debugging your build impossible.&lt;/p&gt;
&lt;p&gt;2. maven manages the project dependencies in its own repository &amp;#8211; called the .m2 repository &amp;#8211; which is not part of your application folder &amp;#8211; thus making it impossible to track and package development environments.&lt;/p&gt;
&lt;p&gt;1. maven always downloads the whole internet &amp;#8211; to keep its dependencies up to date &amp;#8211; even though you don&amp;#8217;t want to.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=ner9WggY47M:QjyZehEA39I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/ner9WggY47M" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/06/01/top-ten-reasons-why-maven-sucks.html</feedburner:origLink></entry>
  
    <entry>
      <title>iTunes settings</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/xNCRVDYloPU/itunes-settings.html" />
      <updated>2009-05-28T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2009/05/28/itunes-settings</id>
      <content type="html">&lt;p&gt;If you are using iTunes to play your music be careful when adding music to the library. iTunes tries to be smart and by default it makes a copy of the music you have as well as tries to organise it the way it likes. So if you do not like your music organised by artist/album and so on it will render your music unsearchable. (This is true for me since I do not organise my music by the artist album and such.)&lt;/p&gt;
&lt;p&gt;To save the whole lot of mess it creates set the following in your iTunes preferences&lt;br /&gt;
&lt;img src="/images/itunes_settings.png"/&gt;.&lt;/p&gt;
&lt;p&gt;This way iTunes will make a list of songs but not process them the way it likes. You can have your own organisation of music and save a lot of trouble for yourself.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=xNCRVDYloPU:SwSwdMn6Jp4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/xNCRVDYloPU" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/05/28/itunes-settings.html</feedburner:origLink></entry>
  
    <entry>
      <title>javascript testing with seacucumber</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/fKJ77TBgxxg/javascript-testing-with-seacucumber.html" />
      <updated>2009-05-21T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2009/05/21/javascript-testing-with-seacucumber</id>
      <content type="html">&lt;p&gt;&lt;a href="http://seacucumber.rubyforge.org/"&gt;Seacucumber&lt;/a&gt; was a project that was a tool we used on a previous rails project. My friends &lt;a href="http://m2ward.blogspot.com/"&gt;Mike Ward&lt;/a&gt; and &amp;lt;a href= &amp;#8220;http://www.peterryan.net/&amp;#8221;&amp;gt;Peter Ryan&lt;/a&gt; opensourced it some time back. It was dormant for awhile since it worked great with prototype. Another thing was that it looked and behaved very similar to &lt;a href="http://drnicwilliams.com/2008/01/04/autotesting-javascript-in-rails/"&gt;Dr. Nic&amp;#8217;s javascript testing&lt;/a&gt; that you can download for rails. Recently I was on a project where we used jquery and we did not have anything to run javascript tests and break the build on failure.&lt;/p&gt;
&lt;p&gt;So I revived seacucumber development and added jquery support to it. I had to modify jquery test runner to postback results as prototype does. So if you need a tool to automate your javascript testing you should use seacucumber. It has been moved to &lt;a href="https://github.com/betarelease/seacucumber/tree"&gt;github&lt;/a&gt;. Feel free to download it, fork it and use it. Let me know what you would like added to this tool.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=fKJ77TBgxxg:lBhgzhBbZbE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/fKJ77TBgxxg" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/05/21/javascript-testing-with-seacucumber.html</feedburner:origLink></entry>
  
    <entry>
      <title>MySQL Triggers</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/uG648RqrR5M/mysql-triggers.html" />
      <updated>2009-04-05T00:00:00-07:00</updated>
      <id>http://betarelease.github.com/2009/04/05/mysql-triggers</id>
      <content type="html">&lt;p&gt;MySQL added triggers to its portfolio in version 5.0. I am thinking this was a lot of database gurus have been wanting for so long. A little primer on how to use MySQL trigger follows : Trigger 101 follows &amp;#8211; so detune if you are a guru already.&lt;/p&gt;
&lt;p&gt;Your database can perform a decent number of arithmetic and logical operations on your data. All this can be done by using the features of your database engine and without writing any code. One of the features I used in a recent write up is triggers. &lt;br /&gt;
I have some tables &amp;#8211; models with relationships. When these models change I want to effect some calculations and update relevant tables.This can all be done through triggers.&lt;/p&gt;
&lt;p&gt;Lets take it up with an example&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="mysql"&gt;&lt;span class="lineno"&gt; 1&lt;/span&gt; &lt;span class="k"&gt;create&lt;/span&gt; &lt;span class="k"&gt;table&lt;/span&gt; &lt;span class="nf"&gt;voters&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="kt"&gt;varchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="kt"&gt;integer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ward&lt;/span&gt; &lt;span class="kt"&gt;varchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;gender&lt;/span&gt; &lt;span class="kt"&gt;integer&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="lineno"&gt; 2&lt;/span&gt; &lt;span class="k"&gt;create&lt;/span&gt; &lt;span class="k"&gt;table&lt;/span&gt; &lt;span class="nf"&gt;voter_ward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ward&lt;/span&gt; &lt;span class="kt"&gt;varchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;male&lt;/span&gt; &lt;span class="kt"&gt;integer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;female&lt;/span&gt; &lt;span class="kt"&gt;integer&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="lineno"&gt; 3&lt;/span&gt; 
&lt;span class="lineno"&gt; 4&lt;/span&gt; &lt;span class="c1"&gt;-- adding trigger to update voter count by gender automatically&lt;/span&gt;
&lt;span class="lineno"&gt; 5&lt;/span&gt; &lt;span class="k"&gt;create&lt;/span&gt; &lt;span class="k"&gt;trigger&lt;/span&gt; &lt;span class="n"&gt;TOTAL&lt;/span&gt; &lt;span class="n"&gt;AFTER&lt;/span&gt; &lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt; &lt;span class="n"&gt;voters&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;each&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;
&lt;span class="lineno"&gt; 6&lt;/span&gt; &lt;span class="n"&gt;BEGIN&lt;/span&gt;
&lt;span class="lineno"&gt; 7&lt;/span&gt; &lt;span class="k"&gt;update&lt;/span&gt; &lt;span class="n"&gt;voter_ward&lt;/span&gt; &lt;span class="kt"&gt;set&lt;/span&gt; &lt;span class="n"&gt;male&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="nf"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;voters&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gender&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;span class="lineno"&gt; 8&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;voters&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;ward&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ward&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;ward&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ward&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="lineno"&gt; 9&lt;/span&gt; 
&lt;span class="lineno"&gt;10&lt;/span&gt; &lt;span class="k"&gt;update&lt;/span&gt; &lt;span class="n"&gt;voter_ward&lt;/span&gt; &lt;span class="kt"&gt;set&lt;/span&gt; &lt;span class="n"&gt;female&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="nf"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;voters&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gender&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;span class="lineno"&gt;11&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;voters&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;ward&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ward&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;ward&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ward&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="lineno"&gt;12&lt;/span&gt; &lt;span class="n"&gt;END&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="lineno"&gt;13&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt;
&lt;span class="lineno"&gt;14&lt;/span&gt; &lt;span class="n"&gt;delimiter&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;This will add a trigger to your voters table and update the voter_ward table with the genderwise count. As you can imagine you can add a lot of simple logic into these triggers to build simple and efficient update based on such events. Another thing that should be apparent is being cautious about using these triggers every chance you get to use it &amp;#8211; They will bring the database performance down with these frequent queries.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=uG648RqrR5M:GwOWIdn96MQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/uG648RqrR5M" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/04/05/mysql-triggers.html</feedburner:origLink></entry>
  
    <entry>
      <title>accordion.js that is simple and works with prototype1.6</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/cqVjQ8BNzrY/accordion_in_javascript.html" />
      <updated>2009-01-16T00:00:00-08:00</updated>
      <id>http://betarelease.github.com/2009/01/16/accordion_in_javascript</id>
      <content type="html">&lt;p&gt;Released &lt;a href="http://github.com/betarelease/accordion.js/tree/master"&gt;accordion.js&lt;/a&gt; on github. We were quite frustrated with the way &lt;a href="http://www.stickmanlabs.com/accordion/"&gt;accordion v2.0&lt;/a&gt; behaved with prototype1.6. Upgrading that from prototype1.5 broke the accordion when using with images. Our simple version does not have any effects yet but work beautifully and is completely tested. &lt;br /&gt;
Try it out!!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=cqVjQ8BNzrY:-oD8IOqE-DY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/cqVjQ8BNzrY" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/01/16/accordion_in_javascript.html</feedburner:origLink></entry>
  
    <entry>
      <title>Moved my blog to github pages, and how I did it</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/W7efI4caHfE/moved_to_github_pages.html" />
      <updated>2009-01-11T00:00:00-08:00</updated>
      <id>http://betarelease.github.com/2009/01/11/moved_to_github_pages</id>
      <content type="html">&lt;p&gt;I have moved my personal blog from blogspot to &lt;a href="http://github.com/blog/272-github-pages"&gt;github pages&lt;/a&gt;. &lt;a href="http://drnicwilliams.com/2008/12/21/migrating-project-websites-to-github-pages-with-sake-tasks-new-websites-with-jekyll_generator/"&gt;Dr. Nic&lt;/a&gt; and &lt;a href="http://github.com/mojombo/tpw/tree/master"&gt;Mojombo&lt;/a&gt; helped me do it with Jekyll.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=W7efI4caHfE:bvAafVrSHWM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/W7efI4caHfE" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/01/11/moved_to_github_pages.html</feedburner:origLink></entry>
  
    <entry>
      <title>Moved my blog to github pages</title>
      <link href="http://feedproxy.google.com/~r/betarelease/~3/_gXEPX4L7BQ/old-blog-on-blogger.html" />
      <updated>2009-01-10T00:00:00-08:00</updated>
      <id>http://betarelease.github.com/2009/01/10/old-blog-on-blogger</id>
      <content type="html">&lt;p&gt;My old blog on blogger will still be available with all the posts and comments.&lt;br /&gt;
&lt;a href="http://betarelease.blogspot.com"&gt;http://betarelease.blogspot.com&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/betarelease?a=_gXEPX4L7BQ:vMTsEba0QcQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/betarelease?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/betarelease/~4/_gXEPX4L7BQ" height="1" width="1"/&gt;</content>
    <feedburner:origLink>http://betarelease.github.com/2009/01/10/old-blog-on-blogger.html</feedburner:origLink></entry>
  
</feed>

