Norge Digitalt Teknologiforum

Norge Digitalt er en sammenslutning av de som produserer kartdata her i landet (dvs kommunene, Kartverket og en rekke offentlige etater). En gang i året har visstnok denne gjengen et “teknologiforum”.

Av en eller annen grunn var det noen som mente jeg burde være med på dette (som jo er åpent for alle), og etter å ha sett på programmet mente jeg det samme.

Dermed ble jeg vekket av en telefon fra flytaxisjåføren 06.00, bråvåkna, kasta på meg klæra og befant meg på Lillestrøm 09.00, en time før showet starta. Endel kaffe og prat med andre fagfolk senere satt jeg klar for teknologiforum, uten helt å vite hva jeg gikk til. Kom jeg, som har ønsket SOSI-dotformatet dødt, til å bli ofret her på SOSI-presteskapets alter?

Heldigvis ble jeg ikke slaktet av hverken møteleder Kyrre eller assisterende kartverkssjef Knut Arne. Jeg ble (sammen med de rundt 100 andre oppmøtte) ønsket velkommen til teknologiforum, og følte meg igrunn veldig velkommen. Det ble vel nesten bedre da Thomas Nordtvedt fra FAD snakket om åpne data i Norge og EU og hvilke lover, regler og direktiver som gjelder dette. Det ble jo også endel snakk om det nye “superdepartementet”, hvor Kartverket skal flyttes inn, og såklart Difis rolle. Kort og godt ble tonen satt, her skal det ikke selges noe, det skal diskuteres, opplyses og tenkes.

En ting jeg reagerte på var at Nordtvedt sa at “nå er det en måned siden Kartverket slapp gratisdata, hvor er resultatene?” Tror jeg må skrive en egen bloggpost om dette, men kortversjonen er at du får ikke innovasjon på en måned!

Frem til lunsj fortsatte det i plenum, og vi var innom sikkerhet, partene i ND (mye lover, forskrifter og direktiver!) og KS/KommIT (IT i kommunene, spennende tema som burde oppta mange i ND).

Etter lunsj splittet vi oss i to sesjoner (eller arbeidsmøter). Jeg fikk høre mye om ny nasjonal geoportal, geoNorge. Både strakstiltak på den eksisterende og den nye portalen som man snart går i gang med. Absolutt spennende, det er ikke tvil om at det er mye som skal gjøres, så vi får håpe det går etter planen!

Etter en felles oppsummering var det halvannen time til middag. Jeg brukte et par min på å reflektere over hvor lite jeg hadde twitra (jeg ble vel også fortalt det av flere). Jeg lovte å opprette #NDTech og være mer aktiv på dag 2. Etter en time på øyet for å ta igjen det tapte var det middag. Der ble sosi-dotformatet diskutert mye, men i en hyggelig tone (jeg har jo begynt å like formatet litt ;) ).

En ny ting skjedde også, for første gang jeg kan huske tok jeg tidlig kvelden på en geomatikk-konferanse. Var det fordi alexanno ikke var der og ledet meg ut i fristelse? Eller fordi jeg ville være frisk og rask til dag 2?

Dag 2 startet i et fullstappet Hordaland (møterom, ikke fylke) og temaet for arbeidsmøtet var innovasjon. Som ung og dynamisk fyr med mye meninger måtte jo dette være noe for meg. Vi var innom innovasjon generelt, innovasjon i infrastruktur og vi fikk en rapport fra Norkarts pilgrimstur til junaiten. Etter en brukerhistorie om Kartverkets “rett i kartet”-løsning prøvde jeg å starte en debatt om open street map, men den nådde ikke SOSI-dotformat-tilstander. Til slutt fikk vi (eller i det minste jeg) et innblikk i sjøkartverket og hva de innoverer på. “Artig” detalj at nesten alle dataene vi fikk se var fra Svalbard (grunnet sikkerhetsbeatemmelser). På toppen av det hele rakk vi gjennom noen artige kart fra Sverre Wisløff og noen artige videoer.

Etter lunsj med nok en runde tekniske diskusjoner var det oppsummeringer av sesjonene, før Espen Andersen fra BI snakket om innovasjon. Jeg bet meg spesielt merke i det han sa om disruptive teknologier, jeg synes jeg ser en link til hvordan holdningen er (har vært?) til fri programvare og open street map, men det er kanskje bare meg? I det hele tatt et meget proft og godt foredrag!

Siste dame på podiet var Frøstrup, som oppsummerte, snakket litt om Paul Chaffey (han er visst en populær fyr) og konkluderte med at data må brukes (amen!). Teknologiforums rolle ble også trukket frem som viktig.

Så, hvordan var dette? Det var mer konferanse og mindre workshop enn jeg hadde trodd, men det var gode foredrag og det gikk mer i dybden enn Geomatikkdagene. Mye kjente fjes, men også endel nye bekjentskaper. Alt i alt er jeg veldig glad for at jeg tok turen, det skjer så mye i geomatikk-verdenen for tida, og å få dybde på endel ting var meget bra!

Jeg har også fått inspirasjon til et par nye bloggposter, så det kan fort være set kommer noe mer her på bloggen. En erfaring er at å provosere litt er gøy ;)

Hvem er vi?

Dette ble skrevet for en god stund siden, sendt inn til Posisjon, men tydligvis glemt. Tenkte at jeg i det minste kan legge det ut her.

Hvem er vi egentlig? Ja, vi, vi er jo geomatikere må vite. Vi jobber med kart. Og verden, eller i det minste Norge da, trenger flere av oss. Jeg ser også det. Jeg mener, det er jo så altfor få utviklere som kan kart. Alle klarer å sette opp en markør i Google Maps på ei nettiside, men hvis du spør dem om å legge inn en WMTS-service fra en tilecache og POSTe tilbake editerte polygoner vha WFS-t til PostGIS ser de dumt på deg! Hæ, ser du også dumt på meg? Men, dette er jo Posisjon, fagbladet for oss geomatikere! Her må jeg vel kunne snakke fag, uten å dumme det ned? Åja, landmåler sa du. Prismer og målinger og totalstasjoner og CPOS, var det det du sa? Snakk litt saktere, jeg skjønner ikke helt. Du gjør hva? Kjører landet rundt og ser inn i en kikkert? Og du er geomatiker??

Vel, jeg skal avslutte der før jeg virkelig avslører hullene i min kunnskap om geomatikkfaget (eller fagområdet?). Poenget mitt tror jeg uansett burde være klart: Vi er en ganske merkelig miks av mennesker vi geomatikere. Fellesnevneren er kart i Norge (ett poeng for selskapsnavn!), eller geodata (enda ett!) eller geomatikk (hat-trick!) da. Vi jobber med så forskjellige ting som oppmåling ute i allslags vær, byggeplasser og fastpunkter utenfor alfarvei til det trygge kontormiljøet. Og hva gjør vi i kontormiljøet? Vel, jeg skriver kode, andre holder rede på SOSI-koder mens atter andre jobber med matrikkelen (høres skummelt ut!). Og hva sier de offisielle kanalene? På utdanning.no skriver UMB følgende: “Hvorfor studere Geomatikk? Et opplagt valg hvis du er interessert i kart, webapplikasjoner, navigasjon (GPS), 3D-spill eller lignende.” 3d-spill, det er kanskje ikke der hodemangelen er størst?

Spør du en hvilkensomhelst ikke-geomatiker om hva geomatikk er jeg tror du får et lite opplysende svar. Kanskje “noe med kart”, hvis du er heldig, eller “GPS og sånn”, som mange i min omgangskrets sier. Eller “fancy geolog”, eller “matematiker som bruker kvarts istedenfor penn og papir”? Vi kan le litt av at folk ikke helt skjønner hva vi driver med, men vi har nå i det minste klart å samle oss bak et felles navn. Men jeg tror også at det innad blant oss er stor spredning i hva vi legger i begrepet. Og det er ikke så rart, vi driver jo med så forskjellige ting. Dette kan til tider være en utfordring. Det å sende inn foredrag til Geomatikkdagene kan være en spennende øvelse: kan jeg vise kode på slidene mine? Kan jeg anta at publikum vet hva HTML er?

På den annen side: denne miksen av fagretninger(?) innenfor faget(?) gjør at det alltid er spennende å møte folk som jobber med det. Du kan nesten alltid forvente å lære noe nytt, vi har en felles referanseramme i bunn (tok du den?) og det er faktisk litt gøy å fortelle folk at du er geomatiker. Når du har ytret dette kan to reaksjoner oppstå: 1. Pinlig stillhet etterfulgt av snakk om været, eller 2. En lengre diskusjon om hvorfor hytta til naboen ikke finnes “på GPSen”. Vokt deg bare vel for å si “Jeg driver med Geomatikk, men det vet sikkert ikke du hva er”. En oppvakt frisør gav meg følgende tilsvar på det utsagnet: “Nei, jeg er jo bare en dum frisør, jeg”.

Ninjatriks i Javascript, del 1

Jeg drister meg frempå med en “del 1″, selv om jeg ikke vet om det blir noen del 2, 3 etc..

Uansett: Jeg skriver jo endel Javascript, og jeg ser endel javascript-kode rundt om kring. En ting som irriterer meg er hvordan folk roter til det globale namespacet, og dermed tenkte jeg å dele noen triks for å holde styr på namespaces etc i Javascript.

Detter er på ingen måte noen fasit, men det er noe som jeg synes fungerer godt selv. Har du inspill eller korreksjoner lærer jeg gjerne av deg!

Hold det globale namespacet ryddig!

Alle funksjoner og variabler du definerer i Javascript legger seg i det “globale namespacet”. Dvs, du kan få trøbbel med at du overskriver variabler eller funksjoner som finnes fra før (hvis disse ikke har vært ryddige). Men, frykt ikke, løsningen er rimelig enkel: namespacing! Hvordan? Vel, Javascript har ikke noe namespace-konsept, men det har objekter (eller, object literals, dvs {}). Disse kan vi bruke som namespace. Si at jeg vil ha et namespace Atlefren. Da kan jeg lage det som følger:


var Atlefren = {};

Da kan jeg, lage funksjonene mine som dette:


Atlefren.myFunc = function () {
    return "foo";
};

Problemet med denne løsningen er ser du hvis du i fil a.js skriver følgende:


var Atlefren = {};
Atlefren.myFunc = function () {
    return "foo";
};

og i fil b.js:


var Atlefren = {};
Atlefren.myOtherFunc = function () {
    return "bar";
};

Hvis du inkluderer a.js og så b.js vil myFunc være “undefined”, fordi “namespacet” Atlefren settes til et tomt objekt i toppen av b.js. Et triks for å omgå dette er følgende:


var Atlefren = window.Atlefren || {};

Her skjer følgende: “namespacet” Atlefren settes lik namespacet Atlefren fra “window” (som er det globale namespacet), og hvis ikke dette finnes lages det et nytt, tomt objekt.

Dermed vil både Atlefren.myFunc og Atlefren.myOtherFunc eksistere etter at a.js og b.js er lastet, og rekkefølgen du laster dem i har heller ikke noe å si.

Selveksekverende funksjoner
Men, vi er ikke helt i mål. Hva med diverse småfunksjoner du ikke vil eksponere ut? ta dette eksempelet:


var Atlefren = window.Atlefren || {};

function someHelpingFunction(string) {
    return string + "!";
}

Atlefren.myFunc = function () {
    return someHelpingFunction("foo");
};

Nå vil Atlefren.myFunc være pent og pyntelig inne i namespacet, mens someHelpingFunction vil ligge i det globale namespacet. Vi kunne såklart lagt someHelpingFunction i Atlefren-namespacet også, men det blir upent. For det første vil det da bli masse, unødvendige funksjoner i Atlefren-namespacet, for det andre må du bruke notasjonen


namespace.funksjonsnavn = function () {};

hver gang du skal lage en ny funksjon. Det er mye skriving. Heldigvis finnes det en løsning, og den inkluderer anonyme funksjoner. Såkalte selv-eksekverende funksjoner. Teorien er sm følger:

Du kan definere en anonym funksjon som følger:


function () {};

Vi vet også at denne kan assignes til en variabel og kjøres:


var func = function () {};
func();

Dette kan også gjøres i en go:


(function () {/*do someting*/}());

Her lager vi en funksjon, og kjører den umiddelbart (det siste () er kallet til funksjonen). Det er “god skikk” å legge et ekstra par parenteser rundt en slik funksjon, for å signalisere at dette er en “selveksekverende funksjon) Denne funksjonen blir kjørt en gang og så har du ikke tilgang til den mer. Det fine her er at funksjoner at et eget scope, variabler og funksjoner definert inne i en funkjsjon legges IKKE i det globale namespacet. Dermed kan vi gjøre følgende:


var Atlefren = window.Atlefren || {}; //definer namespacet
(function () {
    //denne funksjonen finnes kun i scopet til den selv-eksekverende funksjonen
    function someHelpingFunction(string) {
        return string + "!";
    }

    // denne legges på Atlefren-namespacet som før
    Atlefren.myFunc = function () {
        return someHelpingFunction("foo");
    };
}());

Ett lite problem gjenstår: jeg må fortsatt skrive hele namespacet mitt for hver funksjon jeg skal eksponere. Dette kan bli slitsomt hvis jeg har et langt, nøstet namespace (eks org.atlefren.demo.stuff, for Java-fanatikerene), eller om jeg skal endre navnet på namespacet mitt. Heldigvis er jo den selveksekverende funksjonen nettopp en funksjon, og kan dermed ta argumenter. Vi kan dermed sende inn namespacet som et argument og bruke dette (jeg har lagt meg på å kalle parameteret ns, så jeg alltid vet hva jeg jobber med:


var Atlefren = window.Atlefren || {}; //definer namespacet
(function (ns) {
    "use strict";

    //denne funksjonen finnes kun i scopet til den selv-eksekverende funksjonen
    function someHelpingFunction(string) {
        return string + "!";
    }

    // denne legges på Atlefren-namespacet som før
    ns.myFunc = function () {
        return someHelpingFunction("foo");
    };
}(Atlefren));

Sånn, nå har vi et ryddig public namespace, ikke så mye clutter og fint strukturert kode. Hvis du er eksta nøye kan du legge på en “use strict” øverst i den selv-eksekverende funksjonen, for å fortelle javascript-parseren at du skriver “skikkelig” javascript (som jeg har gjort).

SOSI-dotformatet må dø!

I etterkant av foredraget mitt om standarder på FOSS4Gno dreide diskusjonen seg om min påstand om at “SOSI-dotformatet må dø”. Jeg tenkte jeg skulle utdype argumentene som ble “kastet mot meg”, samt gå litt mer i dybden på hvorfor jeg synes det burde avgå ved døden.

Først vil jeg gjennomgå hva vi snakker om her, slik at vi tenker på det samme. SOSI (Samordnet Opplegg for Stedfestet Informasjon) er både en “informasjonsstandard” og et dataformat. Informasjonsstandarden SOSI er noe andre land misunner kart-Norge, all den tid alle kartaktører har en felles måte å beskrive geografisk informasjon med atributter på. Jeg er på ingen måte noen kjenner av SOSI som en informasjonsstandard, men jeg er helt enig med de aller fleste her: det er et gode. SOSI er bra!

Dog, og her kommer poenget jeg også gjorde i foredraget mitt, dataformatet SOSI realiseres i, det såkalte “dotformatet” (.sos) er en helt annen historie. Det er fullt mulig å bruke andre dataformater enn dotformatet til å bære SOSI-data, og det mener jeg absolutt er på overtid å få til.

Det jobbes med å gå over til XML som dataformat for SOSI, men om det er “bedre” eller “riktig” er ikke poenget mitt nå. Poenget mitt er at det eksisterende dotformatet, som sagt, må dø. Det lever på overtid.

Dette vakte jo endel reaksjoner, såpass at det ble påpekt at “å kødde med sosi er som å kødde med sodd, troll og 17.mai” . I hovedsak var argumentene disse (med forbehold om at jeg husker riktig. Jeg husker heller ikke hvem som kom med hvilke innvendinger):

1. “SOSI er et gode. Andre land misunner oss SOSI.”
- Som sagt, SOSI som informasjonsstandard har jeg ikke noen problemer med. Det er dataformatet jeg ikke liker. Ergo ikke et godt argument.

2. “Dotformatet har fungert godt i mange år (siden 1987 ifølge wikipedia) og fungerer godt i dag. Du er ung og uerfaren, når du blir eldre vil du ikke skjønne hvorfor de unge kritiserer GML eller GeoJSON eller hva det nå er du vil ha.”
- “If it ain’t broken, don’t fix it” har aldri tatt verden videre. Jeg mener at det har skjedd såppass mye i IT-verdenen siden jeg var 3 år (ja, jeg er 3 år eldre enn SOSI tydligvis) at det er på tide å oppdatere seg. Til påstanden om at jeg er for ung: jeg håper inderlig at neste generasjon ønsker å gå bort fra de formatene vi bruker i dag. De er på ingen måte perfekte, og jeg håper ikke teknologiutviklingen stopper i 2013.

3. “Er egentlig XML så mye bedre?”
- Jeg vet ikke. Kanskje ikke, men det i seg selv gjør ikke dotformatet bra.

4. “Du skal ikke trenge å lese SOSI manuelt. Syntaksen har ikke noe å si, det finnes programvare for å lese det”.
- “Menigmann” skal ikke trenge å lese SOSI-dotformat, ei heller skrive det. Som utvikler er jeg nødt til det. Bibliotekene som finnes er enten proprietære fra de store selskapene (og koster dermed penger) eller ganske hårete å ta i bruk (OGR må kompileres med FYBA). I tillegg er de eksisterende sosi-dotformat-bibliotekene knytett til gitte programmeringspråk, DLL-filer eller c-bindinger. Hva om jeg vil parse dotformat i nettleseren via JavaScript? På en Android-telefon?

Avslutningsvis vil jeg referere noen svar jeg fikk på Twitter på mitt spørsmål om hva folk synes om dotformatet:

- “Generelt ganske forferdelig?!”
- “SOSI er helt konge, og treprikksnivå er toppen :)
- “greit men sært.. funker til sitt bruk men ikke mer enn det..”

Dermed: Sosi-dotformatet er et gammelt, særnorsk, format uten støtte i de store programvarepakkene (ja, det finnes norske tillegg og tilpassninger, men ikke out-of-the-box). Det egner seg kanskje til internt bruk i systemer som ikke skal byttes ut, eller for de som har inngående kjennskap til fagfeltet. Derimot, når Kartverket slipper frie data over en lav sko og det første “Petter Smart”-typer som skal lage gode (åpne?) løsninger med disse dataene møter er valget mellom å betale ut av det hvite i øyet for en programpakke for å lese disse åpne dataene, eller må manuelt kompilere FYBA og gdal for å lese dataene kan man lure på hvem dataene er beregnet for.

Dermed er min bønn, sett fortgang i arbeidet med å fase ut dotformatet, tilby alltid alternative formater ved nedlasting av kartdata og innse at selv om du “snakker SOSI i søvne” og synes det er det beste som har skjedd kartnorge: Innse at hvis kartdata skal være noe mer enn en godt bevart hemmelighet menigheten har mulighet til å jobbe med må noe gjøres. Jeg vil tro mange heller laster ned OpenStreetMap-data, banker det inn i PostGIS med osm2pg enn å betale for FME med norske tillegg for å få tak i indrefileten (ja, jeg er klar over at Kartverket tilbyr GeoJSON i tillegg til dotformat, men la meg få være litt dramatisk her.). Forvent heller ikke å kunne spare lisenskostnader ved bruk av “fri programvare” om SOSI inn og ut av løsningen er et absolutt krav: det finnes nemmelig ingen gode løsninger her.

Sånn. Let the flamewar begin!

 

Se forresten også http://labs.kartverket.no/sos/ for en (litt mer teknisk?) gjennomgang av “problemet” med dotformatet.

FOSS4G 2013 – The Good, The Bad and the Ugly

Woha! Getting back to work after three days at FOSS4G in Nottingham kinda makes me feel the void. The last four days have really been an expirience. This years FOSS4G was the first that provided me with an employer willing to send me there and a non-jetlag-inducing travel distance.

Although the title has an overweight of negative words this does not reflect my impression of the conference (I’m just a sucker for a catchy title). The plans for this piece is to provide a summary of my experience, some reflections and an insight in what I’ve learnt during the course of the days in “Mappingham”.

So, without further ado, let’s get down to the details. The trip started on Wednesday evening at Værnes Airport, where I managed to get to my gate without checking in to my flight. A kind, but annoyed person at the check-in counter agreed to let me board the plane, but I was a bit nervous for a while. The plane took us to London (don’t ask, I assumed London – Nottingham was a short ride by train). After an aborted landing and a round-trip and then an actual landing my colleague and I had a sprint through Gatwick airport, a long wait in the immigration queue and managed, with a margin of 10 minutes, to catch the train to London. In St. Pancras we had a 20 minute wait before the Midlands Express departed for Nottingham. The train ride was okay, a bit cramped, but I managed to write some code and we had a beer, kinda like a normal evening, apart from the lack of space. After arriving in Nottingham we got a taxi and arrived in our accommodation in Cavendish hall 23.55, five minutes before the man registering us planned to leave for the night. After a while he even managed to find my name on his list (note to self: someone may alphabetically sort me by my middle name..). Cavendish hall was rather spartan, but it had a bed, a power socket and WiFi (in addition to really thin walls..). I couldn’t let go of the code from the train, and spent a few more hours coding (not on an open source project I’m afraid :\).

The long trip and nightly coding session meant that I missed the heart-attack-inducing English breakfast and headed straight to the conference venue at 09.00 (which is actually 10.00 by Norwegian time, so I was rather awake). After getting our tags, programs, bracelets and t-shirts we got highjacked by the guys at the Mango Maps stand who gave us an demo of their software, Mango Maps. Impressive stuff, and while I may have seemed more interested in the technology behind it than the applications of it I can think of some places where it might be useful.

After a coffee or two we headed into the auditorium for the opening plenary. What can I say? went a bit over time, it mentioned drinking a lot, but apart from that I really think it showed how hard the conference committee has worked setting this up. And Daft Maps. What. A. Shock. That tune is still stuck in my head! The opening keynote from Chris Tucker introduced (to me at least) the mapstory.org website and foundation. Great talk, and a mindset and approach that I really think has potential. Being reminded that there are a lot of users and data-owners that have no clue what a shapefile is was a bit scary though.

Another key-takeaway from the opening plenary was that it was a 5-10 minute walk to the arena for three of the sessions, the Clive Granger Building (CGB). As the first talk I wanted to see was scheduled to start at 12.00 in CGB, and the plenary went on till about 12.00, I sprinted out in the rain and found the distance to be closer to 10 than 5 minutes. The talk was held back for about 15 minutes, as I wasn’t the only one late. The talk, with the title “pgRouting for dummies”, gave an introduction and overview of a project I’ve heard about and thought about using a few times, but never came around to actually use. A nice introduction, although maybe a bit technical for the complete dummy, and a bit to shallow for the non-dummy I consider myself to be. On my way back from the talk I got lost (yes, I see the irony there), so the next talk I attended was Arnulf Christls talk on open data. Without revealing too much in advance, I think open data was a big topic at FOSS4G this year, and I would be suprised if it’s not even larger next year. Arnulf is a good presenter, and delivered a great talk. I even learned some new things about the OdBl license that OpenStreetMap uses, prompting me to encourage the attendees from Norkart to publish a recipe on how they manipulate the OSM-data used in their products. The power of Twitter! :)

After lunch i went to the banqueting suite for several talks. The main theme was mobile development, and the first talk by Pascal Coulon was a bit confusing. I think i heard that they where running a stack of Geoserver and PostGIS on a tablet, but I can’t really believe that. The next talk was actually two, Pierre Giraud and Bart van den Eijnden presented their experiences creating mobile map apps with OpenLayers and Phonegap. The main takeaway is that mobile is a bit more complicated than desktop, and my suspicions about Seneca Touch was re-inforced. Leaving a bit early (before the QA that is) I sprinted back to the CGB (in sunshine this time), and managed to get a seat in the small auditorium where Frank Warmerdam (of GDAL/OGR fame) presented the satus of said projects in cooperation with Even Rouault, the man who has “kept the project alive for the last years” (fun fact: Warmerdam met Rouault for the first time in person during FOSS4G 2013). With this/these project(s) being the backbone of open source GIS that they are, an overview of the project(s) from these guys was really worth spending 30 minutes on the floor of a crowded auditorium for.

The afternoon wrap-up for Thursday consisted of a walk-though of the OSGeoLive DVD Linux distro that we’ve got, and a keynote talk from Ben Hennig, known for the worldmapper.com project. With Ben being more a cartographer than a developer he really gave a bit of perspective, and could assure us that cartography is not dead (it just need to expand a bit maybe). It should be mentioned that I spent a lot of time googling his slide titles and tweeting them, as he launched the #mappinghamsongcontest hash tag at the start of his talk!

The closing plenary did not feature the keynote on d3.js by Jason Davies, which was a bit of a downer, as I really had looked forward to this one.

The keynote finished, Claire Gilmour entered the stage and asked us to “go away” and come back at 19.00 “dressed in out best” for the Gala event. I went back to my room, and the moment I sat down on my bed to relax for a minute I got an SMS from @alexanno, asking if I wanted to grab some beers in the hotel lobby. That’s an offer I can’t refuse, so after a quick change of clothes I was there, drinking beer and talking to an ESRI guy about beer and CAMRA. The gala event started approximately two pints of Marstons Pedigree later, and after some queuing I got a beer and a plate of Welsh lamb. The lack of tables made for a nice scene with four Norwegians trying to use the conference chairs both as chair and table. When we finished our meal the doors had opened to the GeoCamp, and we managed to get some seats at a table there, waiting for “The festival of the spoken nerd”. A great, geeky stand-up-show, featuring Mandelbrot-coastlines, and “our favorite shape” (no, not the Shapefile!). Great, geeky humor, which proves that FOSS4G is a conference that suits me well. I felt really at home. After the show we hung around for a bit, met some known and twitter-known Norwegians and spent the rest of the evening drinking beers (or, barley-flavored water, as all they had left in the bar was Stella and Becks) and talked about geospatial topics. The night ended where it started, in the hotel lobby, when the barkeeper announced the last round I was smart enough to go to bed (if only this was normal procedure!).

Nevertheless, the next morning I sacrificed breakfast for sleep yet again, but at 09.00 I was present and ready for one of the Python-talks of the conference. Edward Campbell from MetOffice (Britain’s Meteorological organization) presented Cartopy and Iris, with an emphasis on Cartopy. Really nice library that I’ll sure check out. I was also really impressed by the use of iPython to show off the code, running live in the browser! Next up was Geoserver on Steroids, which focused a lot on raster optimizing for Geoserver. Nice talk, but not exactly my day-to-day interest.

The next slot was a plenary, where Kate Chapman and Edward Anderson delivered good keynotes. Chapman presented the Humanitarian OpenStreetMap Team (HOT), what, how and why they do the things they do. Seeing the technology and data we daily use being utilized far from the comfort of the office really gives you a sense of perspective! Anderson, from the World Bank, continued the humanitarian theme, giving an overview of their efforts to use geospatial data and (open source) tools in their work.

After the plenary I did some serious session-switching, first the State Of Geoserver talk, which concluded with the live-release of Geoserver 2.4, then a talk/demo of CartoDB, which really impressed me. I mean, I’ve heard about before, but why I haven’t used it is a mystery to me. Great looking, feature rich and (from what it seems) fast and stable. This is the future. Then I watched Cédric Moullet present the process being developing the new map website for the Swiss mapping agency, with emphasis on user involvement in the development process. This is something that I find really important, and it’s nice to see GIS-developers acknowledge this fact!

A bit wiser after the sprints to CGB the last day I decided to head there early the the “PostGIS Feature Frenzy” talk by Paul Ramsey. This turned out to be a smart move, as the small auditorium quickly overflowed. Paul delivered an enthusiastic talk on a topic that might be considered dry, and I was really glad to know the reason for introducing the Geography type (“the newbies who kept nagging me, and the huge guys that owns satellites”). In the mood for more PostGIS knowledge I did not move (like most others) but waited for the PostMap talk. Jan Jezeck presented a web interface to PostGIS that allows the rendering of actual geographies. While I might disagree a bit on the technology used and the complexity, I really like the idea, so maybe I should put my money (or, my time) where my mouth is and make this web interface the way I envision it.. The last PostGIS talk of the day was about indices, which is really important. A good description of how, what and why when it comes to indexing. Mostly things I knew, but worth being reminded of!

The closing plenary started of with MetOffice presenting themselves and the winner of the hackaton. These guys really see the value in sponsoring an event such as FOSS4G, which is great! After this the winner of the Sol Katz award was presented to Arnulf Christl. This award is given to people who’s done an extra effort for OSGeo, and according to the committee, Arnuf getting this award was long overdue.

The first keynote was by Emer Coleman, who gave us a keynote on Open Data. The second was by Tim Sutton from the (now officially named) QGIS project. He stepped in for Nathan Woodrow, who couldn’t make it. Nevertheless, Tim told us about the QGIS history, the philosphy and the hurdles, as well as a showcase of the new 2.0 release (actually released during FOSS4G!). He also stressed the need for funds to keep the project going, and the work of all the contrbutores

Friday night was without an official programme, but on Thursday night I had used the power of Twitter to gather all the Norwegians present to “go into town for some beers”. In the end about 25 people turned up, and we figured we where hungry. No reservations where made, but we did manage to find an Italian restaurant and we all got something to eat. I was really eager to get to the Brewdog bar, so before dessert I joined a group that left with the same goal. Turned out the Brewdog bar was full, so we found some other joint, where a local punk band played. Some beers and music later we re-united with the remains of the Norwegians and had no trouble getting in to the Brewdog bar. What can I say? Tactical Nuclear Penguin and Black Tokyo* Horizon really made my night, and we stayed there until they turned on the lights and started cleaning tables (which isn’t that late in Britain, thank Xenu!).

Saturday morning I actually had eggs, bacon and sausages for breakfast, and headed straight for the CGB. The first talk of the day was by Frank Warmerdam, again on one of the pillar libraries of FOSS4G, Proj.4. Great, informative talk on topics that more than a few has had their share of struggles with (I know I’ve had). The next talk was on Lucene Spatial, which left me more confused than enlightened (and there was little room for questions due to technical issues). Then the OpenLayers 3 showcase brought me back to more familiar territory. A good talk that, for me at least, inspired to try out this “new library” and explore it. While the CGB featured two more OpenLayers 3-talks, I really wanted to catch the Leaflet talk, so i used the 30-minute break to walk back to the main conference center. This proved worth it, Vlad gave one of the best talks of FOSS4G13, focusing not on technology but on the history and philosophy behind Leaflet. I’m really impressed with this project! Key takeaways are the focus on removing instead of adding features and striving to keep your code base simple so that possible contributors are not scared away.

Next up was a talk by Christopher Helm, an Esri (or E-dollar-ri as they where referred to as) guy. Proving my assumptions wrong, Helm turned out to be a genuine geek, an energetic speaker and really the javascript-grunt-node-geek that FOSS4G features a bit few of. The talk itself was maybe a bit hard to get the main idea behind, but in essence: “Git is cool, why not use it for geospatial data as well”. With examples. Next up was GeoGit, which “relates to Git the same way carpet relates to car”. GeoGit is, after what I understand, a way to handle updates and revisioning of geospatial data. Topics covered included why not just use git, the proposed solution and status of the project (which is: working, but “trivial” matters such as speed and indexing are missing). Overall a great project, and really a good answer to a question I posted on gis.stackexchange.com a while ago.

To squeeze the most out of the conference, I chose to minimize lunch-time and maximize talk-time. Having already seen the PostGIS feature frenzy (which was re-run) I watched a talk from the Danish Geodata Agency. The topic was their migration to an open source database system (PostGIS). Rather similar to talks I’ve heard from the Norwegian Mapping Agency, which have done the same ting. Cost and licensing of proprietary db-systems for web-scale was the main drivers, and the result was absolutely delivering. A shame they still rely on their proprietary db for actual in-house use, but I guess it’s difficult to bring change by revolution. A step at a time is probably a better way (evolution FTW).

The last talk before the closing plenary was Helm again, this time on Javascript and GIS. I couldn’t agree more on his thoughts, js is the shit and we need more of it in GIS. I really wish there was an European version of the geospatial JS-conference in the US. Apart from this: lots of js-gis-libraries showcased, and I really agree that JSTS is a bit to much of a Java-port.

Sadly, all good things come to an end, and the closing plenary marked the beginning of the end. The bencmarking sessions where a bit watered down; the WPS-benchmark was more of an overview and the WMS “shootout” was canceled due to organizing issues. Though, Arnulf Christl appealed for a new WMS shootout next year, hopefully someone will make that happen.

The two closing keynotes where delivered by Ian James from the Ordnance Survey and Paul Ramsey (who doesn’t need further introduction I guess..). James told us the story of the Ordnance Survey path towards open source (well-thought out and planned was not how it happened), and why they use open source. I feel that there really is a theme that governmental organizations use open source software, and in many countries there are guidelines which indeed mandate the use of open source.

Then Paul Ramsey delivered a keynote which many has described as “the best I’ve heard in ages”, and I agree with them. The topic was “Being an open source citizen”, and trying to recap it here won’t do it justice. Some keywords are: “digital barn building” and how egoism really is the drive behind open source. Just a great talk of the kind that makes you think.

The final words and thank yous by Steven Feldman, and included a lot of applause and almost everyone in the audience ending up on the stage (it felt that way at least), and a cozy recap-by-the-fireplace scene with the main organizers. At the end Portland, Oregon was presented as the venue for next years FOSS4G, and I really want to go! (beer-geek-heaven combined with mapping/code-geek-conference, what could be better??)

That concluded the actual conference, and a colleague of mine and I headed into Nottingham, in search of some beers to bring back home and some food. I managed to offend a wine shop employee (“do you have any quality beers?”) and we had a great burger at “Gourmet Burger” before we got on the bus back to campus and the GeoCamp for what turned out to be a large-scale, kinda messy and confusing beer tasting involving Brewdog beers and ~150 thirsty geo-geeks. After beer, pizza, bow and arrow shooting and a lot of ping-pong balls an improv-comedy group knows as “The red herrings” entered the stage, and put on quite a show. I laughed hard for about an hour, splendid! The highlights? The “I like my maps like i like my women..”. “Spread on the kitchen table” was a great contribution from the audience! Rather tired I went to bed at around 23.00, and though my window I could hear the tunes of “up all night to get mapping” from the GeoCamp. Someone had a lot more energy left than me :) The entire Sunday was spent going back to Trondheim, talking about the experience and coding a bit.

So. What was FOSS4G13 like? The short version: GREAT! I really felt at home there, the people, the talks, the buzz was all things I know and can relate to. Spot on with the conference there. The actual talks of course varied in quality, some technical issues, some introverts having a bit of stage-fright and some language-issues, but these are minor issues. Three main things really annoyed me, that was the 10 minute walk to the CGB, which made session switching difficult. The other was the fact that several of the most popular talks where placed in such small rooms (Paul Ramsey, Frank Warmerdam and the OpenLayers team in the smallest rooms, come on, you knew these would be popular). Lastly, a lot of talks (and especially the plenaries) went over time. Oh, and eating from a plate with knife and fork without a table to sit down at is difficult..

Apart from that? Great. Just great! Next year, if I get the chance to go, I’d definitely would like to get in on more of the action, code sprints, hackatons, workshops, the whole works really! On such a large event you just can’t participate in everything, but I really would like to be able to engage some more.