Rocky Mountain Ruby 2011

Boulder Theatre

För lite mer än en vecka sedan kom jag hem från Colorado och konferensen Rocky Mountain Ruby, förra året hette den Mountain.rb men det var tydligen många som misstog den för MountainWest RubyConf så arrangörerna valde helt sonika att byta namn på konferensen. Precis som förra året hölls den på Boulder Theater.

Charity Workshops (31/8)

Dagen innan konferensen började arrangerades det ett antal halvdagslånga välgörenhets-workshops.

Vital Testing

På förmiddagen valde jag att medverka i Vital Testing med Jim Weirich.

Jim inledde med att ge tips på vad snarare än hur man borde testa. Efter det fortsatte vi med att jobba på några enkla problem/katas. Vi fick välja en partner att parprogrammera med, jobba ett litet tag för att sedan kasta koden, byta partner och upprepa övningen.

if is only a loop run once.

TDD Javascript and Rails 3.1

Efter lunch anslöt jag och några nyfunna vänner till TDD Javascript and Rails 3.1Trada Codespace. Vi fick lära oss mer om hur Asset Pipeline i Ruby on Rails 3.1 fungerar och hur man testar sin JavaScript-kod med QUnit och Jasmine.

Jag gillade hur de hade förberett två git-repos med kod där vi fick översätta tester från ett testramverk till det andra, samt välja mellan CoffeeScript och JavaScript.

Torsdag (1/9)

Focus? Why Do I Need More Stinkin’ Focus?

Mike Gehard inledde konferensen med att övertyga oss om att fokus är något man måste öva på. En metod för detta är att meditera, självklart hade han en hashtag för detta: #devmed

Keynote

Michael Feathers pratade om hur man tar reda på vilken kod som behöver bytas ut, hur man planerar för ersättningen, osv. Han nämnde även Conway’s law.

API Design Matters

Anthony Eden, lika välklädd som vanligt, höll en mycket bra föreläsning om API-design. Även fast jag såg en tidigare version av föreläsningen på Nordic Ruby så var det informativt.

Han nämnde även att man ska fokusera på klienten först, sen kan man börja tänka på implementationen. Lästips: Little manual of API design (PDF).

Enligt Anthony ska ett API vara:

  1. Lätt att bygga vidare på
  2. Svårt att missbruka
  3. Tillräckligt kraftfullt

CRUD Is Not REST - Hypermedia For Y’All!

Nick Sutterer pratade om HATEOAS eller Hypermedia as the Engine of Application State och varför CRUD inte är REST! Till skillnad från föreläsningen om HATEOAS på Øredev 2010 (där man använde XHTML) så kombinerade Nick representationen av datat och länkarna i JSON.

Självklart hade han skrivit ett bibliotek för att göra detta på ett smidigt sätt. Roar! eller RESTful, resource-oriented architectures in Ruby. Han rekomenderade även böckerna REST in Practice och RESTful Web Services Cookbook.

If You See the Mountain Lion, It’s Too Late

Grant Blakeman berättade om “design thinking” och hur det går att applicera på det mesta, inte bara grafisk design.

Things you didn’t know about Exceptions

Avdi Grimm pratade om kreativ felhantering i Ruby. Ett av tipsen var att kalla på raise inne i rescue. Han har även skrivit Hammertime, en interaktiv felkonsoll för Ruby. Jag kan definitivt rekomendera att köpa hans ebok Exceptional Ruby - Master the art of handling failure in Ruby.

Mastering the Ruby Debugger

Detta var ljug, på ett bra sätt… Jim berättade istället om IRB-ersättaren Pry.

Cognitive Psychology and the Zen of Code

Jay ZeschinBit Theory pratade om kognitiv psykologi. Mer specifikt så handlade det om heuristik, mönsterigenkänning och om hur man kan “hacka” metakognition. Han tipsade även om boken Blink: The Power of Thinking Without Thinking.

Ignite Boulder Sweet 16

På kvällen deltog jag i Ignite Boulder och det var lika inspirerande och galet som jag hört folk berätta om tidigare. Bland annat försökte min kompis Prakash att förklara de något omständiga reglerna i Cricket.

Formatet för Ignite är väldigt enkelt:

(Arrangörerna kommer snart att posta videos från eventet på YouTube)

Fredag (2/9)

Real Time Rack

Konstantin Haase pratade om hur man kan vrida och vända på Rack för att få streaming (HTTP server push) att fungera. Alternativen som presenterades var Server-Sent Events (envägs, enkelt, klienten går att implementera i JavaScript) och WebSockets (tvåvägs, men stöds sällan).

Ruby Messaging Patterns

Gerred Dillon berättade om AMQP och hur man kan använda ett kösystem för att förenkla kommunikationen med “Enterprise”-system. Han nämnde även Chef, EventMachine och Redis.

Cloning Twitter: Rails + Cassandra = Scalable Sharing

Charles Max Wood berättade om ett kundprojekt som i stort sett gick ut på att bygga en klon av Twitter… med Cassandra som databas.

Begrepp som nämndes: Brewer’s CAP Theorem och Thrift. Han har även börjat jobba på ett ORM för Cassandra som han däpt till Sandra.

Länkar till några presentationer

Lördag (3/9)

När jag ätit frukost gick jag till Boulder County Farmers’ Market för att sedan fortsätta upp på vandringsleden förbi Red Rocks. Jag åt självklart lunch på Mountain Sun, beställ Tim’s Blackened Chicken Quesadilla så förstår du varför. Eftermiddagen spenderades på The Cup tillsammans med min kompis Ben. Vi snackade kod och hackade lite på min gem Pinch.

Resten av helgen gick åt att flyga hem till Stockholm :)

Uppdatering: Nu ligger några av de filmade presentationerna uppe på Confreaks

// Peter