Tuesday, January 13, 2009

Python å jag

Dude! Python 3.0 a.k.a. Python 3000 släpptes på min 30-årsdag!

Friday, January 09, 2009

Dags att sluta raka jakar

Jag råkade läsa om begreppet yak shaving, vilket innebär att man inte ska raka jakar när man har annat att göra. Det inlägg jag nyss länkade till beskriver det med en liten berättelse om en kille som ska vaxa bilen och så slutar det med att han rakar en jak i stället, för att få jakhår till den kudde han måste lämna tillbaka till grannen för att få låna dennes vattenslang. "Now is better than perfect" är någon slags sammanfattande sensmoral; det finns säkert något gammalt djungelordspråk med samma innebörd.

Och så kom jag att tänka på att jag rakar en del jakar. För några veckor sedan åt jag en macka med ost och gurka, slog mig ner framför tv:n och råkade se ett avsnitt av The Simpsons. Så tänkte jag att man har ju sett en del avsnitt av The Simpsons i sina dagar, många av dem flera gånger, men har man sett alla? Nej, framförallt har man missat ganska mycket av de senaste åren. Man borde göra en lista över alla avsnitt av The Simpsons som man har sett och alla man inte har sett! Och då vore det ju fint om man hade något slags råmaterial att göra denna lista av, med små beskrivningar av avsnitten. Wikipedia har ju förstås en fin liten artikel om varje säsong av The Simpsons, där varje avsnitt i säsongen finns listat med hjälp av en liten lättparsad mall. Självklart bör man göra ett litet Python-script som laddar ner och parsar de här sidorna, och så kan man lägga in sina egna små fält i mallarna som heter typ "SeenIt" och "Rating" i sin lokala kopia av sidan och så kan scriptet sen generera den fina lilla listan. Så tänkte man. På den tiden.

Det hela var som en ljuvlig dans på små rosiga moln, tills jag upptäckte att artiklarna för säsong 11 till 17 inte använde samma mallar som alla de andra, utan någon äldre variant. I stället för att då hacka om mitt script till att även förstå sig på denna mall, som medel-Svensson kanske hade gjort, insåg jag då att jag måste göra min plikt som medborgare och uppdatera de sidor som använde den gamla mallen. Så jag började göra ett litet script för detta i stället. Mitt första naiva försök med reguljära uttryck bröt ihop (jo, jag har viss grundskole-koll på Chomskys hierarki för formella grammatiker och vet att ett reguljärt uttryck inte är tillräckligt kraftfullt för att förstå sig på parenteser inne i parenteser (som den här), men jag trodde att jag skulle slippa problemet i och med att jag inte skulle stöta på några mallanrop som använde andra mallar i sina argument, men jag fick tji), så jag insåg att jag behövde en ordentlig wikitext-parser. Jag blev besviken på tillgänglig öppen källkod; den mest utvecklade MediaWiki-parsern för Python verkar vara en som heter mwlib, men den var för utvecklad och verkade askrånglig att installera så jag sket i det. (Jag gör det här på Windows, där det är svårt att installera intressanta saker.) Den andra jag hittade var en som låg i pywikipedias Subversion-repository, men den var underutvecklad och fixade inte just mallar ordentligt. Jag ägnade en stund åt att försöka förstå den koden men iddes inte utan bestämde mig för att skriva ihop min egen lilla wikitext-parser, jag vet inte om det är en LL(1)-parser; vi kan säga av dramaturgiska skäl att det är en LL(1)-parser.

Nu är jag i det läget att jag har fixat de där Simpsons-episod-artiklarna, men jag har inte orkat bry mig så mycket mer om min egen vilka-avsnitt-har-jag-sett-lista, helt ärligt så skiter jag i det, så nördig är jag inte. Hur som helst, allt jag ville var ju att äta en macka.

Thursday, January 08, 2009

Hur vi uppfostrar varandra

En grej är att man bör ge komplimanger till någon för vad den gör, inte för vad den är. Ett tilltalande och evidensbaserat sätt att förhålla sig, tycker jag. Länk.

Simons blogg där han skriver ibland.

Followers