Thoughts on


  • Kwant Tutorial

    Wed 27 February 2019

    I recently gave a talk at the University of Maryland about Kwant and using it for quantum transport. The tutorial contains an introduction to the main features of Kwant, and also a relatively in-depth discussion of the internal linear algebra that Kwant uses.

    I made the slides using a Jupyter ...

  • Markov Chains are fun

    Mon 25 February 2019

    I am part of the course team for the Casimir programming course. Each year we take 50 students through a software carpentry-style intensive course in Python and scientific programming over the course of a week. The capstone is a project lasting a couple of days where the students put into practice all that they've learned in the course.

  • Adaptive: parameter space sampling made easy

    Mon 10 December 2018
    Let's set the scene

    You're a researcher doing numerical modelling. You're an old hand. You use Python (and therefore are awesome).

    Your days are spent constructing mathematical models, implementing them in code, and exploring the models as you change different parameters. You realize that simplicity is key, so you make sure to write your models as pure functions of the parameters, maybe a little something like this:

  • How I learned to stop worrying and love the rebase

    Sat 20 October 2018

    I've been using Git for nearly ten years now. Ten years is a long time, and I've been able to try different approaches and evaluate how effective they are in my workflow. I've also had the opportunity to teach Git to others; both to colleagues in an ...

  • April fools!

    Thu 05 April 2018

    So on April 1st Anton and I posted to the group's blog about a fascinating project that we'd been working on in the preceding month. We had been using "advanced machine learning techniques" to conduct sentiment analysis on scientific articles to see if they contain irrefutable evidence for ...

  • Fizzbuzz in Haskell

    Tue 20 February 2018

    Continuing in the vein of cool Haskell examples I find on the internet, this post is going to be about a particularly epic fizzbuzz implementation that I saw in a three-year-old Reddit thread. Now, the OP in that thread had a serviceable but run of the mill fizzbuzz implementation, but ...

  • On thinking differently

    Wed 07 February 2018

    This post is about an experience I had while solving a kata-style coding exercise. While the problem itself was very well defined and had a simple solution, I was very taken aback that I did not see the most elegant and simple solution, despite my proclaimed fluency with programmatic problem ...

  • Writing a snake clone in Haskell, part 2

    Sat 27 January 2018

    In a previous post I talked a bit about writing a snake game in Haskell. At the end of the post we had a working game, but there was 1 ingredient missing; the snake would not go anywhere by itself! The fundamental problem was that our game was being driven ...

  • Google sheets authenticator for Jupyterhub

    Wed 17 January 2018

    Back in November I was again involved in running the programming course for the Casimir graduate school of the universities of Delft and Leiden. In addition to the usual tweaks to the material in response to previous year's feedback, we also wanted to tweak the setup of our programming ...

  • Writing a snake clone in Haskell, part 1

    Thu 16 November 2017

    After my recent dive into Haskell I was keen to try a small project to test out what I had learned. After watching a bunch of YouTube videos from various Haskell conferences I came across one by Moss Collum where he describes how he built a series of Rogue-like games ...

  • Diving into Haskell

    Wed 08 November 2017

    Ok, I am super late to the party with this! Haskell has been, for a number of years, a language that I have always wanted to dive into. I've heard it lauded as the language of "true hackers", and it's somewhat of a sign that you've made ...

  • Please stop teaching people to git pull

    Mon 23 October 2017

    There are a lot of Git tutorials on the web that teach people to use git pull when first teaching them about working with remote repositories and collaboration. I would like to put forward the position that this is a Bad Idea (TM), and that it is more instructive to ...

  • Low effort exam grading

    Wed 13 September 2017

    Last semester Anton was lecturing on the undergraduate Solid State Physics course at TU Delft. The course lasted several weeks, and each week there was a mini exam that students on the course could take for partial credit. This was a big course with 200 participants, and the prospect of ...

  • Python + Postscript = Profit!

    Sat 12 March 2016

    While setting up the computing environment for the "Introduction to Computational Quantum Nanoelectronics" tutorial at the APS March Meeting, I came across the problem that I needed to generate 150 chits of paper with login information on them. While all the login info was available in plain text form, this ...

  • Tracking down bugs in GCC

    Tue 01 March 2016

    OK I'll admit, the title is kind of click bait; what I think I have is a bug in msp430-gcc, which is The Gnu C compiler for the MSP430 series of microntrollers by Texas Instruments, sorry to dissapoint. While I was hacking on a tiny event loop to power ...

  • Dropcaps in CSS

    Fri 19 February 2016

    Although I've tried to keep my website quite plain, without too much visual flair, one noticeable thing that I have added is the drop caps at the start of each blog post (i.e. the large capital 'A' on the left). I think this is quite stylish and it ...

  • IPython Magic

    Tue 28 October 2014

    During my work I often make use of a great piece of software called Ipython, which makes it a great deal easier to work with Python interactively. Despite its appeal, there is one thing about IPython which I noticed was starting to hinder me, especially when working on notebooks where ...