Category Archives: Nerdeprat

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.

Hvor er du på web?

I disse “sosial web”-tider er man registrert både her og der, på forskjellige steder med forskjellige brukernavn. Jeg har listet de fleste sidene jeg er registrert på på Om Atle-siden. For noen dager siden tipset Øyvind Solstad om en tjeneste som gjør noe av det samme, nemlig socialwhois.com.

SocialWhois.com lar deg lage en kort biografi, legge inn dine interesser som tags og liste diverse sider du er medlem på. Jeg har laget meg en profil, du finner den på http://www.socialwhois.com/atlefren, der jeg lister en del av sidene jeg er registrert på:
Mine Sosiale Nettsteder

En annen side, som også gir deg en oversikt over hvor på nett du er tipset Martin Bekkelund om, pipl.com lar deg søke etter personer på “den dype webben” og finner overraskende mye.

Når jeg søker på navnet mitt finner den særs få sosiale nettsteder (kun Facebook), men veldig mange nettsteder og bloggposter/kommentarer. Egentlig ganske skremmende å se at ting ligger så oppe i dagen, men, som jeg har sagt før kan jeg i utgangspunktet stå inne for mine ytringer på nett, så noe stort problem er det ikke. Det er jo også ganske fascinerende at man kan finne alt dette.

Et tredje nettsted er BackType, som er beskrevet i detalj av Audun Wangen. Denne tjenesten finner hvilke blogger du har kommentert på, og samler disse. Du får altså en rimelig komplett oversikt over dine spor på verdensveven, mine kommentarer finner du på backtype.com/atlefren.

Spørsmålet er jo om slike sider har noen verdi. Er det noe poeng å registrere seg på backtype og socialwhois? Eller finnes disse sidene bare for å promotere egoet? Jeg hører gjerne fra deg, både om tips til lignende nettsteder og problemer eller fordeler ved å bruke disse..

LaTeX-tips del x

Dere får ikke fred, hver gang jeg finner ut noe fornuftig å LaTeX må jeg si fra et sted, og hvor er vel mer naturlig enn her?

Denne gangen har jeg hjulpet andre med å sette opp en LaTeX-mal, og da møter en fort på nye utfordringer og ting man ikke har tenkt over før. Disse tenkte jeg å dele her.

Avsnittinndeling

LaTeX bruker vanligvis innrykk for å skille mellom to avsnitt, slik som på bildet under:

Jeg synes dette er flott, det bruker ikke unødig whitespace, og det er oversiktlig. Imidlertid er ikke alle enige, de vil ha en tom linje som avsnittseparerer. Da kan man bruke pakka parskip, denne legges til i preamble slik:
\usepackage{parskip}
Da blir skillet mellom avsnitt slik:

Endre \ref og \eqref

For å referere til figurer og tabeller bruker man gjerne \ref, denne printer tallet på tabellen/figuren, dvs 1, mens \eqref printer tallet i en parantes, (1). Noen ønsker imidlertid å referere til en ligning på formen (ligning 1). For å få til dette kan man lage en ny kommando, jeg valgte å kalle den \lign, denne lages slik (i preamble):
\newcommand{\lign}[1]{(ligning~\ref{#1})}
og kalles da med
\lign{eq:std}
Dette kan man jo også bruke for å slippe å skrive table~\ref{tab:values} hver gang, man kan da lage en kommando \tab{} på formen:
\newcommand{\lign}[1]{table~\ref{#1}}
f.eks.
Her setter kun fantasien grenser 😉

Hvis man ikke trenger \eqref{} i det hele tatt kan man jo bruke \renewcommand istedenfor \newcommand også..

“Overskrift” inn i ToC

Det er mulig å legge til diverse ting i innholdsfortegnelsen (ToC), for eksempel kan man få inn en henvisning til referanselista med
\addcontentsline{toc}{section}{Referanser}
Imidlertid er ikke dette ønskelig i alle tilfeller, spesielt gjelder dette vedlegg. Alle sections i vedlegget legges jo til i ToC, men overskriften “Vedlegg” skrives ikke. Ved små oppgaver, der man ikke har noen “forside” for vedleggene, får man en referanse til Vedlegg på samme side som første vedlegg om man bruker trikset over. En måte å få dette til er å legge til en linje i ToC der det står Vedlegg, men uten sidenummer. Dette kan man hacke til med:
\addtocontents{toc}{\contentsline {section}{\numberline {Vedlegg}}{}{}}
Dette gir følgende resultat:

Custom headere på vedlegg

For å markere hva som er vedlegg kan man bruke spesiell nummerering på vedleggssidene, som jeg har gjort i malen min (\renewcommand{\thepage}{A-\arabic{page}}), og man kan sette på en “overskrift” på den første vedleggssiden. En annen løsning er å sette det i headeren, typisk å skrive Vedlegg X på et passende sted. Dette kan du gjøre med fancyhydr, lag en egen stil du kaller vedlegg, ved å legge til følgende i preamble:
\fancypagestyle{vedlegg}{ %
\fancyhf{} % remove everything
\fancyhead[LO]{Appendix \Alph{section}} %print appendix #
\renewcommand{\headrulewidth}{0.5pt} % and the line
\fancyfoot{} % get rid of footers on plain pages
\renewcommand{\footrulewidth}{0pt} % and the line
\fancyfoot[RO]{\thepage} % Print page number
}

Så sier du bare at denne stilen skal brukes når vedleggene starter, slik:
\pagestyle{vedlegg}
Da får du følgende resultat:

Og det var vel det for denne gang! Og som alltid: har du noen flere tips eller forbedringer til tipsene jeg har kommet med er det bare å skrike ut!

Hvor lang tid bruker du på en bok?

I dag snublet jeg over en litt skremmende opplysning hos Eirik Newth: En gjennomsnittlig nordmann vil bruke 40 år på å lese 1000 bøker.

Dette bygger på opplysningen om at nordmenn i gjennomsnitt bruker 12 minutter på boklesning pr. dag. Greit nok, jeg leser mer enn gjennomsnittet, men heller ikke det er nok:

Jeg mener det var i en episode av “Cosmos” at Sagan går langs en bokhylle, og minner om at selv ivrige lesere neppe rekker å komme gjennom mer enn et par-tre tusen bøker i løpet av et liv.

Dette gjorde meg litt skremt, og jeg prøvde å finne ut hvor lang tid jeg ville bruke på disse 1000 bøkene. Jeg har i den senere tid begynnt å registrere start- og sluttdato for lesing av bøkene mine på LibraryThing (som jeg har omtalt her før). Jeg registrer altså ikke alle bøker jeg leser, kun de jeg eier, som utgjør en ganske stor andel av de bøkene jeg leser. Ei heller har jeg registrert start- og slutttidspunkt på alle bøkene jeg har registert. Men dog, det er bedre statistisk grunnlag enn gjennomsnittsnordmannen. Og ved å bruke APIet til LibraryThing lagde jeg en JavaScript-snutt som regnet ut hvor mange dager jeg i gjennomsnitt har brukt på å lese de ca 40 bøkene jeg har nok data på. Svaret ble: 7 dager. Den interesserte leser kan se regnestykket her, sammen med link til kildekoden.

7 dager pr. bok. Det vil si at jeg hadde brukt 7000 dager = ca. 19 år på 1000 bøker, dvs nesten halve tiden det tar gjennomsnittnordmannen. Og hvis jeg leser en bok på 7 dager i gjennomsnitt, og la oss anta at jeg begynnte å lese bøker i 10-årsalderen (ja, jeg var en liten nerd) og kommer til å lese til jeg er, tja, 70? Da har jeg omtrent 60 år å lese bøker på. Da får jeg lest noe slikt som 3650 bøker i mitt liv. Det er jo ikke så mye. Uff.. Deprimerende..