<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>unitstep.net</title>
	
	<link>http://unitstep.net</link>
	<description>the home of peter chng</description>
	<pubDate>Sun, 30 Nov 2008 23:12:11 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/unitstep" type="application/rss+xml" /><item>
		<title>Getting Feedback with UserVoice</title>
		<link>http://feeds.feedburner.com/~r/unitstep/~3/470702717/</link>
		<comments>http://unitstep.net/blog/2008/11/30/getting-feedback-with-uservoice/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 23:12:11 +0000</pubDate>
		<dc:creator>Peter Chng</dc:creator>
		
		<category><![CDATA[development]]></category>

		<category><![CDATA[feedback]]></category>

		<category><![CDATA[social]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[usability]]></category>

		<category><![CDATA[user interface]]></category>

		<category><![CDATA[web2.0]]></category>

		<category><![CDATA[customers]]></category>

		<category><![CDATA[users]]></category>

		<category><![CDATA[uservoice]]></category>

		<guid isPermaLink="false">http://unitstep.net/?p=580</guid>
		<description><![CDATA[
When developing any application, getting proper user feedback during the early stages is essential if you want to have the application suit your customers&#8217; needs.  Often this is done with staged tests, but with web applications you can have the benefit of using an online method of retrieving your users&#8217; opinions. 
However, doing so [...]]]></description>
			<content:encoded><![CDATA[<p class="image align-right"><img src="http://unitstep.net/wordpress/wp-content/uploads/2008/11/uservoice.jpg" alt="" title="uservoice" width="180" height="48" class="alignnone size-full wp-image-582" /></p>
<p>When developing any application, getting proper user feedback during the early stages is essential if you want to have the application suit your customers&#8217; needs.  Often this is done with staged tests, but with web applications you can have the benefit of using an online method of retrieving your users&#8217; opinions. </p>
<p>However, doing so can be tricky.  If you want to get feedback, you can implement your own system for soliciting it, however, this takes up extra time that could be used to further develop your core web application.  Alternatively, there are some existing online services that can provide survey-like questionnaires to users, but honestly, these present more trouble to the user than they&#8217;re worth.</p>
<p>When I first started using <a href="/blog/2008/11/15/stack-overflow-is-a-great-community-and-resource/">Stack Overflow</a>, I noticed that the feedback service they had been using, <a href="http://uservoice.com/">UserVoice</a>, was an elegant and functional solution to this problem.</p>
<p>UserVoice takes care of the problem for you, by providing you with an easy-to-use comment and feedback forum.  (It can also be a place where users can submit bug reports, as well) However, it&#8217;s more than just a forum: By allowing users to &#8220;vote&#8221; on particular topics, it allows clustering of the most popular ideas/requests, thus bringing them to your attention the most.  It also helps prevent duplicate topics from being submitted, and is a great &#8220;Digg-style&#8221; way of using the &#8220;wisdom of the crowds&#8221;, as they say.</p>
<p>There are some drawbacks, of course.  If you&#8217;re using it to allow users to submit bugs, I wouldn&#8217;t rely on it as your sole bug tracker.  Instead, I&#8217;d use it to receive the reports, then parse through and verify them before adding them to a proper bug tracker (like <a href="http://trac.edgewall.org/">Trac</a>) where they can be better integrated into your development work-flow.  Furthermore, if you have a popular site, the feedback forums can still become deluged in too many requests/ideas, but that is a problem no matter what type of system you&#8217;re using for feedback.  And, as mentioned before, the voting system helps to bring to your attention the most popular ones so that you can further make a value judgment.</p>
<p>I&#8217;ve since <a href="http://runtrackr.uservoice.com/">launched a feedback forum</a> for <a href="http://runtrackr.com">RunTrackr</a>, my side project for the past little while.   I encourage you to give UserVoice a try, since it&#8217;s so easy to get started - you&#8217;re literally up and running inside of two minutes.  At a minimum, give their home page a visit - it does a great job of explaining the process in a simple and easy-to-understand manner.</p>
<hr/>Copyright &copy; 2008 <strong><a href="http://unitstep.net">unitstep.net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact <strong><a href="mailto:webmaster@unitstep.net">webmaster@unitstep.net</a></strong> for more information.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/unitstep?a=nBJln"><img src="http://feeds.feedburner.com/~f/unitstep?i=nBJln" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=IMZwn"><img src="http://feeds.feedburner.com/~f/unitstep?i=IMZwn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=o0bgn"><img src="http://feeds.feedburner.com/~f/unitstep?i=o0bgn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=V0wYN"><img src="http://feeds.feedburner.com/~f/unitstep?i=V0wYN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=JrHHN"><img src="http://feeds.feedburner.com/~f/unitstep?i=JrHHN" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unitstep/~4/470702717" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unitstep.net/blog/2008/11/30/getting-feedback-with-uservoice/feed/</wfw:commentRss>
		<feedburner:origLink>http://unitstep.net/blog/2008/11/30/getting-feedback-with-uservoice/</feedburner:origLink></item>
		<item>
		<title>Google’s SearchWiki: Promote Search Results!</title>
		<link>http://feeds.feedburner.com/~r/unitstep/~3/461359691/</link>
		<comments>http://unitstep.net/blog/2008/11/21/googles-searchwiki-promote-search-results/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 01:13:01 +0000</pubDate>
		<dc:creator>Peter Chng</dc:creator>
		
		<category><![CDATA[google]]></category>

		<category><![CDATA[search engine]]></category>

		<category><![CDATA[social]]></category>

		<category><![CDATA[usability]]></category>

		<category><![CDATA[digg]]></category>

		<category><![CDATA[promote]]></category>

		<category><![CDATA[search]]></category>

		<category><![CDATA[searchwiki]]></category>

		<guid isPermaLink="false">http://unitstep.net/?p=570</guid>
		<description><![CDATA[Yesterday, Google launched its SearchWiki tools, which allows registered users to promote or remove entries from a Google search to further personalize results. This will allow users to customize and tailor the results to what they&#8217;re interested in, but it&#8217;s worthwhile to note that Google has probably done something similar with their personalized search histories, [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, Google launched its <a href="http://googleblog.blogspot.com/2008/11/searchwiki-make-search-your-own.html">SearchWiki tools</a>, which allows registered users to promote or remove entries from a Google search to further personalize results. This will allow users to customize and tailor the results to what they&#8217;re interested in, but it&#8217;s worthwhile to note that Google has probably done something similar with their personalized search histories, already offered to registered users.</p>
<p>A few things to note: Firstly, while the act of promoting or removing a search result seems very akin to Digg, the result is not the same.  The changes you make only affect your own search results, and Google is very clear on this.  However, it would be madness to believe that Google would not use the data gathered from this social experiment to further improve their algorithms.  You also have the option of adding your own results to further personalize your searches and there is an option for seeing what <em>others</em> have recommended/promoted or removed, providing for an interesting social experiment.</p>
<p class="image">
<a href="http://unitstep.net/wordpress/wp-content/uploads/2008/11/google-promote.jpg"><img src="http://unitstep.net/wordpress/wp-content/uploads/2008/11/google-promote.jpg" alt="" title="google-promote" width="417" height="288" class="alignnone size-full wp-image-571" /></a>
</p>
<p>Secondly, as this <a href="http://blogs.wsj.com/biztech/2008/11/21/google-no-longer-the-same-search-results/">WSJ blog notes</a>, this ability may annoy people who have used SEO tactics to improve their site&#8217;s placement in Google&#8217;s search rankings.  However, I find this complaint misses the point: Search is supposed to simplify people&#8217;s lives, and if they&#8217;ve promoted or removed a link it was because they found something to be more useful or irrelevant.  </p>
<p>This isn&#8217;t yet a &#8220;wisdom of the crowds&#8221; approach to search results, but its undoubtedly a step forward towards a hybrid approach that takes in more human input to determine the quality of results and their placement.  One can only hope it will improve with time!</p>
<hr/>Copyright &copy; 2008 <strong><a href="http://unitstep.net">unitstep.net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact <strong><a href="mailto:webmaster@unitstep.net">webmaster@unitstep.net</a></strong> for more information.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/unitstep?a=S5tAn"><img src="http://feeds.feedburner.com/~f/unitstep?i=S5tAn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=bWZRn"><img src="http://feeds.feedburner.com/~f/unitstep?i=bWZRn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=HRZJn"><img src="http://feeds.feedburner.com/~f/unitstep?i=HRZJn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=XzWjN"><img src="http://feeds.feedburner.com/~f/unitstep?i=XzWjN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=dwy2N"><img src="http://feeds.feedburner.com/~f/unitstep?i=dwy2N" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unitstep/~4/461359691" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unitstep.net/blog/2008/11/21/googles-searchwiki-promote-search-results/feed/</wfw:commentRss>
		<feedburner:origLink>http://unitstep.net/blog/2008/11/21/googles-searchwiki-promote-search-results/</feedburner:origLink></item>
		<item>
		<title>Stack Overflow is a great community and resource</title>
		<link>http://feeds.feedburner.com/~r/unitstep/~3/454496478/</link>
		<comments>http://unitstep.net/blog/2008/11/15/stack-overflow-is-a-great-community-and-resource/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 02:35:49 +0000</pubDate>
		<dc:creator>Peter Chng</dc:creator>
		
		<category><![CDATA[development]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[codinghorror]]></category>

		<category><![CDATA[jeff atwood]]></category>

		<category><![CDATA[joel spolsky]]></category>

		<category><![CDATA[stackoverflow]]></category>

		<guid isPermaLink="false">http://unitstep.net/?p=562</guid>
		<description><![CDATA[
When Stack Overflow publicly launched back in September, I registered immediately after learning about it from a coworker.  The product of Joel Spolsky and Jeff Atwood (among others), the site aimed to be a collaborative Q&#038;A site focused on programming and software development. You could ask questions or provide answers to any of them. [...]]]></description>
			<content:encoded><![CDATA[<p class="image align-right"><a href="http://stackoverflow.com"><img src="http://unitstep.net/wordpress/wp-content/uploads/2008/11/stackoverflow.png" alt="" title="stackoverflow" width="250" height="70" class="alignnone size-medium wp-image-565" /></a></p>
<p>When <a href="http://stackoverflow.com/">Stack Overflow</a> publicly launched back in September, I registered immediately after learning about it from a coworker.  The product of <a href="http://joel.spolsky.com/">Joel Spolsky</a> and <a href="http://www.codinghorror.com/blog/">Jeff Atwood</a> (among others), the site aimed to be a collaborative Q&#038;A site focused on programming and software development. You could ask questions or provide answers to any of them.  In their own words it was combination of &#8220;Wikis, Blogs, Forums, and Digg/Reddit&#8221;.  Furthermore, they made no attempt at <a href="http://stackoverflow.com/about">hiding the fact</a> that they were designed to be better than other questionable sites, such as Experts-Exchange.</p>
<p>Though I registered over two months ago I&#8217;ve mostly been lurking since, but have been most astounded by the rate at which questions - often complex and very specific issues - get answered.  Since the site allows users to rate/vote up other people&#8217;s answers, it provides an incentive for users to give good answers that will be recognized by others, gaining them points and increasing their &#8220;reputation score&#8221;.  In this sense, it&#8217;s like Digg, but with a global ranking system.</p>
<p>I finally entered to the fray, answering <a href="http://stackoverflow.com/questions/290585/javascript-menu-remembering-position">a question about JavaScript</a> the other day.  It was actually a chore to find an unanswered question that <em>I</em> could answer, so I happily typed out my reply and finished it as fast as I could.  This allowed to me to earn my first set of points! Neat! I am now hooked, and can easily see how the site and its concept has attracted such a passionate audience.</p>
<p>Another interesting aspect of the site is using it as a snapshot to see which topics are of interest in software development.  By browsing the <a href="http://stackoverflow.com/tags">tags page</a>, which lists the keywords most used by questions, it is easy to see that .NET topics (C#, ASP.NET) dominate the website, followed by Java and C++.  <acronym class="uttInitialism" title="PHP: Hypertext Preprocessor">PHP</acronym> and JavaScript were quite a bit behind.  This actually surprised me, given the prevalence of <acronym class="uttAbbreviation" title="Linux, Apache, MySQL and PHP">LAMP</acronym>-oriented development.  </p>
<p>But perhaps that&#8217;s because web development does not constitute a majority of software development.  Furthermore, the topics that questions are being asked about does not necessarily correlate with the popularity of the topic - in fact, an extremely popular and established language might not have very many questions posted since the majority of the answers to questions will likely be found by a Google search.  Nonetheless, the view of Stack Overflow provides an interesting <em>zeitgeist</em> into what&#8217;s actively being used.</p>
<p>I&#8217;ve also learned a bit from Stack Overflow beyond the actual content.  In particular I was interested in their use of the <a href="http://uservoice.com/">UserVoice</a> service to setup a community-driven <a href="http://stackoverflow.uservoice.com/">bug report/feature request</a> forum.  I have since <a href="http://runtrackr.uservoice.com/">done the same</a> for <a href="http://runtrackr.com">RunTrackr</a>.  The clean layout and easy to use navigation also provide some good examples of a simple but effective web UI.</p>
<hr/>Copyright &copy; 2008 <strong><a href="http://unitstep.net">unitstep.net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact <strong><a href="mailto:webmaster@unitstep.net">webmaster@unitstep.net</a></strong> for more information.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/unitstep?a=dZ2zn"><img src="http://feeds.feedburner.com/~f/unitstep?i=dZ2zn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=UI5Nn"><img src="http://feeds.feedburner.com/~f/unitstep?i=UI5Nn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=Vj6An"><img src="http://feeds.feedburner.com/~f/unitstep?i=Vj6An" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=r8ljN"><img src="http://feeds.feedburner.com/~f/unitstep?i=r8ljN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=g4NPN"><img src="http://feeds.feedburner.com/~f/unitstep?i=g4NPN" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unitstep/~4/454496478" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unitstep.net/blog/2008/11/15/stack-overflow-is-a-great-community-and-resource/feed/</wfw:commentRss>
		<feedburner:origLink>http://unitstep.net/blog/2008/11/15/stack-overflow-is-a-great-community-and-resource/</feedburner:origLink></item>
		<item>
		<title>Subscribe to Comments for E-mail notification of replies</title>
		<link>http://feeds.feedburner.com/~r/unitstep/~3/446579428/</link>
		<comments>http://unitstep.net/blog/2008/11/08/subscribe-to-comments-for-e-mail-notification-of-replies/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 15:36:28 +0000</pubDate>
		<dc:creator>Peter Chng</dc:creator>
		
		<category><![CDATA[Colophon]]></category>

		<category><![CDATA[blog]]></category>

		<category><![CDATA[comments]]></category>

		<category><![CDATA[communication]]></category>

		<category><![CDATA[automattic]]></category>

		<category><![CDATA[disqus]]></category>

		<category><![CDATA[intensedebate]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://unitstep.net/?p=552</guid>
		<description><![CDATA[In response to the numerous comments received on my Acer Aspire One 6 vs. 3-cell battery comparison and subsequent full review, (thanks people!) I&#8217;ve added the popular Subscribe to Comments plugin to make dealing with responses easier.

Many of you posted questions in the comments, and having to keep checking back to see if anyone has [...]]]></description>
			<content:encoded><![CDATA[<p>In response to the numerous comments received on my Acer Aspire One <a href="/blog/2008/08/26/acer-aspire-one-6-cell-vs-3-cell-battery-comparison/">6 vs. 3-cell battery comparison</a> and subsequent <a href="/blog/2008/09/09/acer-aspire-one-canadian-review/">full review</a>, (thanks people!) I&#8217;ve added the popular <a href="http://wordpress.org/extend/plugins/subscribe-to-comments/">Subscribe to Comments</a> plugin to make dealing with responses easier.</p>
<p class="image"><img src="http://unitstep.net/wordpress/wp-content/uploads/2008/11/subscribe-comments.jpg" alt="" title="subscribe-comments" /></p>
<p>Many of you posted questions in the comments, and having to keep checking back to see if anyone has posted a reply can be tedious and time-consuming.  Instead, you can now subscribe to a comment thread when you post a reply; any subsequent comments will generate a notification that is e-mailed to you, keeping you up to date.  The e-mail will also contain a link to where you can manage all the threads you are subscribed to and remove yourself from any subscriptions, so you have full control over what e-mails you receive.  So don&#8217;t be afraid to use this feature!</p>
<p><strong>The feature is disabled/unchecked by default until you enable it</strong>.  This means it is purely an <em>opt-in</em> subscription, to prevent connotations of spam, which we all hate.  I have tried it out and it appears to be working, but <a href="/contact">let me know</a> if you have any problems.</p>
<h3>Future changes</h3>
<p>I had considered going with a third-party/centralized fully-featured commenting system like <a href="http://disqus.com/">DISQUS</a> or <a href="http://intensedebate.com/">IntenseDebate</a>, since they offered other nice things such as threading, replying and much more user control over things.  Additionally, the idea of your comments on one blog being part of your overall &#8220;identity&#8221; on the web expands the discussion and appeals to many active participants.  From what I&#8217;ve seen of DISQUS on other sites, it appears to be very appealing.</p>
<p>However, I wasn&#8217;t sure of what direction things would move in after moving to a third-party commenting system, or what would happen to comments stored there.  Recently, <a href="http://ma.tt/2008/09/intense-debate-goes-automattic/">IntenseDebate was acquired by Automattic</a>, the startup behind WordPress.com and the open source <a href="http://wordpress.org/">WordPress project</a>, which of course powers this blog.</p>
<p>Since then, IntenseDebate has become an invite-only service. (if only temporarily)  One would expect tighter integration with WordPress.com and IntenseDebate, but I&#8217;m not sure how this will affect the standalone WordPress with respect to whether IntenseDebate will work &#8220;better&#8221; with it than DISQUS.  I am going to wait a while to see how this all plays out before making a move, but I expect to move to one of these systems in the future</p>
<hr/>Copyright &copy; 2008 <strong><a href="http://unitstep.net">unitstep.net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact <strong><a href="mailto:webmaster@unitstep.net">webmaster@unitstep.net</a></strong> for more information.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/unitstep?a=DX6qn"><img src="http://feeds.feedburner.com/~f/unitstep?i=DX6qn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=BlR2n"><img src="http://feeds.feedburner.com/~f/unitstep?i=BlR2n" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=cmXgn"><img src="http://feeds.feedburner.com/~f/unitstep?i=cmXgn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=l8CMN"><img src="http://feeds.feedburner.com/~f/unitstep?i=l8CMN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=6tUuN"><img src="http://feeds.feedburner.com/~f/unitstep?i=6tUuN" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unitstep/~4/446579428" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unitstep.net/blog/2008/11/08/subscribe-to-comments-for-e-mail-notification-of-replies/feed/</wfw:commentRss>
		<feedburner:origLink>http://unitstep.net/blog/2008/11/08/subscribe-to-comments-for-e-mail-notification-of-replies/</feedburner:origLink></item>
		<item>
		<title>Properly setting Axis Ranges and Data Scaling using the Google Chart API</title>
		<link>http://feeds.feedburner.com/~r/unitstep/~3/444929229/</link>
		<comments>http://unitstep.net/blog/2008/11/06/properly-setting-axis-ranges-and-data-scaling-using-the-google-chart-api/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 01:00:08 +0000</pubDate>
		<dc:creator>Peter Chng</dc:creator>
		
		<category><![CDATA[charts]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[fix]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[graphs]]></category>

		<category><![CDATA[images]]></category>

		<category><![CDATA[tutorials]]></category>

		<category><![CDATA[api]]></category>

		<guid isPermaLink="false">http://unitstep.net/?p=531</guid>
		<description><![CDATA[
The Google Chart API is a great way to dynamically create chart and graph images for any non-static data you might want to display to your visitors, such as stats for a runner&#8217;s training log.  
Although you can use your own server-side solution for generating charts, using PHP&#8217;s GD Image Processing Library or even [...]]]></description>
			<content:encoded><![CDATA[<p class="image align-right"><a href="http://code.google.com/apis/chart/"><img src="http://unitstep.net/wordpress/wp-content/uploads/2008/11/google-chart-api.png" alt="" title="google-chart-api" /></a></p>
<p>The <a href="http://code.google.com/apis/chart/">Google Chart API</a> is a great way to dynamically create chart and graph images for any non-static data you might want to display to your visitors, such as <a href="http://runtrackr.uservoice.com/pages/general/suggestions/39633">stats for a runner&#8217;s training log</a>.  </p>
<p>Although you can use your own server-side solution for generating charts, using <a href="http://php.net/gd"><acronym class="uttInitialism" title="PHP: Hypertext Preprocessor">PHP</acronym>&#8217;s GD Image Processing Library</a> or even a fancy chart library like <a href="http://pchart.sourceforge.net/">pChart</a>, this can increase the drain on your server&#8217;s resources.  Client-side solutions that utilize <a href="http://www.filamentgroup.com/lab/creating_accessible_charts_using_canvas_and_jquery/">the <code>canvas</code> element and jQuery</a> or <a href="http://www.maani.us/xml_charts/">Flash</a> can be very nice and easy to use, but may slow down the browser if there are a lot of charts.</p>
<p>Google Charts offers a nice trade-off; by using their service you offload the processing and bandwidth and get back a simple <a href="http://www.w3.org/Graphics/PNG/" class="ubernym uttInitialism"><acronym class="uttInitialism" title="Portable Network Graphics">PNG</acronym></a> image, but you must learn to use the API.  Additionally, there&#8217;s also the risk that the service may throttle you, even if there&#8217;s no current usage limit.</p>
<h3>Problems specifying Axis Ranges - Data points are not changed!</h3>
<p>The API for Google Charts essentially consists of passing different query string parameters and their values and getting back a <a href="http://www.w3.org/Graphics/PNG/" class="ubernym uttInitialism"><acronym class="uttInitialism" title="Portable Network Graphics">PNG</acronym></a>-format image.  As a result of this, passing in parameters is a bit quirky, and information in the API guide is a bit sketchy in this respect.</p>
<p>One such example with quirky behaviour is properly setting the <a href="http://code.google.com/apis/chart/labels.html#axis_range">axis&#8217; ranges</a>, or scales, of a chart.  By default, all charts are set up on a 100&#215;100 grid.  It would seem that by changing the axis range, these values will be adjusted accordingly, affecting the position of any data points you&#8217;ve plotted.</p>
<p>But this isn&#8217;t the case; instead, changing the axis range with the <code>chxr</code> parameter <strong>only</strong> adjusts the position of any <em>axis labels</em> you might have, and <strong>does not</strong> affect the position of data points. Instead, data points will continue to be plotted as if they were on a 100&#215;100 grid.</p>
<h3>Illustrating the problem</h3>
<p>The following examples illustrate this point.  We plot a set of points, <code>{(10,40),(30,60),(50,70),(70,20),(90,40)}</code> using an <a href="http://code.google.com/apis/chart/types.html#line_charts">X-Y line chart</a>.  The first chart illustrates the points on the default grid of 100&#215;100. Because axis labels/positions have not been specified, the chart has been filled with default axis labels, which are values in the respective positions.</p>
<p class="image"><a href="http://chart.apis.google.com/chart?chs=500x500&amp;cht=lxy&amp;chd=t:10,30,50,70,90%7C40,60,70,20,40&amp;chxt=x,y&amp;chg=10,10&amp;chm=o,0000FF,0,-1,5,0"><img src="http://chart.apis.google.com/chart?chs=200x200&amp;cht=lxy&amp;chd=t:10,30,50,70,90%7C40,60,70,20,40&amp;chxt=x,y&amp;chg=10,10&amp;chm=o,0000FF,0,-1,5,0" alt="chart on default 100x100 grid" /></a></p>
<pre><code>URL: http://chart.apis.google.com/chart?chs=200x200&amp;cht=lxy&amp;chd=t:10,30,50,70,90|40,60,70,20,40&amp;chxt=x,y&amp;chg=10,10&amp;chm=o,0000FF,0,-1,5,0</code></pre>
<p>In this case, the points are plotted in the correct positions.  (Points have been highlighted with <a href="http://code.google.com/apis/chart/styles.html#shape_markers">markers</a> for clarity and grid lines spaced 10 units apart)</p>
<p>However, if we simply change the axis ranges by specifying the <code>chxr</code> parameter to be <code>chxr=0,0,200|1,0,200</code>, the axis labels change, but the data points are not properly scaled:</p>
<p class="image"><a href="http://chart.apis.google.com/chart?chs=500x500&amp;cht=lxy&amp;chd=t:10,30,50,70,90%7C40,60,70,20,40&amp;chxt=x,y&amp;chg=10,10&amp;chm=o,0000FF,0,-1,5,0&amp;chxr=0,0,200%7C1,0,200"><img src="http://chart.apis.google.com/chart?chs=200x200&amp;cht=lxy&amp;chd=t:10,30,50,70,90%7C40,60,70,20,40&amp;chxt=x,y&amp;chg=10,10&amp;chm=o,0000FF,0,-1,5,0&amp;chxr=0,0,200%7C1,0,200" alt="chart without data scaling"></a></p>
<pre><code>URL: http://chart.apis.google.com/chart?chs=200x200&amp;cht=lxy&amp;chd=t:10,30,50,70,90|40,60,70,20,40&amp;chxt=x,y&amp;chg=10,10&amp;chm=o,0000FF,0,-1,5,0&amp;chxr=0,0,200|1,0,200</code></pre>
<p>This is further evidenced by the grid line spacing; though it&#8217;s still set to 10 units, the lines would appear to be 20 units apart in the above graph.  This means that internally, the chart is still using a 100&#215;100 grid.  So, how do we fix that?</p>
<h3>Plotting data properly with axis ranges</h3>
<p>The <a href="http://code.google.com/apis/chart/labels.html#multiple_axes_labels">documentation</a> would benefit from being clearer in this respect.  </p>
<p>In order to properly scale data, <strong>you must use <a href="http://code.google.com/apis/chart/formats.html#data_scaling">data scaling</a> whenever you adjust the axis ranges to non-default values.</strong></p>
<p>For the above example, since we have set both axis ranges to 0-200, we must set the data scale of both data sets (X and Y values) to 0-200 as well.  We accomplish this by setting the <code>chds</code> like so:</p>
<pre><code>chds=0,200,0,200</code></pre>
<p>The resultant graph is now as expected for the given data points:</p>
<p class="image"><a href="http://chart.apis.google.com/chart?chs=500x500&amp;cht=lxy&amp;chd=t:10,30,50,70,90%7C40,60,70,20,40&amp;chxt=x,y&amp;chg=10,10&amp;chm=o,0000FF,0,-1,5,0&amp;chxr=0,0,200%7C1,0,200&amp;chds=0,200,0,200"><img src="http://chart.apis.google.com/chart?chs=200x200&amp;cht=lxy&amp;chd=t:10,30,50,70,90%7C40,60,70,20,40&amp;chxt=x,y&amp;chg=10,10&amp;chm=o,0000FF,0,-1,5,0&amp;chxr=0,0,200%7C1,0,200&amp;chds=0,200,0,200"></a></p>
<pre><code>URL: http://chart.apis.google.com/chart?chs=200x200&#038;cht=lxy&#038;chd=t:10,30,50,70,90|40,60,70,20,40&#038;chxt=x,y&#038;chg=10,10&#038;chm=o,0000FF,0,-1,5,0&#038;chxr=0,0,200|1,0,200&#038;chds=0,200,0,200</code</pre>
<p>(Curiously, grid lines are still placed 10 units apart according to an &#8220;internal&#8221; 100&#215;100 grid.)</p>
<p>I couldn&#8217;t find anything clear in the documentation about this, but instead found some <a href="http://groups.google.com/group/google-chart-api/browse_thread/thread/4c3783b3a0dabe8/02842878d286f0c8?lnk=gst&#038;q=axis+range#02842878d286f0c8">helpful threads</a> on the Google Groups for their Charts API that aided me in figuring out exactly how this all works.</p>
<h3>Clear as mud?</h3>
<p>There are still some things I&#8217;m not clear about, such as what <em><a href="http://code.google.com/apis/chart/formats.html#data_scaling">data scaling</a></em> is actually supposed to mean, and why simply changing axis ranges does not properly scale data in the first place.  Additionally, the <a href="http://code.google.com/apis/chart/formats.html">data formats page</a> specifies numerous other ways of specifying data in more compact, encoded forms, but these formats do not seem to support data scaling.  Does that mean these formats are confined to a 100&#215;100 grid?  </p>
<p>I haven&#8217;t had the time to fully experiment with the API, but hopefully will have time to learn.  In the meantime, I hope you found this information useful.  If you have some information I haven&#8217;t presented here, please don&#8217;t hesitate to comment below!</p>
<hr/>Copyright &copy; 2008 <strong><a href="http://unitstep.net">unitstep.net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact <strong><a href="mailto:webmaster@unitstep.net">webmaster@unitstep.net</a></strong> for more information.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/unitstep?a=Jowtn"><img src="http://feeds.feedburner.com/~f/unitstep?i=Jowtn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=imxEn"><img src="http://feeds.feedburner.com/~f/unitstep?i=imxEn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=c5Kcn"><img src="http://feeds.feedburner.com/~f/unitstep?i=c5Kcn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=HaWFN"><img src="http://feeds.feedburner.com/~f/unitstep?i=HaWFN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=VrnGN"><img src="http://feeds.feedburner.com/~f/unitstep?i=VrnGN" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unitstep/~4/444929229" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unitstep.net/blog/2008/11/06/properly-setting-axis-ranges-and-data-scaling-using-the-google-chart-api/feed/</wfw:commentRss>
		<feedburner:origLink>http://unitstep.net/blog/2008/11/06/properly-setting-axis-ranges-and-data-scaling-using-the-google-chart-api/</feedburner:origLink></item>
		<item>
		<title>The Beatles are coming to Rock Band!</title>
		<link>http://feeds.feedburner.com/~r/unitstep/~3/437468470/</link>
		<comments>http://unitstep.net/blog/2008/10/30/the-beatles-are-coming-to-rock-band/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 23:40:45 +0000</pubDate>
		<dc:creator>Peter Chng</dc:creator>
		
		<category><![CDATA[Games]]></category>

		<category><![CDATA[beatles]]></category>

		<category><![CDATA[guitar hero]]></category>

		<category><![CDATA[music]]></category>

		<category><![CDATA[rock band]]></category>

		<guid isPermaLink="false">http://unitstep.net/?p=517</guid>
		<description><![CDATA[
After much speculation about an upcoming game, it has been confirmed that the Beatles will be coming to a game produced by Harmonix, the makers of Rock Band.  There is much to be excited about, besides the fact that this has to do with The Beatles.
Just the details, ma&#8217;am
Wired live blogged the event and [...]]]></description>
			<content:encoded><![CDATA[<p class="image align-right"><img src="http://unitstep.net/wordpress/wp-content/uploads/2008/06/beatles-rockband.jpg" alt="Beatles and Rock Band" /></p>
<p>After much <a href="/blog/2008/06/28/the-beatles-need-to-come-rock-band-or-guitar-hero/">speculation about an upcoming game</a>, it has been <a href="http://multiplayerblog.mtv.com/2008/10/29/rock-band-beatles-talk/"><strong>confirmed</strong></a> that the Beatles will be coming to a game produced by <cite>Harmonix</cite>, the makers of <cite><a href="/blog/category/rock-band/">Rock Band</a></cite>.  There is much to be excited about, besides the fact that this has to do with The Beatles.</p>
<h3>Just the details, ma&#8217;am</h3>
<p>Wired <a href="http://blog.wired.com/games/2008/10/live-blog-the-b.htmlplease">live blogged the event</a> and while much of it is tangential ephemera, there&#8217;s a good summary at the top.  The key points: The deal is exclusive, the game will be released during the 2009 holiday season, the game won&#8217;t be branded with the &#8220;Rock Band&#8221; name, and Giles Martin will be involved!</p>
<p>The lack of the &#8220;Rock Band&#8221; name was expected - The Beatles clearly didn&#8217;t want to dilute their trademark but from what I am guessing, the core gameplay will remain the same, with the &#8220;musical and visual journey&#8221; providing lots of trivia, information and history to placate rabid fans, such as myself.  (Think of it as Rock Band fused with <a href="http://en.wikipedia.org/wiki/The_Beatles_Anthology">The Beatles Anthology</a>)</p>
<h3>Not just a cash-grab</h3>
<p>Also surprising is Giles Martin&#8217;s involvement.  Giles, the son of Sir George Martin, famed producer of The Beatles, collaborated with his father to produce the 2006 <cite>Love</cite> compilation album that was also the soundtrack for the identically-named Cirque du Soleil performance.  I <a href="/blog/2007/06/11/the-beatles-love-2006-compilation-album/">quite enjoyed the album</a>, so I&#8217;m hoping some of that experience will brought over to the game.  I&#8217;m sure that George Martin would love to be involved himself, save for his age.</p>
<p>Coupled with the fact that The Beatles are known for resisting undue use of their trademark, I believe this will make the game more than just a cheap one-timer meant to empty the pockets of fans.  Harmonix, the developers of the original <cite>Guitar Hero</cite> and <cite>Rock Band</cite> also have a good track record for originality.  While <cite>Rock Band 2</cite> wasn&#8217;t too much of an improvement over the already great original, there&#8217;s no denying it&#8217;s not a good game.  (I have yet to write my full review of the game, but check out my <a href="/blog/2008/10/20/rock-band-2-unboxing-for-ps3/">preview</a> for more)</p>
<p>One point of interest that sure to be a sore wound for Activision is the fact that the deal is exclusive.  This means that there&#8217;s no possibility of The Beatles appearing in a <cite>Guitar Hero</cite> game, unlike other artists (such as <cite>Oasis</cite>) that have tracks available in both series&#8217; games. </p>
<h3>The Songs: What&#8217;s important</h3>
<p>From <a href="http://blog.wired.com/music/2008/10/beatles-version.html">what I&#8217;ve read</a>, the game will feature a variety of songs from their early days (<cite>Please Please Me</cite>) to their final days together in the studio. (<cite>Abbey Road</cite>).   Obviously, some songs are a natural fit (<cite>While My Guitar Gently Weeps</cite>) others would just not work with a game. (<cite>Revolution 9</cite>)</p>
<p>Wired is holding an <a href="http://blog.wired.com/music/2008/10/beatles-songs-o.html">online poll</a> where you can vote up the songs you&#8217;d like to see in the Beatles game.  I suggest you take part and voice your opinion, since Harmonix, the developers, are known to check Internet forums for feedback on what songs to include in upcoming games.</p>
<p>My <a href="/blog/2008/06/28/the-beatles-need-to-come-rock-band-or-guitar-hero/">personal preferences</a> have already been stated.  </p>
<h3>Changing the game</h3>
<p>A Beatles music game has real potential to be wildly successful.  Besides the fanatics (like myself) who are already in love with Rock Band and The Beatles, a properly-executed game will have potential to drawn in an older generation to video games, and at the same time, introduce the awesome music of The Beatles to a younger generation, that, for whatever tragic reason, has yet to appreciate the wide range of their abilities. </p>
<p>Even though the likely release date is over a year away, it&#8217;s safe to say that I&#8217;m excited.  Very excited!</p>
<h4>More Reading</h4>
<ul class="note less">
<li><a href="http://blog.wired.com/music/2008/10/beatles-announc.html">Apple Corp., MTV Announcing Beatles, Rock Band Deal</a></li>
<li><a href="http://blog.wired.com/games/2008/10/live-blog-the-b.htmlplease">Live Blog: Beatles, Rock Band Makers Team For New Game</a></li>
<li><a href="http://www.cbc.ca/arts/music/story/2008/10/30/mtv-beatles.html">Rock&#8217;s holy grail: MTV scores Beatles music for video game</a></li>
<li><a href="http://blog.wired.com/music/2008/10/beatles-songs-o.html">Which Songs Do You Want to Play in the Beatles Game?</a></li>
</ul>
<hr/>Copyright &copy; 2008 <strong><a href="http://unitstep.net">unitstep.net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact <strong><a href="mailto:webmaster@unitstep.net">webmaster@unitstep.net</a></strong> for more information.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/unitstep?a=EIKom"><img src="http://feeds.feedburner.com/~f/unitstep?i=EIKom" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=xKKIm"><img src="http://feeds.feedburner.com/~f/unitstep?i=xKKIm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=qIhkm"><img src="http://feeds.feedburner.com/~f/unitstep?i=qIhkm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=huzBM"><img src="http://feeds.feedburner.com/~f/unitstep?i=huzBM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=8bzLM"><img src="http://feeds.feedburner.com/~f/unitstep?i=8bzLM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unitstep/~4/437468470" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unitstep.net/blog/2008/10/30/the-beatles-are-coming-to-rock-band/feed/</wfw:commentRss>
		<feedburner:origLink>http://unitstep.net/blog/2008/10/30/the-beatles-are-coming-to-rock-band/</feedburner:origLink></item>
		<item>
		<title>Extracting X509 Extensions from a CSR using the Bouncy Castle APIs</title>
		<link>http://feeds.feedburner.com/~r/unitstep/~3/434215426/</link>
		<comments>http://unitstep.net/blog/2008/10/27/extracting-x509-extensions-from-a-csr-using-the-bouncy-castle-apis/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 02:01:07 +0000</pubDate>
		<dc:creator>Peter Chng</dc:creator>
		
		<category><![CDATA[X.509]]></category>

		<category><![CDATA[certificates]]></category>

		<category><![CDATA[cryptography]]></category>

		<category><![CDATA[guides]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[pki]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[tutorials]]></category>

		<category><![CDATA[ca]]></category>

		<category><![CDATA[certificate]]></category>

		<category><![CDATA[certificate request]]></category>

		<category><![CDATA[csr]]></category>

		<category><![CDATA[guide]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://unitstep.net/?p=407</guid>
		<description><![CDATA[The Bouncy Castle Cryptography Java APIs are an excellent set of APIs that act as a provider for JCE and JCA.  Additionally, they take care of the mundane and tedious (some would say overly complicated) details involved in reading and creating the data structures associated with the X.500 and PKCS standards. (The APIs are [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://bouncycastle.org/">Bouncy Castle Cryptography Java APIs</a> are an excellent set of APIs that act as a provider for JCE and JCA.  Additionally, they take care of the mundane and tedious (some would say overly complicated) details involved in reading and creating the data structures associated with the X.500 and PKCS standards. (The APIs are also available in C#, for .NET developers out there)</p>
<p>One thing they handle well is the concept of certificate extensions.  X.509 v3 certificates introduced the concept of these extensions, which are basically additional (potentially optional) fields containing information not contained in the older original X.509 specifications.  Each extension is specified by an OID (Object Identifier); a good <a href="http://www.alvestrand.no/objectid/2.5.29.html">list of these extensions</a> is available.</p>
<p>While it&#8217;s easy to read these extensions from an existing X.509 v3 certificate using the Bouncy Castle APIs it is a bit more involved to read these extensions from a <a href="http://en.wikipedia.org/wiki/Certificate_signing_request">Certificate Signing Request</a>, or CSR; this is the data structure that is sent to a CA to request a certificate.  The CA then reads the data from this and creates a signed certificate issued to the requester.  In this guide I&#8217;ll present a brief way to extract X.509 <a href="http://www.alvestrand.no/objectid/submissions/1.2.840.113549.1.9.14.html">extensions request</a> from a CSR so that they may be included in the resulting issued certificate.</p>
<h3>Code: The good stuff</h3>
<p>Assuming you have added the Bouncy Castle JARs to your classpath, you should have access to the classes used here.  </p>
<p>You must first have the CSR in the format of a Bouncy Castle data object, namely the <a href="http://www.cs.berkeley.edu/~jonah/bc/org/bouncycastle/jce/PKCS10CertificationRequest.html"><code>PKCS10CertificationRequest</code></a>. If all you have is the PEM-format of the CSR (i.e. Base64-encoded contents delimited by headers like <code>----- BEGIN CERTIFICATE REQUEST -----</code> and <code>----- END CERTIFICATE REQUEST -----</code>) then you will need to convert  this to the proper data structure using something like<br />
<a href="http://juliusdavies.ca/commons-ssl/javadocs/org/apache/commons/ssl/PEMUtil.html">PEMUtil</a> from Commons-SSL like I have done below.  (BC has a <a href="http://www.eecs.berkeley.edu/~jonah/javadoc/org/bouncycastle/jce/provider/PEMUtil.html">PEMUtil</a> class as well, but it appears to be only for internal use)</p>
<pre><code>// NOTE: Commons-SSL doesn't support generics.
final List pemItems = PEMUtil.decode( csrContent.getBytes() );

// Verify list isn't empty - uses Apache Commons Lang.
Validate.isTrue( !pemItems.isEmpty() );

// No support for generics, so have to cast. (Could have cast the entire List)
final PEMItem csrPemFormat = (PEMItem) pemItems.get( 0 );

// Verify the type.
Validate.isTrue( csrPemFormat.pemType.equals( "CERTIFICATE REQUEST" ),
  "This is not a CSR" );

final PKCS10CertificationRequest csr = new PKCS10CertificationRequest(
  csrPemFormat.getDerBytes() );</code></pre>
<p>We first decode the PEM (Base64) CSR into <code>List</code> of <a href="http://juliusdavies.ca/commons-ssl/javadocs/org/apache/commons/ssl/PEMItem.html"><code>PEMItem</code></a>s. Note that Commons-SSL doesn&#8217;t support <a href="http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html">generics</a>, so you are going to get a cast warning somewhere in the code, no matter what.  When calling <code>getBytes()</code> on the CSR string, you may want to specify the <code>US-ASCII</code> character set, since the no-arg method uses the platform default character set, which might give inconsistent results across different systems when converting from characters to bytes. </p>
<p>We then grab the first entry in the list, checking if it is a CSR.  We can now convert this into the proper data structure by supplying the raw bytes (i.e. the DER-encoded format) to the constructor of <code>PKCS10CertificationRequest</code>.</p>
<p>The method to extract the <a href="http://www.cs.berkeley.edu/~jonah/bc/org/bouncycastle/asn1/x509/X509Extensions.html"><code>X509Extensions</code></a> structure from the <code>PKCS10CertificationRequest</code> is shown below.</p>
<pre><code>   /**
    * Gets the X509 Extensions contained in a CSR (Certificate Signing Request).
    *
    * @param certificateSigningRequest the CSR.
    * @return the X509 Extensions in the request.
    * @throws CertificateException if the extensions could not be found.
    */
   X509Extensions getX509ExtensionsFromCsr(
         final PKCS10CertificationRequest certificateSigningRequest ) throws CertificateException
   {
      final CertificationRequestInfo certificationRequestInfo = certificateSigningRequest
            .getCertificationRequestInfo();

      final ASN1Set attributesAsn1Set = certificationRequestInfo.getAttributes();

      // The `Extension Request` attribute is contained within an ASN.1 Set,
      // usually as the first element.
      X509Extensions certificateRequestExtensions = null;
      for (int i = 0; i &lt; attributesAsn1Set.size(); ++i)
      {
         // There should be only only one attribute in the set. (that is, only
         // the `Extension Request`, but loop through to find it properly)
         final DEREncodable derEncodable = attributesAsn1Set.getObjectAt( i );
         if (derEncodable instanceof DERSequence)
         {
            final Attribute attribute = new Attribute( (DERSequence) attributesAsn1Set
                  .getObjectAt( i ) );

            if (attribute.getAttrType().equals( PKCSObjectIdentifiers.pkcs_9_at_extensionRequest ))
            {
               // The `Extension Request` attribute is present.
               final ASN1Set attributeValues = attribute.getAttrValues();

               // The X509Extensions are contained as a value of the ASN.1 Set.
               // Assume that it is the first value of the set.
               if (attributeValues.size() &gt;= 1)
               {
                  certificateRequestExtensions = new X509Extensions( (ASN1Sequence) attributeValues
                        .getObjectAt( 0 ) );

                  // No need to search any more.
                  break;
               }
            }
         }
      }

      if (null == certificateRequestExtensions)
      {
         throw new CertificateException( "Could not obtain X509 Extensions from the CSR" );
      }

      return certificateRequestExtensions;
   }</code></pre>
<p>Basically, we get the certificate request info from the CSR structure and then extract attributes from it.  Then, we loop through to find the attribute with the <a href="http://www.alvestrand.no/objectid/submissions/1.2.840.113549.1.9.14.html">&#8220;Extension Request&#8221; OID</a>.</p>
<p>After that, I make an assumption that the actual extensions are contained in the first value of the place of the ASN.1 Set that makes up the &#8220;Extensions Request&#8221; structure - not a big assumption, and in my testing I haven&#8217;t encountered a situation where this wasn&#8217;t the case.  It&#8217;s worthwhile to keep in mind that ASN.1 often prescribes Set or multi-value structures in places where the underlying data can  only be single-valued. </p>
<p>After running through that code, we&#8217;ll have either found the extensions, and be returning them in a <a href="http://www.cs.berkeley.edu/~jonah/bc/org/bouncycastle/asn1/x509/X509Extensions.html"><code>X509Extensions</code></a> structure, or an exception will be thrown.  You could modify the code to return <code>null</code> if that suits your style or purpose better.</p>
<h3>A few more notes</h3>
<p>Once you have the <code>X509Extensions</code> structure you can use the extensions contained within to create/issue a certificate with them.  Check out the <a href="http://www.bouncycastle.org/wiki/display/JA1/X.509+Public+Key+Certificate+and+Certification+Request+Generation">Bouncy Castle Guide on Certificate Generation</a> for more details.</p>
<p>Note that a CA is <em>not required</em> to use any of the extension requests present in a CSR - hence the name &#8220;requests&#8221;.  It is entirely up to the CA to decide what extensions are appropriate, along with their values, for the certificates that it issues.  </p>
<h3>Code Review</h3>
<p>The code is a little complicated and could probably benefit from some refactoring.  However, a lot of the complexity derives from the fact that the X.509 and associated standards are quite complex themselves.  This is a reflection on the vision that the designers of X.509 had for the future of the standard.  However, the <a href="http://www.cs.auckland.ac.nz/~pgut001/pubs/x509guide.txt">complexity of X.509</a> is another topic for another article.  </p>
<p>I hope you found this article useful, as while I found lots of information for <a href="http://www.bouncycastle.org/wiki/display/JA1/X.509+Public+Key+Certificate+and+Certification+Request+Generation">generating CSRs</a>, information on parsing and working with them was a little sparse.  Please feel free to leave your comments below!</p>
<hr/>Copyright &copy; 2008 <strong><a href="http://unitstep.net">unitstep.net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact <strong><a href="mailto:webmaster@unitstep.net">webmaster@unitstep.net</a></strong> for more information.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/unitstep?a=UkFQm"><img src="http://feeds.feedburner.com/~f/unitstep?i=UkFQm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=Hnbsm"><img src="http://feeds.feedburner.com/~f/unitstep?i=Hnbsm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=4fNcm"><img src="http://feeds.feedburner.com/~f/unitstep?i=4fNcm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=YnFlM"><img src="http://feeds.feedburner.com/~f/unitstep?i=YnFlM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=XVEVM"><img src="http://feeds.feedburner.com/~f/unitstep?i=XVEVM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unitstep/~4/434215426" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unitstep.net/blog/2008/10/27/extracting-x509-extensions-from-a-csr-using-the-bouncy-castle-apis/feed/</wfw:commentRss>
		<feedburner:origLink>http://unitstep.net/blog/2008/10/27/extracting-x509-extensions-from-a-csr-using-the-bouncy-castle-apis/</feedburner:origLink></item>
		<item>
		<title>Google changes iGoogle, making gadget development more profitable</title>
		<link>http://feeds.feedburner.com/~r/unitstep/~3/427039420/</link>
		<comments>http://unitstep.net/blog/2008/10/20/google-changes-igoogle-making-gadget-development-more-profitable/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 02:48:45 +0000</pubDate>
		<dc:creator>Peter Chng</dc:creator>
		
		<category><![CDATA[advertising]]></category>

		<category><![CDATA[api]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[facebook]]></category>

		<category><![CDATA[gmail]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[user interface]]></category>

		<category><![CDATA[apps]]></category>

		<category><![CDATA[gadgets]]></category>

		<category><![CDATA[igoogle]]></category>

		<guid isPermaLink="false">http://unitstep.net/?p=475</guid>
		<description><![CDATA[
On Thursday, Google rolled out an update to its personalized home page service, iGoogle.  Among other UI updates, the major new features were increased flexibility in what &#8220;gadgets&#8221;, the personalized &#8220;chunks&#8221; that make up an iGoogle start page, can do.  This, in turn, allows developers much more freedom with what they can provide [...]]]></description>
			<content:encoded><![CDATA[<p class="image align-right"><img src="http://unitstep.net/wordpress/wp-content/uploads/2008/10/igoogle.jpg" alt="" title="igoogle" width="167" height="55" class="alignnone size-full wp-image-481" /></p>
<p>On Thursday, Google <a href="http://googleblog.blogspot.com/2008/10/whats-new-with-igoogle.html">rolled out an update</a> to its personalized home page service, <a href="http://www.google.com/ig">iGoogle</a>.  Among other UI updates, the major new features were increased flexibility in what &#8220;gadgets&#8221;, the personalized &#8220;chunks&#8221; that make up an iGoogle start page, can do.  This, in turn, allows developers much more freedom with what they can provide to the user through an iGoogle gadget.</p>
<p>Previously, gadgets could only occupy a small box that took up only a third of the screen.  While this was okay for reading headlines or perhaps glancing at stock prices, it limited the usefulness of gadgets and the information that could be provided.  For more detail, users would often have to click a link in the gadget that would take them away from iGoogle.  While this is perhaps the proper use of a &#8220;start page&#8221;, Google may now see things differently.</p>
<h3>Life is a great big canvas</h3>
<p>Gadgets now offer a near full-size &#8220;canvas&#8221; mode, where the gadget is expanded to take up most of the screen.  This allows more information to be displayed and makes the iGoogle page less of a start page and more of an aggregator - like an <acronym class="uttInitialism" title="Really Simple Syndication">RSS</acronym> reader, but with much more.</p>
<p>Speaking of <acronym class="uttInitialism" title="Really Simple Syndication">RSS</acronym> readers, any <acronym class="uttInitialism" title="Really Simple Syndication">RSS</acronym> feeds on iGoogle can now be expanded into a full-feed view, using a layout/interface not unlike that of Google Reader, their specialized <acronym class="uttInitialism" title="Really Simple Syndication">RSS</acronym> reader product.  All of these enhancements are designed to help you get the information you want, <strong>without</strong> having to leave iGoogle.  </p>
<p>Some good examples of gadgets taking full advantage of the new functionality offered by the new iGoogle include the <a href="http://www.gasbuddy.com/">GasBuddy</a> gadget, which display a small labeled map of local gas prices in the &#8220;mini&#8221; mode, which expands to a fully-searchable map complete with a clickable legend in the full-screen canvas mode.</p>
<p>Google&#8217;s own products, such as the Gmail and Google Calendar gadgets, have also been updated to nicely take advantage of the new abilities.  In canvas mode, each gadget expands to fill the screen with pretty much the same UI as their respective web applications.  This makes accessing your various Google Account services easier and decreases load times.</p>
<h3>Content and Money</h3>
<p>Others include the Wall Street Journal&#8217;s gadget, which in canvas mode looks similar to a start page of its own.  Interestingly, ads are shown in this mode, presumably from the WSJ itself.  This highlights another important aspect of gadget development: Income.  </p>
<p>This is really the crux of the iGoogle update, in my opinion.  By allowing <a href="http://igoogledeveloper.blogspot.com/2008/10/big-canvas-big-opportunity.html">giving more power to developers</a> and allowing more content to be shown on iGoogle, developers can have more flexibility with their creations.  In return, Google is apparently willing to allow them to show ads so they can make money off of their creations, which clearly add value to iGoogle.</p>
<p>It&#8217;s hardly an original idea.  Facebook has had their own <a href="/blog/2007/06/03/facebooks-platform-adds-integration-to-applications/">applications platform</a> for well over a year, with much of the same ideas.  Facebook Apps are made by third party developers, and mostly run &#8220;within&#8221; the confines of the main Facebook site, keeping users on the site.  In return, developers can also choose to run ads in their application to generate revenue.  It&#8217;s a very similar model.  (Facebook recently <a href="http://www.readwriteweb.com/archives/facebook_fbfund_awards_25_new.php">awarded some of the best apps</a> through their fbFund initiative, with the promise of more money to come - perhaps Google will do the same? They&#8217;ve already done something similar with Android in order to spurn development)</p>
<h3>Not so fast</h3>
<p>Unfortunately, the changes were not all good.  For one thing, the vast majority of existing gadgets haven&#8217;t been rewritten to take advantage of the full canvas mode.  In all likelihood, many will not, since third party developers may do as they like.  Gadgets that haven&#8217;t been updated will merely be displayed besides a huge &#8220;You might also like&#8230;&#8221; list of recommended/related gadgets when displayed in full-screen canvas mode.</p>
<p>Furthermore, some users have complained about the UI updates.  In particular, the mandatory left sidebar now in place has caused some to lament the loss in screen real-estate.  Previously, tabs were only shown on top if you had defined more than one; now the list of tabs, along with the iGoogle gadgets in each one, are shown in the sidebar no matter what.</p>
<p>Indeed, such a display might be superfluous if there&#8217;s only one tab.  At the very least, Google should have allowed the sidebar to be collapsed or tucked away.  (I won&#8217;t be surprised if they implement this change in the next few days, or already have it planned)</p>
<p>Also surprising is how Google rolled out the new version so suddenly, effectively forcing all users to adopt it.  A better approach would have been to roll out a &#8220;beta&#8221; version (we all know how much Google is <a href="http://royal.pingdom.com/2008/09/24/why-is-almost-half-of-google-in-beta/">in love with beta</a>) and allow users to preview it and optionally switch.  This would allow them to get more feedback before switching everyone over, like Facebook did with their new redesign, which effectively took months to take effect.</p>
<p>However, given that iGoogle&#8217;s user base is likely a very small percentage of all the users who have Google as their start page (with most just preferring the stripped-down original search page as their starting point), perhaps Google believed that rolling out the updated site would affect so few that a beta period wasn&#8217;t really needed.  In any event, the changes are not so ground breaking to warrant serious concern.</p>
<hr/>Copyright &copy; 2008 <strong><a href="http://unitstep.net">unitstep.net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact <strong><a href="mailto:webmaster@unitstep.net">webmaster@unitstep.net</a></strong> for more information.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/unitstep?a=QHYLm"><img src="http://feeds.feedburner.com/~f/unitstep?i=QHYLm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=3d0bm"><img src="http://feeds.feedburner.com/~f/unitstep?i=3d0bm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=0J51m"><img src="http://feeds.feedburner.com/~f/unitstep?i=0J51m" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=NJK0M"><img src="http://feeds.feedburner.com/~f/unitstep?i=NJK0M" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=mC6BM"><img src="http://feeds.feedburner.com/~f/unitstep?i=mC6BM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unitstep/~4/427039420" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unitstep.net/blog/2008/10/20/google-changes-igoogle-making-gadget-development-more-profitable/feed/</wfw:commentRss>
		<feedburner:origLink>http://unitstep.net/blog/2008/10/20/google-changes-igoogle-making-gadget-development-more-profitable/</feedburner:origLink></item>
		<item>
		<title>Rock Band 2 Unboxing for PS3</title>
		<link>http://feeds.feedburner.com/~r/unitstep/~3/426959444/</link>
		<comments>http://unitstep.net/blog/2008/10/20/rock-band-2-unboxing-for-ps3/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 23:39:14 +0000</pubDate>
		<dc:creator>Peter Chng</dc:creator>
		
		<category><![CDATA[Games]]></category>

		<category><![CDATA[music]]></category>

		<category><![CDATA[photos]]></category>

		<category><![CDATA[playstation3]]></category>

		<category><![CDATA[rock band]]></category>

		<category><![CDATA[rockband]]></category>

		<category><![CDATA[rockband2]]></category>

		<guid isPermaLink="false">http://unitstep.net/?p=478</guid>
		<description><![CDATA[
Yesterday, Rock Band 2 was officially released for Playstation 3 across North America.  I managed to snag a copy of the SE Bundle after some looking around.  Here&#8217;s a brief overview of what you get along with my initial impressions.  Expect a full(er) review later.  And yes, I am going to [...]]]></description>
			<content:encoded><![CDATA[<p class="image align-right"><a href="http://www.zooomr.com/photos/stygiansonic/6123692/" title="Photo Sharing"><img src="http://static.zooomr.com/images/6123692_c1860a70e0_t.jpg" width="100" height="75" alt="Picture 001" /></a></p>
<p>Yesterday, Rock Band 2 was officially released for Playstation 3 across North America.  I managed to snag a copy of the SE Bundle after some looking around.  Here&#8217;s a brief overview of what you get along with my initial impressions.  Expect a full(er) review later.  And yes, I am going to be lazy and link to the <a href="http://en.wikipedia.org/wiki/Rock_Band_2">Wikipedia article on Rock Band 2</a> for those of you in need of some background information. (For those of you looking for just <a href="<a href="http://www.zooomr.com/photos/stygiansonic/sets/39232/">unboxing photos</a>, we have those too, along with a comparison between instruments of Rock Band 1 and Rock Band 2)</p>
<p>For $190 US/CAD (the CAD version actually being cheaper with the exchange rate changes of late), you get the updated guitar, improved wireless drums, microphone, and of course, the game. For comparision, the original Rock Band SE bundle cost only $170 US when it was released 11 months ago.  So, where is the extra $20 going to?</p>
<p>Firstly, there are 84 songs included in the <a href="http://en.wikipedia.org/wiki/List_of_songs_in_Rock_Band_2">Rock Band 2 setlist</a>, versus only <a href="http://en.wikipedia.org/wiki/List_of_songs_in_Rock_Band">58 for the original</a>.  Additionally, 20 more tracks have been promised as free downloadable content via an access code included with the game.  </p>
<p class="image"><a href="http://www.zooomr.com/photos/stygiansonic/6123769/" title="Photo Sharing"><img src="http://static.zooomr.com/images/6123769_b89a9fa213_m.jpg" width="240" height="180" alt="Picture 015" /></a></p>
<p>Secondly, the instruments have changed.  The drums are now wireless, the pads are quieter and the bass pedal has been reinforced with a top layer of metal, though it&#8217;s still mostly plastic. Having quieter pads is the main reason I decided to buy the bundle even though I already have the original RB bundle.  (Getting an extra guitar also helps)</p>
<p class="image"><a href="http://www.zooomr.com/photos/stygiansonic/6123734/" title="Photo Sharing"><img src="http://static.zooomr.com/images/6123734_03800e390e_m.jpg" width="240" height="180" alt="Picture 011" /></a></p>
<p>The guitar itself is changed, though I wouldn&#8217;t say that it has been improved like the drums.  The neck and fretboard now have a faux-wood look, though strangely, the body of the guitar included with the PS3 Rock Band 2 bundle is the same black/white colour as the original, and not the <a href="http://arstechnica.com/reviews/games/rock-band-2-review.ars/2">&#8220;sunburst&#8221;</a> colour of the version included with the Xbox 360 bundle.  Perhaps the sunburst colour was only for the 360 version? After all, Microsoft did strike a deal with Harmonix to get the game released a month earlier for the 360.</p>
<h3>Update: Flameburst/Sunburst Strat Guitar NOT included with bundle</h3>
<p>It appears that I&#8217;m not the only one noticing that the bundled guitar that comes with Rock Band 2 <strong>does not</strong> have the flameburst/sunburst design on the body, and only the fretboard has the faux-wood look, as seen in the images here.  Others are reporting that the <a href="http://www.amazon.com/review/R1NG7GU4K85XKQ/ref=cm_cr_rdp_perm">Xbox 360 RB2 SE bundle</a> also comes with the black-bodied guitar.  It appears the only way to get the new design is to <a href="http://www.amazon.com/review/R1EFOFZMUAE541/ref=cm_cr_rdp_perm">buy a standalone guitar</a>.  I&#8217;m a bit displeased at this, since the &#8220;sunburst&#8221; design was heavily showcased in all the Rock Band 2 previews and promotional images, so it was expected to be included in the bundle. Maybe Harmonix had a surplus of black plastic guitar bodies to get rid of.</p>
<p>Besides the cosmetic change, the guitar fret buttons are quieter as promised, but the strum bar is a bit louder.  This is because it has a definite &#8220;click&#8221; and &#8220;stop&#8221; to it, rather than the &#8220;mushy&#8221; feel of the original that turned some people off.  (It took me a while to get used to it)</p>
<p class="image"><a href="http://www.zooomr.com/photos/stygiansonic/6123737/" title="Photo Sharing"><img src="http://static.zooomr.com/images/6123737_3f740ce800_m.jpg" width="240" height="180" alt="Picture 012" /></a></p>
<p>The microphone is essentially identical to the Rock Band 1 version.  Gameplay is, of course, basically the same as before.  (If it ain&#8217;t broke&#8230;)  There are some nice addons, such as  &#8220;No Fail&#8221; mode that allows you to make it through any song without the annoyance of failure.  You can also now play the Band World Tour mode online, expanding your options for the game, since this was undoubtedly the best mode of the original Rock Band.  There also doesn&#8217;t appear to be a strictly separate &#8220;Solo&#8221; mode anymore; instead you are free to start a group in Band World Tour mode consisting only of yourself.  These are nice updates that add to the replay value.</p>
<p class="image"><a href="http://www.zooomr.com/photos/stygiansonic/6123712/" title="Photo Sharing"><img src="http://static.zooomr.com/images/6123712_2ae211e650_m.jpg" width="240" height="180" alt="Picture 006" /></a></p>
<p>That&#8217;s all I have to say for now.  Expect a full review later.  For now, you can browse some photos I&#8217;ve taken of the <a href="http://www.zooomr.com/photos/stygiansonic/sets/39232/">Rock Band 2 bundle</a>, along with some comparision shots between the Rock Band 1 and Rock Band 2 instruments.</p>
<h3>Update: Rock Band 2 vs. Rock Band 1 drums loudness/noise</h3>
<p>I&#8217;ve uploaded a quick video that shows the difference in sound between the Rock Band 1 and updated Rock Band 2 drums.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/CnTD_xT4W94&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/CnTD_xT4W94&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Unfortunately, my camera is not the best at picking up sound, so the video doesn&#8217;t fully reflect the difference.  I&#8217;d say the best example in the video is the difference in noise between the yellow pad hits on the two drum sets.  The new drums are <strong>substantially</strong> quieter/softer than the originals.</p>
<h3>Update: Rock Band/Guitar Hero instrument compatibility guide</h3>
<p>Joystiq has put together an up-to-date <a href="http://www.joystiq.com/Instrument-Compatibility-Matrix/">Rock Band and Guitar Hero instrument compatibility guide</a>.  Pretty much all the instruments are shown for the Xbox 360, PS3 and Wii versions of available games.  The good news? It appears that both Rock Band 1 &#038; 2 instruments are compatible with Guitar Hero: World Tour.</p>
<hr/>Copyright &copy; 2008 <strong><a href="http://unitstep.net">unitstep.net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact <strong><a href="mailto:webmaster@unitstep.net">webmaster@unitstep.net</a></strong> for more information.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/unitstep?a=UaNom"><img src="http://feeds.feedburner.com/~f/unitstep?i=UaNom" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=EeqYm"><img src="http://feeds.feedburner.com/~f/unitstep?i=EeqYm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=g6Bqm"><img src="http://feeds.feedburner.com/~f/unitstep?i=g6Bqm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=dzbzM"><img src="http://feeds.feedburner.com/~f/unitstep?i=dzbzM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=4B6SM"><img src="http://feeds.feedburner.com/~f/unitstep?i=4B6SM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unitstep/~4/426959444" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unitstep.net/blog/2008/10/20/rock-band-2-unboxing-for-ps3/feed/</wfw:commentRss>
		<feedburner:origLink>http://unitstep.net/blog/2008/10/20/rock-band-2-unboxing-for-ps3/</feedburner:origLink></item>
		<item>
		<title>Voting Day in Canada</title>
		<link>http://feeds.feedburner.com/~r/unitstep/~3/420937216/</link>
		<comments>http://unitstep.net/blog/2008/10/14/voting-day-in-canada/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 21:46:59 +0000</pubDate>
		<dc:creator>Peter Chng</dc:creator>
		
		<category><![CDATA[asides]]></category>

		<category><![CDATA[canada]]></category>

		<category><![CDATA[cbc]]></category>

		<category><![CDATA[election]]></category>

		<guid isPermaLink="false">http://unitstep.net/?p=470</guid>
		<description><![CDATA[


Today was voting day in the 2008 Canadian Federal Election.  I just got back from voting, and thankfully the polling station was nearby (just as with the Ontario Provincial Election last year), being only a five-minute walk away from my building.  
I headed over there right after work and was surprised to see [...]]]></description>
			<content:encoded><![CDATA[<p class="image align-right">
<a href="http://www.elections.ca/"><img src="http://unitstep.net/wordpress/wp-content/uploads/2008/10/elections-canada-logo.gif" alt="" title="elections-canada-logo" width="112" height="109" class="alignnone size-full wp-image-472" /></a>
</p>
<p>Today was voting day in the <a href="http://enr.elections.ca/">2008 Canadian Federal Election</a>.  I just got back from voting, and thankfully the polling station was nearby (just as with the <a href="/blog/2007/10/10/ontario-provincial-election/">Ontario Provincial Election</a> last year), being only a five-minute walk away from my building.  </p>
<p>I headed over there right after work and was surprised to see that the polling station was not busy at all.  It was in the gymnasium of a secondary school and I was the only person voting at the time. (Though I did see people coming in on my way out)  Perhaps this was to be expected, as Belleville is a community with quite a few retirees who probably voted earlier in the day.</p>
<p>The staff were quite courteous and made the process as simple as possible, which is especially important for older voters.  I&#8217;m quite thankful to have <a href="http://www.elections.ca/">Elections Canada</a> overseeing the vote in Canada, and I just can&#8217;t imagine why they don&#8217;t have such standards in the US, which undoubtedly contributed to the <a href="http://en.wikipedia.org/wiki/United_States_presidential_election_in_Florida,_2000">controversy</a> surrounding the 2000 Presidential elections.</p>
<p>This election has also been one with a great presence on the Internet, much to my liking.  The Internet is already a place that many turn to for their daily fix of news, information and commentary.  Many, such as myself, are already using it as their prime source of news, having grown tired of traditional media.  Even my Mom, a self-described computer-illiterate, has taken to using YouTube for elections updates, albeit through the <a href="http://www.youtube.com/user/cbctv?ob=4">CBC Channel</a>.</p>
<p>Speaking of the CBC, their coverage has been pretty decent, but more importantly, they&#8217;ve launched a massive effort to get <em>local</em> with their elections coverage.   They&#8217;ve nicely put together a page <a href="http://www.cbc.ca/news/canadavotes/ridings/">with all the ridings</a>, each listing the riding&#8217;s profile, the candidates&#8217; profiles, the 2006 election results and a message board, which they mistakenly describe as a &#8220;blog&#8221;.</p>
<p>It&#8217;s a step in the right direction, but could stand to be more interactive and even more local.  For example, a dedicated reporter for each riding could update a real blog about the issues for that riding.  A calendar could also provide details about upcoming events, such as candidates&#8217; debates.  Of course, all of this information is already available online, but aggregating it could be of some value.  People want web sites and services to be local, offering information that&#8217;s directly relevant to them and their community, and no where is this more important than during elections.</p>
<hr/>Copyright &copy; 2008 <strong><a href="http://unitstep.net">unitstep.net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact <strong><a href="mailto:webmaster@unitstep.net">webmaster@unitstep.net</a></strong> for more information.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/unitstep?a=VSmFm"><img src="http://feeds.feedburner.com/~f/unitstep?i=VSmFm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=po3pm"><img src="http://feeds.feedburner.com/~f/unitstep?i=po3pm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=v4Btm"><img src="http://feeds.feedburner.com/~f/unitstep?i=v4Btm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=ET2KM"><img src="http://feeds.feedburner.com/~f/unitstep?i=ET2KM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/unitstep?a=elFYM"><img src="http://feeds.feedburner.com/~f/unitstep?i=elFYM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/unitstep/~4/420937216" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unitstep.net/blog/2008/10/14/voting-day-in-canada/feed/</wfw:commentRss>
		<feedburner:origLink>http://unitstep.net/blog/2008/10/14/voting-day-in-canada/</feedburner:origLink></item>
	</channel>
</rss>
