<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Tim Bull &#187; rails</title>
	<atom:link href="http://timbull.com/feed/?tag=rails" rel="self" type="application/rss+xml" />
	<link>http://timbull.com</link>
	<description>This WordPress.com site is the cat’s pajamas</description>
	<lastBuildDate>Mon, 25 Mar 2013 19:17:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='timbull.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Tim Bull &#187; rails</title>
		<link>http://timbull.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://timbull.com/osd.xml" title="Tim Bull" />
	<atom:link rel='hub' href='http://timbull.com/?pushpress=hub'/>
		<item>
		<title>Reflections on startup life: Week 56</title>
		<link>http://timbull.com/2010/12/12/reflections-on-startup-life-week-56/</link>
		<comments>http://timbull.com/2010/12/12/reflections-on-startup-life-week-56/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 21:26:41 +0000</pubDate>
		<dc:creator>Tim Bull</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[trunkly]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://timbull.com/reflections-on-startup-life-week-56</guid>
		<description><![CDATA[When I consider that last week I touched on 5 out of 5 projects, started learning a new language and framework, plus spoke at the Australian Language Technology Association conference on Thursday afternoon, I think I know why I feel like I'm doing...<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timbull.com&#038;blog=49080029&#038;post=36159717&#038;subd=timbull001&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>When I consider that last week I touched on 5 out of 5 projects, started learning a new language and framework, plus spoke at the Australian Language Technology Association conference on Thursday afternoon, I think I know why I feel like I&#039;m doing about 10 jobs.
<p />
<div>The vast majority of the week (40+) was on the new Rails Challenge project.  This has been interesting, not least because as we&#039;ve tracked through it, it&#039;s quickly apparent (as we expected to some extent) that it&#039;s less and less about technology and more and more about scope, documentaton, design, architecture and so forth.  While in theory I&#039;ve always understood this, it&#039;s a neat trick to try something completely new and see how far that gets you.</div>
<p />
<div>For Tribalytic we discovered it&#039;s allergic to Christmas.  More specifically a carefully constructed search term will crash a process and grind the server to a halt (no, I&#039;m not telling you what it is and no, I don&#039;t want you to try find more!).  Will be fixed shortly and in any case, it&#039;s only happened a couple of times in 6 months.</div>
<p />
<div>We are feeling comfortable enough with Trunk.ly now that we added a wide range of new users.  We launched to a new round of 150 beta testers, which if they all sign up (unlikely), will take us to close to 200 users testing it for us.</div>
<p />
<div>The best thing about this time of year though is all the end of year catch up and parties.  I&#039;ve made some great new friends this year and it&#039;s fun to catch up with them all, enjoy a drink or two and share thoughts on what&#039;s been a crazy (but fun) year.</div>
<p />
<div><i>Highlights</i></div>
<div>
<ul>
<li>New Trunk.ly users invited on board.</li>
<li>Exploring and learning Ruby and Rails.</li>
<li>Speaking at ALTA and networking with several academics who heavily research and develop the type of tools we &quot;plug in&quot;.</li>
</ul>
</div>
<div><i>Lessons Learned</i></div>
<div>
<ul>
<li>If you&#039;re going to be body-shopping, you need to track your time. Yes, we&#039;ve started some basic time-sheets so we can measure how much work we are putting into contracts.</li>
<li>Sometimes those things you &quot;put off&quot; because they&#039;ll take a long time actually don&#039;t.  Could of saved a heap of effort this year with some basic integration work that I did manually for far too long.</li>
</ul>
</div>
<div><i>Goals this week</i></div>
<div>
<ul>
<li>Deliver a working Rails prototype.</li>
</ul>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbull001.wordpress.com/36159717/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbull001.wordpress.com/36159717/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timbull.com&#038;blog=49080029&#038;post=36159717&#038;subd=timbull001&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://timbull.com/2010/12/12/reflections-on-startup-life-week-56/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/45bce8c85db792fa9373bee604141b29?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tbull001</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails Challenge: Day 2</title>
		<link>http://timbull.com/2010/12/07/rails-challenge-day-2/</link>
		<comments>http://timbull.com/2010/12/07/rails-challenge-day-2/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 23:15:06 +0000</pubDate>
		<dc:creator>Tim Bull</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://timbull.com/rails-challenge-day-2</guid>
		<description><![CDATA[I’m loving this “radical transperancy” experiment. Already I’ve had so many offers of support and great advice from RoR people around Melbourne and elsewhere, it’s made it worthwhile for day 1. Morning admin, reading and catch up took a while thou...<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timbull.com&#038;blog=49080029&#038;post=35662977&#038;subd=timbull001&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&rsquo;m loving this &ldquo;radical transperancy&rdquo; experiment.  Already I&rsquo;ve had so manyoffers of support and great advice from RoR people around Melbourne andelsewhere, it&rsquo;s made it worthwhile for day 1. Morning admin, reading andcatch up took a while though! Decks not clear to start until 11AM.</p>
<p>11AM &ndash; After reflecting overnight, I think Rails is muddying the picture forme at the moment &ndash; what I really need is a Ruby GEM which I&rsquo;m going toimplement with Fibres that handles the basic streaming.  Downloaded thisbasic Rails framework which wraps a Twitter REST client.<a href="https://github.com/jnunemaker/twitter-app/">https://github.com/jnunemaker/twitter-app/</a></p>
<p>11.30 &ndash; Registered a new app for testing, implemented the keys into the testapp and gave it a run!</p>
<p>1.40PM &ndash; Lots of fail.  Errors and no idea why.  Post lunch, stepping backto do some basic things first, still not sure how the whole Rails world fitstogether, maybe a bit more walking before running is in order&hellip;</p>
<p>2PM &ndash; Confusion runs riot installing RSPEC.  Python installs modulesglobally, but looks like Rails loads Gems with each app (so had to run gemrspec_rails from the project directory).  Can see the benefit, but trickedme for a bit.</p>
<p>2.05PM &ndash; More dependencies&hellip; RSpec wants autotest, then we need webrat. Webrat needs NokoGiri&hellip; Or at least some extensions that come with it&hellip;* sudo apt-get install libxslt-dev libxml2-dev* sudo gem install nokogiri* sudo gem install webrat</p>
<p>2.54PM &ndash; Database configuration with MySQL.  More supposedly &ldquo;default&rdquo; railsthings that just aren&rsquo;t installed. Somewhat tedious! Still, getting the hangof it now.* sudo gem install mysql23PM &ndash; Almost&hellip; looks like I need to specify it in the GemFile.  All makessense, but the <a href="http://guides.rubyonrails.org/getting_started.html">getting started guide</a> could make mention ofit! Finally a successful rake:* rake db:create</p>
<p>4.50PM &ndash; Break while I collected son from school, but lots of good progress.Created some basic controllers, routes and views / HTML templates.  Gettingthe hang of it.  Now I&rsquo;m going to try be a bit more ambitous and plug inTwitter OAuth.  If I have this all &ldquo;under control&rdquo; I think the correct stepswill be:* Install the gem and enable it in the GemFile* Create a Twitter Controller with a few different action points(authenticate, callback) and then implement the OAuth code into these.</p>
<p>Wrap up for the day &ndash; I finished up around 9.30.  Turns out that my problemswere more Twitter than rails related and to do with OAuth_Callbackparameters (something for another post).  I did eventually get somethingworking, which is almost ready now, so I feel I&rsquo;m making some good Railsprogress.  Also I think that the client I used at the start of the day WOULDwork, it was a Twitter related issue.</p>
<p>I know Twitter are chaning their OAuth flows to be more compliant though, soa little bit of time here to make sure it&rsquo;s implemented right is worthwhile.</p>
<p>It was a fairly interrupted day with my wife away in Sydney, daughter sickand school and dinner duties.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbull001.wordpress.com/35662977/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbull001.wordpress.com/35662977/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timbull.com&#038;blog=49080029&#038;post=35662977&#038;subd=timbull001&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://timbull.com/2010/12/07/rails-challenge-day-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/45bce8c85db792fa9373bee604141b29?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tbull001</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails Challenge: Day 1</title>
		<link>http://timbull.com/2010/12/06/rails-challenge-day-1/</link>
		<comments>http://timbull.com/2010/12/06/rails-challenge-day-1/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 07:41:00 +0000</pubDate>
		<dc:creator>Tim Bull</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://timbull.com/rails-challenge-day-1</guid>
		<description><![CDATA[You can read about the Rails Challenge here. 10AM – After various Monday tasks and email, started on the challenge. A quick search for Ruby on Rails leads me to http://rubyonrails.org/. They advise using Ruby 1.9.2 or 1.8.7, but the link to downlo...<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timbull.com&#038;blog=49080029&#038;post=35460324&#038;subd=timbull001&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>You can read about the Rails Challenge <a href="http://timbull.com/rails-challenge-day-0">here</a>.</p>
<p>10AM &ndash; After various Monday tasks and email, started on the challenge.  Aquick search for Ruby on Rails leads me to <a href="http://rubyonrails.org/">http://rubyonrails.org/</a>.  Theyadvise using Ruby 1.9.2 or 1.8.7, but the link to download leads to 1.8.7. I know we were asked to use &ldquo;latest versions&rdquo; so going to go for 1.9.2. Off to <a href="http://www.ruby-lang.org/en/downloads/">http://www.ruby-lang.org/en/downloads/</a> where I find 1.9.2. A quickdownload then squiz at the README. From the directory you extracted Ruby in:* ./configure* make* make test* sudo make installVoila! Ruby 1.9.2 installed and ready to go.</p>
<p>10.25AM &ndash; OK, play with the language &ndash; run through the quick start.<a href="http://www.ruby-lang.org/en/documentation/quickstart/">http://www.ruby-lang.org/en/documentation/quickstart/</a>* Got to be happy &ndash; fire up the shell, type irb and there it is (somethingmust of worked!).* First page done, nothing unusual or unexpected there.* Second page&hellip; some interesting syntactical things with Ruby. Like the wayit does string substitution, very clean and clear.</p>
<div class="CodeRay">
<div class="code">
<pre><span class="keyword">def</span> <span class="function">h</span>(name = <span class="string"><span class="delimiter">&quot;</span><span class="content">World</span><span class="delimiter">&quot;</span></span>)        puts <span class="string"><span class="delimiter">&quot;</span><span class="content">Hello </span><span class="inline"><span class="inline-delimiter">#{</span>name.capitalize<span class="inline-delimiter">}</span></span><span class="content">!</span><span class="delimiter">&quot;</span></span>    <span class="keyword">end</span></pre>
</div>
</div>
<ul>
<li>Like the ? syntax to interpret if something is a boolean or not.  Seemsvery well thought out as a language.</li>
<li>On balance slightly more in that Quick Start 20 minutes example than canbe explored in 20 minutes (I don&rsquo;t think I can type that fast) but a goodintro.</li>
</ul>
<p>11:00AM &ndash; Back to the Rails stuff. Rails tells me to get RubyGems. Followedthe links, downloaded, tried to install.  Tells me it&rsquo;s an upgrade&hellip; Littlebit of research. Turns out that RubyGems 1.3.7 ships with the latest Rubyalready. Type gem at console and sure enough, there it is.</p>
<p>11.10AM &ndash; sudo gem install rails</p>
<p>11.24AM &ndash; While that install ran, I researched IDE&rsquo;s by asking around onTwitter plus a bit of searching.  Deciding between a full IDE and perhaps astandard editor with a bit syntactical sugar, I&rsquo;ve decided to go for thefull IDE.  Mostly because I need all the hints I can get given that it&rsquo;s allnew. So the suggestions I had back (ignoring the expected ribbing about notwanting to use VIM):</p>
<ul>
<li>Komodo 6</li>
<li>NetBeans</li>
<li>RubyMine</li>
<li>BlueFish</li>
<li>Geany</li>
<li>Aptana Rad Rails</li>
</ul>
<p>In the end I&rsquo;ve decided to go for RubyMine.  Keeping in mind this was NOT anextensive eval, main decision factors &ndash; obvious GIT integration (others mayhave it but this clearly lists it) and Twitter use it (I know they are a bigrails shop). Downside to RubyMine &ndash; $70, but there is a 30 day free trial &ndash;I figure I may as well get started with a good strong editor, then bearingin mind this is only a 2 week experiment anyway, it will either be worth theupgrade, or I won&rsquo;t need it any more (or I&rsquo;ll know enough to make aneducated choice on a different editor).</p>
<p>11.35AM &ndash; Right, that&rsquo;s the IDE downloading and the rails install out theway. Let&rsquo;s create a Rails Framework now.</p>
<p>1PM &ndash; Bit of a break there, Alex came back online, catch up after weekendand re-synch with activities for today then feed kids lunch.So creating the rails framework was easy.</p>
<ul>
<li>rails new source/railstest</li>
</ul>
<p>Now in theory, I should be able to start rails by running this from that newdirectory:</p>
<ul>
<li>rails server</li>
</ul>
<p>No dice &ndash; crashed&hellip;</p>
<p>1.48PM &ndash; Well that slowed us down! Long story short, latest Ruby / Railsrelies on the latest version of SQLite3, not installed on my PC.  I had thefollowing error:</p>
<div class="CodeRay">
<div class="code">
<pre>Could not find gem 'sqlite3-ruby (&gt;= 0, runtime)' in any of the gemsources listed in your Gemfile. Try running `bundle install`.</pre>
</div>
</div>
<p>After trying lots of different things (including running bundle install) Iresolved by downloading the latest SQLite3 from here<a href="http://www.sqlite.org/download.html">http://www.sqlite.org/download.html</a>, ran ./configure, make and make install,then tried bundle install again from the railstest directory (the app I&rsquo;msetting up).</p>
<p>Finally, success.</p>
<p>1.50PM &ndash; Rails app up and running!</p>
<ul>
<li>rails server</li>
<li>Connect to <a href="http://127.0.0.1:3000">http://127.0.0.1:3000</a></li>
</ul>
<p>Booyah!</p>
<p>3.25PM &ndash; Coffee break and then managed to get RubyMine set up.  Needs theSun JDE (doesn&rsquo;t like Open Java) :&ndash;( Register with Oracle, 72Mb downloadlater&hellip; Wait, make that 2 installs later (downloaded the RPM first, no goodfor Ubuntu). Finally once I had the path setup properly I could install /run RubyMine.</p>
<ul>
<li>export JDK_HOME=&ldquo;/usr/lib/jvm/java-6-sun/&rdquo;</li>
<li>.//bin/rubymine.sh</li>
</ul>
<p>Took almost 1hr and a half for this step :&ndash;( Still hopefully pays off havingan IDE.  Took a bit of time here to explore the basic IDE and play with therailstest app I setup earlier and see where all the bits went.  I will saythis &ndash; there&rsquo;s a heck of a lot more guff installed with a Rails app thanDjango!</p>
<p>3.40PM &ndash; Minor distraction &ndash; hunt down some online shopping for Master 8&rsquo;sChristmas present.</p>
<p>4PM -OK, meat of the day. Try and find a Twitter library and install it.Mat Kelcey recommended <a href="https://github.com/jnunemaker/twitter/">https://github.com/jnunemaker/twitter/</a> which looksgood, but we want some streaming support.</p>
<p>4.20PM &ndash; Wow, lots of searching and flicking through Twitter Ruby GEMs, thecoverage here is a lot worse than Python.  Really surprises me! I thoughtRuby would have some strong libaries. The library recommended by Mat isbest, but no streaming support. The few streaming libraries don&rsquo;t includeOAuth support and are generally weak.</p>
<p>4.30PM &ndash; Looks like we might need to use EventMachine<a href="https://github.com/eventmachine/eventmachine/wiki">https://github.com/eventmachine/eventmachine/wiki</a>.  Thin also looksinteresting &ndash; a Python Tornado equivalent? <a href="http://code.macournoyer.com/thin/">http://code.macournoyer.com/thin/</a></p>
<p>6PM &ndash; Reading, reading reading. Going to call it quits here &ndash; lots to thinkabout on how to implement a streaming Twitter app with OAuth support &ndash; lotsof bits and pieces but no one GEM I can pull that does it all.  Seriouslythinking about cutting my own to do all the pieces together.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbull001.wordpress.com/35460324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbull001.wordpress.com/35460324/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timbull.com&#038;blog=49080029&#038;post=35460324&#038;subd=timbull001&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://timbull.com/2010/12/06/rails-challenge-day-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/45bce8c85db792fa9373bee604141b29?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tbull001</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails Challenge: Day 0</title>
		<link>http://timbull.com/2010/12/05/rails-challenge-day-0/</link>
		<comments>http://timbull.com/2010/12/05/rails-challenge-day-0/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 22:38:33 +0000</pubDate>
		<dc:creator>Tim Bull</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://timbull.com/rails-challenge-day-0</guid>
		<description><![CDATA[Here's the challenge - 2 weeks to build a robust streaming Twitter application in Ruby on Rails with a website and some basic configuration features.Alex and I are pretty experienced in this with Python and Django now - 12 months together as a pri...<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timbull.com&#038;blog=49080029&#038;post=35430617&#038;subd=timbull001&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Here&#039;s the challenge &#8211; 2 weeks to build a robust streaming Twitter application in Ruby on Rails with a website and some basic configuration features.
<p />
<div>Alex and I are pretty experienced in this with Python and Django now &#8211; 12 months together as a primarily Python / Django shop, then he has a lot more experience prior to that, while I was an &quot;on again / off again&quot; Google App Engine hacker and learnt a little bit about it.</div>
<p />
<div>We&#039;ve launched several applications this year, including our Chirp Day hack, Twendly, <a href="http://tribalytic.com">Tribalytic</a>, <a href="http://distlr.com">Distlr</a> and <a href="http://Trunk.ly">Trunk.ly</a> all of which use Python / Django and integrate with Twitter.</div>
<p />
<div>Sum knowledge of Ruby and Rails? Nothing.  We&#039;ve not downloaded it, we&#039;ve not read the code, neither of us have ever used it before.  It will be an interesting two weeks.</div>
<p />
<div> We need to:</div>
<div>
<ol>
<li>Install and get up and running with the basic syntax and the Ruby / Rails way.</li>
<li>Deploy a basic app and understand how that process works with Rails.</li>
<li>Get the testing frameworks hooked up.</li>
<li>Find a good open source Twitter library for Rails, then almost certainly add what&#039;s needed to make it production robust.</li>
<li>Connect and stream the data into MySQL.</li>
<li>Build some basic configuration options and a front end to manage that.</li>
</ol>
<div>Probably a good start&#8230;</div>
</div>
<p />
<div>Wish us luck, here we go!</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbull001.wordpress.com/35430617/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbull001.wordpress.com/35430617/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timbull.com&#038;blog=49080029&#038;post=35430617&#038;subd=timbull001&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://timbull.com/2010/12/05/rails-challenge-day-0/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/45bce8c85db792fa9373bee604141b29?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tbull001</media:title>
		</media:content>
	</item>
		<item>
		<title>Reflection on startup life: Week 55</title>
		<link>http://timbull.com/2010/12/05/reflection-on-startup-life-week-55/</link>
		<comments>http://timbull.com/2010/12/05/reflection-on-startup-life-week-55/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 22:30:00 +0000</pubDate>
		<dc:creator>Tim Bull</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[priority]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ror]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[trunkly]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://timbull.com/reflection-on-startup-life-week-55</guid>
		<description><![CDATA[The way in which people use product is endlessly fascinating. For example, with Trunk.ly (which collects links from multiple sources) one of the very first features that most people requested was to filter links by source. So we added this in. A w...<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timbull.com&#038;blog=49080029&#038;post=35430237&#038;subd=timbull001&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<div>The way in which people use product is endlessly fascinating. &nbsp;For example, with Trunk.ly (which collects links from multiple sources) one of the very first features that most people requested was to filter links by source. &nbsp;So we added this in. &nbsp;A week after launch, no one is using it. &nbsp;So does that make it invalid? ie. Should we &#8220;not&#8221; deliver that function? &nbsp;</div>
<p />
<div>I think the question is more complicated than that &#8211; sometimes there are things that people want in the first 5 minutes that&#8217;s very different from what they need once they experience the product. &nbsp;One premise of Trunk.ly is that it collects and indexes links from multiple sources. &nbsp;Allowing a user to filter by source is a first five minutes experience that helps them quickly confirm the promise of the&nbsp;product.</div>
<p />
<div>It&#8217;s something that Twitter and Facebook spend a lot of time on, yet most people don&#8217;t see it. &nbsp;If you register a new Twitter account there&#8217;s virtually an entire application around helping you get started and get connected that&#8217;s something you only use in the first five minutes. &nbsp;I&#8217;ve registered a lot of Twitter accounts this last 12 months and that experience is continually changing and enhancing (to the point that as an &#8220;experienced&#8221; Twitter account creator it&#8217;s annoying, but I am a minority I suspect). &nbsp;Yet if you registered your account more than 6 months ago, you&#8217;ll never have experienced any of this substantial amount of screen design and effort on Twitter&#8217;s part.</div>
<p />
<div>We launched a new version of <a href="http://Trunk.ly">Trunk.ly</a> which went smoothly enough. &nbsp;There were lots of minor bugs in there, but we fixed them quickly enough. &nbsp;We continue to get a lot of interest in Trunk.ly and increasing numbers of people registering for access which is exciting. &nbsp;It&#8217;s still a little way from opening it up more broadly, but it&#8217;s getting there.</div>
<p />
<div>Unfortunately it looks like Trunk.ly will have to remain on the back burner for the next few weeks.</div>
<p />
<div>Last week was very focussed on making sure we got one of our projects for <a href="http://sportsgeek.com.au/">SportsGeek</a> finished &#8211; fingers crossed the minor bug I fixed this morning sees that project now complete. I won&#8217;t spoil Sean&#8217;s fun by saying what the project is, but Alex and I are both pretty excited that the first client Sean has signed up and will be launching with is an NBA team.</div>
<p />
<div>This week we launch into a Ruby on Rails project. &nbsp;For those playing along at home, you might have a WTF moment&#8230; as of course we are primarily a Python / Django shop.&nbsp;</div>
<p />
<div>To cut a long story very short, we had a series of really interesting email conversations around a potential project,&nbsp;the end result of which was &#8220;let&#8217;s do this&#8221;. &nbsp;We were all on a similar wavelength and were excited about working together, but right at the end realised that Python / Django wasn&#8217;t going to suit this customer as a Ruby on Rails shop. &nbsp;We needed to find a creative way to make it work &#8211; so we&#8217;ve committed to a pilot in Ruby on Rails. &nbsp;Over a couple of weeks we&#8217;ll develop some of the core components, mostly on our time as we are learning as we go with a new language. &nbsp;At the end of that we&#8217;ll submit it for review and if it&#8217;s good enough, we&#8217;ll negotiate from there. &nbsp;Once we suggested this, they agreed and then proposed some funding to ensure we are compensated at least a little for our time (these guys are awesome &#8211; really fair, above board and straight shooters &#8211; the kind of clients you want to work with).</div>
<p />
<div>Of course there&#8217;s lots we need to do that we DO already know &#8211; front end, HTML, JavaScript, Twitter API and how to work with it robustly etc. &nbsp;I&#8217;ve programmed to some degree with C64 Basic, Fortran, Pascal, FoxPro, Visual Basic for DOS, VB4, C#, C, C++, SQL Server Scripting, Python / Django and now Ruby. &nbsp;It&#8217;s safe to say I&#8217;ve forgotten more than I remember! &nbsp;Ruby / Rails is just another step on the road.</div>
<p />
<div>I thought as part of this &#8220;challenge&#8221; I&#8217;ll make it entertaining and for the next couple of weeks I&#8217;m going to geek out here on the transition from Python / Django to Ruby / Rails by posting daily updates. I think I&#8217;ll call it &#8220;Rails Challenge&#8221; so feel free to ignore these if you&#8217;re not into languages.</div>
<p />
<div><span style="text-decoration:underline;"><em>Highlights</em></span></div>
<div>
<ul>
<li>Ignite talk on Wednesday &#8211; great event and well run by Mark Mansour.</li>
<li>SportsGeek project done</li>
<li>New Trunk.ly launch</li>
</ul>
</div>
<div><span style="text-decoration:underline;"><em>Lessons Learned</em></span></div>
<div>
<ul>
<li>Billing is a pain &#8211; especially when your bank stuffs up transactions and you can&#8217;t even tell if its you or them!</li>
<li>Creative persistence is worthwhile.</li>
</ul>
</div>
<div><span style="text-decoration:underline;"><em>Goals this week</em></span></div>
<div>
<ul>
<li>Learn Ruby on Rails and cut some code!</li>
</ul>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbull001.wordpress.com/35430237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbull001.wordpress.com/35430237/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timbull.com&#038;blog=49080029&#038;post=35430237&#038;subd=timbull001&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://timbull.com/2010/12/05/reflection-on-startup-life-week-55/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/45bce8c85db792fa9373bee604141b29?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tbull001</media:title>
		</media:content>
	</item>
	</channel>
</rss>
