<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Curious Creature &#187; Java</title>
	<atom:link href="http://curiouscreature.net/blog/category/technology/programming/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://curiouscreature.net/blog</link>
	<description>because the world is an interesting place...</description>
	<lastBuildDate>Mon, 30 Aug 2010 14:20:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Android vs iPhone: whats with all the hand-wringing?</title>
		<link>http://curiouscreature.net/blog/2010/05/27/android-vs-iphone-whats-with-all-the-hand-wringing/</link>
		<comments>http://curiouscreature.net/blog/2010/05/27/android-vs-iphone-whats-with-all-the-hand-wringing/#comments</comments>
		<pubDate>Fri, 28 May 2010 02:35:35 +0000</pubDate>
		<dc:creator>ccnet</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://curiouscreature.net/blog/?p=920</guid>
		<description><![CDATA[The last week or so has been very interesting across the many technology blogs that I follow.  Ever since the Google IO conference and the announcement of Android 2.2 the amount of hand-wringing going on over on the iPhone side &#8230; <a href="http://curiouscreature.net/blog/2010/05/27/android-vs-iphone-whats-with-all-the-hand-wringing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The last week or so has been very interesting across the many technology blogs that I follow.  Ever since the Google IO conference and the announcement of Android 2.2 the amount of hand-wringing going on over on the iPhone side of things is getting ridiculous.  Just as ridiculous are the people on the Android side finger pointing and strutting around like Android 2.2 has just killed the iPhone dead.  Both sides are being silly.</p>
<p>For the people on the iPhone side: relax.  Apple knows what they&#8217;re doing.  They still own the smartphone market and likely will for the foreseeable future (Android people don&#8217;t tell me about the numbers.  I know the sales numbers.  They aren&#8217;t even half the story).  Why?  Because they care about the little things that normal people care about.  Google has on it&#8217;s side creepy commercials for the Droid that certainly don&#8217;t appeal to the mass market and a UI, which while getting much better, still isn&#8217;t an iPhone.  All that being said its good that the iPhone finally has real competition.  Apple needs a kick in the pants and Android 2.2 and the new HTC phones are that kick in the pants.</p>
<p>For the people on the Android side: stop being jealous and enjoy your damned phones already.   Your behavior over the last week has been nothing short of pathetic and childish.  Apple isn&#8217;t going to sit down and roll over because Android 2.2 is finally making Android a good platform.   Normal people don&#8217;t give a crap about the Java VM in Android 2.2 (just like they don&#8217;t give a damn about Objective-C on the iPhone).   Like I said to the Apple people: competition is good.   Both sides will benefit.   Your OS is getting there and has some features that the iPhone should think about but its still a geek phone.   The phones don&#8217;t have Apple design flair nor does the user interface.  Accessories?  iPhone again.  The platform is growing up and thats good but Apple will still be around for a long time.</p>
<p>I really don&#8217;t understand how technology people can always think there will be an iPhone killer that comes from outside of Apple.  The only thing that will be an iPhone killer is Apple itself and I&#8217;m going to bet that won&#8217;t happen.  Android isn&#8217;t going to kill the iPhone.  If anything Android will make the iPhone a better platform than it is now.   So lets all enjoy our platform of choice and get on with life.  Honestly life is too short to argue about crap like this.   Lets get out there and make some cool apps for *both* platforms.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://curiouscreature.net/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://curiouscreature.net/blog/2010/05/27/android-vs-iphone-whats-with-all-the-hand-wringing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cedric Beust is Bust</title>
		<link>http://curiouscreature.net/blog/2010/05/21/cedric-beust-is-bust/</link>
		<comments>http://curiouscreature.net/blog/2010/05/21/cedric-beust-is-bust/#comments</comments>
		<pubDate>Fri, 21 May 2010 18:04:33 +0000</pubDate>
		<dc:creator>ccnet</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://curiouscreature.net/blog/?p=910</guid>
		<description><![CDATA[Cedric Beust posts something incredibly lame on his weblog about the iPhone.   It gets picked up by John Gruber and posted at Daring Fireball.   Cedric&#8217;s website is now bust. Not surprising given how ridiculous his post about the &#8230; <a href="http://curiouscreature.net/blog/2010/05/21/cedric-beust-is-bust/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Cedric Beust posts something incredibly lame on his weblog about the iPhone.   It gets picked up by John Gruber and posted at Daring Fireball.   Cedric&#8217;s website is now bust.</p>
<p>Not surprising given how ridiculous his post about the iPhone was.   I mean really?</p>
<blockquote><p>Apple became arrogant before they were the best in the world, and they are now going to have to fight hard if they want to stay third or maybe even fourth.</p></blockquote>
<p>I would expect nothing less from an Android engineer about the iPhone.</p>
<p>Oh and Cedric?  iPhone OS has had tethering for 12 months.   It isn&#8217;t Apple&#8217;s fault that AT&amp;T is the only carrier worldwide who isn&#8217;t allowing tethering.  And if you think carriers will let Android 2.2 go out with free tethering you&#8217;re crazy.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://curiouscreature.net/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://curiouscreature.net/blog/2010/05/21/cedric-beust-is-bust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google AppEngine or Amazon EC2 for my web app?</title>
		<link>http://curiouscreature.net/blog/2010/05/20/google-appengine-or-amazon-ec2-for-my-web-app/</link>
		<comments>http://curiouscreature.net/blog/2010/05/20/google-appengine-or-amazon-ec2-for-my-web-app/#comments</comments>
		<pubDate>Fri, 21 May 2010 01:29:55 +0000</pubDate>
		<dc:creator>ccnet</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[amazon EC2]]></category>
		<category><![CDATA[google appengine]]></category>

		<guid isPermaLink="false">http://curiouscreature.net/blog/?p=908</guid>
		<description><![CDATA[Lately I&#8217;ve been investigating how to host a web application I&#8217;m building.  Being a personal project I&#8217;ve also been debating what technologies I&#8217;d like to use to write it.  I pay for a hosting account for this blog that includes &#8230; <a href="http://curiouscreature.net/blog/2010/05/20/google-appengine-or-amazon-ec2-for-my-web-app/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been investigating how to host a web application I&#8217;m building.  Being a personal project I&#8217;ve also been debating what technologies I&#8217;d like to use to write it.  I pay for a hosting account for this blog that includes Ruby on Rails and Django but it&#8217;s really a developer account.  I&#8217;m also not sure that I want to use Rails or Python.   I&#8217;m a Java developer during my day job and I have been thinking about expanding my skills in that area with this project because I don&#8217;t have that option at work.   In the end I think it boils down to two options:  Google AppEngine or Amazon EC2.  The question is which one?</p>
<p>Amazon EC2 certainly gives the most flexibility since it is essentially my own machine(s) running my own operating system choice and whatever software I want to run.   I can use whatever language I want.   It is easy to scale up when necessary and the charges that apply only apply to the actual resources used.   It is also a lot of work and it&#8217;s not cheap.   There is no free tier that would be appropriate for this project given its status.  To keep an instance up full-time would be cost-prohibitive right now.</p>
<p>On the other hand there is Google AppEngine.  It isn&#8217;t as flexible because I don&#8217;t have most of the choice I would have with Amazon EC2.  The flip side is that they do have a free tier.   500MB of storage and 5 million page views a month (as far as CPU and bandwidth goes) is a lot for just starting a project.   The pricing is hard to compare to EC2 because not everything compares equally but for most things the pricing is relatively equal.   On Google AppEngine I don&#8217;t have to worry about running an instance full-time.  Charges are only incurred when an application is accessed as far as bandwidth and CPU time are concerned.</p>
<p>Google also gives a pretty nice choice as far as development languages go.   Python and Java are the two main languages that are supported with Spring support for Java and Django support for Python.  Database storage is a bit different but they enable ORM storage for Java using JDO.   They also pretty much support any language that runs on the Java VM with some restrictions.  People are running Groovy/Grails, JRuby/Rails, Jython, Scala, etc.   It isn&#8217;t as flexible ultimately as EC2 but it&#8217;s pretty damn good.</p>
<p>I think I&#8217;ve made my choice.  Google AppEngine seems to be the way to go considering all sides of the decision.  Good options, good pricing, the tools I&#8217;m already used to using (Eclipse or NetBeans).  Is there any reason I wouldn&#8217;t choose AppEngine over EC2?</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://curiouscreature.net/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://curiouscreature.net/blog/2010/05/20/google-appengine-or-amazon-ec2-for-my-web-app/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>I can&#8217;t take the stupidity anymore &#8211; or Google open sources VP8</title>
		<link>http://curiouscreature.net/blog/2010/05/19/i-cant-take-the-stupidity-anymore/</link>
		<comments>http://curiouscreature.net/blog/2010/05/19/i-cant-take-the-stupidity-anymore/#comments</comments>
		<pubDate>Wed, 19 May 2010 23:41:02 +0000</pubDate>
		<dc:creator>ccnet</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[h.264]]></category>
		<category><![CDATA[morons]]></category>
		<category><![CDATA[stupidity]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[vp8]]></category>

		<guid isPermaLink="false">http://curiouscreature.net/blog/?p=903</guid>
		<description><![CDATA[Honestly I can&#8217;t take it anymore.   The Google announcement of the open sourcing of VP8 is the last straw and it&#8217;s led me to delete most of my technology RSS feeds.   Why?   Crap like this: Most likely &#8230; <a href="http://curiouscreature.net/blog/2010/05/19/i-cant-take-the-stupidity-anymore/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Honestly I can&#8217;t take it anymore.   The Google announcement of the open sourcing of VP8 is the last straw and it&#8217;s led me to delete most of my technology RSS feeds.   Why?   Crap like this:</p>
<blockquote>
<div id="_mcePaste">Most likely VP8 will be the new HTML5 video standard, for sure now!</div>
<div id="_mcePaste">And why not&#8230;.. Open Source and Open Standards fit right together. Microsoft is proving they are smarter than Apple ever has been!</div>
</blockquote>
<p>Really you tool?   Then why is Apple doing so well while MS is stagnant?</p>
<p>That was in response to <a href="http://www.zdnet.com/blog/microsoft/microsoft-to-support-vp8-video-codec-with-internet-explorer-9-after-all/6264">this</a> post from a alleged journalist titled: &#8220;Microsoft to support VP8 video codec with Internet Explorer 9, after all?&#8221;.</p>
<p>Mary Jo Foley provides us a quote from Microsoft:</p>
<blockquote><p>When it comes to video and HTML5, we’re all in. In its HTML5 support, IE9 will support playback of H.264 video as well as VP8 video when the user has installed a VP8 codec on Windows.</p></blockquote>
<p><strong>When the user has installed a VP8 codec on Windows</strong>.  Well gee thats just huge news.  Its a far cry from including VP8 in Windows.</p>
<p>Whatever.  It&#8217;s wonderful that Google open sourced this thing if it provides a better video experience than Ogg Theora.  I just don&#8217;t get why its the end of the world for H.264.</p>
<p>I just can&#8217;t take this crap anymore.   Between the bullshit headlines and the ridiculous comments I can&#8217;t take the tech &#8220;press&#8221; anymore.  It&#8217;s a total wasteland.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://curiouscreature.net/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://curiouscreature.net/blog/2010/05/19/i-cant-take-the-stupidity-anymore/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Complacency on &#8220;Corporate Standards&#8221;</title>
		<link>http://curiouscreature.net/blog/2010/05/18/complacency-on-corporate-standards/</link>
		<comments>http://curiouscreature.net/blog/2010/05/18/complacency-on-corporate-standards/#comments</comments>
		<pubDate>Wed, 19 May 2010 01:32:29 +0000</pubDate>
		<dc:creator>ccnet</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://curiouscreature.net/blog/?p=897</guid>
		<description><![CDATA[I was in a meeting today where a discussion was happening about the benefits of using Hibernate in an enterprise Java application.  I pointed out that with Hibernate the options are provided to call stored procedures, have Hibernate generate SQL &#8230; <a href="http://curiouscreature.net/blog/2010/05/18/complacency-on-corporate-standards/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was in a meeting today where a discussion was happening about the benefits of using Hibernate in an enterprise Java application.  I pointed out that with Hibernate the options are provided to call stored procedures, have Hibernate generate SQL for you, etc.   The main point was that it provides a lot of flexibility and that we should be using the best tool for the job whether thats a stored procedure, dynamic SQL, etc.</p>
<p>At my current employer the past standard was &#8220;all data access is done as a stored procedure&#8221;.    It is also important to note that Hibernate is <strong>not</strong> popular.  The current standard also is &#8220;all data access is done as a stored procedure&#8221; but various projects have been straying from that standard.    When it was stated that we should use the best tool for the job some people present in the meeting took exception to that and became angry.  It was noted that <a href="http://en.wikipedia.org/wiki/SQL_injection">SQL Injection attacks </a>were very easy where dynamic SQL is involved (read: where Hibernate is being used).</p>
<p>SQL Injection certainly can be a problem but it really depends (like anything else) on the environment.   In a system where form fields are being sent essentially unchanged to the database this is a large concern.    In any modern enterprise system it isn&#8217;t likely it will be a problem (thought it certainly should be thought of).   Where is the SQL Injection going to happen?  There should be validation rules for any form fields.   For performance reasons PreparedStatements should be used which also has the nice side effect of dealing with SQL Injection issues (why?  because you&#8217;re not building a where clause&#8230;you&#8217;re just plugging in a parameter).    Drivers could also deal with this issue with proper escaping of special characters in string parameters.</p>
<p>Needless to say there are a lot of ways SQL Injection attacks can be prevented in an enterprise application.   It isn&#8217;t a problem that needs an inordinate amount of time to deal with and it certainly isn&#8217;t a reason someone shouldn&#8217;t choose Hibernate as the data access tool of choice in an enterprise application.   This brings me back to the title of this posting &#8216;Complacency on &#8220;Corporate Standards&#8221;&#8216;.</p>
<p>Just because something has been a standard way of doing something doesn&#8217;t imply that the standard shouldn&#8217;t be reviewed occasionally.  If it has been years (and in this case it literally has been years) the policy most certainly should be reviewed to see if there are better options given how quickly things change in the IT business.   I have been programming professionally for about 15 years now and in that time the *only* time when stored procedures were popular and <strong>the</strong> way to do something was 15 years ago.   I think it&#8217;s pretty obviously with the rise in popularity of frameworks like Hibernate (on the Java side), and Rails, etc. that time is long gone.   That isn&#8217;t to say that a stored procedure shouldn&#8217;t be used but it shouldn&#8217;t be the <strong>only</strong> option.</p>
<p>The old man yelling at kids to get off his lawn?  That was this situation. It&#8217;s time to tell the old man to move aside and let some new ideas through.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://curiouscreature.net/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://curiouscreature.net/blog/2010/05/18/complacency-on-corporate-standards/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>It&#8217;s the requirements stupid!</title>
		<link>http://curiouscreature.net/blog/2010/03/10/its-the-requirements-stupid/</link>
		<comments>http://curiouscreature.net/blog/2010/03/10/its-the-requirements-stupid/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 13:33:50 +0000</pubDate>
		<dc:creator>ccnet</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[software engineering]]></category>

		<guid isPermaLink="false">http://curiouscreature.net/blog/?p=789</guid>
		<description><![CDATA[Today I had a new coworker tell me that I really couldn&#8217;t comment on his method of organizing source code because I hadn&#8217;t used it.   It was guaranteed to produce the fantastic results he was talking about if only we&#8217;d &#8230; <a href="http://curiouscreature.net/blog/2010/03/10/its-the-requirements-stupid/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I had a new coworker tell me that I really couldn&#8217;t comment on his method of organizing source code because I hadn&#8217;t used it.   It was <em><strong>guaranteed</strong></em> to produce the fantastic results he was talking about if only we&#8217;d just adopt it for all projects going forward.  (He didn&#8217;t find it odd that even though this system was apparently very intuitive everyone kept asking the same questions over and over). But he&#8217;s missing the point completely.  The problems on the particular project I&#8217;m working on are about the requirements.</p>
<p>I&#8217;ve been a software professional for 15 years now.  In that time I&#8217;ve seen a lot of things and have tried a lot of things.  I&#8217;ve been part of the newest fads in software development usually to see all of them fail.  Why?  Because the most important part of the equation is the customer knowing what they want and being able to communicate that in the form of requirements and in all but one case they haven&#8217;t been able to do that.</p>
<p>The most successful projects I&#8217;ve ever been involved with were *gasp* based on the <a href="http://en.wikipedia.org/wiki/Waterfall_model">waterfall method</a> of software development.  Well wait&#8230;how can that be?  Doesn&#8217;t a project have to be &#8220;agile&#8221; to be successful?   Of course that&#8217;s tongue-in-cheek but based on what I&#8217;ve read projects can&#8217;t be successful using that methodology.  But they were and why were they?  It had nothing to do with the methodology at all, it was all about having good requirements.   We came up with good requirements by spending a hell of a lot of time with the clients.  First finding out what they needed.  Then spending even more time working with screen mock-ups in the meetings.  Then finally showing a real prototype to make sure we were all on the same page.  We then threw that prototype out and started coding.  (We also had a designated note-taker so we could keep a record of what was agreed to).</p>
<p>I have not had the pleasure of using that system since (this was 1996-98).   Since then any project I&#8217;ve been involved with has had problems because of lack of good requirements and requirements gathering.   That stuff takes a lot of time.  It takes interaction between the software people and the clients.   There has to be a record of what was agreed to and people can&#8217;t just keep changing their mind as the winds change direction.  It has absolutely <em><strong>nothing</strong></em> to do with the rest of the development methodolgy.</p>
<p>Getting back to my new coworker&#8230;   While his code organizing ideas have some merit the organization of our codebase isn&#8217;t the problem.  Someone can learn what goes where very quickly.  On a larger scale code organization still isn&#8217;t the problem.  The problem, once again, is requirements.  We just aren&#8217;t getting good requirements and nobody is writing anything down to the point we can come to agreement on things.   Changing the organization of the code isn&#8217;t going to fix that problem.  He even insists that it can help but I don&#8217;t see quite how organizing code around business concerns is going to make people come to a consensus on exactly what is supposed to be built.  Until that happens everything else is almost a moot point.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://curiouscreature.net/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://curiouscreature.net/blog/2010/03/10/its-the-requirements-stupid/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash: what&#8217;s all the fuss over?</title>
		<link>http://curiouscreature.net/blog/2009/06/23/flash-whats-all-the-fuss-over/</link>
		<comments>http://curiouscreature.net/blog/2009/06/23/flash-whats-all-the-fuss-over/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 18:05:34 +0000</pubDate>
		<dc:creator>ccnet</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[html 5]]></category>

		<guid isPermaLink="false">http://curiouscreature.net/blog/?p=661</guid>
		<description><![CDATA[Update:  Here is a fantastic example of someone who has completely gone off the rails with respect to Flash&#8230; Wow&#8230;nothing generates conversation in the tech industry like Adobe Flash. In just the past couple of days I&#8217;ve read articles about &#8230; <a href="http://curiouscreature.net/blog/2009/06/23/flash-whats-all-the-fuss-over/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Update</strong>:  Here is a fantastic <a href="http://www.bynkii.com/archives/2009/06/doing_it_wrong.html">example</a> of someone who has completely gone off the rails with respect to Flash&#8230;</p>
<p>Wow&#8230;nothing generates conversation in the tech industry like Adobe Flash.   In just the past couple of days I&#8217;ve read articles about how HTML5 might be a &#8216;Flash killer&#8217; along with articles on the release of Flash on the major mobile platforms, aside from iPhone.   Along with those articles comes a <strong>lot</strong> commentary ranging from the people complaining about the lack of Flash on the iPhone to those with a strangely visceral hate for Flash who think that the lack of Flash on the iPhone is a bonus of the platform.</p>
<h4>HTML 5 as Flash Killer</h4>
<p>With all due respect to John Gruber over at <a href="http://daringfireball.net/linked/2009/06/22/adobe-html-5">Daring Fireball</a> Adobe doesn&#8217;t view HTML 5 as a threat to Flash not because of anything to do with Internet Explorer but because of the history of HTML and CSS themselves.  HTML 5 has a lot of great features and sounds like a real winner paired with CSS3 but modern browsers still can&#8217;t get the older standards right.   There are still many workarounds required to get things rendering the same way on different browsers.  Granted the situation is better than it used to be but these things simply aren&#8217;t an issue on a Flash-based user interface.   While the browsers continue to play catch-up in the compatibility space Adobe will keep adding compelling features to Flash.  I just don&#8217;t see HTML 5 being a serious challenger to Flash anytime soon.</p>
<h4>Flash on Mobile Devices</h4>
<p>I&#8217;d love Flash to be available on the iPhone.  I  really don&#8217;t get the reaction people have to Flash in general but when people go as far as saying that <a href="http://forums.macworld.com/message/737023#737023">no Flash on the iPhone is a feature</a>&#8230;.please.  Get a grip already.   The iPhone experience would be that much richer with Flash available on the phone.   HTML 5/CSS3 support on mobile Safari could be 100% compliant but until people start adopting those features on a mass scale it won&#8217;t be an alternative to having Flash available on the phone (see above).</p>
<p>I&#8217;m just not getting the dust-up over this stuff.  Flash is a tool like anything else.  Wider support of both HTML 5/CSS3 and Flash makes the web better, not worse.   To those who would rather not have Flash exist at all: I think the web is a richer place with You Tube, Pandora, etc. than without them and they exist because of the ubiquitous nature of Flash.  You seriously don&#8217;t?  Because they wouldn&#8217;t exist right now if it weren&#8217;t for Flash.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://curiouscreature.net/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://curiouscreature.net/blog/2009/06/23/flash-whats-all-the-fuss-over/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.04 on VMWare Fusion 2.0.4</title>
		<link>http://curiouscreature.net/blog/2009/05/01/ubuntu-904-on-vmware-fusion-204/</link>
		<comments>http://curiouscreature.net/blog/2009/05/01/ubuntu-904-on-vmware-fusion-204/#comments</comments>
		<pubDate>Fri, 01 May 2009 03:58:35 +0000</pubDate>
		<dc:creator>ccnet</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vmware fusion]]></category>

		<guid isPermaLink="false">http://curiouscreature.net/blog/?p=645</guid>
		<description><![CDATA[Happy to say that with minimal fuss I was able to get the newest release of Ubuntu Desktop, 9.04, running on VMWare Fusion on my Mac.   Five easy steps: Follow this blog post for the install (he also links to &#8230; <a href="http://curiouscreature.net/blog/2009/05/01/ubuntu-904-on-vmware-fusion-204/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Happy to say that with minimal fuss I was able to get the newest release of Ubuntu Desktop, 9.04, running on VMWare Fusion on my Mac.   Five easy steps:</p>
<ol>
<li>Follow <a href="http://blogs.vmware.com/teamfusion/2009/04/ubuntu-904-on-vmware-fusion-2.html">this</a> blog post for the install (he also links to the bits I am here) &#8211; but don&#8217;t worry about his suggestion for the mouse driver since the VMWare tools install takes care of it.</li>
<li>Once the install is completed uninstall VMWare tools (they were installed as part of step 1 but not all of it was done..vmhgfs isn&#8217;t set up).  You might have to remount the install &#8220;CD&#8221; by selecting &#8220;Install VMWare Tools&#8221; from the Virtual Machine menu.   In any case untar the tools tarball and run the uninstaller.  The uninstaller is in the bin directory of the vmware-tools-distrib directory you created.</li>
<li>Follow the directions <a href="http://laptopbisnis.blogspot.com/2009/04/ubuntu-904-beta-in-vmware-fusion.html">here</a> for getting vmhgfs to work.</li>
<li>Rerun the vmware tools installer in the distribution directory you created in step 2.</li>
<li>Bask in the glow of a job well done <img src='http://curiouscreature.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://curiouscreature.net/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://curiouscreature.net/blog/2009/05/01/ubuntu-904-on-vmware-fusion-204/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JasperReports underlining all text in HTML reports in Internet Explorer?</title>
		<link>http://curiouscreature.net/blog/2009/04/02/jasperreports-underlining-all-text-in-html-reports-in-internet-explorer/</link>
		<comments>http://curiouscreature.net/blog/2009/04/02/jasperreports-underlining-all-text-in-html-reports-in-internet-explorer/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 01:57:02 +0000</pubDate>
		<dc:creator>ccnet</dc:creator>
				<category><![CDATA[GTD]]></category>
		<category><![CDATA[Garden Journal]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Sustainability]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[jasperreports]]></category>

		<guid isPermaLink="false">http://curiouscreature.net/blog/?p=604</guid>
		<description><![CDATA[Last week I ran into an odd situation with our HTML output from JasperReports in Internet Explorer 7.  All text, link or otherwise,  was being underlined and I&#8217;m not really sure of the root cause other than it would appear &#8230; <a href="http://curiouscreature.net/blog/2009/04/02/jasperreports-underlining-all-text-in-html-reports-in-internet-explorer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last week I ran into an odd situation with our HTML output from JasperReports in Internet Explorer 7.  All text, link or otherwise,  was being underlined and I&#8217;m not really sure of the root cause other than it would appear we ran into a CSS rendering bug.   The same thing does not happen in Firefox 3 (though my research indicated that the same issue occurs in Firefox 2).</p>
<p>In rendering HTML output JasperReports inserts various anchor tags of the form:</p>
<pre>&lt;a name="JR_PAGE_ANCHOR_0_1"&gt;</pre>
<p>It doesn&#8217;t use these with href attributes but it does use them for some purpose.</p>
<p>Our global CSS file indicates that anything that is inside an anchor tag should be underlined.  This would make sense assuming that anchors are used for links (a pretty good assumption).    We also use the Dojo JavaScript framework and the <a href="http://api.dojotoolkit.org/jsdoc/1.2.3/dojox.layout.ContentPane">Dijit ContentPane</a> widget allows using the ContentPane (normally used with a DIV) to show external content.   That external content can be &#8220;scrubbed&#8221; to allow it to play in a nicer fashion with the overall site design.  That is where the problem occurs.</p>
<p>The scrubbing of the content coming in to the DIV, to filter out things like styles, TITLEs, and other tags, is where IE seems to have issues.  Those anchor tags mentioned previously, and which look fine in IE when previewing a report inside of the iReport designer, now all have text inside them underlined.   The quick fix, or so I thought, was to remove the A tag from our global CSS file.  That fixes things until someone hovers over any text at which point another CSS rule comes in to play for a:hover and all text is again underlined.    Probably time for another CSS tweak&#8230;</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://curiouscreature.net/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://curiouscreature.net/blog/2009/04/02/jasperreports-underlining-all-text-in-html-reports-in-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Chart caching issues with JasperReports web output?  A solution!</title>
		<link>http://curiouscreature.net/blog/2009/03/24/chart-caching-issues-with-jasperreports-web-output-a-solution/</link>
		<comments>http://curiouscreature.net/blog/2009/03/24/chart-caching-issues-with-jasperreports-web-output-a-solution/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 21:19:38 +0000</pubDate>
		<dc:creator>ccnet</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[jasperreports]]></category>

		<guid isPermaLink="false">http://curiouscreature.net/blog/?p=590</guid>
		<description><![CDATA[Just a quick posting about an issue I was running in to that was solved pretty easily with a minimal amount of work.  Providing it here as a tip for people new to JasperReports and using it to deliver HTML &#8230; <a href="http://curiouscreature.net/blog/2009/03/24/chart-caching-issues-with-jasperreports-web-output-a-solution/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just a quick posting about an issue I was running in to that was solved pretty easily with a minimal amount of work.  Providing it here as a tip for people new to JasperReports and using it to deliver HTML reports via the web.</p>
<p>The issue I was running in to was caching of report charts when outputting to HTML format.  When JRHtmlExporter creates links to images in the report output it uses the format <strong>img_x_y_z[_z_z]</strong> where x, y, and z are as follows:</p>
<ul>
<li>x is the index of a document within the list of documents to export in batch mode.</li>
<li>y is the page index.</li>
<li>z values are a series of one or more element indexes that locate the image on the page,<br />
looping through nested frames if needed.</li>
</ul>
<p>(taken from the JasperReports Definitive Guide &#8211; pg. 197)</p>
<p>The issue is if you run a report which generates a chart and then rerun the report with similar parameters which doesn&#8217;t result in a change to the image name you will end up with a cached copy of the chart image&#8230;probably not what you want.</p>
<p>The solution is simple:  when you define your IMAGES_URI paramter for the JRHtmlExporter tack on the current system time as follows:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p590code2'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5902"><td class="code" id="p590code2"><pre class="java" style="font-family:monospace;">exporter.<span style="color: #006633;">setParameter</span><span style="color: #009900;">&#40;</span>JRHtmlExporterParameter.<span style="color: #006633;">IMAGES_URI</span>, <span style="color: #0000ff;">&quot;/jasper/image?time=&quot;</span><span style="color: #339933;">+</span><span style="color: #003399;">System</span>.<span style="color: #006633;">currentTimeMillis</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;&amp;image=&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>In this example I&#8217;m using the system time to &#8220;randomize&#8221; the image url which makes sure that the images are always displayed properly.  Note too that I&#8217;m using the image servlet that&#8217;s included as part of JasperReports.</p>
<p>I hope this helps someone.   I was scratching my head for a bit over this one but the solution is pretty simple.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://curiouscreature.net/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://curiouscreature.net/blog/2009/03/24/chart-caching-issues-with-jasperreports-web-output-a-solution/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
