About Rick van Hattem (Wolph)


My name is Rick van Hattem (nickname: Wolph, hence the domain name). For the last couple of years I have been working on a couple of startups, more recently I have decided to take a step back and do some consultancy to do research for my next startup.

My main areas of expertise are currently:

  • Scaling systems with large amounts of data and/or users
  • PostgreSQL
  • Python
  • Django

Mastering Python, the Python 3.5 and above book I wrote for experienced Python programmers to improve their skills:

For more info about me and my projects:

The things that interest me are mainly the big/difficult problems, the more difficult a problem is the more fun I’ll have solving it.

Bookmark and Share

7 Responses to “About Rick van Hattem (Wolph)”

  1. Anshu Kumar | 2016-07-18 at 08:42:01 #

    Hi Rick,

    I was going through your wonderful book, mastering python.

    I think when you are explaing “Beautiful is better than ugly” in Chapter-2

    filter_modulo = lambda i, m: [i[j] for i in range(len(i))
    if i[j] % m]

    It looks like a nit, for loop should iterated with variable “j”.

    Thank You,

    • Rick van Hattem | 2016-07-18 at 09:07:23 #

      Hi Anshu,

      You are indeed correct. While rewriting that code sample (I switched from i and j to items and modulo) it seems I have forgotten to modify that sample as well.

      The sample should be either:

      filter_modulo = lambda i, m: [i[j] for j in range(len(i)) if i[j] % m]


      filter_modulo = lambda items, modulo: [items[i] for i in range(len(items))
                                             if items[i] % modulo]

      Thanks for letting me know. I’ve added the correct code samples to the repository: https://github.com/mastering-python/code/commit/f7ec4fc2480614ea8369f7d27a99b22046e2a780

      Best, Rick

  2. Mark London | 2017-02-25 at 02:58:48 #

    Can your “Django Tags Input” module be used in front end user forms in django, rather than the admin page? K.s

  3. Tom Deg. | 2017-05-05 at 22:13:48 #

    Hi Rick

    First, many thanks for your numpy-stl module. Most helpful. I have one suggestion to make:

    The only rotation you have enabled in your code is around an arbitrary axis (and a point), which is super helpful. I understand that you are using the rotation_matrix function which calculates the appropriate rotation matrix, which you then use to rotate the stl.

    I would find it very useful (and powerful) to provide a second function that would allow a rotation around a user supplied rotation matrix.

    What I am thinking is this:

    rollMatrix = mesh.Mesh.rotation_matrix((1,0,0), heel_rads)
    pitchMatrix = mesh.Mesh.rotation_matrix((0,1,0), pitch_rads)
    combinedMatrix = numpy.dot(rollMatrix, pitchMatrix)

    This would allow for very easy chaining of matrices.

    The work-around is very easy, but this seems like a really quick and useful addition…

    Kind regards,


  4. Bob | 2018-01-10 at 15:48:03 #


    Just wanted to say thanks for python-progress bar, it’s very nice

Leave a Reply