Igår höll jag i internutbildningen på vårt månadsmöte, denna gång berättade jag om autentiseringsramverket Warden och lite kort om Rack.
Publicerad 30 oktober, 2010 av Peter Hellberg
Publicerad 30 oktober, 2010 av Peter Hellberg
Under Athega Code Base byggde jag en helt ny version av en webbapplikation som jag för två år sedan byggde i Ruby on Rails och Geokit. Denna gång valde jag att använda ramverket Sinatra, databasen MongoDB (genom Mongomatic) samt att hosta allt på Heroku och MongoHQ.
Vad jag blev mest imponerad över var det inbyggda stödet för geospatial indexing i MongoDB samt hur enkelt det var att jobba med Heroku.
Gränssnittet är utvecklat med hjälp av biblioteket jQuery Mobile och det har visat sig fungera mycket bättre än jQTouch som jag tidigare har använt. Vad jag speciellt gillade var den inbyggda routern.
Publicerad 19 oktober, 2010 av Peter Hellberg


Jim höll i konferensens första keynote, titeln löd och innehöll allt från Speciella relativitetsteorin, rymdresor och Jims släktskap med folkgruppen Amish.
Our world is stranger than we think
Jim identifierade några områden som går att förbättra:

Jay berättade om Ruboto vilket är ett projekt som gör det möjligt att köra Ruby under Android.
Som demonstration körde han en DRb server med Ruby Processing som han sedan fjärrstyrde från sin Androidmobil.
Tydligen har Dalvik en väldigt långsam reflektion, men det är något man aktivt jobbar med att lösa.
Kortfattat kan man säga att föreläsningen handlade om att välja rätt verktyg för jobbet.
Common sense isnt’t that common
De steg som Wayne gick igenom var:
Wayne är kanske mest känd för att ha skapat versionshanteraren RVM.
Tony berättade om Reia (uttalas RAY-uh), vilket är ett Ruby/Python-liknande språk som körs under Erlangs VM (BEAM)
Projektet är i sin linda, men källkoden ligger självklart på GitHub så det är bara att sätta igång och experimentera om man känner att man behöver en något trevligare syntax än vad Erlang erbjuder. En trevlig liten detalj är att en JSON-parser finns inbyggd i språket. Stränghanteringen är även helt OK, men inte direkt snabb.
The fun syntax isn’t that FUN in Erlang
Under lunchen snackade jag lite med Joshua Timberman (@jtimberman) från Opscode. De utvecklar verktyget Chef vilket används för deployment och konfiguration av servrar på infrastrukturnivå (Server configuration management). Som alternativ kan man nämna Puppet från Puppet Labs.
Evan gick igenom hur man driver ett lyckat open source-projekt. Fyra av de viktigaste poängerna var:

Fork for LOVE!
Det självklara exempelprojektet var hans eget heltidsprojekt Rubinius. (En implementation av Ruby, Engine Yard sponsrar utvecklingen)
Projektet har många utvecklare då man från början bestämt att det räcker med en enda patch för att få commit-rättigheter. Evan beskrev lätta buggfixar som lågt hängande frukt och en “gateway drug” för nya utvecklare.
De har haft färre än 10 reverts under de tre år som projektet har funnits. Mycket beroende på det sociala kontraktet mellan utvecklarna.

Joe berättade om sina erfarenheter som säljare och varför försäljning fått ett så dåligt rykte. Hans poäng var att försäljning handlar om att identifiera behov och hitta lösningar som passar båda parter. (Ganska likt det vi utvecklare gör) Han fortsatte även med att alla anställda är säljande, oavsett yrkesroll.
Peter hade en ganska generell genomgång av geospatiell mappning (projektion/geometri) samt en snabb genomgång av projekten GeoRuby, PostGIS och OpenLayers.

Jay från Factory Design Labs avslutade dagens föreläsningar med lite tips för de som sitter fast i långtgående projekt, föråldrade projektmodeller eller legacy-system. Han nämnde även den stora tekniska skuld som (oftast) finns i projekt av den typen.
A project is a relationship
Developers have a vast amount of domain knowledge
Jay hade även en lista på vad man bör göra för att rädda ett projekt av denna typ:
På kvällen gick vi till Quick Left och fortsatte diskussionerna, kodade lite och käkade pizza.
Publicerad 28 maj, 2010 av Peter Hellberg
Förra fredagen åkte jag, Robert och Mats ner till Göteborg för att gå på konferensen Nordic Ruby.
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”
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.
Andreas Ronge berättade om sitt projekt Neo4j.rb vilket är en grafdatabas för JRuby.
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.
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:
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:
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.
Lördagskvällen spenderade jag med att diskutera hackerspaces, användning av Ruby för utveckling mot Arduino, mikrobryggerier i USA och mycket annat.
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”
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.
Jag hade verkligen sett fram emot Jim Weirich föreläsning om SOLID och jag blev inte besviken.
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
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.
Publicerad 9 maj, 2010 av Peter Hellberg
I fredags gick konferensen Frozen Rails av stapeln i Helsingfors och Athega var självklart representerade.
Konferensen inleddes av Chris Wanstrath som gick igenom hur Ruby on Rails används på GitHub. Vi fick även reda på hur de använder Git (grit, smoke, chimney) och hur de hanterar meddelandeköer (resque).
Några av projekten som nämndes:
Dagens andra föreläsning hölls av José Valim från Plataforma tecnologia. José pratade om autentiseringslösningen Devise (bygger på Warden), domänspråket simple_form (inspirerat av Formtastic) samt Responders vilket är en utbyggnad av respond_with i Rails 3. Lite rörig föreläsning men med många intressanta projekt, kommer speciellt hålla koll på Devise.
Jag har sedan jag bloggade om MongoDB första gången varit intresserad av projektet och nu fick vi verkligen en bra genomgång av 10gen’s Michael Dirolf.
Översikt av MongoDB:

Även om jag sett föreläsningen tidigare (Efter Philly ETE, Emerging Technologies for the Enterprise) så var det bra att få se den live så att säga.
Några av punkterna som Yehuda berörde:
Projekt:

(Foto: Chris Comella)
Den bästa föreläsningen på hela konferensen stod Joseph Wilk för, ämnet var Cucumber och mer specifikt hur man ser till att testerna går så fort som möjligt. (Cucumber 0.7 är för övrigt så galet snabb att det inte ens är roligt nu när de bytt från TreeTop till Ragel)
Några av Josephs punkter:
Jonathan hade ett digert uppdrag framför sig då konferensdeltagarna direkt jämförde allt med hur det fungerar i MongoDB. Tyvärr var exemplen lite för enkla och visade inte riktigt på styrkan i CouchDB, snarare att det är “svårare” att ställa enkla frågor än med SQL då man måste implementera map/reduce i JavaScript själv. (Vilket är en BRA grej när man gör lite mer avancerade saker)
Några av punkterna:
Priset för den nervösaste killen på hela konferensen måste ha gått till Jarkko. Förutom detta var det en grym sista föreläsning om hur vi perfektionister ofta har problem med att skeppa något innan det är helt perfekt. (vilket det kanske aldrig blir) Han rekomenderade även boken The Cluetrain Manifesto (hela bokens text)
Oh, hela konferensen filmades så när filmerna dyker upp på nätet så länkar jag dem här.