Bertrand Russel's 10 commandments of teaching:

  • Do not feel absolutely certain of anything.
  • Do not think it worth while to proceed by concealing evidence, for the evidence is sure to come to light.
  • Never try to discourage thinking for you are sure to succeed.
  • When you meet with opposition, even if it should be from your husband or your children, endeavor to overcome it by argument and not by authority, for a victory dependent upon authority is unreal and illusory.
  • Have no respect for the authority of others, for there are always contrary authorities to be found.
  • Do not use power to suppress opinions you think pernicious, for if you do the opinions will suppress you.
  • Do not fear to be eccentric in opinion, for every opinion now accepted was once eccentric.
  • Find more pleasure in intelligent dissent than in passive agreement, for, if you value intelligence as you should, the former implies a deeper agreement than the latter.
  • Be scrupulously truthful, even if the truth is inconvenient, for it is more inconvenient when you try to conceal it.
  • Do not feel envious of the happiness of those who live in a fool’s paradise, for only a fool will think that it is happiness.


I am a Research Fellow (Computation) at the Berkeley Institute for Data Science, where I focus my attention on advancing science at the intersection of domains and computation. I spend much of my time developing open source software in Python, notably scikit-image and Cesium ML.

Until May 2014, I lectured at Stellenbosch University in the Division of Applied Mathematics, Vision and Learning Group.

Latest blog posts

Loading feed...

Research and projects

Shoelace Before you can have a PhD, you must learn how to tie your own shoelaces! (I recommend this one.)

Most of my work can be found on GitHub nowadays, including most of my Python for science lectures.

Some older topics include:


Programming lectures:
sub-sahara africa
sahara trip IanKnot rainbow