« augusti 2005 | Main | oktober 2005 »

september 26, 2005

Tebax eller Till min dagbok om detta vore någon

Nu är sajten och mailen upp igen. Det är skönt.

Om nu detta skulle vara en sådan där "dagbok på nätet" skulle det kunna stå ungefär följande (propert censurerad):

Fredag: ... 14.23 Sista webbserverloggloggningen. Både internetkoppling och mail har slutat att fungera. Nätverket är igång men lite långsammare för vissa operationer.

Lite senare Drog i lite trådar. Ringde till support. Drog i en tråd för mycket. Support hade då gått hem. Jaha.


Lördag
Förmiddagen Ringde en expert för att prata lite och fick reda på en skoj sak som händer snart och som inte alls har med internet att göra. Försökte sedan ringa till support igen och fick då ett direktnummer där det tutade upptaget hela tiden. Beslöt då att det är bättre att sitta i en telefonkö där en röst påminner om att det är snällt av mig att fortfarande vänta än att behöva tänka på att återuppringa själv. Det rekommenderas att sitta med en bra bok som är lättläst med en hand, i alla fall om hands-free-snöret till mobilen är bortsupen. Tyvärr är enhandsprogrammering fortfarande svårt att få effektiv; det är dock en konst att öva vidare på.

Kring lunchtid Besökte någon nära geografisk och läste webbmailen som fungerade, men blir lätt slagen av standardklienten (speciellt filtreringen av mailinglistemail). Många mail har det blivit, tack och lov var det en massa spam.

Senare på eftermiddagen
Såg en trevlig dramabiografi över H. C. Andersen (Hans Christian Andersen: My Life as a Fairy Tale), väldigt dramatiserad men intressant. Blev sugen på att läsa dennes sagor igen. Äsch, kan ju inte kolla på nätet vad som står om HCA. Det är bra att man har den akustiska NE som kan användas för sådant här.

En annan tidpunkt
Använde den akustiska NE en gång till under lördagen. Det var det bredvidstående bandet.


Söndag
Förmiddagen
Fick tag i en relevant supportperson. De SMS:ar när det är klart. Hann läsa flera sidor i den inte tillräckligt enhandslättlästa boken (glömde bort att lyssna på mitt eget råd, eller så glömde jag bort att säga det högt tre gånger när göken galer i väst).

Lunch
Besökte någon geografisk nära, och trixade lite med mail, webb och annan omvärldsbevakning. Svarade på ett mail. Åt lite mat. Köpte en liten sak (eller snarare två identiska saker) eftersom den behövdes (eftersom de behövdes) till viss del internetrelaterad.

Kväll: Kvällen kom precis som väntat. Hann göra en del saker som annars eventuellt inte skulle gjorts, fast inte så många som man skulle kunna tänka sig.


Måndag
Någon gång på förmiddagen. Det funkar! Och allt är nu förlåtet, men ännu ej läst. Så många mail att läsa var det faktiskt inte.


Men det är det inte, så det gör det inte.


(Se eventuellt den gamla Till en dagbok om jag hade någon för andra fataburiseringar med vissa anknytningar till de verkliga liven.)

Posted by hakank at 04:36 EM Posted to Diverse | Comments (3)

september 21, 2005

Enkel textsummering (mestadels åt Thebe)

Som ett beställningsverk åt Thebe har skapats programmet Simple Text Summation som reducerar en text till tre tal och en vektor: (Det ska visst vara "enkelt" nu. :)

* det första talet fås genom att man tar bokstäverna (a - ö) och siffrorna (0 - 9) och gör om dem till siffror enligt deras position i alfabetet samt siffrona, varpå dessa summeras. Texten hakank.blogg får t.ex. textsumman 89 genom att summera talen i vektorn: 8,1,11,1,14,11,0,2,12,15,7,7.

* siffrorna i detta textsummeringstal läggs sedan ihop till en tvärsumma: 17

* och till slut görs en "reducerad" tvärsumma så att det blir ett ensiffrigt tal.

Användningen av programmet kan läsas om i Thebes fantastiska och epokgörande alster: Haiku-färg och dagens Dagens humörfärg.

Det kommmer säkert att kommas på andra användningar...


Se även
Det finns betydligt mer seriös textsummeringar. Se t.ex.
SweSum - Automatisk Textsammanfattare
Vad är automatisk textsammanfattning?
The Text Summarization Project

Sist i min Automatisk identifikation av språk (språkidentifiering) finns några andra länkar.


Av någon anledning känns det ävan relevant att här länka till Devil's word.

Posted by hakank at 09:22 EM Posted to Språk | Comments (1)

Skapa enkla anagram

För några veckor sedan såg jag på en av de reklamfinansierade TV-kanalerna (ärligt talat har jag glömt vilken) det där bokstavsspelet som går ut på att man ska gissa vilket "förvanskat" ord (anagram) som står i rutan. Så kan man vinna en massa pengar om man gissar rätt och om man svarar på lite fler frågor och så.

Flera av de anagram som visades var enkla att lösa och jag misstänker att de är handskapade just för att inte vara så svåra. T.ex. stod det ungefär följande anagram:

vonellörftfaaetr


Hur skapa "enkla anagram"?
Hur som helst påbörjades funderingar på hur man automatiskt kan skapa enkla sådana anagram eller skapa en sorteringsmetod där man kan sortera genererade anagram efter hur enkla de är att lösa.

Not: "enkel att lösa" bygger på subjektiva grunder och detta är ingen vetenskapligt undersökning.


Generate Simple Anagram
Resultatet av detta funderande blev programmet Generate Simple Anagram som visar några olika metoder för att skapa eller sortera "enkla" anagram. Här nedan förklaras några delar av programmet.


n-step-metoden
En metod som jag tycker fungerar rätt bra är n-step-metoden som går ut på att man tar två bokstäver i ordet som ligger ganska nära varandra och låter dem byta plats; så fortsätter man med det nya angrammet och byter ut två andra bokstäver etc. n i n-step refererar till det maximala avstånd mellan bokstäverna man använder. Både position, avståndet och riktningen väljs slumpmässigt.

De par tre första genererade orden är troligen alldeles för enkla, men efter några körningar så kan det bli tillräckligt svårt att lösa så att det blir i alla fall någon minuts fundering; för den som inte känner till grundordet vill säga.


Två avstånds-metriker för sortering
För att testa min intuition kring n-step-metoden görs även jämförelse med andra typer av sorteringar av de ord som skapades:
* ordavstånd (edit distance)
* ngram-avstånd

Dessa metriker beskrivs mer nedan.

Som ytterligare en test slumpas det även ett gäng anagram (för närvarande 500 stycken) för att se hur bra dessa två avstånds-metriker sköter sig i detta sammanhang, nämligen hur lätt det är att identifiera anagrammets grundord. Tanken är att enklare anagram ska komma så tidigt som möjligt i listan, och svårare lite längre ned.

Min subjektiva åsikt är att ngram-avstånd ger rätt hyfsat resultat, i alla fall bättre än edit distance. (Sedan kan man alltid jämföra snabbheten/komplexiteten för respektive avståndsmetod men det är för tillfället en annan och möjligen senare fråga.,)


Exempel
Låt oss då ta ovanstående ord, som ju är novellförfattare, som exempel.

De första anagram som skapas (vid en slumpmässig n-stepkörning) är:

...


Första raden novellförftatare (10 <-> 11 : t <-> a edit dist: 2 ngram dist: 0.43) innebär fölljande:

* det skapade anagrammet är novellförftatare

* bokstäverna "t" och "a" har bytt plats med varandra och de var i respektive position 10 och 11 i ordet

* ordavståndet (edit distance) är 2 vilket innebär att det krävs två "redigeringar" för att transformera "novellförfattare" till "novellförftatare". Se vidare om ordavstånd i Ordavstånd (edit distances): Levenshtein och Hirschberg med lite extra finesser-

* ngram-avståndet visas sedan, här 0.43. Detta ngram-avstånd förklaras i nästa sektion.


ngram-avstånd
Ett ngram (n-gram) är en del av ett ord där betyder antal tecken som man ska använda. I programmet används samtliga möjliga ngram, dvs från 2-gram till det längsta möjliga, dvs hela ordet. T.ex. ordet "anagram" har ngrammen "an", "na", ""ag", "gr", "ra", "am", "ana", "nag", ... "gram", "anag", ... "gram", "anagr","nagr", etc.

Grundtanken bakom ngram-avstånd är att man först skapar grundordets ngram (här för "novellförfattare") och jämför sedan de ngram som de genererade anagrammen har. De genererade ord som har mest gemensamma ngram med grundordet är alltså mest lika (har bäst ngram-avstånd). För att kunna göra jämförelser av ngram-avstånd mellan (anagram av) olika ord normaliseras det genom att man delar antalet gemensamma ngram med antalet möjliga ngram.

Subjektivt: Någonstans kring ngram-avståndet 0.5-0.6 och lägre värden blir det svårt att direkt se vilket grundordet anagrammet bygger på. Det beror även på sådana saker som längden på ordet, hur vanligt det är och om man känner till det.

(Tekniken bakom ngram-avstånd används bland annat för att automatiskt lista ut vilket språk en text är skriven på. Se vidare om detta i Automatisk identifikation av språk (språkidentifiering) och Bloggidentifiering (Blog Identification) där den senare beskriver språkidentifieringsalgoritmen mer.)


Övrigt i programmet
Programmet har även några andra finesser såsom:
* slumpa ett ord på svenska eller engelska Eftersom n-step-metoden börjar väldigt enkelt är det tillrådligt att bläddra ner lite på sidan och starta i slutet på listan. Det korrekta ordet ser man om man markerar området till höger om "Word" i Resultat-avsnittet (det är alltså dolt genom att har color="white").
* man kan ändra hur många ord som ska visas (Number to show)
* ändra maximalt avstånd mellan bokstäverna (Max steps)

Lek gärna med parametrarna och orden!


Slutord
Som en förberedelse till programskrivandet gjordes lite olika statistiska undersökningar och simuleringar med lite skoj saker som resultat, men dessa får anstå till en annan dag.


Se även
Två program som är lite av samma stuk är:
Reading scrambled words
Generate spelling errors.

Posted by hakank at 09:06 EM Posted to Språk | Comments (1)

september 12, 2005

Skånsk bloggmiddag söndagen 9 oktober, 14.00 restaurang Aten, Malmö (OBS! Klockslag ändrat)

Härmed föreslås oktober månads bloggmiddag (bloggträff) gå av stapeln söndagen den 9 oktober 2005, klockan 13.00 14.00 på restaurang Aten i Malmö. OBS! På grund av ett missförstånd i kommunikationerna är det alltså klockan 14.00 som gäller. Hoppas att detta inte strular till det för någon.

Aten har ett grekiskt kök, kanske inte helt oväntat med tanke på dess namn. Adressen dit är Davidshallsgatan 23 (Malmö). Karta och vägbeskrivning finns att bese på Eniro.

En feature denna gång är att David HallMånhus Beta kommer att komma (och träffdatumet är speciellt anpassat för denna hans turné i regionen)! Det ska bli väldigt trevligt att äntligen få träffa denne bloggräv. (Den observante observanten kanske noterar en viss likhet mellan denne bloggrävs namn och restaurangens adress. Det är som man säger en ren slump; eller möjligtvis inte.)


Några saker att redan nu föra till dagordningen:

- Om David får för sig att hålla ett kort anförande - förutom den korta presentationen - om något som faller honom in, så tänker i alla fall inte jag stoppa honom de första minuterna (detta ska dock inte ses som något löfte om att vara helt tyst under denna period).

- Diskussion om dessa bloggmiddagar. Frågor som kan diskuteras: Passar formatet, funkar det att ha dem en gång i månaden, bör de vara mer strukturerade eller kanske mindre strukturerade etc.

- Ev. kommer brother (om han kommer) att förklara lite kring sina bloggspam, och kanske till och med reder ut begreppen. Inget fancy krävs av honom, eller någon annan för den delen; han får därför inte någon Whyteboard att leka med.


Du som bloggar och bor i Skånetrakten (eller vill resa till Malmö över ett längre avstånd) är välkommen till denna träff! Du behöver inte alls vara någon gammal bloggarräv som känner alla de andra deltagarna utan kan vara en nybliven bloggare som är nyfiken på bloggning och vill träffa andra som bloggar. Det är dock en fördel om du tycker det är skoj att prata och diskutera med andra människor.

Om du är intresserad av att komma, kommentera i så fall i denna bloggning eller skicka ett mail till hakank@bonetmail.com (dvs till mig) och anmäl ditt intresse.


De specifika ämnena som tas varje gång upp beror helt på deltagarnas intresse, nyfikenhet och uthållighet och har hittills aldrig kunnat förutspås i förväg (med enstaka undantag). Den som är nyfiken på vad dryftades den förra bloggareträffen kan skumma igenom Sammanfattning bloggareträff 4 september.

Posted by hakank at 06:24 EM Posted to Bloggmiddagar | Comments (24)

september 11, 2005

Ordavstånd (edit distances): Levenshtein och Hirschberg med lite extra finesser

Sedan länge har jag varit intresserad av hur lika ord är varandra. Ett sätt är att se hur många operationer som krävs för att transformera det ena ordet till det andra, och på detta vis få "ordavståendet" mellan orden. Se nedan för lite andra skriverier och program i detta och näraliggande ämnen.


Exempel
Ordavståndet mellan ordet håkan och ordet hakank är 2 eftersom det krävs två operationer för att transformera det första ordet till det andra: byt ut "å" till "a" och lägg till ett "k" på slutet. De möjliga operationerna för att omvandla ett ord till ett annat är:
* byt ut (replace)
* lägg till (insert)
* ta bort (delete)

samt "behåll" (keep) som egentligen inte är en operation eftersom ingenting görs. De engelska begreppen används nedan.


Edit distances
Sådana transformationer/jämförelser kallas för (används i) edit distance (googlesökning). En av de mer moderna användningarna är att jämföra två DNA-sekvenser med varandra för att se hur mycket eller på vilket sätt de matchar eller inte matchar, och det ligger mycket forskning (och pengar!) kring att göra ruskigt snabba och bra strängjämförelsemetoder.

Två av de mest kända algoritmerna för sådant är Levenshtein och Hirschberg (namnen från respektive upphovsperson).


Programmet Edit distances
Var lugn, jag tänker inte förklara algoritmerna här. Däremot vore det skoj att visa hur de fungerar och hur de kommer fram till ordavståndet. Detta är gjort i programmet Edit distances, som nu kommer att förklaras lite mer.


Körning av programmet
Låt oss jämföra orden håkan och hakank som nämndes ovan. En körning av programmet ger följande resultat:


...
Operations (graphical):
håkan-
| ||| 
hakank

Explanation:
'-': insert or delete
'|': keep
' ': replace

Long description (string position in parenthesis):
keep 'h' (1)
replace 'å' with 'a' (2)
keep 'k' (3)
keep 'a' (4)
keep 'n' (5)
insert 'k' (6)


Short description (k: keep, i: insert, d: delete, r: replace):
krkkki

It was 2 edit operations:
keep: 4
replace: 1
insert: 1
('keep' is not counted as an operation)


Förklaring
Här förklaras resultatet mer i detalj. Först visas den grafiska representationen av tranformationen:

håkan-
| ||| 
hakank

Ett "-" i den första raden betyder att en bokstav läggs till ("insert") i det andra ordet, dvs det avslutande "k". Tecknet "|" innebär att bokstäverna är samma (operationen "keep") i samma position. Om det är tomt i mellanraden innebär det att man byter ut en bokstav (här att "å" ersätts av "a"). Ett "-" i sista raden innebär att man tar bort en bokstav ("delete").


Efter det visas en "pratversion" av operationerna i korrekt ordning, där talen inom parentes anger radpositionen (eller "operationsnumret" om man så vill). Notera att positionen inte är för orden utan för den sträng som visas i den grafiska representationen.

keep 'h' (1)
replace 'å' with 'a' (2)
keep 'k' (3)
keep 'a' (4)
keep 'n' (5)
insert 'k' (6)

Så kommer en kortversion av operationern med koderna: k: keep, i: insert, d: delete, r: replace:

krkkki

vilket helt enkelt är första bokstäverna i de engelska namnen för operationerna.

Slutligen visas lite statistik där 2:an är det eftersöka ordavståndet. Och som sagt är keep inte någon egentlig operation, så 2 kommer här från antal replace och antal insert (1+1=2).


It was 2 edit operations:
keep: 4
replace: 1
insert: 1


Två algoritmer?
Varför två algoritmer, de ger ju samma resultat? Skoj att du noterat det. Visst, de ger ofta samma resultat, men inte riktigt alltid. T.ex. för jämförelsen mellan " abc e" och "abdec" (notera mellanslagen) så ger Hirschberg följande operationer: dddkkddrki:

   abc  e-
   ||   | 
---ab--dec

medan Levenshtein ger dddkkdrrr, dvs:

   abc  e
   ||    
---ab-dec

De ger olika antal keep-operationer (3 respektive 2), vilket kan vara viktigt. Det är dock samma antal edit distance operationer.

Om man vill man se den exakta skillnaden mellan dessa två operationslistor passar det ju bra att använda programmet för detta.


Tips: Lägg till mellanslag före eller efter
För vissa jämförelser kan det bli väldigt tråkiga operationer, t.ex. kjellerstrand -> hakank.blogg är det i stort sett bara utbyten: drrrrrrrrrrrr. Om man däremot lägger till lite mellanslag före eller efter endera ordet kan man se lite andra mappningar.

Exempel: lägg till ett gäng (t.ex. 13 mellanslag) före "kjellerstrand" så kommer följande mappning.

                          kjellerstrand

                          |   |        

---------------------hakank-.bl-----ogg


Naturligtvis innebär detta att antal operationer inte stämmer med ursprungsjämförelsen, men det är kanske av underordnad betydelse. I och för sig skulle programmet kunna justera för sådant trixande, men det finns alltid risker med sådan intelligens...


Fet credit
En stor fet credit måste göras till Lloyd Allison som kodat Javascript-versionerna av Levenshtein och Hirschberg.

Mitt program använder inte koden rakt av, men den är mer eller mindre strikt konverterad till Perl-kod. Programmet har även vissa finesser som saknas på Allisons sidor, t.ex. prat- och kortversionen av operationerna. Jag har inte brytt mig om att visa riktigt alla Allisons finesser, dvs tracen för Hirschberg.

Se även liknande program och skriverier
Skapa stavfel som råkar använda samma operationer som i ovan nämnda program. Där finns även några andra referernser.
Läsning av förvanskade ord
Nearest words
New Markov words II

Eventuellt relevant är också kategorin: Reguljära uttryck etc.

Lite länkar
Dan Hirschberg, speciellt dennes publikationer
Dan Gusfield: Algorithms on Strings, Trees, and Sequences
Alberto Apostolico, Zvi Galil (ed): Pattern Matching Algorithms.



(Det var det. Nu kan jag fundera lite på Thebes Visualiserad singulärvärdesuppdelning.)

Posted by hakank at 10:14 EM Posted to Program | Reguljära uttryck etc | Språk | Comments (4)

september 10, 2005

Några fler tankar om vidskeplighet, spel och datorprogram

Till gårdagens New Scientist: Spelare tenderar att vara mer vidskepliga än icke-spelare kommenterade både Wille på Prylfeber och Thebe på Trilog med tankvärda saker, vilket inte alls var oväntat. Här är några tankar kring detta, som p.g.a. längden upphöjdes till en egen bloggning.

Det bör noteras att begreppet "vidskeplig" nedan förändras en del efterhand.


Willes kommentar: vidskepelse i datorspel, och - visar det sig - i datorprogram överhuvudtaget
Wille ställde följande koncisa fråga

Undras om detta är applicerbart på oss som mestadels spelar dataspel med...

Det beror nog på vilken typ av spel det är frågan om. Är det ett rent skicklighetsspel med minimum av slump är det nog mindre risk för vidskepelsepåverkan. Är det däremot mycket slump inblandad eller många osäkra faktorer kan man nog vara i vidskepelseriskzonen.

Sedan bör man räkna med själva tävlingsmomentet som verkar göra det mer belagt med vidskepelserisk. Jämför med sport och andra former av tävlingar som alltså har större risk för vidskepelse. Stuart Vyse går igenom detta ordentligt i sin Believing In Magic - The Psychology of Superstition, se förra bloggningen för pek till bok och recension.

I nästan alla former av datorspel är det väl någon form av slump inblandad, t.ex. slumpgeneratorer som väljer ett motdrag före ett annat etc; detta skulle således även gälla schackdatorspel. Om inte annat så den (till synes) slumpmässiga blandningen av brickor (i 15-pussel), siffror (i Sudoku) eller liknande även om det sedan är frågan om ren skicklighet (samt kanske i viss mån av tur att man råkar hitta ledtrådar etc).

Vidskepelsen här kan vara av lite olika slag som är mer eller mindre rationella. T.ex. att man (tror att man) förlorar nästan alla spel när (och eftersom?) motståndaren först gör X, eller att id-numret för spelet är en udda siffra eller jämt delbart med 412, 42 eller 93112, eller att det är torsdag omedelbart före eller efter fullmåne (inom spelet eller utanför).

Går man lite vidare och utökar vidskepelse med "tro på magi", där "magi" motsvarar sådant som är mer eller mindre okänt kommer man in på andra intressanta saker.

Låt oss ta ett aktuellt exempel ur egen fatabur. Men tillåt mig först nämna att jag numera spelar väldigt lite datorspel, och de spel som i så fall tenderar att spelas är de konceptuellt enkla spelen, såsom Tetris (även om den en-dimensionella Tetris, Tetris 1D, kan bli lite tråkig i längden), en variant av 15-pusslet där man flyttar olikformade bitar (och som jag glömt namnet på just nu) etc. Som tidigare skrivits är Sudoku inte riktigt min kopp te (även om jag är intresserad av analyser kring spelet, t.ex. i nyhetsgruppen rec.puzzles. Strikt sett är Sudoku inte ett datorspel, även om det kan spelas på ett sådant.)

Och så det senaste tillskottet av dessa: Curve Ball som är ett Flashspel där man helt enkelt spelar någon form av tennis/pingis-match mot programmet, och där man kan skruva, studsa och hålla på. Skoj spel helt i min simpla smak, som till viss del kan förklaras av att jag i min ungdom spelade mycket pingis och hade som specialitet underskruvssmashar och liknande (men jag var inte speciellt jätteduktig i spelet).

Eftersom detta spel är helt utan manual (och om det skulle funnits någon vet jag inte om jag skulle bry mig) måste man lära sig de olika handgreppen genom att testa, testa, leka och testa (vilket för mig är det allra bästa sättet att lära mig datorprogram, trots bakgrund som just manualskribent).

Tyvärr innebär detta att man kan drabbas av en form av "vidskepelse" (kanske något vidare begrepp än ovanstående betydelse) genom att man kan få för sig att man måste göra si eller så för att få avsedd effekt, t.ex. att både göra en cirkelrörelse med musen och samtidigt klicka med vänster musknapp då man i själva verket endast behöver göra cirkelrörelsen.

Eller att man först måste gå bakom trädet och hämta guldet för att sedan gå in i huset och gömma det bakom kastrullerna för att sedan kunna skjuta det elaka monstret (ja, ni ser hur totalt ute jag är på nya datorspel :) men detta beteende är helt överflödigt. Ni som spelar mer moderna spel kan säkerligen ge bättre exempel (förhoppningsvis inte från egen erfarenhet).


Tyvärr tror jag att sådana beteenden inte bara gäller spelprogram utan vanliga program såsom ordbehandling och kalkylprogram, t.ex. att man (tror att man) först måste klicka med musen där för att sedan göra så etc, medan det räcker att göra så. Egentligen handlar det inte om att man inte har koll på alla kortkommandon utan att man blir "fast" i sin mentala modell över hur programmet fungerar.

För att koppla tillbaka till vidskepelse kring spel (gambling) så är det ju egentligen detta det är frågan om: att man har en felaktig modell hur verkligheten faktiskt fungerar. Sedan kan man kalla detta okunskap eller en dröm om en magisk värld.

Låt mig avsluta detta med Arthur C. Clarks lag: Any sufficiently advanced technology is indistinguishable from magic, dvs all tillräckligt avancerad teknologi går inte att skilja från magi.


En liten filosofisk utvikning om Curve Ball
Man kan f.ö. notera att Curve Ball är av synnerligen didaktisk natur eftersom det lär den ödmjuka sanningen att det man gör mot sina medmänniskor får man tiofalt tillbaka: dvs skruvar man eller framför allt studsar man på ett svårt sätt så är det stor chans att bollen kommer tillbaka på ett ännu svårare sätt. Ja, det var den enkla men viktiga lektionen.

Tyvärr är lösningen - och den är etiskt tveksam så låt inte era barn läsa vidare - att se till att smashen verkligen går in genom att t.ex. göra serve-ess eller spela snällt en stund och sedan dänga till bollen i krysset eller en fet underskruvs-studs-smash. Så vill jag inte att vi ska leva våra liv tillsammans.

På lite högre nivåer - säg från nivå 7 eller 8 - blir det ett förfärligt studsande och mindre möjligheter att spela finlir.


Tack till Bengt (på Frihetens Vingar) som gjorde mig underkunnig om spelet förra helgen och för en trevlig Talk-stund om bl.a. ovanstående igår.


Thebes kommentar om vidskepelse vs kunskap om sannolikhetsteori
Thebe skrev följande i sin kommentar:


Jag tror, taget ur luften, men precis som du är inne på, att vidskepelse ersätter det "hokus-pokus" som sannolikhetsteori beskriver. Dvs, om man ritar ett xy-diagram med "vidskepelse" på y-axeln och "kunskap i sannolikhetsteori" på x-axeln så kommer man få en linje med negativ lutning, den kanske t o m är logaritmiskt, typ y = -ln(x) eller något i den stilen!

Men, sen finns ytterligare ett litet problem med sannolikheter även om man känner sig trygg med hur det funkar ... och det är ju att man aldrig i det enskilda fallet kan säga något om utfallet. Vilket skulle kunna förklara ett slags möjlig vidskepelse-bias hos _alla_.

Thebe gör - som vanligt - en härlig matematisk koppling till problemen. Jag håller naturligtvis med att kunskap om sannolikhetsteori minskar risken för vidskeplighet även om den - som Thebe så rikigt skriver - troligen aldrig blir 0 (noll). T.ex. kan en spelteoretisk modell vara fel och man riskerar då att ersätter en felaktig vidskeplig "vardagsmodell" med en annan men mer lärd men ändå "vidskeplig" modell. Man bör dock notera att det normalt ses som mer rationellt att tro på den sannolikhetsteoretiska (men här felaktiga) modellen än vardagsmodellen.

Ett möjligt exempel på en sådan lärd men vidskeplig modell kan vara den tekniska analysen inom aktiehandel. Vissa hävdar att sådan analys, eller delar av den, är inget annat är skrock eller data snooping, dvs där man letar efter samband i efterhand och tror att man kommit på något listigt. (Här någonstans borde man kunna rekommendera boken Fooled by Randomness av Nassim Taleb som diskuterar liknande saker. En väldigt trevlig bok är det.)

Jag håller helt med om att vi aldrig är helt immuna mot olika former av vidskepelser. Det bästa motemedlet är nog att emellanåt vara medveten om att alla våra beteenden och/eller vår kunskap kan vara utsatta för vidskepligheter i en eller annan form.

Posted by hakank at 09:29 FM Posted to Diverse vetenskap | Skepticism, parapsykologi etc | Comments (5)

september 09, 2005

New Scientist: Spelare tenderar att vara mer vidskepliga än icke-spelare

New Scientist-artikeln Gamblers are a superstitious bunch berättar om en undersökning kring spelares (specifikt bingospelare) vidskepelse. Denna visar att (bingo)spelare tenderar vara mer vidskepliga än icke-spelare.

Gamblers are significantly more superstitious and place more importance on so-called "lucky events" than the larger population, according to new research.

Over 80% of UK bingo players surveyed were generally superstitious - some attributing lucky seats, lucky friends and lucky nights of the week to gambling success.

Just one-third of the larger UK population are thought to be superstitious - the most commonly reported behaviours being: avoiding walking under ladders, touching wood for good luck and throwing salt over shoulders.

Superstition is a belief that a given action can bring good luck or bad luck even when there are no rational grounds for that belief, explains Mark Griffiths, professor of gambling studies at Nottingham Trent University, UK.


Sagde Mark Griffiths och Carolyn Bingham har skrivit om detta i A study of superstitious beliefs among bingo players (PDF). Artikeln publicerades i Journal of Gamling Issues.


Orsakssamband mellan spel och vidskepelse
Man kan fråga sig om orsakssambandet mellan spelande och vidskepelse: Blir man lättare en spelare om man är vidskepligt lagd eller tenderar spelandet att skapa ett vidskepligt beteende?

Själv vet jag inte (och jag är varken speciellt vidskeplig eller spelare). En intution kring detta är att spelande troligen förstärker vidskepelse, speciellt om man inte riktigt har koll på hur märklig slumpen kan te sig och läser in samband där samband inte finns. Några vanliga sådana felslut är "spelarens felslut" (se t.ex. gambler's fallacy från skepdic och Gambler's Fallacy från eng. wikipedia), och att se kluster där sådana inte finns: Clustering illusion, eng. wikipedia).


Se även Recension: Stuart Vyse 'Believing in Magic - The Psychology of Superstition' som recenserar en utmärkt bok om vidskepelse. Vyse skriver bl.a. även att arbeten där slump eller osäkerhet av olika slag spelar stor roll, tenderar att skapa vidskepelse, såsom skådespelare, utövare av sport etc. (Tenderar spelare på börsen att vara vidskepliga?)

Kategorin Sammanträffanden innehåller bloggningar om näraliggande ämnen.

Posted by hakank at 06:56 FM Posted to Diverse vetenskap | Sammanträffanden | Comments (3)

september 04, 2005

Sammanfattning bloggareträff 4 september

Det följande är en sammanfattning av en skånsk bloggaremiddag 4 september 2005 i Malmö, restaurang Ankara. Förhoppningsvis är det mesta mer eller mindre korrekt återgivet, utan medvetna tankelapsusar (förutom det medvetet undanhållna) och därför med sanningen överensstämmande. Inga bloggar skadades i samband med middagen.


Deltagare
Henrik Sundström (En sida av mig)
Håkan Kjellerstrand (hakank.blogg)
Åsa Magnusson (Åsas anteckningar)
Åsk Wäppling (AdLand)

Uppdatering
Åsks bilder, varav några redan har förevisats av Åsa.
Henriks sammanfattning bör också läsas, finns: här med fina bilder på några av de böcker som dryftades samt deltagarna.


Sammanfattningen
Det bör noteras att ordningen bland nedanstående är till viss del manuellt garblad och överrensstämmer i vissa fall därför inte med den faktiska kronologin.


- Åsa har redan skrivit en kommentar om middagen: Bloggarlunch.


- Roligt nog sällade sig Henrik Sundström till den sälla skaran efter en stund. Kul var det! Han var lika trevlig, eftertänksam och underfundig som i alla fall jag föreställt mig.


- Politik. Det hoppades att det i alla fall blir en stark regering som inte behöver vågmästarpartier. Det funderades kring hur mycket misstag partierna kan göra innan man på allvar fundera på att rösta på annat parti än det man redan nu "beslutat". Malmöpolitikerna är inte väldigt mycket profilerade, med synnerligen enstaka undantag.

Svenska politikbloggar (och politikerbloggar) pratades det om, speciellt i samband med Åsas blogganteckning Bloggarna ökar politikerföraktet?.


- Jonas Söderströms skrivning Finns det en bloggsvenska? nämndes.

Förslag till begrepp för att använda om en enskild blogganteckning:: bloggning, i analogi till "loggning". Exempel på användning: "I går läste jag en bloggning om X.", "Jonas Söderströms senaste bloggning är för närvarande 'Finns det en bloggsvenska?'" etc.


- knuff.se och Johans andra blogg-alster (nyligen, intressant) diskuterades. Man vet nu vad Johan heter i efternamn.

Det hade på knuff.se bl.a. kontrollerats om det finns några specifika whisky-bloggar. (Svar: nej, ingen sådan blev funnen.) I samband med detta nämndes också en princip för sökning på nya sökmaskiner: Det är inte förrän i kring tredje sökningen som det egna namnet söks på.

(Fick du mitt sökmotorsökmeddelande, Johan? [Det exakta meddelandet
meddelades så ordagrant som möjligt för vissa deltagare på blunchen.])


- Åsa har faktiskt pingat intressant.se ett par gånger, några gånger alldeles själv; och åtminstone en gång var det någon annan som gjorde det och som sedan oförställt erkände detta faktum inför ett öppet bord. Håkan funderar på att pinga intressant igen.


- Henriks bloggning Avadå, cykelparkering förbjuden? diskuterades varefter man vid efter-middagen-promenaden åsåg sagda skylt; visserligen på avstånd.


- Åsk berättade om några av sina reklamfilmsidéer som sedan hade refuserades. Kreativt! (Nej, inte att refusera dem utan hennes idéer alltså.)


- Dan Browns böcker diskuterades, naturligtvis främst "Da Vinci-koden", och oavsett om den lästs eller inte (då enligt devisen "det är lättare att såga en bok om man inte läst den").

Därefter blev det diskussion huruvida innehållet var sant eller inte, eller snarare huruvida Dan Brown hävdade att det var sant eller ej. Både Umberto Ecos "Foucaults Pendel" och Wilson Illuminati-böcker nämndes kring detta.

Man funderade - och kom sedan på - vilka krediterade (såsom "Holy Blood, Holy Grail") respektive eventuellt okrediterade (såsom Lewis Purdues "Daughter of God", men se nedan) förlagor som Brown använt. Det kom här fram att man stämmer varandra mycket i USA.

Relevant länk: Da Vinci Code 'not copied':

A US federal judge ruled on Friday that Dan Brown had not plagiarised the work of another novelist in writing his phenomenally successful bestseller The Da Vinci Code.
...
"The factual details that underpin each book, however, are quite different," the judge ruled, adding that the heroes and heroines were different in both works.

"A reasonable lay observer would not conclude that The Da Vinci Code is substantially similar to Daughter of God," he concluded."

Vilket naturligtvis inte gör att det som står i boken är mer sant för det. Eller mindre.


- Minst 3/4 av deltagarna hade läst den fantastiska boken "Gödel, Escher, Bach", som väl måste räknas som non-fiction även om den har skönlitterära inslag.

(Fackbok är ett litet märkligt uttryck att använda i vissa fall och ibland är faktiskt non-fiction bättre. Tyvär är "icke-skönlitteratur" ett alldeles förfärligt och omöjligt ord.)


- Mods och andra mode-/musikinriktningar pratades det minsann också om. Det berättades en fascinerande skröna om ett sällskap som klädde ut sig i än den ena och än den andra tidigare generationers kläder och hade lärda generationsövergripande diskussioner.

Man var här något delad: vissa tyckte å ena sidan att det lät spännande att klä ut sig på detta vis, andra tyckte å andra sidan att det lät kul med de lärda diskussionerna ("med eller utan kläder" som någon fick till det).


- Vikt, vägande på vågar, bantning, McDonalds (och varför man inte äter där längre) pizza, slemmig pizza och inte fullt så slemmig. Malmöpizzeriorna Pizza Hut och Vespa nämndes som exempel på de senare. Såvida man inte gör den själv då.

Enligt utsago är viktväktarpizza den populäraste maträtten av viktväktarmat.


- Någon hade läst ut Sigge Ekelunds bok och gav en sammanfattning.


- Som association till både "Da Vinci-koden":s omslag och "Gödel, Escher, Bach" nämndes Scott Kim och dennes fantastiska Inversions (ambigram) som är bilder som visar olika/samma texter om man vänder upp och ned på bilden (eller vrider den lite på sniskan eller så).


- Det blev en del webbserverloggsdiskussioner, vilket egentligen är löjligt att ha när Åsk är med, eftersom AdLand får så vansinnigt många fler träffar än de övrigas bloggar/sajter tillsammans. (Det berättades om stackars google som href="http://www.hakank.org/webblogg/archives/001041.html">fortfarande fram till för några dagar sedan fastnat i sitt eget spunna nät. Det är dock fixat nu genom enkelt trixande i robots.txt.)


- Egentillverkade och andrastillverkade bloggar och liknande publikationssystem. nämndes. Ungefär här (egentligen lite tidigare) pikades hakank vänligt men bestämt för sitt intresse för matematik och programmering och det bjuder han gott på. Han förklarade bl.a. varför han använt programspråket Ruby i programmet base_conv. Ruby on Rails koms kort in på.


- En av deltagarna berättade om den bokklubb som denne ordnat, och där man träffas cirka en gång i månaden sedan några år för att diskutera skönlitterära verk. Det lät intressant. Denne deltagare får gärna blogga lite mer om det om denne inte bloggat om det tidigare.


- "Unser Mats" (eller vad det nu hette på holländska) är alltså vår Mats Andersson. Begreppet myntades i samband med bl.a. Mats bloggning [kommer tyvärr inte åt vår Mats' blogg just nu och kan alltså inte permalänk-länka till bloggningen] om Aftonbladets märkliga utspel om att Virtanen är sveriges bästa (eller populäraste) blogg.

Researcher.se sammanfattar hela spektaklet bra i Ett pr-försök i blogosfären.

Det är intressant att en journalist/skribent refererar till en av sina artiklar som "den dumma skrytartikeln". Mer sådan ärlighet! Detta gäller naturligtvis inte bara tidningarnas skribenter.


- Buzz-marketing/viral reklam pratades om. Vi försökte komma fram till hur många av rekommendationerna som gjordes vid bordet för böcker, maträtter (t.ex. pommes fritten som någon tyckte var god) som i själva verket var köpt reklam.

Mer specifik viral reklam nämndes: Freakonomics (som hakank gått på), Ericsson-telefoner etc.

Vi försökte också komma fram till gränserna för vad (etiskt) tillåten sådan reklam kunde vara. Det gick inte så bra, främst för att vi snabbt och i sedvanlig ordning kom bort från ämnet.

Ett specifikt framtida exempel diskuterades och ansågs inte vara sådan oetisk reklam eftersom den kommer att innehålla alla relevanta detaljer som berättar som det är.

Bloggare bör vara väl medvetna om att de är utsatta för sådan påverkan och bör granska källor innan de snabbt länkar vidare en nyhet.


- Ernst-Hugo nämndes också liksom att Åsk berättade om lagda pengar i en sko.


- Man diskuterade mycket om böcker och varför man läste böcker eller inte. Nu visade det sig att några av deltagarna "inte läste böcker" men det kom sedan fram till att man menade att man inte läste (speciellt mycket i alla fall) skönlitterära böcker.

[Det var inte bara här som denna begreppsvridning görs. Även i det berömda bok-memet som svirrade runt i våras verkar man göra samma sak. Fråga: Varför jämställer man ofta "läsa böcker" med "läsa skönlittera böcker"? För mig som numera läser mer non fiction än fiction, men läser mycket sådant, blir det faktisk lite förvirrande.]


- Åsk glädjer oss stoligen genom att berätta att hennes ascii log nu har ett RSS-flöde. (Men det funkar liksom inte riktigt eftersom man får i skrivande stund ett felmeddelande på länken. Ett fint och måhända tilgörande forna tider tillhörande meddelande men i alla fall.).


- Bloggar diskuterades också. Denna gång blev det faktiskt en rätt animerad diskussion om "journalistbloggar" (begreppet fnuttades livligt var gång det användes) var bloggar eller inte, och varför de var bra eller inte, oavsett vad de egentligen är.

Som vanligt enades man inte i begreppsdjungeln men vissa framhärdade åsikten att "blogg" är eller kommer snart att bli rätt meningslöst för att beteckna något, men att "bloggare" kanske fortfarande är användbart för att beskrivna något meningsfullt i världen. Oavsett om det Linda Skugge skriver för Expressen är en blogg eller inte: är hon en bloggare? Varför/varför inte? Är Carl Bildt en bloggare? Etc.

Man bör inte förväxla "blogg" med "bra blogg", vad nu än detta innebär.


- Håkan berättade parentetiskt - sedan Åsk berättat om sin fascination för gamla ord - när, hur och varför han lyckades (och var därför lite stolt över) naturligt få in användandet av ordet "omhulda" naturligt i en mening hos sin frisör häromdagen. (Normalt skulle han troligen använt "embrassera" i stället, av engelskan "embrace".) Håkan berättade också att det var en dag från exakt 5 år sedan han började träna Tai Chi, och berättade också varför.

Han erkände livligt och glatt att han gjorde detta enkom för att få kunna skriva ner detta i sin bloggträffsrapport.

(Det han glömde berätta av de tre saker han skulle nämna i detta syfte var hans nyliga tandläkarbesök och vedermöderna som föregick detta. Kortfattat: om du också - av skäl som vi andra inte behöver bry oss om - tycker det är obehagligt att ligga nästan raklång ned under tandläkarundersökningar/-borrningar så finns det faktiskt de tandläkare som har som princip att "patienten behöver inte ligga ner". Kolla med din tandläkare. De kan dock vara nyfikna på skälet bakom.)


- Åsk berättade också lite om skillnaden mellan de svenska och danska dietrestriktionerna för gravida samt annat kring sitt tillstånd, varav vissa detaljer inte behöver upprepas här.


- Namedropping! En sådan namedroppingsession var den direkta orsaken till annorstädes noterade diskussion om Dan Brown (via Robert Anton Wilsons Illuminati-serie). Det började med en förväxling av namn. Var det Wisdom?


- Henrik berättade vem han var och fortfarande är.


- Kring avdelningen för icke uppgjorda frågor: Konspirationsteorier mer generellt. Vad är det som konstituerar en konspirationsteori? Kan en konspirationsteori vara sann, eller måste den vara sann? Krava en konspirationsteori en konspiration?

Och vad är egentligen skillnanden mellan konspirationsteori-dokumentärer och s.k. paranoid-dokumentärer? Detta sistnämnda klargjordes icke till fullo.


- Varför man studerade (eller började studera) danska på universitetet. I ett flertal fall: för att det eventuellt kunde bli aktuellt i jobbet Någon hade haft danska (liksom norska) läroböcker i sina universitetsstudier och sålunda också studerade danska.


- Kände sig de skånska deltagarna som skåningar? Eller kanske mer som (i förekommande fall) Malmöiter?

Det fördes också en lättsam diskussion huruvida Skåne bort tillhöra Danmark, Sverige eller vara en egen region. En norrländsk/dansk/holländsk röst med emellanåt amerikansk brytning hördes någonstans i bakgrunden med fullständigt irrelevanta kommentarer kring detta.


- En deltagare berättade - i kön til betalningen - att denne en och samma dag besökt två Ankara-restauranger i Köpenhamn men ej den tredje, däremot den aktuella Ankara-restaurangen i Malmö. Imponerande var ålyssnaren/-na.


- Man hade trevligt och åt gott.

Posted by hakank at 11:55 EM Posted to Blogging | Comments (19)

Svaren på Augusti-pyssel

Här kommer så de eftersökta (?) svaren på 2005 års Augusti-pyssel. Pysslen är samtliga saker som jag själv leker med från tid till annan.


Fråga 1) Vad står här egentligen och varför (dvs enligt vilken metod): 1045668080


Svar: Det står "hakank" i bas 36. Detta kan lämpligast kontrolleras via programmet base_conv, se vad som står för bas 36. Programmet beskrevs mer i base_conv: Konvertering av ord till tal till ord just som en ledtråd till denna gåta.


Fråga 2) Vad står här egentligen och varför: 15604225

Svar: Det står "messages". Enligt följande mekanism

1. En faktorisering av talet ger följande primtal: 5, 7,13, dvs 15604225 = 5^2 * 7 * 13 * 19^3.

2. Om man tar positionerna i alfabetet "a".."z" och låter "a" har position 1, "b" position 2 etc, för dessa faktorer får man bokstäverna: "e", "g", "m", "s". Faktorn 5^2 motsvarar två stycken "e", 7^1 motsvarar ett "g" etc. Hela denna konvertering skapar bokstäverna: "e","e","g","m","s","s","s" enligt följande:

alpha = "abcdefghijklmnopqrstuvxyz"
alfa[5] = e # 5^2 : 2 stycken e
alfa[7] = g # 7^1: 1 styck "g"
alfa[13] = m # 13^1: 1 styck "m"
alfa[19] = s # 19^3: 3 styck "s"

Eftersom talet 1 (som motsvarar "a") alltid är en giltig faktor så kan denna bokstav också ingå. Den slutliga bokstavsmassan blir alltså

0 eller flera "a" (här behövs exakt ett "a")
e
e
g
m
s
s
s

dvs e e g m s s s samt eventuellt ett gäng a.


Efter lite anagrammerande kryper det korrekta svaret "messages" fram..

OK, a-konstruktionen gjorde det kanske onödigt svårt, och var det som antyddes i den uppdaterade kommentaren på Augusti-pyssel-sidan. Sorry 'bout that.

Fråga 3) Vad ska stå i stället för "?" i nedanstående?

Så kommer vi till sekvenserna där bara ett tal var givet. I kommentarerna gavs sedan en ledtråd med det omedelbart föreliggande talet.

a) ...., 1596, ?

Svar: 2583. Detta är summan av de 15 första Fibonacci-talen och svaret är det 16:e talet i denna serie, dvs 2583.


# Fibonacci talen
> fibonacci(i)$i=1..15;
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610


# summan av de 14 första
> sum(fibonacci(i),i=1..14);
986

# 15 första
> sum(fibonacci(i),i=1..15);
1596

# och så de 16 första
> sum(fibonacci(i),i=1..16);
2583

# hela serien
> seq(sum(fibonacci(i),i=1..a), a=1..16);
1, 2, 4, 7, 12, 20, 33, 54, 88, 143, 232, 376, 609, 986, 1596, 2583

Sekvensen som fås av summan av de första a Fibonacci-talen är för övrigt 1 snäpp ifrån Fibonacciserien:

> seq(sum(fibonacci(i),i=1..a)+1, a=1..16);
2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584

Eller snarare: Det är en Fibonacci-liknande rekursiv serie där men i stället för att utgå från (1,1) som generatorer utgår man från (1,2).


b) ...., 78, ?

Svar: 91. Serien är addition av de a (12) första naturliga talen och nästa tal är det 13 talet i denna serie.


> 1+2+3+4+5+6+7+8+9+10+11;
66

> 1+2+3+4+5+6+7+8+9+10+11+12;
78

> 1+2+3+4+5+6+7+8+9+10+11+12+13;
91

# hela serien
> seq(sum(i,i=1..a),a=1..13);
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91


c) ...., 129, ?

Svar: 160. Detta är summering av de första primtalen och svaret är det 11 talet i denna serie: 160 som fås när man adderar 31 till 129 = 160.


> ithprime(i)$i=1..10;
2, 3, 5, 7, 11, 13, 17, 19, 23, 29


> 2+3+5+7+11+13+17+19+23;
100

> 2+3+5+7+11+13+17+19+23+29;
129

> 2+3+5+7+11+13+17+19+23+29+31;
160

# hela serien
> seq(sum(ithprime(i),i=1..a),a=1..11);
2, 5, 10, 17, 28, 41, 58, 77, 100, 129, 160


Fråga 4) Vad är det gemensamma för nedanstående ord?
* besökes
* eksem
* gömmes
* webb


Svar: Samtliga dessa ord innehåller endast bokstäver med primtalspositioner (cf diskussionen kring fråga 2). Primtalsbokstäverna är alltså där positionen står först. (Not: positionen 1 för "a" har jag redan bett om ursäkt för.)

1:a
2:b
3:c
5:e
7:g
11:k
13:m
17:q
19:s
23: w
29:ö

Orden med respektive faktorer:
* besökes: 5757950 = 2 * 5^2 * 11 * 19^2 * 29
* eksem: 67925 = 5^2 * 11 * 13 * 19
* gömmes: 3259165 = 5 * 7 * 13^2 * 19 * 29
* webb: 460 = 2 * 5 * 7^2

Notera att orden inte innehåller samma antal faktorer (antal bokstäver) som det givna talet, utan är ord som endast innehåller dessa bokstäver oavsett hur många förekomster av bokstaven som ingår. Denna fråga var mestadels med som en ledtråd till fråga 2.

Posted by hakank at 12:24 EM Posted to Matematik