Førstesiden Bli medlem Kontakt Informasjon Medlemsfordeler Utvalg Kalender NUUG/HIO prisen Dokumenter Innmelding Ressurser Mailinglister Wiki Linker Om de aktive Kart NUUG i media Planet NUUG webmaster@nuug.no
Powered by Planet! Last updated: September 02, 2010 07:35 PM

Planet NUUG

September 01, 2010

Martin Bekkelund

Lomsdal-Visten

Denne sommeren tilbrakte vi en uke i Lomsdal-Visten nasjonalpark i Nordland. I denne artikkelen kan du følge vår ferd fra Tosbotn i sør til Visten i nord-vest.

Lomsdalen

La meg ta det viktigste først: Lomsdal-Visten er sannsynligvis noe av det mest spektakulære jeg har opplevd av natur, både i Norge og resten av verden. I Lomsdal-Visten finner du få spor etter mennesker. Få stier og hytter, og enda færre mennesker. Kun massive mengder urørt, norsk, fantastisk natur.

Kart

I skrivende stund finnes det ingen turkart spesielt laget over nasjonalparken. Dermed må man ty til den klassiske kartserien Norge i 1:50 000 / M711. Skal du dekke hver eneste kvadratmeter av Lomsdal-Visten nasjonalpark må du kjøpe inn hele ni kart. Derimot holder det lenge med to-tre, avhengig av hvor du legger turen. De tre kartene som dekker mest er:

Direktoratet for naturforvaltning har produsert en PDF som viser nasjonalparkens plassering.

Lomsdal-Visten nasjonalpark

Trykk på kartet for en større utgave.

Rute

Vi startet vår rute i Tosbotn, sør for nasjonalparken. Herfra gikk via Bjørnstokkvatnan, Øvre, Midtre og Nedre Breivatna ned i Lomsdalen, videre opp Henriksdalen, på østsiden av Austerdalsfjellet og Austerdalsvatnet til Middagsfjellet og ned til Sandan ved Lakselvvatnet innerst i Visten.

Kartet under viser vår rute, med overnattinger markert. Trykk på her for en større utgave (14 MB).

Rute gjennom Lomsdal-Visten

Transport

For en søring uten inngående kjennskap til lokale transportmidler kan det være en utfordring å navigere transportselskapenes nettsider på jakt etter rutetider. Med mindre man ønsker å starte og avslutte på samme sted, er man helt avhengig av kollektivtransport. Selv kjørte vi til Tosbotn, hvor vi parkerte bilen, gikk gjennom nasjonalparken og tok kollektivtransport tilbake.

Man kan planlegge en tur gjennom Lomsdal-Visten på følgende måte:

For rutetider kan du ringe (!) Ruteopplysningen i Nordland på telefon 75 65 00 00 og Mosjøen turistinformasjon på telefon 75 11 12 40.

Bilder

Det vanskelige er ikke å ta nok bilder på en slik tur, men å velge ut de beste når man kommer hjem. Her er en håndfull.

På vei opp fra Tosbotn mot Bjørnstokkvatnan

Bjørnstokkvatnan

Utsikt sørover mot Bjørnstokkvatnan

Mot Bjørnstokkvatnan

Utsikt nordover ned i Breivasselva og Lomselva

Breivasselva

Vading i kaldt vann på sleipe steiner foretas best med Vibram FiveFingers

Vading

Skyfri himmel når vi våkner på nordsiden av Nedre Breivatnet

Nedre Breivatnet

Fantastisk panorama fra sørvest og innover i Lomsdalen

Lomsdalen

Utsikt vestover mot Breivassdalen, Breivasselva og Lausfjellet

Breivassdalen

Verden for våre føtter over Breivassdalen

Breivassdalen

Hengebro over Breivasselva i dusjen av Breivassforsen

Hengebro over Breivasselva

Breivassforsen gir oss en deilig dusj når vi krysser hengebroen

Breivassforsen

Meheiforsen midt i Lomsdalen

Meheiforsen

Lomsdalshytta, en av de få hyttene i nasjonalparken, er i privat eie og står åpen for alle

Lomsdalshytta

Restene av Lomsdalen gård

Lomsdalen gård

Hvor passer det best å vade?

Lomselva skal vades

Lomsdalen sett fra nord, ved inngangen til Henriksdalen

Lomsdalen

Overnatting på verdens tak, øverst i Henriksdalen, vest for Geehpjaevrie-vannet

Henriksdalen

Uten kart og kompass kommer man ingen vei i Lomsdal-Visten

Kart og kompass

Siste etappe fra Middagsfjellet ned mot Sandan ved Lakselvvatnet

Med kart og kompass mot Lakselvvatnet

Takk

Som alltid er det mange mennesker å takke når man trenger tips om ferd i ukjent terreng. En spesiell takk går til Marius Nergård Pettersen for mange og lange e-postutvekslinger. Marius driver nettstedet Det gjemte landet som er spesielt dedikert til Lomsdal-Visten. Ekstra artig var det å finne Marius’ signatur i gjesteboka i koia i Lomsdalen nesten to år før oss.

Stor takk også til Svein og Hugo for kaffe, øl og transport ut Visten og videre til Tosbotn — mennesker som gjør skam på alle som sier at nordmenn er et ugjestmildt folkeslag.

Takk også til gode venner for varm gjestfrihet i Tosbotn før og etter turen!

by Martin Bekkelund atSeptember 01, 2010 08:51 PM

Petter Reinholdtsen

My first perl GUI application - controlling a Spykee robot

This evening I made my first Perl GUI application. The last few days I have worked on a Perl module for controlling my recently aquired Spykee robots, and the module is now getting complete enought that it is possible to use it to control the robot driving at least. It was now time to figure out how to use it to create some GUI to allow me to drive the robot around. I picked PerlQt as I have had positive experiences with the Qt API before, and spent a few minutes browsing the web for examples. Using Qt Designer seemed like a short cut, so I ended up writing the perl GUI using Qt Designer and compiling it into a perl program using the puic program from libqt-perl. Nothing fancy yet, but it got buttons to connect and drive around.

The perl module I have written provide a object oriented API for controlling the robot. Here is an small example on how to use it:

use Spykee;
Spykee::discover(sub {$robot{$_[0]} = $_[1]});
my $host = (keys %robot)[0];
my $spykee = Spykee->new();
$spykee->contact($host, "admin", "admin");
$spykee->left();
sleep 2;
$spykee->right();
sleep 2;
$spykee->forward();
sleep 2;
$spykee->back();
sleep 2;
$spykee->stop();

Thanks to the release of the source of the robot firmware, I could peek into the implementation at the other end to figure out how to implement the protocol used by the robot. I've implemented several of the commands the robot understand, but is still missing the camera support to make it possible to control the robot from remote. First I want to implement support for uploading new firmware and configuring the wireless network, to make it possible to bootstrap a Spykee robot without the producers Windows and MacOSX software (I only have Linux, so I had to ask a friend to come over to get the robot testing going. :).

Will release the source to the public soon, but need to figure out where to make it available first. I will add a link to the NUUG wiki for those that want to check back later to find it.

September 01, 2010 07:00 PM

August 31, 2010

Petter Reinholdtsen

Forslag i stortinget om å stoppe elektronisk stemmegiving i Norge

Ble tipset i dag om at et forslag om å stoppe forsøkene med elektronisk stemmegiving utenfor valglokaler er til behandling i Stortinget. Forslaget er fremmet av Erna Solberg, Michael Tetzschner og Trond Helleland.

Håper det får flertall.

August 31, 2010 07:00 PM

August 30, 2010

Petter Reinholdtsen

Broken hard link handling with sshfs

Just got an email from Tobias Gruetzmacher as a followup on my previous post about sshfs. He reported another problem with sshfs. It fail to handle hard links properly. A simple way to spot this is to look at the . and .. entries in the directory tree. These should have a link count >1, but on sshfs the count is 1. I just tested to see what happen when trying to hardlink, and this fail as well:

% ln foo bar
ln: creating hard link `bar' => `foo': Function not implemented
%

I have not yet found time to implement a test for this in my file system test code, but believe having working hard links is useful to avoid surprised unix programs. Not as useful as working file locking and symlinks, which are required to get a working desktop, but useful nevertheless. :)

The latest version of the file system test code is available via git from http://github.com/gebi/fs-test

August 30, 2010 05:30 PM

Friprogsenteret

Akershus fylkeskommune anskaffer ny telefoniløsning basert på fri programvare

Akershus fylkeskommune og prosjektansvarlig Bjørn Venn har anskaffet ny telefoniløsning. Vi i Friprogsenteret syns prosjektet er spennende og tok en prat med Bjørn for å få litt mer informasjon om prosessen og de tankene som ligger bak prosjektet.

by Christer Gundersen atAugust 30, 2010 09:07 AM

Martin Bekkelund

Garmin Forerunner 305

Jeg trodde det skulle være enkelt å finne en pulsklokke som dekker mine behov. Det var det ikke, men til gjengjeld fant jeg Garmin Forerunner 305 som både dekker mine behov og som ikke tømte lommeboka.

Garmin Forerunner 305

Mine krav

Å kjøpe pulsklokke er et spørsmål om behov. Jeg har aldri hatt pulsklokke tidligere, til tross for at jeg alltid har trent en del. Derfor hadde kun vage tanker om hva jeg trengte:

Så enkelt og vanskelig kan det altså gjøres. Enkelt fordi kravene er enkle å imøtekomme. Vanskelig fordi det tilsynelatende gjør noe med utvalget. Utover dette regner jeg med at klokkene som oppfyller kravene har all funksjonalitet jeg måtte trenge rundt tidtaking, pulsmåling og så videre.

Imidlertid viser det seg at det kun er Garmin som oppfyller alle kravene, med sin Forerunner-serie. Imidlertid ble jeg aldri klok på hvorfor jeg skulle velge 405CX til 2675,- kroner fremfor 310XT til 2595,- kroner eller 305 til 1449,- kroner. Dermed endte jeg opp med sistnevnte.

I esken

I esken finner du:

I tillegg kjøpte jeg festebrakett for sykkel til 149,- kroner.

Installasjon og oppsett

På datamaskinen

Installasjon og oppsett av programvaren på datamaskinen er så enkelt som det bør være. Siste versjon av Garmin Training Center lastes ned fra nett, installeres og settes enkelt opp. Fra denne kan man publisere treningsøkter til Garmin Connect som er en nettbasert løsning med mange fine funksjoner.

Straks programvaren er installert og du har tatt din første treningstur, kobler du klokka til maskinen via dokkingstasjonen.

På pulsklokka

Når du skrur på enheten første gang blir du tatt igjennom en kort veiviser for å sette de viktigste innstillingene. Allikevel gjennomgås ikke alle innstillinger, for eksempel må du velge metrics fremfor imperial manuelt, så det kan lønne seg å ta en kjapp tur gjennom menyen for å se at alt er slik du vil ha det.

Innstillingene er heldigvis oversiktlige og lettforståelige, og du kan velge norsk språk.

Lading og batteritid

Det følger med en dokkingstasjon som enheten legges i. Denne enheten kobles da til datamaskinen eller en stikkontakt med USB for lading. Å fullade enheten tar omlag tre timer.

Garmin hevder batterikapasitet på inntil 10 timer. Min gode venn Andreas rapporterer omlag 8 timer på sin 405CX, mens andre igjen forteller om 5 timer. Selv har jeg ikke lange nok turer til å bekrefte eller avkrefte, men jeg legger igjen kommentar straks jeg vet mer.

I bruk

Størrelse og komfort

Garmin Forerunner 305 er et digert beist. Mildt sagt. Heldigvis veier den bare 77 gram og ikke i nærheten av hva størrelsen gir inntrykk av.

Til tross for størrelsen er den med sine beskjedne 77 gram komfortabel å ha på under trening. Brystbeltet strammer ikke for mye og sitter godt uten å skli ned.

Garmin Forerunner 305 på armen

Skjerm og brukervennlighet

Skjermen er stor, tallene lettleste og knappene enkle å betjene. I tillegg er brukervennligheten god og lettforståelig. Skjermen har også bakgrunnsbelysning som kan skrus av og på.

GPS

Garmin Forerunner 305 benytter ikke bare satellitter i GPS-nettet, men også fra EGNOS. I kombinasjon med det velkjente SiRFstar III-brikkesettet som stort sett alle GPS-er nå benytter, bør det legge grunnlaget for svært god nøyaktighet.

Min erfaring er at nøyaktigheten er så god som den kan få blitt, nesten fullkommen. Som orienteringsløper løper jeg rundt i tett skog uten fri sikt til åpen himmel. Det er en utakknemlig oppgave å angi nøyaktig posisjonering under slike forhold, og Garmin Forerunner 305 leverer bedre enn forventet. I eksempelet jeg har publisert lenger ned kan du faktisk sammenlikne Google Earth mot Statens kartverk og se at førstnevnte er mest nøyaktig.

Etter treningsøkten

Garmin Training Center

Straks treningsøkten er over kobler du klokka til datamaskinen og starter den medfølgende programvaren Garmin Training Center. Overføring går lynraskt og du ser umiddelbart følgende skjermbilde:

Garmin Training Center

(Trykk på skjermbildet for en større utgave)

I Garmin Training Center ligger mye funksjonalitet for blant annet treningsdagbøker, overføring av treningsøkter til og fra klokka. For meg ligger den største verdien foreløpig i å se hvor jeg har løpt, høydeprofilen på turen, puls, hastigheter, distanse og tidsforbruk.

Kartet er absolutt ingenting å skryte av. Det var heldigvis noe jeg forutså, slik at jeg ønsket meg mulighet for eksport av GPX-filer. Eksport gjør man enkelt rett fra Garmin Training Center.

Resultatet er at jeg kan kombinere GPX-filen med kartdata fra Statens kartverk, slik Atle Frenvik Sveen har beskrevet for oss. Resultatet er intet annet en lekkert, i hvert fall for oss orienteringsnerder:

Din nettleser støtter ikke rammer!

Trykk her for større kart

Skulle ikke det være nok kan du også eksportere ruter til Google Earth og Garmins eget TCX-format. Sistnevnte er et XML-basert format spesielt utviklet av Garmin for å eksportere treningsøkter. I motsetning til en GPX som kun inneholder tidsangivelse og koordinater på et kart, inneholder en TCX-fil både tidsangivelse, koordinater, høyde over havet, puls og hastighet. Slikt kan man jo more seg med i timesvis, for eksempel i egenutviklede regneark eller databaser for rapportering og lekre grafer.

Garmin Connect

Garmin Connect fremstår tilsynelatende som en nettbasert versjon av Garmin Training Center. Du kan laste opp treningsøkter direkte fra klokka til nettstedet, noe som gjør Garmin Training Center overflødig. Du kan også eksportere GPX-filer fra Garmin Connect. Imidlertid har jeg ikke nok fartstid med noen av delene til å kunne gi en nøyaktig sammenlikning.

Garmin Connect

(Trykk på skjermbildet for en større utgave)

Konklusjon

Jeg har kun vært i besittelse av Garmin Forerunner 305 i kortere tid, men allerede etter litt bruk ser jeg at all funksjonaliteten jeg ønsker meg er på plass — og vel så det. Nøyaktighet og batterikapasitet holder så langt til mine behov.

Fordeler:

Ulemper:

Jeg har således ingen problemer med å gi Garmin Forerunner 305 en varm anbefaling!

Til slutt kun en pussig kuriositet som kan gi tvangsnevroser av mindre. Denne lille lappen er klistret over klokka og er det aller første man leser når man kikker på produktet:

Foruroligende advarsel

Selv om jeg personlig tar det hele med stor ro og lett humor, ser jeg fint hvordan dette kan bekymre en stakkars nevrotiker.

by Martin Bekkelund atAugust 30, 2010 08:36 AM

August 28, 2010

Petter Reinholdtsen

Sikkerhetsteateret på flyplassene fortsetter

Jeg skrev for et halvt år siden hvordan samfunnet kaster bort ressurser på sikkerhetstiltak som ikke fungerer. Kom nettopp over en historie fra en pilot fra USA som kommenterer det samme. Jeg mistenker det kun er uvitenhet og autoritetstro som gjør at så få protesterer. Har veldig sans for piloten omtalt i Aftenposten 2007-10-23, og skulle ønske flere rettet oppmerksomhet mot problemet. Det gir ikke meg trygghetsfølelse på flyplassene når jeg ser at flyplassadministrasjonen kaster bort folk, penger og tid på tull i stedet for ting som bidrar til reell økning av sikkerheten. Det forteller meg jo at vurderingsevnen til de som burde bidra til økt sikkerhet er svært sviktende, noe som ikke taler godt for de andre tiltakene.

Mon tro hva som skjer hvis det fantes en enkel brosjyre å skrive ut fra Internet som forklarte hva som er galt med sikkerhetsopplegget på flyplassene, og folk skrev ut og la en bunke på flyplassene når de passerte. Kanskje det ville fått flere til å få øynene opp for problemet.

Personlig synes jeg flyopplevelsen er blitt så avskyelig at jeg forsøker å klare meg med tog, bil og båt for å slippe ubehaget. Det er dog noe vanskelig i det langstrakte Norge og for å kunne besøke de delene av verden jeg ønsker å nå. Mistenker at flere har det slik, og at dette går ut over inntjeningen til flyselskapene. Det er antagelig en god ting sett fra et miljøperspektiv, men det er en annen sak.

August 28, 2010 08:40 AM

August 27, 2010

Martin Bekkelund

Dokkingstasjon til iPad

Dokkingstasjon til iPad

Jeg har allerede en dokkingstasjon til telefonen, så da jeg fikk muligheten til å plukke med meg et par varer fra MyTrendyPhone.no var det ikke vanskelig å bestemme seg for en dokkingstasjon til iPad-en.

Med en slik dokkingstasjon får jeg samlet alle skjermene, noe som er spesielt nyttig med tanke på at iPad-en også kan brukes til å utvide skjermen på Mac-en.

Hjemmekontoret

Den er hvit, den er høyglanset, kobles til maskinen med USB og koster skarve 179,- kroner. Så enkelt og pent som det bør være.

Produktet har jeg fått av nettbutikken for testing.

by Martin Bekkelund atAugust 27, 2010 05:17 PM

August 26, 2010

Petter Reinholdtsen

Skolelinux i Osloskolen

Denne høsten skal endelig alle Osloskolene få mulighet til å bruke Skolelinux. Ny IT-løsning har vært rullet ut i noen måneder nå, og så vidt jeg fikk vite før sommeren skulle alle skoler ha nytt opplegg på plass før oppstart nå i høst. På alle skolene skal en kunne velge ved installasjon om en skal ha Windows eller Skolelinux på maskinene, og en kan i tillegg PXE-boote maskinene over nett som tynne klienter eller diskløse arbeidsstasjoner. Jeg er spent på hvor mange skoler som velger å ta i bruk Skolelinux, og gleder meg til å se hvordan dette utvikler seg. Løsningen leveres av Logica med Skolelinux Drift AS som underleverandør, og jeg har vært involvert i utviklingen av løsningen via Skolelinux Drift AS siden prosjektet starter. Jeg synes det er fantastisk at Skolelinux er kommet så langt siden vi startet i 2001 at alle elevene i Osloskolene nå skal få mulighet til å bruke løsningen. Jeg håper de vil sette pris på alle de fantastiske brukerprogrammene som er tilgjengelig i Skolelinux.

August 26, 2010 08:25 PM

Broken umask handling with sshfs

My file system sematics program presented a few days ago is very useful to verify that a file system can work as a unix home directory,and today I had to extend it a bit. I'm looking into alternatives for home directory access here at the University of Oslo, and one of the options is sshfs. My friend Finn-Arne mentioned a while back that they had used sshfs with Debian Edu, but stopped because of problems. I asked today what the problems where, and he mentioned that sshfs failed to handle umask properly. Trying to detect the problem I wrote this addition to my fs testing script:

mode_t touch_get_mode(const char *name, mode_t mode) {
  mode_t retval = 0;
  int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, mode);
  if (-1 != fd) {
    unlink(name);
    struct stat statbuf;
    if (-1 != fstat(fd, &statbuf)) {
      retval = statbuf.st_mode & 0x1ff;
    }
    close(fd);
  }
  return retval;
}

/* Try to detect problem discovered using sshfs */
int test_umask(void) {
  printf("info: testing umask effect on file creation\n");

  mode_t orig_umask = umask(000);
  mode_t newmode;
  if (0666 != (newmode = touch_get_mode("foobar", 0666))) {
    printf("  error: Wrong file mode %o when creating using mode 666 and umask 000\n",
           newmode);
  }
  umask(007);
  if (0660 != (newmode = touch_get_mode("foobar", 0666))) {
    printf("  error: Wrong file mode %o when creating using mode 666 and umask 007\n",
           newmode);
  }

  umask (orig_umask);
  return 0;
}

int main(int argc, char **argv) {
  [...]
  test_umask();
  return 0;
}

Sure enough. On NFS to a netapp, I get this result:

Testing POSIX/Unix sematics on file system
info: testing symlink creation
info: testing subdirectory creation
info: testing fcntl locking
  Read-locking 1 byte from 1073741824
  Read-locking 510 byte from 1073741826
  Unlocking 1 byte from 1073741824
  Write-locking 1 byte from 1073741824
  Write-locking 510 byte from 1073741826
  Unlocking 2 byte from 1073741824
info: testing umask effect on file creation

When mounting the same directory using sshfs, I get this result:

Testing POSIX/Unix sematics on file system
info: testing symlink creation
info: testing subdirectory creation
info: testing fcntl locking
  Read-locking 1 byte from 1073741824
  Read-locking 510 byte from 1073741826
  Unlocking 1 byte from 1073741824
  Write-locking 1 byte from 1073741824
  Write-locking 510 byte from 1073741826
  Unlocking 2 byte from 1073741824
info: testing umask effect on file creation
  error: Wrong file mode 644 when creating using mode 666 and umask 000
  error: Wrong file mode 640 when creating using mode 666 and umask 007

So, I can conclude that sshfs is better than smb to a Netapp or a Windows server, but not good enough to be used as a home directory.

Update 2010-08-26: Reported the issue in BTS report #594498

Update 2010-08-27: Michael Gebetsroither report that he found the script so useful that he created a GIT repository and stored it in http://github.com/gebi/fs-test.

August 26, 2010 11:30 AM

August 24, 2010

Martin Bekkelund

Løft blikket

Har oljen lammet våre innovative gener og gjort oss til en gjeng kritiske, jantelovforfektende grinebitere?

I Morgenbladet kunne vi nylig lese en kronikk med tittelen Norge, 2050: A failed nation. Fremtidsvisjoner om hva Norge skal leve av etter oljen er ikke nye, heller ikke her på bekkelund.net. Denne gangen reflekterer jeg over et av de største hindrene for norsk innovasjon og internasjonal suksess.

Rød sone, grønn sone

De fleste som har arbeidet som prosjektledere kjenner begrepene rød sone og grønn sone.

Når prosjektgruppen befinner seg i grønn sone er det åpnet for fritenking og positiv diskusjon for å avle frem nye ideer. Det er i grønn sone innovasjonen skjer, at ideene skapes. I grønn sone er det ikke tillatt å kritisere verken egne eller andres forslag og innspill. Man lanserer en tanke, gjerne en vill en, ballen begynner å rulle og prosjektgruppen spinner i fellesskap videre med flere tanker. I grønn sone tenker man verken på økonomiske eller teknologiske begrensninger, en praksis man kjenner fra blant annet Google.

I rød sone, derimot, diskuterer man utfordringene som oppstår i kjølvannet av ideene lansert i grønn sone. Er ideene levedyktige? Samtidig har man fokus på at ideene faktisk skal lanseres, slik at man ikke kveler dem for tidlig. Hvis jeg skal stikke en finger i luften, vil jeg anslå at 1 av 10 ideer faktisk er mulig å lansere som et endelig produkt eller tjeneste.

Den norske modellen

Nordmenns problem er at vi befinner oss alt for mye i rød sone. Har du noen gang vært i et møte hvor det har blitt fremmet et forslag, som i neste øyeblikk har blitt høvlet ned av en annen?

Det møtet har jeg også vært i.

Og tror du vedkommende som fremmet ideen fremmer en idé neste gang hun får en?

Det tror ikke jeg heller.

Det kan være janteloven eller inngrodd norsk pessimisme som gjør det. Ille er det uansett, og ingenting er mindre konstruktivt enn destruktive tanker som overkjører konstruktive. Når store tanker tenkes skal det ikke være rom for kritikk eller fokus på detaljer. I grønn sone diskuterer man ideer og lar uvesentligheter ligge.

Når skal vi nordmenn forstå dette?

Fra rød til grønn

Jeg vil nødig klage, uten å avslutte konstruktivt. Neste gang du sitter i et møte, eller leser et forslag, tenk gjerne over din egen kritiske sans overfor andres forslag. Ja, du kan gjerne være kritisk, men det trenger ikke å være det første du er.

Innfør gjerne rød sone og grønn sone på din arbeidsplass. Ikke bare er det utrolig effektivt og virkningsfullt, det er også veldig morsomt.

by Martin Bekkelund atAugust 24, 2010 10:40 AM

August 23, 2010

Petter Reinholdtsen

Elektronisk stemmegiving er ikke til å stole på - heller ikke i Norge

I Norge pågår en prosess for å innføre elektronisk stemmegiving ved kommune- og stortingsvalg. Dette skal introduseres i 2011. Det er all grunn til å tro at valg i Norge ikke vil være til å stole på hvis dette blir gjennomført. Da det hele var oppe til høring i 2006 forfattet jeg en høringsuttalelse fra NUUG (og EFN som hengte seg på) som skisserte hvilke punkter som må oppfylles for at en skal kunne stole på et valg, og elektronisk stemmegiving mangler flere av disse. Elektronisk stemmegiving er for alle praktiske formål å putte ens stemme i en sort boks under andres kontroll, og satse på at de som har kontroll med boksen er til å stole på - uten at en har mulighet til å verifisere dette selv. Det er ikke slik en gjennomfører demokratiske valg.

Da problemet er fundamentalt med hvordan elektronisk stemmegiving må fungere for at også ikke-krypografer skal kunne delta, har det vært mange rapporter om hvordan elektronisk stemmegiving har sviktet i land etter land. En liten samling referanser finnes på NUUGs wiki. Den siste er fra India, der valgkomisjonen har valgt å pusse politiet på en forsker som har dokumentert svakheter i valgsystemet.

Her i Norge har en valgt en annen tilnærming, der en forsøker seg med teknobabbel for å få befolkningen til å tro at dette skal bli sikkert. Husk, elektronisk stemmegiving underminerer de demokratiske valgene i Norge, og bør ikke innføres.

Den offentlige diskusjonen blir litt vanskelig av at media har valgt å kalle dette "evalg", som kan sies å både gjelde elektronisk opptelling av valget som Norge har gjort siden 60-tallet og som er en svært god ide, og elektronisk opptelling som er en svært dårlig ide. Diskusjonen gir ikke mening hvis en skal diskutere om en er for eller mot "evalg", og jeg forsøker derfor å være klar på at jeg snakker om elektronisk stemmegiving og unngå begrepet "evalg".

August 23, 2010 05:30 PM

August 21, 2010

Petter Reinholdtsen

Robot, reis deg...

I dag fikk jeg endelig tittet litt på mine nyinnkjøpte roboter, og har brukt noen timer til å google etter interessante referanser og aktuell kildekode for bruk på Linux. Det mest lovende så langt er ispykee, som har en BSD-lisensiert linux-daemon som står som mellomledd mellom roboter på lokalnettet og en sentral tjeneste der en iPhone kan koble seg opp for å fjernstyre roboten. Linux-daemonen implementerer deler av protokollen som roboten forstår. Etter å ha knotet litt med å oppnå kontakt med roboten (den oppretter et eget ad-hoc wifi-nett, så jeg måtte gå av mitt vanlige nett for å få kontakt), og kommet frem til at den lytter på IP-port 9000 og 9001, gikk jeg i gang med å finne ut hvordan jeg kunne snakke med roboten vha. disse portene. Robotbiten av protokollen er publisert av produsenten med GPL-lisens, slik at det er mulig å se hvordan protokollen fungerer. Det finnes en java-klient for Android som så ganske snasen ut, men fant ingen kildekode for denne. Derimot hadde iphone-løsningen kildekode, så jeg tok utgangspunkt i den.

Daemonen ville i utgangspunktet forsøke å kontakte den sentrale tjenesten som iphone-programmet kobler seg til. Jeg skrev dette om til i stedet å sette opp en nettverkstjeneste på min lokale maskin, som jeg kan koble meg opp til med telnet og gi kommandoer til roboten (act, forward, right, left, etc). Det involverte i praksis å bytte ut socket()/connect() med socket()/bind()/listen()/accept() for å gjøre klienten om til en tjener.

Mens jeg har forsøkt å få roboten til å bevege seg har min samboer skrudd sammen resten av roboten for å få montert kamera og plastpynten (armer, plastfiber for lys). Nå er det hele montert, og roboten er klar til bruk. Må få flyttet den over til mitt vanlige trådløsnett før det blir praktisk, men de bitene av protokollen er ikke implementert i ispykee-daemonen, så der må jeg enten få tak i en mac eller en windows-maskin, eller implementere det selv.

Vi var tre som kjøpte slike roboter, og vi har blitt enige om å samle notater og referanser på NUUGs wiki. Ta en titt der hvis du er nysgjerrig.

August 21, 2010 08:10 PM

August 20, 2010

Bjørn Venn

Så var debatten i gang igjen… (vedr. Afks anskaffelse av ny telefoniløsning)

Computerworlds journalist Ole Petter Baugerød Stokke ringte meg her om dagen for å følge opp artikkelen han skrev for et par måneder siden. Idag kom resultatet, en artikkel som fortalte at både undertegnede og Akershus fylkeskommune er godt fornøyd med både løsningen og leverandøren som vant anbudet. Og igjen så blir det en debatt etter artikkelen. Noen vil tillegge oss meninger og handlinger som ikke er tilfelle, så derfor postet jeg nettopp følgende innlegg i debatten:

For å komme tilbake til saken: Akershus fylkeskommunes (Afk) inngåtte kontrakt med firma Telekompetanse om levering av ny felles telefoniløsning. La meg oppklare litt:

 

  1. Afk har kjørt en åpen anbudskonkurranse (som betyr at alle som vil kan gi et tilbud), hvor den beste løsningen til den beste prisen vant. Telekompetanse vant, og på oppstartsmøtet vi hadde i forrige uke viste de mye mer funksjonalitet enn hva vi faktisk hadde etterspurt. Noe særdeles nyttig, noe «nice-to-have». Men det ligger nå i deres standardløsning (som for øvrig de selv omtaler som en Unified Communication-løsning). Og som artikkelen påpeker, så har vi fått svært mye for pengene (=skattebetalernes penger).  

  2. Afk har ikke vært opptatt av å anskaffe en friprog-basert løsning. Vi har vært opptatt av åpne standarder og at løsningen skulle dekke våre behov (funksjonalitet). Behovene er kartlagt gjennom en intern prosess i fjor høst/vinter. Fokus har vært på svartjenesten; hvordan innringere opplever det å ringe til våre skoler og tannklinikker. Kommer jeg frem til den jeg vil snakke med? Kan jeg vente på at han/hun blir ledig? Kan jeg få lagt igjen en beskjed? Har ekspedientene tilstrekkelig info om de ansatte? (personalia, hvor de er, osv.).  

  3. Afk har en samhandlingsløsning. Den heter It’s learning og brukes daglig av 90% av de ansatte. I tillegg kommer altså lynmeldingstjeneste («Instant messaging»), filoverføring, video, tilstedværelsesmarkering, tavle («whiteboard») m.m. gjennom den nye telefoniløsningen. Det siste ivaretas av fri programvare-produktet BigBlueButton (http://bigbluebutton.org/), som attpåtil er utviklet spesielt for utdanningssektoren.  

  4. Afk skal selvfølgelig ikke drive programvareutvikling. Vi forholder oss til firma Telekompetanse, som igjen forholder seg til anerkjente fri programvare-produkter (Linux, MySQL, Asterisk, Kamailio, Nagios bare for å nevne noen). Telekompetanse har designet en solid, skalerbar løsning, og tilgjengeliggjort funksjonalitet i hht kravspec gjennom et brukervennlig web-basert grensesnitt. Det blir omtrent som når et web-firma bygger et nettsted. Kunden forholder seg til dette web-selskapet, og web-firmaet baserer løsningen på anerkjente fri programvare-produkter, typisk LAMP-plattformen (Linux/Apache/MySQL/PhP), samt en eller annen CMS, for eksempel Joomla!, eZ Publish, Wordpress el.l.)

 

For de som er nysgjerrige på løsningen vi nå skal i gang med å implementere, så ta gjerne kontakt, så gir vi gjerne en demo.

by Bjørn atAugust 20, 2010 01:13 PM

Martin Bekkelund

Data

Det er utrolig hva man kan avdekke med store mengder riktige data. Her reflekterer jeg over fordelene og ulempene ved tilgang til store datamengder.

Data og informasjon

I følge Wikipedia er data

Meningsnøytrale forekomster av tekst, tall eller lignende bærere av verdier som kan inngå i eller bidra til å forme informasjon.

Se på følgende tall:

11,89
11,73
11,53
11,09
10,99
10,89
10,83

Tallene gir ingen mening fordi de er data og data alene gir ingen mening. I det øyeblikk jeg forteller deg at dette er dieselprisene på min lokale bensinstasjon gjennom en uke, forvandles data til informasjon. Data er altså grunnlaget som danner informasjon.

Vi kan si at data er en variabel, det vil si at den kan variere, selv om enkelte data kan være statiske eller konstante. Dieselprisen er en variabel, lengden på et sekund konstant (i hvert fall her omkring). Data er typisk et resultat av målinger — for eksempel dieselprisen jeg har observert, eller lagrede data — for eksempel dieselprisen bensinstasjonen lagrer i sitt datasystem.

Alene gir data ingen mening, satt i system blir data til informasjon som gir mening.

Hva er riktige data?

Riktige data er, ikke overraskende, data som faktisk er riktige, og ikke bare vi tror er riktige. I tidligere tider trodde man jorda var flat. Nå vet vi at den er rund. Hvis man på den tiden skulle slått opp i data om jordens form, ville man i datasettet funnet flat, mens det riktige ville vært rund.

Tilgang til riktige data er viktig fordi vi med feilaktige data får feilaktig informasjon og således tar feilaktige beslutninger. Tenk bare hvilke enorme datamengder som ligger til grunn for de beslutninger vi tar hver dag. Er alle dine beslutninger riktige? Svaret er nei. Nei, fordi datagrunnlaget som danner beslutningsgrunnlaget ditt er feil. Du besitter altså feil informasjon.

Feilaktige data oppstår som følger av en av to årsaker:

  1. Våre målinger eller faktaantakelser er feil, ref. om jorden er flat eller rund
  2. Noen har manipulert datagrunnlaget

I tidligere tider, da man trodde at jorda var flat, skjedde det tilsynelatende ingen skade som følger av det. Ingen turde seile jorda rundt, i frykt for å seile over kanten. En mindre heldig, og langt verre konsekvens var at kritikere som hevdet at jorda var rund, og ikke flat, ble brent på bålet.

Hva skjer hvis vi i dagens samfunn tar feilaktige beslutninger på feil grunnlag? Kanskje fengsler vi uskyldige mennesker fordi vi tror de er potensielle terrorister. Kanskje tar politikerne feil beslutninger som angår vårt lands ve og vel.

God og dårlig bruk av data

Statistisk sentralbyrå, som er en av Norges mest spennende datakilder, kan helt sikkert fortelle masse om god og dårlig bruk av data. Mindre datamengder har større potensiale for feil, mens store datamengder blir mer riktige. Det er svært utfordrende å ta beslutninger på små datafragmenter, spesielt hvis man ikke kan forsikre seg om at de er riktige. Det kan du blant annet lese om i boken SuperFreakonomics, hvor forfatterne beskriver utfordringene en bank står overfor når de leter etter terrorister i sine kundedata.

Personvernutfordringer

Jeg elsker data! Spesielt store datamengder, de kan man kose seg med i timesvis, se på, lage grafer av, se på normaliteter og abnormaliteter og trender. Data kan fortelle oss fantastisk mye, gitt at de er riktige.

Imidlertid finnes det et punkt hvor datagrunnlaget turns evil. Det skjer i det øyeblikk man samler inn eller tilknytter data som gir uheldig informasjon. Det kan eksempelvis være å knytte til seg data som kobler personer til dataene. Å se på data om reisende med kollektivnettet i Oslo må være utrolig spennende, men i det øyeblikk man knytter personinformasjon til alle reisene, slik at man kan se hvem som har reist hvor og når, går datasettet hen og turns evil.

Uttrykket turning evil er avledet fra menneskers atferd i forhold til hva de kan gjøre med dataene. Fra å være mennesker med redelige hensikter, lar enkelte seg dessverre raskt friste til å misbruke tilgangen til dataene. Enten ved å tilegne seg informasjon til seg selv, eller ved å selge den til andre. Historien viser dessverre at det ikke er et spørsmål om hvis, men om når, bare dataene er interessante nok og vedkommende har det rette insentivet. Mennesker er verken gode eller onde, men er mennesker — og mennesker svarer på insentiver.

Ingen bedrift eller organisasjon som samler inn data kan sikre seg mot misbruk. Det er dessverre en illusjon vi har blitt forledet til å tro. Alt kan hackes, manipuleres og omgås, og før eller siden vil noen få tilgang til dataene og misbruke de, enten i form av hackere eller utro tjenere.

Enhver bedrift eller organisasjon som samler inn data, må i derfor heller sikre seg at data som samles inn ikke inneholder opplysninger med høy risiko for misbruk. I disse tider hvor enkelte myndigheter ser terrorister hvor enn man snur og vender seg, bør det være et tankekors både for myndighetene selv og for oss som velger dem eller betaler deres lønn.

by Martin Bekkelund atAugust 20, 2010 08:03 AM

August 18, 2010

Martin Bekkelund

Korn III — Remember Who You Are

De glade misantropene i KoЯn har velsignet verden med et nytt album, Korn III — Remember Who You Are. Leverer KoЯn fortsatt varene etter 17 år?

Korn III — Remember Who You Are

På mange måter minner Korn III — Remember Who You Are om debutalbumet Korn fra 1994. Det kan virke som om Korn har en tilbake-til-røttene-periode med et lydbilde som minner svært om Korn. Fyldig bass, skarpe bassgitar-riff, særegne lydeffekter og Jonathan Davis’ klagende vokal. Det burde være oppskriften på en suksess.

Korn III — Remember Who You Are er definitivt et album du må ha i samlingen din. Allikevel har jeg problemer med å gi det toppkarakter. Dersom jeg rullet terning, ville jeg gitt det en klar 4. Sangene er solide, fengende og det man forventer fra KoЯn, men etter å ha lyttet til det flere titalls ganger skiller det seg allikevel ikke nevneverdig ut fra resten av KoЯns utgivelser.

Sanger som trekker opp er Oildale [Leave Me Alone], Fear is a Place to Live, Let the Guilt Go og The Past. Resten av sangene blir litt for typiske.

Korn III — Remember Who You Are lytter du til på Spotify.

by Martin Bekkelund atAugust 18, 2010 12:09 PM

Petter Reinholdtsen

2 Spykee-roboter i hus, nå skal det lekes

Jeg kjøpte nettopp to Spykee-roboter, for test og leking. Kjøpte to da det var så billige, og gir meg mulighet til å eksperimentere uten å være veldig redd for å ødelegge alt ved å bytte ut firmware og slikt. Oppdaget at lekebutikken på Bryn senter hadde en liten stabel på lager som de ikke hadde klart å selge ut etter fjorårets juleinnkjøp, og var villig til å selge for en femtedel av vanlig pris. Jeg, Ronny og Jarle har skaffet oss restbeholdningen, og det blir morsomt å se hva vi får ut av dette.

Roboten har belter styrt av to motorer, kamera, høytaler, mikrofon og wifi-tilkobling. Det hele styrt av en GPL-lisensiert databoks som jeg mistenker kjører linux. Firmware-kildekoden ble visst publisert i mai. Eneste utfordringen er at kontroller-programvaren kun finnes til Windows, men det må en kunne jobbe seg rundt når vi har kildekoden til firmwaren. :)

August 18, 2010 11:30 AM

August 17, 2010

Salve J. Nilsen

FSCONS in November

I’ll be going to FSCONS 2010 (Free Society Conference and Nordic Summit) in november to give a presentation about Kaizendo! Last year was awesome, and I hope this year will be just as good. :)

I'm going to FSCONS 2010!

It's a great conference

by Salve J. Nilsen atAugust 17, 2010 03:58 PM

Friprogsenteret

Startkapital

Vi i Friprogsenteret får en del henvendelser fra mennesker som er i ferd med å etablere nye virksomheter. En fellesnevner ved alle henvendelsene er at alle har begrensede økonomiske ressurser og derfor ikke ønsker å bruke opp alt på IT.

Som rådgiver er det for meg umulig å gi et standardisert svar på hvordan du skal fordele pengene dine. Jeg har full forståelse for trange budsjetter og ønsker om å ikke bruke opp alt på IT. Men har du noen gang vurdert ditt eget nettsted, som både er en del av IT og markedsføring, som ditt viktigste verktøy?

En god venn av meg har lært meg verdien av å spare på ørene og bruke av kronene. Det gjelder også når man budsjetterer eget firma. Et av de stedene du ikke skal spare er på nettstedet, spesielt ikke hvis det er nettstedet du har tenkt å leve av.

Fri programvare er ikke gratis. Vær derfor ikke redd for å kaste gode penger etter dyktige mennesker — det vil betale seg i lengden.

by Martin Bekkelund atAugust 17, 2010 11:04 AM

August 15, 2010

Petter Reinholdtsen

Rob Weir: How to Crush Dissent

I found the notes from Rob Weir on how to crush dissent matching my own thoughts on the matter quite well. Highly recommended for those wondering which road our society should go down. In my view we have been heading the wrong way for a long time.

August 15, 2010 08:20 PM

August 13, 2010

Martin Bekkelund

Slik omgår du Datalagringsdirektivet del 2

Debatten om innføring av Datalagringsdirektivet i norsk rett pågår fortsatt. Mens debatten pågår tenkte jeg å vise hvor enkelt det er å omgå Datalagringsdirektivet og vise deg hvordan naboen får skylda.

Sjekk hvor mange trådløse nettverk du har tilgang til:

Trådløse nettverk

For enkelhets skyld, velg et av de uten hengelås.

Gjør faenskap i andres navn.

by Martin Bekkelund atAugust 13, 2010 10:35 AM

August 12, 2010

Martin Bekkelund

Den late ku

I årskavalkaden for 2009 forteller jeg om et felles prosjekt samboeren min Anne Siri og jeg har på gang.

Det er med stor tilfredshet vi sammen kan presentere Den late ku.

Den late ku

Hva er Den late ku?

Den late ku er en blogg om mat og drikke hvor vi vil dele vår felles kunnskap om mat, drikke, te, kaffe, restauranter og alt som er relatert til disse temaene. Du vil kunne lese alt om hvordan du brygger en god kopp kaffe, følge oss i prosessen med å skaffe oss en espressomaskin og lærer oss kunsten å bruke den, restaurantanmeldelser, bokanmeldelser av bøker i denne sjangeren, nyttige og unyttige dingser, og mye, mye mer.

Følg Den late ku på nettet

Den late ku er selvsagt godt representert på sosiale medier. I tillegg til bloggen finner du henne selvfølgelig også på følgende steder:

by Martin Bekkelund atAugust 12, 2010 06:43 PM

August 10, 2010

Martin Bekkelund

Beats by Dr. Dre — «Studio» og «Tour»

I år var tiden inne for å bytte ut mine velbrukte Koss PortaPro. Etter å ha testet de mest aktuelle høretelefonene på markedet endte jeg opp med to sett, høretelefonene Studio og proppene Tour fra Beats by Dr. Dre.

Beats by Dr. Dre Studio og Tour

Hvorfor to sett?

Høretelefoner er for store og klumpete til å dra med seg i hverdagen, for eksempel på trikken og rundt i byen. Til det passer propper langt bedre. Imidlertid er propper ukomfortable over lengre tid og lydkvaliteten kan heller ikke måle seg med det man finner i et par gode høretelefoner. Videre får man med propper en merkelig gjenklang av alt som skjer i hodet, enten man snakker, spiser, drikker, hoster eller liknende. Dermed ble det både propper og høretelefoner.

Studio

Beats by Dr. Dre Studio

Beats by Dr. Dre Studio

Studio er Rolls Royce-en i serien fra Beats by Dr. Dre, som produseres av Monster. De er, som navnet antyder, produsert for studiobruk og er derfor produsert for å være komfortable og gjengi en ren og nøyaktig lyd.

Det finnes mange alternativer å velge mellom i dette markedet. Selv ble jeg stående i nærmere to timer og prøve ut forskjellige høretelefoner for å finne de som passet best på hodet, som gjenga musikken min best mulig og som hadde best støyreduksjon. Forskjellene er marginale og så små at det til slutt var hårfine nyanser i lydgjengivelsen av bass og diskant som gjorde at jeg gikk ut av butikken med Studio.

Fordeler

Ulemper

Tour

Beats by Dr. Dre Tour

Å handle propper er å skyte vilt i blinde, ettersom ingen forhandlere jeg har besøkt lar deg prøve proppene av hygieniske årsaker før du handler. Dermed har man ingen følelse av verken lydgjengivelse eller komfort.

Selv handlet jeg Tour av to årsaker. Den ene var at lydkvaliteten på Tour forhåpentligvis ville være like god på Studio. Det andre var at min gode venn Kjetil tidligere i år kjøpte et par som han er svært fornøyd med.

Lydkvaliteten er det ingenting å si på, straks man får proppene riktig på plass i øregangen. For min del krever det litt tilpasning før de sitter, men når de først er på plass er lyden fantastisk. Det samme er støyreduksjonen.

Designerne hos Monster har sannsynligvis også opplevd dårlige ledninger tidligere. Ledninger som tvinner seg sammen, går i oppløsning rundt kontaktene eller kontakter som knekker ved tilkoblingen til telefonen eller musikkspilleren. Ledningene på Tour er utformet som båndspaghetti, hvilket reduserer krøll og knekk. I tillegg flukter kontakten svært tett på tilkoblingen til telefonen eller musikkspilleren, hvilket gjør den enkel å ha i lommen og reduserer muligheten for ødelagt utstyr.

Tilkobling

Fordeler

Ulemper

Konklusjon

Er du i markedet for å kjøpe enten høretelefoner eller propper, kan jeg varmt anbefale både Studio og Tour. De er dyre, men gode og gir deg garantert timesvis med perfekte musikkopplevelser.

Martin anbefaler Studio og Tour fra Beats by Dr. Dre

by Martin Bekkelund atAugust 10, 2010 08:47 AM

August 09, 2010

NUUG events video archive

Cfengine3: Introduksjon til Cfengine3

Mark Burgess fra cfengine.com gir en introduksjon til konfigurasjonstyringsverktøyet Cfengine3.

August 09, 2010 08:00 PM

Petter Reinholdtsen

No hardcoded config on Debian Edu clients

As reported earlier, the last few days I have looked at how Debian Edu clients are configured, and tried to get rid of all hardcoded configuration settings on the clients. I believe the work to be mostly done, and the clients seem to work just fine with dynamically generated configuration.

What is the point, you might ask? The point is to allow a Debian Edu desktop to integrate into an existing network infrastructure without any manual configuration.

This is what happens when installing a Debian Edu client here at the University of Oslo using PXE. With the PXE installation, I am asked for language (Norwegian Bokmål), locality (Norway) and keyboard layout (no-latin1), Debian Edu profile (Roaming Workstation), if I accept to reformat the hard drive (yes), if I want to submit info to popcon.debian.org (no) and root password (secret). After answering these questions, the installer goes ahead and does its thing, and after around 50 minutes it is done. I press enter to finish the installation, and the machine reboots into KDE. When the machine is ready and kdm asks for login information, I enter my university username and password, am told by kdm that a local home directory has been created and that I must log in again, and finally log in with the same username and password to the KDE 4.4 desktop. At no point during this process did it ask for university specific settings, and all the required configuration was dynamically detected using information fetched via DHCP and DNS. The roaming workstation is now ready for use.

How was this done, you might wonder? First of all, here is the list of things that need to be configured on the client to get it working properly out of the box:

(Hm, did I forget anything? Let me knew if I did.)

The points marked (*) are not required to be able to use the machine, but needed to provide central storage and allowing system administrators to track their machines. Since yesterday, everything but the sitesummary collector URL is dynamically discovered at boot and installation time in the svn version of Debian Edu.

The IP and DNS setup is fetched during boot using DHCP as usual. When a DHCP update arrives, the proxy setup is updated by looking for http://wpat/wpad.dat and using the content of this WPAD file to configure the http and ftp proxy in /etc/environment and /etc/apt/apt.conf. I decided to update the proxy setup using a DHCP hook to ensure that the client stops using the Debian Edu proxy when it is moved outside the Debian Edu network, and instead uses any local proxy present on the new network when it moves around.

The DNS names of the LDAP, Kerberos and syslog server and related configuration are generated using DNS information at boot. First the installer looks for a host named ldap in the current DNS domain. If not found, it looks for _ldap._tcp SRV records in DNS instead. If an LDAP server is found, its root DSE entry is requested and the attributes namingContexts and defaultNamingContext are used to determine which LDAP base to use for NSS. If there are several namingContexts attibutes and the defaultNamingContext is present, that LDAP subtree is used as the base. If defaultNamingContext is missing, the subtrees listed as namingContexts are searched in sequence for any object with class posixAccount or posixGroup, and the first one with such an object is used as the LDAP base. For Kerberos, a similar search is done by first looking for a host named kerberos, and then for the _kerberos._tcp SRV record. I've been unable to find a way to look up the Kerberos realm, so for this the upper case string of the current DNS domain is used.

For the syslog server, the hosts syslog and loghost are searched for, and the _syslog._udp SRV record is consulted if no such host is found. This algorithm works for both Debian Edu and the University of Oslo. A similar strategy would work for locating the sitesummary server, but have not been implemented yet. I decided to fetch and save these settings during installation, to make sure moving to a different network does not change the set of users being allowed to log in nor the passwords required to log in. Usernames and passwords will be cached by sssd when the user logs in on the Debian Edu network, and will not change as the laptop move around. For a non-roaming machine, there is no caching, but given that it is supposed to stay in place it should not matter much. Perhaps we should switch those to use sssd too?

The user's SMB mount point for the network home directory is located when the user logs in for the first time. The LDAP server is consulted to look for the user's LDAP object and the sambaHomePath attribute is used if found. If it isn't found, the home directory path fetched from NSS is used instead. Assuming the path is of the form /site/server/directory/username, the second part is looked up in DNS and used to generate a SMB URL of the form smb://server.domain/username. This algorithm works for both Debian edu and the University of Oslo. Perhaps there are better attributes to use or a better algorithm that works for more sites, but this will do for now. :)

This work should make it easier to integrate the Debian Edu clients into any LDAP/Kerberos infrastructure, and make the current setup even more flexible than before. I suspect it will also work for thin client servers, allowing one to easily set up LTSP and hook it into a existing network infrastructure, but I have not had time to test this yet.

If you want to help out with implementing these things for Debian Edu, please contact us on debian-edu@lists.debian.org.

Update 2010-08-09: Simon Farnsworth gave me a heads-up on how to detect Kerberos realm from DNS, by looking for _kerberos TXT entries before falling back to the upper case DNS domain name. Will have to implement it for Debian Edu. :)

August 09, 2010 06:15 PM

Friprogsenteret

Suksesshistorier søkes

Friprogsenteret eier og driver kompetanseportalen Kunnskapsbazaren. Dette er en helt ny portal som har blitt lansert i det stille. Målet med Kunnskapsbazaren er å spre kunnskap om fri programvare og digitalt innhold.

Kunnskapsbazaren blir aldri bedre enn hva vi fyller den med selv. Dessverre vet ikke vi i Friprogsenteret alt som er verdt å vite om fri programvare og digitalt innhold i Norge. Derfor trenger vi ditt bidrag for å fylle Kunnskapsbazaren med innhold!

I første omgang ønsker vi innspill til seksjonen om suksesshistorier, men har du innspill til andre seksjoner er du selvfølgelig hjertelig velkommen til å bidra her også.

Hvem har gjort noe spennende med fri programvare og/eller digitalt innhold i Norge? Svaret legger du helst igjen som en kommentar, eventuelt bruker vårt kontaktskjema.

by Martin Bekkelund atAugust 09, 2010 09:17 AM

Martin Bekkelund

Elektronisk kvittering

Mange mennesker gjør som meg — sparer på litt for mange kvitteringer de mottar når de handler. Selv har jeg tidvis hatt flerfoldige skoesker med kvitteringer. De viktigste kvitteringene, som for eksempel til fjernsyn, vaskemaskin og liknende, har jeg satt til side i en egen mappe. Ingen av delene byr på nevneverdige problemer, men sexy er det ikke. Derfor har jeg tenkt ut en alternativ måte å levere en kvittering på og presenterer her noen tanker om elektronisk kvittering, e-kvittering.

Utfordringen

Utfordringen med gamle kvitteringer er at de er mange og lite håndterbare. Skrevet ut på et papirformat som ikke egner seg for arkivering, er skoesker blant de minst dårlige av alternativene. I tillegg er søk og kategorisering vanskelig, med mindre man benyttet flere skoesker, mapper, eller liknende.

Løsningen

Løsningen kaller jeg e-kvittering og fungerer som et tillegg til din eksisterende kontoutskrift i nettbanken. Når du i nettbanken i dag sjekker kontoutskriften, finner du for eksempel linjer som forteller deg hvor, når og for hvor mye du har handlet.

Med mindre man fører manuell kontroll utover nettbanken, er det ingenting i en banktransaksjon som utdyper detaljene. Hva var det jeg handlet på Kiwi denne gangen? E-kvittering fungerer som et tillegg til den tradisjonelle transaksjonsteksten, og viser kvitteringen i sin helhet. På denne måten kan man arkivere, kategorisere og søke i kvitteringer.

På sikt ser jeg også for meg utvidet funksjonalitet, for eksempel deling av utgifter med andre bankkunder, litt som med tjenesten delregning.no.

Teknisk løsning

Å implementere e-kvittering bør være en triviell sak, skjønt min erfaring med IT-systemer i banksektoren — jeg har både hovedoppgave og fem års arbeidserfaring — tilsier at ingenting skal tas for gitt. En teknisk komplisert sak er det altså ikke, med mindre eksisterende systemer vanskeliggjør prosessen.

Handelsstedet, for eksempel min lokale Kiwi-butikk, returnerer i dag informasjon til banken om banktransaksjonen, dersom jeg betaler med bankkort. Med e-kvittering skal handelsstedet i tillegg levere informasjon om alle detaljer om transaksjonen, blant annet:

Umiddelbart er det lett å forestille seg noen gevinster:

Samtidig er det like lett å forestille seg noen utfordringer:

Hva tror du, har e-kvittering noe for seg?

by Martin Bekkelund atAugust 09, 2010 08:32 AM

August 08, 2010

Petter Reinholdtsen

Testing if a file system can be used for home directories...

A few years ago, I was involved in a project planning to use Windows file servers as home directory servers for Debian Edu/Skolelinux machines. This was thought to be no problem, as the access would be through the SMB network file system protocol, and we knew other sites used SMB with unix and samba as the file server to mount home directories without any problems. But, after months of struggling, we had to conclude that our goal was impossible.

The reason is simply that while SMB can be used for home directories when the file server is Samba running on Unix, this only work because of Samba have some extensions and the fact that the underlying file system is a unix file system. When using a Windows file server, the underlying file system do not have POSIX semantics, and several programs will fail if the users home directory where they want to store their configuration lack POSIX semantics.

As part of this work, I wrote a small C program I want to share with you all, to replicate a few of the problematic applications (like OpenOffice.org and GCompris) and see if the file system was working as it should. If you find yourself in spooky file system land, it might help you find your way out again. This is the fs-test.c source:

/*
 * Some tests to check the file system sematics.  Used to verify that
 * CIFS from a windows server do not work properly as a linux home
 * directory.
 * License: GPL v2 or later
 * 
 * needs libsqlite3-dev and build-essential installed
 * compile with: gcc -Wall -lsqlite3 -DTEST_SQLITE fs-test.c -o fs-test
*/

#define _FILE_OFFSET_BITS 64
#define _LARGEFILE_SOURCE 1
#define _LARGEFILE64_SOURCE 1

#define _GNU_SOURCE /* for asprintf() */

#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/file.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>

#ifdef TEST_SQLITE
/*
 * Test sqlite open, as done by gcompris require the libsqlite3-dev
 * package and linking with -lsqlite3.  A more low level test is
 * below.
 * See also <URL: http://www.sqlite.org./faq.html#q5 >.
 */
#include <sqlite3.h>
#define CREATE_TABLE_USERS                                              \
  "CREATE TABLE users (user_id INT UNIQUE, login TEXT, lastname TEXT, firstname TEXT, birthdate TEXT, class_id INT ); "
int test_sqlite_open(void) {
  char *zErrMsg;
  char *name = "testsqlite.db";
  sqlite3 *db=NULL;
  unlink(name);
  int rc = sqlite3_open(name, &db);
  if( rc ){
    printf("error: sqlite open of %s failed: %s\n", name, sqlite3_errmsg(db));
    sqlite3_close(db);
    return -1;
  }

  /* create tables */
  rc = sqlite3_exec(db,CREATE_TABLE_USERS, NULL,  0, &zErrMsg);
  if( rc != SQLITE_OK ){
    printf("error: sqlite table create failed: %s\n", zErrMsg);
    sqlite3_close(db);
    return -1;
  }
  printf("info: sqlite worked\n");
  sqlite3_close(db);
  return 0;
}
#endif /* TEST_SQLITE */

/*
 * Demonstrate locking issue found in gcompris using sqlite3.  This
 * work with ext3, but not with cifs server on Windows 2003.  This is
 * done in the sqlite3 library.
 * See also
 * <URL:http://www.cygwin.com/ml/cygwin/2001-08/msg00854.html> and the
 * POSIX specification
 * <URL:http://www.opengroup.org/onlinepubs/009695399/functions/fcntl.html>.
 */
int test_gcompris_locking(void) {
  struct flock fl;
  char *name = "testsqlite.db";
  unlink(name);
  int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, 0644);
  printf("info: testing fcntl locking\n");

  fl.l_whence = SEEK_SET;
  fl.l_pid    = getpid();
  printf("  Read-locking 1 byte from 1073741824");
  fl.l_start  = 1073741824;
  fl.l_len    = 1;
  fl.l_type   = F_RDLCK;
  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");

  printf("  Read-locking 510 byte from 1073741826");
  fl.l_start  = 1073741826;
  fl.l_len    = 510;
  fl.l_type   = F_RDLCK;
  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");

  printf("  Unlocking 1 byte from 1073741824");
  fl.l_start  = 1073741824;
  fl.l_len    = 1;
  fl.l_type   = F_UNLCK;
  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");

  printf("  Write-locking 1 byte from 1073741824");
  fl.l_start  = 1073741824;
  fl.l_len    = 1;
  fl.l_type   = F_WRLCK;
  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");

  printf("  Write-locking 510 byte from 1073741826");
  fl.l_start  = 1073741826;
  fl.l_len    = 510;
  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");

  printf("  Unlocking 2 byte from 1073741824");
  fl.l_start  = 1073741824;
  fl.l_len    = 2;
  fl.l_type   = F_UNLCK;
  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");

  close(fd);
  return 0;
}

/*
 * Test if permissions of freshly created directories allow entries
 * below them.  This was a problem with OpenOffice.org and gcompris.
 * Mounting with option 'sync' seem to solve this problem while
 * slowing down file operations.
 */
int test_subdirectory_creation(void) {
#define LEVELS 5
  char *path = strdup("test");
  char *dirs[LEVELS];
  int level;
  printf("info: testing subdirectory creation\n");
  for (level = 0; level < LEVELS; level++) {
    char *newpath = NULL;
    if (-1 == mkdir(path, 0777)) {
      printf("  error: Unable to create directory '%s': %s\n",
	     path, strerror(errno));
      break;
    }
    asprintf(&newpath, "%s/%s", path, "test");
    free(path);
    path = newpath;
  }
  return 0;
}

/*
 * Test if symlinks can be created.  This was a problem detected with
 * KDE.
 */
int test_symlinks(void) {
  printf("info: testing symlink creation\n");
  unlink("symlink");
  if (-1 == symlink("file", "symlink"))
    printf("  error: Unable to create symlink\n");
  return 0;
}

int main(int argc, char **argv) {
  printf("Testing POSIX/Unix sematics on file system\n");
  test_symlinks();
  test_subdirectory_creation();
#ifdef TEST_SQLITE
  test_sqlite_open();
#endif /* TEST_SQLITE */
  test_gcompris_locking();
  return 0;
}

When everything is working, it should print something like this:

Testing POSIX/Unix sematics on file system
info: testing symlink creation
info: testing subdirectory creation
info: sqlite worked
info: testing fcntl locking
  Read-locking 1 byte from 1073741824
  Read-locking 510 byte from 1073741826
  Unlocking 1 byte from 1073741824
  Write-locking 1 byte from 1073741824
  Write-locking 510 byte from 1073741826
  Unlocking 2 byte from 1073741824

I do not remember the exact details of the problems we saw, but one of them was with locking, where if I remember correctly, POSIX allow a read-only lock to be upgraded to a read-write lock without unlocking the read-only lock (while Windows do not). Another was a bug in the CIFS/SMB client implementation in the Linux kernel where directory meta information would be wrong for a fraction of a second, making OpenOffice.org fail to create its deep directory tree because it was not allowed to create files in its freshly created directory.

Anyway, here is a nice tool for your tool box, might you never need it. :)

Update 2010-08-27: Michael Gebetsroither report that he found the script so useful that he created a GIT repository and stored it in http://github.com/gebi/fs-test.

August 08, 2010 07:20 PM

August 07, 2010

Petter Reinholdtsen

Autodetecting Client setup for roaming workstations in Debian Edu

A few days ago, I tried to install a Roaming workation profile from Debian Edu/Squeeze while on the university network here at the University of Oslo, and noticed how much had to change to get it operational using the university infrastructure. It was fairly easy, but it occured to me that Debian Edu would improve a lot if I could get the client to connect without any changes at all, and thus let the client configure itself during installation and first boot to use the infrastructure around it. Now I am a huge step further along that road.

With our current squeeze-test packages, I can select the roaming workstation profile and get a working laptop connecting to the university LDAP server for user and group and our active directory servers for Kerberos authentication. All this without any configuration at all during installation. My users home directory got a bookmark in the KDE menu to mount it via SMB, with the correct URL. In short, openldap and sssd is correctly configured. In addition to this, the client look for http://wpad/wpad.dat to configure a web proxy, and when it fail to find it no proxy settings are stored in /etc/environment and /etc/apt/apt.conf. Iceweasel and KDE is configured to look for the same wpad configuration and also do not use a proxy when at the university network. If the machine is moved to a network with such wpad setup, it would automatically use it when DHCP gave it a IP address.

The LDAP server is located using DNS, by first looking for the DNS entry ldap.$domain. If this do not exist, it look for the _ldap._tcp.$domain SRV records and use the first one as the LDAP server. Next, it connects to the LDAP server and search all namingContexts entries for posixAccount or posixGroup objects, and pick the first one as the LDAP base. For Kerberos, a similar algorithm is used to locate the LDAP server, and the realm is the uppercase version of $domain.

So, what is not working, you might ask. SMB mounting my home directory do not work. No idea why, but suspected the incorrect Kerberos settings in /etc/krb5.conf and /etc/samba/smb.conf might be the cause. These are not properly configured during installation, and had to be hand-edited to get the correct Kerberos realm and server, but SMB mounting still do not work. :(

With this automatic configuration in place, I expect a Debian Edu roaming profile installation would be able to automatically detect and connect to any site using LDAP and Kerberos for NSS directory and PAM authentication. It should also work out of the box in a Active Directory environment providing posixAccount and posixGroup objects with UID and GID values.

If you want to help out with implementing these things for Debian Edu, please contact us on debian-edu@lists.debian.org.

August 07, 2010 12:45 PM

August 05, 2010

Martin Bekkelund

Halvhjertet

Da jeg var liten var Ti i skuddet det feteste jeg kunne høre på radio. Problemet var bare at musikken som ble spilt på radio var så uendelig vanskelig å få tak i for en liten pjokk i en tid da eget budsjett fortsatt var ikke-eksisterende. Imidlertid var det lite å si på kreativiteten, så radioen ble nøye plassert ved siden av kassettspilleren med mikrofon og opptaksmulighet.

Fra kassetter til kviser

Da jeg noen år senere vokste forbi både min mor og min far, fikk kviser, langt hår, dårlig (kropps)holdning og egen, fast jobb som avisbud, gikk store deler av inntekten til å kjøpe musikk på CD-er. Det er lenge siden jeg sluttet å kjøpe musikk på CD-er, fordi jeg ikke forstår hvorfor jeg skal bruke penger på en miljøfiendtlig og lite effektiv distribusjonsform.

Kviser, krangling og dårlig avkastning

I dag er derimot situasjonen en helt annen for kidza. Alt man liker er enkelt tilgjengelig på nett — ofte gratis, men ulovlig. En gang for omlag 15 år siden fant innholdsprodusentene, ofte referert til som nettavisene, det for godt å legge ut produktet sitt gratis på internett. At potensielle kunder gjennom 15 år har fått en oppfatning av at det som finnes på nett er gratis, kan i en viss grad derfor tilskrives innholdsprodusentene selv.

I disse dager kan man lese hvordan innholdsleverandørene forlater nye tjenester som Spotify, angivelig fordi disse nye tjenestene ikke genererer nok penger. Umiddelbart slår det meg at innholdsleverandørene halvhjertet har gått inn i et slikt samarbeid, skeptiske fra første stund.

Hva tror man egentlig? At enhver ny forretningsmodell genererer penger fra første øyeblikk? Halvhjertet innsats gir halvhjertede resultater.

by Martin Bekkelund atAugust 05, 2010 01:47 PM

August 04, 2010

Martin Bekkelund

Huawei U8230

Før ferien fikk jeg min første Android-telefon, en Huawei U8230 som ennå ikke er lansert på markedet. Blir mitt første møte med Android en blivende suksess?

Huawei U8230

Sammenlikningsgrunnlaget

Dette er ikke en test hvor jeg sammenlikner Huawei U8230 med telefonen jeg benytter til daglig, men en test gjennomført så uavhengig som mulig for å gi et generelt inntrykk. Jeg kommer kanskje tilbake med en sammenlikning senere.

I esken

I laderen finner man følgende:

Touch and Feel

Min umiddelbare reaksjon var at dette var mye plast. Andreinntrykket bedret seg imidlertid noe da batteriet kom på plass, men den hule plastikkfølelsen er der uansett.

Vekt og størrelse

Telefonen har en fin størrelse, god vekt og er pent utformet. De fysiske knappene er greie å trykke på. Dessverre er av/på-knappen plassert tvers ovenfor volumknappene, hvilket gjør det klønete å betjene bare en av dem om gangen.

Tekniske spesifikasjoner

Spesifikasjonene er på ingen måte banebrytende, men akkurat det man forventer av en telefon i disse tider.

Beskrivelse Spesifikasjon
Vekt 135 gram inkl. batteri
Størrelse i mm (H x B x T) 116 x 62,5 x 13,6
Operativsystem Android Éclair — Emotion skin
Kamera 3,2 megapiksler
Video QVGA 24 FPS
Skjerm 3,5 tommer
Prosessor Qualcomm MSM7200 på 528 MHz
Tilkoblinger Bluetooth 2.1 (A2DP)
Micro USB
MicroSD inntil 16 GB
GPS A-GPS og kompass
Minne 256 MB SRAM og 512 MB Flash
Nettverk Wi-fi, HSDPA/HSUPA, Bluetooth

Brukergrensesnitt

Brukergrensesnittet er for meg en av de viktigste elementene ved det å bruke en telefon. Hvis brukergrensesnittet er dårlig utformet og er klønete i bruk, er det helt sikkert at jeg ikke kommer til å bruke telefonen. Heldigvis er brukergrensesnittet på Huawei U8230 greit nok utformet, men ikke mer.

Et brukergrensesnitt må være bygget opp uten for mange forskjellige elementer. På Huawei U8230 er det litt for mange knapper og symboler, som ideelt sett burde vært gjemt vekk andre steder.

Det mest frustrerende er faktisk noe så sentralt som tastaturet. Knappene er alt for små, tastaturet er tregt, det vil si lagger på fagspråket. I tillegg er de mest vanlige tegnene litt for mange tastetrykk unna, og til tross for at telefonen er norsk er særnorske tegn gjemt vekk og vanskelig å finne.

Et annet stort ankepunkt, i mine øyne, er alle innfallsportene til samme funksjon. Man har en «hjem-skjerm», en meny og flere skrivebord som alle på en eller annen måte gir tilgang til det samme programmet. Inkonsistens er mitt første inntrykk.

Samtidig får jeg også følelsen av at enkelte utviklere har Windows som sitt forbilde. Det er mange meldinger som popper opp i tide og utide og forteller meg helt uviktige ting jeg ikke gidder å vite. Som for eksempel at det trådløse nettverket har falt ut, men at telefonen nå kobler seg til igjen på nytt.

Stabilitet og ytelse

Stabiliteten er det vanskelig å få noe skikkelig inntrykk av etter kun noen ukers bruk, men det har fungert smertefritt så lenge jeg har hatt telefonen.

Ytelsen er dessverre ikke så imponerende. Tastaturet har det med å lagge, tidvis irriterende mye. I tillegg lagger også rulling i vinduer, for eksempel i menyene og nettleseren. En telefon laget i 2010 skal ikke lagge fra det øyeblikk man tar den ut av esken. Punktum. Ytelsen kunne altså vært bedre, men katastrofalt dårlig er den på ingen måte.

Batterilevetid

Telefonen ble fulladet da jeg fikk den. Etter én telefonsamtale på 1 minutt og 20 timer standby viser batteriindikatoren 72 %. Det er rett og slett elendig.

Telefonen kan enten lades via stikkontakten eller ved å koble den til datamaskinen via USB. Det første er definitivt å foretrekke, da lading via USB tar evigheter.

Musikktelefon

Via Android Market lastet jeg ned en Spotify-klient for å høre på musikk. Spotify er Spotify uansett hvilken klient man er på. Trodde jeg. På Huawei U8230 er det nemlig ikke mulig å benytte Spotify-klienten uten å installere et minnekort i telefonen, hvilket jeg selvfølgelig ikke har.

Videre er det heller ikke mulig for meg å benytte telefonen som Mass Storage-enhet på min Mac. Den dukker kun opp som en CD hvor det kun ligger drivere for Windows, ikke Mac eller Linux. I praksis sitter jeg med en telefon som er ubrukelig til å lytte til musikk så lenge jeg ikke har et minnekort å putte inn.

Multitasking

Alle Android-brukere jeg kjenner roper om seg hvor flott det er med multitasking. Hva de roper for forstår jeg ikke, for all multitaskingen krever hyppig bruk av programvare for å drepe prosesser straks telefonen går i kne, hvilket den raskt gjør. Det er selvfølgelig ikke telefonen sin feil, men en svakhet ved det å multitaske på enheter med begrenset maskinvarekapasitet.

Skjerm

Skjermen på 3,5 tommer er stor, fin og lyssterk. Oppløsningen er ikke all verden, men helt OK.

Wi-fi

Tilkoblingen til trådløse nettverk har det med å falle ut til tider. Den gjenopptar heldigvis seg selv etter en stund, men slike dropp er allikevel lite heldige.

I bruk

Jeg liker å tro at jeg er en tilpasningsdyktig fyr. Jeg kunne helt sikkert lært meg å leve med Android på en Huawei U8230, men forskjellen på min daglige telefon og Android er at sistnevnte blir for mye bells & whistles.

Utover dette fungerer Android på Huawei U8230 som man forventer med tanke på telefon og kontakter, e-post, nettleser, SMS, kalender, bilder og liknende.

Konklusjon

Spørsmålet er om jeg blir værende med Huawei U8230. Svaret er dessverre nei.

Amobil gir denne telefonen terningkast 5. Akkurat som Arnstein forstår heller ikke jeg hva som gjør at denne telefonen får mer enn 3.

Fordeler

Ulemper

Telefonen har jeg fått av importøren, som ønsker at jeg skal teste og skrive om den. Mitt krav til alle som leverer meg produkter er at jeg står fritt til å skrive hva jeg synes om produktet.

by Martin Bekkelund atAugust 04, 2010 12:47 PM

Friprogsenteret

Hjelp oss med delingsveilederen

Høsten 2009 ga vi i Friprogsenteret ut en veileder under tittelen Slik anskaffer du fri programvare (PDF). Veilederen ble en stor suksess og nå arbeider vi med en oppfølger med arbeidstittelen Slik deler du programvaren din. Nå ønsker vi dine erfaringer til å gjøre den like god som den forrige.

Målet med veilederen

I Norge har vi 430 kommuner. I mange av disse kommunene foregår det utvikling av programvare, enten i regi av kommunene selv, av leverandører som kommunene leier inn eller som samarbeidsprosjekter. Hvis programvaren er smart for én kommune, er det ikke utenkelig at de 429 andre kommunene i Norge også kan ha behov for den.

Med denne veilederen ønsker vi i Friprogsenteret å stimulere til økt deling av programvare mellom kommunene. For at de skal få til det må kommunene forstå verdien av å dele og vite hvordan de går frem i praksis. Dette er spørsmål som skal besvares med veilederen.

Slik bidrar du

Teksten til det som skal bli den endelige veilederen ligger i et fritt tilgjengelig dokument på Google Docs, kalt Delingsveileder.

Dokumentet er tilgjengelig for redigering av alle, derfor må vi ha noen retningslinjer for redigering:

Til slutt er det viktig å merke seg at veilederen skal produseres på 21 x 21 centimeter over 12-16 sider. Dette blir derfor en øvelse i å fatte seg i korthet.

Dermed bør det være klart for Friprogsenterets første samarbeidsprosjekt hva gjelder innholdsproduksjon til trykt materiell. Husk at ingen bidrag er for ubetydelige, ingen bidrag er dumme eller irrelevante.

Har du spørsmål eller kommentarer er det selvfølgelig bare å legge igjen en kommentar!

by Martin Bekkelund atAugust 04, 2010 09:23 AM

August 03, 2010

Petter Reinholdtsen

Debian Edu roaming workstation - at the university of Oslo

The new roaming workstation profile in Debian Edu/Squeeze is fairly similar to the laptop setup am I working on using Ubuntu for the University of Oslo, and just for the heck of it, I tested today how hard it would be to integrate that profile into the university infrastructure. In this case, it is the university LDAP server, Active Directory Kerberos server and SMB mounting from the Netapp file servers.

I was pleasantly surprised that the only three files needed to be changed (/etc/sssd/sssd.conf, /etc/ldap.conf and /etc/mklocaluser.d/20-debian-edu-config) and one file had to be added (/usr/share/perl5/Debian/Edu_Local.pm), to get the client working. Most of the changes were to get the client to use the university LDAP for NSS and Kerberos server for PAM, but one was to change a hard coded DNS domain name in the mklocaluser hook from .intern to .uio.no.

This testing was so encouraging, that I went ahead and adjusted the Debian Edu scripts and setup in subversion to centralise the roaming workstation setup a bit more and avoid the hardcoded DNS domain name, so that when I test this tomorrow, I expect to get away with modifying only /etc/sssd/sssd.conf and /etc/ldap.conf to get it to use the university servers.

My goal is to get the clients to have no hardcoded settings and fetch all their initial setup during installation and first boot, to allow them to be inserted also into environments where the default setup in Debian Edu has been changed or as with the university, where the environment is different but provides the protocols Debian Edu uses.

August 03, 2010 09:30 PM

August 02, 2010

Martin Bekkelund

Litt om ferie

På verdens tak

For meg er ferie å gjøre noe annet enn det jeg gjør ellers. Før ferien rant bloggene jeg leser over med tips om hvordan man kommer seg på nett verden rundt med all verdens dingser, eller hvordan man holder seg oppdatert på alt som skjer på nett i ferien.

Som et fint alternativ kom min gode venn Espen på banen med verdens enkleste tips:

Q: Hvordan holde seg oppdatert på jobb, e-post og sosiale medier i ferien?

A: Bare glem det!

Som nevnt er ferie for meg å gjør noe annet enn ellers. Ikke at jeg har stor fokus på å gjøre noe annet, det bare blir slik. I skrivende stund har jeg vært tilnærmet offline i mer enn fire uker. I omlag tre av disse har jeg hatt tilgang til nett, mens jeg i den fjerde har vært i den norske fjellheimen hvor dekningen er tynnere enn avisene på denne årstiden. På telefonen har det stått Ingen tjeneste. I de tre ukene med tilgang har jeg allikevel holdt meg offline, med telefon og datamaskin liggende nedpakket i kofferten.

Det beste er at det føles godt å parkere hverdagen, uansett hvor glad jeg er i å jobbe, blogge, surfe nettet eller konversere i sosiale medier. Hverdagen innhenter meg raskt nok uansett hvor inaktiv jeg er i ferien.

For første gang på mange, mange år føler jeg virkelig at jeg har hatt ferie. Jeg har reist mye og sett og opplevd mye med mennesker jeg er glad i. Det gjør at jeg nå gleder meg både til å ta fatt på alt jeg har lagt til side i ferien og gleder meg til alle de fine opplevelsene høsten har å by på, hverdagene inkludert.

by Martin Bekkelund atAugust 02, 2010 12:45 PM

August 01, 2010

Martin Bekkelund

Sommeren 2010

Sommeren 2010 har vært en av de beste på svært lenge. Jeg har reist og sett mye med mennesker jeg er glad i. Unike opplevelser og mange inntrykk plasserer hverdagen langt, langt vekk og gjør at man lett tar fatt på høstens oppgaver med ny energi.

I denne artikkelen tar jeg deg med bilder gjennom sommerens opplevelser. Du kan trykke på hvert bilde for en større utgave.

New York

New York slutter aldri å imponere. Det er en by man forelsker seg i og gjerne returnerer til igjen og igjen. I år fikk jeg gleden av å oppleve New York i mer enn 40°C.

New York 2010

Helgelandskysten

Norge har ufattelig mye fin natur å by på. Mye av denne naturen ligger nord for Sinsenkrysset, det gjelder bare å ta seg bryet med å lete frem til disse perlene som ligger langt nord. Da vil man finne Helgelandskysten med sine 6500 øyer, holmer og skjær og en fantastisk overgang mellom fjell og sjø.

Helgelandskysten

Lomsdal-Visten

Fjellene som tilstøter Helgelandskysten heter Vistfjellan og inngår i den nyopprettede nasjonalparken Lomsdal-Visten. Dette er et område så unikt og spesielt at jeg kommer tilbake med en egen artikkel om turen gjennom dette fantastiske området.

På verdens tak

Lomsdalen

Lomsdal-Visten

Vinjerock & Jotunheimen

For første gang fikk jeg med meg Vinjerock. God steming, god mat, godt selskap, godt vær og god musikk på festivalen på Eidsbugarden i Jotunheimen.

Jotunheimen

Ralph Myerz på Vinjerock 2010

Teltplass på Vinjerock 2010

Duppeditter

Selv om jeg har tatt fri fra alt som har med jobb og nett å gjøre, ligger det allikevel i min natur å like duppeditter. I sommer fikk jeg blant annet en iPad, en Mac Mini og to sett nye høretelefoner. Egne anmeldelser kommer ved anledning.

by Martin Bekkelund atAugust 01, 2010 08:09 PM

July 27, 2010

Petter Reinholdtsen

Circular package dependencies harms apt recovery

I discovered this while doing automated testing of upgrades from Debian Lenny to Squeeze. A few packages in Debian still got circular dependencies, and it is often claimed that apt and aptitude should be able to handle this just fine, but some times these dependency loops causes apt to fail.

An example is from todays upgrade of KDE using aptitude. In it, a bug in kdebase-workspace-data causes perl-modules to fail to upgrade. The cause is simple. If a package fail to unpack, then only part of packages with the circular dependency might end up being unpacked when unpacking aborts, and the ones already unpacked will fail to configure in the recovery phase because its dependencies are unavailable.

In this log, the problem manifest itself with this error:

dpkg: dependency problems prevent configuration of perl-modules:
 perl-modules depends on perl (>= 5.10.1-1); however:
  Version of perl on system is 5.10.0-19lenny2.
dpkg: error processing perl-modules (--configure):
 dependency problems - leaving unconfigured

The perl/perl-modules circular dependency is already reported as a bug, and will hopefully be solved as soon as possible, but it is not the only one, and each one of these loops in the dependency tree can cause similar failures. Of course, they only occur when there are bugs in other packages causing the unpacking to fail, but it is rather nasty when the failure of one package causes the problem to become worse because of dependency loops.

Thanks to the tireless effort by Bill Allombert, the number of circular dependencies left in Debian is dropping, and perhaps it will reach zero one day. :)

Todays testing also exposed a bug in update-notifier and different behaviour between apt-get and aptitude, the latter possibly caused by some circular dependency. Reported both to BTS to try to get someone to look at it.

July 27, 2010 09:50 PM

First Debian Edu test release (alpha0) based on Squeeze is released

I just posted this announcement culminating several months of work with the next Debian Edu release. Not nearly done, but one major step completed.

This is the first test release based on Squeeze. The focus of this release is to test the user application selection. To have a look, install the standalone profile and let the developers know if the set of installed packages i.e. applications should be modified. If some user application is missing, or if there are some applications that no longer make sense to be included in Debian Edu, please let us know. Also, if a useful application is missing the translation for your language of choice, please let us know too.

In addition, feedback and help to polish the desktop (menus, artwork, starters, etc.) is appreciated. We would like to ship a nice and handy KDE4 desktop targeted for schools out of the box.

The other profiles should be installable, but there is a lot more work left to be done before they are ready, so do not expect to much.

Changes compared to the lenny based version

The following features are not working as they should

To download this multiarch netinstall release you can use

To download this multiarch dvd release you can use

There is no source DVD available yet. It will be prepared when we get closer to the final release.

The MD5SUM of these images are

The SHA1SUM of these images are

How to report bugs: http://wiki.debian.org/DebianEdu/HowTo/ReportBugsInBugzilla

Please direct replies to debian-edu@lists.debian.org

July 27, 2010 03:45 PM

July 25, 2010

Petter Reinholdtsen

One step closer to single signon in Debian Edu

The last few months me and the other Debian Edu developers have been working hard to get the Debian/Squeeze based version of Debian Edu/Skolelinux into shape. This future version will use Kerberos for authentication, and services are slowly migrated to single signon, getting rid of password questions one at the time.

It will also feature a roaming workstation profile with local home directory, for laptops that are only some times on the Skolelinux network, and for this profile a shortcut is created in Gnome and KDE to gain access to the users home directory on the file server. This shortcut uses SMB at the moment, and yesterday I had time to test if SMB mounting had started working in KDE after we added the cifs-utils package. I was pleasantly surprised how well it worked.

Thanks to the recent changes to our samba configuration to get it to use Kerberos for authentication, there were no question about user password when mounting the SMB volume. A simple click on the shortcut in the KDE menu, and a window with the home directory popped up. :)

One step closer to a single signon solution out of the box in Debian Edu. We already had PAM, LDAP, IMAP and SMTP in place, and now also Samba. Next step is Cups and hopefully also NFS.

We had planned a alpha0 release of Debian Edu for today, but thanks to the autobuilder administrators for some architectures being slow to sign packages, we are still missing the fixed LTSP package we need for the release. It was uploaded three days ago with urgency=high, and if it had entered testing yesterday we would have been able to test it in time for a alpha0 release today. As the binaries for ia64 and powerpc still not uploaded to the Debian archive, we need to delay the alpha release another day.

If you want to help out with implementing Kerberos for Debian Edu, please contact us on debian-edu@lists.debian.org.

July 25, 2010 08:00 AM

July 22, 2010

Petter Reinholdtsen

Digitale restriksjonsmekanismer fikk meg til å slutte å kjøpe musikk

For mange år siden slutte jeg å kjøpe musikk-CDer. Årsaken var at musikkbransjen var godt i gang med å selge platene sine med DRM som gjorde at jeg ikke fikk spilt av musikken jeg kjøpte på utstyret jeg hadde tilgjengelig, dvs. min datamaskin. Det var umulig å se på en plate om den var ødelagt eller ikke, og jeg hadde jo allerede en anseelig samling med plater, så jeg bestemme meg for å slutte å gi penger til en bransje som åpenbart ikke respekterte meg.

Jeg har mange titalls dager med musikk på CD i dag. Det meste er lagt i et stort arkiv som kan spilles av fra husets datamaskiner (har ikke rukket rippe alt). Jeg ser dermed ikke behovet for å skaffe mer musikk. De fleste av mine favoritter er i hus, og jeg er dermed godt fornøyd.

Hvis musikkbransjen ønsker mine penger, så må de demonstrere at de setter pris på meg som kunde, og ikke skremme meg bort med DRM og antydninger om at kundene er kriminelle.

Filmbransjen er like ille, men mens musikk gjerne varer lenge, er filmer mer ferskvare. Har dermed ikke helt sluttet å kjøpe filmer, men holder meg til DVD-filmer som kan spilles av på mine Linuxbokser. Kommer neppe til å ta i bruk Blueray, og ei heller de nye DRM-greiene «Ultraviolet» som be annonsert her om dagen.

July 22, 2010 09:50 PM

July 21, 2010

Salve J. Nilsen

Moving Perl up the value chain

The last year or so, there’s been a serious discussion in the Perl community about “the M word” – marketing. About visibility, making good impressions and making more people consider Perl as a good programming language for their tasks at hand.

Lots of good things have happened, including the establishing of the TPF marketing committee, volunteer stands at non-Perl conferences, and more focus on the brilliant parts of what the community and it’s software can offer. It’s been great watching all the goodness unfold, and being part of some of it.

But in the meantime, something else has been bugging me.

All the time, there’s been a focus on tools and people. When it comes to solving actual and real life problems, not much has surfaced. Instead there’s an unspoken focus in the Perl community about making tools that help people make tools.

What we do at the moment is marketing tools-for-making-tools. We tout the obvious superiorities of Moose, Catalyst, POE and all the other goodies in Task::Kensho, but when it comes to solving actual and real problems that “normal” people care about (you know, the people that don’t care about the details in computers), we blissfully ignore it while silently hoping for some big company to choose Perl for their next public project – so we eventually can get a new website to link to.

I propose we do something about this. Let’s pick a few real and significant problems, and see if we can make an impact on those while using and showing off Perl software, the Perl community and all that is good about it at the same time.

To kick this off, let’s ask a few basic questions.

Picking a good problem to play with is very much up to you. Pick something you care about that you know is difficult, and pick something that lots of other people care about too but that can’t be solved trivially. Maybe you want to make a quick risk assessment matrix to figure out if your issue is “real” enough? (and even if not, it’s probably useful to remember that $risk = $likelyhood_of_failure * $impact_of_failure; anyway.)

Next, you have to make figure out a way to improve on the situation. Keep in mind that $influence = $visibility * $impact; – meaning whatever you do, you have to both think about execution and telling people about what you’re doing. Make a plan, and tell people about it! The rest is “just” hard work. ;)

With that said, if you’re going to make Perl part of any solution, it might be useful to have an idea what role Perl can have in the process. Here’s one possible (and quite generic) value chain:

  1. Perl
  2. ➜ CPAN
  3. ➜ $USEFUL_FRAMEWORK (A tool for making tools) # This is where we code today
  4. ➜ $TOOL_THAT_INCREASES_AWARENESS  # This is where I think we should code more
  5. ➜ Discussions and awareness building, eventually in media
  6. ➜ Discussions among politicians
  7. ➜ Some kind of funding in order to improve issue
  8. ➜ Someone tries to actually do something
  9. ➜ Success/FAIL/Meh.

Also, keep in mind that Perl is useful in places where data, information or knowledge is the main currency or “item of value.” Perl tools might not help directly with “physical” matters, but I’d say it’s much better suited for improving communication and knowledge-related issues.

So, you ask: How about an example?

I’m so glad you asked! ;)

My attempt at this is called Kaizendo.org, and it’s purpose is to enable people to create textbooks that can be customized to the individual needs of the reader.

To make this happen, we’re creating a Catalyst-based tool for discussing and improving texts that have aspects – texts that have alternative representations of themselves, each telling the same story but in different ways. If a pupil is struggling with dyslexia, then choose an aspect where the story is told with simpler, shorter words. If a pupil is bored because the rest of the class is slower at reading, then choose an aspect where the story has more details and depth, so the pupil can keep the same pace as the class while getting more interesting content out of it.

What would I like to influence with this?

The project is up and running now, and we’ve started writing the prototype, we have a mailing list and wiki, and I’ll even be giving a talk about Kaizendo at YAPC::EU in Pisa. But we’re still far away from our goal, and we need plenty of help.

So, if you like what I’ve written here but don’t want to start your own Big Project That Matters, then do consider joining our project. In the meantime, tell me what you think!

by Salve J. Nilsen atJuly 21, 2010 04:40 PM

July 18, 2010

Petter Reinholdtsen

OpenStreetmap one step closer to having routing on its front page

Thanks to todays opengeodata blog entry, I just discovered that the OpenStreetmap.org site have gotten support for calculating routes. The support is still experimental and only available from the development server, until more experience is gathered on the user interface and any scalability issues.

Earlier, the routing I knew about using the OpenStreetmap.org data was provided by Cloudmade, but having it on the main page is required to make everyone aware of the issue. I've had people reject Openstreetmap.org as a viable alternative for them because the front page lacked routing support, and I hope their needs will be catered for when routing show up on the www.openstreetmap.org front page.

July 18, 2010 02:45 PM

July 17, 2010

Petter Reinholdtsen

What are they searching for - PowerDNS and ISC DHCP in LDAP

This is a followup on my previous work on merging all the computer related LDAP objects in Debian Edu.

As a step to try to see if it possible to merge the DNS and DHCP LDAP objects, I have had a look at how the packages pdns-backend-ldap and dhcp3-server-ldap in Debian use the LDAP server. The two implementations are quite different in how they use LDAP.

To get this information, I started slapd with debugging enabled and dumped the debug output to a file to get the LDAP searches performed on a Debian Edu main-server. Here is a summary.

powerdns

Clues on how to set up PowerDNS to use a LDAP backend is available on the web.

PowerDNS have two modes of operation using LDAP as its backend. One "strict" mode where the forward and reverse DNS lookups are done using the same LDAP objects, and a "tree" mode where the forward and reverse entries are in two different subtrees in LDAP with a structure based on the DNS names, as in tjener.intern and 2.2.0.10.in-addr.arpa.

In tree mode, the server is set up to use a LDAP subtree as its base, and uses a "base" scoped search for the DNS name by adding "dc=tjener,dc=intern," to the base with a filter for "(associateddomain=tjener.intern)" for the forward entry and "dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for "(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For forward entries, it is looking for attributes named dnsttl, arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord, srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord, ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord, spfrecord and modifytimestamp. For reverse entries it is looking for the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent ldapsearch commands could look like this:

ldapsearch -h ldap \
  -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
  -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp

ldapsearch -h ldap \
  -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
  -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
  dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
  hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
  srvrecord naptrrecord modifytimestamp

In Debian Edu/Lenny, the PowerDNS tree mode is used with ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two example LDAP objects used there. In addition to these objects, the parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no also exist.

dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
objectclass: top
objectclass: dnsdomain
objectclass: domainrelatedobject
dc: tjener
arecord: 10.0.2.2
associateddomain: tjener.intern

dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
objectclass: top
objectclass: dnsdomain2
objectclass: domainrelatedobject
dc: 2
ptrrecord: tjener.intern
associateddomain: 2.2.0.10.in-addr.arpa

In strict mode, the server behaves differently. When looking for forward DNS entries, it is doing a "subtree" scoped search with the same base as in the tree mode for a object with filter "(associateddomain=tjener.intern)" and requests the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord, naptrrecord and modifytimestamp. For reverse entires it also do a subtree scoped search but this time the filter is "(arecord=10.0.2.2)" and the requested attributes are associateddomain, dnsttl and modifytimestamp. In short, in strict mode the objects with ptrrecord go away, and the arecord attribute in the forward object is used instead.

The forward and reverse searches can be simulated using ldapsearch like this:

ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
  '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp

ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
  '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp

In addition to the forward and reverse searches , there is also a search for SOA records, which behave similar to the forward and reverse lookups.

A thing to note with the PowerDNS behaviour is that it do not specify any objectclass names, and instead look for the attributes it need to generate a DNS reply. This make it able to work with any objectclass that provide the needed attributes.

The attributes are normally provided in the cosine (RFC 1274) and dnsdomain2 schemas. The latter is used for reverse entries like ptrrecord and recent DNS additions like aaaarecord and srvrecord.

In Debian Edu, we have created DNS objects using the object classes dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS attributes) and domainrelatedobject (for associatedDomain). The use of structural object classes make it impossible to combine these classes with the object classes used by DHCP.

There are other schemas that could be used too, for example the dnszone structural object class used by Gosa and bind-sdb for the DNS attributes combined with the domainrelatedobject object class, but in this case some unused attributes would have to be included as well (zonename and relativedomainname).

My proposal for Debian Edu would be to switch PowerDNS to strict mode and not use any of the existing objectclasses (dnsdomain, dnsdomain2 and dnszone) when one want to combine the DNS information with DHCP information, and instead create a auxiliary object class defined something like this (using the attributes defined for dnsdomain and dnsdomain2 or dnszone):

objectclass ( some-oid NAME 'dnsDomainAux'
    SUP top
    AUXILIARY
    MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
          DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
          TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
          NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
          A6Record $ DNAMERecord
    ))

This will allow any object to become a DNS entry when combined with the domainrelatedobject object class, and allow any entity to include all the attributes PowerDNS wants. I've sent an email to the PowerDNS developers asking for their view on this schema and if they are interested in providing such schema with PowerDNS, and I hope my message will be accepted into their mailing list soon.

ISC dhcp

The DHCP server searches for specific objectclass and requests all the object attributes, and then uses the attributes it want. This make it harder to figure out exactly what attributes are used, but thanks to the working example in Debian Edu I can at least get an idea what is needed without having to read the source code.

In the DHCP server configuration, the LDAP base to use and the search filter to use to locate the correct dhcpServer entity is stored. These are the relevant entries from /etc/dhcp3/dhcpd.conf:

ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
ldap-dhcp-server-cn "dhcp";

The DHCP server uses this information to nest all the DHCP configuration it need. The cn "dhcp" is located using the given LDAP base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The search result is this entry:

dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
cn: dhcp
objectClass: top
objectClass: dhcpServer
dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no

The content of the dhcpServiceDN attribute is next used to locate the subtree with DHCP configuration. The DHCP configuration subtree base is located using a base scope search with base "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" and filter "(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))". The search result is this entry:

dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
cn: DHCP Config
objectClass: top
objectClass: dhcpService
objectClass: dhcpOptions
dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
dhcpStatements: ddns-update-style none
dhcpStatements: authoritative
dhcpOption: smtp-server code 69 = array of ip-address
dhcpOption: www-server code 72 = array of ip-address
dhcpOption: wpad-url code 252 = text

Next, the entire subtree is processed, one level at the time. When all the DHCP configuration is loaded, it is ready to receive requests. The subtree in Debian Edu contain objects with object classes top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions, top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options and information about netmasks, dynamic range etc. Leaving out the details here because it is not relevant for the focus of my investigation, which is to see if it is possible to merge dns and dhcp related computer objects.

When a DHCP request come in, LDAP is searched for the MAC address of the client (00:00:00:00:00:00 in this example), using a subtree scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet 00:00:00:00:00:00))" as the filter. This is what a host object look like:

dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
cn: hostname
objectClass: top
objectClass: dhcpHost
dhcpHWAddress: ethernet 00:00:00:00:00:00
dhcpStatements: fixed-address hostname

There is less flexiblity in the way LDAP searches are done here. The object classes need to have fixed names, and the configuration need to be stored in a fairly specific LDAP structure. On the positive side, the invidiual dhcpHost entires can be anywhere without the DN pointed to by the dhcpServer entries. The latter should make it possible to group all host entries in a subtree next to the configuration entries, and this subtree can also be shared with the DNS server if the schema proposed above is combined with the dhcpHost structural object class.

Conclusion

The PowerDNS implementation seem to be very flexible when it come to which LDAP schemas to use. While its "tree" mode is rigid when it come to the the LDAP structure, the "strict" mode is very flexible, allowing DNS objects to be stored anywhere under the base cn specified in the configuration.

The DHCP implementation on the other hand is very inflexible, both regarding which LDAP schemas to use and which LDAP structure to use. I guess one could implement ones own schema, as long as the objectclasses and attributes have the names used, but this do not really help when the DHCP subtree need to have a fairly fixed structure.

Based on the observed behaviour, I suspect a LDAP structure like this might work for Debian Edu:

ou=services
  cn=machine-info (dhcpService) - dhcpServiceDN points here
    cn=dhcp (dhcpServer)
    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
      cn=10.0.2.0 (dhcpSubnet)
        cn=group1 (dhcpGroup/dhcpOptions)
    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
      cn=192.168.0.0 (dhcpSubnet)
        cn=group1 (dhcpGroup/dhcpOptions)
    ou=machines - PowerDNS base points here
      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)

This is not tested yet. If the DHCP server require the dhcpHost entries to be in the dhcpGroup subtrees, the entries can be stored there instead of a common machines subtree, and the PowerDNS base would have to be moved one level up to the machine-info subtree.

The combined object under the machines subtree would look something like this:

dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
dc: hostname
objectClass: top
objectClass: dhcpHost
objectclass: domainrelatedobject
objectclass: dnsDomainAux
associateddomain: hostname.intern
arecord: 10.11.12.13
dhcpHWAddress: ethernet 00:00:00:00:00:00
dhcpStatements: fixed-address hostname.intern

One could even add the LTSP configuration associated with a given machine, as long as the required attributes are available in a auxiliary object class.

July 17, 2010 07:00 PM

July 14, 2010

Petter Reinholdtsen

Combining PowerDNS and ISC DHCP LDAP objects

For a while now, I have wanted to find a way to change the DNS and DHCP services in Debian Edu to use the same LDAP objects for a given computer, to avoid the possibility of having a inconsistent state for a computer in LDAP (as in DHCP but no DNS entry or the other way around) and make it easier to add computers to LDAP.

I've looked at how powerdns and dhcpd is using LDAP, and using this information finally found a solution that seem to work.

The old setup required three LDAP objects for a given computer. One forward DNS entry, one reverse DNS entry and one DHCP entry. If we switch powerdns to use its strict LDAP method (ldap-method=strict in pdns-debian-edu.conf), the forward and reverse DNS entries are merged into one while making it impossible to transfer the reverse map to a slave DNS server.

If we also replace the object class used to get the DNS related attributes to one allowing these attributes to be combined with the dhcphost object class, we can merge the DNS and DHCP entries into one. I've written such object class in the dnsdomainaux.schema file (need proper OIDs, but that is a minor issue), and tested the setup. It seem to work.

With this test setup in place, we can get away with one LDAP object for both DNS and DHCP, and even the LTSP configuration I suggested in an earlier email. The combined LDAP object will look something like this:

  dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
  cn: hostname
  objectClass: dhcphost
  objectclass: domainrelatedobject
  objectclass: dnsdomainaux
  associateddomain: hostname.intern
  arecord: 10.11.12.13
  dhcphwaddress: ethernet 00:00:00:00:00:00
  dhcpstatements: fixed-address hostname
  ldapconfigsound: Y

The DNS server uses the associateddomain and arecord entries, while the DHCP server uses the dhcphwaddress and dhcpstatements entries before asking DNS to resolve the fixed-adddress. LTSP will use dhcphwaddress or associateddomain and the ldapconfig* attributes.

I am not yet sure if I can get the DHCP server to look for its dhcphost in a different location, to allow us to put the objects outside the "DHCP Config" subtree, but hope to figure out a way to do that. If I can't figure out a way to do that, we can still get rid of the hosts subtree and move all its content into the DHCP Config tree (which probably should be renamed to be more related to the new content. I suspect cn=dnsdhcp,ou=services or something like that might be a good place to put it.

If you want to help out with implementing this for Debian Edu, please contact us on debian-edu@lists.debian.org.

July 14, 2010 09:45 PM

July 13, 2010

Bjørn Venn

Akershus fylkeskommune valgte åpen telefoniløsning

Den 28. juni gikk anbudsfristen ut for å gi tilbud på ny, felles telefoniløsning til Akershus fylkeskommune. I anbudsperioden fikk jeg besøk av Ole Petter Baugerød Stokke i Computerworld. Jeg hadde et budskap. Jeg ønsket å få flere til å forstå at vi ikke er tjent med proprietære løsninger og uheldige leverandørbindinger innenfor bedriftsinterne telefoniløsninger. (se nedenstående blogginnlegg og min side om telefoni). For det finnes nemlig alternative løsninger som reduserer disse bindingene. Selvfølgelig liker ikke de etablerte aktørene dette, og en av lederne i Datametrix gikk åpent ut i debatten etter artikkelen og kritiserte vårt konkurransegrunnlag; «Hvem gidder å svare på slike anbud?» spør han.

Vel, det kan jeg herved gi et svar på. Firma Telekompetanse i Oslo «gadd» å svare på et slikt anbud. Og de gjorde det med glans. Jeg har jobbet i IT-bransjen i 15 år, og i det offentlige i snart 9 år, og jeg har aldri noen gang sett et slikt gjennomarbeidet og tillitsvekkende tilbud. Deres løsningsbeskrivelse virker svært troverdig, og helt i tråd med kravspesifikasjonen. Særlig er aspektene rundt sikkerheten detaljert beskrevet.

Prislappen er etter mine egne anslag på mange millioner under hva en proprietær løsning ville ha kommet på. Akershus fylkeskommune får en løsning som dekker mer enn de kartlagte behovene, er skalerbar, 100% basert på åpne standarder, kjører på standard PC-server maskinvare (fylkeskommunen har rammeavtale på slikt utstyr, servere til ca 80.000 kroner er allerede kjøpt og installert) og med brukerutstyr fra en rekke forskjellige produsenter (akkurat slik det er innenfor datautstyr, hvor man fritt kan velge blant en rekke forskjellige produsenter).

Jeg føler meg ganske sikker på at Telekompetanse med denne løsningen vil bli en tøff utfordrer til de store, etablerte aktørene. Hvis jeg var representant for en av de tradisjonelle telekomprodusentene, ville jeg vært svært så nysgjerrig på denne løsningen. 

En hyggelig lunsjprat sier jeg sjeldent nei til. Min kontaktinformasjon finnes i menyen til høyre. Ha en riktig god sommer!

by Bjørn atJuly 13, 2010 12:14 PM

July 12, 2010

NUUG Foundation

Kaizendo utviklersamling

NUUG Foundation støttet 3 deltakeres reise til utviklersamling på Island. Rapporten fra samlingen er nå klar.

July 12, 2010 01:16 PM

July 11, 2010

Petter Reinholdtsen

Idea for storing LTSP configuration in LDAP

Vagrant mentioned on IRC today that ltsp_config now support sourcing files from /usr/share/ltsp/ltsp_config.d/ on the thin clients, and that this can be used to fetch configuration from LDAP if Debian Edu choose to store configuration there.

Armed with this information, I got inspired and wrote a test module to get configuration from LDAP. The idea is to look up the MAC address of the client in LDAP, and look for attributes on the form ltspconfigsetting=value, and use this to export SETTING=value to the LTSP clients.

The goal is to be able to store the LTSP configuration attributes in a "computer" LDAP object used by both DNS and DHCP, and thus allowing us to store all information about a computer in one place.

This is a untested draft implementation, and I welcome feedback on this approach. A real LDAP schema for the ltspClientAux objectclass need to be written. Comments, suggestions, etc?

# Store in /opt/ltsp/$arch/usr/share/ltsp/ltsp_config.d/ldap-config
#
# Fetch LTSP client settings from LDAP based on MAC address
#
# Uses ethernet address as stored in the dhcpHost objectclass using
# the dhcpHWAddress attribute or ethernet address stored in the
# ieee802Device objectclass with the macAddress attribute.
#
# This module is written to be schema agnostic, and only depend on the
# existence of attribute names.
#
# The LTSP configuration variables are saved directly using a
# ltspConfig prefix and uppercasing the rest of the attribute name.
# To set the SERVER variable, set the ltspConfigServer attribute.
#
# Some LDAP schema should be created with all the relevant
# configuration settings.  Something like this should work:
# 
# objectclass ( 1.1.2.2 NAME 'ltspClientAux'
#     SUP top
#     AUXILIARY
#     MAY ( ltspConfigServer $ ltsConfigSound $ ... )

LDAPSERVER=$(debian-edu-ldapserver)
if [ "$LDAPSERVER" ] ; then
    LDAPBASE=$(debian-edu-ldapserver -b)
    for MAC in $(LANG=C ifconfig |grep -i hwaddr| awk '{print $5}'|sort -u) ; do
	filter="(|(dhcpHWAddress=ethernet $MAC)(macAddress=$MAC))"
	ldapsearch -h "$LDAPSERVER" -b "$LDAPBASE" -v -x "$filter" | \
	    grep '^ltspConfig' | while read attr value ; do
	    # Remove prefix and convert to upper case
	    attr=$(echo $attr | sed 's/^ltspConfig//i' | tr a-z A-Z)
	    # bass value on to clients
	    eval "$attr=$value; export $attr"
	done
    done
fi

I'm not sure this shell construction will work, because I suspect the while block might end up in a subshell causing the variables set there to not show up in ltsp-config, but if that is the case I am sure the code can be restructured to make sure the variables are passed on. I expect that can be solved with some testing. :)

If you want to help out with implementing this for Debian Edu, please contact us on debian-edu@lists.debian.org.

Update 2010-07-17: I am aware of another effort to store LTSP configuration in LDAP that was created around year 2000 by PC Xperience, Inc., 2000. I found its files on a personal home page over at redhat.com.

July 11, 2010 08:00 PM

July 09, 2010

Petter Reinholdtsen

jXplorer, a very nice LDAP GUI

Since my last post about available LDAP tools in Debian, I was told about a LDAP GUI that is even better than luma. The java application jXplorer is claimed to be capable of moving LDAP objects and subtrees using drag-and-drop, and can authenticate using Kerberos. I have only tested the Kerberos authentication, but do not have a LDAP setup allowing me to rewrite LDAP with my test user yet. It is available in Debian testing and unstable at the moment. The only problem I have with it is how it handle errors. If something go wrong, its non-intuitive behaviour require me to go through some query work list and remove the failing query. Nothing big, but very annoying.

July 09, 2010 10:55 AM

July 08, 2010

Petter Reinholdtsen

MS Word krøller det til for politiet?

De siste dagene har Aftenposten fortalt hvordan politet har brukt skriveverktøy som ikke håndterer arabisk tekst og tekst som skal skrives fra høyre mot venstre når de har laget løpeseddel for å be om informasjon fra publikum. Resultatet har vært en uleselig arabisk-bit på løpeseddelen. Feilen har oppstått når teksten har blitt "kopiert inn i programvare som ikke har støtte for språk som skrives fra høyre mot venstre", og jeg er ganske sikker på at det er snakk om Microsoft Office i dette tilfellet. Er det slik at MS Office i norsk språkdrakt ikke har støtte for tekst som skal skrives fra høyre mot venstre? Jeg tror alle utgaver av OpenOffice.org har slik støtte, og det er jo ikke veldig vanskelig å la slik støtte finnes i alle utgaver av et program hvis støtten først er utviklet. Aftenpostens melding får meg til å undre om problemet ville vært unngått hvis politiet brukte OpenOffice.org i stedet for MS Office.

Mon tro om det er flere eksempler på at MS Office har ødelagt for offentlig myndighet?

July 08, 2010 12:00 PM

July 03, 2010

Petter Reinholdtsen

Lenny->Squeeze upgrades, apt vs aptitude with the Gnome desktop

Here is a short update on my my Debian Lenny->Squeeze upgrade testing. Here is a summary of the difference for Gnome when it is upgraded by apt-get and aptitude. I'm not reporting the status for KDE, because the upgrade crashes when aptitude try because of missing conflicts (#584861 and #585716).

At the end of the upgrade test script, dpkg -l is executed to get a complete list of the installed packages. Based on this I see these differences when I did a test run today. As usual, I do not really know what the correct set of packages would be, but thought it best to publish the difference.

Installed using apt-get, missing with aptitude

at-spi cpp-4.3 finger gnome-spell gstreamer0.10-gnomevfs libatspi1.0-0 libcupsys2 libeel2-data libgail-common libgdl-1-common libgnomeprint2.2-data libgnomeprintui2.2-common libgnomevfs2-bin libgtksourceview-common libpt-1.10.10-plugins-alsa libpt-1.10.10-plugins-v4l libservlet2.4-java libxalan2-java libxerces2-java openoffice.org-writer2latex openssl-blacklist p7zip python-4suite-xml python-eggtrayicon python-gtkhtml2 python-gtkmozembed svgalibg1 xserver-xephyr zip

Installed using apt-get, removed with aptitude

bluez-utils dhcdbd djvulibre-desktop epiphany-gecko gnome-app-install gnome-mount gnome-vfs-obexftp gnome-volume-manager libao2 libavahi-compat-libdnssd1 libavahi-core5 libbind9-50 libbluetooth2 libcamel1.2-11 libcdio7 libcucul0 libcurl3 libdirectfb-1.0-0 libdvdread3 libedata-cal1.2-6 libedataserver1.2-9 libeel2-2.20 libepc-1.0-1 libepc-ui-1.0-1 libexchange-storage1.2-3 libfaad0 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtkhtml2-0 libgtksourceview1.0-0 libgucharmap6 libhesiod0 libicu38 libisccc50 libisccfg50 libiw29 libkpathsea4 libltdl3 liblwres50 libmagick++10 libmagick10 libmalaga7 libmtp7 libmysqlclient15off libnautilus-burn4 libneon27 libnm-glib0 libnm-util0 libopal-2.2 libosp5 libparted1.8-10 libpisock9 libpisync1 libpoppler-glib3 libpoppler3 libpt-1.10.10 libraw1394-8 libsensors3 libsmbios2 libsoup2.2-8 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1 libtotem-plparser10 libtrackerclient0 libvoikko1 libxalan2-java-gcj libxerces2-java-gcj libxklavier12 libxtrap6 libxxf86misc1 libzephyr3 mysql-common swfdec-gnome totem-gstreamer wodim

Installed using aptitude, missing with apt-get

gnome gnome-desktop-environment hamster-applet python-gnomeapplet python-gnomekeyring python-wnck rhythmbox-plugins xorg xserver-xorg-input-all xserver-xorg-input-evdev xserver-xorg-input-kbd xserver-xorg-input-mouse xserver-xorg-input-synaptics xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark xserver-xorg-video-ati xserver-xorg-video-chips xserver-xorg-video-cirrus xserver-xorg-video-dummy xserver-xorg-video-fbdev xserver-xorg-video-glint xserver-xorg-video-i128 xserver-xorg-video-i740 xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-neomagic xserver-xorg-video-nouveau xserver-xorg-video-nv xserver-xorg-video-r128 xserver-xorg-video-radeon xserver-xorg-video-radeonhd xserver-xorg-video-rendition xserver-xorg-video-s3 xserver-xorg-video-s3virge xserver-xorg-video-savage xserver-xorg-video-siliconmotion xserver-xorg-video-sis xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-tga xserver-xorg-video-trident xserver-xorg-video-tseng xserver-xorg-video-vesa xserver-xorg-video-vmware xserver-xorg-video-voodoo

Installed using aptitude, removed with apt-get

deskbar-applet xserver-xorg xserver-xorg-core xserver-xorg-input-wacom xserver-xorg-video-intel xserver-xorg-video-openchrome

I was told on IRC that the xorg-xserver package was changed in git today to try to get apt-get to not remove xorg completely. No idea when it hits Squeeze, but when it does I hope it will reduce the difference somewhat.

July 03, 2010 09:55 PM

July 01, 2010

Petter Reinholdtsen

Caching password, user and group on a roaming Debian laptop

For a laptop, centralized user directories and password checking is a bit troubling. Laptops are typically used also when not connected to the network, and it is vital for a user to be able to log in or unlock the screen saver also when a central server is unavailable. This is possible by caching passwords and directory information (user and group attributes) locally, and the packages to do so are available in Debian. Here follow two recipes to set this up in Debian/Squeeze. It is also possible to set up in Debian/Lenny, but require more manual setup there because pam-auth-update is missing in Lenny.

LDAP/Kerberos + nscd + libpam-ccreds + libpam-mklocaluser/pam_mkhomedir

This is the traditional method with a twist. The password caching is provided by libpam-ccreds (version 10-4 or later is needed on Squeeze), and the directory caching is done by nscd. The directory lookup and password checking is done using LDAP. If one want to use Kerberos for password checking the libpam-ldapd package can be replaced with libpam-krb5 or libpam-heimdal. If one is happy having a local home directory with the path listed in LDAP, one can use the pam_mkhomedir module from pam-modules to make this happen instead of using libpam-mklocaluser. A setup for pam-auth-update to enable pam_mkhomedir will have to be written until a fix for bug #568577 is in the archive. Because I believe it is a bad idea to have local home directories using misleading paths like /site/server/partition/, I prefer to create a local user with the home directory in /home/. This is done using the libpam-mklocaluser package.

These packages need to be installed and configured

libnss-ldapd libpam-ldapd nscd libpam-ccreds libpam-mklocaluser

The ldapd packages will ask for LDAP connection information, and one have to fill in the values that fits ones own site. Make sure the PAM part uses encrypted connections, to make sure the password is not sent in clear text to the LDAP server. I've been unable to get TLS certificate checking for a self signed certificate working, which make LDAP authentication unsafe for Debian Edu (nslcd is not checking if it is talking to the correct LDAP server), and very much welcome feedback on how to get this working.

Because nscd do not have a default configuration fit for offline caching until bug #485282 is fixed, this configuration should be used instead of the one currently in /etc/nscd.conf. The changes are in the fields reload-count and positive-time-to-live, and is based on the instructions I found in the LDAP for Mobile Laptops instructions by Flyn Computing.

	debug-level		0
	reload-count		unlimited
	paranoia		no

	enable-cache		passwd		yes
	positive-time-to-live	passwd		2592000
	negative-time-to-live	passwd		20
	suggested-size		passwd		211
	check-files		passwd		yes
	persistent		passwd		yes
	shared			passwd		yes
	max-db-size		passwd		33554432
	auto-propagate		passwd		yes

	enable-cache		group		yes
	positive-time-to-live	group		2592000
	negative-time-to-live	group		20
	suggested-size		group		211
	check-files		group		yes
	persistent		group		yes
	shared			group		yes
	max-db-size		group		33554432
	auto-propagate		group		yes

	enable-cache		hosts		no
	positive-time-to-live	hosts		2592000
	negative-time-to-live	hosts		20
	suggested-size		hosts		211
	check-files		hosts		yes
	persistent		hosts		yes
	shared			hosts		yes
	max-db-size		hosts		33554432

	enable-cache		services	yes
	positive-time-to-live	services	2592000
	negative-time-to-live	services	20
	suggested-size		services	211
	check-files		services	yes
	persistent		services	yes
	shared			services	yes
	max-db-size		services	33554432

While we wait for a mechanism to update /etc/nsswitch.conf automatically like the one provided in bug #496915, the file content need to be manually replaced to ensure LDAP is used as the directory service on the machine. /etc/nsswitch.conf should normally look like this:

passwd:         files ldap
group:          files ldap
shadow:         files ldap
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files
protocols:      files
services:       files
ethers:         files
rpc:            files
netgroup:       files ldap

The important parts are that ldap is listed last for passwd, group, shadow and netgroup.

With these changes in place, any user in LDAP will be able to log in locally on the machine using for example kdm, get a local home directory created and have the password as well as user and group attributes cached.

LDAP/Kerberos + nss-updatedb + libpam-ccreds + libpam-mklocaluser/pam_mkhomedir

Because nscd have had its share of problems, and seem to have problems doing proper caching, I've seen suggestions and recipes to use nss-updatedb to copy parts of the LDAP database locally when the LDAP database is available. I have not tested such setup, because I discovered sssd.

LDAP/Kerberos + sssd + libpam-mklocaluser

A more flexible and robust setup than the nscd combination mentioned earlier that has shown up recently, is the sssd package from Redhat. It is part of the FreeIPA project to provide a Active Directory like directory service for Linux machines. The sssd system combines the caching of passwords and user information into one package, and remove the need for nscd and libpam-ccreds. It support LDAP and Kerberos, but not NIS. Version 1.2 do not support netgroups, but it is said that it will support this in version 1.5 expected to show up later in 2010. Because the sssd package was missing in Debian, I ended up co-maintaining it with Werner, and version 1.2 is now in testing.

These packages need to be installed and configured to get the roaming setup I want

libpam-sss libnss-sss libpam-mklocaluser
The complete setup of sssd is done by editing/creating /etc/sssd/sssd.conf.
[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam
domains = INTERN

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3

[pam]
reconnection_retries = 3

[domain/INTERN]
enumerate = false
cache_credentials = true

id_provider = ldap
auth_provider = ldap
chpass_provider = ldap

ldap_uri = ldap://ldap
ldap_search_base = dc=skole,dc=skolelinux,dc=no
ldap_tls_reqcert = never
ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt

I got the same problem here with certificate checking. Had to set "ldap_tls_reqcert = never" to get it working.

With the libnss-sss package in testing at the moment, the nsswitch.conf file is update automatically, so there is no need to modify it manually.

If you want to help out with implementing this for Debian Edu, please contact us on debian-edu@lists.debian.org.

July 01, 2010 09:40 AM

June 28, 2010

Martin Bekkelund

Selvsagt har jeg noe å skjule

I debatten om innføring av Datalagringsdirektivet (DLD) i norsk rett hører man at har man ingenting å skjule, har man heller ingenting å frykte. Her forklarer jeg hvorfor jeg har noe å skjule, og hvorfor du sannsynligvis har det samme.

Hvis du er som meg er du sannsynligvis ingen terrorist. Du er neppe en person som begår alvorlig kriminalitet, heller. DLD ble opprettet for å overvåke kommunikasjonen til terrorister og kriminelle. Som en konsekvens av denne overvåkingen, blir også du og jeg overvåket. Paradoksalt nok omgår terrorister og kriminelle denne overvåkingen, men det er en annen diskusjon.

Som en lovlydig samfunnsborger vet du, akkurat som meg, at vi ikke har noen ulovlige aktiviteter å skjule. Hvis ikke vi har noe å skjule, hvorfor har vi da noe å frykte?

Riktignok har vi ingen ulovlige aktiviteter å skjule. Men i all sekundærlagringen har vi alle noe å skjule.

Sekundærlagring er data som lagres som en konsekvens av DLD, men som ikke er relevant for DLDs primære formål; å ta terrorister og kriminelle. I praksis vil nærmest alle data som lagres med DLD være sekundære, da terrorister og kriminelle som nevnt omgår DLD. DLD vil altså bli en enorm mengde data om alle våre fullt lovlige aktiviteter, også de de vi ikke vil at andre skal vite om.

Jeg vil ikke at verden skal få vite når jeg ringer kjæresten min. Jeg vil ikke at verden skal vite når jeg sender henne SMS. Jeg vil heller ikke at verden skal vite hvor jeg er til enhver tid — det vil jeg bestemme selv. Og jeg vil ikke at verden skal vite hvilken lege jeg sender e-post til. Om ikke denne informasjonen blir blottlagt for hele verden, blir den i hvert fall tilgjengelig for andre mennesker. Og andre mennesker er akkurat det — mennesker.

Sladder til salgs

For tre år siden ble Ari Behn og andre kjendisers kontoutskrifter solgt til Se og Hør. At den kulørte presse sikler etter informasjon om hvem kjendiser kommuniserer med, er ikke vanskelig å forestille seg. Leder av Venstre, Trine Skei Grande, uttalte at jeg er 40 år og singel, klart jeg har noe å skjule. Verken Trine Skei Grande, Ari Behn eller jeg har ulovlige aktiviteter å skjule, men vi har alle allikevel noe å skjule.

by Martin Bekkelund atJune 28, 2010 08:03 PM

June 27, 2010

Petter Reinholdtsen

LUMA, a very nice LDAP GUI

The last few days I have been looking into the status of the LDAP directory in Debian Edu, and in the process I started to miss a GUI tool to browse the LDAP tree. The only one I was able to find in Debian/Squeeze and Lenny is LUMA, which has proved to be a great tool to get a overview of the current LDAP directory populated by default in Skolelinux. Thanks to it, I have been able to find empty and obsolete subtrees, misplaced objects and duplicate objects. It will be installed by default in Debian/Squeeze. If you are working with LDAP, give it a go. :)

I did notice one problem with it I have not had time to report to the BTS yet. There is no .desktop file in the package, so the tool do not show up in the Gnome and KDE menus, but only deep down in in the Debian submenu in KDE. I hope that can be fixed before Squeeze is released.

I have not yet been able to get it to modify the tree yet. I would like to move objects and remove subtrees directly in the GUI, but have not found a way to do that with LUMA yet. So in the mean time, I use ldapvi for that.

If you have tips on other GUI tools for LDAP that might be useful in Debian Edu, please contact us on debian-edu@lists.debian.org.

Update 2010-06-29: Ross Reedstrom tipped us about the gq package as a useful GUI alternative. It seem like a good tool, but is unmaintained in Debian and got a RC bug keeping it out of Squeeze. Unless that changes, it will not be an option for Debian Edu based on Squeeze.

June 27, 2010 10:30 PM

June 23, 2010

Petter Reinholdtsen

Idea for a change to LDAP schemas allowing DNS and DHCP info to be combined into one object

A while back, I complained about the fact that it is not possible with the provided schemas for storing DNS and DHCP information in LDAP to combine the two sets of information into one LDAP object representing a computer.

In the mean time, I discovered that a simple fix would be to make the dhcpHost object class auxiliary, to allow it to be combined with the dNSDomain object class, and thus forming one object for one computer when storing both DHCP and DNS information in LDAP.

If I understand this correctly, it is not safe to do this change without also changing the assigned number for the object class, and I do not know enough about LDAP schema design to do that properly for Debian Edu.

Anyway, for future reference, this is how I believe we could change the DHCP schema to solve at least part of the problem with the LDAP schemas available today from IETF.

--- dhcp.schema    (revision 65192)
+++ dhcp.schema    (working copy)
@@ -376,7 +376,7 @@
 objectclass ( 2.16.840.1.113719.1.203.6.6
        NAME 'dhcpHost'
        DESC 'This represents information about a particular client'
-       SUP top
+       SUP top AUXILIARY
        MUST cn
        MAY  (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption)
        X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' 'dhcpGroup') )

I very much welcome clues on how to do this properly for Debian Edu/Squeeze. We provide the DHCP schema in our debian-edu-config package, and should thus be free to rewrite it as we see fit.

If you want to help out with implementing this for Debian Edu, please contact us on debian-edu@lists.debian.org.

June 23, 2010 10:35 PM

Martin Bekkelund

Myten om multitasking

Multitasking er kjent som evnen til å gjøre flere ting på én gang, og brukes gjerne både om mennesker og datamaskiner. Men hvem eller hva er egentlig multitasking forbeholdt?

caffeinating, calculating, computerating

caffeinating, calculating, computerating av Ryan Ritchie • Lisens: CC-BY-ND 2.0

På en datamaskin man man for eksempel kjøre to eller flere programmer samtidig. Som menneske kan man også gjøre to eller flere ting samtidig, for eksempel strikke og lese avisen.

Den videre likheten mellom datamaskiner og mennesker er at ingen av dem kan fokusere på mer enn én ting om gangen. Du kan lese avisen og strikke samtidig, fordi strikkingen går på refleks. Skulle du konsentrert deg om strikkingen ville det blitt dårlig med avislesing. Datamaskinen kan for eksempel ha åpent to dokumenter samtidig, men kan kun fokusere på et av de om gangen.

Tilsvarende er det ikke mulig for et menneske å multitaske på en datamaskin, fordi datamaskinen ikke lar deg gjøre mer enn én ting om gangen. Selvsagt kan du la flere programmer kjøre samtidig, men da er det datamaskinen som håndterer disse programmene, og ikke du. Med en datamaskin kan du altså ikke redigere to dokumenter samtidig. Du kan ha to dokumenter åpne samtidig, men du kan ikke redigere begge samtidig, kun veksle mellom dem.

Det er ikke noe stort poeng i denne artikkelen, utover å understreke at verken datamaskiner eller mennesker egner seg for multitasking når det kommer til menneskers bruk av en datamaskin. Datamaskiner multitasker, men mennesker kan ikke multitaske på en datamaskin.

by Martin Bekkelund atJune 23, 2010 09:09 PM

June 22, 2010

Martin Bekkelund

New York 2.0

Det nærmer seg fire år siden jeg var i New York sist. Nå skal jeg dit igjen og får anledning til å tilbringe et par dager alene i verdensmetropolen.

I denne anledning tenkte jeg å la deg som leser komme med tips til hva jeg bør se og gjøre de dagene jeg er alene. Det kan være severdigheter utenom det vanlige, restauranter, (kaffe)barer, gode fotomotiver eller hva som helst, bare det er verdt et besøk.

Tips som plukkes opp og faktisk gjennomføres premieres med bilder fra severdigheten og kudos på Flickr.

Legg igjen kommentar! :-)

by Martin Bekkelund atJune 22, 2010 09:34 PM

Standardisert lagring av trafikkdata

Norge må si nei til Datalagringsdirektivet (DLD) og heller arbeide med hvordan vi i Norge skal lagre trafikkdata, har jeg foreslått. Samferdselsminister Meltveit Kleppa vil følge mitt råd. Her er mine tanker om hva som vil være viktig i en slik prosess.

Trenger vi et alternativ?

I aller enkleste form trenger vi ikke et alternativ. Da er det opp til internett- og teletilbyderne å selv avgjøre om og hva som skal lagres av såkalte trafikkdata, det vil si data om hvem vi kommuniserer med og hvor vi befinner oss. Det er denne løsningen vi baserer oss på i dag.

Fordelen med dagens ordning er at tilbyderne ikke lagrer mer data enn nødvendig, da det vil være en merkostnad for dem. Ulempen er samtidig at vi ikke vet hvilke data tilbyderne lagrer. I tillegg er det forskjellig lagringspraksis hos de forskjellige tilbyderne. Hvis vi skal ha et alternativ til DLD, må vi se på standardisert lagring for å vite hvilke data som lagres om oss. Kun da vil vi være sikre på at personvernet er ivaretatt i tilstrekkelig grad. For enkelte tilbydere vil dette kunne medføre mer lagring, mens det for andre tilbydere vil medføre mindre.

Need to have vs. Nice to have

DLD har en tilnærming til lagring av trafikkdata som baserer seg på nice to have-prinsippet. «Vi lagrer alt, i tilfelle det kommer til nytte» er inntrykket man sitter igjen med etter å ha lest direktivet. Med en slik tilnærming til lagring av trafikkdata vil personvernet være skadelidende, mens de kriminelle går fri.

Tilnærmingen må derfor snus på hodet, fra nice to have til need to have. Tar vi en nærmere titt på hva som er gjeldende lagringspraksis i dag, ser vi at tilgangen til trafikkdata ikke er så ille som politimyndigheten tidligere har hevdet. Vi bør som et maksimum opprettholde dagens lagringsordning, og ikke innføre lagring av mer data.

Overvåking vs. lagring

Når man lagrer informasjon om når man sender e-post, hvor man befinner seg når man foretar en telefonsamtale, og tilsvarende, er det per definisjon overvåking. Det er et udiskutabelt faktum at DLD er å anse som overvåking av enkeltindividet, all den tid DLD legger opp til lagring av denne typen data.

I en norsk regulering av lagrede trafikkdata må ikke slike typer data forekomme. Det er ikke vanlig praksis i dag, og det må heller ikke innføres som en del av den norske løsningen. Fraværet av denne typen data i en norsk løsning vil være den største styrken for personvernet.

Standardisering av datalagring

Det er som nevnt forskjellig praksis for lagring av trafikkdata hos de forskjellige tilbyderne, avhengig av tilbyderens eget behov. Noe lagrer mye, andre lagrer nesten ingenting.

Det er derfor viktig at man finner et fornuftig nivå for hvilke data som skal lagres, hvor lenge de skal lagres, hvem som skal ha tilgang og hvilken prosess man må igjennom for å hente ut data. Straks man finner et slikt nivå må det innføres som et regulativ eller retningslinjer for tilbyderne, slik at alle lagrer samme type data i like lang tid. Det vil gjøre det enklere for etterforskningen å forholde seg til når de skal hente ut data.

Lagringsplikt vs. sletteplikt

Med en slik løsning vil man gå fra det som i DLD er omtalt som lagringsplikt, altså plikt til å lagre data, og heller opprettholde dagens eksisterende løsning om sletteplikt. Det vil si at tilbyderne heller pålegges sletting av data innen en gitt periode, fremfor å lagre data i minimum 6-24 måneder, slik DLD medfører.

Lengden på lagringstiden vil også være sentral. Hvor lenge skal man lagre data før man kan anse dem som uinteressante? For tilbyderne varierer dette med kundenes abonnementer. For politiet vil det være lenge nok til at de får sikret eventuelle beviser. Men lagringstiden bør neppe overskride 6 måneder. Hvis det ikke er tilstrekkelig for politiet bør man heller studere hvorfor politiet ikke rekker å hente ut beviser innen 6 måneder.

Et dilemma i denne anledning vil være hvorvidt man skal pålegge standardisert lagring, i henhold til forrige avsnitt. For noen tilbydere kan standardisert lagring medføre mindre lagring av data, mens det hos andre kanskje vil medføre mer. Hvorvidt man således skal pålegge tilbydere å lagre mer data enn hva de selv har behov for, er noe en nærmere utredning må kartlegge.

Trafikkdata som ikke lar seg lagre

DLD tar heller ikke høyde for for tjenester som Facebook, Gmail, Skype og anonymiseringstjenester som Tor og tilsvarende. Meldinger sendt mellom to Facebook-brukere vil aldri kunne lagres. Det samme gjelder Gmail og Skype-samtaler.

Det har i debatten om DLD vært diskutert hvorvidt dette er positivt eller negativt. For personvernet er det positivt. Det er viktig at man erkjenner at enkelte typer data aldri vil kunne la seg lagre. Akkurat på samme måte som at en samtale mellom to mennesker i skogen heller aldri vil bli lagret. Heldigvis. At man med teknologi har mulighet til å lagre data betyr ikke at det er riktig. Det vil kun bidra til å redusere brukernes tillit til teknologien, og i sin tur bidra til redusert bruk. Og da vil man miste muligheten til enhver form for lagring av data, når brukerne går tilbake til analoge kommunikasjonsformer.

Justismord og juridiske aspekter

Akkurat som i den virkelige verden vil man med teknologi kunne misbruke teknologien til å skjule sine spor eller enda verre; plante falske beviser. Hvor tungt skal beviser fra uthentede data veie i en eventuell rettssak? Hvem blir dømt hvis jeg misbruker naboens trådløse nettverk til å begå kriminalitet? Går jeg fri, mens naboen blir uskyldig dømt? Med trafikkdata kan man ikke bevise at det var naboen som begikk ugjerningen. Sannsynliggjøre, ja, men ikke bevise. Det vil derfor være viktig med en juridisk utredning om hvordan slike «beviser» håndteres.

Navnet skjemmer løsningen

Datalagringsdirektivet har — med rette — fått et umiskjennelig dårlig stempel. For å få aksept for gjennomføring en standardisert lagring av norske trafikkdata, er det viktig at man benytter et helt annet navn.

Tilhenger av hva?

Det er en vanskelig balansegang å skulle utarbeide en slik standardisert lagring av trafikkdata. Jeg er motstander av DLD fordi det er teknologisk dårlig, samt personvernmessig og juridisk uholdbart. Samtidig er jeg klar over politiets behov for tilgang til visse typer data. At jeg er motstander av DLD betyr ikke at jeg nødvendigvis mener at vi må innføre de forslagene som er fremlagt i denne artikkelen. Dersom arbeidet med et alternativ faktisk blir en realitet, er det viktig at disse punktene blir drøftet, og det er derfor jeg fremsetter dem.

Det er det endelige resultatet og bitene som utgjør resultatet som til slutt vil avgjøre hvorvidt jeg blir tilhenger eller motstander av et slikt alternativ. Det er uansett viktig at alternativet reflekterer de punkter jeg drøfter i denne artikkelen.

by Martin Bekkelund atJune 22, 2010 09:50 AM

Rekkevidden av GPL

Interne stridigheter tærer på WordPress-miljøet. Hva skal til for at det overlever?

Spesielt interesserte har det siste året vært vitner til interne stridigheter mellom WordPress-utviklerne og det omkringliggende nettsamfunnet. Problematikken er enkel: WordPress-utviklerne krever at temaer og innstikk til WordPress må produseres med lisensen GPL, den samme som WordPress er lisensiert under. De begrunner dette med delingsforpliktelsen som ligger i GPL, det vil si at endringer og utvidelser i en programvare lisensiert under GPL deles.

Jeg forklarer i denne artikkelen hvorfor WordPress-utviklernes tilnærming er problematisk, og skisserer samtidig en mer attraktiv løsning.

Stridens kjerne

Forestill deg at du er en liten konsulentbedrift som leverer tjenester basert på WordPress. Du leverer WordPress og selger i tillegg tema du selv har laget. Dette temaet krever WordPress-utviklerne at du skal lisensiere under GPL. I hvert fall dersom du skal publisere det for fri nedlasting på WordPress’ temaside. Det samme gjelder for innstikk. De er — slik jeg tolker det — imidlertid ikke helt klare på hvorvidt dette bare gjelder for publisering på WordPress’ sider, eller generelt. Det er uansett lett å tolke det som et generelt krav, og jeg forstår det slik at mange gjør det.

Hvorfor er dette kravet problematisk?

Programvare, for eksempel temaer og innstikk til WordPress, er definert som åndsverk. Det er opphavsmannen til åndsverket som bestemmer hva man kan gjøre og ikke gjøre med programvaren. Dette gjør opphavsmannen med en lisens som følger med programvaren. GPL er en slik lisens og er den WordPress benytter.

Et tema kan både være GPL og selges for penger med kommersiell støtte, slik man kan med alle åndsverk som er lisensiert under GPL. Problemet ligger derimot i at det er WordPress-utviklerne som krever dette, og at dette kravet ikke nødvendigvis harmonerer med tema- eller innstikkutviklerens egne ønsker og behov. WordPress-utviklerne eliminerer ironisk nok dermed friheten GPL er ment til å ivareta, ved å tvinge frihet på andre. Man eliminerer deres frihet til å selv la utviklerne velge hvilken lisens deres tema eller innstikk skal leveres under.

Jeg mener at det må være opp til temaets eller innstikkets utvikler å selv kunne velge lisens til åndsverket de selv har utviklet.

Er det juridisk holdbarhet i kravet?

Så vidt meg bekjent foreligger det ingen rettskraftige dommer tilknyttet denne problematikken. Det vil si at når man ikke har noen dom å kunne lene seg på, vil det enn så lenge være juridiske tolkninger som avgjør hva som er rett og galt. I denne anledning har jeg snakket med en av Norges fremste eksperter på lisenser for fri programvare, advokat og partner Kristian Foss i Gille Advokater, som sier

— Dersom de fungerer gjennom et definert og alminnnelig tilgjengelig API er det mye som taler for at det ikke underlegges GPL. Er det det snakk om dynamisk lenking, må det vurderes nærmere. Er det statisk lenking er det mye som taler for at GPL vil underlegge seg innstikket eller temaet. En tilleggsmodul kan raskt tenkes å bli omfattet av GPL. Så, som så ofte i jussen (til folks store frustrasjon), må det foretas en konkret vurdering, før det kan konkluderes.

Modularisering og standardiserte lisenser

Slik jeg ser det vil det være langt mer attraktivt å la utviklerne selv velge lisens for deres tema eller innstikk. Man kan enten gjøre dette ved å la utvikleren velge helt fritt, eller velge blant et sett standardiserte lisenser, for eksempel en liberal lisens (typisk BSD), restriktiv (typisk GPL) eller lukket (typisk PEL/PUL — Proprietary Extension/Use License).

Vi har mange eksempler på hvordan slik modularisering er en svært god forretningsmodell. Blant annet er dette en modell benyttet av norske eZ Systems AS for deres publiseringsløsning eZ Publish (som for øvrig er et high-end-produkt i samme kategori som WordPress).

En bedre forretningsmodell

Problemets kjerne, slik jeg ser det, er at WordPress mangler en robust forretningsmodell for utviklere og partnere som ønsker å drive forretning på WordPress. WordPress ble, som mange andre løsninger, publisert på nettet og utviklet til å bli en svært populær plattform, uten at man hadde profitt i tankene da man startet prosjektet. Fraværet av tanker om profitt i starten har nå vokst seg til å bli et så stort problem at det i verste fall kan føre til frafall av bidragsytere i det omkringliggende nettsamfunnet, og at folk heller velger alternativer til WordPress hvor vilkårene er klarere og mindre diktatoriske enn hva WordPress-utviklerne fremstiller dem til å være.

Konklusjon

Slik jeg ser det har WordPress-utviklerne ingen belegg for å kreve verken temaer eller innstikk lisensiert under GPL. I stedet for å true med represalier i nettmiljøet foreslår jeg at de heller konsentrerer seg om å la utviklerne velge blant et sett standardiserte lisensier. I tillegg må de utvikle en bedre forretningsmodell for samarbeid med bedrifter som ønsker å tjene penger på WordPress og omkringliggende tjenester.

Denne kronikken er opprinnelig publisert på Friprogsenterets blogg med en CC-BY-SA 3.0-lisens.

by Martin Bekkelund atJune 22, 2010 08:39 AM

Friprogsenteret

Rekkevidden av GPL

Interne stridigheter tærer på WordPress-miljøet. Hva skal til for at det overlever?

Spesielt interesserte har det siste året vært vitner til interne stridigheter mellom WordPress-utviklerne og det omkringliggende nettsamfunnet. Problematikken er enkel: WordPress-utviklerne krever at temaer og innstikk til WordPress må produseres med lisensen GPL, den samme som WordPress er lisensiert under. De begrunner dette med delingsforpliktelsen som ligger i GPL, det vil si at endringer og utvidelser i en programvare lisensiert under GPL deles.

Jeg forklarer i denne artikkelen hvorfor WordPress-utviklernes tilnærming er problematisk, og skisserer samtidig en mer attraktiv løsning.

Stridens kjerne

Forestill deg at du er en liten konsulentbedrift som leverer tjenester basert på WordPress. Du leverer WordPress og selger i tillegg tema du selv har laget. Dette temaet krever WordPress-utviklerne at du skal lisensiere under GPL. I hvert fall dersom du skal publisere det for fri nedlasting på WordPress’ temaside. Det samme gjelder for innstikk. De er — slik jeg tolker det — imidlertid ikke helt klare på hvorvidt dette bare gjelder for publisering på WordPress’ sider, eller generelt. Det er uansett lett å tolke det som et generelt krav, og jeg forstår det slik at mange gjør det.

Hvorfor er dette kravet problematisk?

Programvare, for eksempel temaer og innstikk til WordPress, er definert som åndsverk. Det er opphavsmannen til åndsverket som bestemmer hva man kan gjøre og ikke gjøre med programvaren. Dette gjør opphavsmannen med en lisens som følger med programvaren. GPL er en slik lisens og er den WordPress benytter.

Et tema kan både være GPL og selges for penger med kommersiell støtte, slik man kan med alle åndsverk som er lisensiert under GPL. Problemet ligger derimot i at det er WordPress-utviklerne som krever dette, og at dette kravet ikke nødvendigvis harmonerer med tema- eller innstikkutviklerens egne ønsker og behov. WordPress-utviklerne eliminerer ironisk nok dermed friheten GPL er ment til å ivareta, ved å tvinge frihet på andre. Man eliminerer deres frihet til å selv la utviklerne velge hvilken lisens deres tema eller innstikk skal leveres under.

Jeg mener at det må være opp til temaets eller innstikkets utvikler å selv kunne velge lisens til åndsverket de selv har utviklet.

Er det juridisk holdbarhet i kravet?

Så vidt meg bekjent foreligger det ingen rettskraftige dommer tilknyttet denne problematikken. Det vil si at når man ikke har noen dom å kunne lene seg på, vil det enn så lenge være juridiske tolkninger som avgjør hva som er rett og galt. I denne anledning har jeg snakket med en av Norges fremste eksperter på lisenser for fri programvare, advokat og partner Kristian Foss i Gille Advokater, som sier

— Dersom de fungerer gjennom et definert og alminnnelig tilgjengelig API er det mye som taler for at det ikke underlegges GPL. Er det det snakk om dynamisk lenking, må det vurderes nærmere. Er det statisk lenking er det mye som taler for at GPL vil underlegge seg innstikket eller temaet. En tilleggsmodul kan raskt tenkes å bli omfattet av GPL. Så, som så ofte i jussen (til folks store frustrasjon), må det foretas en konkret vurdering, før det kan konkluderes.

Modularisering og standardiserte lisenser

Slik jeg ser det vil det være langt mer attraktivt å la utviklerne selv velge lisens for deres tema eller innstikk. Man kan enten gjøre dette ved å la utvikleren velge helt fritt, eller velge blant et sett standardiserte lisenser, for eksempel en liberal lisens (typisk BSD), restriktiv (typisk GPL) eller lukket (typisk PEL/PUL — Proprietary Extension/Use License).

Vi har mange eksempler på hvordan slik modularisering er en svært god forretningsmodell. Blant annet er dette en modell benyttet av norske eZ Systems AS for deres publiseringsløsning eZ Publish (som for øvrig er et high-end-produkt i samme kategori som WordPress).

En bedre forretningsmodell

Problemets kjerne, slik jeg ser det, er at WordPress mangler en robust forretningsmodell for utviklere og partnere som ønsker å drive forretning på WordPress. WordPress ble, som mange andre løsninger, publisert på nettet og utviklet til å bli en svært populær plattform, uten at man hadde profitt i tankene da man startet prosjektet. Fraværet av tanker om profitt i starten har nå vokst seg til å bli et så stort problem at det i verste fall kan føre til frafall av bidragsytere i det omkringliggende nettsamfunnet, og at folk heller velger alternativer til WordPress hvor vilkårene er klarere og mindre diktatoriske enn hva WordPress-utviklerne fremstiller dem til å være.

Konklusjon

Slik jeg ser det har WordPress-utviklerne ingen belegg for å kreve verken temaer eller innstikk lisensiert under GPL. I stedet for å true med represalier i nettmiljøet foreslår jeg at de heller konsentrerer seg om å la utviklerne velge blant et sett standardiserte lisensier. I tillegg må de utvikle en bedre forretningsmodell for samarbeid med bedrifter som ønsker å tjene penger på WordPress og omkringliggende tjenester.

by Martin Bekkelund atJune 22, 2010 08:16 AM

June 21, 2010

Martin Bekkelund

Gjesteblogger?

Det kommer kanskje ikke som noen overraskelse for den trofaste leser at jeg har en del venner som er mer enn gjennomsnittlig opptatt av det samme som meg, for eksempel teknologi og politikk.

Jeg har i lengre tid vurdert å åpne for noen få, håndplukkede gjestebloggere, som deler sin innsikt en gang i måneden eller kvartalet. Spørsmålet er om det er noe du som leser vil sette pris på? Synspunkter mottas med stor takk!

by Martin Bekkelund atJune 21, 2010 09:19 AM

June 18, 2010

Martin Bekkelund

8 steg til bedre tekster

Hva skiller en god tekst fra en dårlig? Hva trekker lesere og gjør at tekstene dine blir lest? Her får du 8 tips som hjelper deg til å skrive bedre tekster.

1. Sett deg et mål

Første skal du definere et mål. Hva vil du oppnå? Legg lista høyt og tenk på det Petter Stordalen sier om mål:

Mål skal være som fjell; store og tydelige!

Tidligere i år skrev jeg en artikkel om e-valg. Mitt mål er at e-valg ikke blir innført i Norge på nåværende tidspunkt. Min ubeskjedenhet tror at jeg har lykkes langt på vei.

Med denne artikkelen ønsker jeg å hjelpe deg til å bli bedre i å formidle ditt budskap.

2. Hvem er målgruppen?

Etter å ha satt deg et mål må du finne ut hvem som tar beslutninger om det du ønsker å oppnå. Hvem er målgruppen for din artikkel?

Hagle vs. rifle

Å skrive uten å tenke på hvem målgruppen er, blir som å gå på jakt uten å vite hva du jakter på. Kanskje dukker det opp en elg, en rype, eller kanskje en rev. Vet du hva du jakter på er det langt enklere å ta med riktig våpen for jakten. Slik er det også når du skriver.

Se for deg målgruppen

Se for deg din målgruppe. Det kan for eksempel være stortingspolitikere. Se så for deg tre navngitte personer i denne målgruppen og skriv en tekst du er sikker på at de forstår. Kjenner du ingen i målgruppen, men allikevel vil adressere en artikkel til dem, gjør du litt undersøkelser og forestiller deg hvordan de er.

Denne artikkelen har andre bloggere som målgruppe. Jeg ser umiddelbart for meg en håndfull mennesker jeg vet sitter inne med mye god kunnskap, som jeg vil hjelpe til å formidle denne kunnskapen.

3. Overskrifter som selger

Overskrifter selger. Enten vi liker det eller ei er det en grunn til at løssalgsavisenes salg i stor grad avhenger av overskriften på forsiden. Slik er det også med tekster.

Overskriften skal tydelig fortelle leseren hva artikkelen handler om. Gjør den kort og gjerne spissformulert, provoserende men troverdig. Bruk gjerne bokstavrim.

4. Ingress

En ingress er en sammenfattende innledning til artikkelen, der de viktigste poengene blir framhevet. Ingressen skriver du med fet tekst og den skal aldri være lenger enn maks tre linjer eller tre setninger, avhengig av hva som kommer først.

5. Bruk bilder

Bruk bilder, grafikk eller illustrasjoner som forenkler budskapet. Pass på at de ikke virker mot sin hensikt hvis de kun brukes som illustrasjoner uten direkte tilknytning til temaet. Omtaler du tall og statistikker i artikkelen, vis det med tabeller eller grafer.

6. Del opp artikkelen

Der det er mulig bør du benytte underoverskrifter, lister, tabeller, bilder og andre elementer som visuelt deler opp artikkelen din. Å lese mange, lange avsnitt på skjerm er en tung oppgave og du risikerer at leserne heller skumleser artikkelen din, fremfor å lese den grundig.

7. Gjør deg flid med teksten

Unødvendig å si, men teksten skal uten unntak gjennom stavekontrollen. Få ting virker mer amatørmessig enn skrivefeil. Det får deg også til å fremstå som om du mangler respekt for leserne, at du ikke tar oppgaven alvorlig. Hvorfor skal de da ta deg alvorlig?

Tomme ord og adjektiver

Når du skriver bør du også forenkle språket ditt så mye som nødvendig. Kutt ut tomme ord som , da og men, samt unødvendige adjektiver som svært, fantastisk, enormt og liknende. Samtidig bør du også være klar over at adjektiver er en god hersketeknikk, men bruk dem med forsiktighet.

Faguttrykk og finurligheter

Forstår målgruppen det du har skrevet? Husk at du er fagpersonen og har full innsikt. Det har ikke målgruppen, men det er det du skal gi dem med din artikkel. Polemikk og finurligheter jager leserne vekk. Hold deg til det enkle, og det er lov å overforenkle.

Jeg skriver artikler omtrent som følger:

  1. Skriv ned alle poeng i stikkordsform.
  2. Skriv hele teksten ferdig rundt hvert stikkord.
  3. Kjør teksten igjennom stavekontrollen.
  4. Les manuell korrektur, stavekontrollen tar ikke alt.
  5. Skriv om eller fjern dårlige setninger.
  6. Fjern tomme ord og adjektiver.
  7. Fjern tung og uforståelig fagtekst.
  8. Fjern polemikk og finurligheter.
  9. Kutt tekst, skriv om, kutt tekst, skriv om, osv.
  10. Gjenta punkt 5-9 inntil du er fornøyd.
  11. Få andre til å lese teksten.

8. Fatt deg i korthet

Respekt for andres tid innebærer at du fatter deg i korthet. Når andre avser tid til å lese det du skriver, bør du også minimere tiden de bruker. Jeg har tidligere skrevet om hvorfor det er viktig at du fatter deg i korthet og er rett på sak, og mange store tenkere har uttalt seg om viktigheten av å fatte seg i korthet.

Skriver du lange tekster bør du være sikker på at målgruppen er så interessert at de ikke faller av underveis. Du kan også skrive føljetonger, det vil si publisere flere artikler om samme tema. Slik holder du målgruppens interesse oppe, og de besøker deg igjen for å lese mer.

Ironisk nok er denne artikkelen i overkant lang, men jeg velger å tro at temaet er så aktuelt at det vekker nok interesse, i kombinasjon med poenget i punkt 6.

Alltid et forbedringspotensiale

Alle har et forbedringspotensiale, også jeg. Jeg føler sjelden at jeg lever opp til de råd jeg her gir. Det er bra, for det gir meg noe å strekke meg etter. For hver artikkel du publiserer bør du prøve å måle effekten. Hva ble bra, hva ble mindre bra, hvorfor ble det slik?

by Martin Bekkelund atJune 18, 2010 10:38 AM

A complete feed is available in any of your favourite syndication formats linked by the buttons below.

[RSS 1.0 Feed] [RSS 2.0 Feed] [Atom Feed] [FOAF Subscriptions] [OPML Subscriptions]

Subscriptions