Erik Ramsgaard Wognsen

Thoughts & technology

Ode to my Casio

The year was 2002 and I had started gymnasium (≈high school). My parents had bought me the graphic calculator required for our maths classes: Casio fx-9750G PLUS. It was white and green and curvy and Casio — not dark and rectangular and from Texas Instruments, as a calculator was expected to be. Soon, however, this happy-looking thing became my companion on my journey into the world of programming.

Checks for Your Django Project

The Django web framework has a management command to check your code for various problems. For example, it checks that your database CharFields define the max_length attribute, and that you have not set DEBUG = True in deployment. This is good for catching various mistakes in using the framework before the problem shows up in production. And for your own business logic, you have unit tests. But there are still many things to not mess up, and they are easy to forget if they are not incredibly easy to check. So I wrote a script to check every problem I could think of in one go.

The Sound of E

E is the most common letter in many European languages. In English it makes up 12–13% of all letters written depending on source (see for example Wikipedia or Practical Cryptography). The second place is T with around 9%. In Dutch, Danish, and German, ‘E’ goes as high as 15–17%. But should it really be this common?

Learning Lithuanian

Lithuanian is a very old language with connections to Latin, Ancient Greek and Sanskrit. This quote is attributed to French linguist Antoine Meillet:

Anyone wishing to hear how Indo-Europeans spoke should come and listen to a Lithuanian peasant.

[Lithuanian Embassy Flag] [flickr_flag] by [Mr.TinDC] [flickr_mr] is licensed under [CC BY 2.0]( Embassy Flag by Mr.TinDC is licensed under CC BY 2.0

This is in itself very interesting, also because Lithuanian is less well-known, and has survived bans and attempts of being eradicated in the past. I also have a personal connection to the language because it is the native language of my girlfriend and her family. I am trying to learn it, and while I (slowly) do so, two things stand out to me:

The first is that in Lithuanian, when you read a word, you know (almost) how to pronounce it. This is very different from for example English and Danish, where the connection between writing and pronunciation is complicated and fraught with exceptions. See for example ghoti, pronounced “fish”.

The second is that Lithuanian uses seven cases, which means a word has seven different forms depending on its role in a sentence. A remnant of a case system is seen in personal pronouns in English: I helped her, and she helped me. “I” and “me”, as well as “she” and “her”, have the same “meaning”, but a different form depending on roles such as subject and object. In Lithuanian, every noun and adjective changes depending on role. And these roles include cool things like being a location or an instrument or means of doing something!

Debugging Complex Numbers

For my research I needed to implement a discrete Fourier transform in the C-like programming language of the UPPAAL model checker. One option would be to port an existing C library such as FFTW, but for a proof of concept, porting a large, powerful library would be much slower and less instructive than implementing a simpler algorithm myself. Programming rant coming up.

4 Years with Colemak

As a young computer user I felt that something was wrong with the keyboard. Like Morpheus says to Neo when they first meet:

What you know you can’t explain. But you feel it. You’ve felt it your entire life. That there’s something wrong with the world. You don’t know what it is but it’s there, like a splinter in your mind driving you mad. It is this feeling that has brought you to me. Do you know what I’m talking about?


Touch typing on the QWERTY keyboard layout is wrong. You can do it every day, all day, but there’s something wrong with it. Today, four years ago, I took the red pill: I started using the Colemak keyboard layout.

Comparison of QWERTY and Colemak keyboard layouts with letter frequencies. Graphics by Pavel Pavlov.Comparison of QWERTY and Colemak keyboard layouts with letter frequencies. Graphics by Pavel Pavlov.

The Sound of R


R is a common letter in many languages, but it represents vastly different sounds. Sometimes even within the same language. As Wikipedia says: Being “R-like” is an elusive and ambiguous concept phonetically. In fact, we might not even consider the R-sound used in, say, Spain, related to the R-sound used in France/Germany/Denmark, if they were not spelled the same. However, it was the will of history that they are, and in this post, I will present the three main families of R-sounds in European languages: English, Spanish, and French.

I am trying to keep it jargon free; hence the names above. They are a simplification, and in fact many languages use the three types. For example, the “Spanish” type is also Italian, Finnish, Icelandic, Lithuanian, Polish, Czech, etc. Some languages, such as Dutch and Portuguese also use more than one type, even within a single dialect. In this post I will cover the three “mainstream” R families plus a lot of other interesting R-facts, including that R is sometimes a vowel!

(R is incidentally also a very nice statistics program, but that is not the topic of this post!)


After spending the fall of 2014 doing research in the Netherlands, I have moved home to Aalborg, Denmark and returned to the samba group Poco Loco. The group has dancers and percussionists; I’m one of the latter. Starting again after my half-year break reminded me of how it was when I first started playing samba. While you enjoy the video of the group here, I’ll geek out on the drumming below.

User Experiences on a Train Trip

This week I travelled from Enschede in the Netherlands to Saarbrücken in Germany for a research meeting. On the way I made some observations of usability and user experience in the trains and on the train stations. First we’ll see some examples of bad design, then some good ones!

The Language of vi, Improved

In a previous post I described the “language” metaphor of the text editor vi. To recap,

  • Verbs are commands such as change c, delete d, yank y, and put p
  • Nouns (text objects): a paragraph ap, a string a", etc.
  • Prepositional phrases (motions): “to the next word” w, “to the next regex” /
  • Numerals (counts) as seen in “indent ten lines” 10>> and “to the 27th line” 27gg.

This time around, we’ll see how Vim (vi improved) adds a new word order to make you speak more clearly, and meta-verbs to blow your mind!