Managing your music library and digital audio player with musync

One of my few (or rather: my only) successful programming projects is musync. It began as a weekend hack to solve the growing problem of how to selectively synchronize music to my portable digital audio player into a somewhat coherent file/directory structure.

Shortly after musync became practically usable, however, udoprog started hacking on it, and the current version is only loosely related to my old code (that was, for all I know, lost — for the better I believe). My current role in musync’s development is more or less reduced to finding bugs and hammering udo on IRC until he fixes them.

So, what musync does is it takes a number of music files (or folders if running in recursive mode) runs a specified command to add them to the file/folder structure according to a given rule, optionally filtering and/or replacing non-wanted characters in the process. The file-folder structure may for example be »artist/album/NN-title.ext«, and the add command could be simply copying the files.

But starting with recent musync versions, commands are Python lambda expressions, and can thus mean running several commands in sequence per file; I, for example, have my add command set to both copying the files to their calculated targets and then telling xmms2, my music player, to add them to its database. Here’s a code snippet for the relevant parts of musync.conf:

[site]
root:           "/var/storage/Musik"
xmms2_sync_lib: lambda file: m.execute("/usr/bin/nyxmms2", "server", "import", file)
add:            lambda src, dest: (sh.copy(src, dest), xmms2_sync_lib(dest))

The rest of the file is, more or less, the sample configuration file; sh and m are imported in the [import] section as explained there, among other things, and they provide musync’s helper functions and the Python shutil library respectively.

To add newly ripped or downloaded music to my collection with musync, all I now need to do is running musync -c site add <files or directories>.

Other uses would include transferring music files (or directories) to a music player, optionally transcoding them to a format of choice in the process  (I keep my collection mostly in FLAC but transcode it to vorbis to save space when I put it on my DAP), maintaining multiple different directory structures of the same music files using (symbolic-) links or making a »shadow root« with sorted symbolic links to unsorted originals still left in the downloads/incoming directory.

Veganska hamburgare MK II

Igår fick jag tips om att skållade linfrön kunde användas ungefär som
ägg i matlagning, och mina hamburgare råkade händelsevis vara slut, så
jag bestämde mig för att experimentera lite. Nota bene att alla
mängder är uppskattningar eftersom jag inte mätte när jag lagade maten.

(blir ungefär 15 stycken ganska stora hamburgare)

Du behöver:

  • 1 gul lök
  • 2 vitlöksklyftor
  • 2 dl solroskärnor
  • ½–1dl linfrön
  • 1 msk tahini (troligen frivillig)
  • ungefär en liter kokta linser/quinoa etc (jag använde mest röda och svarta linser och lite quinoa trefärgs)
  • ströbröd, ev. flera deciliter
  • sojamjöl (frivilligt)

Kryddor:

  • 1 tsk liquid smoke
  • grillkrydda, bjäst, salt, peppar, chilipulver, MSG, koriander, sojasås…

Börja med att koka linser, quinoa eller vad du nu har och att rosta och
hacka/krossa solroskärnorna. Fräs lök och vitlök i en kastrull i lite
olja, ta den av värmen och tillsätt de nu krossade solroskärnorna. Häll
på linfrön, helst krossade, och lite kokande vatten, tanken är att
linfröna ska gegga ihop sig. Jag kokade också upp blandningen här, men
det är nog frivilligt.

Tillsätt tahinin och rör runt. Tillsätt linserna/quinoan och krydda
järnet med dina favoritkryddor. Låt svalna och häll gradvis på ströbröd
och sojamjöl (om du vill) tills du har en lämplig konsistens. Provstek
en liten bit i stekpanna och upprepa påhällandet av ströbröd och
sojamjöl om det behövs.

Stek biffarna i lite olja, jag klickade ner dem i pannan och formade dem
där för att slippa bli geggig om händerna. Akta så att inte oljan
stänker bara.

Dagens snabbmat

Jag kände mig lat vid lunch idag, så jag gjorde »snabbmat« ungefär
enligt följande recept. Du behöver:

  • ruccola, jättemycket ruccola. Jag använde säkert 250g (litet paket)
  • pasta (jag använde 5dl fullkornspasta)
  • sojagrädde, jag använde nästan ett paket på 2.5dl
  • vitlök (jag använde en klyfta, det är nog för mycket)

Kryddor

  • olivolja, kanske en matsked
  • MSG (N.B. bjästen nedan innehåller MSG också!)
  • bjäst (om du har, smakar lite ostigt)
  • koksalt
  • svartpeppar

Hacka allt som ser ut som om det behöver hackas, koka pastan lite för
kort tid (jag kokade min i 7 minuter istället för 8-9 som angavs på
paketet). Häll tillbaka pastan i kastrullen.

Häll på ruccolan, vitlöken och sojagrädden. Tillsätt kryddorna och låt
småsjuda en stund/värmas upp. Smaka av. Klart!

Om du känner att du har mer tid (och tillgång till en mixer) kan du med fördel göra ruccolapesto istället.

E-boksläsare, DRM och ryktena p-bokens död

Fredrik Strage skriver i DNs På stan-blogg om de nyligen lanserade (och hårt marknadsförda) e-boksläsarna att

[han] känner en lika stark kärlek till böcker – oavsett om de är hundörade pocketar eller exklusiva kalvskinnsband – som [han] känner en motvilja mot att ersätta dem med något som liknar en Gameboy.

Här är det värt att fråga sig om vi verkligen kan betrakta dessa mobila enheter som ersättare för pappersböcker. Otvivelaktigt marknadsförs de så, men frågan är om det inte är ett lönlöst företag.

En stor del av upplevelsen av en bok bygger ju på saker som inte kan (eller bör!) digitaliseras; lukt, känsla hos papperet, det faktum att boken nöts (eller inte är nött), att man kan se på boken hur mycket man har kvar, att man kan bläddra fram och tillbaka och ändå se båda sidorna — och så vidare.

Därmed inte sagt att det är dumt eller onödigt med e-boksläsare, bara att de kanske inte borde kallas »bokläsare«. Jag tänker mig snarare en användning liknande den hos PADDs i Star Trek, som en ersättare för tillfälliga utskrifter eller text som man läser främst för textens skull, snarare än för upplevelsen. T.ex. skulle de kunna bli väldigt användbara för att läsa (och korrigera) sina- och andras uppsatser och texter, eller för att ta med sig andras blogginlägg på bussen.

Däremot finns det anledning att jämföra e-bokens tillblivelse med den digitaliserade musiken. Den kanske största skillnaden är att medan musik började lagras som mp3:or mestadels spontant så är e-boken ett projekt framdrivet av en industri. Detta märks inte minst på att nästan alla böcker som kan köpas är kopieringsskyddade från början, medan det inte ens finns en standard för att kopieringsskydda mp3:or.

Det viktigaste med detta är att avsaknad av kopieringsskydd blev normen: när musikindustrin och hårdvarutillverkarna började inse den nya marknadens potential så var ramarna redan satta, och de var satta långt bort från var de ville ha dem.

Så är inte fallet med e-böcker. De är istället något som till stor del basuneras ut från industrin, och även om det givetvis finns högvis med icke-kopieringsskyddade böcker att piratkopiera så säljs så gott som alla läsare med stöd för DRM från början.

Detta är inte bara dåligt för att DRM är dåligt i sig, utan också för att de samtida e-boksformaten garanterat kommer att åldras och bytas ut, och till slut kommer vi att ha en hel massa e-böcker som är väldigt svåra att läsa. För att inte tala om de formatkrig som garanterat kommer att uppstå.

Med andra ord tror jag inte att Strage behöver oroa sig för pappersbokens död inom de närmsta hundra åren åtminstone. Det är inte ens säkert att e-boken överlever sin jungfrufärd, så klantigt som industrin lanserar den.

Vad är en social konstruktion?

Jag läser genusvetenskap (nu B-kursen), och ett vanligt begrepp som kommer upp är »social konstruktion«. Ofta förklaras det inte i relation till något annat, utan får mest stå för sig själv. På några ställen (utanför litteraturen) har jag t.o.m. sett det användas som ett slagord!

Själv har jag, som sur materialist och hårt inskolad i den positivistiska vetenskapssynen, svårt att acceptera detta begrepp rakt av, och framför allt har jag svårt att se vad det skulle tillföra analysen, men så finns det också olika typer av konstruktivistiska synsätt, och det är inte riktigt rättvist att dra dem alla över en kam.

Härom dagen var jag ute och handlade mat med några vänner, och de stod vid köttdisken och skulle köpa köttfärs. Någon sorts halvallvarlig diskussion runt detta uppstod, och jag sa på skoj att »äh, kött är bara en social konstruktion«.

Senare började jag fundera på hur jag skulle kunna motivera detta påstående, och insåg att kött är en social konstruktion i någon bemärkelse. När vi tänker på kött tänker vi till att börja med på olika saker. Kött som kategori har olika gränser för olika människor; jag som vegan t.ex. gör ingen skillnad mellan fiskkött, fågelkött eller däggdjurskött, men det är inte speciellt ovanligt att köttätare gör det. Vissa »vegetarianer« äter ju t.o.m. fisk!

Dessutom tänker man ju inte på kött som muskelmassa från något djur som behandlats på olika sätt och förpackats; de flesta (jag åtminstone) tänker snarare på olika rätter de skulle kunna laga av köttet eller på hur det smakar, eller på vilken sorts djur det kommer ifrån. Dessa föreställningar är ju också socialt och historiskt specifika; för andra produktionsförhållanden och skulle köttet rimligen betraktas på ett annat sätt.

Men vad betyder detta för begreppet social konstruktion? Med det här synsättet kan man ju i själva verket betrakta allt som sociala konstruktioner, och frågan är vad det då ska göra för nytta. Det är ju inte ens användbart ur ett aktivistiskt perspektiv, eftersom det är svårt att tänka sig att man bara skulle kunna lyfta sig ur sitt historiska (och materiella) sammanhang och bara byta syn på, säg, kött.

Min upplevelse är snarare att detta begrepp är skapat av humanister som avundsjukt vaktar sin halva av natur/kultur-dikotomin än ett användbart redskap för analyser.

Det kan nu argumenteras för att kön är en kategori för människor, och att människor är självmedvetna och agerar aktivt på ett sätt som köttfärsen inte gör, och att människor, till skillnad från köttfärs, förstår sig själva, och att kategoriseringen efter kön därför skulle vara en våldshandling (om man använder ett utökat våldsbegrepp).

Förvisso är det sant, i någon mån, men det betyder inte att människor kan lyfta sig ur sitt sammanhang mer än de kunde lyfta köttfärsen. Det går ju inte (i någon större skala) att bara sluta förstå könskategorier; om det ska ske är det med nödvändighet en väldigt långsam och väldigt kollektiv process.

Därför blir slagordsformen (»kön är bara en social konstruktion!«) ganska meningslös som bäst och ångestskapande som värst — den antyder ju att man bara skulle kunna kasta av sig sitt kön!

I sammanhanget kan det vara värt att nämna upprinnelsen till min fascination för cyborger. Olika feministiska analyser har upptäckt att bakom den uppfattning om den abstrakta människan som är vanlig i den västerländska rättvises- och förnuftsuppfattningen bl.a. döljer sig en vit man.

Jag vet inte om det är mig det är fel på, men detta verkar helt ha gått mig förbi. Istället har jag upplevt det som att mitt eget kön är i vägen för min mänsklighet. Denna självdestruktiva kamp är givetvis fullständigt tröstlös; inte bara skulle jag behöva amputera min kropp och ersätta den med något annat (ett cyborgskal? en dator?), jag skulle också behöva hitta en skalpell vass nog att skära bort mitt förflutna. Och då skulle jag inte längre i någon meningsfull bemärkelse vara mig själv.

För att återvända till diskussionen om socialkonstruktivism: denna vulgära och lättvindliga syn på kön är verkligen inget som kan tillskrivas alla (eller ens många!) feministiska teoretiker, som jag förstår hen har inte ens Butler denna syn.

Många av de som använder hens analyser verkar däremot ha det; t.ex. vet jag att Alexander Chamberland har använt de bevingade orden »kön är som vattenfast mascara, det sägs vara för alltid men går bort rätt lätt«, ett uttalande som isar blodet i mina ådror.

Självklart finns det vissa starka individer som av olika skäl kan transcendera sitt kön, eller misslyckas med att skapa det om man är butlerist, och iscensätta andra, men det är ju absurt att betrakta dem utanför sin kontext, utan de olika privilegier som ger dem dessa möjligheter.  Kön är inget som kan trollas bort genom provokationer!

Däremot tror jag att det är rätt strategi att attackera den binära och dikotoma synen på kön; alla som inte är män är inte kvinnor, och tvärt om. Utöver det så ser jag två olika sätt man kan hantera kön som kategori.

Det första är att helt enkelt göra kategorierna mindre meningsbärande. Man kan ju tänka sig ett samhälle där kön är lika meningsfullt för kategorisering som huruvida man är höger- eller vänsterhänt. Detta förutsätter förstås att det inte finns några betydande biologiska skillnader mellan könen, vilket verkar vara sant, men det är svårt att veta med tanke på hur extremt omfattande de sociala uppfattningarna runt kön är.

Det andra är att istället avhierarkisera könen, men ha kvar dem som kategorier (och eventuellt skapa fler för att ha plats för andra kön), antingen genom att minska antalet egenskaper som knyts till de respektive könen, eller genom att uppvärdera lågt värderade och könsknutna egenskaper.

Bäst resultat uppnås troligen om alla strategierna följs samtidigt — ett samhälle där kön anses som meningslöst, men där »kvinnliga« egenskaper fortfarande värderas lågt är ju t.ex. inte heller speciellt önskvärt. Det enda det skulle ha uppnåt är ju att förvandla alla kvinnor till »män« i någon bemärkelse.

Sen återstår att hitta strategier för genomföranden, och att försöka hitta sätt att knyta könsanalyserna till faktiska materiella betingelser och praktiker, och till existerande motsättningar och (makt-) relationer.

Bortom kakrecepten och vägbeskrivningarna

De flesta filsystem och användargränssnitt idag är starkt baserade på hierarkier; bilderna på katter ligger i mappen »katter«, som ligger i mappen »bilder«, som ligger i mappen »Mina dokument«, som — ja och så vidare. Samma sak gäller för många menysystem.

Detta uppmuntrar till ett tänkande som är mycket likt vägbeskrivningar eller kakrecept; »jag går hit och så går jag dit och så gör jag så och då händer det där«. Datoranvändningen ritualiseras helt enkelt, användaren tvingas in i ett tänkande som är väldigt konstlat, vilket knappast förbättrar datorernas dåliga rykte som lådor fulla av svart magi.

En bättre utplockning av data skulle fungera mer som musikspelaren xmms2 hanterar sitt musikbibliotek. Till exempel skulle jag kunna säga »add artist:”Sopor Aeternus & The Ensemble of Shadows” AND timesplayed<1« för att hitta hittills ospelade låtar av artisten Sopor Aeternus & The Ensemble of Shadows. Syntaxen är förvisso lite klumpig, men det är mycket närmare hur jag faktiskt tänker än det tidigare exemplet med katterna.

Det hela kunde dessutom underlättas med att mitt inmatningsprogram hjälpte till att fylla i eller komplettera, och kanske genom att samtidigt demonstrera vad min nuvarande fråga matchade runtom. T.ex skulle jag kunna skriva, i exemplet med katten, »search type:images depicts:cat described-as:cute«, för att få en lista (eller ett galleri!) av alla bilder föreställande söta katter.

Men det här är knappast tillräckligt. Tänk om jag skulle vilja redigera bilderna istället? Tänk om jag ville göra ett galleri av dem och skicka till en vän? Eller, för all del, eposta dem?

För detta behövs sätt att definiera ett språk för att tala om vad som ska göras med bilderna. Jag måste få en metod att tala om för min dator vad jag menar när jag säger att jag vill göra ett »galleri« av bilderna.

När jag sen väl har gjort det så vill jag kunna fortsätta tala om dessa gallerier, kanske i andra sammanhang. Kanske vill jag säga att ett »semesterkollage« är ett galleri med alla bilder för en given tidsperiod som beskrivs av »semesterbilder«, plus en hälsning.

Om något av detta ska fungera måste vi släppa Unix, åtminstone på en hög nivå. Och, i synnerhet, vi måste släppa textfobin. Båda dessa tendenser finns; GNU/Linux-distributioner som Ubuntu bygger på lager efter lager av abstraktioner (även om många av dem är kassa!), och vi ser kommandoraden återvända i sökmotorer, både Google och Wolfram Alpha, i adressfält i webläsaren och i snabbfunktionsprogram i t.ex. OS X.

Veckans projekt: sovlåda

Jag är ganska noggrann med temperaturer, framför allt ogillar jag värme, men det är ju inte kul att frysa heller. Ett problem med detta är att jag vill ha helt olika temperaturer när jag sover och när jag arbetar. När jag sover ska det helst vara runt 18-20° (19° är att betrakta som perfekt), och när jag arbetar ska det vara 20-22° (21° är att betrakta som perfekt), annars fryser eller svettas jag.

Den uppenbara lösningen på problemet är att ha ett rum för att sova i och ett för att arbeta i, men det har jag inte och är inte säker på att jag kommer att ha inom den överskådliga framtiden. Dessutom vore det ju bra om det gick att hålla temperaturen så stabil som möjligt i rummet, vilket är svårt och framför allt opraktiskt om rummet är stort.

Så den näst mest uppenbara lösningen på båda problemen är att bygga ett rum för att sova i, som är så litet som möjligt. En sovlåda alltså. Då skulle det vara möjligt att ha någon slags klimatkontrollutrustning som skulle kunna hålla temperaturen hyfsat jämn, även på sommaren (här i Sverige har vi ju byggt husen för att vara varma, vilket gör dem komplett värdelösa på somrarna). Dessutom slipper man en lång rad problem med bäddning och utrymmesåtgång!

Hittills har jag ägnat mest energi åt att fundera på kylsystemet — hur ska det utformas för att det inte ska låta en massa i hela lådan? Och framför allt, hur ska man göra för att inte kvävas om strömmen går t.ex?

Det senare problemet har jag delvis löst — jag  tänker mig att luckan har liknande hydraler som på bakluckan på bilar, så att den vill öppna sig, och så håller jag den stängd med ett elektromagnetiskt lås som öppnar sig så fort strömmen går.

Som en back-up-lösning tänkte jag också se till så att det finns lufthål i lådan också, så att man överlever om t.ex. kylningen skulle gå sönder. Detta skulle kunna utökas med ett autonomt system för övervakning som börjar pipa om det blir alldeles för varmt eller kallt.

Kvarstående frågor är:

  • Vilket material ska jag göra lådan i? Plexiglas är dyrt som stryk, metall leder jättemycket ljud och trä luktar så mycket. Fibermaterialet i båtar kanske skulle vara bra? Annars skulle trä med svart pianolack vara jättefint!
  • Hur ska lådan öppnas? Jag tänker mig att hela locket öppnas uppåt mot kortsidan, typ som en kryo-kammare (vilket är det jag tror är mest utrymmeseffektivt), men man kan även tänka sig att man kryper- eller rullar in genom kortsidan eller att locket skjuts av på längden på skenor, som en skjutdörr på en bil. Här är dock klämrisken stor!
  • Varifrån ska jag få en klimatanläggning? En bilskrot? Hur ska jag styra den?
  • Hur ska jag minimera bullret från kylningen?
  • Ljudisolering?
  • Vilken form ska »lådan« ha? Fyrkantigt är tråkigt men lättbyggt, runt vore kanske snyggt, inte minst för att man slipper slå i hörnen. Kan man hitta en lagom stor gammal cistern eller tank av något slag? Varmvattenberedare kanske?
  • Varifrån ska jag få en madrass? En standard 90-centimeters är ju onödigt bred, och man kan väl inte såga i fjädermadrasser? Skumgummi är en eregonomisk mardröm.
  • Hur ska luften cirkulera och kylas/värmas i lådan? I radiatorer någon stans? Man vill ju inte bli blåst i ansiktet precis (utom kanske som väckmetod?)

Planer för MK II, någon stans i en avlägsen framtid:

  • Ett system för övervakning, indatasamlande och diagnosticering av både systemet själv och den sovande (gärna med en liten LCD-panel på sidan av lådan).
  • Avancerade väckfunktioner: högtalare, skärm, ljus, vibration.
  • Programmerbarhet, ställbara temperaturer (t.ex. sänkning av temperaturen efter att man har somnat eller liknande).

»Spacet« är det viktigaste med hackerspaces!

Jag har tidigare varit en smula involverad i hackerspacet Abbenay i Stockholm, men på senare tid har studierna ätit större delen av min tid. Plus att jag känner mig mindre involverad nu när jag bor i en annan stad, trots att min resväg snarare har förkortats efter flytten!

Detta har inte hindrat mig från att känna ett behov av ett mer närliggande utrymme, så jag har börjat försöka dra i personer som kan eller borde vara intresserade. Hittills går det trögt. Några av nördarna jag försökte med sa, möjligen skämtsamt, att det var otidsenligt med fysiskt utrymme. »Nu för tiden har man ju allt i molnet«. Jag tycker precis tvärt om, och i resten av den här texten tänkte jag förklara varför.

Till att börja med så är jag skeptisk till själva begreppet »molnet«, som har alla egenskaper hos en riktigt dålig eufemism. Men framför allt har jag svårt att se det som något nytt. Koordinering och nätverkslagring av information har funnits förut (IRC är t.ex. en 20-30 år gammalt!), filservrar har funnits hur länge som helst. Det enda som egentligen skiljer den »nya« tekniken från den gamla är att den är uppskalad; mer bandbredd, större filer, mer kommunikation, snabbare respons, enklare gränssnitt, godare tillgänglighet och fulare protokoll.

Men ett annat problem är att talet om »molnet« som en plats ekar 90-talets missuppfattningar om cyberspace. Internet är ingen plats som något kan »finnas« på, det är snarare en process som ständigt görs. Eller, om man är en sur tekniker som jag, en serie sladdar, datorer och routrar.

Vad som är värt att ta med sig härifrån är att den direkt fysiska verkligheten har egenskaper som är svåra (jag ska inte säga omöjliga!) att efterlikna, och som det är oklart om vi vill efterlikna digitalt. Ska det t.ex bli svårare att avsluta en digital konversation och zappa vidare?

Det jag säger är att en organisering online kommer att bli helt olik en organisering offline, och att det ena inte är ett substitut det andra. Självklart ska vi nätverka online på alla möjliga och helst också på några omöjliga sätt. Men vi måste också ha utrymmen offline, av minst tre skäl.

För det första behöver hackers synas och finnas mer, och att ta plats är att finnas. I en tid då spontanitet trängs bort och ersätts med gallerior och andra rum som kraftigt beskär uttrycks- och handlingsmöjligheterna kan fria (eller ännu hellre befriade) utrymmen både bli oaser, och grogrunder för motstånd.

För det andra så finns det många sorters hacking som inte kan göras virtuellt/digitalt/i molnet. Hacking är ofta en fysisk och handgriplig aktivitet och inbegriper verkligen inte bara programmering, utan kan innefatta alla möjliga byggprojekt också, för att bara ta ett exempel.

För det tredje så skapas helt andra sociala möjligheter offline, möjligheter dels för att lära sig av varandra, men också för att kombinera projekt och olika kompetenser för att bilda värdefulla allianser för framtiden, eller bara umgås.

Ett samhälle där alla sitter bortträngda bakom varsin skärm och lever ut snabbmatsrelationer som de praktiskt kan zappa vidare från när de inte längre passar är knappast mitt ideal, och bara det tycker jag är skäl nog att ha organisering offline också.

Winky, an arduino-based temperature logger: project plan

An early version of winky, an arduino-based temperature logger.

I know my camera's horrible.

I spent New Year’s with my cousins (also known as The Swedish Shortsnouts), where I came in contact with a project of their father’s, a PIC-based temperature monitor/logger named Dobby. When I returned home, I felt rather inspired, and dug up my Arduino Duemilanove and a SHT15 sensor I bought earlier.

At this point, I’d like to mention I had some rather bad experiences with micro controllers (and don’t get me started on interrupts!) during my time at The RIOT, and I haven’t exactly been keen on hardware hacking since then. Low-level work never suited my short attention span. If I have to think about memory allocation or pin voltages I’m quickly loosing sight the big picture, and end up making luminous fish in stead. Or, to take an example from reality, researching the possibility of keeping pet jellyfish.

Fortunately, after a quick WWW search, I found both wiring shemes and a library for communication with the SHT15. The hard part turned out to be getting the code onto the Arduino, since the IDE is Java-based, and Swing is written by people who clearly know nothing about the X windowing system and since the command-line approach for code uploading is heavily based on a semi-official Makefile that was apparently dropped from the recent versions of the Arduino SDK because it didn’t really work and nobody bothered fixing it.

Thanks to wmname (Suckless to the rescue­­­ as usual!), recommended in a helpful dent, I got the official IDE working. It’s really nothing I’d like to spend much time in, but it works for loading code and communicating over the USB TTY, which was all I needed.

So now I’ve got some rather messy code to log temperatures from the Arduino and send them once every second to anything listening on the USB TTY. Which happens to be a small, also rather messy Python program that logs the temperature and humidity in a text file with a Unix time stamp. This file is then read by a second Python program, using mathplotlib. My error handling is horrible: I just let Python disregard any non-sane values (i.e. any where string->float conversion of the incoming data fails or where the values are clearly invalid), but it works. Rather well, I might add.

However, my goal is a much more stand-alone-ish logging device, so I’ve set up a project plan to try to keep my focus at least somewhat intact.

  1. Try soldering the sensor, and connect it with network (RJ 45?) connectors. Make sure it’s working.
  2. Add a RTC module and make sure it’s working. Have Winky time stamp its own messages, in stead of the PC doing it as it’s recieving them.
  3. Implement an administrational interface for the USB serial console.
  4. JSON-encode the data. Preferrably through some already existing library.
  5. Fix persistent data storage somehow
    1. Find a suitable physical storage medium (probably SD or CF)
    2. Implement it. Probably without FAT or any other file system.
    3. Make sure space is being re-used, i.e. when the medium is full, the oldest stored entries are automatically replaced with the newest. Without messing up the output order, of course (possibly, this could be fixed by sorting on time stamps during print-out).
  6. Buy or make an ethernet shield and get it to work. DHCP may be needed. Implement as much HTTP as required to hand over the logs in JSON, and not a single line of code more. Somewhat RESTful:y.
  7. Buy a new or convert an old separate power supply.
  8. Find a suitable box. An old hub, router or switch is probably perfect.
  9. Make it work with a variable number of sensors.
    1. How are these supposed to be detected?
    2. Should I just try to initiate all sensors, and skip those that fail?
    3. What about plug-and-play? Writing code to continuously loop to see if there’s a new sensor attached isn’t really my idea of fun.
  10. Write some cool client code, perhaps real-time graphing with Javascript? There’s probably a library for that. I hope. Or else I will have to rely on Udoprog writing me one for cookies.

En spellista för revolutionsromantiker

Det är relativt lätt att hitta samhällskritisk musik. Det är förresten lätt att hitta samhällskritik över huvud taget. Eftersom det finns så mycket samhälle, och eftersom så mycket är dåligt med det så kan vilken liberal eller fascist som helst hitta något att klaga på. Att yttrandefriheten inte är fri nog till exempel, eller på den samtida hedonismen och familjens förfall eller, allas favorit, konsumismen.

Däremot är det pilligare att hitta revolutionsromantisk musik. Därför har jag gjort ett urval ur den musik jag lyssnar på. Kriterierna för att vara revolutionsromantisk är här att skildra ett hastigt upprott från det rådande samhället som nödvändigt och/eller önskvärt. Vissa av låtarna är helt klart gränsfall; många av dem har bara ett vagt implicerat hot (löfte?) om en förestående revolt. Egentligen ville jag ha fler låtar, men efter att ha funderat i en månad och inte hittat fler gav jag upp.

  • Muse–Uprising från The Resistance (torrent)
  • Nine Inch Nails–My Violent Heart från Year Zero (torrent)
  • Chumbawamba–Enough Is Enough från Anarchy (torrent)
  • Chumbawamba–The Diggers Song från English Rebel Songs 1381–1914
  • Le Tigre–New Kicks från This Island (torrent)
  • Hoola Bandoola Band–Keops pyramid från 1971–1976 (torrent)
  • Anti-Flag–No Paradise från A Benefit for Victims of Violent Crime (torrent)
  • Ebba Grön–Beväpna er från We’re only in it for the drugs (torrent)
  • Covenant–We Want Revolution från Northern Light (torrent)