Recent blog posts

Fast, Offline, Reverse Geocoding; or, in Which Polygon am I?
An algorithm for finding out which country contains a (lat,long) pair
Playing With SBV
Solving a puzzle with a SAT solver
Jump Consistent Hash in Haskell and C++
How hidden behaviour in C++ can be an important part of an algorithm
Mutable variables are a side channel
Mutability can hide communication between parts of a program
On Git History – or, “The Case for Merge Commits”
Merge commits add extra information, and extra information is most often a good thing
Toggling inclusivity of Vim motions
One weird trick to double the amount of motions in Vim
Change Cursor in Vim in iTerm2
In iTerm2 it's possible to change Vim's cursor depending on the mode you're currently in
Make all mac apps available from the command line
A zsh script for making all the apps in /Applications available from the command line
Classes are a dumping ground for language features
When classes are the only structuring mechanism, they tend to accumulate features
Autosquashing in git rebase
Get git to prepare interactive rebasing for you
zsh: Temporary file with output from command
A neat zsh process substitution trick
Rediscovering Erlang
In which I return to Erlang and discover OTP
Programming Praxis: Ordered Hash Tables
Chained Hash Table With Ordered Lists
fswatcher – a platform-agnostic inotifywait
A simple program for running a command on file changes
Unnamed Namespaces in C++
One less use of the “static” keyword
Translating a Fibonacci Sequence Generator to Python
A non-Python Programmer writes Python
A nice, little known C feature: Static array indices in parameter declarations
Explanation of a little known C feature – and yet another use of the “static” keyword!
git tip: avoid committing your password
Avoid committing your password by accident
Wow. I'm suddenly in Portland!
Don't make and enter
git bisect squared
Using git to bisect the bad commit found with “git bisect”
Bio-Plausible vs Bio-Inspired
Essay on bio-plausibility vs bio-inspiration in science
Purely Functional Data Structures: Random-access List
Implementation of a random-access list with O(1) list primitives and O(lg n) lookup time.
Programming Praxis: Hash Table With Open Addressing
Hask table with open addressing and deletion
handlerToIO: use forkIO in Yesod handlers
The newly added handlerToIO function makes it easy to use forkIO and still be able to run GHandler actions
git 1.7.12 Will Make it Easy to Update First Commit
“git rebase -i --root” allows changing the repo's first commit
Programming Praxis: Min Stack
Stack with O(1) push, pop and min
Linux' Git History is Beautiful
The coloured git history of Linux is a thing of beauty
Github Needs a Better Way to “Bookmark” Projects
Suggestions on how to improve Github's notifications
C/C++ Pointer Declaration Syntax – It makes sense!
C pointer declaration syntax makes sense – kind of
A cool algorithm for similarity search
Google Summer of Code 2011: A summary
Experiences from being a GSoC mentor
Simple Inline Code Highlighting with Vim
Syntax highlighting for inline code in Markdown
C Trigraph Trap
How “??/” can lead to disaster
Photo-blogging before “smartphones”
How photo blogging was done in ye olden days
Visual block mode for Kate's Vi Mode
Finally, Kate's Vi mode has visual block mode support
Solitaire Cipher
Implementation of the Solitaire cipher from "Cryptonomicon"
Read current X background image to a JPEG file
Ever wanted to dump your current background to a file? No?
Prüfer Sequence – Compact Tree Representation
A clever, compact way of representing trees
Show current vi mode in your zsh prompt
Don't lose track of which vi mode zsh is in
Showing grub menu after hibernating in openSUSE
How to show grub menu after when restarting after hibernating openSUSE
How Neurons do Differentiation
How temporal inhibition can be used to create "neuro calculators"
Game of Life
Where I fix the embarrassing fact of never having written GoL
Code Reading as a Team Activity
Could code reading help keep programmers honest?
HsUnixCompat.hs on Debian
Solution to the “Missing header file: HsUnixCompat.h” problem
Winter Sun
The sun over the Trondheim fjord a really cold day.
Cold Ocean
Photo taken from Råkvåg
December in Trondheim
A dark night in Trondheim
Sjakk på «Nabon»
Photo of a chess game at the pub Den gode nabo in Trondheim
Wish: Options for Kate's Indenting Scripts
A wish for easier manipulation of indentation options in Kate
Kate's Vi Input Mode – What will KDE 4.4 bring?
What is new in the Vi input mode for Kate in KDE 4.4?
A photo of the Nidelva river taken from the old town bridge
How Kate got X-rated
Why the name "Kant" didn't stick around...
Google Calendar Plasmoid, Take Two
An improved version of my Google Calendar plasmoid
Google Calendar Plasmoid
A quick python hack
Herman Düne
Photo taken at a Herman Düne concert at Samfundet in Trondheim
I met this dog while hiking during the christmas holiday
Breivatnet in Stavanger
The Vi input mode for Kate is “done”
The original goals set for Kate's Vi input mode are now completed
GSoC is over: The state of Kate's Vi input mode
State of Kate's Vi input mode now that GSoC is over
GSoC 2008: Vi input mode for the Kate kpart
I will create a vi input mode for Kate for Google Summer of Code