<?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/"
	>

<channel>
	<title>Nobody Listens Anyway &#187; RailsConf07</title>
	<atom:link href="http://www.justinball.com/category/railsconf07/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.justinball.com</link>
	<description>Life is an optimization issue</description>
	<lastBuildDate>Sat, 31 Jul 2010 16:47:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0-alpha</generator>
		<item>
		<title>Presentations from Rails Conf</title>
		<link>http://www.justinball.com/2007/05/22/presentations-from-rails-conf/</link>
		<comments>http://www.justinball.com/2007/05/22/presentations-from-rails-conf/#comments</comments>
		<pubDate>Tue, 22 May 2007 17:03:51 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[RailsConf07]]></category>
		<category><![CDATA[rails conference]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.justinball.com/2007/05/22/presentations-from-rails-conf/</guid>
		<description><![CDATA[In a lot of my posts I said that I would link to the presentation.  All the presentations can be found here:
http://www.web2expo.com/pub/w/51/presentations.html
My favorites from the current list are:
Building Community-focused Apps with Rails
Scaling a Rails Application from the Bottom Up 
]]></description>
			<content:encoded><![CDATA[<p>In a lot of my posts I said that I would link to the presentation.  All the presentations can be found here:</p>
<p>http://www.web2expo.com/pub/w/51/presentations.html</p>
<p>My favorites from the current list are:<br />
Building Community-focused Apps with Rails<br />
Scaling a Rails Application from the Bottom Up </p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2007/05/22/presentations-from-rails-conf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rails Conf after thoughts</title>
		<link>http://www.justinball.com/2007/05/21/rails-conf-after-thoughts/</link>
		<comments>http://www.justinball.com/2007/05/21/rails-conf-after-thoughts/#comments</comments>
		<pubDate>Mon, 21 May 2007 16:29:54 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[RailsConf07]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.justinball.com/2007/05/21/rails-conf-after-thoughts/</guid>
		<description><![CDATA[Now that I am home and have managed to sleep a bit I have been thinking about my overall experience at Railsconf 2007.  Overall it was great.  It was fun to meet so many people working in Rails.  The community is filled with friendly individuals who are willing to share everything they [...]]]></description>
			<content:encoded><![CDATA[<p>Now that I am home and have managed to sleep a bit I have been thinking about my overall experience at Railsconf 2007.  Overall it was great.  It was fun to meet so many people working in Rails.  The community is filled with friendly individuals who are willing to share everything they know or just sit an chat.  I even managed to get in a fun game of chess on the giant board by the vendor booths.  </p>
<p>My favorite talks were the ones that included code.   That is probably because I am a programmer, but somehow code makes the talk real.  I went to a few talks that were explanations of processes.  Those are OK, but they include a lot of common sense stuff that you will already know if you have been in the field for a few years.  The very best talks were ones that included code and showed best practices.  I don't want to be a Rails core team fan boy, but I love to hear Jamis Buck talk.  He and Koz did a great job showing off the '<a href="http://www.therailsway.com/">Rails Way</a>'.   DHH's talk was great.  He is a nice guy with great ideas and he is a good presenter.  He deserves the credit he gets.</p>
<p>The food at the conference sucked.  Breakfast needs to be better.  Lunch needs to be better.</p>
<p>Rails Conf felt a little to corporate for a rebellious framework like Rails.  Something more like <a href="http://iiw.windley.com/wiki/Workshop_2007">IIW</a> would fit this community perfectly.  Somehow O'Reilly manages to make their conferences a little to rock starish.  However, O'Reilly support also shows the support and power behind Rails which is cool.</p>
<p>I wouldn't attend the tutorials before the conference.  They are pretty much an introduction to whatever topic they introduce.</p>
<p>Overall the conference was enjoyable.  I would probably go again.  I look forward to more local Rails events.  I think the community is growing and we should start seeing more regional conferences in the 50-150 person range.  </p>
<p>See you next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2007/05/21/rails-conf-after-thoughts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Solr on Rails Erik Hatcher</title>
		<link>http://www.justinball.com/2007/05/20/solr-on-rails-erik-hatcher/</link>
		<comments>http://www.justinball.com/2007/05/20/solr-on-rails-erik-hatcher/#comments</comments>
		<pubDate>Sun, 20 May 2007 20:54:44 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[RailsConf07]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.justinball.com/2007/05/20/solr-on-rails-erik-hatcher/</guid>
		<description><![CDATA[Ferret is fast.  He has moved around and the documentation is a bit sparse.
Solr was created by people at CNET, used by Internet Archive, Krugle, Revolution Health, his projects: Collext, Blacklight.
Findability - serendipity is great.  You should be able to browse and discover stuff you didn't intend to.
Read Ambient Findability
Lucene is fast and [...]]]></description>
			<content:encoded><![CDATA[<p>Ferret is fast.  He has moved around and the documentation is a bit sparse.<br />
Solr was created by people at CNET, used by Internet Archive, Krugle, Revolution Health, his projects: Collext, Blacklight.<br />
Findability - serendipity is great.  You should be able to browse and discover stuff you didn't intend to.<br />
Read <strong>Ambient Findability</strong><br />
Lucene is fast and scalable.  Written in Java.<br />
Solr is a layer on top of Lucene.<br />
<a href="http://wiki.apache.org/solr/Flare">Flare</a> is a plugin he wrote that is a bit of a hack but does "faceted browsing, auto-suggest, folksonomy tagging/annotating."<br />
Adds caching, replication, faceting, highlighting, spell checking, Http interface.<br />
You can talk to it via Net::HTTP::Post or use solr-ruby (gem), <a href="http://acts_as_solr.railsfreaks.com/">acts_as_solr</a> (will hopefully use gem soon, Hatcher submitted a patch)<br />
<code><br />
gem install solr-ruby<br />
</code></p>
<p>Look at the code in his slides.</p>
<p>Luke is a tool that lets you view your lucene index.</p>
<p>This is a pretty sweet tool for adding search to your site.  I plan on looking into it further.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2007/05/20/solr-on-rails-erik-hatcher/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Rails Way Jamis Buck, Michael Koziarski</title>
		<link>http://www.justinball.com/2007/05/20/the-rails-way-jamis-buck-michael-koziarski/</link>
		<comments>http://www.justinball.com/2007/05/20/the-rails-way-jamis-buck-michael-koziarski/#comments</comments>
		<pubDate>Sun, 20 May 2007 16:35:40 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[RailsConf07]]></category>
		<category><![CDATA[jamis buck]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.justinball.com/2007/05/20/the-rails-way-jamis-buck-michael-koziarski/</guid>
		<description><![CDATA[Don't forget to look at The Rails Way blog.
Move logic into your model.  This lets you break functionality into more granular components and makes testing easier.  Keep your controllers skinny.  Jamis blogged about this principle here.
Use before filters to setup state before your controller runs.  Use before_create in your models.
ActiveSupport helps [...]]]></description>
			<content:encoded><![CDATA[<p>Don't forget to look at <a href="http://www.therailsway.com/">The Rails Way blog</a>.</p>
<p>Move logic into your model.  This lets you break functionality into more granular components and makes testing easier.  Keep your controllers skinny. <a href="http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model"> Jamis blogged about this principle here.</a></p>
<p>Use before filters to setup state before your controller runs.  Use before_create in your models.</p>
<p>ActiveSupport helps you make your code intention revealing.  Ruby code can be self documenting.  </p>
<p>has_many, belong_to makes your code powerful easy to use, but many users don’t use the power of the associations.<br />
<code><br />
Document.find_all_by_user_id(@john.id)</p>
<p>vs</p>
<p>@john.documents # this one hits the db once and then stores the objects in memory.  After the call you don't have to keep hitting the db.<br />
</code></p>
<p>You can do the same with<br />
<code><br />
 @john.documents.find(:all, :conditions => ....<br />
</code></p>
<p>try this:<br />
<code><br />
@cool.documents.find_by_user_id(@john.id)<br />
</code></p>
<p>then define it as a method:<br />
<code><br />
@cool.documents_authored_by(@john.id)<br />
</code><br />
just be sure to not duplicate the method in both the tags and authors models that is difficult to maintain.<br />
You might prefer:<br />
<code><br />
@john.documents.tagged_with(@cool)<br />
</code></p>
<p>Don't use the '!!' idiom.  What you are doing is saying not not.<br />
<code><br />
def account_code?<br />
  !!@account_code.nil? # will return false if account_code nil<br />
end<br />
</code></p>
<p>this is better<br />
<code><br />
def account_code?<br />
  @account_code ? true : false<br />
end<br />
</code></p>
<p>or you can do this<br />
<code><br />
# make sure to document true because... false because...<br />
def account_code?<br />
  if @account_code<br />
    true<br />
  else<br />
    false<br />
  end<br />
end<br />
</code></p>
<p>I'm tired of typing code.  I'll post a link to the slides when they get them up.</p>
<p>Simplify 'New' for creating objects with associations by creating a method in your model called build with associations that does that work for you instead of creating a bunch of objects and then associating them in the controller</p>
<p>Simplify your routes.  If you are pointing to the same controller all the time use <strong>with_options</strong></p>
<p>you can make better urls like this<br />
<code><br />
def to_param<br />
  "#{id}-#{name}"<br />
end</p>
<p>find(params[:id])<br />
</code><br />
but you have to be careful in your controller to make sure that other methods work with params[:id]<br />
<code><br />
returning new do |billable|<br />
  billable.contract = Contract.new<br />
end<br />
</code><br />
is the same as<br />
<code><br />
billable = new<br />
billable.contract = Contract.new<br />
return billable<br />
</code><br />
but looks cool</p>
<p>How do you deal with validations when you have a lot of associations.  I have dealt with this and it sucks.  I have had to force the various objects to validate and then pull the errors into an error object then show the errors from that object.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2007/05/20/the-rails-way-jamis-buck-michael-koziarski/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Practical Design for Developers David Verba</title>
		<link>http://www.justinball.com/2007/05/19/practical-design-for-developers-david-verba/</link>
		<comments>http://www.justinball.com/2007/05/19/practical-design-for-developers-david-verba/#comments</comments>
		<pubDate>Sat, 19 May 2007 23:30:34 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[RailsConf07]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.justinball.com/2007/05/19/practical-design-for-developers-david-verba/</guid>
		<description><![CDATA[Practical Design for Developers David Verba
Another standing room only session.  Perhaps the organizers will wise up and have at least on larger room next year for the sessions that are very popular.
We are going over the basics of audience analysis – understand your users:
Context
Motivations
Challenges  
Know your stakeholders – anyone that has an interest [...]]]></description>
			<content:encoded><![CDATA[<p>Practical Design for Developers David Verba</p>
<p>Another standing room only session.  Perhaps the organizers will wise up and have at least on larger room next year for the sessions that are very popular.</p>
<p>We are going over the basics of audience analysis – understand your users:<br />
Context<br />
Motivations<br />
Challenges  </p>
<p>Know your stakeholders – anyone that has an interest in the project<br />
Understand your objectives </p>
<p>Maybe it is just me but this seems like webdesign 101 it is also the standard stuff you hear in a 9th grade English class.  Know your users.  Talk to them.  Get the goals from everyone that has a stake the project etc.  </p>
<p>What is interesting to me is that he seems to imply that you can figure out your ‘users’  I have been reading Don’t Make Me Think.   What is interesting is that Steve Krug the author says that there are no standard users of website.  There are users and they frequently use your site in unique ways that the next user will not follow.  That is one thing that makes the web a unique medium.  Your users are not forced to sit and wait until after the next commercial so they can hear the news story they want.  Instead they follow a non linear path of their own choosing.</p>
<p>Here’s a good point from his talk:<br />
Don’t try to be everything to everybody.  I think we know that, but it is so very easy to ignore that principle and say but this case is the exception.  Before you know it you have a lot of exceptions and a bloated app with lots of useless features.</p>
<p>Other than a few reiterations of common sense web design (and any other design, instructional, etc) this talk is not especially enlightening.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2007/05/19/practical-design-for-developers-david-verba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Taking Care of Rails Support Tasks Through Custom Daemons Tammer Saleh</title>
		<link>http://www.justinball.com/2007/05/19/taking-care-of-rails-support-tasks-through-custom-daemons-tammer-saleh/</link>
		<comments>http://www.justinball.com/2007/05/19/taking-care-of-rails-support-tasks-through-custom-daemons-tammer-saleh/#comments</comments>
		<pubDate>Sat, 19 May 2007 18:03:21 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[RailsConf07]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.justinball.com/2007/05/19/taking-care-of-rails-support-tasks-through-custom-daemons-tammer-saleh/</guid>
		<description><![CDATA[Saleh is talking about using a Daemon to get rails to talk to LDAP.  The code for the LDAP deamon and the code to make it look like a model live here.   I will add a bit of code here and there, but hopefully the presenter will upload the slides so I [...]]]></description>
			<content:encoded><![CDATA[<p>Saleh is talking about using a Daemon to get rails to talk to LDAP.  <a href="http://thoughtbot.com/projects/ldap-ar-gateway">The code for the LDAP deamon and the code to make it look like a model live here</a>.   I will add a bit of code here and there, but hopefully the presenter will upload the slides so I don’t have to retype everything.  There is some great code in this presentation.</p>
<p>Daemons are a bit of a dark art.  </p>
<p><code><br />
def daemonize<br />
  Kernel.fork and Kernel.exit<br />
  Process.setsid<br />
  Kernel.fork and Kernel.exit<br />
  # system maintenance items so you don't hold up directory maintenance and so you don't have to deal with permissions<br />
  File.umask 0<br />
  Dir.chdir '/'<br />
  # you don't want to hold onto<br />
  ObjectSpace.each_object(IO) {|io| io.close rescue nil}<br />
  STIN.open('/dev/null')<br />
end<br />
</code></p>
<p>or just use a gem</p>
<p><code><br />
require daemons<br />
Daemons.daemonize</p>
<p>loop {<br />
# or whatever<br />
conn = accept<br />
}</p>
<p></code></p>
<p>You can interact directly with your Rails environment.<br />
include environment file</p>
<p>Threads<br />
ThreadsBase.allow_concurrency = true</p>
<p>Or you will get a nasty error:<br />
Mysql::Error: Lost connection to MySQL server during query:</p>
<p>Start and Stop<br />
use a unix init script that takes start/stop/restart<br />
OSX got ride of init script Solaris is going to do the same.  Use Launchd instead.  It uses xml.</p>
<p>Make sure the process doesn't start twice so that it doesn't run over itself.<br />
Use a Pid File.   This is how the daemon finds out its own id for stopping.  It is also how you keep a process from starting up twice</p>
<p>Configuration Files<br />
Talk to your process.  Configure with yml files.  Read it in with YAML.Load</p>
<p>Logging<br />
Daemon doesn’t have standard IO.  Log it.  Do it with Logger.new.  Set log levels etc.  Use logging for debugging.</p>
<p>Security<br />
When the system boots all is root. You don’t want your app running as root.  Drop privileges as soon as you can so that you become a lesser user.<br />
def become_user( …. See the slides</p>
<p>Testing<br />
Create a test suite.  Testing a daemon is challenging.  Spawn the daemon before tests.<br />
Mocking makes testing safer.  See slides for code under slide Testing – Mocking makes this much safer.  </p>
<p>This was a great talk with real code.  We need more code.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2007/05/19/taking-care-of-rails-support-tasks-through-custom-daemons-tammer-saleh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad Food</title>
		<link>http://www.justinball.com/2007/05/19/bad-food/</link>
		<comments>http://www.justinball.com/2007/05/19/bad-food/#comments</comments>
		<pubDate>Sat, 19 May 2007 16:22:31 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[RailsConf07]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.justinball.com/2007/05/19/bad-food/</guid>
		<description><![CDATA[I have eaten a lot of bad food over the past few days which is too bad given that Portland has good restaurants.  The main source of bad food is the Rails conference.
A WORD TO CONFERENCE ORGANIZERS:
Stale pastry and coffee do not count as breakfast.
Lunch is not much better.
It is so bad that we [...]]]></description>
			<content:encoded><![CDATA[<p>I have eaten a lot of bad food over the past few days which is too bad given that Portland has good restaurants.  The main source of bad food is the Rails conference.<br />
A WORD TO CONFERENCE ORGANIZERS:<br />
Stale pastry and coffee do not count as breakfast.<br />
Lunch is not much better.<br />
It is so bad that we went to Denny's this morning.  I was forced to debug my cereal - some kind of winged ant found its way into my raisin bran.  Denny's food is just nasty.</p>
<p>I like Japanese food so we went looking for a Japanese restaurant last night.  When we saw the place we kept walking because it looked like it would be crap.  Unfortunately, all the other places were full and we were running out of time so we went back.  Bad choice.  If you are in Portland do not eat at Koji OsaKaya.  Their food is total crap.</p>
<p>I have taken to eating granola bars and bananas.  Does anyone have a decent recommendation for lunch?</p>
<p>PS a special thanks goes out to <a href="http://www.thoughtworks.com/index.html">thoughtworks</a> for supplying me with ALOT of granola bars.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2007/05/19/bad-food/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OpenID and David Heinemeier Hansson</title>
		<link>http://www.justinball.com/2007/05/18/openid-and-david-heinemeier-hansson/</link>
		<comments>http://www.justinball.com/2007/05/18/openid-and-david-heinemeier-hansson/#comments</comments>
		<pubDate>Fri, 18 May 2007 22:15:35 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[RailsConf07]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.justinball.com/2007/05/18/openid-and-david-heinemeier-hansson/</guid>
		<description><![CDATA[After the Two Revolutions session I had a few minutes to talk to DHH.  First I must say he is just a very nice guy.  Programmer envy over.  I had a discussion about OpenID.  It is going to be a critical component of the next rev of our apps.  OpenID [...]]]></description>
			<content:encoded><![CDATA[<p>After the Two Revolutions session I had a few minutes to talk to DHH.  First I must say he is just a very nice guy.  Programmer envy over.  I had a discussion about OpenID.  It is going to be a critical component of the next rev of our apps.  OpenID hasn’t reached a level where it has the same blessing as REST or Atom.  David feels that these protocols have one and the Rails team is willing to throw their weight behind them.  OpenID will likely remain a plugin for now.  After spending some time with the guys developing OpenID it was interesting to get DHH’s perspective.  OpenID 2.0 is coming.  It has more stuff.  More features etc.  DHH worries that it will detract from the simplicity.</p>
<p>I also had a conversation about releasing code on edge Rails.  37signals has no problem with it at all.  DHH told me to freeze a version, test that and then release.  This is a bit of a mind shift from the big frameworks like .net or java.  If you release on a beta of either of those you will get fired and maybe sued.  Microsoft doesn’t let you release on their framework until they ship unless you are willing to accept a ‘go live’ license.</p>
<p>The other thing we talked to him about was machine to machine authentication.   They use basic http authentication over ssl (something DHH talked about in his keynote this morning).  This is good to hear.  We are working on a service that uses a REST API which will handle machine to machine authentication for all of our apps and which we plan to share with the world.</p>
<p>Anyway if you see DHH he is a great guy, but then most everyone at this conference is.  I reiterate that I disagree with Chad Fowler.  The Rails community isn’t a bunch of arrogant jerks.  This is a friendly open community that loves to share the Ruby love.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2007/05/18/openid-and-david-heinemeier-hansson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standing on the Shoulders of Giants Adam Keys</title>
		<link>http://www.justinball.com/2007/05/18/standing-on-the-shoulders-of-giants-adam-keys/</link>
		<comments>http://www.justinball.com/2007/05/18/standing-on-the-shoulders-of-giants-adam-keys/#comments</comments>
		<pubDate>Fri, 18 May 2007 22:10:47 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[RailsConf07]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.justinball.com/2007/05/18/standing-on-the-shoulders-of-giants-adam-keys/</guid>
		<description><![CDATA[This session is totally packed. We managed to sneak in.  The door guys don't like that much.  If there is a fire we will all die.
Adam Keys is funny and entertaining
"If you want to learn from the masters you have to read their code."
Read code because "you're surrounded by idiots."
When you read Rails [...]]]></description>
			<content:encoded><![CDATA[<p>This session is totally packed. We managed to sneak in.  The door guys don't like that much.  If there is a fire we will all die.</p>
<p>Adam Keys is funny and entertaining</p>
<p>"If you want to learn from the masters you have to read their code."<br />
Read code because "you're surrounded by idiots."</p>
<p>When you read Rails code start in the routes.  You can look in the url to see where you are and then go to routes to figure out where the code is.</p>
<p>He is giving ideas for where to start and which parts of the app you should look at. </p>
<p>My complaint about this conference is still that the sessions aren't as advanced as I would like.  I would love to see a session like we had at the Mountain West Ruby conference.  Jamis Buck and Marcel Molina Jr. went through some code in front of everyone (our <a href="http://www.ozmozr.com">ozmozr</a> code actually) and pointed out everything that was wrong.  It was a great learning opportunity.</p>
<p>The main point of this talk is basically that you should be taking commonly used, well developed code - plugins, rake, core Rails code etc and read through it.  Seems obvious but it really does make sense.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2007/05/18/standing-on-the-shoulders-of-giants-adam-keys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two Revolutions Alan Francis</title>
		<link>http://www.justinball.com/2007/05/18/two-revolutions-alan-francis/</link>
		<comments>http://www.justinball.com/2007/05/18/two-revolutions-alan-francis/#comments</comments>
		<pubDate>Fri, 18 May 2007 19:07:33 +0000</pubDate>
		<dc:creator>Justin Ball</dc:creator>
				<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[RailsConf07]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://www.justinball.com/2007/05/18/two-revolutions-alan-francis/</guid>
		<description><![CDATA[I tried to get into the REST talk but it is so full that they have guys guarding the doors to keep people out.  I am instead sitting in an extreme programming session.  I wouldn't have come in here except I noticed that DHH walked in.  I figure if he sees potential [...]]]></description>
			<content:encoded><![CDATA[<p>I tried to get into the REST talk but it is so full that they have guys guarding the doors to keep people out.  I am instead sitting in an extreme programming session.  I wouldn't have come in here except I noticed that DHH walked in.  I figure if he sees potential value in this talk then it is likely that I might as well.</p>
<p>The talk turned out to be interesting in that it led to a discussion of revolution of of Frameworks and development philosophies.    Historically, frameworks have evolved and been replaced with something new.  In their wake however they leave large installations and large numbers of programmers trained in the technology.  So I agree that there needs to be change and things need to get better.  However, there is a need for responsibility.  The success of these frameworks (like Ruby on Rails) depends on widespread adoption.  Widespread adoption depends on some assurance that the framework will be around, be scalable, be developed, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.justinball.com/2007/05/18/two-revolutions-alan-francis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
