Category Archives: Ruby

OIOREST ruby news

Min kollega Jesper Rønn-Jensen (fra justaddwater.dk) og jeg holdt i går et SmartLunch oplæg på Capgemini om REST, OIOREST og det ruby library som vi har arbejdet lidt med på det sidste.

SmartLunch er små interne 30-minutters præsentationer over frokosttallerkner, så det er ret kompakt vidensdeling. Hvis de ikke indeholder altfor interne ting og sager, er tanken at videovarianten (som vi i forvejen vil distribuere internt) bliver lagt ud til offentligt skue, som den præsentation om Scrum, som Jesper skrev om i marts. Det bliver også tilfældet med fredagens præsentation + powerpoint, når jeg lige får fundet ud hvordan iMovie fungerer.

Nå, men til det mere tekniske.

I tirsdags var der et hackathon i copenhagenrb regi, hvor 10-11 rubyhoveder sad sammen og hackede på dit og dat, og i den forbindelse var der nogle stykker der var med til at skrue på det rubylibrary til OIOREST.dk, jeg har arbejdet noget på på det sidste.

Projektet hedder oiorest og bor her på Google Code, men for at kunne distribuere udviklingen bedre og for at følge tidens trend, flyttede vi kodebasen over på github (med kyndig hjælp fra Jacob Atzen) og skiftede dermed source control systemet fra subversion til git. Det er vildt cool til open source projekter, men man skal liiiige have den mentale tunge lige i munden før konceptet sætter sig rigigt fast.

Det, som indtil videre må betragtes som main-branchen af grundbiblioteket kan findes her:

http://github.com/dalager/oiorest/tree/master.

Og så har vi oprettet et nyt projekt til eksempler på anvendelse: oiorest-rails-examples, som kan findes her:

http://github.com/dalager/oiorest-rails-examples/tree/master

Det er måske lidt lamt at have et projekt på google code og koden på github, men ligenu pusher jeg kode fra github til google code en gang imellem, men som udgangspunkt vil det altså være friskest at checke koden ud eller downloade den fra de github links ovenfor.

Jeg sidder i et tog og har mellem København og Århus implementeret adressesøgning, så det nu skulle kunne lade sig gøre at lave en klon af findvej.dk med ruby-biblioteket, men da jeg af en eller anden grund ikke kan lave en “git push” igennem min N82-som-modem-forbindelse uden at få en “fatal: The remote end hung up unexpectedly” i hovedet, så ryger det først op senere i dag eller i morgen aften.

Hvis nogen har lyst til at lave nogle fancy rails-eksempler eller synes det er sjovt at lave lækre generaliseringer af eksisterende kode af varierende lækkerhed eller har nogle gode ideer til, hvordan man bedst laver unittests og integrationstests til en REST-klient, så gå amok på de to links ovenfor. Og spørg endelig, hvis der er noget, så vil jeg prøve at svare.

Det var meget. Og nu ruller jeg ud fra banegården i Århus.

UPDATE: nu er github opdateret med oiorest plugin’et. Problemet var man åbentbart ikke kan pushe til et repository fra et git submodule, men skal gøre det fra et “main” repository. Har endnu ikke opdateret google code projektet. Hm, det begynder at ligne lidt noget organisatorisk rod. Må prøve at finde noget tid det at skrue en løsning sammen.

UPDATE 22/5: har commitet det nyeste github kode til projektet på google code. Check det ud derfra, hvis du ikke gider det der git-shite.

OIOREST workshop writeup

Jeg var i dag til workshop i It- og Telestyrelsen (ITST) i Bredgade, hvor emnet var REST i det offentlige.

Udgangspunktet var REST og den prototypeservice som ITST har stillet til rådighed på oiorest.dk.

Som jeg sidst skrev har jeg været med til at skrive et lille ruby library, som kan bruges til at tilgå de offentlige data, som udstilles på oiorest.dk, og det har vist sig at man på under 15 timer kan komme utroligt langt.

Vi var et par og tyve stykker og folk var blandede leverandører og offentlige arkitekturansvarlige, de fleste med et ønske om at finde ud af, hvad det der REST det egentlig er for noget. Så hvis man vidste noget om REST, mashups og web 2.0 så var der lidt tomgang i starten.

Der blev desværre brugt lidt for meget energi på at retfærdiggøre REST i forhold til WS-*, WSDL og SOAP, der blev forsvaret med næb og klør fra den etablerede enterprise verden.

En af de mere interessante diskussioner (open space, der fungerede fino) var udfordringen med at få data til folket. Under sloganet “Free Willy,” som René Løhde, evangelist fra Microsoft, skreg ud i lokalet.

Problemet er, at mange af de data som er offentlige og handler om os alle sammen faktisk ikke bare lige kan åbnes op til den brede offentlighed kvit og frit, da disse data er pålagt afgifter.

Offentlige data, som ikke er personfølsomme, findes i forskellige kategorier eller prisklasser. Noget data, som f.eks. CVR (Det centrale virksomhedsregister), sælger data til offentligheden gennem tre store distributører, og er selvfinanceret. Det vil sige at man ikke umiddelbart kan frigive offentlig virksomhedsdata uden at påvirke et eksisterende økosystem.

Der findes dog nogle lavthængende frugter, som godt kan frigives.

De data som repræsenteres i oiorest.dk skal gøres til en permanent løsning og fungere som et eksempel til efterfølgelse for andre offentlige instititutioner, og dette er allerede planen fra ITST’s side.
Men hvis det virkelig skal batte, så skal ITST eksponere disse data permanent med opdateret data så folk ude i landet kan få øjenene op for fordelene ved at bruge det. Smid lidt ekstra geodata oveni så valgkredse, skoledistrikter, kommuner og regioner også får polygoner til at definere deres geografiske afgrænsnin , så ville staten kunne glæde sig over de innovationsmuligheder der ville følge i kølvandet.
Det ville være en god start. Og der arbejdes på en lobbypressurgræsrodsbevægelse.

I mellemtiden prøver vi at få nogle flere med til at committe til vores lille OIORest ruby/rails plugin ActiveOIO – oiorest på google code. Hvis du vil være med, så smid mig en mail. Jeg skal nok hælde noget dokumentation i en readme-fil snart, men indtil videre står der noget på wikien.

Undskyld, det blev fandme et langt indlæg…

Danmark eksponeret som REST

It- og Telestyrelsen har smidt et midlertidigt eksperiment i luften: Danmark web service – et REST eksperiment

Det er superfedt.

Det gør det muligt med meget lidt kode at trække offentligt tilgængelige oplysninger ud af etaten — om kommuner, sogne, postdistrikter, valgdistrikter, skoledistrikter, adresser og regioner. Se deres eksempler her.

Kollega Jesper fra justaddwater.dk og jeg flikkede i aftes et one-file-lib sammen, som gør det muligt at bruge oiorest.dk som en ActiveResource fra Rails/Ruby. ActiveOIO klassen er lagt ud på google code, find den her. For railsfolk kan vejledning indtil videre findes i denne tråd fra CopenhagenRBs udmærkede google gruppe/mailinglist.

Endnu er det ikke helt klart, hvor OIOREST er på vej hen og vores lille proof-of-concept kan ikke trække så meget af vores energi da servicen ikke er noget man som sådan kan stole på bliver i denne verden, for som ITST siger på sitet:

Formålet med web servicen er dels at ekseperimentere med design af REST baserede web services; dels at vise et eksempel på et design af en REST baseret web service. Formålet er ikke at etablere en driftklar web service. Danmark web servicen lukkes når den har opfyldt sit formål.

Så selvom kodefristelsen lurer er det begrænset hvor meget tid man har lyst til at kaste efter noget der risikerer at blive lukket uden varsel.

Hvis man er til den slags, så er der også en workshop d. 22 april, hvor man sikkert kan få lidt mere fremtid. Hvis man ikke havde en i forvejen.

Update 5/4: så har jeg lavet oiorest/ActiveOIO projektet på google code om til et  rails plugin og kodet lidt mere på det, så det kan bruges ud af boksen. Se instruktioner på wikien. Og giv endelig lyd hvis du har lyst til at bidrage selv!

Natnrderi

Jeg burde være i byen, til koncert med Megadeth eller bare sove.

I stedet er jeg ved at blive sindssyg i mit forsøg på at bygge Mono på OS X – omtrent sådan her, men det spiller ikke rigtigt.

Målet er at eksperimentere med IronRuby under OS X, men jeg nærmer mig snart det punkt, hvor jeg hopper over smertegrænsen og bare laver mine eksperimenter under Windows XP gennem VMWare Fusion. Der må også være grænser for, hvor stædig man kan tillade sig at være.

Omstilling vha Ruby

På det projekt jeg sidder på i øjeblikket har vi en vagtordning, hvor folk skiftes til at have omstillet en telefon til sig.

Det gøres manuelt ved at man, når man har vagten, logger ind på en tdc-side og ‘tager vagttelefonen’ ved at indtaste sit eget telefonnummer i forwarding feltet.

Vagtplanen distribueres pr mail og på en projekt-wiki.

Der er så mange irritationsmomenter ved det, at jeg greb ned i værktøjskassen og fandt ruby-skruenøglen frem.

På et par timer blev der skrevet 49 linjer ruby, der hver morgen kl. 6:00

  1. læser vagtplanen fra en google-kalender, registreret som initialer der er dagsarrangementer
  2. finder telefonnummeret til dagens vagt i en lokal yml-fil
  3. logger på TDCs omstillingsbord og skifter telefonen over.

Nu kan alle abonnere på vagtplanen i deres egen google kalender eller bare klikke sig ind på den offentlige URL fra wikien.

Damn, det var snildt.

– Brugte Mechanize til automatisering og et ruby-api til googlecalendar

PS: view source for the faint of heart

IronRuby og open source bevægelsen

I øjeblikket kører der en interessant og rather-intense-ish diskussion på mailinglisten for Microsofts IronRuby.

Charles Oliver Nutter fra Sun og med- om ikke hovedansvarlig for JRuby, startede tråden “Public versus private discussion and community momentum“.

I know there’s always thoughts about secrecy and springing the next big software surprise on the world when working at Microsoft, but secrecy is poison to an OSS community. If you want to get people excited about helping out and getting involved, you can’t keep them in the dark about portions of the development process.

Kernen i diskussionen er spørgsmålet om Microsoft med deres Open Source tilgang til IronRuby er villige til at tage skridtet fuldt ud og åbne for de interne diskussioner om udviklingen af IronRuby og DLR.

IronRuby landet

Så er den første sending af Microsofts ruby-implementation, IronRuby, landet.

John Lam annoncerer her, og ScottGu uddyber.

Hanselman demoer også.

Det er stadig pre-alpha, så forvent ikke De Gyldne Løver på DVD, men man kan compile og fx køre eksempler, hvor man jonglerer WPF med Ruby.

Både IronRuby microsofts DLR (dynamic language runtime, der er et dynamisk lag ovenpå CLR’en) bliver open sourcet så det er slet ikke så skidt og ondt endda.