All posts by Albin

About Albin

I'm a Swedish Emacs user, vegan and from time to time, hacker. I'll be writing mainly about politics, technology and sometimes about programming, in English and in Swedish. My preferred family of programming languages is Lisp, and I prefer functional programming to imperative. And imperative programming to object-oriented. And just about anything, except maybe .NET or BASIC, before Java. My political alignment is in the bottom left corner of the political compass, i.e. the anti-authoritarian left. I have at times called myself "marxist", "anarchist" (with various imperatives), "syndicalist", "communist" and somewhat toung-in-cheek "anarcho-borgist", revealing my obsession with the species from the Star Trek universe. Some would call me feminist as well, but to me, that's something you're being called (preferrably by another feminist) rather than something you call yourself.

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.

Utvecklingen mot webapplikationer och brottet med 90-talsinternet

Jag har tidigare diskuterat webbens utveckling från lite olika vinklar, och kanske mest fokuserat på utvecklingen mot webapplikationer. Men det finns en faktor som jag inte har nämnt, och det är den ökande komplexiteten i webapplikationer.

Vi går alltmer från ett system där HTML är en dokumentstandard till ett system där HTML/Javascript är faktisk programkod. Detta innebär ett enormt hopp i komplexitet, eftersom märkspråk är oerhört konkreta på ett sätt som program inte är. De »tänker« ju i allmänhet inte, vilket betyder att en förståelse av dem är detsamma som att ha en översättningstabell för vad de olika taggarna innebär i huvudet. b = fetstil, em = emfas, o.s.v.

Detsamma gäller dock inte alls med programkod. Det är fullt möjligt att förstå ett programs syntax utan att ha en aning om hur det fungerar eller vad det gör. Man kan med andra ord ana att svårighetsgraden för webutveckling är på väg att höjas något enormt.

Detta blir ännu mer konkret om man tänker på hur man hanterade servergenererade websidor. 90-talsmodellen innebar att man helt enkelt bytte ut en .html-fil på en server mot en lite magisk motsvarighet med någon annan ändelse, t.ex. .php. Sedan såg man till att varje gång användaren hämtade filen så körde servern lite kod, vilken sedan genererade en vanlig HTML-sida som användaren hämtade istället.

Naturligtvis lever 90-talsmodellen fortfarande, inte minst i typ alla bloggmotorer och det mesta som är skrivet i PHP. Minns att framtiden är här, den är bara ojämnt spridd (vilket förstås innebär att även dåtiden är här). Men den blir alltmer problematisk, för i takt med att HTML+Javascript slutar vara bara en representation av ett dokument, och övergår alltmer till att faktiskt tänka själv, så ökar behovet av ständig kommunikation mellan serverkoden och klientkoden (d.v.s. HTML/Javascripten).

Detta, i sin tur, innebär ett krav på en mycket sofistikerad infrastruktur för kommunikation, med API:er och speciella program som hanterar detta på servern, vilket innebär en oerhört mycket högre grad av svåröverskådlighet och komplexitet. Plötsligt måste en webutvecklare inte bara kunna generera HTML, utan också förstå klient-server-kommunikation på en mycket avancerad nivå, mycket mer avancerat än för normala på-datorn-program.

Jag vill understryka att jag inte tycker att det här nödvändigtvis är en dålig utveckling, åtminstone inte bara. Faktum är att det är en helt naturlig utveckling om man vill ha webapplikationer, och alternativet (Flash) är så oerhört mycket sämre ur alla perspektiv, från rent tekniska till sociala och etiska.

Marx vs. Äkta människor

I SVTs sci-fi-dramasatsning Äkta människor ser världen ut ungefär som vår – frånsett en detalj. De har androider (»hubotar«) som kan göra nästan all det som människor kan. Serien är definitivt sevärd, och jag kommer att hålla så tunt med spoilers som möjligt i denna text för de som ännu inte sett den.

Fördelen med att vara nörd inom flera områden är att dessa ibland överlappar, och skapar fantastiska möjligheter till vidare studier. Ett typiskt sådant exempel är marxistisk teori och Äkta människor. Det visar sig nämligen att införandet av människoliknande robotar väcker många spännande frågor med marxistisk teori. Men först, innan jag börjar, en varning. Dels kan jag inte garantera att min läsning av Marx är korrekt, dels är det inte ens säkert att man kan applicera en marxistisk analys – som är specifik för kapitalismen – på en ekonomi som innehåller så stora delar androider.

Låt mig börja med att introducera några viktiga begrepp, mycket kort. I Kapitalet är ett centralt koncept värde, med vilket Marx menar det som gör att man kan byta två helt olika varor mot varandra, d.v.s. det som är samma i båda varorna. Och värde är definierat som mänskligt arbete – det som gör att jag kan byta en säck guld mot en dator är att både säcken guld och datorn är resultat av produktivt (d.v.s. inte bortslösat) mänskligt arbete.

Genast får vi här ett problem. Är en androids arbete värdeskapande? Om vi betraktar en android som vilken industrimaskin som helst så är svaret ett rungande nej. Varför? Dels av tekniska skäl, men kanske främst för att kapitalismen och kapitalrelationen är en relation mellan människor. Om man tillät maskiners arbete att vara värdeskapande skulle man kunna ha ett kapitalistiskt samhälle där den huvudsakliga relationen var mellan kapitalister och deras maskiner, vilket verkar uppenbart absurt.

Men denna fråga diskuteras även ingående i Äkta människor, i princip från första början. Borde androider betraktas som sentienta varelser med rättigheter, eller som maskiner man kan äga? Svaret på frågan får stor relevans för vår analys. Om vi antar att androider har rättigheter, och att de liksom mänskliga arbetare betraktas som ägare av sin egen arbetsförmåga och säljer sitt arbete på en arbetsmarknad, då får vi ett samhälle som är mycket likartat det vi har nu.

Ur ett marxistiskt perspektiv skulle androiderna i detta samhälle i princip vara människor. Vi kan förstås gissa oss till att de skulle hamna lite annorlunda på ett socialt plan (jämför t.ex. rasism), men deras förhållande till det ekonomiska systemet skulle vara i princip detsamma som ditt och mitt: de skulle arbeta precis som du och jag, och när de kom hem skulle de behöva ladda istället för att äta och sova.

Men det finns två viktiga ekonomiska skillnader mellan androider och människor. För det första så »äter« de bara en typ av vara (el), och för det andra så har de ett mycket lägre behov av vila. Det faktum att androider bara konsumerar en typ av mat gör att det förmodligen är lättare att sänka deras löner relativt människornas (alternativt höja deras levnadsstandard).

Medan priset måste sänkas på jättemånga varor (skördetröskor, gödsel…) för att sänka priset på livsmedel för människor, är allt som behövs för att en androids lön ska räcka mycket längre ett lägre elpris. Man kan tänka redan tänka sig splittringen mellan människoarbetarna och androidarbetarna. Lägg till detta på konflikter kring olika längder på arbetsdagar – för någon som inte behöver sova åtta timmar om dagen är förmodligen en tolv timmars arbetsdag betydligt rimligare än för oss av kött och blod.

Låt oss nu gå tillbaka till vårt antagande att androider tillskrivs ägandet av sin egen arbetsförmåga. Förmodligen är det inte så ett samhälle med androider kommer att se ut. Vad händer alltså med den kapitalistiska produktionen vid introduktionen av androider?

Vi kan anta att det finns en stark önskan från enskilda kapitalister att ersätta sina mänskliga arbetare med köpta androider. Androider är rimligen billigare i drift (de behöver ingen lön alls), strejkar aldrig och är allmänt mer pålitliga.

Detta pekar mot en stor möjlighet till kris: antingen måste alla människor skolas om till arbeten som androider inte kan sköta (med en eventuell fortsatt kapprustning och minskande mänsklig arbetsmarknad), eller så kraschar hela det ekonomiska systemet (för hur ska någon kunna köpa något om alla är arbetslösa?). Notera hur mycket detta påminner om vår egen situation, för övrigt.

När Marx diskuterar maskiner som arbetar så menar han att maskinerna innehåller en konstant mängd värde (nämligen det samlade mänskliga arbete som krävdes för att bygga dem och alla deras komponenter – ner till järnmalmen), vilken de överför jämnt på de föremål de tillverkar allt eftersom de slits. Man kan tänka det som att exempelvis en industribakmaskin smular ner små små delar av sig själv i brödet den bakar, allteftersom den slits och behöver lagas eller bytas ut.

Detta innebär att det värde en android överför när den arbetar med något är det arbete som krävdes för att bygga, programmera och utveckla androiden. Om vi antar att det är androider som monterar androider så innebär det att det värde som finns i en android är det värde som krävdes för att bygga de första androiderna (de som människor byggde), samt för att producera programmeringen för varje enskild android (om vi antar att det görs av människor).

Om vi går ännu längre och antar att androider även kan programmera (ett inte helt orimligt antagande) så får vi en mycket snårig sitation. Det värde som finns i varje android är det allt snabbare krympande värde som användes för att programmera och bygga de androider som användes för att bygga de första androiderna som kunde bygga androider.

Mängden mänskligt arbete – och därmed också värde – i varje android är med andra ord minskande, vilket betyder att androiderna med största sannolikhet i marxistiska termer säljs skyhögt över sitt värde (eftersom de de facto är så gott som gratis). Eller med andra ord: vårt analytiska ramverk bryter samman, och det ekonomiska systemet kan rimligen inte längre kallas kapitalistiskt.

Den något förvånande slutsatsen är med andra ord att den snabbaste vägen till kapitalistisk kollaps inte verkar gå genom ett revolutionärt erkännande av androiders rättigheter (något som sannolikt skulle vara oerhört omvälvande rent socialt och förmodligen inte komma utan kamp), utan tvärt om genom att deras rättigheter inte erkäns, samtidigt som deras förmågor närmar sig mänskliga. Frågan är bara om ett dylikt tekno-feodalistiskt system skulle vara bättre (jag gissar på nej).

Till spelkritiken: Transportsträckor berättarmetod

Tyvärr verkar det finnas en svag trend inom datorspel mot icke-linjärt berättande och fri rörlighet (i värsta fall med fordon). Typiska exempel är allt från Bethesda softworks (Fallout, Elder Scrolls-serien), samt det relativt nysläppta Rage.

Det stora problemet med dessa frigående spel är att man dels måste göra ett val mellan linjärt men pseudo-fritt (Rage) eller mer eller mindre helt fritt (Morrowind). I det första fallet upplever åtminstone jag spelets frihet som tydligt falsk, eftersom det finns en så uppenbar tråd att följa, och i det andra fallet saknas narrativet nästan helt, med konsekvensen att man springer runt i timtal och letar svamp för att få komma in i magikergillet (autentiskt exempel från när jag spelade Morrowind, min kanske sämsta spelupplevelse någonsin).

Fallout 3 löser faktiskt det här problemet ganska bra, genom att det finns en ganska bra funktion för att spåra uppdrag, samt radiomeddelanden och schemalagda händelser som inträffar när man rör sig i vissa områden, vilket gör att man hela tiden rör sig mot rätt mål utan att för den sakens skull uppleva att man följer en snörrät linje.

Tyvärr finns ändå en mycket viktig konsekvens av friheten, och det är enorma transportstreckor. I Fallout 3, t.ex. så måste man spendera ganska mycket tid med att göra sidouppdrag och framför allt med att förflytta sig mellan punkter. Rage är f.ö. ännu värre på den punkten, speciellt som även större delen av striderna i det spelet är helt orelaterade till handlingen, vilket gör att praktiskt taget hela spelet är en transportstrecka fram till handlingen (som f.ö. är en av de grundaste sedan Quake IV).

Idealt bör varje pussel och varje strid vara en del av narrativet, även om det är oerhört svårgenomfört. Det enda spel jag känner till som lyckats någorlunda med detta är Portal, och det är kanske det mest linjära spelet sedan Super Mario.

Ett annat sätt att stuva in berättandet är att förlägga det till en extern röst, t.ex. i en radio eller bandspelare (som i Bioshock). Tyvärr innebär det att det finns en diskrepans mellan spelandet och berättandet: man hör inte vad bandspelaren säger eftersom man ständigt måste slåss med splicers. Dessutom är det inte säkert att man faktiskt hittar dessa bandspelare, och spelet blir lite av en påskäggsjakt på bandspelare, avbruten av störande stridsmoment.

Till spelkritiken: Att hantera misslyckanden

Det här är början på vad som förhoppningsvis kommer att bli en bloggserie som jag kommer att kalla »Till spelkritiken«, där jag diskuterar datorspel. Framförallt är jag en anhängare av vad jag skulle kalla den narrativistiska falangen: jag ser spel främst som ett narrativt medium som kommunicerar en berättelse, snarare än som en visualisering av spelmekanik eller någon sorts sport. Därför är jag också i regel ointresserad av traditionell realism, balansering, spelmekanik och flerspelarlägen.

Ett stort problem med datorspel är hur de hanterar misslyckanden och svårighet. Att det över huvud taget är möjligt att fastna i ett spel utan att komma vidare i handlingen (eller rummet) är ett bevis på detta. Ett perfekt avvägt spel är precis så svårt att det är kontinuerligt spännande, och precis så lätt att man aldrig riktigt misslyckas.

Tyvärr är det förstås mycket svårt att avväga svårighetsgrad. Vissa spel har experimenterat med att lösa detta algoritmiskt eller med att introducera frivilliga hjälpredor (tänk Runner Vision i Mirror’s Edge eller kompassen i Bioshock). Problemet är bara att det är svårt att ge dessa tips utan att kompromissa med realismen, beroende på vad man menar ska realiseras.

Dessutom är det svårt att algoritmiskt styra t.ex. pussel eller bandesign, även om detta är något som jag skulle vilja se mer av (tänk ett spel som genererar pussel och banor automatiskt utifrån någon sorts feedback på hur svårt du tyckte att det var). Det enda som kan mer eller mindre framgångsrikt styras algoritmiskt är ju egentligen motspelarnas AI (om det finns några!), ett problem som får betraktas som mer eller mindre löst.

Ett ännu större problem är hur man gör när spelaren väl misslyckas. Att misslyckas är ju egentligen inget som borde vara problematiskt, utan är en viktig del i en inlärningsprocess. Ett typiskt exempel på när misslyckanden är bra är i spel som Baldur’s Gate, när man provar olika kombinationer av magi och vapen på en fiende tills man hittar en som fungerar. Därför är det också viktigt att man inte bestraffas för att misslyckas, just eftersom det leder till att man slutar experimentera.

Tyvärr är oproportionerligt många spel som släpps idag gjorda för konsoler. Och dessa är, hur ska jag säga det, efterblivna. De har jättefå knappar, de har en neddummad hårdvara och de måste ha stora och tydliga gränssnitt som kan navigeras med en oprecis kontroll på en ofta otydlig och lågupplöst TV. Många PC-spel som släpps är därför rena konsolkonverteringar, med mer eller mindre svåra bieffekter.

Den kanske värsta sådana bieffekten är checkpoints där spelet sparar, och bara där. Dessa är ofta alldeles för glest utspridda, vilket leder till att alla någorlunda experimenterande spelare ständigt måste spela om stora delar av spelet. Värst är detta i spel som har långa transportstreckor, vilket blivit populärt på sistone (jag tänker på bl.a. Prototype och Rage, där det senare egentligen borde beskrivas som ett actionbilspel för trettonåringar).

Ett typiskt sådant exempel är Prototype, som jag håller på och spelar för närvarande. Om man skulle råka dö i det så måste man i regel spela om från Free Roam-läget, vilket innebär att man måste springa över halva staden innan man kommer tillbaka dit man var när man började uppdraget man höll på med. Samma sak gäller om strömmen går eller man måste stänga av datorn och gå och lägga sig för övrigt. Att inte ha en snabbsparfunktion i ett spel efter 2000 borde fan vara kriminellt!

Booting Debian Wheezy (testing) from rEFIt in EFI mode using grub-efi on a Macbook polycarbonate Unibody

Basically I mixed two already existing guides, so I’m going to slightly gloss over what they’re saying and just fill in the blanks. Basically, the workflow is as follows:

  1. Partition your hard disks (from Mac OS disk utility).
  2. Create a BIOS Boot partition in Mac OS using gparted.
  3. Install Debian the usual way (using the guide) on your free space.
  4. Install rEFIt in Mac OS.
  5. Fix the now-broken protective MBR (mine wasn’t though) using gdisk in Mac OS.
  6. Use rEFIt to boot a Super Grub 2 boot disk, and use that to chainload your Debian installation (that can’t boot on itself due to the aforementioned nuked MBR). Also, we’re not home yet, we’re still in legacy mode.
  7. Once in Debian: remove grub-pc and install grub-efi-amd64.
  8. Mount the EFI boot partition and make an EFI boot image for grub using grub-mkimage.
  9. Copy files to your boot partition (that’s your /boot, not the EFI boot partition).
  10. Clean up and remove the BIOS boot partition.

The process is slightly complicated, but it’s the same as Rod’s guide (except I installed Debian and not Ubuntu), up until point 7, where I’m diverging from both of the guides. The main difference is that mennucc1 is basically building him/herself a new boot on the EFI startup partition, containing a separate copies of all Grub modules, kernel images etc. This means, specifically, that it’s completely out of sync with the debian config and needs to be manually maintained at every kernel update.

On the other hand, Rod’s approach didn’t exactly work for me either, because the installation of grub-efi didn’t update the module files in boot, leading to cryptic error messages at boot about »Invalid arch independent ELF magic« and, even worse, to the video drivers not being loaded and thus no image.

So, what I altered was: after generating the EFI image with grub-mkimage (and using my /boot/grub path, (hd0,gpt3)/grub as argument to -p) and placing it in a separate folder on the EFI boot partition (that is (hd0,0) on my computer, or sda1 – probably is on yours, too), I simply copied every .mod file from /usr/lib/grub/x86_64-efi/ to /boot/, overwriting the old files from grub-pc. After a reboot, Grub launched and booted Debian as expected.

It seems that what the -p argument does is setting the root partition for GRUB, from which it loads its modules and config files. In addition to this, I also updated /etc/default/grub to add GRUB_VIDEO_BACKEND=”efi_gop”, followed by the usual update-grub before reboot.

When everything works, delete the BIOS boot partition, as in Rod’s guide.

It’s worth mentioning that I have a quite complicated setup with encrypted LVM, and that everything worked out of the box once the grub.efi image was in place (and the correct .mod files copied to /boot/), save for the keyboard layout for the encryption password. Fortunately, I can still type with qwerty, just not very fast. I’d guess, however, that this is just a matter of passing the right module the right parameters somewhere.

For those who are interested, the boot process now goes something like this: EFI firmware → rEFIt → grub.efi on (hd0,0) → module files and settings on (hd0,gpt3)/grub/ (a.k.a. /boot/) → Linux kernel (also on (hd0,gpt3)).

Known problems

If I Insert a USB stick before I boot, this will be assigned to hd0 in grub, leading to grub.efi failing to load its settings or modules, since they are now at (hd1,gpt3)/grub, their device number having been incremented by one. I suppose this could be solved by using disk UUID for the -p argument in grub-mkimage.

Why going through all that trouble?

Well, mainly because I’m not fond of Debian being treated as a second-class citizen on the computer, running in an emulated BIOS legacy mode, but also because some functions aren’t available in that mode.

I hope someday this will be the default boot mode in Debian on Macintoshes. Actually, this shouldn’t be very far away, since everything I’ve done could easily be automated by debian-installer.

What lies ahead?

The, long, hard road to the perfect configuration. Also, playing around with Mac OS X to see how far I can customize it into something actually useful (think tiling window manager, Emacs, a package manager and much less fancy graphics, rounded corners and semi-transparency).

Uppdatering: sovlådan

Nu har jag publicerat en kort projektsammanfattning av mitt sovlådebygge, eftersom projektet är att betrakta som så avslutat som ett av mina projekt blir (d.v.s. det är fortfarande en massa småfippel och testning kvar). Jag har också uppdaterat min banner till att innefatta en bild från en av lådans kortsidor (ursäkta grötkvalitén, det beror på att min femtusenkronorsmobil har en för sunkig kamera).

It’s not the end of the world, but you can see it from here

En av de bästa taglinesen (?) för spelet Deus Ex: Human Revolution var »It’s not the end of the world, but you can see it from here«. Tyvärr användes den bara väldigt lite och i slutet på spelet, som i förhållande till mina förväntningar får sägas vara en besvikelse.

Men spelet får ändå sägas fånga sin samtid, för känslan av accelerationen (samhällets ökande urballning) är trots allt något åtminstone jag upplever. Occupy-rörelsen blir alltmer global, krisen fördjupas men också kampen mot åtstramningsåtgärderna. Kriget om Internet blir ett antal grader varmare och så vidare. Barnstjärnan Miley Cyrus gör låten »Liberty Walk«, med en video innehållande vad som bara kan beskrivas som kravallporr. Överklassungen Kissie skriver på sin välbesökta blogg (triggervarning) att Fredrik Reinfeldt är en idiot och diskuterar klass på ett förvånansvärt välutvecklat sätt.

Vad beror det här på? Den enda rimliga förklaringen är att de bakomliggande motsättningarna i samhället har blivit så akuta att den borgerliga idéhegemonin inte längre har möjlighet att förklara dem. Hur förstår man immaterialrättsfrågan från ett liberalt perspektiv? Krisen? De tätnande angreppen på Internet? De ökande klassklyftorna? Den arabiska våren? Peak oil, kausalitet, fosfor, peak allt? Caremaskandalen?

Slutet är nära. Alltså i bemärkelsen att en möjlighet till ett slut börjar synas. Occupy-rörelsens framgångar visar på att en massradikalisering är möjlig, och jag har en tydlig känsla av att konfliktlinjerna för den närmaste tiden dras här.

Det kanske mest intressanta tillskottet är kanske striderna om internet. Här finns åtminstone två axlar som sitter ihop. För det första handlar det om konflikten kring immaterialrätten, som inte borde behöva en närmare förklaring. Men för det andra så handlar det om en konflikt kring internets infrastruktur. Vem ska ha kontrollen över DNS? Vad är syftet med nätet? Vad ska man få göra? Hur ska vi hantera säkerhet o.s.v. Och – mest viktigt – säkerhet för vem?

Om Anonymous är en rörelse och Internet är deras territorium så har de en förbluffande hög grad av militans, speciellt för att vara bestående av personer som i låg grad överlappar med traditionellt militanta nätverk. Förmodligen handlar det om att våld, om man ens kan prata om det, i cyberrymden är så annorlunda mot våld i, eh, köttrymden. Att slå ner en nazist eller bränna en pälshandel är en radikalt annorlunda upplevelse än att förgöra en person digitalt genom att publicera känslig information på nätet.

Det faktum att Anonymous är i hög grad allierad med Occupy-rörelsen är också förvånande, med tanke på att Anonymous gissningsvis i hög grad består av unga teknikintresserade män, vilket knappast kan beskrivas som samhällets mest progressiva kraft. Jag gissar här att deras sanningspatos och frihetliga läggning driver dem i denna oväntade riktning, men det ska onekligen bli spännande att se vart det tar vägen.

För som det är nu innebär Anonymous inblandning att Occupy-rörelsen på ett helt nytt sätt kan använda internet som sitt slagfält, ett extremt kraftfullt vapen i ett informationssamhälle. Att denna etablering ens har varit möjlig beror förmodligen på oklarheterna kring Internet: vad ska vi ha det till och vems ansvar är det egentligen?

Därför tror jag att denna fråga kommer att bli en mycket central punkt i konflitker i framtiden, där hela regeringar både kommer att driva lobbyverksamhet för kontroll av internet så att de ska slippa läckor av sina smutsigare hemligheter, samtidigt som de tillsätter rena cyberkrigskommandon och datapoliser för att utföra aktiva insatser. USA och Kina har förstås redan börjat.

Problemet med webapplikationer och fri mjukvara (igen)

Det här låter som ett gammalt rant, men jag ska försöka hålla mig borta från att upprepa mig mer än nödvändigt. Mycket av min gamla kritik mot webapplikationer är ändå underminerad: när man började bygga dem så var det förvisso som att skriva program i worddokument, men i och med HTML5 och CSS3 har webstandarderna rört sig långt bort från dokumentstandarden och snarare blivit någon sorts gränssnittsstandard.

Detta har förstås både bra och dåliga konsekvenser, men alldeles oavsett så kan jag inte längre driva argumentet att webapplikationer är något i grunden tekniskt efterblivet längre. Åtminstone om man inte räknar med argumentet att det är dumt att återinföra tunna klienter (vilket förstås fortfarande håller). Många webapplikationer håller dock på att lösa även detta problem med avancerade funktioner för mellanlagring och synkronisering av data mot servrarna.

Dessutom finns det en juridisk-teknisk lösning för ofriheten i applikationerna i form av framför allt AGPL, som effektivt täpper till nätverkshålet. Om vi bortser från att ingen av de mer välanvända webapplikationerna följer AGPL så får vi ändå anse att problemet är hyfsat löst i teorin, om än inte i praktiken.

Men det kvarstår ett problem som är långt mycket viktigare. Syftet med fri programvara är ju att ge dataanvändaren kontroll över sitt datande, dels för att förhindra asociala situationer (typ att man har en hög kod som man inte får dela med sig av), dels för att ge användaren en ärlig chans att förbättra sitt datande.

I och med AGPL-lösningen hamnar kontrollfrågan och framför allt den sociala aspekten på skam. För är det verkligen koden vi vill ha? Är det verkligen i Googles kod som dess värde ligger? Svaret är att nej, det är det inte. Vi använder inte Gmail för att det är så jävla bra (eller ok, webklienten är ju typ den bästa web-epostklienten någonsin), utan för att det finns. Koden för Gmail skulle vara i princip värdelös för oss som användare! Det är nätverkseffekterna, olika synergieffekter och skalfördelarna vi är ute efter, snarare än just den tekniska lösningen.

För att exemplifiera problematiken med övergången till »molnet« kan vi tänka oss ett företag som gjort en klon av Diaspora och nu kör den under namnet Z-ION. Låt oss säga att vi har alla våra vänner och foton på Z-ION, samt att våra föreningar är organiserade där. Låt oss anta att en dag kundgör Z-ION att de ska införa någon vansinnig policy, typ att de avsätter en liten del av sidan specifikt för muslimer, där de bara under sträng övervakning får kommunicera med icke-muslimer. Dessutom raderas eller låses muslimernas konton slumpmässigt med jämna mellanrum, samt även konton tillhörande personer som kommunicerar med dem.

Z-ION besvarar kritiken mot denna helt vansinniga policy med att det är de som kör servrarna och de får göra vad de vill med dem. Dessutom påpekar de att om någon inte gillar hur de kör sin server så är de fria att köra en egen.

Sagt och gjort: en utbrytarfraktion bildar en ny server. Ett första problem dyker upp: AGPL (såvitt jag vet) ger inte användarna rätten att hämta ut sin data. Men ok, låt oss anta att detta har implementerats som ett tillägg. Nästa problem: AGPL kräver inte heller att det ens formellt ska finnas möjligheter att nätverka med servern från andra servrar.

Denna fråga är mycket snårigare än frågan om rätten till datan. Tjänsten tillhandahåller ju på sätt och vis alltid datan på ett människoläsbart sätt, så ett krav på att den även ska finnas på ett datorläsbart sätt är inte på något sätt orimligt. Att däremot kräva att serveradministratörerna inte bara ska implementera funktionen att nätverka med andra (konkurrerande) servrar, utan också faktiskt tillåta nätverkande med dessa är ett mycket tveksammare krav som bryter med allt vad liberalt rättighetstänkande är. Och utan server-till-server-kommunikation är vår Z-ION-klon mer eller mindre värdelös, eftersom värdet i ett socialt nätverk främst ligger i just nätverket.

Här kan vi dock tänka oss en lösning som går ut på att dessa krav om nätverksmöjligheter ställs från någon sorts samhällig myndighet på alla tjänster som överstiger en viss nätverksnivå och som börjat bli rena samhällsinstitutioner. Denna myndighet skulle kunna ha till uppgift att kontinuerligt granska hur nätföretag hanterar sina nätverkseffekter och förhindra monopolbildning.

Men även om vi både får möjligheten att nätverka och möjligheten att fly med vår data så finns det ett viktigt problem av närmast ontologisk karaktär. Kort uttryckt: är vår kopia av Z-ION verkligen samma eller ens likadan som originalet, eller ingår det något i detta dator-data-människa-assemblage som inte är kod, och som i värsta fall inte heller är kopierbart?

För att omformulera åter igen: förhåller sig verkligen användaren till en webapplikation på samma sätt som till en offlineapplikation? I vissa fall skulle jag säga att det är så, men i långt ifrån alla och verkligen inte med sociala nätverk.

Värdet i ett enskilt offlineprogram är för användaren att han eller hon kan använda det. Värdet i ett nätverk eller en webapplikation är dels att den allitd är tillgängligt, d.v.s. att någon betalar server- och nätverksavgifter samt har ett helt team av ingenjörer som kontinuerligt löser drift- och säkerhetsproblem, dels att det redan finns andra människor där att nätverka med, något jag bittert erfar varje gång jag kommunicerar med min enda vän på Diaspora.

Sociala nätverk är (som de är konstruerade nu) med nödvändighet stora. Facebook och Google har inte blivit gigantiska kolosser av en slump eller för att de är så bra, utan av en teknisk nödvändighet: när snöbollen väl börjat rulla kan man inte stoppa den, och att stara en ny går helt enkelt inte.

Notera att min determinism i det ovanstående påståendet inte är hård, utan mjuk. Den nuvarande tekniska utvecklingen har lett fram till denna situation. Det innebär inte att den inte kan leda bort från den, även om det nu finns starka krafter för att behålla ordningen, av dem inte minst latheten och slentrianen.

Min gissning är att DNS-systemet och WWWs tekniska utformning till stor del är ansvariga för att det har blivit som det blivit. För att snabbt hitta en dator på internet behöver man i princip ha ett domännamn. För att ha ett domännamn behöver man i princip ha en fast server stående i ett serverrum, speciellt som ändringar i DNS propagerar sig över nätet skrämmande långsamt.

Från detta kommer behovet av- och möjligheten till- en fast punkt i nätet, och ett nav materialiserar sig spontant som ett svar på detta behov – Google. Det är detta faktum som molnfetischismen döljer – min data är inte i ett abstrakt moln av olika nätverkade datorer, de är på Googles servrar. Min data är inte mer i ett »moln« än mina värdepapper på banken är det.

Så med andra ord: det enda sättet att göra slut på nätfascismen är att göra slut på klient-servertänkandet och därmed hela webben och DNS som de ser ut idag. Naturligtvis är det inte en övergång som kan ske direkt, och med största sannolikhet kommer den aldrig att avslutas.

Men även i och med det mer jämlika decentraliserade internätet kommer vi att förlora en viktig del av vår frihet, helt enkelt därför att vårt datande nu görs mycket mer socialt än tidigare. Kanske måste vi tänka om hela konceptet med fri mjukvara, och då helst på ett sätt som lutar sig mindre mot ett socialliberalt rättighetstänkande.

För vi måste komma ihåg att koden har alltid varit ett medel, inte ett mål. Det är framför allt här jag tror att Fri programvarurörelsen och Open Source-rörelsen skiljer sig, i det att den senare fokuserat just de tekniska aspekterna över de sociala och ideologiska. Tyvärr har den senares frammarsch på den förras bekostnad lett till att diskussionen om målet förs alltför sällan. Och följdaktligen har vi heller ingen lösning på webapplikationsproblemet.

Vad har Star Trek med min bokscanner att göra? Eller: att döda ett monopol

I projektredovisningen för bokscannern nämnde jag kort varför jag tyckte att det var viktigt att bygga den. Nu tänkte jag utöka mitt argument lite i ett eget inlägg.

Så, vad är egentligen anledningen att jag inför varje kurs spenderar timmar med att hitta alla böcker som vi behöver, scannar dem och sedan ser till att mina klasskamrater får tillgång till kopiorna? Det finns väl egentligen två saker som behöver motiveras här: dels varför jag gör allt arbete (för det ligger trots allt över en timmes arbete i varje bok), dels varför jag tar risken att sprida böckerna.

Egentligen finns det flera argument för, så låt mig ta dem i ordning, med det starkaste sist. Svagast väger kanske min egna bekvämlighet. Jag har tillgång till en läsplatta, så om jag scannar alla böckerna slipper jag släpa runt på fysiska böcker (som är tunga och bängliga). Jag kan dessutom söka i dem, och dessutom kan jag plocka ut den text jag har markerat i böckerna som ett dokument, vilket är praktiskt när man ska repetera det man läst eller skriva hemtentor. Dessutom innebär detta att jag inte behöver sitta och hålla på biblioteksböcker, utan kan lämna tillbaka dem så att andra kan låna dem.

Utöver detta ser jag också mitt kopierande som en ren propagandahandling för Star Trek-samhället, eller kanske snarare mot anti-Star Trek. Peter Frase har skrivit mycket om anti-star Trek, men för den som inte är pigg på att läsa flera långa och ganska svåra texter så kan jag förklara kort. I Sci-fi-serien Star Trek har mänskligheten i princip löst alla problem och ägnar sig åt självutveckling och fredligt utforskande av rymden.

Lösningen på en stor del av dessa problem (bl.a. kapitalismen) är kombinationen av replikatorer – maskiner som kan tillverka nästan vad som helst åt vem som helst – och obegränsat med energi genom warp-reaktorer. Detta har lett till ett samhälle där det privata ägandet av produktionen i stort sett är avskaffat, och där man i regel inte har så många ägodelar eftersom man kan tillverka allt man behöver när man behöver det. Med andra ord: den brist som driver kapitalismen är helt avskaffad. Det vore meningslöst att byta och handla när alla har allt redan.

Peter Frase har sedan funderat över under vilka omständigheter kapitalismen (och dess nödvändiga brist) skulle kunna behållas i Star Trek-universat (snälla, glöm bort rebooten i.o.m. den senaste filmen som är den största publika gravskändningen någonsin). Det han har konstaterat är att det enda sättet är att införa immateriellt ägande. Med hårda upphovsrättsliga begränsningar på instruktioner till replikatorerna skulle man kunna återintroducera bristen. Alla skulle tvingas betala licensavgifter till de som uppfann »tea Earl grey, hot«.

Tyvärr har vi ju inga replikatorer, men det är lätt att tänka sig vad som skulle hända om de fanns. Tänk hur patent gör HIV-bromsmediciner jättedyra för de fattiga länder som behöver dem mest. Tänk hur fri programvarurörelsen hålls tillbaka av elektronikföretagens patentportföljer och inlåsningsmonopol. Tänk på anti-piratkopieringen, skivbolags- och filmlobbyn och på deras försök att censurera Internet. Och så vidare. Generalisera detta till en debatt om maskiner som kan tillverka allt, inklusive sig själva.

Piratkopieringens (och Star Treks) natur är kommunismens. Finns det något som bättre implementerar slagordet »allt åt alla«? När ett immateriellt föremål är producerat (när boken är scannad) tillhör den potentiellt alla människor i hela världen – samtidigt. För evigt. Ingen behöver förlora något, oavsett vad immaterialrättslobbyn säger om »stöld av inkomster«.

Men det starkaste argumentet för mitt kopierande är inte detta, hur mycket jag än älskar Star Trek och hatar kapitalismen. Det finns nämligen något som är värre än en fritt oreglerad kapitalistisk marknad, och det är en monopolkapitalism. Och en sådan är marknaden för kurslitteratur ett mycket bra exempel på.

För det första är efterfrågan på kurslitteratur, som ekonomerna säger, inelastisk. Studenterna måste ha sina böcker, oavsett hur svåra de är att få tag på och oavsett om priset är rimligt eller inte. Det är därför böcker ofta är så dyra, och så svåra att få tag på.

Dessutom finns förstås tendenser till monopol även här – alla som läst naturvetenskaplig inriktning på gymnasiet minns de omotiverat dyra Texas Instrument-räknarna som man var tvungen att ha eftersom bara de var kompatibla med skolans labbutrustning. Gissa vilka som gett skolorna denna utrustning billigt eller gratis. Gissa vilka som gett lärarna utbildning i TI-räknare billigt eller gratis.

För det andra så produceras många kursböcker av offentligt anställda forskare och akademiker. Böckerna är med andra ord finansierade med offentliga medel, som praktiskt taget skänks bort till bokförlagen.

För det tredje så ägs rätten att ge ut boken av ett och endast ett förlag, vilket skapar en monopolsituation där de kan ta väldigt höga priser, speciellt för smalare kursböcker. Hela deras administrationskostnader o.s.v. måste då bäras av studenterna, vilka definitivt har lägre lön än samtliga förlagsanställda.

Eftersom vi som studenter måste läsa våra böcker finns det inte speciellt många sätt att protestera mot denna situation, även om man råkar tro på konceptet konsumentmakt (vilket jag inte gör). Det enda alternativet, frånsett kopiering, är att låna böckerna på bibliotek.

Men att låna böckerna är en lösning som bara fungerar för några få studenter. De andra måste köpa dem. Det enda återstående alternativet är att hacka systemet och producera på ett annat sätt (d.v.s. genom kopiering). Mot produktionen: motproduktionen! Att kopiera är att vända på– eller åtminstone stoppa flödet av resurser från de med minst till de med mest. Dessutom har historien lärt oss att det bästa sättet att förändra världen är att förändra produktionen.

Varför är det då motiverat att ta risken? Problemet i sammanhanget är ju att det huvudsakliga s.k. »brottet« är kopieringen. Men den är helt riskfri för mig! Det syns inte på böckerna att de har blivit kopierade om jag bara håller mina digitala kopior för mig själv. Min handling blir alltså bara straffbar i praktiken genom min solidaritetshandling att dela ut böckerna till mina klasskamrater. Bara det i sig är en vidrig logik – var egoistisk och belönas, var solidarisk och bestraffas. Det i sig gör det värt att ta risken.

I övrigt så är risken mycket liten. Och min risk är en droppe i det hav av potentiell nytta som mitt risktagande tar – ett solklart fall där mitt eget behov av trygghet trumfas av de mångas behov. Det är logiskt. Dessutom kan jag ju hoppas att mina kamrater hjälper till att betala mina eventuella böter.

Men är det värt risken? För att praktiskt bekämpa en vidrigt monopolistisk industri som suger ut ekonomiskt svagare personer, att praktisera faktisk kommunism och att bekämpa anti-Star Trek-samhället? Ja, utan tvekan. Det är värt att döda för det.

Projektredovisning: Aquaponics

Alla bilder i det här inlägget är tagna och efterbehandlade av Per Enström eftersom jag varken har någon bra kamera eller speciellt bra förmågor.

Under sensommaren och hösten har jag hållit på med mitt andra stora projekt det här året, nämligen en aquaponicsodling till mitt studentrum. Aquaponics är alltså en kombination av »aquaculture« och »hydroponics« som går ut på att man odlar växter i ett medium, och förser dem med vatten som berikats med näringsämnen (läs: bajs) från en tank med fiskar.

Fördelen med denna typ av odling (förutom att den är sjukt häftig) är att man relativt lätt kan smacka upp den mitt i stan – exempelvis i sitt studentrum. Den drar dessutom (ironiskt nog) mindre vatten än att odla i marken.

Inspiration och vägledning kommer från Kattastrands kretsloppsodling. Deras hemsida är ful som stryk och presenteras med felaktig teckenkodning, men om man ställer om den för hand (alternativt gissar alla svenska vokaler) så går det ändå. De har det mesta man kan tänkas vilja veta, inklusive kostnadsberäkningar (som jag dock upplevde som mycket optimistiska).

Just nu odlar jag (som ni kan se) basilika. Det medium jag använder är en kombination av smågrus jag hittat ute och lecakulor, givetvis båda två noga avsköljda. Hyllan är från Ikea (men jag hittade den i källaren), och detsamma gäller för de båda plastkärlen, som är från serien SAMLA.

Fisken är kardinalfiskar (ej att förväxla med kardinaltetror), närmare bestämt nio stycken (den tionde dog kort efter inköpet). Anledningen till att jag valde dem, förutom att jag hade ett så litet kärl, var främst att de är lätta att fås att föröka sig i fångenskap, samt att de tål låga vattentemperaturer och alltså inte behöver en doppvärmare. Sedan bilderna togs har jag också lagt i flera stenar för fiskarna att gömma sig bland.

Gödslingen/bevattningen av växterna sker periodvis med hjälp av en timer, den översta på bilden ovan. Den undre är köpt på Ica och styr lampan, men köp inte din där för den började skramla en massa kort efter att jag köpte den. I bakgrunden kan man även beundra min förfärliga tapet.

Lampan jag använder köpte jag på Kjell och Company och är egentligen tänkt att användas i fotostudior, men uppenbarligen fungerar den till odling också. Intressant nog verkar den stråla frekvenser som är bättre för den gröna basilikan än den lila, för nästan alla mina lila basilikaplantor har varit sjukliga redan från början, medan den gröna frodats. Om någon skulle orka vore det väldigt spännande att se om det går att få tag på en lampa som har rätt frekvenser (och inga andra) för fotosyntes.

Lamphållaren fick jag från mina föräldrar, men tyvärr hade den en liten lampsockel, så jag köpte en stor sockel på Clas Ohlson och byggde in i den, därav silvertejpen och buntbanden.

Pumpningen sker med hjälp av en vanlig akvariepump som kör en kvart var sjätte kvart, också med hjälp av en enkel timer. Den är sedan kopplad till ett PVC-rör från Biltema.

Som synes kommer vattnet bara ut genom en slang: det sitter inget filter eller så i den. Detta för att så mycket jox som möjligt från fiskarna ska komma med.

Vattnet rinner sedan tillbaka genom en bordgenomföring från Biltema som jag har satt fast med silikonlim i botten på växtlådan. Nedstucken i bordgenomföringen sitter en skarv till ett elrör som jag har borrat hål i så att vattnet ska kunna rinna ner utan att ta med sig lecakulorna eller gruset. Den uppstickande flärpen är ett buntband som sitter där för att se till så att luft kan röra sig igenom röret, så att jag slipper vakna mitt i natten av högljudda sörplande ljud.

De små växterna bredvid är någon sorts kål: antingen pak choi eller mizunakål. Jag har inte fått dem att ta sig i min odling, förmodligen för att det är för varmt i mitt rum (de växer nämligen inte bättre i kruka).

Utöver pumpen som förflyttar vattnet har jag också en något starkare cirkulationspump på omkring 400 l/h (tror jag) som syresätter vattnet. Från början hade jag en luftpump med syresten, men den lät som ett tröskverk. När jag frågade i akvarieaffären så sa de att man nästan helt har slutat använda dem just för att de är så högljudda och ineffektiva.

Jag har också, sedan bilderna togs, skaffat en foderautomat för fiskarna (tydligen heter det inte »fiskmatare«, fast det verkar mest rimligt).

Nittitalet, cyberpunken och världens undergång

Genren Cyberpunk uppstod mer eller mindre med publiceringen av William Gibsons Neuromancer 1984. Jag har diskuterat genren och min kärlek till den tidigare, så det ska jag inte stanna vid i det här inlägget. Däremot ska jag diskutera Cyberpunken i förhållandet till 90- och 00-talen.

Genren levde ett förhållandevis kort liv: efter att ha uppstått i mitten på 80-talet så dog genren i det närmaste helt en bit in på 00-talet. Det finns väl flera tänkbara orsaker, men jag har hört att Gibson själv ska ha sagt att det inte var någon idé att fortsätta: världen är ju typ som i böckerna nu. Och visst ligger det nära till hands, inte minst med tanke på hur viktigt nätsäkerhet har blivit och hur storföretagens makt visavi staternas ständigt verkar öka.

Det närmaste vi kommer modern cyberpunk är istället filmer som Inception. Notera speciellt vad det är som saknas i just den filmen förresten: hackers bryter sig inte längre in med hjälp av »frivilliga hallucinationer« i företags datornätverk, utan använder drömmaskiner (som läckt från militären) för att hacka enskilda företagsledare. Däremot har företagen fortfarande fruktansvärt stor makt i jämförelse med stater, och teknik används fortfarande på andra sätt än det var tänkt från början.

Varför denna förändring? En rimlig förklaring är att cyberpunken uppstod under en tid då vi fortfarande kämpade för att reda ut det här med datorer. Det låg nära till hands att tillskriva dem magiska egenskaper, och detta kan också förklara alla »sajber«-ord, dotcom-bubblan och det slentrianmässiga användandet av datorgränssnitt i design (bland annat har jag sett en Absolute Music-skiva med vad som ser ut som ett GUI från gamla Mac OS 9).

Därför kunde man också föreställa sig Nätet som en plats. Under 00-talet kom det här ganska mycket att ändras: visserligen kan man nu hänga »på facebook«, men det är bara en nät-plats bland många. Till detta hör såklart också enorma tekniska förändringar: försök jämföra en websida från slutet av 90-talet med en från slutet av 00-talet!

Men 90-talets svårighet att hantera den nya tekniken är bara en aspekt av en mycket större osäkerhet, som kanske tydligast symboliserades av rädslan för »millenniebuggen«. Bakom rejvkulturen, den plastiga dunka-dunka-musiken och bilderna av ett hedonistiskt partajande i storstadsmiljö skymtar en stor osäkerhet. Kommer vi att överleva millenniet? Vad händer nu? Är historien över nu? För en visualisering rekommenderar jag slutet på filmen Strange Days.

Notera också hur skyskrapor återkommer som en symbol för rikedom och välstånd, lite som fabriksskorstenarna en gång symboliserade moderniteten.

Det är inte bara osäkerheten inför tekniken (titta speciellt på avsnittet »I, Robot… You, Jane« av Buffy The Vampire Slayer – trailer finns på youtube) som är tydlig i 90-talets media. Samtiden verkade också ha svårt att bestämma sig för om den skulle hylla madonnan (Blümchen) eller horan (Vengaboys), alternativt en mix av båda. Som ett exempel på det sistnämnda kan nämnas Aquas hela produktion som typ bygger på spänningen mellan oskuldsfullhet och sexuell tillgänglighet/åtrå. Det hela ges en extra ironisk innebörd om man betänker att framförallt Aqua riktade sig primärt till barn, som garanterat inte förstod undermeningen. Åtminstone gjorde inte jag det.

Hur som helst – millenieskiftet kom och vi överlevde. Eller gjorde vi det? Under nittiotalet hade inte kapitalismen hunnit bryta ihop. Löftet om medelklasslivet och en evig dotcom-rikedom fanns där fortfarande. Kanske gick världen under där någon gång strax före 00, och nu är vi i Helvetet allihopa, där det varken finns en historia eller en framtid, bara Kapitalism för evigt (d.v.s. det Mark Fisher kallar för Capitalist Realism).

Gud, jag känner mig gammal.

Kort om TaskRabbit

Jag har feber och är lite borta, så jag ska försöka hålla mig kort. Wired skriver om en relativt ny nättjänst vid namn TaskRabbit, som är ett slags »eBay för arbete«. Människor som vill ha olika uppgifter gjorda – allt från att bygga Ikea-möbler till att gå ut med hunden – annonserar om detta på sajten. Potentiella arbetar hör sedan av sig med sina lägsta bud, och beställaren får välja vem som får utföra arbetet.

Nu finns det förstås redan liknande sidor (jag tänker på amerikanska Craig’s List och svenska, men det finns två mycket viktiga skillnader. För det första så är TaskRabbit mycket snabbare – mikroblogging och realtidsuppdateringar är en integrerad del av tjänsten, som också har en iPhone/iPad-applikation. För det andra så är systemet uppbyggt som ett spel, komplett med achievements och poäng som man behöver för att »levla upp« så att säga.

Det här är en tendens som jag är säker på att jag har läst någon annan redogöra om – att fler och fler saker i våra liv »förspelas« så att vi plötsligt ska låtsas att vi har roligt när vi är ute i snöstormen för att köpa hundmat till någon annans jävla hund (autentiskt exempel). Det känns också som ett sätt att haka in sig på våra egna belöningsmekanismer (»yes, jag köpte hundmat, femton poäng till mig!«) och vända dem mot oss. Typ som man gör med små barn för att de ska hjälpa till i köket.

Vad ligger bakom? Tja, en hög arbetslöshet nämns i Wireds artikel. Men det är också ganska uppenbart att den lever hårt på myten om den lyckliga och flexibla arbetaren i sci-fi genrens favoritform: kuriren.

I kommentarsfältet på Wired ställer dock någon den uppenbara frågan: är det verkligen lagligt? Ingen betalar ju arbetsgivaravgift (eller skatt för anställningen), ingen har något personalansvar och så vidare. Kurirerna får gå igenom en noggrann intervjuprocess eftersom »de arbetar i beställarnas hem«, men såvitt jag har kunnat utröna görs ingen kontroll av de som beställer.

Detta blir extra dåligt eftersom det är helt omöjligt att hålla någon ansvarig för exempelvis sexuella trakasserier – eftersom arbetsköpare och arbetssäljare möts öga mot öga så skulle ord stå mot ord i en brottsutredning.

RSS-flöden, rekommendationer och statistik

Jag prenumererar på en hel del flöden, fler än man rimligen skulle önska. Som läsare använder jag emacs ihop med epostlösningen notmuch och programmet sluk. Inlägg i de olika flödena som jag tycker att andra borde läsa markerar jag med taggen »rek«. Senare manglas dessa om genom ett script och laddas upp som ett eget RSS-flöde.

Bara på kul bestämde jag mig för att skriva ett program som räknar statistik på hur mycket av det som kommer in som också går ut. Resultatet var inte helt oväntat: omkring 6% av det som kommer in tycker jag är värt att låta andra läsa också. Det säger något om kvalitén på mitt inkommande material!

Men programmet ger mer detaljerade svar än så. Här följer en lista över de bloggar jag har rekommenderat inlägg från, sorterade på snitt mellan antal rekommenderade inlägg per nedladdat inlägg (i ett format mycket likt det som mitt program producerar):

  • »hurdnews«: 1 av 1 (100.00%)
  • »guldfiske«: 2 av 2 (100.00%)
  • »emacsfu«: 1 av 1 (100.00%)
  • »utredningen«: 10 av 10 (100.00%)
  • »jobrekommenderar«: 4 av 7 (57.14%)
  • »skumrask«: 38 av 69 (55.07%)
  • »copyriot«: 18 av 34 (52.94%)
  • »researchgruppen«: 1 av 2 (50.00%)
  • »vaensterekonomi«: 2 av 4 (50.00%)
  • »xkcd«: 15 av 33 (45.45%)
  • »rymdkoloni_rekommenderar«: 84 av 190 (44.21%)
  • »planka«: 6 av 14 (42.86%)
  • »tuggarna«: 2 av 6 (33.33%)
  • »masteringemacs«: 1 av 3 (33.33%)
  • »theinvisiblethingslab«: 8 av 31 (25.81%)
  • »emma«: 2 av 8 (25.00%)
  • »motkraft«: 11 av 45 (24.44%)
  • »bkuhn«: 3 av 14 (21.43%)
  • »forsk«: 1 av 5 (20.00%)
  • »dagenskonflikt«: 1 av 6 (16.67%)
  • »gnutelephony«: 2 av 12 (16.67%)
  • »cringley«: 4 av 25 (16.00%)
  • »alliansfrittsverige«: 76 av 481 (15.80%)
  • »abstrusegoose«: 3 av 21 (14.29%)
  • »lagochavtal«: 3 av 22 (13.64%)
  • »zettermark«: 5 av 37 (13.51%)
  • »kairotillvarlden«: 2 av 16 (12.50%)
  • »arbetaren«: 7 av 61 (11.48%)
  • »slashdotlinux«: 9 av 79 (11.39%)
  • »visomaldrigsasexist«: 1 av 9 (11.11%)
  • »hsecurity«: 41 av 370 (11.08%)
  • »slashdotscience«: 30 av 292 (10.27%)
  • »eff«: 7 av 75 (9.33%)
  • »diaspora«: 2 av 22 (9.09%)
  • »wiredthreatlevel«: 4 av 44 (9.09%)
  • »schneier«: 8 av 92 (8.70%)
  • »anonops«: 4 av 48 (8.33%)
  • »krebsonsecurity«: 4 av 49 (8.16%)
  • »cyberpunkreview«: 1 av 13 (7.69%)
  • »osnews«: 20 av 262 (7.63%)
  • »peerreviewscience«: 10 av 143 (6.99%)
  • »wired-top«: 68 av 992 (6.85%)
  • »girlwonderblog«: 1 av 16 (6.25%)
  • »freegamer«: 2 av 33 (6.06%)
  • »axisofeval«: 1 av 17 (5.88%)
  • »haiku-blogs«: 1 av 17 (5.88%)
  • »arstechnica«: 17 av 296 (5.74%)
  • »notexactlyrocketscience«: 10 av 178 (5.62%)
  • »planetdebian«: 19 av 376 (5.05%)
  • »planetxmms2«: 1 av 20 (5.00%)
  • »socialismandorbarbarism«: 3 av 60 (5.00%)
  • »oatmeal«: 1 av 20 (5.00%)
  • »arsopen«: 3 av 61 (4.92%)
  • »wired«: 13 av 275 (4.73%)
  • »forskningochframsteg«: 2 av 45 (4.44%)
  • »leninstomb«: 2 av 51 (3.92%)
  • »svd-nyheter«: 4 av 104 (3.85%)
  • »skepchick«: 3 av 79 (3.80%)
  • »dn-kultur«: 7 av 238 (2.94%)
  • »singularityhub«: 3 av 123 (2.44%)
  • »science«: 5 av 217 (2.30%)
  • »p2pfoundation«: 2 av 169 (1.18%)
  • »libcom«: 1 av 96 (1.04%)
  • »reddit-lisp«: 1 av 168 (0.60%)

Som ni kan se så är reddit lisp och libcom två goda kandidater för borttagning, eftersom de verkar producera en hel massa skräp (det är också helt sant – speciellt libcom verkar ha sämre datasäkerhet än federationen i Star Trek så att de hela tiden blir hackade och öser ut reklam för billiga apoteksprodukter). Rent generellt verkar det (baserat på den här listan) vara en bra idé att skriva få inlägg än att skriva många. Föga förvånande kommer också mina favoritbloggar Copyriot och Skumrask högt på listan.

Värt att notera är också de höga placeringarna för Jobs och Kristoffers båda rekommenderatflöden. Att de kommer så högt innebär att konceptet förmodligen är en bra idé – de höjer signal-to-noise-kvoten!

Listan förbiser alltså helt bloggar som inte har något enda rekommenderat inlägg.

Haiku och det grafiska gränssnittet

Haiku är en fri implementation av (och fortsättning på-) det ofta bortglömda operativsystemet BeOS. Det intresserar mig väldigt mycket eftersom det just nu är ett av få operativsystem som faktiskt är typ användbart (förlåt, Plan 9 9front), men som samtidigt försöker göra saker annorlunda. Och, kanske mer intressant, sammanhängande.

GNU/Linux är – skulle jag vilja påstå – det minst dåliga operativsystemet jag känner till, alla faktorer sammanvägda, men det är egentligen inte så mycket ett operativsystem som ett ekosystem av programvara. Detta har både bra och dåliga effekter, och en av de mest framträdande dåliga är att den ena handen inte vet vad den andra gör. Det finns ingen förenande tanke helt enkelt.

Efter att ha läst en lång text om Haikus inställning till sitt grafiska gränssnitt så är jag klart imponerad. Här finns uppenbarligen en tanke – något som hela jävla industrin inte verkar ha haft på evigheter. Anledningen till att varenda program nuförtiden ska ha tabbar är att GUI-utvecklarna helt har gått vilse i sina metaforer, vilket tvingar användaren till att bli en mjukvara som sorterar fönstren åt operativsystemet.

Vad är det som säger att tabbarna inte skulle kunna vara en fönsterhanterargrej? Speciellt nu som samma program gör tusen helt olika saker: dels kör det ofria mailprogrammet Gmail och ordbehandlaren WordPress, dels visar dokument i HTML-format. Det är ju två helt olika saker!

Tänk att till exempel kunna tabba ihop en debugger, en terminal och ett utvecklingsprogram, så att de får en flik var. Tänk att ha bättre kopiera och klistra in, en som faktiskt förstod vad det var för data som kopierades och klistrades in!

Problemet med att ha ett digitalt skrivbord och en digital papperskorg är nämligen mycket lika de som kommer av deras fysiska motsvarigheter: papperskorgen måste tömmas, och skrivbordet blir fullt med skräp om man inte städar det.

Mina förslag (för ett framtida önske-operativsystem) är som följer:

  • Inför ett stenhårt sammanhängande GUI-paradigm och följ det. En sån strategi (jag kommer att tänka på Apple) är helt värdelös för ofri programvara, eftersom koden är bortslösad på alla som inte gillar detta paradigm. Men om det är fri programvara så är det möjligt och t.o.m. önskvärt att samma kod används för många olika saker, eftersom det garanterar största möjliga flexibilitet och testning. Det är det vi har distribuerade versionshanteringsprogram för!
  • Baka in stöd för Unicode och alla andra såna självklarheter i operativsystemet från början.
  • Låt konstruktörerna växa upp i en låda i skogen så att de inte blir skadade av alla andra halvrumpade GUI-implementationer.
  • Läs den forskning som finns på människa-datorinteraktion.
  • Fundera jävligt noga över vilka metaforer som ska ligga till grund för operativsystemet.
  • Ha bara en jävla nivå för interaktion med systemet, alltså inte som DOS och Unix att man har en gränssnittsnivå för användaren som är jättelåg (DOS, konsolen), och en som är mycket högre (X11, gamla Windows) och som ska försöka översätta och kompromissa.
  • Bygg systemet för att hantera data – och konstruera filsystem och gränssnitt efter det.
  • Återuppväck Xerox PARC-filosofi. Se till att det går att gå direkt från symboler/objekt i datorn till koden på ett pedagogiskt sätt. Och att koden är läsbar så långt det är möjligt. Se också till att systemet tar ansvar för denna kraftfullhet med allt vad det innebär av stöd för att ångra sina ändringar och så vidare.
  • Använd konceptet med olika arbetsytor för olika uppgifter – titta på hur QubesOS gör för att omsätta det till säkerhetstänk.
  • Alla användare ska också vara programmerare, helst utan att de märker det själva.
  • Släng ut det flytande fönster-baserade GUI-paradigmet genom, öh, fönstret. Det är helt efterblivet.