<?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"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-US">
  <title>ChadFowler.com - Home</title>
  <id>tag:www.chadfowler.com,2010:mephisto/</id>
  <generator version="0.7.3" uri="http://mephistoblog.com">Mephisto Noh-Varr</generator>
  
  <link href="http://www.chadfowler.com/" rel="alternate" type="text/html" />
  <updated>2010-01-25T16:13:13Z</updated>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Chadfowlercom" /><feedburner:info uri="chadfowlercom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2010-01-25:21042</id>
    <published>2010-01-25T16:13:00Z</published>
    <updated>2010-01-25T16:13:13Z</updated>
    <category term="Conferences" />
    <category term="Ruby" />
    <link href="http://www.chadfowler.com/2010/1/25/rubyconf-india" rel="alternate" type="text/html" />
    <title>RubyConf India</title>
<content type="html">
            &lt;p&gt;I’ve decided to travel less this year. Since my job involves a lot of travel, this mostly translates into going to less conferences.&lt;/p&gt;


	&lt;p&gt;So for 2010 I so far have only one conference on the agenda (other than those I’m co-organizing): &lt;a href="http://rubyconfindia.org/"&gt;RubyConf India&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;I’m speaking at the event and also helping out on the proposal committee along with &lt;a href="http://m.onkey.org/"&gt;Pratik Naik&lt;/a&gt; and &lt;a href="http://olabini.com/blog/"&gt;Ola Bini&lt;/a&gt;.  So far the program is shaping up well, and I’m excited about the conference.&lt;/p&gt;


	&lt;p&gt;If you’re looking for a combined technical and cultural education experience, I highly recommend going to RubyConf India.  Kelly and I &lt;a href="http://chadfowler.com/2009/8/2/how-learning-a-second-language-changed-my-life"&gt;lived in Bangalore&lt;/a&gt; several years ago and absolutely loved it there. We can’t wait to get back to our second home. Bangalore was a culture shock at first, but that’s another strong reason to go. For us, it went from culture shock to comfort. Bangalore certainly didn’t change to make that happen—we did.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://rubyconfindia.org/stock/rubyconf-badges/RubyConf2010/270X185_speaking.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;So, while it’s hectic, noisy,  and sometimes shocking, Bangalore is a beautiful place which had a profound effect on me. When I was there, I couldn’t find any other Ruby programmers. It will be really exciting to go back to an entire conference devoted to Rubyists.&lt;/p&gt;


	&lt;p&gt;Registration will be opening in the next couple of weeks. Follow &lt;a href="http://twitter.com/rubyconfindia"&gt;RubyConfIndia&lt;/a&gt; on twitter for announcements. Bangalore men milenge?&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-11-04:20980</id>
    <published>2009-11-04T22:58:00Z</published>
    <updated>2009-11-04T22:59:31Z</updated>
    <category term="Life" />
    <category term="Rails" />
    <category term="Ruby" />
    <link href="http://www.chadfowler.com/2009/11/4/my-friend-john-was-shot-please-help" rel="alternate" type="text/html" />
    <title>My Friend John was Shot - Please Help</title>
<content type="html">
            &lt;p&gt;&lt;a href="http://www.pledgie.com/campaigns/6842"&gt;&lt;img src="http://www.pledgie.com/campaigns/6842.png?skin_name=chrome" alt="Click here to lend your support to: Help John recover and make a donation at www.pledgie.com !" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;My friend and fellow Rails developer John Lannon, lead developer at http://resonantvibes.com, was mugged last night while picking up dinner for his wife. He didn’t have anything on him to give to the robbers and they shot him point blank in the chest.&lt;/p&gt;


	&lt;p&gt;His friends and teammates at &lt;a href="http://resonantvibes.com"&gt;Resonant Vibes&lt;/a&gt; are &lt;a href="http://www.pledgie.com/campaigns/6842"&gt;raising money&lt;/a&gt; to help with his recovery. Please consider helping a fellow developer and a remarkable individual who (not that anyone does) really does not deserve to be in the predicament he’s in now.&lt;/p&gt;


	&lt;p&gt;Thanks&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-10-27:20978</id>
    <published>2009-10-27T22:45:00Z</published>
    <updated>2009-10-27T22:47:02Z</updated>
    <category term="Conferences" />
    <category term="Rails" />
    <link href="http://www.chadfowler.com/2009/10/27/welcome-to-ben-scofield-railsconf-co-chair" rel="alternate" type="text/html" />
    <title>Welcome to Ben Scofield - RailsConf Co-Chair</title>
<content type="html">
            &lt;p&gt;Today we &lt;a href="http://railsconf.com"&gt;opened the RailsConf Call For Proposals&lt;/a&gt;. So we soon begin the several-month process of putting together the program for RailsConf 2010 (in Baltimore!).&lt;/p&gt;


	&lt;p&gt;I’m particularly excited to start the process this year, because we’ve made a very positive change to the team. We’re bringing on &lt;a href="http://twitter.com/bscofield"&gt;Ben Scofield&lt;/a&gt; as program co-chair this year. In case you don’t know Ben, he’s the author of &lt;a href="http://www.amazon.com/Practical-REST-Rails-Projects/dp/1590599942/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1256683302&amp;sr=8-1"&gt;Practical &lt;span class="caps"&gt;REST&lt;/span&gt; on Rails 2 Projects&lt;/a&gt;, &lt;a href="http://www.viget.com/about/team/bscofield"&gt;Technology Director at Viget Labs&lt;/a&gt;, organizer of the roving &lt;a href="http://developer-day.com/"&gt;Developer Day&lt;/a&gt; conferences, and a &lt;a href="http://speakerrate.com/speakers/44-ben-scofield"&gt;fantastic speaker&lt;/a&gt; (he helped created &lt;a href="http://speakerrate.com"&gt;speakerrate.com&lt;/a&gt; too).&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://assets.en.oreilly.com/1/eventprovider/1/_@user_1467.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://twitter.com/?status=@bscofield%20"&gt;So please join us&lt;/a&gt; in welcoming Ben, and start working on those RailsConf proposals!&lt;/p&gt;


	&lt;p&gt;See you in Baltimore!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-09-25:20943</id>
    <published>2009-09-25T15:22:00Z</published>
    <updated>2009-09-30T18:30:22Z</updated>
    <link href="http://www.chadfowler.com/2009/9/25/unofficial-rubyconf-5k" rel="alternate" type="text/html" />
    <title>(unofficial) RubyConf 5k Run</title>
<content type="html">
            &lt;p&gt;&lt;a href="http://davidchelimsky.net/"&gt;David Chelimsky&lt;/a&gt; and I were chatting a couple of weeks ago about my recently acquired running hobby and he asked “Why don’t you organize a 5k race at RubyConf?”&lt;/p&gt;


	&lt;p&gt;Then I said something like “heh”. Then we both thought about it some more and thought it might actually be a fun thing to do.&lt;/p&gt;


	&lt;p&gt;In a previous email, &lt;a href="http://jlaine.net/"&gt;Jarkko Laine&lt;/a&gt; had volunteered to coordinate some morning exercise sessions at RubyConf, so we’ve pulled him in as well.&lt;/p&gt;


	&lt;p&gt;So now, David, Jarkko, &lt;a href="http://twitter.com/kellyjeanne"&gt;Kelly&lt;/a&gt; and I are organizing some kind of 5k race for one of the mornings of RubyConf.&lt;/p&gt;


	&lt;h2&gt;Can you run 3.1 miles?&lt;/h2&gt;


	&lt;p&gt;If so, be on the lookout to sign up and have some fun.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;If not, even better!&lt;/b&gt; Chances are even if you don’t run at all right now, you can practice and get ready to run (or mostly run) 3.1 miles by RubyConf. Check out a program like &lt;a href="http://www.c25k.com/"&gt;Couch to 5K&lt;/a&gt; for an easy progressive schedule that will get you to running the distance without feeling like you’re killing yourself.&lt;/p&gt;


	&lt;p&gt;We’re still getting our collective act together, but I wanted to share this to get you thinking about trying to run 5k if you haven’t before. There might be some fast people in the crowd but I’m hoping for a greater ratio of people who have never been able to run just trying to finish it.&lt;/p&gt;


	&lt;p&gt;So start training and see you there!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-09-04:20906</id>
    <published>2009-09-04T18:50:00Z</published>
    <updated>2009-09-04T19:16:56Z</updated>
    <category term="Life" />
    <category term="Software Development" />
    <link href="http://www.chadfowler.com/2009/9/4/toward-an-agile-career-development-methodology" rel="alternate" type="text/html" />
    <title>Toward an Agile Career Development Methodology</title>
<content type="html">
            &lt;p&gt;Since finishing &lt;a href="http://www.pragprog.com/titles/cfcar2/the-passionate-programmer"&gt;The Passionate Programmer&lt;/a&gt; I’ve been putting a lot of thought into how to package the advice from the book into something more structured, serial, and prescriptive.&lt;/p&gt;


	&lt;p&gt;The Amazon reviews for the book are almost all glowingly positive with the occasional piece of constructive criticism. Here’s one such excerpt from an otherwise positive review by Ira Laefksy which I agreed with and took to heart:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.amazon.com/review/R1D32FLM2NZ3ES/ref=cm_cr_rdp_perm"&gt;I was somewhat disappointed with the lack of a road map to carrying out this excellent advice over the career of a self-driven software professional and the only tool to locate the appropriate essay for choosing to carry out being the table of contents. Perhaps the author/editor will provide chronological/situation-based guidance to employing this life-changing advice in a companion web-site making the volume more accessible to the demands of a particular life/career situation in addition to being an invaluable set of essays.&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Ira and I have the same idea. What I think we’re both looking for is a career development methodology.&lt;/p&gt;


	&lt;p&gt;As an example methodology pulled from the software field, Extreme Programming has always been codified as a set of distinct practices, all of which can be beneficially understood and adopted on their own. But, &lt;a href="http://www.extremeprogramming.org/map/project.html"&gt;as the famous flowchart shows&lt;/a&gt;, XP doesn’t just give you a bunch of great ideas about how to develop software. It tells you what to do when you get to work each morning.&lt;/p&gt;


	&lt;p&gt;The idea of following a software development methodology is nothing new to any of us in the field. It’s common practice. Software projects are expensive, complex and (sometimes) important. Letting them chaotically emerge isn’t a reasonable approach for a professional to take.&lt;/p&gt;


	&lt;p&gt;So why should our careers be any different?&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://swaine.com"&gt;Mike Swaine&lt;/a&gt; recently approached me about writing an article for
 the Pragmatic Bookshelf’s &lt;a href="http://www.pragprog.com/magazines"&gt;PragPub issue #3&lt;/a&gt;. I decided to use this as an opportunity to explore some of the ideas I’ve had about crystalizing the advice from The Passionate Programmer into a prescriptive career development methodology.&lt;/p&gt;


	&lt;p&gt;I think I’m onto something, but I’d like feedback.  The article, titled “Clone Yourself – Destroy Your Job Through Automation and Outsourcing”,  contains just the beginnings of what I have in mind. Please &lt;a href="http://www.pragprog.com/magazines"&gt;go read it&lt;/a&gt; and let me know what you think.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-08-05:20890</id>
    <published>2009-08-05T00:31:00Z</published>
    <updated>2009-08-05T00:33:00Z</updated>
    <category term="Conferences" />
    <category term="Consulting" />
    <category term="Life" />
    <category term="Speaking" />
    <category term="Training" />
    <link href="http://www.chadfowler.com/2009/8/5/upcoming-travel-and-speaking-engagements" rel="alternate" type="text/html" />
    <title>Upcoming Travel and Speaking Engagements </title>
<content type="html">
            &lt;p&gt;I gave myself a little break this spring and early summer, but the pace is about to pick up again.  The rest of the year is looking pretty busy. Here’s what the rest of this year looks like so far. If you’re a reader of this weblog, consider stopping by to say hello.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Private training, San Antonio, TX – Aug 10-13&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://pragmaticstudio.com/rails"&gt;Rails Studio&lt;/a&gt; (with &lt;a href="http://pragmaticbookshelf.com"&gt;Dave Thomas&lt;/a&gt;) – Denver, CO – Aug 19-21 (almost sold out!)&lt;/li&gt;
		&lt;li&gt;Attending &lt;a href="http://pragmaticstudio.com/iphone"&gt;iPhone Studio&lt;/a&gt; (yay!) – Denver, CO – Aug 24-28 (also almost sold out!)&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.nfjsone.com/conference/washington_dc/2009/09/rubyrx/event_about"&gt;AgileRX/RubyRX&lt;/a&gt; – Reston, VA – Sept 10-11&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://indiansummerhalf.com/"&gt;Indian Summer Half Marathon&lt;/a&gt; – Boulder, CO – Sept 13&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.alohaonrails.com/"&gt;Aloha on Rails&lt;/a&gt; – Oahu, Hawaii – Oct 4-6&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.railssummit.com.br/"&gt;Rails Summit Latin America&lt;/a&gt; – S�o Paulo, Brazil – Oct 13-14&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://pragmaticstudio.com/ruby"&gt;Advanced Ruby Studio&lt;/a&gt; – Denver, CO, Oct 19-21&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://kungfurails.com/"&gt;Kungfu Rails&lt;/a&gt; – Shanghai, China – Oct 24&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://rubyconf.org"&gt;RubyConf&lt;/a&gt; – San Franciso, CA – Nov 19-21&lt;/li&gt;
	&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-08-02:20854</id>
    <published>2009-08-02T18:33:00Z</published>
    <updated>2009-08-07T19:17:51Z</updated>
    <category term="Career" />
    <category term="Life" />
    <link href="http://www.chadfowler.com/2009/8/2/how-learning-a-second-language-changed-my-life" rel="alternate" type="text/html" />
    <title>How Learning a Second Language Changed My Life </title>
<content type="html">
            &lt;p&gt;There’s an old joke I heard in India which goes something like this:&lt;/p&gt;


	&lt;p&gt;What do you call a person who speaks many languages? &lt;em&gt;Multilingual&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;What do you call a person who speaks two languages? &lt;em&gt;Bilingual&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;What do you call a person who speaks one language? &lt;em&gt;American&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;Sad, but usually true. I got fairly deep into my adult life without having learned anymore
than the bare minimum Spanish I was required to study in the Arkansas public school system.
As you might imagine, I wasn’t all that conversational in Spanish by the time I graduated.
My father’s mother was German and my mother’s mother is Japanese. I grew up hearing many 
languages spoken but somehow never learned another one. As a German-Japanese-American, by my 
mid-20s I started to feel like I was missing something serious.&lt;/p&gt;


	&lt;p&gt;I was sitting at work in a big company lunch room one day talking
to an Indian friend. I asked how many languages he spoke and he said six.
I told him I was envious and that I guessed I would need to just
eventually move to another country so I could be immersed enough to
learn a language. I was tired of being the typical monolingual American.
 He said, “Look around. Anything significant about
the people you see?” I looked around and it turned out I was the only
person in the lunch room who wasn’t Indian. He said “Learn an Indian
language”.&lt;/p&gt;


	&lt;p&gt;So I bought every Hindi book, &lt;span class="caps"&gt;CD ROM&lt;/span&gt;, and video I could find and
started watching Bollywood movies for fun. Within a year or so I was
pretty conversational. I started teaching my wife, Kelly, Hindi as well, and we
used it as a secret language when we were out in public.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://chadfowler.com/images/kannada.jpg" alt="Kannada Script" /&gt;&lt;br /&gt;
Photo by &lt;a href="http://www.flickr.com/people/ashasusan/"&gt;Asha Susan&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Based on my self-driven Indian cultural immersion, when an opportunity
came up at the big company I worked for to have someone expatriate to India to help set up a
software development center, I was the first choice. My wife and I
spent a year and a half living in Bangalore  trying to
blend in like real Indians (except for the physical appearance thing of
course).&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://chadfowler.com/images/veena.jpg" alt="Veena" /&gt;&lt;br /&gt;
Photo by &lt;a href="http://www.flickr.com/people/dalbera/"&gt;J.P. Dalb�ra&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;We took two private Hindi classes per week plus I took
&lt;a href="http://en.wikipedia.org/wiki/Kannada_language"&gt;Kannada&lt;/a&gt; and studied the &lt;a href="http://en.wikipedia.org/wiki/Veena"&gt;Veena&lt;/a&gt;
twice a week each as well.  The Veena lessons were particularly cool
because the teacher didn’t speak very much English at all and wrote
all the music in Kannada script, which I had
taught myself over a long weekend after we moved to Bangalore (I discovered that after learning to read
Hindi, it was relatively easy to learn any Indian language’s writing system). Knowing that I couldn’t have succeeded in these Veena lessons had I been limited to English was extremely empowering.&lt;/p&gt;


	&lt;p&gt;While in India, we were fearless. We walked the back streets of Bangalore where westerners don’t go. We weren’t afraid to find our own transportation or do our own business anywhere, despite the huge cultural differences and language barriers. And when we went up North where everyone spoke Hindi, we didn’t have to worry about trying to find cab drivers who spoke English. We were able to go to small villages and talk to anyone we encountered. We got to see what India was really like and to experience the immense warmth of its people, which we’ve discovered is multiplied when you even try to say “Hello” or “Thank you” in their language.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://chadfowler.com/images/old/ChadAndKids.jpg" alt="Me and some children around Agra" width="300" /&gt;&lt;/p&gt;


	&lt;p&gt;The benefit of learning Hindi didn’t stop at the Indian border. All of this led to another of the best experiences of my life.  When
we were about to head home from India, my wife got an email from a
non-profit group in Louisville, Kentucky (our home/destination) that
supported Tibetan monastic refugees: “Help! Does anyone speak Tibetan
or Hindi?”. The director of the non-profit
(&lt;a href="http://www.drepunggomang.com/"&gt;http://www.drepunggomang.com&lt;/a&gt;) was desperate and half-joking when she
sent the request. They had just moved a senior monk from an monastery
in India to Kentucky to lead a dharma center when the local
Tibetan translator had immigration problems and was suddenly no longer allowed to stay 
in the US. The monk didn’t speak &lt;em&gt;any&lt;/em&gt; English, so the dharma center was basically
stuck there with him without anyone who could help communicate. We didn’t know a whole lot about Tibetan Buddhists at the time but decided it wouldn’t hurt to help, so we responded saying we spoke Hindi and were due back in Kentucky in a week.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://chadfowler.com/images/geshesangye.jpg" alt="Geshe Sangay Gyatso" width="200" /&gt;&lt;/p&gt;


	&lt;p&gt;This started a long relationship with the institute which included a
stint with both of us serving as directors. We also became very close friends
with &lt;a href="http://www.drepunggomang.com/the_monks_of_dgi"&gt;Geshe Sangay Gyatso&lt;/a&gt; from whom we learned a
&lt;em&gt;lot&lt;/em&gt; about Tibetan culture and &lt;a href="http://en.wikipedia.org/wiki/Mahayana"&gt;Mahayana Buddhism&lt;/a&gt;. He even lived with us
for a while. The center was in between lodging arrangments for him, so it made perfect sense for him to stay
with us since we could all communicate. We had developed a family-like relationship. He stayed with us for about a month. I remember the smell of incense and the sound of chanting coming out of his room every morning as he
 practiced his faith. It was a seriously humbling and life-changing experience to let
the pressures of corporate life reflect from his perspective after
work each day.&lt;/p&gt;


	&lt;p&gt;Being Geshe Sangay’s translator led us to amazing
experiences, including a lot of dialog with the spiritual leaders of
Louisville when we attended and participated in interfaith events. One of the highlights of these experiences was when I 
had the opportunity to tour the gardens of &lt;a href="http://www.monks.org/"&gt;The Abbey of Gethsemani&lt;/a&gt; while translating
for the recently retired abbot of the &lt;a href="http://www.gomang.org/"&gt;Drepung Gomang Monastery&lt;/a&gt; in India. I believe I’m one
of very few non-monks to see the full beauty of the Abbey, and it’s an experience I’ll never forget.&lt;/p&gt;


	&lt;p&gt;As the direct result of learning Hindi (and now a little Tibetan and Kannada), I’ve had some of the greatest career, cultural, social, and spiritual experiences of my life. I’ve made dear friends I could never have met or communicated with, and I’ve learned things that would have been much harder to learn without the language skills. Is learning a language a good use of your time? Absolutely.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-07-08:20835</id>
    <published>2009-07-08T14:52:00Z</published>
    <updated>2009-07-08T14:53:41Z</updated>
    <category term="Ruby" />
    <category term="Software Development" />
    <link href="http://www.chadfowler.com/2009/7/8/how-ruby-mixins-work-with-inheritance" rel="alternate" type="text/html" />
    <title>How Ruby Mixins Work With Inheritance</title>
<content type="html">
            &lt;p&gt;Yesterday I &lt;a href="http://twitter.com/chadfowler/status/2516989904"&gt;asked on Twitter&lt;/a&gt; whether anyone was successfully using &lt;a href="http://github.com/semanticart/is_paranoid/tree/master"&gt;is_paranoid&lt;/a&gt; in a Rails application, because I had confused myself into thinking it couldn’t possibly work.&lt;/p&gt;


	&lt;p&gt;The problem I was having wasn’t is_paranoid’s fault, but it turns out it actually can’t do what I wanted it to do in its native state. The explanation of why is something I thought a number of Rubyists might benefit from hearing, so here it is.&lt;/p&gt;


	&lt;p&gt;Briefly, an explanation of is_paranoid: if you declare an ActiveRecord model to be paranoid, whenever you attempt to delete that model, is_paranoid will instead set a flag which indicates that the record is deleted. is_paranoid uses default_scope to filter out soft-deleted records in your queries. So you can act as if records are deleted without actually removing the rows. If is_paranoid is new to you but sounds familiar, you might be thinking of &lt;a href="http://github.com/technoweenie/acts_as_paranoid/tree/master"&gt;acts_as_paranoid&lt;/a&gt;, which is Rick Olson’s original implementation of this idea.&lt;/p&gt;


	&lt;p&gt;What I wanted to do for the specific application I’m working on is to declare that &lt;em&gt;every&lt;/em&gt; model should inherit the is_paranoid behavior.  Easy enough, I thought, given the way these things typically work in Rails’ inheritable accessor setup:&lt;/p&gt;


&lt;p&gt;But when I tried to destroy an instance of (for example) Person, the regular ActiveRecord destroy code was invoked and the records were being actually destroyed.  Bummer.&lt;/p&gt;


	&lt;p&gt;So I cracked open the code to is_paranoid and found this perfectly reasonable idiom:&lt;/p&gt;


&lt;p&gt;At this point, after pretending I was an idiot for a few minutes, I realized that this code was indeed &lt;em&gt;incapable&lt;/em&gt; of doing what I wanted it to do.&lt;/p&gt;


	&lt;p&gt;Some of you already know why. For the rest of you, let’s talk about how Ruby’s mixins fit into its inheritance mechanism.&lt;/p&gt;


	&lt;p&gt;Maybe it’s just me, but when I think of something getting “mixed in” to something else, I imagine the two things becoming intertwined. So, the natural assumption when mixing a module into a Ruby class would be that the methods of the module get intertwined with the Ruby class. And for the HelloWorld of mixins, that indeed &lt;em&gt;appears&lt;/em&gt; to be the case:&lt;/p&gt;


&lt;p&gt;But if you start mixing modules that implement methods the class also implements in, things don’t go quite as smoothly:&lt;/p&gt;


&lt;p&gt;Instead of “Overridden do_something” as some might expect, this code prints “Doing something in Thing”.&lt;/p&gt;


	&lt;p&gt;Why?&lt;/p&gt;


	&lt;p&gt;Because when we mix a module into a Ruby class, we’re not actually intermingling the methods of the module and the class.  Instead we’re inserting the module into the class’s inheritance hierarchy. A good way to see how this works is by using the “ancestors” method:&lt;/p&gt;


&lt;p&gt;When a method is called on an instance of SubThing, you can see that it is looked up first in SubThing’s class, then Thing’s class, &lt;em&gt;then&lt;/em&gt; in IneffectiveOverride, and so on.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://chadfowler.com/yuml.png" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;(I used &lt;a href="http://yuml.me"&gt;yuml&lt;/a&gt; to generate this.  Cool site!)&lt;/p&gt;


	&lt;p&gt;To further demonstrate that mixins don’t really get “mixed in”, notice what happens when you try to include a module at multiple points in the inheritance hierarchy:&lt;/p&gt;


&lt;p&gt;If a module is already present at a higher point in the hierarchy, it won’t be mixed in again.&lt;/p&gt;


	&lt;p&gt;So is_paranoid was apparently built without the goal of being able to mix it into ActiveRecord::Base. Sounds reasonable to me.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-07-01:20828</id>
    <published>2009-07-01T22:31:00Z</published>
    <updated>2009-07-02T01:10:29Z</updated>
    <category term="Career" />
    <category term="Life" />
    <link href="http://www.chadfowler.com/2009/7/1/producitivity-tip-let-derek-sivers-take-notes-for-you" rel="alternate" type="text/html" />
    <title>Productivity tip: Let Derek Sivers Take Notes for You</title>
<content type="html">
            &lt;p&gt;I just finished reading the inspiring &lt;a href="http://www.amazon.com/E-Myth-Revisited-Small-Businesses-About/dp/0887307280/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1246487770&amp;sr=8-1"&gt;The E-Myth Revisited&lt;/a&gt;, which like my own first book &lt;a href="http://www.pragprog.com/titles/mjwti/my-job-went-to-india"&gt;My Job Went to India&lt;/a&gt; suffers from an incredibly bad name.&lt;/p&gt;


	&lt;p&gt;This is definitely one of the most practically useful and potentially career-changing business books I’ve read. As I started getting toward the end, I realized that I should have been taking notes. The book is an excellent read, but at its core, it can be distilled into a clear outline of stuff to &lt;em&gt;do&lt;/em&gt; after you read it.  I was reading on my Kindle, which I’m still not good at using as a quick reference device. So, while I was excited about going back through the book and making myself a &lt;span class="caps"&gt;TODO&lt;/span&gt; list, I wasn’t sure how to best do it.&lt;/p&gt;


	&lt;p&gt;Then I remembered Derek Sivers’ &lt;a href="http://sivers.org/book"&gt;book list&lt;/a&gt;. Derek has obviously spent a &lt;em&gt;lot&lt;/em&gt; of time thoughtfully preparing a list of recommended books with reasons behind each recommendation. Not only that, he includes &lt;a href="http://sivers.org/book/EMythRevisited"&gt;detailed notes&lt;/a&gt; on each book.  I read his notes on E-Myth Revisited and was pleased to see that all of the important stuff is captured. Thanks Derek!&lt;/p&gt;


	&lt;p&gt;Speaking of Derek and books, don’t miss his book, &lt;a href="http://sivers.org/pdf"&gt;How to Call Attention to Your Music&lt;/a&gt;. It might be titled for musicians but I think everyone will find something valuable inside.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-06-15:20803</id>
    <published>2009-06-15T06:38:00Z</published>
    <updated>2009-06-16T13:42:02Z</updated>
    <category term="Software Development" />
    <link href="http://www.chadfowler.com/2009/6/15/no-more-projects" rel="alternate" type="text/html" />
    <title>No More Projects</title>
<content type="html">
            &lt;p&gt;As a young self-taught software developer, one of the first books I remember reading was Steve McConnell’s &lt;a href="http://www.stevemcconnell.com/sg.htm"&gt;Software Project Survival Guide: How to Be Sure Your First Important Project Isn’t Your Last&lt;/a&gt;. Who knows why I picked that one of all the possible books but I somehow knew I wanted to learn something about the broad practice of software development instead of just focusing on how to make specific widgets appear on the screen in Delphi or VB or how to automate the shell on our &lt;span class="caps"&gt;VAX&lt;/span&gt; cluster. I probably happened upon the book while aimlessly thumbing through spines in the local book store and was drawn to the snazzy cover.&lt;/p&gt;


	&lt;p&gt;And so it was that one of my first experiences in learning software became project-focused. “How to be sure your first important project isn’t your last” indeed. This thing called software development was apparently all about doing &lt;em&gt;projects&lt;/em&gt;.&lt;/p&gt;


	&lt;p&gt;I was not alone in this understanding of how software development worked. Most of the people I encountered in my professional life approached software work this way. When something needs to get done, the first step is to name it—sometimes with a silly code name and sometimes with a generic name like “the HR system project” and the next step is to start planning the project.&lt;/p&gt;


	&lt;p&gt;I’ve started to notice a bad habit. Whenever I need to do something I don’t want to do. Or, worse, something that I want to do but I am prone to procrastinate (according to &lt;a href="http://www.amazon.com/War-Art-Through-Creative-Battles/dp/0446691437"&gt;The War of Art&lt;/a&gt; procrastinating something is a sign that it’s important). The bad habit is this: I turn it into a project.&lt;/p&gt;


	&lt;p&gt;Projects are lovely for procrastinators. As soon as you call something a project, you give it permission to &lt;em&gt;not&lt;/em&gt; be completed right now.&lt;/p&gt;


	&lt;p&gt;Events such as the &lt;a href="http://railsrumble.com/"&gt;Rails Rumble&lt;/a&gt; have shown that it’s possible to finish software projects in two days that might take a corporate development team weeks or months in a normal project scenario. What’s the difference? Do the Rails Rumble participants throw quality out the window? Do their apps &lt;em&gt;suck&lt;/em&gt;? Do they avoid testing and cut corners? Yea, sometimes. But so do most corporate development groups. That’s how things are.&lt;/p&gt;


	&lt;p&gt;I’ve learned over the course of my career that the amount of time I spend on something doesn’t positively correlate to its value or quality when finished. In other words, if I do something really quickly, it’s not likely to be less valuable than something that takes me a long time to do. Within obvious limits.&lt;/p&gt;


	&lt;p&gt;So if you want something to take a long time, call it a project. If you want it to get done, just get it done.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-06-13:20802</id>
    <published>2009-06-13T18:10:00Z</published>
    <updated>2009-06-13T18:13:46Z</updated>
    <category term="Career" />
    <category term="Conferences" />
    <category term="Life" />
    <category term="Ruby" />
    <category term="Speaking" />
    <link href="http://www.chadfowler.com/2009/6/13/things-i-referenced-in-my-ruby-nation-presentation" rel="alternate" type="text/html" />
    <title>Things I mentioned in my Ruby Nation presentation</title>
<content type="html">
            &lt;p&gt;I had a great time at &lt;a href="http://rubynation.org"&gt;Ruby Nation&lt;/a&gt; this weekend. After my presentation I got a number of questions asking about things I referenced during the talk. Here’s an attempt to point to some of them. If you weren’t there, you won’t have any context but feel free to follow the links anyway You might find something interesting.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.pragprog.com/titles/cfcar2/the-passionate-programmer/"&gt;My Book&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.bls.gov/tus/charts/"&gt;Bureau of Labor Statistics Time Use Survey&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Stockholm_syndrome"&gt;Stockholm Syndrome&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.stockhausen.org/"&gt;Karlheinz Stockhausen&lt;/a&gt;  whose name I accidentally used when trying to refer to Stockholm Syndrome.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.4d.com/"&gt;4d Database&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.johncoltrane.com/swf/main.htm"&gt;John Coltrane&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.drawingsofleonardo.org/"&gt;da Vinci Sketches&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://c2.com/cgi/wiki?EightHourBurn"&gt;Eight Hour Burn&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.objectmentor.com/omTraining/course_agile_immersion.html"&gt;XP (Agile) Immersion&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://hepcat1950.com/pmivmix1.html"&gt;Pat Metheny&lt;/a&gt; – “Whenever young guys ask me what they should do to get better, I always say try to be the worst guy in whatever band you’re in. That’s the secret.”&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://iwillteachyoutoberich.com"&gt;I Will Teach You To Be Rich&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.sethgodin.com/purple/"&gt;Purple Cow&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://fourhourworkweek.com/"&gt;4-Hour Work Week&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewCollaboration?ids=322685-2355964-4316308&amp;s=143441"&gt;Wozzeck&lt;/a&gt; by &lt;a href="http://w3.rz-berlin.mpg.de/cmp/berg.html"&gt;Alban Berg&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://drepunggomang.com/"&gt;Drepung Gomang Institute&lt;/a&gt; (for whom we translated Hindi)&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://chadfowler.com/2009/5/2/what-would-you-rather-be-doing"&gt;What Would You Rather Be Doing?&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.asksunday.com/"&gt;Ask Sunday&lt;/a&gt; – the company I mentioned that helped me with research&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.amazon.com/Stamina-1350-Magnetic-Resistance-Recumbent/dp/B001ICPCPW/ref=sr_1_258?ie=UTF8&amp;s=sporting-goods&amp;qid=1244916825&amp;sr=1-258"&gt;My exercise bike&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.arduino.cc/"&gt;Arduino&lt;/a&gt; – I used this to create the interface to my exercise bike&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://code.google.com/p/gosu/"&gt;Gosu&lt;/a&gt; – The game library I used to write my exercise bike “game”&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://rubyhoedown2007.confreaks.com/session05.html"&gt;Building Games with Ruby&lt;/a&gt; – Andrea O.K. Wright’s presentation on game development in Ruby&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.cs.virginia.edu/~robins/YouAndYourResearch.html"&gt;You and Your Research&lt;/a&gt; – Richard Hamming at Bell Labs&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.amazon.com/Fixing-Broken-Windows-Restoring-Communities/dp/0684837382"&gt;Fixing Broken Windows: Restoring Order And Reducing Crime In Our Communities&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://pragprog.com"&gt;The Pragmatic Programmer&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://en.oreilly.com/rails2009/public/schedule/detail/8772" title="Video"&gt;Discussion Panel: Women in Rails&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.prevention.com/14worsthealthmistakes/list/12.html"&gt;14 Worst Health Mistakes Even Smart Women Make&lt;/a&gt; – Referenced Harvard and University of Texas studies on the effect of the company you keep&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://sivers.org/pdf"&gt;How to Call Attention to Your Music&lt;/a&gt; – Derek Sivers free ebook&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.avclub.com/articles/15-things-kurt-vonnegut-said-better-than-anyone-el,1858/"&gt;15 Things Kurt Vonnegut Said Better Than Anyone Else Ever Has Or Will&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-06-09:20785</id>
    <published>2009-06-09T00:26:00Z</published>
    <updated>2009-06-09T00:38:48Z</updated>
    <category term="Career" />
    <category term="Life" />
    <link href="http://www.chadfowler.com/2009/6/9/the-unexpected-consequences-of-consumerism" rel="alternate" type="text/html" />
    <title>The Unexpected Consequences of Consumerism</title>
<content type="html">
            &lt;p&gt;I’m reading &lt;a href="http://www.amazon.com/Vagabonding-Uncommon-Guide-Long-Term-Travel/dp/0812992180/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1244506800&amp;sr=8-1"&gt;Vagabonding: An Uncommon Guide to the Art of Long-Term World Travel&lt;/a&gt; by Rolf Potts. I’m only a quarter of the way through it and it’s already worth the price. In the third chapter, Rolf talks about the American reaction to the &lt;a href="http://en.wikipedia.org/wiki/Exxon_Valdez_oil_spill"&gt;Exxon Valdez oil spill&lt;/a&gt; in the late 80s. The nation suddenly became, on the average, much more environmentally minded. So what did we do? We bought “environmental” products. Recycled products, energy-efficient this-or-that, health food, etc. What did we &lt;em&gt;not&lt;/em&gt; do? Actually change our behavior.&lt;/p&gt;


	&lt;p&gt;Here’s a quote from page 29:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;The more our life options get paraded around as consumer options, the more we forget that there's a difference between the two.&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;When I read this I recognized a pattern in myself and many people (everyone?) I know:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;You want to lose weight, get excited and buy a bunch of books, magazines, DVDs, etc. on weight loss. Join a fitness site where you can log calories and workouts. Buy a book about a diet with an enticing name.&lt;/li&gt;
		&lt;li&gt;Want to learn a new technology? Get a bunch of books, sign up for a mailing list.&lt;/li&gt;
		&lt;li&gt;Train for a triathlon? Tons of triathlon books, a bicycle, funny triathlon clothes, triathlete magazine, etc.&lt;/li&gt;
		&lt;li&gt;Want to learn a (human) language? Buy some software and books, music, movies.&lt;/li&gt;
		&lt;li&gt;Want to learn an instrument? Books, an instrument, a case for the instrument, various accessories.&lt;/li&gt;
		&lt;li&gt;Get more organized? Productivity books, a &lt;span class="caps"&gt;PDA&lt;/span&gt;, PIM software.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;I do this all the time. I decide I’m going to do something challenging, and my first step is to load up on &lt;em&gt;stuff&lt;/em&gt; related to whatever it is I want to do. My second step is to continue to load up on stuff related to the topic. And so on.&lt;/p&gt;


	&lt;p&gt;Why do we do this? Because we know that we’re staring in the face of something that’s both very important and very scary. We want to feel like we’re doing something about whatever goal it is we have in mind. And the easiest way to feel like we’re doing something is to buy stuff.&lt;/p&gt;


	&lt;p&gt;What’s upsetting is to realize that in my case, simply buying the stuff is all I typically need to get enough of the feeling that I’m “dong something” to be satisfied.  The end result? I’m fat, I still can’t program in Haskell worth a damn, I haven’t run the triathlon, I don’t know Spanish, I can’t play accordion very well, and I’m totally unorganized.&lt;/p&gt;


	&lt;p&gt;Experiment: next time a really important goal comes along, I’m not allowed to do  &lt;em&gt;any&lt;/em&gt; discretionary spending related to that goal.&lt;/p&gt;


	&lt;p&gt;My hypothesis is that unfunded life goals stand a better chance of being met.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-05-26:20757</id>
    <published>2009-05-26T01:26:00Z</published>
    <updated>2009-05-26T13:33:55Z</updated>
    <category term="Life" />
    <link href="http://www.chadfowler.com/2009/5/26/the-missing-first-words-from-the-passionate-programmer" rel="alternate" type="text/html" />
    <title>The missing first words from The Passionate Programmer</title>
<content type="html">
            &lt;p&gt;While I was working on &lt;a href="http://pragprog.com/titles/cfcar2/the-passionate-programmer"&gt;The Passionate Programmer&lt;/a&gt; I had the following Kurt Vonnegut quote (from &lt;a href="http://www.amazon.com/Man-Without-Country-Kurt-Vonnegut/dp/158322713X"&gt;A Man Without A Country&lt;/a&gt;) at the top of the introduction. Right before we published it, my editor reminded me that we had to get permission to print it. I was unable to reach anyone from Kurt Vonnegut’s estate on time, so I commented the quote out in the book’s source.&lt;/p&gt;


	&lt;p&gt;This is how The Passionate Programmer was supposed to begin:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;"I urge you to please notice when you are happy, and exclaim or murmur or think at some point, 'If this isn't nice, I don't know what is.'" -- Kurt Vonnegut, Jr.&lt;/code&gt;&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-05-19:20751</id>
    <published>2009-05-19T15:19:00Z</published>
    <updated>2009-05-19T15:21:17Z</updated>
    <category term="Conferences" />
    <category term="Ruby" />
    <category term="Speaking" />
    <link href="http://www.chadfowler.com/2009/5/19/the-passionate-programmer-at-ruby-nation" rel="alternate" type="text/html" />
    <title>The Passionate Programmer at Ruby Nation</title>
<content type="html">
            &lt;p&gt;Next month, I’ll be presenting at &lt;a href="http://rubynation.org"&gt;Ruby Nation&lt;/a&gt; in my home away from home, Northern Virginia (I seem to spend almost as much time there as I do in Colorado).  The presentation will be something like this:&lt;/p&gt;


	&lt;h2&gt;The Passionate Programmer&lt;/h2&gt;


	&lt;p&gt;What should the career path of a programmer be? How do you know what you’re aiming for? What defines success?&lt;/p&gt;


	&lt;p&gt;Many of us started out assuming the answers to these questions included slowly climbing a corporate promotion structure,
ultimately becoming a people or project manager and no longer a programmer.&lt;/p&gt;


	&lt;p&gt;But we didn’t get into software development so we could fill out spreadsheets and attend status meetings. We got into software
development because we were excited about it. We wanted to be creative and to build great things.&lt;/p&gt;


	&lt;p&gt;From the author of The Passionate Programmer, this session will walk through how a software developer can not only succeed but
work toward building a remarkable career. We’ll draw examples from business, the arts, music, and sports. By the end of the
presentation, we will have laid out a structured framework for radically succeeding in the software industry.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.chadfowler.com/">
    <author>
      <name>chad</name>
    </author>
    <id>tag:www.chadfowler.com,2009-05-19:20750</id>
    <published>2009-05-19T04:22:00Z</published>
    <updated>2009-05-19T04:23:19Z</updated>
    <category term="Conferences" />
    <category term="Rails" />
    <link href="http://www.chadfowler.com/2009/5/19/aloha-on-rails" rel="alternate" type="text/html" />
    <title>Aloha on Rails</title>
<content type="html">
            &lt;p&gt;If you only have the budget to travel to one regional Rails conference this year, this might be a good choice:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://alohaonrails.com"&gt;&lt;img src="http://www.alohaonrails.com/wp-content/uploads/2009/05/aor_spkr.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;...for obvious reasons.&lt;/p&gt;
          </content>  </entry>
</feed>
