<?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>Koolaborate&#039;s Blog</title>
	<atom:link href="http://koolaborate.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://koolaborate.wordpress.com</link>
	<description>Putting Kool in Koolaborate</description>
	<lastBuildDate>Sun, 13 Dec 2009 01:44:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='koolaborate.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Koolaborate&#039;s Blog</title>
		<link>http://koolaborate.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://koolaborate.wordpress.com/osd.xml" title="Koolaborate&#039;s Blog" />
	<atom:link rel='hub' href='http://koolaborate.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Java in the Clouds part I: Overview</title>
		<link>http://koolaborate.wordpress.com/2009/12/12/java-in-the-clouds-part-i-overview/</link>
		<comments>http://koolaborate.wordpress.com/2009/12/12/java-in-the-clouds-part-i-overview/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 01:38:38 +0000</pubDate>
		<dc:creator>koolaborate</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://koolaborate.wordpress.com/?p=185</guid>
		<description><![CDATA[Background: It seems that the IT buzzword hobbiests have left the certain crazes of yesteryear, and moved on with Platform as a Service (PaaS).  One aspect of cloud computer that has taken off is Software as a Service (SaaS).  It&#8217;s allowing organizations to deploy their software services to a third party host or provider, responsible [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=185&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Background</strong>:</p>
<p>It seems that the IT buzzword hobbiests have left the certain crazes of yesteryear, and moved on with Platform as a Service (PaaS).  One aspect of cloud computer that has taken off is Software as a Service (SaaS).  It&#8217;s allowing organizations to deploy their software services to a third party host or provider, responsible for traditional maintenance.</p>
<p>I just read <a href="http://broadcast.oreilly.com/2008/12/java-in-the-cloud.html">this</a> O&#8217;Reilly article.  It describes some cloud applications and immediately goes into <a href="http://www.stax.net/">Stax</a>.  Essentially, Stax is a Platform as a Service.  Much like Force.com, you can write applications locally (I used the force.com plugin for Eclipse) and deploy/synchronize it in the clouds.  Pretty convenient.  Stax is cool because it combines two technologies: Java and Amazon&#8217;s EC2 technologies.  As of the time of this writing, MySQL is the backend of choice and Apache Tomcat is the J2EE container.</p>
<p><strong>Business Value</strong>:</p>
<p>Traditional means of development usually requires a developer to be the organization&#8217;s site, using a standard issued computer, developing locally, testing and deploying to an unstable or a QA server in the same network.  Modern acceptance of technologies, such as VPN, allowed developers to do their development outside of their cubicles, but one problem still arise.  That problem is that if an organization wants to add another developer to their development team, that organization cannot easily and elastically set up a platform for that new resource.  The corallary is true as well when it comes to reducing or transfering a developer to another team.  This is even more problematic when teams and developers are dispersed across different locale.</p>
<p>Elastic conventions should be preferred over configuration (much like the <a href="http://en.wikipedia.org/wiki/Convention_over_configuration">design pattern</a>) when it comes to the developer&#8217;s entire environment.  Test driven development and code coverage (much like force.com), should be integrated with every platform&#8217;s API.  The elastic model for development should simplify code synchronization issues and merges.  I think cloud based frameworks and platforms will mature such that requirements to testing, to implementation, to integration testing, to deployment, to user acceptance testing, release management can become not only simplified and better streamlined, but can become almost autonomous and asynchronous for large complex projects spanning across locale&#8217;s.</p>
<p><strong>Up Next</strong>:</p>
<p>The next part of this series will cover the implementation details of Platform as a Service, starting with force.com&#8217;s implementation.  I know force.com is not java based (although Apex is a cool derivative).  But the documentation is pretty outstanding and the tutorials are easy to follow.</p>
<p><strong>References</strong>:</p>
<ul>
<li>O&#8217;Reilly Article &#8211; <a href="http://broadcast.oreilly.com/2008/12/java-in-the-cloud.html">Java in the Cloud</a></li>
<li><a href="http://www.stax.net/">Stax</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koolaborate.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koolaborate.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koolaborate.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koolaborate.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/koolaborate.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/koolaborate.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/koolaborate.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/koolaborate.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koolaborate.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koolaborate.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koolaborate.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koolaborate.wordpress.com/185/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koolaborate.wordpress.com/185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koolaborate.wordpress.com/185/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=185&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://koolaborate.wordpress.com/2009/12/12/java-in-the-clouds-part-i-overview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9fcf80747ee35380c7ea10e34a634ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">koolaborate</media:title>
		</media:content>
	</item>
		<item>
		<title>Test Driven Development and Project Euler Series: Smallest Number Divisible By a Set of All Numbers Less</title>
		<link>http://koolaborate.wordpress.com/2009/09/15/test-driven-development-and-project-euler-series-smallest-number-divisible-by-some-other-number/</link>
		<comments>http://koolaborate.wordpress.com/2009/09/15/test-driven-development-and-project-euler-series-smallest-number-divisible-by-some-other-number/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 23:31:44 +0000</pubDate>
		<dc:creator>koolaborate</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Test Driven Series]]></category>

		<guid isPermaLink="false">http://koolaborate.wordpress.com/?p=172</guid>
		<description><![CDATA[Disclaimer: I will NOT disclose what the answers are to these problems.  The intent is that the testing is just as important, and in most cases, more than the answer.  If you want to know what the answer is without solving the problem, a simple google search will tell you what it is. Background: If [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=172&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em><strong>Disclaimer</strong>: I will NOT disclose what the answers are to these problems.  The intent is that the testing is just as important, and in most cases, more than the answer.  If you want to know what the answer is without solving the problem, a simple google search will tell you what it is.</em></p>
<p><strong>Background</strong>:</p>
<ul>
<li>If you are not familiar with the series, <a href="http://koolaborate.wordpress.com/2009/09/03/test-driven-development-series-using-project-euler/">please read this</a>.</li>
<li>This is Java driven, as well as JUnit 4.</li>
<li>You are familiar with TDD tenants.</li>
</ul>
<p><strong>References</strong>:</p>
<ul>
<li><a href="http://koolaborate.wordpress.com/2009/09/03/test-driven-development-series-using-project-euler/">All references to this series can be found in the parent blog</a>.</li>
</ul>
<p><a href="http://projecteuler.net/index.php?section=problems&amp;id=5">Problem</a>:</p>
<p><em>&#8220;2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.</em></p>
<p><em>What is the smallest number that is evenly divisible by all of the numbers from 1 to 20?&#8221;</em></p>
<p><strong>Difficulty</strong>: Crazy Easy, even via semi-brute force.</p>
<p><strong>Background</strong>:</p>
<p>Because this problem is Crazy Easy, I&#8217;m not going to include the test file.  One thing to note is that after I solved th problem, I read the solution.  The answer was super elegant, but was initially difficult for me to comprehend.  I actually got a pen and paper and worked out the example(s) before I comprehended it.</p>
<p>Any way, I approached it with workability (yet legible) first (adjusted for 60s project Euler limit), elegance second (remember, let the test dictate your code), speed third.  So the brute force method is to start from 2 all the way to the highest possible max (which you get from multiplying all the numbers from 1 to 20), and for every single number, evenly divide it by all the numbers from 1 to 20 (modulo).  The first number that comes up is the correct answer.</p>
<p>My first tweak was the idea that let&#8217;s <strong>not</strong> start from 1, but let&#8217;s guess at a good number to start.  How about multiples of all the prime numbers less than or equal to N, where N is 20, or the number in question.</p>
<p>For the first test, let&#8217;s call it: shouldGetTheMultipleOfAllPrimesLessThanOrEqualToN.  In short:</p>
<ul>
<li>assertEquals(3, smallestPrimeFactor(3));</li>
<li>assertEquals(3, smallestPrimeFactor(4));</li>
<li>assertEquals(15, smallestPrimeFactor(5));  // assertEquals(1*3*5, smallestPrimeFactor(5));</li>
<li>etc</li>
</ul>
<p>Great.  I found my magic starting number and thought:</p>
<ul>
<li>start at the magic number</li>
<li>end at the max magic number (mult of all numbers less than 20 inclusive)</li>
<li>increment by 1</li>
<li>divide that value by all numbers 20 or less inclusive.</li>
</ul>
<p>Sounded like a chore to me and, perhaps, too brute force.  That&#8217;s when I thought, let&#8217;s take the multiple of primes and divide it by all the numbers below it.  Sounded like a plan.  I combined the two concepts above, and solved the problem fairly quickly.  I read the solution provided by Project Euler and didn&#8217;t understand it initially.  But I&#8217;m glad I read through it because it&#8217;s invaluable knowledge.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koolaborate.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koolaborate.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koolaborate.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koolaborate.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/koolaborate.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/koolaborate.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/koolaborate.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/koolaborate.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koolaborate.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koolaborate.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koolaborate.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koolaborate.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koolaborate.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koolaborate.wordpress.com/172/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=172&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://koolaborate.wordpress.com/2009/09/15/test-driven-development-and-project-euler-series-smallest-number-divisible-by-some-other-number/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9fcf80747ee35380c7ea10e34a634ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">koolaborate</media:title>
		</media:content>
	</item>
		<item>
		<title>Linux Mint: Debian&#8217;s Favorite Grandchild</title>
		<link>http://koolaborate.wordpress.com/2009/09/13/linux-mint-debians-favorite-grandchild/</link>
		<comments>http://koolaborate.wordpress.com/2009/09/13/linux-mint-debians-favorite-grandchild/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 04:45:32 +0000</pubDate>
		<dc:creator>koolaborate</dc:creator>
				<category><![CDATA[Linux Mint]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://koolaborate.wordpress.com/?p=167</guid>
		<description><![CDATA[Linux Mint (Gloria release), at the time of writing via distro watch, has arguably become Debian&#8217;s favorite grandchild.  I can&#8217;t say that I use it, but I do recommend it.  I just installed it for a friend of mine.  I&#8217;ve installed it before and evaluated it, but I liked Ubuntu&#8217;s package manager better.  Just a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=167&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.linuxmint.com">Linux Mint</a> (Gloria release), at the time of writing via distro watch, has arguably become Debian&#8217;s favorite grandchild.  I can&#8217;t say that I use it, but I do recommend it.  I just installed it for a friend of mine.  I&#8217;ve installed it before and evaluated it, but I liked Ubuntu&#8217;s package manager better.  Just a personal preference, just like my preference towards Ubuntu&#8217;s desktop.</p>
<p>That being said, I will tell you what I do like about Linux Mint and why I recommend it to Windows&#8217; converts.  Aside from its price tag (free as in speech, of course), its desktop interface is super easy to use.  Those who are familiar with modern desktops should be more comfortable with the environment.  It combines ease of use with a lightweight feel, free of heavy widgets, and any subsidizing promotional applications distributed with certain versions.</p>
<p>For common tasks, application management and organization seem to be more straight forward than Ubuntu.  The desktop seems &#8220;friendlier&#8221; as well,  with a hint of familiarity.  While virtual desktops is not inherently obvious, it is easy to invoke.  With one of my favorite key strokes, alt-ctrl left or right arrow, I can switch pretty easily from one desktop to another.   Compiz looks great on it, but didn&#8217;t install it for my friend.</p>
<p>There are other things that make Linux Mint pretty cool.  Like the integration of media codecs right out of the box.  Or the installation interface, which is based on Ubuntu&#8217;s installation interface but can be easier to use.  In conclusion, I still probably won&#8217;t use it personally, but I would recommend it to converts looking for a better experience than Windows.</p>
<p>References:</p>
<ul>
<li><a href="http://www.linuxmint.com">Linux Mint</a></li>
<li><a href="http://www.distrowatch.com">Distro Watch</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koolaborate.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koolaborate.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koolaborate.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koolaborate.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/koolaborate.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/koolaborate.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/koolaborate.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/koolaborate.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koolaborate.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koolaborate.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koolaborate.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koolaborate.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koolaborate.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koolaborate.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=167&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://koolaborate.wordpress.com/2009/09/13/linux-mint-debians-favorite-grandchild/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9fcf80747ee35380c7ea10e34a634ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">koolaborate</media:title>
		</media:content>
	</item>
		<item>
		<title>Test Driven Development and Project Euler Series: Palindrome Divisible by Three Numbers</title>
		<link>http://koolaborate.wordpress.com/2009/09/06/test-driven-and-project-euler-series-palindrome-divisible-by-three-numbers/</link>
		<comments>http://koolaborate.wordpress.com/2009/09/06/test-driven-and-project-euler-series-palindrome-divisible-by-three-numbers/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 23:45:26 +0000</pubDate>
		<dc:creator>koolaborate</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Project Euler]]></category>
		<category><![CDATA[Test Driven Series]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[test driven development]]></category>

		<guid isPermaLink="false">http://koolaborate.wordpress.com/?p=147</guid>
		<description><![CDATA[Disclaimer: I will NOT disclose what the answers are to these problems.  The intent is that the testing is just as important, and in most cases, more than the answer.  If you want to know what the answer is without solving the problem, a simple google search will tell you what it is. Background: If [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=147&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em><strong>Disclaimer</strong>: I will NOT disclose what the answers are to these problems.  The intent is that the testing is just as important, and in most cases, more than the answer.  If you want to know what the answer is without solving the problem, a simple google search will tell you what it is.</em></p>
<p><strong>Background</strong>:</p>
<ul>
<li>If you are not familiar with the series, <a href="http://koolaborate.wordpress.com/2009/09/03/test-driven-development-series-using-project-euler/">please read this</a>.</li>
<li>This is Java driven as well as JUnit 4.</li>
<li>You are familiar with TDD tenants.</li>
</ul>
<p><strong>References</strong>:</p>
<ul>
<li><a href="http://koolaborate.wordpress.com/2009/09/03/test-driven-development-series-using-project-euler/">All references to this series can be found in the parent blog</a>.</li>
</ul>
<p><a href="http://projecteuler.net/index.php?section=problems&amp;id=4"><strong>Problem</strong></a>:</p>
<p>&#8220;A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.</p>
<p>Find the largest palindrome made from the product of two 3-digit numbers.&#8221;</p>
<p><strong>Difficulty</strong>: Easy</p>
<p><strong>The Test File</strong>:</p>
<ul>
<li>Please download it <a href="http://www.koolaborate.com/source/src/com/koolaborate/easy/PalinTest.java">here</a>.</li>
</ul>
<p><strong>Explanation</strong>:</p>
<p>A brute force approach would be to go from 10,000 to 998,001 and evaluating each number for the two criterea:</p>
<ul>
<li>Is this number a Palindrome?</li>
<li>Is this number a product of two three digit numbers?</li>
</ul>
<p>Not being a mathematician, I kind of liked a brute force idea, but I tweaked it a bit.  Instead of an incremental approach from min to max, I decided to use a decremental approach.  I suspected that the answer should be in the 900,000&#8242;s.  I only have to traverse through, at most, 100,000 integers.</p>
<p>For determining the divisibility, I was also going to take a brute force approach as well, but I was going to make an assumption.  That is, I&#8217;m going to guess that both products will be between 800-999.  So the determination will be a decremental loop starting from 999.  If the palindrome is evenly divisible by that number, I would divide the palindrome with that number, and check if the product is less than 1000.  So it goes like this:</p>
<ul>
<li>Start from 998,001 and decrement by one in a loop.</li>
<li>Is the number a palindrome?</li>
<li> If so, is it divisible by a number in a decremental range starting from 999, and ending in 800.</li>
<li> If so, is the product of the palindrome and that number less than 1000?</li>
<li> Good.  Print the number, or print the number and exit.</li>
</ul>
<p>The hardest thing about this problem then was then evaluating whether or not a given number is a palindrome or not.  I know what a palindrome is, but I never implemented an algorithm that evaluated a palindrome.  With strings, it&#8217;s slightly easier because you can easily compare first and last characters in Java and then strip them.  You have charAt at your disposal, substring and many implementations of strip (first and last chars).</p>
<p>With numbers how do you do that?  I didn&#8217;t know, so I had to write it out on paper.  After that, it was fairly straight forward.  I had to write an algorithm that compared the first and last digits of the number using modulo based on ten and divisors based on 10.  Then I had to write an extractor that stripped out the left and right most digits.</p>
<p>Stop if the stripped digit is either single or double digits.  If it gets down to single digits, the number is a palindrome.  i.e.: 151 is a palindrome because the first and last digits are equal and the remainder is 5.  This works for all three digit (or odd) digit numbers.</p>
<p>Stop if the stripped remainder is two digits.  If the number is a palindrome (22, 33, etc) return true.  Else return false.</p>
<p><strong>Implementation Details</strong>:</p>
<p>Methods shouldTestGetLeftMostNumber, and shouldTestGetRightMostNumber were my first two test methods.  It was easy to implement (10 based divisors retrieved left most numbers, modulo retrieved right most numbers).  I started with one test first, for example:</p>
<ul>
<li>Given the number 5, I expect that left most number is 5.  Assert that 5 is expected against the actual, 5.</li>
</ul>
<p>Then the tests followed&#8230;</p>
<ul>
<li>Given the number 61, I expect that the left most number is 6.  Assert that expected and actual are equal.</li>
<li>You can do tests for any random 3, 4, 5 and 6 digit numbers.</li>
</ul>
<p>Getting the right most number was similar and just as trivial.  Example:</p>
<ul>
<li>Given a number 462, I expect that the right most number is 2.  Assert!</li>
<li>I didn&#8217;t do negative cases because I used random numbers.</li>
</ul>
<p>So a palindrome checker is fun to implement.</p>
<ul>
<li>Are the two numbers  on the ends equal?  If not, stop and return false;</li>
<li>If so return the center.</li>
<li>Stop and return true if the remainder is single digit.</li>
<li>Stop and return false if the remainder is double digit but not a palindrome.</li>
<li>Stop and return true if the remainder is double digit and is a palindrome (22, 33,  44, etc).</li>
</ul>
<p>That&#8217;s it!!!  Now, how you implement your methods are totally up to you.  You can use recursion for the palindrome checker, but I didn&#8217;t.  I used iterative approaches for speed (although, unlike the Fibonacci problem, recursion shouldn&#8217;t pose to much of a performance hit).</p>
<p>Divisibility by three digits is easy as well.  It&#8217;s trivial so I need not write out the implementation.  Just guess that the range is between 999-800, decremented.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koolaborate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koolaborate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koolaborate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koolaborate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/koolaborate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/koolaborate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/koolaborate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/koolaborate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koolaborate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koolaborate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koolaborate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koolaborate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koolaborate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koolaborate.wordpress.com/147/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=147&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://koolaborate.wordpress.com/2009/09/06/test-driven-and-project-euler-series-palindrome-divisible-by-three-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9fcf80747ee35380c7ea10e34a634ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">koolaborate</media:title>
		</media:content>
	</item>
		<item>
		<title>Java/Ubuntu/JBoss/Oracle XE Part II: Installation</title>
		<link>http://koolaborate.wordpress.com/2009/09/04/javaubuntujbossoracle-xe-part-ii-implementation-jaunty/</link>
		<comments>http://koolaborate.wordpress.com/2009/09/04/javaubuntujbossoracle-xe-part-ii-implementation-jaunty/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 18:44:53 +0000</pubDate>
		<dc:creator>koolaborate</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Setup]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[oracle jboss]]></category>
		<category><![CDATA[oracle ubuntu]]></category>
		<category><![CDATA[oracle xe]]></category>
		<category><![CDATA[ubuntu jboss]]></category>

		<guid isPermaLink="false">http://koolaborate.wordpress.com/?p=132</guid>
		<description><![CDATA[Would you like to know how to install Oracle XE on Ubuntu along side JBoss?  Well look no further.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=132&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is the second installment of <a href="http://koolaborate.wordpress.com/2009/09/02/java-ubuntu-jboss-oracle-xe-part-i-background/">part I of the previous blog</a>.  It will deal with the implementation portion.  If you have not already done so, please read the previous post.</p>
<p><strong>Background</strong>:</p>
<p>This stack is a great choice for corporate environments or for someone who wants to learn Oracle and the full J2EE stack.  <strong>Make sure that your Ubuntu Server is the 32 bit version</strong>.</p>
<p><strong>Quick Downloads</strong>:</p>
<ul>
<li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK</a>, not the bundles but the latest JDK release</li>
<li><a href="http://www.jboss.org/jbossas/downloads/">JBoss</a>, preferably version 5.0.1</li>
<li><a href="http://sourceforge.net/projects/jboss/files/">JBoss from Sourceforge</a></li>
<li><a href="http://www.oracle.com/technology/software/products/database/xe/index.html">Oracle XE</a></li>
<li><a href="http://www.ubuntu.com/getubuntu/download-server">Ubuntu Server Edition</a>, 32 bit</li>
</ul>
<p><strong>Install the JDK</strong>:</p>
<p>You have two choices for your jdk.  There&#8217;s an open source JDK, aptly named OpenJDK, a free-as-in-speech version of the jdk.  Most mid to large projects use the free-as-in-beer version.  Plus with Sun being pwned (sic) by Oracle, it makes sense.  That&#8217;s what I recommend for this exercise.  You can install Sun&#8217;s JDK via the command line, but I don&#8217;t like that route.  I only install the JDK via the command line if it&#8217;s the OpenJDK version.</p>
<ul>
<li><a href="http://java.sun.com/javase/downloads/index.jsp">Download the JDK here</a>.  DO NOT CHOOSE any of the bundles.</li>
<li>Do choose Java SE Development Kit (pick the latest update).</li>
<li>Pick the Linux distribution (<strong>32 bit version</strong>).</li>
<li>It will be a .bin file and is an executable.</li>
<li>Run it from the command line.  You&#8217;ll have to agree to an SLA.  The result will be a folder.</li>
<li>Rename the folder to java.</li>
<li>Move the folder to your /opt folder.</li>
<li>Alter your .bash_profile, .bashrc or /etc/bash.bashrc file to include the following:</li>
<li> JAVA_HOME=/opt/java</li>
<li> PATH=$PATH:$JAVA_HOME/bin</li>
</ul>
<p><strong>Install JBoss</strong>:</p>
<ul>
<li>Make sure you have unzip installed.  If not, type:   sudo apt-get install unzip.</li>
<li>Download JBoss <a href="http://www.jboss.org/jbossas/downloads/">here</a> or from the <a href="http://sourceforge.net/projects/jboss/files/">sourceforge site</a>.</li>
<li>It&#8217;s going to be a zip file.  Unzip it.  It will extract as a folder.</li>
<li>Rename the folder to jboss.</li>
<li>Move the jboss folder to /opt.</li>
</ul>
<p><strong>Install Oracle XE</strong>:</p>
<p>Refer to my previous <a href="http://koolaborate.wordpress.com/2009/09/04/oracle-xe-installation-on-ubuntu-jaunty/">blog on installing Oracle XE</a> on Ubuntu Server (Jaunty), 32 bit version.</p>
<p><strong>Conclusion</strong>:</p>
<p>There you have it.  A full implementation of the JBoss/Oracle XE stack.  Stay tuned for an implementation of Weblogic/Oracle XE stack.</p>
<p><strong>References</strong>:</p>
<ul>
<li><a href="http://koolaborate.wordpress.com/2009/09/02/java-ubuntu-jboss-oracle-xe-part-i-background/">Previous Blog</a></li>
<li><a href="http://www.oracle.com">Oracle</a></li>
<li><a href="http://www.jboss.org">JBoss</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koolaborate.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koolaborate.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koolaborate.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koolaborate.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/koolaborate.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/koolaborate.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/koolaborate.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/koolaborate.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koolaborate.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koolaborate.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koolaborate.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koolaborate.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koolaborate.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koolaborate.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=132&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://koolaborate.wordpress.com/2009/09/04/javaubuntujbossoracle-xe-part-ii-implementation-jaunty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9fcf80747ee35380c7ea10e34a634ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">koolaborate</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle XE installation on Ubuntu Jaunty</title>
		<link>http://koolaborate.wordpress.com/2009/09/04/oracle-xe-installation-on-ubuntu-jaunty/</link>
		<comments>http://koolaborate.wordpress.com/2009/09/04/oracle-xe-installation-on-ubuntu-jaunty/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 04:00:19 +0000</pubDate>
		<dc:creator>koolaborate</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jboss oracle]]></category>
		<category><![CDATA[oracle ubuntu]]></category>
		<category><![CDATA[oracle xe]]></category>
		<category><![CDATA[ubuntu jboss]]></category>

		<guid isPermaLink="false">http://koolaborate.wordpress.com/?p=26</guid>
		<description><![CDATA[These are my notes from installing Oracle Express Edition on my Ubuntu Server (Jaunty).  I am writing this partly because I will write a sequel to my other blog based on a Java/Ubuntu/JBoss/Oracle XE environment.  This sequel will be way too long if I include this in the same blog.  So here it is as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=26&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>These are my notes from installing Oracle Express Edition on my Ubuntu Server (Jaunty).  I am writing this partly because I will write a sequel to my other blog based on a <a href="http://koolaborate.wordpress.com/2009/09/02/java-ubuntu-jboss-oracle-xe-part-i-background/">Java/Ubuntu/JBoss/Oracle XE</a> environment.  This sequel will be way too long if I include this in the same blog.  So here it is as a separate entry.</p>
<p><strong>Background</strong>:</p>
<p>For your smaller projects, the Oracle database, even the Express Edition, probably isn&#8217;t your best choice.  Why?  Well, for one, Oracle is a beast.  Volumes of books have been written on the administrative portion alone.  The hardware requirements are pretty thick (Express Edition recommends half a gig of RAM, but I say at least a Gig, 1 will give your server more flexibility). Although queries are fairly easy to write (and I like the Oracle syntax over ANSII), writing packages and stored procs can be daunting.</p>
<p>Another thing you want to take seriously are the hardware requirements itself.  I wanted to install it in a 64 bit OS with OXE 32 bit binaries.  The 10g version does not support this.  Why?  Because Oracle does not want you to use this edition for production purposes.  It enforces this by <a href="http://www.oracle.com/technology/software/products/database/xe/files/install.102/b25144/toc.htm#BEIIIEDG">limiting</a> you to single core, 1 Gig of RAM and 4 Gigs of data.  I can see where they are coming from, but I think it&#8217;s kind of silly.</p>
<p>Lastly, I found this out the hard way, you&#8217;ll need a desk top so that you can finish the rest of the configuration.  I installed this on a 64 bit virtualized server host, so I didn&#8217;t want to use more memory than needed.  After hours of google-fu, I ended up deleting the host, reinstalling Ubuntu Server (Jaunty) as a 32 bit edition, upgraded to 2 gigs of RAM, with xfce as the desktop.  I lowered the number of processors to 1 since I didn&#8217;t need more due to Oracle XE&#8217;s 1 core limitiation.</p>
<p>Requirements:</p>
<ul>
<li>Single core machine</li>
<li>Max of 1 Gig of RAM, but you can have more.  Oracle won&#8217;t use it.</li>
<li>32 bit version of Ubuntu Server Edition</li>
<li>Comfortability with command line based terminal</li>
<li>root access</li>
</ul>
<p><a href="http://www.oracle.com/technology/software/products/database/xe/files/install.102/b25144/toc.htm#BABCEAHD"><strong>Installation</strong></a>:</p>
<p>So the installation process is pretty straight forward.  The notes below represents basically the documentation.  So I&#8217;ll make this as concise as possible.  For a more in depth documentation, please click <a href="http://www.oracle.com/technology/software/products/database/xe/files/install.102/b25144/toc.htm#BABCEAHD">here</a>.</p>
<ul>
<li>Download the Express Edition <a href="http://www.oracle.com/technology/products/database/xe">here</a>.  You may have to sign up for a user account.</li>
<li>Choose the Western European character set.  For Ubuntu downloads, choose <code>oracle-xe_10.2.0.1-1.0_i386.deb.</code></li>
<li>su as root.  If you don&#8217;t know how to do that, click <a href="https://help.ubuntu.com/community/RootSudo">here</a>.</li>
<li>Go to the folder in which you downloaded the binary.  Type:</li>
<li> <em>dpkg -i oracle-xe-universal_10.2.0.1-1.0_i386.deb</em></li>
<li>Configure by typing:</li>
<li> <em>/etc/init.d/oracle-xe configure</em></li>
<li>Go with defaults for http port, the listener and auto start</li>
<li>Pick a strong password (chars, CAPS, nums).  REMEMBER THIS PASSWORD!!!</li>
</ul>
<p>Set your env vars:</p>
<ul>
<li>in your terminal,  do the following:</li>
<li>type:   cd /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin</li>
<li>make sure you have permission to execute  scripts on file oracle_env.sh</li>
<li>type:   ./oracle_env.sh</li>
</ul>
<p>Alter bash.bashrc or .bash_profile or .bashrc to set your env automatically.  I prefer editing the bash.bashrc because I like my environments initialized at start up.</p>
<ul>
<li>append to end of file with vi or nano:   /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh</li>
</ul>
<p>OK, so hopefully you installed Oracle XE on Ubuntu Server (instead of Desktop).  So you&#8217;ll need a desktop.  In your terminal, type the following:</p>
<ul>
<li>sudo apt-get update</li>
<li>sudo apt-get install xubuntu-desktop</li>
<li>you may have to restart</li>
</ul>
<p>A couple useful commands:</p>
<ul>
<li>start:   /etc/init.d/oracle-xe start</li>
<li>stop:   /etc/init.d/oracle-xe stop</li>
</ul>
<p>Make sure that OXE is started.  If not, type the start command in your terminal above.</p>
<p>On your desktop, pull up your favorite browser.  In the address bar, type:</p>
<ul>
<li>http://localhost:8080/apex</li>
</ul>
<p>You&#8217;ll have to login with your SYS or SYSTEM username and the password you defined above.</p>
<p>You&#8217;ll have to go to Administration&#8211;&gt;Manage HTTP Access.  Choose:</p>
<ul>
<li>Available from local server and remote clients</li>
<li>Click Apply Changes</li>
</ul>
<p>Now you can do CRUD actions and write queries from remote computers.</p>
<p>You&#8217;re basically done.  You can install the oracle client, found <a href="http://www.oracle.com/technology/xe">here</a>.  If you like TOAD (Windows), you can get it <a href="http://www.toadsoft.com/downld.html">here</a>.</p>
<p>References:</p>
<ul>
<li><a href="http://www.oracle.com/technology/software/products/database/xe/files/install.102/b25144/toc.htm">Oracle Express</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koolaborate.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koolaborate.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koolaborate.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koolaborate.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/koolaborate.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/koolaborate.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/koolaborate.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/koolaborate.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koolaborate.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koolaborate.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koolaborate.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koolaborate.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koolaborate.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koolaborate.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=26&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://koolaborate.wordpress.com/2009/09/04/oracle-xe-installation-on-ubuntu-jaunty/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9fcf80747ee35380c7ea10e34a634ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">koolaborate</media:title>
		</media:content>
	</item>
		<item>
		<title>Test Driven Development Series Using Project Euler</title>
		<link>http://koolaborate.wordpress.com/2009/09/03/test-driven-development-series-using-project-euler/</link>
		<comments>http://koolaborate.wordpress.com/2009/09/03/test-driven-development-series-using-project-euler/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 03:48:14 +0000</pubDate>
		<dc:creator>koolaborate</dc:creator>
				<category><![CDATA[Test Driven Series]]></category>

		<guid isPermaLink="false">http://koolaborate.wordpress.com/?p=109</guid>
		<description><![CDATA[This is a rewrite of my previous blog on test driven development, or TDD.  It will be based on two premises.  First, all tests (including test files) are going to be in Java.  That means we will be familiar with the language, understanding of the Eclipse IDE and know something about JUnit.  For those familiar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=109&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a rewrite of my previous blog on test driven development, or TDD.  It will be based on two premises.  First, all tests (including test files) are going to be in Java.  That means we will be familiar with the language, understanding of the Eclipse IDE and know something about JUnit.  For those familiar with other languages, this blog may or may not seem fit.</p>
<p>Second, we will solve problems form <a href="http://projecteuler.net/index.php?section=problems">Project Euler</a> by writing tests first.  I&#8217;m not through the problems, not even close.  I&#8217;m not even sure if this process can scale (adjusted for my problem solving skills) as the problems get harder.  But I will try to solve as many as I can.</p>
<p>That being said, I would like to introduce some best practices into how we should break these problems down.  First, let&#8217;s make the code work under 60 seconds.  If the code doesn&#8217;t work, we can&#8217;t solve the problem, right?  Second, make the code elegant.  Third, make the code fast.  The second and third are a little tricky.  We aren&#8217;t working with a complex business process.  We are working with algorithms that&#8217;s been studied and has been around for a while.</p>
<p>So when you solve a problem in Project Euler, you get to see the answer which may be different from what you wrote.  You may notice it&#8217;s a lot smaller and is more efficient.  By reading the solution, I have learned a lot.  Perhaps the next iteration of these problems will focus on code optimization after writing the initial solution.</p>
<p>A computer science approach is to think about the problem, and write the most optimized code.  Elegance and speed are paramount.  I don&#8217;t disagree, however, with TDD, I want to let the test do the writing.  Essentially, sometimes the easiest path (brute force) is a good start.  From there I tweak it, then I write the test.  I don&#8217;t want to think about the problem too much, unless I&#8217;m stumped.  Then I bust out the pen and paper and start writing down ideas.  But I&#8217;m going to write a test first, way before I write an ounce of code.  I&#8217;m not going to implement more than I need to without writing the second test.</p>
<p>I&#8217;m not a genius and that is a good thing.  I believe if I can solve these problems, so can you.  That&#8217;s why I start out the easiest solution first, be it may be brute force.  It gives me to make something abstract into something concrete.  Then I can start to write testing, then using my tests to implement a solution.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koolaborate.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koolaborate.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koolaborate.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koolaborate.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/koolaborate.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/koolaborate.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/koolaborate.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/koolaborate.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koolaborate.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koolaborate.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koolaborate.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koolaborate.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koolaborate.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koolaborate.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=109&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://koolaborate.wordpress.com/2009/09/03/test-driven-development-series-using-project-euler/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9fcf80747ee35380c7ea10e34a634ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">koolaborate</media:title>
		</media:content>
	</item>
		<item>
		<title>Java/Ubuntu/JBoss/Oracle XE Part I: Background</title>
		<link>http://koolaborate.wordpress.com/2009/09/02/java-ubuntu-jboss-oracle-xe-part-i-background/</link>
		<comments>http://koolaborate.wordpress.com/2009/09/02/java-ubuntu-jboss-oracle-xe-part-i-background/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 23:09:34 +0000</pubDate>
		<dc:creator>koolaborate</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Setup]]></category>

		<guid isPermaLink="false">http://koolaborate.wordpress.com/?p=107</guid>
		<description><![CDATA[I recently wrote two blogs.  The first, deals with Java/Ubuntu/JBoss/MySQL.  The second, deals with Java/Ubuntu/Tomcat/MySQL.  This deals with Java/Ubuntu/JBoss/Oracle Express Edition. Update: I just finished a blog on installing Oracle XE on Ubuntu.  It can be found here. Update: If you want to skip the background and read about the implementation, click here. What we [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=107&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently wrote two blogs.  The first, deals with <a href="http://koolaborate.wordpress.com/2009/08/24/java-jboss-ubuntu-mysql-development-stack-free-and-fast/">Java/Ubuntu/JBoss/MySQL</a>.  The second, deals with <a href="http://koolaborate.wordpress.com/2009/09/02/java-ubuntu-tomcat-mysql-just-as-free-but-faster/">Java/Ubuntu/Tomcat/MySQL</a>.  This deals with Java/Ubuntu/JBoss/Oracle Express Edition.</p>
<p><em><strong>Update</strong>: I just finished a blog on installing <a href="http://koolaborate.wordpress.com/2009/09/04/oracle-xe-installation-on-ubuntu-jaunty/">Oracle XE on Ubuntu</a>.  It can be found here. </em></p>
<p><em><strong>Update</strong>: If you want to skip the background and read about the <a href="http://koolaborate.wordpress.com/2009/09/04/javaubuntujbossoracle-xe-part-ii-implementation-jaunty/">implementation, click here</a>.<br />
</em></p>
<p><strong>What we need is speed!  Speed is what we need!</strong></p>
<p>How do you choose among the three stacks?  It depends upon your requirements.  I like all three.  Let&#8217;s look at these one by one.  The simplest stack to install, configure, develop, maintain is Java/Ubuntu/Tomcat/MySQL.  If you&#8217;re a novice, this is the way to go.  Moreover, there are trends in Java development that promotes speed and agility with light weight frameworks.  A lot of small to mid sized projects don&#8217;t use EJB&#8217;s.  They don&#8217;t need high availability or clustering.  While LAMP is a great solution for these requirements, development managers want the option of Java and all the great frameworks that come with it along with its inherent Object Oriented-ness.  Furthermore, as projects get bigger, organizations have the ability to start small (prototyping?) and advance to large implementations using proprietary application servers and/or databases.</p>
<p>The start up time and time to develop on a Tomcat/MySQL stack gives organizations this flexibility, while retaining the ability to use heavier frameworks down the road.  This choice is easy the smaller the project you have along with the more junior you are in the Java tech space.  So what happens when you want to use EJB&#8217;s or more advanced/supported application servers?</p>
<p><strong>Simulating a Mid-Sized Project</strong></p>
<p>Oracle is a robust database.  It&#8217;s used by big government, corporations of all sizes.  They have a virtual monopoly in such industries as banks in certain regions, manufacturing, finances, and even cities.  Their dba&#8217;s are among the highest paid and the Oracle implementations can be up in the tens of millions.  With mysql and postgress nipping at Oracle&#8217;s heels, Oracle&#8217;s database is available for free-as-in-beer download with restrictions.  The Express Edition is only available for 32 bit downloads and the environment as well.  That means that the RAM utilization can not be greater than 2 Gigs.  The data itself is less than 4 Gigs (features are also limited), while MySQL does not have these requirements.</p>
<p>With the acquisition of Sun Microsystems, Oracle has access to Sun&#8217;s JDK.  Oracle has also aquired Weblogic, so the inherent application for a true Java/Oracle stack would be Java (Sun&#8217;s version), Weblogic, Oracle XE (or non free variants) and <a href="http://opensolaris.org/os/">Open Solaris</a>, while using Oracle&#8217;s <a href="http://www.oracle.com/technology/products/jdev/index.html">JDeveloper</a> as an IDE.  In the future, I may release how to implement a free-as-in-beer blog for a full development stack using the Oracle technologies which were just mentioned.</p>
<p>For this particular blog, I will not focus on a full Oracle stack, but a stack that only uses it&#8217;s &#8220;free&#8221; database, Oracle Express Edition.  The benefit is the exposure to a highly marketable, highly used, industry leader in database management systems while remaining focused on Java development on the web.  This simulates most midsized environments.  While a lot of organizations use Oracle as their database, they don&#8217;t often use any of the other technologies that Oracle has acquired (that may change in the future, especially if Oracle abandons JDeveloper and either acquire IntelliJ or base the next generation of JDeveloper on Eclipse, which could be a conflict of interest or philosophy, read below).</p>
<p><strong>A Balanced Approach</strong></p>
<p>The balanced approach is using <a href="http://koolaborate.wordpress.com/2009/08/24/java-jboss-ubuntu-mysql-development-stack-free-and-fast/">JBoss with MySQL</a>.  It&#8217;s easy to set up and easy to develop.  The documentation available (for free) is incredible and the quality of the documentation is equally as good.  Moreover, I don&#8217;t like writing queries using ansii notation but MySQL allows you to write queries in near-Oracle like syntax.  If you stick to generic best practices for Java web development, porting to Weblogic or WebSphere can be easy.  However, it is likely that it&#8217;s easier said than done.  Typically, the easiness depends upon how early you it in the project, how generically you write your code (using interface, generic integration points, generic services), not using proprietary libraries (opt for third party libraries for your frameworks and ORM&#8217;s) and any support contracts involving migrational implementations.</p>
<p>After reading this entry, you should be aware of the ramifications of which environment you want to choose.  As I create more entries, I will update this blog to reflect other stacks I&#8217;m working on.</p>
<p>References:</p>
<ul>
<li><a href="http://www.mysql.com/">MySQL</a></li>
<li><a href="http://www.jboss.org/jbossas/downloads/">JBoss</a></li>
<li><a href="http://sourceforge.net/projects/jboss/files/">JBoss from Sourceforge</a></li>
<li><a href="http://www.oracle.com">Oracle</a></li>
<li><a href="http://java.sun.com">Sun</a></li>
<li><a href="http://www.postgresql.org/">Postgress</a></li>
<li><a href="http://www-01.ibm.com/software/websphere/">IBM WebSphere</a></li>
<li><a href="http://www.oracle.com/appserver/weblogic/weblogic-suite.html">Weblogic</a></li>
<li><a href="http://opensolaris.org/os/">Open Solaris</a></li>
<li><a href="http://www.oracle.com/technology/products/jdev/index.html">Oracle JDeveloper</a></li>
</ul>
<p><strong>Notes</strong>:</p>
<p>The only time I recommend implementing a full Oracle Web Stack (Sun&#8217;s Java/Weblogic/Oracle XE/Open Solaris) is when the requirements warrant it.  I&#8217;ve worked in an Oracle exclusive environment, and I love the technology, but the learning curve to develop in such an environment is too steep for most instances.  However, I do have an Oracle XE instance lying around for my mini projects that keep me &#8220;sharp&#8221; on the technology.</p>
<p>One thing I never like doing in Oracle environments is the IDE.  I&#8217;ve abandoned JDeveloper and set up Eclipse on my spare time and it payed off in dividends.  I did this with the backing of management as I don&#8217;t like acting in &#8220;cowboy&#8221; ways of development.  Abandoning JDeveloper for Eclipse is an easy sell to management any way, especially if done early on in the project.  I hope Oracle does find some way to re-implement JDeveloper, by either acquiring IntelliJ, or basing it on Eclipse without alienating the IBM/open source community.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koolaborate.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koolaborate.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koolaborate.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koolaborate.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/koolaborate.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/koolaborate.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/koolaborate.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/koolaborate.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koolaborate.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koolaborate.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koolaborate.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koolaborate.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koolaborate.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koolaborate.wordpress.com/107/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=107&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://koolaborate.wordpress.com/2009/09/02/java-ubuntu-jboss-oracle-xe-part-i-background/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9fcf80747ee35380c7ea10e34a634ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">koolaborate</media:title>
		</media:content>
	</item>
		<item>
		<title>Java/Ubuntu/Tomcat/MySQL: Just as Free but Faster</title>
		<link>http://koolaborate.wordpress.com/2009/09/02/java-ubuntu-tomcat-mysql-just-as-free-but-faster/</link>
		<comments>http://koolaborate.wordpress.com/2009/09/02/java-ubuntu-tomcat-mysql-just-as-free-but-faster/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 21:59:10 +0000</pubDate>
		<dc:creator>koolaborate</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Setup]]></category>
		<category><![CDATA[java mysql]]></category>
		<category><![CDATA[java tomcat]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[ubuntu java]]></category>

		<guid isPermaLink="false">http://koolaborate.wordpress.com/?p=97</guid>
		<description><![CDATA[One great thing about LAMP is that it's super fast to install.  Now us java developers have a stack that's almost as fast to install.  Introducing, how to install tomcat and mysql in a ubuntu server.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=97&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is the sequel to my previous blog, regarding a <a href="http://koolaborate.wordpress.com/2009/08/24/java-jboss-ubuntu-mysql-development-stack-free-and-fast/">Java/Ubuntu/JBoss/MySQL</a> stack.  There are various reasons to choose one or the other application server.  Typically, tomcat (version 5/6) is the lighter weight servlet container and not technically and application server (no EJB&#8217;s, MDB&#8217;s, out of the box high availability, etc).  While JBoss is a full J2EE implementation and a true application server.  Resource requirements for tomcat is also smaller than JBoss.  Infact, tomcat&#8217;s resource requirements are so low, I can&#8217;t easily find what they are.  I remember using it on single core, P4&#8242;s with 512 megs of RAM and still had enough left over for a small IDE.</p>
<p>Another cool thing about a Java/Ubuntu/Tomcat/MySQL stack is that you can install all of it (including Eclipse, if you wanted) with a single command line.  This is the foundation of this blog.  The PHP world has the LAMP stack (with phpMyAdmin and BlueFish IDE) which can be installed, configured and up and running in half an hour.  Now, us Java folks have the same.</p>
<p><strong>Background</strong>:</p>
<p>My favorite configuration for this stack is the free-as-in-speech strategy.  Normally, I like to use Sun&#8217;s JDK, but since Tomcat is free-as-in-speech, as well as MySQL, why not follow suit?</p>
<p><strong>Ingredients</strong>:</p>
<ul>
<li>Dual core processor, I like AMD&#8217;s but Intels work just as well</li>
<li>512 MB RAM, but 1 Gig is better, especially with mysql installed on the same box</li>
<li>Ubuntu Server Edition, 9.04 Jaunty</li>
<li>Total time: 30 min</li>
</ul>
<p><strong>Installation</strong>:</p>
<p>In the command line, type:</p>
<ul>
<li>sudo apt-get install openjdk-6-jdk openjdk-6-jre tomcat6 tomcat6-admin tomcat6-common mysql-server-5.0 mysql-client-5.0</li>
</ul>
<p>My internet connection is relatively quick, so this took about 5 min to download and about 5 min to install.</p>
<p><strong>Verification</strong>:</p>
<ul>
<li><em>VERIFY MYSQL</em>: Your mysql installation will ask you for a password for root.  Provide one and remember it.</li>
<li><em>VERIFY JAVA</em>: In the command line, type java -version or javac -version, you should get a message that tells you which jdk you are using (openJDK) and which version (1.6)</li>
<li><em>VERIFY TOMCAT</em>: pull up the browser, and type: http://whatever_the_host_is:8080   You should get a &#8220;It works!&#8221; screen followed by location of your tomcat docs, examples and admin, if you haven&#8217;t installed them already.</li>
</ul>
<p>The verification process should take about 5-10 minutes, provided everything goes well.  If the above did not work, then you did something wrong.</p>
<p><strong>Configure mysql</strong>:</p>
<p>You&#8217;ll want to allow your client machines to access your mysql database.  Type the following:</p>
<ul>
<li>mysql -u root -p</li>
<li>then type your root password you provided above, then type:</li>
<li>GRANT ALL PRIVILEGES ON *.* TO ‘your_username’@&#8217;*’ IDENTIFIED BY ‘whatever_your_password_is’ with grant option;</li>
</ul>
<p>The GRANT command will allow your clients to access the database.  If you do not do this, then you can only access the database locally or at the local host.  This took me about 5 mins.</p>
<p><strong>Tomcat Notes</strong>:</p>
<ul>
<li><em>RESTART TOMCAT</em>: sudo /etc/init.d/tomcat6 restart</li>
<li><code>/var/lib/tomcat6/webapps/ROOT/index.html   is the default tomcat homepage</code></li>
</ul>
<p>There you have it.  Now you can write JSP&#8217;s and Servlets.  Unfortunately, doing so it out of scope.  Stay tuned for Hello World JSP and Servlet tutorials.  Meanwhile, read up on the apache tomcat and sun tutorials.</p>
<p><strong>References</strong>:</p>
<ul>
<li><a href="http://openjdk.java.net/">Open JDK</a></li>
<li><a href="http://tomcat.apache.org/">Apache Tomcat</a></li>
<li><a href="http://www.mysql.com/">MySQL</a></li>
<li><a href="http://www.ubuntu.com/products/whatIsubuntu/serveredition">Ubuntu Server Edition</a></li>
</ul>
<p><strong>Side Notes</strong>:</p>
<p>You&#8217;ll probably want an <a href="http://en.wikipedia.org/wiki/Integrated_development_environment">IDE</a>.  The best free-as-in-speech IDE is <a href="http://www.eclipse.org/galileo/">Eclipse</a>.  You can install it via apt or synaptic, but it may not include extensions for J2EE (min JSP&#8217;s and Servlets).  Download it <a href="http://www.eclipse.org/galileo/">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koolaborate.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koolaborate.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koolaborate.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koolaborate.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/koolaborate.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/koolaborate.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/koolaborate.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/koolaborate.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koolaborate.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koolaborate.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koolaborate.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koolaborate.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koolaborate.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koolaborate.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=97&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://koolaborate.wordpress.com/2009/09/02/java-ubuntu-tomcat-mysql-just-as-free-but-faster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9fcf80747ee35380c7ea10e34a634ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">koolaborate</media:title>
		</media:content>
	</item>
		<item>
		<title>Firefox Tip #4: Linux and Silverlight</title>
		<link>http://koolaborate.wordpress.com/2009/09/01/firefox-tip-4-linux-and-silverlight/</link>
		<comments>http://koolaborate.wordpress.com/2009/09/01/firefox-tip-4-linux-and-silverlight/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 23:31:10 +0000</pubDate>
		<dc:creator>koolaborate</dc:creator>
				<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://koolaborate.wordpress.com/?p=99</guid>
		<description><![CDATA[Problem: You want to watch Silverlight based vids on Ubuntu, but Microsoft does not support Silverlight on Linux. Solution: Install moonlight plugin for firefox in Linux. There are a couple of practical uses for this.  For instance, some facebook applications are based on Silverlight.  Unfortunately, Netflix still restricts viewing based on OS, but there are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=99&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Problem</strong>: You want to watch Silverlight based vids on Ubuntu, but Microsoft does not support Silverlight on Linux.</p>
<p><strong>Solution</strong>: Install <a href="http://go-mono.com/moonlight-beta/">moonlight</a> plugin for firefox in Linux.</p>
<p>There are a couple of practical uses for this.  For instance, some facebook applications are based on Silverlight.  Unfortunately, Netflix still restricts viewing based on OS, but there are rumors that Moonlight 2.0 and Ubuntu Jaunty will be supported by Netflix in the future.  If so, that&#8217;s cool.</p>
<p>Meanwhile, there&#8217;s only one real work around the Netflix issue.  Stay tuned for that tip.</p>
<p>References:</p>
<ul>
<li>http://go-mono.com/moonlight-beta/</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/koolaborate.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/koolaborate.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/koolaborate.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/koolaborate.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/koolaborate.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/koolaborate.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/koolaborate.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/koolaborate.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/koolaborate.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/koolaborate.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/koolaborate.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/koolaborate.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/koolaborate.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/koolaborate.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=koolaborate.wordpress.com&amp;blog=8190910&amp;post=99&amp;subd=koolaborate&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://koolaborate.wordpress.com/2009/09/01/firefox-tip-4-linux-and-silverlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a9fcf80747ee35380c7ea10e34a634ce?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">koolaborate</media:title>
		</media:content>
	</item>
	</channel>
</rss>
