<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
  <title>Better Endeavor Blog - Home</title>
  <id>tag:blog.betterendeavor.com,2008:mephisto/</id>
  <generator version="0.7.3" uri="http://mephistoblog.com">Mephisto Noh-Varr</generator>
  
  <link href="http://blog.betterendeavor.com/" rel="alternate" type="text/html" />
  <updated>2008-07-02T17:15:12Z</updated>
  <link rel="self" href="http://feeds.feedburner.com/betterendeavor" type="application/atom+xml" /><entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2008-07-02:76</id>
    <published>2008-07-02T17:03:00Z</published>
    <updated>2008-07-02T17:15:12Z</updated>
    <link href="http://blog.betterendeavor.com/2008/7/2/speaking-engagements" rel="alternate" type="text/html" />
    <title>Speaking Engagements</title>
<content type="html">
            &lt;p&gt;I recently found out that I'll be speaking at both &lt;a href="http://railsconfeurope.com"&gt;RailsConf Europe&lt;/a&gt; and the &lt;a href="http://lonestarrubyconf.com/"&gt;Lone Star Ruby Conference&lt;/a&gt; with a few of my &lt;a href="http://www.intridea.com"&gt;Intridea&lt;/a&gt; colleagues..&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;RailsConf Europe&lt;/h3&gt;
&lt;a href="http://www.railsconfeurope.com"&gt;
&lt;img title="RailsConf Europe 2008" src="http://assets.en.oreilly.com/1/event/13/railseurope2008_spk_125x125.gif" height="125" alt="RailsConf Europe 2008" width="125" /&gt;
&lt;/a&gt;
 Michael Bleigh will be presenting our RailsConf Europe talk: Hacking the Mid-End: Unobtrusive Scripting and Advanced UI Techniques in Rails, on September 3rd.  Here's the talk overview:&lt;/p&gt;
&lt;blockquote&gt;
As web application development advances beyond the static page, a whole new field of development is emerging. In the Javascript behavior layer and markup abstracting helpers lie the ’Mid-End’: advanced user interface problems that don’t fit traditional ‘back-end’ and ‘front-end’ models. Explore this new field with case studies and real code such as usage of Lowpro Javascript behaviors to keep the behavior separate from the markup. Learn how to give back-end developers the tools to create simple, repeatable, quality markup through block-accepting helpers. Discuss the methods that allow for rapid development of complex interactions in new and exciting ways and see real examples. Finally, look into the future of the Mid-End and what lies ahead for user interface development.
&lt;/blockquote&gt;

&lt;p&gt;Then, immediately after my talk, I'll board my plane to head off to..&lt;/p&gt;

&lt;h3&gt;The Lone Star Ruby Conference&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://lonestarrubyconf.com/"&gt;&lt;img src="http://blog.betterendeavor.com/assets/2008/7/2/LSRC_2008_presenter.png" /&gt;&lt;/a&gt;Adam Bair, Pradeep Elankumaran, and I will be leading a training on the first day of the LSRC.  The training is titled: Rails Refactoring: Triage, Prevention, and Performance.  And the overview:&lt;p&gt;
&lt;blockquote&gt;
Maybe you inherited a mess of a Rails project – or perhaps your own codebase is poorly-tested, not very DRY, or just generally confusing. Worse yet, maybe your Rails site has slowed down to a crawl or even stopped working entirely. Whatever the reason, it’s time to consider refactoring these rough spots and boosting your site’s performance.&lt;br /&gt;&lt;br /&gt;

In the first half of the day we’ll go through real-life examples of (shameful) code we’ve written and refactored, give tips on how and when to start, and show you how to avoid the need for a future refactor. In the second half, we’ll introduce common Rails performance pitfalls, how to diagnose them, and how to solve them. We’ll also talk about other ways to speed up your app.
&lt;/blockquote&gt;

&lt;p&gt;If you're attending either conference, stop by and say hi!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2008-05-14:74</id>
    <published>2008-05-14T14:11:00Z</published>
    <updated>2008-05-14T14:12:44Z</updated>
    <link href="http://blog.betterendeavor.com/2008/5/14/launching-crowdsound" rel="alternate" type="text/html" />
    <title>Launching CrowdSound - Easy User Feedback</title>
<content type="html">
            &lt;p&gt;Intridea just launched our newest product - &lt;a href="http://www.crowdsound.com"&gt;CrowdSound&lt;/a&gt;. CrowdSound is a tool that allows companies and websites to gather, organize and respond to suggestions from their users.  It is available as a customizable widget that you plug into your own site.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.crowdsound.com"&gt;&lt;img src="/assets/2008/5/14/crowdsound.png" alt="CrowdSound" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here my own CrowdSound widget.  (The typical widget is 250px wide - I customized this to be 650px):&lt;/p&gt;

&amp;lt;script src="http://betterendeavor.crowdsound.com/widgets/init?aid=13&amp;width=650" type="text/javascript"&gt;&amp;lt;/script&gt;

&lt;p&gt;
Please try it out, and then sign up at &lt;a href="http://www.crowdsound.com"&gt;CrowdSound&lt;/a&gt; for your own!
&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2008-03-24:72</id>
    <published>2008-03-24T05:51:00Z</published>
    <updated>2008-03-24T05:53:11Z</updated>
    <link href="http://blog.betterendeavor.com/2008/3/24/speaking-at-railsconf-2008" rel="alternate" type="text/html" />
    <title>Speaking at RailsConf 2008</title>
<content type="html">
            &lt;p&gt;&lt;a href="http://www.railsconf.com"&gt;
&lt;img title="RailsConf 2008" src="http://conferences.oreillynet.com/banners/rails/speaker/125x125.gif" height="125" alt="RailsConf 2008" width="125" /&gt;&lt;/a&gt;I recently found out that I'll be speaking along with Josh Owens at Railsconf 2008.  We'll be speaking about our experience rapidly building web applications during the first Rails Rumble, a 48-hour contest for developing a Rails site from concept to completion.&lt;/p&gt;

&lt;p&gt;Railsconf 2008 will be held in Portland, OR on May 29th - June 1st.  Stay tuned for scheduling details.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2008-02-11:62</id>
    <published>2008-02-11T11:51:00Z</published>
    <updated>2008-02-12T14:04:01Z</updated>
    <link href="http://blog.betterendeavor.com/2008/2/11/emerging-from-hiding-and-launching-visualcv-com" rel="alternate" type="text/html" />
    <title>Emerging from hiding - and launching VisualCV.com!</title>
<content type="html">
            &lt;p&gt;Seeing how I haven't posted a single thing in over a month, I can see how you might expect the worst.  Have no fear, I have not been abducted by aliens, nor have I been jailed for embezzlement (yet).  I have merely been toiling day and night with my Intridea teammates on an exciting new project for our VisualCV clients.  I am pleased to annouce that all of our hard work has finally come to fruition, and &lt;a href="http://www.visualcv.com"&gt;www.visualcv.com&lt;/a&gt; launched early this morning.&lt;/p&gt;

&lt;p&gt;From the start we knew VisualCV would require a lot of effort and long hours, and we were right! Thanks to the coding efficiency Ruby and Ruby on Rails allow us, as well as the agile methods we put in place, we were able to meet very tight deadlines.&lt;/p&gt;

&lt;p&gt;VisualCV aims to replace the traditional paper resume with an online version that allows you to present images, audio, and video alongside traditional resume content.  The VisualCV management team and advisory team is impressive, headed up by Phillip Merrick, former CEO and Chairman of webMethods, so we're expecting good things from this endeavor.&lt;/p&gt;

&lt;p&gt;Stay tuned for updates on VisualCV, as well as some more technical posts about some of the technology we used and some tips and tricks I've picked up.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.visualcv.com"&gt;Check VisualCV out now!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;[UPDATE]&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;VisualCV has been generating a lot of media buzz so far - check out some of the coverage below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.techcrunch.com/2008/02/11/visualcv-thinks-its-time-to-update-that-resume/"&gt;TechCrunch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2008/02/10/AR2008021002134.html"&gt;Washington Post&lt;/a&gt; (registration may be required)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.visualcv.com/www/pr/20080211_VisualCV_Launches.html"&gt;See the official press release&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2007-12-16:18</id>
    <published>2007-12-16T11:02:00Z</published>
    <updated>2007-12-16T11:03:58Z</updated>
    <link href="http://blog.betterendeavor.com/2007/12/16/in-the-news" rel="alternate" type="text/html" />
    <title>In the News</title>
<content type="html">
            &lt;p&gt;Intridea is starting to get a national reputation for Ruby on Rails knowledge - several of us were recently contacted by eWeek.com for an article on Ruby on Rails 2.0.  Adam Bair and I both had some comments that they chose to run - check it out to see what we had to say:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.eweek.com/article2/0,1895,2234741,00.asp"&gt;Ruby on Rails 2.0 Users Give Thumbs Up&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2007-12-04:14</id>
    <published>2007-12-04T17:06:00Z</published>
    <updated>2007-12-04T17:07:11Z</updated>
    <link href="http://blog.betterendeavor.com/2007/12/4/actastaggableon-advanced-rails-tagging-plugin" rel="alternate" type="text/html" />
    <title>ActAsTaggableOn - Advanced Rails Tagging Plugin</title>
<content type="html">
            &lt;p&gt;One of my Intridea co-workers, Michael Bleigh, has put together an excellent tagging plugin, called ActsAsTaggableOn, which is meant to be a replacement for &lt;code&gt;acts_as_taggable_on_steriods&lt;/code&gt;.  ActsAsTaggableOn allows for multiple tag sets per model - for example, a user could have tag sets for sports, interests, music, etc.  You can then reference the tag lists as &lt;code&gt;user.sport_list&lt;/code&gt;, &lt;code&gt;user.interest_list&lt;/code&gt;, and &lt;code&gt;user.music_list&lt;/code&gt;, in addition to getting them all at once with &lt;code&gt;user.tag_list&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.intridea.com/2007/12/4/announcing-acts_as_taggable_on"&gt;Here's his blog post with more details&lt;/a&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2007-11-16:11</id>
    <published>2007-11-16T08:27:00Z</published>
    <updated>2007-11-16T08:28:52Z</updated>
    <link href="http://blog.betterendeavor.com/2007/11/16/rubyconf-2007" rel="alternate" type="text/html" />
    <title>RubyConf 2007</title>
<summary type="html">&lt;p&gt;The 2007 RubyConf was a couple of weeks ago (Nov 2nd-4th) in Charlotte, NC .  I attended with a few of my Intridea colleagues – Pradeep, Michael, and Jeremy. So this post is not all that timely, and I imagine anything worthwhile to say about RubyConf 2007 has already been blogged about to death.  Not only that, but I was part of a panel at last week’s &lt;a href="http://www.dcrug.org"&gt;&lt;span class="caps"&gt;DCRUG&lt;/span&gt;&lt;/a&gt; meeting, where we discussed RubyConf, so &lt;strong&gt;I&lt;/strong&gt; have already probably talked the topic to death.  And yet, still I write… must be the egotist in me that assumes my 2 subscribers want, nay – &lt;em&gt;need&lt;/em&gt;, to know there weren’t enough men’s restrooms, or there should have been more coffee on the last day.  Here on the Better Endeavor Blog, we get into the meat of things and tell you what’s &lt;em&gt;really&lt;/em&gt; important.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;The 2007 RubyConf was a couple of weeks ago (Nov 2nd-4th) in Charlotte, NC .  I attended with a few of my Intridea colleagues – Pradeep, Michael, and Jeremy. So this post is not all that timely, and I imagine anything worthwhile to say about RubyConf 2007 has already been blogged about to death.  Not only that, but I was part of a panel at last week’s &lt;a href="http://www.dcrug.org"&gt;&lt;span class="caps"&gt;DCRUG&lt;/span&gt;&lt;/a&gt; meeting, where we discussed RubyConf, so &lt;strong&gt;I&lt;/strong&gt; have already probably talked the topic to death.  And yet, still I write… must be the egotist in me that assumes my 2 subscribers want, nay – &lt;em&gt;need&lt;/em&gt;, to know there weren’t enough men’s restrooms, or there should have been more coffee on the last day.  Here on the Better Endeavor Blog, we get into the meat of things and tell you what’s &lt;em&gt;really&lt;/em&gt; important.&lt;/p&gt;
&lt;p&gt;The 2007 RubyConf was a couple of weeks ago (Nov 2nd-4th) in Charlotte, NC .  I attended with a few of my Intridea colleagues – Pradeep, Michael, and Jeremy. So this post is not all that timely, and I imagine anything worthwhile to say about RubyConf 2007 has already been blogged about to death.  Not only that, but I was part of a panel at last week’s &lt;a href="http://www.dcrug.org"&gt;&lt;span class="caps"&gt;DCRUG&lt;/span&gt;&lt;/a&gt; meeting, where we discussed RubyConf, so &lt;strong&gt;I&lt;/strong&gt; have already probably talked the topic to death.  And yet, still I write… must be the egotist in me that assumes my 2 subscribers want, nay – &lt;em&gt;need&lt;/em&gt;, to know there weren’t enough men’s restrooms, or there should have been more coffee on the last day.  Here on the Better Endeavor Blog, we get into the meat of things and tell you what’s &lt;em&gt;really&lt;/em&gt; important.&lt;/p&gt;


	&lt;h2&gt;Some Persistent Themes of RubyConf 2007&lt;/h2&gt;


	&lt;p&gt;1. &lt;strong&gt;Ruby != Rails&lt;/strong&gt;&lt;br /&gt;
There was an obvious push by the organizers of RubyConf to differentiate Ruby from Rails.  Rails is a runaway success and has helped propel Ruby into prominence, and yet there were no exclusively Rails-focused talks, and most only mentioned Rails as an ancillary portion of the presentation.  That said, a majority of the attendees were doing Rails development as opposed to non-Rails Ruby development.&lt;/p&gt;


	&lt;p&gt;2. &lt;strong&gt;RubyConf != RailsConf&lt;/strong&gt;&lt;br /&gt;
The organizers also seemed to want to differentiate their conference from RailsConf. From the small size to the (at times) disorganized schedule, RubyConf had a more “folksy” feeling (to quote Chad Fowler).&lt;/p&gt;


	&lt;p&gt;3. &lt;strong&gt;Alternate Ruby VMs&lt;/strong&gt;&lt;br /&gt;
The second morning was devoted to alternate Ruby &lt;span class="caps"&gt;VMS&lt;/span&gt; with people from &lt;a href="http://www.ironruby.net/"&gt;IronRuby&lt;/a&gt;, &lt;a href="http://jruby.codehaus.org/"&gt;jRuby&lt;/a&gt;, and &lt;a href="http://rubini.us/"&gt;Rubinius&lt;/a&gt; each talking for an hour about their implementation.&lt;/p&gt;


	&lt;p&gt;The Rubinius talk was by far the most interesting – instead of talking about high-level technical details, Evan Phoenix (the main Rubinius dude) compared lines of Ruby code in each of the projects.  IronRuby, jRuby, and Matz’s Ruby each had less than 100 lines of Ruby code, with thousands of lines of other stuff (C#, Java, or C).  Rubinius, on the other hand, was approximately half Ruby and half C, and steadily tilting more towards the Ruby side.  His point was that a Ruby programmer can more easily contribute to a project developed in their language of choice.&lt;/p&gt;


	&lt;p&gt;4. &lt;strong&gt;Testing&lt;/strong&gt;&lt;br /&gt;
So in case you haven’t heard – all the cool kids test, and so should you.  And most of the super-cool kids are using Rspec for testing.  I’m neither cool nor super-cool yet, but I’m working on that.  One point that was given several times in the conference was that testing matters much more than which testing framework you choose.&lt;/p&gt;


	&lt;h4&gt;Quibbling, Grousing, Bellyaching, and Nitpicking&lt;br /&gt; (or Suggestions for Next Year’s RubyConf)&lt;/h4&gt;


	&lt;ul&gt;
	&lt;li&gt;The &lt;a href="http://www.rubyconf.org"&gt;RubyConf website&lt;/a&gt; was oddly lacking in details – especially for a technical conference.  Most conspicuous in its absence was the address of the hotel where the conference was being held.  I would have hoped for location information, abstracts, sponsorship opportunities, and additional information.  Maybe next year a conference wiki so intrepid conference goers could provide some of the content?&lt;/li&gt;
		&lt;li&gt;The usual slow wifi complaints – this doesn’t need to be explained.&lt;/li&gt;
		&lt;li&gt;There were some very unfortunate room assignments – one time slot in particular was standing-room-only in the smaller room, while the large room was sparsely (at best) attended.  I definitely understand it can be difficult to predetermine attendance, and this was the first year with multiple tracks.  Perhaps a survey or recommending the use of a &lt;a href="http://myconfplan.com/"&gt;conference attendee scheduling tool&lt;/a&gt;?&lt;/li&gt;
		&lt;li&gt;Refreshments – on the last day there were no refreshments available after lunch.  Since the close-by Starbucks was closed, that left a bunch of programmers with nothing to drink, and worse yet, no caffeine!&lt;/li&gt;
		&lt;li&gt;Breaks – I really could have used more of a mid-morning and mid-afternoon break.  Most of the talks were good, but sitting and listening for hours on end is tiring!&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h4&gt;Praises, Accolades, Commendations, and Flattery&lt;br /&gt; (or I Really Did Have a Great Time)&lt;/h4&gt;


	&lt;ul&gt;
	&lt;li&gt;Despite the lack of Rails topics, there were a wide-range of talk topics.  There were talks on everything from Optimizing C Extensions, to What Makes Beautiful Code?, to &lt;span class="caps"&gt;VOIP&lt;/span&gt;, to Rspec.  &lt;/li&gt;
		&lt;li&gt;Good city – from the bits of it that I saw, Charlotte is a really nice city.  There was little traffic, the streets were clean, and there seemed like a lot to do. &lt;/li&gt;
		&lt;li&gt;Good venue – the 3 ballrooms we used at the Omni worked well for all-in-one-room talks in the mornings, and two different talks in the afternoons.  There were also many hotels and restaurants within walking distance.&lt;/li&gt;
		&lt;li&gt;Great people – I meet a lot of kickass people at RubyConf, and especially had a great time hanging out and tossing ideas back and forth with my new Intridea co-workers.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h4&gt;Matz&lt;/h4&gt;


	&lt;p&gt;Matz ( for the unwashed masses – &lt;a href="http://en.wikipedia.org/wiki/Yukihiro_Matsumoto"&gt;Yukihiro Matsumoto&lt;/a&gt;, the creator and chief designer of Ruby ) was a good sport and agreed to have a photo take with me and my Intridea peeps.  Thanks (for the photo, and more importantly for Ruby)!&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.betterendeavor.com/assets/2007/11/16/intridea_with_matz.jpg"&gt;&lt;/p&gt;


	&lt;p&gt;(From left to right – Pradeep Elankumaran, Matz, me, and Michael Bleigh)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2007-10-31:8</id>
    <published>2007-10-31T07:50:00Z</published>
    <updated>2007-10-31T07:51:12Z</updated>
    <link href="http://blog.betterendeavor.com/2007/10/31/amazon-web-services-startup-challenge" rel="alternate" type="text/html" />
    <title>Amazon Web Services Startup Challenge</title>
<content type="html">
            &lt;p&gt;&lt;a href="http://intridea.com"&gt;Intridea&lt;/a&gt; has officially entered three products into the &lt;a href="http://aws.amazon.com/startupchallenge"&gt;Amazon Web Services (AWS) Start-Up Challenge&lt;/a&gt;. We're very excited about the products, all of which should be launching on November 5th.&lt;/p&gt;

&lt;h2&gt;&lt;a href="http://scalr.intridea.com"&gt;Scalr&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Scalr is a complete turn-key hosting solution that’s self-curing and self-scaling. It based on EC2 and provides an easy, web-based interface for setting up and managing your servers.&lt;/p&gt;

&lt;h2&gt;&lt;a href="http://mediaplug.intridea.com"&gt;MediaPlug&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;With MediaPlug, website operators can add social media (images, audio, and video) to a website in a fraction of the time, at a fraction of the cost, and without the need to learn complex video transcoding systems. In addition, uploads are offloaded to MediaPlug servers to reduce the burden on the customer website.&lt;/p&gt;

&lt;h2&gt;&lt;a href="http://socnet.intridea.com"&gt;SocNet&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SocNet is built on Intridea’s MediaPlug and Scalr products, and allows customers to quickly create a social networking site that can scale to millions of users easily.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2007-10-30:9</id>
    <published>2007-10-30T05:52:00Z</published>
    <updated>2007-10-31T06:56:01Z</updated>
    <link href="http://blog.betterendeavor.com/2007/10/30/startup-weekend-dc-suggestions" rel="alternate" type="text/html" />
    <title>Startup Weekend DC - Suggestions For Future Dev Teams</title>
<summary type="html">&lt;p&gt;Startup Weekend DC has come and gone – in 54 hours we envisioned, designed, developed, and deployed &lt;a href="http://holaneighbor.com"&gt;HolaNeightbor&lt;/a&gt;. We had a large development team full of talented programmers, and I had a great time working with them all.  I’ve had some time to think about the experience – what went right, what went wrong, and what I’d do differently.  So, without further adieu, here are my:&lt;/p&gt;

	&lt;h2&gt;Suggestions for future Startup Weekend development teams&lt;/h2&gt;</summary><content type="html">
            &lt;p&gt;Startup Weekend DC has come and gone – in 54 hours we envisioned, designed, developed, and deployed &lt;a href="http://holaneighbor.com"&gt;HolaNeightbor&lt;/a&gt;. We had a large development team full of talented programmers, and I had a great time working with them all.  I’ve had some time to think about the experience – what went right, what went wrong, and what I’d do differently.  So, without further adieu, here are my:&lt;/p&gt;

	&lt;h2&gt;Suggestions for future Startup Weekend development teams&lt;/h2&gt;
&lt;p&gt;Startup Weekend DC has come and gone – in 54 hours we envisioned, designed, developed, and deployed &lt;a href="http://holaneighbor.com"&gt;HolaNeightbor&lt;/a&gt;. We had a large development team full of talented programmers, and I had a great time working with them all.  I’ve had some time to think about the experience – what went right, what went wrong, and what I’d do differently.  So, without further adieu, here are my:&lt;/p&gt;

	&lt;h2&gt;Suggestions for future Startup Weekend development teams&lt;/h2&gt;


	&lt;ul&gt;
	&lt;li&gt;Send instructions out to all developers &lt;strong&gt;prior to the weekend&lt;/strong&gt; on how to properly install any required software – in our case, subversion and Ruby on Rails.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Find a production server &lt;strong&gt;before the weekend starts&lt;/strong&gt;, make sure you have someone experienced in deployment, and deploy to a test environment as early as possible.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Have an &lt;strong&gt;design integration team&lt;/strong&gt;.  This team would work with the design group to create &lt;span class="caps"&gt;XHTML&lt;/span&gt;/CSS mockups, and then with the development team to incorporate the designs.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;If possible, &lt;strong&gt;decide on a limited set of &lt;span class="caps"&gt;CSS&lt;/span&gt; selectors early on&lt;/strong&gt; that developers can use while creating their views, and the designers can then use to apply formatting.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Don’t get too caught up in “the right way to do it” – &lt;strong&gt;there is plenty of time &lt;span class="caps"&gt;AFTER&lt;/span&gt; the weekend to refactor code&lt;/strong&gt;.  We made an early decision to develop using &lt;span class="caps"&gt;REST&lt;/span&gt;, which backfired a bit, since not everyone was up to speed on RESTful routes.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;If you have a large group of developers, &lt;strong&gt;pair-program&lt;/strong&gt;.  There are only so many chunks you can break a project into, so assigning a two-person team to a task makes a lot of sense.  Also, errors tend to accumulate in conjunction with lack of sleep – an extra set of eyes can avoid typos and other silly mistakes.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Use plugins, but only if someone has used them before.  &lt;strong&gt;Why re-invent the wheel?&lt;/strong&gt; – a lot of functionality is out there, free for the taking.  If you do use a plugin, however, make sure you have someone who has used it before and can configure it correctly.  A lot of extra time can be spent trying to make a plugin work if you don’t know what you’re doing.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Do the simplest thing possible first.&lt;/strong&gt;  Get your basic functionality in place first, &lt;span class="caps"&gt;THEN&lt;/span&gt; shoot for the moon.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Take a break.&lt;/strong&gt;  Make sure you get up every hour or so for a few minutes.  Every few hours take a 15 minute break.  Be sure to stretch – especially your shoulders.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Get some sleep.&lt;/strong&gt;  We didn’t work past 1:00am any of the nights, and I think that worked well for us.  If you do decide to go the crazy route of little sleep, try drinking an energy drink followed immediately by a 20-minute nap – that’s just enough time to freshen you up while not making you groggy.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Enjoy yourself!&lt;/strong&gt; StartupWeekend is fun – you’re spending the weekend with a bunch of other sharp developers, hacking together a cool product.  Though starting up a company is neat, half of the coolness of the a Startup Weekend is the people you meet.&lt;/li&gt;
	&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2007-10-29:7</id>
    <published>2007-10-29T07:04:00Z</published>
    <updated>2007-10-31T06:54:26Z</updated>
    <link href="http://blog.betterendeavor.com/2007/10/29/startup-weekend-dc-day-3" rel="alternate" type="text/html" />
    <title>Startup Weekend DC - Day 3</title>
<summary type="html">&lt;p&gt;Day 3 of Startup Weekend was a bit of a blur, contributed to by a lack of sleep combined with a rushed deadline.  Early in the day, things were looking positive for a midnight release with a significant batch of features.  We were continuing to add and improve upon features, and designers were working on getting mockups of key pages together.  Unfortunately, things did not continue to go smoothly throughout the day.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Day 3 of Startup Weekend was a bit of a blur, contributed to by a lack of sleep combined with a rushed deadline.  Early in the day, things were looking positive for a midnight release with a significant batch of features.  We were continuing to add and improve upon features, and designers were working on getting mockups of key pages together.  Unfortunately, things did not continue to go smoothly throughout the day.&lt;/p&gt;
&lt;p&gt;Day 3 of Startup Weekend was a bit of a blur, contributed to by a lack of sleep combined with a rushed deadline.  Early in the day, things were looking positive for a midnight release with a significant batch of features.  We were continuing to add and improve upon features, and designers were working on getting mockups of key pages together.  Unfortunately, things did not continue to go smoothly throughout the day.&lt;/p&gt;

&lt;h2&gt;Funky Problems&lt;/h2&gt;

&lt;p&gt;We ran into a couple of odd Rails problems - first we had trouble with the Rails &lt;code&gt;image_tag&lt;/code&gt; method.&lt;/p&gt;

&lt;pre&gt;&amp;lt;%= image_tag @photo.public_filename %&gt;&lt;/pre&gt;

&lt;p&gt;Running the above would result in the following error&lt;/p&gt;

&lt;pre&gt;You have a nil object when you didn't expect it!&lt;br /&gt;The error occurred while evaluating nil.to_sym&lt;/pre&gt;

&lt;p&gt;After spending quite some time trying to debug the error, we eventually gave up and hard-coded @photo.public_filename into the &lt;code&gt;&amp;lt;img src=""&amp;gt;&lt;/code&gt; tag.&lt;/p&gt;

&lt;p&gt;The second strange problem was with the restful_authentication.  Though I couldn't replicate the error on my box, other team members were receiving errors about a frozen object.&lt;/p&gt;

&lt;p&gt;We were, unfortunately, unable to resolve either problem and ended up writing some hackish code to make things work.   These two issues ate up time that could have been spent on important features.&lt;/p&gt;

&lt;h2&gt;Incorporating the Design&lt;/h2&gt;

&lt;p&gt;On Saturday, the designers told us they'd be able to code up the XHTML/CSS  so we could concentrate on delivering features.  The design team, however, was quite small compared to the development team, and just didn't have the manpower to deliver on that goal. Throughout the day the design team worked on creating mockups of key pages for us.  The mockups looked outstanding, but, unfortunately, turned out to be graphical, rather than XHTML/CSS mockups, which meant we had to slice them up ourselves.  Several developers took a turn at working on the CSS, and a homepage and inner template were pieced together.&lt;/p&gt;

&lt;h2&gt;Shaving Features To Make Launch&lt;/h2&gt;

&lt;p&gt;As midnight loomed, it became obvious that we'd be unable to launch with a full feature set as planned.  Strange rails problems, along with having to incorporate the CSS, just sapped too much of our development strength.  To make matters worse, we didn't receive access to our production server until mid-day, which meant one developer had to spend most of his day dealing with server-related issues.  As a result, we began cutting feature to try launch with a limited feature set.  Anything that was particularly unstable was the first to go, and then features that were only partially implemented and easily hidden.&lt;/p&gt;

&lt;p&gt;Narrowing our focus to the essential site functions helped get us back on track.&lt;/p&gt;

&lt;h2&gt;A Released (if Flawed) Product&lt;/h2&gt;

&lt;p&gt;At 11:57pm, we had made our final commits, deployed the app, and &lt;a href="http://holaneighbor.com"&gt;HolaNeighbor&lt;/a&gt; was launched to many cheers from those still hanging around.  Champagne was poured and there was much celebration... until someone tried to sign up and was promptly greeted by a Rails error.  It turns out migrations had not been run and the database was not working.  That was easily fixed, and we could call it a weekend.&lt;/p&gt;

&lt;h2&gt;Overall thoughts for day 3:&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Better communication between development and design team could have resulted in incorporation of the designs.  The design team came up with some great looking concepts, but there just wasn't time to implement them.&lt;/li&gt;
&lt;li&gt;Overall, I had a great time - I learned some new coding tricks, made some new friends, and became a co-founder of a company.  Not bad for 54 hours!  I'll definitely do StartupWeekend again if it comes to the DC area.&lt;/li&gt;
&lt;li&gt;A special thanks to all those involved with Startup Weekend - the weekend was a major success!&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2007-10-28:6</id>
    <published>2007-10-28T07:06:00Z</published>
    <updated>2007-10-31T06:54:41Z</updated>
    <link href="http://blog.betterendeavor.com/2007/10/28/startup-weekend-dc-day-2" rel="alternate" type="text/html" />
    <title>Startup Weekend DC - Day 2</title>
<summary type="html">&lt;p&gt;Day 2 of Startup Weekend started out with a surprise. The night before a consensus had been built by a small group, and two members were going to combine those ideas into a 5-7 page powerpoint.  Apparently they had their own ideas, because what was agreed upon by the small group, and what was presented were far apart.&amp;lt;/p</summary><content type="html">
            &lt;p&gt;Day 2 of Startup Weekend started out with a surprise. The night before a consensus had been built by a small group, and two members were going to combine those ideas into a 5-7 page powerpoint.  Apparently they had their own ideas, because what was agreed upon by the small group, and what was presented were far apart.&lt;/p&gt;&lt;h2&gt;Morning Surprise&lt;/h2&gt;
&lt;p&gt;Day 2 of Startup Weekend started out with a surprise. The night before a consensus had been built by a small group, and two members were going to combine those ideas into a 5-7 page powerpoint.  Apparently they had their own ideas, because what was agreed upon by the small group, and what was presented were far apart.&lt;/p&gt;

&lt;p&gt;The small group had agreed to focus on building social networks for community organization, and to focus exclusively on condo associations for the weekend.  One of the main benefits of this approach was security - since user accounts would be created by a network admin (probably a condo board member), users could be assured that everyone in the group was an actual resident of the community.  This approach also gave us a target group to sell the application to .  We came up with a simple, but useful set of features based around the idea of 3 main type of information - People, Resources, and Notices.&lt;/p&gt;

&lt;p&gt;What was presented did somewhat resemble what had been agreed upon - a location-based social network.  Two key elements, however, had changed (along with several smaller details):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Instead of focusing tightly on community organizations, a social network could now be created by anyone that wants to.  The network can be defined geographically using zip codes or by drawing a polygon on a map (this option was widely regarded by the dev team as not doable in the weekend.)&lt;/li&gt;
&lt;li&gt;Instead of belonging to only one network based on belonging to a community organization , users could now belong to many networks, with a central page aggregating information from all networks&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After this presentation I was starting to feel discouraged - I wasn't really interested in building a new Facebook, which is what this seemed to be moving towards.  I was also bothered that two people had hijacked the whole project and basically made it what they wanted it to be, regardless of the consensus built by the small group the night before.  This discouragement only grew as the User Experience team came up with their own idea of what was being built.  Two hours into the second day, with no code being written, I had serious doubts that we'd be able to come together, and was considering packing it up and heading home.&lt;/p&gt;

&lt;h2&gt;Afternoon Delight&lt;/h2&gt;
&lt;p&gt;Once we actually started some coding, things started to improve.  Reps from UX and Dev got together and hammered out a features list that both groups could agree on.  For the first part of the day we worked on finalizing a data schema, writing specifications for models, and then starting to code those models up.  The second half of the day we started to work on controllers - adding in small pieces of functionality at a time.  The Design team was also working hard during this time, and was able to hand the design to a developer for conversion to XHTML/CSS.&lt;/p&gt;

&lt;p&gt;We were expected to present a prototype of what we had at 9:00pm - and we would have met that if not for crippling network issues that left us unable to make subversion commits.  After a drawn out process of doing commits one at a time, some of the design was integrated and we had some basic functionality to present to the group around 9:45.&lt;/p&gt;

&lt;h2&gt;Midnight Coding&lt;/h2&gt;
&lt;p&gt;Though I was not all that impressed with what we accomplished during the day, the demo was a major success.  We were only able to show some basic things like creating an account, logging in, uploading photos, and some basic entry of resource, but the other teams seemed extremely pleased with what we had so far.  The founder of Startup Weekend, Andrew Hyde, who has been at each of the weekends so far, said we showed more, by far, on Saturday night than any of the other weekends.  Aw shucks, you must say that to all the development teams!&lt;/p&gt;

&lt;p&gt;After the demo, after the network issues were resolved, and after a lot of people left, a core team of developers were left, and we really cranked through a lot in a short period of time.  There is still a long way to go tomorrow, but I'm confident we can launch with a reasonable set of features by midnight Sunday.&lt;/p&gt;

&lt;h2&gt;Overall thoughts for day 2:&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;There are a lot of very strong personalities in the groups, and early in the day there was a lot of head-butting, espcially between Development and User Experience.&lt;/li&gt;
&lt;li&gt;I don't think that breaking up into such tightly defined groups early on - Development, Design, User Experience, Marketing, Business Develpment - is that great of an idea.  Many people have overlapping areas of interest and could have valuable input to give to several groups.  I don't claim to have a perfect solution, but I think having at least one representative from every group embedded in the other groups could foster better communication.&lt;/li&gt;
&lt;li&gt;The dev team is so large that we have trouble communicating and getting stuff done when we're all together.  It wasn't until most people left and only 6-10 developers were left that we really hit our stride.&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2007-10-27:5</id>
    <published>2007-10-27T06:19:00Z</published>
    <updated>2007-10-31T06:54:59Z</updated>
    <link href="http://blog.betterendeavor.com/2007/10/27/startup-weekend-dc-day-1" rel="alternate" type="text/html" />
    <title>Startup Weekend DC - Day 1</title>
<summary type="html">&lt;p&gt;This weekend I'm participating in &lt;a href="http://dc.startupweekend.com/"&gt;Startup Weekend DC&lt;/a&gt;, which is, to quote the blog - "an idea, an experiment, a chance to gather the tech community and create a company over one jam packed weekend."  I just returned from the first day...&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;This weekend I'm participating in &lt;a href="http://dc.startupweekend.com/"&gt;Startup Weekend DC&lt;/a&gt;, which is, to quote the blog - "an idea, an experiment, a chance to gather the tech community and create a company over one jam packed weekend."  I just returned from the first day...&lt;/p&gt;
&lt;p&gt;This weekend I'm participating in &lt;a href="http://dc.startupweekend.com/"&gt;Startup Weekend DC&lt;/a&gt;, which is, to quote the blog - "an idea, an experiment, a chance to gather the tech community and create a company over one jam packed weekend."  I just returned from the first day.&lt;/p&gt;

&lt;h2&gt;Choosing An Idea&lt;/h2&gt;

&lt;p&gt;Our first goal was for the day was to choose the idea for our startup.  After about 3 hours of several rounds of voting and group discussions, we settled on Social Networking for Condos.  The idea was to build a social networking application that condo associations could use to help foster communications between residents.  I can't say I was too jazzed about this idea, since I think the whole social networking thing is overdone.  That said, it is a good application for the large team of developers we have (30+), since there are definite, concrete sections of functionality that can be broken down and divided among teams.&lt;/p&gt;

&lt;p&gt;After making the decision, we broke into teams by area of expertise (Development, Creative/Design, User Experience, and Marketing/Business Development.)  In my group - the developers - we quickly decided to use Ruby on Rails since a majority of people were familiar.  After finding out that a box was being provided for development, we also decided on using Apache/Mongrel/MySQL as the rest of the stack, and subversion for source control.&lt;/p&gt;

&lt;h2&gt;Defining the Project&lt;/h2&gt;

&lt;p&gt;In theory, each group was supposed to focus on their niche and then come back together with  something to present to the other groups.  This is where things started to break down.  Each different group had their own idea of what the site was going to be, who the target customer would be, revenue streams, etc.  After a great deal of debate between the groups, a smaller group of us from each team met to come to agreement on the most very basic functionality.  After even more debate among the smaller group, we could all agree that we were building &lt;i&gt;a social networking app for condos that would help solve condo-related communication problems.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;This pretty basic idea was presented back to the whole group.  More discussion followed about specific features, and people were still pulling in several different directions.  The option to completely scrap the idea and start with something new was presented, voted on, and scrapped.  It seemed to me that the organizer was getting very frustrated at our lack of progress at this point.  It was decided that the small group would barricade ourselves back into the room until we came up with a vision for the product.&lt;/p&gt;

&lt;p&gt;Yet more discussion and debate followed, and we eventually settled on some base pieces of functionality that we could all (for the most part) agree upon.  Two people volunteered to stay and put the thoughts and ideas together into a short PowerPoint to present Saturday morning, and the rest of us packed up to head home.&lt;/p&gt;

&lt;h2&gt;Overall thoughts for the first day:&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Though I wasn't really excited about the Condo Social Networking idea, I quickly started to see how such a product could be useful, and potentially marketable.&lt;/li&gt;
&lt;li&gt;I was surprised how many directions the different groups took the idea of a social networking app.  Social networking apps are pretty well understood at this point - I didn't think it would be difficult to all agree on at least a base level of functionality.&lt;/li&gt;
&lt;li&gt;Sometime during one of the endless rounds of discussion someone said that people needed to make sure they were arguing to attain consensus, rather than arguing to win the argument.  He said arguing to win an argument seems really prevalent in DC - can't say I disagree with that!&lt;/li&gt;
&lt;li&gt;I'm a bit worried about the size of the development team.  I think, even with using a pair-programming approach, we're going to be stepping on each others' toes quite frequently.&lt;/li&gt;
&lt;li&gt;That said, I can't wait to get done with this idea-generation phase and actually get into some coding!&lt;/li&gt;
&lt;li&gt;I'm hoping to mainly fill a testing role, and getting to use some of the rspec fu that I learned at the Pragmatic Studio last week.&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2007-10-20:4</id>
    <published>2007-10-20T03:30:00Z</published>
    <updated>2007-10-27T05:35:07Z</updated>
    <link href="http://blog.betterendeavor.com/2007/10/20/tdd-with-rails-studio" rel="alternate" type="text/html" />
    <title>Test-Driven Development with Rails Studio</title>
<content type="html">
            &lt;p&gt;I recently returned from the Pragmatic Studio's &lt;a href="http://pragmaticstudio.com/testing-rails/"&gt;Test-Drive Development with Rails&lt;/a&gt; studio.  I've been to several Pragmatic Studios, and have come to expect very high quality instructions from people who know what they're doing and are actually using the stuff they are teaching - the TDD studio definitely lived up to my expectations.  The instructors were Joe O'Brien and Jim Weirich (of rake, rubygems, and flexmock fame).&lt;/p&gt;

&lt;p&gt;I'm a bit ashamed to admit I have not been much of a tester in my Rails development thus far.  I've always recognized the value behind testing, but just hadn't had the impetus to really get me going.  The main reason for me attending this studio was to provide the kick in the ass to get me started with testing... and it succeeded.&lt;/p&gt;

&lt;p&gt;The first two days covered traditional Rails unit and functional testing, while the third covered rspec.  The best parts, in my opinion, were the pair-programming live code demos put on my Joe and Jim.  In the demos, Joe would write the test while Jim would implement the code for that test.  It really cemented in my mind the idea behind Red (initial failing test), Green (passing test), Refactor (cleanup and refactor code).&lt;/p&gt;

&lt;p&gt;We also covered some other really cool technologies like cruisecontrol.rb (a tool for continuous integration) and Selenium and FireWatir (tools for automating testing in the browser).&lt;/p&gt;

&lt;p&gt;Now that I've seen some real-life TDD, I'm looking forward to incorporating it into my own development practices.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2007-10-16:3</id>
    <published>2007-10-16T00:32:00Z</published>
    <updated>2007-10-30T16:34:46Z</updated>
    <link href="http://blog.betterendeavor.com/2007/10/16/rails-rumble" rel="alternate" type="text/html" />
    <title>Rails Rumble</title>
<summary type="html">&lt;p&gt;Last month I competed in the first annual &lt;a href="http://railsrumble.com"&gt;Rails Rumble&lt;/a&gt;, a Ruby on Rails coding competition.  The idea behind the competition was to design, develop, and deploy a fully-functional Rails application over the course of a weekend - 48 hours.  Teams could consist of up to 4 people, but I chose to go solo.  Why?  Probably because I'm a little bit nuts...&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Last month I competed in the first annual &lt;a href="http://railsrumble.com"&gt;Rails Rumble&lt;/a&gt;, a Ruby on Rails coding competition.  The idea behind the competition was to design, develop, and deploy a fully-functional Rails application over the course of a weekend - 48 hours.  Teams could consist of up to 4 people, but I chose to go solo.  Why?  Probably because I'm a little bit nuts...&lt;/p&gt;
&lt;p&gt;Last month I competed in the first annual &lt;a href="http://railsrumble.com"&gt;Rails Rumble&lt;/a&gt;, a Ruby on Rails coding competition.  The idea behind the competition was to design, develop, and deploy a fully-functional Rails application over the course of a weekend - 48 hours.  Teams could consist of up to 4 people, but I chose to go solo.  Why?  Probably because I'm a little bit nuts. &lt;/p&gt;

&lt;p&gt;My entry was &lt;a href="http://yourpetrecords.com"&gt;Your Pet Records&lt;/a&gt; - an online repository for pet health information.  This isn't a site that is too useful to the general public, but I could see it taking off in a niche market if presented correctly.  The site allows users to create an entry for each of their pets and then add health information for their pets - vet visits, allergies, medications, and the like.  The user can then create printable PDF sheets for pet sitters/walkers or if they move to a new vet.  If developed futher, vets would be given logins and the ability to update information for any pets they saw in their practice.&lt;/p&gt;

&lt;p&gt;The competition was a lot of fun. I got to play around with some new tools - like &lt;a href="http://www.deprec.org/"&gt;deprec&lt;/a&gt; for setting up the Rails stack.  I also got to jump around from role to role - sysadmin installing a required library one minute, to designer tweaking some css the next minute, to developer coding up some new functionality the next.  Of course that meant I probably didn't do too stellar a job on any one piece!&lt;/p&gt;

&lt;p&gt;Some of the things I noticed as the competition went on, and my lack of sleep accumulated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Browser Testing&lt;/strong&gt; - I never really did test the site in anything other than Firefox on Mac until 11:30pm on Sunday.  It was one of those tasks I kept putting off, figuring I'd get to it eventually.  As a result, my site is broken in IE7.  It looks completely fine - except for the minor glitch of not having a login box!  Oh well - less learned - it pays to browser test early!&lt;/li&gt;
	
&lt;li&gt;&lt;strong&gt;Subversion&lt;/strong&gt; - at the start of the competition, my svn commit messages were quite detailed - "Added validations to pet model and enhanced error messages on pet creations page"  - as the competition wore on, my messages eventally turned into messages like "changed some stuff"  This would probably be more detrimental on a larger team. &lt;/li&gt;

&lt;li&gt;&lt;strong&gt;CSS code&lt;/strong&gt; - as I hacked away at the design of the app, I found myself more and more writing inline CSS code instead of extracting it into an external CSS file.  I think this was because I didn't have a whole lot of time to plan out the CSS.&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;IRC / other competitors&lt;/strong&gt; - it was amazing how helpful people were on the #railsrumble IRC channel.  Even though we were all competing with each other, people were very quick to offer suggestions and links to resources whenever someone else had a problem.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Results were announced at Ruby East - I didn't place in any of the categories, but was happy with how my weekend project turned out - and I'd definitely do it again next year.  Hats off to the winners and honorable mentions - there were some really great apps out there!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.betterendeavor.com/">
    <author>
      <name>chris</name>
    </author>
    <id>tag:blog.betterendeavor.com,2007-10-12:2</id>
    <published>2007-10-12T02:00:00Z</published>
    <updated>2007-10-26T04:35:19Z</updated>
    <link href="http://blog.betterendeavor.com/2007/10/12/new-beginnings" rel="alternate" type="text/html" />
    <title>New Beginnings</title>
<content type="html">
            &lt;p&gt;Hi, I'm Chris, your friendly neighborhood Ruby on Rails programmer.  For the last 10 years I've moonlighted as a freelance web developer, spending my evening and weekends coding and designing, while also holding down full-time jobs.  Most recently I've been employed by George Washington University, where I've worked full-time as a web developer for the past 2.5 years.  Today was my last day at GW, and is also my last day as moonlighting freelance developer.&lt;/p&gt;

&lt;p&gt;Why the big changes?  I've accepted a position at &lt;a href="http://www.intridea.com"&gt;Intridea&lt;/a&gt;, a DC-based Ruby on Rails development shop.  Though I enjoyed my time at GW, and my many late nights of coding for my freelance business, I'm really looking forward to focusing all my efforts toward building Intridea.  I've already been chatting with some of the guys there, and I know I'm going to learn a lot, because they're all really sharp.  I'm also going to be able to play with cutting-edge Rails stuff that I've wanted to take for a whirl - stuff like &lt;a href="http://www.ujs4rails.com/"&gt;unobtrusive javascript&lt;/a&gt;, &lt;a href="http://aws.amazon.com"&gt;Amazon Web Services&lt;/a&gt;, &lt;a href="http://haml.hamptoncatlin.com/docs/sass"&gt;sass&lt;/a&gt;, and &lt;a href="http://rspec.rubyforge.org/"&gt;Rspec&lt;/a&gt; (among others).&lt;/p&gt;

&lt;p&gt;Making the leap is helping to kickstart a few other projects that I've been putting off for a while.  This blog, for one.   I've been meaning to put this blog together for almost a year now, constantly having ideas that made me say "hey, I should blog about that."  Now I have a place to do that.  I'll be cross-posting some of the more technical articles on the Intridea blog, but some of the content here will be unique.  I hope this blog will eventually be a good place for Rails tips, tricks, and wisdom, though you'll have to be the judge of that! &lt;/p&gt;
          </content>  </entry>
</feed>
