<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Wed, 22 May 2013 03:10:28 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Christian Weiske's Blog: Visualizing PHPUnit runs]]></title>
      <guid>http://www.phpdeveloper.org/news/16280</guid>
      <link>http://www.phpdeveloper.org/news/16280</link>
      <description><![CDATA[<p>
During some of his development, <i>Christian Weiske</i> found the tests for <a href="http://less-st.sf.net/">a project he was working on</a> too slow for comfort and figured there had to be a way to find the root cause:
</p>
<blockquote>
Running the specific test cases for the part of the application you're working on is easy and fast, but that does not tell you when changes in part A of the app break part B - which happened several times, and all just because I didn't want to wait 45 seconds again and again. So a solution was badly needed; tests should be as fast as possible; preferably < 10 seconds. Before being able to make the slow tests faster, I had to find out which of the 80 tests were slow.
</blockquote>
<p>
Tools like Jenkinks give more detail on test runs, but a normal <a href="http://phpunit.de">PHPUnit</a> install won't. So, he came up with a method that uses <a href="http://phing.info/">Phing</a>'s phpunitreport task to generate extra reporting easily. Here's some example screenshots: <a href="http://cweiske.de/tagebuch/images/phpunitreport/frames-overview.png">test results summary</a>, <a href="http://cweiske.de/tagebuch/images/phpunitreport/frames-error.png">test detail</a> and <a href="http://cweiske.de/tagebuch/images/phpunitreport/single1.png">single page views</a> of the same sort of data.
</p>]]></description>
      <pubDate>Mon, 02 May 2011 10:19:48 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sebastian Bergmann's Blog: Visualization of PHPUnit Development]]></title>
      <guid>http://www.phpdeveloper.org/news/16052</guid>
      <link>http://www.phpdeveloper.org/news/16052</link>
      <description><![CDATA[<p>
On his blog <i>Sebastian Bergmann</i> has a recent post about how he's <a href="http://sebastian-bergmann.de/archives/910-Visualization-of-PHPUnit-Development.html">visualizing PHPUnit's development</a> and pushing that information into a video based on the history of the project.
</p>
<blockquote>
According to svn.php.net, I committed the first PHPUnit code to cvs.php.net on November 27th 2001 and the first release, PHPUnit 0.1, was made on December 1st 2001. [...] On <a href="http://sebastian-bergmann.de/archives/876-PHPUnit-Development-Moved-to-GitHub.html">December 26th 2009</a>, I moved the development of PHPUnit from svn.phpunit.de to <a href="http://github.com/sebastianbergmann/phpunit">GitHub</a>. I imported the history from Subversion into Git. As you can see in the video, moving to GitHub lead to an increased number of contributions to PHPUnit.
</blockquote>
<p>
You can watch the video either <a href="http://sebastian-bergmann.de/archives/910-Visualization-of-PHPUnit-Development.html">embedded in his post</a> or <a href="http://vimeo.com/21076066">directly from Vimeo</a>. It's interesting to watch the progress of the application and see the contributions make to each of the parts. The whole video, spanning the entire commit history of the tool, lasts about 25 minutes.
</p>]]></description>
      <pubDate>Wed, 16 Mar 2011 09:02:51 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Derick Rethans' Blog: More source analysis with VLD]]></title>
      <guid>http://www.phpdeveloper.org/news/14075</guid>
      <link>http://www.phpdeveloper.org/news/14075</link>
      <description><![CDATA[<p>
<i>Derick Rethans</i> has been working on some updates to a tool he's developed, <a href="http://derickrethans.nl/projects.html#vld">VLD</a>, to make it more helpful and effecting in optimizing the opcodes in your scripts and find the dead opcodes and paths. He talks about these updates in <a href="http://derickrethans.nl/more-source-analysis-with-vld.html">this recent post</a>.
</p>
<blockquote>
Recently I've been working on some new functionality to visualise all the code paths that make up each function. These new routines sit on top of the routines that do dead code analysis. These new routines sit on top of the routines that do dead code analysis. Every branch instruction (such as if, but also for and foreach) is analysed and a list of branches is created. [...] Once all the branches and their links are found, another algorithm runs to figure out which paths can be created out of all the branches.
</blockquote>
<p>
He illustrates with a few examples, showing both the command that was executed and the resulting output with the new path information of a simple test file using a "for" loop and an "if/else" conditional.
</p>]]></description>
      <pubDate>Tue, 23 Feb 2010 10:49:26 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Raphael Stolt's Blog: Getting a visualization of a Phing buildfile]]></title>
      <guid>http://www.phpdeveloper.org/news/11301</guid>
      <link>http://www.phpdeveloper.org/news/11301</link>
      <description><![CDATA[<p>
<i>Raphael Stolt</i> recently spent some time working up a tool to visualize Phing buildfiles and he's blogged about it in <A href="http://raphaelstolt.blogspot.com/2008/10/getting-visualization-of-phing.html">this new post</a>.
</p>
<blockquote>
Out of the box the Phing -l option can be used to get a first overview of all available targets in a given buildfile but it doesn't untangle the target dependencies and sometimes a picture is still worth a thousand words. Luckily the Ant community already provides several tools to accomplish the visualization of Ant buildfiles, reaching from solutions that apply a Xslt stylesheet upon a given buildfile.
</blockquote>
<p>
Using the <a href="http://ant2dot.sourceforge.net/">ant2dot</a> tool along with the <a href="http://www.graphviz.org/">Graphiz</a> graphic library, he transforms the XML from the build file into a simple graphic showing the flow of the build. An <a href="http://www.flickr.com/photos/raphaelstolt/2974636277/">example image</a> is included.
</p>]]></description>
      <pubDate>Tue, 28 Oct 2008 12:03:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Debuggable Blog: Programming Psychology - Return home early]]></title>
      <guid>http://www.phpdeveloper.org/news/10058</guid>
      <link>http://www.phpdeveloper.org/news/10058</link>
      <description><![CDATA[<i>Felix Geisendorfer</i> is taking an interesting approach to defining programming in <a href="http://www.debuggable.com/posts/return-home-early-a-programmers-mind:4811de9f-ae28-49c2-a7dc-2f154834cda3">this new post</a> to the Debuggable blog - he's coming at it more from the level of the perception the programmer has about writing good code.
</p>
<blockquote>
I believe understanding the patterns in your own thinking will by far make the biggest impact on how good you will get as a programmer. Forget design patterns, forget unit testing, forget all those functions you know. Important is to question why they exist and how they could be improved.
</blockquote>
<p>
He illustrates through <a href="http://www.debuggable.com/posts/return-home-early-a-programmers-mind:4811de9f-ae28-49c2-a7dc-2f154834cda3">a few examples</a> what he means. He describes one such thought method, the "return home early" process - basically, if something looks too complex for its own good, it probably is. He offers a different way of thinking about it too, a more visual way that can help simplify things even more by laying out the pieces and seeing where they all fit.
</p>]]></description>
      <pubDate>Mon, 28 Apr 2008 14:36:43 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[William Candillon's Blog: Using XSLT to Visualize a Parse Tree]]></title>
      <guid>http://www.phpdeveloper.org/news/6408</guid>
      <link>http://www.phpdeveloper.org/news/6408</link>
      <description><![CDATA[<p>
On his "Yet andother PHP blog" today, <i>William Candillon</i> shares <a href="http://wcandillon.blogspot.com/2006/10/i-wrote-this-xslt-stylesheet-to.html">a script he's written up</a> to create a visualization of the parse tree of a bit of PHP source code.
</p>
<blockquote>
I wrote <a href="http://phpaspect.org/graphviz/toDot.xsl">this xslt stylesheet</a> to <a href="http://en.wikipedia.org/wiki/Graph_drawing">visualize</a> <a href="http://pecl.php.net/package/Parse_Tree">the parse tree of a PHP source code</a>. The stylesheet can actually convert any XML tree to graph in the <a href="http://www.graphviz.org/pub/scm/graphviz2/doc/info/lang.html">dot format</a> interpreted by <a href="http://www.graphviz.org/">Graphviz</a>.
</blockquote>
<p>
His <a href="http://wcandillon.blogspot.com/2006/10/i-wrote-this-xslt-stylesheet-to.html">code</a> is a simple seven line script that outputs a nice, clean tree structure image of how the process flows. He includes links to all of the source and files he used to create the tree image.
</p>]]></description>
      <pubDate>Tue, 03 Oct 2006 08:27:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sebastian Bergmann's Blog: Visualizing Text Differences in PHPUnit 3]]></title>
      <guid>http://www.phpdeveloper.org/news/6119</guid>
      <link>http://www.phpdeveloper.org/news/6119</link>
      <description><![CDATA[<p>
<i>Sebastian Bergmann</i> has posted <a href="http://www.sebastian-bergmann.de/blog/archives/618-Visualizing-Text-Differences-in-PHPUnit-3.html">this new item</a> on his blog today detailing how to tell the differences between two strings inside of <a href="http://www.phpunit.de/">PHPUnit 3</a>.
</p>
<blockquote>
A long-standing feature request for <a href="http://www.phpunit.de/">PHPUnit</a> has been the generation of a real <a href="http://en.wikipedia.org/wiki/Diff">diff</a> between strings that span multiple lines.
</p>
<p>
Ideally this would be done by implementing the diff algorithm in <a href="http://www.php.net/">PHP</a>. But since <a href="http://derickrethans.nl/">Derick</a> needed a working solution quickly, the two of us came up with a "hack": we just use <a href="http://www.gnu.org/software/diffutils/">GNU diff</a> and invoke the diff command via <a href="http://www.php.net/shell_exec">shell_exec()</a>.
</blockquote>
<p>
He <a href="http://www.sebastian-bergmann.de/blog/archives/618-Visualizing-Text-Differences-in-PHPUnit-3.html">gives an example</a>, showing how to judge the difference between two strings of HTML in a test. The result catches the differences (inside the body tags) easily.
</p>]]></description>
      <pubDate>Wed, 23 Aug 2006 10:36:32 -0500</pubDate>
    </item>
  </channel>
</rss>
