<?xml version="1.0"?>
<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:foaf="http://xmlns.com/foaf/0.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="http://planet.python.org/">
	<title>Planet Python</title>
	<link>http://planet.python.org/</link>
	<description>Planet Python - http://planet.python.org/</description>

	<items>
		<rdf:Seq>
			<rdf:li rdf:resource="http://www.larsen-b.com/?p=290" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-8935780327334775165.post-8201587764870184309" />
			<rdf:li rdf:resource="http://pyre.third-bit.com/blog/archives/1561.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5440028356946346379.post-7496463186864033787" />
			<rdf:li rdf:resource="http://pyre.third-bit.com/blog/archives/1560.html" />
			<rdf:li rdf:resource="http://www.protocolostomy.com/?p=300" />
			<rdf:li rdf:resource="http://pyre.third-bit.com/blog/archives/1559.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-3604515438787408842.post-6228828416782668614" />
			<rdf:li rdf:resource="http://blog.ianbicking.org/2008/05/16/pdb-in-the-browser/" />
			<rdf:li rdf:resource="http://efford.org/blog/archives/43" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-11683713.post-468719660260808680" />
			<rdf:li rdf:resource="http://jessenoller.com/?p=266" />
			<rdf:li rdf:resource="http://jessenoller.com/?p=265" />
			<rdf:li rdf:resource="http://nedbatchelder.com/blog/200805/water_laptop_ok.html" />
			<rdf:li rdf:resource="http://blog.pyamf.org/?p=37" />
			<rdf:li rdf:resource="http://arthurkoziel.com/?p=47" />
			<rdf:li rdf:resource="http://pyre.third-bit.com/blog/archives/1558.html" />
			<rdf:li rdf:resource="http://ipython0.wordpress.com/?p=9" />
			<rdf:li rdf:resource="http://pyre.third-bit.com/blog/archives/1557.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-20144447.post-1563077708121682388" />
			<rdf:li rdf:resource="http://pyre.third-bit.com/blog/archives/1556.html" />
			<rdf:li rdf:resource="http://www.peterbe.com/plog/split_search" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-3604515438787408842.post-5810188750325804478" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-3604515438787408842.post-1427918362022122190" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-3604515438787408842.post-488114953471535208" />
		</rdf:Seq>
	</items>
</channel>

<item rdf:about="http://www.larsen-b.com/Article/290.html">
	<title>Jkx@home: 2D benchmarks on Linux Nvidia, Intel, ATI: xrender</title>
	<link>http://www.larsen-b.com/Article/290.html</link>
	<content:encoded>For my new computer I bought a ATI HD 2600 PRO with a bunch of memory. This card has some really good 3D results, and works well on Linux. But I run into some issues with de xv extension on this board. In fact the driver (the free or binary one) doesn&amp;#8217;t seems to support [...]</content:encoded>
	<dc:date>2008-05-17T01:48:27+00:00</dc:date>
</item>
<item rdf:about="http://entitycrisis.blogspot.com/2008/05/dear-lazyweb.html">
	<title>Simon Wittber: Dear lazyweb...</title>
	<link>http://entitycrisis.blogspot.com/2008/05/dear-lazyweb.html</link>
	<content:encoded>I'm setting up my Python dev environment on a new macbook... and easy_install is running like treacle down a hill. It is so slow!&lt;br /&gt;&lt;br /&gt;Anyone else experienced this, and worked out what is wrong? I'm guessing its something network related...</content:encoded>
	<dc:date>2008-05-16T23:40:14+00:00</dc:date>
</item>
<item rdf:about="http://pyre.third-bit.com/blog/archives/1561.html">
	<title>Greg Wilson: File Under “Really Not Getting It”</title>
	<link>http://pyre.third-bit.com/blog/archives/1561.html</link>
	<content:encoded>&lt;p&gt;The New York Times ran &lt;a href=&quot;http://www.nytimes.com/2008/05/15/fashion/15WORK.html&quot;&gt;a piece today&lt;/a&gt; on the under-representation of women in the sciences&amp;#8212;in the Fashion and Style section, of course, because hey, women don&amp;#8217;t read the business pages, do they? *sigh*&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-16T18:45:59+00:00</dc:date>
</item>
<item rdf:about="http://blog.doughellmann.com/2008/05/october-2007-column-for-python-magazine.html">
	<title>Doug Hellmann: October 2007 column for Python Magazine</title>
	<link>http://blog.doughellmann.com/2008/05/october-2007-column-for-python-magazine.html</link>
	<content:encoded>Has your multi-threaded application grown GILs? Take a look at these packages for easy-to-use process management and interprocess communication tools.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.doughellmann.com/articles/CompletelyDifferent-2007-10-multiprocessing/index.html&quot;&gt;Read more&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;This article was originally published by &lt;a href=&quot;http://www.pythonmagazine.com/&quot;&gt;Python Magazine&lt;/a&gt; in  &lt;a href=&quot;http://pymag.phparch.com/c/issue/view/60&quot;&gt;October of 2007&lt;/a&gt;.&lt;/em&gt;&lt;br /&gt;</content:encoded>
	<dc:date>2008-05-16T18:43:08+00:00</dc:date>
</item>
<item rdf:about="http://pyre.third-bit.com/blog/archives/1560.html">
	<title>Greg Wilson: I Will Buy You Lunch…</title>
	<link>http://pyre.third-bit.com/blog/archives/1560.html</link>
	<content:encoded>&lt;p&gt;&amp;#8230;or maybe even dinner, if you will build a usable table &lt;a href=&quot;http://pyre.third-bit.com/blog/archives/462.html&quot;&gt;differencing tool&lt;/a&gt;.  I have some SQLite database files under version control that I need to merge (updated on my laptop yesterday while flying, not remembering that I&amp;#8217;d made some updates on my desktop machine as well).  Ditto spreadsheets: I store all my grades in Excel now, but every once in a while, I have to merge changes made at home with changes made in the office. Both are multi-tabular data (&amp;#8221;multi&amp;#8221; because there can be many tables in a database, and many worksheets in a spreadsheet); after images, I&amp;#8217;d guess tabular is the most common format that people want to put into version control that diff(1) can&amp;#8217;t deal with. I can&amp;#8217;t promise wealth or fame, but you&amp;#8217;d sure be popular.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-16T16:29:40+00:00</dc:date>
</item>
<item rdf:about="http://www.protocolostomy.com/2008/05/16/social-media-the-future-of-news-and-data-mining/">
	<title>Brian Jones: Social Media, The Future of News, and Data Mining</title>
	<link>http://www.protocolostomy.com/2008/05/16/social-media-the-future-of-news-and-data-mining/</link>
	<content:encoded>&lt;p&gt;I went to a very good panel discussion yesterday hosted by the Center for Information Technology Policy at Princeton University. There has been a conference going on there that covers a lot of the overlap between technology, law, and journalism, and the panel discussion yesterday, &lt;a href=&quot;http://citp.princeton.edu/future-of-news/#panel3&quot;&gt;Data Mining, Visualization, and Interactivity&lt;/a&gt; was even more enlightening than I had anticipated.&lt;/p&gt;
&lt;p&gt;The panel members included Matt Hurst, of Microsoft Live Labs, Kevin Anderson, blog editor for The Guardian, and David Blei, a professor at the Computer Science Dept., Princeton University. This made for a very lively discussion, covering a wide range of perspectives about social media, &amp;#8220;what is news?&amp;#8221;, how technology is changing how people interact with information (including news), how the news game is changing as a result (which was far more fascinating than it sounds), and how this unfathomably enormous stream of bits, enabled by lots of open APIs, feeds, and other data streams can be managed, mined, reduced, and presented in some value-added way (part of the value being the sheer reduction in noise).&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Cool Tools for Finding News&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Some of the tools presented by the panelists were new to me, and aside from being great tools for bloggers and other content publishers, there are some excellent examples of how to make effective use of the data you have access to through APIs like the Digg API.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BlogPulse&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This was presented by Matt Hurst. It&amp;#8217;s is pretty neat - it&amp;#8217;s a tool that essentially charts blog buzz of a given phrase over time, and it even lets you compare multiple phrases, which is really interesting as well. Check it out &lt;a href=&quot;http://www.blogpulse.com/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;d like to know more about how it derives the metrics, but in doing a couple of quick comparisons using the tool, it seems to line up to some degree with simple comparisons of the number of search results for different phrases on sites like technorati and bloglines. Interestingly, even though there appears to be lots more data available at Technorati, in my very limited experimenting, the percent difference between search results for any two phrases appears to be similar, indicating that bloglines may be a representative sampling of technorati data. More experimentation, of course, would be needed to lend any credibility whatsoever to that claim. It&amp;#8217;s probably irrelevant, because you can&amp;#8217;t ask either service for any kind of historical data regarding search results &lt;img src=&quot;http://www.protocolostomy.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Twistori&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This has the potential to be really interesting. Right now, it lets you pick from several different terms, like &amp;#8220;love&amp;#8221;, &amp;#8220;wish&amp;#8221;, &amp;#8220;think&amp;#8221; and &amp;#8220;feel&amp;#8221;, and after clicking one of those, it&amp;#8217;ll start producing a constantly updating stream of twitters that contain those words. If this experiment is successful, I would imagine they&amp;#8217;d eventually enable the same service for arbitrary keywords, which would be really powerful, and quite a lot of fun!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tweetwheel&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Oh how boring my life according to twitter is. I&amp;#8217;m still in the schizophrenic stage of settling on a live &amp;#8216;update your friends on what you&amp;#8217;re doing whether they care or not&amp;#8217; services. Facebook, myspace, twitter, jaiku&amp;#8230; there are too many. I&amp;#8217;m trying out the imified route now to consolidate all the cruft. According to tweetwheel, there are more places to update my status at any given moment than there are people who give a damn what my status is.&lt;/p&gt;
&lt;p&gt;Anyway, tweetwheel shows how you&amp;#8217;re connected to people through twitter. If you have lots of followers and follow lots of people, the wheel is really exciting to look at, as displayed by Kevin Anderson, who has a much more &amp;#8220;robust&amp;#8221; wheel than me &amp;#8212; it&amp;#8217;s actually interesting to look at. At some point I&amp;#8217;d like to see this idea expanded to cover the other services like Facebook and even LinkedIn.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Digg Labs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You have to go to the &lt;a href=&quot;http://labs.digg.com/&quot;&gt;Digg Labs&lt;/a&gt; site and see what people are doing with the Digg API. There are too many awesome utlities to cover them all here. It almost makes me wish I did fancy Flash UI stuff instead of back end data mining and infrastructure administration.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;At a higher level&amp;#8230;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Most of the discussion about social media seems to be about measuring buzz created by bloggers (at least where news/content publishing is concerned). However, although things have shifted dramatically in a &amp;#8216;consumers are producers&amp;#8217; direction, causing people to start rethinking the definition of news, this shift is caused as much by consumers who are still *only* consuming as anyone else, and I didn&amp;#8217;t see much in the way of tools that measure the interest of those people in any meaningful way. Perhaps the consensus is that the bloggers are a representative sampling of the wider internet readership? I don&amp;#8217;t know. I would disagree with that if it were the case.&lt;/p&gt;
&lt;p&gt;I work for &lt;a href=&quot;http://www.addthis.com&quot;&gt;AddThis.com&lt;/a&gt;, which seeks to provide publishers of news and all kinds of other content with statistics that help them figure out not just what pages people happen to be landing on, but which ones they have elected to take a greater interest in, either by emailing it to a friend, adding it to their favorites, or posting it to digg, delicious, or some other service. Maybe some day there will be an AddThis API that&amp;#8217;ll let you easily do even more interesting things with social media.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-16T15:39:21+00:00</dc:date>
</item>
<item rdf:about="http://pyre.third-bit.com/blog/archives/1559.html">
	<title>Greg Wilson: But I Was Gone Less than 48 Hours!</title>
	<link>http://pyre.third-bit.com/blog/archives/1559.html</link>
	<content:encoded>&lt;p&gt;I left Toronto for Austin mid-day Wednesday, and got back at midnight last night.  Lots happened in the interim, so here&amp;#8217;s a linkandthoughtdump (which I bet actually &lt;em&gt;is&lt;/em&gt; one word in German):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gave &lt;a href=&quot;http://www.cs.toronto.edu/~gvwilson/beautiful-code-mathworks-2008/index.html&quot;&gt;a talk&lt;/a&gt; about &lt;a href=&quot;http://www.amazon.com/Beautiful-Code-Leading-Programmers-Practice/dp/0596510047&quot;&gt;&lt;em&gt;Beautiful Code&lt;/em&gt;&lt;/a&gt; to the Austin Python Users&amp;#8217; Group Wednesday at &lt;a href=&quot;http://www.enthought.com&quot;&gt;Enthought&lt;/a&gt;&amp;#8217;s swanky offices. (They&amp;#8217;re the kind folks who provide web hosting for the &lt;a href=&quot;http://swc.scipy.org&quot;&gt;Software Carpentry&lt;/a&gt; course.) About 27 people in attendance, and good discussion afterward; was grateful to Travis Vaught and Sergey Fomel for rides from the airport and to the hotel respectively.&lt;/li&gt;
&lt;li&gt;Gave another talk titled &amp;#8220;&lt;a href=&quot;http://www.cs.toronto.edu/~gvwilson/articles/hpc-considered-harmful-2008.pdf&quot;&gt;HPC Considered Harmful&lt;/a&gt;&amp;#8221; at the &lt;a href=&quot;http://tacc.utexas.edu&quot;&gt;Texas Advanced Computing Center&lt;/a&gt;&amp;#8217;s &lt;a href=&quot;http://www.tacc.utexas.edu/ta/ta_display.php?ta_id=100484&quot;&gt;Second Annual Scientific Software Days&lt;/a&gt;. I was a bit nervous about telling people at a supercomputing center that focusing on massive parallelism and peak performance is wrongheaded, but there were a lot of nodding heads.&lt;/li&gt;
&lt;li&gt;I made lots of notes from two other talks that I want to follow up on at some point:
&lt;ul&gt;
&lt;li&gt;Robert van de Geijn&amp;#8217;s &lt;a href=&quot;http://www.cs.utexas.edu/users/flame/&quot;&gt;FLAME&lt;/a&gt; system lets you draw matrix operations, then automatically generates the corresponding high-performance code. It&amp;#8217;s a great example of a real high-level programming tool for scientists (and yet another special case of what a real &lt;a href=&quot;http://www.cs.toronto.edu/~gvwilson/articles/extprog-acmqueue-2004.pdf&quot;&gt;extensible programming system&lt;/a&gt; would support).&lt;/li&gt;
&lt;li&gt;Eric Jones (also from &lt;a href=&quot;http://www.enthought.com&quot;&gt;Enthought&lt;/a&gt;) talked about a tool they&amp;#8217;re building that watches changes to variables in Python programs, and automatically generates interactive plots of their values. It sounds simpler and less impressive than it actually is; I&amp;#8217;ve asked him to put together a screencast, and I think you&amp;#8217;ll be wowed&amp;#8212;I was. &lt;em&gt;(Later: Steve Eddings from The Mathworks sent me a link about &lt;a href=&quot;http://blogs.mathworks.com/desktop/2008/04/14/a-link-to-the-data/&quot;&gt;data linking in MATLAB&lt;/a&gt;, complete with a &lt;a href=&quot;http://www.mathworks.com/support/2008a/matlab/7.6/demos/LinkedPlotsAndDataBrushing.html&quot;&gt;video tutorial&lt;/a&gt;.)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;At roughly the same time, half a world away, Diomidis Spinellis presented &lt;a href=&quot;http://www.spinellis.gr/blog/20080516/&quot;&gt;a study&lt;/a&gt; comparing the code quality of Linux, Windows, OpenSolaris, and FreeBSD. Very cool work; wish I&amp;#8217;d been at &lt;a href=&quot;http://icse08.upb.de/&quot;&gt;ICSE&amp;#8217;08&lt;/a&gt; to ask questions.&lt;/li&gt;
&lt;li&gt;Meanwhile, Dmitri Vassiliev, who is continuing his work on &lt;a href=&quot;http://www.slashid.com&quot;&gt;SlashID&lt;/a&gt; this summer, has discovered that &lt;a href=&quot;http://slashid.wordpress.com/2008/05/16/grrr-setbacks-as-always/&quot;&gt;generated code is next-to-impossible to debug&lt;/a&gt;. Not to be a one-note symphony or anything, but I said in that same &lt;a href=&quot;http://www.cs.toronto.edu/~gvwilson/articles/extprog-acmqueue-2004.pdf&quot;&gt;article&lt;/a&gt; about extensible programming systems that the real challenge is not extending notation, but creating extensible debugging tools so that those notations and high-level representations can be fixed when they break.  Robert van de Geijn doesn&amp;#8217;t think &lt;a href=&quot;http://www.cs.utexas.edu/users/flame/&quot;&gt;FLAME&lt;/a&gt; needs a debugger; respectfully, I disagree.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.openwetware.org/scienceintheopen/2008/05/16/avoid-the-pain-and-embarassment-make-all-the-raw-data-available/&quot;&gt;Science in the Open&lt;/a&gt; has a plea to scientists to make their raw data available, motivated by yet another irreproducible result.&lt;/li&gt;
&lt;li&gt;Kosta Zabashta has posted early thoughts about &lt;a href=&quot;http://drprojectirc.wordpress.com/2008/05/16/the-early-plan/&quot;&gt;integrating IRC into DrProject&lt;/a&gt;. (Gray on black?  Kosta&amp;#8230;your design skills rival mine&amp;#8230;) I need to tell him that DrProject&amp;#8217;s RPC module doesn&amp;#8217;t handle tickets because Jeff Balogh is going to replace the entire ticketing system with an extensible one this summer, using his &lt;a href=&quot;http://dojotoolkit.org/blog/jbalogh/feed&quot;&gt;Dojo Form Editor&lt;/a&gt; as a front end&amp;#8230;&lt;/li&gt;
&lt;li&gt;Elisabeth Hendrickson has thoughts on &lt;a href=&quot;http://testobsessed.com/2008/05/15/so-youre-trying-to-automate-tests-for-a-legacy-web-application/&quot;&gt;automating tests for legacy web applications&lt;/a&gt;. Students, take note.&lt;/li&gt;
&lt;li&gt;Thanks to Nick Jamil and others, we have instructions for &lt;a href=&quot;https://www.drproject.org/DrProject/wiki/DrProjectOnWindows&quot;&gt;installing DrProject on Windows&lt;/a&gt;. Yay!&lt;/li&gt;
&lt;li&gt;Everything old is new again, including &lt;a href=&quot;http://www.ddj.com/hpc-high-performance-computing/207800151&quot;&gt;Ada and the Bletchley Park Colossus&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And then there&amp;#8217;s this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://imgs.xkcd.com/comics/security_holes.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Thanks again to &lt;a href=&quot;http://www.beg.utexas.edu/staffinfo/fomels01.htm&quot;&gt;Sergey Fomel&lt;/a&gt; for inviting me down, and for introducing me to the &lt;a href=&quot;http://lcavwww.epfl.ch/reproducible_research/&quot;&gt;reproducible&lt;/a&gt; &lt;a href=&quot;http://www.bioconductor.org/whatisit&quot;&gt;research&lt;/a&gt; &lt;a href=&quot;http://www.stat.washington.edu/jaw/jaw.research.reproducible.html&quot;&gt;community&lt;/a&gt;&amp;#8212;I&amp;#8217;m looking forward to many more discussions.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-16T15:01:08+00:00</dc:date>
</item>
<item rdf:about="http://ironpython-urls.blogspot.com/2008/05/pycon-italia-presentation-materials.html">
	<title>IronPython-URLs: PyCon Italia Presentation Materials Online</title>
	<link>http://ironpython-urls.blogspot.com/2008/05/pycon-italia-presentation-materials.html</link>
	<content:encoded>Menno Smit has put the materials for his presentation on IronPython to PyCon Italy online (the materials are in English). This includes the S5 presentation, sample code and an example Resolver One spreadsheet:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://freshfoo.com/blog/PyCon-Italia-Due-presentation-is-online.1024px&quot;&gt;PyCon Italia Presentation Materials Online&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded>
	<dc:date>2008-05-16T12:45:00+00:00</dc:date>
</item>
<item rdf:about="http://blog.ianbicking.org/2008/05/16/pdb-in-the-browser/">
	<title>Ian Bicking: pdb in the browser</title>
	<link>http://blog.ianbicking.org/2008/05/16/pdb-in-the-browser/</link>
	<content:encoded>&lt;div class=&quot;document&quot;&gt;
&lt;p&gt;People have asked me a few times about &lt;a class=&quot;reference external&quot; href=&quot;http://blog.ianbicking.org/ajaxy-exception-catching.html&quot;&gt;evalexception&lt;/a&gt; and &lt;a class=&quot;reference external&quot; href=&quot;http://python.org/doc/current/lib/module-pdb.html&quot;&gt;pdb&lt;/a&gt; &amp;#8212; they&amp;#8217;d like to be able to use something like pdb through the browser, stepping through code.&lt;/p&gt;
&lt;p&gt;The technique I used for tracebacks wouldn&amp;#8217;t really work for pdb.  For a traceback I saved all the information from the frames &amp;#8212; mostly just the local variables &amp;#8212; and then let the user interact with that through the browser.  But with pdb you pause the application part way through waiting for user input, and the routine only completes much later.&lt;/p&gt;
&lt;p&gt;While writing &lt;a class=&quot;reference external&quot; href=&quot;http://pythonpaste.org/waitforit/&quot;&gt;WaitForIt&lt;/a&gt; I played around with techniques to deal with very slow WSGI applications.  Not that hard, really &amp;#8212; you launch every request in a new thread, and you manage those requests in an application of its own.  So I started thinking about pdb again, and it started seeming feasible.  Whenever the app reads from stdin it goes into an interactive mode, showing you what comes out on stdout and letting you add input to stdin.  It&amp;#8217;s nothing specific to pdb really.&lt;/p&gt;
&lt;p&gt;So, with a bit of hacking, I added it into &lt;a class=&quot;reference external&quot; href=&quot;http://pypi.python.org/pypi/WebError/&quot;&gt;WebError&lt;/a&gt; (which is an extraction of the exception handling in &lt;a class=&quot;reference external&quot; href=&quot;http://pythonpaste.org&quot;&gt;Paste&lt;/a&gt;).  To give the demo a try, do:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
hg clone http://knowledgetap.com/hg/weberror/
cd weberror
python setup.py develop
# You need Paste trunk:
easy_install Paste==dev
python weberror/pdbcapture.py
&lt;/pre&gt;
&lt;p&gt;What you&amp;#8217;ll see is not polished, it&amp;#8217;s just working, but since I mostly did it to see if I could do it, that&amp;#8217;s good enough for me.&lt;/p&gt;
&lt;/div&gt;</content:encoded>
	<dc:date>2008-05-16T07:36:22+00:00</dc:date>
</item>
<item rdf:about="http://efford.org/blog/archives/43">
	<title>Nick Efford: Mercurial</title>
	<link>http://efford.org/blog/archives/43</link>
	<content:encoded>&lt;p&gt;In the past, I&amp;#8217;ve used Subversion for the one-person software development projects with which I&amp;#8217;m often involved.  Just recently, however, I thought I&amp;#8217;d give &lt;a href=&quot;http://www.selenic.com/mercurial/wiki/&quot;&gt;Mercurial&lt;/a&gt; a spin, having heard good things about it and seen a lot of people start using it.&lt;/p&gt;
&lt;p&gt;So far, I&amp;#8217;m impressed - particularly by the ease with which you can clone a repository to create a new branch for development, and then merge changes made there back into the original.  Another nice feature is the ability to view repository changelogs with a web browser, courtesy of Mercurial&amp;#8217;s built-in web server.  And then there&amp;#8217;s the fact that large parts of it are written in Python&amp;#8230; &lt;img src=&quot;http://efford.org/blog/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-16T07:16:33+00:00</dc:date>
</item>
<item rdf:about="http://spyced.blogspot.com/2008/05/quick-tip-for-debugging-with-jython.html">
	<title>Spyced: Quick tip for debugging with Jython</title>
	<link>http://spyced.blogspot.com/2008/05/quick-tip-for-debugging-with-jython.html</link>
	<content:encoded>&lt;p&gt;
Currently, Jython ships with the &lt;a href=&quot;http://docs.python.org/lib/module-pdb.html&quot;&gt;pdb&lt;/a&gt; debugger module from Python 2.3.  Unfortunately the 2.3 pdb is primitive even by command-line debugger standards.  (For instance, if the program you are debugging throws an exception, it will take pdb down with it.  Seriously.  Did anyone actually &lt;span&gt;use&lt;/span&gt; this thing?)
&lt;p&gt;
Fortunately all you have to do to get a much better experience is grab pdb.py, bdb.py, and cmd.py (for good measure) from a 2.5 CPython installation and run against that instead.
&lt;p&gt;
I've only tested this with Jython trunk but I think it should Just Work with the 2.2 release, too.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-16T06:40:03+00:00</dc:date>
</item>
<item rdf:about="http://feeds.feedburner.com/~r/Jessenollercom/~3/291326109/">
	<title>Jesse Noller: Sausage on the brain.</title>
	<link>http://feeds.feedburner.com/~r/Jessenollercom/~3/291326109/</link>
	<content:encoded>&lt;p&gt;Mandlebraut: Rendering Sausages.&lt;/p&gt;
&lt;p&gt;These are the ideas I get when I'm coding and thinking about food.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-16T01:30:36+00:00</dc:date>
</item>
<item rdf:about="http://feeds.feedburner.com/~r/Jessenollercom/~3/291315892/">
	<title>Jesse Noller: Getting Processing into the stdlib</title>
	<link>http://feeds.feedburner.com/~r/Jessenollercom/~3/291315892/</link>
	<content:encoded>&lt;p&gt;I shot an email out to &lt;a href=&quot;http://mail.python.org/pipermail/python-dev/2008-May/079417.html&quot; target=&quot;_blank&quot;&gt;Python-Dev earlier this week&lt;/a&gt; asking for comments/questions regarding my push to get the &lt;a href=&quot;http://pyprocessing.berlios.de/&quot; target=&quot;_blank&quot;&gt;Processing&lt;/a&gt; into the standard library. There's been some decent discussion about target releases and other meta-issues around getting it in.&lt;/p&gt;
&lt;p&gt;Right now, it looks like I am going to try to target 2.7 and 3.1 - this makes sense for a few reasons.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;First, the PEP deadline was uh, a year ago for 2.6 and 3.0
&lt;li&gt;There's some cleanup on the module which needs to be done
&lt;li&gt;There might be some renaming requirements
&lt;li&gt;Need to talk to R. about a 1.0 release
&lt;li&gt;Need to chunk out some time to convert the tests to unit test format.
&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;That all being said - it doesn't look unfeasible to accomplish - and the response both on list and to me privately has been 95% +1 and 5% -.5 and -1 - the positive response really does make me feel that this is the right approach to take.&lt;/p&gt;
&lt;p&gt;I am currently working on revised benchmarks for processing vs. threads vs. pp vs. other right now - I'll be publishing those as soon as I complete them to both here and the mailing list discussion as a counterpoint to some of the open questions.&lt;/p&gt;
&lt;p&gt;I'd like to see if any of you, oh internet people, have anything else you'd like to have answered for this or anything you'd like to add to the discussion.&lt;/p&gt;
&lt;p&gt;Note, I am not trying to solve the &quot;distributed&quot; problem with the inclusion of this - the remote capabilities of the processing module are a side-benefit - not the primary benefit to trying to get this in. I am taking some of the distributed stuff mentally into account - but the goal is to scratch one specific itch - not to solve everyones problem with a single addition.&lt;/p&gt;
&lt;p&gt;Now all I have to get over is some bizarre errors with parallel python ramming into ulimit, uh, limits. Luckily I have everything from a dual core to an eight core to hack on!&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-16T01:10:56+00:00</dc:date>
</item>
<item rdf:about="http://nedbatchelder.com/blog/200805/water_laptop_ok.html">
	<title>Ned Batchelder's blog: Water + laptop = ok</title>
	<link>http://nedbatchelder.com/blog/200805/water_laptop_ok.html</link>
	<content:encoded>&lt;p&gt;This past weekend, &lt;a class=&quot;offsite&quot; href=&quot;http://susansenator.com&quot;&gt;someone&lt;/a&gt; accidentally
spilled about half a cup of water onto my laptop keyboard.  I actually shouted
&quot;Agghhh!&quot; like a cartoon character, and we all burst into action, grabbing paper
towels, mopping up water, moving books, etc.
&lt;/p&gt;&lt;p&gt;When I picked up the laptop, water came dribbling out the other side of it,
making a puddle on the table.  It was not the kind of thing you want to see involving
your laptop.  The screen started flashing and going into video conniptions, so
I flipped the computer over and removed both batteries.&lt;/p&gt;&lt;p&gt;Max searched Google for what to do, and found a page recommending opening
every part you could, and blow-drying on the coolest setting.  So I got a screwdriver
and started opening panels.  When I got the hard drive out after 20 seconds and
three screws, Max (a hardcore Apple devotee) exclaimed, &quot;Wow, you can get it out
just like that!?&quot;  I was a little pleased to have at least a small advantage go
to the PC.&lt;/p&gt;&lt;p&gt;Max also found the service manual for my model laptop, so we could get under
the keyboard and other hard-to-reach places.  The scary thing was that no matter
where I looked, I saw droplets of water, except on the RAM.&lt;/p&gt;&lt;p&gt;Over the course of two hours, we blow-dried it a few times, marveled at the
insides, and discovered new places to poke paper towels to get the last of the
moisture out.  Finally, I put it all back together, put in the batteries, and
booted it up.  With a sigh of relief, I saw that it was going to be fine.&lt;/p&gt;&lt;p&gt;Once it was all over, my computer was cleaner, and I learned something to add
to my &lt;a class=&quot;offsite&quot; href=&quot;http://snltranscripts.jt.org/90/90cmiddleaged.phtml&quot;&gt;Middle-Aged Man&lt;/a&gt;
repertoire of minor but useful knowledge.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-16T00:58:59+00:00</dc:date>
</item>
<item rdf:about="http://blog.pyamf.org/archives/flash-player-10-beta-released">
	<title>PyAMF Blog: Flash Player 10 Beta Released</title>
	<link>http://blog.pyamf.org/archives/flash-player-10-beta-released</link>
	<content:encoded>&lt;p&gt;&lt;img src=&quot;http://wwwimages.adobe.com/labs.adobe.com/cdn/wiki/images/a/a6/AstroLogo.png&quot; alt=&quot;Flash Player 10&quot; class=&quot;alignnone&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Today Adobe released the first beta version (10.0.1.218) of the upcoming Flash Player 10, code named &amp;#8220;Astro&amp;#8221;. You can &lt;a href=&quot;http://labs.adobe.com/downloads/flashplayer10.html&quot;&gt;download&lt;/a&gt; the new player for Mac OS X, Linux and Windows from &lt;a href=&quot;http://labs.adobe.com&quot;&gt;Adobe Labs&lt;/a&gt; (make sure you &lt;a href=&quot;http://labs.adobe.com/technologies/flashplayer10/releasenotes.html#install&quot;&gt;uninstall&lt;/a&gt; older players first). There are quite a few &lt;a href=&quot;http://labs.adobe.com/technologies/flashplayer10/releasenotes.html&quot;&gt;enhancements&lt;/a&gt; but unfortunately the documentation of the new APIs isn&amp;#8217;t available yet (will be released at a later date through Adobe&amp;#8217;s Livedocs system) so I haven&amp;#8217;t been able to play with them in Actionscript yet.&lt;/p&gt;
&lt;p&gt;Content created with the &lt;a href=&quot;http://opensource.adobe.com/wiki/display/flexsdk/Legal+Stuff&quot;&gt;open source&lt;/a&gt; &lt;a href=&quot;http://opensource.adobe.com/wiki/display/flexsdk/&quot;&gt;Flex 3 SDK&lt;/a&gt; is designed to work with Flash Player 9 (9.0.115.0 and higher) and will continue to function as expected with Flash Player 10. To build Flex content that takes advantage of the new features, you need a &lt;a href=&quot;http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta+with+Flex+SDK+3.0.x&quot;&gt;Flex SDK 3.0.x nightly build&lt;/a&gt; which can target the Flash Player 10 Beta.&lt;/p&gt;
&lt;p&gt;Some of the highlights in the new Player:&lt;/p&gt;
&lt;h3&gt;Speex Audio Codec&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://speex.org/images/logos/parrot_speex_org-3.png&quot; alt=&quot;Speex&quot; class=&quot;alignleft&quot; /&gt;&lt;br /&gt;
The &lt;a href=&quot;http://www.xiph.org/licenses/bsd/speex/&quot;&gt;open source&lt;/a&gt; &lt;a href=&quot;http://www.speex.org/&quot;&gt;Speex&lt;/a&gt; voice codec offers an alternative to the older, proprietary &lt;a href=&quot;http://en.wikipedia.org/wiki/Nellymoser_Asao_Codec_in_Flash&quot;&gt;Nellymoser&lt;/a&gt; for audio that delivers the lowest-latency audio experience possible. Flash developers have requested an open source voice codec since the day Macromedia added Nellymoser to Flash Player 6, and it&amp;#8217;s great to finally see it happen at Adobe. Nellymoser audio can be decoded by &lt;a href=&quot;http://ffmpeg.mplayerhq.hu/&quot;&gt;FFmpeg&lt;/a&gt; but unfortunately it looks like Speex is one of the &lt;a href=&quot;http://wiki.multimedia.cx/index.php?title=Category:Formats_missing_in_FFmpeg&quot; title=&quot;Missing formats page on FFmpeg wiki&quot;&gt;missing formats&lt;/a&gt; in the FFmpeg audio codecs &lt;a href=&quot;http://ffmpeg.mplayerhq.hu/general.html#TOC7&quot;&gt;list&lt;/a&gt; at the time of this writing. For Python there are the &lt;a href=&quot;http://www.freenet.org.nz/python/pySpeex/&quot; title=&quot;PySpeex homepage&quot;&gt;PySpeex&lt;/a&gt; bindings that allow you to create an audio stream object and encode and decode speech audio data. Other software that uses Speex are &lt;a href=&quot;http://www.asteriskpbx.org&quot;&gt;Asterisk&lt;/a&gt;, the open source PBX, the headsets in Microsoft&amp;#8217;s &lt;a href=&quot;http://en.wikipedia.org/wiki/Xbox_Live&quot; title=&quot;Xbox Live on Wikipedia&quot;&gt;Xbox Live&lt;/a&gt; and the in-game VOIP function of &lt;a href=&quot;http://en.wikipedia.org/wiki/Half-Life_1&quot;&gt;Half-Life 1&lt;/a&gt;. Java developers might want to take a look at &lt;a href=&quot;http://jspeex.sourceforge.net/&quot;&gt;JSpeex&lt;/a&gt;, a port of Speex for the Java platform.&lt;/p&gt;
&lt;h3&gt;Real Time Media Flow Protocol (RTMFP)&lt;/h3&gt;
&lt;p&gt;RTMFP provides a UDP-based secure network transport alternative to RTMP-over-TCP. UDP (User Datagram Protocol) is an efficient and standardized Internet protocol for delivering media assets because of its support for lossy delivery, improving performance of real time communication. RTMFP is always encrypted which helps protect media delivery. With Speex it will be possible to take advantage of the new RTMFP partial-reliability feature to reduce network latency and it also works over the Flash Player&amp;#8217;s Real Time Messaging Protocol (&lt;a href=&quot;http://rtmpy.org/wiki/RTMP&quot; title=&quot;RTMP on the RTMPy wiki&quot;&gt;RTMP&lt;/a&gt;). &lt;a href=&quot;http://pyamf.org&quot;&gt;PyAMF&lt;/a&gt; was created for the &lt;a href=&quot;http://en.wikipedia.org/wiki/Action_Message_Format&quot; title=&quot;Action Message Format&quot;&gt;AMF&lt;/a&gt; support in the RTMP protocol, which we&amp;#8217;re trying to build for Python with &lt;a href=&quot;http://twistedmatrix.com&quot; title=&quot;Twisted homepage&quot;&gt;Twisted&lt;/a&gt; in the &lt;a href=&quot;http://rtmpy.org&quot; title=&quot;RTMPy homepage&quot;&gt;RTMPy&lt;/a&gt; project. Adobe basically baked P2P into the Flash Player and creating applications like &lt;a href=&quot;http://www.limewire.com/&quot;&gt;LimeWire&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/VoIP&quot; title=&quot;Voice over Internet Protocol on Wikipedia&quot;&gt;VOIP&lt;/a&gt; applications like Skype should be trivial.&lt;/p&gt;
&lt;h3&gt;Dynamic Sound Generation&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.pyamf.org/wp-content/uploads/2008/05/soundgen.jpg&quot; alt=&quot;Dynamic Sound Generation&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In Flash Player 10 you will be able to dynamically create audio. The API is designed to provide a low level abstraction of the native sound driver, providing the most flexible platform to build your music applications on. &lt;a href=&quot;http://www.kaourantin.net&quot;&gt;Tinic Uro&lt;/a&gt;, one of the Flash Player engineers at Adobe, &lt;a href=&quot;http://www.kaourantin.net/2008/05/adobe-is-making-some-noise-part-2.html&quot;&gt;writes&lt;/a&gt; that &amp;#8220;the API has one big compromise which I can&amp;#8217;t address without large infrastructural changes and that is latency. Latency is horrible to the point where some applications will simply not be possible. To improve latency will require profound changes in the Flash Player which I will tackle for the next major revision. But for now this simple API will likely change the way you think about sound in the Flash Player&amp;#8221;. He also mentions that extracting audio data from a microphone and extracting audio from a &lt;a href=&quot;http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/NetStream.html&quot;&gt;NetStream&lt;/a&gt; object is not possible for this release, but they&amp;#8217;re aware that it&amp;#8217;s a highly desirable feature. &lt;a href=&quot;http://www.bit-101.com&quot;&gt;Keith Peters&lt;/a&gt; created a &lt;a href=&quot;http://www.bit-101.com/astro/sound01.html&quot;&gt;sample application&lt;/a&gt; that demonstrates the new API.&lt;/p&gt;
&lt;h3&gt;File Reference runtime access&lt;/h3&gt;
&lt;p&gt;Macromedia added the &lt;a href=&quot;http://livedocs.adobe.com/flex/3/langref/flash/net/FileReference.html&quot;&gt;FileReference&lt;/a&gt; class in Flash Player 8 to give developers the ability to upload and download files using a native Flash Player API. With Flash Player 10 it&amp;#8217;s will be possible to save those files back to the local hard disk as well. Files can be accessed as a &lt;a href=&quot;http://livedocs.adobe.com/flex/3/langref/flash/utils/ByteArray.html&quot;&gt;ByteArray&lt;/a&gt; or text using a API in ActionScript without round-tripping to the server. You no longer need to know a server language or have access to a server to load or save files at runtime.&lt;/p&gt;
&lt;p&gt;Check out the &lt;a href=&quot;http://labs.adobe.com/technologies/flashplayer10/releasenotes.html#features&quot;&gt;Adobe Labs wiki&lt;/a&gt; for the complete feature list and release notes. &lt;/p&gt;</content:encoded>
	<dc:date>2008-05-15T18:52:54+00:00</dc:date>
</item>
<item rdf:about="http://arthurkoziel.com/2008/05/15/secure-authentication-cookies-with-django/">
	<title>Arthur Koziel: Secure authentication cookies with Django</title>
	<link>http://arthurkoziel.com/2008/05/15/secure-authentication-cookies-with-django/</link>
	<content:encoded>&lt;p&gt;Some time ago &lt;a href=&quot;http://www.cse.msu.edu/~alexliu/home.html&quot;&gt;Alex X. Liu&lt;/a&gt; published a research paper on &lt;a href=&quot;http://www.cse.msu.edu/~alexliu/publications/Cookie/cookie.pdf&quot;&gt;secure cookie protocols&lt;/a&gt;. I tried to implement the protocol in Python, but sadly had to remove some fields from the protocol. You can &lt;a href=&quot;http://arthurkoziel.com/wp-content/uploads/2008/05/authcookie.zip&quot;&gt;download it here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Changes&lt;/h2&gt;
&lt;p&gt;This is the original protocol:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;
&lt;pre&gt;user name|expiration time|(data)k|HMAC(user name|expiration time|data|session key, k)
where k=HMAC(user name|expiration time, sk)
and sk=secret server key&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;I removed &lt;em&gt;(data)k&lt;/em&gt; and &lt;em&gt;session key&lt;/em&gt;, which changes the protocol to:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;
&lt;pre&gt;user name|expiration time|HMAC(user name|expiration time, k)
where k=HMAC(user name|expiration time, sk)
and sk=secret server key&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The data field was removed because I couldn&amp;#8217;t find a good two way encryption library for Python, and the session key was removed due to the lack of SSL.&lt;/p&gt;
&lt;p&gt;The new structure is similar to the one used for the authentication in the backend of the recently released &lt;a href=&quot;http://trac.wordpress.org/ticket/5367&quot;&gt;Wordpress 2.5&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;p&gt;To create a cookie in Django, use the &lt;em&gt;set_cookie&lt;/em&gt; method of the response object:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;
&lt;pre&gt;&lt;span class=&quot;n&quot;&gt;cookie&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;myutils&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;generate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#8216;arthur&amp;#8217;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;1210708139&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;response&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;render_to_response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#8216;index.html&amp;#8217;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_cookie&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#8216;mycookie&amp;#8217;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cookie&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;response&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;</content:encoded>
	<dc:date>2008-05-15T16:03:52+00:00</dc:date>
</item>
<item rdf:about="http://pyre.third-bit.com/blog/archives/1558.html">
	<title>Greg Wilson: Student Blogs</title>
	<link>http://pyre.third-bit.com/blog/archives/1558.html</link>
	<content:encoded>&lt;p&gt;Some of our &lt;a href=&quot;http://pyre.third-bit.com/blog/archives/1551.html&quot;&gt;summer interns&lt;/a&gt; have started blogging about their projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://dojotoolkit.org/blog/jbalogh&quot;&gt;Dojo Form Editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drprojectirc.wordpress.com/&quot;&gt;DrProject IRC Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://nickjamil.livejournal.com/&quot;&gt;DrProject TBD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sourceoffailure.wordpress.com/&quot;&gt;DrProject Testing &amp;amp; Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pipe3f.wordpress.com/&quot;&gt;Flare Dataflow Editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://iwa-wong.livejournal.com/&quot;&gt;Hackystat Data Visualization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://mbasset.wordpress.com/&quot;&gt;Hackystat and Visual Studio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://openafsmmc.wordpress.com/&quot;&gt;OpenAFS Console&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://os161viz.blogspot.com/&quot;&gt;OS161 Visualization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://slashid.wordpress.com/&quot;&gt;SlashID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://summerwebcat.wordpress.com/&quot;&gt;Web-CAT&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;#8217;ll add more as I get them.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-15T15:20:21+00:00</dc:date>
</item>
<item rdf:about="">
	<title>IPython0 blog: Embedding IPython in GUI apps is trivial</title>
	<link></link>
	<content:encoded>Here is a little known secret: IPython can be trivially embedded to GUI apps with event loops. This is verified to work with Tk and Qt4, at least.
What you need to do is this:
def embed_ipython(w):
    from IPython.Shell import IPShellEmbed
    ipshell = IPShellEmbed(user_ns = dict(w = w))
    [...]</content:encoded>
	<dc:date>2008-05-15T14:50:34+00:00</dc:date>
</item>
<item rdf:about="http://pyre.third-bit.com/blog/archives/1557.html">
	<title>Greg Wilson: SE-CSE Workshop</title>
	<link>http://pyre.third-bit.com/blog/archives/1557.html</link>
	<content:encoded>&lt;p&gt;One of the downsides of being in Texas is that I couldn&amp;#8217;t attend the &lt;a href=&quot;http://www.cse.msstate.edu/~SECSE08/index.htm&quot;&gt;First International Workshop on Software Engineering for Computational Science and Engineering&lt;/a&gt;, which was held at &lt;a href=&quot;http://icse08.upb.de/&quot;&gt;ICSE&amp;#8217;08&lt;/a&gt; in Leipzig this week.  Papers are &lt;a href=&quot;http://www.cse.msstate.edu/~SECSE08/schedule.htm&quot;&gt;here&lt;/a&gt; (I&amp;#8217;ll be reading them on the flight home); they look interesting, but the biggest thing for me is the change in the workshop&amp;#8217;s name&amp;#8212;it used to be &amp;#8220;Software Engineering for High-Performance Computing Applications&amp;#8221; (&lt;a href=&quot;http://csdl.ics.hawaii.edu/se-hpcs2004/&quot;&gt;2004&lt;/a&gt;, &lt;a href=&quot;http://csdl.ics.hawaii.edu/se-hpcs/Welcome.html&quot;&gt;2005&lt;/a&gt;, &lt;a href=&quot;http://www.ctwatch.org/quarterly/archives/november-2006-a/&quot;&gt;2006&lt;/a&gt;, &lt;a href=&quot;http://www.cse.msstate.edu/~SEHPC07/&quot;&gt;2007&lt;/a&gt;), and I&amp;#8217;m hoping the change of name reflects a genuine broadening of focus.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-15T14:40:17+00:00</dc:date>
</item>
<item rdf:about="http://sayspy.blogspot.com/2008/05/what-would-it-take-for-python-to-have.html">
	<title>Brett Cannon: What would it take for Python to have a regular release schedule?</title>
	<link>http://sayspy.blogspot.com/2008/05/what-would-it-take-for-python-to-have.html</link>
	<content:encoded>Mark Shuttleworth has been writing about &lt;a href=&quot;http://www.markshuttleworth.com/archives/150&quot;&gt;release cycles in open source&lt;/a&gt; as of late on his blog. An interesting thing he is arguing for is some level of synchronization between related upstream and downstream projects. For those of you who don't know what those terms mean, a project is upstream to you if you rely upon it (e.g., Python is upstream to Ubuntu because it relies on Python for its infrastructure, on top of including it in its distribution).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What Mark is advocating is a rough lock-step release cycle amongst upstream projects that are core, upstream applications, and Linux distributions. The idea is that Python, GCC, etc. all release in the same month their next versions, applications follow a month later, and then finally Linux distributions a month after that. The idea is that the Linux distros would then all ship with the same version of their upstream projects (e.g., everyone would ship with Python 2.5.x in 2008, 2.6.x in 2009, etc.).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have to admit, from a Python developer's perspective, that does sound nice. Because the Linux distributions and their users tend to be a large chunk of the Python users out there, we see bug reports on the various versions of Python that each major distro is shipping. That can be annoying as there is a chunk of time where we can still get reports a whole version behind of what is stable. If a nice chunk of our users moved over to the same version each year the bug reports would be against a consistent version and thus hopefully lead less extraneous bugs being reported about older versions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now I don't think a one month spacing is enough for everyone to do thorough testing. I suspect spacing it out over six months instead of three might work out better (but since Python has hardly any external dependencies this is just from outside observation and not experience).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Locking down releases might also help us schedule sprints. If we said we would do major releases every September, and minor releases September and March then everyone would know when to submit language proposals, what they must hit for something to make it in, when python-dev will most likely need extra help to finish that final push to beta, etc. We would then know when betas would hit, and thus have sprints three months before so that there is enough time for crazy ideas that come up at the sprints to be coded, implemented, vetted, and tested before the beta hits.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are a couple of questions that need to be answered if this were to happen. One is whether python-dev has the discipline to pull this off? I say yes as long as we have a release manager that is willing to take the hard line on reverting patches that don't make the time cut-off. So far that has worked this year with our monthly releases.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another question is whether we are structured for this kind of thing? Releases take a couple of hours from several people. Now having a regular schedule would suggest that it would be easier for these people as they would know when to expect the big push to hit.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lastly, do we have the infrastructure and tools? Merging between the trunk and a branch is a pain. But if we really start to hold up features because they don't reach a release point means people really should start all work in branches and expect to miss a release instead of expecting to actually make their target and only shift to a branch if they miss. If this isn't done code goes stale thanks to the length of time it takes for Python to go from beta to a final release (this is why I shifted my importlib work to bzr since I expected I would miss 3.0).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If the final releases for 2.6 and 3.0 go well I might try to push for a regular release schedule for Python.&lt;/div&gt;</content:encoded>
	<dc:date>2008-05-15T14:45:08+00:00</dc:date>
</item>
<item rdf:about="http://pyre.third-bit.com/blog/archives/1556.html">
	<title>Greg Wilson: Another DrProject Design Question</title>
	<link>http://pyre.third-bit.com/blog/archives/1556.html</link>
	<content:encoded>&lt;p&gt;We&amp;#8217;re pleased to welcome &lt;a href=&quot;http://www.lizblankenship.com/&quot;&gt;Liz Blankenship&lt;/a&gt;, a &lt;a href=&quot;http://openusability.org/&quot;&gt;Season of Usability&lt;/a&gt; intern, to the &lt;a href=&quot;http://www.drproject.org&quot;&gt;DrProject&lt;/a&gt; team.  Liz, a grad student in HCI, is going to help us redesign DrProject&amp;#8217;s admin interface.  Along the way, I&amp;#8217;m hoping she can give us some advice on a few other things as well, chief among them the notion of the &amp;#8220;All&amp;#8221; project.&lt;/p&gt;
&lt;p&gt;The background is this: &lt;a href=&quot;http://trac.edgewall.org&quot;&gt;Trac&lt;/a&gt; (DrProject&amp;#8217;s ancestor) only allows one project per installation.  We weren&amp;#8217;t going to install it forty times to manage a class of eighty students working in pairs, so one of the first things we did back in 2005 was extend it to support multiple projects per portal.  We then faced two questions, which we decided were related:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What project does a newcomer to the portal see by default (i.e., what&amp;#8217;s &amp;#8220;home&amp;#8221;)?&lt;/li&gt;
&lt;li&gt;How do reach everybody who has an account with a particular portal (e.g., to nofify them of impending downtime)?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Our solution was to say that every portal has an undeletable project called &amp;#8220;All&amp;#8221;.  Every user of that portal is automatically a member of that project, so mailing &amp;#8220;all@wherever&amp;#8221; will reach everyone, and that project&amp;#8217;s wiki acts as the portal&amp;#8217;s home page.  As a bonus, this also provides a logical place for people to file tech support tickets: if you need your password reset, for example, you could file a ticket against &amp;#8220;All&amp;#8221;.&lt;/p&gt;
&lt;p&gt;It was nice in theory, but it hasn&amp;#8217;t worked out that well in practice:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Lots of people find it confusing.  This might be the project name (some people think that registering for &amp;#8220;All&amp;#8221; means asking to be put in all of the projects managed by a portal), but I don&amp;#8217;t think that&amp;#8217;s the whole story.&lt;/li&gt;
&lt;li&gt;There turned out to be lots of reasons &lt;em&gt;not&lt;/em&gt; to automatically include everyone in the &amp;#8220;All&amp;#8221; project.  For example, external clients for undergraduate projects really don&amp;#8217;t care about administrative matters; they only want email forwarded from their specific project, so we had to allow people to opt out and/or turn off email forwarding.&lt;/li&gt;
&lt;li&gt;Almost nobody figures guesses &amp;#8220;ticket All for tech support&amp;#8221;.  Instead, many users file tickets against &amp;#8220;All&amp;#8221; that should go against other, more specific, projects.  Since we don&amp;#8217;t have a way to move tickets from one project to another, this causes recurring irritation.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So what should we do?  Options include:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Change the name of &amp;#8220;All&amp;#8221; to something like &amp;#8220;home&amp;#8221;.  This would be (nearly) trivial, but it seems unlikely that a simple renaming will actually solve our problems.&lt;/li&gt;
&lt;li&gt;Modify the URLs so that the project is a parameter, rather than part of the path; if a project isn&amp;#8217;t specified, take the user to a default project.  This would make the URLs harder to read aloud (a test I think any good web application should pass), but it would be more reliable than using URLs that might or might not contain a project name.&lt;/li&gt;
&lt;li&gt;Get rid of &amp;#8220;All&amp;#8221; and:
&lt;ol&gt;
&lt;li&gt;require admins to mark one project as the landing pad, or&lt;/li&gt;
&lt;li&gt;give people a 404 if they don&amp;#8217;t specify a project when trying to connect.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a special kind of project for the landing pad with:
&lt;ol&gt;
&lt;li&gt;a wiki that can only be edited by the admin,&lt;/li&gt;
&lt;li&gt;that automatically says something informative about all the public projects,&lt;/li&gt;
&lt;li&gt;and whose mailing list includes every user, but can only be sent to by the admin.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As you can guess, #4 is my current favorite.  It could even be implemented without significant code changes, by defining a new role and giving every user who isn&amp;#8217;t an admin that role in the default project.  There&amp;#8217;d still be the problem of its name, though.&lt;/p&gt;
&lt;p&gt;So, what do &lt;em&gt;you&lt;/em&gt; think we should do?  And why?&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-15T13:42:52+00:00</dc:date>
</item>
<item rdf:about="http://www.peterbe.com/plog/split_search">
	<title>Peter Bengtsson: split_search() - A Python functional for advanced search applications</title>
	<link>http://www.peterbe.com/plog/split_search</link>
	<content:encoded>&lt;p&gt;Inspired by Google's way of working I today put together a little script in Python for splitting a search. The idea is that you can search by entering certain keywords followed by a colon like this:
&lt;br /&gt;&lt;div class=&quot;my_code_default&quot;&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;Free&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;Text&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;p_36&quot;&gt;Peter&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;age&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;:&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_37&quot;&gt;28&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;And this will be converted into two parts:
&lt;br /&gt;&lt;div class=&quot;my_code_default&quot;&gt;&amp;nbsp;&lt;span class=&quot;p_30&quot;&gt;'Free&amp;nbsp;Text'&lt;/span&gt;
&lt;br /&gt;&amp;nbsp;&lt;span class=&quot;p_38&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;p_30&quot;&gt;'name'&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;:&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_30&quot;&gt;'Peter'&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;,&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_30&quot;&gt;'age'&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;p_40&quot;&gt;'28}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;You can configure which keywords should be recognized and to make things simple, you can basically set this to be the columns you have to do advanced search on in your application. For example (&lt;code&gt;from_date&lt;/code&gt;,&lt;code&gt;to_date&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;Feel free to download and use it as much as you like. You might not agree completely with it's purpose and design so you're allowed to change it as you please. &lt;/p&gt;
&lt;p&gt;Here's how to use it:
&lt;br /&gt;&lt;div class=&quot;my_code_default&quot;&gt;&amp;nbsp;$&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;wget&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;://&lt;/span&gt;&lt;span class=&quot;p_36&quot;&gt;www&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;p_36&quot;&gt;peterbe&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;p_36&quot;&gt;com&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;p_36&quot;&gt;plog&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;p_36&quot;&gt;split_search&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;p_36&quot;&gt;split_search&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;p_36&quot;&gt;py&lt;/span&gt;
&lt;br /&gt;&amp;nbsp;$&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;python&lt;/span&gt;
&lt;br /&gt;&amp;nbsp;&lt;span class=&quot;p_38&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_43&quot;&gt;from&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;split_search&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_43&quot;&gt;import&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;split_search&lt;/span&gt;
&lt;br /&gt;&amp;nbsp;&lt;span class=&quot;p_38&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;free_text&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;,&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;parameters&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_38&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;split_search&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;p_30&quot;&gt;'Foo&amp;nbsp;key1:bar'&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;,&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_38&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;p_30&quot;&gt;'key1'&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;,))&lt;/span&gt;
&lt;br /&gt;&amp;nbsp;&lt;span class=&quot;p_38&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;free_text&lt;/span&gt;
&lt;br /&gt;&amp;nbsp;&lt;span class=&quot;p_30&quot;&gt;'Foo'&lt;/span&gt;
&lt;br /&gt;&amp;nbsp;&lt;span class=&quot;p_38&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_36&quot;&gt;parameters&lt;/span&gt;
&lt;br /&gt;&amp;nbsp;&lt;span class=&quot;p_38&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;p_30&quot;&gt;'key1'&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;:&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;p_30&quot;&gt;'bar'&lt;/span&gt;&lt;span class=&quot;p_38&quot;&gt;}&lt;/span&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-15T13:00:00+00:00</dc:date>
</item>
<item rdf:about="http://ironpython-urls.blogspot.com/2008/05/ironpython-in-action-new-chapters.html">
	<title>IronPython-URLs: IronPython in Action: New chapters, website and sourcecode</title>
	<link>http://ironpython-urls.blogspot.com/2008/05/ironpython-in-action-new-chapters.html</link>
	<content:encoded>Three new chapters (on WPF, ASP.NET and system administration) are now available in the &lt;a href=&quot;http://www.manning.com/foord&quot;&gt;IronPython in Action Early Access Program&lt;/a&gt;. There is now a new &lt;a href=&quot;http://www.ironpythoninaction.com/&quot;&gt;IronPython in Action website&lt;/a&gt;, where the sourcecode to accompany the book (well - the first eleven chapters so far) can be downloaded:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.voidspace.org.uk/python/weblog/arch_d7_2008_05_03.shtml#e975&quot;&gt;ironpythoninaction.com: New Chapters and Sourcecode Available&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded>
	<dc:date>2008-05-15T12:43:00+00:00</dc:date>
</item>
<item rdf:about="http://ironpython-urls.blogspot.com/2008/05/ironpython-classes-within-separate.html">
	<title>IronPython-URLs: IronPython - Classes within separate files</title>
	<link>http://ironpython-urls.blogspot.com/2008/05/ironpython-classes-within-separate.html</link>
	<content:encoded>Ben Hall comes to IronPython from 'traditional' .NET languages like C# and VB.NET, which have a different way of structuring applications into namespaces. In this blog entry he explores how Python uses files to arrange classes into modules:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://blog.benhall.me.uk/2008/05/ironpython-classes-within-separate.html&quot;&gt;IronPython - Classes within separate files&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded>
	<dc:date>2008-05-15T12:41:00+00:00</dc:date>
</item>
<item rdf:about="http://ironpython-urls.blogspot.com/2008/05/ironpython-for-printing-from-second.html">
	<title>IronPython-URLs: IronPython for Printing from Second Life</title>
	<link>http://ironpython-urls.blogspot.com/2008/05/ironpython-for-printing-from-second.html</link>
	<content:encoded>Peter Quirk muses about whether he can solve the problem of not being able to print from within the Second Life environment by using &lt;a href=&quot;http://www.realxtend.org/&quot;&gt;realXtend&lt;/a&gt;, the scripting host for IronPython:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://peterquirk.wordpress.com/2008/05/14/pursuing-a-solution-for-printing-a-notecard-in-realxtend/&quot;&gt;Pursuing a solution for printing a notecard in realXtend&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded>
	<dc:date>2008-05-15T12:38:00+00:00</dc:date>
</item>

</rdf:RDF>
