Nordic Ruby 2012

Postad

Under förra helgen var jag (Peter), Johan, Mikael och PetterNordic Ruby.

Tidigare år har vi åkt ner till Göteborg, men i år flyttades konferensen till Stockholm, närmare bestämt till Yasuragi Hasseludden.

Fredag

När vi hade ätit frukost och druckit vårt morgonkaffe var det dags för konferensen att komma igång ordentligt.

Kaffe av Da Matteo

Someone is wrong

Konferensen inleddes av Joseph Wilk och han pratade om Retorik för programmerare. Han presenterade ett antal olika sätt att använda sig av retorik för att förstärka sina argument.

Code wins arguments

Han nämnde även på att känslor ofta överskuggar logik.

We don’t know HTTP

Den andra föreläsningen hölls av Konstantin Haase och han gick igenom de olika HTTP-verben och hur man egentligen borde använda dem. (Enligt Konstantin missbrukas POST i allt för stor utsträckning)

Ruby++

Ben Orenstein gick igenom några funktioner som det skulle vara trevligt om Ruby hade. Några exempel på detta var List comprehension och Significant whitespace (CoffeeScript/Python)

Haskell is a slightly inconvenient language for the normal developer

Han visade även hur elegant syntax LISP-dialekten Clojure har. En fördel med funktionella språk är att det generellt sett är väldigt enkelt att skriva tester.

Therapeutic Refactoring

Katrina Owen höll, enligt mig, en av konferensens absolut bästa föreläsningar.

Random acts of refactorings

Vi fick följa henne när hon steg för steg tog sig an uppgiften att förbättra en metod som varken var testad eller lätt att förstå.

Ett av hennes knep var att skriva nonsens-tester för att få reda på vad metoden returnerar.

Hon använde även designmöstret Replace Method with Method Object

Extract and then eliminate codejunk!

Hon nämnde också att det inte är någon bra idé att blanda flera nivåer av abstraktion i samma metod.

Kinect Programming with Ruby

Killarna på Thunderbolt Labs visade några hack de gjort med Processing, OpenNI, JRuby och Kinect. Tyvärr hade jag hoppats på något lite mer användbart.

Marketing for Geeks

Brian Doll föreläste om olika former av marknadsföring som kan vara användbara för oss utvecklare. Han tyckte verkligen att man ska hantera sin egen marknadsföring, speciellt som kommunikationen med kunder måste gå åt båda hållen.

En av hans rekomendationer var att läsa Voice and Tone från MailChimp.

Utsikt från Yasuragi

Lördag

Building an army of robots

Kyle Neath från GitHub visade ett flertal av deras interna system. (Det syntes verkligen att de lagt ner mycket tid på att bygga välfungerande och framför allt snygga applikationer)

Några exempel:

  • GitHub Play (Streamad musik till alla anställda)
  • En privat klient för Campfire
  • The Graph Store (Grafer för allt)
  • Janky (Ett snyggare gränssnitt till CI-servern Jenkins)

Han hävdade att interna verktyg är en viktig faktor när företagskulturen formas och att man därför borde satsa lite extra mycket på dem.

Mastering Database Design with Redis

Första halvan av föreläsningen bestod i en introduktion till Redis och vad den är bra på, andra halvan gick ut på att ignorera detta och använda Redis som en generell databas. Jag har lite svårt att se varför man skulle vilja begränsa sig på detta sätt. Redis har blivit något av en storfavorit, men det betyder inte att den lämpar sig speciellt bra för komplexa relationer, sökningar eller sortering.

Yay! Mocks!

Corey Haines pratade om Mocks eller snarare alla typer av Test Doubles.

Han hävdade att en anledning till att så många tycker illa om Test Doubles är att de representerar en “reaktion av smärta”.

Test Doubles often highlight pain

En tumregel är att man bara hanterar vad som ska göras i sina Controllers och inte hur, det är oftast bättre att delegera vidare till modellen.

Om testerna är svåra att skriva så ska man se det som en indikation att man kanske behöver förändra sin design så att koden blir enklare att testa.

TDD is about refactoring away from discomfort

Hans argument reflekterade mina egna erfarenheter och åsikter om att använda Stubs och Mocks.

Perfectionists Anonymous

Alan Gardner och Erin O’Brien höll en gemensam föreläsning om psykologin bakom perfektionism.

Tre punker som jag tyckte var extra bra:

  • Sätt inte skyhöga krav på dig själv
  • Lita på att andra gör ett bra jobb
  • Behandla varandra med respekt

De nämnde även #devmed, vilket är en mycket enkel meditationsform som jag utövat till och från sedan Rocky Mountain Ruby förra året.

Metrics Driven X

Aaron Quint berättade om något han kallade Continuous Process Delivery och vikten av att mäta allt.

Numbers are important but most important is positive change.

Det finns två typer av mätvärden, kvalitativa och kvantitativa;

  • Kvalitativa mätningar kan ses som tillväxthastigheten för produkten
  • Kvantitativa mätningar kan ses som accelerationen av produktens tillväxt

Tre av de verktyg som de använder för att mäta trender är Statsd, Graphite och deras eget projekt Graphiti.

Adventures on the Golden Path

Steve Klabnik beskrev resan från Rails 1 till uppkommande Rails 4.

Kortfattat kan man beskriva de olika versionerna såhär:

  1. Vi kan göra vad ni kan göra.
  2. Vi kan göra det ni kan, men bättre.
  3. Totalrenovering inför framtiden.
  4. Nytt fokus på utvecklarglädje.

Steve ser de starka sociala konventioner som bildats runt Ruby on Rails som en viktig anledning till att ramverket har blivit så populärt.

Några förbättringar som han skulle vilja se i Rails 4:

  • Ett bättre gränssnitt till routern: Route.article(1).edit
  • Att rake ersatte rails för alla kommandon som skrivs i terminalen.
  • Kommentarer i genererade modeller
  • Ingen delning av instansvariabler mellan kontroller och vyer.

Men han ser även att det skulle kunna ske lite förbättringar

Träd i dimma