Mats Lindh

Utvikler, innvikler og hacker


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

Jeg heter Mats og driver stort sett med data. Stort sett involverer dette programmering av ymse sort, mest for tjenester levert via det verdensomspennende internettet, men også sporadisk helt andre ting.

Til daglig jobber jeg med lokalsøk for et selskap under A-pressen, samtidig som jeg også er teknisk ansvarlig for plattformen til Gamer.no, driver et turneringsnettsted for e-sport og tukler med diverse andre småprosjekter som jeg prøver å få satt av tid til i innimellom.

På fritiden driver jeg stort sett med det samme, selv om jeg også prøver å få dyttet inn litt tid til spill og moro (stort sett på Xbox, med mindre det er snakk om Battlefield 3 eller Team Fortress 2), samt at jeg i sommerhalvåret prøver å få brukt så mye tid som mulig på sykkelsetet ute i skogen og langs lokale veier i Østfold. Dette har også resultert i et av de andre prosjektene jeg leker med om dagen, gone.fm, en enkel nettjeneste for å dele GPS-spor fra syklister.

Utdanningsmessig har jeg bakgrunn fra to år på NTNU og deretter Høgskolen i Østfold, der jeg skrev masteroppgaven min innenfor informatikk og digitale kart på hvordan man kan bruke smarttelefoner for å samle trafikkinformasjon, både aktivt fra deltagerene og passivt fra telefonens bevegelser. Jeg er derfor glad i alt som har med kart og geodata å gjøre, noe som helt sikkert kommer fra min fascinasjon med ned-til-beinet programmering (som det dessverre blir mindre og mindre tid til etter hvert).

Jeg driver også en teknisk blogg som jeg poster løsninger på problemene jeg kommer over i løpet av arbeidsdagene på, en blogg som befinner seg på e-mats.org.

Hva slags hardware og dingser bruker du?

Jeg er en stødig tilhenger av at en desktopmaskin er det definitivt beste verktøyet i en arbeidssituasjon. Jeg liker å ha SSD, hauger av RAM og en grei prosessor, samtidig som jeg må ha brukbart med skjermflate for å få jobbet effektivt. Det går i en enkel 24” på jobb, doble 24”-ere på hjemmekontoret, med så mye minne som hovedkortetene klarer å spise. Jeg har også en bærbar maskin, en (nå) klassisk ThinkPad x60s, og er storfornøyd med den. Som veldig mange andre i samme fagfelt sverger jeg til ThinkPad-er når det kommer til bærbare maskiner, og har gjort det de siste ti årene. Dette er en forholdsvis liten og lett maskin (med 12”-skjerm), og passer finfint for enkel hacking i sofaen eller på et tog, på konferanser eller i møter. Jeg er ellers ikke så opptatt av maskinvare lenger, men endte opp med på oppgraderingskjøret når Battlefield 3 nærmet seg.

På mobilfronten er det en Galaxy S II som gjør tjeneste om dagen, etter at jeg endelig ble overbevist om at det var på tide å bytte ut den gamle Nokia N95-en som knapt nok hang sammen lenger. Jeg har ikke fått skrevet noe kode for Android ennå, men det er på lista over ting som jeg har et håp om å få sett på etter hvert (spesielt i sammenheng med Gamer.no - vi har mange tjenester som kunne ha passet i en mobilsammenheng). Vi har også en iPad i heimen, men den er det ikke undertegnede som bruker. Ellers er det den vanlige samlingen med konsoller for folk som også jobber i spillbransjen, en Xbox 360, en PS3, en Wii, en Nintendo DS og en PSP. DS-en blir ofte med ut på tur, men da jeg var i USA nå i september viste det seg at Android har helt tatt over som spillmaskin når jeg er ute på reisefot. En ting mindre å ta med seg i framtiden!

Som medieavspiller bruker jeg en Boxee (som kjører XBMC), og som jeg har så vidt lekehacket litt mot for å se på on demand-levering av spillvideoer fra Gamer. Selve boksen fungerer flott (og som jeg byttet ut fra en Popcorn Hour da det var enkelte ting PH-en slet med å spille av ordentlig, og jeg uansett trengte en avspiller til). På musikkfronten er hele huset dekket av Sonos, som jeg gikk over til etter å ha brukt Squeezebox i mange år. Det er en av de mer fornuftige overgangene jeg har gjort, og Sonos-systemet har fungert prikkfritt (utover at det var noe inkompabilitet i å kjøre fjernkontrollen under wine) til både Spotify-bruk og streaming av lokalt innhold fra nettverksharddiskene hjemme. Aldri noe oppsettsproblem, ikke noe behov for tilpasset programvare på musikkserverene, støtte for musikktjenester, automagisk oppgradering av boksene selv og fjernkontroll både på iOS og på Android gjør at det rett og slett er en minirevolusjon av hvordan musikk oppleves i heimen.

Jeg er i tillegg glad i å ta bilder, men har av ymse grunner ikke valgt å oppdatere meg på kamerafronten ennå. Det betyr at jeg fortsatt leker med mitt noe eldgamle Canon EOS 350D, der jeg heller har lagt penger i optikk enn i nytt kamera foreløpig. Nå venter jeg i spenning på om det kommer en 5D Mark III snart, og får heller vurdere å oppgradere når det i tilfelle skjer. I høst gikk jeg også til innkjøp av et Canon Powershot G12 til å bruke som reisekamera i de tilfellene hvor det ikke er så morsomt å dra med seg 15kg fotoutstyr, og skaffet også et GoPro HD til å bruke for å filme bilkjøring og sykling i skogen. Fortsatt spent på resultatene av å bruke det på sykkelen, men forhåpentligvis blir det muligheter for å få testet dette i praksis etter hvert som vinteren glir forbi.

En ting du imidlertid ikke kødder med er tastaturet mitt. Her holder jeg fortsatt hardt på Keytronic KT2001 - et aldeles fantastisk tastatur. Det har ingenting av disse moderne duppeditteriene, fin tastemotstand og akkurat passe med lyd. Det er selve toppunktet innenfor tastaturutviklingen, og derfor har det selvsagt blitt slik at det ikke produseres lenger. Jeg klarte heldigvis å få tak i en eske med en 6-8 tastaturer fra en lokal skole da de skulle kaste en haug med ting, så jeg satser på at jeg overlever fram til det ikke er flere reservedeler igjen (.. eller hvis noen som leser dette har tastatur til overs … mail. nå.). Passende nok har den nye maskina ikke lenger PS/2-plugg, så nå jobber jeg med å få tak i en god PS/2 -> USB-adapter som faktisk fungerer ordentlig (det finnes USB-versjoner av KT2001, og heldigvis har jeg fått et tastatur donert nå - så takk til Eirik). Ettersom jeg selvsagt også har tatt med meg mitt eget KT2001 på jobben hender det rett som det er at noen reagerer på at jeg sitter med et “eldgammelt tastatur”. De skulle bare ha visst.

Og hva slags software?

Jeg tilbringer absolutt mest tid i Ubuntu, ettersom jeg har både jobbmaskin og laptop kjørende med det. De siste femten årene har jeg vært på-og-av Linux-kjøret i jevne perioder, og har etter hvert stort sett endt opp at jeg har maskiner med både Windows og Linux kjørende samtidig. Etter å startet med Slackware tilbake i 1996 gikk jeg heldigvis raskt over til debian rundt årtusenskiftet, og da Ubuntu klarte å holde ting litt mer bleeding edge etter hvert ble det en naturlig vei videre. Nesten alt jeg bruker av programvare er uansett kryssplattform, og jeg kjører VirtualBox for å få tilgang til en Windows XP-installasjon (for å få brukt Office på jobb) når jeg er på Ubuntu og en Ubuntu-installasjon når jeg er på Windows (for å bruke enkelte ting som ikke det finnes kryssplattformversjoner av).

Av utviklingsverktøy bruker jeg en haug med forskjellige programmer; jeg programmerer stort sett PHP eller Python, samt at jeg til tider må skrive Java eller C/C++ (og til nød C#). Det meste av PHP-utvikling gjør jeg nå med NetBeans, og baserer seg stort sett på Apache eller nginx som webserver og MySQL eller PostgreSQL som databasetjener i bakgrunnen. For Python bruker jeg stort sett en enkel editor (og ikke en IDE-løsning som NetBeans), og da blir det stort sett den editoren jeg har tilgjengelig der og da. Dette er stort sett enten gedit (om det er lokalt på maskina), nano, vim eller emacs, ev. Notepad++ jeg er på Windows til en forandring når jeg skriver python-kode. Jeg er en fan av NetBeans framfor Eclipse ettersom ting “bare funket bedre” rett ut av esken da jeg etter hvert gled over mot å bruke IDE-løsninger (..og når man først kjører NetBeans er det fryktelig greit å ha så mye RAM som mulig som nevnt tidligere…). Nå er jeg imidlertid såpass inne i NetBeans at jeg ikke har noen store planer om å teste Eclipse igjen, så det eneste som er igjen av alternative IDE-er er Visual Studio-pakka til Microsoft som jeg bruker når jeg må skrive C, C++ eller C# (og det er et aldeles glimrende økosystem).

For versjonskontroll bruker jeg git (og github for offentlige prosjekter) og subversion - vi bruker subversion for det meste av interne ting foreløpig, ettersom integrasjonen i kodeverktøy og kryssplattformstøtta er såpass god. Her ser det imidlertid ut som vi begynner å få en flytende overgang til at git også blir tatt mer og mer i bruk på denne fronten, nå som det meste av verktøy også støtter git på lik linje som subversion. Tidligere var windows-støtten for git ganske triste saker, men dette skal også ha blitt vesentlig bedre i det siste (jeg har ikke jobbet med git under windows på halvannet år eller noe), så det er nok en tråd jeg kommer til å ta opp igjen ganske snart.

To andre viktige verktøy i det jeg gjør av utvikling om dagen er Apache Solr, en dokumentsøkemotor bygd på Apache Lucene (en ikke-relasjonell database), og Gearman, et jobbkøsystem for fordeling av arbeidsenheter på kryss av maskiner og infrastruktur. Vi bruker begge deler både på den vanlige jobben min og på Gamer.no, og begge har vist seg å være svært viktige verktøy for å skalere og utvide tjenester av de typene jeg jobber med.

Det viktigste for produktiviteten min er nok uansett at vindussystemet / window manageren min har støtte fort virtuelle desktopper. Jeg fikk problemer da Ubuntu byttet til Unity (.. dette kan jo ikke ende godt i lengden) og den kom hardkodet med bare 4 virtuelle desktopper, men nå har jeg heldigvis klart å komme meg tilbake til seks igjen. Jeg bruker ikke virtuelle desktopper under windows, men der har jeg uansett vesentlig kortere og mer fokuserte brukersesjoner, mens Ubuntu-maskinene gjerne står innlogget i et par måneder av gangen, før de må oppdateres. Min største frustrasjon akkurat nå er at Unity selvsagt har endret små detaljer om hvordan de velger den aktive applikasjonen man vil bytte til med alt-tab i Ubuntu 11.10, så jeg har en viss drøm om at de kanskje snart slutter å gjøre små, subtile endringer som dette. En dag skal Unity få smake kjepp.

Den store fordelen med å ha flere virtuelle desktopper (eller virtuelle skrivebord om du vil) er at jeg kan ha en skjermflate for hver oppgave jeg jobber med - jeg har en skjermflate med epostklienten min (og ev. regneark, dokumenter, etc. - ting som hører sammen med prosjektstyring og andre morsomme skrivebordsjobber), en til terminalvinduene (med mail, interne IRC-kanaler, serverovervåkning, innlogging og andre løpende oppgaver), en til virtualbox og remote desktop (for innlogging på windows-servere), en for Spotify, en til NetBeans og andre utviklingsrelaterte ting (som deployment, testkjøring, etc) og til slutt en til nettleser og til Pidgin (for IM). Plasseringen av skrivebordene er også gjort sånn at det er raskt å gå mellom to ting som er relatert - nettleser og utviklingsvindu lever f.eks. ved siden av hverandre. Dette gjør at det er veldig raskt å bytte kontekst mellom en oppgave til den neste, avhengig av hva jeg holder på med - dessuten kan jeg gjøre mest mulig med tastaturet, uten å måtte bevege meg over på musa.

Ah, og så må jeg anbefale f.lux. Forskjellen er fantastisk når man sitter og jobber på kveldstid - noe det blir mye av nå som vi går inn i den mørkeste halvdelen av året vårt.

Hva er drømmeoppsettet ditt?

Jeg har hatt en ganske stabil arbeidsmåte og funnet det som passer meg i løpet av de siste femten åra, og så lenge jeg har et terminalvindu på ctrl-alt-insert (som henger igjen fra enlightenment / e13, så vidt jeg husker), så har jeg stort sett det jeg trenger for å gjøre jobben min, uansett hvor jeg er. Jeg håper at de som lager skjermer snart innser at en oppløsning på 1920x1080 er alt for lite, slik at vi kan få 24”-ere med bedre oppløsning, og at prisen går vesentlig ned fra hva den ligger på idag. Det er så få aktører som driver med skjermer som er større enn 24” og som har høyere oppløsning at prisen blir veldig urealistisk sammenlignet med hvordan situasjonen er på 1920x1080 og 24”. Dette henger selvsagt sammen med at man kan produsere mange flere bildepaneler så lenge alt går i FullHD-oppløsning, men for oss som faktisk er PC-brukere og bruker ting aktivt til andre ting enn å se film, så ville en høyere oppløsning for en større skjerm være veldig nyttig (og igjen, uten at det koster skjorta som HP- og Cinema-skjermene har gjort - men nå forsvinner jo fler og fler av dem også).

Deretter kan Keytronic få ut fingeren og begynne å produsere KT2001 igjen (kanskje på tide å kalle det KT2011 i tilfelle), og gi oss kvalitetstastaturer til en god pris som de gjorde tidligere. Av moderne tastatur ser det ut til at das keyboard er det beste valget (og som skal være omtrent identisk med KT2001 i overflateform), men prisen er ganske hinsides hva jeg er villig til å betale for et tastatur i dag - iallfall så lenge det fortsatt finnes reservedeler og PS/2 -> USB-overganger.

Jeg tror det stort sett skulle være det meste, men jeg svarer selvsagt på spørsmål om noen har noen spesifikke oppgaver eller verktøy de lurer på.