Varför just internet?

Fler och fler jag pratar med börjar försiktigt uttrycka samma sak. Var internet verkligen en bra grej, allt sammantaget? Till viss del handlar det säkert om att den rosenkindade optimismen inför det nya har lagt sig, men det finns också något mer där. En felslagen förväntning som vändes i sin groteska motsats. För att förstå mekanismerna måste vi ta oss tillbaka till typ 2004–2010. I princip är det här ett försök att i dialog med Johans text om Sverigedemokraterna och de vita kränkta männen svara på frågan – varför just på internet? Varför just “nät” i ordet “näthat”?

Under den här perioden fanns det en nymorgnad optimism inför Nätet, inte helt olik den på 90-talet. Twitter skulle snart slå igenom (2007) och “web 2.0” lanserades som begrepp (2004) för en mer användargenererad och öppen webb (åtminstone 2012–2014 pratade man i och för sig på bibliotekarieutbildningen i Uppsala ibland om web 2.0 med samma optimism, ett utslag av en spännande Gibsonsk framtidsförskjutning). Idén var enkel. Man hade observerat under slutet av 90-talet och första halvan av 00-talet att webben var ett fantastiskt verktyg för kommunikation och organisation. Entusiaster kunde mötas i webbringar, och senare forum, mailinglistor och så vidare, för att samordna sig. Nya saker, tankar, idéer, uppstod. Att tänka sig att detta skulle leda till en fördjupad demokratisering och större delaktighet människor emellan är egentligen inte långsökt.

Nu blev det inte så. Webben idag är närmare en informationssoptipp av vilseledande marknadsföring, desinformation – och kanske värst av allt: det  som en bit in på 10-talet började kallas för näthatet. Varför?

Om man karakteriserar det tidiga internet så slås man av två egenskaper. För det första så hade det en hög tröskel för att börja kommunicera, och för det andra så fanns enorma förstärkningseffekter (tillgång till hela världen – snabbt) efter att man tagit sig över denna tröskel. Detta förklarar varför webben och internet hade en viss självmoderering – för att få dit något krävdes så mycket arbete att det som hamnade där (och hade aktiva deltagare) också hade ett visst värde för någon, antingen för att det handlar om att tillgodogöra sig faktiska bruksvärden (vilket förklarar piratkopieringens blomstringstid), eller för att man tillhörde en särskild intressegrupp som man inte kunde få tillgång till utan webben.

Men den typen av höga trösklar är inte förenlig med den idé om demokrati som fanns under web 2.0-eran. Därför var en viktig process på 00-talets andra hälft att sänka alla trösklar för deltagande – till exempel genom att allt och alla plötsligt fick kommentarsfält. Och i kommentarsfälten växte sedan det som kom att bli näthatarna, men också charlatanerna, kvacksalvarna, antivaxxarna och så vidare fram. Med andra ord: exakt den process som skulle ge en ökad demokratisering gav istället kaos, vansinne, folkförvirring och ökad förföljelse av redan utsatta grupper. Men kanske viktigast av allt: den önskade effekten av ett mer deltagande och demokratiskt samhälle uteblev i stort sett helt.

En rimlig slutsats är alltså att sänkta trösklar är dåligt, inte bra. När man sänker trösklarna för organisering så kommer organisering ske för mindre och mindre värda saker, och till slut kring de lägsta mänskliga egenskaperna; hat, känslan av att vara förfördelad och så vidare (se Johans text om varför just dessa känslor fanns i stora och väldigt specifika befolkningslager under just den här perioden). Och vad värre är – lynchmobbar på internet kan vara i stort sett beständiga när de väl nått kritisk massa, eftersom de i princip inte går att skingra. Och när den processen är igång kommer den att fortsätta föda sig själv och skapa en beständig mobb.

Det här är vad som händer när man inte designar saker som en enhet (eller: fel som min dator har)

Man kunde kanske tro att det här med att vara Expert på Datorer™ leder till att man slipper datorproblem. Just nu kör jag Debian, a.k.a. ett operativsystem som premierar ett Fritt Val™. I princip funkar det så här: man får en byggsats med en miljon komponenter. Av dessa får man välja ihop sitt eget system.

Möjligheterna är oändliga o.s.v. – vilket naturligtvis innebär att just ditt system aldrig har testats förut. För närvarande har mitt (bl.a.) följande problem:

  • Det är fult. Strykfult.
  • Youtubevideo laggar i högre upplösningar. Svårt till omöjligt att veta varför, men datorn är garanterat inte för långsam.
  • Efter en uppdatering slutade min tredje musknapp att, eh, finnas. Den slutade också att göra det jag hade programmerat den till. Jag vet inte ens vem jag ska klaga på angående detta.
  • När jag scrollar större massor av text eller bild laggar det också.
  • Om jag har startat om datorn tillräckligt många gånger kommer den vilja kontrollera att hårddisken inte har gått sönder. Man får ingen bekräftelse på att detta är vad som händer, förutom att det tar 20 minuter att starta datorn, om man inte manuellt ändrar i inställningarna som kärnan får när datorn startar. Däremot babblar den glatt på om alla möjliga andra saker som händer.
  • I vanliga fall tar det fem minuter att starta datorn. Min uråldriga laptop startar på 30 sekunder.
  • Ibland startar server-versionen av bittorrentklienten Transmission, trots att jag har stängt av den på fler än ett sätt. När den gör det fuckar vanliga Transmission ur på helt oförutsägbara sätt. Det var kul för mig att felsöka detta.
  • När jag klickar på terminalen för att jag vill ha en terminal får jag min terminal som redan är igång (och som garanterat är upptagen). För att få en ny (d.v.s. det jag egentligen vill) måste jag föra musen upp till menyn längst upp – utan att råka passera över ett annat fönster – klicka, och välja “New terminal”. Passerar musen ett annat fönster måste jag först föra musen tillbaka till terminalen och börja om.
  • Systemets idé om att öppna en fil, t.ex. från Firefox nedladdatlista, är att visa den i filhanteraren. Som tar fem till tio sekunder att öppna och inte ger någon som helst bekräftelse på att den gör något innan dess. Sen kan man dubbelklicka på den och öppna den i vad man nu skulle öppna den i.
  • Steam funkar inte. Den säger att jag inte har drivrutiner för 3D-acceleration, men det har jag. Även de konstiga specialbiblioteken för 32-bitarsprogram som av någon anledning inte installerar sig själva trots att de behövs.
  • När datorn startar har jag typ en och en halv minut på mig att skriva in lösenordet till hårddisken, annars antar datorn att hårddisken är trasig och hamnar halvvägs in i ett återställningsläge som inte går att använda eftersom den samtidigt försöker fråga efter lösenordet till hårddisken. Återställningsläget får halva inputen, lösenordsprompten får andra halvan. Ingen av dem fungerar (ens om man lyckas skriva in lösenordet korrekt). Inte ens ctrl-alt-del funkar, utan man måste starta om med knappen.
  • Det finns ingen musikspelare som inte kraschar. Det finns däremot två till fem – beroende på vad man menar med ordet – som gör det. Ingen verkar följa upp buggrapporterna.

Det kanske är dags att byta system.

Displaying block quotes side by side with LaTeX tabular

LaTeX split quoteYou can use this command:

\newcommand{\multilangquote}[3]{
\begin{quotation}
  \begin{tabular}{p{0.5 \linewidth} | p{0.5 \linewidth}} 
  #1 & #2 
\end{tabular}
\newline\lineskip #3
\end{quotation}}

Invoke it like this: \multlilangquote{LONG TEXT HERE}{LONG TEXT HERE}{\cite[p. XX]{yourCitationKeyHere}} to get a nice two-column view with a vertical line dividing the quote blocks and a nice reference below.

Just be careful with really, really long quotes: tabular doesn’t handle page breaks. But then again, if your block quote is more than half a page long, maybe it shouldn’t be there in the first place.

Also, it currently doesn’t handle paragraph skips at all.

Biblioteken och licensavgifter – inget har hänt de senaste 80 åren

I 1934 (vol 19) års Biblioteksbladet samt år 1935 (vol 20) och i en del uppföljande årgångar diskuterades ett förslag på avgift för boklån från Författareföreningen.

Diskussionen började i artikeln “Boklånsavgiften”  av Knut Tynell (vol. 19 enl. ovan), men  fortsatte i ett antal senare nummer, med bl.a. det officiella betänkandet “Biblioteken och författarna” (vol. 20, s. 301–304). I princip föreslår författareföreningen att biblioteken ska tvingas att betala en platt licensavgift per utlån (föreslaget pris var 2 kr) och att en central “upprättas under statens kontroll” (vol. 19, s. 253) för att “registrera de inkomna uppgifterna” samt “kortför[a] de författare…som äro representerade på biblioteken.” (s. 253), d.v.s. exakt det som har hänt för e-böcker, frånsett att “centralen” är bortom statlig kontroll.

De argument som används för båda sidorna är intressant nog samma som i alla debatter om  s.k. intellektuellt ägande sedan…well, 30-talet. Det gamla “författarens rätt att få betalt liksom alla andra yrkesmän [sic!]” (s. 247) i kombination med att boklån antas leda till en minskad försäljning. Vad är då källan till detta påstående? Jo, man har gjort en “bokhandelsenquête” (jag var bara tvungen att använda ordet!) där cirka hälften av landets bokhandlare svarat att de vill ha en lånavgift som ett “obetingat erkännande av bibliotekens skadliga inverkan på bokhandelsrörelsen” (s. 248).

Intressant nog finns också en rent moralisk dimension i förslagen som påminner starkt om den som finns kring immateriellt ägande idag. Författareföreningen menar att man får betala för föreläsningar, teater och bio, konserter etc etc, och att det därför är “oriktigt” att man får låna böcker gratis. Och – och det här är det spännande – man gör en jämförelse med Stim! (s. 249).

Motargumenten är också de vanliga. Att biblioteken gör en kulturgärning och att det inte går att styrka att bara för att man kan låna så köper man inte (– kanske tvärt om!). Specifikt för biblioteken nämns också att bibliotekens inköp kan finansiera smalare utgivning. Man menar också att gratis – tvärt emot vad immaterialrättshetsare då och nu säger – är en viktig grej, eftersom det ger tillgång till kultur för mindre bemedlade. Man menar också att administrationen kring utbetalningarna och avgifterna skulle bli orimligt hög (s. 252).

Fascinerande nog har samma system nu lurats på folkbiblioteken för e-böcker – men tack och lov utan att låntagarna behöver betala.

Läslista 6×Kul

I februari 2013 började fenomenet humor diskuteras i samband med två mediala händelser. Dels var det introt till oscarsgalan där Seth McFarlane framförde sången »We Saw Your Boobs« och dels var det en sketch där sången »Kvinna och man« framfördes med den fiktiva artisten Bizex i Melodifestivalen.

Eftersom ingen (jag själv inkluderad) minns något längre så har jag här återsamlat lite olika texter kring temat humor.  Texterna är inte nödvändigtvis representativa för händelserna.

»›Kul‹ som universell ekvivalent« (Copyriot, april 2010)

Denna korta text är egentligen själv en länksamling. Framför allt handlar den om »kul« som ett värde som aldrig ifrågasätts och som en hop döda affekter till vilket allt annat kan reduceras.

Av de senare texterna att döma kan vi sluta oss till att om vi tidigare hade pratat om kul som ett tomt värde som aldrig behöver försvaras så började vi definitivt att diskutera kulets (kuls?) konsekvenser i februari 2013.

»Medan flocken apar sig« (Sydsvenskan, februari 2013)

I slutet av februari 2013 recenserade Anders Mildner boken Epic Fail – Bad Art, Viral Fame and The History of the Worst Thing Ever av Mark O’Connell. Recensionen (och boken) diskuterar fenomenet »epic fail«, tendensen hos nätkulturen att göra folks misslyckanden till kult och dess konsekvenser för människorna bakom fenomenen.

»Humor på utsatta gruppers bekostnad utgör en del av förtrycket« (Antropomorf, februari 2013)

Det som kännetecknade både »Bizex« underhållningsvideo (se ovan) i Melodifestivalen och McFarlanes öppningsnummer till oscarsgalan (se nedan) var en ironisk (cis-)sexism, transfobi och bifobi. Signaturen @dreadsnallen redogjorde i det länkade inlägget för kontexten kring låten och varför den här helt vidrig.

Nackhåren reser sig fortfarande när jag tänker på det. Det är verkligen ett så bra exempel på hur man kan göra någons hela existens till ett skämt, i TV. Och komma undan med det.

»Låt mig presentera: höjden av humor i västvärldens underhållningsindustri 2013!« (Zettermark med Z, februari 2013)

Sofia Zettermark sammanfade det tydliga budskapet från oscarsgalans öppningsnummer: »Så länge det täcks av den tunnaste tänkbara hinna av påstådd humor, är det okej att reducera kvinnor till sina bröst, år 2013«.

Kanske kommer den patriarkala historieskrivningen säga att det var feministerna och PK-hetsarna som dödade humorn, men sanningen är att det var patriarkatet självt som drev dess potential som maktmedel till den punkt där det blev helt omöjligt att inte se den för vad den alltid var.

»Fun« (Ian Bogost @ UX Week, september 2013)

Ian Bogost, spelforskare och filosof, dök upp på en mässa för gränssnittsdesigners. Spel är nämligen den nya heta inspirationskällan för konstruerare av datorprogram. Plötsligt ska vi lära oss, skriva och träna med små gränssnitt och upplägg lånade från spelvärlden.

Bogost menar att spelvärlden och alla andra helt har missat vad kul egentligen innebär. Han börjar i en definition som är nära den i inlägget från Copyriot 2010, där »kul« är en krydda som man likt Mary Poppins ska sockra tråkiga saker med. Från det rör han sig mot en annan definiton av kul, där kul inte är något externt man finner i sig själv, utan något som kommer av att ta ett absurt system på allvar. Kul, menar Bogost, kommer inte av obegränsad frihet, utan snarare av begränsningar. Annars skulle vi spela golf genom att gå fram och släppa bollen direkt i hålet.

 

Filer är usla som abstraktioner för data

En fil är:

  • Inordnad i en hierarki (katt.jpg »finns« i mappen »bilder«, som finns i mappen »dokument« som…)
  • Direkt lagrad på ett fysiskt medium
  • Passivt läsbar; filen är alltid »stilla« på lagringsmediumet
  • Den minsta nämnaren för åtkomstkontroll, metadata o.s.v. i operativsystemet

Nästan allt det här är direkta effekter av att man en gång hade lite lagringsutrymme och begränsad kapacitet. Man ville helt enkelt väldigt exakt kunna kontrollera vad som fanns på ett specifikt system. Som metafor för databehandling är filbegreppet ganska värdelöst eftersom:

  • Vi tänker ofta på entiteter som inkluderar flera »filer«, t.ex. ett musikalbum. Att lagra dem i en »mapp« är inte helt tillfredställande.
  • Filer som lagras på externa media (internet, USB-stickor etc) slutar »finnas« för datorn när desas kopplas ur/ner, vilket är märkligt. Vi har ju fortfarande dessa filer, de bara är inte tillgängliga.
  • Ofta är data som man vill söka på, dela o.s.v. mindre än en fil, t.ex. ett stycke i en text eller en sekvens ur en film. Det vore mycket användbart att kunna låsa/skrivskydda/spärra/dela delar av dokument för/med andra användare.
  • Dagens databehandling fungerar varken som en stordator med klienter (70-tal) eller som en hemdator i vilken vi har alla våra filer (sent 80-tal, 90-tal), utan som ett ständigt hoppande mellan olika enheter.
  • Metadata är många gånger lika viktig som data, men passar illa i en fil/mappvärld.
  • Varför skulle jag ens behöva bry mig om var mina resurser är? Det viktiga för mig är ju om de är eller kan bli åtkomliga mer eller mindre snabbt för mig (och möjligen hur, om det handlar om att hitta ett USB-minne i någon låda)!

Av de här anledningarna är också »fildelning« helt värdelöst. Att dela filer är en alldeles för låg abstraktionsnivå!

Red Faction: Armageddon är (typ) allt som är fel med videospelskulturen

Red_Faction_Armageddon_Game_Cover
Omslagsbilden för Red Faction: Armageddon. Jämför omslaget med tidigare spels (nedan), och notera hur det röda blivit blått och den approprierade och helt tömda kommunistiska estetiken försvunnit!

På sistone har jag spelat Red Faction: Armageddon. Eller ja, försökt. Jag har tidigare spelat både Red Faction, Red Faction II och Red Faction: Guerilla. Här kommer en kortare recension (milda spoilers för alla dessa spel kan förekomma), och kommentar till seriens utveckling.

Red_Faction
Omslaget till det första Red Faction-spelet. Notera den något nedtonade kommunistiska estetiken och den ikoniska hammaren med hackan. Också: skämt om Trotskij här.

Alla dessa spel utspelar sig på Mars, där en mänsklig koloni sedan hyfsat länge etablerats. I det första spelet (2001) är man en vanlig gruvarbetare som en dag får nog och börjar slåss tillbaka mot det fascistiska gruvföretaget Ultor, som utför diverse oetiska experiment på Mars, dit de jordiska lagarna inte når. Man ansluter sig till motståndsrörelsen Red Faction, och därifrån fortsätter spelet ungefär som en vanlig förstapersonsskjutare. Uppföljaren (2002) följer ett liknande upplägg, men introducerar den fascistiska militärorganisationen Earth Defence Force (EDF) som återkommer i senare spel.

I rebooten Red Faction: Guerilla (2009) spelar man åter igen en vanlig diversearbetare som efter EDF mördar hans bror bestämmer sig för att motvilligt ansluta sig till motståndsrörelsen.

Uppläggen i spelen har skiftat över tid: från FPS (Red Faction och Red Faction II) till tredjepersonsshooter. De första två spelen är också relativt linjära på ett otäckt trendkänsligt sätt; det första spelet är linjärt ungefär som Half-Life eller andra genreklassiker, medan det senare visserligen också är linjärt, men introducerar ett poängsystem som påverkar vilket av flera möjliga slut spelet får.

Även de båda uppföljarna, Guerilla och Armageddon (2011), är kusligt trendkänsliga. Guerilla är i stort sett exakt samma spel som Prototype (2009), men i en annan miljö: du springer runt på en stor karta, får olika uppdrag, har sönder olika saker, gömmer dig för olika militärer när du har haft sönder för mycket saker och låser upp nya bonus- och huvuduppdrag genom tidigare nämnt sönderhavande. Precis som i alla free roam-spel dras båda spelen med enorma transportsträckor och problem med berättandet, även om Prototype löser det mycket bättre än Guerilla med sitt »web of conspiracy« som uppdagar kontexten bit för bit när man äter upp personer med speciella kunskaper.

Till att börja med så är det mycket intressant hur Guerilla hanterar den etiska frågan. Spelet är i stort sett en terrorismsimulator. Man springer helt enkelt runt och förstör olika saker, från monument och militärbarracker till broar och lunchresturanger där många soldater ur ockupationsmakten äter. Det i sig har jag inga moraliska problem med – terrorism är en inte helt ovanlig taktik för motståndsrörelser som slåss mot mycket tyngre beväpnade ockupationsmakter.

Problemet är hur våldet trivialiseras i spelet. Alex Mason, huvudkaraktären, liknar mer och mer en psykopatisk mördarmaskin allt eftersom spelet utvecklar sig. Han visar aldrig några känslor, inte inför alla hundratals fiender han mejar ner, inte för civila, inte egentligen inför motståndskampen och inte inför sina kamrater, som dessutom har en mycket tillbakadragen roll. Red Faction verkar inte så mycket vara en gerilla som en ensam galning med väldigt mycket sprängmedel och en gigantisk slägga.

Obehagligast blir det när man i ett uppdrag tillsammans med två kamrater ska kidnappa en militärtjänsteman från EDF (i praktiken: ta sig och två kamrater till en bil och döda alla som vaktar den för att sedan köra runt med den och undvika fiender). När man väl fångat tjänstemannen (jag tror att han är typ överste) får man över radion höra hur ens kamrat torterar honom, uppenbart mentalt störd efter att själv ha torterats av honom och mer än något annat ute efter hämnd. Så mycket att hon med uppenbart nöje fortsätter att tortera honom även efter att de har fått ut all information de vill ha. När de är klara dumpar de bilen med tjänstemannen i utför ett stup.

Allt detta sker med ungefär samma känslomässiga reaktioner från alla inblandade som om man hade dammsugit ett golv. Det blir inte hellre bättre när man närmare slutet av spelet hittar en s.k. »nanoforge«, som omedelbart byggs in i ett gevär så att det nu skjuter kulor som långsamt smälter ner det man skjuter dem på (en bro, ett hus, en pansarvagn, eller en person). Att skjuta en EDF-soldat och se honom i panik långsamt lösas upp i atomer, samtidigt som Mason likgiltigt tittar på är inte bara tveksamt, det är direkt kusligt.

Red_Faction_2_Front
Red Faction II: Det sista FPSet i serien (hittills). Också troligen peak kommunistisk image. Jag minns verkligen ingenting av spelet, så möjligen har jag inte ens spelat det.

Datorspel är mer än alla andra mediaplattformar etiska, helt enkelt för att de går ut på att (be)döma spelaren. Spelaren får hela tiden poäng för sina handlingar, och dessa poäng är ett moraliskt omdöme. Problemet är inte att det förekommer våld eller att det är grovt, utan att våldet trivialiseras och motståndarna (och huvudpersonen och alla allierade och civila) avhumaniseras.

Det är också intressant hur flytten från FPS-formatet till tredjepersonsformatet har gått till i Red Faction-serien. Ett spel i förstapersonsperspektiv måste nästan ha en platt huvudperson, eftersom spelaren bokstavligt talat är inne i huvudet på protagonisten. Alla känslomässiga reaktioner på det som händer sker hos spelaren, inte hos karaktären. De som tydligast verkar ha förstått det här är Valve, som låter Gordon Freeman vara tyst inte bara genom hela Half-Life (2001), utan vidare i Half-Life 2 (2004). De till och med skämtar om det, och går så långt som att presentera den antagligen första förstapersonskramen i ett datorspel, ett uppenbart exempel på hur de jobbar med spelarens identifikation och känslor.

Till skillnad från Half-Life-serien har Red Faction lämnat förstapersonsperspektivet för ett tredjepersonsperspektiv, vilket också innebär en karaktär som pratar betydligt mer och syns mer. Tyvärr innebär det inte att huvudkaraktären är mindre platt, snarare tvärt om.

Mason visar aldrig några andra känslor än tillfällig motvilja, frustration eller irritation, och det närmaste han verkar komma ett meningsfullt förhållande med någon över huvud taget är Sam, som i Guerilla är en förkortning för Samanya, motståndsrörelsens teknikexpert, och i Armageddon är utbytt mot en bärbar dator på hans arm. Att samma funktion (och namn!) kan innehas först av en mänsklig kvinna och sedan av en dator (visserligen med kvinnoröst) säger något om hur allvarligt efterblivet spelet är. Man kommer att tänka på Boten Anna.

Även själva upplägget i spelen och hur de behandlar det är pinsamt dåligt. I Guerilla yttrar det sig i att man större delen av tiden tittar på en bil skumpande genom en röd marsiansk öken på jakt efter en bas att förstöra, eller på väg hem till ett gerillaläger för att bli av med de förföljande militärtrupperna.

Red_Faction_Guerrilla_Cover
Notera hur den stiliserade hackan har blivit en hammare och fått ett mer punkigt utseende. Observera också hur Mason på bilden mer än något annat ser ut som en rövare.

I Armageddon handlar det istället om att man kryper igenom en färglös grotta, blir överfallen av ett gäng utomjordingar (som ser ut och beter sig exakt likadant som alla andra utomjordingar i ett spel, någonsin – tänk Aliens, Zerg, o.s.v.), dödar allihopa och upprepar processen igen.

Medan Half-Life-serien har rört sig mot att utnyttja hemdatorernas potential har Red Faction istället rört sig åt konsolhållet. Vilket betyder att alla vapen saknar någon egentlig känsla, mekanismerna för att sikta är synnerligen oföljsamma, och att alla detaljer har samma utseende av mjukt rundat suddiga ytor utan detaljer. I Half-Life 2 blir man ett med sina vapen och sin omgivning och vet exakt hur lång tid det tar mellan skotten i hagelgeväret, medan man i Guerilla och framför allt Armageddon bara skjuter åt det håll man tror att fienderna är, eftersom man inte ser dem mellan alla lila explosioner, gröna slemstänk och rök, alla anpassade för att synas bra på en lågupplöst TV långt borta.

Mellan Guerilla och Armageddon har dessutom förväntningarna på spelaren sänkts ytterligare. För oss utan lokalsinne kan en kompass, karta eller riktningsvisare vara välkomna, och i Guerilla är det nästan nödvändigt på grund av de stora utrymmena. I Armageddon har de dock uppgraderats till dels en Alien-inspirerad scanner som visar både mål (orange), vänner (blå eller turkos) och fiender (röda), samt vilket håll de är åt jämfört med Mason.

Men som om det inte räckte kan man också trycka tabb och få en serie pilar längsmed marken åt det håll man ska. Spelet kan med andra ord bokstavligen gå på räls, vilket måste vara det största underskattandet av ens målgrupps intelligens någonsin. Dessutom visas enorma lysande pilar ovanför alla saker man kan plocka upp eller använda, antagligen även det en eftergift till den så kallade »HD«-teven flera meter bort från soffan (jag märker att jag upprepar mig, men jag verkligen föraktar TV-apparater och personer som äger dem). Vad detta gör med all känsla av upptäckslusta och nyfikenhet hos spelaren behöver kanske inte nämnas.

Jag har haft mer kul i ett kalkylark än i de två senaste delarna av Red Faction-serien, och att indiespelet Analogue: A Hate Story (2012), som i stort sett går ut på att läsa mail, är mer underhållande, interaktivt och engagerande säger verkligen något  om spelbranchen. Alla spel tycks gjorda för tolvåriga, känslomässigt störda och rent ut sagt korkade killar. Och kom igen, det är en målgrupp som inte ens finns på riktigt!

Mot ett radikalt enkelspårigt operativsystem

Moderna operativsystem finns i två varianter: för mobiler och för »datorer«. Medan de för mobiler är kraftigt vingklippta är alla moderna datoroperativsystem i princip en hög med illa genomtänkta praktiker byggda på ändlösa travar av döda metaforer. »Fönstret«, »skrivbordet«, »pekaren« och andra abstraktioner bar blivit så bekanta att de är helt omöjliga att diskutera, och helt enkelt inkluderas av gammal vana.

Samtidigt bygger mobilens operativsystem på två lika vansinnigt otillräckliga abstraktioner: appen och tjänsten. På många sätt har Android gått långt mot ett data-orienterat datande, men det finns fortfarande mängder av problem. Till exempel kan inte mänsklig data-interaktion delas upp i någon sorts lek av olika datande »kort« som visas ett i taget och utför en syssla. Därför föreslår jag här en rad mer eller mindre radikala förslag för en annorlunda operativsystemskonstruktion (här används begreppet i sin allra bredaste bemärkelse).

Förmodligen är detta operativsystem helt omöjligt att implementera, men detsamma kan ju sägas för alla bra idéer någon någonsin haft.

Låt inte utvecklingen styras av teknokrater

Kod är kommunikation, med människor snarare än med datorer. Program är också kommunikation, men på en annan nivå. Det är viktigt att program, och speciellt operativsystem, konstrueras med någon sors psykologisk och empatisk insikt. Som programmerare är man alltid i en obekvämt dynamisk position mellan människoempati (logiskt sammanhängande metaforer, förutsägbarhet, etc) och maskinempati (optimering etc). Det är en position man måste vara medveten om, både när man skriver sin kod och när man utformar sina gränsnitt. Femtio rader lättläst kod är bättre än två rader oläslig.

Mjukvaruvärlden har hittills dominerats av tekniker med övervägande tekniskt fokus, och det är helt vansinnigt när mjukvaruanvändning är så utbrett som det är idag. Att påstå saker som »det här programmet är inte för alla« eller »koden är dokumentationen« är helt vettlöst, för att inte tala om den gamla (helt falska) klyschan att »datorer gör bara vad du säger åt dem«. Med detta menar jag inte att gränssnitt och program ska dummas ner, för det implicerar en nedvärderande och förminskande förståelse av användaren. Det jag menar är att vi måste förstå användaren och utifrån den förståelsen konstruera broar, trappor och vägar snarare än pyramider och monoliter (vad skulle Freud ha sagt?).

Vi har missförstått mångfald

Den förståelse av mångfald (som i »en mångfald av tekniska lösningar«) som fri mjukvarurörelsen (och ännu mer Open source-rörelsen), och som stora delar av alla hyfsat öppna plattformar (i bred bemärkelse här också Android och Windows) är baserad på en liberal idé om valfrihet. Mjukvaran ska samlas på en »marknad«, där upplysta konsumenter ska välja det bästa verktyget för jobbet mellan flera konkurrerande lösningar.

Problemet är att det aldrig fungerar så här, och att en dålig lösning för uppgiften oftast är mycket, mycket bättre än två dåliga eftersom det förhoppningsvis leder till att någon åtminstone förbättrar den dåliga lösningen.

Radikal enkelspårighet

Det mesta tyder på att multi-tasking för människor är en dålig sak, och att det är bättre att fokusera på en uppgift i taget. Detta är knappast något som dagens operativsystem, varken för datorer eller mobila enheter, uppmuntrar. Snarare bygger dagens lösningar på ett radikalt distraktionsparadigm, med saker som blinkar eller rör på sig i skärmens överkant, meddelanden som poppar upp och program som hela tiden försöker överlappa varandra.

Närmast har kanske Android kommit, med abstraktionen Activity (som förvisso i princip bara är tydlig för utvecklare). En android-enhet visar en aktivitet i taget. Vissa undantag medges, typ att en mindre aktivitet (rent fysiskt) kan överlappa en större, eller att små informationsrutor kan täcka delar av en aktivitet. Detta upplägg möjliggör kvalificerade gissningar och optimeringar från utvecklarna, typ att man kan börja spara saker när användaren lämnar en aktivitet, eftersom man inte är säker på att hen kommer tillbaka.

En aktivitet (jag använder här ordet trots kollissionen med Android-terminologin men menar något lite annorlunda) bör vara något mitt emellan en buffer i Emacs (plus ett mode) och ett fönster i ett datoroperativsystem eller en aktivitet i Android. Avsikten är att en aktivitet innehåller allt man behöver för att göra en »grej« (medvetet vagt definierad) på sin datamaskin. Det kan röra sig om att läsa en bok och ta anteckningar (eller läsa en bok utan att ta anteckningar, det skulle kunna vara två olika aktiviteter), lyssna på sina nyligen nedladdade låtar (kom ihåg, att lyssna på musik är inte en aktivitet!) eller redigera en bild.

Olika användare kommer att vilja ha helt olika aktiviteter, och därför är det viktigt att det är enkelt att definiera sina egna aktiviteter och att operativsystemet inbjuder till pedagogiska experiment. Framtiden är förmodligen specifik.

När jag tänker mig ett idealt operativsystem så tänker jag mig något inte helt olikt Ommwriter, men med olika gränssnitt för olika uppgifter. Och utan de störiga ljuden.

Datorer behandlar data

Hela poängen med datorer är att de behandlar, lagrar, kommunicerar, sorterar och återfinner och manipulerar data på olika sätt. Därför bör data vara i fokus för datandet och data-gränssnitten. Alla gränssnitt bör byggas med detta i åtanke: abstraktioner som är lämpliga för att representera algebra är troligen inte lika lämpliga för att representera fri text och så vidare.

Data är inte detsamma som filer. En fil innehåller data, men data kan finnas utspritt över flera filer, eller utgöra en delmängd av en fil. Data kan vara strukturerad eller ostrukturerad. Den kan komma med eller utan metadata, som in sin tur också är data och så vidare i all oändlighet.

Dagens datorer och mobila enheter har en uppsjö olika möjligheter till inmatning, speciellt om de har touch-enheter. Dessa borde utnyttjas bättre för att mata in- och manipulera data på olika sätt. Ett bra exempel är hur exempelvis äggklockan Ovo till Android använder touch-skärmen för att låta användaren »vrida upp« klockan, och skulle kunna användas vid alla tillfällen där minuter eller någon annan siffra mellan, säg, ett och 60 ska matas in.

Ett datoroperativsystem kommer i framtiden att användas på en uppsjö olika former av hårdvara, och det är därför viktigt att det är opportunistiskt och anpassar datainmatning och databehandling efter vilken hårdvara som finns. Finns en touch-enhet? Aktivera gester. Finns en mus med tre knappar? Tillåt exekvering av text som i Acme. Finns asmycket RAM? Förbehandla datan så att den kan hämtas snabbare. Och så vidare.

En fil är förmodligen inte den bästa tänkbara abstraktionen för data, och förmodligen använder vi bara filer för att det en gång var tekniskt nödvändigt. Idag skulle vi kunna lagra vår data i olika typer av databaser och oftast slippa bry oss om var datan rent fysiskt finns och hur den är lagrad. Avancerade metoder för kategorisering och sökning av data kommer förmodligen också att bli nödvändiga, och m.h.a. ett etikett- eller kategorisystem skulle fil/mappträd kunna återskapas för de tillfällen där de faktiskt behövs.

USB-minnen, kameror och flyttbara hårddiskar är kommunikationsmedia, inte lagringsmedia

Stuxnet-fallet (och XKCDs what-if-avsnitt på ämnet) visar att vi bör betrakta USB-minenn åtminstone delvis som nätverksenheter med oerhört lång svarstid (latency) men relativt hög bandbredd, och det här är något som våra gränsnitt bör ta hänsyn till. Att jag kopplar in en extern hårddisk för att ha som back-up-enhet eller extra lagring och att jag stoppar in ett USB-minne eller en kamera för att överföra bilder eller kopiera en film till någon annan är två helt olika saker och bör hanteras som det.

En enkel lösning vore att helt enkelt fråga användaren vad som är syftet med en ansluten enhet, och sedan lagra preferensen i en kaka på enheten.

Opportunistisk synkronisering

Vår data är i dag i allt högre grad våra liv, och det är inte acceptabelt att den försvinner vid en hårddiskkrasch. Ett modernt operativsystem bör insistera om säkerhetskopior på ett helt annat sätt än tidigare. Det bör också vara möjligt att via WiFi, Bluetooth, USB, FireWire eller Ethernet göra opportunistiska säkerhetskopior och/eller synkroniseringar mot allt från molntjänster till sina egna och andras datorer eller lokala NAS/USB-hårddiskar. Att CrashPlan är en extern tjänst och inte redan inbyggt i alla operativsystem är en skandal! Tomt utrymme på en hårddisk är slösat utrymme och det går långsamt att kopiera men snabbt att skriva över!

Gemensamma abstraktioner: att mata in text är en aktivitet

Ett operativsystem bör komma med en mängd gemensamma abstraktioner för olika uppgifter som sedan kan kombineras till olika aktiviteter. Att mata in text är oftast ungefär samma sak oavsett vad man använder den till. Det finns trots allt en anledning till att man kan göra allt i Emacs.

Att söka efter dokument eller musik är ungefär samma sak. Att spela in musik från en mikrofon och att spela in den från ett annat program är ungefär samma sak.

Alla komponenter och aktiviteter i operativsystemet bör exportera väldefinierade gränssnitt mot varandra för att kunna överföra data. På så sätt kan gemensamma moduler för representation, sortering, filtrering och så vidare. Det här var den geniala delen av Unix, men tyvärr sträckte den sig bara till text och saknade fördefinierade gränssnitt på en djupare nivå än »ta emot den här texten tills jag säger stopp nu«. Vi kan bättre!

Androids »Share«-funktion gör mycket av det här på ett imponerande sätt, men är inte riktigt där ännu, speciellt inte som det saknas mer sofistikerade verktyg för att välja vilken data som ska exporteras och alla funktioner för att ta emot och exportera data är inkompilerade i koden och helt oåtkomlig för användarna.

Operativsystemet Haiku jobbar också på det här (eftersom föregångaren BeOS också gjorde det). Exempelvis finns ljudsystemet Cortex, i vilket man kan dirigera om ljud mellan olika saker som kan spela in- eller upp ljud. Varför inte införa en motsvarande funktion för att överföra video från videospelaren (eller en Gif eller HTML 5-video i webläsaren) till en extern monitor eller ansluten videokamera?

En annan sak som Haiku gör mycket rätt på är att det finns en operativsystems-API på en nivå i ett språk. Det här är kanske det mest vansinniga i hela GNU/Linux-världen, att det finns en fyra-fem olika toolkits bara för att representera grafiska gränssnitt och ytterligare flera bibliotek för att spela ljud eller kommunicera mellan processer.

Allt detta tyder på att sfären inte lyckats konstruera hållbara abstraktioner i takt med att utvecklingen gått vidare. Att skriva ett enkelt textbaserat program kräver mycket begränsad förståelse av programmering ö.h.t. och i princip bara en ytlig förståelse av systemet man arbetar med. Att skriva ett enkelt grafiskt program kräver minst tio gånger så mycket kod och extremt mycket djupare förståelse för både ett widget-toolkit (för att inte tala om att man ska välja ett widget-toolkit) och för programmeringsspråket i sig. Ofta måste man också, som med GTK, sätta sig in i ett helt nytt objektsystem specifikt för det widget-systemet.

Att skriva program måste vara enkelt. Man ska inte behöva tänka på trådar, minneshantering, kommunikation med resten av systemet och lära sig ett helt objektsystem utantill för att kunna producera ett fungerande och stabilt enklare grafiskt program. Att användare ö.h.t. behöver börja med att lära sig programmera textbaserade program är ett ofattbart bakslag som borde få alla hackare med den minsta pedagogiska ambition att gråta av frustration vid blotta tanken.

Automatisera det som automatiseras kan

Vi har redan tillräckligt mycket tråk i våra liv för att behöva stå ut med tråk på våra datorer också. Allt som kan automatiseras bör därför automatiseras. Alla gissningar om vad som kommer att göras eller behövas härnäst bör göras. Användaren ska inte behöva aktivt svara på frågor hela tiden, och när frågor förekommer ska konsekvenser för olika svar presenteras klart och tydligt på ett pedagogiskt sätt. Om inställningarna behöver gömmas i en textfil eller bakom en otillgänglig meny är de förmodligen inte viktiga nog.

Kör också massor av saker i bakgrunden, speciellt om de främst är processorbegränsade. Om de har med hårddisken att göra, prioritera dem lågt. Förbehandla bilder (gissa om de är upp och ner så att »beräkningen« går blixtsnabbt om användaren skulle vilja göra den). Gör en profil på ofta använda program (tillsammans) och förladda dem om det finns RAM och processor nog. Stör användaren så lite som möjligt och lämna användaren väntande så lite som möjligt.

Om ditt program behöver en splash screen så är det förmodligen för långsamt. Skriv det inte i Java eller använd åtminstone en ständigt körande JVM i bakgrunden.

Optimera respons. Om ditt programs gränssnitt låser sig och slutar svara på kommandon när det ska beräkna något så har du använt trådar fel, och det borde inte ens vara möjligt om man följer API-dokumentationen för operativsystemet.

Radikal transparens i kod och organisation

Operativsystemet har en oerhört stor makt över användaren, och därför måste det vara transparent. Det måste gå att se vilket tillstånd som det för närvarande har (och tillståndet kan inte vara utspritt över tusen olika moduler), vilken kod som kör (med kommentarer!) vad och vilka variabler som styr vad. Det måste gå att peka på en fönsterlist och få veta vilken kod som ritar den, varifrån den får sin data och vilka värden den för närvarande har. Och att kommunicera denna information vidare till andra aktiviteter. Allt måste kunna modifieras under körning av användaren.

Själva operativsystemet och all mjukvara måste utvecklas demokratiskt och transparent. Det måste vara uppenbart vem som skrivit vilken kod på vems direktiv, och alla användare måste ha rätt att skicka patchar, rösta och att bli valda till kommittéer och beslutsfattande organ. Utredningar, styrdokument och liknande måste vara tillgängliga för allmänheten, koden för åtminstone användarna (man kan vilja ta betalt för medlemskap och/eller användning av ekonomiska skäl).

Hemliga avtal med företag, kopieringsskydd och ofri kod måste vara absolut förbjudet. Inga undantag! Organisationen bör ha en av rättsliga skäl inofficiell militant självförsvarsavdelning som omedelbart spöar alla patentjurister och DRM-pushers samt regelbundet bränner ner Apple Store. Hotet från DRM-älskarna är mycket reellt och bör betraktas som militant i sig, även om de främst outsourcar sitt våld till rättsapparaten.

Ingen jävla teknokrati! Inga jävla utvecklare!

Biblioteket, förlaget, upphovsrätten och varuformen

Varning: den här artikeln innehåller egentligen bara saker jag redan har sagt.

Upphovsrätten är spännande som rättighet betraktad. Av alla liberala rättigheter är det en av få som öppet handlar om att ge en ägare rätt att begränsa vad en annan ägare gör med sin egendom. Alltså ett skolexempel på ett monopol, men med referens till en metafysisk idé om…idéer och deras ömsesidiga relationer.

Som genom trolleri (eller »spooky action at a distance«) kan en upphovsman begränsa vad jag kan och inte kan göra med en bok jag köpt och enligt liberalismens alla regler alltså själv borde äga. Upphovsmannen kan också på ett historiskt unikt sätt gröpa ur ett stycke kultur ur sitt sammanhang och sätta sin stämpel på den.

Upphovsrätten ger på ett historiskt unikt sätt möjligheter att äga kultur och information, i den mån det finns en skillnad mellan dem. Den tvingar in dem i varuformen, gör dem köp- och säljbara på en marknad.

Men varuformen består av två sammankopplade delar: bruksvärde och bytesvärde. Bruksvärdet är den del av varan som mest handlar om kvalité: boken går att läsa, texten ser fin ut och informationen är tillförlitlig. Det är de faktorer jag som läsare är intresserad av. Det är också de faktorer som en bibliotekarie främst bryr sig om.

Förlaget däremot är som representant för kapital inte så intresserade av att sälja just böcker, som att sälja, punkt. De har räkningar som ska betalas, aktieägare som ska ha utdelning och kalkyler som måste gå runt. Egentligen är det för dem viktigast att omsätta (och förmera) pengar, att de gör det genom just böcker är snarast en tillfällighet.

När förlagsrepresentanter pratar om att masskopiering gör böcker värdelösa så menar de detta från sitt perspektiv, alltså att de inte kan sälja böckerna. De redan tryckta böckerna blir självklart varken bättre eller sämre än de var innan masskopieringen.

Hela problematiken kring upphovsrätten handlar egentligen om ett stort säkerhetshål i kapitalismen som ekonomiskt system. För att fungera kräver den brist på den vara som ska säljas. För att jag ska vilja köpa din bok måste jag av någon anledning ha brist på den. Om böcker bokstavligen växte på träd så skulle det knappast finnas en marknad för dem, lika lite som det ännu så länge finns en marknad för luft.

Det här är normalt sett inget problem. Om jag har en fysisk bok som jag vill sälja så är det enda jag egentligen behöver tänka på att den inte blir stulen. Så länge det är dyrt och svårt att kopiera den kan jag sälja den som vilken vara som helst på en marknad. Jag får pengar och bokläsaren får sin bok.

Men med de elektroniska produktivkrafternas (läs: datorernas och internets) utveckling har situationen blivit betydligt rörigare. Den nya tekniken, som först nu börjat bli allmänt spridd på allvar, gör att det är mycket billigt att göra kopior. Om jag har en elektronisk bok så kan jag snabbt och enkelt göra kopior till alla mina vänner som är exakt likadana som min kopia.

Det här är ett allvarligt problem för boken som vara. För att (nästan) citera Marx så får den inte längre plats i den alltför trånga varuformen, utan spränger den. En såld bok = tusen potentiella böcker. Tyvärr är det här en situation som bara gäller böcker och information ännu så länge (alltså saker som kan digitaliseras). Man kan inte ännu ladda ner en bil, som skämtet på den vidriga reklamen på DVD-filmer lydde, och inte heller sin middag. Men tänk om man en dag kunde det!

Förlagens och informationskapitalens olika lösningar på problemet har hittills varit stränga förbud. Staten måste ta sitt ansvar och skydda deras (och i förlängningen hela den informationskapitalistiska sektorns) intressen, gentemot bl.a. konsumenter. Det är därför det ständigt myglas igenom nya förstärkningar av upphovsrätten, och det är därför fyra åklagare jobbar heltid med fildelningsmål.

Men de förlorar. Inte för att vi som hatar och föraktar deras marknadsmodeller är så många eller så tekniskt kapabla (som det ibland framstår), utan för att de också hela tiden huggs i ryggen av andra kapitalsegment som istället tjänar pengar på andra saker.

Troligen kommer upphovsrätten som vi idag känner den att bli en historisk parentes. Tyvärr hindrar det inte innehållskapitalen från att förstöra människors liv och att med kopieringsskydd sterilisera stora delar av vår kultur, och det är det kampen står som hårdast om. Kampen står något tillspetsat mellan infosocialism och ett allt tilltagande infobarbari.

Men en infosocialism – alltså ett kollektivt ägande av all information tillika en helt avskaffad upphovsrätt till förmån för en rätt att kopiera och ta del av information – innebär tyvärr inte slutet för kapitalismen, även om förlagen ofta vill hävda detta. Troligen kommer inte ens de själva att gå under, utan snarare deras affärsmodell. Istället kommer de att hitta andra saker att tjäna pengar på; uthyrning av utrymmen, särskilt utvalda produkter, specialutgåvor till samlare, premium-tjänster, extra lättillgänglighet med mera.

Därför är det i övergången också mycket viktigt att komplettera kampen mot deras värdelösa affärsmodeller och systematiska förstärkande av upphovsrätten med en lika hård kamp mot teknisk inlåsning. För tjänster som Spotify eller andra DRM-scheman har fortfarande stora möjligheter att fördärva kulturen även om de inte skulle vara backade av en stark upphovsrätt.

Och naturligtvis: kampen är inte över förrän man kan ladda ner en bil. Eller frukost.

Org-mode-tips del ett: samla ihop dina projekt

Org-mode är en insticksmodul/ett program till Emacs. Egentligen handlar det om att strukturera text, men det gör vansinnigt mycket mer. Det här är tänkt att bli den första delen i en längre serie om hur jag använder org-mode för att styra upp mitt liv.Jag har två större filer med projekt: projekt.org och skolan.org. I skolan har jag rubriker för varje kurs, och under dem en lista på saker som ska göras. Men jag har också en mapp på min dator för varje kurs, där jag samlar inlämningar, uppgifter och kurslitteratur.

Så här kan skolan.org se ut (utdrag):

* Bibliotek, kultur, samhälle
** läsanvisningar och krav bla bla bla ** gör gruppuppgiften Anteckningar här. ** TODO ladda ner och läs gruppuppgiften :datorn:

För att koppla en kurs till mappen man har den i ställer man sig på rubriken för kursen (i mitt fall Bibliotek, kultur och samhälle), trycker C-c C-a (d.v.s. håll ner Ctrl, tryck C, fortsätt hålla Ctrl nere, släpp C och tryck A). Man får då upp en meny. Välj alternativ s (»set specific…«), och bläddra fram rätt mapp.

Du kan nu öppna kursmappen direkt genom att ställa dig ovanpå rubriken och trycka C-c C-a och sedan välja alternativ f. Vill du flytta in filer i mappen kan du istället för f välja a. Vill du ha en fil som redan finns någon annan stans och inte bör kopieras så kan du istället för a trycka y.

Om du vill skapa en helt ny fil (t.ex. för att du precis kommit till en föreläsning och vill börja anteckna), tryck istället n. Naturligt vis kan du fräsa iväg alla tangentbordskombinationer direkt, bara du släpper Ctrl innan du trycker a/s/f/y.

Högre ordningens musikspelande

Jag har tidigare diskuterat musikspelande som flera aktiviteter. Nu tänkte jag skissa på villkoren för en högre ordningens musikspelande som en lösning på detta problem. Begreppet »högre ordningens-« kommer från programmeringens och matematikens »higher-order functions«, alltså funktioner som använder, returnerar och tar andra funktioner som indata.

Nu behöver man inte förklara det riktigt fullt så krångligt. Det blir kanske lättare om vi beskriver det i termer av språk och abstraktion istället: högre ordningens någonting innebär att man kan skapa ett något och använda det för att bygga högre abstraktioner; program kan användas som inmatning till andra program, t.ex. för att hantera specifika situationer. Det handlar om vad vi kan göra och vad vi kan beskriva för våra datorer.

Men hur översätter det här till våra musikspelare? Jo, för närvarande så är musikspelande en utomordentligt dum historia. Vi har ett musikspelarprogram (oftast), och det bästa vi kan åstadkomma i det är att definiera (och ibland spara) sökfrågor. Säg att jag definierar ett mer abstrakt sätt att spela musik, vi kan kalla det Uppföljningslyssna. Att Uppföljningslyssna innebär att man ur en hög låtar (t.ex. spellistan »min favoritmusik«) hitta låtar som inte spelats på ett tag och spelar dem shufflade.

Detta kan i en modern musikspelare uppnås på ett av två sätt: antingen skapar man en smart spellista som gör sökningen på en önskad spellista (»min favoritmusik«), eller så öppnar man sin spellista, sorterar på datum för senaste spelning, plockar ut låtarna och placerar dem i en egen spellista, öppnar den och spelar den på shuffle.

Problemet är att det här är en helt isolerad lösning. Fast den är en implementation av ett abstrakt koncept så måste man göra om den för alla spellistor. En högre ordningens musikspelare måste ha möjligheten att jonglera runt med musiksamlingar som om de vore vilken data som helst. Den måste också kunna jonglera runt med sökningar och abstrakta koncept på samma sätt. Att uppföljningslyssna (1) måste vara något man kan göra med vilken samling musik som helst, vare sig den just kom färsk från en sökning i musikdatabasen (sök-musik (1)) eller från en sparad spellista.

Hm, få se nu, tänk om vi hade ett språk som tillät oss att abstrahera ovanpå olika lösningar för att göra saker och att skyffla data mellan olika program

Jag tänker så här:

  #lyssna på mina favvolåtar av Blue Foundation:
find-songs 'rating>3' and artist:"Blue Foundation" | uppföljningslyssna -
uppföljningslyssna $(find-playlists "min favoritmusik")

Och så här skulle uppföljningslyssna kunna se ut:

old_date = $(date –date="a week ago" +%s)
cat $@ | filter-music "last-played<$old_date" | shuf | play-music -

Tänk er nu detta i Acme.

Musikspelarfrågan igen: Att lyssna på musik är inte (bara) en aktivitet!

Jag funderar mycket på det här med att samla, spela och lyssna på musik, och har kommit på två mycket intressanta faktum:

  1. Vår kapacitet att lagra och hantera musik – rent tekniskt – är i princip obegränsad och har varit det ett tag.
  2. Alla musikspelare hittills är olika försök att implementera begränsningar och representationer av en musiksamling som påminner om äldre tekniker.

Det här är intressant, för det innebär att det stora problemet med att spela musik på en dator är att sätta gränser och påföra struktur. Vi kan visa ett gigantiskt musikbibliotek i hastig följd på nästan vilket sätt vi vill, men det vore helt obegripligt för användaren.

De flesta moderna musikspelare verkar implementera ett eller flera av tre olika gränssnittsparadigm (i brist på bättre ord): radion, kasettbandet och biblioteket.

Radion är egentligen bäst representerad med last.fms »radio«, men det som är gemensamt för den är två saker: för det första att användaren lämnar över större delen av kontrollen över vad som spelas till datorn, och för det andra att gränssnittet implementerar en minimal interaktivitet.

Det typiska exemplet på ett radiobaserat musikspelande är en gigantisk spellista som shufflas. Användaren behöver inte ta några som helst beslut om vad som ska spelas eller i vilken ordning, utan det sköts algoritmiskt så länge det finns en spellista. I extremare fall kan spellistan dessutom bestå av hela musikbiblioteket.

Bandspelaren representeras istället av mer eller mindre spellisteorienterade spelare som t.ex. Winamp med efterföljare. Här motsvarar spellistan en skiva, eller möjligen ett blandband, som sedan spelas antingen i ordning eller shufflas. 1

Biblioteket är kanske den vanligaste typen av musikspelare, och gissningsvis är den också ett svar på det växande behovet av organisation och sökbarhet för att hantera större och större musiksamlingar. Exempel på spelare av den typen är t.ex. iTunes, Banshee, Rhythmbox, Foobar 2000 m.fl.

Generellt sätter det sökandet i fokus, men använder spellistor som kan vara antingen improviserade eller fasta för att spela musiken. Själva biblioteksfunktionen är mest till för att hantera och söka i musiken, snarare än en del av själva musikspelandet.

Det jag har insett när jag har tänkt på musikspelandet är framför allt att de tre typerna är tre lösningar på tre olika problem. Biblioteket är mest till för att hantera musiken, radion är mest till för att slippa välja musik, och bandspelaren är mest till för att spela redan ordnad musik.

Ur detta kan man dra en förvånande slutsats: att spela musik är uppenbarligen inte en aktivitet, utan flera. Och, visar det sig, våra moderna multifunktionsspelare misslyckas med nästan allt.

För kom igen, vi måste kunna låta datorn välja musik åt oss på ett sätt som är effektivare än slumpen, vi måste kunna ha ett bättre bläddringsgränssnitt än iTunes, och vi måste kunna representera spellistor på ett bättre sätt än bara som filer på vår hårddisk eller (som i Banshee) en lista på namn vid sidan av den för tillfället visade listan.

Med andra ord: vi borde ha olika specialiserade musikspelare som alla delar på samma spellistor, samma metadata och samma samling. Och programmet för att hantera denna samling måste kunna gruppera och ordna musiken på ett sätt som gör att vi både kan få översikt, och värdefulla tips medan vi navigerar. Vad som lyfts fram, placeras i närheten av varandra, och hur det lyfts fram är trots allt jätteviktigt, fråga valfri bibliotekarie!

Fotnoter:

1 Intressant nog är för övrigt shuffle något som (gissar jag) dök upp på bred front i och med CD-spelarens möjligheter att digitalt bestämma på vilket spår den ska börja spela. Tekniken skyfflades sedan bara över till datorprogrammen, där den kom att användas på allt växande och mer hafsigt påkomna spellistor tills den fick karaktären av radio som jag beskrev tidigare. Utvecklingen av musikspelarna verkar med andra ord bara ha vuxit vidare i gamla metaforer.

Våra värsta maträtter: ett inlägg i mathistorien

När jag tänker på mat så funderar jag ofta på hur oerhört mycket bättre vi verkar vara på mat än nu. Faktum är att jag kan se en linjär utveckling: på 70-talet den oätliga bruna maten, under min generations uppväxt allt bättre mat tack vare inspiration från utlandet, och nu i samtiden den bästa maten (hittills). Detta passar med andra ord väl in i min uppfattning om att det fan aldrig var bättre förr, och att 70-talet var någon sorts globalt minimum i den närliggande historien, där det fanns hippies överallt, alla pratade konstigt på TV och allt var fult (d.v.s. mörka bruna färger).

Jag har börjat fråga personer från min generation jag möter om deras värsta matminnen från barndomen. Ibland försöker jag också diskutera detta med mina föräldrar, men de landar ofta i en kombination av förnekelse och förklaringen »vi hade barn, vi hade inte tid att laga mat«. Detta tror jag bara delvis förklarar min barndoms matskräckupplevelser, för det verkar också handla om någon sorts tidsanda.

En uppenbar förändring är att husmanskost verkar bli mindre vanligt, till förmån för mat (med inspriation från) från länder där man faktiskt kan laga mat (östra asien, medelhavet, sydamerika). Detta är något jag är mycket glad över, eftersom jag betraktar nästan all svensk/nordisk/brittisk husmanskost som mer eller mindre oätlig, med vilket jag mer precist menar att jag även om jag är hungrig bara precis så lite av den att jag blir mätt, för att sedan bli hungrig en halvtimme senare.

Detta är inte konstigt. Jag skulle egentligen vilja gå så långt som att hävda att svensk husmanskost är objektivt äcklig, eftersom den har uppstått i en kultur av brist på råvaror, då inte minst kryddor. Bränsle har det däremot funnits gott av, vilket förmodligen är anledningen till att all svenks husmanskost verkar vara långkok (antar att det dödade bakterierna) med kryddpepparsmak (antar att det dödade smaken av ruttet kött utan att kräva mer än en krydda). Skönt att det har kommit hit folk från andra länder som vet hur man lagar mat!

Ofta är det väldigt enkla fel med min barndoms mardrömsrätter, och det finns fyra fel som nästan konstant återkommer:

  1. För lite eller inga kryddor.
  2. Köttfärs utan sås som blir jättetorr.
  3. Missförståndet att kinesisk soja skulle vara en sås.
  4. Missförståndet att det ö.h.t. skulle kunna gå att äta paraboiled-ris utan något blött och oerhört smakstarkt till.

Och nu, efter denna korta historiska genomgång, låt mig presentera mina (och mina generationskamraters) sämsta barndomsrätter (i ingen speciell rangordning)!

Fylld paprika

Jag tror att detta fortfarande är en av min pappas favoriträtter. Tillagningen går till så att man gröper ur ett antal paprikor och fyller dem med knappt smaksatt köttfärs som man har fräst i en stekpanna tillsammans med (om jag minns rätt) en eller ett par hackade paprikor. Fräset hälls sedan i de urgröpta paprikorna, som ställs upprätt i en form. Ovanpå dem lägger man västerbottenost. Resultatet smakar en kombination av varm paprika, torr köttfärs och fotsvett (tack vare västerbottenosten).

Köttfärslimpa

Jag vet inte vad det är i den, men inga kryddor i alla fall. Jag vet inte heller hur det är möjligt att få något som smakar och känns så torrt i munnen att faktiskt hålla ihop. Intressant nog är ju t.ex. grekiska färsbiffar inte alls torra på samma sätt som mina värsta köttfärslimpeupplevelser. Gissningsvis beror detta på någon magisk egenskap som köttfärs har, om det nu inte ska vara stark betoning på »lim« i »köttfärslimpa«.

Fläskkotlett med ben, »sky«, och smaklöst tillbehör

Det här är en klassiker som jag vet att jag inte är ensam om att utsättas för. Man steker fläskkottlätter med ben och allt i en stekpanna tills de är fullständigt genomstekta och har en träig konsistens, sedan häller man på soja och vatten för att bilda någon sorts tunn ursäkt för en sås (kom igen, en mjölredning och lite mjölk hade lyft hela rätten!!!). Serveras med klistrigt pulvermos eller kokt potatis, eller något annat som inte heller smakar något.

Paraboiledris utan sås

Inte en hel rätt, men också ett fenomen jag har stött på ofta, inte minst tillsammans med t.ex. grillad kyckling eller fläskkottlätter. Man kokar helt enkelt paraboiled-ris, det allra tristaste, torraste och mest smaklösa riset (det som tidigare bara hette »ris«), och serverar det utan sås, alternativt med kinesisk soja som »sås«. Det är tyvärr bara det att kinesisk soja (som man köper i vanlig mataffär) mest smakar salt och vatten…

»Spansk« fisksoppa

Denna spanska fisksoppa – som jag är helt övertygad om inte har ett dugg med Spanien att göra – var faktiskt min favoriträtt när jag var liten, men såhär i efterhand när jag tänker på den så förstår jag inte varför. Det är helt enkelt en svagt redd soppa som består mestadels av buljong (fisk, antar jag), och kanske lite grädde eller mjölk. I den kokar man tärnat torskblock (!) och paprika, för att få en soppa som förmodligen är den godaste rätten på den här listan, men som ändå skulle förlora mot en av mina frukostmackor vilken dag som helst.

Creating a Windows install USB stick from a CD (or ISO) in GNU/Linux

Sometimes I maintain a Windows partition (or rather: drive) in order to play computer games. But since my computer doesn’t have an optical drive (it felt almost like adding a floppy drive when I built it), I have to install Windows 7 from a USB stick. There are several GUI programs for preparing this USB stick–in Windows. As far as I can tell, there’s only one for GNU/Linux, and last time I tried it it didn’t work, couldn’t be coaxed to, and had all the signs of poor software engineering. I did, however, find instructions on ServerFault, but I’m duplicating it here with slightly added ceremony for myself and others to find.

You could do the usual dd if=your-iso-file-or-CD-drive of=your-USB-drive, but that won’t work (though it does for some) due to some subtle differences in how CDs and HD-media are laid out. As far as I can tell, it’s a matter of how picky your BIOS is (read: if it can boot CD-layouted HD-media). Mine’s the picky kind, I’ve found out through painstaking experimentation.

Basically what you need to do is to create an NTFS partition on your desired USB drive. The proposed type number is 7. This partition needs to have the »bootable« flag set, and the drive needs to have a correct (Windows) MBR. When all this is in order, all you need to do is to copy all files and directories from the CD onto the NTFS partition on the USB stick.

More precicely, follow these instructions (please change /dev/sdb to your correct device in the examples below!):

  1. Create the partition using fdisk/cfdisk/gparted or anything. It needs to have the bootable flag, and it needs to be type 7.
  2. Create an NTFS file system (if gparted didn’t do it for you): sudo mkfs.ntfs -f /dev/sdb1.
  3. Write a Windows 7 MBR on the device: sudo ms-sys -7 /dev/sdb (according to the ServerFault you can also use lilo: sudo lilo -M /dev/sdb mbr).
  4. Mount the CD (if it’s an ISO file, you can mount it via the loopback interface: mount -o loop win7.iso /mnt/iso) and the USB drive.
  5. Copy all files from the Windows CD to the USB stick (I used rsync: sudo rsync --archive --progress /mnt/iso/ /media/sdb1/).

Note: when installing Windows, remember to disconnect your primary GNU/Linux drive. Windows handles MBR:s very rudely, and will overwrite your normal GRUB boot code so that your computer only boots into Windows. This requires (obviously) a separate GNU/Linux boot disk to restore your normal MBR.

Also, don’t use Windows, as it will probably give you cancer.

A proposition for a new way to store and manage digital music

Since giving up mpd a couple of years ago, I’ve been trying out various music players, and I have yet to find one I really like. Since then, I’ve tried out first xmms2, then Rhythmbox and Banshee, in that order. While I especially liked xmms2’s collections, I found that music actually is something best visualised in a way a command line interface really can’t (two words: album art).

Rhythmbox and Banshee, however, are both seriously bug-ridden and unstable, both of them (I still can’t get any of them to transfer music to my mobile phone, and both continuously hangs and/or crashes randomly). But that’s a transitory problem (at least I tell myself it is). Much worse is the fact that they both visualise music very clumsily.

Ever since I started using notmuch and it’s Gmail-inspired tagging approach to sorting mail, I’ve been thinking I’d like to do the same with my music. The only problem is that music and arbitrary meta data really don’t mix well. Therefore, in this entry I’m going to draw the lines for a slightly different mode of thinking about digital music management.

Dualism never works (ask Descartes)

Most music organisers today are built around a database as well as the file system, because not all relevant (meta) data about music can be stored in the actual music containers, and even if that were possible, you probably wouldn’t want to, for both technical and social reasons. Constantly writing data to lots of files is (but I’m guessing here) probably quite slow.

So the first question about the synchronisation of your actual music files and your music organiser becomes what, exactly, to synchronise. The various players I’ve tried act differently here: xmms2, for instance, doesn’t even sync changes in tags (please note: I’m going to use »tags« for id3/ogg comment-style tags and »labels« for Gmail-style tags from now on to avoid confusion as much as possible, even though I know that »label« is actually a reserved keyword in the music domain as well).

The next question is how to handle changes to the music library outside of the music player. The typical case, of course, is adding or removing music, but we can also imagine changing meta data through an external editor (when is this updated in the database? I’d bet different managers do this differently) or even moving actual files around.

What I’m getting at here is that you obviously have multiple entry points for altering the state of your music database with these systems, something that’s almost guaranteed to give you unexpected behaviour and/or bugs (what happens if you just move a file?). The solution? Ditch either the files or the database. And since I believe we started using databases for a reason (faster search, ability to store more data), I’m going to suggest ditching the files.

That way, you can harness all of data base theory’s solution to these common problems (atomicity, consistency and so on), and make sure all your changes are consistent. You also get solutions to most other problems I’m naming further on in this entry for free.

Also, choosing a flat file-based approach has some problems with sorting. Most of the time you’d probably want to sort your music in a tree from artist to album to song. However, how do you handle albums with songs by multiple artists? You could, of course, use symbolic links to make sure the relevant songs appear both as /artist/album/song, AND as /various artist/album/song, but that would be a tricky to manage (and spell disaster if you’re using a database-based player).

TL;DR: Upholding the dualism between music files on one hand, and the database on the other is expensive, and we should ditch the files and keep all our music in a database.

We’ve got identity all mixed up in digital music

Here’s a riddle: when are two songs the same? I’m quite sure your answer isn’t »when they are digitally encoded exactly the same and has identical meta data«. However, this is your music organiser’s.

I think that basically, we’ve been doing identity for songs wrong ever since we started storing music digitally. At the very least, meta data shouldn’t matter as long as the actual data is identical. But I’d like to go a step further here, and suggest that at least theoretically we should be able to treat two identical recordings of a song on two different albums as the same song.

At least our music organiser should have the possibility of having the same song showing up on different albums, since two albums could easily contain the same song (imagine a one-hit-wonder being both on a »best of« collection as w ell as on its original album). Of course, we may be audiophiles and require cue sheets that precisely punctuates all songs with the exactly correct amount of silence. But this, really, is also meta data, and not really related to the actual identity of the song. It’s the same song, just with more silence.

TL;DR: Identity in songs, we’re doing it wrong. The fact that a song participates in an album or in a collection is data about the song, not a property intrinsic to the song itself.

Arbitrary (but relevant) meta data should apply to music as well

In Banshee, I have a play list called »rain«, collecting a bunch of songs that are about/remind me of rain. However, on a second thought this would seem a rather backwards way of organising my music. I have externalised the fact about a bunch of songs that they are about rain to a play list. That is, the songs aren’t about rain (according to the database), the list is.

But the property of being about rain is a property of the individual songs, not the list. And using a list to capture that really misses something (not to mention that I can’t easily search for that property in my music library). Therefore, our music collection should allow a system of Gmail-style labels to store information about our music.

This way, we can set up our play lists as smart play lists, and have them add songs about »rain« or »cyberpunk« themselves. Of course, one of the positive emergent effects of this is the ability for us to keep an In-box for our yet-unlistened music.

Organiser ≠ player, a note for those of a cloudy disposition

An important aspect of keeping our music in a database rather than in a set of files is the fact that the organiser part of our music infrastructure becomes logically separate from the music playing part. Playing back music becomes a matter of reporting to the back-end which track you are playing (and are going to play), and getting the actual music data streamed back to you.

This means that we could easily have multiple player front-ends to our database back-end, and that these can even run simultaneously (but don’t tell RIAA about this, please). And some of these front-ends could be HTML5-based streaming web apps, or (for that matter) music sync clients on your phone. That way, you could run your music database on your Freedom box and have access to your very own Spotify – all the time.