Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Ted Leung on the air: Open Source, Java, Python, and ...
Mon, 22 Mar 2004
PyCon sprints, day 2, dinner
Last night I went out for dinner with Bob Ippolito, Donovan Preston and his SO, and Zach Burke. We ended up at a Singaporean restaurant. After hearing some of Enoch's tales of Singaporean dining, I was curious to try something new. While the noodle/seafood dish that I had was good, I hardly had time to pay attention to the food. Instead, I was paying attention to the conversation that Bob, Donovan, and Zach were having.
By the time we got to the restaurant, my head was already buzzing, because Bob gave me a 5 line (well, more than that) explanation of PyProtocols and why they were as useful thing. Contrary to the name, PyProtocols doesn't enforce protocols, as someone coming from Java might expect. Instead it provides a mechanism for mixing in API to a Python class, and then allowing to you provide the implementation from a separate class or even on an instance by instance basis. By itself this seemed to be a pretty useful notion. I'd seen the name PyProtocols, but haven't had time to look into it. I guess I'd better now.
Donovan works on Quotient, a web based PIM written in Python. Their team is fully geographically distributed and uses their own VOIP software to do twice a day VOIP conference calls. We spent a little bit of time comparing notes on working distributed. The solution of asterisk might work well for having VOIP conference calls with the rest of OSAF (Ducky and I were discussing this in IRC sometime last week), particularly on days when folks are working at home. Donovan also pointed me at QuickSilver, which is a free (an possibly open source) competitor to Launchbar. More on this in the future.
The discussion ranged all over Python, and was really useful to me. Bob filled us in a bit on the Stackless sprint. Apparently the Stackless web page is out of date and there's a version of Stackless that runs on OS X. I was cautioned to wait few months till the dust raised at the sprint settles. One interesting(?) thing I learned is that you'll be able to pickle tasklets, which could be used to simulate continuations (this seems like it would be slow), and could also be used to migrate tasklets to a different machine where they could be unpickled and resumed.
Bob and Donovan told me about this hack that they did at last PyCon which eventually became a part of Nevow. From looking at Donovan's slides, the feature is now called stan, and looks very similar to the MarkupBuilder in Groovy. It's interesting that it's accomplished in Python without the use of special closure calling syntax.
I asked the gentleman to recommend projects that I could look at in order to find interesting/advanced uses of Python. The list included (I may have forgotten some) Zope3, Twisted, PyProtocols, and PEAK. That should keep me busy for a while after PyCon. I wanted to meet Bob in person after corresponding with him a bit electronically. I'm very glad that I invited myself to dinner with the entire group.
[06:27] |
[computers/programming/python] |
# |
TB |
F |
G |
5 Comments |
To save you 5 seconds of googling. PEAK and PyProtocols can be found at http://peak.telecommunity.com, happy sprinting !
Posted by Darryl at Mon Mar 22 07:26:44 2004
Posted by Darryl at Mon Mar 22 07:26:44 2004
That link's broken; try:
http://peak.telecommunity.com/
Posted by Phillip J. Eby at Mon Mar 22 08:20:42 2004
http://peak.telecommunity.com/
Posted by Phillip J. Eby at Mon Mar 22 08:20:42 2004
Also, the closest thing to PyProtocols in the Java world would probably be Eclipse's 'getAdapter()' framework, crossed with simple typecasting.
In effect, the 'adapt()' function supplied by PyProtocols either returns the same object (like a Java typecast), or it calls an adapter function to return a replacement object (like Eclipse's 'getAdapter()').
The actual mechanics are quite a bit different than Eclipse's, though. See PEP 246 for the basic mechanisms; PyProtocols just adds a framework for specifying and registering adapters on top of the basics prescribed by PEP 246, and a way to spell "implements" (as opposed to "extends") in Python.
Posted by Phillip J. Eby at Mon Mar 22 08:26:10 2004
In effect, the 'adapt()' function supplied by PyProtocols either returns the same object (like a Java typecast), or it calls an adapter function to return a replacement object (like Eclipse's 'getAdapter()').
The actual mechanics are quite a bit different than Eclipse's, though. See PEP 246 for the basic mechanisms; PyProtocols just adds a framework for specifying and registering adapters on top of the basics prescribed by PEP 246, and a way to spell "implements" (as opposed to "extends") in Python.
Posted by Phillip J. Eby at Mon Mar 22 08:26:10 2004
Can you post the ~5 lines explanation of PyProtocols that bob gave you?
Posted by oier at Tue Mar 23 03:33:15 2004
Posted by oier at Tue Mar 23 03:33:15 2004
You can subscribe to an RSS feed of the comments for this blog:
Add a comment here:
You can use some HTML tags in the comment text:
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are:
You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are:
<a href>
, <em>
, <i>
, <b>
, <blockquote>
, <br/>
, <p>
, <code>
, <pre>
, <cite>
, <sub>
and <sup>
.You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk