Archive for December, 2013

Packt Publishing contacted me today to let me know that they are having a $5 eBook sale on all of their eBooks. They have a lot of Python books, so I thought I should let my readers know about the offer. I have reviewed some of their books in the past, so feel free to check out some of those to help you decide if you want any of their books:

Please note that I haven’t reviewed all of Packt’s Python books. They have a lot more than the number I’ve reviewed.

The other day I was trying to figure out a way to monitor the print queue on Windows. The task at hand was to keep track of what documents went to the printer and completely successfully. The idea was that when the print completed, the document would then be archived. To do this sort of thing, you need PyWin32 (AKA: Python for Windows extensions). In this article, we’ll look at a simple script that checks the print queue. (more…)

I recently received a copy of Kivy: Interactive Applications in Python by Roberto Ulloa. This is currently the only book about Kivy. Kivy is a cross-platform GUI toolkit that will run on Linux, Windows, and OS X as well as Android and iOS. In fact, the people behind Kivy emphasize that this is aimed primarily at mobile programming. Kivy supports multitouch and has a very active group of programmers. You can read more about Kivy on their project’s home page. I will be reviewing the PDF version of the book.

Here’s my quick review for those of you without a lot of time:

Quick Review

  • Why I picked it up: I received this book as payment for helping with the reviewing of another Packt book, but I would have bought it myself because I am interested in learning Python for Android/iOS and I like learning about Python GUI toolkits.
  • Why I finished it: The book is short and I was optimistic that it would get better.
  • I’d give it to: Someone who already knows Python and the basics of Kivy, although I don’t think I would recommend it.


This week I saw a question on StackOverflow about putting two grids into a SplitterWindow which itself was in a Notebook page. Personally I think that’s a little convoluted, but I thought it was an interesting challenge and I came up with a solution. Then the fellow wanted to know how to sync the scrolling of the two grids. Well, I found an answer and modified my code and decided it was worth writing an article about. (more…)

Last night I received an email about a new Python-related Kickstarter. The Real Python crew added a new author to write a book entirely about Django 1.6. This is a subject that I keep meaning to get into and haven’t had the opportunity to do so. Hopefully by backing this project, I’ll finally learn Django.

I have been impressed with the quality of their previous projects, so I feel that I can safely endorse these authors. I’m sure the project will be of high quality and well worth your time and money. Plus it’s fun to support these guys who want to share their knowledge. If you’re interested in supporting the project you can go to the following address:

Note: They are already fully funded at this point and some of the support levels are already full, so if you want to get in early, now is the time!

The other day I was working on a project where I was using the fabulous ObjectListView widget (a wrapper around wx.ListCtrl) and I wanted to add the ability to double-click an item in the control to make it open a PDF. I knew I had read somewhere on the internet about how do this sort of thing, but it was once again a drag to find that information. So now that I know, I decided to share it this time. I’ll also show you how to open a PDF file on Windows as a bonus! (more…)


Recently I was trying to figure out how to add tooltips to each item in an ObjectListView widget in wxPython on Windows. The wxPython wiki has an example that uses PyWin32, but I didn’t want to go that route. So I asked on the wxPython Google Group and got an interesting answer. They had actually used one of my old articles to build their solution for me. I have cleaned it up a little bit and decided it was worth sharing with my readers: (more…)