Season Finales

Posted by Jake Good
on May 23, 07

Wow… last night I got home to catch up on some of my shows… including the season finales of The Office and Heroes



* Warning… potential spoilers below *



The Office… they didn’t foreshadow Jim’s last minute dinner date request, accept through constant camera perspective changing between the two story lines towards the end. Once Karen left to go out with her friends, it was obvious that something was going to go down…



Totally didn’t see Jan’s breasts coming into play… Poor Dwight…



Good episode! Can’t wait for next season.



Heroes… freaking fantastic season and a even better finale! Everything fell into place and the stories all came into one. It was a total shock to see Nathan come back to help Peter. I mean… they talked it up with lots of “guilt filled” speeches, but I thought for SURE he was going to let it happen and that Claire would be the one stepping in…



Can’t wait for season 2 and unlike my room mate, I think the ending (where they showed part of season 2), was sweet…

RailsConf 2007 - Recap

Posted by Jake Good
on May 22, 07

I’m going to make this a short and sweet recap of RailsConf 2007… I’ve had a day to reflect and with me being sick, it only makes sense to do a short and sweet recap.




  • The City



My view of Portland is somewhat skewed… not having a means to leave the city. I think it’s not exactly logistically laid out… and they have a HUGE homeless people on the streets problem. Would I go back just for the downtown Portland life? Nope. Count me out. Would I go back for the scenery and other Pacific Northwest things? Yes.




  • The People



The people of Portland are interesting… they always want to have a conversation and are generally nice. There are lots of homeless people. Period. The people of RailsConf were kinda cliquey but I got to meet a lot of interesting “geek celebs”. Martin Fowler, DHH, Zed Shaw, Ze Frank, Tim Bray, Dave Thomas, and quite a few others… and it’s always nice to put faces to people you’ve talked to but never met… like Jeff Cohen and even some of the Ruby.mn guys.




  • The Sessions



Average. Not enough code… I saw LOTS of good, well put together slide decks… but not a lot of code. Step it up guys. It felt like a lot of transitional information, like… “We’ve all gotten a chance to write Rails code… now how do we get our tools and idioms in place to make it better.”




  • The Keynotes



For the most part, the keynotes ROCKED! Ze Franks and Dave Thomas’ was by FAR the best.. Avi’s was amazing as well… Very inspirational.



Favorite thing learned: “cargo cult”



What really amazed me? That for every 1 person looking for work, there were another 20 people looking for people to work.



Would I go to another RailsConf? See you next year!

RailsConf 2007 - Keynote #5

Posted by Jake Good
on May 20, 07

Dave Thomas is set to headline this keynote… I’ve always enjoyed reading the Pragmatic Programmers books…



Interesting logo ideas… “Rails is Love”…



Donations: $12,075 (Guidebook) + $9178 (Donations) + $1736 (T-Shirts) + $3000 (Large Individual Donations) = $26,000
And it just keeps going. Let’s try to push donations from EACH tech conference… sharing the wealth.



He’s talking about Anxiety.. and how speakers have red and green lights on them with a timer to “help them with their timing and anxiety”… James Duncan Davidson taking pictures… funny stuff, you never know what might come out of the photos.



Quoting from Ze: “More people partaking in authorship” … right now, that is TOTALLY right… user generated content.



The Rails community is the same thing… we’re all publishing and authoring in the Rails community… and we need to figure out how to welcome non-programmers and new people who want to learn… we need to embrace them.



We’re all sitting in wooden huts… cargo cults… like the browser (reinventing the half-duplex 3270)… video games are where it’s at… more complicated and you can control it with two thumbs! Break out of the cargo cult of interaction with users…



It’s called Object-Oriented, not Class-Oriented… right now we’re sub-classing and modeling our world with hierarchical structures, which is not how nature works…



Challenge: try write your next OOP ruby program (real code) with objects and no classes… see what happens.



Another Ze Quote: “The content of a conversation is in the focus.”



Have Fun and Do Good….



This was one of the better keynote talks… great stuff… really inspiring…

RailsConf 2007 - "Auto Scale" Rails Applications

Posted by Jake Good
on May 20, 07

Good ol’ Jinesh Varia is putting on a EC2 + S3 (AWS) showcase on how to scale out your rails apps… I was supposed to help with this talk but I ended up not having enough time to produce some valuable content. Sorry Jin.



Ruby Audience = Audience 2.0 :) AWS is hearing the comments / feedback…



Lots of AWS … crazy number of insights into their infrastructure…



All about EC2 - You’ve probably heard about it, I’ll spare the details…



All about sharing and zero configuration… let someone build up the perfect stack and share it…



What could be built…



time-bound applications



Scaling on a time-line based on expected traffic…
Reversing the concept of an always-on-internet. Thursdate … only on on Thursdays for 3 hours per week…
All about conserving your time.



scale-on-demand applications



Scale on CPU, Heap, load/TCP connections, memory usage, DB call rate, disk I/O, SQS queue length, SQS job wait time…
Basic rules engine could drive this…



Demo of products from WeoGeo called WeoCeo

RailsConf 2007 - Choose Your Battles and LetIt::REST

Posted by Jake Good
on May 20, 07

Hampton Catlin and Jeffrey Hardy from unspace are going to talk about REST and such… These guys did Haml, Scribbish, and Sass…



Resource-based controllers (incredibly repetitive)…



LetIt::REST -> MakeResourceful



Using it in production… good-to-go…



Action Pattern (what normally happens)




  • load resource objects

  • optional preloads

  • perform modifying action (CUD)

  • respond



Here’s a snippet of code:




class CommentController < ApplicationController
make_resourceful do
build :create, :destroy
belongs_to :post
associate_with :current_user

before :show do
@title = "My awesome title"
end

response_for :show do |format|
format.html { redirect_to current_object }
end
end
end


There will be some code released here: http://hamptoncatlin.com

RailsConf 2007 - Keynote #4

Posted by Jake Good
on May 20, 07

Live blogging from the RailsConf 2007 keynote #4… featuring Jamis Buck, Michael Koziarski talking about The Rails Way…



We’ll see the 4th episode of Rails Envy for sure! W00t! There it is! Good stuff…



Yadda Yadda Yadda… Donate money… Yadda Yadda Yadda



Stage left entrance of Jamis and Michael… uber Ruby hackers…



There’s lots of materials out there… instead they’ll look at an application and how things SHOULD be done in Rails…



I’m not going to blog about all of the examples… cause I really want to pay attention =) But let’s just say it’s getting geeky…



A simple Q & A session at the end… overall pretty good. Learned some new syntax “returning”




def self.build_new_object
returning new do |my_object|
my_object.another_object = AnotherObject.new(:my_object => my_object)
end
end


Kinda cool syntax…

RESTful Modeling with ActiveRecord

Posted by Jake Good
on May 19, 07

Here we go… something I’ve been waiting for. Hopefully we’ll be seeing a lot code. These Vonage guys should know what they’re talking about.



Problems faced… quick solutions over good solutions, good enough for now philosophy, anti-patterns… meatball architecture.



Solution: Choose a simple protocol… text over HTTP… REST… right tool for the right job…



Two components are required to make things work: Back End (Service Layer) and Front End (Application Layer)…



RestResource - back end / service solution… Maps a RESTful interface on top of ActiveRecord objects. Exploits ActiveRecord model relationships…. XML is proprietary (not using to_xml)… GET API… creating a simple HTTP URL Based API



ActiveREST - serves as the front end application or service consuler. Converts RESTful XML into objects. Provies an ActiveRecord-like interface to objects. Dynamic Objects on Demand.



Decoupled stuff…



These really seems like .Net developers who wanted to write an N-Tier application in Rails with web services… using REST. Errr SOA stuff…



ehh… yeah… that’s all I can say about this talk.



It’s supposedly open source: http://www.blizzo.com

RailsConf 2007 - Xen and the Art of Rails Deployment

Posted by Jake Good
on May 19, 07

We’ll live blog this one again and capture my thoughts and notes from the post as it’s happening…



No reason to use anything but mongrel right now… the HTTP Server Library…



What’s the perfect stack? Let’s look at front ends…



Pen (errr)… Pound (laf, we used to use this)… HAProxy (ding ding ding)… Lightspeed (free version is crippled)… Apache/mod_proxy (does work but it’s loated)



Nginx: From Russia, with Love … bent on performance, super small, growing, event driven architecture, keep an eye on it…



The suggestion: Nginx + Mongrel + Monit



Caveats: Nginx buffers uploads… and there is no connection rate limiting…



Swiftiply : Teaching the Dog new tricks




  • Event Driven Mongrel - removes ruby threads and socket handling from Mongrel Core

  • Replaces with EventMachine event loop

  • Mongrel becomes single threaded, event driven

  • Stands up much better to high loads

  • No context switching for threads… ends up allowing larger throughput…



Swiftiply Proxy - faster than HAProxy…what? are you serious? Registered mongrel workers that are event driven… talking to the proxy through a backend port of 8000… meaning self registration (automatic configuration) and scaling on the fly by booting more mongrels…



Virtualization seems to be a big thing around the conference today… funny as how that was the theme last year at TechEd… Breaking up services into virtual machines… modularize it…



Using GFS can help… Virtualized machines on SAN and booted from USB thumb drives… using GFS to deploy your app to one node and have all of your mongrel machines running off of the one file system…



Average mongrel size for a 64bit EngineYard is 70-120mb per



Getting rid of :includes and RMagick is key to victory… (:include? really?)… add indexes and dont be afraid of custom SQL.



Don’t use FS for sessions… script/runner is massively inefficient… try not loading all of rails… use plain MySQL + Ruby instead.



Rails is 80/20 … you’re on your own for the 20%… learn how to write custom mongrel handlers for perf critical sections… Rails is the culprit, not Ruby for speed… Cache Cache Cache Cache…



Good session… learned quite a bit.

RailsConf 2007 - Extra Action Marching Band

Posted by Jake Good
on May 19, 07

So in my last post, I described hearing a marching band… well I went out into the lobby near the exhibit hall and saw what was causing all of the racket.



After a few minutes of searching, I have found the answer…



It was a swanky group called the “Extra Action Marching Band”



Here are some pics and a video… They’ll be at Dante’s tonight…



Extra Action Marching Band 3



Extra Action Marching Band 4



RailsConf 2007 - The Business of Rails

Posted by Jake Good
on May 19, 07

I’m going to do this more of a live blogging style… We’ll see how this format helps.



Should provide to be an interesting talk… featuring Joe O’Brien, Nathaniel Talbott, Justin Gehtland, Geoffrey Grosenbach, Robby Russell, and Andre Lewis…



It’s a panel discussion starting off with the question about how and why they chose to go into business on their own… just simple concepts, not wanting to work for the man… wanting to try the “work half time on your own” kinda thing…



It seems as though they are going to just talk about their experiences… I’ll try to pull out the juicy nuggets of information…



Robby just brought up a good point. Don’t start a business and try to write a book at the same time.



Fixed price bids? 2 to 3 month project… they can give them a rough estimate… but for larger projects, there should be a time and materials. There’s always comparison to cheaper, fixed bid scenarios… let them learn on their own time and not deal with them.



Blow them away with one iteration at the rate… tools and processes…



You can rewrite Gmail for $20,000 at $6 an hour =)



Tips for starting out on your own:




  • Marketing *



User groups, speaking, Geoffrey Grosenbach does it well, more than just getting your company’s name out, and get back to the community.




  • Contracts *



First one was 20 pages (don’t do that)… 1 to 2 pages is key. Email Andre Lewis (Earthcode) for a template. IP is the tough spot…




  • Employees *



Big decision… should you add employees? Not a huge fan of remote employees… stay away from contractors at first…




  • Incorporating *



DO IT NOW! Don’t risk your personal assets. Separate credit… separate taxes… definition of ownership.




  • Accounting and Finance *



Separate bank accounts… don’t cross those lines ever. American Express business card… buy something on it every month. Local banks rule and take your business seriously. Get to know the people at the bank. Have business insurance. $3,000 for $2,000,000 in coverage.



Finding a designer? Educating a freelancer? Taking on one as a designer… Don’t do it yourself. Start talking to designer user group.



Going independent will take a while to get a reasonable schedule… Find an office space to rent.



Overall a very good panel, since I’ve started my own business before (though it was not something I wanted to continue), it was good to hear more on the other side rather than just the pure government focused business aspects.



And there’s a marching band outside…

RailsConf 2007 - Exploring Virtual Clusters for Rails Development and Deployment

Posted by Jake Good
on May 19, 07

Tom Bradley of Rails Machine gave a talk on virtualization and how it can be used in a Ruby/Rails ecosystem…



Virtualization is a concept of splitting up servers on one physical box using virtual shared hardware… We all know what it is and how it can be helpful, maybe we can start to think about how to optimize it…



Shared Hardware: multiple core processors, lots of memory, lots of storage space, big network chunk… You want to ensure that there are dedicated resources that are predictable for the machine.



Why? Consolidate servers, isolate applications, replicate configurations, utilize ALL hardware, tune resource allocation…



His point of utilizing ALL the hardware is money smart… most of the time in a network environment you’ll have lots of CPU cycles and Memory that is there “just in case”.



Standard configurations of Rails stacks makes deployment easier and faster… standardized, repeatable deployment.



What is Rails Machine using?



40+ Hosting Servers -> 400+ Virtual Machines in 4 cabinets (30-40 on a 16GB physical machine and 6-14 on a 4GB physical machine)



No Going Back: powerful, flexible, low cost, rapid, security



Benefits for Rails? Development environments, memory isolation, resources for differences in traffic, protection against PHP/Java, multi-server scaling…



The idea boils down to creating one perfect image and using that over and over and make it simple… easy to deploy, just move the images and go…



Overall this talk was inspiring… when working with a very large Ruby on Rails application that has LOTS of hardware… there never seems to be hope… this gives me some hope.

RailsConf 2007 - Keynote #3

Posted by Jake Good
on May 19, 07

This morning… the keynotes have been ok…



First was a woman, Cyndi Mitchell from ThoughtWorks… the juicy core? RubyWorks… HAWT!



Second… was none other than, Tim Bray from Sun… product placement… Minneapolis’ Sun Celeb Charles Nutter even got up on stage… but yeah, nothing too crazy from this talk… we should be using ETags, etc…



Time to learn… keep watching, I’ll keep updating “live”…

RailsConf 2007 - Keynote #2

Posted by Jake Good
on May 19, 07

Last nights keynote was fantastic… they could not have had two better speakers…



First in the lineup was Avi Bryant, famous in the Smalltalk/Squeak/Seaside world… he’s super smart (from what he was talking about) and it really opened my eyes up, pushing me to go back to Smalltalk. Eugene Wallingford, an old professor of mine, was a HUGE fan of Smalltalk. I’m sure I’ll be playing around with some Squeak images soon. It’s like a future Ruby… a fast VM, commercial tools, and enterprise support.



Second in the lineup was my absolute favorite internet celebrity, ZeFrank. Before the keynote started I had to meet him and thank him for all of his humor on The Show. He talked about accelerating anxiety… and it was focused about content and user generated content. He had lots of insights and lots of content to show from the ORG. I’m suprised that more people did not know who he was, but I’m sure everyone will be going back to his site to check out his content.



Good keynote!

RailsConf 2007 - Transcoding High Quality Video with Ruby on Rails

Posted by Jake Good
on May 18, 07

Jon Dahl, a local Minneapolis Rubyist… gave a talk on video transcoding.



Once again, just some very high level information… got a few bits of information on how things are done, shown a little bit of Ruby code…



But Jon, I’m sorry man but it felt a little disorganized. Since I’ve worked with a video transcoding system with Rails I know what’s going on… it just didn’t seem to flow well.



Some people (one guy that sat next to me) actually left cause he got confused. :: shrugs ::



The articles (that Jon wrote) over on Rails Spikes would server a lot better than what he presented here…



It’s hit and miss and I’ve had plenty of talks that have gone worse…



The one thing I’ll give him is doing a VERY good job of showing sample videos of different codecs and bitrates.



(my excitement is building for the zefrank keynote).

RailsConf 2007 - Doing REST Right

Posted by Jake Good
on May 18, 07

Getting better…



My expectations for this talk was to get deeper into Ruby code… and I was quite suprised to see some (yet) more high level overviews of concepts.



There are three things to think about when talking REST:



Address - Interaction - Content



Address: My Name is URL (el-oh-el). Easy, this is the URL of the resource… a resource is just a name and a URL matches this perfectly. You’ll want the resource to have a very small and concise contract (hint, interaction).



Interaction: the Uniform Interface… using HTTP Protocol to lower and solidify the expectations of interactions (GET, POST, PUT, DELETE)



Content: simple content types and data. Keep it simple. vCard… etc.



The juicy core of the presentation came when he addressed several questions that he has recieved and what the RESTful response (har har har) would be to those questions…



Some that came up that were interesting:



1) Updating several resources at once - Just abstract that group of resources into another higher level resource. Same with partial results, reliability, transactions, and concurrency can all be taken care of by abstraction.



2) Authentication RESTfully - use cookies, just store all session stuff on the cookie instead of duplicating it and having the server manipulate it’s own state based on it.

RailsConf 2007 - Building Community Focused Apps with Rails

Posted by Jake Good
on May 18, 07

This was a very high level session that focuses more on the “what you should have known when building an app” rather than “how do you do feature of a community site”…



Here is the basic structure and some highlights:



Build a Plan



Resisting big infrastructure… Determine ownership… Revenue Stream that’s not ads… Don’t build features just because you think they’re cool…



Build the App



Think like a designer, make the front page “above the fold” (newspapers), use plugins, take code vacations.



Get Noticed



It’s a google world, smart URLs, leverage markup.



Recruit People



Obivous and easy to signup, require the least, Limit non-members, and create a API and developer network.



Decent presentation…

RailsConf 2007 Keynote

Posted by Jake Good
on May 18, 07

The RailsConf 2007 Keynote was somewhat interesting… some key things noted:



1) Time for Rails to make a statement, donate money to charity.



2) Rails 2.0 is coming, lots of small things and spring cleanup.



Somewhat interesting keynote just focusing on Rails 2.0… which the coolest part is Routes and HTTP performance…



Hit up the vendor area, starts to look like the normal vendor area for a conference… with some of the really cool guys there. EngineYard, ThoughtWorks Mingle, Sun, etc.

Out in Portland

Posted by Jake Good
on May 18, 07

Last night, we flew into Portland… it’s beautiful. Lots of trees and mountains and hills and homeless people.



Mt. Hood was amazing to look at… you don’t see that too often in Minneapolis.



Floated around downtown, had some sushi, and hit up a total rock dive bar equipped with torches on the entrance.



Pretty boring.



Portland is small… spread out… we’ll try to find some more stuff to do for the weekend.

RailsConf 2007

Posted by Jake Good
on May 17, 07

Leaving on a jet plane this afternoon for Portland, OR to attend RailsConf 2007



Will you be there? If so, drop me a line: jake@developstuff.com

Richard Dawkins in the TIME 100

Posted by Jake Good
on May 03, 07

It’s great to see Richard Dawkins up on the TIME 100 list… but why did they have Behe write the profile?



Are you SERIOUS? BEHE?



Read it and find out why it was a mistake.

Yeah RIGHT

Posted by Jake Good
on May 01, 07

huh? Yeah OK



Something wrong with this screen shot from my last.fm client?



(hint: read the Title - Album and Artist)