<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Julias Shaw &#187; Panopticode</title>
	<atom:link href="http://www.juliasshaw.com/blog/tag/panopticode/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.juliasshaw.com/blog</link>
	<description>Irrational Rocks</description>
	<lastBuildDate>Fri, 22 Jul 2011 12:29:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Teaser: Breaking the Build in Panopticode 0.2</title>
		<link>http://www.juliasshaw.com/blog/2007/09/16/teaser-breaking-the-build-in-panopticode-02/</link>
		<comments>http://www.juliasshaw.com/blog/2007/09/16/teaser-breaking-the-build-in-panopticode-02/#comments</comments>
		<pubDate>Sun, 16 Sep 2007 16:52:25 +0000</pubDate>
		<dc:creator>Julias Shaw</dc:creator>
				<category><![CDATA[Categories Suck, Tags Rule]]></category>
		<category><![CDATA[Metrics]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Panopticode]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.juliasshaw.com/blog/?p=61</guid>
		<description><![CDATA[In the last post we learned that Panopticode 0.2 will allow us to create arbitrary reports using a SPARQL SELECT query. Another feature in Panopticode 0.2 is to use a SPARQL ASK query to break the build.]]></description>
			<content:encoded><![CDATA[<p></p><div class="post_details">
<div class="post_body">
<p>In the <a href="http://www.juliasshaw.com/blog/2007/09/12/teaser-creating-ad-hoc-reports-in-panopticode-02/" target="_blank">last post</a> we learned that Panopticode 0.2 will allow us to create arbitrary reports using a SPARQL SELECT query. Another feature in Panopticode 0.2 is to use a SPARQL ASK query to break the build.</p>
<p>An ASK query looks very similar to a SELECT but without any elements to return. If the query matches any data it returns true, otherwise it returns false.</p>
<p>Rewriting last post’s SELECT query as an ASK query would look like:</p>
<pre><code> PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
 PREFIX panopticode: &lt;http://www.panopticode.org/ontologies/panopticode#&gt;
 PREFIX java: &lt;http://www.panopticode.org/ontologies/technology/java#&gt;
 PREFIX emma: &lt;http://www.panopticode.org/ontologies/supplement/emma/1#&gt;
 PREFIX javancss: &lt;http://www.panopticode.org/ontologies/supplement/javancss/1#&gt;

 ASK WHERE
 {
   ?package         rdf:type                       java:Package           .
   ?package         panopticode:name               ?packageName           .
   ?package         java:hasFile                   ?file                  .
   ?file            panopticode:filePath           ?filePath              .
   ?file            java:hasType                   ?class                 .
   ?class           panopticode:name               ?className             .
   ?class           java:hasExecutableMember       ?method                .
   ?method          java:methodSignature           ?methodSignature       .
   ?method          emma:hasLineCoverage           ?lineCoverage          .
   ?method          javancss:cyclomaticComplexity  ?ccn                   .
   ?lineCoverage    emma:coveredPercent            ?lineCoveragePercent   .

   FILTER (?ccn &gt; 1) .
   FILTER (?lineCoveragePercent &lt;= 80.0)
 }
</code></pre>
<p>Panopticode 0.2 will come with an Ant task that automatically breaks the build when an ASK query returns true.</p></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.juliasshaw.com/blog/2007/09/16/teaser-breaking-the-build-in-panopticode-02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teaser: Creating Ad Hoc Reports in Panopticode 0.2</title>
		<link>http://www.juliasshaw.com/blog/2007/09/12/teaser-creating-ad-hoc-reports-in-panopticode-02/</link>
		<comments>http://www.juliasshaw.com/blog/2007/09/12/teaser-creating-ad-hoc-reports-in-panopticode-02/#comments</comments>
		<pubDate>Wed, 12 Sep 2007 16:49:21 +0000</pubDate>
		<dc:creator>Julias Shaw</dc:creator>
				<category><![CDATA[Categories Suck, Tags Rule]]></category>
		<category><![CDATA[Metrics]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Panopticode]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.juliasshaw.com/blog/?p=56</guid>
		<description><![CDATA[Learn how to create custom reports in Panopticode 0.2 that correlate information between multiple metrics using SPARQL queries.]]></description>
			<content:encoded><![CDATA[<p></p><div class="post_details">
<div class="post_body">
<p>In <a href="http://www.juliasshaw.com/blog/2007/02/26/metrics-must-be-interpreted-in-context/">Metrics Must be Interpreted In Context</a> I described one of my preferences when creating rules around metrics. Namely, that one should not look at metrics independently, but within the context of other metrics. I described a rule that said unit test line coverage must be greater then 80% for all code with a cyclomatic complexity over 1. While you could enforce this rule in Panopticode 0.1 by creating a custom report, this is not ideal. Who wants to write Java code every time you make a new rule? This will get much easier in Panopticode 0.2.</p>
<p>Panopticode 0.2 has been re-architected to use <a href="http://www.w3.org/RDF/">RDF</a> as it’s file format and internal data store. This enables you to write queries using <a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL</a>. Here is a query to find violators of the rule mentioned above:</p>
<pre><code> PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
 PREFIX panopticode: &lt;http://www.panopticode.org/ontologies/panopticode#&gt;
 PREFIX java: &lt;http://www.panopticode.org/ontologies/technology/java#&gt;
 PREFIX emma: &lt;http://www.panopticode.org/ontologies/supplement/emma/1#&gt;
 PREFIX javancss: &lt;http://www.panopticode.org/ontologies/supplement/javancss/1#&gt;

 SELECT ?packageName ?filePath ?className ?methodSignature ?ccn ?lineCoveragePercent
 WHERE
 {
   ?package         rdf:type                       java:Package           .
   ?package         panopticode:name               ?packageName           .
   ?package         java:hasFile                   ?file                  .
   ?file            panopticode:filePath           ?filePath              .
   ?file            java:hasType                   ?class                 .
   ?class           panopticode:name               ?className             .
   ?class           java:hasExecutableMember       ?method                .
   ?method          java:methodSignature           ?methodSignature       .
   ?method          emma:hasLineCoverage           ?lineCoverage          .
   ?method          javancss:cyclomaticComplexity  ?ccn                   .
   ?lineCoverage    emma:coveredPercent            ?lineCoveragePercent   .

   FILTER (?ccn &gt; 1) .
   FILTER (?lineCoveragePercent &lt;= 80.0)
 }
 ORDER BY DESC(?ccn) ?lineCoveragePercent ?packageName ?filePath ?className ?methodSignature</code></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.juliasshaw.com/blog/2007/09/12/teaser-creating-ad-hoc-reports-in-panopticode-02/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Panopticode 0.1 Is Released</title>
		<link>http://www.juliasshaw.com/blog/2007/03/02/panopticode-01-is-released/</link>
		<comments>http://www.juliasshaw.com/blog/2007/03/02/panopticode-01-is-released/#comments</comments>
		<pubDate>Fri, 02 Mar 2007 16:55:26 +0000</pubDate>
		<dc:creator>Julias Shaw</dc:creator>
				<category><![CDATA[Categories Suck, Tags Rule]]></category>
		<category><![CDATA[Metrics]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Panopticode]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.juliasshaw.com/blog/?p=65</guid>
		<description><![CDATA[Panopticode 0.1 is released. Get it now!]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.panopticode.org/">Panopticode 0.1</a> is now available.</p>
<p>While there are still some rough edges, this release provides:</p>
<ul>
<li>Treemaps of code coverage</li>
<li>Treemaps of complexity</li>
<li>Integrates metrics from Emma, JavaNCSS, and JDepend</li>
<li>Gathers metrics from CheckStyle, Cobertura, Complexian, Simian, and Subversion</li>
</ul>
<p>I would like to thank all of those who have helped make this release possible: Chris Turner, Peter Sestoft, Alok Singh, and Jeff Bay.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.juliasshaw.com/blog/2007/03/02/panopticode-01-is-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

