<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for EJRH</title>
	<atom:link href="http://ejrh.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://ejrh.wordpress.com</link>
	<description>Edmund Horner&#039;s projects, opinions, and other nerdy stuff</description>
	<lastBuildDate>Thu, 09 May 2013 14:49:57 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on Encapsulation in C by HellMaster</title>
		<link>http://ejrh.wordpress.com/2011/04/29/encapsulation-in-c/#comment-888</link>
		<dc:creator><![CDATA[HellMaster]]></dc:creator>
		<pubDate>Thu, 09 May 2013 14:49:57 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=305#comment-888</guid>
		<description><![CDATA[Thanks you for this post. I found it very interesting and educative. But there are two things which are puzzling me. :-)
First why do you have to typedef the struct twice? Wouldn&#039;t it be possible to typedef the struct in header as:

typedef struct CALCULATION_STATE CALCULATION_STATE;

And then in your c-file just declare it as:

struct CALCULATION_STATE
{

}

And the second thing, why are you declaring the functions in your header file with extern keyword?
Maybe stupid questions, sorry for that, I&#039;m not that skilled and I&#039;m just missing something. :-)]]></description>
		<content:encoded><![CDATA[<p>Thanks you for this post. I found it very interesting and educative. But there are two things which are puzzling me. :-)<br />
First why do you have to typedef the struct twice? Wouldn&#8217;t it be possible to typedef the struct in header as:</p>
<p>typedef struct CALCULATION_STATE CALCULATION_STATE;</p>
<p>And then in your c-file just declare it as:</p>
<p>struct CALCULATION_STATE<br />
{</p>
<p>}</p>
<p>And the second thing, why are you declaring the functions in your header file with extern keyword?<br />
Maybe stupid questions, sorry for that, I&#8217;m not that skilled and I&#8217;m just missing something. :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Learning Verilog by A computing machine &#124; EJRH</title>
		<link>http://ejrh.wordpress.com/2013/02/20/learning-verilog/#comment-874</link>
		<dc:creator><![CDATA[A computing machine &#124; EJRH]]></dc:creator>
		<pubDate>Sun, 31 Mar 2013 05:34:11 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=2566#comment-874</guid>
		<description><![CDATA[[...] &#8592; Learning&#160;Verilog [...]]]></description>
		<content:encoded><![CDATA[<p>[...] &larr; Learning&nbsp;Verilog [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Learning Verilog by Kris Price</title>
		<link>http://ejrh.wordpress.com/2013/02/20/learning-verilog/#comment-865</link>
		<dc:creator><![CDATA[Kris Price]]></dc:creator>
		<pubDate>Wed, 20 Feb 2013 22:54:49 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=2566#comment-865</guid>
		<description><![CDATA[Very interesting - are you gonna elaborate a little more at some point on your CPU?]]></description>
		<content:encoded><![CDATA[<p>Very interesting &#8211; are you gonna elaborate a little more at some point on your CPU?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Massively parallel fractals by ejrh</title>
		<link>http://ejrh.wordpress.com/2012/01/04/massively-parallel-fractals/#comment-862</link>
		<dc:creator><![CDATA[ejrh]]></dc:creator>
		<pubDate>Tue, 15 Jan 2013 00:42:17 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1583#comment-862</guid>
		<description><![CDATA[Thanks.  This could help me optimise the kernel, by making it use local memory more, if and when I go back to working on it.]]></description>
		<content:encoded><![CDATA[<p>Thanks.  This could help me optimise the kernel, by making it use local memory more, if and when I go back to working on it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Massively parallel fractals by Joseph</title>
		<link>http://ejrh.wordpress.com/2012/01/04/massively-parallel-fractals/#comment-861</link>
		<dc:creator><![CDATA[Joseph]]></dc:creator>
		<pubDate>Mon, 14 Jan 2013 22:35:11 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1583#comment-861</guid>
		<description><![CDATA[To clarify one thing, according to http://developer.amd.com/download/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide.pdf, page 116, when register spill happens, those variables goes to &quot;global&quot; memory, not &quot;local&quot; memory.]]></description>
		<content:encoded><![CDATA[<p>To clarify one thing, according to <a href="http://developer.amd.com/download/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide.pdf" rel="nofollow">http://developer.amd.com/download/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide.pdf</a>, page 116, when register spill happens, those variables goes to &#8220;global&#8221; memory, not &#8220;local&#8221; memory.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Prolog and the Einstein puzzle by Pets prolog &#124; Keglerscorner</title>
		<link>http://ejrh.wordpress.com/2011/09/13/prolog-and-the-einstein-puzzle/#comment-860</link>
		<dc:creator><![CDATA[Pets prolog &#124; Keglerscorner]]></dc:creator>
		<pubDate>Sun, 23 Dec 2012 13:03:04 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1072#comment-860</guid>
		<description><![CDATA[[...] Prolog and the Einstein puzzle &#124; EJRHSep 13, 2011 &#8230; (So a solution where both the German and the Swede like dogs is not valid.) &#8230; it makes for easier representation and processing in Prolog. [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Prolog and the Einstein puzzle | EJRHSep 13, 2011 &#8230; (So a solution where both the German and the Swede like dogs is not valid.) &#8230; it makes for easier representation and processing in Prolog. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Blog topology by Bifurcation &#124; Variadic</title>
		<link>http://ejrh.wordpress.com/2012/03/09/blog-topology/#comment-854</link>
		<dc:creator><![CDATA[Bifurcation &#124; Variadic]]></dc:creator>
		<pubDate>Tue, 30 Oct 2012 05:32:24 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1858#comment-854</guid>
		<description><![CDATA[[...] be refactored. And some of my posts about the blog as a whole no longer make sense, such as the topological graph of how posts link to each other. That post itself was also a reflective one on blogging, and [...]]]></description>
		<content:encoded><![CDATA[<p>[...] be refactored. And some of my posts about the blog as a whole no longer make sense, such as the topological graph of how posts link to each other. That post itself was also a reflective one on blogging, and [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Manufactoria by Bifurcation &#124; Variadic</title>
		<link>http://ejrh.wordpress.com/2012/06/08/manufactoria/#comment-853</link>
		<dc:creator><![CDATA[Bifurcation &#124; Variadic]]></dc:creator>
		<pubDate>Tue, 30 Oct 2012 05:32:21 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=2056#comment-853</guid>
		<description><![CDATA[[...] happy for the public to read my reviews), and definitely not a professional one. But my review of Manufactoria discusses it as a logical system and considers the kinds of programming problems that could be [...]]]></description>
		<content:encoded><![CDATA[<p>[...] happy for the public to read my reviews), and definitely not a professional one. But my review of Manufactoria discusses it as a logical system and considers the kinds of programming problems that could be [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Massively parallel fractals by ejrh</title>
		<link>http://ejrh.wordpress.com/2012/01/04/massively-parallel-fractals/#comment-850</link>
		<dc:creator><![CDATA[ejrh]]></dc:creator>
		<pubDate>Fri, 05 Oct 2012 01:16:43 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1583#comment-850</guid>
		<description><![CDATA[Ok, I&#039;ll check them out.  But I&#039;ll be reading the source to find out how they do it, so that I can use the same tricks for my C program. ;)

I&#039;ve wondered where the bottleneck is, but been too lazy to do any benchmarking to find out.  I would not be surprised if there was a relatively large one per GPU dispatch, but that should only be a problem if we&#039;re making lots of dispatches per image.]]></description>
		<content:encoded><![CDATA[<p>Ok, I&#8217;ll check them out.  But I&#8217;ll be reading the source to find out how they do it, so that I can use the same tricks for my C program. ;)</p>
<p>I&#8217;ve wondered where the bottleneck is, but been too lazy to do any benchmarking to find out.  I would not be surprised if there was a relatively large one per GPU dispatch, but that should only be a problem if we&#8217;re making lots of dispatches per image.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Call graphs in Python by ejrh</title>
		<link>http://ejrh.wordpress.com/2011/12/23/call-graphs-in-python/#comment-849</link>
		<dc:creator><![CDATA[ejrh]]></dc:creator>
		<pubDate>Fri, 05 Oct 2012 01:13:58 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1519#comment-849</guid>
		<description><![CDATA[Hi Nishant,

pyan.py by itself requires only Python 2.7.  You can run it like:   &lt;code&gt;pyan.py demo.py --dot &gt; demo.dot&lt;/code&gt; and then use &lt;a href=&quot;http://www.graphviz.org/&quot; title=&quot;GraphViz home page&quot; rel=&quot;nofollow&quot;&gt;GraphViz&lt;/a&gt; to layout demo.dot as an image file, for instance using the command &lt;code&gt;dot -Tpng demo.dot &gt; demo.png&lt;/code&gt;.

I&#039;m not really sure where your pycallgraphis error is coming from...]]></description>
		<content:encoded><![CDATA[<p>Hi Nishant,</p>
<p>pyan.py by itself requires only Python 2.7.  You can run it like:   <code>pyan.py demo.py --dot &gt; demo.dot</code> and then use <a href="http://www.graphviz.org/" title="GraphViz home page" rel="nofollow">GraphViz</a> to layout demo.dot as an image file, for instance using the command <code>dot -Tpng demo.dot &gt; demo.png</code>.</p>
<p>I&#8217;m not really sure where your pycallgraphis error is coming from&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Massively parallel fractals by Demolishun</title>
		<link>http://ejrh.wordpress.com/2012/01/04/massively-parallel-fractals/#comment-848</link>
		<dc:creator><![CDATA[Demolishun]]></dc:creator>
		<pubDate>Wed, 03 Oct 2012 07:46:32 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1583#comment-848</guid>
		<description><![CDATA[You might want to check out numpy, pyopencl, and of course python. I am working with fractals in that environment using Matplotlib and related libraries to show the projections. I am not all that up on OpenCL, but it seems like pyopencl is hiding the details of parallel processing enough for me that I don’t seem to have to care about dividing up the processing amongst the GPU/CPU cores. I took my numpy calcs and made them more than 250 times faster. I am calculating mandelbrot set projections with smoothing between color bands for images that are 1024×1024 with a maxit of 2048 in 0.4 seconds. I usually keep my maxit at 512, but the bottleneck seems to be the copying of the data to be viewed and not the actual calculation. Simply amazing.]]></description>
		<content:encoded><![CDATA[<p>You might want to check out numpy, pyopencl, and of course python. I am working with fractals in that environment using Matplotlib and related libraries to show the projections. I am not all that up on OpenCL, but it seems like pyopencl is hiding the details of parallel processing enough for me that I don’t seem to have to care about dividing up the processing amongst the GPU/CPU cores. I took my numpy calcs and made them more than 250 times faster. I am calculating mandelbrot set projections with smoothing between color bands for images that are 1024×1024 with a maxit of 2048 in 0.4 seconds. I usually keep my maxit at 512, but the bottleneck seems to be the copying of the data to be viewed and not the actual calculation. Simply amazing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Call graphs in Python by Nishant Kashyap</title>
		<link>http://ejrh.wordpress.com/2011/12/23/call-graphs-in-python/#comment-847</link>
		<dc:creator><![CDATA[Nishant Kashyap]]></dc:creator>
		<pubDate>Sat, 29 Sep 2012 20:47:07 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1519#comment-847</guid>
		<description><![CDATA[Hey, how can I use it.I tried pycallgraph but there in a error .
pycallgraph.PyCallGraphException: The command &quot;dot -Tpng -opycallgraph.png /tmp/tmpiS5FXK&quot; failed with error code 32512.

I search for it but got nothing.
How can I use this pyan module to generate the graphs.lets say I have a python script name data.py in the desktop?
Is there any other dependency to run pyan.py ?]]></description>
		<content:encoded><![CDATA[<p>Hey, how can I use it.I tried pycallgraph but there in a error .<br />
pycallgraph.PyCallGraphException: The command &#8220;dot -Tpng -opycallgraph.png /tmp/tmpiS5FXK&#8221; failed with error code 32512.</p>
<p>I search for it but got nothing.<br />
How can I use this pyan module to generate the graphs.lets say I have a python script name data.py in the desktop?<br />
Is there any other dependency to run pyan.py ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Enumerating regular languages by gergo</title>
		<link>http://ejrh.wordpress.com/2011/06/14/enumerating-regular-languages/#comment-846</link>
		<dc:creator><![CDATA[gergo]]></dc:creator>
		<pubDate>Thu, 27 Sep 2012 17:55:13 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=814#comment-846</guid>
		<description><![CDATA[In the good old spirit of &quot;my programming language has had this feature built in for 40 years&quot;, here&#039;s a fair way to enumerate all the words of a language (which need not be regular) in Prolog:

?- length(Expression, N), phrase(my_grammar, Expression).

The idea here is that the call to length/2 will enumerate all integers N in the order 0, 1, 2, ..., bind Expression to a list of that length, and phrase/2 will then enumerate all words of my_grammar of that length. When that&#039;s done, the next larger N is tried.

I guess as similar implementation would be possible in Python by threading a counter through all the generators, and there would be no need to invoke countability arguments.]]></description>
		<content:encoded><![CDATA[<p>In the good old spirit of &#8220;my programming language has had this feature built in for 40 years&#8221;, here&#8217;s a fair way to enumerate all the words of a language (which need not be regular) in Prolog:</p>
<p>?- length(Expression, N), phrase(my_grammar, Expression).</p>
<p>The idea here is that the call to length/2 will enumerate all integers N in the order 0, 1, 2, &#8230;, bind Expression to a list of that length, and phrase/2 will then enumerate all words of my_grammar of that length. When that&#8217;s done, the next larger N is tried.</p>
<p>I guess as similar implementation would be possible in Python by threading a counter through all the generators, and there would be no need to invoke countability arguments.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Coloured call graphs! by More thoughts on version control &#124; EJRH</title>
		<link>http://ejrh.wordpress.com/2012/08/18/coloured-call-graphs/#comment-845</link>
		<dc:creator><![CDATA[More thoughts on version control &#124; EJRH]]></dc:creator>
		<pubDate>Sat, 22 Sep 2012 01:18:48 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=2300#comment-845</guid>
		<description><![CDATA[[...] CVS, etc. And recent collaborative programming work on my own projects (such as on the Python analysis program) have made me realise that using a distributed source control system from day one can pay off if [...]]]></description>
		<content:encoded><![CDATA[<p>[...] CVS, etc. And recent collaborative programming work on my own projects (such as on the Python analysis program) have made me realise that using a distributed source control system from day one can pay off if [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Schema diagrams for PostgreSQL by Bosstiger</title>
		<link>http://ejrh.wordpress.com/2012/08/29/schema-diagrams-for-postgresql/#comment-840</link>
		<dc:creator><![CDATA[Bosstiger]]></dc:creator>
		<pubDate>Thu, 30 Aug 2012 14:47:53 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=2327#comment-840</guid>
		<description><![CDATA[Reblogged this on &lt;a href=&quot;http://gigable.wordpress.com/2012/08/30/schema-diagrams-for-postgresql/&quot; rel=&quot;nofollow&quot;&gt;Gigable - Tech Blog&lt;/a&gt;.]]></description>
		<content:encoded><![CDATA[<p>Reblogged this on <a href="http://gigable.wordpress.com/2012/08/30/schema-diagrams-for-postgresql/" rel="nofollow">Gigable &#8211; Tech Blog</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Coloured call graphs! by Juha Jeronen</title>
		<link>http://ejrh.wordpress.com/2012/08/18/coloured-call-graphs/#comment-839</link>
		<dc:creator><![CDATA[Juha Jeronen]]></dc:creator>
		<pubDate>Wed, 29 Aug 2012 06:25:20 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=2300#comment-839</guid>
		<description><![CDATA[Update: my repository for this was getting a bit messy, so it has been reorganized. The modified Pyan and XDot are now both in their own subfolders:

https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring/pyan
https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring/xdot

The top-level directory

https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring

contains a combined README and a wrapper script (analyze.sh) for convenience.]]></description>
		<content:encoded><![CDATA[<p>Update: my repository for this was getting a bit messy, so it has been reorganized. The modified Pyan and XDot are now both in their own subfolders:</p>
<p><a href="https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring/pyan" rel="nofollow">https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring/pyan</a><br />
<a href="https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring/xdot" rel="nofollow">https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring/xdot</a></p>
<p>The top-level directory</p>
<p><a href="https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring" rel="nofollow">https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring</a></p>
<p>contains a combined README and a wrapper script (analyze.sh) for convenience.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Coloured call graphs! by Juha Jeronen</title>
		<link>http://ejrh.wordpress.com/2012/08/18/coloured-call-graphs/#comment-837</link>
		<dc:creator><![CDATA[Juha Jeronen]]></dc:creator>
		<pubDate>Thu, 23 Aug 2012 12:04:14 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=2300#comment-837</guid>
		<description><![CDATA[Thanks for the post. Nice &#039;screenshots&#039; :)

By the way, I have now modified XDot, too. The new version comes with an incremental Find feature (handy for looking for nodes by label text), and highlights outgoing/incoming linked nodes (if modifiers held down) when hovering over nodes. It also has some new UI animations, the UI has been generally polished, and it has built-in documentation.

I just posted about the changes to the original site ( http://code.google.com/p/jrfonseca/wiki/XDot ), currently waiting if there is an interest.

Check it out (no pun intended) if you or any of the readers are interested. It&#039;s available at:

https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring/]]></description>
		<content:encoded><![CDATA[<p>Thanks for the post. Nice &#8216;screenshots&#8217; :)</p>
<p>By the way, I have now modified XDot, too. The new version comes with an incremental Find feature (handy for looking for nodes by label text), and highlights outgoing/incoming linked nodes (if modifiers held down) when hovering over nodes. It also has some new UI animations, the UI has been generally polished, and it has built-in documentation.</p>
<p>I just posted about the changes to the original site ( <a href="http://code.google.com/p/jrfonseca/wiki/XDot" rel="nofollow">http://code.google.com/p/jrfonseca/wiki/XDot</a> ), currently waiting if there is an interest.</p>
<p>Check it out (no pun intended) if you or any of the readers are interested. It&#8217;s available at:</p>
<p><a href="https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring/" rel="nofollow">https://yousource.it.jyu.fi/jjrandom2/miniprojects/trees/master/refactoring/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Call graphs in Python part 2 by Juha Jeronen</title>
		<link>http://ejrh.wordpress.com/2012/01/31/call-graphs-in-python-part-2/#comment-836</link>
		<dc:creator><![CDATA[Juha Jeronen]]></dc:creator>
		<pubDate>Sun, 19 Aug 2012 07:26:24 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1605#comment-836</guid>
		<description><![CDATA[Thanks. I think the analysis code already works pretty well, so I didn&#039;t look into it much... (I picked pyan particularly, because it understands classes.)

The only case where I&#039;ve gotten it to trip up was to (out of curiosity) feed it pyan.py and xdot.py at the same time - both of them happen to contain a class named Node, and this generates some spurious links between the two pieces of software that should be completely disconnected. It&#039;s not exactly a real-world use case, and I didn&#039;t have any immediate ideas as to how to fix it (hmm - maybe prefer nodes within the same namespace hierarchy?), so I decided to leave it as-is.

Ok, I&#039;ll keep it in my repository.

And thanks for the new post with screenshots :)]]></description>
		<content:encoded><![CDATA[<p>Thanks. I think the analysis code already works pretty well, so I didn&#8217;t look into it much&#8230; (I picked pyan particularly, because it understands classes.)</p>
<p>The only case where I&#8217;ve gotten it to trip up was to (out of curiosity) feed it pyan.py and xdot.py at the same time &#8211; both of them happen to contain a class named Node, and this generates some spurious links between the two pieces of software that should be completely disconnected. It&#8217;s not exactly a real-world use case, and I didn&#8217;t have any immediate ideas as to how to fix it (hmm &#8211; maybe prefer nodes within the same namespace hierarchy?), so I decided to leave it as-is.</p>
<p>Ok, I&#8217;ll keep it in my repository.</p>
<p>And thanks for the new post with screenshots :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Call graphs in Python part 2 by Coloured call graphs! &#124; EJRH</title>
		<link>http://ejrh.wordpress.com/2012/01/31/call-graphs-in-python-part-2/#comment-835</link>
		<dc:creator><![CDATA[Coloured call graphs! &#124; EJRH]]></dc:creator>
		<pubDate>Sat, 18 Aug 2012 04:57:52 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1605#comment-835</guid>
		<description><![CDATA[[...] Jeronen has added some features to the Python call-graph generator (pyan) I&#8217;ve previously blogged about. With a single command line, I can now get pictures like [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Jeronen has added some features to the Python call-graph generator (pyan) I&#8217;ve previously blogged about. With a single command line, I can now get pictures like [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Call graphs in Python part 2 by ejrh</title>
		<link>http://ejrh.wordpress.com/2012/01/31/call-graphs-in-python-part-2/#comment-834</link>
		<dc:creator><![CDATA[ejrh]]></dc:creator>
		<pubDate>Sat, 18 Aug 2012 03:26:56 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1605#comment-834</guid>
		<description><![CDATA[Wow, that&#039;s great work!  The analysis code was already quite messy and unmaintainable.  I was kind of hoping to see it all rewritten in your version but it&#039;s understandable that it wasn&#039;t -- even I don&#039;t know how it works any more.

The .tgf format is obsolete, I just picked it because I wanted to see how effective the yEd layouts were, and .tgf was easiest to implement.  I should replace it with .graphml format, which would support the additional options you&#039;ve added for .dot.

You can keep it in your git repository, since you are more likely to write more improvements -- I&#039;ll just copy the pyan.py changes for now.  If I make any major improvements myself I&#039;ll post about them here.]]></description>
		<content:encoded><![CDATA[<p>Wow, that&#8217;s great work!  The analysis code was already quite messy and unmaintainable.  I was kind of hoping to see it all rewritten in your version but it&#8217;s understandable that it wasn&#8217;t &#8212; even I don&#8217;t know how it works any more.</p>
<p>The .tgf format is obsolete, I just picked it because I wanted to see how effective the yEd layouts were, and .tgf was easiest to implement.  I should replace it with .graphml format, which would support the additional options you&#8217;ve added for .dot.</p>
<p>You can keep it in your git repository, since you are more likely to write more improvements &#8212; I&#8217;ll just copy the pyan.py changes for now.  If I make any major improvements myself I&#8217;ll post about them here.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Call graphs in Python part 2 by Juha Jeronen</title>
		<link>http://ejrh.wordpress.com/2012/01/31/call-graphs-in-python-part-2/#comment-833</link>
		<dc:creator><![CDATA[Juha Jeronen]]></dc:creator>
		<pubDate>Fri, 17 Aug 2012 08:57:32 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1605#comment-833</guid>
		<description><![CDATA[Hi,

Thanks for a great tool!

I was looking for a tool to make call graphs for Python, and pyan fits the bill almost exactly. Combined with the &quot;fdp&quot; (spring model) filter of GraphViz, and the interactive xdot viewer, it&#039;s a nice help for refactoring (specifically, looking for mostly-independent subsets of functions for splitting a large module).

Inspired by your screenshot at the end of the post, I made a modified version of pyan with some added features that may help when working with large projects.

The modified version has command-line options to:

- Color nodes automatically. A HSL color model is used, picking the hue based on the top-level namespace (effectively, the module). The colors start out light, and then darken for each level of nesting. Seven different hues are available, cycled automatically.

- Group nodes in the same namespace. GraphViz clusters are used for this. The namespace name is used as the cluster label. Groups can be created as standalone (always inside top-level graph) or nested. The nested mode follows the namespace structure of the code.

- Disable generation of links for &quot;defines&quot; relationships. This can make the resulting graph look much clearer, when there are a lot of &quot;uses&quot; relationships. This is especially useful for layout with &quot;fdp&quot;.

- Disable generation of links for &quot;uses&quot; relationships. Can be useful for visualizing just where functions are defined.

Also, now the &quot;defines&quot; relations are drawn with gray arrows, so that it&#039;s easier to visually tell them apart from the &quot;uses&quot; relations when there are a lot of edges of both types in the graph.

Nodes are now always filled (white if color disabled), and made translucent to clearly show arrows passing underneath them. This is useful for large graphs with the fdp filter.

With the exception of the disable switches, which support both output formats, all modifications are for GraphViz output only.

The modified version is available at:

https://yousource.it.jyu.fi/jjrandom2/miniprojects/blobs/master/refactoring/pyan.py

As it stands, the added code is a bit messy. Tell me if you want to integrate the changes, and we can see if it can be cleaned up sufficiently. :)]]></description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Thanks for a great tool!</p>
<p>I was looking for a tool to make call graphs for Python, and pyan fits the bill almost exactly. Combined with the &#8220;fdp&#8221; (spring model) filter of GraphViz, and the interactive xdot viewer, it&#8217;s a nice help for refactoring (specifically, looking for mostly-independent subsets of functions for splitting a large module).</p>
<p>Inspired by your screenshot at the end of the post, I made a modified version of pyan with some added features that may help when working with large projects.</p>
<p>The modified version has command-line options to:</p>
<p>- Color nodes automatically. A HSL color model is used, picking the hue based on the top-level namespace (effectively, the module). The colors start out light, and then darken for each level of nesting. Seven different hues are available, cycled automatically.</p>
<p>- Group nodes in the same namespace. GraphViz clusters are used for this. The namespace name is used as the cluster label. Groups can be created as standalone (always inside top-level graph) or nested. The nested mode follows the namespace structure of the code.</p>
<p>- Disable generation of links for &#8220;defines&#8221; relationships. This can make the resulting graph look much clearer, when there are a lot of &#8220;uses&#8221; relationships. This is especially useful for layout with &#8220;fdp&#8221;.</p>
<p>- Disable generation of links for &#8220;uses&#8221; relationships. Can be useful for visualizing just where functions are defined.</p>
<p>Also, now the &#8220;defines&#8221; relations are drawn with gray arrows, so that it&#8217;s easier to visually tell them apart from the &#8220;uses&#8221; relations when there are a lot of edges of both types in the graph.</p>
<p>Nodes are now always filled (white if color disabled), and made translucent to clearly show arrows passing underneath them. This is useful for large graphs with the fdp filter.</p>
<p>With the exception of the disable switches, which support both output formats, all modifications are for GraphViz output only.</p>
<p>The modified version is available at:</p>
<p><a href="https://yousource.it.jyu.fi/jjrandom2/miniprojects/blobs/master/refactoring/pyan.py" rel="nofollow">https://yousource.it.jyu.fi/jjrandom2/miniprojects/blobs/master/refactoring/pyan.py</a></p>
<p>As it stands, the added code is a bit messy. Tell me if you want to integrate the changes, and we can see if it can be cleaned up sufficiently. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on World Backup Day again! by Simple but efficient backups &#124; EJRH</title>
		<link>http://ejrh.wordpress.com/2012/04/03/world-backup-day-again/#comment-831</link>
		<dc:creator><![CDATA[Simple but efficient backups &#124; EJRH]]></dc:creator>
		<pubDate>Sat, 04 Aug 2012 03:27:15 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=1892#comment-831</guid>
		<description><![CDATA[[...] to. This will likely be a goal of my personal NAS project, due to be commenced any day now.  I seem to have promised to have one by next World Backup [...]]]></description>
		<content:encoded><![CDATA[<p>[...] to. This will likely be a goal of my personal NAS project, due to be commenced any day now.  I seem to have promised to have one by next World Backup [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Using the NTFS journal for backups by Simple but efficient backups &#124; EJRH</title>
		<link>http://ejrh.wordpress.com/2012/07/06/using-the-ntfs-journal-for-backups/#comment-830</link>
		<dc:creator><![CDATA[Simple but efficient backups &#124; EJRH]]></dc:creator>
		<pubDate>Sat, 04 Aug 2012 03:27:12 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=31#comment-830</guid>
		<description><![CDATA[[...] occasional cosmic ray). I&#8217;d originally written it for Windows, using the win32 extensions to read the USN Journal and create links to existing items. It now works in Unix too (except for the Journal [...]]]></description>
		<content:encoded><![CDATA[<p>[...] occasional cosmic ray). I&#8217;d originally written it for Windows, using the win32 extensions to read the USN Journal and create links to existing items. It now works in Unix too (except for the Journal [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on World Backup Day by Simple but efficient backups &#124; EJRH</title>
		<link>http://ejrh.wordpress.com/2011/04/01/world-backup-day/#comment-829</link>
		<dc:creator><![CDATA[Simple but efficient backups &#124; EJRH]]></dc:creator>
		<pubDate>Sat, 04 Aug 2012 03:27:04 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=307#comment-829</guid>
		<description><![CDATA[[...] are perennially on my To-do list. Just having them would be good, but more than that I want to automate their [...]]]></description>
		<content:encoded><![CDATA[<p>[...] are perennially on my To-do list. Just having them would be good, but more than that I want to automate their [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Is software &#8220;engineering&#8221; ? by Craig</title>
		<link>http://ejrh.wordpress.com/2012/07/19/is-software-engineering/#comment-826</link>
		<dc:creator><![CDATA[Craig]]></dc:creator>
		<pubDate>Tue, 24 Jul 2012 05:11:54 +0000</pubDate>
		<guid isPermaLink="false">http://ejrh.wordpress.com/?p=2143#comment-826</guid>
		<description><![CDATA[Another article that may be of interest, software engineering versus computer science by Ewan Tempero.

http://www.cs.auckland.ac.nz/~ewan/essays/se_vs_cs/

Cheers Craig]]></description>
		<content:encoded><![CDATA[<p>Another article that may be of interest, software engineering versus computer science by Ewan Tempero.</p>
<p><a href="http://www.cs.auckland.ac.nz/~ewan/essays/se_vs_cs/" rel="nofollow">http://www.cs.auckland.ac.nz/~ewan/essays/se_vs_cs/</a></p>
<p>Cheers Craig</p>
]]></content:encoded>
	</item>
</channel>
</rss>