Nordic Ruby

Postad

Förra fredagen åkte jag, Robert och Mats ner till Göteborg för att gå på konferensen Nordic Ruby.

Lördag

Standing On the Shoulders of Giants

Corey Haines inledde konferensen med en uppmaning om att reflektera över hur och varför man arbetar som man gör.

“Message passing, not objects” “Lotus notes is a good document database”

Cucumber Inside

Aslak Hellesøy höll konferensens andra föreläsning och ämnet var inte helt oväntat testramverket Cucumber samt dess språk Gherkin vilket nu har extraherats till en gem.

Den imponerande prestandaökningen i Cucumber den senaste tiden beror på att man har bytt ut TreeTop mot Ragel.

Aslak nämnde även hur hooks i Cucumber fungerar.

Neo4j.rb - The Benefits of Graph Database

Andreas Ronge berättade om sitt projekt Neo4j.rb vilket är en grafdatabas för JRuby.

  • Inbäddad
  • ACID
  • Inga scheman
  • Inga externa beroenden
  • Enbart skrivlås

De två javabibliotek som är inblandade är Neo4j samt Lucene. Neo4j inkluderar ett flertal algoritmer, t.ex. Dijkstra.

Möjligheten att traversera djupa relationsgrafer verkar ha ett ganska begränsat användningsområde, men när man väl behöver göra det så är det säkerligen mycket kraftfullt.

Rubyists, you can write JavaScript again

Priset för konferensens effektfullaste introduktion måste gått till Dr Nic a.k.a. Iron Man.

Han började med att nämna att man kan köra JavaScript i Ruby med hjälp av Johnson (Mozilla SpiderMonkey) och att man kan använda capybara-envjs för att testa sina javascript på serversidan. Men efter det var det CoffeeScript som gällde.

“Capybara because it’s AWESOME”

CoffeeScript är i korta drag:

  • De bra delarna i JavaScript
  • Det Haml är för HTML och Sass är för CSS
  • Går att kombinera med alla JavaScript-bibliotek (jQuery!)
  • Kompilatorn är skriven i CoffeeScript! (Går alltså att köra i en webbläsare)
  • Implicita returvärden
  • Inga onödiga tecken
  • Går att köra i Node.js

Enough Design

Ian McFarland från Pivotal Labs pratade om agila designprocesser och hur viktigt det är med en kort “feedback loop”.

Han påpekade att det är viktigt att iterera över problem, oavsett storlek.

En bra design är:

  • Modulär
  • Principfast
  • Regelbaserad
  • UX > Pixlar!

The Ruby advantage - metaprogramming and DSLs (.pdf, 22MB)

Man kan inte bli annat än imponerad av Niclas Nilsson när han så “vårdslöst” tvingar Ruby att bete sig som han vill.

Han berättade om hur man med lite fantasi kan bygga ett internt DSL utan att för den skull ha tillgång till Rubys AST.

Han visade även sin gem properties.

Middag på SoHo

Lördagskvällen spenderade jag med att diskutera hackerspaces, användning av Ruby för utveckling mot Arduino, mikrobryggerier i USA och mycket annat.

Söndag

From artist to programmer

Dagens första föreläsning stod Keavy McMinn för, och hon pratade om likheter (och skillnader) mellan konstnärskap och programmering.

“Just make”

Några av hennes punkter

  • Var öppen för förändringar
  • Det går att bygga något utan initial finansiering
  • Vi utvecklas genom reflektion

The MongoDB Effect

Jag hade gärna sett att Durran Jordan och Les Hill hade fokuserat lite mer på Mongoid än vad de gjorde. Vi vet redan att MongoDB är häftigt.

Enligt Durran borde man ALLTID använda MongoDB.

Mongoid

  • Rails 2 och Rails 3
  • Atomiska operationer
  • Stora dataset
  • Grymt kriterie API
  • Scopes som tar block
  • Master/Slave

SOLID Ruby

Jag hade verkligen sett fram emot Jim Weirich föreläsning om SOLID och jag blev inte besviken.

Några av hans punkter

  • Fördela ansvaret
  • Monkey patchning i bibliotek är dåligt (Arv framför öppna klasser)
  • Protokoll är viktiga

Artificial stupidity, adding smarts to yer kode with a little machine learning

Konferensens tyngsta föreläsning (med råge) stod Randall Thomas från Engine Yard för.

Ämnet var datautvinning genom att använda statistikspråket R och RSRuby. Den enligt mig intressantaste delen av föreläsningen bestod i användningen av en support vector machine (KSVM i R) för att gruppera data och sedan använda detta för rekomendationer.

Böcker: Super Crunchers, Introductory Statistics with R

Software for the Human Animal

Hampton Catlin pratade om skillnaderna mellan manlig och kvinnlig design. Att vi inte är mycket mer än djur och att Internet är den nya vildmarken.

Han hävdade att vi människor generellt sett är självorganiserande och framförallt trevliga. Vi borde alltså sluta motverka på de fåtal användare som förstör och istället uppmuntra och belöna de användare som uppför sig.

Det finns inga dumma användare, bara dåliga gränssnitt som gör dem dumma.