Thomas Flemming

Programmerer


Hvem er du, og hva holder du på med?

Jeg jobber som webutvikler på Universitetets Senter for Informasjonsteknologi (USIT) i Oslo. I tillegg programmer jeg for tiden i Ruby on Rails som frilanser hos baretilbud.no.

Jeg har også egne prosjekter som nettstedet bygninger.no. Formålet med nettstedet er å tilby nabovarsel på e-post når det søkes om byggetillatelse innenfor et angitt område. Tjenesten er gratis og ble lansert i vinter. For eksempel hvis du har registrert deg som bruker, markert på kartet hvor du bor og hvor stor radiusen på området rundt du er interessert i, vil du få en e-post med en oppsummering av alle nye byggesøknader.

På Universitetet jobber jeg i en gruppe som utvikler webapplikasjoner internt for UiO. I tillegg til å programmere Java og JavaScript, skriver jeg scripts i Ruby for å legge over websider fra de gamle nettstedene til Universitet over til et nytt CMS utviklet internt. Det er over 1,5 millioner websider på serverne til Universitetet, så det er mye å hente på automatisering av flytting og administrering.

Hvis du leser hele dette intervjuet bør du antagelig følge meg på Github og Twitter.

Hva slags hardware og dingser bruker du?

Jeg har en MacBook Pro med OSX, 15 tommers skjerm, 2.8 Ghz Intel Core 2 Duo prosessor, 4 Gig RAM og 320 Gig harddisk. Det er under to år siden jeg gikk over fra Linux til Mac. Det avgjørende for meg var den store styreflaten uten knapper og med multitouch. På tidligere maskiner jeg har hatt, har styreflaten vært for liten til å være god å bruke.

På USIT bruker jeg en standard 24 tommers Dell G2410 flatskjerm, og et stort eksternt tastatur fra Apple. I begynnelsen føltes det som om jeg trommet fingrene rett ned på bordflaten når jeg skrev på de lave tastene, men nå liker jeg at jeg ikke må trykke så langt ned på tastene.

I bokhyllen har jeg en Western Digital MyBook ekstern harddisk på 1TB med FireWire i børstet aluminium, som brukes til å ta backup med. Jeg liker veldig godt brukergrensesnittet på Time Machine og tidsmaskinmetaforen de har brukt. Det er som å se en science fiction film når Time Machine bytter ut bakgrunnsbildet på skrivebordet med en animert bakgrunn med stjerner og planeter når man reiser tilbake i tid for å hente frem gamle versjoner av filer.

Før man kan begynne å bruke en ny maskin med OSX, er det helt nødvendig å endre mange av tastatursnarveiene som Apple har lagt inn i operativsystemet siden 1984. Flere av snarveiene er laget for amerikansk tastatur og helt ubrukelige på norsk tastatur. For å bla gjennom vinduene til et program, må man trykke ned tre taster samtidig. Heldigvis er det lett å endre alle snarveiene. Jeg bruker for eksempel Cmd-< for å bla igjennom vinduene til programmer. Dessverre er snarveien Cmd-< i bruk på noen programmer, men det er mulig å leve med det. I standardoppsettet til Apple brukes kontrolltasten og piltaster til å bevege seg mellom de ulike virtuelle skrivebordsflatene. De samme tastene er også vanlig å bruke i Emacs for å bevege seg mellom ord, avsnitt og kodeblokker.

Musen er en stor Microsoft IntelliMouse Explorer med 5 knapper og et stort scrollehjul. Jeg har prøvd å bruke Apples Magic Mouse, men jeg synes batteriene gjør den for tung og den flate fasongen gjør at den ikke ligger like godt i hånden som en stor ergonomisk mus.

Jeg ringer med en iPhone 4. At jeg ikke har tilgang til filsystemet på telefonen min eller har mulighet til å modifisere på brukergrensesnittet på telefonen, har egentlig aldri plaget meg.

Veldig ofte trenger jeg å ha på et par Sennheiser HD 428 hodetelefoner med store, myke øreklokker, for å kunne jobbe konsentrert på kontoret.

Av og til bruker jeg en iPad vi har på USIT, men det har vært mest for å sjekke at bygninger.no fungerer på iPad. Jeg vil heller ha en Kindle uten bakgrunnsbelysning.

Og hva slags software?

Når jeg programmerer i java bruker jeg Eclipse. Til Ruby, Javascript, CSS og alt annet bruker jeg Emacs. Etter noen år når begynner Emacs å sitte i fingrene, og jeg slipper å tenke når jeg bruker den eller bli distrahert av dialogvinduer.

Google Chrome brukes som standard nettleser, og for å debugge CSS og JavaScript. I Chrome har jeg installert flere plugins. Blant annet FlashBlocker som fjerner flashanimasjoner, og WebDeveloper for å validere html og css hos w3.org.

Når jeg utvikler bygninger.no kjører jeg SQLite som database lokalt, og PostgreSQL på serversiden hos Heroku. Jeg bruker SQLite Manager for å administrere å kjørre spørringer mot SQLite. SQLite Manager er en Firefox plugin, og stort sett det eneste jeg bruker Firefox til.

Nylig kjøpte jeg en lisens til gitklienten Tower for OSX. Tower gjør det enklere å commite bare deler av en fil til repository og gir god oversikt over endringer i filer, men jeg bruker fremdeles mest git fra kommandolinjen.

For å teste websider i Internet Explorer, kjører jeg Windows XP i VirtualBox PC emulator. I såkalt seamless mode, viser VirtualBox Internet Explorer i et vindu som om det skulle vært et OSX program.

Når jeg utvikler på baretilbud.no, kjører jeg Ubuntu i VirtualBox for å få et utviklingsmiljø som er mest mulig likt miljøet som brukes i produksjon. I forrige måned fikk vi inn en ny utvikler som brukte Mac, og da var det veldig lettvint å kunne gi ham et komplett snapshot av utviklingsmiljøet med Ubuntu på en minnepinne.

På Ubuntu kjører jeg sambashare for å få tilgang til filene fra OSX. VirtualBox har også funksjonalitet for å dele en folder så den er tilgjengelig å begge operativsystemene man kjører, men når jeg skrudde av denne fildelingen og gikk over til samba, så økte ytelsen på Ubuntu dramatisk. Det er også mye enklere å installere postgresql og biblioteker på Ubuntu enn på OSX.

Presentasjoner lager jeg i Apples KeyNote. Til e-post og kalender bruker jeg Apples Mail og iCal. Det hender også at jeg plugger inn både elgitaren og USB keyboard til laptopen og kjører GarageBand.

På iPhone er NanoStudio den dyreste appen jeg har kjøpt. Jeg har alltid vært mer glad i å lage lyd enn å spille spill. NanoStudio er ikke egnet til seriøs musikkproduksjon, men ellers har den overraskende mye av den samme funksjonaliteten som GarageBand. Det er god pianorullredigering, god redigering av lydfiler og bra presets i synthene.

Hva er drømmeoppsettet ditt?

Jeg ønsker meg en bærbar maskin som ikke blir så varm. Sitter jeg med laptopen i fanget i sofaen og ser på video på Vimeo, tar det ikke lang tid før maskinen blir veldig varm og viften begynner å bråke som et modellfly. Selv om jeg allerede har tre barn, ønsker jeg ikke at “familiejuvelene” i buksene skal bli kokt. På Vimeo kan man velge mellom å bruke Flash eller såkalt HTML5 for spille av video, men maskinen blir like varm uansett.

Apples iPad utvikler veldig lite varme og bruker veldig lite strøm, og har en RISC-prosessor fra ARM som også vanligvis brukes i Android-telefoner. En enda tynnere og lettere maskin enn MacBook Air med en prosessor som bruker mye mindre strøm og utvikler mye mindre varme, hadde antagelig vært drømmeutstyret mitt akkurat nå.