<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet Python/SoC</title>
	<link rel="self" href="http://wiki.python.org/moin/rss20.xml"/>
	<link href="http://wiki.python.org/moin/SummerOfCode"/>
	<id>http://wiki.python.org/moin/rss20.xml</id>
	<updated>2008-08-29T01:46:44+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry>
		<title type="html">GSOC OverView</title>
		<link href="http://blog.akalias.net/2008/08/gsoc-overview.html"/>
		<id>tag:blogger.com,1999:blog-7254386064439146371.post-2158421290595866734</id>
		<updated>2008-08-28T19:46:04+00:00</updated>
		<content type="html">My GSOC project was all about testing for PyGame;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;    &lt;li&gt; I wrote lots of tests; Almost every module in PyGame now has at least one test &lt;/li&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;li&gt; Test modules can now be isolated in subprocesses; one segfault no longer brings down the whole test suite &lt;/li&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;li&gt; Can now test for speed regressions; important for real time software such as games &lt;/li&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;li&gt; PyGame Automated Build Page extended&lt;br /&gt;        &lt;ul&gt;&lt;br /&gt;            &lt;li&gt; Shows / Collects more info &lt;/li&gt;&lt;br /&gt;            &lt;li&gt; Runs tests in subprocesses &lt;/li&gt;&lt;br /&gt;        &lt;/ul&gt;&lt;br /&gt;    &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;    &lt;li&gt; Test Stubbing Utility: A Testing &quot;Todo List&quot; &lt;/li&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;li&gt; Optional Interactive Tests / Test Tagging &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;For writing the tests I wrote a small utility that inspects the PyGame package and finds all the untested callables (functions, properties) and creates test stubs, including documentation for each so you don't have to leave the editor. The stubber knows which functions have already been tested by using a naming scheme for all of the tests. Essentially, &quot;test_$callable__$comment&quot;, namespaced by having TestCase[s] per Class and a test module per module.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In this way I could create stubs for each module, essentially a TODO list, and cycle through all the modules looking for tests that were easy to write. The functions in PyGame are many and greatly varied, each requiring somewhat specialised knowledge to test. I wasn't able to write tests for all them but hopefully the test stubbing utility will help enable some testing sprints. I intend to develop a testing website where people can submit bugs/tests in the form of a unittest.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;PyGame has a somewhat unique set of requirements compared to most python libraries in that most of the framework is actually written in C. C code when it goes awry can do some very strange things. We had a test runner running all of the tests in one single process so if one failed hard it would bring down the whole suite. This can be a bit of a pain so I developed a test runner that isolates each module in a subprocess.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Some of the tests in PyGame have requirements that make them unsuitable for running as part of the main test suite. For example some require a CDRom, a JoyStick, take way too long or need interaction with a human. With the test runner script I extended unittest with the ability to exclude certain tests by tags. The tags can be module, class or individual test level and are inheritable/ over-ridable.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Another extension to the test runner was the ability to randomize the run ordering of tests, so along with the test results the seed is printed out. If there are failures you can seed the randomizer with the failure inducing seed. We also wanted to be able to record the timings of each individual test so we could make comparisons between revisions / platforms. I again extended the test runner with that ability.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I worked with Brian Fisher to extend the PyGame automated build page to record the test results in a ZODB and utilize the new test runner to run tests in subprocesses. We will be able to use this information for detecting speed regressions amongst other things.&lt;/p&gt;</content>
		<author>
			<name>akalias</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.akalias.net/</uri>
		</author>
		<source>
			<title type="html">akalias</title>
			<link rel="self" href="http://blog.akalias.net/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-7254386064439146371</id>
			<updated>2008-08-29T01:46:31+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">unni</title>
		<link href="http://ofpenguinsandpeanuts.wordpress.com/2008/08/28/the-hackerdom-curtain-raiser/"/>
		<id>http://ofpenguinsandpeanuts.wordpress.com/?p=107</id>
		<updated>2008-08-28T03:42:40+00:00</updated>
		<content type="html">&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;The official announcement of Hackerdom is scheduled for the 29th of August at Trichur.&lt;/p&gt;
&lt;p&gt;Everyones Invited &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;For details check: &lt;a href=&quot;http://hackerdom.in&quot;&gt;http://hackerdom.in&lt;/a&gt;&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/ofpenguinsandpeanuts.wordpress.com/107/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/ofpenguinsandpeanuts.wordpress.com/107/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ofpenguinsandpeanuts.wordpress.com/107/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ofpenguinsandpeanuts.wordpress.com/107/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ofpenguinsandpeanuts.wordpress.com/107/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ofpenguinsandpeanuts.wordpress.com/107/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ofpenguinsandpeanuts.wordpress.com/107/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ofpenguinsandpeanuts.wordpress.com/107/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ofpenguinsandpeanuts.wordpress.com/107/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ofpenguinsandpeanuts.wordpress.com/107/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ofpenguinsandpeanuts.wordpress.com/107/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ofpenguinsandpeanuts.wordpress.com/107/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ofpenguinsandpeanuts.wordpress.com&amp;amp;blog=3141338&amp;amp;post=107&amp;amp;subd=ofpenguinsandpeanuts&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Unni</name>
			<uri>http://ofpenguinsandpeanuts.wordpress.com</uri>
		</author>
		<source>
			<title type="html">And the Geek Shall Inherit the Earth</title>
			<subtitle type="html">doodle out</subtitle>
			<link rel="self" href="http://ofpenguinsandpeanuts.wordpress.com/feed/"/>
			<id>http://ofpenguinsandpeanuts.wordpress.com/feed/</id>
			<updated>2008-08-28T07:56:17+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Troubleshooting networking</title>
		<link href="http://qzdrproject.wordpress.com/2008/08/27/troubleshooting-networking/"/>
		<id>http://qzdrproject.wordpress.com/?p=89</id>
		<updated>2008-08-27T19:06:32+00:00</updated>
		<content type="html">&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;abbr title=&quot;also known as&quot;&gt;a.k.a.&lt;/abbr&gt; I F***ING HATE COMPUTERS WHEN THEY DON&amp;#8217;T WORK RIGHT AND I CAN&amp;#8217;T FIX THEM&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Up until now, I&amp;#8217;ve almost always been running the DrProject server and the web browser to drive it on the same machine. For reason I will not go into, I needed to run DrProject on an Ubuntu Linux installation on one computer and run the web browser on Windows on another computer. These two computers were on the same &lt;abbr title=&quot;local-area network&quot;&gt;LAN&lt;/abbr&gt;. Let&amp;#8217;s call these computers Lin and Win, respectively. Please don&amp;#8217;t mind me personifying these machines.&lt;/p&gt;
&lt;p&gt;When Firefox on Lin talked to the DrProject being hosted locally, everything worked fine. When Firefox on Win talked to the DrProject server on Lin, each page request took an excruciatingly long time to complete &amp;#8212; something in the order of tens of seconds, rather than a second or two.&lt;/p&gt;
&lt;p&gt;Coming up is a chronicle of following numerous false leads, running up and down the stairs, and diving into the depths of computing to debug problems at a low level. It unfolded over the course of about 3 hours, and is told in approximately chronological order.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sanity checks&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;First, I tried accessing DrProject using Internet Explorer (on Win) to made sure that it wasn&amp;#8217;t Firefox&amp;#8217;s fault. Indeed, it wasn&amp;#8217;t. Second, I tried accessing the server using a different Windows computer. Still no luck. I even tried using telnet&lt;sup&gt;0&lt;/sup&gt; to access the &lt;abbr title=&quot;Hypertext Transfer Protocol&quot;&gt;HTTP&lt;/abbr&gt; server, where I still received a much-delayed response.&lt;/p&gt;
&lt;p&gt;The puzzling thing was that Lin had no delays in accessing Internet resources, nor &lt;abbr title=&quot;local-area network&quot;&gt;LAN&lt;/abbr&gt; resources (e.g. &lt;abbr title=&quot;Server Message Block&quot;&gt;SMB&lt;/abbr&gt; into the Windows boxes).&lt;/p&gt;
&lt;p&gt;In retrospect, if Windows was the problem, then I wouldn&amp;#8217;t have caught it because I didn&amp;#8217;t have another Linux computer on hand.&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Networking&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://qzdrproject.files.wordpress.com/2008/08/smartlink-hub.jpg&quot;&gt;&lt;img class=&quot;alignright size-thumbnail wp-image-108&quot; src=&quot;http://qzdrproject.files.wordpress.com/2008/08/smartlink-hub.jpg?w=110&amp;amp;h=96&quot; alt=&quot;&quot; width=&quot;110&quot; height=&quot;96&quot; /&gt;&lt;/a&gt;Maybe the network was to blame. All the computers in question were hooked up to a home router (&amp;#8221;residential gateway&amp;#8221;), and maybe it was causing problems. So I hooked up Lin and Win directly (on a single cable), and set up a static &lt;abbr title=&quot;Internet Protocol&quot;&gt;IP&lt;/abbr&gt; configuration for each. Even after back-and-forth tweaking and checking, this didn&amp;#8217;t work. So I produced my old 10 &lt;abbr title=&quot;megabit per second&quot;&gt;Mb/s&lt;/abbr&gt; Ethernet hub, and connected these two computers to the hub. After more &lt;abbr title=&quot;Internet Protocol&quot;&gt;IP&lt;/abbr&gt; configuration tweaking, I finally got these computers to talk to each other again.&lt;/p&gt;
&lt;p&gt;Mind you, all of this was complicated by the fact that Lin and Win were located one floor apart (yay for running up and down the stairs). Also, Lin had 2 network interfaces&lt;sup&gt;2&lt;/sup&gt;, and it was difficult to tell which one was mapped to device eth1 and which was mapped to eth2. I did try enabling and disabling each of these two interfaces.&lt;/p&gt;
&lt;p&gt;&amp;#8230; And there was no improvement in the Win-browser-talking-to-Lin-server lag.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enter Wireshark (formerly Ethereal)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://qzdrproject.files.wordpress.com/2008/08/wireshark.png&quot;&gt;&lt;img class=&quot;alignright size-thumbnail wp-image-95&quot; src=&quot;http://qzdrproject.files.wordpress.com/2008/08/wireshark.png?w=127&amp;amp;h=96&quot; alt=&quot;&quot; width=&quot;127&quot; height=&quot;96&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;By now, I had dragged my friend Roy into the problem, as he is a Linux expert and a competent programmer. Other than mildly disagreeing about my choice of screen capture software, he suggested right off the bat that I analyze the network traffic with Wireshark, a packet sniffer. Since I used the older Ethereal back on Windows, I promptly set off to install Wireshark through the Debian package system without hesitation.&lt;/p&gt;
&lt;p&gt;In the meantime, I tested using Win to connect a server socket on Lin to see if that was a problem. Using telnet&lt;sup&gt;3&lt;/sup&gt; on Win and a netcat listener&lt;sup&gt;4&lt;/sup&gt; on Lin, I saw no delay at all. That was weird. More and more, it looked like &amp;#8220;tracd&amp;#8221;, the built-in &lt;abbr title=&quot;Hypertext Transfer Protocol&quot;&gt;HTTP&lt;/abbr&gt; server in DrProject (inherited from Trac), was where I should have pointed my blame.&lt;/p&gt;
&lt;p&gt;When Wireshark was downloaded and installed, I fired it up and captured the relevant network interface. I changed the DrProject server port from 8080 to the standard 80, and used the capture filter &amp;#8220;tcp port http&amp;#8221; to reduce the amount of data captured.&lt;/p&gt;
&lt;p&gt;What immediately caught my eye was that while most rows were coloured green, quite a number of them were coloured black. Wireshark explained that the black rows represent packets whose &lt;abbr title=&quot;Transmission Control Protocol&quot;&gt;TCP&lt;/abbr&gt; checksums were incorrect, giving the reason &amp;#8216;maybe(sic) caused by &amp;#8220;&lt;abbr title=&quot;Transmission Control Protocol&quot;&gt;TCP&lt;/abbr&gt; checksum offload&amp;#8221;?&amp;#8217;.&lt;/p&gt;
&lt;p&gt;Digging a bit deeper, these &amp;#8220;black&amp;#8221; packets were all from Lin to Win (but not all packets from Lin to Win were black), and they all had a size of 1514 bytes. But wait a minute! Isn&amp;#8217;t it true that the Ethernet &lt;abbr title=&quot;maximum transmission unit&quot;&gt;MTU&lt;/abbr&gt; is 1500 bytes? Wouldn&amp;#8217;t it be bad to exceed the &lt;abbr title=&quot;maximum transmission unit&quot;&gt;MTU&lt;/abbr&gt;? So I consulted &lt;a href=&quot;http://en.wikipedia.org/wiki/Maximum_transmission_unit&quot;&gt;Wikipedia&lt;/a&gt; and &lt;a href=&quot;http://tools.ietf.org/html/rfc1191&quot;&gt;&lt;abbr title=&quot;Request for Comments&quot;&gt;RFC&lt;/abbr&gt; 1191&lt;/a&gt;, but to no avail. They confirmed that the Ethernet standard &lt;abbr title=&quot;maximum transmission unit&quot;&gt;MTU&lt;/abbr&gt; is 1500 bytes, but didn&amp;#8217;t mention whether that included Ethernet headers or not.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://qzdrproject.files.wordpress.com/2008/08/network-tools.png&quot;&gt;&lt;img class=&quot;alignright size-thumbnail wp-image-104&quot; src=&quot;http://qzdrproject.files.wordpress.com/2008/08/network-tools.png?w=100&amp;amp;h=96&quot; alt=&quot;&quot; width=&quot;100&quot; height=&quot;96&quot; /&gt;&lt;/a&gt;Through Wireshark&amp;#8217;s detailed analysis of the raw 1514 bytes of data, I concluded that the 14 bytes were for Ethernet headers &amp;#8212; 6 bytes for the &lt;abbr title=&quot;Media Access Control&quot;&gt;MAC&lt;/abbr&gt; address of the sending machine, 6 bytes for the &lt;abbr title=&quot;Media Access Control&quot;&gt;MAC&lt;/abbr&gt; address of the receiving machine, and 2 bytes for the EtherType&lt;sup&gt;5&lt;/sup&gt;. With a bit of ifconfig wizardry&lt;sup&gt;6&lt;/sup&gt;, I set the &lt;abbr title=&quot;maximum transmission unit&quot;&gt;MTU&lt;/abbr&gt; to 1486 bytes so that after adding the Ethernet headers, the total comes out to 1500 bytes. But I still had no luck with the slow connection problem!&lt;/p&gt;
&lt;p&gt;Following the &lt;abbr title=&quot;Transmission Control Protocol&quot;&gt;TCP&lt;/abbr&gt; conversations through Wireshark did not prove of much use either. But I did see that it took about 10 seconds to respond to each &lt;abbr title=&quot;Hypertext Transfer Protocol&quot;&gt;HTTP&lt;/abbr&gt; connection.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;strace&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://qzdrproject.files.wordpress.com/2008/08/strace.png&quot;&gt;&lt;img class=&quot;alignright size-thumbnail wp-image-101&quot; src=&quot;http://qzdrproject.files.wordpress.com/2008/08/strace.png?w=126&amp;amp;h=96&quot; alt=&quot;&quot; width=&quot;126&quot; height=&quot;96&quot; /&gt;&lt;/a&gt;Besides Wireshark, the other major recommendation from Roy was to run the DrProject server under strace. This program invokes another program, and traces (prints) all of the Unix system calls that the child program makes.&lt;/p&gt;
&lt;p&gt;Roy asked me to inform him of the last line printed by strace whenever the output stopped momentarily. I first noted that the trace stopped at &amp;#8220;wait4(-1,&amp;#8221; after starting the server. He said that it was because the target process was launching a child process.&lt;/p&gt;
&lt;p&gt;I realized that to make this trace work, I had to disable DrProject&amp;#8217;s auto-reloader. Which actually required me to hack the code, because it seemed the &amp;#8220;&amp;#8211;auto-reload&amp;#8221; command line option was not parsed and handled correctly. In addition to that, the Python BaseHTTPServer was multi-threaded, so I had to invoke strace with the -f option, which resulted in significantly more trace output to the screen.&lt;/p&gt;
&lt;p&gt;Finally, something interesting appeared. When Win talks to Lin, the trace stops at &amp;#8220;read(4,&amp;#8221; for a number of seconds, then resumes. Roy said that 4 is the file descriptor, and asked me to trace all the actions starting from the point where that particular &lt;abbr title=&quot;file descriptor&quot;&gt;FD&lt;/abbr&gt; (#4) was opened. This is what I found, with some irrelevant information removed:&lt;/p&gt;
&lt;pre&gt;socket(PF_FILE, SOCK_STREAM, 0) = 4
fcntrl(4, F_GETFD)
connect(4, {sa_family=AF_FILE, path=&quot;/var/run/avahi-daemon/socket&quot;}, 110) = 0
lseek(4, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(4, &quot;RESOLVE-ADDRESS 192.168.0.108\n&quot;, 30) = 30
read(4,  &amp;lt;-- Hangs here for a few seconds&lt;/pre&gt;
&lt;p&gt;If you ask me, that data being passed to the write system call looked like a &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; thing, or perhaps an &lt;abbr title=&quot;Address Resolution Protocol&quot;&gt;ARP&lt;/abbr&gt; thing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Avahi&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With the evidence provided by strace in hand, Roy pointed to the Avahi Zeroconf software as the source of the problem. He asked me to toggle it &amp;#8212; that is, start it if it was not running, and stop it if it was already running.&lt;/p&gt;
&lt;p&gt;Stopping Avahi&lt;sup&gt;7&lt;/sup&gt; and trying to access DrProject server on Lin from Win&amp;#8217;s Firefox again&amp;#8230; Success! W00t! 3 hours of intense troubleshooting had finally come to an end.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Was there a point in writing this? I don&amp;#8217;t know. I don&amp;#8217;t think you, the reader, can learn much from it. This article is comparable to a rant, with a hodge-podge of disconnected personal events and ideas. An honest and objective rant, though.&lt;/p&gt;
&lt;p&gt;But I think this paints a picture of what computer problems look like, and how they are exhaustively troubleshooted and (hopefully) finally solved.&lt;/p&gt;
&lt;p&gt;Oh yeah, and I took up about 1.5 hours of Roy&amp;#8217;s time while he was at work. He has a flexible schedule as a software developer at a big company, so no worries. =P&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Footnotes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lin had the &lt;abbr title=&quot;Internet Protocol&quot;&gt;IP&lt;/abbr&gt; address 192.168.0.101.&lt;/p&gt;
&lt;p&gt;Win had the &lt;abbr title=&quot;Internet Protocol&quot;&gt;IP&lt;/abbr&gt; address 192.168.0.108.&lt;/p&gt;
&lt;p&gt;After Lin and Win could talk to each other, I would sit at Lin&amp;#8217;s console and operate Lin while also hacking into Win using Remote Desktop Connection. So I didn&amp;#8217;t run up and down between computers &lt;em&gt;that&lt;/em&gt; much.&lt;/p&gt;
&lt;p&gt;0: telnet 192.168.0.101 8000. Type &amp;#8220;GET / HTTP/1.1 \r\n Host: 192.168.0.101 \r\n \r\n&amp;#8221;.&lt;/p&gt;
&lt;p&gt;1: Then again, I could have booted Ubuntu from a live &lt;abbr title=&quot;Compact Disc&quot;&gt;CD&lt;/abbr&gt;.&lt;/p&gt;
&lt;p&gt;2: One integrated on the motherboard, and one on a &lt;abbr title=&quot;Peripheral Component Interconnect&quot;&gt;PCI&lt;/abbr&gt; card.&lt;/p&gt;
&lt;p&gt;3: telnet 192.168.0.101 8000&lt;/p&gt;
&lt;p&gt;4: netcat -l -p 8000&lt;/p&gt;
&lt;p&gt;5: In this case, it was 0&amp;#215;0800 for &lt;abbr title=&quot;Internet Protocol version 4&quot;&gt;IPv4&lt;/abbr&gt;.&lt;/p&gt;
&lt;p&gt;6: ifconfig eth2 mtu 1486&lt;/p&gt;
&lt;p&gt;7: sudo /etc/init.d/avahi-daemon stop&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/qzdrproject.wordpress.com/89/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/qzdrproject.wordpress.com/89/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/qzdrproject.wordpress.com/89/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/qzdrproject.wordpress.com/89/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/qzdrproject.wordpress.com/89/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/qzdrproject.wordpress.com/89/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/qzdrproject.wordpress.com/89/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/qzdrproject.wordpress.com/89/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/qzdrproject.wordpress.com/89/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/qzdrproject.wordpress.com/89/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/qzdrproject.wordpress.com/89/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/qzdrproject.wordpress.com/89/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=qzdrproject.wordpress.com&amp;amp;blog=3765766&amp;amp;post=89&amp;amp;subd=qzdrproject&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Blake Winton</name>
			<uri>http://qzdrproject.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Quizzy Drop</title>
			<subtitle type="html">QZ's DrProject development blog</subtitle>
			<link rel="self" href="http://qzdrproject.wordpress.com/feed/"/>
			<id>http://qzdrproject.wordpress.com/feed/</id>
			<updated>2008-08-27T19:45:19+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Carcode GSOC</title>
		<link href="http://clsdaniel.blogspot.com/2008/08/carcode-gsoc.html"/>
		<id>tag:blogger.com,1999:blog-566869374539802164.post-9191028790124822436</id>
		<updated>2008-08-27T18:21:35+00:00</updated>
		<content type="html">&lt;p&gt;I haven't posted anything since Alpha 1 and currently we have Alpha 2 available, Beta 1 is around the corner (has been for quite a while).&lt;/p&gt;&lt;p&gt;Google Summer of Code has ended, most features from my proposal where fulfilled, but I'm still working on it on my free time, altough now with school I don't have as much time as in summer vacations but is free time anyways.&lt;/p&gt;&lt;p&gt;I have updated the screenshots section from the carcode project page with latest work (beta 1):&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/carcode/wiki/Screenshots&quot;&gt;http://code.google.com/p/carcode/wiki/Screenshots&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Currently I'm working on adding a few levels in order to have a Beta with something to work on, more levels will come and ofcourse, you can make suggestions, there is a wikipage on level design:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/carcode/wiki/LevelDesign&quot;&gt;http://code.google.com/p/carcode/wiki/LevelDesign&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Feel free to add and modify!&lt;/p&gt;&lt;p&gt;Last but not so last, I'm Alive! and working on carcode! don't worry :)&lt;/p&gt;</content>
		<author>
			<name>Carlos</name>
			<email>noreply@blogger.com</email>
			<uri>http://clsdaniel.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Carcode GSoC 2008</title>
			<subtitle type="html">Carlos Development Blog for carcode</subtitle>
			<link rel="self" href="http://clsdaniel.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-566869374539802164</id>
			<updated>2008-08-28T01:44:42+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Community-Authored Books</title>
		<link href="http://pyre.third-bit.com/blog/archives/1733.html"/>
		<id>http://pyre.third-bit.com/blog/archives/1733.html</id>
		<updated>2008-08-26T19:30:03+00:00</updated>
		<content type="html">&lt;p&gt;Via &lt;a href=&quot;http://www.michaelnygard.com/blog/2008/08/97_things_every_software_archi.html&quot;&gt;Michael Nygard&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;O&amp;#8217;Reilly is creating a new line of &amp;#8220;community-authored&amp;#8221; books. One of them is called &amp;#8220;97 Thing Every Software Architect Should Know&amp;#8221;&amp;#8230; All of the &amp;#8220;97 Things&amp;#8221; books will be created by wiki, with the best entries being selected from all the wiki contributions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The &lt;a href=&quot;http://97-things.near-time.net/wiki&quot;&gt;whole wiki&lt;/a&gt; makes for interesting (if uneven) reading.&lt;/p&gt;</content>
		<author>
			<name>Greg Wilson</name>
			<uri>http://pyre.third-bit.com/blog</uri>
		</author>
		<source>
			<title type="html">The Third Bit</title>
			<subtitle type="html">Data is zeroes and ones -- software is zeroes and ones and hard work.</subtitle>
			<link rel="self" href="http://pyre.third-bit.com/blog/feed/"/>
			<id>http://pyre.third-bit.com/blog/feed/</id>
			<updated>2008-08-27T01:46:11+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Summer’s End</title>
		<link href="http://pyre.third-bit.com/blog/archives/1732.html"/>
		<id>http://pyre.third-bit.com/blog/archives/1732.html</id>
		<updated>2008-08-26T19:20:03+00:00</updated>
		<content type="html">&lt;p&gt;The last of our summer students finishes at the end of this week; here&amp;#8217;s a few links to close off another great season:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dan Servos has finished his &lt;a href=&quot;http://hackerdan.com/gsoc/end-of-my-summer-of-code/&quot;&gt;grade statistics visualization plugin for Moodle&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Victoria Mui has been &lt;a href=&quot;http://idea021.wordpress.com/2008/08/19/wrapping-up/&quot;&gt;having fun with springs&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Eva Wong &lt;a href=&quot;http://iwa-wong.livejournal.com/5072.html&quot;&gt;wishes she had a time machine&lt;/a&gt; (but had fun nevertheless).&lt;/li&gt;
&lt;li&gt;Matthew Basset thinks &lt;a href=&quot;http://mbasset.wordpress.com/2008/08/20/lessons-learned-from-gsoc-2008-or-in-other-words-the-final-post/&quot;&gt;voiceovers are hard&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Liz Blankenship has been thinking about &lt;a href=&quot;http://www.lizblankenship.com/drproject/blog/?p=19&quot;&gt;simplifying tickets&lt;/a&gt; (a &lt;a href=&quot;http://www.lizblankenship.com/drproject/blog/?p=26&quot;&gt;mockup&lt;/a&gt; is available); she has also posted some musings about the &lt;a href=&quot;http://www.lizblankenship.com/drproject/blog/?p=21&quot;&gt;divergent evolution of Trac and DrProject&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again, everyone &amp;#8212; I really enjoyed working with you all.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/panorama.jpg&quot; alt=&quot;If You Ever Pass This Way…&quot; /&gt;&lt;/p&gt;
&lt;p&gt;(photo courtesy of Qiyu Zhu)&lt;/p&gt;</content>
		<author>
			<name>Greg Wilson</name>
			<uri>http://pyre.third-bit.com/blog</uri>
		</author>
		<source>
			<title type="html">The Third Bit</title>
			<subtitle type="html">Data is zeroes and ones -- software is zeroes and ones and hard work.</subtitle>
			<link rel="self" href="http://pyre.third-bit.com/blog/feed/"/>
			<id>http://pyre.third-bit.com/blog/feed/</id>
			<updated>2008-08-27T01:46:11+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">A Pile o’ Links</title>
		<link href="http://pyre.third-bit.com/blog/archives/1731.html"/>
		<id>http://pyre.third-bit.com/blog/archives/1731.html</id>
		<updated>2008-08-26T12:13:19+00:00</updated>
		<content type="html">&lt;p&gt;Accumulated while on holiday&amp;#8212;funny how sometimes I used this blog as an external strap-on memory pack.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There&amp;#8217;s a workshop on &amp;#8220;&lt;a href=&quot;http://home.segal.uvic.ca/~IRCoSE-2008/&quot;&gt;Infrastructure for Research in Collaborative Software Engineering&lt;/a&gt;&amp;#8221; atFSE in Atlanta this November.  Its aim is &amp;#8220;&amp;#8230;sharing  experiences in evaluating and using open-source, academic, and commercial choices to conduct  research, showcase how choices helped accelerate their work, and identify areas for improvement.&amp;#8221;&lt;/li&gt;
&lt;li&gt;Emma Jane Hogbin had &lt;a href=&quot;http://www.slideshare.net/emmajane/form-an-orderly-queue-ladies-oscon-2008/&quot;&gt;a few things to say&lt;/a&gt; at OSCON this year about women in open source.&lt;/li&gt;
&lt;li&gt;The winner of the 26th Annual Bulwer-Lytton Contest (for best bad opening line) has been &lt;a href=&quot;http://www.theglobeandmail.com/servlet/story/RTGAM.20080814.wbulwer0814/BNStory/Entertainment/home&quot;&gt;announced&lt;/a&gt;. My favorite is still a non-winner from the early 1990s: &amp;#8220;His eyes were cold and hard, which made them exceptionally difficult to chew.&amp;#8221;&lt;/li&gt;
&lt;li&gt;A &lt;a href=&quot;http://strangemaps.wordpress.com/2008/08/18/306-the-genetic-map-of-europe/&quot;&gt;genetic map of Europe&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A new &lt;a href=&quot;http://www.startupnorth.ca/2008/08/18/classtellcom-online-class-websites/&quot;&gt;CMS for building class websites&lt;/a&gt;, cool in part because its creator is 15 years old.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.torontotechweek.com/index.htm&quot;&gt;Toronto Tech Week&lt;/a&gt; is Sept 22-26.&lt;/li&gt;
&lt;li&gt;The Linux Foundation has published a &lt;a href=&quot;http://ldn.linuxfoundation.org/how-participate-linux-community&quot;&gt;guide to kernel development&lt;/a&gt; that makes a nice companion to Karl Fogel&amp;#8217;s &lt;a href=&quot;http://www.producingoss.com/&quot;&gt;&lt;em&gt;Producing Open Source Software&lt;/em&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Lambda the Ultimate &lt;a href=&quot;http://lambda-the-ultimate.org/node/2941&quot;&gt;discusses&lt;/a&gt; Ronad Loui&amp;#8217;s &amp;#8220;&lt;a href=&quot;http://doi.ieeecomputersociety.org/10.1109/MC.2008.228&quot;&gt;In Praise of Scripting&lt;/a&gt;&amp;#8221; (freely readable draft &lt;a href=&quot;http://www.cse.wustl.edu/~loui/praiseieee.html&quot;&gt;here&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Ontario&amp;#8217;s Privacy Commissioner is hosting a &lt;a href=&quot;http://www.cbc.ca/canada/toronto/story/2008/08/21/facebook-conference.html&quot;&gt;one-day conference&lt;/a&gt; for high school and university students about how much of your life (not) to put online. See also the &lt;em&gt;Chronicle of Higher Education&lt;/em&gt;&amp;#8217;s article &amp;#8220;&lt;a href=&quot;http://chronicle.com/wiredcampus/article/3251/when-professors-create-social-networks-for-classes-some-students-see-a-creepy-treehouse&quot;&gt;When Professors Create Social Networks for Classes, Some Students See a &amp;#8216;Creepy Treehouse&amp;#8217;&lt;/a&gt;&amp;#8220;.&lt;/li&gt;
&lt;li&gt;And finally, a &lt;a href=&quot;http://www.neatorama.com/2008/04/19/homemade-coffee-printer/&quot;&gt;latte printer&lt;/a&gt; you can make at home.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More later, including final wrap-up on Google Summer of Code projects.&lt;/p&gt;</content>
		<author>
			<name>Greg Wilson</name>
			<uri>http://pyre.third-bit.com/blog</uri>
		</author>
		<source>
			<title type="html">The Third Bit</title>
			<subtitle type="html">Data is zeroes and ones -- software is zeroes and ones and hard work.</subtitle>
			<link rel="self" href="http://pyre.third-bit.com/blog/feed/"/>
			<id>http://pyre.third-bit.com/blog/feed/</id>
			<updated>2008-08-27T01:46:11+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">pyttk 0.2 released - August 25, 2008</title>
		<link href="http://gpolo.ath.cx:81/projects/ttk_to_tkinter/news#pyttk0.2released"/>
		<id>tag:gpolo.ath.cx,2008-08-25:/projects/ttk_to_tkinter/news/pyttk0.2released</id>
		<updated>2008-08-25T21:17:20+00:00</updated>
		<content type="html">pyttk 0.2 has been released today. As before, you can pick its source at http://pypi.python.org/pypi/pyttk.

Besides bug fixes and some improvements in its usage, it finally brings a test suite! This is also the first release after GSoC finished.</content>
		<author>
			<name>Guilherme Polo</name>
			<email>ggpolo@gmail.com</email>
			<uri>http://gpolo.ath.cx/projects/ttk_to_tkinter</uri>
		</author>
		<source>
			<title type="html">Bringing Ttk to Tkinter</title>
			<subtitle type="html">A GSoC 2008 project for PSF</subtitle>
			<link rel="self" href="http://gpolo.ath.cx:81/feed/ttk_to_tkinter.xml"/>
			<id>http://gpolo.ath.cx:81/</id>
			<updated>2008-08-26T01:43:17+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Johnny, Kick A Hole Right In The Sky</title>
		<link href="http://blog.akalias.net/2008/08/johnny-kick-hole-right-in-sky.html"/>
		<id>tag:blogger.com,1999:blog-7254386064439146371.post-2530254058885750197</id>
		<updated>2008-08-23T09:29:27+00:00</updated>
		<content type="html">Johnny, Kick a hole right in the sky! Won't some body testify? Poke a lion in it's eye!&lt;br /&gt;&lt;br /&gt;I bought pygame-testify.net today, and set up a python/cgi based form that takes a zip and enumerates the results + adds the (safe evaled) test results dict to a ZODB. &lt;br /&gt;&lt;br /&gt;I found a multi-part python snippet for POST[ing] of test results. &lt;br /&gt;&lt;br /&gt;The test/build page is starting to come together. &lt;br /&gt;&lt;br /&gt;I am using htpasswd for security.</content>
		<author>
			<name>akalias</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.akalias.net/</uri>
		</author>
		<source>
			<title type="html">akalias</title>
			<link rel="self" href="http://blog.akalias.net/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-7254386064439146371</id>
			<updated>2008-08-29T01:46:31+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Bil Lewis Works With Biologists…</title>
		<link href="http://pyre.third-bit.com/blog/archives/1730.html"/>
		<id>http://pyre.third-bit.com/blog/archives/1730.html</id>
		<updated>2008-08-23T00:56:13+00:00</updated>
		<content type="html">&lt;p&gt;&amp;#8230;and occasionally &lt;a href=&quot;http://www.dobbscodetalk.com/index.php?option=com_content&amp;amp;task=view&amp;amp;id=684&amp;amp;Itemid=&quot;&gt;finds it frustrating&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Greg Wilson</name>
			<uri>http://pyre.third-bit.com/blog</uri>
		</author>
		<source>
			<title type="html">The Third Bit</title>
			<subtitle type="html">Data is zeroes and ones -- software is zeroes and ones and hard work.</subtitle>
			<link rel="self" href="http://pyre.third-bit.com/blog/feed/"/>
			<id>http://pyre.third-bit.com/blog/feed/</id>
			<updated>2008-08-27T01:46:11+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Married</title>
		<link href="http://pyre.third-bit.com/blog/archives/1718.html"/>
		<id>http://pyre.third-bit.com/blog/archives/1718.html</id>
		<updated>2008-08-22T22:22:13+00:00</updated>
		<content type="html">&lt;p&gt;Pictures say it better than words ever could:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/looking-up.jpg&quot; alt=&quot;Looking Up&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Maddie in the Back Yard&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/feeding-fish.jpg&quot; alt=&quot;Feeding the Fish&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Feeding the Fish with Mummy and Grampa&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/the-big-chair.jpg&quot; alt=&quot;In the Big Chair&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In the Big Chair&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/on-the-beach.jpg&quot; alt=&quot;On the Beach&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On the Beach&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/sadie-hat.jpg&quot; alt=&quot;Sadie Looks Good in Hats&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Sadie Looks Good in Hats&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/entrance.jpg&quot; alt=&quot;Sadie Makes Her Entrance&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The Bride Makes Her Entrance&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/vows.jpg&quot; alt=&quot;Vows&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Love, Honor&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/cutting-cake.jpg&quot; alt=&quot;Cutting the Cake&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Cutting the Cake&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/sopranos-version.jpg&quot; alt=&quot;The Sopranos Version&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The Sopranos Version&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/family.jpg&quot; alt=&quot;All Together Now&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Families Together&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/women.jpg&quot; alt=&quot;Three Mothers&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Three Mothers&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://pyre.third-bit.com/blog/wp-content/uploads/2008/08/what-just-happened.jpg&quot; alt=&quot;Uh, What Just Happened?&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Uh, What Just Happened?&lt;/p&gt;</content>
		<author>
			<name>Greg Wilson</name>
			<uri>http://pyre.third-bit.com/blog</uri>
		</author>
		<source>
			<title type="html">The Third Bit</title>
			<subtitle type="html">Data is zeroes and ones -- software is zeroes and ones and hard work.</subtitle>
			<link rel="self" href="http://pyre.third-bit.com/blog/feed/"/>
			<id>http://pyre.third-bit.com/blog/feed/</id>
			<updated>2008-08-27T01:46:11+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Django on Jython: It's here!</title>
		<link href="http://blog.leosoto.com/2008/08/django-on-jython-its-here.html"/>
		<id>tag:blogger.com,1999:blog-8797006816811118829.post-4322192655854917586</id>
		<updated>2008-08-21T03:19:45+00:00</updated>
		<content type="html">That's true: Django works on Jython without any special patch!&lt;br /&gt;&lt;br /&gt;For anyone interesting in trying it out, I've &lt;a href=&quot;http://wiki.python.org/jython/DjangoOnJython&quot;&gt;written the steps on the Jython wiki&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For Jython, I think this is great. Not only showing that it is alive and well, but also to expose how much progress has been done in almost every front. Better unicode support, an improved parser, setuptools compatibility, performance improvements, experimental system-restarting support, datetime and decimal support on zxJDBC, are some of the features that enables this milestone. Looking back, it is a lot of impressive work of all Jython developers.&lt;br /&gt;&lt;br /&gt;For Django this is great too! I think the codebase got improved by some of the changes that were needed to enable Jython support, and this sort of confirms Django as the web framework that every Python platform want to get running (Jython, PyPy, IronPython... not to mention AppEngine). I'm also amazed at the response we got from the Django developers. They managed to include the needed changes in the middle of the rush for the 1.0 release. Amazing.&lt;br /&gt;&lt;br /&gt;For me... well, I'm very, very happy. It has been a lot of fun so far, and there will be more of it. Did I mention that I will be speaking at &lt;a href=&quot;http://www.djangocon.org&quot;&gt;DjangoCon&lt;/a&gt; on a few weeks? ;-)&lt;br /&gt;&lt;br /&gt;Moreover, there are 4 days left for the GSoC coding period, and I have another objective to meet. Stay tuned... &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: And here is the other goal completed: &lt;a href=&quot;http://blog.leosoto.com/2008/08/deploying-djangojython-projects-on-j2ee.html&quot;&gt;Deploying Django projects on Java App Servers&lt;/a&gt;.</content>
		<author>
			<name>Leo Soto M.</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.leosoto.com/</uri>
		</author>
		<source>
			<title type="html">random.choice(['idea', 'rant', 'link', 'tip'])</title>
			<link rel="self" href="http://blog.leosoto.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-8797006816811118829</id>
			<updated>2008-08-21T07:43:50+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">The Google Summer of Code 2008 is Over</title>
		<link href="http://blog.leosoto.com/2008/08/google-summer-of-code-2008-is-over.html"/>
		<id>tag:blogger.com,1999:blog-8797006816811118829.post-3359904668054255625</id>
		<updated>2008-08-19T00:19:00+00:00</updated>
		<content type="html">Accoding to the schedule, the coding period of this year SoC came to an end today. A happy ending for most projects, including mine :)&lt;br /&gt;&lt;br /&gt;No, no, it wasn't just a happy end -- it was completely awesome. I'm talking about the whole experience, not just &lt;a href=&quot;http://blog.leosoto.com/2008/08/django-on-jython-its-here.html&quot;&gt;the&lt;/a&gt; &lt;a href=&quot;http://blog.leosoto.com/2008/08/deploying-djangojython-projects-on-j2ee.html&quot;&gt;results&lt;/a&gt; (which I think are really good too, but this is something that other people must also judge). The exchanging of ideas, experiences, and even small-talk with very smart and enthusiastic people which is a lot of miles away, but also working quite closely with you is very unique. You learn a lot. And not only strictly technical things. Just as an example, my English is now way better than a few months ago.&lt;br /&gt;&lt;br /&gt;If you are a student, and like open source, you can't miss the opportunity to write a SoC proposal and go for your project, if you haven't already done so. Really, you can't.&lt;br /&gt;&lt;br /&gt;For some reason, is in this exciting moment when you look behind and start to think about how rich this experience was, when you also say thanks. It just feels natural, so here I go.&lt;br /&gt;&lt;br /&gt;Thanks to Google, who made this possible. Thanks to the &lt;a href=&quot;http://google-opensource.blogspot.com/&quot;&gt;Google Open Source&lt;/a&gt; Staff, the people who made this possible.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href=&quot;http://zyasoft.com/pythoneering/&quot;&gt;Jim Baker&lt;/a&gt;, my SoC mentor. Not only strong on the technical aspect, also on the motivational one. Not to mention that he is always full of ideas. If you are a student on a future GSoC and Jim says that he wants to mentor your project, just do it. You won't look back. [Note that this means that you are likely to work with Jython. You may want to start looking at it early ;-) ]&lt;br /&gt;&lt;br /&gt;Thanks to the Jython and Django developers, for accepting me and my patches :-). No, seriously. Jython developers gave me a lot of trust when I was accepted as a committer, and that speed up the process considerably. And Django folks even while busy fixing/implementing/reworking hundred of things in the rush for the 1.0 release, were able to keep Jython (and alternative Python VMs in general) among its priorities for the this release.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href=&quot;http://www.imagemaker.cl&quot;&gt;Imagemaker&lt;/a&gt;, my current employer, who were very kind and let me work part-time for all the SoC coding period. It's still a small company, but it is growing quite fast. I hope it remains cool while continuing growing. If you are a programmer working on Chile, you may want to look at it. Hey!, if you are a student and want to work here and also participate in a GSoC, now there is a also precedent ;-). Talented people is certainly welcomed here.&lt;br /&gt;&lt;br /&gt;Last, but not (in any way!) least, thanks to my family. I doubt they are going to read this, but I have to admit that I've been very absent on the last months. Thanks for their understanding. And for being there in those moments when I wasn't absent :).</content>
		<author>
			<name>Leo Soto M.</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.leosoto.com/</uri>
		</author>
		<source>
			<title type="html">random.choice(['idea', 'rant', 'link', 'tip'])</title>
			<link rel="self" href="http://blog.leosoto.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-8797006816811118829</id>
			<updated>2008-08-21T07:43:50+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Deploying Django/Jython Projects on a J2EE App Server</title>
		<link href="http://blog.leosoto.com/2008/08/deploying-djangojython-projects-on-j2ee.html"/>
		<id>tag:blogger.com,1999:blog-8797006816811118829.post-9010642499348274964</id>
		<updated>2008-08-18T18:45:42+00:00</updated>
		<content type="html">Now that &lt;a href=&quot;http://blog.leosoto.com/2008/08/django-on-jython-its-here.html&quot;&gt;Django runs on Jython&lt;/a&gt; out of the box, you may wonder: &quot;How do I deploy the resulting project into an application server (Tomcat, GlassFish, JBoss, etc)&quot;?&lt;br /&gt;&lt;br /&gt;The answer:&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;&lt;br /&gt;~/myproject$ jython25 manage.py war \&lt;br /&gt;             --include-java-libs=&quot;/path/to/my/jdbc-driver.jar&quot;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Providing that you have the latest svn revision on &lt;a href=&quot;http://code.google.com/p/django-jython&quot;&gt;django-jython&lt;/a&gt;, and you have included &lt;tt&gt;'doj'&lt;/tt&gt; into your project &lt;tt&gt;INSTALLED_APPS&lt;/tt&gt;, it will just work.&lt;br /&gt;&lt;br /&gt;Then you drop the WAR file (generated in the parent directory of your project) into your application server, and that's all. No need to install Django or Jython in the target server. The WAR is completely self-contained.&lt;br /&gt;&lt;br /&gt;If you are interested on Django/Jython, give this a try! And for more information, see the &lt;a href=&quot;http://code.google.com/p/django-jython/wiki/WarDeployment&quot;&gt;WarDeployment&lt;/a&gt; page on the django-jython wiki.</content>
		<author>
			<name>Leo Soto M.</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.leosoto.com/</uri>
		</author>
		<source>
			<title type="html">random.choice(['idea', 'rant', 'link', 'tip'])</title>
			<link rel="self" href="http://blog.leosoto.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-8797006816811118829</id>
			<updated>2008-08-21T07:43:50+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Final report</title>
		<link href="http://robert.schuppenies.de/en/projects/gsoc/blog/2008/08/18/final-report/"/>
		<id>http://robert.schuppenies.de/en/projects/gsoc/blog/2008/08/18/final-report/</id>
		<updated>2008-08-18T07:46:23+00:00</updated>
		<content type="html">&lt;p&gt;So this is it. Google Summer of Code 2008 is coming to an end. This last week I am wrapping up everything. If somebody is interested, I have written a &lt;a href=&quot;http://robert.schuppenies.de/en/projects/gsoc/finalreport.html&quot;&gt;final report which wraps up these last three months&lt;/a&gt;. Some extracts follow below. For everybody else, here is a short version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;implemented sys.getsizeof&lt;/li&gt;
&lt;li&gt;pushed &lt;a href=&quot;http://packages.python.org/muppy/&quot;&gt;muppy&lt;/a&gt; to the first release&lt;/li&gt;
&lt;li&gt;Me very happy&lt;/li&gt;
&lt;li&gt;Many thanks to all the supporters&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now the full report ..&lt;/p&gt;
&lt;h2&gt;Deliverables&lt;/h2&gt;
&lt;p&gt;This project delivers two pieces of work: the sys.getsizeof() implementation, as well as muppy, a memory leak tool set for Python.&lt;/p&gt;
&lt;h3&gt;sys.getsizeof&lt;/h3&gt;
&lt;p&gt;Lets start with what the documentation says:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
sys.getsizeof(object[, default])¶&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;    Return the size of an object in bytes. The object can be any type of&lt;br /&gt;
    object. All built-in objects will return correct results, but this does not&lt;br /&gt;
    have to hold true for third-party extensions as it is implementation&lt;br /&gt;
    specific.&lt;/p&gt;
&lt;p&gt;    The default argument allows to define a value which will be returned if the&lt;br /&gt;
    object type does not provide means to retrieve the size and would cause a&lt;br /&gt;
    TypeError.&lt;/p&gt;
&lt;p&gt;    func:getsizeof calls the object’s __sizeof__ method and adds an additional&lt;br /&gt;
    garbage collector overhead if the object is managed by the garbage collector.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;sys.getsizeof has a default implementation, which is used if the type of the object that is passed to sys.getsizeof does not have its own implementation. Some built-in types (e.g. dict) have their own implementation which incorporates special implementation details of each type.&lt;/p&gt;
&lt;p&gt;An important decision was to only include the size of the memory which was required by the object itself, not any referenced objects. This gives a clear guideline on what should be included in an object&amp;#8217;s size. For example, unicode objects cache a string representation of themselves. Should this object be included? No, because it is a new object merely referenced by the unicode&lt;br /&gt;
object. &lt;/p&gt;
&lt;p&gt;Also sys.getsizeof only guarantees to works for objects of built-in types and types which adhere to the conventions. If a third-party extension provides a new C-implemented type which, besides the size defined in basicsize and itemsize allocates other memory, this will not be reported by sys.getsizeof(). Such extensions will need to implement their own sizeof function. Usually though, this should not be necessary.&lt;/p&gt;
&lt;p&gt;The code created for sys.getsizeof is now integrated into the CPython code base&lt;/p&gt;
&lt;h3&gt;muppy&lt;/h3&gt;
&lt;p&gt;Although muppy started as a consolidation of existing memory profiler approaches&lt;br /&gt;
it quickly turned into an memory leak detection toolset. &lt;/p&gt;
&lt;p&gt;To be useful as leak finder, &lt;i&gt;basic&lt;/i&gt; operations must be supported. These are&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; retrieve all existing objects&lt;/li&gt;
&lt;li&gt; filter objects by type and size&lt;/li&gt;
&lt;li&gt; do diffs on object sets&lt;/li&gt;
&lt;li&gt; get referents of objects up to a certain level&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because it is often not useful to work with entire object sets, but sufficient to work with summaries of those, a &lt;i&gt;summary module&lt;/i&gt; is provided. It allows to view existing objects grouped by type, number, and size. The following features are provided:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; summarize a set of objects&lt;/li&gt;
&lt;li&gt; print summaries as tables&lt;/li&gt;
&lt;li&gt; do diffs on summaries.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Especially the last feature is useful if you want to monitor the memory usage over time. To further ease this tracking, the &lt;i&gt;tracker module&lt;/i&gt; can be used.  It allows to&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; retrieve differences between a time t1 and a time t2&lt;/li&gt;
&lt;li&gt; print those diffs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Users could implement this them-self, but tracker instances consider previously stored summaries and deduct them from the returned result. If a summary is too coarse-grained, it is also possible to use the ObjectTracker which returns object instances that were created since the last invocation.&lt;/p&gt;
&lt;p&gt;Last but not least, muppy can identify where objects are referenced. This is useful when objects are leaking, which is often the case when objects are unintentionally still referenced somewhere in the application. The &lt;i&gt;refbrowser module&lt;/i&gt; provides reference browsing for the console, output into a file, and interactive browsing though a graphical user interface.&lt;/p&gt;
&lt;p&gt;When available, muppy uses the sys.getsizeof function to retrieve an object&amp;#8217;s size. If this is not the case, the asizeof module from Jean Brouwers is used. This provides backward compatibility of muppy for Python versions prior to 2.6. &lt;/p&gt;
&lt;p&gt;Muppy is now hosted on the Python cheese shop and Google code. The cheese shop has the documentation as well as the package download and Google code provides the development infrastructure.&lt;/p&gt;
&lt;h3&gt;Memory leak in Tkinter&lt;/h3&gt;
&lt;p&gt;With the help of muppy I was able to identify a memory leak in Tkinter . I was asked to check IDLE for any memory leaks. In this process, I discovered that memory was indeed leaking whenever a new window was opened and closed again. The reason was an implementation issue in Tkinter handling of Menu entries which now is fixed.&lt;/p&gt;
&lt;h2&gt;Time line&lt;/h2&gt;
&lt;p&gt;I started working on the sys.getsizeof function in May, with a first proposal posted on bugs.python.org on May 17th7. After discussions, the first patch was applied on June 1st8. The initial patch included special implementations of getsizeof for dict, list, byte, and long objects. Later on, unicode, tuple, set, byte array, and frame object implementations were added. Some tests failed on Windows 64-bit systems due to the special 64-bit model used in this architecture. This turned out to be helpful, as it pointed to errors in the test implementation which were not noticed on other architectures. The getsizeof implementation was correct for the most part, but needed an additional change to deal with type polymorphism and old style classes. The last patch regarding sys.getsizeof was committed on July 14th.&lt;/p&gt;
&lt;p&gt;About at the same time I started working on muppy (see above). At first basic functionality was implemented, then the summary as well as the tracker module. A week later I started analyzing the IDLE application. With the tracker I could see that some objects are leaking every time a window was opened and closed, but I was not able to identify the referrers. Thus, the refbrowser modules were implemented. Now I could trace the leaking objects back to the Tkinter module. By the beginning of August a patch was proposed and checked-in a week later. &lt;/p&gt;
&lt;h2&gt;Last Words&lt;/h2&gt;
&lt;p&gt;This project was a great experience for me and I would like to thank all involved participants.&lt;/p&gt;
&lt;p&gt;First of all, I would like to thank Martin von Loewis, who has been a great mentor, was always there to answer my questions, invisibly guided my first steps in the Python community and lead me through the the depths of CPython.&lt;/p&gt;
&lt;p&gt;Next, I would like to thank everybody from the Python developer community who discussed issues with me, provided the necessary insight and pointed to the resources which helped to get the job done.&lt;/p&gt;
&lt;p&gt;On the organizational side, many thanks to Leslie Hawthorn from Google and James Tauber from the Python Software Foundation for organizing these three months and making it work so smoothly.&lt;/p&gt;
&lt;p&gt;Last but not least special thanks to Jean Brouwers, who&amp;#8217;s implementation of the asizeof script inspired my work and who shared his thoughts with me throughout my project and beyond.&lt;/p&gt;
&lt;p&gt;Finally an incomplete and unordered list of things I have started to understand and make use of during the last three months: CPython code base, garbage collection in Python, ReST, distutils, IDLE, Tkinter, googlecode hosting, Python&amp;#8217;s cheeseshop, lots on the decision process in Python, serious bug tracking and fixing, unicode transformation format, implemting object orientation in a procedural programming language, 64-bit programming models, memory alignment, breaking backwards compatability computer language (with all implications on the user side). &lt;/p&gt;</content>
		<author>
			<name>Robert Schuppenies</name>
			<uri>http://robert.schuppenies.de/en/projects/gsoc/blog</uri>
		</author>
		<source>
			<title type="html">google summer of code 2008</title>
			<subtitle type="html">google summer of code 2008</subtitle>
			<link rel="self" href="http://robert.schuppenies.de/en/projects/gsoc/blog/feed/"/>
			<id>http://robert.schuppenies.de/en/projects/gsoc/blog/feed/</id>
			<updated>2008-08-18T08:41:35+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Finalizing...</title>
		<link href="http://gsoc-sugarbot.blogspot.com/2008/08/finalizing.html"/>
		<id>tag:blogger.com,1999:blog-8699851592369026373.post-2275647777006020763</id>
		<updated>2008-08-18T01:12:09+00:00</updated>
		<content type="html">I am trying to get the final screencast properly edited and dubbed, and will be putting the 0.01 package online soon.  It has been quite the day for me, as Murphy's Law would have it, everything decided to go more then slightly haywire when I decided to record video :-\</content>
		<author>
			<name>Zach</name>
			<email>noreply@blogger.com</email>
			<uri>http://gsoc-sugarbot.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">sugarbot</title>
			<link rel="self" href="http://gsoc-sugarbot.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-8699851592369026373</id>
			<updated>2008-08-18T07:42:00+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Physics for Pygame alpha version is out :)</title>
		<link href="http://i.cn.yahoo.com/zhangfanfox/blog/p_25/"/>
		<id>http://i.cn.yahoo.com/zhangfanfox/blog/p_25/</id>
		<updated>2008-08-16T08:09:10+00:00</updated>
		<content type="html">&lt;p&gt;The alpha version of my project is out. If you're interesting, please try it and give feedback to me. I'd like to attach the overview of my GSOC project to make you know more about it. If you want to try it, you can download the code from the svn site svn://seul.org/svn/pygame/branches/physics , there're 4 test case in PYD folder now, enjoying it.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The overview of my GSOC project&lt;/p&gt;
&lt;p&gt;My project is a 2D physics module for Pygame(like box2d and chipmunk). It's written in C and it uses basic Python # structs and functions, which means this module can be integrated with Pygame seamlessly. &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
My initial goals are : &lt;br /&gt;
* World support with body and joint management, gravity and damping &lt;br /&gt;
* Body support with mass, shape, velocity, friction, torque, &lt;br /&gt;
&amp;nbsp; rotation value, linear and rotational damping &lt;br /&gt;
* Joint support including distance joints &lt;br /&gt;
* Shape support with AABB and OBB collision detection, rectangular, polygonal and circle shapes&lt;/p&gt;
&lt;p&gt;There are serveral ways to make the project successful: &lt;br /&gt;
* I set my goal at the beginning and made a schedule and a roadmap to guide my work. &lt;br /&gt;
* I've been contacting my mentor and discussing with him regularly to report my current work and the problems I met, so I've got so many helps from him and I can solve problems quickly. &lt;br /&gt;
* Learn form other physics libraries and some papers for physics simulation algorithms.&lt;/p&gt;
&lt;p&gt;Current status of this project: &lt;br /&gt;
* World support is fully implemented &lt;br /&gt;
* Body support is fully implemented &lt;br /&gt;
* Joint support is fully implemented including distance joints(tested) and recently added revolute joints(still on working) &lt;br /&gt;
* Shape support is implemented with collision detection and rectangular shape support &lt;br /&gt;
* Interfaces of the Python module. &lt;br /&gt;
* C API extensions. &lt;br /&gt;
* Most parts of the module are stable and work as supposed. It lacks large optimizations, especially for the collision detection, but those are &lt;br /&gt;
areas being worked on later.&lt;/p&gt;
&lt;p&gt;Finally, Thank my mentor very much, he's so conscientious and gives me so many helps and guidances.&lt;/p&gt;</content>
		<author>
			<name>Zhang Fan</name>
			<uri>http://i.cn.yahoo.com/zhangfanfox/blog/</uri>
		</author>
		<source>
			<title type="html">张帆的博客</title>
			<link rel="self" href="http://i.cn.yahoo.com/zhangfanfox/rss/"/>
			<id>http://i.cn.yahoo.com/zhangfanfox/rss/</id>
			<updated>2008-08-29T01:46:24+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">[issue600362] relocate cgi.parse_qs() into urlparse</title>
		<link href="http://urllib-gsoc.blogspot.com/2008/08/issue600362-relocate-cgiparseqs-into.html"/>
		<id>tag:blogger.com,1999:blog-4574925891333430710.post-7598952472958472624</id>
		<updated>2008-08-14T14:29:29+00:00</updated>
		<content type="html">This issue/comments somehow escaped from my noticed, initially. I have&lt;br /&gt;addressed your comments in the new set of patches.&lt;p&gt;1) Previous patch Docs had issues. Updated the Docs patch.&lt;br /&gt;2) Included message in cgi.py about parse_qs, parse_qsl being present&lt;br /&gt;for backward compatiblity.&lt;br /&gt;3) The reason, py26 version of patch has quote function from urllib is&lt;br /&gt;to avoid circular reference. urllib import urlparse for urljoin method.&lt;br /&gt;So only way for us use quote is to have that portion of code in the&lt;br /&gt;patch as well.&lt;p&gt;Please have a look the patches. &lt;br /&gt;As this request has been present from a long time ( 2002-08-26 !), is it&lt;br /&gt;possible to include this change in b3?&lt;p&gt;Thanks,&lt;br /&gt;Senthil&lt;p&gt;Added file: &lt;a href=&quot;http://bugs.python.org/file11116/issue600362-py26-v2.diff&quot;&gt;http://bugs.python.org/file11116/issue600362-py26-v2.diff&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>orsenthil</name>
			<email>noreply@blogger.com</email>
			<uri>http://urllib-gsoc.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Python urllib - Google Summer of Code 2008</title>
			<link rel="self" href="http://urllib-gsoc.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-4574925891333430710</id>
			<updated>2008-08-15T01:57:21+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">issue2756: urllib2 add_header fails with existing unredirected_header</title>
		<link href="http://urllib-gsoc.blogspot.com/2008/08/issue2756-urllib2-addheader-fails-with.html"/>
		<id>tag:blogger.com,1999:blog-4574925891333430710.post-1430991651831330373</id>
		<updated>2008-08-14T01:18:07+00:00</updated>
		<content type="html">&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; import urllib2&lt;br /&gt;&gt;&gt;&gt; url = 'http://www.whompbox.com/headertest.php'&lt;br /&gt;&gt;&gt;&gt; request = urllib2.Request(url)&lt;br /&gt;&gt;&gt;&gt; request.add_data(&quot;Spam&quot;)&lt;br /&gt;&gt;&gt;&gt; f = urllib2.urlopen(url)&lt;br /&gt;&gt;&gt;&gt; request.header_items()&lt;br /&gt;[]&lt;br /&gt;&gt;&gt;&gt; request.unredirected_hdrs.items()&lt;br /&gt;[]&lt;br /&gt;&gt;&gt;&gt; f = urllib2.urlopen(request)&lt;br /&gt;&gt;&gt;&gt; request.header_items()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;[('Content-length', '4'), ('Content-type', 'application/x-www-form-urlencoded'), ('Host', 'www.whompbox.com'), ('User-agent', 'Python-urllib/2.6')]&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; request.unredirected_hdrs.items()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;[('Content-length', '4'), ('Content-type', 'application/x-www-form-urlencoded'), ('Host', 'www.whompbox.com'), ('User-agent', 'Python-urllib/2.6')]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Comment: This is fine. What is actually happening is do_request_ method in the http_open() is setting the unredirected_hdrs to above items.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; request.add_header('Content-type','application/xml')&lt;br /&gt;&gt;&gt;&gt; f = urllib2.urlopen(request)&lt;br /&gt;&gt;&gt;&gt; request.header_items()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;[('Content-length', '4'), ('Content-type', 'application/xml'), ('Host', 'www.whompbox.com'), ('User-agent', 'Python-urllib/2.6')]&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Comment: When we add_header() the headers are indeed changed. Correct behavior. &lt;/b&gt;&lt;br /&gt;&gt;&gt;&gt; request.unredirected_hdrs.items()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;[('Content-length', '4'), ('Content-type', 'application/x-www-form-urlencoded'), ('Host', 'www.whompbox.com'), ('User-agent', 'Python-urllib/2.6')]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Comment: add_header() has not modified the unredirected_hdr. &lt;br /&gt;Is this the whole purpose of &lt;a href=&quot;http://bugs.python.org/issue2756&quot;&gt;issue2756&lt;/a&gt;? If yes, then better understanding of unredirected_hdr is needed and in the do_request_ method of AbstractHTTPHandler, where it changes unredirected_hdrs based on the logic of &quot;not request.has_header(...)&quot; what is actually aimed for checking that.&lt;br /&gt;&lt;br /&gt;If add_header() is not supposed to change unredirected_hdrs but, add_unredirected_header() is the call to change unredirected_hdrs then, it is working fine and as expected.&lt;br /&gt;&lt;br /&gt;(This is an undocumented interface, items() call was used for viewing the headers, tough actual code might not be using it.&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt;request.add_unredirected_header('Content-type','application/xml')&lt;br /&gt;&gt;&gt;&gt; request.unredirected_hdrs.items()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;[('Content-length', '4'), ('Content-type', 'application/xml'), ('Host', 'www.whompbox.com'), ('User-agent', 'Python-urllib/2.6')]&lt;br /&gt;&gt;&gt;&gt;&lt;br /&gt;&lt;b&gt; Comment: add_unredirected_header() has correctly affected. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;After application of the attached patch in issue report which modifies the add_header() and add_unredirected_header() method to remove the existing header of the same name. We will observe that the unredirected_hdr itself is removed and it is never added back.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;After application of attached patch:&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; url = 'http://www.whompbox.com/headertest.php'&lt;br /&gt;&gt;&gt;&gt; request = urllib2.Request(url)&lt;br /&gt;&gt;&gt;&gt; request.add_data(&quot;Spam&quot;)&lt;br /&gt;&gt;&gt;&gt; f = urllib2.urlopen(request)&lt;br /&gt;&gt;&gt;&gt; request.header_items()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;[('Content-length', '4'), ('Content-type', 'application/x-www-form-urlencoded'), ('Host', 'www.whompbox.com'), ('User-agent', 'Python-urllib/2.6')]&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; request.unredirected_hdrs.items()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;[('Content-length', '4'), ('Content-type', 'application/x-www-form-urlencoded'), ('Host', 'www.whompbox.com'), ('User-agent', 'Python-urllib/2.6')]&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; request.add_header('Content-type','application/xml')&lt;br /&gt;&gt;&gt;&gt; f = urllib2.urlopen(request)&lt;br /&gt;&gt;&gt;&gt; request.header_items()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;[('Content-length', '4'), ('Content-type', 'application/xml'), ('Host', 'www.whompbox.com'), ('User-agent', 'Python-urllib/2.6')]&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; request.unredirected_hdrs.items()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;[('Content-length', '4'), ('Host', 'www.whompbox.com'), ('User-agent', 'Python-urllib/2.6')]&lt;br /&gt;&gt;&gt;&gt;&lt;br /&gt;&lt;b&gt; Comment: Notice the absense of Content-type header. &lt;/b&gt;</content>
		<author>
			<name>orsenthil</name>
			<email>noreply@blogger.com</email>
			<uri>http://urllib-gsoc.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Python urllib - Google Summer of Code 2008</title>
			<link rel="self" href="http://urllib-gsoc.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-4574925891333430710</id>
			<updated>2008-08-15T01:57:21+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Data Provenance Challenge</title>
		<link href="http://pyre.third-bit.com/blog/archives/1716.html"/>
		<id>http://pyre.third-bit.com/blog/archives/1716.html</id>
		<updated>2008-08-13T14:48:55+00:00</updated>
		<content type="html">&lt;p&gt;John&amp;#8217;s summary of our discussion about &lt;a href=&quot;http://reproducibleresearch.org/blog/2008/08/13/how-to-teach-rr-in-one-hour/&quot;&gt;what to teach scientists about reproducible research&lt;/a&gt; if they already believe it&amp;#8217;s a good thing, and want to start doing it reminded me that I never posted about the &lt;a href=&quot;http://twiki.ipaw.info/bin/view/Challenge/&quot;&gt;Provenance Challenge&lt;/a&gt;. It has been run twice so far; each time, authors of tools to track the provenance (or lineage) of scientific data have to implemented some workflows, then answers questions about where data came from, what was done to it, and so on.  The results of the first challenge are described system-by-system in &lt;a href=&quot;http://portal.acm.org/citation.cfm?id=1350745.1350753&quot;&gt;these papers&lt;/a&gt; (sorry, but it&amp;#8217;s behind a wall &amp;#8212; if you google for combinations of the authors&amp;#8217; names, you can find PDF preprints).  This is a very cool research area, and I hope one of my incoming grad students will want to do something with it.&lt;/p&gt;</content>
		<author>
			<name>Greg Wilson</name>
			<uri>http://pyre.third-bit.com/blog</uri>
		</author>
		<source>
			<title type="html">The Third Bit</title>
			<subtitle type="html">Data is zeroes and ones -- software is zeroes and ones and hard work.</subtitle>
			<link rel="self" href="http://pyre.third-bit.com/blog/feed/"/>
			<id>http://pyre.third-bit.com/blog/feed/</id>
			<updated>2008-08-27T01:46:11+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Combo boxes working, wrapping up</title>
		<link href="http://gsoc-sugarbot.blogspot.com/2008/08/combo-boxes-working-wrapping-up.html"/>
		<id>tag:blogger.com,1999:blog-8699851592369026373.post-5973722270447923660</id>
		<updated>2008-08-13T12:23:25+00:00</updated>
		<content type="html">Got the combo-boxes working the way I want them to.  I realized that convenience-handling for each and every Widget type is not something that is [1] perhaps not entirely necessary and [2] certainly not entirely necessary &lt;i&gt;right this instant&lt;/i&gt;.  With that in mind, I'll be wrapping up/documenting the code for an initial 0.1 release on Friday.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll be working on another screencast that will demonstrate integration with buildbot, automated launching of sugarbot and Sugar, as well as the new Python scripting abilities.  Overall, I'm very pleased with where I am right now.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's been a lot of fun developing for GSoC/the Python Org/One Laptop Per Child, and I'm sad to see the summer come to an end (less free time to work on it) in the next few weeks.  Hopefully I'll be able to keep my motivation up to keep development going.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Once I have the GSoC-final screencast up, I plan on publishing it to all of the mailing lists.  Thanks to Grig and Titus for providing me with guidance and advice throughout the summer, you guys are really great.  Also, thanks to those of you on the mailing lists and IRC channels that also provided tips, insight, and advice that made those obscure API problems so much simpler.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Zach&lt;/div&gt;</content>
		<author>
			<name>Zach</name>
			<email>noreply@blogger.com</email>
			<uri>http://gsoc-sugarbot.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">sugarbot</title>
			<link rel="self" href="http://gsoc-sugarbot.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-8699851592369026373</id>
			<updated>2008-08-18T07:42:00+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Issue 2756 - urllib2 add_header fails with existing unredirected header</title>
		<link href="http://urllib-gsoc.blogspot.com/2008/08/issue-2756-urllib2-addheader-fails-with.html"/>
		<id>tag:blogger.com,1999:blog-4574925891333430710.post-7545825457709619822</id>
		<updated>2008-08-13T11:29:04+00:00</updated>
		<content type="html">The issue noticable here:&lt;p&gt;[ors@goofy ~]$ python&lt;br /&gt;Python 2.6b2+ (trunk:65482M, Aug  4 2008, 14:26:01)&lt;br /&gt;[GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2&lt;br /&gt;Type &amp;quot;help&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information.&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; url = '&lt;a href=&quot;http://hroch486.icpf.cas.cz/formpost.html&quot;&gt;http://hroch486.icpf.cas.cz/formpost.html&lt;/a&gt;'&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; import urllib2&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; req_obj = urllib2.Request(url)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; req_obj.unredirected_hdrs&lt;br /&gt;{}&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; req_obj.add_data(&amp;quot;Spam&amp;quot;)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; req_obj.unredirected_hdrs&lt;br /&gt;{}&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; response = urllib2.urlopen(req_obj)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; req_obj.unredirected_hdrs&lt;br /&gt;{'Content-length': '4', 'Content-type': 'application/x-www-form-urlencoded',&lt;br /&gt;'Host': '&lt;a href=&quot;http://hroch486.icpf.cas.cz&quot;&gt;hroch486.icpf.cas.cz&lt;/a&gt;', 'User-agent': 'Python-urllib/2.6'}&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; req_obj.add_data(&amp;quot;SpamBar&amp;quot;)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; req_obj.add_header(&amp;quot;Content-type&amp;quot;,&amp;quot;application/html&amp;quot;)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; response = urllib2.urlopen(req_obj)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; req_obj.unredirected_hdrs&lt;br /&gt;{'Content-length': '4', 'Content-type': 'application/x-www-form-urlencoded',&lt;br /&gt;'Host': '&lt;a href=&quot;http://hroch486.icpf.cas.cz&quot;&gt;hroch486.icpf.cas.cz&lt;/a&gt;', 'User-agent': 'Python-urllib/2.6'}&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; req_obj.get_data()&lt;br /&gt;'SpamBar'&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt;&lt;p&gt;&lt;br /&gt;In the final req_obj call, the unredirected_hdrs had not changed in neither&lt;br /&gt;Content-length nor in Content-type.&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>orsenthil</name>
			<email>noreply@blogger.com</email>
			<uri>http://urllib-gsoc.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Python urllib - Google Summer of Code 2008</title>
			<link rel="self" href="http://urllib-gsoc.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-4574925891333430710</id>
			<updated>2008-08-15T01:57:21+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">unni</title>
		<link href="http://ofpenguinsandpeanuts.wordpress.com/2008/08/13/when-hardwork-takes-its-toll/"/>
		<id>http://ofpenguinsandpeanuts.wordpress.com/?p=99</id>
		<updated>2008-08-13T08:26:30+00:00</updated>
		<content type="html">&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;I just simply can&amp;#8217;t beleive it! Edwin! and that too right before my own eyes&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;
&lt;p&gt;All of us, (Anil,Eddy, Sreeraj and me) were at Trivandrum Central Station having arrived by the Guruvayoor-Trivandrum express at four in the morning after a tiresome journey with sparing amounts of sleep.&lt;/p&gt;
&lt;p&gt;Declaring that sleep was what he needed more than coffee bhai (as we fondly liked to call Eddy) rested his head on Anil&amp;#8217;s shoulder while Srj made some fleeting joke on how we didn&amp;#8217;t have any sleep for the last few days. Bhai stretched out his arms in an attempt to rejuvenate his tired body, when all of a sudden he just dropped on to the concrete platform floor banging his head (which we didn&amp;#8217;t realize at the time). Knocked out with fatigue, is what we figured&amp;#8230;&amp;#8230;..&lt;/p&gt;
&lt;p&gt;On taking him to the Cosmopolitan  Hospital, the doctor&amp;#8217;s conformed our worst fears and declared his condition to be critical. He was vomiting blood and was in a semi-drowsy, semi-conscious state. The next day his severe internal hemorrhage and skull fracture was conformed.&lt;/p&gt;
&lt;p&gt;He is now in the ICCU of the Cosmopolitan Hospital, Trivandrum. After two torturous days the doctors have finally started saying that his case is hopeful and though it may be a bit slow, a recovery should happen.&lt;/p&gt;
&lt;p&gt;Pray for my friend. He was the best of us.&lt;/p&gt;
&lt;p&gt;P.S. I thank the whole &lt;a href=&quot;http://fci.wikia.com/wiki/SMC&quot;&gt;Swathanthra Malayalam Computation&lt;/a&gt; Team for their support and especially &lt;a href=&quot;http://anivar.livejournal.com/&quot;&gt;Anivar Aravind&lt;/a&gt; and &lt;a href=&quot;http://anoopjohn.com/&quot;&gt;Anoop John&lt;/a&gt; who came to our aid at the hour of our greatest need.&lt;/p&gt;
&lt;p&gt;I also thank Lord Almighty for safe-gaurding Bhai from deeper danger.&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/ofpenguinsandpeanuts.wordpress.com/99/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/ofpenguinsandpeanuts.wordpress.com/99/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ofpenguinsandpeanuts.wordpress.com/99/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ofpenguinsandpeanuts.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ofpenguinsandpeanuts.wordpress.com/99/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ofpenguinsandpeanuts.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ofpenguinsandpeanuts.wordpress.com/99/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ofpenguinsandpeanuts.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ofpenguinsandpeanuts.wordpress.com/99/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ofpenguinsandpeanuts.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ofpenguinsandpeanuts.wordpress.com/99/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ofpenguinsandpeanuts.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ofpenguinsandpeanuts.wordpress.com&amp;amp;blog=3141338&amp;amp;post=99&amp;amp;subd=ofpenguinsandpeanuts&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Unni</name>
			<uri>http://ofpenguinsandpeanuts.wordpress.com</uri>
		</author>
		<source>
			<title type="html">And the Geek Shall Inherit the Earth</title>
			<subtitle type="html">doodle out</subtitle>
			<link rel="self" href="http://ofpenguinsandpeanuts.wordpress.com/feed/"/>
			<id>http://ofpenguinsandpeanuts.wordpress.com/feed/</id>
			<updated>2008-08-28T07:56:17+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">unni</title>
		<link href="http://ofpenguinsandpeanuts.wordpress.com/2008/08/13/when-hard-work-pays-off/"/>
		<id>http://ofpenguinsandpeanuts.wordpress.com/?p=97</id>
		<updated>2008-08-13T07:59:25+00:00</updated>
		<content type="html">&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;We all enjoy working and its been one of our most exhilerating moments when we finally launched our event site &lt;a href=&quot;http://hackerdom.in&quot;&gt;hackerdom.in&lt;/a&gt;. Albeit not completely finished we were still thrilled when at 6.30 .a.m on the eigth of October we could finally say that it had ninety percent of the elelments required for an event site, after an overnight hustle to launch the site before the Swanthatra Malayalam Computation&amp;#8217;s KDE(malyalam) launch.&lt;/p&gt;
&lt;p&gt;After two nights of hard toil Eddy, Anil, Khedar and me finally called it a day and gave into pure exhaustion, but with smiles on our faces.&lt;a href=&quot;http://ofpenguinsandpeanuts.files.wordpress.com/2008/08/design.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-medium wp-image-101&quot; src=&quot;http://ofpenguinsandpeanuts.files.wordpress.com/2008/08/design.jpg?w=300&amp;amp;h=230&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;230&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Khedar is really to be congratulated for his brilliant artwork.&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/ofpenguinsandpeanuts.wordpress.com/97/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/ofpenguinsandpeanuts.wordpress.com/97/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ofpenguinsandpeanuts.wordpress.com/97/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ofpenguinsandpeanuts.wordpress.com/97/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ofpenguinsandpeanuts.wordpress.com/97/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ofpenguinsandpeanuts.wordpress.com/97/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ofpenguinsandpeanuts.wordpress.com/97/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ofpenguinsandpeanuts.wordpress.com/97/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ofpenguinsandpeanuts.wordpress.com/97/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ofpenguinsandpeanuts.wordpress.com/97/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ofpenguinsandpeanuts.wordpress.com/97/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ofpenguinsandpeanuts.wordpress.com/97/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ofpenguinsandpeanuts.wordpress.com&amp;amp;blog=3141338&amp;amp;post=97&amp;amp;subd=ofpenguinsandpeanuts&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Unni</name>
			<uri>http://ofpenguinsandpeanuts.wordpress.com</uri>
		</author>
		<source>
			<title type="html">And the Geek Shall Inherit the Earth</title>
			<subtitle type="html">doodle out</subtitle>
			<link rel="self" href="http://ofpenguinsandpeanuts.wordpress.com/feed/"/>
			<id>http://ofpenguinsandpeanuts.wordpress.com/feed/</id>
			<updated>2008-08-28T07:56:17+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Winter Grad Course Evaluation</title>
		<link href="http://pyre.third-bit.com/blog/archives/1715.html"/>
		<id>http://pyre.third-bit.com/blog/archives/1715.html</id>
		<updated>2008-08-12T18:49:34+00:00</updated>
		<content type="html">&lt;p&gt;I finally got a summary of graduate students feedback on the consulting course I ran this past winter.  It was pretty good overall&amp;#8212;on a scale of 1-5, the responses were:&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;How much background is required to successfully complete this course?&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Lots&lt;/td&gt;
&lt;td&gt;2.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How easy was it to obtain details/background needed to supplement the lecture material?&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;Hard&lt;/td&gt;
&lt;td&gt;2.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Did the term work increase your understanding of the material?&lt;/td&gt;
&lt;td&gt;Not at all&lt;/td&gt;
&lt;td&gt;Very much&lt;/td&gt;
&lt;td&gt;4.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The material was presented:&lt;/td&gt;
&lt;td&gt;Too slowly&lt;/td&gt;
&lt;td&gt;Too fast&lt;/td&gt;
&lt;td&gt;3.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The material was:&lt;/td&gt;
&lt;td&gt;Too broad&lt;/td&gt;
&lt;td&gt;Too specialized&lt;/td&gt;
&lt;td&gt;2.8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Was the workload:&lt;/td&gt;
&lt;td&gt;Too light&lt;/td&gt;
&lt;td&gt;Too heavy&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How well organized or prepared was the lecturer?&lt;/td&gt;
&lt;td&gt;Not at all&lt;/td&gt;
&lt;td&gt;Very&lt;/td&gt;
&lt;td&gt;4.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How satisfied were you with the lecturer?&lt;/td&gt;
&lt;td&gt;Not at all&lt;/td&gt;
&lt;td&gt;Very&lt;/td&gt;
&lt;td&gt;4.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Overall rating of the course&lt;/td&gt;
&lt;td&gt;Bad&lt;/td&gt;
&lt;td&gt;Great&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What resources did you use heavily for the course?&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Lectures&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Text&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Papers&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Reference Books&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Course Notes&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Friends&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Lecturer&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;TA&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Internet&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Advice to people who are considering the course in the future:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If there’s a project you’re interested in or something you want to learn, this is a great way to spend time doing it and getting a course credit at the same time.&lt;/li&gt;
&lt;li&gt;Great course. Find a good project and give &amp;#8216;er.&lt;/li&gt;
&lt;li&gt;This course is what you make of it. You can mold the course in order to get out more of what you are interested in. I found this freedom great!&lt;/li&gt;
&lt;li&gt;Lots of projects to choose from.&lt;/li&gt;
&lt;li&gt;Good if you want some public speaking experience.&lt;/li&gt;
&lt;li&gt;This course is very good for undergraduate students. It will enhance their coding skills and give them a good opportunity to find a job (by linking them to people in industry). If you are a graduate student and your thesis involves building an application, it’s a very good chance to pass a course as you are doing so.&lt;/li&gt;
&lt;li&gt;Great course. You will learn a lot, but make sure you make realistic estimates of how long everything will take, otherwise it will be too much work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;General Comments &amp;#8212; Good&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provides great insight into large project development.&lt;/li&gt;
&lt;li&gt;Lecturer was outstanding!&lt;/li&gt;
&lt;li&gt;Interesting discussions.&lt;/li&gt;
&lt;li&gt;You can do many different things (develop applications) in this course.&lt;/li&gt;
&lt;li&gt;Learn a lot; things you won’t learn in any other course.&lt;/li&gt;
&lt;li&gt;Hands-on learning and real-world experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;General Comments &amp;#8212; Bad&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Very code intensive, not very appropriate for grad students if the project is irrelevant to their research.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;#8217;m now looking for project ideas for students in the fall &amp;#8212; if you&amp;#8217;re interested, please drop me a line.&lt;/p&gt;</content>
		<author>
			<name>Greg Wilson</name>
			<uri>http://pyre.third-bit.com/blog</uri>
		</author>
		<source>
			<title type="html">The Third Bit</title>
			<subtitle type="html">Data is zeroes and ones -- software is zeroes and ones and hard work.</subtitle>
			<link rel="self" href="http://pyre.third-bit.com/blog/feed/"/>
			<id>http://pyre.third-bit.com/blog/feed/</id>
			<updated>2008-08-27T01:46:11+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Wrapping Up</title>
		<link href="http://pyre.third-bit.com/blog/archives/1714.html"/>
		<id>http://pyre.third-bit.com/blog/archives/1714.html</id>
		<updated>2008-08-12T14:36:45+00:00</updated>
		<content type="html">&lt;p&gt;The summer is coming to an end, so students are posting screencasts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Matthew Basset: &lt;a href=&quot;http://hackystat-sensor-tfs.googlecode.com/svn/wiki/Video/Demo.swf&quot;&gt;Team Foundation Server plugin for Hackystat&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Qi Yang: &lt;a href=&quot;http://summerwebcat.wordpress.com/2008/08/07/showntell/&quot;&gt;Web-CAT&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Ming Chow and Wenbing Li: &lt;a href=&quot;http://blip.tv/file/1167102/&quot;&gt;FlareFlow SQL Query Builder&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Previously posted:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nicole Allard: &lt;a href=&quot;http://youtube.com/watch?v=XbleLff3ydI&quot;&gt;feature diagrams plugin for Eclipse&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Nick Jamil: &lt;a href=&quot;http://drpnewt.wordpress.com/2008/07/17/newt-screencast-2/&quot;&gt;a customizable ticketing system for DrProject&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&amp;#8217;s been another great summer&amp;#8212;I&amp;#8217;m proud to have worked with them all.&lt;/p&gt;</content>
		<author>
			<name>Greg Wilson</name>
			<uri>http://pyre.third-bit.com/blog</uri>
		</author>
		<source>
			<title type="html">The Third Bit</title>
			<subtitle type="html">Data is zeroes and ones -- software is zeroes and ones and hard work.</subtitle>
			<link rel="self" href="http://pyre.third-bit.com/blog/feed/"/>
			<id>http://pyre.third-bit.com/blog/feed/</id>
			<updated>2008-08-27T01:46:11+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">[issue2776] urllib2.urlopen() gets confused with path with // in it</title>
		<link href="http://urllib-gsoc.blogspot.com/2008/08/issue2776-urllib2urlopen-gets-confused.html"/>
		<id>tag:blogger.com,1999:blog-4574925891333430710.post-6458754744964563111</id>
		<updated>2008-08-12T10:25:04+00:00</updated>
		<content type="html">I played around with pdb module today to debug this issue. pdb is really&lt;br /&gt;helpful.&lt;br /&gt;Here's how the control goes.&lt;br /&gt;1) There is an url with two '//'s in the path.&lt;br /&gt;2) The call is data = urllib2.urlopen(url).read()&lt;br /&gt;3) urlopen calls the build_opener. build_opener builds the opener using (tuple)&lt;br /&gt;of handlers.&lt;br /&gt;4) opener is an instance of OpenerDirector() and has default HTTPHandler and&lt;br /&gt;HTTPSHandler.&lt;br /&gt;5) When the Request call is made and the request has 'http' protocol, then&lt;br /&gt;http_request method is called.&lt;br /&gt;6) HTTPHandler has http_request method which is&lt;br /&gt;AbstractHTTPHandler.do_request_&lt;p&gt;Now, for this issue we get to the do_request_ method and see that&lt;p&gt;7) host is set in the do_request_ method in the get_host() call.&lt;br /&gt;8) request.get_selector() is the call which is causing this particular issue&lt;br /&gt;of &amp;quot;urllib2 getting confused with path containing //&amp;quot;.&lt;br /&gt;.get_selector() method returns self.__r_host.&lt;br /&gt;Now, when proxy is set using set_proxy(), self.__r_host is self.__original (&lt;br /&gt;The original complete url itself), so the get_selector() call is returns the&lt;br /&gt;sel_url properly and we can get teh host from the splithost() call on teh&lt;br /&gt;sel_url.&lt;p&gt;When proxy is not set, and the url contains '//' in the path segment, then&lt;br /&gt;.get_host() (step 7) call would have seperated the self.host and self.__r_host&lt;br /&gt;(it pointing to the rest of the url) and .get_selector() simply returns this&lt;br /&gt;(self.__r_host, rest of the url expect host. Thus causing call to fail.&lt;p&gt;9) Before the fix, request.add_unredirected_header('Host', sel_host or host)&lt;br /&gt;had the escape mechanism set for proper urls wherein with sel_host is not set&lt;br /&gt;and the host is used.  Unfortunately, that failed when this bug caused sel_host&lt;br /&gt;to be set to self.__r_host and Host in the headers was being setup wrongly (&lt;br /&gt;rest of the url).&lt;p&gt;The patch which was attached appropriately fixed the issue. I modified and&lt;br /&gt;included for py3k.&lt;p&gt;&lt;br /&gt;&amp;gt; &lt;br /&gt;&amp;gt; I could reproduce this issue on trunk and p3k branch. The patch attached&lt;br /&gt;&amp;gt; by Adrianna Pinska &amp;quot;appropriately&amp;quot; fixes this issue. I agree with the&lt;br /&gt;&amp;gt; logic. Attaching the patch for py3k with the same fix.&lt;br /&gt;&amp;gt; &lt;br /&gt;&amp;gt; Thanks,&lt;br /&gt;&amp;gt; Senthil&lt;br /&gt;&amp;gt; &lt;br /&gt;&amp;gt; Added file: &lt;a href=&quot;http://bugs.python.org/file11103/issue2776-py3k.diff&quot;&gt;http://bugs.python.org/file11103/issue2776-py3k.diff&lt;/a&gt;&lt;br /&gt;&amp;gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>orsenthil</name>
			<email>noreply@blogger.com</email>
			<uri>http://urllib-gsoc.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Python urllib - Google Summer of Code 2008</title>
			<link rel="self" href="http://urllib-gsoc.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-4574925891333430710</id>
			<updated>2008-08-15T01:57:21+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Last week - August 11, 2008</title>
		<link href="http://gpolo.ath.cx:81/projects/ttk_to_tkinter/news#Lastweek"/>
		<id>tag:gpolo.ath.cx,2008-08-11:/projects/ttk_to_tkinter/news/Lastweek</id>
		<updated>2008-08-11T21:39:37+00:00</updated>
		<content type="html">Hello again,

Today I've marked the project as complete, even though I haven't touched its code since last wednesday (probably). The remaining goal was related to IDLE, for which I had a big patch that was sent to its maillist last monday and got no complaints (and no other feedback either) yet, and I've been using it here with all these changes without apparent problems. So, as I see, this GSoC project can be marked as complete now.

I hope to write more news here in the future, although it won't be weekly news, and those will probably be related to updates in the ttk wrapper (changes caused by Tk 8.6, etc). Also, I promise you the news will have better titles/subtitles than the current ones.

Finally, thanks everyone :)</content>
		<author>
			<name>Guilherme Polo</name>
			<email>ggpolo@gmail.com</email>
			<uri>http://gpolo.ath.cx/projects/ttk_to_tkinter</uri>
		</author>
		<source>
			<title type="html">Bringing Ttk to Tkinter</title>
			<subtitle type="html">A GSoC 2008 project for PSF</subtitle>
			<link rel="self" href="http://gpolo.ath.cx:81/feed/ttk_to_tkinter.xml"/>
			<id>http://gpolo.ath.cx:81/</id>
			<updated>2008-08-26T01:43:17+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Python urllib bugs roundup</title>
		<link href="http://urllib-gsoc.blogspot.com/2008/08/python-urllib-bugs-roundup.html"/>
		<id>tag:blogger.com,1999:blog-4574925891333430710.post-1650854037961406716</id>
		<updated>2008-08-11T18:59:08+00:00</updated>
		<content type="html">From the &lt;a href=&quot;http://urllib-gsoc.blogspot.com/2008/06/urllib-issues-roundup.html&quot;&gt;previous post&lt;/a&gt; of bugs round up, &lt;span&gt;finished activities&lt;/span&gt; (bugs which are closed now) include:&lt;br /&gt;&lt;br /&gt;* http://bugs.python.org/issue1432 - Strange Behaviour of urlparse.urljoin&lt;br /&gt;* http://bugs.python.org/issue2275 - urllib2 header capitalization.&lt;br /&gt;* http://bugs.python.org/issue2916 - urlgrabber.grabber calls setdefaulttimeout&lt;br /&gt;* http://bugs.python.org/issue2195 - urlparse() does not handle URLs with port numbers properly. - Duplicate issue.&lt;br /&gt;* http://bugs.python.org/issue2829 - Copy cgi.parse_qs() to urllib.parse - Duplicate of issue600362.&lt;br /&gt;* http://bugs.python.org/issue2885 - Create the urllib package. (but the tests are still named &lt;span&gt;test_urllib2, test_urlparse&lt;/span&gt; etc. I shall discuss with py-dev if names changes in tests is okay before beta3 and give a attempt).&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Activities TODO:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;High- Priority:&lt;br /&gt;&lt;br /&gt;Now, the list of bugs which are partially completed and requires addressing of some issues mentioned in the patches.These would take up some higher priority, as addressing would result in closure sooner.&lt;br /&gt;&lt;br /&gt;* http://bugs.python.org/issue600362 - relocate cgi.parse_qs() into urlparse&lt;br /&gt;* http://bugs.python.org/issue2776 -  urllib2.urlopen() gets confused with path with // in it&lt;br /&gt;* http://bugs.python.org/issue2756 - urllib2 add_header fails with existing unredirected_header      Patch attached.&lt;br /&gt;* http://bugs.python.org/issue2464 -  urllib2 can't handle http://www.wikispaces.com&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Plan:&lt;/span&gt; &lt;br /&gt;I shall attempt to address all these issues before the release of Beta3 (That should be either on August 15 / August 23)&lt;br /&gt;&lt;br /&gt;The following were some of the &lt;span&gt;main issues&lt;/span&gt; to be taken up during G-SOC.&lt;br /&gt;I see that as I have understood RFC 3986 better, I can work on issue1591035. I shall work on it on the branch and then discuss for inclusion in the trunk.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Feature Requests:&lt;br /&gt;&lt;br /&gt;* http://bugs.python.org/issue1591035 - update urlparse to RFC 3986.&lt;span&gt;Plan:&lt;/span&gt; By August 23.&lt;br /&gt;* http://bugs.python.org/issue1462525 - URI parsing library - This will depend upon the previous issue, so we can assume Aug 23 for closure.&lt;br /&gt;* http://bugs.python.org/issue2987 - RFC2732 support for urlparse (e.g. http://[::1]:80/) This is related bug again and will conclude by the same time-line.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I shall take up the following listed bugs after completion of the above.&lt;br /&gt;&lt;br /&gt;* http://bugs.python.org/issue1448934 - urllib2+https+proxy not working. &lt;br /&gt;* http://bugs.python.org/issue1424152 - urllib/urllib2: HTTPS over (Squid) Proxy fails&lt;br /&gt;* http://bugs.python.org/issue1675455 - Use getaddrinfo() in urllib2.py for IPv6 support. Patch provided.&lt;br /&gt;&lt;br /&gt;Low priority.&lt;br /&gt;* http://bugs.python.org/issue1285086 - urllib.quote is too slow</content>
		<author>
			<name>orsenthil</name>
			<email>noreply@blogger.com</email>
			<uri>http://urllib-gsoc.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Python urllib - Google Summer of Code 2008</title>
			<link rel="self" href="http://urllib-gsoc.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-4574925891333430710</id>
			<updated>2008-08-15T01:57:21+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Issue 3300</title>
		<link href="http://urllib-gsoc.blogspot.com/2008/08/issue-3300.html"/>
		<id>tag:blogger.com,1999:blog-4574925891333430710.post-2288523657764714442</id>
		<updated>2008-08-11T18:23:23+00:00</updated>
		<content type="html">There is a good amount of discussion going around with&lt;br /&gt;&lt;a href=&quot;http://bugs.python.org/issue3300&quot;&gt;http://bugs.python.org/issue3300&lt;/a&gt;, I had been following from the start and had&lt;br /&gt;an inclination towards quote and quote_plus to support UTF-8. But as the&lt;br /&gt;discussion went further, without strong point on which stance to take, I had to&lt;br /&gt;refresh and improve my knowledge of unicode support in Python and espcially&lt;br /&gt;Unicode Strings in Python 3.0. Hopefully this will come handy in other issues.&lt;p&gt;Here are some notes on Unicode and Python.&lt;p&gt;&lt;br /&gt;What is Unicode?&lt;br /&gt;In Computing, Unicode is an Industry Standard allowing Computers to&lt;br /&gt;consistently display and manipulate text expressed in most of the world's&lt;br /&gt;writing systems.&lt;p&gt;Unicode provides a unique number for every character,&lt;br /&gt;no matter what the platform,&lt;br /&gt;no matter what the program,&lt;br /&gt;no matter what the language.&lt;p&gt;What is Unicode Character Set?&lt;p&gt;What is character encoding?&lt;p&gt;What is Encoding?&lt;br /&gt;Converting a Character (or Something) to Number, because Computer internally&lt;br /&gt;store numbers only.&lt;p&gt;Unicode Strings are a set of Code Points represented from 0x000000 to 0x10FFFF.&lt;br /&gt;This sequence needs to be represented as a set of bytes ( meaning, values from&lt;br /&gt;0-255) in memory. The rules for translating the Unicode String into sequence of&lt;br /&gt;bytes is called encoding.&lt;p&gt;The representation in the number format is required for homogenuity, otherwise&lt;br /&gt;it will be difficult to convert to and from.&lt;p&gt;&lt;br /&gt;What is Unicode Transformation Format?&lt;p&gt;What is UTF-8?&lt;p&gt;Unicode can be implented using a many character encodings. The most commonly&lt;br /&gt;used one is utf-8, which uses 1 byte for all ASCII characters, which have the&lt;br /&gt;same code values as in the standard ASCII encoding, and up to 4 bytes for other&lt;br /&gt;characters.&lt;p&gt;When it \u the remaining the Unicode Code points which you will find defined&lt;br /&gt;internationally from &lt;a href=&quot;http://unicode.org&quot;&gt;unicode.org&lt;/a&gt;&lt;p&gt;Now, how to represent them in BINARY (Coz: Computer!), is the trick and you&lt;br /&gt;will have different encodings to do so.&lt;br /&gt;So UTF-8 is one encoding and UTF-16,ASCII are all different encodings.&lt;p&gt;So you construct a unicode string &lt;br /&gt;mystr = u'\u0065\u0066\u0067\u0068'&lt;p&gt;mystr is a unicode object. It does not make sense to print it.&lt;br /&gt;But if you wish to see the object, use repr&lt;br /&gt;print repr(mystr)&lt;p&gt;Now, the unicode object can be coverted to Binary using encoding, and let us&lt;br /&gt;use 'ascii' and 'utf-8'&lt;br /&gt;so you would do &lt;br /&gt;asciistr = mystr.encode('ascii')&lt;br /&gt;utf8str = mystr.encode('utf-8')&lt;p&gt;Now, it is string object in BINARY&lt;p&gt;let us print asciistr, and utf8str&lt;p&gt;STILL NEED MORE UNDERSTANDING.&lt;p&gt;&lt;a href=&quot;http://boodebr.org/main/python/all-about-python-and-unicode&quot;&gt;http://boodebr.org/main/python/all-about-python-and-unicode&lt;/a&gt;&lt;p&gt;A Unicode string holds characters from the Unicode character set.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>orsenthil</name>
			<email>noreply@blogger.com</email>
			<uri>http://urllib-gsoc.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Python urllib - Google Summer of Code 2008</title>
			<link rel="self" href="http://urllib-gsoc.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-4574925891333430710</id>
			<updated>2008-08-15T01:57:21+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">unni</title>
		<link href="http://ofpenguinsandpeanuts.wordpress.com/2008/08/11/a-nations-hero/"/>
		<id>http://ofpenguinsandpeanuts.wordpress.com/?p=92</id>
		<updated>2008-08-11T17:11:22+00:00</updated>
		<content type="html">&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Abhinav Bindra once again reminds a nation what pride actually is.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://ofpenguinsandpeanuts.files.wordpress.com/2008/08/bindra_300.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-93&quot; src=&quot;http://ofpenguinsandpeanuts.files.wordpress.com/2008/08/bindra_300.jpg?w=300&amp;amp;h=398&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;398&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hearty congrats my dear fellow&amp;#8230;&amp;#8230;&lt;/p&gt;
&lt;p&gt;Check out &lt;a href=&quot;http://abhinavbindra.blogspot.com&quot;&gt;Abhinav&amp;#8217;s blog&lt;/a&gt;&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/ofpenguinsandpeanuts.wordpress.com/92/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/ofpenguinsandpeanuts.wordpress.com/92/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/ofpenguinsandpeanuts.wordpress.com/92/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ofpenguinsandpeanuts.wordpress.com/92/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/ofpenguinsandpeanuts.wordpress.com/92/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ofpenguinsandpeanuts.wordpress.com/92/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/ofpenguinsandpeanuts.wordpress.com/92/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ofpenguinsandpeanuts.wordpress.com/92/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/ofpenguinsandpeanuts.wordpress.com/92/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ofpenguinsandpeanuts.wordpress.com/92/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/ofpenguinsandpeanuts.wordpress.com/92/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ofpenguinsandpeanuts.wordpress.com/92/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ofpenguinsandpeanuts.wordpress.com&amp;amp;blog=3141338&amp;amp;post=92&amp;amp;subd=ofpenguinsandpeanuts&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Unni</name>
			<uri>http://ofpenguinsandpeanuts.wordpress.com</uri>
		</author>
		<source>
			<title type="html">And the Geek Shall Inherit the Earth</title>
			<subtitle type="html">doodle out</subtitle>
			<link rel="self" href="http://ofpenguinsandpeanuts.wordpress.com/feed/"/>
			<id>http://ofpenguinsandpeanuts.wordpress.com/feed/</id>
			<updated>2008-08-28T07:56:17+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">SciFoo, eGY, and Splitting</title>
		<link href="http://pyre.third-bit.com/blog/archives/1713.html"/>
		<id>http://pyre.third-bit.com/blog/archives/1713.html</id>
		<updated>2008-08-11T10:03:18+00:00</updated>
		<content type="html">&lt;ol&gt;
&lt;li&gt;OpenWetware has posted &lt;a href=&quot;http://blog.openwetware.org/scienceintheopen/2008/08/11/notes-from-scifoo&quot;&gt;notes from SciFoo&lt;/a&gt;. I&amp;#8217;m sorry I missed it; looking forward to &amp;#8220;&lt;a href=&quot;http://www.science21stcentury.org/&quot;&gt;Science in the 21st Century&lt;/a&gt;&amp;#8221; even more than before.&lt;/li&gt;
&lt;li&gt;Those notes pointed me at the &lt;a href=&quot;http://egy.org/declaration.php&quot;&gt;Electronic Geophysical Year&lt;/a&gt; declaration. I agree in principle, but think that something like the Open Source Initiative&amp;#8217;s &amp;#8220;certified open&amp;#8221; &lt;a href=&quot;http://pyre.third-bit.com/blog/archives/1677.html&quot;&gt;badge&lt;/a&gt; would be more useful than UN-ish statements like, &amp;#8220;Effort should be made to identify and rescue critical Earth system data and ensure persistent access to them.&amp;#8221;&lt;/li&gt;
&lt;li&gt;We&amp;#8217;re very close to re-launching the &lt;a href=&quot;http://swc.scipy.org&quot;&gt;Software Carpentry&lt;/a&gt; site as a wiki, and I&amp;#8217;m wondering if I should move the science-and-computing thread out of this blog into a separate one at that site.  Thoughts?&lt;/li&gt;
&lt;/ol&gt;</content>
		<author>
			<name>Greg Wilson</name>
			<uri>http://pyre.third-bit.com/blog</uri>
		</author>
		<source>
			<title type="html">The Third Bit</title>
			<subtitle type="html">Data is zeroes and ones -- software is zeroes and ones and hard work.</subtitle>
			<link rel="self" href="http://pyre.third-bit.com/blog/feed/"/>
			<id>http://pyre.third-bit.com/blog/feed/</id>
			<updated>2008-08-27T01:46:11+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">ComboBox'es</title>
		<link href="http://gsoc-sugarbot.blogspot.com/2008/08/comboboxes.html"/>
		<id>tag:blogger.com,1999:blog-8699851592369026373.post-7189488546712550178</id>
		<updated>2008-08-11T01:53:31+00:00</updated>
		<content type="html">Working on select capability of ComboBox and similar widgets tonight.  It isn't a problem in itself, but trying to keep the code as flexible and clean as possible is making it into a problem.</content>
		<author>
			<name>Zach</name>
			<email>noreply@blogger.com</email>
			<uri>http://gsoc-sugarbot.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">sugarbot</title>
			<link rel="self" href="http://gsoc-sugarbot.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-8699851592369026373</id>
			<updated>2008-08-18T07:42:00+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">O'Terror International</title>
		<link href="http://nltkdepparser.blogspot.com/2008/08/oterror-international.html"/>
		<id>tag:blogger.com,1999:blog-231647158825526051.post-667803615115322283</id>
		<updated>2008-08-09T11:44:38+00:00</updated>
		<content type="html">I've been silent the past few days because I've had a really wicked flight into NY (via Chicago) which included a disasterous sequence in which a guy broke his overhead luggage bin trying to jam in an oversized backpack, which caused us to sit in the plane while a crew came to fix it, which postponed us long enough for a thunderstorm to settle overhead and delay the flight.  Said thunderstorm then struck our plane with a bolt of lightning (with us in it!) and left our plane &quot;fried&quot; as the captain so eloquently put it.  So I had to stay the night there, had my luggage lost, and all-in-all a lot of time was wasted.&lt;br /&gt;&lt;br /&gt;The good news is that the MST parser appears to be working fine and correctly, which just leaves the nonprojective rule-based parser and the classifier interface as far as meeting the goals outlined in the proposal.  I suppose a corpus reader would also be included in that, depending on how you want to interpret some of what I said in the proposal.  That said, the code and the way that users interface to it is still a little unpolished, and there's a lot I would like to clean up.  Since this, right now, is supposed to be time for review, I'm going to check in what I have as soon as this post is done, and basically open the floor for comments and suggestions.  Because I haven't had time yet to address all these concerns (was just trying to get everything functional first), there are obviously a lot of issues to address that have already been raised.  I'm going to enumerate them here, and edit them once I've fixed/investigated each.  I think most of the higher-level suggestions have been raised, but if you see some bit of code that could be replaced with a more elegant way or could take advantage of some of python's features that I'm probably not familiar with, please let me know.&lt;br /&gt;&lt;br /&gt;1.  No need to use set.Set()&lt;br /&gt;- Done.&lt;br /&gt;&lt;br /&gt;2. Accessor functions shouldn't have a &quot;get_&quot; prefix (in regards to get_prob)&lt;br /&gt;- changed it to compute_prob.  As it takes a DepGraph object and computes its probability, would it still be refered to as an accessor function?  Either way, I probably made this mistake in a few areas elsewhere.&lt;br /&gt;&lt;br /&gt;3. Is the ChartCell class motivated?&lt;br /&gt;- Not really.  but on second thought if the statistical projective parser were to support filtering&lt;br /&gt;out unlikely parses during the parsing process this would be the class that would take place in.  It seems it'd be worth keeping around simply because it does not interfere with anything else and there's pretty low overhead involved, but could be extended to do interesting things.&lt;br /&gt;&lt;br /&gt;4. Change contains() to __contains__() in DependencyGrammar&lt;br /&gt;  - Added a __contains__() variant, though I'm still not sure how to call it using the &quot;in&quot;&lt;br /&gt;syntax since it takes two arguments.&lt;br /&gt;&lt;br /&gt;5. Consider indexing the rhs of productions&lt;br /&gt;  - good point.  Possibly address after GSoC&lt;br /&gt;&lt;br /&gt;6. Is DependencyGrammar.contains_exactly() correct?&lt;br /&gt;- No, it was at one point.  Will be fixed with reintroduction of arity-based filtering&lt;br /&gt;&lt;br /&gt;7. DependencyGrammar superclass?&lt;br /&gt;- On second thought, they only share a list of productions, and the contains() function&lt;br /&gt;which is the only function that operates on them works in a different way.  Would this&lt;br /&gt;be useful for anything besides showing a conceptual link?&lt;br /&gt;&lt;br /&gt;8. Replace dict with defaultdict, has_key() with in&lt;br /&gt;- I used them everywhere, so this will take a while&lt;br /&gt;&lt;br /&gt;9.  Include a dependency-parsed corpus?&lt;br /&gt; - Have it, just don't know where to put it&lt;br /&gt;&lt;br /&gt;10.  Corpus reader?&lt;br /&gt;- The code's there, can package it properly when the corpus is commited&lt;br /&gt;&lt;br /&gt;11. Spaces for tabs&lt;br /&gt;- I have a quick script to fix this, will run it before the move to nltk&lt;br /&gt;&lt;br /&gt;12.  Standard demo code wrapper&lt;br /&gt;- Done.&lt;br /&gt;&lt;br /&gt;In addition to that there are some interfaces to write, and some commenting to do.  I'm hoping to have all that down by the 11th, and use the remaining time for doctests.  Also, I've noticed some files (cfg.py is a good example) contain a lot of different classes.  It's hard for me to develop like that so I've split my main parser file into two, but I would typically divide even further if I was coding in Java etc.  Is there a motivation for having it all in one file?&lt;br /&gt;&lt;br /&gt;Another issue I wanted to quickly address was why I'm choosing to implement the rule-based nonprojective.  I've had some discussions about this, and it's my own opinion as well, that the rule-based nonprojective parser is..not exactly in high demand.  While I thought this time would be better spent on visualization for the current parsers, I don't think there's enough time to actually deliver anything in the way of a polished GUI in the remaining time.  I decided I'd rather implement the nonprojective rule-based simply so that the proposal goals are entirely met, and some obvious progress is actually made with my remaining GSoC time.  I sometimes forget that there's nothing stopping me from contributing that after GSoC, and if it would be pedagogically useful (as it seems it would be), I would certainly spend some off-the-clock, non-stressed time on visualization and user-guides post-GSoC.&lt;br /&gt;Cheers,&lt;br /&gt;Jason</content>
		<author>
			<name>Jason Narad</name>
			<email>noreply@blogger.com</email>
			<uri>http://nltkdepparser.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">GSoC 08 - NLTK Worklog</title>
			<link rel="self" href="http://nltkdepparser.blogspot.com/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-231647158825526051</id>
			<updated>2008-08-09T19:15:06+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Simplified admin menu and enhanced users/projects pages</title>
		<link href="http://qzdrproject.wordpress.com/2008/08/08/simplified-admin-menu-and-enhanced-usersprojects-pages/"/>
		<id>http://qzdrproject.wordpress.com/?p=81</id>
		<updated>2008-08-08T18:25:50+00:00</updated>
		<content type="html">&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;As per Liz&amp;#8217;s suggestions (&lt;a href=&quot;http://www.lizblankenship.com/drproject/admin_panelv5/Admin_menu.html&quot;&gt;#0&lt;/a&gt;, &lt;a href=&quot;http://www.lizblankenship.com/drproject/admin_panelv5/Users.html&quot;&gt;#1&lt;/a&gt;, &lt;a href=&quot;http://www.lizblankenship.com/drproject/admin_panelv5/Projects.html&quot;&gt;#2&lt;/a&gt;), I have simplifed the admin menu, and added statuses and actions to the list users page and the list projects pages. (Implemented in changeset 5663.) Screenshots:&lt;/p&gt;
&lt;p&gt;The reduced admin menu:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://qzdrproject.files.wordpress.com/2008/08/admin-menu.png&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-82&quot; src=&quot;http://qzdrproject.files.wordpress.com/2008/08/admin-menu.png?w=212&amp;amp;h=171&quot; alt=&quot;&quot; width=&quot;212&quot; height=&quot;171&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Manage Users page:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://qzdrproject.files.wordpress.com/2008/08/manage-users.png&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-83&quot; src=&quot;http://qzdrproject.files.wordpress.com/2008/08/manage-users.png?w=183&amp;amp;h=300&quot; alt=&quot;&quot; width=&quot;183&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Manage Projects page:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://qzdrproject.files.wordpress.com/2008/08/manage-projects.png&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-84&quot; src=&quot;http://qzdrproject.files.wordpress.com/2008/08/manage-projects.png?w=300&amp;amp;h=192&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;192&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Manage Roles and Capabilities page:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://qzdrproject.files.wordpress.com/2008/08/manage-roles-and-capabilities.png&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-85&quot; src=&quot;http://qzdrproject.files.wordpress.com/2008/08/manage-roles-and-capabilities.png?w=300&amp;amp;h=294&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;294&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/qzdrproject.wordpress.com/81/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/qzdrproject.wordpress.com/81/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/qzdrproject.wordpress.com/81/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/qzdrproject.wordpress.com/81/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/qzdrproject.wordpress.com/81/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/qzdrproject.wordpress.com/81/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/qzdrproject.wordpress.com/81/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/qzdrproject.wordpress.com/81/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/qzdrproject.wordpress.com/81/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/qzdrproject.wordpress.com/81/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/qzdrproject.wordpress.com/81/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/qzdrproject.wordpress.com/81/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=qzdrproject.wordpress.com&amp;amp;blog=3765766&amp;amp;post=81&amp;amp;subd=qzdrproject&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Blake Winton</name>
			<uri>http://qzdrproject.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Quizzy Drop</title>
			<subtitle type="html">QZ's DrProject development blog</subtitle>
			<link rel="self" href="http://qzdrproject.wordpress.com/feed/"/>
			<id>http://qzdrproject.wordpress.com/feed/</id>
			<updated>2008-08-27T19:45:19+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Wrapping it up</title>
		<link href="http://fredrik-j.blogspot.com/2008/08/wrapping-it-up.html"/>
		<id>tag:blogger.com,1999:blog-4754734402679928849.post-6079514938306343383</id>
		<updated>2008-08-07T16:56:36+00:00</updated>
		<content type="html">The final deadline of GSoC is approaching quickly. Fortunately, I'm almost finished with my project; the main part of the code was pushed in a few days ago, and in the coming days I only expect to fix bugs and write documentation.&lt;br /&gt;&lt;br /&gt;Here are some examples of things that should now work with the hg version of SymPy:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; from sympy import *&lt;br /&gt;&gt;&gt;&gt; var('n x')&lt;br /&gt;(n, x)&lt;br /&gt;&gt;&gt;&gt; (log(1+I)/pi).evalf(50)&lt;br /&gt;0.11031780007632579669822821605899884549134487436483 + 0.25*I&lt;br /&gt;&gt;&gt;&gt; (atan(exp(1000))-pi/2).evalf(15, maxprec=1000)&lt;br /&gt;-5.07595889754946e-435&lt;br /&gt;&gt;&gt;&gt; Integral(exp(-x**2), (x, -oo, oo)).evalf(50)&lt;br /&gt;1.7724538509055160272981674833411451827975494561224&lt;br /&gt;&gt;&gt;&gt; Integral(sin(1/x), (x, 0, 1)).transform(x, 1/x).evalf(25, quad='osc')&lt;br /&gt;0.5040670619069283719898561&lt;br /&gt;&gt;&gt;&gt; Sum(1/(9*n**2+4*n+6), (n, 0, oo)).evalf(50)&lt;br /&gt;0.27865709939940301230611638967893239422996461876558&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Besides standard formula evaluation, numerical integration is supported, as is summation of infinite hypergeometric series.&lt;br /&gt;&lt;br /&gt;Numerical differentiation and summation of generic infinite series is also on its way. The following works with my local copy:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; Sum(1/n-log(1+1/n), (n, 1, oo)).evalf(50)&lt;br /&gt;0.57721566490153286060651209008240243104215933593992&lt;br /&gt;&gt;&gt;&gt; Derivative(-gamma(x), x).evalf(50, subs={x:1})&lt;br /&gt;0.57721566490153286060651209008240243104215933593992&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The series is summed using the Euler-Maclaurin formula; in fact, the high-order derivatives are computed symbolically behind the scenes. (Because of the need for high-order derivatives, the Euler-Maclaurin formula makes much more sense in the context of a CAS than purely numerically.) This algorithm does have its drawbacks, so at some points pure extrapolation methods (which are already used for slowly convergent hypergeometric series) will be supported as well.&lt;br /&gt;&lt;br /&gt;The use of an adaptive algorithm for evalf turns out to be especially useful for numerical differentiation, as one can just directly use a finite difference formula with a tiny step size, without worrying about cancellation error.&lt;br /&gt;&lt;br /&gt;There is a lot more to be said about the details, but I'm leaving that for the to-be-written documentation.</content>
		<author>
			<name>Fredrik Johansson</name>
			<email>fredrik.johansson@gmail.com</email>
			<uri>http://fredrik-j.blogspot.com/search/label/gsoc</uri>
		</author>
		<source>
			<title type="html">Fredrik Johansson</title>
			<link rel="self" href="http://fredrik-j.blogspot.com/feeds/posts/default/-/gsoc"/>
			<id>tag:blogger.com,1999:blog-4754734402679928849</id>
			<updated>2008-08-07T19:16:20+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Managing Meetings</title>
		<link href="http://pyre.third-bit.com/blog/archives/1712.html"/>
		<id>http://pyre.third-bit.com/blog/archives/1712.html</id>
		<updated>2008-08-07T13:07:35+00:00</updated>
		<content type="html">&lt;p&gt;A random conversation about John Cleese and training videos at &lt;a href=&quot;http://www.agile2008.org/&quot;&gt;Agile&amp;#8217;08&lt;/a&gt; on Tuesday reminded me that I wanted to post about something neat I saw at &lt;a href=&quot;http://www.associationforsoftwaretesting.org/drupal/cast2008&quot;&gt;CAST&amp;#8217;08&lt;/a&gt;. Everyone attending the talks had a red, a yellow, and a green card with a number on them (the same number for all three cards). If you wanted to start a new discussion thread during question time, you raised your green card; if you wanted to add something to the current thread, you raised your yellow card; and if you wanted to interrupt &lt;em&gt;right now&lt;/em&gt;, you raised your red card. In the first two cases, the moderator wrote down your number so s/he could call on you when it was your turn; in the third case, you got to speak right away, but then your red card was taken away, so that you could only interrupt once per session.  It seemed to work pretty well, and I&amp;#8217;ll use it in meetings of my own in future.&lt;/p&gt;
&lt;p&gt;Now, how do we redesign chat clients to achieve the same effect?&lt;/p&gt;</content>
		<author>
			<name>Greg Wilson</name>
			<uri>http://pyre.third-bit.com/blog</uri>
		</author>
		<source>
			<title type="html">The Third Bit</title>
			<subtitle type="html">Data is zeroes and ones -- software is zeroes and ones and hard work.</subtitle>
			<link rel="self" href="http://pyre.third-bit.com/blog/feed/"/>
			<id>http://pyre.third-bit.com/blog/feed/</id>
			<updated>2008-08-27T01:46:11+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Putting a Face to a Name</title>
		<link href="http://pyre.third-bit.com/blog/archives/1711.html"/>
		<id>http://pyre.third-bit.com/blog/archives/1711.html</id>
		<updated>2008-08-07T09:45:01+00:00</updated>
		<content type="html">&lt;p&gt;I had the pleasure yesterday of finally meeting Michael Feathers, author of &lt;a href=&quot;http://www.amazon.com/Working-Effectively-Legacy-Robert-Martin/dp/0131177052&quot;&gt;one of my favorite programming books&lt;/a&gt;, and a contributor to &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;.  Along with a couple of other people, we talked for a bit about &lt;a href=&quot;http://pyre.third-bit.com/blog/not-on-the-shelves&quot;&gt;unwritten books,&lt;/a&gt; software design, and the fact that discussion about the latter seems to have stagnated.  A lot is still being written about how to put code together, but I can&amp;#8217;t remember the last time I heard someone say something on the subject that was genuinely new.&lt;/p&gt;
&lt;p&gt;One thing that &lt;em&gt;was&lt;/em&gt; new 