Articles

Multi-processing techniques in Python | And Now For Something Completely Different, Oct. 2007

Has your multi-threaded application grown GILs? Take a look at these packages for easy-to-use process management and interprocess communication tools.

Working with IMAP and iCalendar

How can you access group calendar information if your Exchange-like mail and calendaring server does not provide iCalendar feeds, and you do not, or cannot, use Outlook? Use Python to extract the calendar data and generate your own feed, of course! This article discusses a surprisingly simple program to perform what seems like a complex series of operations: scanning IMAP folders, extracting iCalendar attachments, and merging the contained events together into a single calendar.

Python in Science: How long until a Nobel Prize? | And Now For Something Completely Different, Nov. 2007

As I write this, the Nobel Prizes for 2007 are being announced. During the week of announcements, each day includes news of another award being bestowed for outstanding contributions in physics, chemistry, physiology or medicine, literature, peace, and economics. As a technophile, the science awards have always been the most interesting to me. This year, prior to the awards, new releases of several scientific packages on PyPI caught my eye and I was struck by the coincidence. I started to wonder: How long before a Nobel Prize is awarded to a scientist who uses Python for their work in some significant way?

Caching RSS Feeds With feedcache

The past several years have seen a steady increase in the use of RSS and Atom feeds for data sharing. Blogs, podcasts, social networking sites, search engines, and news services are just a few examples of data sources delivered via such feeds. Working with internet services requires care, because inefficiencies in one client implementation may cause performance problems with the service that can be felt by all of the consumers accessing the same server. In this article, I describe the development of the feedcache package, and give examples of how you can use it to optimize the use of data feeds in your application.

Google Highly Open Participation Contest | And Now For Something Completely Different

The Google Highly Open Participation Contest for junior high and high school students is well under way, and the response from around the world has been phenomenal.

Command line programs are classes, too!

Most OOP discussions focus on GUI or domain-specific development areas, completely ignoring the workhorse of computing: command line programs. This article examines CommandLineApp, a base class for creating command line programs as objects, with option and argument validation, help text generation, and more.

Testing Tools for Python | And Now For Something Completely Different

Test Driven Development and Test Automation are all the rage, and Python developers have no shortage of tools for testing their own applications.

IPython and virtualenv | And Now For Something Completely Different

IPython is a feature-rich interactive shell for Python developers. Virtualenv creates isolated development environments so you can test or install packages without introducing conflicts. This month, Doug examines how both tools can make your life a little easier.

Static Code Analizers for Python | And Now For Something Completely Different

Old-school developers remember lint, the static code analysis tool for C programs. There are several similar programs available for Python, and they can all help you clean up your act.

Automated Testing with unittest and Proctor

Automated testing is an important part of Agile development methodologies, and the practice is seeing increasing adoption even in environments where other Agile tools are not used. This article discusses testing techniques for you to use with the open source tool Proctor. By using Proctor, you will not only manage your automated test suite more effectively, but you will also obtain better results in the process.