Topic: Programming

O'Reilly Network articles about this topic:

Why I Stopped Coding and Why I'd Start Again (Python DevCenter)
What happens when programming stops being fun? What do you do when juggling dependencies and worrying about installation issues takes all of the joy out of writing code for other people? You can stop coding... or you can try to address the underlying problems. Brian McConnell postulates an enhancement of the Python language to make programming as fun as it was in the BASIC-in-ROM minicomputer days.

Understanding Newlines (
Munging text is familiar to agile language programmers. It's very straightforward, right? Text comes in, text changes, and text goes out. Yet in a multi-OS world with networks, internationalization, and character sets, is text really that simple? Xavier Noria delves into how computers handle text to explain the newline problem and how to work with it in agile languages.

Building Recursive Descent Parsers with Python (Python DevCenter)
Someday your program will have to parse text. If you're lucky, a few regular expressions will handle it. Otherwise, you need to write a parser. Don't be afraid of that dragon book from college--writing a parser in Python is easy with Pyparsing. Paul McGuire explains everything you need to know.

Testing Web Apps Effectively with twill (Python DevCenter)
There's a real drive toward testing these days. If you develop any sort of application seriously, you've likely heard recommendations to write comprehensive automated tests. Is that really useful? Michele Simionato explores the arguments for and against automated testing, and shows how to automate web app testing using Python and the twill utility.

Interactive Debugging in Python (Python DevCenter)
Debugging with print statements is alive and well. It's not the only way to do it, though. Python has a powerful interactive debugger that can let you get to the heart of your problem faster and more easily--if you know how to use it. Jeremy Jones shows off the features you absolutely must know.

Art and Computer Programming (
One of the great theoretical debates in computer programming is "Is programming art?" There are creative components certainly, and aesthetic aspects occasionally, but do programming's functional concerns push it more toward craft or engineering? John Littler recently cornered several well-known hackers for their opinions on the subject.

Python Standard Logging (Python DevCenter)
Tracking down what your application does seems easy; just add a few print statements here and there. Unfortunately, effectively tracing a program is more difficult. That's where Python's standard logging module comes in. Jeremy Jones demonstrates how to make it work for you.

Python on Your (S60) Phone (Python DevCenter)
Nokia recently released a Python distribution that runs on Series 60 phones. Sure it's cool, but is it useful? John Littler walks through the available packages and the installation process, as well as some example Python code.

More Test-Driven Development in Python (Python DevCenter)
The goal of test-driven development is not to produce tests; they're merely a helpful by-product. The real goal is to produce elegant, working code. Jason Diamond demonstrates how test-driven development can improve the design of code.

Enhanced Interactive Python with IPython (Python DevCenter)
An interactive programming environment can be a powerful tool to assist in writing programs. Python has one as part of its standard distribution. Yet IPython, "an enhanced Interactive Python shell," is a far superior replacement. Jeremy Jones demonstrates.

Test-Driven Development in Python (Python DevCenter)
The goal of test-driven development is not to produce tests; they're merely a helpful by-product. The real goal is to produce elegant, working code. Jason Diamond demonstrates how test-driven development works using Python and PyUnit to create a sample event-tracking utility.

Inside Mitch Kapor's World (Python DevCenter)
Mitch Kapor has had a huge influence on the software world, being the founder of Lotus and a driving force behind 1-2-3. Now his Open Software Applications Foundation is working on Chandler, an open source PIM written in Python. Steve Holden interviewed Mitch after the recent PyCon about his life and career, the OSAF, Chandler, open source, and Python.

Understanding Network I/O, Part 2 (Python DevCenter)
Network programming is easy to start, but it can get complex very quickly. When is it appropriate to use synchronous IO and when do you need asynchronous? When do you need concurrency? George Belotsky explores these questions in the context of network programming with Python.

Understanding Network I/O: From Spectator to Participant (Python DevCenter)
By design, the Internet is a simple network; any endpoint can serve any client. Even better, it's easy to write a client or a server, if you understand a few things about network programming. George Belotsky demonstrates the essential concepts with Python.

Introducing mod_python (Python DevCenter)
mod_python is an Apache module that gives Python programmers full access to the Apache API. If that's not enough, it can speed up your Python web programming substantially. Grisha Trubetskoy explains just what mod_python can do for you.

Guido van Rossum Speaks (Python DevCenter)
Guido van Rossum, creator of Python, recently announced a move from PythonLabs to Elemental Security. Steve Holden caught up with Guido to talk about the move, the future of Python, and computer programming for everybody.

Advanced OOP: Declarative Programming and Mini-Languages (Python DevCenter)
While much of the "popular" programming world describes problems in terms of how to solve them, declarative programming describes problems in terms of what's known about them. David Mertz explores existing declarative languages and gives examples of declarative programming in Python.

Advanced OOP: Multimethods (Python DevCenter)
Most popular object oriented languages take their method dispatch styles from Smalltalk's message passing style, dispatching based on the invocant. Another approach is multiple dispatch or multimethods, which considers multiple invocants for dispatch. Why is this important? David Mertz explains how multimethods improve polymorphism and often provide a better alternative to inheritance.

Twisted Python (Python DevCenter)
The Twisted application framework provides rocket-powered tools for your next network application.

A Primer on Python Metaclass Programming (Python DevCenter)
Classes and objects are simple, right? Once you really get it, isn't that all there is? Well, no--there's a whole class of advanced object-oriented techniques to make your code simpler, stronger, and more elegant. This week, David Mertz explains metaclasses--the building blocks of classes. Though the examples are in Python, the ideas translate to many other languages.

SimPy: Simulating Systems in Python (Python DevCenter)
Do you have a complex system with limited resources and random events? Maybe a simulation will help you uncover essential truths. Klaus Müller and Tony Vignaux introduce SimPy, a simulation package for Python.

Cooking with Python: Seven Tasty Recipes for Programmers (Python DevCenter)
Some of the Python Cookbook authors got together to offer a sampling of their Python recipes straight out of the book. From the unexpected exception to the fun programming tip, there's something here for every Python programmer.

Getting Loopy with Python and Perl (
How do Python's loop constructs stack up to Perl's? Aahz, one of the featured speakers at this July's Open Source Convention compares the two.

Cocoa for your Python? (Python DevCenter)
Those tempting little iMacs look great, but does Python work with the new OS X application framework? Stephen Figgins reports on the state of Python and Cocoa.

Alternative Python Distributions (Python DevCenter)
These alternative distributions offer versions of Python tailored to more specific needs.

XML-RPC: It Works Both Ways (Python DevCenter)
Creating your own remote procedure server is easy with Python's xmlrpclib. Dave Warner shows you how to put it to work for you.

Jython 2.0 Goes Beta (Python DevCenter)
Jython is JPython's successor. This Java-based Python interpreter brings Python's flexiblity, clarity, and ease of programming to Java.

Learning From Mistakes (Python DevCenter)
A quick security fix for the Python wiki program MoinMoin presents an opportunity to learn from the mistakes of others.

XML-RPC in Python (Python DevCenter)
Take advantage of this lightweight method for using services on other computers with Python's xmlrpclib module.

Programming Stackless Python (Python DevCenter)
Wrapping your head around this patch is easy, once you have been properly brainwashed!

Introduction to Stackless Python (Python DevCenter)
Cameron Laird demystifies Stackless, a mind-bending patch for Python.

Artymiak Announces pyxhtml (Python DevCenter)
A quick look at Jacek Artimiak's pyxhtml, a Python tool for generating XHTML pages.

Numerical Python Modules (Python DevCenter)
Eric Hagemann explains the basics of multiarray manipulation and demonstrates 4 modules that are inluded with the default NumPy package: Linear Algebra, Fast Fourier, Random Numbers, and Mlab.

Transformation Matrices (Python DevCenter)
Use transformation matrices to manipulate graphics. Examples given using Numerical Python and Dislin.

Web Client Programming in Python (Python DevCenter)
Create programs that mine information from web sites. The example given uses Meerkat, O'Reilly Network's open wire service.

Python as a First Language (Python DevCenter)
Cameron Laird explains why Python is a great language for new programmers while featuring terrific advantages for seasoned pros too.

Adding Data Visualization to Python for Producing Graphs (Python DevCenter)
DISLIN provides the Python programmer with a robust package capable of producing 2D and 3D graphs plus basic drawing commands such as lines, boxes, and circles.

Python Resources (Python DevCenter)
Where do I go for the latest Python news? What books can help me become an adept programmer? Is there a conference in my future? These questions and more are answered on our Python Resource page.

Other documents about this topic:

Below are other references available on the web for this topic. Since other sites may change their links, please if you find any that may need to be updated.

Python Programming for Beginners
Jacek Artymiak's article for the Linux Journal presents 17 python scripts for Linux users and administrators interested in what Python can do.

Internet Scripting: Zope and XML-RPC
Examining how the Zope application server uses XML-RPC to allow remote scripting of objects via the Web.

Developing GNOME Applications with Python (Part 1)
This Linux Focus article by Hilaire Fernandes shows you how to use Glade, a visual development tool for Gnome, with Python. The tool combination allows you to rapidly develop GUI Programs for Gnome.