Sunday, April 6, 2008

One year of "The Python Module of the Week"

It's a bit passé to recognize blogging anniversaries, but as it's my first I'm going to do a little navel gazing retrospecting anyway. :-)

I just realized this afternoon that I had missed celebrating the first anniversary of PyMOTW by a few weeks. I started the series as an excuse to force myself to write something once a week. At the time, it seemed like a somewhat lame idea and I wasn't sure I would keep it up. There are any number of reference guides for the standard library out there. Sitting down to read through one isn't that exciting, though, so I thought writing example code with all of the modules would be a way to force myself to actually study the modules I didn't use on a regular basis.

The first real post from 25 March 2007 covered the fileinput module. It wasn't until several posts into the series that I started collecting and releasing the code through PyPI, so the version number for the source package is only up to 1.48 even though I've done more than 52 weeks worth of modules. (The os module took 4 weeks, so I haven't done as many modules as weeks of posts.)

My Writing Process:

My process for creating the posts has changed substantially over the last year. The first few posts were posted through the web form on blogger.com. They consisted of a lot of hand-edited HTML combined with output from the web version of pygments (used to highlight the syntax in the code examples). I also used to write the prosoe for each post first, and the code samples later.

Now, I have the entire process reversed. I work through all of the code examples before writing any prose. The code comes more quickly, and I can revise and refactor it so the examples work together without having to go back and edit the rest of the text. Once I have the code finished, I use a combination of shortcuts I've built for TextMate and MarsEdit to assemble the post and write the prose portions. It takes me a lot less time to create a single post now that I've refined the workflow. The post on the operator module from today, for example, only took a couple of hours (with interruptions). It is a little skimpy on prose, though.

Future Plans:

Since the beginning, I've had a fair number of comments (online and off) from people who tell me that the posts have been personally useful to them. I appreciate that sort of feedback, and it motivates me to keep going. I'm running out of the "simple" modules, and as I've also started working on Python Magazine over the past year, I don't actually have the same amount of free time any more. Having a bit of extra motivation will spur me to pick up some of the bigger modules like email and elementtree.

At the rate I'm going, I'm not going to finish the whole library before Python 3.0 comes out, and the current plans call for some modules to be removed, deprecated APIs to be dropped, and other sorts of changes. The rules say some modules can even be renamed. When that settles down and there is an actual release, I'll probably stop writing about 2.x and pick up with 3.0. I haven't decided yet, though.

Python Module of the Week Home


Technorati Tags:
,




11 comments:

Anonymous said...

Thanks so much, Doug.
These are a great help. Please keep posting.

kib said...

So happy birthday Doug !
Your pages are really great, keep them like this, and thanks for all your work.

bussiere said...

thanks for the post i've saved one of them and if you make a book of these i will buy it

Krys said...

Hey Doug,

I just want to say that I have enjoyed your Module of the Week posts since the beginning. I've learned several new things thanks to them. :) I hope you continue to write them.

I think they are also great for new people coming to Python. They are definitely a recommended resource! :)

And may I suggest that there is good material in them that you could expand on for your PyMag articles. (Which I also enjoy!) :)

Anyway, thanks very much for the great info and the fun way to deliver them.

Sincerely,
Krys

Adam said...

Congratulations and thank you, I very much enjoy your posts.

alex said...

congratulations for this superb weekly column, thanks for (re-!) introducing me to a large set of "little helpers" in a very intutitive and example based way, i really got a lot of ideas from most of your posts.

i hope, you will have the time to go on with this work and maintain your style of working and writing.

congratulations!

Doug Hellmann said...

@everyone - Thanks for the kind words! I didn't mean to give the impression I wasn't going to continue -- I have no plans of stopping any time soon.

ecureuil said...

Hi Doug,
a gigantic thanx from France where the Python rookie I am enjoyed every single PyMoTW post you wrote.

Happy birthday then !
Keep going on and many thanks again.

Fred

Ido said...

Thanks for the series Doug, I've really enjoyed following these posts. :)

I always thought that this would end up as a book one day...

Matt Doar said...

Book, book, book, book!

tenuki said...

Doug, it's a long time that I've started to program in python, since about 2001..

I've noticed of the "Python module of the week" post series some months ago, and I think it's really good.

Please, keep that very good and nice to read work!

david from PyAr