<?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/"
	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>Dennis Seah's Weblog</title>
	<atom:link href="http://dennisseah.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dennisseah.wordpress.com</link>
	<description>My thoughts ......</description>
	<lastBuildDate>Mon, 03 Oct 2011 02:26:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='dennisseah.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Dennis Seah's Weblog</title>
		<link>http://dennisseah.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dennisseah.wordpress.com/osd.xml" title="Dennis Seah&#039;s Weblog" />
	<atom:link rel='hub' href='http://dennisseah.wordpress.com/?pushpress=hub'/>
		<item>
		<title>How to download public data from Amazon EC2</title>
		<link>http://dennisseah.wordpress.com/2010/06/24/how-to-download-public-data-from-amazon-ec2/</link>
		<comments>http://dennisseah.wordpress.com/2010/06/24/how-to-download-public-data-from-amazon-ec2/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 13:50:06 +0000</pubDate>
		<dc:creator>dennisseah</dc:creator>
				<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://dennisseah.wordpress.com/?p=139</guid>
		<description><![CDATA[Amazon EC2 contains wealth of public data. However, there are list of things that we need to do in order to download them. In this blog, we shall describe how to download M-Lab&#8217;s NPAD dataset. Create an EC2 account if you do not have one. Login to EC2 Select the Amazon EC2 tab in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=139&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Amazon EC2 contains wealth of public data. However, there are list of things that we need to do in order to download them. In this blog, we shall describe how to download M-Lab&#8217;s NPAD dataset.</p>
<ol>
<li>Create an EC2 account if you do not have one.</li>
<li>Login to EC2</li>
<li>Select the Amazon EC2 tab in the Management Console page</li>
<li><img src="http://dennisseah.files.wordpress.com/2010/06/awsec2.png?w=468" alt="amazon ec2 control panel" /><br />Create a new instance (by clicking on Launch Instance Button), select Linux image. Create a Key Pairs for authentication purpose. Save the pem file in your local directory and change its permission to 400. (You do not need to do this key pairs creation if you already have it)</li>
<li>After the instance is created, note its instance ID</li>
<li>Point your browser to <a href="http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=279">here</a> and search for &#8220;m-lab&#8221; to locate <a href="http://developer.amazonwebservices.com/connect/entry!default.jspa?categoryID=279&amp;externalID=3189&amp;fromSearchPage=true">m-lab&#8217;s NPAD dataset</a>. Note the snapshot ID (for Linux).</li>
<li>Go back to the EC 2 Management Console and select SnapShots (on the left panel under ELASTIC BLOCK STORES), under the viewing drop down list, select Public Snapshots and search for the M-Lab&#8217;s NAPD&#8217;s Linux snapshot ID.</li>
<li>Create on the Create Volume button to create a volume on your instance that you have previously created. (e.g. /dev/sdz)</li>
<li>Select the Instances option (on the left panel under INSTANCES), select the checkbox of the instance that you have previously created, click on Instance Actions and select Connect option. This will tell you how to connect to this instance using ssh.</li>
<li>On your local machine, in the directory where your pem file is stored, enter the ssh command accordingly</li>
<li>After the ssh is completed, mkdir data; mount /dev/sdz data</li>
<li>Now data directory contains M-Lab&#8217;s NPAD data. (You can use scp to copy it accordingly).</li>
</ol>
<blockquote>
<h3>Addendum<br />
<h3>
As I was using scp, I wish to have multiple clients downloading the massive data. I was forced to distribute the pem file. Instead of doing this, (I got this idea from my boss) we installed apache server on the Amazon EC2 instance and mounted the data volume to the document root of web server. Now, we can use wget to download the data. </p>
</blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dennisseah.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dennisseah.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dennisseah.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dennisseah.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dennisseah.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dennisseah.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dennisseah.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dennisseah.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dennisseah.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dennisseah.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dennisseah.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dennisseah.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dennisseah.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dennisseah.wordpress.com/139/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=139&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dennisseah.wordpress.com/2010/06/24/how-to-download-public-data-from-amazon-ec2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5240fe6cbe81d2c48fd9c8af78c9a506?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dennisseah</media:title>
		</media:content>

		<media:content url="http://dennisseah.files.wordpress.com/2010/06/awsec2.png" medium="image">
			<media:title type="html">amazon ec2 control panel</media:title>
		</media:content>
	</item>
		<item>
		<title>Chrome Extension</title>
		<link>http://dennisseah.wordpress.com/2010/01/23/chrome-extension/</link>
		<comments>http://dennisseah.wordpress.com/2010/01/23/chrome-extension/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 09:35:19 +0000</pubDate>
		<dc:creator>dennisseah</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[google-chrome]]></category>

		<guid isPermaLink="false">http://dennisseah.wordpress.com/?p=125</guid>
		<description><![CDATA[The recent Haiti&#8217;s 7.0 earthquake has turned my &#8220;earthquake alert mode&#8221; on. I visit this web page pretty often to check for the major ones. And I have started to use google chrome after its linux&#8217;s release is out. I always wanted to create a &#8220;hello world&#8221; chrome extension. So tonight (Friday night), I was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=125&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The recent Haiti&#8217;s 7.0 earthquake has turned my &#8220;earthquake alert mode&#8221; on. I visit <a href="http://quake.usgs.gov/recenteqs/Quakes/quakes0.htm">this web page</a> pretty often to check for the major ones.</p>
<p>And I have started to use google chrome after its linux&#8217;s release is out. I always wanted to create a &#8220;hello world&#8221; chrome extension. So tonight (Friday night), I was able to find some quiet time to create a google-chrome extension to show recent earthquakes in CA and NV.</p>
<p>This extension contains 3 things. (place them in a directory.)</p>
<ol>
<li>manifest.json
<li>icon.png
<li>popup.html
</ol>
<p>This is the manifest.json</p>
<pre>
{
  "name": "Recent Earthquakes in CA and NV",
  "version": "1.0",
  "description": "Recent Earthquakes (&gt; 3.0) in California-Nevada.",
  "browser_action": {
    "default_icon": "icon.png",
     "popup": "popup.html"
  },
  "permissions": [
    "http://quake.usgs.gov/", "tabs"
  ]
}
</pre>
<p>here is my icon.png <img src="http://dennisseah.files.wordpress.com/2010/01/icon.png?w=468" /></p>
<p>and the popup.html</p>
<pre>
&lt;style&gt;
body {
    min-width:500px;
    background-color: #FFFFCC;
}
div {
    font-size: 13px;
    font-weight: bold;
}

span.mag {
    font-size: 10px;
    color: red;
}
span {
    font-size: 10px;
    color: black;
}

a {
    font-size: 10px;
}
&lt;/style&gt;

&lt;script&gt;
var hostUrl = 'http://quake.usgs.gov';
var req = new XMLHttpRequest();
req.open(
    "GET",
    "http://quake.usgs.gov/recenteqs/Quakes/quakes0.htm",
    true);
req.onload = showTable;
req.send(null);

function showUrl(anchor) {
    var urlLocation = '' + anchor.href;
    chrome.tabs.create({url:urlLocation});
}

function showTable() {
    var title = document.createElement("div");
    title.innerText = 'Recent Earthquakes in CA and NV';
    document.body.appendChild(title);
    var hr = document.createElement("hr");
    document.body.appendChild(hr);

    var body = req.responseText;
    var i = body.indexOf('&lt;A HREF="/recenteqs/Maps/');
    body = body.substring(i);
    i = body.lastIndexOf('&lt;/PRE&gt;');
    body = body.substring(0, i);

    i = body.indexOf('&lt;STRONG&gt;');
    while (i != -1) {
        body = body.substring(i);
        i = body.indexOf('&lt;A HREF="');
        j = body.indexOf('"&gt;');
        var map = hostUrl + body.substring(i+9, j);

        j = body.indexOf('&lt;FONT COLOR="#CC0000"');
        i = body.indexOf('&gt;', j);
        body = body.substring(i+2);
        i = body.indexOf('&lt;A ');
        var mag = body.substring(0, i-1);

        i = body.indexOf('&lt;A HREF="');
        j = body.indexOf('"&gt;');
        var details = hostUrl + body.substring(i+9, j);

        body = body.substring(j+2);
        i = body.indexOf('&lt;/A&gt;');
        var detailsLoc = body.substring(0, i);

        body = body.substring(i+5);
        i = body.indexOf('&lt;/FONT&gt;');
        var mapLoc = body.substring(0, i);

        i = body.indexOf('&lt;/STRONG&gt;');
        body = body.substring(i+9);
        i = body.indexOf('&lt;STRONG&gt;');

        var span = document.createElement("span");
        span.setAttribute('class', 'mag');
        span.innerText = 'Mag ' + mag;

        var detailLink = document.createElement("a");
        detailLink.setAttribute('href', details);
        detailLink.setAttribute('onClick', 'showUrl(this)');
        detailLink.appendChild(span);
        document.body.appendChild(detailLink);

        var span = document.createElement("span");
        span.innerText = ' . . ';
        document.body.appendChild(span);

        var mapLink = document.createElement("a");
        mapLink.setAttribute('href', map);
        mapLink.setAttribute('onClick', 'showUrl(this)');
        mapLink.innerText = mapLoc;
        document.body.appendChild(mapLink);

        var br = document.createElement("br");
        document.body.appendChild(br);
    }
}
&lt;/script&gt;
</pre>
<p>Next, go to the chrome extension page and switch to developer mode to load unpack extension. Basically, just point to the directory that I have created. And this is how it looks like.<br />
<img src="http://dennisseah.files.wordpress.com/2010/01/caearthquake.png?w=468" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dennisseah.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dennisseah.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dennisseah.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dennisseah.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dennisseah.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dennisseah.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dennisseah.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dennisseah.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dennisseah.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dennisseah.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dennisseah.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dennisseah.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dennisseah.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dennisseah.wordpress.com/125/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=125&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dennisseah.wordpress.com/2010/01/23/chrome-extension/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5240fe6cbe81d2c48fd9c8af78c9a506?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dennisseah</media:title>
		</media:content>

		<media:content url="http://dennisseah.files.wordpress.com/2010/01/icon.png" medium="image" />

		<media:content url="http://dennisseah.files.wordpress.com/2010/01/caearthquake.png" medium="image" />
	</item>
		<item>
		<title>Entitlements Service</title>
		<link>http://dennisseah.wordpress.com/2009/12/16/entitlements-service/</link>
		<comments>http://dennisseah.wordpress.com/2009/12/16/entitlements-service/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 21:35:12 +0000</pubDate>
		<dc:creator>dennisseah</dc:creator>
				<category><![CDATA[OpenSSO]]></category>

		<guid isPermaLink="false">http://dennisseah.wordpress.com/?p=114</guid>
		<description><![CDATA[I am among the team of 4 engineers who work on designing and implementing the entitlements service for OpenSSO project for a year. And we are happy to see that entitlements service is the key feature in OpenSSO Express 9 (see our press release). Followings are the key things that we have done (I wrote [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=114&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am among the team of 4 engineers who work on designing and implementing the entitlements service for <a href="https://opensso.dev.java.net">OpenSSO</a> project for a year. And we are happy to see that entitlements service is the key feature in OpenSSO Express 9 (see our <a href="http://finance.yahoo.com/news/Sun-Microsystems-Launches-bw-4229127737.html?x=0&amp;.v=1">press release</a>).</p>
<p>Followings are the key things that we have done (I wrote about 80% of the SDK so it is ok to blame me if things are not working)</p>
<ol>
<li><strong>Improve scalability</strong>.<br />We use indexes in LDAP server to locate policies for evaluation. This fast and heuristic approach helps us to eliminate most of unrelated policies and retrieve the related ones rapidly. Our latest test shows that we can handle over 1 million policies.</li>
<li><strong>Improve performance</strong>.<br />We use <strong>multi-threading</strong>, <strong>re-entrance read-write lock (Java concurrency package)</strong> and LDAP indexes to speed up policy evaluation. The performance has improved significantly as we benchmark it against the previous policy evaluation engine. We are in the process of tuning the caching system. And better results would be expected.</li>
<li><strong>REST interfaces</strong><br />We have <strong>REST</strong> interfaces for policy evaluation and management. This means that non Java (such as PHP and Python) clients can make policy evaluation requests. State of art, <a href="https://jersey.dev.java.net/">Jersey</a> is used for our REST implementation; and <strong>JSON</strong> is used too.</li>
<li><strong>User friendly UI</strong><br />My co-worker has developed a nice set of entitlements services UI using <a href="http://www.icefaces.org/main/home/">icefaces</a></li>
<li><strong>XACML support</strong><br />Able to import and export <a href="http://www.oasis-open.org/committees/xacml/">XACML</a>.</li>
</ol>
<p>Currently, we are working with technical writers on documenting entitlement services. You should be able to see these document early next year when OpenSSO Express 9 is shipped.</p>
<p>Well, year 2009 is coming to an end. It has been a fun year working on entitlements service (among my other doings). Sleepless nights, long meetings, ranting and hanging my head on the keyboard (just kidding) are part of the fun <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . I hope that 2010 will be more exciting.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dennisseah.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dennisseah.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dennisseah.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dennisseah.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dennisseah.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dennisseah.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dennisseah.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dennisseah.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dennisseah.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dennisseah.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dennisseah.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dennisseah.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dennisseah.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dennisseah.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=114&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dennisseah.wordpress.com/2009/12/16/entitlements-service/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5240fe6cbe81d2c48fd9c8af78c9a506?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dennisseah</media:title>
		</media:content>
	</item>
		<item>
		<title>My OpenSSO&#8217;s activity</title>
		<link>http://dennisseah.wordpress.com/2009/09/11/my-openssos-activity/</link>
		<comments>http://dennisseah.wordpress.com/2009/09/11/my-openssos-activity/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 18:44:58 +0000</pubDate>
		<dc:creator>dennisseah</dc:creator>
				<category><![CDATA[OpenSSO]]></category>

		<guid isPermaLink="false">http://dennisseah.wordpress.com/?p=109</guid>
		<description><![CDATA[Markmail is kind of cool as it archives emails. I was looking at it today to see OpenSSO&#8217;s archive and found this. Gee, I have sent over 9000 emails to OpenSSO&#8217;s email aliases for the past 4 years. That&#8217;s 2381 emails per year. About 9 emails per day (excluding weekends). So, 1 email per hour! [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=109&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Markmail is kind of cool as it archives emails. I was looking at it today to see OpenSSO&#8217;s archive and found this.<br />
<img src="http://dennisseah.files.wordpress.com/2009/09/opensso-markmail.gif?w=468" alt="opensso-markmail" title="opensso-markmail"   class="alignnone size-full wp-image-110" /></p>
<p>
Gee, I have sent over 9000 emails to OpenSSO&#8217;s email aliases for the past 4 years.<br />
That&#8217;s 2381 emails per year.  About 9 emails per day (excluding weekends). So, 1 email per hour! (8-9 hours work day). <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dennisseah.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dennisseah.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dennisseah.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dennisseah.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dennisseah.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dennisseah.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dennisseah.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dennisseah.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dennisseah.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dennisseah.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dennisseah.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dennisseah.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dennisseah.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dennisseah.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=109&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dennisseah.wordpress.com/2009/09/11/my-openssos-activity/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5240fe6cbe81d2c48fd9c8af78c9a506?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dennisseah</media:title>
		</media:content>

		<media:content url="http://dennisseah.files.wordpress.com/2009/09/opensso-markmail.gif" medium="image">
			<media:title type="html">opensso-markmail</media:title>
		</media:content>
	</item>
		<item>
		<title>Entitlements Service in OpenSSO</title>
		<link>http://dennisseah.wordpress.com/2009/08/20/entitlements-service-in-opensso/</link>
		<comments>http://dennisseah.wordpress.com/2009/08/20/entitlements-service-in-opensso/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 06:51:40 +0000</pubDate>
		<dc:creator>dennisseah</dc:creator>
				<category><![CDATA[OpenSSO]]></category>

		<guid isPermaLink="false">http://dennisseah.wordpress.com/?p=106</guid>
		<description><![CDATA[Finally, we have moved the entitlements service (an OpenSSO extension) to the products directory i.e. opensso/extensions/entitlements to opensso/products/ directory (if you are familiar with OpenSSO workspace). Here is where you can find the source code for entitlements service. console resources: opensso/products/federation/openfm/web console source: opensso/products/federation/openfm/source entitlement APIs and backend implementation: opensso/products/amserver/com/sun/identity/entitlement CLI: opensso/products/amserver/com/sun/identity/cli/entitlement Entitlements Service is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=106&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finally, we have moved the entitlements service (an OpenSSO extension) to the products directory i.e. opensso/extensions/entitlements to opensso/products/ directory (if you are familiar with OpenSSO workspace).</p>
<p>Here is where you can find the source code for entitlements service.</p>
<ul>
<li> console resources: opensso/products/federation/openfm/web
<li> console source: opensso/products/federation/openfm/source
<li> entitlement APIs and backend implementation: opensso/products/amserver/com/sun/identity/entitlement
<li> CLI:  opensso/products/amserver/com/sun/identity/cli/entitlement
</ul>
<p>Entitlements Service is released part of OpenSSO Express 8.0.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dennisseah.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dennisseah.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dennisseah.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dennisseah.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dennisseah.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dennisseah.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dennisseah.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dennisseah.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dennisseah.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dennisseah.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dennisseah.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dennisseah.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dennisseah.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dennisseah.wordpress.com/106/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=106&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dennisseah.wordpress.com/2009/08/20/entitlements-service-in-opensso/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5240fe6cbe81d2c48fd9c8af78c9a506?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dennisseah</media:title>
		</media:content>
	</item>
		<item>
		<title>Update OpenSSO&#8217;s Configuration store password</title>
		<link>http://dennisseah.wordpress.com/2009/06/02/update-openssos-configuration-store-password/</link>
		<comments>http://dennisseah.wordpress.com/2009/06/02/update-openssos-configuration-store-password/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 21:06:43 +0000</pubDate>
		<dc:creator>dennisseah</dc:creator>
				<category><![CDATA[OpenSSO]]></category>

		<guid isPermaLink="false">http://dennisseah.wordpress.com/?p=100</guid>
		<description><![CDATA[There was a question posted to our internal (Sun) alias, and I think I should share it out for the benefit of OpenSSO community. The question was &#8220;How to update OpenSSO configuration store password?&#8221; There are two types of datastore in OpenSSO server, namely the configuration datastore and user datastore. As the name suggest, the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=100&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There was a question posted to our internal (Sun) alias, and I think I should share it out for the benefit of OpenSSO community. The question was &#8220;How to update OpenSSO configuration store password?&#8221;</p>
<blockquote><p>
There are two types of datastore in OpenSSO server, namely the configuration datastore and user datastore. As the name suggest, the former stores the configuration data that are required by OpenSSO server to operate properly. The latter stores users related information, such as role, group and user entries.
</p></blockquote>
<p>It can be done through Command Line Interface or Administration Console.</p>
<p>
The Command Line Interface way.</p>
<ol>
<li>Output the current server configuration XML<br />
   <font color="#666666">./ssoadm get-svrcfg-xml -u amadmin -f /tmp/fampass -s \<br />
       http://owen1.red.iplanet.com:8080/opensso -o /tmp/serverconfig.xml</font></p>
<li>Encrypt new password<br />
   <font color="#666666">./ampassword -e /tmp/newpassword</font></p>
<li>edit /tmp/serverconfig.xml. replace admin password with the new encrypted password.
<li>Output the current server configuration XML<br />
<font color="#666666">./ssoadm set-svrcfg-xml -u amadmin -f /tmp/fampass -s \<br />
       http://owen1.red.iplanet.com:8080/opensso -X /tmp/serverconfig.xml</font>
</ol>
<p>
The Administration Console Interface way.</p>
<ol>
<li>Login as amadmin
<li>select Configuration tab
<li>select Sites and Servers tab
<li>Choose the server
<li>select Directory Configuration tab
<li>set the password
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dennisseah.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dennisseah.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dennisseah.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dennisseah.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dennisseah.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dennisseah.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dennisseah.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dennisseah.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dennisseah.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dennisseah.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dennisseah.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dennisseah.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dennisseah.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dennisseah.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=100&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dennisseah.wordpress.com/2009/06/02/update-openssos-configuration-store-password/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5240fe6cbe81d2c48fd9c8af78c9a506?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dennisseah</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenSSO Java Runtime &gt;= 1.5</title>
		<link>http://dennisseah.wordpress.com/2009/06/01/opensso-java-runtime-1-5/</link>
		<comments>http://dennisseah.wordpress.com/2009/06/01/opensso-java-runtime-1-5/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 06:11:09 +0000</pubDate>
		<dc:creator>dennisseah</dc:creator>
				<category><![CDATA[OpenSSO]]></category>

		<guid isPermaLink="false">http://dennisseah.wordpress.com/?p=97</guid>
		<description><![CDATA[We have recently modified our Java build target to 1.5. Hence, you need Java Runtime version 1.5 and above to run OpenSSO Client. The Java runtime version requirement for OpenSSO server remains unchanged i.e. 1.5. This new client runtime requirement shall be in our next official release i.e. OpenSSO Express 8 which is scheduled to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=97&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We have recently modified our Java build target to 1.5. Hence, you need Java Runtime version 1.5 and above to run OpenSSO Client. The Java runtime version requirement for OpenSSO server remains unchanged i.e. 1.5.</p>
<p>This new client runtime requirement shall be in our next official release i.e. OpenSSO Express 8 which is scheduled to released in a couple of months from now.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dennisseah.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dennisseah.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dennisseah.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dennisseah.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dennisseah.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dennisseah.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dennisseah.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dennisseah.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dennisseah.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dennisseah.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dennisseah.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dennisseah.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dennisseah.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dennisseah.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=97&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dennisseah.wordpress.com/2009/06/01/opensso-java-runtime-1-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5240fe6cbe81d2c48fd9c8af78c9a506?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dennisseah</media:title>
		</media:content>
	</item>
		<item>
		<title>Busy week ahead</title>
		<link>http://dennisseah.wordpress.com/2009/05/29/busy-week-ahead/</link>
		<comments>http://dennisseah.wordpress.com/2009/05/29/busy-week-ahead/#comments</comments>
		<pubDate>Fri, 29 May 2009 01:15:02 +0000</pubDate>
		<dc:creator>dennisseah</dc:creator>
				<category><![CDATA[OpenSSO]]></category>

		<guid isPermaLink="false">http://dennisseah.wordpress.com/?p=85</guid>
		<description><![CDATA[OpenSSO team has a busy week ahead. OpenSSO Community Day 3.0 Sunday (1:00 PM until 7:00 PM) May 31st 2009, Moscone Center, SF, CA. Open discussions on all OpenSSO related features. CommunityOne West June 1-3 2009, Moscone Center, SF, CA. Hands On Lab. Web Application Security with OpenSSO. Monday June 1, 1:40 &#8211; 3:30 PM [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=85&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>OpenSSO team has a busy week ahead. </p>
<p><img src="http://dennisseah.files.wordpress.com/2009/05/openssobusy.gif?w=468" alt="" /></p>
<ol>
<li><a href="http://www.meetup.com/opensso/calendar/10159418/">OpenSSO Community Day 3.0</a>  Sunday (1:00 PM until 7:00 PM) May 31st 2009, Moscone Center, SF, CA.<br />
<blockquote><p>
Open discussions on all OpenSSO related features.
</p></blockquote>
<li><a href="http://developers.sun.com/events/communityone/2009/west/">CommunityOne West</a>  June 1-3 2009, Moscone Center, SF, CA.<br />
<blockquote><p>
<a href="http://developers.sun.com/events/communityone/2009/west/hands_on_labs.jsp">Hands On Lab. Web Application Security with OpenSSO</a>. <br />    Monday June 1, 1:40 &#8211; 3:30 PM by Himanshu Vijay and Baby Sunil.</p>
<p>
Pragmatic Identity 2.0: Invoking Identity Services with a Simplified REST/ROA Architecture.<br />    Monday June 1, 11:50 AM &#8211; 12:40 PM by Daniel Raskin,</p>
<p>
Deep Dives. Identity Management with OpenSSO: Deploy an Identity Management Solution in 4 hours Learn how to build an identity management solution based on OpenSolaris, Open DS, and Sun OpenSSO Express 7. <br />    Wednesday, June 3, Morning Session. by Mrudul Uchil and David Goldsmith.
</p></blockquote>
<li><a href="http://java.sun.com/javaone/">JavaOne Conference</a> June 2-5, 2009, Moscone Center, SF, CA.<br />
<blockquote><p>
BOF-5275 &#8211; Using and Participating in the OpenSSO Project<br />Tuesday night, June 02, 9:30 PM &#8211; 10:20 PM hosted by Sean Brydon, Pat Patterson and Aravindan Ranganathan. </p>
<p>
TS-5295 Designing and Building Security into REST Applications <br /> Wednesday, June 03, 2:50 PM &#8211; 3:50 PM by Sean Brydon, Aravindan Ranganathan, Paul Bryan.</p>
<p>
TS-4012 &#8211; Pragmatic Identity 2.0: Simple, Open, Identity Services Using REST<br /> Thursday, June 04, 10:50 AM &#8211; 11:50 AM by &#8211; Pat Patterson and Ron Ten-Hove.</p>
<p>
LAB-6727 &#8211; Web Application Security with OpenSSO: From Simple Log-In to Single Sign-On to Federation<br />Thursday, June 4, 1:30 &#8211; 3:00 pm by Pat Patterson, Himanshu Vijay and Baby Sunil.</p>
<p>
BOF-4903 &#8211; A RESTful approach to identity-based web services<br /> Thursday, June 04, 7:30 PM &#8211; 8:20 PM by Hubert Le Van Gong and Marc Hadley.
</p></blockquote>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dennisseah.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dennisseah.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dennisseah.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dennisseah.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dennisseah.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dennisseah.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dennisseah.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dennisseah.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dennisseah.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dennisseah.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dennisseah.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dennisseah.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dennisseah.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dennisseah.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=85&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dennisseah.wordpress.com/2009/05/29/busy-week-ahead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5240fe6cbe81d2c48fd9c8af78c9a506?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dennisseah</media:title>
		</media:content>

		<media:content url="http://dennisseah.files.wordpress.com/2009/05/openssobusy.gif" medium="image" />
	</item>
		<item>
		<title>Perl script to figure out change in service schema</title>
		<link>http://dennisseah.wordpress.com/2008/12/29/perl-script-to-figure-out-change-in-service-schema/</link>
		<comments>http://dennisseah.wordpress.com/2008/12/29/perl-script-to-figure-out-change-in-service-schema/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 13:46:54 +0000</pubDate>
		<dc:creator>dennisseah</dc:creator>
				<category><![CDATA[OpenSSO]]></category>
		<category><![CDATA[Open]]></category>

		<guid isPermaLink="false">http://dennisseah.wordpress.com/?p=81</guid>
		<description><![CDATA[As we have already shipped OpenSSO Enterprise 8.0; and we are working on the next official release, service schema XML files are likely to change (upgrade). Here is the PERL script that finds them. Remember to set the values of $EIGHT_DOT_ZERO and $CURRENT #!/usr/bin/perl -w use strict; my $EIGHT_DOT_ZERO = '/home/dennis/workspace/opensso8.0'; my $CURRENT = '/home/dennis/workspace/opensso1'; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=81&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As we have already shipped OpenSSO Enterprise 8.0; and we are working on the next official release, service schema XML files are likely to change (upgrade). Here is the PERL script that finds them.</p>
<p>
Remember to set the values of $EIGHT_DOT_ZERO and $CURRENT</p>
<pre>
#!/usr/bin/perl -w

use strict;

my $EIGHT_DOT_ZERO = '/home/dennis/workspace/opensso8.0';
my $CURRENT = '/home/dennis/workspace/opensso1';

my %eightdotXMLs;
my %currentXMLs;

getServiceXMLs(
    "$EIGHT_DOT_ZERO/opensso/products/amserver/xml/services",
     \%eightdotXMLs);
getServiceXMLs(
    "$EIGHT_DOT_ZERO/opensso/products/federation/openfm/xml/services",
    \%eightdotXMLs);
getServiceXMLs(
    "$CURRENT/opensso/products/amserver/xml/services",
     \%currentXMLs);
getServiceXMLs(
    "$CURRENT/opensso/products/federation/openfm/xml/services",
     \%currentXMLs);

foreach (keys %currentXMLs) {
    my $name = $_;
    my $rev = $currentXMLs{$_};

    if (! defined $eightdotXMLs{$name}) {
        print "$name ($rev) \n";
        }
    }
}

sub getServiceXMLs {
    my $base = shift;
    my $hash = shift;
    opendir(DIR, $base);
    foreach (readdir DIR) {
        my $f = $_;
        if (($f !~ /^\./) &amp;&amp; ($f =~ /\.xml$/)) {
            getRev("$base/$f", $hash);
        }
    }
    closedir DIR;
}

sub getRev {
    my $file = shift;
    my $hash = shift;
    my $f = $file;
    $f =~ s/.+\///;

    my $buff = '';

    open(FILE, $file);
    while () {
        chomp;
        $buff .= $_;
    }
    close FILE;
    if ($buff =~ /&lt;Schema .+?revisionNumber="(.+?)"/) {
        ${%{$hash}}{$f} = $1;
    } else {
        ${%{$hash}}{$f} = 0;
    }
}
 </pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dennisseah.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dennisseah.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dennisseah.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dennisseah.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dennisseah.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dennisseah.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dennisseah.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dennisseah.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dennisseah.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dennisseah.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dennisseah.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dennisseah.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dennisseah.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dennisseah.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=81&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dennisseah.wordpress.com/2008/12/29/perl-script-to-figure-out-change-in-service-schema/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5240fe6cbe81d2c48fd9c8af78c9a506?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dennisseah</media:title>
		</media:content>
	</item>
		<item>
		<title></title>
		<link>http://dennisseah.wordpress.com/2008/12/29/77/</link>
		<comments>http://dennisseah.wordpress.com/2008/12/29/77/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 12:33:39 +0000</pubDate>
		<dc:creator>dennisseah</dc:creator>
				<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://dennisseah.wordpress.com/?p=77</guid>
		<description><![CDATA[I was at Borders on Saturday and was reading Clean Code by Uncle Bob. It mentioned that quality of code is measured by WTF/minute. Look at this Cartoon to understand what he meant. Many of us have encountered this before. i.e. looking at a piece of code and go WTF, WTF, WTF &#8230;. It is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=77&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.borders.com/ProductImages/products/00/57/99/a/57990479_a.jpg" alt="Clean Code" /> </p>
<p>I was at Borders on Saturday and was reading Clean Code by Uncle Bob. It mentioned that quality of code is measured by WTF/minute. Look at this <a href="http://www.osnews.com/story/19266/WTFs_m">Cartoon</a> to understand what he meant. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>
Many of us have encountered this before. i.e. looking at a piece of code and go WTF, WTF, WTF &#8230;. It is very difficult to review code in cases like this. Comments were lacking or missing; methods were over 100 lines long (btw, the suggested length of a method is 24); and code was not well indented.</p>
<p>
This book is very easy to read because many of the things written in it were common sense. For instance, &#8220;bad code functions too&#8221;; bad code causes organizational loss because of defects and difficulty in maintaining it (now why people are ignoring this?); have small classes and methods; etc.</p>
<p>
Uncle Bob has done a good job in writing this book. Do get a copy of it if you are a software developer AND want to write clean code <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dennisseah.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dennisseah.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dennisseah.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dennisseah.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dennisseah.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dennisseah.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dennisseah.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dennisseah.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dennisseah.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dennisseah.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dennisseah.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dennisseah.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dennisseah.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dennisseah.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dennisseah.wordpress.com&amp;blog=3845855&amp;post=77&amp;subd=dennisseah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dennisseah.wordpress.com/2008/12/29/77/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5240fe6cbe81d2c48fd9c8af78c9a506?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dennisseah</media:title>
		</media:content>

		<media:content url="http://www.borders.com/ProductImages/products/00/57/99/a/57990479_a.jpg" medium="image">
			<media:title type="html">Clean Code</media:title>
		</media:content>
	</item>
	</channel>
</rss>
