/ Kategorier / Nerdeprat

What’s Up?

20. January 2010

Bokstavelig talt altså, gjerne også oversatt. Altså: “Hva er opp?”. Dumt spørsmål sier du kanskje, men jeg har i det siste begynnt å lure litt på dette, det vil si i faglige sammenhenger. Og for meg er faglige sammenhenger Geomatikk-verdenen, eller mer spesiftkt GIS-verdenen.

Jeg jobber med, og har en utdannelse som dreier seg om, digitale kartløsninger. Jeg trenger vel kanskje ikke en gang nevne at det finnes en rekke biblioteker, programmer og standarder som brukes i denne sammenhengen. OpenLayers, Google Maps, GeoTools, Geoserver, PostGIS, GDAL/OGR, SOSI, WKT, GeoJSON og GML er noen eksempler.

Det er mange ting å passe på her, og mye har med koordinatsystemer å gjøre. Et av “problemene” er at det er mange av dem, men der kommer transformasjonene inn. Et annet problem, som får meg til å lure på hva som er opp og og til er hvordan koordinatsystemet er satt opp. Det tenkte jeg å se litt nærmere på her.

I mattetimene ser koordinatsystemene gjerne ut som på figuren under:

Her legger vi merke til at aksen som går oppover er Y, og aksen bortover er X. Det er her problemene oppstår i GIS-verdenen. Det første jeg lærte i det første Geomatikk-faget var at X var oppover (og at sirkelen deles i 400 gon, ikke 360 grader). Her har vi en kilde til frustrasjon. I tillegg kommer de “ekle” skapningene Lengde- og Breddegrad inn. Da heter ikke aksene X og Y mer heller, men Ø og N (for Øst og Nord), eller V og S hvis vi er på de negative sidene av aksene. Her har vi enda en kilde til frustrasjon, siden dette blir hhv. Longitude og Latitude , som da blir E og N (eller W og S). I tillegg kan man brude de greske symbolene lille lambda (λ) for lengdegrad, og lille phi (φ) for breddegrad, men disse er vanskelig å få til i kode. Dermed har vi også formene lon (for longitude) og lat (for latitude).

Og når det gjelder X som opp? Vel, det gir mange blanke i…

Da blir altså systemet vår som i figuren under:

Og her starter problemene, for hvordan representerer man dette i kode?

For å starte lett. Google Maps har en klasse for geografiske punkter de kaller GLatLng. Den har følgende constructor:

GLatLng(lat:Number, lng:Number, unbounded?:Boolean)

Dvs, først Bredde-, så Lengdegrad. Metodene for å hente ut disse heter lat() og lng(). OpenLayers har klassen LonLat, med følgende constructor:

OpenLayers.LonLat(lon,lat)

Og bestanddelene kan du hente ut som propertiene lon og lat.

Dermed har vi allerede to forskjeller, Lon og Lng som begge er Lengdegrad, og rekkefølgen de skal inn i. Og værre skal det bli. PostGIS bruker x og y, og som de sier i en note i dokumentasjonen:

Note x is longitude and y is latitude

Der har vi altså det første eksempelet på at det jeg lærte om at x er opp ikke brukes.

PostGIS bruker også formatet WKT, der et punkt representeres med:
POINT(X Y)
Dette er i det minste konsistent med resten av PostGIS.

GeoJSON gjør noe av det samme, der sier de:

The order of elements must follow x, y, z order (easting, northing, altitude for coordinates in a projected coordinate reference system, or longitude, latitude, altitude for coordinates in a geographic coordinate reference system).

Altså: X er bort, og Y er opp. X kommer før Y. Legg også merke til notisen om projected og unprojected coordinate system, noe jeg ikke har nevnt. Kort fortalt: X og Y er ikke helt det samme som lon og lat.

Så langt har bare Google vært uenige med resten. Men here comes SOSI, et norsk format. Her er syntaksen for et punkt:
.PUNKT
..NORD tall
..ØST tall

(la oss for et øyeblikk ignorere bruken av Ø i kode). Her ser vi at Nord kommer før Øst (jeg er dog usikker på om det ha denne rekkefølgen).

GeoTools har en artig take på det hele. Her har man en DirectPosition2D, som kan konstrueres med:

DirectPosition2D(CoordinateReferenceSystem crs,
double x,
double y)

Men dette er jo ganske standard, helt til du leser følgende:

Constructs a 2D position from the specified ordinates in the specified CRS. Despite their name, the (x,y) coordinates don’t need to be oriented toward (East, North). Those parameter names simply match the x and y fields. The actual axis orientations are determined by the specified CRS. See the class javadoc for details.

Her er det altså CRS, eller koordinatsystemet som betsemmer dette.

Ogå så har vi GML, her klarer jeg faktisk ikke å finne ut hva som skal i hvilken rekkefølge. Any clues?

Og med det tror jeg vi avslutter, før jeg begynner å snakke om Bounding Boxer (det får bli neste post i serien).

Og ja, jeg er ikke 100% sikker på at alt jeg har skrevet her er 100% riktig, så ikke ta alt du leser for god fisk, og finner du feil så si gjerne ifra!

Nordisk Kartografikurs 2009, presentasjoner

5. September 2009

Som jeg skrev om tidligere har jeg tidligere i uka vært på Nordisk Kartografikurs i Stavanger for å holde to foredrag, om henholdsvis prosjekt og masteroppgaven min. Tenkte jeg skulle her dele både slidene fra presentasjonene og de opprinnelige oppgavene, slik at alle som kommer hit etter min oppfordring finner dem her. Mine faste lesere har vel sett oppgavene før, men slidene skal være nye! I tillegg er det greit å samle ting på et sted.

Det første foredraget på ca 45 minutter hadde tittelen “Web 2.0 – Brukerinteraksjon”:

Dette er såklart basert på masteroppgaven “Map 2.0 – User Interaction in Web Mapping Sites”, denne finner du på dokumentsidene mine. Når det gjelder kildekoden utviklet her fikk jeg en forespørsel om denne. Den ligger tilgjengelig på kodesiden (som forøvrig snart skal oppdateres), under MIT-lisensen.

Det andre foredraget hadde tittelen “OpenSource GIS”, og er basert på prosjektoppgaven “Use of Free and Open Source GIS in Commercial Firms”, som også finnes på dokumentsidene mine. Jeg nevnte også for noen på kurset oversikten til Stefan Steiniger over FOSS Desktop GIS, denne finnes på http://www.spatialserver.net/osgis/

Jeg hadde desverre ikke mulighet til å ta opp lyd eller bilde, men jeg er selv fornøyd med presentasjonene. Det er første gang jeg snakker til over 50 personer, men jeg følte at alt gikk greit. Jeg gjorde også et forsøk på å følge endel av de tipsene om presentasjoner som deles av flinke folk på nett. Man må såklart finne sin egen stil, men det å få input er viktig. Jeg håper jeg får gjenta slikt som dette, for det var meget gøy og lærerikt.

Været i Trondheim på Twitter

29. August 2009

Jeg liker yr.no, jeg liker hvordan de deler ut dataene sine. Jeg liker ikke været i Trondheim, det varierer for mye. jeg liker Twitter, jeg følger mye med der. Derfor tenkte jeg at jeg skulle prøve å gjøre ting litt forutsigbart og få værvarslet til yr for Trondheim på twitter.

Dermed begynnte etterforskninga. Første punkt var xml-dataene for Trondheim. Disse hentes enkelt ut, og melder i tabularisk form været for en bråta 6-timesperioder fremover. Planen ble da å lage en twitter-konto som twitrer været som en tekststren på under 140 tegn for de neste seks timer. Varselet er på formen

Trondheimsværet i dag fra 18.00 til 24.00: Regnbyger (1.2 mm). Flau vind fra Sørøst. Temp 18 grader. Via yr.no

Den beskriver altså værtypen (typisk navnet på værikonet), nedbørsmengde, vindtype og retning samt temperatur.

Altså: Klokken 17.00 spyttes været for 18-24 samme dag ut. Etc. Dette løses med en kombinasjon av php med simplexml, cronjobs og twitter-APIet. Resultatet finner du på @TrondheimsVaer. Scriptet er ikke 100% testet, men jeg tror det skal fungere. Er du interessert i koden finner du den her: http://code.atlefren.net/vaer.phps. Den er ukommentert, og kan sikkert forbedres. Uansett setter jeg pris på tilbakemeldinger og bruk til andre byer etc. Koden er lisensiert med MIT-lisensen, som gir deg ganske frie hender.

Når det gjelder cronjoben har jeg brukt følgende entry:
0 5,11,17,23 * * * /usr/local/bin/php /home/users/atlefren/code/vaer/index.php >> /home/users/atlefren/twittervaer.log

Ikonet er basert på et CC-lisensiert Flickr-bilde (http://www.flickr.com/photos/evauppsala/269372391/) og et værikon utgitt under WTFPL-lisensen (http://jcorrea.es/2008/07/28/download-free-weather-icons/).

Så kan jo diskusjonen få gå på om dette er noe vits? Kommer du til å bruke den? Hva burde vært endret?

Om passord

19. August 2009

Det sies jo at man skal være påpasselig med passordene sine. Man skal ha et unikt passord, gjerne på 8 eller flere tegn, og det skal helst inneholde både store og små bokstaver, tall og hva veit ikke jeg. Det skal altså være alt annet enn det vi mennesker lettest husker, nemlig ord.

I disse sosiale-nettsted-tider har man jo gjerne 5-6-7-8 kontoer på nettsteder, datamaskiner, pcer og diverse slikt. Jeg vet ikke hvordan det er med deg, men jeg er ikke autistisk nok til å klare å gå rundt og huske 20 passord på formen 8ek7eruR. Dermed har jeg begynnt å tenke litt, og kommet opp med et par strategier som kanskje burde gjøre ting enklere. Jeg kan ikke huske å ha sett dem før, så korriger meg gjerne. Fint om du også kommenterer om det er en smart metode, eller bidrar med din egen.

Metode 1: Felles stamme + tjenesteavhengig del. Ok, jeg klarer kanskje å lære meg 8ek7eruR, men ikke 19 til med samme (manglende) mønster. Dermed er tanken: Lær meg dette, og legg til en bokstav til avhengig av hvilken tjeneste det er til. Eksempelvis ville passordet mitt til Facebook da blitt 8ek7eruRf, for twitter 8ek7eruRt etc. Problemet er jo at noen kanskje ville klare å gjette strukturen, men det er jo bare å være kreativ på hvor den ekstra bokstaven settes inn. Eller?

Metode 2: Kombinasjoner av ord. Grunnen til at man skal unngå ord er jo at de fæle crackerene skal kjøre Dictionary attack og finne passordet. Men da tenker jeg som følger; banan er et dårlig passord, det samme er geit. Men hva med banangeit? Det finnes neppe i noen ordbok, men det er større sjangse for at jeg husker dette enn 8ek7eruR. Dermed er det en smart måte å lage seg passord på. Ta to urelaterte ord og sett dem sammen. Banangeit, suppelik, bloggkniv, you name it. Eventuelt kan man jo også legge inn ett tall; ape3pai (hørtes ut som noe mat) og klorin9fraggel er et par eksempler. Spørsmålet er jo om slike ordbokangrep tar hensyn til alle utenkelige kombinasjoner av ord? Noen som vet?

Tjener lommerusk på Spotify

12. August 2009

Sist jeg sjekka var lommerusk mer enn ingenting, The Lionheart Brothers? Dagbladet har i dag en tåredryppende sak om bandet The Lionheart Brothers som ikke har tjent mer enn 19 kroner på 55 100 avspillinger på Spotify.

Det vil si noe slikt som 0.0004 øre pr avspilte låt. Greit nok, det er ikke en formue. Men så er da ikke 55 100 avspillinger så mye heller. Men et viktig spørsmål er her: Jeg måtte jo sette på dette bandet på Spotify for å sjekke hva det var for noe (og ble minnet på en ganske platt låt som gikk på P3 for noen år siden). Hadde jeg spilt av denne låten hvis jeg måtte gå på Platekompaniet og kjøpe albumet? Eller singelen? Neppe.

Så stop crying, dette er en sped start på en revolusjon av musikkindustrien, dere tjener mer penger enn om jeg hadde lastet ned skiva via Pirate Bay (der er regnestykket enkelt: 0,-), og sikkert mer enn hva dere tjener pr lytter på radio i TONO-royalities (en disclaimer på at jeg ikke har sjekket dette).

Men, over til noen som har FORSTÅTT saken, nemlig Gisle Martens Meyer, mannen best kjent for Ugess. I et svar til spørsmål fra meg på sin egen blogg om hva han forventer å tjene på Spotify sier han dette:

Real world example; when “Redrum” is streamed on Napster, I make USD 0.01613541 pr play.

I expect Spotify to be somewhat similiar. It’s not a lot but it adds up, and it keeps growing.

Anyway I’m not worried about the economical potential in services like these (yet) I am more interested in being part of them and being available. Not BEING available on Spotify yet is a bigger concern to me than how much I loose by that, because of situations like this one (you checking out if Ugress is there, and it is not, and that devaulates the service to you, and others)

Altså: det er effekten av å være tilstede som er verdifull, ikke selve royalitiene! Innse det! Og så kan man fange brukerenes interesse og selge musikken sin i Lossless-format, til egenvalgt pris! Prøv å innse dette, kjære platebransje, artister og andre. Dette er et paradigmeskifte, ingen ønsker å betale 200 kroner for en 74 mintters CD mer.

Og sånn til slutt vil jeg sitere fra Karl Magnus Blindheim i kommentarfeltet i Dagbladet -artikkelen, som sier det minst like godt som meg:

Så slutt å syte og sats på konserter + merch + kreative løsninger istedenfor. Det er bare de aller største som kan belage seg på å leve av royalties, noe Spotify-kompensasjonen faktisk er.