Everything I Know About Python...

The personal blog of author, speaker, tutor, and professional software engineer Jeff Knupp

Improve Your Python: Python Classes and Object Oriented Programming

The class is a fundamental building block in Python. It is the underpinning for not only many popular programs and libraries, but the Python standard library as well. Understanding what classes are, when to use them, and how they can be useful is essential, and the goal of this article. In the process, we'll explore what the term Object-Oriented Programming means and how it ties together with Python classes.

Read on →

REST APIs, ORMs, And The Neglected Client

Much of my work recently has been focused on API creation (REST APIs in particular) and, in my spare time, trying to push the boundaries of ORM usage (through sandman). While I once believed these to be entirely separate pursuits, now I'm not so sure. Thinking about all the REST API hype, and hypermedia's neglected client, perhaps the two are more closely intertwined than I thought.

Read on →


Most of the population of people who have read Roy Fielding's dissertation tell us that, while we may understand HTTP verbs, we don't know anything about hypermedia. Our REST APIs, they say, are not really RESTful, and certainly do not exhibit Hypertext As The Engine Of Application State, or HATEOAS. The fact that we have APIs you need to read documentation to understand is a clear signal, they tell us, that the client is using out-of-band information to navigate the server. Hypermedia, they say, is the answer. We simply embed enough information in our responses that the client can intelligently choose what action to take next using only the contents of the HTTP response.

Why This Is Tremendously Stupid

Read on →

You Need to Start a 'whizbang' Project Immediately

There is a directory on my computer that I value more highly than all others. It lives under ~/code/github_code/, which, if you knew my standard directory scheme, lets you know it's the GitHub repo of a personal project. Curiously, though, it's not an actual repo. In fact, the directory itself is empty at the moment (which is why I currently value it so much).

The directory's name is whizbang.

Read on →

A Nice Little Bit of Python

The blog has been relatively quiet recently due to my many irons and fires and all that, but I did want to take a second and post a simple bit of code which really appeals to me. It solves a common problem in a reasonably elegant way and is straightforward enough for Python programmers of any level to use.

Read on →