<?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 for Programming for Scientists</title>
	<atom:link href="http://www.programming4scientists.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programming4scientists.com</link>
	<description>Software development wisdom and common-sense for the scientist-programmer</description>
	<lastBuildDate>Thu, 07 Mar 2013 06:54:15 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	<item>
		<title>Comment on Links to some great articles on programming by bayan</title>
		<link>http://www.programming4scientists.com/2009/01/19/links-to-some-great-articles-on-programming/comment-page-1/#comment-543</link>
		<dc:creator>bayan</dc:creator>
		<pubDate>Thu, 07 Mar 2013 06:54:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=406#comment-543</guid>
		<description>http://www.paulgraham.com/head.html</description>
		<content:encoded><![CDATA[<p><a href="http://www.paulgraham.com/head.html" rel="nofollow">http://www.paulgraham.com/head.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Scripting for science papers by Norfeldt</title>
		<link>http://www.programming4scientists.com/2009/12/17/scripting-for-science-papers/comment-page-1/#comment-535</link>
		<dc:creator>Norfeldt</dc:creator>
		<pubDate>Thu, 10 May 2012 09:48:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=623#comment-535</guid>
		<description>It&#039;s a lot more easy said than done ;-)

I find it as a difficult balance. Sometimes I tend to spend to much time commenting what the code pieces are doing and then I suddenly get an awesome new approach/idea and implement it straight away - deleting without look back (it&#039;s hard but necessary sometimes).

So my advice would be: make it work first (proof-of-concept) and only comment on things that are new or difficult to make sense of. When the code is working and you are satisfied then take your time to make good comments.
The last thing I must admit I don&#039;t always do since a code is never truly done (always room for optimization) or I quickly start a new project - it&#039;s always easier to give advice than doing it yourself.</description>
		<content:encoded><![CDATA[<p>It&#8217;s a lot more easy said than done ;-)</p>
<p>I find it as a difficult balance. Sometimes I tend to spend to much time commenting what the code pieces are doing and then I suddenly get an awesome new approach/idea and implement it straight away &#8211; deleting without look back (it&#8217;s hard but necessary sometimes).</p>
<p>So my advice would be: make it work first (proof-of-concept) and only comment on things that are new or difficult to make sense of. When the code is working and you are satisfied then take your time to make good comments.<br />
The last thing I must admit I don&#8217;t always do since a code is never truly done (always room for optimization) or I quickly start a new project &#8211; it&#8217;s always easier to give advice than doing it yourself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 10,000 hours and the Scientist-Programmer by Scientific programmer &#124; Dimitribiriouk</title>
		<link>http://www.programming4scientists.com/2009/07/06/10000-hours-and-the-scientist-programmer/comment-page-1/#comment-533</link>
		<dc:creator>Scientific programmer &#124; Dimitribiriouk</dc:creator>
		<pubDate>Wed, 04 Apr 2012 10:41:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=563#comment-533</guid>
		<description>[...] 10000 hours and the Scientist-Programmer &#124; Programming for &#8230;Jul 6, 2009 &#8230; The concept of 10000 hours effort as a benchmark to become an expert has recently become pretty well known. The idea is this: experts are &#8230; [...]</description>
		<content:encoded><![CDATA[<p>[...] 10000 hours and the Scientist-Programmer | Programming for &#8230;Jul 6, 2009 &#8230; The concept of 10000 hours effort as a benchmark to become an expert has recently become pretty well known. The idea is this: experts are &#8230; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8220;Should I switch to Python?&#8221; by Peter</title>
		<link>http://www.programming4scientists.com/2009/11/17/should-i-switch-to-python/comment-page-1/#comment-532</link>
		<dc:creator>Peter</dc:creator>
		<pubDate>Sat, 17 Mar 2012 03:12:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=613#comment-532</guid>
		<description>I recently made the switch from MATLAB to python for research. One additional benefit nobody has mentioned: Python is a great way to glue together codes from many different languages. I would argue that with python, you have _more_ numerical libraries at your disposal, since you can easily interface with great existing fortran or C libraries (most of the best codes are written first in these languages, and then ported to matlab).

Additionally, if you eventually decide to speed up your code, you can write parts of your algorithm in a C++ module and call it from python. This gives you the speed of a C++ implementation as well as the interactivity and plotting functionality of python.

Best
--Peter</description>
		<content:encoded><![CDATA[<p>I recently made the switch from MATLAB to python for research. One additional benefit nobody has mentioned: Python is a great way to glue together codes from many different languages. I would argue that with python, you have _more_ numerical libraries at your disposal, since you can easily interface with great existing fortran or C libraries (most of the best codes are written first in these languages, and then ported to matlab).</p>
<p>Additionally, if you eventually decide to speed up your code, you can write parts of your algorithm in a C++ module and call it from python. This gives you the speed of a C++ implementation as well as the interactivity and plotting functionality of python.</p>
<p>Best<br />
&#8211;Peter</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8220;Should I switch to Python?&#8221; by Jack</title>
		<link>http://www.programming4scientists.com/2009/11/17/should-i-switch-to-python/comment-page-1/#comment-520</link>
		<dc:creator>Jack</dc:creator>
		<pubDate>Mon, 14 Nov 2011 14:47:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=613#comment-520</guid>
		<description>Just to pipe in here quickly, I have recently made the switch from Matlab to Python with Numpy/Scipy and MatplotLib), mainly for things like signal processing and related...

Some of the most important advantages noone has pointed out yet are:
Operating System Independent - Now I know Matlab has versions for Windows, *nix and OSX, but an institution will not always pay for licences for all three. At least with Python you can easily switch between systems at no additional cost. I guess this would fall under the category of free though, but the convenience that comes with the possibility to work on whatever operating system you happen to boot up your machine in is worth considering.

Also, once you write your script it&#039;s a real program. Often people will use Matlab to prototype something up and then, once verified they will implement it again in another language. If you implement it in python to start with, it&#039;s already a real program which just needs to be altered. The same script can be used as a command line script, can be expanded with a GUI, or can be used as the back-end for a web application. I know Matlab has the GUIDE and a websever but they are Matlab specific. At least Python has bindings for GUI frameworks you may already use, e.g. wx, QT etc...

I may be biased since I am a fan of open-source. I will say this though, I haven&#039;t looked back since I first took the plunge.

YMMV though,

Cheers,

Jack</description>
		<content:encoded><![CDATA[<p>Just to pipe in here quickly, I have recently made the switch from Matlab to Python with Numpy/Scipy and MatplotLib), mainly for things like signal processing and related&#8230;</p>
<p>Some of the most important advantages noone has pointed out yet are:<br />
Operating System Independent &#8211; Now I know Matlab has versions for Windows, *nix and OSX, but an institution will not always pay for licences for all three. At least with Python you can easily switch between systems at no additional cost. I guess this would fall under the category of free though, but the convenience that comes with the possibility to work on whatever operating system you happen to boot up your machine in is worth considering.</p>
<p>Also, once you write your script it&#8217;s a real program. Often people will use Matlab to prototype something up and then, once verified they will implement it again in another language. If you implement it in python to start with, it&#8217;s already a real program which just needs to be altered. The same script can be used as a command line script, can be expanded with a GUI, or can be used as the back-end for a web application. I know Matlab has the GUIDE and a websever but they are Matlab specific. At least Python has bindings for GUI frameworks you may already use, e.g. wx, QT etc&#8230;</p>
<p>I may be biased since I am a fan of open-source. I will say this though, I haven&#8217;t looked back since I first took the plunge.</p>
<p>YMMV though,</p>
<p>Cheers,</p>
<p>Jack</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to&#8230;optimise Matlab by Fedor</title>
		<link>http://www.programming4scientists.com/2010/02/05/how-to-optimise-matlab/comment-page-1/#comment-518</link>
		<dc:creator>Fedor</dc:creator>
		<pubDate>Mon, 26 Sep 2011 21:09:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=630#comment-518</guid>
		<description>I use mex-functions for Matlab often, exactly because of the for-loop reasons. It is quite straightforward for the usual data types (double, int, strings, etc.): the C-function has to call some Matlab functions to convert Matlab arrays into C arrays. The for-loops are of course becoming much much quicker (and also - the memory constraints of Matlab often do not apply! ). The complexity in this case depends on how familiar you are with C, and how complex your algorithm is to code it element-wise.

I did not use mex-functions for passing and handling objects though (structures, cell arrays, etc.)</description>
		<content:encoded><![CDATA[<p>I use mex-functions for Matlab often, exactly because of the for-loop reasons. It is quite straightforward for the usual data types (double, int, strings, etc.): the C-function has to call some Matlab functions to convert Matlab arrays into C arrays. The for-loops are of course becoming much much quicker (and also &#8211; the memory constraints of Matlab often do not apply! ). The complexity in this case depends on how familiar you are with C, and how complex your algorithm is to code it element-wise.</p>
<p>I did not use mex-functions for passing and handling objects though (structures, cell arrays, etc.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on &#8220;Should I switch to Python?&#8221; by Python and science &#124; misc.ience</title>
		<link>http://www.programming4scientists.com/2009/11/17/should-i-switch-to-python/comment-page-1/#comment-514</link>
		<dc:creator>Python and science &#124; misc.ience</dc:creator>
		<pubDate>Thu, 01 Sep 2011 04:52:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=613#comment-514</guid>
		<description>[...] “Should I switch to Python?” [...]</description>
		<content:encoded><![CDATA[<p>[...] “Should I switch to Python?” [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A big list of programming languages by R Darkins</title>
		<link>http://www.programming4scientists.com/2008/08/22/a-big-list-of-programming-languages/comment-page-1/#comment-505</link>
		<dc:creator>R Darkins</dc:creator>
		<pubDate>Wed, 18 May 2011 17:07:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=46#comment-505</guid>
		<description>A handy reference, thank you.

Although, I feel that Fortran is somewhat undersold here. One of the main reasons Fortran is still so popular today is not just because the old fuddy-duddies can&#039;t be bothered to learn C and recode commonly-used libraries, but is because for many problems (particularly in science) it is simply faster than many of its counterparts, including C/C++. This is, for instance, due to it having stronger aliasing rules for memory pointers.</description>
		<content:encoded><![CDATA[<p>A handy reference, thank you.</p>
<p>Although, I feel that Fortran is somewhat undersold here. One of the main reasons Fortran is still so popular today is not just because the old fuddy-duddies can&#8217;t be bothered to learn C and recode commonly-used libraries, but is because for many problems (particularly in science) it is simply faster than many of its counterparts, including C/C++. This is, for instance, due to it having stronger aliasing rules for memory pointers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The basics of &#8230; Java by R Darkins</title>
		<link>http://www.programming4scientists.com/2009/03/23/the-basics-of-java/comment-page-1/#comment-504</link>
		<dc:creator>R Darkins</dc:creator>
		<pubDate>Wed, 18 May 2011 16:48:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=485#comment-504</guid>
		<description>@P Warnes, Java does not allocate 4 bytes for all primitives (although it does allocate an entire byte for booleans).

With regards to speed, well-written Java code generally isn&#039;t much slower than C++ from version 5 up. The main bottleneck, in my experience, is with the maths functionality - particularly trig - but this can often be circumvented with the use of precomputed lookup tables.</description>
		<content:encoded><![CDATA[<p>@P Warnes, Java does not allocate 4 bytes for all primitives (although it does allocate an entire byte for booleans).</p>
<p>With regards to speed, well-written Java code generally isn&#8217;t much slower than C++ from version 5 up. The main bottleneck, in my experience, is with the maths functionality &#8211; particularly trig &#8211; but this can often be circumvented with the use of precomputed lookup tables.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to explain programming to your Mum by Andrew</title>
		<link>http://www.programming4scientists.com/2009/08/18/how-to-explain-programming-to-your-mum/comment-page-1/#comment-503</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Fri, 06 May 2011 04:51:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=583#comment-503</guid>
		<description>I usually explain it like this:

I am designing a machine. It&#039;s a virtual machine that&#039;s invisible to us, but it&#039;s a machine nonetheless. The machine needs to have certain functionality, but it is totally up to me how it will carry out its functions, and there are million ways it could be done.

Since I am designing a machine, I need to break it down into its components, and figure out how they will fit together in the end. I also need to figure out which components I need to make myself and which ones I can find ready-made. If I use ready-made ones, I need to make sure they will work and figure out how to use them properly

Once I&#039;ve assembled my machine, it often doesn&#039;t work quite right at first, and I need to pay close attention to all its components as it operates in order to locate the hang-up.</description>
		<content:encoded><![CDATA[<p>I usually explain it like this:</p>
<p>I am designing a machine. It&#8217;s a virtual machine that&#8217;s invisible to us, but it&#8217;s a machine nonetheless. The machine needs to have certain functionality, but it is totally up to me how it will carry out its functions, and there are million ways it could be done.</p>
<p>Since I am designing a machine, I need to break it down into its components, and figure out how they will fit together in the end. I also need to figure out which components I need to make myself and which ones I can find ready-made. If I use ready-made ones, I need to make sure they will work and figure out how to use them properly</p>
<p>Once I&#8217;ve assembled my machine, it often doesn&#8217;t work quite right at first, and I need to pay close attention to all its components as it operates in order to locate the hang-up.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
