PyDev of the Week: Mike Fletcher

This week we welcome Mike Fletcher as our PyDev of the Week. I actually had the honor of meeting Mr. Fletcher at a PyCon a few years ago in a wxPython open space slot. He was active on the wxPython mailing list to some degree when I was first learning wxPython. He is the author / maintainer of several projects, such as RunSnakeRun, PyDispatcher and PyOpenGL.

Let’s spend some time getting to know more about our fellow Pythonista!

fletcher

Can you tell us a little about yourself (hobbies, education, etc):

I’m a consultant working in Toronto doing almost all of my work in Python (with Javascript, C++ and the like where necessary). I’ve run my own consultancy for 9 years now.

I’m a Design Theorist by education, particularly focused on how to use an understanding of human perception and architectural history as a tool for educating Architecture students.

My only current hobby is Open Source programming. I started programming when I was 6 when my father (a programmer) purchased an Apple II+ and I wanted a drawing program so I could make (4 colour) art on it. Programming and computers are just a hobby that grew into a career for me. I’m a dad (married to a Computer Scientist I met at an IEEE meeting) with two young sons, and I’m trying to get our school’s Computer Science club started.

Why did you start using Python?

I accepted a programming contract for the early web (1995), creating what, today, we would call a demo of a CMS for medical publishing. I had intended to use BinProlog for the web GUI (don’t ask why, I was young and foolish and considered Prolog the most advanced programming language at the time), but was informed that the client wanted it done in PERL. So I picked up a “Teach Yourself PERL in 21 Days” type book and worked through it for a few days until I hated the language with the intensity of a thousand suns. Discouraged, but needing to know PERL I continued to flip through the mess, looking for some rational pattern, until I got to the last page and was ready to call the client and tell them there was no way in heck-fire I was going to use this mess of a language… and there, on the last page, opposite the back cover, was a note from the author that a new language called “Python” was considered by some to be a “better PERL”, cleaner, more logical, etc.

I downloaded Python overnight on my 56k modem and was more productive in a few hours than I was after days of screaming at PERL. I walked into the client’s offices and informed them that we would be using Python instead of PERL, pointed at the note in the back of the book and the client basically said “oh, okay”… and thus I became a professional Python programmer.

In the early days of my Python career I had the incredible benefit of having Tim Peters and Christian Tismer (and others) hanging out on Python-list and helping me discover a little bit of Zen. I likely owe sticking with Python to them. They were great about discussing *why* a given approach was the right way, and giving encouragement to a young coder. We also had wicked-fun optimization “contests” where we warped the language to try to find the fastest way to do a given task.

What other programming languages do you know and which is your favorite?

I also know (Apple and Visual) Basic, LISP (mostly ancient AutoLISP), Prolog, C, C++ and Javascript. I occasionally dabble in other languages (Ruby, Java, Haskell, Go, etc), but haven’t loved any sufficient to pull me into using them enough to really care. I love the simplicity of C, but I’m frustrated actually coding it from scratch. Strangely, while I kind-of hate Javascript, I also like it quite a bit, and I suppose I would wind up choosing it as favourite if I couldn’t have Python. I actually use (and like) Cython quite a bit, but I don’t suppose we consider that a separate language yet. I’m attracted to the *ideas* of Haskell, but have thus far failed at every attempt to use it for practical tasks. I suppose I also know GLSL and a few other special-purpose languages, but again, those aren’t “real programming languages”.

What projects are you working on now?

On the commercial side (the stuff that pays my bills) I’m working on Bulk Video Transcoding and Generation products for clients. Those are built with Django, GStreamer, Flask, Pyside, Linux platforms, and lots of low-level coding.

On the Open Source side (the hobby stuff), I’m still working (slowly) on PyOpenGL and OpenGLContext, Listener (coding by voice on Linux), Fussy (the mechanism I use to deploy products in the field), and playing around with using Theano to do voice dictation in Listener. I have quite a few other projects that are currently in maintenance mode, such as RunSnakeRun (a profiling GUI), SimpleParse, PyDispatcher, and the like, where I’m really just integrating patches from others or responding to bug reports.

Which Python libraries are your favorite (core or 3rd party)?

Indispensable stuff: Requests, Fabric, Django, PyPgSQL, Numpy, Virtualenv, Eric (IDE)

Really useful: Fabric, Gstreamer, wxPython, Pygame, Pyside, Ctypes

Is there anything else you’d like to say?

Remember to have fun; the whole point of all of this is to have fun.

Thanks!

The Last 10 PyDevs of the Week