<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: SciPy &#8211; the embarrassing way to code</title>
	<atom:link href="http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/</link>
	<description></description>
	<lastBuildDate>Mon, 15 Feb 2010 14:47:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Habit 3: Complexity Demonstrates Intelligence &#124; Lessons of Failure</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-20175</link>
		<dc:creator>Habit 3: Complexity Demonstrates Intelligence &#124; Lessons of Failure</dc:creator>
		<pubDate>Tue, 17 Nov 2009 15:19:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-20175</guid>
		<description>[...] have one thing in common:  making complex things simpler.  And despite what I read about this Python library experience, simplicity pays for itself down the road.  Being afraid that a simple solution makes you appear [...]</description>
		<content:encoded><![CDATA[<p>[...] have one thing in common:  making complex things simpler.  And despite what I read about this Python library experience, simplicity pays for itself down the road.  Being afraid that a simple solution makes you appear [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shane Legg</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-20163</link>
		<dc:creator>Shane Legg</dc:creator>
		<pubDate>Wed, 11 Nov 2009 14:06:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-20163</guid>
		<description>thanks, fixed</description>
		<content:encoded><![CDATA[<p>thanks, fixed</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: frfgsgfs</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-20162</link>
		<dc:creator>frfgsgfs</dc:creator>
		<pubDate>Wed, 11 Nov 2009 14:02:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-20162</guid>
		<description>&quot;send&quot; should be &quot;spend&quot;</description>
		<content:encoded><![CDATA[<p>&#8220;send&#8221; should be &#8220;spend&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barney</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-20160</link>
		<dc:creator>Barney</dc:creator>
		<pubDate>Wed, 11 Nov 2009 10:32:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-20160</guid>
		<description>Anyone can create complicated code, very few can write simple code.</description>
		<content:encoded><![CDATA[<p>Anyone can create complicated code, very few can write simple code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: df</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-20159</link>
		<dc:creator>df</dc:creator>
		<pubDate>Wed, 11 Nov 2009 07:06:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-20159</guid>
		<description>kbob,

It was Blaise Pascal that said &quot;The present letter is a very long one, simply because I had no leisure to make it shorter. &quot; 

See: http://books.google.com/books?id=hUMRAAAAYAAJ&amp;pg=PA339#v=onepage&amp;q=&amp;f=false

in the penultimate paragraph.</description>
		<content:encoded><![CDATA[<p>kbob,</p>
<p>It was Blaise Pascal that said &#8220;The present letter is a very long one, simply because I had no leisure to make it shorter. &#8221; </p>
<p>See: <a href="http://books.google.com/books?id=hUMRAAAAYAAJ&amp;pg=PA339#v=onepage&amp;q=&amp;f=false" rel="nofollow">http://books.google.com/books?id=hUMRAAAAYAAJ&amp;pg=PA339#v=onepage&amp;q=&amp;f=false</a></p>
<p>in the penultimate paragraph.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kbob</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-20158</link>
		<dc:creator>kbob</dc:creator>
		<pubDate>Wed, 11 Nov 2009 05:56:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-20158</guid>
		<description>&quot;I&#039;m sorry I wrote such a long letter.   I did not have time to write a short one.&quot;  -- Abraham Lincoln(?)

Seems apt.</description>
		<content:encoded><![CDATA[<p>&#8220;I&#8217;m sorry I wrote such a long letter.   I did not have time to write a short one.&#8221;  &#8212; Abraham Lincoln(?)</p>
<p>Seems apt.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Coding well is embarrassing &#171; Sho Fukamachi Online</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-20156</link>
		<dc:creator>Coding well is embarrassing &#171; Sho Fukamachi Online</dc:creator>
		<pubDate>Wed, 11 Nov 2009 03:33:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-20156</guid>
		<description>[...] I don&#8217;t use SciPy (a science/maths programming library), or indeed Python much at all, but I can closely relate to the experience of the author of this post. [...]</description>
		<content:encoded><![CDATA[<p>[...] I don&#8217;t use SciPy (a science/maths programming library), or indeed Python much at all, but I can closely relate to the experience of the author of this post. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jual mesin fotocopy</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-20050</link>
		<dc:creator>jual mesin fotocopy</dc:creator>
		<pubDate>Sat, 17 Oct 2009 17:12:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-20050</guid>
		<description>yeah its quite bit embarrassing, this a great lesson and will not to try.thanks a lot Bos Shane.</description>
		<content:encoded><![CDATA[<p>yeah its quite bit embarrassing, this a great lesson and will not to try.thanks a lot Bos Shane.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Herzog</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-19319</link>
		<dc:creator>Herzog</dc:creator>
		<pubDate>Tue, 31 Mar 2009 18:44:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-19319</guid>
		<description>You ought to try Mathematica some day.  To me, Matlab feels verbose compared to Mathematica.  ;-)  In Mma it&#039;s a lot of thinking about how to join certain list (or tree) transformation operations, then writing those three to ten lines of code that&#039;ll solve your problem.</description>
		<content:encoded><![CDATA[<p>You ought to try Mathematica some day.  To me, Matlab feels verbose compared to Mathematica.  <img src='http://www.vetta.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   In Mma it&#8217;s a lot of thinking about how to join certain list (or tree) transformation operations, then writing those three to ten lines of code that&#8217;ll solve your problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Tobis</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-19038</link>
		<dc:creator>Michael Tobis</dc:creator>
		<pubDate>Tue, 05 Aug 2008 15:03:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-19038</guid>
		<description>My python motto:

&quot;Perfection is attained not when there is nothing left to add but when there is nothing left to remove.&quot;

- Antoine de St. Exupery</description>
		<content:encoded><![CDATA[<p>My python motto:</p>
<p>&#8220;Perfection is attained not when there is nothing left to add but when there is nothing left to remove.&#8221;</p>
<p>- Antoine de St. Exupery</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Miscellany II &#171; QED</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-18914</link>
		<dc:creator>Miscellany II &#171; QED</dc:creator>
		<pubDate>Tue, 10 Jun 2008 03:47:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-18914</guid>
		<description>[...] talking about SciPy at vetta project they made a statement that&#8217;s probably very familiar to those of us with a strong computation [...]</description>
		<content:encoded><![CDATA[<p>[...] talking about SciPy at vetta project they made a statement that&#8217;s probably very familiar to those of us with a strong computation [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ivo</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-18870</link>
		<dc:creator>Ivo</dc:creator>
		<pubDate>Tue, 20 May 2008 17:50:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-18870</guid>
		<description>ARGH, correction again: sorry for the typo when I wrote your name (Damin instead of Damien). 

Also, I realize that you said that you tested var() with your own data, which does not necessarily mean that you tested it with complex data.</description>
		<content:encoded><![CDATA[<p>ARGH, correction again: sorry for the typo when I wrote your name (Damin instead of Damien). </p>
<p>Also, I realize that you said that you tested var() with your own data, which does not necessarily mean that you tested it with complex data.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ivo</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-18869</link>
		<dc:creator>Ivo</dc:creator>
		<pubDate>Tue, 20 May 2008 16:44:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-18869</guid>
		<description>And, Damien, sorry for the typo when I wrote my name. 

Ivo Maljevic</description>
		<content:encoded><![CDATA[<p>And, Damien, sorry for the typo when I wrote my name. </p>
<p>Ivo Maljevic</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ivo</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-18868</link>
		<dc:creator>Ivo</dc:creator>
		<pubDate>Tue, 20 May 2008 16:44:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-18868</guid>
		<description>Damin, thank you for your long reply. I am not a computer scientist, but I have a PhD in ECE, and often I need to write simulations in matlab. I did write some larger programs (e.gl, WiMAX simulation), but I did not use the OO framework. The only useful thing I found was writing MEX files to speed up the calculation. 

&gt;&gt; By that same logic, if one finds a bug in MATLAB, they could consider it unreliable to do “any processing”. It is not often I compute variances on complex data.

The point was not that you do not trust some s/w if there is a bug, but the question of trust comes into play if something as basic as a variance calculation is not done properly. And the variance calculation was not considered a bug but just a different interpretation of what the variance definition is. 

Just out of curiosity, how is it possible that when you compare the output of var() function with matlab output you get the same thing? I am running Ubuntu 8.04 and the scipy that comes with it.  Do you have a different version of SciPy? 

Could you try the lines I wrote on my message submitted on May 13?</description>
		<content:encoded><![CDATA[<p>Damin, thank you for your long reply. I am not a computer scientist, but I have a PhD in ECE, and often I need to write simulations in matlab. I did write some larger programs (e.gl, WiMAX simulation), but I did not use the OO framework. The only useful thing I found was writing MEX files to speed up the calculation. </p>
<p>&gt;&gt; By that same logic, if one finds a bug in MATLAB, they could consider it unreliable to do “any processing”. It is not often I compute variances on complex data.</p>
<p>The point was not that you do not trust some s/w if there is a bug, but the question of trust comes into play if something as basic as a variance calculation is not done properly. And the variance calculation was not considered a bug but just a different interpretation of what the variance definition is. </p>
<p>Just out of curiosity, how is it possible that when you compare the output of var() function with matlab output you get the same thing? I am running Ubuntu 8.04 and the scipy that comes with it.  Do you have a different version of SciPy? </p>
<p>Could you try the lines I wrote on my message submitted on May 13?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Damian Eads</title>
		<link>http://www.vetta.org/2008/05/scipy-the-embarrassing-way-to-code/comment-page-1/#comment-18867</link>
		<dc:creator>Damian Eads</dc:creator>
		<pubDate>Tue, 20 May 2008 16:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.vetta.org/?p=52#comment-18867</guid>
		<description>Hi Ivo,

Thanks for submitting the patch and helping make Scipy better!

&quot;I do not know if that will find its way into the release or not, but I hope it will as that ‘bug’ is significant enough to make SciPy unreliable tool for anyone who wants to do any processing&quot;

By that same logic, if one finds a bug in MATLAB, they could consider it unreliable to do &quot;any processing&quot;. It is not often I compute variances on complex data. I have found the var() function to work on the data I have, tested by comparing its output with values I know are correct. But really, all software has bugs, even MATLAB.

Comparing MATLAB&#039;s stability with Scipy is not a fair comparison since MATLAB has had 20 more years to fix its bugs. Many years ago when I was an avid MATLAB user, I contributed some bug reports to MathWorks that caused me some headaches. But most of my headaches with MATLAB have nothing to do with bugs. First, its a horribly designed language created by electrical engineers who should have taken a course in language design prior to writing the language. Second, it promotes bad programming style; some users write clean code but most just learn enough to quickly hack together a filter that no one else can read. Third, its hard to spread computation across machines due to licensing limitations, causing needless tension among colleagues who are all fighting for licenses. People end up cutting experiments and moving on so less science gets done. Fourth, it is harder to collaborate with others because your collaborators must purchase MATLAB licenses to use your code. Fifth, it is primarily an interactive environment rather than a batch environment, encouraging experimentation and statistical analysis which is not reproducible. Sixth, it is difficult to work with any data structure other than a matrix (e.g. a graph, hash map, tree, lists, heaps). This is frustrating when needing to write algorithms requiring richer data structures.

Have you ever tried writing a large application in MATLAB? Are you familiar with MATLAB&#039;s object oriented interface? It is unusable. Modifying a data member causes the object to be copied prior to modification. At some point, prototype code needs to make its way into a larger application. While most people intend to rewrite their prototype code in C or C++, it is often too costly to do so they end up writing their application in the same language as their prototype code, i.e. MATLAB.

You should not be surprised if there is symbol overlap in packages. It would be very difficult for two projects to maintain mutual exclusion in their namespaces. In general, it is bad programming practice to import everything. It should only be done at the python prompt, not in programs.

With regard to memory management, I was unable to handle large data sets with MATLAB. When Scipy came into the picture, I could handle much larger data sets. Also, I can pass very large arrays into functions and modify their contents without any copying. This is particularly helpful when dealing with a memory footprint that approaches the 2GB limit.

You raise a good point about complex data. However, MATLAB has its data type headaches as well. For example, if I have an int8 array (say an image), not all arithmetic operators are supported in MATLAB.  Images often need to be converted to a double prior to doing arithmetic on them. That&#039;s annoying, especially when you&#039;re working with large images. I can do most arithmetic operations on int8 arrays in Scipy.

Often, the semantics of Python/Scipy can be quite different from MATLAB. This causes some frustration when migrating from MATLAB but this is temporary. Eventually, I believe the committed learner should find the Python/Scipy framework to be much more flexible.

Sorry for your bug--bugs are very frustrating. It is good that you submitted a patch. Thank you for doing this.

Damian</description>
		<content:encoded><![CDATA[<p>Hi Ivo,</p>
<p>Thanks for submitting the patch and helping make Scipy better!</p>
<p>&#8220;I do not know if that will find its way into the release or not, but I hope it will as that ‘bug’ is significant enough to make SciPy unreliable tool for anyone who wants to do any processing&#8221;</p>
<p>By that same logic, if one finds a bug in MATLAB, they could consider it unreliable to do &#8220;any processing&#8221;. It is not often I compute variances on complex data. I have found the var() function to work on the data I have, tested by comparing its output with values I know are correct. But really, all software has bugs, even MATLAB.</p>
<p>Comparing MATLAB&#8217;s stability with Scipy is not a fair comparison since MATLAB has had 20 more years to fix its bugs. Many years ago when I was an avid MATLAB user, I contributed some bug reports to MathWorks that caused me some headaches. But most of my headaches with MATLAB have nothing to do with bugs. First, its a horribly designed language created by electrical engineers who should have taken a course in language design prior to writing the language. Second, it promotes bad programming style; some users write clean code but most just learn enough to quickly hack together a filter that no one else can read. Third, its hard to spread computation across machines due to licensing limitations, causing needless tension among colleagues who are all fighting for licenses. People end up cutting experiments and moving on so less science gets done. Fourth, it is harder to collaborate with others because your collaborators must purchase MATLAB licenses to use your code. Fifth, it is primarily an interactive environment rather than a batch environment, encouraging experimentation and statistical analysis which is not reproducible. Sixth, it is difficult to work with any data structure other than a matrix (e.g. a graph, hash map, tree, lists, heaps). This is frustrating when needing to write algorithms requiring richer data structures.</p>
<p>Have you ever tried writing a large application in MATLAB? Are you familiar with MATLAB&#8217;s object oriented interface? It is unusable. Modifying a data member causes the object to be copied prior to modification. At some point, prototype code needs to make its way into a larger application. While most people intend to rewrite their prototype code in C or C++, it is often too costly to do so they end up writing their application in the same language as their prototype code, i.e. MATLAB.</p>
<p>You should not be surprised if there is symbol overlap in packages. It would be very difficult for two projects to maintain mutual exclusion in their namespaces. In general, it is bad programming practice to import everything. It should only be done at the python prompt, not in programs.</p>
<p>With regard to memory management, I was unable to handle large data sets with MATLAB. When Scipy came into the picture, I could handle much larger data sets. Also, I can pass very large arrays into functions and modify their contents without any copying. This is particularly helpful when dealing with a memory footprint that approaches the 2GB limit.</p>
<p>You raise a good point about complex data. However, MATLAB has its data type headaches as well. For example, if I have an int8 array (say an image), not all arithmetic operators are supported in MATLAB.  Images often need to be converted to a double prior to doing arithmetic on them. That&#8217;s annoying, especially when you&#8217;re working with large images. I can do most arithmetic operations on int8 arrays in Scipy.</p>
<p>Often, the semantics of Python/Scipy can be quite different from MATLAB. This causes some frustration when migrating from MATLAB but this is temporary. Eventually, I believe the committed learner should find the Python/Scipy framework to be much more flexible.</p>
<p>Sorry for your bug&#8211;bugs are very frustrating. It is good that you submitted a patch. Thank you for doing this.</p>
<p>Damian</p>
]]></content:encoded>
	</item>
</channel>
</rss>
