Solitaire Cipher
0I finally read Neal Stephenson’s book Cryptonomicon this summer which – besides being a great read – introduced an interesting cipher called Pontifex. This cipher is based on the Solitaire cipher by Bruce Schneier and the idea is that one simply needs a deck of card in order to communicate securely if a list of keys has been exchanged. When seeing that yesterday’s challenge on Programming Praxis was to implement this cipher I simply had to do it, and here’s the resulting implementation, in Haskell, of the Solitaire cipher:
Read current X background image to a JPEG file
2Hack of the day:
- Problem: I wanted to be able to fade to a new background image. But how could I get the current background image so that the two images can blended together?
- Solution: I dived into Xlib for the first time since 2003 and came up with a small C program that reads the current background image and writes it to a JPEG file.
I now have a script that downloads a new background image every hour and nicely fades to this new background by getting the current background and gradually blending the new image over this.
[As Johannes points out below, Gnome can already do this. KDE, too, will always fade in new wallpapers whether you change manually or with a wallpaper plug-in.]
Code:
Artikkel om utviklingslæren i «Alle kvinners blad» i 1951
0På hyttetur i Råkvåg for noen uker siden kom jeg over et nummer av «Alle kvinners blad» fra 1951. Bilde av forside:
For seksti år siden var konflikten mellom utviklingslæren og religion aktuell – og følgende artikkel gir et godt innblikk i situasjonen for seksti år siden:
MENNESKET – en slektning av apekatten eller skapt i Guds bilde?
AV JON JOHNSON
Det er ikke alltid så enkelt å være skolebarn i våre dager. I den ene timen har de bibelhistorie og lærer at Gud Herren skapte mennesket i sitt bilde. I timen etter har de naturfag og får høre at «mot slutten av teriærtia har mennesket oppstått og har utvikla seg» og de blir instruert om den utviklingshistoriske sammenheng det er i alt liv på jorden og at mennesket her ikke er noen unntagelse.
Noen vil her si at det gamle tøvet om en skapelse er ikke annet enn gamle østerlandske sagn og må ut av all undervisning som har med menneskets virkelighet å gjøre. Det er de som mener å være på den sikre side bare de kan få sparket ut teologene og alle deres gjerninger og alt deres vesen.
Så enkelt er spørsmålet ikke. Vårt demokrati og hele vår livsstil forutsetter at mennesket er et åndsvesen med en absolutt verdi og en hellig og ukrenkelig livsrett. En stund kan vi nok leke med tanken om at vi er en slags finpussete tremenninger til apekatten. Men i lengden må vi nok også i våre tanker bli klar over menneskets verdi og egenart, ellers vil vi litt etter hvert drive i retning av også i praksis å behandle oss elv og hverandre som dyr.
Den gamle tro at mennesket var skapt i Guds bilde har vært den åndelige drivkraft i en rik historisk utvikling mot stadig større respekt for det enkelte menneske. Kampen for frihet og alle menneskers like rett er drevet frem av denne gamle tro.
Det er naturvitenskapens biologi med sin moderne utviklingslære som har banet veien for et nytt syn på mennesket. Men er det da sant at mennesket ikke er noen unntagelse i den store utviklingssammenhengen som er felles for alt jordens dyreliv? Ja, så langt har biologien rett. Det klareste beviset er her det som menneskets fosterutvikling viser. På et tidlig stadium i menneskefosterets liv er der en slående likhet mellom det og f.eks. fosteret av en hai, en høne og en hund. Likheten er så slående at det blir klart at der er en sammenheng hvordan en enn skal forklare overgangen fra dyr til menneske. Men der er ikke riktig når man så på grunn av dette sier: «Mennesket nedstammer fra dyret. Visstnok det høyeste utviklede dyr, men dog bare et dyr blant de andre.»
Feilen er her at folk tror at vet de hva noe er laget av, da vet de og hva det er. Det stemmer ikke. En ting er hva noe er laget av. En annen er hva det er. For å gjøre dette klarere vil jeg bruke en sammenligning. En kunstmaler kjøper malertuber, pensler, pallet, lerret og maler så et maleri som er et kunstverk av høy kvalitet. Maleren dør og kunstverket blir glemt. Etter en tid blir det gjenoppdaget og spørsmålet reises: Hvor stammer det fra? Vitenskapsmenn tar fatt. De røntgenfotograferer, de analyserer kjemisk, de kommer på sporet og finner den gamle paletten, pensler- og fargetuberester. Etter nye grundige undersøkelser kommer løsningen: Maleriet nedstammer fra fargehandleren og det kan vitenskapelige bevises ledd for ledd. Så langt er alt i skjønn og vitenskapelig orden. Og allikevel: Om et maleri aldri så meget kommer fra en fargehandel er det dog et kunstverk som er skap av en kunstner. Det materiale kunstverket er laget av, kommer fra fargehandleren. Men en skjønner i virkeligheten ingen ting av det hele hvis en ikke også ser den kunstneriske tanke, inspirasjon, som har formet fargematerialet på denne måten.
Dyreriket er det menneskelige kunstverks fargehandel, en levende og uhyre rikholdig fargehandel. Mennesket «kommer av» dyreriket som et maleri kommer fra en fargehandel. Mennesket er skapt som et åndsvesen på samme måte som maleriet er skapt av en kunstner.
I Bibelen står det: Gud skapte mennsket av muld. Muld er billedlig ord for et naturlig, jordisk materiale. Som rett er skal da naturvitenskapen ha frihet til å undersøke hvori denne muld består. Men tror den at den derfor vet alt om mennesket, tar den feil Fargekjemien alene gir ikke forstand på malerkunst, og naturvitenskap alene gir ikke forstand på menneskets egentlige vesen.
Mennesket kan lignes med et kunstverk, Det er laget av et naturlig materiale. Men dette materiale er hos mennesket formet på en måte som gjør det til et åndsvesen av en egen art.
Dette skal ikke gjøre oss viktige så vi tenker at vi er «bedre» enn dyrene. Om det er det bare å si at det har ingen mening å sammenligne mennesker med dyr for å finne ut hvem som er best. En slik sammenligning er like meningsløs som å ville sammenligne en hest og ei ku for å finne ut hvem som er best. De er nemlig ikke av samme art, enda begge har fire ben. Mennesker og dyr er heller ikke av samme art selv om de har mange likhhetspunkter. Om vi nå allikevel skulle tvinge fram en sammenligning, er det jo klart at dyrene er bedre enn vi. Når det gjelder ondskap slår vi dem med knusende overlegenhet.
La det være klart at ingen naturvitenskap kan motbevise den tro på mennesket som har båret vår kultur i dens kjempende historie. Vi skal bare hilse med glede den vitenskap som kan klarlegge for oss vår naturside. Men vil den fornekte åndssiden ved mennesket, går den utover sin begrensning som naturvitenskap og er ikke lenger vitenskap, men en ny tro. Mennesket er et underlig dobbelvesen. Det er muld av mulden, det trekker med seg byrden av sin naturlige opprinnelse og samtidig er det ånd av den evige Ånd. Den gamle boken som ikke inneholder vitenskap, men visdom, sier om mennesket: Støv er du og støv skal du bli. Men i den samme bok leser vi: Du gjorde ham lite ringere enn Gud; med ære og herlighet kronte du ham. Glem ei du er støv, glem ei du er mer enn støv, sa Wergeland. Tiden holder på å glemme det siste, den vil gjøre oss til bare støv. Mer enn støv, her må vi styrke vår sviktende hukommelse.
Bilde av artikkelen i bladet:
Prüfer Sequence – Compact Tree Representation
0Sometimes you stumble over some cool things you really wish you could use right away – like the Prüfer sequence. The Prüfer sequence is a way of uniquely representing trees of n nodes with a sequence of n-2 node labels. The tree shown below, which has six nodes can thus be represented by a string of four labels, namely “3334“.

The tree represented by "3334".
To come up with the Prüfer sequence for the tree you first have to come up with an order for the node labels. For the tree above this is simply 0, 1, 2, …. You then start with the “smallest” label, remove it and add the node it is connected to to the sequence. Here, that would be to remove node 0 and add 3 to the sequence. The next nodes would be node 1 and 2, which are also connected to node 3, yielding the sequence “333” after three steps. You would then remove node 3 and add 4 to the sequence. When only two nodes are left you stop. The final result is thus “3334“.
To go from a Prüfer sequence to a tree you first find the degree of each node, this is simply done by counting its occurrences in the sequence and add one, meaning that node 0 has degree 0+1=1, while node 3 has degree 3+1=4. You can then do the reverse of the encoding process: for each node in the sequence, add an edge from it to the first node with degree 1 and reduce both nodes’ degree. This is done until you have only two nodes left which should be connected.
Python code for decoding a Prüfer sequence into an array of node pairs (connection):
def prufer_to_tree(a): tree = [] T = range(0, len(a)+2) # the degree of each node is how many times it appears # in the sequence deg = [1]*len(T) for i in a: deg[i] += 1 # for each node label i in a, find the first node j with degree 1 and add # the edge (j, i) to the tree for i in a: for j in T: if deg[j] == 1: tree.append((i,j)) # decrement the degrees of i and j deg[i] -= 1 deg[j] -= 1 break last = [x for x in T if deg[x] == 1] tree.append((last[0],last[1])) return tree
Show current vi mode in your zsh prompt
0Having a brain damaged by prolonged use of vim I even use a vi input mode for my shell. I recently switched from bash to zsh and among other niceties zsh can show which vi mode I’m currently in and update this in real time as I switch between normal and insert mode. I found out how to do this from Aaron Toponce’s blog.
To have a VIMODE variable which is updated as you switch modes, add this to your ~/.zshrc:
# set VIMODE according to the current mode (default “[i]”) VIMODE='[i]' function zle-keymap-select { VIMODE="${${KEYMAP/vicmd/[n]}/(main|viins)/[i]}" zle reset-prompt } zle -N zle-keymap-selec
You can then add $VIMODE to your prompt:
# Set the prompt to “[user]@[host[ [vi mode] $ ” PROMPT="%n@%m ${VIMODE} \$ "
Showing grub menu after hibernating in openSUSE
0When hibernating in openSUSE and starting the computer again the grub boot menu is not shown and you are instead taken directly to openSUSE. This is most often what you want, but if you have a dual boot system like me and want to be able to switch between Linux and Windows without ending the session in either end, this is annoying. Luckily there is a way to show the grub menu after hibernating: If you edit the file /usr/lib/pm-utils/sleep.d/99Zgrub and comment out the last two if blocks, grub will be shown as usual. This solution is taken from http://forums.opensuse.org/english/get-help-here/install-boot-login/435012-suspension-hibernation-grub.html.
A caveat: make absolutely sure that your Linux file systems are not mounted in Windows and vice versa. This can lead to data loss!

«Wonders of the Solar System» kommer på NRK 2 i november
0Jeg sendte i mai en e-post til NRK der jeg spurte om de de hadde planer om å kjøpe inn den fantastiske BBC-serien «Wonders of the Solar System». Jeg fikk til svar at det hadde de ikke, men at de registrerte det som et forslag. I dag fikk jeg en meget hyggelig e-post fra NRKs informasjonsavdeling der de kunne fortelle at serien er kjøpt inn og skal sendes f.o.m. 15. november. Serien består av fem episoder om astronomiske fenomener og anbefales på det sterkeste.
Tur til Estenstadmarka
0I finværet i dag gikk vi en tur til Estenstadmarka. My Tracks logget turen vår, og jeg tok også noen bilder:
View Tur til Estenstadmarka in a larger map
Mitosis Animation
0While studying for a biology class I came over the following gem and just had to share. Cute and educational!




