PyDev of the Week: Kirby Urner

This week we welcome Kirby Urner (@thekirbster) as our PyDev of the Week. Kirby teaches Python for the O’Reilly School of Technology. He also speaks at PyCon USA from time to time. You might also want to check out his website to learn more about his passions. Let’s take a few moments to get to know him better.

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

When a younger guy in the Philippines, my dad and I took up scuba diving as a hobby, not so expensive when you probably don’t need a wet suit and equipment comes at Costco prices on base. We were civilians but had US military base access where gear was inexpensive (Clark and Subic were bigger then).

Dad was an urban / regional and later education system planner.

We had a great trainer, an ex-marine by the name of Gill Gilleland, a commercial diver when not teaching newbies. Mom and sis had their own hobbies.

From the Philippines I went to Princeton for higher learning.

Although I ended up focusing in philosophy (on Wittgenstein’s stuff in particular), I was an avid student of computer science and other topics in engineering throughout my four years there.

I studied programming a lot and really liked APL by Kenneth Iverson. Sometimes I’d seek out the table with the most computer geeks in the cafeteria and just sit there and listen, picking up their banter about operating systems.

APL ran on an IBM 370 mainframe at the computer center, with terminals scattered around campus, including in the basement of my dorm.

Why did you start using Python?

Around version 1.6 in the 1990s. I was earning my bread and butter in a small business with my wife. She was a fund accountant, a type of bookkeeping favored by nonprofits, NGOs, other donor-based, membership funded, sponsored operations. I was a coder, using a Microsoft product, Visual FoxPro. We each had our own clients, with some overlap.

However, post Princeton I’d become passionate about spatial geometry and rendering polyhedrons on screen using the free and open source POV-Ray (povray.org), which I found out about through CompuServ. I was doing a web site about Buckminster Fuller’s newfangled geometry, which included those geodesic spheres and domes, and needed a way to generate the graphics.

I was looking for ways to generate those POV-Ray scripts from some other language and started doing that in FoxPro. The FoxPro Advisor, a commercial magazine, published by write-up about doing that. This is where “quadrays” also made their debut.

I language hopped for a few months, looking for something that fit my brain. Python did the trick. After rending polyhedrons I would share them on the World Wide Web, still new at that time.

Having been a high school math teacher right after Princeton, my thinking was always “wouldn’t this be a great way to learn math?”

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

As I mentioned, APL, A Programming Language. You needed a special keyboard as the operators appeared to be ancient Greek (mostly an illusion).

Kenneth and his son, and Roger Hui and others collaborated on a next language after APL most of us have never heard of: J (jsoftware.com).

You’ll find a couple web-published papers at my website going into the J language some. I don’t know Clojure well, but at Github I’ve got an implementation of “quadray coordinates” (see Wikipedia) in that language.

What projects are you working on now?

Given I’m a Python teacher, mostly for employed IT workers getting professional development as a perk of their job, I like to keep a demo web application on-line and I’ve been hacking on that.

My demo is deliberately minimal so I’m not allowing myself to go crazy implementing fancy features. I’m using Flask, SQLite and just bare bones JavaScript, not even JQuery.

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

In 3rd party world I’ve been a huge fan of Visual Python and the visual module, a wrapper around OpenGL that makes 3D spatial graphics programming something very accessible to high schoolers.

You’ve heard that cliche that nothing is popular until there’s a version understandable to 8th graders. Or is it that newspapers should be kept accessible to that level.

That’s what the visual module is like, accessible to ordinary mortals, but then of course there’s no upper limit on how fancy you might want to get with it.

Internally to the Standard Library, I’d have to say tkinter is what gets my respect and blows my mind, as it puts Python in control of a whole other beast, written in a different language (tcl — “tickle”).

In showing how one might work in synergy with something alien, including from a Python REPL, tkinter reminds us of the fun available through computer science — a branch of philosophy the way I see it (grin).

Where do you see Python going as a programming language?

I hope and see some promising reasons to expect that Python has a bright future as a development platform for the phone app world, which is quickly integrating with desk and laptop worlds. Chromebooks are now able to run Android apps for example. I’ve booted a Python REPL on my Android phone.

What is your take on the current market for Python programmers?

I think programming is increasingly something one needs to do as a part of one’s job description, whether one goes by “programmer” or something else as one’s title or business.

Python is a user-friendly “get it done” type language that people from many walks of life embrace for it’s ability to get out of their way and let them get on with their work.

Guido’s dream of “computer programming for everyone” is well-served by his language.

Is there anything else you’d like to say?

I’m very interested in Portland’s burgeoning code school business, with many links to more established academic institutions, as well as the commercial sector. PDX Code Guild is a case in point, with ties to PSU’s Business Accelerator program.

I’m not evangelical about saying everyone should use Python. On the contrary, I celebrate JavaScript’s finding new legs on both the client and the server. We need to preserve heterogeneity, a fancy word for diversity, when it comes to tools.

In other words, code schools should avoid trying to become carbon copies of one another, in terms of curriculum and andragogical methods(“andragogy” means the “teaching adults” in contrast to “pedagogy”). I’m always looking to fine tune what I call “Pythonic Andragogy“.

We’ll learn more from one another if we continue to encourage experimentation, given that “how best to teach this stuff” is anything but a “settled science”.

Thanks for doing the interview!