<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9410449</id><updated>2011-12-02T08:25:01.553-05:00</updated><category term='win32'/><category term='meta'/><category term='MEDC'/><category term='technology'/><category term='ctypes'/><category term='python'/><category term='hacks'/><category term='the long view'/><category term='pywin32'/><category term='dreampie'/><category term='turbogears'/><category term='programming'/><category term='mac'/><category term='navel-gazing'/><category term='mojo'/><category term='career'/><category term='games'/><category term='Windows'/><category term='c++'/><category term='work'/><category term='pycon'/><category term='smash'/><category term='kids'/><title type='text'>Aftermarket Pipes</title><subtitle type='html'>Programming, Python, games, et al.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>72</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9410449.post-237171807315072048</id><published>2011-11-11T08:38:00.001-05:00</published><updated>2011-11-11T08:57:37.080-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>3 Simple Rules That Will Make You a REAL Superstar Developer</title><summary type='text'>
In my experience there are two kinds of "rock star" software developers.  There's the Neil Peart rock star developer, who combines a natural blessing of talent and intelligence with a relentless work ethic and humble attitude, and over time becomes the developer that people not only want to hire, but want to be.  And then there's the "prima donna" rock star developer, who combines a modicum of </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/237171807315072048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=237171807315072048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/237171807315072048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/237171807315072048'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2011/11/3-simple-rules-that-will-make-you-real.html' title='3 Simple Rules That Will Make You a REAL Superstar Developer'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-5142986198722105645</id><published>2011-10-26T13:40:00.007-04:00</published><updated>2011-10-27T13:06:59.552-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mojo'/><title type='text'>Mojo Reset (or, The Cunning Plan)</title><summary type='text'>For the past few months, I've been enjoying Mike Pirnat's monthly "mojo checks"--monthly checkups that turn weak "New Year's Resolutions" to like-a-boss mojo maximization.This coming month (November), I'm starting the same thing. Why November? Because I can, dammit.  And I don't want to wait until January. And November is, of course, the mojo month,  Why? Because this one goes to 11.A Target-Rich</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/5142986198722105645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=5142986198722105645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/5142986198722105645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/5142986198722105645'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2011/10/mojo-reset-or-cunning-plan.html' title='Mojo Reset (or, The Cunning Plan)'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-9133851914873645868</id><published>2011-09-06T12:29:00.013-04:00</published><updated>2011-09-19T15:21:42.370-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='win32'/><category scheme='http://www.blogger.com/atom/ns#' term='ctypes'/><category scheme='http://www.blogger.com/atom/ns#' term='pywin32'/><category scheme='http://www.blogger.com/atom/ns#' term='dreampie'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Case Study: Python as Secret Weapon for C++ Windows Programming</title><summary type='text'>One of my favorite features of Python is its interactive shell. If you want to try something, you type in the code and try it immediately.  For someone whose first coding environment was the equally-immediate Applesoft Basic, this is just as natural. But if your introduction to programming was C, C++, or Java, the benefits might not be apparent, especially if you're trying to do exploratory </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/9133851914873645868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=9133851914873645868' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/9133851914873645868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/9133851914873645868'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2011/09/case-study-python-as-secret-weapon-for.html' title='Case Study: Python as Secret Weapon for C++ Windows Programming'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-K6UmkRujGFo/TmZTOe_n5TI/AAAAAAAAA7w/7LAwEv3WKV0/s72-c/dreampie.PNG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-1021458117406635495</id><published>2011-08-10T11:54:00.004-04:00</published><updated>2011-08-10T12:29:53.831-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='navel-gazing'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Stages of Competency</title><summary type='text'>After doing "this programmer thing" for a few years now, I've noticed a pattern in how I acquire skills and techniques.  It's surprisingly consistent, and consists of these stages:0: AwarenessI've heard of the technique and can regurgitate a definition and a couple of use cases.  I can probably pass a really bad phone screen (and in my experience, most of them are).1: FamiliarityIt's </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/1021458117406635495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=1021458117406635495' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/1021458117406635495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/1021458117406635495'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2011/08/stages-of-competency.html' title='Stages of Competency'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-3688060957937558728</id><published>2010-10-20T14:58:00.005-04:00</published><updated>2010-10-20T15:50:39.961-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Switchpy</title><summary type='text'>One of the consequences of the 2.x-to-3.x Python changeover is that I need to keep both versions around for a while on my Windows dev workstation.Actually, strike that: I need to keep many versions around:2.5.4, because that's the earliest version we support at work for some internal tools2.6.6, because one particular internal tool jumped the gun and started using the "with" statement before we </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/3688060957937558728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=3688060957937558728' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/3688060957937558728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/3688060957937558728'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2010/10/switchpy.html' title='Switchpy'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-155798390284709753</id><published>2010-05-10T11:32:00.004-04:00</published><updated>2010-05-10T12:17:03.362-04:00</updated><title type='text'>Language of the Year</title><summary type='text'>Several some many years ago, I decided to learn a new programming language a year. I don't subscribe to the "once you're a programmer, you can learn any new language in a few weeks" theory, so I didn't intend to get to guru status on any of them in 52 weekends and a few nights. Instead, the idea was to get good enough to be able to read code well, synthesize code at a decent level of competency, </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/155798390284709753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=155798390284709753' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/155798390284709753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/155798390284709753'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2010/05/language-of-year.html' title='Language of the Year'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-4433072504513402740</id><published>2010-02-16T12:45:00.005-05:00</published><updated>2010-11-19T13:28:28.837-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Mpath: command-line path manipulation for Windows</title><summary type='text'> I'm a command line geek. Windows' style of installing everything in its own directory makes it easier to clean up after uninstallation, but it makes for very long PATH environment variables. If I put every directory containing command line tools in the system path, it gets too long for Windows to handle. So I usually end up doing "PATH=%PATH%;c:\somethingelse\bin" just before I use it. That also</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/4433072504513402740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=4433072504513402740' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/4433072504513402740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/4433072504513402740'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2010/02/mpath-command-line-path-manipulation.html' title='Mpath: command-line path manipulation for Windows'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-5563621560313271044</id><published>2009-12-07T10:12:00.005-05:00</published><updated>2010-10-20T15:50:59.909-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='pycon'/><title type='text'>Five Pycon 2010 Talks I Need to See</title><summary type='text'>Following the example of Catherine Devlin and Carl Trachte, I thought I'd put together a list of the five Pycon talks I need to see in 2010.  But I couldn't--I struggled to get below a dozen.  So here are the top five I need to see, plus the ones I'll probably kick myself for not seeing because they're undoubtedly going to be scheduled in the same slots as the top five:1. Import this, that, and </summary><link rel='related' href='http://us.pycon.org/2010/conference/talks/' title='Five Pycon 2010 Talks I Need to See'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/5563621560313271044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=5563621560313271044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/5563621560313271044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/5563621560313271044'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2009/12/five-pycon-2010-talks-i-need-to-see.html' title='Five Pycon 2010 Talks I Need to See'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-8607454639597199919</id><published>2009-10-17T22:20:00.006-04:00</published><updated>2009-10-18T01:21:02.083-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Five Things I Hate About C++</title><summary type='text'>A few years ago, the "five things I hate about my favorite programming language" went around.  I think it originated with Brian D. Foy's post on Perl. I like his reasoning: if you can't think of five things you don't like about it, you probably don't know enough about it to advocate for it. Peter Siebel's recent post about the opinions of the folks he interviewed for Coders at Work made me </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/8607454639597199919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=8607454639597199919' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/8607454639597199919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/8607454639597199919'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2009/10/five-things-i-hate-about-c.html' title='Five Things I Hate About C++'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-839605960817300251</id><published>2009-10-15T12:49:00.016-04:00</published><updated>2009-10-16T16:03:11.796-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><title type='text'>Buying or Building... Furniture</title><summary type='text'>Most software developers are familiar with the "buy-or-build" question: is it more effective to find existing software and try to make it work in your situation, or to build it to your exact specification and take on the burden of maintaining it?  But sometimes it comes up in other contexts.Like office furniture.My current project at work is winding down, and I'm rolling over to a new one.  As </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/839605960817300251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=839605960817300251' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/839605960817300251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/839605960817300251'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2009/10/buying-or-building-furniture.html' title='Buying or Building... Furniture'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ycVR-4vOij4/Sti-Srs8UgI/AAAAAAAAAkg/YuKK7SdKZhc/s72-c/curvy.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-6111577397031207340</id><published>2008-09-10T20:47:00.004-04:00</published><updated>2008-09-10T21:03:24.790-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kids'/><title type='text'>How to be the most awesome Dad ever</title><summary type='text'>To be the most awesome Dad ever, capable of carrying out feats of skill and mastery usually reserved for the likes of the Avatar, James Bond, or the Doctor, requires just a few common ingredients:The locked, most secret diary of a pre-adolescent daughter (who has lost the key),The knowledge that all such cheap locks are the same,A set of cheap luggage locks with keys,A frantic pre-adolescent </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/6111577397031207340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=6111577397031207340' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/6111577397031207340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/6111577397031207340'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2008/09/how-to-be-most-awesome-dad-ever.html' title='How to be the most awesome Dad ever'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-7417579183175384116</id><published>2008-06-03T13:49:00.007-04:00</published><updated>2008-06-05T18:31:32.103-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Fun with itertools</title><summary type='text'>Sometimes it's hard to shake old habits, especially when you've burned them into your brain as the "standard" way to do things.  For example, I've been doing network programming with C and C++ for a very long time.  One of the standard pieces of code I've written again and again is the "connect with backoff" pattern.If a program needs a continuous network connection, and that connection is lost, </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/7417579183175384116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=7417579183175384116' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/7417579183175384116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/7417579183175384116'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2008/06/fun-with-itertools.html' title='Fun with itertools'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-1632014522907781188</id><published>2008-06-02T13:06:00.003-04:00</published><updated>2008-06-02T13:25:16.521-04:00</updated><title type='text'>Git: what he said.</title><summary type='text'>About three months ago, I started writing a blog post on why my (development) life has changed for the better since I started using git for version control.  It's been stewing in my "Drafts" folder for lack of time and attention.My main point was that git is optimized for messy reality, as opposed to an idealized view of software development that never really happened that way, but looks better </summary><link rel='related' href='http://tomayko.com/writings/the-thing-about-git' title='Git: what he said.'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/1632014522907781188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=1632014522907781188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/1632014522907781188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/1632014522907781188'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2008/06/git-what-he-said.html' title='Git: what he said.'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-3975719869604076640</id><published>2008-04-18T10:11:00.002-04:00</published><updated>2008-04-18T10:16:01.028-04:00</updated><title type='text'>That Looks About Right</title><summary type='text'>tlesher@badwolf:~$ history | awk '{print $2}' | sort | uniq -c | sort -rn | head    109 ls    107 cd     78 git     26 sudo     14 rm     12 ssh     11 source     11 more     10 wget      9 ipython(via Chris and Tom)</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/3975719869604076640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=3975719869604076640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/3975719869604076640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/3975719869604076640'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2008/04/that-looks-about-right.html' title='That Looks About Right'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-6928468134677487659</id><published>2008-01-05T23:40:00.000-05:00</published><updated>2008-01-31T12:58:08.369-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='smash'/><title type='text'>Oh, look!  A startup!</title><summary type='text'>This December, I took a deep breath and jumped.  I left a great job at a great company, working on cool projects with fun people, and executed a perfect swan dive back into the tech startup blender. Now why would a thirty-something refugee from the tech bubble with a wife, two young kids, and a mortgage give up a good salary and stable, interesting job for the stress, uncertainty, and heavier </summary><link rel='related' href='http://www.smashcode.com' title='Oh, look!  A startup!'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/6928468134677487659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=6928468134677487659' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/6928468134677487659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/6928468134677487659'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2008/01/oh-look-startup.html' title='Oh, look!  A startup!'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-6659884615173427647</id><published>2007-12-20T11:25:00.000-05:00</published><updated>2007-12-20T11:30:38.009-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Sad Mac</title><summary type='text'>Now that, my friends, is a Sad Mac.</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/6659884615173427647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=6659884615173427647' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/6659884615173427647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/6659884615173427647'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2007/12/sad-mac.html' title='Sad Mac'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ycVR-4vOij4/R2qYec7WL9I/AAAAAAAAAVY/oWvh0_cjTWs/s72-c/unhappy_mac_sm.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-7254874103099264367</id><published>2007-05-07T09:08:00.000-04:00</published><updated>2007-05-07T09:25:47.442-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MEDC'/><title type='text'>10 Things I Learned at MEDC</title><summary type='text'>In person, Sue Loh sounds exactly like you'd imagine from reading the CE blog.In person, Doug Boling sounds exactly like you'd imagine from reading his book (except his humor comes off better in person).Windows Mobile 6 isn't as big a deal as it first seemed (unless you happen to be a managed code developer, which I'm not).The Tao is worth seeing (if you can either get in on your own coolness, or</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/7254874103099264367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=7254874103099264367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/7254874103099264367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/7254874103099264367'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2007/05/10-things-i-learned-at-medc.html' title='10 Things I Learned at MEDC'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-1307951278336388732</id><published>2007-05-02T18:11:00.000-04:00</published><updated>2007-05-02T18:12:23.820-04:00</updated><title type='text'>Ok, I give in.</title><summary type='text'>Just call me a sheep.</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/1307951278336388732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=1307951278336388732' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/1307951278336388732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/1307951278336388732'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2007/05/ok-i-give-in.html' title='Ok, I give in.'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-6288159381125366470</id><published>2007-05-01T14:23:00.000-04:00</published><updated>2007-05-01T21:36:06.144-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MEDC'/><title type='text'>O Sole Mio...</title><summary type='text'>Ok, so I've missed PyCon for the past three years running because of work conflicts.  But at least this year they've been nice enough to send me to the Microsoft Mobile and Embedded DevCon (MEDC) at The Venetian in Las Vegas.No "one more thing" announcements from today's keynote, but we did get an earful of how Microsoft wants to position the Windows Mobile family: "it's not just for business </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/6288159381125366470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=6288159381125366470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/6288159381125366470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/6288159381125366470'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2007/05/o-sole-mio.html' title='O Sole Mio...'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-7295100672823299046</id><published>2007-04-27T11:15:00.000-04:00</published><updated>2007-04-27T12:09:19.044-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='the long view'/><title type='text'>Your Memex is here. Are you using it?</title><summary type='text'>Microsoft Research has put significant effort into implementing a near-literal version of Vannevar Bush's "memex" in its MyLifeBits project. I think we have the memex already: we just don't realize it.In 1945, the Atlantic Journal published "As We May Think", in which Vannevar Bush speculated that in the future, a machine--the "memex," or "memory extender"--would assist researchers by storing, </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/7295100672823299046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=7295100672823299046' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/7295100672823299046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/7295100672823299046'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2007/04/your-memex-is-here-are-you-using-it.html' title='Your Memex is here. Are you using it?'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-5467864534849588758</id><published>2007-04-23T08:57:00.000-04:00</published><updated>2007-04-23T09:00:33.484-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='meta'/><title type='text'>Slightly less perpetually behind</title><summary type='text'>Adam Rifkin says, "Having a blog means feeling perpetually behind."  Well, today I'm slightly less behind.  The Pipes have been blocked for a few months (you might notice that this happens every time a project at work goes into the home stretch), but now that pressure is off, and I'll be able to (finally) polish and post some items that have been languishing in the Drafts folder for a while.</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/5467864534849588758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=5467864534849588758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/5467864534849588758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/5467864534849588758'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2007/04/slightly-less-perpetually-behind.html' title='Slightly less perpetually behind'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-3749580847905926560</id><published>2006-09-15T10:25:00.000-04:00</published><updated>2006-09-15T10:59:03.502-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='turbogears'/><title type='text'>TurboGears decorator madness: linkify</title><summary type='text'>One of the neat features in TurboGears is the @jsonify decorator. It uses RuleDispatch to define generic functions to convert data model objects into JSON notation for use in AJAXish applications.  For example, TurboGears provides this default converter for the User identity class:@jsonify.when('isinstance(obj, User)')def jsonify_user(obj):   result = jsonify_sqlobject( obj )   del result['</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/3749580847905926560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=3749580847905926560' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/3749580847905926560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/3749580847905926560'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2006/09/turbogears-decorator-madness-linkify.html' title='TurboGears decorator madness: linkify'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-114985437170946064</id><published>2006-08-02T07:59:00.000-04:00</published><updated>2006-08-02T13:50:06.943-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>Yes, games ARE different.</title><summary type='text'>In the late 1990s, the game industry was starting to tackle "best practices".  Basic techniques common in the rest of the software world (and mostly taken for granted now) weren't getting much traction in the game business.  I often heard fellow game developers complain that those practices wouldn't work for games, because the industry was "just different."  A decade later, I think they were </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/114985437170946064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=114985437170946064' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/114985437170946064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/114985437170946064'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2006/08/yes-games-are-different.html' title='Yes, games ARE different.'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-115038050954799727</id><published>2006-06-15T09:56:00.000-04:00</published><updated>2006-06-15T10:13:27.150-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>this test app can break</title><summary type='text'>Wow.  I didn't expect a post about a little-used Windows API function to generate 30,000 page views.  In any event, some folks still doubt the "IsTextUnicode()" explanation, so I'm putting up the test app that I used to validate my theory before I blogged it.Just run the app, and enter a string into the edit control. As you type, the app repeatedly calls IsTextUnicode() and shows both the result </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/115038050954799727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=115038050954799727' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/115038050954799727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/115038050954799727'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2006/06/this-test-app-can-break.html' title='this test app can break'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-115031070728508721</id><published>2006-06-14T13:50:00.000-04:00</published><updated>2006-06-14T14:49:20.040-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>this api can break</title><summary type='text'>Over at WinCustomize, someone thought they'd found an Easter Egg in the Windows Notepad application.  If you:Open NotepadType the text "this app can break" (without quotes)Save the fileRe-open the file in Notepad Notepad displays seemingly-random Chinese characters, or boxes if your default Notepad font doesn't support those characters.It's not an Easter egg (even though it seems like a funny one</summary><link rel='related' href='http://www.wincustomize.com/articles.aspx?SID=1&amp;AID=117870&amp;c=1' title='this api can break'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/115031070728508721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=115031070728508721' title='78 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/115031070728508721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/115031070728508721'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2006/06/this-api-can-break.html' title='this api can break'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>78</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-115029351159409508</id><published>2006-06-14T09:32:00.000-04:00</published><updated>2006-06-14T14:47:16.356-04:00</updated><title type='text'>Competency and Layers</title><summary type='text'>Larry Osterman has yet another great network programming post on his blog.  To sum up, he declares his second rule of "making things go fast on the network":You can't design your application protocol in a vacuum.  You need to understand how the layers below your application work before you deploy it.An excellent rule. Actually, I've often heard (and used) a more general form:You can't be </summary><link rel='related' href='http://blogs.msdn.com/larryosterman/archive/2006/06/13/630198.aspx' title='Competency and Layers'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/115029351159409508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=115029351159409508' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/115029351159409508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/115029351159409508'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2006/06/competency-and-layers.html' title='Competency and Layers'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-114865144407839710</id><published>2006-05-26T09:37:00.000-04:00</published><updated>2006-05-26T09:54:49.523-04:00</updated><title type='text'>Marketing Megaframeworks</title><summary type='text'>A few months ago I started experimenting with TurboGears, an all-in-one web framework for Python. It's had some rough patches, but it's finally coming together for a 1.0-quality release. It's sufficiently featured and stable that I'm using it for an internal project at work (a nightly build server), and the developers I've shown it to at work have been pretty enthusiastic about learning it and </summary><link rel='related' href='http://www.turbogears.org/ultimate.html' title='Marketing Megaframeworks'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/114865144407839710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=114865144407839710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/114865144407839710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/114865144407839710'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2006/05/marketing-megaframeworks.html' title='Marketing Megaframeworks'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-114141139411500378</id><published>2006-03-03T11:47:00.000-05:00</published><updated>2006-03-03T14:18:52.886-05:00</updated><title type='text'>Nowak vs. Wozniak: IT Journalism Continues its Slide</title><summary type='text'>You know, sometimes I think that IT journalism can be its own worst enemy.Last week, Peter Nowak published an interview with Apple co-founder Steve Wozniak, in which Woz appeared to make some pretty sweeping (if tactless) statements about Apple's recent strategy. Someone on an Apple-oriented mailing list noted the interview in his newspaper, and Woz, busy unpacking from his trip, sent off a quick</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/114141139411500378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=114141139411500378' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/114141139411500378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/114141139411500378'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2006/03/nowak-vs-wozniak-it-journalism.html' title='Nowak vs. Wozniak: IT Journalism Continues its Slide'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-113770874096147519</id><published>2006-01-19T16:40:00.000-05:00</published><updated>2006-01-19T18:01:52.886-05:00</updated><title type='text'>The State of IT Journalism?</title><summary type='text'>A blurb on Slashdot sent me over to an article on a site called IT Observer, entitled  "Linux Users May Be Violating Sarbanes-Oxley."  If you're not familiar with it, Sarbanes-Oxley is a piece of US legislation, passed in the aftermath of the Enron scandal, which requires public companies to generate reams of documentation in order to prove that they're not the next big scandal waiting to </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/113770874096147519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=113770874096147519' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/113770874096147519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/113770874096147519'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2006/01/state-of-it-journalism.html' title='The State of IT Journalism?'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-113579311024236119</id><published>2005-12-28T12:53:00.000-05:00</published><updated>2006-01-17T16:13:59.506-05:00</updated><title type='text'>Coming Up for Air</title><summary type='text'>They say that when a Microsoft blogger goes quiet, it means there's something big coming up.  Well, that's not just for Microsoft. I'm back to blogging after two major, major releases at work: Vocollect Voice for Handhelds and the Vocollect Talkman T5 wearable computer. The T5 was a pretty exciting project--a high-performance, extremely ruggedized, Bluetooth- and 802.11b-enabled voice-controlled </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/113579311024236119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=113579311024236119' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/113579311024236119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/113579311024236119'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/12/coming-up-for-air.html' title='Coming Up for Air'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-112560929381887774</id><published>2005-09-01T16:56:00.000-04:00</published><updated>2005-09-01T17:14:53.833-04:00</updated><title type='text'>Bad Marketing Theatre presents...</title><summary type='text'>Amongst my pet peeves are such diverse elements as bad science, acceptance of innumeracy, and marketing-without-thinking. Marketing-without-thinking means going through all the motions of what marketing textbooks or white papers say you should do, without really knowing why you're doing them.  "Checklist-based" software design and meaningless "Feature/Benefit" tables are among the most common </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/112560929381887774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=112560929381887774' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/112560929381887774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/112560929381887774'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/09/bad-marketing-theatre-presents.html' title='Bad Marketing Theatre presents...'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-112145005306834907</id><published>2005-07-15T13:21:00.000-04:00</published><updated>2005-07-15T13:54:13.086-04:00</updated><title type='text'>A first taste of Spyce</title><summary type='text'>Like many programmers, I have a tendency to accumulate unfinished side projects.  One of these is a web application.  Over the years it's gone from WebWare, to Woven, to CherryPy 1, to Quixote + Cheetah, to Nevow, and finally landed on CherryPy 2 + HTMLTemplate + SQLObject + SQLite. Yes, continually rewriting the infrastructure code is probably the biggest reason it's a continually unfinished </summary><link rel='related' href='http://spyce.sf.net/' title='A first taste of Spyce'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/112145005306834907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=112145005306834907' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/112145005306834907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/112145005306834907'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/07/first-taste-of-spyce.html' title='A first taste of Spyce'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111706630992222318</id><published>2005-05-25T19:36:00.000-04:00</published><updated>2005-07-15T13:55:57.160-04:00</updated><title type='text'>Unsung Heroes of Python: asynchat/asyncore</title><summary type='text'>Python is known for its "batteries-included" nature. One of the batteries that gets too little attention, I think, the asynchat module.One of my pastimes is playing a certain web game, which features live chat. In a previous incarnation of the game, one of the players wrote a very useful "bot"--an automated pseudo-player that sat around in chat, and provided useful information when queried. She </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111706630992222318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111706630992222318' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111706630992222318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111706630992222318'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/05/unsung-heroes-of-python.html' title='Unsung Heroes of Python: asynchat/asyncore'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111592122260069766</id><published>2005-05-12T14:05:00.000-04:00</published><updated>2005-05-12T14:35:38.106-04:00</updated><title type='text'>Businesses can take hiring tips from Open Source</title><summary type='text'>Dave Friedman and Doc Searls had an interesting discussion on the difference between "hiring" in open source and business. Doc railed against hiring based on flawed measures like academic degrees and IQ tests; Dave concluded that businesses and open source projects are so different that the same practices can't work in both. I think there's a better way.Dave admits that academic degrees and IQ </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111592122260069766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111592122260069766' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111592122260069766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111592122260069766'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/05/businesses-can-take-hiring-tips-from.html' title='Businesses &lt;i&gt;can&lt;/i&gt; take hiring tips from Open Source'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111463799166733173</id><published>2005-04-27T17:36:00.000-04:00</published><updated>2005-04-27T17:39:51.666-04:00</updated><title type='text'>The Googlemonster strikes again...</title><summary type='text'>...and now Alex Martelli has been consumed.The recent influx of "name" talent at Google reminds me of the projections we used to make in the mid-nineties of how many years, at current growth rates, it would take until Microsoft employed all of Washington State (where I was living at the time).</summary><link rel='related' href='http://pycon.blogspot.com/2005/04/five-googlers-all-in-row-jeremy-hylton.html' title='The Googlemonster strikes again...'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111463799166733173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111463799166733173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111463799166733173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111463799166733173'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/04/googlemonster-strikes-again.html' title='The Googlemonster strikes again...'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111359753557679492</id><published>2005-04-15T15:38:00.000-04:00</published><updated>2005-04-15T16:42:04.273-04:00</updated><title type='text'>"Inexcusable" failures of technology</title><summary type='text'>David Berlind at Znet has listed his opinion of "Technology's 10 most inexcusable failures".  His insights are valid, but I think he's missing the bigger issue.He cites problems like "why doesn't my phone automatically remember   a number I get via 411?" and "why can't my email system automatically read contact information from emails without an a priori, standardized format like vCard?"  The </summary><link rel='related' href='http://news.com.com/Technologys+10+most+inexcusable+failures/2010-1041_3-5663250.html?tag=st.rc.targ_mb' title='&quot;Inexcusable&quot; failures of technology'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111359753557679492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111359753557679492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111359753557679492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111359753557679492'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/04/inexcusable-failures-of-technology.html' title='&quot;Inexcusable&quot; failures of technology'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111291700545115931</id><published>2005-04-07T19:27:00.000-04:00</published><updated>2005-04-08T22:16:35.423-04:00</updated><title type='text'>Phoneblogging with RMS</title><summary type='text'>Two firsts today: a first attempt at blogging from my new phone, and the first time hearing Richard Stallman speak.Phoneblogging was easier than I had feared, although my phone insists I am clogging.RMS spoke at Pitt.  On the one hand I was a little disappointed in the content of the talk: I was expecting more "current affairs" and state-of-the-FSF, but the bulk of the talk was right out of Free </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111291700545115931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111291700545115931' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111291700545115931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111291700545115931'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/04/phoneblogging-with-rms.html' title='Phoneblogging with RMS'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111291186217598706</id><published>2005-04-07T18:04:00.000-04:00</published><updated>2005-04-07T18:11:02.176-04:00</updated><title type='text'>Fun with Google Maps</title><summary type='text'>Ok, Google Maps, you know where here is... and you know where there is (although someone needs to tell you the Pitt university website is not at http://utexas.edu).So why can't you get there from here?</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111291186217598706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111291186217598706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111291186217598706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111291186217598706'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/04/fun-with-google-maps.html' title='Fun with Google Maps'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111281551253102902</id><published>2005-04-06T15:21:00.000-04:00</published><updated>2005-04-06T15:25:12.533-04:00</updated><title type='text'>The Starbucks Delocator</title><summary type='text'>The Starbucks Delocator is an interesting concept:  enter your zip code, and get back a non-chain coffeeshop near your place.On the other hand, I'm unlikely to drive 26 miles for a cup of coffee.</summary><link rel='related' href='http://delocator.net' title='The Starbucks Delocator'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111281551253102902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111281551253102902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111281551253102902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111281551253102902'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/04/starbucks-delocator.html' title='The Starbucks Delocator'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111233090422992526</id><published>2005-03-31T23:17:00.000-05:00</published><updated>2005-04-01T00:15:37.163-05:00</updated><title type='text'>Spyce:  Not Dead Yet?</title><summary type='text'>Now that the Python web framework discussion has heated up, it looks like the moribund Spyce framework is finally getting some love.  Spyce is a PSP (Python Server Pages) framework with its own templating language.  Jonathan Ellis's Spyced blog mentions recent checkins to a new Subversion repository, but I can't find a reference to it on the Spyce website.I've just about settled on CherryPy for </summary><link rel='related' href='http://spyced.blogspot.com' title='Spyce:  Not Dead Yet?'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111233090422992526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111233090422992526' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111233090422992526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111233090422992526'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/03/spyce-not-dead-yet.html' title='Spyce:  Not Dead Yet?'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111213330631518685</id><published>2005-03-29T16:54:00.000-05:00</published><updated>2005-03-29T16:59:38.176-05:00</updated><title type='text'>The Secret Lives of Pythonistas?</title><summary type='text'>You know, looking over the PyCon blogs, I suddenly realized that you never see Mark Lutz and Kai Krause in the same room...</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111213330631518685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111213330631518685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111213330631518685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111213330631518685'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/03/secret-lives-of-pythonistas.html' title='The Secret Lives of Pythonistas?'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111204129371627202</id><published>2005-03-28T15:21:00.000-05:00</published><updated>2005-03-29T13:26:57.636-05:00</updated><title type='text'>When Financial Analysts Attack</title><summary type='text'>I don't know why, but I take perverse pleasure in seeing financial analysts outside the tech industry make colossal, sweeping predictions, basing them on incredibly wrong, sometimes borderline-supersititious premises. (I imagine they feel the same way when they see some random geek sounding off on The Motley Fool or Yahoo! Finance.)Thomas Hazlett of The Financial Times starts off with an </summary><link rel='related' href='http://news.ft.com/cms/s/0fa4c038-9c8b-11d9-b1c2-00000e2511c8.html' title='When Financial Analysts Attack'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111204129371627202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111204129371627202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111204129371627202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111204129371627202'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/03/when-financial-analysts-attack.html' title='When Financial Analysts Attack'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111151183400790149</id><published>2005-03-22T12:14:00.000-05:00</published><updated>2005-03-22T12:17:14.010-05:00</updated><title type='text'>Choose Python spotting at Pycon?</title><summary type='text'>As I've mentioned before, work duties and recent surgery conspired to keep me out of Pycon this year.  If anyone happens to see a Choose Python or PySpotting shirt in the crowd, I'd be grateful for a digital snapshot. Thanks!</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111151183400790149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111151183400790149' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111151183400790149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111151183400790149'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/03/choose-python-spotting-at-pycon.html' title='Choose Python spotting at Pycon?'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111136104253139361</id><published>2005-03-20T18:06:00.000-05:00</published><updated>2005-03-20T18:24:02.533-05:00</updated><title type='text'>Google and Firefox:  Cheap and Easy Feature Integration</title><summary type='text'>Recently I was reading a web page that, in passing, mentioned "The Yes Men." That tickled a memory--I recalled hearing of it, but couldn't recall whether it was a book, a band, a web site, a movie... so my reflex was to highlight it, right-click "Search Web for "The Yes Men" and click.  Right--it's a movie; ctrl-F4 to close the tab and go back to reading.Firefox's "Search for &lt;selection&gt;" (and to</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111136104253139361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111136104253139361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111136104253139361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111136104253139361'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/03/google-and-firefox-cheap-and-easy.html' title='Google and Firefox:  Cheap and Easy Feature Integration'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111057792982725376</id><published>2005-03-11T16:49:00.000-05:00</published><updated>2005-03-11T16:52:09.826-05:00</updated><title type='text'>Comments and Templates</title><summary type='text'>Apologies to anyone who tried to post a comment recently; it looks as if blogger.com's recent comment changes broke some of my template code.  I've reverted Aftermarket Pipes to a default template until I can figure out what went wrong.</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111057792982725376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111057792982725376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111057792982725376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111057792982725376'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/03/comments-and-templates.html' title='Comments and Templates'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111056923907213033</id><published>2005-03-11T12:55:00.000-05:00</published><updated>2005-03-11T17:00:24.483-05:00</updated><title type='text'>Language Design by Consensus</title><summary type='text'>Guido van Rossum recently proposed a small addition to the Python language (any and all predicate functions).  In the discussion that followed, he made an interesting comment:What worries me a bit about doing a PEP for this simple proposal is that it might accidentally have the wrong outcome: a compromise that can carry a majority rather than the "right" solution because nobody could "sell" </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111056923907213033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111056923907213033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111056923907213033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111056923907213033'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/03/language-design-by-consensus.html' title='Language Design by Consensus'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-111022664606169110</id><published>2005-03-07T15:06:00.000-05:00</published><updated>2005-03-07T15:21:27.850-05:00</updated><title type='text'>Microsoft  PPC200x Developer Power Toys</title><summary type='text'>&gt;&gt;&gt; self.happiness = sum([pig.happiness for pig in slop]) I can't believe it took me so long to find out these CE development tools exist.Among the goodies:   A real command shell for Windows CE 4.x (ok, it's not bash, but it's better than nothing)   A remote control app (no more stylus-mistapping-on-the-cradled-device nonsense). Even stranger, they appear to be reliable and solid.</summary><link rel='related' href='http://www.microsoft.com/downloads/details.aspx?FamilyID=74473fd6-1dcc-47aa-ab28-6a2b006edfe9&amp;displaylang=en#filelist' title='Microsoft  PPC200x Developer Power Toys'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/111022664606169110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=111022664606169110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111022664606169110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/111022664606169110'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/03/microsoft-ppc200x-developer-power-toys.html' title='Microsoft  PPC200x Developer Power Toys'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110944972725030869</id><published>2005-02-26T15:16:00.000-05:00</published><updated>2005-03-06T02:13:39.300-05:00</updated><title type='text'>"Choose Python" shirts available</title><summary type='text'>They're here... just in time for PyCon.Two weights of T-shirts, plus a golf shirt for the collarly-inclined, and two long-sleeved shirts (just in case DC is a bit chilly in March).All prices are only US$1.00 over cost; proceeds will benefit the PSF.Incidentally, a number of people have mentioned the Adminspotting shirts. I was aware of them, but I can't say that Adminspotting directly inspired </summary><link rel='related' href='http://www.cafepress.com/pghpython' title='&quot;Choose Python&quot; shirts available'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110944972725030869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110944972725030869' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110944972725030869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110944972725030869'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/02/choose-python-shirts-available.html' title='&quot;Choose Python&quot; shirts available'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110814901805067062</id><published>2005-02-11T13:59:00.000-05:00</published><updated>2005-02-11T14:10:18.053-05:00</updated><title type='text'>Ack... Blog Ads on the 'Pipes?</title><summary type='text'>Yes, that's a vertical strip of Google AdSense ads below the profile on the right-hand side of the blog. No, I'm not under any "make money FA$T" delusions.In the past, I worked for a brief stint in the, ahem, online ad industry.  I'm curious how a company whose motto is "do no evil"1 goes about things, so I signed up for an AdSense account.I'll leave it up for a little while, and after I get a </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110814901805067062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110814901805067062' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110814901805067062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110814901805067062'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/02/ack-blog-ads-on-pipes.html' title='Ack... Blog Ads on the &apos;Pipes?'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110797486452600691</id><published>2005-02-09T13:46:00.000-05:00</published><updated>2005-02-09T13:47:44.526-05:00</updated><title type='text'>Google Maps:  Too Cool</title><summary type='text'>This is too cool:http://maps.google.com/maps?q=chinese%2015090</summary><link rel='related' href='http://maps.google.com' title='Google Maps:  Too Cool'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110797486452600691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110797486452600691' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110797486452600691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110797486452600691'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/02/google-maps-too-cool.html' title='Google Maps:  Too Cool'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110797364686036363</id><published>2005-02-09T13:08:00.000-05:00</published><updated>2005-02-09T13:27:26.860-05:00</updated><title type='text'>Jeremy Cole "On Employee Blogging"</title><summary type='text'>I haven't written anything on the Mark Jen story, because like just about everyone who is writing about it, I don't have all the details.Jeremy Cole remarked:Basically, I always follow these basic criteria when I blog about work: 	    Is it about anything sensitive in any way?Is it disrespectful to either your employer or any coworkers?Would you flinch in the slightest if your boss, his boss, </summary><link rel='related' href='http://jcole.us/blog/archives/2005/02/09/on-employee-blogging/' title='Jeremy Cole &quot;On Employee Blogging&quot;'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110797364686036363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110797364686036363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110797364686036363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110797364686036363'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/02/jeremy-cole-on-employee-blogging.html' title='Jeremy Cole &quot;On Employee Blogging&quot;'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110753963378954746</id><published>2005-02-04T13:32:00.000-05:00</published><updated>2005-02-04T12:53:53.790-05:00</updated><title type='text'>Argh: too much fun, too little time</title><summary type='text'>I've accumulated way too many neat ideas I want to try out (mostly Python-related).  In no particular order:   Thinking about what it would take to make a true, single-executable py2exe on Windows     Exploring Karrigell and CherryPy, benchmarking them, and contrasting them with Rails   Thinking about how to make PyPI work more like CPAN or Gems   Checking out the update of  wxPython on </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110753963378954746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110753963378954746' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110753963378954746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110753963378954746'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/02/argh-too-much-fun-too-little-time.html' title='Argh: too much fun, too little time'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110746250686709082</id><published>2005-02-03T15:12:00.000-05:00</published><updated>2005-02-03T15:28:26.866-05:00</updated><title type='text'>Python Reality Check</title><summary type='text'>Sometimes it's hard to see yourself from the outside.  I'm looking over the blog (especially the PySpotting hoo-ha), and I'm surprised to see how much here is about Python. Truth be told, I'm not a Python-über-alles fanatic.  In my day job, I write C++ for an embedded device.  [Insert obligatory corporate disclaimer here]. I've successfully proven that it's possible to run a Python interpreter </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110746250686709082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110746250686709082' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110746250686709082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110746250686709082'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/02/python-reality-check.html' title='Python Reality Check'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110617552032752290</id><published>2005-01-19T17:54:00.000-05:00</published><updated>2005-01-19T18:10:24.606-05:00</updated><title type='text'>Choose Python.</title><summary type='text'>A little doodle I came up with whilst waiting for my C++ debugger to sync up with my target device. I think I'm going to have it made into a T-shirt:</summary><link rel='related' href='http://www.lesher.ws/choose_python.pdf' title='Choose Python.'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110617552032752290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110617552032752290' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110617552032752290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110617552032752290'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/01/choose-python.html' title='Choose Python.'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110606950220648103</id><published>2005-01-18T13:18:00.000-05:00</published><updated>2005-01-18T12:31:42.206-05:00</updated><title type='text'>PyWebOff:  a Desperately-Needed Event</title><summary type='text'>From the site:PyWebOff is a compare-and-contrast exercise to evaluate the strengths and weaknesses of some of the major Python web application frameworks.Thank you! This is something that we Pythonistas really need.So far, the answer to "how does Python support web programming?" has been "well, there's Zope, Webkit, CherryPy, Quixote, Woven..." There hasn't been much "If you want X, then you </summary><link rel='related' href='http://pyre.third-bit.com/pyweb/index.html' title='PyWebOff:  a Desperately-Needed Event'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110606950220648103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110606950220648103' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110606950220648103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110606950220648103'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/01/pyweboff-desperately-needed-event.html' title='PyWebOff:  a Desperately-Needed Event'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110512228552148548</id><published>2005-01-07T13:22:00.000-05:00</published><updated>2005-01-07T13:24:45.520-05:00</updated><title type='text'>Apologies to PlanetPython</title><summary type='text'>Ack.  Apologies to the PlanetPython folks, who caught a bunch of ugly garbage from my blogspot feed.  Blogspot creates some pretty ugly XHTML when you syndicate full content.</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110512228552148548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110512228552148548' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110512228552148548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110512228552148548'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/01/apologies-to-planetpython.html' title='Apologies to PlanetPython'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110506409176041057</id><published>2005-01-06T19:51:00.000-05:00</published><updated>2005-01-06T21:35:29.823-05:00</updated><title type='text'>Leaky Abstractions and UI Toolkits</title><summary type='text'>Late last night, I was digging around in the bowels of ATL for some work-related research and got distracted into doing some wxPython digging, after which I got distracted into doing some Wax digging.  (Long night).I like the clean and idiomatic Wax design. But when you commit to Wax, you're committing to a lot. For example, on Windows, your dependency chain looks like this:YourApp -&gt; Wax -&gt; </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110506409176041057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110506409176041057' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110506409176041057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110506409176041057'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/01/leaky-abstractions-and-ui-toolkits.html' title='Leaky Abstractions and UI Toolkits'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110495394554530592</id><published>2005-01-05T13:59:00.000-05:00</published><updated>2006-12-19T13:52:00.896-05:00</updated><title type='text'>Joel on College</title><summary type='text'>I have a love-hate relationship with Joel Spolsky.  I disagree with him as often as not, but his most recent essay, Advice for Computer Science College Students, is better than most.As usual, the essay is a mixed bag, but on his last point (getting a good internship), I agree completely. After my third year, I interned with a small startup company. This was way before the Internet bubble, so </summary><link rel='related' href='http://www.joelonsoftware.com/articles/CollegeAdvice.html' title='Joel on College'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110495394554530592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110495394554530592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110495394554530592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110495394554530592'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/01/joel-on-college.html' title='Joel on College'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110494762531970500</id><published>2005-01-05T13:17:00.000-05:00</published><updated>2005-01-05T12:53:45.320-05:00</updated><title type='text'>Web games and Tsunami Relief</title><summary type='text'>Web games seem to be the last bastion of the days where "one designer working in a garage" could create something great.  Content and marketing budgets are miniscule, you don't need ten thousand players to break even, and the technological and licensing barriers to entry are low enough that one guy with a good idea and a lot of energy can create a great game.I've been playing the web game </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110494762531970500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110494762531970500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110494762531970500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110494762531970500'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2005/01/web-games-and-tsunami-relief.html' title='Web games and Tsunami Relief'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110443781599226475</id><published>2004-12-30T14:55:00.000-05:00</published><updated>2004-12-30T15:16:55.993-05:00</updated><title type='text'>Perforce does Python</title><summary type='text'>At work, we're switching source control systems; we've settled on Perforce. I used Perforce years ago at a now-dead dot-com, but it's been a while, so I started reading the online docs to refresh my memory before the rollout.  I was pleasantly surprised to find this in the standard client's command-line options:-G: Causes all output (and batch input for form commands with (-i) to be formatted as</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110443781599226475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110443781599226475' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110443781599226475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110443781599226475'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/12/perforce-does-python.html' title='Perforce does Python'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110374287573269370</id><published>2004-12-22T14:12:00.000-05:00</published><updated>2004-12-22T14:14:35.733-05:00</updated><title type='text'>Effbot on Bill Mill on Decorators</title><summary type='text'>Followup: What was even more interesting than Bill Mill's decorator rant was a comment to Bill's post, by the inimitable Effbot: I'm beginning to realize that the people who are the most enthusiastic about [recent Python additions] do not think in the same Python as I do.....  I'm not even sure they think in Python; I suspect they think in something else, and translate that to Python when coding</summary><link rel='related' href='http://llimllib.f2o.org/blog/serve/entry/redecorator.html' title='Effbot on Bill Mill on Decorators'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110374287573269370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110374287573269370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110374287573269370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110374287573269370'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/12/effbot-on-bill-mill-on-decorators.html' title='Effbot on Bill Mill on Decorators'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110374275788340821</id><published>2004-12-22T13:55:00.000-05:00</published><updated>2004-12-22T14:12:37.883-05:00</updated><title type='text'>Bill Mill on decorators</title><summary type='text'>Bill Mill chimes in on decorators: Please leave the decorators to other people, and write your code without the sugar. Make the world just a little bit simpler.I don't go as far as he did, and I suspect it's because we're each seeing a different part of the decorator elephant.  It sounds like his reaction is more like my initial reaction (lost to the maelstrom of a PyDS bug) to metaclasses:  "</summary><link rel='related' href='http://llimllib.f2o.org/blog/serve/entry/redecorator.html' title='Bill Mill on decorators'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110374275788340821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110374275788340821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110374275788340821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110374275788340821'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/12/bill-mill-on-decorators.html' title='Bill Mill on decorators'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110374169004340285</id><published>2004-12-22T13:48:00.000-05:00</published><updated>2004-12-22T13:54:50.043-05:00</updated><title type='text'>Two for the Price of One</title><summary type='text'>The two Python IDEs I've been watching, DrPython and SPE, both got Christmas upgrades.  The new DrPython release looks like mostly bugfixes, but the SPE release adds a neat new class diagramming feature. My earlier characterisation still holds:  I like the speed and stability, but dislike the unPythonic coding style and awful GUI layout of DrPython.  I like the shiny features, but dislike the </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110374169004340285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110374169004340285' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110374169004340285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110374169004340285'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/12/two-for-price-of-one.html' title='Two for the Price of One'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110357897747871189</id><published>2004-12-20T16:28:00.000-05:00</published><updated>2004-12-20T16:42:57.476-05:00</updated><title type='text'>Why Debian Sarge Is Late...</title><summary type='text'>Because an issue like this turns into several hundred messages including this, this, and this, and  culminates in a message like this.</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110357897747871189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110357897747871189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110357897747871189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110357897747871189'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/12/why-debian-sarge-is-late.html' title='Why Debian Sarge Is Late...'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110331691568644189</id><published>2004-12-17T14:32:00.000-05:00</published><updated>2007-10-05T10:51:20.461-04:00</updated><title type='text'>From Linux to FreeBSD</title><summary type='text'>Goodbye, Linux.  Hello, FreeBSD.About five years ago, when I was building out my home mailserver, I considered a couple of OS platforms. Windows 2000 was right out for resource reasons (the machine was a 90 MHz Pentium). I looked at the Debian, RedHat, and Mandrake distributions of Linux, as well as FreeBSD. Installing FreeBSD yielded a thoroughly broken system--probably my own mistake, but given</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110331691568644189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110331691568644189' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110331691568644189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110331691568644189'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/12/from-linux-to-freebsd.html' title='From Linux to FreeBSD'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110243962576711716</id><published>2004-12-07T11:12:00.000-05:00</published><updated>2004-12-07T12:13:45.766-05:00</updated><title type='text'>Going Back to Flint Axes</title><summary type='text'>I had a little project to do last night:  a small GUI application, only needed to run on Windows, with just a few bells and whistles--nothing too complicated.  Just out of curiosity, I decided to go to the Wayback Machine and code it in straight, honest-to-Petzold Win32 and C.  Not C++, not Microsoft's C-in-C++'s-clothing MFC, but real C, with slash-star comments and all.Now, just for </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110243962576711716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110243962576711716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110243962576711716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110243962576711716'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/12/going-back-to-flint-axes.html' title='Going Back to Flint Axes'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110208893253164618</id><published>2004-12-03T10:41:00.000-05:00</published><updated>2004-12-03T10:48:52.530-05:00</updated><title type='text'>Back in the Day</title><summary type='text'>I don't know why, but I've always loved reading old computer magazines and advertisements (old being ~10 years before whatever year it happens to be).  One of my "one of these days" projects is to create a website dedicated to the unbridled optimism, fallen prophecies, and educated harrumphing of the "golden age" of personal computing (whenever I figure out when that is, was, or will be).Great </summary><link rel='related' href='http://www.theoldcomputer.com/Libarary&apos;s/Mags/New%20Computer%20Express/NCE_Issue101_1.jpg' title='Back in the Day'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110208893253164618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110208893253164618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110208893253164618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110208893253164618'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/12/back-in-day.html' title='Back in the Day'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110192480074200028</id><published>2004-12-01T13:03:00.000-05:00</published><updated>2004-12-01T13:13:20.743-05:00</updated><title type='text'>"Aftermarket Pipes"</title><summary type='text'>After the blog was up on pycs.net for about three months, Googling for "aftermarket pipes" came up with my blog rather than the more-appropriate bike shops or manufacturer sites.Enough people have asked me, "Why 'aftermarket pipes'?" that I have to have some kind of answer. Last year, when I was setting up the first incarnation of this blog  (from my cubicle where I worked at the time), I got </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110192480074200028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110192480074200028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110192480074200028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110192480074200028'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/12/aftermarket-pipes.html' title='&quot;Aftermarket Pipes&quot;'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110192336258799113</id><published>2004-12-01T12:39:00.000-05:00</published><updated>2004-12-01T12:50:16.250-05:00</updated><title type='text'>Another beginning for the Pipes</title><summary type='text'>After two unexplainable data losses, a handful of strange errors, and a week of site downtime, I'm moving Aftermarket Pipes to blogspot.  I like the PyCS and PyDS folks, and the system they're creating, but I'll take stability for right now.Now, if I can figure out a nice way to import the old blog entries, I'll be happy.</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110192336258799113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110192336258799113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110192336258799113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110192336258799113'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/12/another-beginning-for-pipes.html' title='Another beginning for the Pipes'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110946211529401055</id><published>2004-11-11T18:28:00.000-05:00</published><updated>2005-02-26T18:55:15.303-05:00</updated><title type='text'>Steam-driven gaming</title><summary type='text'>[It's a shame Blogger doesn't do categories.  Pretend this entry is in a "Gaming" category, and that you're not seeing it if you're just interested in the Python side of the 'Pipes.  In any event, this is reposted from a backup I had from before I move Apipes to blogspot.]I have a habit of coming up with an idea, writing it down, forgetting about it, and then reading that someone else has had the</summary><link rel='related' href='http://www.steamwars.com' title='Steam-driven gaming'/><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110946211529401055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110946211529401055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110946211529401055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110946211529401055'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/11/steam-driven-gaming.html' title='Steam-driven gaming'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110192552421132426</id><published>2004-08-26T17:50:00.000-04:00</published><updated>2004-12-01T14:04:50.680-05:00</updated><title type='text'>Can you fly that thing?  Not yet...</title><summary type='text'> [republished 1 Dec 2004 from pycs.net]Every once in a while I notice something that reminds me of a scene from a movie. Generally, if it's a movie that has made me think a bit or consider things in a new light (Fight Club, The Matrix, and Pulp Fiction are a few), it means there's something worth chewing on in the situation. I'm no Matrix fanboy, but I had an experience that put me in mind of </summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110192552421132426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110192552421132426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110192552421132426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110192552421132426'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/08/can-you-fly-that-thing-not-yet.html' title='Can you fly that thing?  Not yet...'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9410449.post-110192637204151921</id><published>2004-08-16T13:38:00.000-04:00</published><updated>2004-12-06T12:09:59.690-05:00</updated><title type='text'>The Contractual Obligation Post</title><summary type='text'>It appears that, as it has "Python" in the tagline, this blog is legally required to comment on the current decorator controversy in the Python community.I think Hans Nowak has the best and most thorough explanation of what the new decorator does (at least in its current implementation), and exploration of how you can use it in interesting ways. Certainly, it's been the explanation that fits my</summary><link rel='replies' type='application/atom+xml' href='http://apipes.blogspot.com/feeds/110192637204151921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9410449&amp;postID=110192637204151921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110192637204151921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9410449/posts/default/110192637204151921'/><link rel='alternate' type='text/html' href='http://apipes.blogspot.com/2004/08/contractual-obligation-post.html' title='The Contractual Obligation Post'/><author><name>Tim Lesher</name><uri>http://www.blogger.com/profile/02469159188193434861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='26' src='http://2.bp.blogspot.com/_ycVR-4vOij4/S-wYnNK_kjI/AAAAAAAAAqo/Ty0CHY1i2Nc/S220/tim.jpg'/></author><thr:total>0</thr:total></entry></feed>
