Dopplrs farge-algoritme

At literatur er fargerikt er gitt. At enhver tekst også kan få sin egen, ufravikelige, farge i web-vennlige heksadesimalfarger var derimot en utenkt tanke i mitt hode. Fram til for en tid tilbake, da jeg snublet over optional.is som tok opp materiale (som nå er offline, lenken til optional.is funker dog) som Dopplr’s farge-algoritme.

Tanken er like enkel som den er genial:
$hex_color = sub-string(md5($original_string), 0, 6)
Ta en rekke bokstaver («Oslo», «Roser er røde», ect), lag en md5-hash av denne strengen, spar på de første seks karakterene i denne hash’n og legg på et numbertegn først i den forkortede hash’n. Da har vi en heksadesimalfarge som alltid vil være den samme, med samme streng som input. På den måten vill fargen for «Oslo», «Bergen», «Risør» og «Eirik Stavelin» være ulik hverandre, men alltid den samme uansett hvem som beregner den.

Her er et skjermbilde av noen sitater kjørt gjennom algoritmen, med fargen brukt som bakgrunnsfarge:

dopplrs farge-algoritme i bruk på sitater
Sitater kjørt gjennom farge-algoritmer

For at tekst skal kunne stå samme med fargen sin trengs det kontrast, og også dette har optional.is tenkt ferdig for oss: maximum-color-contrast.
Blant løsningen foreslått fikk jeg best resultater med 50%-kontrast-løsningen, og har brukt den.

Her er snuttene i PHP:
// dopplr color algorithm from: http://optional.is/required/2010/12/13/hls-world-map/
function str2hex($string){
$hex_color = substr(md5($string), 0, 6);
return "#".$hex_color;
}

// Contrast function: http://optional.is/required/2011/01/12/maximum-color-contrast/
// 50% function
function getContrast50($hexcolor){
return (hexdec($hexcolor) > 0xffffff/2)?'black':'white';
}

I javascript ser ting omtrent helt likt ut:
function str2hex(string){
var hex_color = md5(string).substring(0,6);
return "#"+hex_color;
}

men fordrer da et en implementering av md5 er tilgjengelig. Jeg brukte denne etter stackoverflows brukeres anbefalinger.

CSS Diner på Norsk

CSS Diner er et lite spill som forsøker å lære deg CSS selektorer. Spillet gjør dette ved å bytte ut vanlige HTML-tagger (som <div>, <span>, <ul>, osv) med epler og appelsiner, og slik muligens senke terskelen noe for deg som er ukjent for CSS. Å kunne dette er spesielt nyttig fordi denne syntaksen brukes i flere teknologier enn bare CSS, som jQuery, BeautifulSoup og mange andre. Å kunne hente ut ulike deler av et dokument er rett og slett ganske nyttig.

CSS Diner er laget av Luke Pacholski aka @flukeout. Som et eksperiment har jeg oversatt spillet, og du finner en Norsk versjon på stavelin.com/css-diner/.

Screen Shot 2014-04-03 at 16.03.39

Klarer du alle 26 brettene? – Prøv selv!

Samstemmer.net – unoter eller harmonisk taktfasthet?

Samstemmer.net er en prototype på en webapplikasjon som tilrettelegger for analyse av data fro Stortingets datatjeneste (tilgjengelig under Norsk lisens for offentlige data (NLOD)). Websiden oppdateres automatisk når ny data dukker opp i Stortingets data API. Slik nettsiden ser ut i dag er et førsteutkast, basert på leking og utforskning av datasettet. Man vet ikke alltid hva man ønsker seg før man ser det. For å virkelig skapenytteverdi for en bestemt gruppe bør denne brukergruppen selv definere hva som er riktig, viktig og nyttig. Gruppen jeg ønsker å fokusere på er journalister som dekker stortingspolitikk, og neste skritt i prosessen er i intervjue stortingsreportere for å fange opp deres ønsker og behov.

Nytteverdien for brukeren er løpende oppdatert bakgrunnsinformasjon på representanter og aktivitet i Stortinget, basert på den data som eksponeres i APIet. Per i dag utfordrer prototypen med automatisert tilrettelegging av politiske analyser, så vell ved å introdusere en spesialdesignet statistisk metode for å analysere voteringsdata som er noe mer avanser enn hva vi normalt ser bruk i Norsk politikk i pressen og på nett. Ved å fokusere på kvantitative metoder kan websiden holdes oppdatert uten menneskelig interaksjon.

Potensialet for å slå gjennom hos mange brukere er ganske liten, og heller ikke målet. Målet er å nyttiggjøre denne datasamlingen for spesielt interesserte (journalister og for politikk-hoder), denne gruppen har igjen gode muligheter til å nå gjennom til mange.

Journalistikkens samfunnsøkonomiske nytte er omstridt. Dragkampen mellom ”børs og katedral” er både en nøtt for pressen så vell som publikum. Det som kanskje er noe tydeligere er at nyhetsbransjen er inni i en dårlig periode, og trenger innovasjon og effektivisering. Bruk av åpne data og datastøttede metoder kan bidra her. Land som ikke har en fri presse, er land vi ofte helst unngår å sammenlikne oss med.

Siden er designet for å være enkel å navigere og forstå. Enkelte resultater krever noe kunnskap for å tolke, en kostnad som jeg mener er verdt potensielle misforståelser.

Samstemmer.net er ikke ferdig, det er en prototype som enda ikke har noen kravspesifikasjon eller som er brukertestet. Den er likevel fullt funksjonell. Koden er fri og finnes på github hvis noen har alternative ideer eller bruksområder.

Samstemmer.net er et skritt på veien mot en visjon. En visjon i Hans Roslings bilde om et faktabasert syn på verden, en visjon om et Dashboard som viser ”samfunnets status quo” basert på data, og som tilrettelegger for analyser som setter oss i stand til å ta gode rasjonelle valg som informerte borgere.

samstemmer.net from Eirik Stavelin on Vimeo.

Skattelister slik du aldri har sett dem før

Hvordan skattelistene i Norge har blitt brukt har rettvis blir kritisert. Det betyr ikke at offentlige skattelister er noen dårlig idé, det betyr bare at de ideene som ble tatt i bruk i liten grad fulgte intensjonene om et åpent samfunn. Even Westvang i Bengler har en helt annen idé, og viser oss noe du neppe har sett før på denne måten: ved å se sjekkeskattelistene mellom to år viser prosjektet hvordan folk flytter rundt i Norge. Det må da sies å både værer vakrere og nyttigere enn å vite hvilken kjendis som har høyest inntekt?

Kompromissløs prinsippfasthet rundt øyeblikkelig respons

.. er langt mer underholdende og fascinerende enn overskriften kan tyde på. Og ikke nødvendigvis skadelig.

Min tro på prinsippfasthet dalte etter å lese Ibsens Brand, med hans harde «intet eller alt«-tilnærming til moral. Ikke like alvorlig, men i ettertiden en snerten parodi/kritikk på byråkratiets firkantethet (aka prinsippfasthet?) er fogdens «Jeg gjør bestandig og min pligt, men altid indom mit Distrikt«. Jeg er med andre ord skeptisk til fundamentalister. Alt har to sider, minst.

Men så var det Bret Victor da. Bret har valgt et helt annet prinsipp, og blir neppe omtalt som fundamentalist. Han er likevel stålsatt i sin misjon; skapere av digitale medier må ha øyeblikkelig respons på det de jobber med. Både programmering, animasjon og ingeniørkunst går under lupen og eksemplifiseres med konkrete prototyper for produksjon i et digitalt miljø. I en video på en snau time forklarer han (til framtidige dataingeniører kan det høres ut som) hvorfor og hvordan hans, og andres, prinsippdrevne prosjekter kan eller har endret verden.

Bret Victor – Inventing on Principle from CUSEC on Vimeo.

Jeg er fascinert!