Informasjonsaggregering
Dette er noe som har forundret meg lenge. Vi har i dag http/html som håndterer lenking av informasjon, noe som i og for seg er fint, men det er akk så begrensende. Linking er i bunn og grunn informasjonsaggregering, men den går kun èn vei.

photo credit: vxla
Vel, at det hele er unidireksjonelt er ikke helt sant - man kan benytte seg av linkbacks, men dette er meg bekjent en one-off ting, som ikke videreføres med beskjed om at lenkingen er terminert, eller at det originale innholdet det pekes til er endret.
Et annet problem med lenkene er at de sender deg ut av konteksten du er i for å innhente informasjonen det pekes til. I mange tilfeller er dette, vel - suboptimalt.
Ønsket mitt er som følger: Jeg ønsker å kunne inkludere deler av informasjon innhentet annenstedsfra direkte i innholdet jeg lager, slik at informasjonen kan leses direkte i kontekst av det innholdet som presenteres. Dette kan selvsagt løses ved å sitere den delen av innholdet som er av interesse, men i dèt øyeblikket man har gjort dette løper man risikoen av divergens mellom innholdet som er sitert, og den faktiske informasjonen som er tilgjengelig. I en verden hvor informasjon er plastisk er det ofte ønskelig at informasjonen som hentes inn skal kunne holdes løpende oppdatert.
La meg gi et eksempel: I en protokoll/brukerhåndbok har man beskrevet forskjellige handlinger en bruker kan utføre. Blandt disse finnes det en del atomiske handlinger (la oss som eksempel bruke: "Logg på systemet") og sammensatte handlinger som eksisterer som sett av atomiske handlinger og supersett av disse settene igjen. La oss nå si at man har beskrevet fire forskjellige handlinger i dokumentasjonen som inkluderer handlingen "Logg på systemet". La oss videre si at det i levetiden til systemet blir gjort endringer i det atomiske handlingen "Logg på systemet". Hvis man har sitert/kopiert den originale beskrivelsen i de andre handlingene må man nå oppdatere samtlige av disse for at protokollen fremdeles skal gi et bilde av hvordan systemet fungerer. Dette blir fort et lite vedlikeholdsmareritt, for det er ikke en gang selvsagt hvor informasjonen har blitt kopiert til.
Lenker i dette tilfellet vil selvsagt ikke ha samme problem, men i dette tilfellet har vi problemet med kontekstendring (brukeren må følge lenken ut av protokollen og utføre det som er beskrevet i "Logg på systemet" og deretter returnere til den opprinnelige konteksten brukeren forlot).
En mulig løsning på dette problemet ville vært å utvide lenkebegrepet til å fungere som et "vindu" inn til den informasjonen man ønsker å formidle. Altså: i de fire handlingene som inkluderer "Logg på systemet" ville informasjonen bli hentet dynamisk fra den opprinnelige beskrivelsen av handlingen, og dermed ville det kun være nødvendig å endre informasjonen èn plass i systemet.
Dette er dòg ikke nok - det er også interessant for den som endrer informasjon å vite hvor det blir referert til informasjonen som er under endring - om enn ikke av andre grunner enn for å sjekke at informasjonen fremdeles er relevant i de andre kontekstene.
Det er selvsagt en del problemer som må løses innenfor et slikt system:
- Man må kunne identifisere spesifikke deler av informasjon for at referansene skal kunne håndteres. Dette burde kunne håndteres vha. strukturell metadata
- Det burde være mulig å endre referansene (monkeypatching). Dette burde være mulig ved å patche direkte ved henting av referansen (hvilket også ville gjøre det mulig for brukeren å se hvilke endringer som er gjort fra originalmaterialet)
- Linkråte. Kanskje dette problemet kunne minimaliseres ved å kjøre backenden for informasjonsdelingen over et distribuert versjonskontrollsystem (git?) hvor man beholder en lokal kopi av det refererte materialet og kan (velge) å oppdatere ved endringer i det originale materialet.
Kjenner noen av dere til systemer som kan håndtere dette allerede (m.a.o. - er dat bare jeg som har falt av teknologivogna)?
ZenTest er finfint!
Det er mye enklere å teste når testene kjører av seg selv og maser når det må mases. Med ZenTest og test_notifier får du beskjed når ting går galt helt automagisk - og det via libnotify/knotify. For en kjapp oppskrift, se her: getting started with autotest
Android 1.6 på telefonen
Jeg kunne ikke være dårligere enn handleschmandle, og puttet dermed cyanogenmods ROM på telefonen i går kveld. Meget godt fornøyd så langt.
blog.luguber.info på telefonen
Nå skal blog.luguber.info se bra ut på iphone/android/++ telefonen din. Greit når du står på kjøkkenet og skal kikke på en av oppskriftene du finner her:)
Google Wave invitasjoner
Jeg har fått en gjeng med invitasjoner til Google Wave - den siste store web-hypen. Hvis du har lyst på en, så er det bare å sende meg en mail eller legge igjen en kommentar.
Distro-hopping
Vel, etter at kubuntu 9.10 er sluppet, og jeg nok en gang har regresjoner (ingen compositing i X, en vannvittig storm av interrupts og lydproblemer) har jeg bestemt meg for å kikke litt rundt på alternativene. Først ut er OpenSuse 11.2, som jeg nå kjører på den etterhvert så gamle bærbare maskinen. Å gå tilbake til et rpm-basert system for første gang på - mange - år er litt rart, men etter de første 20 minuttene ser dette ganske OK ut. Etterpå tenkte jeg å teste ut Sidux - en debian-derivat som så ut til å funke greit med live CD'en i det minste. Jeg får rapportere hvordan det går etterhvert:)
squeezeplay
Jeg har eksperimentert litt med squeezecenter og squeezeslave i dag for å se om en squeezebox duet er en mulig løsning for musikkhåndtering i huset. Til nå ser denne løsningen ut til å være den som ligger nærmest opp til det vi en gang forsøkte å få til med wmus - med en tredeling av oppgavene (server/avspiller/kontroller). Foreløpig har jeg brukt webgrensesnittet, men da jeg skulle kompilere klienten som skal kunne kontrollere dette native fikk jeg litt hakeslepp...
De har puttet ikke mindre enn 26 eksterne biblioteker inn i source-treet sitt - og mange av disse er ganske så standard - f.eks.
- flac
- freetype
- jpeg
- libmad
- libpng
- lua
- SDL (Image/gfx/ttf)
- zlib
Det er bare de jeg umiddelbart kjenner igjen.
Jeg kunne forstått dette utifra det faktum at de bygger dette på linux/OSX/win32, men når buildscriptene deres ikke engang benytter seg av allerede installerte -dev biblioteker, og setter i gang med å bygge alt dette, installere det i build/lib og build/include for så ikke å greie å plukke dem derfra engang får jeg litt hetta.
Dette burde være en jobb for cmake, ikke for automake og VS2003-prosjektfiler
Jeg har blitt for gammel for dette... (ev. det er litt for sent på kvelden for dette)
Puppet mm.
Vel, i dag markerer den siste delen av kapittelet "Hus og innbo" fra "Den Praktiske Husmor". I morgen kommer første råd fra kapittelet "Klær" - rejoice.
Nå har jeg fått satt opp såpass med puppet-regler at jeg kan få satt opp en eee 900 med diverse optimaliseringer og en basisinstallering av de pakkene som er nødvendige for en sluttbruker. Dermed har jeg reinstallert kubuntu 8.10 på min egen eee fra bunnen (det er ganske greit å slippe alt mikkmakket i tilknytning til en ny installasjon) og fått satt opp min svogers eee i samme slengen. Nå er det serveren som står for tur.
Ny boks, nye muligheter
Da har jeg fått de siste delene for den nye husboksen på plass, så nå har jeg en helt minimal Ubuntu Server 8.10 installasjon der den eneste servicen som kjører er OpenSSH. Jeg skal sette denne opp slik at jeg kan få flyttet over tjenester fra den gamle boksen (som begynner å bli en del år) slik at jeg kan sette den opp på ny igjen.
Jeg kommer til å dokumentere her litt sånn etterhvert som arbeidet skrider frem. Fritiden er begrenset, så det kommer nok til å gå over en tid:)
Det første jeg skal gjøre er å sette opp puppet på boksen, deretter skal jeg konfigurere den vha. dette verktøyet. Hensikten med dette er todelt: Jeg vil bli kjent med puppet, og jeg vil gjenbruke konfigurasjonen på den gamle boksen når den skal opp og gå igjen. Viser det seg at puppet er grei å jobbe med kan det hende jeg bruker den til å fjernkonfigurere maskiner til venner og familie:)
Før jeg gjør noe i det hele tatt er det først inn med etckeeper, slik at alle endringer i /etc blir satt under versjonskontroll:
$ sudo apt-get install etckeeper
$ sudo etckeeper init
$ cd /etc
$ sudo git commit -m "Initial commit"
$ sudo git gc
Deretter installerer jeg puppetmaster:
$ sudo apt-get install puppetmaster
Ta en kikk på hjemmesidene til puppet for å få satt i gang.
World of Goo for linux
Yay - et av de bedre spillene som har blitt gitt ut i den siste tiden er nå portet til linux. Jeg har spilt dette en del på wii, og kan trygt anbefale et eventuellt kjøp. Det er et slags rart fysikksimulatorlemmingslignende puslespill som har såpass mange og passe korte utfordringer at man bare "må greie dette ene brettet" - og plutselig var det langt over leggetid.
Her har du en link.