<?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>Dev Journal</title>
	<atom:link href="http://blogs.atalayasec.org/dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.atalayasec.org/dev</link>
	<description>Thoughts from the _dev_ trench</description>
	<lastBuildDate>Mon, 27 Jul 2009 08:29:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Choosing the Right Ticketing System &#8211; JIRA vs Trac vs Launchpad</title>
		<link>http://blogs.atalayasec.org/dev/2008/08/choosing-the-right-ticketing-system-jira-vs-trac-vs-launchpad/</link>
		<comments>http://blogs.atalayasec.org/dev/2008/08/choosing-the-right-ticketing-system-jira-vs-trac-vs-launchpad/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 21:54:57 +0000</pubDate>
		<dc:creator>Francesco</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.atalayasec.org/dev/2008/08/choosing-the-right-ticketing-system-jira-vs-trac-vs-launchpad/</guid>
		<description><![CDATA[Atalaya is currently hosted on SourceForge and, back when we were setting things up, it seemed perfectly reasonable to use the built-in SF tracker.
Now, after about an year of operations, it&#8217;s becoming evident that most of us find it cumbersome, at best. This wouldn&#8217;t be a problem by itself, if only it didn&#8217;t cause a [...]]]></description>
			<content:encoded><![CDATA[<p>Atalaya is currently hosted on SourceForge and, back when we were setting things up, it seemed perfectly reasonable to use the built-in SF tracker.</p>
<p>Now, after about an year of operations, it&#8217;s becoming evident that most of us find it cumbersome, at best. This wouldn&#8217;t be a problem by itself, if only it didn&#8217;t cause a slight resistance at the hour of using it; which is a problem instead.</p>
<p>Don&#8217;t get me wrong, I think SourceForge is a great place to be hosted on, and they have built an impressive infrastructure for OS projects. I love it. </p>
<p>The problem is that the interface is struggling. Slow to use, it feels like being in the 90s: it takes way to long for someone which is only moderately interested in reporting a bug to actually do it. From a maintanier point of view instead, it&#8217;s hard to get a bird&#8217;s eye view (does this rings you any bell?) over the overall status of the project (*). </p>
<p>Having seen or used a number of alternatives we have come up with a list of alternatives among which pick our new tracker. Being an OS project our requirements is just for it to be either OS itself, to be free to use by OS projects, or to provide an OS license. On the feature side a plus would be to be able to import our current ticket database from SF.</p>
<p>Currently our list is made of </p>
<ul>
<li>Atlassian <a href="http://www.atlassian.com/software/jira/">JIRA</a></li>
<li><a href="http://trac.edgewall.org/">Trac</a></li>
<li><a href="http://bugs.launcpad.net">Launchpad</a></li>
</ul>
<p>Now, here goes a digression about each of them</p>
<h4>JIRA</h4>
<p>If you have seen it, and most of you are likely to have done so, you&#8217;ll agree that it&#8217;s massive. Powerful yet reasonably easy to operate. It&#8217;s a commercial product which provide an OS license which would do the job. Furthermore Atlassian is well respected among the OS community. </p>
<p>Also, <a href="www.glassbox.com/confluence/display/GLASSBOX/SourceForge+Issue+Import+Process">it seems</a> that it&#8217;s possible to import SF&#8217;s tracker backup into it, although it&#8217;s not an official feature. Nevermind, as long as it works.</p>
<h4>Trac</h4>
<p>An OS project, which I must say I haven&#8217;t used seriously. Nevertheless it has an important feature that doesn&#8217;t ship with JIRA, a code browser. I wonder why Atalassian doesn&#8217;t do something like that&#8230;ah no, they do indeed:)<br />
Beside that it also provides a wiki, which we <a href="www.atalayasec.org/wiki">have</a> already. We might consider migrating it as well but not at first.</p>
<p>On the downside the setup is more complex than for JIRA and it has some more restrictive requirements. Our server setup supports them but we might move to an hosted service which might not.</p>
<h4>Launchpad</h4>
<p>Ok, this is not really a fair comparison, as we should compare the whole SourceForge hosting with it, but for the sake of this post I&#8217;ll limit myself to their tracker.</p>
<p>First of all, it&#8217;s not an issue tracker, it&#8217;s a bug tracker. Launchpad supports feature tracking through a  <a href="https://launchpad.net/blueprint">Blueprints</a> section, which supports task tracking and workflows though. Ok, we don&#8217;t use workflows for our tickets here:)</p>
<p>The UI feels much like JIRA, I haven&#8217;t tested it if not for browsing others&#8217; tickets. It has the big advantage for us of being an hosted instance. </p>
<p>Launchpad itself might need a post itself. I like their approach but I&#8217;d need to document a bit more over their vision, as if we&#8217;re moving I&#8217;d like for our new place to be still there in a few years time at least. </p>
<h4>Roundup</h4>
<p>You might have noticed that there is a notable absent in this list. I haven&#8217;t included Google&#8217;s <a href="code.google.com">code</a> for various reasons. It&#8217;s strange to say this while being a GMail addict but I just don&#8217;t feel like hosting Atalaya on Google. I know they are already harvesting the same information but still. Call me paranoid.</p>
<p>I don&#8217;t think we&#8217;ll make a decision during this post. Here I&#8217;ve just aimed at writing down some pros and cons that I&#8217;ve found for each option. </p>
<p>(*) These arguments are in fact not limited to the tracker, similar arguments can be used for release management, but for the sake of this post I&#8217;ll just talk about this piece.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.atalayasec.org/dev/2008/08/choosing-the-right-ticketing-system-jira-vs-trac-vs-launchpad/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Installing Joomla on a Mac with Mysql 5: the missing socket</title>
		<link>http://blogs.atalayasec.org/dev/2008/04/installing-joomla-on-a-mac-with-mysql-5-the-missing-socket/</link>
		<comments>http://blogs.atalayasec.org/dev/2008/04/installing-joomla-on-a-mac-with-mysql-5-the-missing-socket/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 13:30:32 +0000</pubDate>
		<dc:creator>Francesco</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.atalayasec.org/dev/?p=15</guid>
		<description><![CDATA[Today I&#8217;m packing for a flight and, during the trip, I was planning to start playing on the port of atalayasec.org to Joomla!.  So I grabbed the latest package (1.5.2) and went off installing it on my laptop.
My macbook is running the vanilla apache2 installation that Apple provides, and shipping with php 4.4.8. Apart [...]]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;m packing for a flight and, during the trip, I was planning to start playing on the port of atalayasec.org to <a title="Joomla!" href="http://joomla.org" target="_self">Joomla!</a>.  So I grabbed the latest package (1.5.2) and went off installing it on my laptop.</p>
<p>My macbook is running the vanilla apache2 installation that Apple provides, and shipping with php 4.4.8. Apart from this I had already installed  MySQL 5.0.27.</p>
<p>Running the installer has given me a bit of an headache though, as I was constantly getting an &#8220;Unable to connecto to database&#8221; error. Googling a bit had reminded me of all those problems people are having with the new authentication introduced since MySQL 4.1 (remember the OLD_PASSWORD thing?).</p>
<p>Nevertheless my problem was another: it happens that the default PHP module looks for the mysql socket in the wrong path. Setting</p>
<p><code><br />
mysql.default_socket = /tmp/mysql.sock<br />
</code></p>
<p>in the <code>php.ini</code> solved it (note that the socket location may vary, check your MySQL installation).</p>
<p>Maybe this helps someone.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.atalayasec.org/dev/2008/04/installing-joomla-on-a-mac-with-mysql-5-the-missing-socket/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dropped support for IE6</title>
		<link>http://blogs.atalayasec.org/dev/2008/04/dropped-support-for-ie6/</link>
		<comments>http://blogs.atalayasec.org/dev/2008/04/dropped-support-for-ie6/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 08:40:16 +0000</pubDate>
		<dc:creator>Francesco</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://blogs.atalayasec.org/dev/2008/04/dropped-support-for-ie6/</guid>
		<description><![CDATA[We&#8217;ve been silent on these pages recently. The reason for that is a series of meetings that we&#8217;ve had, plus some steering that we&#8217;re doing on our roadmap (more on this will follow).
One of the things that kept us busy in the past month has been this bug. Basically we were rendering awfully on IE.

We&#8217;d [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been silent on these pages recently. The reason for that is a series of meetings that we&#8217;ve had, plus some steering that we&#8217;re doing on our roadmap (more on this will follow).</p>
<p>One of the things that kept us busy in the past month has been <a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1868627&amp;group_id=198199&amp;atid=964520" target="_blank">this bug</a>. Basically we were rendering awfully on IE.</p>
<p style="text-align: center"><img src="http://blogs.atalayasec.org/dev/wp-content/uploads/2008/04/ie-screen.png" alt="Our demo on IE6, a week ago…" height="304" width="462" /></p>
<p>We&#8217;d had this issue for a while and it was just time to get dirty on it. Working with <a href="http://synthview.com">Jan</a> has been really instructive and, beside reminding me that developers suck at designing UIs, I&#8217;ve learnt that supporting IE6 it&#8217;s not really a matter of throwing <a href="http://code.google.com/p/ie7-js/">fixes</a> or using javascript libraries reporting to support it (we use <a href="http://jquery.com/">JQuery</a> here).</p>
<p>We could get the basic layout fixed, but we didn&#8217;t get anywhere near solving all the issues we had so, after two days spent on black magic css-ing, we took the decision:  Atalaya (at least in its 1.x versions) won&#8217;t support IE6.</p>
<p>IE6 has still <a href="http://www.w3schools.com/browsers/browsers_stats.asp">30%</a> of browser share, but it&#8217;s been constantly declining over the past here and especially after IE7 was released. Also, our target users are probably the least likely to have IE6 on their corporate computers, which makes this decision reasonable after all.</p>
<p>This decision aligns with our objective of taking a fresh look at our UI for Atalaya 2.0 (hold on:)), thus not spending a lot of time on the current look&amp;feel (yes, the JFreeChart charts really suck we know).</p>
<p>Ah, the online <a href="http://atalayasec.org/demo">demo</a> has been updated with the fixes, and contains some new features also. Go check it out:)</p>
<p align="left">&nbsp;</p>
<p style="text-align: center">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.atalayasec.org/dev/2008/04/dropped-support-for-ie6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JQuery RSS feed reader plugin</title>
		<link>http://blogs.atalayasec.org/dev/2008/02/jquery-rss-feed-reader-plugin/</link>
		<comments>http://blogs.atalayasec.org/dev/2008/02/jquery-rss-feed-reader-plugin/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 09:15:00 +0000</pubDate>
		<dc:creator>Francesco</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://blogs.atalayasec.org/dev/2008/02/jquery-rss-feed-reader-plugin/</guid>
		<description><![CDATA[Post update! I have been away from this blog for quite a while now; sometimes things turn in a way you wouln&#8217;t expect&#8230; Since this post seems to still be pretty active, I&#8217;m planning an update to include some explanation,more context and feedbacks. Please be patient and thanks for your suggestions:)

I&#8217;ve finally decided to post [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Post update! </strong>I have been away from this blog for quite a while now; sometimes things turn in a way you wouln&#8217;t expect&#8230; Since this post seems to still be pretty active, I&#8217;m planning an update to include some explanation,more context and feedbacks. Please be patient and thanks for your suggestions:)</p>
<p/>
<p>I&#8217;ve finally decided to post another no-brainer JQuery plugin: a simple news box fed by an RSS feed. You can see an example on our project&#8217;s <a href="http://atalayasec.org">home page</a>. I had found <a href="http://www.nabble.com/RSS-Feed-Reader-to4997503s27240.html">the idea</a> on the JQuery mailing list but loving plugins (although not really good at it) I decided to wrap it up a bit.</p>
<p>The result is quite simple: just place a <code>div</code> somewhere and initialize it with a feed URL:</p>
<div class="hl-main">
<pre><span class="hl-brackets">&lt;</span><span class="hl-reserved">script</span><span class="hl-code"> </span><span class="hl-var">language</span><span class="hl-code">=</span><span class="hl-quotes">"</span><span class="hl-string">JavaScript</span><span class="hl-quotes">"</span><span class="hl-code"> </span><span class="hl-var">type</span><span class="hl-code">=</span><span class="hl-quotes">"</span><span class="hl-string">text/javascript</span><span class="hl-quotes">"</span><span class="hl-brackets">&gt;</span><span class="hl-code">
$('#rightcolumn').feedreader({
targeturl: 'http://blogs.atalayasec.org/atalaya/?feed=rss2'
});
</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">script</span><span class="hl-brackets">&gt;</span><span class="hl-code">
...
</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">"</span><span class="hl-string">rightcolumn</span><span class="hl-quotes">"</span><span class="hl-brackets">&gt;</span><span class="hl-code">
</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></pre>
</div>
<p>There are two other configuration options available; how many posts to put in the news box and the length of the text to be displayed for each item. A complete initialization would be then like the following:</p>
<div class="hl-main">
<pre><span class="hl-code">$</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">#rightcolumn</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">feedreader</span><span class="hl-brackets">(</span><span class="hl-brackets">{</span><span class="hl-code">
</span><span class="hl-identifier">targeturl</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">http://blogs.atalayasec.org/atalaya/?feed=rss2</span><span class="hl-quotes">'</span><span class="hl-code">,
</span><span class="hl-identifier">items</span><span class="hl-code">: </span><span class="hl-number">3</span><span class="hl-code">,
</span><span class="hl-identifier">descLength</span><span class="hl-code">: </span><span class="hl-number">15</span><span class="hl-code">
</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></pre>
</div>
<p>The code is pretty rough (and not really js-style) but functional. In case it&#8217;s useful to someone.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.atalayasec.org/dev/2008/02/jquery-rss-feed-reader-plugin/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>A JQuery plugin for canvas pies</title>
		<link>http://blogs.atalayasec.org/dev/2008/02/a-jquery-plugin-for-canvas-pies/</link>
		<comments>http://blogs.atalayasec.org/dev/2008/02/a-jquery-plugin-for-canvas-pies/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 16:15:00 +0000</pubDate>
		<dc:creator>Francesco</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://blogs.atalayasec.org/dev/?p=9</guid>
		<description><![CDATA[These days I&#8217;ve been thinking on how to make Atalaya charts look better. This morning I&#8217;ve found this post that renders a canvas pie chart reading data from a table. Before trying to use it for real, I needed for the data table to disappear after rendering the chart.

The original code, from Stoyan Stefanov, is [...]]]></description>
			<content:encoded><![CDATA[<p>These days I&#8217;ve been thinking on how to make Atalaya charts look better. This morning I&#8217;ve found <a href="http://ajaxian.com/archives/canvas-pie-chart-from-datatable">this post</a> that renders a canvas pie chart reading data from a table. Before trying to use it for real, I needed for the data table to disappear after rendering the chart.</p>
<p><img src="http://blogs.atalayasec.org/dev/wp-content/uploads/2008/02/picture-1.png"/></p>
<p>The original code, from <a href="http://www.phpied.com/">Stoyan Stefanov</a>, is <a href="http://www.phpied.com/wp-content/uploads/2008/02/canvas-pie.html">here</a>. I&#8217;ve simply wrapped it in a jquery plugin. It&#8217;s enough to wrap the <code>canvas</code> and <code>table</code> elements in a <code>div</code>:</p>
<div class="hl-main">
<pre><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">pie</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">
	  </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">table</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">mydata</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">
	    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">th</span><span class="hl-brackets">&gt;</span><span class="hl-code">Lang</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">th</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">th</span><span class="hl-brackets">&gt;</span><span class="hl-code">Value</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">th</span><span class="hl-code">&lt;/</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-code">
	    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">JavaScript</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">100</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-code">
	    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">CSS</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">200</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-code">
	    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">HTML</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">300</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-code">
	    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">PHP</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">50</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-code">
	    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">MySQL</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">30</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-code">
	    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">Apache</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">10</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-code">
	    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">Linux</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-code">30</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">td</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">tr</span><span class="hl-brackets">&gt;</span><span class="hl-code">
	  </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">table</span><span class="hl-brackets">&gt;</span><span class="hl-code">
	  </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">canvas</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">canvas</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">width</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">300</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">height</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">300</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">canvas</span><span class="hl-brackets">&gt;</span><span class="hl-code">
</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></pre>
</div>
<p>and to initialize the plugin:</p>
<div class="hl-main">
<pre><span class="hl-code"> $</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
         $</span><span class="hl-brackets">(</span><span class="hl-code">‘#</span><span class="hl-identifier">pie</span><span class="hl-code">‘</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">canvaspie</span><span class="hl-brackets">(</span><span class="hl-brackets">{</span><span class="hl-identifier">table</span><span class="hl-code">: ‘#</span><span class="hl-identifier">mydata</span><span class="hl-code">‘,</span><span class="hl-identifier">canvas</span><span class="hl-code">: ‘#</span><span class="hl-identifier">canvas</span><span class="hl-code">‘</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">
 </span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></pre>
</div>
<p>The plugin hides the table and shows the pie. An example (and the plugin itself) can be found <a href="http://atalayasec.org/~villo/canvaspie.html">here</a>, in case someone finds it useful.</p>
<p>P.S: yes, I do need a code highlighter, sorry.</p>
<p>P.P.S: Thanks Stoyan for pointing me to <a href="http://www.hiliteme.com">hiliteme</a>.</p>
<p>Update: I&#8217;ve updated the test page to use <a href="http://excanvas.sourceforge.net/">ExplorerCanvas</a>, so now the test page should work on IE as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.atalayasec.org/dev/2008/02/a-jquery-plugin-for-canvas-pies/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Mapping the XCCDF Schema &#8211; Part 2</title>
		<link>http://blogs.atalayasec.org/dev/2008/01/mapping-the-xccdf-schema-part-2/</link>
		<comments>http://blogs.atalayasec.org/dev/2008/01/mapping-the-xccdf-schema-part-2/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 10:13:00 +0000</pubDate>
		<dc:creator>Francesco</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[mitre]]></category>
		<category><![CDATA[xccdf]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blogs.atalayasec.org/dev/?p=6</guid>
		<description><![CDATA[Yesterday I have been trying to use Castor to map the XCCDFv1 schema. The purpose is to use the output that CIS benchmarking tools produce in that format. Since yesterday I have found out a couple of interesting things:

 it seems that the CIS benchmarks are no longer supported, basically provided as is
the output format [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I have been trying to use <a href="http://castor.codehaus.org/">Castor</a> to map the XCCDFv1 schema. The purpose is to use the output that CIS benchmarking tools produce in that format. Since yesterday I have found out a couple of interesting things:
<ul>
<li> it seems that the CIS benchmarks are no longer supported, basically provided as is</li>
<li>the output format binds to the <code>xccdf-1.0.xsd</code> schema, but actually contains constants defined in theresults, that belong to the <code>xccdf-1.1.xsd</code>version.</li>
</ul>
<p>About the Castor problem I had yesterday: the XCCDF schema has in fact a duplicate attribute in its  <code><benchmark></benchmark></code>segment definition, causing the default Castor configuration to bail out.After <a href="http://www.nabble.com/Help-mapping-XCCDF-schema-p15017437.html">posting</a> on the castor mailing list I&#8217;ve found the solution (thanks Werner): write a custom binding file.</p>
<pre>
<code>
<elementbinding name="/Benchmark/@Id">
<member name="id2">
</member>
</elementbinding>
</code>
</pre>
<p>In the meantime I had worked out an Xmlbeans version of the parser, so I think I&#8217;ll stick with it to implement a first working version of the <code>CisNg</code> appliance.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.atalayasec.org/dev/2008/01/mapping-the-xccdf-schema-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mapping the XCCDF schema &#8211; Part 1</title>
		<link>http://blogs.atalayasec.org/dev/2008/01/mapping-the-xccdf-schema-part-1/</link>
		<comments>http://blogs.atalayasec.org/dev/2008/01/mapping-the-xccdf-schema-part-1/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 14:34:29 +0000</pubDate>
		<dc:creator>Francesco</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.atalayasec.org/dev/?p=5</guid>
		<description><![CDATA[We are working on the support of the new versions of the CIS scoring tools, which use XCCDF
format to store test results. Writing a mapping instead of  just another parser seems the obvious thing to do, even if for the time being we don&#8217;t plan to use the whole information contained in the reports.
After [...]]]></description>
			<content:encoded><![CDATA[<p>We are working on the support of the new versions of the CIS scoring tools, which use <a href="http://nvd.nist.gov/xccdf.cfm">XCCDF</a><br />
format to store test results. Writing a mapping instead of  just another parser seems the obvious thing to do, even if for the time being we don&#8217;t plan to use the whole information contained in the reports.</p>
<p>After reading <a href="http://www.mattpayne.org/blog/category/programming/xml/">this post</a> it also seems that implementing such a map should be feasible. Instead of XmlBeans we are trying to use Castor for generating the object model, as we really need just data binding, not fiddling with the document itself.</p>
<p>Nevertheless it seems that the XCCDF schema (<a href="http://nvd.nist.gov/scap/xccdf/docs/xccdf-1.0.xsd.txt">here</a>) has a sneaky bit</p>
<pre>
<code>
<xsd:attribute name="id" type="xsd:NCName" use="optional">
<xsd:attribute name="Id" type="xsd:ID" use="optional">
</xsd:attribute></xsd:attribute></code></pre>
<p>Now, these two attributes will cause Castor to complain like this when generating the object model:</p>
<pre>
<code>
duplicate name found: _id
</code></pre>
<p>I have yet to see if there is a way around this, as I&#8217;m not really into Castor. I suppose that I need to specify a custom mapping through XPath&#8230;</p>
<p>p.s: Castor needs also imported definitions to be present locally. In this case I needed to fetch these files:</p>
<ul>
<li>XML definitions: <a href="http://www.w3.org/2001/XMLSchema.dtd">XmlSchema.dtd</a> , <a href="http://www.w3.org/2001/03/xml.xsd">xml.xsd</a>, <a href="http://www.w3.org/2001/datatypes.dtd">datatypes.dtd</a></li>
<li><a href="dublincore.org/schemas/xmls/simpledc20021212.xsd">simpledc20021212.xsd</a></li>
<li><a href="http://csrc.nist.gov/checklists/docs/platform-0.2.3.xsd.txt">platform-0.2.3.xsd</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogs.atalayasec.org/dev/2008/01/mapping-the-xccdf-schema-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog Opened!</title>
		<link>http://blogs.atalayasec.org/dev/2008/01/blog-opened/</link>
		<comments>http://blogs.atalayasec.org/dev/2008/01/blog-opened/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 22:16:35 +0000</pubDate>
		<dc:creator>Francesco</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://atalayasec.org/devblog/?p=3</guid>
		<description><![CDATA[After our main project Blog, we have also opened this journal. We have wanted starting one since we started working on Atalaya, to share our experiences and thoughts. Hold on this feed, as more posts are rolled out.
]]></description>
			<content:encoded><![CDATA[<p>After our main project Blog, we have also opened this journal. We have wanted starting one since we started working on Atalaya, to share our experiences and thoughts. Hold on this feed, as more posts are rolled out.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.atalayasec.org/dev/2008/01/blog-opened/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
