<?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>Don Park's Daily Habit</title>
	<atom:link href="http://blog.docuverse.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.docuverse.com</link>
	<description>Don Park's Personal Blog</description>
	<lastBuildDate>Mon, 29 Aug 2011 00:10:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.docuverse.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/0b7f6b113ae911a67eb8133dd085a60b?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Don Park's Daily Habit</title>
		<link>http://blog.docuverse.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.docuverse.com/osd.xml" title="Don Park&#039;s Daily Habit" />
	<atom:link rel='hub' href='http://blog.docuverse.com/?pushpress=hub'/>
		<item>
		<title>On KISSmetrics</title>
		<link>http://blog.docuverse.com/2011/08/04/on-kissmetrics/</link>
		<comments>http://blog.docuverse.com/2011/08/04/on-kissmetrics/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 22:40:15 +0000</pubDate>
		<dc:creator>donpark</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.docuverse.com/?p=359</guid>
		<description><![CDATA[I think Hiten Shah, CEO of KISSmetrics, is too distracted with recent lawsuits to understand the mistake his company made: not looking out for their customers. Legality of using ETag for tracking or reusing same ETag hash across domains is &#8230; <a href="http://blog.docuverse.com/2011/08/04/on-kissmetrics/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=359&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I think <a href="http://blog.kissmetrics.com/official-kissmetrics-response-to-data-collection-practices/">Hiten Shah</a>, CEO of KISSmetrics, is too distracted with recent lawsuits to understand the mistake his company made: not looking out for their customers.</p>
<p>Legality of using ETag for tracking or reusing same ETag hash across domains is unclear and should be answered through legal process. What is clear, however, is that their usage raises suspicions and invites accusations against their loyal customers, not just KISSmetrics.</p>
<p>KISSmetrics should have foreseen this but apparently either did not or  did but failed to act before it blew up. I hope my two cents worth will help them learn and improve their service. Lawsuits may come and go but lessons learned will stay with you.</p>
<blockquote><p>An ounce of foresight is worth a pound of hindsight.</p>
<p>Excuses make poor stain removers.</p></blockquote>
<br />Filed under: <a href='http://blog.docuverse.com/category/general/'>General</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/donpark.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/donpark.wordpress.com/359/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=359&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.docuverse.com/2011/08/04/on-kissmetrics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/88f2ee32d146425a422f58f8eab5424b?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">donpark</media:title>
		</media:content>
	</item>
		<item>
		<title>Cinemetrics</title>
		<link>http://blog.docuverse.com/2011/08/01/cinemetrics/</link>
		<comments>http://blog.docuverse.com/2011/08/01/cinemetrics/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 08:42:16 +0000</pubDate>
		<dc:creator>donpark</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[identicon]]></category>

		<guid isPermaLink="false">http://blog.docuverse.com/?p=352</guid>
		<description><![CDATA[Cinemetrics is a promising example of Identicon IMO. Similar efforts have been made audio clips. Cinemetrics aims to create a visual “fingerprint” for film using the editing structure, color, speech and motion. Design challenge in generating interesting &#8216;fingerprint&#8217; depends largely on the &#8230; <a href="http://blog.docuverse.com/2011/08/01/cinemetrics/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=352&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.creativeapplications.net/processing/cinemetrics-processing/">Cinemetrics</a> is a promising example of Identicon IMO. Similar efforts have been made audio clips.</p>
<blockquote>
<p style="text-align:center;"><a href="http://donpark.files.wordpress.com/2011/08/cinemetrics1.png"><img class="aligncenter size-full wp-image-354" title="cinemetrics" src="http://donpark.files.wordpress.com/2011/08/cinemetrics1.png?w=640" alt=""   /></a>Cinemetrics aims to create a visual “fingerprint” for film using the editing structure, color, speech and motion.</p>
</blockquote>
<p style="text-align:left;">Design challenge in generating interesting &#8216;fingerprint&#8217; depends largely on the target audience. Multimedia production is a very iterative process resulting in many variations and combinations so, if the target audience are film editors, challenge is in finding ways to emphasize difference without sacrificing similarity.</p>
<br />Filed under: <a href='http://blog.docuverse.com/category/general/'>General</a>, <a href='http://blog.docuverse.com/category/technical/'>Technical</a> Tagged: <a href='http://blog.docuverse.com/tag/identicon/'>identicon</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/donpark.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/donpark.wordpress.com/352/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=352&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.docuverse.com/2011/08/01/cinemetrics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/88f2ee32d146425a422f58f8eab5424b?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">donpark</media:title>
		</media:content>

		<media:content url="http://donpark.files.wordpress.com/2011/08/cinemetrics1.png" medium="image">
			<media:title type="html">cinemetrics</media:title>
		</media:content>
	</item>
		<item>
		<title>Identicon and Robohash</title>
		<link>http://blog.docuverse.com/2011/07/30/identicon-and-robohash/</link>
		<comments>http://blog.docuverse.com/2011/07/30/identicon-and-robohash/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 20:26:50 +0000</pubDate>
		<dc:creator>donpark</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[identicon]]></category>

		<guid isPermaLink="false">http://blog.docuverse.com/?p=347</guid>
		<description><![CDATA[This post is a dump [for archival purpose] of exchange between Colin Davis, creator of Robohash, and I that took place in context of a Hacker News about Robohash. Colin: Identicons are a great idea, I really love them.. They&#8217;re &#8230; <a href="http://blog.docuverse.com/2011/07/30/identicon-and-robohash/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=347&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This post is a dump [for archival purpose] of exchange between <a href="https://twitter.com/#!/e1ven">Colin Davis</a>, creator of <a title="Robohash" href="http://robohash.org/">Robohash</a>, and I that took place in context of a <a href="http://news.ycombinator.com/item?id=2742367">Hacker News</a> about Robohash.</p>
<p>Colin:</p>
<blockquote><p>Identicons are a great idea, I really love them.. They&#8217;re a good solution to a gut-check &#8220;Something is wrong here..&#8221;</p>
<p>Sort of like a SSH-fingerprint.</p>
<p>The problem I&#8217;ve had with them is that they&#8217;re generate not all that memorable. Was that triangles pointing left, then up, or up then left?</p>
<p>This is my attempt at addressing that problem for my own new project, but I&#8217;d love to see what you build! If you want to use these images, feel free. They&#8217;re CC-BY, so they&#8217;re open to the world now <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p></blockquote>
<p>Don:</p>
<blockquote><p>Re &#8216;not all that memorable&#8217;, that&#8217;s because identicons were originally designed for &#8216;distinguishing&#8217; and &#8216;matching&#8217; data, not &#8216;memorizing&#8217;.</p>
<p>Abstract geometric identicons like my original implementation as well as variations used at WordPress and StackOverflow are, while nearly impossible to remember, distinguishable in a pile which comes in handy when distinguishing the &#8216;voice&#8217; of individuals in a long thread of comments.</p>
<p>To use identicons as permanent identity, one has to &#8216;identify&#8217; with their identicon. We can identify faces of our friends because we shared memories with them, stories if you will.</p>
<p>So robotic identicons like yours can be made more memorable if users had some ways to create a story they can associate with it like &#8216;blue viking with left arm missing&#8217;, etc.</p></blockquote>
<p>Colin:</p>
<blockquote><p>That makes a lot of sense. I wasn&#8217;t trying to be disparing. It&#8217;s a great idea, and very helpful, I just felt like it could go in a slightly different direction for this specific use-case (Public Keys).</p></blockquote>
<p>Don:</p>
<blockquote><p>I think an interesting way to apply identicon to certs is to map each cert attributes to an &#8216;attribute&#8217; of identicon, visualizing attributes.</p></blockquote>
<br />Filed under: <a href='http://blog.docuverse.com/category/general/'>General</a>, <a href='http://blog.docuverse.com/category/technical/'>Technical</a> Tagged: <a href='http://blog.docuverse.com/tag/identicon/'>identicon</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/donpark.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/donpark.wordpress.com/347/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=347&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.docuverse.com/2011/07/30/identicon-and-robohash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/88f2ee32d146425a422f58f8eab5424b?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">donpark</media:title>
		</media:content>
	</item>
		<item>
		<title>What is Identicon?</title>
		<link>http://blog.docuverse.com/2011/07/29/what-is-identicon/</link>
		<comments>http://blog.docuverse.com/2011/07/29/what-is-identicon/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 03:03:21 +0000</pubDate>
		<dc:creator>donpark</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[identicon]]></category>

		<guid isPermaLink="false">http://blog.docuverse.com/?p=339</guid>
		<description><![CDATA[Word identify has two meaning: Establish or indicate who or what (someone or something) is. Recognize or distinguish. I chose the name Identicon with second meaning in mind to convey that Identicons&#8217; intended applications are in helping users recognize or &#8230; <a href="http://blog.docuverse.com/2011/07/29/what-is-identicon/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=339&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Word <strong>identify</strong> has two meaning:</p>
<ol>
<li>Establish or indicate who or what (someone or something) is.</li>
<li>Recognize or distinguish.</li>
</ol>
<p>I chose the name Identicon with second meaning in mind to convey that Identicons&#8217; intended applications are in helping users recognize or distinguish textual information units in context of many.</p>
<h3>Textual Data Problem</h3>
<p>Human eyes have evolved to recognize individual objects out of a group by noticing <em>visual</em> differences. Unfortunately, textual data are visually similar.</p>
<p>While many different typographic features and techniques have been invented since writing was invented, most of them are for free-form text. Additionally, list and table text layout lack the irregular features free-form text have, like line ends and paragraphs, to use as landmarks.</p>
<h3>Icon Solution</h3>
<p>Icons do add the necessary visual differences to textual data. Only problem is that icons are typically designed by hand or, in case of avatars, photos or pictures have to uploaded.</p>
<h3>Identicon = Generated Icon?</h3>
<p>One might say Identicons are simply generated icons. The first implementation of Identicon used salted hash of IP address to generate 9-block colored icon for each blog commenter. Most popular use of Identicon today remains generated iconic avatars.</p>
<p>I think it&#8217;s a bit more. Certainly, <em>generated</em> part is required. But the <em>icon</em> part is unnecessarily restrictive unless colored circle or box can be called an icon.</p>
<br />Filed under: <a href='http://blog.docuverse.com/category/general/'>General</a>, <a href='http://blog.docuverse.com/category/technical/'>Technical</a> Tagged: <a href='http://blog.docuverse.com/tag/identicon/'>identicon</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/donpark.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/donpark.wordpress.com/339/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=339&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.docuverse.com/2011/07/29/what-is-identicon/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/88f2ee32d146425a422f58f8eab5424b?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">donpark</media:title>
		</media:content>
	</item>
		<item>
		<title>Identicon and QR Code</title>
		<link>http://blog.docuverse.com/2011/07/29/identicon-and-qr-code/</link>
		<comments>http://blog.docuverse.com/2011/07/29/identicon-and-qr-code/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 23:37:07 +0000</pubDate>
		<dc:creator>donpark</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[identicon]]></category>

		<guid isPermaLink="false">http://donpark.wordpress.com/?p=332</guid>
		<description><![CDATA[I was recently asked to provide some information on identicons, a good excuse to restart blogging. This post, more like notes actually, compares Identicon to QR code which may seem similar visually but are not. WARNING: I think in random &#8230; <a href="http://blog.docuverse.com/2011/07/29/identicon-and-qr-code/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=332&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><em>I was recently asked to provide some information on identicons, a good excuse to restart blogging.</em></p>
<p><em>This post, more like notes actually, compares Identicon to QR code which may seem similar visually but are not.</em></p>
<p><em>WARNING: I think in random fragments, brief moments of coherency, so my posts will be the same.</em></p>
<p style="display:inline!important;">Machine vs People</p>
<p style="display:inline!important;">
<p style="display:inline!important;">
<ul>
<li><a href="http://en.wikipedia.org/wiki/QR_code">QR codes</a> are read by <strong>machines</strong>.</li>
</ul>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Identicon">Identicons</a> are read by <strong>people</strong>.</li>
</ul>
<p>Content</p>
<ul>
<li>QR codes are <strong>containers</strong> of information.</li>
</ul>
<ul>
<li>Identicons are <strong>shadows</strong> of information they are associated with.<em> </em></li>
</ul>
<p style="display:inline!important;">Usage</p>
<p style="display:inline!important;">
<p style="display:inline!important;">
<ul>
<li>QR codes are used to <strong>transfer</strong> information from real life (RL) objects to computers using only optical means.</li>
</ul>
<ul>
<li>Identicons are used to <strong>distinguish</strong> individuals or groups of information.</li>
</ul>
<div><em>More to come later. Sorry.</em></div>
<br />Filed under: <a href='http://blog.docuverse.com/category/general/'>General</a>, <a href='http://blog.docuverse.com/category/technical/'>Technical</a> Tagged: <a href='http://blog.docuverse.com/tag/identicon/'>identicon</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/donpark.wordpress.com/332/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/donpark.wordpress.com/332/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=332&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.docuverse.com/2011/07/29/identicon-and-qr-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/88f2ee32d146425a422f58f8eab5424b?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">donpark</media:title>
		</media:content>
	</item>
		<item>
		<title>Installing sqlite3-ruby gem on Snow Leopard</title>
		<link>http://blog.docuverse.com/2009/09/24/installing-sqlite3-ruby-gem-on-snow-leopard/</link>
		<comments>http://blog.docuverse.com/2009/09/24/installing-sqlite3-ruby-gem-on-snow-leopard/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 12:35:15 +0000</pubDate>
		<dc:creator>donpark</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[sqlite3]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://blog.docuverse.com/?p=316</guid>
		<description><![CDATA[Problem: After upgrading to Snow Leopard, I had to rebuild/reinstall MacPorts and RubyGems as recommended. While doing this, I found that sqlite3-ruby gem install failed with errors related to extconf.rb file. Solution: Not sure why this works but I found &#8230; <a href="http://blog.docuverse.com/2009/09/24/installing-sqlite3-ruby-gem-on-snow-leopard/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=316&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><strong>Problem:</strong></p>
<p>After upgrading to Snow Leopard, I had to rebuild/reinstall MacPorts and RubyGems as recommended. While doing this, I found that sqlite3-ruby gem install failed with errors related to extconf.rb file.</p>
<p><strong>Solution:</strong></p>
<p>Not sure why this works but I found a <a href="http://stackoverflow.com/questions/1373108/snow-leopard-sqlite3-ruby">working </a>solution at StackOverflow which replaces:</p>
<pre>/usr/local/lib/libsqlite3.dylib</pre>
<p>with a symbolic link to one that came with XCode for Snow Leopard:</p>
<pre>/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libsqlite3.0.dylib</pre>
<p>You can find the full &#8216;ln&#8217; command at StackOverlow page above but be sure to rename the original in case you need to restore it.</p>
<br />Posted in General, Technical Tagged: ruby, sqlite3, tech <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/donpark.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/donpark.wordpress.com/316/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=316&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.docuverse.com/2009/09/24/installing-sqlite3-ruby-gem-on-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/88f2ee32d146425a422f58f8eab5424b?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">donpark</media:title>
		</media:content>
	</item>
		<item>
		<title>Using JSP with Jersey JAX-RS Implementation</title>
		<link>http://blog.docuverse.com/2009/08/04/using-jsp-with-jersey-jax-rs-implementation/</link>
		<comments>http://blog.docuverse.com/2009/08/04/using-jsp-with-jersey-jax-rs-implementation/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 06:21:08 +0000</pubDate>
		<dc:creator>donpark</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jax-rs]]></category>
		<category><![CDATA[jersey]]></category>
		<category><![CDATA[jsp]]></category>

		<guid isPermaLink="false">http://blog.docuverse.com/?p=308</guid>
		<description><![CDATA[This post shows you some tips you&#8217;ll likely need to use JSP with Jersey in typical Java webapps. Tested Conditions While Jersey 1.1.1-ea or later is probably the only hard requirement for the tips to work, my development environment is &#8230; <a href="http://blog.docuverse.com/2009/08/04/using-jsp-with-jersey-jax-rs-implementation/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=308&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This post shows you some tips you&#8217;ll likely need to use JSP with Jersey in typical Java webapps.</p>
<p><em>Tested Conditions</em></p>
<p>While Jersey 1.1.1-ea or later is probably the only hard requirement for the tips to work, my development environment is listed here for your info. You are welcome to add to this rather meager basis for sanity.</p>
<ol>
<li>Jersey 1.1.1-ea</li>
<li>Tomcat 6.0.20</li>
<li>JDK 1.5</li>
<li>OS X Leopard</li>
</ol>
<p><strong>Change JSP Base Template Path</strong></p>
<p>Default base path for templates is the root of the webapp. So if my webapp is at &#8220;/&#8230;/webapps/myapp&#8221; then Viewable(&#8220;/mypage&#8221;, null) will map to &#8220;/&#8230;/webapps/myapp/mypage.jsp&#8221;</p>
<p>To change this, say to &#8220;WEB-INF/jsp&#8221; as it&#8217;s commonly done for security reasons, add following init-param to Jersey servlet/filter in web.xml:</p>
<pre>&lt;init-param&gt;
&lt;param-name&gt;com.sun.jersey.config.property.JSPTemplatesBasePath&lt;/param-name&gt;
&lt;param-value&gt;/WEB-INF/jsp&lt;/param-value&gt;
&lt;/init-param&gt;</pre>
<p><strong>Return Viewable as part of Response</strong></p>
<p>It was not obvious to me (doh) where Viewable fits into Response when I have to return a Response instead of Viewable. It turns out, Viewable can be passed where message body entity is passed. Example:</p>
<pre>return Response.ok(new Viewable("/mypage", model).build();</pre>
<p><strong>Use &#8220;/*&#8221; as servlet-mapping for Jersey</strong></p>
<p>The primitive servlet-mapping URI pattern scheme, which somehow survived many iterations of the servlet API, impacts JAX-RS hard if servlet-mapping is overly broad. Unfortunately, pretty restful URL calls for servlet-mapping to be &#8220;/*&#8221; instead of something like &#8220;/jersey/*&#8221;, breaking access to JSP files as well as static resources.</p>
<p>To work around, you&#8217;ll have to use Jersey as a filter instead of a servlet and edit a regular-expression init-param value to punch passthrough holes in Jersey&#8217;s routing scheme. To enable this, replace Jersey servlet entry in web.xml with something like this:</p>
<pre>&lt;filter&gt;
 &lt;filter-name&gt;jersey&lt;/filter-name&gt;
 &lt;filter-class&gt;com.sun.jersey.spi.container.servlet.ServletContainer&lt;/filter-class&gt;
 &lt;init-param&gt;
  &lt;param-name&gt;com.sun.jersey.config.property.WebPageContentRegex&lt;/param-name&gt;
  &lt;param-value&gt;/(images|js|styles|(WEB-INF/jsp))/.*&lt;/param-value&gt;
 &lt;/init-param&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
 &lt;filter-name&gt;jersey&lt;/filter-name&gt;
 &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;</pre>
<p>That&#8217;s all for now. Hope this post saved you some headaches.</p>
<br />Posted in General, Technical Tagged: java, jax-rs, jersey, jsp <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/donpark.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/donpark.wordpress.com/308/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=308&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.docuverse.com/2009/08/04/using-jsp-with-jersey-jax-rs-implementation/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/88f2ee32d146425a422f58f8eab5424b?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">donpark</media:title>
		</media:content>
	</item>
		<item>
		<title>Firefox Extension Developer Tips</title>
		<link>http://blog.docuverse.com/2009/07/23/firefox-extension-developer-tips/</link>
		<comments>http://blog.docuverse.com/2009/07/23/firefox-extension-developer-tips/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 11:30:40 +0000</pubDate>
		<dc:creator>donpark</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[Components.utils.import]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[NS_ERROR_FAILURE]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[XPCOM]]></category>

		<guid isPermaLink="false">http://blog.docuverse.com/?p=303</guid>
		<description><![CDATA[Just a couple of tips for Firefox extension developers, hard earned after many hours of head scratching. Not adhering to either tips will confuse Firefox and XPCOM component will fail to load. XPCOM components get loaded before chromes are loaded. &#8230; <a href="http://blog.docuverse.com/2009/07/23/firefox-extension-developer-tips/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=303&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Just a couple of tips for Firefox extension developers, hard earned after many hours of head scratching. Not adhering to either tips will confuse Firefox and XPCOM component will fail to load.</p>
<p><em><strong>XPCOM components get loaded before chromes are loaded.</strong></em></p>
<p>[Update: The most common problem related to this is Components.utils.import call fails during launch with NS_ERROR_FAILURE exception. To fix, wait until app-startup notification is received before importing javascript modules.]</p>
<p>This means anything defined in chrome.manifest won&#8217;t be available until &#8220;app-startup&#8221; event is observed. Note that Resource URI scheme &#8220;resource://&#8221; introduced in Firefox 3 uses resource directives in chrome.manifest which means you should defer <strong>Components.utils.import</strong> calls until &#8220;<strong>app-startup</strong>&#8220;.</p>
<p><em><strong>XPCOM components implemented using Javascript should be defined as a pure object, not function.</strong></em><em><br />
</em></p>
<p>So it should look something like this:</p>
<blockquote>
<pre>var MyServiceModule = {
  registerSelf: function(compMgr, fileSpec, location, type) {
    ..
  },
  ..
};</pre>
</blockquote>
<br />Posted in Technical Tagged: Components.utils.import, firefox, NS_ERROR_FAILURE, tips, XPCOM <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/donpark.wordpress.com/303/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/donpark.wordpress.com/303/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=303&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.docuverse.com/2009/07/23/firefox-extension-developer-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/88f2ee32d146425a422f58f8eab5424b?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">donpark</media:title>
		</media:content>
	</item>
		<item>
		<title>Real-Time State of Mind</title>
		<link>http://blog.docuverse.com/2009/07/09/real-time-state-of-mind/</link>
		<comments>http://blog.docuverse.com/2009/07/09/real-time-state-of-mind/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 14:28:16 +0000</pubDate>
		<dc:creator>donpark</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[realtime]]></category>
		<category><![CDATA[stream]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://blog.docuverse.com/?p=299</guid>
		<description><![CDATA[I need to get back to blogging more often. Having to type more than 140 characters feels wierd. Given that I&#8217;ll be attending TechCrunch&#8217;s Real-Time Stream CrunchUp this Friday, I thought a blog post on a key real-time stream problem &#8230; <a href="http://blog.docuverse.com/2009/07/09/real-time-state-of-mind/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=299&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><em>I need to get back to blogging more often. Having to type more than 140 characters feels wierd. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </em></p>
<p>Given that I&#8217;ll be attending TechCrunch&#8217;s <a href="http://www.techcrunch.com/2009/07/01/agenda-for-real-time-stream-crunchup-and-third-wave-of-august-capital-party-tickets/">Real-Time Stream CrunchUp</a> this Friday, I thought a blog post on a key real-time stream problem would help me into a real-time state of mind.</p>
<p>Real-time streams have many technical problems to overcome many of which are thankfully being resolved by advances in technology and infrastructure but the problem that interests me the most is the user experience problems:</p>
<blockquote><p><strong>Information, real-time or otherwise, is meaningless if users are drowned within it.</strong></p></blockquote>
<p>Typical Twitter users see only a fraction of tweets from people they follow. The notion of Top Friends (related to my social radar diagram from 8 years ago) will help but at the cost of additional chores users have to do separate the greens from weeds.</p>
<p>The financial industry has used real-time streams for a long time so there is a lot to learn there technically. But, when it comes to user experience, they haven&#8217;t cracked the nut either, forcing traders to use bewildering number of charts and numbers on multiple displays and input devices to trade. So the emerging consumer real-time stream developers will have to break new grounds ourselves.</p>
<br />Posted in Technical Tagged: realtime, stream, ui <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/donpark.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/donpark.wordpress.com/299/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=299&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.docuverse.com/2009/07/09/real-time-state-of-mind/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/88f2ee32d146425a422f58f8eab5424b?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">donpark</media:title>
		</media:content>
	</item>
		<item>
		<title>Fixed Aptana RadRails GEM_LIB issue on m&#8230;</title>
		<link>http://blog.docuverse.com/2009/05/14/fixed-aptana-radrails-gem_lib-issue-on-m/</link>
		<comments>http://blog.docuverse.com/2009/05/14/fixed-aptana-radrails-gem_lib-issue-on-m/#comments</comments>
		<pubDate>Thu, 14 May 2009 14:04:38 +0000</pubDate>
		<dc:creator>donpark</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[aptana]]></category>
		<category><![CDATA[gem_lib]]></category>
		<category><![CDATA[radrails]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://blog.docuverse.com/2009/05/14/fixed-aptana-radrails-gem_lib-issue-on-m/</guid>
		<description><![CDATA[Fixed Aptana RadRails GEM_LIB issue on mac by linking &#8216;/Users/{user}/.gem/ruby/1.8/gems&#8217; to &#8216;/usr/local/lib/ruby/gems/1.8/gems&#8217;. I can&#8217;t blame Aptana for this since it was me who chose to use a tool built by a company that spread itself too thin. I doubt they &#8230; <a href="http://blog.docuverse.com/2009/05/14/fixed-aptana-radrails-gem_lib-issue-on-m/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=297&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Fixed Aptana RadRails GEM_LIB issue on mac by linking &#8216;/Users/{user}/.gem/ruby/1.8/gems&#8217; to &#8216;/usr/local/lib/ruby/gems/1.8/gems&#8217;. I can&#8217;t blame Aptana for this since it was me who chose to use a tool built by a company that spread itself too thin. I doubt they have more than a couple of engineers working on RadRails which is not enough to provide the necessary quality across the range of environments Aptana is unfortuantely being asked to support.</p>
<br />Posted in General Tagged: aptana, gem_lib, radrails, wtf <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/donpark.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/donpark.wordpress.com/297/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.docuverse.com&#038;blog=343932&#038;post=297&#038;subd=donpark&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.docuverse.com/2009/05/14/fixed-aptana-radrails-gem_lib-issue-on-m/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/88f2ee32d146425a422f58f8eab5424b?s=96&#38;d=identicon&#38;r=X" medium="image">
			<media:title type="html">donpark</media:title>
		</media:content>
	</item>
	</channel>
</rss>
