Monthly Archives: February 2009

Php-strukturer for geometrier

Hvis du ikke vet hva PHP er, eller aldri har trengt å programmere noe som avhenger av geometrier som linjer eller punkter kan du trygt se bort fra denne posten.

Hvis ikke kan du lese videre. Som nevnt tidligere jobber jeg med PostGIS og Google Maps (GM). GM kjører på JavaScript, og dermed er ikke databasespørringer mot PostGIS en trivialitet. Imidlertid kan man bruke XML (og da har man AJAX, Asynchronous JavaScript and XML). men hvordan genererer man så XML fra PostGIS? Via PHP såklart. Her er støtten for PostGIS spørringer native, og det å generere XML er ikke vanskelig.

Et problem står dog igjen: hvordan skal man håndtere 2D-data i PHP? Særlig når PostGIS spytter ut noe så hårete som WKT (Well-Known Text)? For min del ble svaret objektorientert. Et par php-klasser for å ta seg av hhv. punkter og linjer, som støtter konvertering mellom WKT, XML og arrayer/floats.

Og resultatet? Det deler jeg nå med omverdenen. I håp om at både noen kan få bruk for det, og om at noen kanskje forbedrer disse to klassene. Lisensen valgt er MIT-lisensen, den er kort sagt blandt de frieste du finner, så gjør hva du vil med koden, også om du er et stort, stygt selskap med de-facto monopol (hørte dere det ESRI?). Som jeg skriver i filene: Du må ikke, men bruker eller endrer du koden setter jeg pris på tilbakemeldinger!

Klassene finner du her:

Og snakker du php tar jeg gjerne imot kommentarer uansett. Også en stor takk til Alex og Magnus for å bidra til å løse noen av mine problemer med objektorientering i php.

Organiser handlingen din

Enkelte ideer er så gode at du ikke lurer på hvorfor du kom på de selv. I dette tilfellet er det motsatt; jeg hadde en ide, og fant ut at andre hadde realisert den. Og siden produktet er fritt tilgjengelig kan jeg såklart bruke det!

Altså: jeg har i det siste begynnt å irritere meg over at jeg er innom Bunnpris nesten hver dag for å handle inn til middag. Det fordrer at man kommer på noe godt å lage, og at den lille møkkasjappa på vei hjem fra skolen har det jeg trenger. På grunnlag av dette kom jeg opp med en plan: “planlegg middag”. Ja, jeg veit det får meg til å virke gammal, men planen er altså følgende:

Vi setter oss ned og bestemmer en meny for uka, basert på det vi måtte ha av innfall og en liste med oppskrifter. Så lager vi en handleliste basert på denne, og handler inn det vi trenger for hele uka. Ergo blir det mindre småhandling, mindre stress og kanskje på sikt bedre mat (siden man slippe raske løsninger som grændis).

Vel og bra, man kan jo gjøre slikt på papir, det tar jo ikke så lange tida, og det er vel det norske husmødre (all ære til denne utdøende rase) har gjort i alle år. For en geek er ikke saken så enkel. Jeg begynnte å tenke på en database med alle oppskrifter som kunne generere handleliste. Imidlertid tok jeg et nettsøk, og da fant jeg det jeg tenkte på: “Gourmet Recipe Manager” for Linux. Som de sier selv:

Gourmet Recipe Manager is a simple but powerful recipe-managing application. Gourmet is intended for the GNOME desktop environment, but works on any platform that gtk supports, including windows. Gourmet allows you to collect, search and organize your recipes, and to automatically generate shopping lists from your collection.

Jeg bestemte meg for å teste dette, og har nå lagt inn 6 oppskrifter, så databasen min ser slik ut:
gm_db

Prosessen med å legge inn oppskriften er grei, men den støtter ikke helt alle norske mål. Dette går imidlertid ann å tweake til. Velger man en rett får man opp oppskriften:
gm_suppe

Her ser man altså oppskriftem og kan eksportere den til html, pdf, Gourmet XML, MealMaster eller plain tekst. I tillegg kan man vha knappen “Shop” legge den til handlelisten. Dette er det mest geniale aspektet. Her summerer den opp alle ingredienser for valgte retter og lager en handleliste, basert på kategorier. Du kan også markere hva du har fra før. Et eksempel på handleliste for tre retter kan se slik ut:
gm_handleliste

Denne handlelisten kan du så eksportere som en tekstfil du kan skrive ut, et eksempel på en slik fil finner du her: shopping-list-02-26-2009.txt

Så, dommen er lovende ved første øyekast. Programmet er litt buggy, og man må jobbe litt med å legge inn oppskriftene, men så fort man har på plass en god database tror jeg dette er lovende. For andre operativsystemer kjenner jeg ikke til noen alternativer, men jeg er sikker på at de finnes, det finnes jo et eget filformat for dette! Kom gjerne med tips til andre programmer som gjør det samme. Dette var det første jeg fant som fungerte på Linux, så det kan godt være at det finnes bedre alternativer.

Hva driver jeg med? (aka: Kart 2.0)

Det lurer jeg ofte på. Og mange som kjenner meg lurer nok også. Men fortvil ikke, dette skal ikke bli noen “Twitter er genialt, for da kan alle få vite hva jeg driver med”-post. Nei, jeg skal prøve å forklare hva jeg skriver master om. Etter å ha hintet frempå om det hos Martin Bekkelund ble jeg oppfordret til å skrive litt om temaet på egen blogg. Hvorfor kom jeg ikke på det selv..?

Motivasjon

Men, nok om det, masteroppgave. Jeg studerer altså IKT og Geomatikk på NTNU, og er nå igang med Masteroppgaven. Først av alt, den har tittelen:

Kart 2.0 – Brukerinnvolvering i online kartløsninger

Poenget er altså kart og 2.0. De fleste har vel fått med seg begrepet “web 2.0″, kort fortalt (og tro meg, det er ikke lett) er det snakk om en web hvor interaksjon, brukerbidrag og sosiale relasjoner er viktig. Tenk facebook, twitter, wikipedia, flickr etc. Da er du inne på noe (og kan overlate til meg å gi en bredere oversikt i oppgaven min).

Hva har så dette med kart å gjøre? Kart har jo vært veldig enveis. Man søker på en adresse og får vist et kartbilde. Greit, det fungerer, men kan kan ikke bidra særlig mye. Selvsagt er dette bare halve sannheten, nettsteder som OpenStreetMap er jo bygd rundt konseptet at brukerene skal generere kartet, altså en slags kartets Wikipedia. Men, som jeg har hevdet før er det tvilsomt at dette noen gang klarer å matche profesjonelle kart, mye på grunn av utstyret som brukes.

Jaha, da er det vel lite vits da? Nja, ikke nødvendigvis. I det siste har begrepet geotagging eller georeferering blitt mer eller mindre dagligtale i forbindelse med digitale bilder. Dingser og kameraer har innebygd GPS, og du kan få posisjonen der bildet er tatt lagret sammen med bildet, eller du kan bruke en ekstern dings og legge på stedsinformasjonen senere.

Dette konseptet brukes av tjenester som Flickr og Panaramio, der man viser bilder på et kart, slik at man kan navigere seg rundt i disse. Dette er det jeg tenker på, hvordan kan man gjøre dette, hvordan får man brukere til å bidra, og hvordan kan man nyttiggjøre seg den informasjonen som brukerene bidrar med?

Bilder og Geotagging

Hva skal jeg så fokusere på? Jo, planen er å bygge en prototype, der jeg kombinerer en kartklient (OpenLayers) med en romlig database (PostGIS) for å lagre disse geotaggede bildene. Når disse er lagret i en slik database kan man utføre spesielle søk av typen:

Finn alle bilder i nærheten av punkt x. Finn alle bilder langs stien fra a til b. Dette uten at man trenger å angi at “jeg tok dette bildet på den og den turen”, eller ved bruk av tagging i en eller annen form. Se på figuren under:
korsvika
(bildet er bearbeidet fra Wikimedia Commons og er således tilgjengelig under CC BY-SA lisensen).

Hvilket av bildene gir deg mest informasjon? Det til venstre, vil de fleste si. Men dette fordrer at fotografen har lagt inn alle taggene. Det er ikke sikkert. Han kan ha lagt inn Korsvika, fordi han var der for å bade, og ikke tenkte på Ladestien. Norge har han sannsynligvis ikke tagget med.

Hva så med bildet til høyre? Et koordinatpar sier deg jo ingenting, gjør det? Etter å ha jobba litt med koordinater skjønner jeg at vi er i Trondheim (63.x,10.x sier meg det), men det hjelper ikke stort. Poenget er å bruke databasen til å finne den andre informasjonen, noe vi klarer greit, så lenge vi har angitt hvor “Ladestien” og “Korsvika” er. Ergo trenger brukeren kun å angi HVOR bildet er tatt, som et punkt i terrenget.

Dette er imidlertid ikke bare-bare, for som sagt er koordinater ikke noe folk flest har et forhold til. Dermed blir utfordringen å støtte brukeren i å legge INN riktige koordinater på bildet. Jeg sisserte et par muligheter over, men disse har sine ulemper:

Kamera med innebygd GPS er det få som har. Det er dyrt, og de fleste ser ikke poenget med dette. Jeg har snakket med noen fotografer som ser på dette som et unødvendig og fordyrende tilbehør.

Bruk av GPS-logger og timestamp på bilder for å generere koodinater for bildene (som NRKBeta og Martin har skrevet om) er noe jeg og andre nerder kan tenkes å bruke tid på, men det spørs om allmuen ser poenget med det første. I tillegg har man et problem med batterilevetid på en tur over flere dager. Dette løser seg nok med tiden, men vi vil jo gjerne bruke det nå.

En annen mulighet er å la brukerene angi posisjon i ettertid. Dette kan gjøres via et kart, slik at man plasserer ut bildene på et kart, slik som f.eks flickr har mulighet for i dag. Problemet er nøyaktighet, og at brukeren må huske hvor bildene er tatt. Derfor kan en kombinasjon av søk på stedsnavn (via f.eks. GeoNames) være en løsning.

Det beste hadde jo vært å kunne bruke alle disse mulighetene, ved å åpne for at brukere kan selv påføre koordinater på bildene kan man kanskje inspirere til bruk av mer avanserte metoder på sikt. Tanken er å se på hva som gjøres av andre aktører og lage en prototyp som støtter alle muligheter og se på svakheter og fordeler med alle. Personlig tror jeg at skillet går mellom nerdene og de andre, men at den andre løsningen kan bli krevende for store mengder bilder. En annen ting er jo at man ved gps får lokasjonen til kameraet, mens brukere sannsynligvis vil tagge lokasjonen til objektet. Dette må sees på.

Generalisering

Jeg har som sagt tenkt å ta for meg bilder, men denne tankegangen kan også generaliseres til andre typer geografisk informasjon, generelt POIer. Uansett så må man ha en metode for å:
a) gi et punkt koordinater
b) lagre punktene i en (romlig) database
c) kunne hente ut og vise relevante punkter basert på forskjellige parametere.

Og det er altså kort forklart hva jeg tenker å se på, med bilder som utgangspunkt. Jeg jobber altså med en del spennende ting:

  • Web 2.0 teknologier
  • Sosiale aspekter ved nettet (brukere, motivasjon etc)
  • GIS-løsninger på nett (kartkilenter, databaser etc)

Og best av alt: dette er “i tiden”, det er noe som er på vei inn, jeg tror fullt og fast på at geografisk informasjon absolutt har sin plass på nettet, og det har vel mer eller mindre blitt bevist at det sosiale aspektet er meget viktig.

Jeg kommer (forhåpentligvis) til å oppdatere bloggen litt fremover med detaljer fra arbeidet, og kort tid etter 15. juni (innleveringsfristen) vil jeg legge ut oppgaven på egnet sted og gi beskjed på bloggen. Jeg er takknemmelig for alle tips, kommentarer og råd jeg kan få, jeg er ingen guru på Web 2.0-tematikk, selv om jeg føler jeg har en grei oversikt. Ei heller på kartsiden har jeg full oversikt, det er jo derfor jeg studerer (for å lære). Har du troa på dette, eller mener du det høres tullete ut? Har jeg noen grove feil her, så si fra slik at jeg ikke drar dem med vidre!

Avslutningsvis vil jeg sitere Douglas Adams, som for ti år siden sa følgende:

As soon as we start mapping physical location back into shared information space we will trigger yet another explosive growth in Internet applications.

Dagens Ord: Nynoregsk

Nynoregsk er den ene av de to offisielle målformene i Norge, den andre er norsk. Nynoregsk er et planspråk, konstruert av en sunnmøring på siste halvdel av 1800-tallet. Estimater viser at nynoregsk i dag har ca. 100 brukere på landsbasis, disse er fordelt mellom Noregs Mållag og oversetteravdelinga til NRK.

Sunnmøringen Ivar Aasen konstruerte som sagt dette språket for ca. 150 år siden. Årsakene til dette er ukjente, men i senere tid har det vært pekt på at Aasen var en inbitt motstander av norsk, og dermed lanserte nynoregsk for å tvinge norsken i kne og sørge for at engelsk overtok som skriftspråk i norge. 150 år senere er man godt på vei, og resultatene synes å vises best i akademia, der man etter press fra Noregs Mållag og Studentmållaget om å “samstilje båa måliforma” heller skriver eksamensoppgavene på engelsk.

Basisen for nynoregsk sies å være de norske dialektene, men dette er en sannhet med modifikasjoner. Et ytterst lite utvalg av dialekter rundt Aasens hjembygd Hovdebygda på Sunnmøre fungerte som grunnlag. Noen småprøver ble tatt andre steder på vestlandet (da gjerne i forbindelse med fyllekuler).

Gitt den begrensede brukermassen skulle en tro at nynoregsk ikke utviklet seg. Dette er dog ikke tilfelle, da brukerene til stadighet sliter med å gjøre seg forstått og må endre språket. I en så liten gruppe, med hovedbase på indre vestland er det ikke noe problem å diskutere og vidreføre endringer. Et eksempel på en endring i nonoregsken er det norske adjektivet sulten:

Sulten var i begynnelsen sultan på nynoregsk. Dette i tråd med vanlig, nynoregsk, rettskrivingspraksis, der a-endinger foretrekkes på alle ord. Imidlertid ble Noregs Mållags forpost på Kaffistovi i Oslo på tidlig 90-tall gjort oppmerksom på at sultan er en er en islamistisk tittel. Etter et møte kom man frem til at uttalelser som “Eg er sultan” kunne misforståes, og mye arbeid ble lagt ned i å finne et annet ord for dette. I 2003 kunne ordet svoltjan presenteres, dette oppfyller alle kravene til et godt nynoregsk ord: Det har røtter i en obskur dialekt, det har en a-ending og det høres helt feil ut.

Dette viser at nynoregsk har en evne til å overleve som overgår det meste, og det kan virke som om Aasens drøm om å utradere det norske skriftspråk til fordel for engelsk vinner frem. IT-bransjen er det fremste eksempelet på dette, selv om nynoregsken sliter med å kontinuerlig kostruere nye ord her. Kun fremtiden vil vise hva som skjer med norsken og nynoregsken.

Skandiabanken og GNU/Linux

I dag fikk jeg ikke logget inn på nettbanken min (skandiabanken), og ble møtt med total avvisning fra supportmennesket. Derfor sendte jeg en klage, som jeg gjengir her:

Hei, jeg bruker Kubuntu GNU/Linux og Opera for å logge meg inn og bruke skandiabanken.no.

Dette har fungert fint i de nærmere 2 årene jeg har brukt Kubuntu som operativsystem, jeg har også fått hjelp av deres supporttelefon når jeg hadde problemer ved en tidligere anledning.

I dag (07.02.2009) skulle jeg logge inn på skandiabanken for å betale en regning, men innloggingen fungerte ikke. Problemet var en feilmelding som sier: “Du har kommet til denne siden på feil måte.”, med overskriften “Hent sertifikat”. Jeg har sertifikat installert, så kan ikke skjønne hva som går galt.

For å prøve å rette opp i dette ringte jeg deres supporttelefon og forklarte problemet. Først ble jeg spurt om hvilken nettleser jeg bruker, Opera var tydligvis greit. Så skulle jeg få tilsendt noe på mail, og jeg ble spurt om “bruker du Windows eller Mac?”. Hvorpå jeg svarte “Jeg bruker Kubuntu Linux”. Da var svaret kontant “Linux? Vi støtter ikke Linux”, sagt med noe som virket som avsky i stemmen.

Jeg forklarte at jeg tidligere hadde fått hjelp med Linux, men dette ble avfeid med at “det kan jo hende det fungerer ved tilfeldigheter, men vi støtter det ikke”. Jeg ble rimelig paff av dette, og avsluttet samtalen raskt med å svare at “Da får jeg finne meg en annen bank!”. Frustrert la jeg på før supportmennesket rakk å svare. Kanskje ikke særlig smart, men jeg var irritert og forbanna på en slik holdning ovenfor kunder.

Greit nok, jeg har ikke sjekket hvilke operativsystemer dere støtter, ei heller hvilke nettlesere. Jeg har registrert at ting fungerer med Opera og Kubuntu og dermed vært fornøyd. Det er jo tross alt snakk om en nettside basert på standarder som Opera håndterer, og hvilket operativsystem jeg har i bunn burde være irrelevant. Tankegangen om at operativsystem og nettleser begrenser hvilke nettsider man har tilgang til hører hjemme på 90-tallet, og ignoranse ovenfor Linux burde ikke forekomme hos noen som skal drive seriøse forretninger på Web (noe jeg tror dere som en ren nettbank prøver).

Håper dere tar tak i dette og vurderer å “offisielt” støtte også GNU/Linux. Sannsynligheten er stor for at mitt problem ikke har noe med operativsystem å gjøre i det hele tatt.

Jeg ser frem til et svar fra dere slik at jeg slipper å avslutte mitt kundeforhold hos dere grunnet noe som ikke burde være en årsak til å bytte bank. Bortsett fra den ignoransen jeg ble møtt med i dag er jeg storfornøyd med dere som bank.

Med vennlig hilsen

Atle Frenvik Sveen

Har du opplevd lignende problemer med Skandiabanken? Har du tips om noen banker som offisielt støtter GNU/Linux i tilfelle jeg gjør alvor av trusselen min om å bytte bank? Tar gjerne imot tilbakemeldinger i kommentarfeltet.