My latest project is turning my book, Python 101, into a Screencast. I have started a Kickstarter to raise funds to help in this endeavor. You can check it out here:

The basic idea is to take each chapter of the book and turn it into a screencast. There are 44 chapters currently that will be turned into mini-videos. I’ve already realized I can add a lot of other items in a screencast that are easier to show than to write about, so there will definitely be additional content. I hope you will join me in this project.


I am currently working on another Kickstarter campaign to turn my book, Python 101 into a video series. I am planning on launching this project on Wednesday, March 25th. There are 44 chapters in my book, so I’ll be creating a minimum of 44 screencast videos. Here is what is currently covered in the book and what will also be covered in the video series:


I see this come up from time to time where people will ask how to center a widget in a window. The solution is actually quite easy. In most cases, you just need to nest a Horizontal BoxSizer inside of a Verticel BoxSizer with some spacers. In this article, I’ll show you two three different ways to accomplish this task.



I recently came across a fun little project called EasyGUI_Qt. It’s basically the same thing as EasyGUI except that it uses PyQt4 instead of Tkinter. The idea behind both of these packages is to allow the developer to ask the user simple questions using dialogs.

In this article, we’ll spend some time learning how to use this package by looking at a few examples. Note that EasyGUI_Qt works with both Python 2 and 3, although its primary target is Python 3. The documentation states that there may be some issues with unicode in Python 2, but other than that, the widgets should work fine.


The wxPython library comes with a pair of handy methods called Freeze() and Thaw(). The call to Freeze() prevents the window from updating while it is frozen. This can be useful when you are adding or removing widgets and you want to reduce your UI from appearing to flicker. After you finish updating the UI, then you call the Thaw() method so that the user will be able to see the update.

Let’s take a look at a simple example.


I don’t do a lot of plotting in my job, but I recently heard about a website called Plotly that provides a plotting service for anyone’s data. They even have a plotly package for Python (among others)! So in this article we will be learning how to plot with their package. Let’s have some fun making graphs!


I was looking through some of my old code and noticed this old script where I was creating a log of all running processes every 5 minutes. I believe I originally wrote the code to help me diagnose rogue processes that were eating memory or pegging the CPU. I was using the psutil project to get the information I needed, so if you’d like to follow along you will need to download and install it as well.


There are several 3rd party packages that wrap Twitter’s API. We’ll be looking at tweepy and twitter. The tweepy documentation is a bit more extensive than twitter’s, but I felt that the twitter package had more concrete examples. Let’s spend some time going over how to use these packages! (more…)

I’ve been hearing some buzz about a newish web service called Twilio which allows you to send SMS and MMS messages among other things. There’s a handy Python wrapper to their REST API as well. If you sign up with Twilio, they will give you a trial account without even requiring you to provide a credit card, which I appreciated. You will receive a Twilio number that you can use for sending out your messages. Since you are using a trail account, you do have to authorize any phone numbers you want to send messages to before you can actually send a message. Let’s spend some time learning how this works!


Recently I wrote about the arrow project and one of my readers mentioned that another datetime related project known as Delorean. So in this article, we’ll spend some time going over the delorean project. This will be a high level article as there is no reason to rewrite the delorean’s documentation. (more…)

Next Page »