<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments for P2P Research Institute Blog</title>
	<atom:link href="http://blog.p2presearch.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.p2presearch.com</link>
	<description>whats happening in the peersphere</description>
	<pubDate>Thu, 20 Nov 2008 20:50:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>Comment on Why Python is better than C by Bobby</title>
		<link>http://blog.p2presearch.com/2008/07/17/why-python-is-better-than-c/#comment-22</link>
		<dc:creator>Bobby</dc:creator>
		<pubDate>Sun, 03 Aug 2008 21:06:26 +0000</pubDate>
		<guid isPermaLink="false">http://blog.p2presearch.com/?p=17#comment-22</guid>
		<description>Some of the comparison seems to be about the language itself (memory management), while other parts seem to be about the standard library (sockets, http, threads).  While I can see some value in comparing the standard libraries, it doesn't seem that important to me, as there are plenty of libraries available in C to simplify sockets, http/ftp/etc, various data structures, and such.  It just doesn7t come bundled with the compiler.

It's also worth noting that the python interpreter is not thread-safe (see http://docs.python.org/api/threads.html), so when you create multiple threads, the global interpreter lock means that only one thread will run at a time, even on a multicore or SMP system.</description>
		<content:encoded><![CDATA[<p>Some of the comparison seems to be about the language itself (memory management), while other parts seem to be about the standard library (sockets, http, threads).  While I can see some value in comparing the standard libraries, it doesn&#8217;t seem that important to me, as there are plenty of libraries available in C to simplify sockets, http/ftp/etc, various data structures, and such.  It just doesn7t come bundled with the compiler.</p>
<p>It&#8217;s also worth noting that the python interpreter is not thread-safe (see <a href="http://docs.python.org/api/threads.html" rel="nofollow">http://docs.python.org/api/threads.html</a>), so when you create multiple threads, the global interpreter lock means that only one thread will run at a time, even on a multicore or SMP system.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Why Python is better than C by Niall O'Higgins</title>
		<link>http://blog.p2presearch.com/2008/07/17/why-python-is-better-than-c/#comment-16</link>
		<dc:creator>Niall O'Higgins</dc:creator>
		<pubDate>Fri, 18 Jul 2008 19:32:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.p2presearch.com/?p=17#comment-16</guid>
		<description>Hi Nick,

Of course Python and C are very different.  I admit to being somewhat polemic in tone in this article.  However, I don't think there is anything wrong with a comparison of C and Python in the context of the software I develop - which consists of pieces in both languages.

I don't have hard numbers on the efficiency of Python vs C in specific cases.  I have found that my Bencode parser which is written in YACC/C is about an order of magnitude faster than the equivalent Python parser.

However, the vast majority of my Python programs (and I do not think I am any exception) spend their time waiting on I/O, and so it really seems like performance is equivalent.

For hard numbers on various kinds of work loads, you can always check out the shootout results: 

http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&#038;lang=python&#038;lang2=gcc</description>
		<content:encoded><![CDATA[<p>Hi Nick,</p>
<p>Of course Python and C are very different.  I admit to being somewhat polemic in tone in this article.  However, I don&#8217;t think there is anything wrong with a comparison of C and Python in the context of the software I develop - which consists of pieces in both languages.</p>
<p>I don&#8217;t have hard numbers on the efficiency of Python vs C in specific cases.  I have found that my Bencode parser which is written in YACC/C is about an order of magnitude faster than the equivalent Python parser.</p>
<p>However, the vast majority of my Python programs (and I do not think I am any exception) spend their time waiting on I/O, and so it really seems like performance is equivalent.</p>
<p>For hard numbers on various kinds of work loads, you can always check out the shootout results: </p>
<p><a href="http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&#038;lang=python&#038;lang2=gcc" rel="nofollow">http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&#038;lang=python&#038;lang2=gcc</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Why Python is better than C by Nick</title>
		<link>http://blog.p2presearch.com/2008/07/17/why-python-is-better-than-c/#comment-15</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Fri, 18 Jul 2008 19:04:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.p2presearch.com/?p=17#comment-15</guid>
		<description>Hi, I've found your post interesting. However, I don't think that is appropiate to compare a "high-level-dynamic" language to a low level one. C is all about the imperative paradigm, low level structures, and is also statically typed. Python is about list comprehensions, lambdas, OO-programming AND imperative programming. It's clear to me that a lot of things will be more concise when done with python than with C. But also I think that some problems are better handled with C than Python. Also I (still) find hard to believe that for most cases, (high level) python code can match C performance. I'm not saying that it can't. I'd just like to see some numbers and detailed cases about that. I'm still sticking to C when it comes to performance.</description>
		<content:encoded><![CDATA[<p>Hi, I&#8217;ve found your post interesting. However, I don&#8217;t think that is appropiate to compare a &#8220;high-level-dynamic&#8221; language to a low level one. C is all about the imperative paradigm, low level structures, and is also statically typed. Python is about list comprehensions, lambdas, OO-programming AND imperative programming. It&#8217;s clear to me that a lot of things will be more concise when done with python than with C. But also I think that some problems are better handled with C than Python. Also I (still) find hard to believe that for most cases, (high level) python code can match C performance. I&#8217;m not saying that it can&#8217;t. I&#8217;d just like to see some numbers and detailed cases about that. I&#8217;m still sticking to C when it comes to performance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The most popular things on BitTorrent?  You might be surprised. by charla.bryce</title>
		<link>http://blog.p2presearch.com/2008/06/28/the-most-popular-things-on-bittorrent-you-might-be-surprised/#comment-14</link>
		<dc:creator>charla.bryce</dc:creator>
		<pubDate>Wed, 02 Jul 2008 14:30:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.p2presearch.com/?p=13#comment-14</guid>
		<description>Not really surprising. You can get pr0n in tons of places for free. So there is less of a need to use torrents to get it. You can't really surf the web and find tons of movies, music, and games for free.</description>
		<content:encoded><![CDATA[<p>Not really surprising. You can get pr0n in tons of places for free. So there is less of a need to use torrents to get it. You can&#8217;t really surf the web and find tons of movies, music, and games for free.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Have your software email you when it is in trouble with Python logging by Niall O'Higgins</title>
		<link>http://blog.p2presearch.com/2008/06/29/have-your-software-email-you-when-it-is-in-trouble-with-python-logging/#comment-13</link>
		<dc:creator>Niall O'Higgins</dc:creator>
		<pubDate>Tue, 01 Jul 2008 12:51:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.p2presearch.com/?p=16#comment-13</guid>
		<description>Roderic:  I agree completely that you need to be careful with it.  In this case, I suggest keeping it firmly in mind that logging.critical() == sending an email.

In the case where you really want to know about things at this log level, and you aren't going to get a huge amount of mail (say since the application has exited directly after), it works very well in practice.</description>
		<content:encoded><![CDATA[<p>Roderic:  I agree completely that you need to be careful with it.  In this case, I suggest keeping it firmly in mind that logging.critical() == sending an email.</p>
<p>In the case where you really want to know about things at this log level, and you aren&#8217;t going to get a huge amount of mail (say since the application has exited directly after), it works very well in practice.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Have your software email you when it is in trouble with Python logging by Artur</title>
		<link>http://blog.p2presearch.com/2008/06/29/have-your-software-email-you-when-it-is-in-trouble-with-python-logging/#comment-12</link>
		<dc:creator>Artur</dc:creator>
		<pubDate>Tue, 01 Jul 2008 10:00:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.p2presearch.com/?p=16#comment-12</guid>
		<description>Installing my own exception handler is very useful, I haven't known how to do it, thanks! When using SMTPHandler it is also very useful to customize the subject, eg. you can put level name of logged message:


class _MySMTPHandler(logging.handlers.SMTPHandler):

    def getSubject(self, record):
        from system import contextInfo
        return '%s %s' % (record.levelname, str(contextInfo()))</description>
		<content:encoded><![CDATA[<p>Installing my own exception handler is very useful, I haven&#8217;t known how to do it, thanks! When using SMTPHandler it is also very useful to customize the subject, eg. you can put level name of logged message:</p>
<p>class _MySMTPHandler(logging.handlers.SMTPHandler):</p>
<p>    def getSubject(self, record):<br />
        from system import contextInfo<br />
        return &#8216;%s %s&#8217; % (record.levelname, str(contextInfo()))</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Have your software email you when it is in trouble with Python logging by roderic aharon</title>
		<link>http://blog.p2presearch.com/2008/06/29/have-your-software-email-you-when-it-is-in-trouble-with-python-logging/#comment-10</link>
		<dc:creator>roderic aharon</dc:creator>
		<pubDate>Sun, 29 Jun 2008 21:07:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.p2presearch.com/?p=16#comment-10</guid>
		<description>I've never seen email from a logger *not* be a huge mistake. At least, not in something like web software. One minor bug means your mail server no longer works.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve never seen email from a logger *not* be a huge mistake. At least, not in something like web software. One minor bug means your mail server no longer works.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
