<?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/'><id>tag:blogger.com,1999:blog-1358941065293307736.comments</id><updated>2011-10-21T10:11:29.836-07:00</updated><category term='ruby'/><category term='amqp'/><category term='technology'/><category term='twisted'/><category term='development'/><category term='maven'/><category term='predictions'/><category term='github'/><category term='creative commons'/><category term='microblogging'/><category term='ipython'/><category term='browsers'/><category term='messaging middleware'/><category term='NaNoWriMo'/><category term='aaku'/><category term='novel'/><category term='frameworks'/><category term='git'/><category term='opengl'/><category term='python'/><category term='hot chip'/><category term='rabbitmq'/><category term='science fiction'/><category term='code'/><category term='launchpad'/><category term='humor'/><category term='facebook'/><category term='java'/><category term='programming'/><category term='graphics'/><category term='rants'/><category term='python magazine'/><category term='music'/><category term='rcs'/><category term='hate'/><category term='communication'/><category term='concurrency'/><category term='seo'/><category term='bitbucket'/><category term='internet marketing'/><category term='onion news'/><category term='software'/><category term='ie6'/><category term='twitter'/><category term='mac'/><category term='puzzles'/><category term='marketing'/><category term='microsoft'/><category term='social media'/><category term='pyglet'/><category term='fiction'/><category term='mercurial'/><category term='competitive website  analysis'/><category term='google'/><title type='text'>multum im parvo</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.enterthefoo.com/feeds/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/comments/default'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>djfroofy</name><uri>http://www.blogger.com/profile/16090531726775133893</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kcQvXqqF6KM/St92ZJj7osI/AAAAAAAAAeM/qLSef2ndk6I/S220/pigeonhill-logo2-md.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-4463869516053780061</id><published>2011-10-21T10:11:21.575-07:00</published><updated>2011-10-21T10:11:21.575-07:00</updated><title type='text'>I definitely understand how &amp;quot;user orientation...</title><content type='html'>I definitely understand how &amp;quot;user orientation&amp;quot; can be seen as advantage, though only through different mechanisms; launchpad, for example, still allows name-spacing of experiment work under users with ~username urls. The reality is there is always &amp;quot;global&amp;quot; namespace regardless and you butt heads with this at runtime with most programming languages (though in practice I&amp;#39;ve never encountered this &amp;quot;problem&amp;quot; with package names). Nonetheless, having a global namespace for projects on major code hosting site lowers the likelihood you&amp;#39;ll create a project with the same name as another so I conversely see that as an advantage; an easy way to (almost) avoid branding identity issues from a project&amp;#39;s inception. A healthy sample of open source projects have been renamed later due to such collisions realized much later (e.g. firebird-&amp;gt;firefox).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/2930257729768839032/comments/default/4463869516053780061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/2930257729768839032/comments/default/4463869516053780061'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2011/09/code-hosting-site-holy-war-i-didnt-know.html?showComment=1319217081575#c4463869516053780061' title=''/><author><name>djfroofy</name><uri>http://www.blogger.com/profile/16090531726775133893</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_kcQvXqqF6KM/St92ZJj7osI/AAAAAAAAAeM/qLSef2ndk6I/S220/pigeonhill-logo2-md.png'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2011/09/code-hosting-site-holy-war-i-didnt-know.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-2930257729768839032' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/2930257729768839032' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-612548420'/></entry><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-5643870700219833294</id><published>2011-10-10T19:06:49.440-07:00</published><updated>2011-10-10T19:06:49.440-07:00</updated><title type='text'>Note that the &amp;quot;user orientation&amp;quot; of gith...</title><content type='html'>Note that the &amp;quot;user orientation&amp;quot; of github is generally considered an &lt;em&gt;advantage&lt;/em&gt;, and one of the reasons they are proving so popular in competition with more traditional &amp;quot;project-oriented&amp;quot; forge sites (obviously not the only reason of course).&lt;br /&gt;&lt;br /&gt;Part of this the rise of DVCSs.  The concept that there&amp;#39;s a single repository for a project is a bit outdated, and the concept of a network of cooperating repositories is proving very popular.  Given this, if everybody and their dog has their own repo for various popular projects you need to deal with resulting namespace conflicts somehow, and basing it on users is an obvious method.&lt;br /&gt;&lt;br /&gt;Another advantage of user-namespace&amp;#39;d repos is that it reduces the mental burden of hosting:  your namespace is your own, so it becomes easier to create lots of repos—one doesn&amp;#39;t need to worry about resolving conflicts, nor about polluting a scarce global namespace.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/2930257729768839032/comments/default/5643870700219833294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/2930257729768839032/comments/default/5643870700219833294'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2011/09/code-hosting-site-holy-war-i-didnt-know.html?showComment=1318298809440#c5643870700219833294' title=''/><author><name>snogglethorpe</name><uri>http://www.blogger.com/profile/12341201158832109978</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_j9BSFbGR8ew/TBFsxDvBkGI/AAAAAAAAATU/0-tcG43DhxU/S220/silhouette0-icon0-100.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2011/09/code-hosting-site-holy-war-i-didnt-know.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-2930257729768839032' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/2930257729768839032' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1142191192'/></entry><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-1385961524417845855</id><published>2009-10-18T20:44:58.251-07:00</published><updated>2009-10-18T20:44:58.251-07:00</updated><title type='text'>Awesome.  I like how they&amp;#39;ve used the word &amp;qu...</title><content type='html'>Awesome.  I like how they&amp;#39;ve used the word &amp;quot;twit&amp;quot; instead of &amp;quot;tweet.&amp;quot;  I guess we&amp;#39;re in an era when only one neologism per concept (per language) just isn&amp;#39;t enough.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/4326913588562870629/comments/default/1385961524417845855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/4326913588562870629/comments/default/1385961524417845855'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2009/10/february-1-2010-is-officialy-stop.html?showComment=1255923898251#c1385961524417845855' title=''/><author><name>djfroofy</name><uri>http://www.blogger.com/profile/16090531726775133893</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2009/10/february-1-2010-is-officialy-stop.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-4326913588562870629' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/4326913588562870629' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-612548420'/></entry><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-1789822099294338380</id><published>2009-10-17T08:00:02.902-07:00</published><updated>2009-10-17T08:00:02.902-07:00</updated><title type='text'>Oh no! Half of my prophecy is halfway fulfilled: h...</title><content type='html'>Oh no! Half of my prophecy is halfway fulfilled: http://nitrolab.engr.wisc.edu/blog/?p=39</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/4326913588562870629/comments/default/1789822099294338380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/4326913588562870629/comments/default/1789822099294338380'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2009/10/february-1-2010-is-officialy-stop.html?showComment=1255791602902#c1789822099294338380' title=''/><author><name>Mark Luffel</name><uri>http://www.blogger.com/profile/00904617076470560132</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2009/10/february-1-2010-is-officialy-stop.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-4326913588562870629' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/4326913588562870629' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1951209111'/></entry><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-1135701338929078499</id><published>2009-10-16T19:29:29.228-07:00</published><updated>2009-10-16T19:29:29.228-07:00</updated><title type='text'>Let me drop some prophecy on you. In 2010, Georgia...</title><content type='html'>Let me drop some prophecy on you. In 2010, Georgia Tech researchers will publish research about DIRECT-BRAIN-INTERFACES-TO-TWITTER. Various religious/spiritual/new-age analogies (&amp;quot;voice of god&amp;quot;, &amp;quot;collective unconscious&amp;quot; , etc) will be made in their publication, and they will propose a name for their client along the lines of &amp;quot;Tweetabellum&amp;quot; or &amp;quot;Twitocortext&amp;quot; or &amp;quot;Cerebrweet&amp;quot;. Then in 2012 the Singularity will occur as people start to use this brain-Twitter client to form post-Statist governance units.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/4326913588562870629/comments/default/1135701338929078499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/4326913588562870629/comments/default/1135701338929078499'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2009/10/february-1-2010-is-officialy-stop.html?showComment=1255746569228#c1135701338929078499' title=''/><author><name>Mark Luffel</name><uri>http://www.blogger.com/profile/00904617076470560132</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2009/10/february-1-2010-is-officialy-stop.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-4326913588562870629' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/4326913588562870629' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1951209111'/></entry><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-3076595092461313652</id><published>2008-12-29T03:38:00.000-08:00</published><updated>2008-12-29T03:38:00.000-08:00</updated><title type='text'>Thanks for an excellent post! I found it useful fo...</title><content type='html'>Thanks for an excellent post! I found it useful for my implementation of an unserializer (deserializer?). Particularly the point about properties was helpful.&lt;BR/&gt;&lt;BR/&gt;I ended up doing something like this in my implementation: http://code.google.com/p/bui/source/browse/trunk/bui/backend/abstract.py?spec=svn115&amp;amp;r=115 (see AbstractObject). Apparently pre tags are not allowed so I suppose a link is just fine. :)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/1253029271805298611/comments/default/3076595092461313652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/1253029271805298611/comments/default/3076595092461313652'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2008/08/pythons-vars.html?showComment=1230550680000#c3076595092461313652' title=''/><author><name>Juho Vepsäläinen</name><uri>http://www.blogger.com/profile/08481088432274153896</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2008/08/pythons-vars.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-1253029271805298611' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/1253029271805298611' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-60177395'/></entry><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-9178288199795483265</id><published>2008-11-04T05:45:00.000-08:00</published><updated>2008-11-04T05:45:00.000-08:00</updated><title type='text'>@kevingill&lt;br&gt;&lt;br&gt;Thanks for the comment.  I'm gla...</title><content type='html'>@kevingill&lt;BR/&gt;&lt;BR/&gt;Thanks for the comment.  I'm glad you liked the article - I tried my best to make a dry subject interesting. :)&lt;BR/&gt;&lt;BR/&gt;Unfortunately, my Zope knowledge is mostly tangential (and limited to zope.interface) through experience working with the Twisted framework.  I do hope to write something on a specific library (rather than language concepts), but Zope is outside of my scope.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/7270234660102318516/comments/default/9178288199795483265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/7270234660102318516/comments/default/9178288199795483265'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2008/10/pymag-multiple-inheritance.html?showComment=1225806300000#c9178288199795483265' title=''/><author><name>djfroofy</name><uri>http://www.blogger.com/profile/16090531726775133893</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2008/10/pymag-multiple-inheritance.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-7270234660102318516' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/7270234660102318516' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-612548420'/></entry><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-7168813018751148217</id><published>2008-10-30T07:26:00.000-07:00</published><updated>2008-10-30T07:26:00.000-07:00</updated><title type='text'>Hi Drew,&lt;br&gt;&lt;br&gt;I just want to say I loved your ar...</title><content type='html'>Hi Drew,&lt;BR/&gt;&lt;BR/&gt;I just want to say I loved your article in pyMag. I have been a zope3 users for about a year, and while I knew how to use zope.interface, I wasn't aware of why. I always thought that it is a bit of overkill, but now I know better.&lt;BR/&gt;&lt;BR/&gt;Great article. I hope you write more (preferably about Zope).&lt;BR/&gt;&lt;BR/&gt;Thanks,&lt;BR/&gt;&lt;BR/&gt;Kevin</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/7270234660102318516/comments/default/7168813018751148217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/7270234660102318516/comments/default/7168813018751148217'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2008/10/pymag-multiple-inheritance.html?showComment=1225376760000#c7168813018751148217' title=''/><author><name>kevingill</name><uri>http://www.blogger.com/profile/08629814437986660296</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2008/10/pymag-multiple-inheritance.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-7270234660102318516' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/7270234660102318516' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1049008596'/></entry><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-2568351739501390277</id><published>2008-10-10T13:20:00.000-07:00</published><updated>2008-10-10T13:20:00.000-07:00</updated><title type='text'>needless to say, i am stumped as to how to preserv...</title><content type='html'>needless to say, i am stumped as to how to preserve whitespace in a blogger comment ... :(</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/6087298860463553993/comments/default/2568351739501390277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/6087298860463553993/comments/default/2568351739501390277'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2008/10/lexical-scope.html?showComment=1223670000000#c2568351739501390277' title=''/><author><name>djfroofy</name><uri>http://www.blogger.com/profile/16090531726775133893</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2008/10/lexical-scope.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-6087298860463553993' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/6087298860463553993' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-612548420'/></entry><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-5596803035639020737</id><published>2008-10-10T13:18:00.000-07:00</published><updated>2008-10-10T13:18:00.000-07:00</updated><title type='text'>@ynniv That's a particularly nice solution.  I'm g...</title><content type='html'>@ynniv That's a particularly nice solution.  I'm guessing you're also aware of the partial function in functools (requires Python 2.5) which makes this even more concise:&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;def f():&lt;BR/&gt;    funcs = []&lt;BR/&gt;    for i in range(5):&lt;BR/&gt;        def g(i):&lt;BR/&gt;            print i&lt;BR/&gt;        funcs.append(partial(g, i))&lt;BR/&gt;    return funcs&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;I still can't help but laugh when some stubborn OO folks can't see the use of higher order functions!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/6087298860463553993/comments/default/5596803035639020737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/6087298860463553993/comments/default/5596803035639020737'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2008/10/lexical-scope.html?showComment=1223669880000#c5596803035639020737' title=''/><author><name>djfroofy</name><uri>http://www.blogger.com/profile/16090531726775133893</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2008/10/lexical-scope.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-6087298860463553993' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/6087298860463553993' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-612548420'/></entry><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-2169713733953312982</id><published>2008-10-09T09:31:00.000-07:00</published><updated>2008-10-09T09:31:00.000-07:00</updated><title type='text'>JavaScript folks run into this one somewhat often,...</title><content type='html'>JavaScript folks run into this one somewhat often, and Vinny's transformation is what I've always used. I hadn't realized that the "let" keyword provided a workaround, that's excellent. JavaScript's "let" also allows tuple/destructuring assignment, which is a python nicety that I occasionally miss.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/6087298860463553993/comments/default/2169713733953312982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/6087298860463553993/comments/default/2169713733953312982'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2008/10/lexical-scope.html?showComment=1223569860000#c2169713733953312982' title=''/><author><name>Mark Luffel</name><uri>http://www.blogger.com/profile/00904617076470560132</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2008/10/lexical-scope.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-6087298860463553993' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/6087298860463553993' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1951209111'/></entry><entry><id>tag:blogger.com,1999:blog-1358941065293307736.post-3117257466505866942</id><published>2008-10-09T09:19:00.000-07:00</published><updated>2008-10-09T09:19:00.000-07:00</updated><title type='text'>Python scopes at the function level, so framing &amp;#...</title><content type='html'>Python scopes at the function level, so framing &amp;#39;i&amp;#39; as an argument to another local function will produce the expected output.  &lt;BR/&gt;&lt;BR/&gt;def f():&lt;BR/&gt;    funcs = []&lt;BR/&gt;    for i in range(5):&lt;BR/&gt;        def close(i):&lt;BR/&gt;            def g():&lt;BR/&gt;                print i&lt;BR/&gt;            return g&lt;BR/&gt;        funcs.append(close(i))&lt;BR/&gt;    return funcs&lt;BR/&gt;&lt;BR/&gt;funcs = f()&lt;BR/&gt;for func in funcs:&lt;BR/&gt;    func()&lt;BR/&gt;&lt;BR/&gt;In addition, closures in python are read only, so g can&amp;#39;t modify i either.  The java-like workaround for that is to use mutable collections, but thats just annoying.  JavaScript (originating in Scheme) does this a little better, having mutable closures and a new &amp;quot;let&amp;quot; keyword that provides lexical binding without a function call.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/6087298860463553993/comments/default/3117257466505866942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1358941065293307736/6087298860463553993/comments/default/3117257466505866942'/><link rel='alternate' type='text/html' href='http://blog.enterthefoo.com/2008/10/lexical-scope.html?showComment=1223569140000#c3117257466505866942' title=''/><author><name>ynniv</name><uri>http://www.blogger.com/profile/08240692067085029643</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.enterthefoo.com/2008/10/lexical-scope.html' ref='tag:blogger.com,1999:blog-1358941065293307736.post-6087298860463553993' source='http://www.blogger.com/feeds/1358941065293307736/posts/default/6087298860463553993' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1616042242'/></entry></feed>
