<?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/"
	>

<channel>
	<title>Yasca</title>
	<atom:link href="http://www.yasca.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yasca.org</link>
	<description>Yet Another Source Code Analyzer</description>
	<pubDate>Wed, 07 Jan 2009 03:02:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to Use Yasca - A Very Quick Introduction</title>
		<link>http://www.yasca.org/2009/01/06/how-to-use-yasca-a-very-quick-introduction/</link>
		<comments>http://www.yasca.org/2009/01/06/how-to-use-yasca-a-very-quick-introduction/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 02:49:38 +0000</pubDate>
		<dc:creator>Michael Scovetta</dc:creator>
		
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.yasca.org/?p=64</guid>
		<description><![CDATA[I noticed a search engine referral that asked &#8220;How to use Yasca&#8221;. Maybe it seems obvious to me only because I&#8217;ve been using it for over a year. Here are some examples of what you&#8217;ll probably want to do with it:
Scenario #1 - Simple PHP Project
Suppose you have a PHP project with source code in [...]]]></description>
			<content:encoded><![CDATA[<p>I noticed a search engine referral that asked &#8220;How to use Yasca&#8221;. Maybe it seems obvious to me only because I&#8217;ve been using it for over a year. Here are some examples of what you&#8217;ll probably want to do with it:</p>
<p><strong>Scenario #1 - Simple PHP Project</strong><br />
Suppose you have a PHP project with source code in c:\work\myproject\src\. You could run:<br />
<code>yasca c:\work\myproject\src</code><br />
The output is placed in a folder called Yasca on your desktop.</p>
<p>Alternatively, since you know you don&#8217;t have any Java, C, or C++ files there, you can exclude certain plugins that definitely won&#8217;t find anything to scan. (This is optional; if you ignore this, execution time will just take a few seconds longer.)<br />
<code>yasca -px FindBugs,Antic,JLint,PMD c:\work\myproject\src</code></p>
<p><strong>Scenario #2 - Java Project, Output To File Share</strong><br />
Suppose you have a Java project in c:\work\myproject, but you want the output from Yasca to go to a file share (Z:\Yasca_Output). You could run:<br />
<code>yasca -o z:\Yasca_Output c:\work\myproject</code></p>
<p><strong>Scenario #3 - Only See Critical Issues</strong><br />
You can &#8220;turn up the dial&#8221; and view only critical issues by using the &#8211;level parameter:<br />
<code>yasca --level 1 c:\work\myproject</code></p>
<p>These are some typical uses. Please leave a comment if you&#8217;d like examples of any others.</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=Yasca&amp;siteurl=http%3A%2F%2Fwww.yasca.org%2F&amp;linkname=How%20to%20Use%20Yasca%20-%20A%20Very%20Quick%20Introduction&amp;linkurl=http%3A%2F%2Fwww.yasca.org%2F2009%2F01%2F06%2Fhow-to-use-yasca-a-very-quick-introduction%2F" style=";background:url(http://www.yasca.org/wp-content/plugins/add-to-any/favicon.png) no-repeat scroll 0px 0px !important;padding:1px 5px 5px 22px">Share/Save</a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.yasca.org/2009/01/06/how-to-use-yasca-a-very-quick-introduction/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Yasca v1.2 is in development&#8230;</title>
		<link>http://www.yasca.org/2009/01/04/yasca-v12-is-in-development/</link>
		<comments>http://www.yasca.org/2009/01/04/yasca-v12-is-in-development/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 04:57:53 +0000</pubDate>
		<dc:creator>Michael Scovetta</dc:creator>
		
		<category><![CDATA[Major Releases]]></category>

		<guid isPermaLink="false">http://www.yasca.org/?p=59</guid>
		<description><![CDATA[I&#8217;m busy working on the next minor release of Yasca, and I&#8217;ve got something that I think you&#8217;ll like. Ignore lists.
Suppose you have some code that you think a particular plug-in doesn&#8217;t scan some of your code accurately. If you don&#8217;t want to clutter up your report with those results, you only have three choices [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m busy working on the next minor release of Yasca, and I&#8217;ve got something that I think you&#8217;ll like. Ignore lists.</p>
<p>Suppose you have some code that you think a particular plug-in doesn&#8217;t scan some of your code accurately. If you don&#8217;t want to clutter up your report with those results, you only have three choices at the moment: disable the plugin by either removing it from the plug-in directory (./plugins by default), prefixing the name with an underscore (i.e. rename badplugin.php to _badplugin.php), or using the -px command line parameter to ignore that particular plugin (i.e. <code>yasca -px badplugin</code>).</p>
<p>In version 1.2, I&#8217;ve added the concept of an ignore list. From the HTML output (HTMLGroupReport), you&#8217;ll have a new anchor available that will toggle whether that particular finding is ignored or not.</p>
<p><a href="http://www.yasca.org/wp-content/uploads/2009/01/ignore.jpg"><img class="aligncenter size-full wp-image-60" title="ignore" src="http://www.yasca.org/wp-content/uploads/2009/01/ignore.jpg" alt="ignore" width="942" height="79" /></a></p>
<p>After you&#8217;ve clicked off all of the findings you want to ignore, you can click on the &#8220;save ignore list&#8221; link at the top, which will show the XML. Save the XML as a file, and include it when running Yasca next (i.e. <code>yasca --ignore-file ./ignore.xml</code>).<br />
I&#8217;m working on making this a bit more user-friendly. If you have any ideas, please drop me a line.</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=Yasca&amp;siteurl=http%3A%2F%2Fwww.yasca.org%2F&amp;linkname=Yasca%20v1.2%20is%20in%20development%26%238230%3B&amp;linkurl=http%3A%2F%2Fwww.yasca.org%2F2009%2F01%2F04%2Fyasca-v12-is-in-development%2F" style=";background:url(http://www.yasca.org/wp-content/plugins/add-to-any/favicon.png) no-repeat scroll 0px 0px !important;padding:1px 5px 5px 22px">Share/Save</a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.yasca.org/2009/01/04/yasca-v12-is-in-development/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Yasca v1.1 has been released!</title>
		<link>http://www.yasca.org/2008/12/19/yasca-v11-has-been-released/</link>
		<comments>http://www.yasca.org/2008/12/19/yasca-v11-has-been-released/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 20:34:28 +0000</pubDate>
		<dc:creator>Michael Scovetta</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.yasca.org/?p=53</guid>
		<description><![CDATA[The next version of Yasca (v1.1) was released this afternoon on Sourceforge. It includes updated versions of FindBugs, PMD, and PHP, as well as new rulesets and bug fixes. Download the new version now!

    Share/Save

	]]></description>
			<content:encoded><![CDATA[<p>The next version of Yasca (v1.1) was released this afternoon on Sourceforge. It includes updated versions of FindBugs, PMD, and PHP, as well as new rulesets and bug fixes. <a href="http://sourceforge.net/project/platformdownload.php?group_id=219703">Download the new version now</a>!</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=Yasca&amp;siteurl=http%3A%2F%2Fwww.yasca.org%2F&amp;linkname=Yasca%20v1.1%20has%20been%20released%21&amp;linkurl=http%3A%2F%2Fwww.yasca.org%2F2008%2F12%2F19%2Fyasca-v11-has-been-released%2F" style=";background:url(http://www.yasca.org/wp-content/plugins/add-to-any/favicon.png) no-repeat scroll 0px 0px !important;padding:1px 5px 5px 22px">Share/Save</a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.yasca.org/2008/12/19/yasca-v11-has-been-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Creating a Plug-in 101</title>
		<link>http://www.yasca.org/2008/10/03/creating-a-plug-in-101/</link>
		<comments>http://www.yasca.org/2008/10/03/creating-a-plug-in-101/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 22:24:39 +0000</pubDate>
		<dc:creator>Michael Scovetta</dc:creator>
		
		<category><![CDATA[Tutorial]]></category>

		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.yasca.org/?p=16</guid>
		<description><![CDATA[So you&#8217;ve downloaded and installed Yasca, and like the results, but you want it to write your own plugin. This tutorial will show you how easy it is to do.
First, you should understand how Yasca is designed. Yasca is basically a file scanning engine with the ability to run plug-ins that find interesting things in [...]]]></description>
			<content:encoded><![CDATA[<p>So you&#8217;ve downloaded and installed Yasca, and like the results, but you want it to write your own plugin. This tutorial will show you how easy it is to do.</p>
<p>First, you should understand how Yasca is designed. Yasca is basically a file scanning engine with the ability to run plug-ins that find interesting things in those files and report the results back to the engine for inclusion into the report. Everything that goes into a report comes from a plugin. (Yasca can do nothing without them.)</p>
<p>Yasca comes with a number of plug-ins by default, including FindBugs, PMD, Jlint, and Grep. The first three are external tools that are maintained by others, but included because I think they provide great information. I wrote the Grep plugin to make it easy to create simple rules that only require regular expression matching. In the first part of this tutorial, we&#8217;ll create a new Grep plugin to search for something interesting.</p>
<h3>Writing a New Grep Plugin</h3>
<p>Writing a Grep plug-in requires you to have a few pieces of information (and a few more optional pieces):</p>
<ul>
<li>the regular expression to search for, and</li>
<li>the category (single-line description) of the plug-in</li>
</ul>
<p>Let&#8217;s pretend you want to search for social security numbers within a code base. Create a new file called SocialSecurityNumber.grep. The base name of the file is not important, but the extension (.grep) is. The Grep plugin actually scans for .grep files in the plug-in directory and uses each of them. Here&#8217;s the contents of SocialSecurityNumber.grep:</p>

<div class="wp_syntax"><div class="code"><pre class="ini ini" style="font-family:monospace;"><span style="color: #000099;">category</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> Social Security Number Found</span>
<span style="color: #000099;">grep</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /\d<span style="">&#123;</span><span style="">3</span><span style="">&#125;</span>-\d<span style="">&#123;</span><span style="">2</span><span style="">&#125;</span>-\d<span style="">&#123;</span><span style="">4</span><span style="">&#125;</span>/</span></pre></div></div>

<p>Additional parameters are also available, including:</p>
<ul>
<li>file_type - a comma-separated list of file extensions to apply this plug-in to</li>
<li>category_link - a URL containing more information about this particular plug-in</li>
<li>severity - the severity (1=critical down to 5=informative)</li>
<li>description - a multi-line description of the plug-in, ending with a line containing only the string &#8220;END;&#8221;</li>
</ul>
<p>For example, consider the a slightly modified version of the Formatting.MissingAMPM.grep pluigin:</p>

<div class="wp_syntax"><div class="code"><pre class="ini ini" style="font-family:monospace;"><span style="color: #000099;">name</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> Missing AM or PM in Time Format</span>
<span style="color: #000099;">file_type</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> java,jsp</span>
<span style="color: #000099;">grep</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /hh:mm:ss\</span><span style="color: #933;">&quot;/
category = Formatting: Missing AM/PM in Time Format
severity = 2
description =
  &lt;p&gt;
        When specifying time formatting in Java, the phrase &quot;</span>hh:mm:ss<span style="color: #933;">&quot; is based on 12-hour time, so 5:00 AM and 5:00
        PM would both be rendered as &quot;</span>05:00:00<span style="color: #933;">&quot;, possibly confusing the user. Instead, use either &quot;</span>HH:mm:ss<span style="color: #933;">&quot;, which
        is based on 24-hour time, or include either AM or PM by using &quot;</span>hh:mm:ss a<span style="color: #933;">&quot;.
  &lt;/p&gt;
  &lt;p&gt;
    &lt;h4&gt;References&lt;/h4&gt;
     &lt;ul&gt;
       &lt;li&gt;TODO&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/p&gt;
END;</span></pre></div></div>

<p>You can also specify multiple grep patterns, which are logically &#8216;ORed&#8217; during evaluation.</p>
<p>Place the file you created in the <strong>plugins</strong> directory and start Yasca. The Grep plugin will automatically find all .grep files within the <strong>plugins</strong> directory and use them. </p>
<p>In our next tutorial, you&#8217;ll learn how to write more complex plugins.</p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=Yasca&amp;siteurl=http%3A%2F%2Fwww.yasca.org%2F&amp;linkname=Creating%20a%20Plug-in%20101&amp;linkurl=http%3A%2F%2Fwww.yasca.org%2F2008%2F10%2F03%2Fcreating-a-plug-in-101%2F" style=";background:url(http://www.yasca.org/wp-content/plugins/add-to-any/favicon.png) no-repeat scroll 0px 0px !important;padding:1px 5px 5px 22px">Share/Save</a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.yasca.org/2008/10/03/creating-a-plug-in-101/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Yasca v1.0 Release Party!</title>
		<link>http://www.yasca.org/2008/09/30/yasca-v10-release-party/</link>
		<comments>http://www.yasca.org/2008/09/30/yasca-v10-release-party/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 20:36:48 +0000</pubDate>
		<dc:creator>Michael Scovetta</dc:creator>
		
		<category><![CDATA[Major Releases]]></category>

		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://yasca.org/?p=3</guid>
		<description><![CDATA[Yasca v1.0 has finally been released publicly. While there isn&#8217;t a party per se, we encourage you to throw one, and give out copies of Yasca to your friends and neighbors!
Download Yasca

    Share/Save

	]]></description>
			<content:encoded><![CDATA[<p>Yasca v1.0 has finally been released publicly. While there isn&#8217;t a party <em>per se</em>, we encourage you to throw one, and give out copies of Yasca to your friends and neighbors!</p>
<p><a href="http://sourceforge.net/project/platformdownload.php?group_id=219703">Download Yasca</a></p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=Yasca&amp;siteurl=http%3A%2F%2Fwww.yasca.org%2F&amp;linkname=Yasca%20v1.0%20Release%20Party%21&amp;linkurl=http%3A%2F%2Fwww.yasca.org%2F2008%2F09%2F30%2Fyasca-v10-release-party%2F" style=";background:url(http://www.yasca.org/wp-content/plugins/add-to-any/favicon.png) no-repeat scroll 0px 0px !important;padding:1px 5px 5px 22px">Share/Save</a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.yasca.org/2008/09/30/yasca-v10-release-party/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
