Recently in Python Category

Today I'm open sourcing a productivity tool that I've been very excited about: A time-travel extension to the Python Debugger (PDB).

Have you ever been using PDB to step through a program and suddenly realize you wish you could jump back in time and know what a variable used to contain?

This version of PDB adds the ability to jump back in time to the state of your program as it was in the past. You can examine variables and even continue execution from that point forward (though that is dangerous because it may harm the time space continuum.)

How it works:

As you know, time is the 4th dimension. Every moment is another universe. Pretty trippy, eh?

TTPDB simply records a pointer to the current universe before displaying the input prompt. As you step through your program, each step records a pointer to the past universes. The last 100 pointers are remembered. You can jump into any of those universes. Once in those universes you can examine variables. Heck you can do anything you want because you are really in that universe.

Once you are done with that universe you can "pop up" back to the universe you left thanks to our time portal technology.

I've released the source code. You can find it on Github:


--Tom Limoncelli

Posted by Tom Limoncelli in Python

If you want to learn to program better, Usenix LISA 2013 has a number of excellent presentations.

Usenix LISA 2013 Presentations that teach coding:

Sunday, Nov 3, 2013:

Monday, Nov 4, 2013:

Wednesday, Nov 6, 2013:

Thursday, Nov 7, 2013:

Friday, Nov 8, 2013:

Other lists of presentations: DevOps, Unix/Linux administration technical skills, Cloud Computing, and Women at Usenix LISA.

[I apologize in advance for any typo or errors. Please report any problems in the comments. The conference website has the latest information.]

A great explanation about "yield" followed by a discussion of coroutines and more:

In the sequel, he goes into even more detail and the uses all the information to write an operating system in Python.

Posted by Tom Limoncelli in PythonTechnical Tips

  • LISA16