Archive for november, 2011

Atari 2600

november 28, 2011

I helgen fick jag (av ett gäng vänner som uppenbarligen känner mig väldigt väl (TACK!)) en Atari 2600.

En enkel, vacker konsoll

En enkel, vacker konsoll

Atari 2600 lanserades 1977 under namnet Atari VCS den 14:e Oktober 1977 med  makalösa specifikationer

CPU: MOS 6507 (1.19 MHz)
RAM: 128 Byte
ROM: 4 kByte

Maskinen har ingen dedikerat video-minne utan har istället två hårdvaru-sprites plus en 1-pixel stor ”missil”-sprite och en 40-pixel stor ”spelplans”-sprite. Spelplans-sprite-minnet uppdaterades medan TV-aparatens elektronstråle bytte rad, detta krävde mycket processorkraft vilket innebar att själva spellogiken endast kördes under den vertikal blankningen (fritt översatt) av skärmen. Dessa begränsningar är fascinerande att läsa om, 128 byte RAM och programmerarna lyckas ändå göra spel som är snabba, intressanta och unika. Moon Patrol är så enkelt att det är skrämmande men jag är helt fast.

Konsollen har väldigt begränsad ljud-synthesizer men spelar förvånansvärt klara och distinkta toner. Melodierna är lätta att komma ihåg och jag kommer nog ta Moon Patrol-musiken med mig i graven.

Utöver konsolen fick jag tolv spel, tyvärr får jag inte samtliga att fungera men jag ska skriva isär något av de defekta och kolla ifall jag kan göra något.

Den gör sig väldigt bra i TV-spelshörnan

Den gör sig väldigt bra i TV-spelshörnan

Sannolikhet

november 20, 2011

Jag fick frågan ”Vad är sannolikheten att slå minst en 5:a eller en 6:a på tre tärningskast?” i lördags och det tog ett bra tag att sparka igång det lilla jag kan om sannolikhet och kombinatorik men jag tror jag lyckades resonera mig fram till hur det borde fungera:

Throwing dice CC 3.0 från http://christmasstockimages.com

Throwing dice CC 3.0 från http://christmasstockimages.com

Vad man måste jämföra är antalet kombinationer av utfall med minst en 5:a eller 6:a med totala antalet olika utfall.

Det totala antalet utfall per tärning är 6 och varje utfall på den första tärningen kan kombineras med sex utfall på nästa tärning som i sin tur kombineras med sex resultat från den tredje tärningen. Detta resulterar i att det totala antalet kombinationer är

6 * 6 * 6 = 216

Antalet kombinationer med minst en 5:a eller 6:a är lite klurigare att komma fram till eftersom det kan vara både en, två och tre tärningar som uppfyller kriteriet. För att göra beräkningen lite enklare borde man kunna resonera som så att kombinationer med dessa är det totala antalet kombinationer minus antalet kombinationer utan 5 eller 6. Varför är detta enklare att räkna frågar ni då, och jag är snabb med att svara ”eftersom varje tärning inte får vara 5 eller 6 kommer de ha precis 4 utfall per tärning som uppfyller kriteriet” På samma vis som ovan får vi då att antalet utfall som inte uppfyller kriteriet blir

4 * 4 * 4 = 64

och vidare att antalet utfall med 5 eller 6 blir då

216 – 64 = 152

Detta visar då att ifall man gör 216 kastserier med tre tärningskast i varje kommer i snitt 152 utfall innehålla minst en femma eller sexa vilket skulle innebära en chans på 70.4%

Ifall vi skriver ett par rader python-kod som räknar detta för n-tärningar kan vi se följande

Sannolikhet för n tärningar att visa minst en femma eller sexa

Sannolikhet för n tärningar att visa minst en femma eller sexa

Plottat med GNUplot efter att ha kollat mitt tidigare inlägg hur man gör.  Påpeka gärna missar och fel jag gjort!

Edit: Korrigerat resultatet (beskrivning och avrundningsfel), tack Maria!

FSCONS2011

november 16, 2011

I helgen var jag på FSCONS, Free Software Conference and Nordic Summit, och det är alltid lika roligt och inspirerande att möta och lyssna på alla dessa entusiastiska fri-mjukvaroförespråkare. Det var mycket intressanta föreläsningar och intressant att prata med folk under luncherna och runt evenemanget.

  • Bitcoin: Bitcoin är en populär digital valuta. Bitcoin är distribuerad och bygger på peer-to-peer-transaktioner som säkras med hjälp av ett block-baserat transaktionssystem. Ett Bitcoin är idag värt ungefär 2 € vill man experimentera med denna valuta kan man besöka the bitcoin faucet. De stora fördelarna med Bitcoin är att pengarna överförs snabbt och säkert utan att varken avsändare eller mottagare behöver avslöja sin identitet för någon, nackdelen är att valutan är helt obunden till någon form av fysisk säkerhet utan har bara ett värde för att ett värde har bestämts.
  • The Design of Gnome 3: Utvecklingen av skrivbordshanteraren Gnome påbörjades 1998 och är nu inne i sin tredje iteration (den första var tydligen inte lätt att använda för människor och innovation hade avtagit i den andra). Fokus har flyttats mot att enkelt kunna söka efter applikationer på systemet istället för att navigera i menyer samt att snabbt och enkelt kunna integrera webb-applikationer i systemet. Gnome 3 är mer konfigurerbart än tidigare varianter och kan förändras och utökas med hjälp av CSS och javascript.
  • Erlang simulator for embedded systems: Detta visade sig vara ett system för att skapa en tillståndsmaskin som representerar ett inbyggt system. Det faktiska systemet analyseras genom att signaler in till systemet och signaler ut från systemet och matchas till varandra (varje utsignal räknas som ett tillstånd i tillståndsmaskinen). Kod och exempel finns på projektets repo på github.
  • Theming GTK+ Applications through CSS: Uppenbarligen delar CSS och GTK+ en del rent strukturellt, dvs. båda visar enkla element för att skapa ett GUI. På grund av likheterna har GTK+ utvecklarna valt att använda CSS för att på ett enkelt sätt kunna göra förändringar av en applikations utseende. GTK+ inställningsmöjligheter är lite större än CSS vilket innebär att CSS-syntaxen har utökats för att kunna beskriva GTK+-applikationen ordentligt.
  • Arduino: Den för tillfället mest hajpade hobbyelektronikprodukten Arduino är en öppen plattform för att göra prototyper av enkla elektroniksystem. Systemet består av en serie kretskort som har ett standardiserat gränssnitt samt en enkel programmeringsmiljö.
  • SPDY: Eftersom HTTP-huvudena växer och avancerad webbfunktioner driver upp antalet överföringar skapade google protokollet SPDY. SPDY (som utalas speedy) ska bland annat minska laddningstider med 50%, tillåta många parallella HTTP-överföringar över en TCP-session. Idag finns det ett par fristående referensimplementationer, bland annat webbläsaren Chrome har stöd för SPDY (i en utvecklingsgren) och libSPDY.
  • Back to the future with Algol68: Algol68 är ett av de tidigaste programmeringsspråken som är utvecköat och designat för att vara ett verktyg. Språkets stora fördel (jämfört med föregångaren Algol60) är att dess dokumentation är helt otvetydig eftersom funktionaliteten har beskrivits med ”van Wijngaarden grammatik”. Språket användes aldrig särskilt mycket, delvis på grund av den komplexa specifikationen och att språket använder icke-standardiserade begrepp samt att ingen komplett implementation av en Algol68-kompilator någonsin gjordes.

Lördagens Keynote-föredrag var en intervju med Richard Stallman, FSF’s grundare. Jag håller inte riktigt med i hans extrema attityd men han var väldigt karismatisk och rolig att lyssna på. Söndagens keynote var lite mer seriöst och handlade om att vi måste vara aktivister ifall vi vill sprida fri mjukvara, aktivister i detta fallet innebär att vi ska var aktiva delaktiga och sträva efter att sprida fri mjukvara.

Jag deltog också i en diskussion om Fri-mjukvaro-feminism där vi försökte isolera vilka jämlikhetsproblem kvinnor i fri-mjukvaro-grupperingar upplever..

En aning långsökt

november 5, 2011

Förra helgen var det maskeradfest med temat kändisar och jag kom vid något tillfälle på att jag skulle vilja gå som Douglas Adams, problemet var att det var problematiskt att hitta något som var typiskt Douglas Adams-aktigt. De bilder man hittar på honom ser han ut som en medelålders man med kläder.

Douglas Adams ser ut så här

Douglas Adams ser ut så här

 

Tidigare såg han ut så här

Tidigare såg han ut så här

Jag funderade länge och väl och kom en sen kväll på att han är en författare och alltså mest känd för sina ord, de jag specifikt kom att tänka på var ett citat jag läst:

I love deadlines. I like the whooshing sound they make as they fly by.

Utifrån detta skapade jag en kostym, själva skapandeprocessen var kort och jag skrattade hela tiden (åtminstone inom mig). Resultatet:

En förbi swooshande deadline

En förbi-swooshande deadline

Denna konstruktion såg till att när jag rörde mig snurrade deadlinen förbi. Tyvärr förstod ingen vem jag var utklädd till, och en roterande skylt är inte lika praktisk i en folksamling som man kan tro.