<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.dzone.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
  <title>JRoller</title>
  <link>http://www.jroller.com</link>
  
  <description>Javalobby Community Weblog Service</description>
  <language>en-us</language>
  <copyright>Copyright 2007</copyright>
  <lastBuildDate>Tue, 17 Jul 2007 11:08:23 -0400</lastBuildDate>
  <generator>Apache Roller (incubating) 3.1 (20070421020349:dave)</generator>
        <feedburner:info uri="jroller/frontpage" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://jroller.com/rss" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Fjroller.com%2Frss" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fjroller.com%2Frss" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Fjroller.com%2Frss" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://jroller.com/rss" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fjroller.com%2Frss" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fjroller.com%2Frss" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fjroller.com%2Frss" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
    <guid isPermaLink="false">http://www.jroller.com/robwilliams/entry/withering_maven_rant_from_hibernate</guid>
    <title>Withering Maven Rant from Hibernate Guy</title>
    <dc:creator>Rob Williams</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/jN916SfJ8-o/withering_maven_rant_from_hibernate</link>
        <pubDate>Wed, 8 Feb 2012 15:21:54 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;Having succumbed quite often to the need to rant, it was with great pleasure that I plowed through &lt;a href="https://community.jboss.org/wiki/GradleWhy" title=""&gt;this evisceration of maven&lt;/a&gt; as a build tool. For those of you who don't salivate at the prospect of a long slog through a field of nattering nabobs of negativism, let me break it down for you. The real crux of this thing is that, after 8 years, any effort to see a way through the Maven jungle to what we call a release is a. sure to be filled with torture and b. impossible. I am sure I ranted about &lt;img src="http://bucket.ontometrics.com/images/gradle-logo.png" class="rightWrap" width="200" height="135"/&gt;this some time ago, and this was synchronicity at its finest that I happened across this right after moving all my projects from one nexus install to another because one of the nauseating takeaways was we had no projects that were doing disciplined, layered versioning as part of an automated release.&lt;/p&gt;

	&lt;p&gt;Let&amp;#8216;s pause for a second to consider how utterly ridiculous this is. A build tool that cannot create releases in an orderly fashion is kind of like a phone that can&amp;#8216;t place a call. One of the funniest parts of this rant is the fact that once the author identifies an element as utterly dead, he adds that the Czar of maven agrees and has announced his intention to replace it with &amp;#8216;something new&amp;#8216; (of course there is no timeframe for this, you see, timeframes are for nazis that live in walled gardens).&lt;/p&gt;

	&lt;p&gt;I found this post because I wanted to look at Gradle again, and that was because I came across a conversation with Colin of Spring fame some time ago where he was declaring its usefulness.&lt;/p&gt;

	&lt;p&gt;Having just skimmed the surface again of Gradle, here are a few random comments:&lt;/p&gt;


&lt;ul&gt;
	&lt;li&gt;Love the idea of a &lt;span class="caps"&gt;DSL&lt;/span&gt;, the bland assertion that Groovy was the right choice because Ruby and Python are better languages than Java is kind of silly. The initial hello world examples are not at all convincing from this perspective. Looks like more of the same: my languages&amp;#8216; highest goals should be to give me less finger pain from typing, and to make me feel like I am on the cutting edge of coding fashion. I like the O-C conceit: a language&amp;#8216;s highest yearning should be to readability. I think I could make a build &lt;span class="caps"&gt;DSL&lt;/span&gt; in Java that would be a lot more compelling than this in a few days. Sound arrogant? Imagine chaining calls to assemble artifacts or trigger actions, with simple inline rules in anonymous classes. Simple and clean.&lt;img src="http://bucket.ontometrics.com/images/groovy-syntax.png" class="rightWrap"/&gt;&lt;/li&gt;
	&lt;li&gt;The documentation looks decent. But there&amp;#8216;s a new O&amp;#8216;Reilly book that has gotten lambasted on Amazon. Then you see it&amp;#8216;s the first in a proposed 3 volume series. A build system so simple it&amp;#8216;s going to take 3 books and 2+ years to describe all of its beauty (and some hundred dollars or so).&lt;/li&gt;

&lt;/ul&gt;
	&lt;p&gt;Look at the included source code. If this syntax makes you so excited you want to get out your old matchboxes, you are probably a good candidate for liking Groovy. The infantile fascination with banishing iteration loops is just boring to me, and overall, the code is not more readable than a Java-based &lt;span class="caps"&gt;DSL&lt;/span&gt; would be, period (imho). Furthermore, things like &amp;#8216;println&amp;#8216; are totally whacked: if you are going to sell yourself as the vanguard, what on earth would make you reach into one of the ugliest parts of C&amp;#8216;s past, that C++ undid with streams?&lt;/p&gt;

	&lt;p&gt;On the plus side, even a cursory look at Gradle makes you realize that Maven&amp;#8216;s central conceit: to add a model to what was before a model less wild west of silly string (ant), didn&amp;#8216;t go far enough. Why? Because it really only models the dependency graph, and while it has ambitions to incorporate the build, even the most basic things are left to bolt ons (e.g. surefire). One of the things that Ebersole does not address but would be super high on my list is getting better control over the running of tests. We have a number of projects that have both JUnit and TestNG tests in them, and setting that up to run is a nightmare, then if I want to control what gets run to produce what artifacts, I am left, as SE says, portioning out a strategy as a tool&amp;#8216;s grant or remainder. I would so like to be able to say &amp;#8216;run these tests when producing a dev artifact, these for production&amp;#8216; and also be able to say &amp;#8216;the tests for this artifact need only be run if x happens.&amp;#8216;&lt;/p&gt;

	&lt;p&gt;The biggest thing is the releases. If you got a few smart people in a room who have worked on large projects, and did some visioning on what a release lifecycle management tool should do, face the facts: it&amp;#8216;s 2000 light years from where Maven is.&lt;/p&gt;

	&lt;p&gt;This was my favorite line from the rant, in part because it overlays one of the things I&amp;#8216;ve been kind of obsessed with lately: the role of the conceptual in technology. &amp;#8220;The entire conceptualization of the build process is much cleaner in Gradle imho.&amp;#8221; One of the reasons it was hard to have a lot of sympathy for the car companies (for me personally) is they got more post subsistence dollars than anyone in the 50 years after world war II and delivered so little in the way of real progress. While 50K people a year were dying it took them something like 3 decades to put an airbag in a car. Sadly, we in technology imagine ourselves as promethean barn burners, but the reality is the vast majority is probably no better at keeping a pace of their problem space.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/jN916SfJ8-o" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robwilliams/entry/withering_maven_rant_from_hibernate</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robwilliams/entry/visit_to_the_radioactive_dependency</guid>
    <title>Visit to the Radioactive Dependency Pyre</title>
    <dc:creator>Rob Williams</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/eO5n914nT7o/visit_to_the_radioactive_dependency</link>
        <pubDate>Tue, 7 Feb 2012 00:32:06 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;Ah the joys of dependency management. You see, Friend, what this all does for you is it, well, manages all your dependencies, because of course, you shouldn&amp;#8216;t want to have to do that yourself! As is so often the case, for the promise of a brief respite from a little bit of work, you have to weigh your savings against the mine collapses and how much time and energy they suck up.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://www.islamreligion.com/articles/images/A_Description_of_Hellfire_(part_1_of_5)_001.jpg" class="rightWrap"/&gt;Today, I was trying to fix one of the last jobs that was not building on our new install on Jenkins, which, incidentally, is stupid fast on the i7 mini with an &lt;span class="caps"&gt;SSD&lt;/span&gt;. I figured out its first problem then it had a test failure with a message about Column not being found (class not found). Figured out pretty quickly that the class loader was getting the wrong persistence classes. So I cloned the project and built locally then ran the test in eclipse. It passes there. So the class loader behavior is different. More disturbing? it passes from the command line with maven locally. So I go to see where the hibernate classes are coming from. Surprise, they are being dragged in by one of the other projects.&lt;/p&gt;

	&lt;p&gt;Ok, so I add the hibernate dependencies. Suddenly, I&amp;#8216;m getting a compilation error on a commons collection method call (apache). So look in the tree and find that hibernate dragged in a new version. Try to figure out why the apache guys would have removed a method that simply determines if a collection is empty. Try excluding the commons-collection from the hibernate declaration and then explicitly adding commons-collections 1.0 and suddenly it couldn&amp;#8216;t find richfaces.&lt;/p&gt;

	&lt;p&gt;Finally, I decided to write my own isNotEmpty method (in about 10s), remove the commons collection and just have the hibernate dependencies and everything built.&lt;/p&gt;

	&lt;p&gt;While this was going, 2 guys on the team were messing around with trying to get around a bug in the eclipse update site that mislabels a repository as a duplicate and figuring out how to update m2e so it would work with a settings.xml-based mirror.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/eO5n914nT7o" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robwilliams/entry/visit_to_the_radioactive_dependency</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/evans/entry/earn_an_average_of_790</guid>
    <title>Earn an average of $790 per month for a few minutes work</title>
    <dc:creator>evans</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/1vBysDJ6sa0/earn_an_average_of_790</link>
        <pubDate>Sun, 5 Feb 2012 15:49:59 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;As a developer who has consistently been working and earning a great deal of regular income on the side on &lt;a href="http://www.tkqlhce.com/click-5292017-10713511" target="_top"&gt;ODesk website&lt;/a&gt;&lt;img src="http://www.lduhtrp.net/image-5292017-10713511" width="1" height="1" border="0"/&gt; in the last few years, I was surprised to received an email from them that their affiliate program will be switching to Commission Junction. What this means is that from the end of February this year, all new affiliates will have to go through the third party website. &lt;/p&gt;


&lt;p&gt;I have used Commission Junction since 2009 and really love their service. They have some of the biggest and well-known companies advertising through them. So,no matter what sort of affiliate program or niche you're into, you will be sure to find an advertiser that fits your niche. So, I was thrilled to see Odesk joining this great company.&lt;/p&gt;


&lt;p&gt;That said, the only downside I see in this move is that new affiliates will end up getting far less that they would if they joined the program through &lt;a href="http://www.tkqlhce.com/click-5292017-10713511" target="_top"&gt;oDesk-managed program&lt;/a&gt;&lt;img src="http://www.lduhtrp.net/image-5292017-10713511" width="1" height="1" border="0"/&gt;. The payout threshold for Commission Junction is a lot higher - meaning that you you'd have to accrue enough before you get paid. Previously, oDesk did not have any minimum payment threshold, so you were guaranteed to receive some payment at the end of the month.&lt;/p&gt;


&lt;p&gt;So, if you are a developer and looking for ways to earn money extra money during your free time or weekends, now is the time to have a look and started earning. There are literally thousands of programming tasks to choose from and solve within minutes if you are good.&lt;/p&gt;


&lt;p&gt;They are consistently considered one of the best affiliate programs, with some of the highest EPC, best affiliate support, and freshest "swipe content" of any b2b lead generation program.&lt;/p&gt;


&lt;p&gt;&lt;a href="http://www.tkqlhce.com/click-5292017-10713511" target="_top"&gt;Click here&lt;/a&gt;&lt;img src="http://www.lduhtrp.net/image-5292017-10713511" width="1" height="1" border="0"/&gt; to get started - remember, &lt;b&gt;THE PROGRAM ENDS THIS FEB &lt;/b&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/1vBysDJ6sa0" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/evans/entry/earn_an_average_of_790</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/anylabs/entry/seo_made_simple_2nd_edition</guid>
    <title>SEO Made Simple, 2nd Edition</title>
    <dc:creator>evans</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/HsfXqramVYY/seo_made_simple_2nd_edition</link>
        <pubDate>Sun, 5 Feb 2012 06:20:11 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;Today’s leading SEO Book, SEO Made Simple: Search Engine Optimization Strategies for Dominating the World’s Leading Search Engine, 2nd Edition, is a tell-all search engine optimization guide for anyone trying to reach the highly coveted #1 ranking on Google for their website or blog. &lt;/p&gt;


&lt;p&gt;Updated and expanded with the latest information on search engine optimization (SEO) and including more than 20 new pages of proven search engine optimization techniques. SEO Made Simple is today’s top-selling search engine optimization guide. Learn from leading Webmaster, &lt;a href="http://www.amazon.com/SEO-Made-Simple-Second-Strategies/dp/1460908511/?tag=7536-20"&gt;Michael H. Fleischner&lt;/a&gt;, the specific SEO techniques that deliver top rankings in less than 30 days.&lt;/p&gt;


&lt;p&gt;Whether you’re a search engine optimization expert or new to website rankings, the techniques revealed in SEO Made Simple will give you everything you need to dominate Google and other leading search engines. Generate tons of traffic to your website absolutely FREE with top search engine placement on Google, Yahoo! and Bing. &lt;/p&gt;


&lt;p&gt;SEO Made Simple has helped more individuals than another other search engine optimization guide ever printed to achieve top rankings for even the most competitive keywords. This guide has been updated with the latest SEO advice on social media, Google Places, and even a step-by-step link building process that has already produced top results for some of the most sought after keywords. &lt;/p&gt;


&lt;p&gt;If you are looking for a guide that provides the information you need to achieve top rankings, without all of the useless fluff, this is it. &lt;/p&gt;


&lt;p&gt;SEO Made Simple is the only resource on search engine optimization that you’ll ever need. Learn the techniques that have a direct and significant impact on your website’s ranking. &lt;/p&gt;


&lt;p&gt;This book is ranked &lt;a href="http://www.amazon.com/SEO-Made-Simple-Second-Strategies/dp/1460908511/?tag=7536-20"&gt;#1 for a reason&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;img src='http://www.amazon.com/?ie=UTF8&amp;tag=7536-20' style='display:none;'/&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/HsfXqramVYY" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/anylabs/entry/seo_made_simple_2nd_edition</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/bookreview/entry/beginning_android_4_games_development</guid>
    <title>Beginning Android 4 Games Development</title>
    <dc:creator>evans</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/MynjvcURPCk/beginning_android_4_games_development</link>
        <pubDate>Sat, 4 Feb 2012 03:00:22 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;&lt;a href="http://www.amazon.com/Beginning-Android-Games-Development-Apress/dp/1430239875/?tag=7536-20"&gt;&lt;img src="http://bks1.books.google.co.uk/books?id=iqH1wLhDme0C&amp;printsec=frontcover&amp;img=1&amp;zoom=1&amp;edge=curl" align="right" style="padding:5px;"&gt;&lt;/a&gt;&lt;a href="http://www.jroller.com/bookreview/entry/beginning_android_4_games_development"&gt;Beginning Android 4 Games Development&lt;/a&gt; offers everything you need to join the ranks of successful Android game developers. You’ll start with game design fundamentals and programming basics, and then progress toward creating your own basic game engine and playable game that works on Android 4.0 and earlier devices. This will give you everything you need to branch out and write your own Android games.&lt;/p&gt;


&lt;p&gt;The potential user base and the wide array of available high-performance devices makes Android an attractive target for aspiring game developers. Do you have an awesome idea for the next break-through mobile gaming title? Beginning Android 4 Games Development will help you kick-start your project.&lt;/p&gt;


&lt;p&gt;The book will guide you through the process of making several example games for the Android platform, and involves a wide range of topics:&lt;/p&gt;


&lt;p&gt;    The fundamentals of Android game development targeting Android 1.5-4.0+ devices&lt;br/&gt;
    The Android platform basics to apply those fundamentals in the context of making a game&lt;br/&gt;
    The design of 2D and 3D games and their successful implementation on the Android platform&lt;/p&gt;


&lt;p&gt;What you’ll learn&lt;/p&gt;


&lt;p&gt;    How to set up and use the development tools for developing your first Android 4 or earlier version game app&lt;br/&gt;
    The fundamentals of game programming in the context of the Android platform &lt;/p&gt;


&lt;p&gt;&lt;img src='http://www.amazon.com/?ie=UTF8&amp;tag=7536-20' style='display:none;'/&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/MynjvcURPCk" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/bookreview/entry/beginning_android_4_games_development</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/santhosh/entry/libs_updates_to_xmldog</guid>
    <title>Libs: Updates to XMLDog</title>
    <dc:creator>Santhosh Kumar T</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/jR4n-HcmlrM/libs_updates_to_xmldog</link>
        <pubDate>Thu, 2 Feb 2012 14:01:09 -0500</pubDate>
    <category>Java</category>
    <category>jlibs</category>
            <description>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type"&gt;
  &lt;title&gt;JLibs: Updates to XMLDog&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://code.google.com/p/jlibs/wiki/XMLDog"&gt;XMLDog&lt;/a&gt; now supports:&lt;br&gt;
- return DOM Nodes for XPath results&lt;br&gt;
- InstantResults: notify as nodes are hit (suitable for heavy xml documents)&lt;br&gt;
- Command line utility to play&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/jR4n-HcmlrM" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/santhosh/entry/libs_updates_to_xmldog</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robwilliams/entry/modeling_with_tools_without</guid>
    <title>Modeling, with Tools/Without</title>
    <dc:creator>Rob Williams</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/h93VeR9mvwo/modeling_with_tools_without</link>
        <pubDate>Thu, 2 Feb 2012 11:31:31 -0500</pubDate>
    <category>Technology</category>
            <description>&lt;p&gt;It&amp;#8216;s totally crazy that in 2012 there are so few good choices for modeling tools. I got encouraged for a minute today when I found a thread on Stack Overflow that included a bunch of products and I found out about SparxSystems&amp;#8216; &lt;a href="http://www.sparxsystems.com/products/ea/index.html" title=""&gt;System Architect&lt;/a&gt; . Got all the way to downloading the trial version when I saw that it was an exe. Yes, folks, Windows only.. in 2012. Unbelievable. Hilarious that these guys are selling tools for doing &lt;span class="caps"&gt;MDA&lt;/span&gt;. Guys, where is your &lt;span class="caps"&gt;PIM&lt;/span&gt;? Oh, yeah, you don&amp;#8216;t have one (clearly). Your codebase is already a &lt;span class="caps"&gt;PSM &lt;/span&gt;(platform-specific model).&lt;/p&gt;

	&lt;p&gt;What are modeling tools for? Sure, we could set our sights lower than &lt;span class="caps"&gt;MDA&lt;/span&gt;&amp;#8216;s answer: logical representations of both requirements and specifications, and a generative mechanism for platform-specific versions. My desire for modeling tools is to speed the process of figuring out how to do very complex models. But many tools are pictures only to make people feel better about the fact that someone has thought about something. I used to be driven toward the idea of reversibility way back in the 90s when I was using Togethersoft, but I am not so much into that anymore. I think &lt;span class="caps"&gt;MDA&lt;/span&gt; is too ambitious and is bound to produce very robotic solutions. Guess what I am saying is I am interested in all the pieces, but more interested in using the images to flush out ideas and then a generative layer to get much of the boilerplate done (a la Roo and Forge). And then, the ability to support some basic metaprogramming notions.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://t2.gstatic.com/images?q=tbn:ANd9GcRMp7GicZ4TJo-mLh-9PuWHd1DfrjocqAaeOUDu47Dfhh7eXGONXg" class="rightWrap"/&gt;I can't see myself running an emulator to get to use Sparx' tool. Which made me go back and take a look at where the Eclipse Modeling Tools are at. The answer is everywhere. That could be a good answer, but if you just go to the page and start reading, its a treatise in what everyone complains about on the Java side: a sloppy dog's dinner of every possible idea cooked to some uncertain degree of doneness. Seriously, this is the page &lt;a href="http://www.eclipse.org/modeling/" title=""&gt;here&lt;/a&gt; .&lt;/p&gt;

	&lt;p&gt;I have written plugins before (for eclipse), and used &lt;span class="caps"&gt;EMF&lt;/span&gt; before (with &lt;span class="caps"&gt;JET&lt;/span&gt;). I have Ed Merks&amp;#8216; books and generally like &lt;span class="caps"&gt;EMF&lt;/span&gt; a lot, but there was never much tooling with it in the beginning, and now, if this heap has some in it, I fear that ferreting it out will take the better part of a year.&lt;/p&gt;

	&lt;p&gt;I have been learning After Effects lately because I had an ah ha moment recently where I realized that we jump too quickly into requirements even (we all knew that about specs), and immediately run to get busy before we have probably cemented their predecessor. What is that? The vision? Well, vision docs are a good idea, but I think there is something else that is missing: a conceptual understanding. It&amp;#8216;s not just the abstract types you intend to use, or the couple ways someone&amp;#8216;s going to use your app. It&amp;#8216;s how your app plugs into the world and how it will appear to someone who will attempt to use it. While I was thinking about this stuff a friend of mine gave me a book of Occam&amp;#8216;s philosophy. A guy who has been reduced to a philo sound bite. Turns out he was a conceptual philosopher. I have said this 20x before, but programming could benefit immensely from a greater embrace of philosophy. This is not just answering the question &amp;#8216;what should this do?&amp;#8216; It&amp;#8216;s answering questions like &amp;#8216;how will someone figure this out?&amp;#8216; or &amp;#8216;how can we entice people into this part of the problem while making their labors feed this other side of the model?&amp;#8216; For example, consider Amazon. That company owes 90% of its success to its reviews. If you went to people in 1995 and told them &amp;#8216;the kind of retail online will be the one who makes it possible for me and everyone else to write sometimes 10 paragraphs on what we did and didn&amp;#8216;t like about the product,&amp;#8216; 90% of the responses would have been akin to Ballmer gleefully (and stupidly) exclaiming &amp;#8216;nobody is going to pay $500 for a phone!&amp;#8216; Is this systems thinking? (yes) heuristics? (yes) and also evolutionary/emergent/complexity-oriented? (yes). A mere smattering of these influences, if you allow them into your mind, make our &amp;#8216;tools&amp;#8216; look like tinker toys.&lt;/p&gt;

	&lt;p&gt;Finally, the other thing I am obsessed with deserves the final spot in this chain of thoughts: &lt;a href="http://www.jroller.com/robwilliams/entry/few_thoughts_on_tech_s" title=""&gt;reactionaries who think they are revolutionaries&lt;/a&gt; . Some amount of reaction is required of course, but think about the degree to which most tooling has been born of frustrations with the stupidity of the current state of affairs. I remember when Sun first introduced &lt;span class="caps"&gt;EJB&lt;/span&gt;, with all of its stupid requirements for &lt;span class="caps"&gt;XML&lt;/span&gt; files, etc., and the toolers got all excited that no one would want to produce that junk by hand, so they could add generation of it to their tools and that would justify a G per seat for their suites. Remind me, Fellas, how did that moonshot go? Oh yeah, it crashed and burned and birthed the biggest reactionary revolutionary of the Java world: Rod Johnson. When I watch the Forge demos or look at Spring Roo, I have to laugh (especially when the Mentos music plays on the Forge ones). Guys, go make a new project in Xcode. It takes about a minute and a half. Yeah, that&amp;#8216;s right, you don&amp;#8216;t have to pick amongst 20 versions of Hibernate (only to find out that 4 is incompatible with Seam 2 3 days later), and you only have one test runner, but you can customize things. I added OCHamcrest to my projects, and OCMock now. While I&amp;#8216;m at it, coming off of days of sifting through the crash site engendered by the innocent need to move Jenkins and Nexus, seriously, the situation with the management of dependencies in Java has gotten to the stage where it&amp;#8216;s like that fire that started in the coal slough pile in Kentucky that&amp;#8216;s been burning for 10 years, or the state budget of California, which no one really has been able to even feign command of for 3 decades.&lt;/p&gt;

	&lt;p&gt;If there&amp;#8216;s one commandment that has stood the test of time in the software engineering world, it&amp;#8216;s the one laid down by the brilliant Ivar Jacobson: use cases must be the central focus. We have convinced ourselves that we have to have all these things because we were suffering with what we had. A hot dog is a feast to a starving man. Having failed to really deliver on the promise of serious end-to-end modeling, we have comforted ourselves with these rapid fab demonstrations of cutting through the sheets of ice. When it obviously makes more sense to not get yourself stuck in the first place.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/h93VeR9mvwo" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robwilliams/entry/modeling_with_tools_without</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robwilliams/entry/moving_from_one_mini_to</guid>
    <title>A Mini/Lion Server Migration Story</title>
    <dc:creator>Rob Williams</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/rkCjOPIrSmQ/moving_from_one_mini_to</link>
        <pubDate>Wed, 1 Feb 2012 16:31:44 -0500</pubDate>
    <category>Technology</category>
            <description>&lt;p&gt;A lot has been written about Lion Server. First there were a lot of people who came running into the room screaming about how the interface to it had been dumbed down to the point of useless cartoon. Then there were a bunch of reviews saying the idea of the server has been simplified, finally, after all these years. The truth, as usual, lies somewhere in between. Let me make a quick point here though: in a world that should clearly regard complexity as one of the chief things to try to learn and understand, and develop techniques for intelligently reducing, further, where everywhere our worst problems scream out that complexity has beaten back would be simpletonian conquerors, you would think that people would at least show some interest in this. But, sadly, the world is still happy to try to use &lt;img src="http://t2.gstatic.com/images?q=tbn:ANd9GcRmEGkI2sT_oNGHbGuTjhHMvvLreO601Sn2PYaHJuLfVCLVXY6m" class="rightWrap"/&gt;complexity as a cloak. The experts do everywhere (doctors, chefs, programmers, admins, filmmakers) and when someone comes along and tries to reduce it, they are often met with a thankless lot of being harangued by said experts. Why? Because their simplification didn&amp;#8216;t account for every stupid thing the expert needed (Lion Server, Final Cut). The key is that there has to be a sufficient desire on the other side to make the simplifying party continue on. Not sure whether Apple will (they gave up on iWeb, which was a pretty astounding tool for making websites that could be made an absolutely amazing one with a little &lt;span class="caps"&gt;TLC&lt;/span&gt; and someone who could do some abstracting). I hope they do.&lt;/p&gt;

	&lt;p&gt;When everything was said and done, the frustrations afforded my cruise from mini 1 to mini 2 that went on the Apple scorecard as debits were minute compared to the ones from my trusted open source java tools. I have whine mercilessly in the past about how &lt;strong&gt;Jenkins/Hudson&lt;/strong&gt; stupidly piles up tons of ancient, useless builds and they are about as easy to get rid of as lice in a population of soldiers stooped in wet foxholes. That came back again. I love Jenkins, but what a stupid way to behave. My first law of computing is &amp;#8216;thou shalt not make a mess,&amp;#8216; and Jenkins fails miserably in that regard.&lt;/p&gt;

	&lt;p&gt;Moving the jobs themselves was pretty easy. The main complication came from the fact that at some point I generated ssh keys for the _appserver user (a hidden user on &lt;span class="caps"&gt;OS X&lt;/span&gt;) and figured out that they had to go into /var/empty, but I could not find where I learned that from (should have blogged about it). This time I will go ask a question on StackOverflow. For this venture, I just moved those keys over to the new server and the build worked (the keys were already installed in the GitHub owner&amp;#8216;s account).&lt;/p&gt;

	&lt;p&gt;Moving Nexus was no picnic, but a great thing came out of it. When I first moved to Maven way back in 2006, I setup a corporate repo that was served through WebDAV and used certs that each dev had to install into their cacerts file. Sounds simple, but the amount of stupid timesuckery that caused over the years made a huge ant file that pushed binaries around almost look tasty. But Ant (model-less) was so dumb I never put the car in reverse. I used Archiva, but that was a &lt;span class="caps"&gt;PITA&lt;/span&gt;, and really was just a good way to have a ui to stick artifacts into repos (since many of them didn&amp;#8216;t have maven repos). When I found Nexus, thanks to &lt;a href="http://jroller.com/mert" title=""&gt;Mert&lt;/a&gt; , I was hoping I could have it give me all 3 things: public repos proxied, my own collection of 3rd party crap that didn&amp;#8216;t need to be protected, and my private repo. Took the first 2 and ran at first. Finally went back for the 3rd while moving it this time and got that to work. Ah&amp;#8230; ! Thanks Nexus!&lt;/p&gt;

	&lt;p&gt;Meantime, my couple little nits on moving Nexus:&lt;/p&gt;


&lt;ul&gt;
	&lt;li&gt;the config files are cleanly cordoned off in a dir and are even readable &lt;span class="caps"&gt;XML&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;the &lt;span class="caps"&gt;LDAP&lt;/span&gt; configuration page is pretty clear and easy (did a &lt;a href="http://stackoverflow.com/questions/5657298/configuring-nexus-ldap-on-mac-os-x)" title=""&gt;StackOverflow Q and A About Configuring LDAP&lt;/a&gt;, but getting settings.xml setup for access to private repos is not clear and configuring groups not clear either&lt;/li&gt;
	&lt;li&gt;moving repositories was pretty easy, but how hard would it be for this thing to have a way to make a repo dump and then restore it into another repo?? I didn&amp;#8216;t want to take all settings because for instance the &lt;span class="caps"&gt;LDAP&lt;/span&gt; server is obviously different..&lt;/li&gt;

&lt;/ul&gt;
	&lt;p&gt;Anyway, stupid amount of time, but ultimately got there with improvements. My suggestion on the Nexus docs is they are way above average, but, they should think about making some wizards in the app. The problem with apps like this that are completely wizard free is that you end up looking like Microsoft&amp;#8216;s interface for Exchange Server (the way it was when they first launched): a huge maze of tabs with interdependencies that you don&amp;#8216;t know about.&lt;/p&gt;

	&lt;p&gt;The last thing in moving to the new i7 mini with an &lt;span class="caps"&gt;SSD&lt;/span&gt; and 8 GBs of &lt;span class="caps"&gt;RAM&lt;/span&gt; is to separate out the builds into one build that runs only fast tests that have mocks for anything outside and then have the tests that verify that outside dependencies are still the same run occasionally from another job.&lt;/p&gt;

	&lt;p&gt;Nits on Apple&amp;#8216;s side are that the migration tool failed 2 or 3 times then we just moved things manually but that mostly worked and was not terribly difficult. We ended up making new user accounts. The wikis migrated which was cool. I thought the Lion Server Wiki was supposedly more powerful, not seeing that so far. Anyway, on the whole a remarkable package. Linux has been going 20 years. I hope Apple will just drive a spike through the idea that you need an admin to setup and then nurse a simple server. It&amp;#8216;s time&amp;#8230;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/rkCjOPIrSmQ" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robwilliams/entry/moving_from_one_mini_to</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/jppf/entry/master_worker_or_p2p_grid</guid>
    <title>Master/worker or P2P Grid? How about You choose?</title>
    <dc:creator>Laurent Cohen</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/k33Uh1VZq9M/master_worker_or_p2p_grid</link>
        <pubDate>Wed, 1 Feb 2012 13:26:04 -0500</pubDate>
    <category>Java</category>
            <description>&lt;h2&gt;What is possible?&lt;/h2&gt;

&lt;h3&gt;Simple master/worker topology&lt;/h3&gt;
&lt;p&gt;In its initial design, JPPF is a distributed parallel processing framework based on a master/worker architecture. A JPPF grid is made of 3 sorts of components that communicate with each other: clients which submit the work to the grid, nodes which execute the work, and servers which receive the work from clients and distribute it to the nodes in parallel. This gives us a grid topology like this:

&lt;p&gt;&lt;img src="http://www.jppf.org/images/wiki/MasterWorker.gif" border="0" alternate="master/worker topology"/&gt;

&lt;p&gt;An important point to note is that each node can only be attached to a single server at any given time. It doesn't have to always be the same server. For instance, if the connection to the server is broken, some failover mechanisms, whether built-in or user-defined, will allow the node to connect to another server.

&lt;h3&gt;Let's get more complex&lt;/h3&gt;
&lt;p&gt;A further addition to this design enables servers to communicate with each other, allowing a server to offload some of its work to other servers. The current implementation allows users to configure a server so that it can be seen as a node by other servers, and these other servers will be seen as clients. If you define that relationship both ways, you have the possiblity to define much more complex topologies for your JPPF grid:

&lt;p&gt;&lt;img src="http://www.jppf.org/images/wiki/ComplexTopology.gif" border="0" alternate="complex topology"/&gt;

&lt;p&gt;Here we see that servers can be connected to each other in a P2P topology, but also in one-way fashion, which opens up a bunch of possibilities.

&lt;h3&gt;Local nodes&lt;/h3&gt;
&lt;p&gt;Another possibility in JPPF is the ability to have a node local to the server's JVM. This local node is exactly the same as a remote node, except that it is always connected to the same server, and the communication with the server is done directly in memory instead of via a network connection. This allows for a much faster communication between the local node and the server, however this communication boost is only available to the local node. In a simple topology, it would look like this:

&lt;p&gt;&lt;img src="http://www.jppf.org/images/LocalNode.gif" border="0" alternate="local node"/&gt;

&lt;p&gt;Note that both a local node and remote nodes can be attached to the same server.

&lt;h3&gt;Pure P2P&lt;/h3&gt;
&lt;p&gt;Now, if we only attach a local node to each server, and configure all servers to communicate with each other in full duplex, we achieve a pure P2P topology for the grid:

&lt;p&gt;&lt;img src="http://www.jppf.org/images/JPPF-P2P.gif" border="0" alternate="local node"/&gt;

&lt;h2&gt;How is it done?&lt;/h2&gt;

&lt;p&gt;All the topologies we have seen above are achieved by configuring the JPPF servers accordingly. We will see here how to configure a pure P2P grid. In the simplest case, where all components are on the same network, and when there are no restrictions on UDP multicasting, all you have to do is the following:

&lt;ul&gt;
&lt;li&gt;enable each server to broadcast its connection information: this is enabled by default&lt;/li&gt;
&lt;li&gt;enable each server to receive broadcasts from other servers (disabled by default)&lt;/li&gt;
&lt;li&gt;activate a local node in each server (disabled by default)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Concretely, this translates into setting the following properties in the server's configuration file:
&lt;p&gt;&lt;pre style="background-color: #C0C0C0"&gt;&lt;font color="green"&gt;# enable the broadcast of connection information&lt;/font&gt;
jppf.discovery.enabled = true

&lt;font color="green"&gt;# enable auto-discovery for peer-to-peer communication between servers&lt;/font&gt;
jppf.peer.discovery.enabled = true

&lt;font color="green"&gt;# activate the local node&lt;/font&gt;
jppf.local.node.enabled = true&lt;/pre&gt;

&lt;p&gt;In more complex network environments, you may not be able to rely on UDP multicast for broadcasting. This would happen if some of the servers are on different networks, or if the servers are running within a cloud environment such as Amazon's EC2. In this case you might have to perform a manual configuration of the peer servers to connect to. We won't detail it here, however it is fully documented in our &lt;a href="http://www.jppf.org/doc/v3/index.php?title=Configuring_a_JPPF_server#Connecting_to_other_servers"&gt;server configuration guide&lt;/a&gt;.

&lt;h2&gt;Conclusion&lt;/h2&gt;

We have seen that a JPPF grid is not limited to a master/worker architecture. A lot of flexibility is offered by the framework, which results in complete freedom for the users to chose the topology that works best for them, be it simple, complex, P2P-based, or anything in between. Even better, this can be achieved with simple configuration changes.&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/k33Uh1VZq9M" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/jppf/entry/master_worker_or_p2p_grid</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/santhosh/entry/jlibs_updates_to_daopattern</guid>
    <title>JLibs: Updates to DAOPattern</title>
    <dc:creator>Santhosh Kumar T</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/B6y1oYPbeJI/jlibs_updates_to_daopattern</link>
        <pubDate>Tue, 31 Jan 2012 06:34:36 -0500</pubDate>
    <category>Java</category>
    <category>jlibs</category>
            <description>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type"&gt;
  &lt;title&gt;JLibs: Updates to DAOPattern&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://code.google.com/p/jlibs/wiki/DAOPattern"&gt;DAOPattern&lt;/a&gt; now supports:&lt;br&gt;
- quoting identifiers (table/column names)&lt;br&gt;
- support for database specific sql types&lt;br&gt;
- validating database schema with pojo definitions at compile time&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/B6y1oYPbeJI" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/santhosh/entry/jlibs_updates_to_daopattern</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robertburrelldonkin/entry/gentoo_mount_iphone_with_fuse</guid>
    <title>Gentoo: Mount iPhone with FUSE</title>
    <dc:creator>robert burrell donkin</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/9KIZKFpfP74/gentoo_mount_iphone_with_fuse</link>
        <pubDate>Tue, 31 Jan 2012 05:25:58 -0500</pubDate>
    <category>Linux</category>
            <description>&lt;p&gt;
Thanks to great work by the communities over at &lt;a href='http://fuse.sourceforge.net/'&gt;FUSE&lt;/a&gt; and &lt;a href='http://www.libimobiledevice.org/'&gt;libimobiledevice&lt;/a&gt;, mounting your &lt;a href='http://dbpedia.org/page/IPhone' rel='tag'&gt;iPhone&lt;/a&gt; on &lt;a href='http://www.gentoo.org' rel='tag'&gt;Gentoo&lt;/a&gt; is smooth &amp;mdash; provided your avoid a &lt;strong&gt;Doh!&lt;/strong&gt; or two. Here's the recipe I use. 
&lt;/p&gt;
&lt;h4&gt;Gentoo Prep&lt;/h4&gt;
&lt;p&gt;
The Gentoo box needs:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;app-pda/ifuse&lt;/code&gt; merged (as root &lt;code&gt;# emerge app-pda/ifuse&lt;/code&gt;) and &lt;/li&gt;
&lt;li&gt;kernel support for &lt;code&gt;FUSE&lt;/code&gt; (those rolling their own may need to &lt;a hef='http://www.gentoo.org/doc/en/kernel-upgrade.xml'&gt;recompile&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Create a suitable mount point, &lt;code&gt;# mkdir /media/iPhone&lt;/code&gt; say (if one isn't already available).
&lt;/p&gt;
&lt;p&gt;Once the Gentoo box is ready to play, it's time to connect the phone.&lt;/p&gt;
&lt;h4&gt;Connecting iPhone&lt;/h4&gt;
&lt;p&gt;
Connect your iPhone to the Gentoo box using &lt;a href='http://dbpedia.org/resource/USB' rel='tag'&gt;USB&lt;/a&gt;. My iPhone bleeps when plugged in. This is a little fiddly: if you don't hear a bleep, check that the connections are seated correctly. 
&lt;/p&gt;&lt;p&gt;
Check that the iPhone is available to Gentoo &amp;mdash; you should find &lt;em&gt;Apple, Inc. iPhone 4&lt;/em&gt; (or something similar) contained in the &lt;code&gt;# lsusb&lt;/code&gt; list.  
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;With your &lt;strong&gt;iPhone&lt;/strong&gt;, unlock the device by entering your passcode.&lt;/li&gt;
&lt;li&gt;At your &lt;strong&gt;computer&lt;/strong&gt; as root
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;# ifuse /media/iPhone&lt;/code&gt; (or your favoured mount point)&lt;/li&gt;
&lt;li&gt;(if everything goes well, silence)&lt;/li&gt;
&lt;li&gt;now &lt;code&gt;# ls -la /media/iPhone/&lt;code&gt; should list directories on your iPhone, something like:
&lt;pre&gt;&lt;code&gt;
total 4
drwxr-xr-x 14 root root  578 Dec 19  2010 .
drwxr-xr-x  4 root root 4096 Dec 20 09:07 ..
drwxr-xr-x  2 root root   68 Dec 19  2010 ApplicationArchives
drwxr-xr-x  4 root root  340 Dec 19  2010 Books
drwxr-xr-x  5 root root  170 Feb 17  2011 DCIM
drwxr-xr-x  2 root root  170 Jun 15  2011 Downloads
drwxr-xr-x  7 root root  340 Dec 20 11:11 PhotoData
drwxr-xr-x  2 root root   68 Nov  6  2010 Photos
drwxr-xr-x  2 root root   68 Jul 22  2010 Podcasts
drwxr-xr-x  2 root root   68 Dec 19  2010 PublicStaging
drwxr-xr-x  2 root root   68 Jul 22  2010 Purchases
drwxr-xr-x  2 root root  918 Sep 18 08:34 Recordings
drwxr-xr-x  2 root root   68 Dec 20  2010 Safari
-rw-r--r--  1 root root    0 Jul 22  2010 com.apple.dbaccess.lock
-rw-r--r--  1 root root    0 Jul 22  2010 com.apple.itdbprep.postprocess.lock
-rw-r--r--  1 root root    0 Jul 22  2010 com.apple.itunes.lock_sync
drwxr-xr-x  6 root root  204 Aug 20  2010 iTunes_Control
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;And that's it &amp;mdash; your iPhone will then be mounted on the Gentoo box.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/9KIZKFpfP74" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robertburrelldonkin/entry/gentoo_mount_iphone_with_fuse</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/santhosh/entry/jlibs_generating_sample_xml_from</guid>
    <title>JLibs: Generating Sample XML from given XMLSchema File</title>
    <dc:creator>Santhosh Kumar T</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/nmBKP1WI2nk/jlibs_generating_sample_xml_from</link>
        <pubDate>Mon, 30 Jan 2012 11:36:43 -0500</pubDate>
    <category>Java</category>
    <category>jlibs</category>
            <description>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type"&gt;
  &lt;title&gt;JLibs: Generating Sample XML from given XMLSchema File&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://code.google.com/p/jlibs/wiki/XSInstance"&gt;Generating Sample XML from given XMLSchema File&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/nmBKP1WI2nk" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/santhosh/entry/jlibs_generating_sample_xml_from</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/sebastianKuebeck/entry/michael_feathers_code_blindness</guid>
    <title>Michael Feathers: Code Blindness</title>
    <dc:creator>Sebastian Kübeck</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/4IO3FIb_Hv0/michael_feathers_code_blindness</link>
        <pubDate>Sun, 29 Jan 2012 11:00:04 -0500</pubDate>
    <category>Developer</category>
            <description>&lt;p&gt;Michael Feathers keynote 'Code Blindness' from Rocky Mountain Ruby 2011:
&lt;a href="http://confreaks.com/videos/717-rockymtnruby2011-opening-keynote-code-blindness"&gt;&lt;img src="
http://www.jroller.com/sebastianKuebeck/resource/MichaelFeathersCodeBlindness.jpg" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
His own comment on this talk on twitter:
&lt;blockquote&gt;
  I'm often v. critical of my talks, but I really like this one.
&lt;/blockquote&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/4IO3FIb_Hv0" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/sebastianKuebeck/entry/michael_feathers_code_blindness</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/melix/entry/static_compilation_for_groovy_poll</guid>
    <title>Static compilation for Groovy poll results</title>
    <dc:creator>Cédric Champeau</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/17zaWH2zp58/static_compilation_for_groovy_poll</link>
        <pubDate>Sun, 29 Jan 2012 09:10:59 -0500</pubDate>
    <category>Java</category>
    <category>compilation</category>
    <category>groovy</category>
    <category>programming</category>
    <category>static</category>
            <description>&lt;h1&gt;Static compilation or no static compilation?&lt;/h1&gt;
&lt;p&gt;In my &lt;a href="http://www.jroller.com/melix/entry/static_type_checking_talk_from" target="_blank"&gt;previous blog post&lt;/a&gt;, I published a link to the slides from my talk at the Paris Groovy and Grails User Group, where I presented the state of static type checking and compilation for Groovy 2.0. This talk was a unique occasion to retrieve feeback from the user community before we make any final decision about what should (or should not) be included in Groovy 2.0. Especially, we discussed about static compilation (there's a consensus about static type checking, so I won't talk about that here).&lt;/p&gt;
&lt;p&gt;I decided to add two polls to my presentation and especially, I wanted the poll about &lt;b&gt;why&lt;/b&gt; people wanted static compilation to be answered &lt;b&gt;before&lt;/b&gt; I talked about the feature. This was important to me because I didn't want the result to be biased by my talk. After two weeks, 42 persons have answered the polls. Nor me, nor Guillaume Laforge nor Jochen Theodorou answered the poll, once again not to bias the results. Here are the results for question 1:&lt;/p&gt;
&lt;center&gt;&lt;img src="http://jroller.com/melix/resource/polls/why-static-compilation.png"&gt;&lt;/center&gt;
&lt;p&gt;Again, the question was introduced before I talked about the feature and it's a multiple choices question (you may choose several answers). What is interesting is that only 3 persons said they didn't want static compilation, although on the development mailing list, people against static compilation were very vocal. If only 3 people do not need static compilation, this would mean that the others have a good opinion about why they need it, so the following figures are interesting too:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;performance&lt;/b&gt; and &lt;b&gt;type safety&lt;/b&gt; are both at the same level and the highest number of answers (17). While performance was really to be expected, I didn't expect &lt;i&gt;type safety&lt;/i&gt; so high, because basically, if you need type safety, the &lt;i&gt;@TypeChecked&lt;/i&gt; annotation is enough (you don't need static compilation). However, this is only true if you don't consider the monkey patching issues, where the behaviour of Groovy can be changed at runtime, leading to runtime type errors while the program was statically checked.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;I want a better Java&lt;/b&gt; comes next, with 12 answers&lt;/b&gt;. I expected this one, because when we talked about the static compilation feature on the mailing list, we had an interesting discussion about why people use Groovy, and I was thinking a lot of people already used Groovy as a better Java, although the language wasn't designed as a replacement but more as a companion to Java.&lt;/li&gt;
&lt;li&gt;the next reason coming is that &lt;i&gt;people do not need the dynamic features&lt;/i&gt; of Groovy. This is interesting too, because it has to be linked to two different things. First, type safety, because as we already said, you can type check the program to ensure type safety (not needing static compilation) only if you can guarantee that nothing beyond the scope of the compiler (already compiled classes, third party libraries or frameworks) do no modify the behaviour of a program at runtime. Statically compiling the program disables dynamic features, so using static compilation you can &lt;i&gt;ensure&lt;/i&gt; type safety. The second point is that if you do not need dynamic features, then you are probably using Groovy as a better Java.&lt;/li&gt;
&lt;li&gt;the last option was to comment to tell about why you need static compilation. 4 people chose that option, but didn't comment, so unfortunately I won't be able to tell much about that :-). But it's already interesting to notice that this score is still higher (but not far) than people who don't need static compilation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In my talk, after this poll, I started explaining the semantic differences that may appear when you statically compile a program, as compared to dynamic behaviour. I did that because I expected my explanation to make some people change their mind about static compilation. Especially, the most visible difference comes from method dispatch (runtime based in dynamic Groovy or ahead of time in static Groovy). I wanted to tell people that this difference is probably the one which will ultimately make the decision about integrating static compilation in Groovy Core or not. I explained 3 options, which were Java-like method dispatch, dynamic groovy like method dispatch and inference based method dispatch. In the end, I asked people to tell which of the options they preferred:&lt;/p&gt;
&lt;center&gt;&lt;img src="http://jroller.com/melix/resource/polls/method-dispatch.png"&gt;&lt;/center&gt;
&lt;p&gt;To summarize once more the pros and cons of each method, I would say that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Java-like method dispatch has the advantage of well known semantics (though many people are uncapable of telling what precise corner cases would do in Java), but adds a lot of verbosity and disables &lt;i&gt;de facto&lt;/i&gt; some of the features we already implemented in the type checker (like flow typing).&lt;/li&gt;
&lt;li&gt;Dynamic Groovy like behaviour has the major advantage of keeping the same semantics as dynamic Groovy, but has also major problems. First, performance, because runtime time dispatch is much slower than compile time dispatch. Second, statically checking a dynamic program is always error prone: the compiler may think that method 1 would be called, though at runtime, method 2 would be (because Groovy chooses the best method at runtime according to the actual type arguments), so you would have a difference between what the compiler thinks and what is really done. This means that type safety cannot be ensured anymore...&lt;/li&gt;
&lt;li&gt;Inference based dispatch, which is the current implementation, which has the advantage of being close to dynamic groovy while preserving a high level of performance. The major problem with that solution being that we introduce a third semantics which is nor the one from Java, nor the one from dynamic Groovy. The question, in the end, is always: "is it a problem?"&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Looking at the poll results, there are already two very interesting things to notice: first, very few people answered that question (14 persons, barely 4% of all viewers of the presentation). My interpretation is that the question is complex, and that not many people actually understand the problem (which also makes me think some talks about the subject are important ;-)). But this also confirms to me that even in Java, very few people are actually capable of interpreting how method dispatch works. Basically, I think the reasoning is much simpler. If a program doesn't do what you expect, then you debug it and solve the problem, be it a dispatch problem or not. The second interesting figure, which I did not expect at all, is that nobody chose the Java option. Once more, I interpret this as people are not afraid of having different semantics as long as debugging is possible.&lt;/p&gt;
&lt;p&gt;Ultimately, let's compare the results of the two chosen options. Dynamic based dispatch has 6 answers, while inference based dispatch has 8. Being aware that most of the people who viewed the presentation weren't at my talk and didn't get the explanations about why I preferred inference based dispatch, I think the results are very interesting. If you consider that most people want static compilation for &lt;b&gt;performance&lt;/b&gt; and &lt;b&gt;type safety&lt;/b&gt; which, as I explained, cannot be ensured with dynamic based dispatch, the figures suddenly highlight a strong contradiction. Many people are interested in performance and type safety but still want to keep the dynamic behaviour. My traditional answer for that kind of people is that they should choose &lt;i&gt;invoke dynamic&lt;/i&gt; support which will appear in Groovy 2.0 too, as it will guarantee the runtime semantics of a dynamic groovy program while improving performance (though, be warned, type safety cannot be ensured). Of course, static compilation is primarily aimed at people who cannot use invoke dynamic. For that, it seems that the results are in the good direction, because as long as you are aware that you choose a different semantics, then you are not lost. Hopefully, as I said, static compilation is totally optional, so if you choose to use static compilation, you are warned that you will have a slightly different runtime semantics. People who make intensive use of unit tests will probably be very happy with that :-)&lt;/p&gt;
&lt;p&gt;Last but not least, the polls are still open. Feel free to answer and comment, as feedback is really important. The most important thing, in the end, is the user community.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Update: below you'll find the updated figures, as of February 9th, 2012:&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;img src="http://www.jroller.com/melix/resource/polls/method-dispatch-20120209.png"&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;img src="http://www.jroller.com/melix/resource/polls/static-compilation-20120209.png"&gt;&lt;/center&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/17zaWH2zp58" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/melix/entry/static_compilation_for_groovy_poll</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/evans/entry/monster_turbine_high_performance_in1</guid>
    <title>Monster Turbine High-Performance In-Ear Speakers</title>
    <dc:creator>evans</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/5653pnH8YAs/monster_turbine_high_performance_in1</link>
        <pubDate>Sat, 28 Jan 2012 08:41:46 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;First impression: I can't believe this packaging! The box sure is fancy. Much more importantly, I got not one, but two very nice carrying cases for these earphones: one has a magnetic clasp, the other has a spring-loaded clasp. Not much cost-cutting here.&lt;/p&gt;


&lt;p&gt;I also got four sets of rubber-like ear tips that go in your ears, various sizes. Also included with Monster Turbine High-Performance In-Ear Speakers are two more that are longer and conically-shaped, with graduated steps. Once I found the set that fit, I was all set: isolation is very good and these things tend to stay in your ears, even when you're moderately active (running should not be a problem at all).&lt;/p&gt;


&lt;p&gt;Second impression: The earphones themselves are heavy in your hand and feel more like jewellery than the average, plastic earphones. A good portion of each unit appears to be metallic. They're also larger than many earphones of similar design. The red and blue rings around each unit to identify right and left "speakers" is a welcome touch (I'm no spring chicken and trying to read the word "right" at the gym takes too long). Despite their weight, they don't seem heavy or uncomfortable in my ears. I've had them on for almost five hours with no problem at all.&lt;/p&gt;


&lt;p&gt;Most importantly: the sound is surprisingly good for a $99 set of earphones (don't pay $149, though they would be a fair value at that price). The transducers themselves are fast and transient response is remarkably good. Frequency response across the spectrum also seems very good, with an overall "warm" sound. Bass response is good: the bass is there, and is not overemphasized. &lt;/p&gt;


&lt;p&gt;These Monster Turbine High-Performance In-Ear Speakers units are more accurate than their price reflects: classical music sounds surprisingly accurate and "airy", jazz sounds spectacular, club dance music is engaging and enveloping and you can really hear the bass. Turning up the volume seems to improve the sound. I believe some "burn-in" may improve the overall sound, not that improvement is needed.&lt;/p&gt;


&lt;p&gt;&lt;img src='http://www.amazon.com/?ie=UTF8&amp;tag=7536-20' style='display:none;'/&gt;&lt;br/&gt;
&lt;img src="http://www.amazon.co.uk/exec/obidos/redirect-home?tag=8991-21" style="display:none;"/&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/5653pnH8YAs" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/evans/entry/monster_turbine_high_performance_in1</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/HazemBlog/entry/crimc1017e_failed_to_locate_0</guid>
    <title>CRIMC1017E Failed to locate '{0}' resolution</title>
    <dc:creator>Hazem Ahmed Saleh</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/oOSB_LyVMzc/crimc1017e_failed_to_locate_0</link>
        <pubDate>Thu, 26 Jan 2012 20:36:35 -0500</pubDate>
    <category>Java</category>
    <category>7.5</category>
    <category>bpm</category>
    <category>crimc1017e</category>
    <category>designer</category>
    <category>ibm</category>
    <category>integration</category>
    <category>websphere</category>
    <category>wid</category>
            <description>&lt;p&gt;I wrote this post in my new wordpress blog here:&lt;br/&gt;
&lt;a href="http://www.technicaladvices.com/2012/01/27/crimc1017e-failed-to-locate-0-resolution/"&gt;http://www.technicaladvices.com/2012/01/27/crimc1017e-failed-to-locate-0-resolution/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/oOSB_LyVMzc" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/HazemBlog/entry/crimc1017e_failed_to_locate_0</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/ejboy/entry/using_h2_connection_pool_in</guid>
    <title>Using H2 connection pool in Spring</title>
    <dc:creator>Fyodor Kupolov</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/Nd4E8fPEH_4/using_h2_connection_pool_in</link>
        <pubDate>Thu, 26 Jan 2012 10:08:44 -0500</pubDate>
    <category>Java</category>
    <category>spring</category>
            <description>&lt;p&gt;H2 is bundled with a built-in connection pool implementation. The following XML provides an example of using it as a Datasource bean without a need to introduce additional dependencies on DBCP or C3P0:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean id=&amp;quot;dataSource&amp;quot; class=&amp;quot;org.h2.jdbcx.JdbcConnectionPool&amp;quot; destroy-method=&amp;quot;dispose&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;constructor-arg&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bean class=&amp;quot;org.h2.jdbcx.JdbcDataSource&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name=&amp;quot;URL&amp;quot; value=&amp;quot;jdbc:h2:dbname&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name=&amp;quot;user&amp;quot; value=&amp;quot;user&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name=&amp;quot;password&amp;quot; value=&amp;quot;password&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/constructor-arg&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bean&amp;gt; &lt;/pre&gt;&lt;p&gt;The database will be shut down by calling a dispose method when Spring application context closes.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/Nd4E8fPEH_4" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/ejboy/entry/using_h2_connection_pool_in</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robwilliams/entry/mothballing_my_av_receiver</guid>
    <title>Mothballing My AV Receiver</title>
    <dc:creator>Rob Williams</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/HhS-Fdwf5dE/mothballing_my_av_receiver</link>
        <pubDate>Wed, 25 Jan 2012 02:55:31 -0500</pubDate>
    <category>Technology</category>
            <description>&lt;p&gt;I put a Sonos system in our office 3 years ago. I&amp;#8216;ve had some gripes, but overall it has been really good. It&amp;#8216;s still better than iTunes, and mostly for stupid reasons, like Apple not adding a queue and the fact that doing multiple rooms with Apple is still a huge &lt;span class="caps"&gt;PITA&lt;/span&gt;.&lt;/p&gt;

	&lt;p&gt;I wanted to put Sonos in my house too, but whenever I read about putting in their unit that piggybacks on the receiver, the air just went out of the balloon.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://ecx.images-amazon.com/images/I/31YHEgzE-rL._SL500_AA300_.jpg" class="leftWrap"/&gt;Then a kind of crazy thing happened. My setup started taking a really long time to startup. I thought it was the Uverse &lt;span class="caps"&gt;DVR&lt;/span&gt;. But then, one day I was reading about &lt;span class="caps"&gt;AVR&lt;/span&gt; receivers and found out that in fact my Onkyo Receiver was the reason. I found a bunch of threads that contained a simple explanation: Onkyo cheaped out on the &lt;span class="caps"&gt;HDMI&lt;/span&gt; components it put in. It&amp;#8216;s kind of weird to wait around for 5 minutes a lot of the time, for something to turn on. After a while, you pretty much just want to throw the thing out the window.&lt;/p&gt;

	&lt;p&gt;So I decided I have to get a new receiver, and I might as well put the Sonos in at the same time. Then, as I was reading around, I did a search to see if anyone had assayed the idea of doing a Sonos-only system. Found &lt;a href="http://news.cnet.com/8301-19882_3-20086687-250/sonos-the-a-v-receiver-is-dead/?part=rss&amp;#38;subj=news&amp;#38;tag=2547-1_3-0-20" title=""&gt;an article&lt;/a&gt; where the &lt;span class="caps"&gt;CEO&lt;/span&gt; of Sonos was interviewed and addressed the question. He said that they didn&amp;#8216;t think component manufacturers were long for this world. Yet, the Sonos Amp doesn&amp;#8216;t have an optical port on it (which is totally insane). But I decided to go ahead anyway, figuring if it sucked, I&amp;#8216;d have the Sonos stuff and I could just pick up a receiver. I was mostly concerned with whether or not the audio on TV/movies would be any good. I got a &lt;span class="caps"&gt;DAC&lt;/span&gt; that has an optical on one side and RCAs on the other.&lt;/p&gt;

	&lt;p&gt;This was probably a month and a half ago. So far, it is much better. I had audio in my kitchen for a while which was great, but then eventually didn&amp;#8216;t anymore because Zone 2 on the Onkyo (and most receivers) is &lt;em&gt;analog only&lt;/em&gt; so digital sources cannot be used. One of the reasons this setup is much better is that I can just pop out my phone and adjust the volume, turn the kitchen on and off, etc.&lt;/p&gt;

	&lt;p&gt;Funniest thing is that I don&amp;#8216;t really need a universal remote anymore, which is good, because the Logitech has been super flakey. I loved it in the beginning but the battery blew up multiple times and had to be rebooted a lot. Stupid. My girlfriend is actually able to do things faster with just the TV remote (dialing up the &lt;span class="caps"&gt;HDMI&lt;/span&gt; sources) and then the iPhone for the audio.&lt;/p&gt;

	&lt;p&gt;The one thing I thought of at the last minute was how to do a center channel. I ended up doing a Play3. Works pretty well. There are still dropouts from time to time with Sonos, but overall it probably is the beginning of the end for components. Some of the really high end receivers have started to adopt the iPad as a remote. Good idea, but probably too late. One of the best things about Sonos is using the phone and the iPad. One of the other minor things that kind of sucks with Sonos is you pretty much want to turn it off when you are going to kill the AV, otherwise it makes little noises. &lt;span class="caps"&gt;BTW&lt;/span&gt;, the whole thing should suck a lot less juice than a receiver too, since the Sonos amps are Class Ds. Some of the new really high end AVRs use Ds now too (e.g. the Pioneer SC-57).&lt;/p&gt;

	&lt;p&gt;&lt;span class="caps"&gt;OMG&lt;/span&gt;, I was watching a tiny bit of &lt;span class="caps"&gt;AC360&lt;/span&gt; for &lt;span class="caps"&gt;SOTU&lt;/span&gt; commentary, and just caught a Celebrex commercial with 2 zombies bicycling through the countryside with helmets on while the narrator burbles on about kidney and liver failure and the fact that, should it happen, death will follow. I am going to greet whoever finally delivers real streaming solution free of the huckster/peddler rattletrap as a liberator worthy of a huge stone temple and a single name.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/HhS-Fdwf5dE" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robwilliams/entry/mothballing_my_av_receiver</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robwilliams/entry/apple_defies_again</guid>
    <title>Apple Defies Again</title>
    <dc:creator>Rob Williams</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/EA_TS5TWPWU/apple_defies_again</link>
        <pubDate>Wed, 25 Jan 2012 02:17:43 -0500</pubDate>
    <category>Technology</category>
            <description>&lt;p&gt;To say that Apple&amp;#8216;s foes have misread it is the understatement, perhaps of all time, not just the technology era. The weasely geek narrative has been that Apple is a walled garden and will be easy kill as soon as the open source/free guys run it down. Which was going to be easy because walled gardens are supposedly a single little homunculus running at full bore but falling to predation because of the limits of its short little stumps. Not surprisingly, when the 4s came out instead of the 5, the would-be predators beamed with glee: finally, our flesh feast is upon us. What to say after today but &amp;#8216;whelp?&amp;#8216;&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://bucket.ontometrics.com/images/appl-q2-2012.png" class="rightWrap"/&gt;Of course, we have to note that Google&amp;#8216;s miss a few days ago cuts a nice contrast.&lt;/p&gt;

	&lt;p&gt;There&amp;#8216;s a single explanation for both things: it&amp;#8216;s one of the most deadly things in nature, it&amp;#8216;s called monoculture.&lt;/p&gt;

	&lt;p&gt;Open is, by definition, an oppositional notion, not super meaningful on its own, at its core, basically just reactionary. It&amp;#8216;s going to save us all from the horror of closed. Well, folks, when do we say the jury is back and the verdict is that the revolutionary saviors have lost. Please, stop trying to save us. Save yourselves. If you can. I&amp;#8216;m pretty sure you can&amp;#8216;t.&lt;/p&gt;

	&lt;p&gt;&amp;#8216;How could Google be a monoculture? they do email, they have a social network, they make phones, do photo sharing, maps, flight information&amp;#8230;&amp;#8216;&lt;/p&gt;

	&lt;p&gt;Well, cultures don&amp;#8216;t mean a huge slate of petrie dishes. It implies that there are things &lt;em&gt;growing in them&lt;/em&gt; Google is still an ad peddler, period, and as their results showed, they are finally headed down the scree on their bums. Long before Google was birthed by its wealthy VC progenitors, I was a rabid anti-ad person, so I could not be happier to see that there might be a future where you can buy things and not be carrion for a &lt;a href="http://en.wikipedia.org/wiki/Vulture" title=""&gt;wake of vultures&lt;/a&gt; .&lt;/p&gt;

	&lt;p&gt;Just to triangulate this, the other great monoculture, worse, would-be self-crowning failed emperor of the 90s monoculture, Microsoft was featured in a story in BusinessWeek last week that quickly convinced me that I&amp;#8216;ve given them money for the last time. It was so dumb, it made squeaking noises as it made its way from my eyes to my inner voice. The basic slant of it was Ballmer has managed to make the company cool. The sickest, stupidest part was that I suffered all the way to the end of it, like Diogenes, looking for a single thread of truth, to find that, surprise, there was a. not a reason in creation to think Microsoft is cool, but b. less than no reason that if they have succeeded in anything Ballmer should not get a lick of credit. The writer tries to make an argument that Ballmer made tough choices, but each story was &amp;#8216;Ballmer hired a guy and put him in charge of &lt;i&gt;&lt;/i&gt;____.&amp;#8216; Did these clowns read any of their searing pieces about the genius of Jobs? Apparently not. Either that or they did, but then the blinding light of their god erased it all on contact: no not, Ballmer, the blubbering marshmallow man who makes Newt Gingrich look like Jack LaLane, Dollar Bill.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/EA_TS5TWPWU" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robwilliams/entry/apple_defies_again</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/neugens/entry/red_hat1</guid>
    <title>Red Hat!</title>
    <dc:creator>Mario Torre</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/FEmEqmOim74/red_hat1</link>
        <pubDate>Mon, 23 Jan 2012 11:56:04 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;&lt;p&gt;On the road, again and again :)&lt;/p&gt;&lt;p&gt;I finally decided to accept a great opportunity at Red Hat and signed with them!&lt;/p&gt;&lt;p&gt;I will join the Java Team with Andrew[s] and Deepak and all the other great hackers in a really cool team.&lt;/p&gt;&lt;p&gt;I'm not the only new joiner, and it's amazing how things go in the world at times :)&lt;/p&gt;&lt;p&gt;I'm very proud of being at Red Hat, is since ever I wanted this, so you guess how I'm the happiest person ever now :)&lt;/p&gt;&lt;p&gt;Let me share with you two pictures about this:&amp;nbsp;&lt;/p&gt;&lt;p style="text-align: center; "&gt;&amp;nbsp;&lt;br /&gt;
&lt;a href="http://www.flickr.com/photos/neugens/6749330727/" title="DSC_4493 by neugens, on Flickr"&gt;&lt;img src="http://farm8.staticflickr.com/7035/6749330727_4f9767d95a.jpg" width="500" height="331" alt="DSC_4493" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The second one comes from one of my contact of &lt;a href="http://www.flickr.com/photos/angie_real/6743245261/"&gt;Flickr&lt;/a&gt;. It's amazing, since she posted this the same day I signed the contract and she was not aware of this. I take it as a good sign :)&lt;/p&gt;&lt;p&gt;Thanks Deepak for this opportunity!&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;UPDATE&lt;/b&gt;: &lt;a href="http://rkennke.wordpress.com/2012/01/24/red-hat"&gt;Seems now that the identity of the mysterious guy is finally revealed&lt;/a&gt; :) Cheers Roman!&lt;/p&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/FEmEqmOim74" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/neugens/entry/red_hat1</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/aalmiray/entry/grails_bootstrapping_data_with_domainbuilder</guid>
    <title>Grails: Bootstrapping data with DomainBuilder</title>
    <dc:creator>Andres Almiray</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/2rNXj2_ItKA/grails_bootstrapping_data_with_domainbuilder</link>
        <pubDate>Mon, 23 Jan 2012 07:35:21 -0500</pubDate>
    <category>Groovy</category>
    <category>builder</category>
    <category>grails</category>
    <category>tips</category>
            <description>&lt;p&gt;A few days ago I was discussing the topic of builders during a Grails training session. After surveying the usual suspects found in the standard Groovy distribution (MarkupBuilder, SwingBuilder, Antbuilder and ObjectGraphBuilder) we jumped into Grails' &lt;a href="http://grails.org/doc/latest/api/grails/util/DomainBuilder.html"&gt;DomainBuilder&lt;/a&gt;. Once we got familiar with it the team seized the opportunity to refactor an existing application they've been working on for a few weeks. The idea was to remove a very verbose data setup during the bootstrap sequence.&lt;/p&gt;
&lt;p&gt;Like many other applications out there, this one requires setting up users and roles to secure access to some areas. The User and Role classes looked like the following ones&lt;br/&gt;&lt;textarea name="srccode" class="groovy:nocontrols:nogutter" cols="80" rows="15"&gt;class User {
    String username
    String name
    static hasMany = [roles: Role]
    static constraints = {
        username(nullable: false, blank: false, unique: true)
        name(nullable: false, blank: false, unique: true)
    }
}

class Role {
    String name
    static constraints = {
        name(nullable: false, blank: false, unique: true)
    } 
}&lt;/textarea&gt;&lt;/p&gt;&lt;p&gt;Nothing complex really. Now, during bootstrap there were a handful on instances of both classes being created and saved. A few users would share roles which meant keeping a reference to the common role to later use Grails relationship methods. This caused the code to be not so much DRY, and while it's good to be &lt;a href="http://www.nofluffjuststuff.com/blog/andrew_glover/2008/07/it_s_ok_to_wet_yourself_every_once_in_awhile"&gt;WET&lt;/a&gt; from time to time this wasn't the case. Let me show you how the code looked like before we added the builder&lt;br/&gt;&lt;textarea name="srccode" class="groovy:nocontrols:nogutter" cols="80" rows="35"&gt;import com.acme.*

class BootStrap {
    def init = { servletContext -&gt;
        User user1 = new User(username: 'user1', name: 'Regular')
        User user2 = new User(username: 'user2', name: 'Super')
        User user3 = new User(username: 'user3', name: 'Über')
        User user4 = new User(username: 'user4', name: 'Admin')

        Role role1 = new Role(name: 'Observer')
        Role role2 = new Role(name: 'Executor')
        Role role3 = new Role(name: 'Collector')
        Role role4 = new Role(name: 'Administrator')

        user1.addToRoles(role1)

        user2.addToRoles(role1)
        user2.addToRoles(role2)

        user3.addToRoles(role1)
        user3.addToRoles(role2)
        user3.addToRoles(role3)

        user4.addToRoles(role4)

        role1.save()
        role2.save()
        role3.save()
        role4.save()
        role1.save()
        user2.save()
        user3.save()
        user4.save()
    }
}&lt;/textarea&gt;&lt;/p&gt;&lt;p&gt;We could have saved a few lines by collecting all domain classes in Lists then applying &lt;tt&gt;*.save()&lt;/tt&gt; on the lists, however that would still have left the relationship methods being defined explicitly. This is where DomainBuilder came in. With it we were able to define the domain instances and the relationships at the same time. We ended up with code looking like the following one&lt;br/&gt;&lt;textarea name="srccode" class="groovy:nocontrols:nogutter" cols="80" rows="41"&gt;import com.acme.*
import grails.util.DomainBuilder

class BootStrap {
    def init = { servletContext -&gt;
        DomainBuilder builder = new DomainBuilder()
        builder.classNameResolver = 'com.acme'
        builder.identifierResolver = { 'nodeId' }
        builder.registerFactory 'list', new ListFactory()
        builder.childPropertySetter = new CustomChildPropertySetter()

        List instances = builder.list {
            role(nodeId: 'role1', name: 'Observer')
            role(nodeId: 'role2', name: 'Executor')
            role(nodeId: 'role3', name: 'Collector')
            role(nodeId: 'role4', name: 'Administrator')

            user(username: 'user1', name: 'Regular') {
                role(refId: 'role1')
            }
            
            user(username: 'user2', name: 'Super') {
                role(refId: 'role1')
                role(refId: 'role2')
            }
            
            user(username: 'user3', name: 'Über') {
                role(refId: 'role1')
                role(refId: 'role2')
                role(refId: 'role3')
            }
            
            user(username: 'user4', name: 'Admin') {
                role(refId: 'role4')
            }
        }
        
        instances*.save()
    }
}&lt;/textarea&gt;&lt;/p&gt;
&lt;p&gt;DomainBuilder understands perfectly well the relationships between domain class instances. It also makes some assumptions on how the model is setup, but we still need to give it a few hints. In line 7 we can see a &lt;tt&gt;classNameResolver&lt;/tt&gt; set on the builder. By convention the builder will use an strategy to construct fully qualified classnames out of node names. If the classes happen to be defined inside a package then you must define a custom classNameResolver. In our case the classes we're interested in live under the same package so we only need to specify it, the builder will do the rest to figure out the correct class name.&lt;/p&gt;&lt;p&gt;Next, we must set a custom &lt;tt&gt;identifierResolver&lt;/tt&gt; because the &lt;tt&gt;id&lt;/tt&gt; property is of semantic meaning to domain classes. The builder can keep references to all instantiated nodes, it will use the &lt;tt&gt;id&lt;/tt&gt; property by default, assuming that's a synthetic property. This means it will treated in a different way than the rest of properties. Because &lt;tt&gt;id&lt;/tt&gt; is used by domain classes we set a different synthetic property named &lt;tt&gt;nodeId&lt;/tt&gt;. Finally we define a custom factory to serve as the root of the object graph. This custom factory requires additional setup to handle its children, which is why we also register a custom &lt;tt&gt;ChildPropertySetter&lt;/tt&gt; on the builder. These two helper classes can be seen in the following snippets&lt;br/&gt;&lt;textarea name="srccode" class="groovy:nocontrols:nogutter" cols="80" rows="5"&gt;private static class ListFactory extends AbstractFactory {
    Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
        []
    }
}&lt;/textarea&gt;&lt;textarea name="srccode" class="groovy:nocontrols:nogutter" cols="80" rows="9"&gt;private static class CustomChildPropertySetter extends DomainBuilder.DefaultGrailsChildPropertySetter {
    void setChild(Object parent, Object child, String parentName, String propertyName) {
        if (parent instanceof List) {
            parent &lt;&lt; child
        } else {
            super.setChild(parent, child, parentName, propertyName)
        }
    }
}&lt;/textarea&gt;&lt;/p&gt;&lt;p&gt;Basically the code inspects the type of the parent node. If it's a List then we append the child to it, otherwise we let the standard behavior take control. You can read more information on the builders used at &lt;a href="http://groovy.codehaus.org/FactoryBuilderSupport"&gt;FactoryBuilderSupport&lt;/a&gt; and &lt;a href="http://groovy.codehaus.org/objectgraphbuilder"&gt;ObjectGraphBuilder&lt;/a&gt;.&lt;/p&gt;&lt;br/&gt;Keep on Groovying!&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/2rNXj2_ItKA" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/aalmiray/entry/grails_bootstrapping_data_with_domainbuilder</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/melix/entry/static_type_checking_talk_from</guid>
    <title>Static type checking talk from Paris Groovy/Grails User Group</title>
    <dc:creator>Cédric Champeau</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/_56xfKZ5ViU/static_type_checking_talk_from</link>
        <pubDate>Sun, 22 Jan 2012 13:12:14 -0500</pubDate>
    <category>Java</category>
    <category>checking</category>
    <category>groovy</category>
    <category>programming</category>
    <category>static</category>
    <category>type</category>
            <description>&lt;h1&gt;Static type checking and compilation in Groovy 2.0&lt;/h1&gt;
&lt;p&gt;This week, I had an interesting 2 days work session at Paris (La Defense) with Guillaume Laforge, Jochen Theodorou and Rémi Forax as a guest star. On Thursday night, I talked about my work on &lt;i&gt;static type checking&lt;/i&gt; and experimental &lt;i&gt;static compilation&lt;/i&gt; at the &lt;a href="http://www.meetup.com/Paris-Groovy-Grails/events/45108892/" target="_blank"&gt;Paris Groovy and Grails User Group&lt;/a&gt;. Here are the slides:&lt;/p&gt;
&lt;center&gt;
&lt;iframe src="http://app.sliderocket.com:80/app/fullplayer.aspx?id=E9AC4FBE-28F7-5D89-59DA-EAB19EF58845" width="500" height="401" scrolling=no frameBorder="1" style="border:1px solid #333333;border-bottom-style:none"&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;h1&gt;Some comments&lt;/h1&gt;
&lt;p&gt;First of all, a large part of the session was spent in explaining what static type checking implies in terms of semantics for a language like Groovy. I tried to explain that &lt;i&gt;by definition&lt;/i&gt;, type checking a dynamic language is impossible, so you have to make decisions and drop support for dynamic features in that case. However, this is in most situations not a problem for people looking for static type checking, because what they need is to guarantee the behaviour of a program at runtime &lt;b&gt;and&lt;/b&gt; compile time.&lt;/p&gt;
&lt;p&gt;The last part of the talk was spent in explaining the most important difference in behaviour between dynamic method dispatch and static method dispatch. This was necessary to introduce the experimental static compiler which should make its way in the next beta of Groovy 2.0. I tried to explain the three different options we have regarding static compilation and method dispatch:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Java-like method dispatch, which has the main interest of being known of most people (at least, people who faced the problem once). This solution however has major drawbacks. In particular, it removes most of the interest of the flow typing mode, and requires extra verbosity which is the opposite of the Groovy philosophy.&lt;/li&gt;
&lt;li&gt;Dynamic-Groovy like method dispatch. Typically, this is wanted to avoid a "third language" (not Java, nor Groovy), and this is were you want a statically compiled Groovy program to behave at runtime like dynamic Groovy does. While this sounds interesting, it also has major problems. The first one is performance, which would be awful because we would have to introduce tons of "instanceof" checks at compile time to correctly dispatch methods. More complicated, this "instanceof cascade" would generate unreadable bytecode (think of parameter combinations) which would also be a major performance issue for CPUs (which, as Rémi said during the session, really do not like branching). Even worse, this wouldn't work anymore if you subclass the statically compiled class because the new overloaded methods wouldn't be known from the compiler. This is why I consider this solution the worse of all, though I understand people who want it. Last but not least, Groovy 2.0 will introduce &lt;b&gt;InvokeDynamic&lt;/b&gt; support which should greatly improve performance of dynamic Groovy without loosing its semantics.&lt;/li&gt;
&lt;li&gt;The third solution I presented is the one currently implemented in the experimental compiler: inference based method dispatch. This definitely creates a third language in terms of dispatch semantics, but as the developer explicitly adds an annotation, he should be aware of the differences (which only occur when you have overloaded methods). Inference based dispatch also has the advantage of being "flow typing" compatible, and removes a lot of verbosity. It has my preference, which explains why this is what is implemented right now.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Our guest star Rémi Forax also suggested an alternative solution, which would in theory maintain the semantics of dynamic Groovy, though we are in a statically compiled world. The idea is that when the compiler detects an overloaded method, it should generate the appropriate instanceof checks and seal the class (to avoid it to be subclassed). But as we discussed that solution the next day, we found some cases where even in that situation, we wouldn't be able to guarantee dynamic Groovy like behaviour without adding explicit guards on every static method call (in particular, changing the metaclass or detection of category usage). This would also lead in a major performance penalty (Rémi couldn't avoid telling us that all answers to our problem are in InvokeDynamic, but still, we want to offer something for pre-Java 7 people).&lt;/p&gt;
&lt;h1&gt;The future&lt;/h1&gt;
&lt;p&gt;I ended the talk with a small view of what's still to be done. There are still bugs in the static type checker (especially in loops where an overloaded method result is assigned to one of its parameters) and probably a lot more in the compiler. Eventually, I insisted on the fact that every point of both static type checking and static compilation &lt;b&gt;are to be discussed with the community&lt;/b&gt;. While static type checking will most probably be part of Groovy 2.0, it's still unsure about static compilation, and that's why we would like you to answer the surveys that are in the presentation.&lt;/p&gt;
&lt;h1&gt;Toward a new MOP&lt;/h1&gt;
&lt;p&gt;As this session was a gift for static types lovers, we also wanted to offer something for our dynamic language users. This came with a long discussion about a new MOP (also known as MOP 2.0). The result of the discussion will be published by Guillaume Laforge as a new GEP (Groovy Enhancement Proposal). Once again, community will be involved.&lt;/p&gt;
&lt;p&gt;Thanks a lot!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;French speaking users might also be interested in my talk at the &lt;a href="http://www.nantesjug.org/" target="_blank"&gt;Nantes JUG&lt;/a&gt; which introduced &lt;a href="http://portal.sliderocket.com/vmware/Introduction-aux-DSLs-en-Groovy" target="_blank"&gt;DSLs in Groovy&lt;/a&gt;.&lt;/i&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/_56xfKZ5ViU" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/melix/entry/static_type_checking_talk_from</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/neugens/entry/a_little_help_for_an</guid>
    <title>A little help for an Architect :)</title>
    <dc:creator>Mario Torre</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/QznHB1iVaXE/a_little_help_for_an</link>
        <pubDate>Sun, 22 Jan 2012 09:25:15 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;&lt;p&gt;Last year my girlfriend did a training for an important architecture studio in Biel (Switzerland), and one of the projects she was working on more actively has been now selected as a finalist for &amp;quot;Building of the year&amp;quot;.&lt;/p&gt;&lt;p&gt;I'm very proud of her! I've seen this project growing from almost zero since you she was updating me for every single small step, and it's quite amazing to see something that on paper looks like:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="text-align: center; "&gt;&lt;br /&gt;
&lt;a href="http://www.swiss-architects.com/de/projekte/vote_review/33528/49"&gt;&lt;img src="http://files3.world-architects.com/projects/33528/images/900:w/4.jpg" align="baseline" border="0" hspace="0" vspace="0" width="300" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Actually becomes like this:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="text-align: center; "&gt;&lt;a href="http://www.swiss-architects.com/de/projekte/vote_review/33528/49"&gt;&lt;img src="http://files3.world-architects.com/projects/33528/images/900:w/1.jpg" align="baseline" border="0" hspace="0" vspace="0" width="300" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Since the election is open to public, if you would like to help us promoting her amazing job, I share with you the link for the voting; either visit:&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.swiss-architects.com/de/projekte/bau-der-woche-detail/33528_janus_sanierung_und_ausbau_stadtmuseum_rapperswil_jona?vote=49"&gt;http://www.swiss-architects.com/de/projekte/bau-der-woche-detail/33528_janus_sanierung_und_ausbau_stadtmuseum_rapperswil_jona?vote=49&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;or:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.swiss-architects.com/de/projekte/reviews_voting/33"&gt;http://www.swiss-architects.com/de/projekte/reviews_voting/33&lt;/a&gt;&amp;nbsp;and select the project number &lt;a href="http://www.swiss-architects.com/de/projekte/bau-der-woche-detail/33528_janus_sanierung_und_ausbau_stadtmuseum_rapperswil_jona?vote=49"&gt;49&lt;/a&gt;:&lt;/p&gt;&lt;div class="favoritCompany" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: none; outline-color: initial; font-size: 13px; font-family: Helvetica, Arial, sans-serif; line-height: 17px; "&gt;:mlzd&lt;/div&gt;&lt;div class="favoritTitle" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: none; outline-color: initial; font-size: 14px; font-family: Georgia, 'Times New Roman', Times, serif; line-height: 17px; "&gt;Blick in die Vergangenheit und in die Zukunft&lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 17px; "&gt;Rapperswil-Jona&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can&amp;nbsp;&amp;nbsp;vote by clicking on &amp;quot;Mein Favorit&amp;quot; (In the form: Herr is Mr, Frau is Mrs, Vorname is Name and Nachname is family name... well, I think :)&lt;/p&gt;&lt;p&gt;Thanks for helping out!&lt;/p&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/QznHB1iVaXE" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/neugens/entry/a_little_help_for_an</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/andyl/entry/eclipse_job_in_b%C3%B6blingen</guid>
    <title>Eclipse job in Böblingen</title>
    <dc:creator>Andrey Loskutov</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/rGko9kEXtgQ/eclipse_job_in_b%C3%B6blingen</link>
        <pubDate>Fri, 20 Jan 2012 08:26:14 -0500</pubDate>
    <category>Java</category>
    <category>böblingen</category>
    <category>eclipse</category>
    <category>germany</category>
    <category>java</category>
    <category>job</category>
            <description>&lt;p&gt;
&lt;b&gt;We (&lt;a href="http://www.verigy.com"&gt;Verigy&lt;/a&gt;) have a &lt;a href="https://plus.google.com/u/0/113794713998126448910/posts/g8F7E8nmPHF"&gt;job opening&lt;/a&gt;&lt;/b&gt; for a Java / Eclipse developer in &lt;b&gt;&lt;a href="http://maps.google.de/maps?q=B%C3%B6blingen&amp;ie=UTF8&amp;oe=utf-8&amp;channel=suggest&amp;hnear=B%C3%B6blingen,+Stuttgart,+Baden-W%C3%BCrttemberg&amp;gl=de&amp;t=m&amp;z=12&amp;vpsrc=0"&gt;Böblingen / Germany&lt;/a&gt;&lt;/b&gt;. Details on &lt;b&gt;&lt;a href="https://plus.google.com/u/0/113794713998126448910/posts/g8F7E8nmPHF"&gt;G+&lt;/a&gt;&lt;/b&gt;.&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/rGko9kEXtgQ" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/andyl/entry/eclipse_job_in_b%C3%B6blingen</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/melix/entry/codenarc_plugin_for_intellij_idea</guid>
    <title>CodeNarc plugin for IntelliJ IDEA updated</title>
    <dc:creator>Cédric Champeau</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/-aHbnpnuL1k/codenarc_plugin_for_intellij_idea</link>
        <pubDate>Wed, 18 Jan 2012 03:46:49 -0500</pubDate>
    <category>Java</category>
            <description>&lt;h1&gt;CodeNarc for IntelliJ IDEA 0.16.1&lt;/h1&gt;
&lt;p&gt;Eventually, I managed to upgrade the CodeNarc for IntelliJ IDEA plugin to use CodeNarc 0.16.1. It took a while (sorry Hamlet ;)), but I faced an awful jar hell issue.&lt;/p&gt;
&lt;h1&gt;java.lang.LinkageError&lt;/h1&gt;
&lt;p&gt;It's quite interesting indeed, though I am not fully happy with the "fix". Let's see what's the problem. If any IntelliJ expert is here, I'd be happy to have some help. Basically, for compatibility with newer versions of Groovy, both CodeNarc and GMetrics (a dependency of CodeNarc) embed in their jar three classes which have disappeared from the newest Groovy version (in fact, they were moved in other packages):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;org.codehaus.groovy.ast.expr.RegexExpression&lt;/li&gt;
&lt;li&gt;org.codehaus.groovy.transform.powerassert.Value&lt;/li&gt;
&lt;li&gt;org.codehaus.groovy.transform.powerassert.ValueRecorder&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Normally, this shouldn't be a problem, but when I ran the plugin, it failed loading with this cryptic error, well known from OSGI users:&lt;/p&gt;
&lt;pre&gt;
java.lang.LinkageError: loader constraint violation: loader (instance of com/intellij/ide/plugins/cl/PluginClassLoader) previously initiated loading for a different type with name "org/codehaus/groovy/ast/expr/RegexExpression"
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
	at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:124)
	at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:120)
	at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:96)
	at com.intellij.ide.plugins.cl.PluginClassLoader.d(PluginClassLoader.java:102)
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:63)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
&lt;/pre&gt;
&lt;p&gt;Oh my, a LinkageError. Worse than a classical classpath issue. The problem comes from the fact that IntelliJ internally uses Groovy (where ?) and bundles &lt;i&gt;groovy-all-1.7.3.jar&lt;/i&gt;. I had to remove the compatibility classes from the CodeNarc jars in order to have the plugin loaded correctly. I think a better solution would be to be able to use an embedded version of Groovy, but the plugin loaded would always include those classes. By the way, it looks to me that CodeNarc would use the internal Groovy version to run (1.7.3) whereas it would probably be better if we could use the version used by the project...&lt;/p&gt;
&lt;p&gt;Anyway, the plugin is upgraded, have fun!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/-aHbnpnuL1k" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/melix/entry/codenarc_plugin_for_intellij_idea</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robwilliams/entry/rosetta_stone_the_latest_adobe</guid>
    <title>Rosetta Stone, the Latest Adobe Victim</title>
    <dc:creator>Rob Williams</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/cnr2t4QR-AM/rosetta_stone_the_latest_adobe</link>
        <pubDate>Wed, 18 Jan 2012 02:18:38 -0500</pubDate>
    <category>Technology</category>
            <description>&lt;p&gt;How do you go from unchallenged leader in your software category to an embarrassing gimp hanging on for dear life? Simple, you hire an architect who convinces you to roll the dice on Adobe technology.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://t1.gstatic.com/images?q=tbn:ANd9GcRAID5315jW0Gr7rmRdygfSDJGY_Veg3Pd89GQP-gCWWjuPaYmZwQ" class="leftWrap"/&gt;Rosetta Stone has killed everything in the language category for a long time. Recently, when it started to look like we might get Rick Perry or Michelle Bachmann, I decided to brush off my evacuation plan and thought I should learn some French. The install of the app was so stupid, it didn&amp;#8216;t even really piss me off, pathetic becomes funny.&lt;/p&gt;

	&lt;p&gt;Then I was reading MacLife a few weeks ago and saw a review and, having forgotten my own time in the pen at the Adobe Goat Rodeo, I burst out laughing when I got halfway down their &lt;a href="http://www.maclife.com/article/reviews/rosetta_stone_language_course_review" title=""&gt;review&lt;/a&gt; to find that the poor reviewer was likewise marooned by the idiot installer problems, and as a consequence, the final verdict was Solid (which, in their &amp;#8216;let&amp;#8216;s say something nice parlance&amp;#8216; means &amp;#8216;pretty much a piece of hud&amp;#8216;).&lt;/p&gt;

	&lt;p&gt;Here&amp;#8216;s the funniest part. Rosetta Stone is listed as a &lt;a href="http://www.adobe.com/cfusion/showcase/index.cfm?event=casestudydetail&amp;#38;casestudyid=836397&amp;#38;loc=en_us" title=""&gt;success story&lt;/a&gt; on the Adobe site.&lt;/p&gt;

	&lt;p&gt;It&amp;#8216;s like the commercial where the super rich guy wants someone to give him some fresh ideas on how to burn up his excess cash and they settle on making milk without a cow. They are past the midget reaching for the box on the top shelf, it&amp;#8216;s Marx&amp;#8216;s Brumaire stage of farce.&lt;/p&gt;

	&lt;p&gt;Hopefully the Rosetta guys will be able to redo their interface with &lt;span class="caps"&gt;HTML5&lt;/span&gt; before the flesh eating bacterium devours their internal organs.&lt;/p&gt;

	&lt;p&gt;Ironically, last week I got my first exposure to &lt;strong&gt;After Effects&lt;/strong&gt; and found it to be one of the best Adobe apps I&amp;#8216;ve used so far. Clearly, the platform push was Napoleonic. Will be interesting to see if the AE and Edge contingent can hold off the new &lt;span class="caps"&gt;HTML 5&lt;/span&gt; competitors. If not, they will probably have wished they&amp;#8216;d stayed focused.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/cnr2t4QR-AM" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robwilliams/entry/rosetta_stone_the_latest_adobe</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robwilliams/entry/some_fresh_thoughts_on_tdd</guid>
    <title>TDD's Better Half</title>
    <dc:creator>Rob Williams</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/MY9u5y4NBiM/some_fresh_thoughts_on_tdd</link>
        <pubDate>Wed, 18 Jan 2012 02:06:31 -0500</pubDate>
    <category>Technology</category>
            <description>&lt;p&gt;So yesterday I was thinking &amp;#8216;TDD is really two things: it&amp;#8216;s about testing, but it&amp;#8216;s also just a methodological means of marking progress. &lt;img src="http://t1.gstatic.com/images?q=tbn:ANd9GcR9YYB9Sz3paIr0ZT5hE-GOdyp801CwDIC1Wtsc2NGACL5e0KloLw" class="rightWrap"/&gt;Frankly, I have found the latter more compelling over the last few years. The great metaphor from the Beck book on &lt;span class="caps"&gt;TDD&lt;/span&gt;, about pulling the pale up from the bottom of a 200&amp;#8216; well really says almost nothing about testing. It&amp;#8216;s more about pacing work, making sure that energy expended is not going to leak out as other things are assayed, etc. Meyer was obsessed by the idea of being able to prove correctness. I love BM, but find that kind of laughably old world. Complexity defies certainty. There are of course many things you can be certain about, but being able to move everything into the certain column would be a sure sign of total necrosis.&lt;/p&gt;

	&lt;p&gt;Consider this though: things almost always come in the door promising one thing and then end up putting their focus elsewhere. &lt;span class="caps"&gt;TDD&lt;/span&gt; was sold in the beginning with &lt;span class="caps"&gt;FUD&lt;/span&gt;. It was &amp;#8216;code sucks and is broken all the time because you don&amp;#8216;t have tests that prove it works.&amp;#8216; I think the only reason the process element even emerged is because the biggest objection to unit tests was the &amp;#8216;we don&amp;#8216;t have time.&amp;#8216; [Read: we are too busy piling a bunch more borked code onto the pyre, step back!] The good news is that in addressing that, the better side of &lt;span class="caps"&gt;TDD&lt;/span&gt; emerged.&lt;/p&gt;

	&lt;p&gt;I have gotten to the point where I see people not working in tests on pieces that should take no time to setup and it&amp;#8216;s like coming across someone huddling over a bunsen burner by a train track roasting a rat. I had a bunch of code that I wrote 90% of inside tests that ran in a few seconds. Someone came into one of my tests and added 2 new tests that made remote connections. Took my run for all 20 or so tests in that one file from 1&amp;#8211;2s to maybe 30. Took me about 5m to get those two tests into their own separate test and back to 1&amp;#8211;2s runtimes.&lt;/p&gt;

	&lt;p&gt;What of these two sides? Is this a harmonically balanced story of halves complimenting each other? It struck me today how little activity there seems to be on the testing side anymore, ideas-wise. Anyone working on figuring out how good tests are? how long they are taking? plugging some of the typical leakage points like disabled tests? or flagging dependencies that weaken them? How &amp;#8216;bout simple problems like making it easier to get data into them (without using some fossilized contraption that has an &lt;span class="caps"&gt;XML&lt;/span&gt; format that has to be maintained)? Even the books are just a dog&amp;#8216;s dinner of warmed up tips. O, Lost World..&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/MY9u5y4NBiM" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robwilliams/entry/some_fresh_thoughts_on_tdd</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/dpmihai/entry/nextreports_5_0_was_released</guid>
    <title>NextReports 5.0 was released</title>
    <dc:creator>MDP</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/ePvNQOgQxas/nextreports_5_0_was_released</link>
        <pubDate>Mon, 16 Jan 2012 11:07:16 -0500</pubDate>
    <category>Java</category>
    <category>java</category>
    <category>reporting</category>
            <description>NextReports 5.0 was launched today with some big new features.
&lt;br&gt;&lt;br&gt;
First, a 'Global Settings' action can be done for every dashboard. Besides some common properties for all widgets , like refresh time and timeout, all common parameters for all the widgets inside a dashboard can be changed just with one click. To make it easier to use the same parameters in more reports or charts, NextReports Designer adds two actions for parameters. You can clone parameters from the current query /report / chart and you can add the parameters defined in other queries / reports/ charts.
&lt;br&gt;&lt;br&gt;
Another big change is that all server settings are kept now inside JCR storage and not inside a property file. In this way when you install a new version, there is no need to copy your old property file over the new one. Also, when you change settings, there is no need to make a restart of the server (there are only a few exceptions with properties which are defined also in your web server configuration). Settings may be modified only by administrators. A logo and some color themes can be changed to modify the look.
&lt;br&gt;&lt;br&gt;
Designer can now communicate faster with server with bulk publish and download. Also a bulk change for data sources is available on the server.
&lt;br&gt;&lt;br&gt;
Server Dashboards can now be created with 1, 2 or 3 columns. Older dashboards can be modified. Users can see statistics about their dashboards. Widgets have now a timeout which can be modified. 
&lt;br&gt;&lt;br&gt;
Internally, the server was updated to JackRabbit 2.2.9 and Spring is now on version 3.
&lt;br&gt;&lt;br&gt;
http://www.next-reports.com&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/ePvNQOgQxas" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/dpmihai/entry/nextreports_5_0_was_released</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/ejboy/entry/reliable_calculation_of_naturalwidth_attribute</guid>
    <title>Reliable calculation of naturalWidth attribute in IE</title>
    <dc:creator>Fyodor Kupolov</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/tNdXPf2NPbU/reliable_calculation_of_naturalwidth_attribute</link>
        <pubDate>Mon, 16 Jan 2012 05:29:42 -0500</pubDate>
    <category>Developer</category>
            <description>&lt;p&gt;IE gives me hard times again. I wouldn't say it's bad, because it always helps me to better understand how JavaScript/DOM works.This time I was using naturalWidth property to determine original image size, but it turned out it's unsupported in IE versions prior to 9.0. A quick googling found a &lt;a href="http://jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/"&gt;working solution&lt;/a&gt;, but it doesn't always work for large images in IE. So I came up with the following version for jQuery. Tested on IE9/Chrome/FF:&lt;/p&gt;&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* NaturalWith calculation function. It has to be async, because sometimes(e.g. for IE) it needs to wait for already cached image to load.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @param onNaturalWidthDefined callback(img) to be notified when naturalWidth is determined.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jQuery.fn.calculateNaturalWidth = function(onNaturalWidthDefined) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var img = this[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var naturalWidth = img.naturalWidth;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (naturalWidth) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; onNaturalWidthDefined(img);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else { //No naturalWidth attribute in IE&amp;lt;9 - calculate it manually.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var newImg = new Image();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; newImg.src = img.src;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //Wait for image to load&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (newImg.complete) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; img.naturalWidth = newImg.width;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; onNaturalWidthDefined(img);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $(newImg).load(function() {img.naturalWidth=newImg.width; onNaturalWidthDefined(img)});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/pre&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/tNdXPf2NPbU" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/ejboy/entry/reliable_calculation_of_naturalwidth_attribute</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/anylabs/entry/the_shallows_what_the_internet</guid>
    <title>The Shallows: What the Internet Is Doing to Our Brains</title>
    <dc:creator>evans</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/DVK9rbtmxfw/the_shallows_what_the_internet</link>
        <pubDate>Sun, 15 Jan 2012 04:30:08 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;&lt;a href="http://www.amazon.com/Shallows-What-Internet-Doing-Brains/dp/0393339750/?tag=7536-20"&gt;&lt;img src="http://media.npr.org/assets/artslife/books/2010/06/the-shallows/theshallows_custom.jpg?" align="right" style="padding:7px;" height="209" width="138"&gt;&lt;/a&gt;Having a hard time remembering what you just read? Do you find it more difficult to complete a whole book or a long article? While advancing age may be a factor, perhaps a bigger one could be how the Internet is reconfiguring our brains, as &lt;a href="http://www.amazon.com/Shallows-What-Internet-Doing-Brains/dp/0393339750"&gt;Nicholas Carr&lt;/a&gt; persuasively argues in this book. &lt;/p&gt;


&lt;p&gt;This book comes in the line of previous cultural critics skeptical of technology, such as &lt;a href="http://www.amazon.com/Neil-Postman/e/B000AQ1U26"&gt;Neil Postman&lt;/a&gt; a couple of decades ago, but he goes beyond it by showing how this particular technology changes not only the way behave, but the very wiring of our brains. Yes, all upbeat articles we read recently about research that shows how our brain remains malleable until well into adulthood has the implication that the technologies we use could alter the brain to adapt to a world of constant electronic interruptions. &lt;/p&gt;


&lt;p&gt;While this makes us better informed than ever, and by some measures our intelligence can improve, we also lose something important, which is the ability to concentrate long and hard and have deep thoughts and insights.&lt;/p&gt;


&lt;p&gt;In making the argument Carr presents a concise and vivid history on how past technological changes altered the life of the mind, such as when going from oral to written knowledge, from longform writing to the one we know today, and more importantly, when going from handwritten to printed books, which led to our modern culture and made possible the breakthrough ideas of the last centuries. He also warns on misguided notions of artificial intelligence and how we become shallower and presumably less human when we completely outsource our memory to machines.&lt;/p&gt;


&lt;p&gt;The fact that &lt;a href="http://www.amazon.com/Shallows-What-Internet-Doing-Brains/dp/0393339750"&gt;Nicholas Carr&lt;/a&gt; is no technophobe, he clearly appreciates the benefits of modern information technology and has in fact was an early adopter of personal computers, gives greater credibility to his argument. Perhaps a downside of this book is that it's a bit too one sided, it leaves us with no hope that life can be much better because of the Internet, when in fact it's too early to know the lasting impact these technologies will have. &lt;/p&gt;


&lt;p&gt;But in these days of techno-utopianism, when we idolize companies such as Facebook, Google, and Apple, this countercultural book, well written and diligently researched, brings a welcome change and deserves a good reading. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/DVK9rbtmxfw" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/anylabs/entry/the_shallows_what_the_internet</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robwilliams/entry/agilezen_dark_side_of_saas</guid>
    <title>AgileZen: Dark Side of SaaS</title>
    <dc:creator>Rob Williams</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/IwHqfYC3Py0/agilezen_dark_side_of_saas</link>
        <pubDate>Sun, 15 Jan 2012 00:34:54 -0500</pubDate>
    <category>Technology</category>
            <description>&lt;p&gt;The draw of SaaS from the user side is not setting up machines, messing around with installs, administering software, etc. Did anyone wonder if the compulsion to continue to improve and innovate would keep the value proposition at least comparable to the open market? Maybe we should have. GitHub has rolled out features, and a native app (though I can&amp;#8216;t use it since it&amp;#8216;s kind of simplistic in its flow support), but AgileZen I don&amp;#8216;t think has delivered a single feature and we&amp;#8216;ve been on it for over a year. Is paying $99/month for software that doesn&amp;#8216;t even have a trickle of improvement a good deal? No. Worse than that, obvious features, still are not there. The most pathetic is that the product does not give you a way to see velocity. Ask yourself the question: what kind of product manager would approve adding story points to a product and then not have a way to see velocity? Folks, you only use story points so that you can get your velocity!&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://bucket.ontometrics.com/images/agilezen.png" class="rightWrap"/&gt;The even more predictable aspect of humanity than death and taxes is the reality that once something makes its way to a teet, there shall be no attention given to anything other than continuing to suckle. Hence, SaaS is bound to produce a lot more of this kind of stuff.&lt;/p&gt;

	&lt;p&gt;Am I dwelling on the negative case? I did present a positive one (though not a perfect one).&lt;/p&gt;

	&lt;p&gt;There are some differences. AgileZen is now owned by Rally, which, unfortunately has become a big, stupid company that has long ago passed out of the phase of caring about innovating. Also, I would guess that AgileZen sees its customers as less likely to just pick up and leave.&lt;/p&gt;

	&lt;p&gt;Time to look around again. The state of tools is so pathetic. Oh, while I&amp;#8216;m at it, AgileZen is so dumb that if you have 10 projects, you had to go change the column configuration 10 times. Guys, if you aren&amp;#8216;t going to finish your product, pay someone to do it for you with the money we are giving you.&lt;/p&gt;

	&lt;p&gt;Stupid.&lt;/p&gt;

	&lt;p&gt;&lt;a href="http://agilescout.com/best-kanban-tools/" title=""&gt;List of Kanban Tools&lt;/a&gt;&lt;br/&gt;&lt;a href="http://help.agilezen.com/discussions/general-questions/61-api-filter-by-date-reporting-velocity" title=""&gt;Lone Support Thread on Velocity&lt;/a&gt;&lt;br /&gt;
&lt;hr/&gt;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Had an exchange with the founder/project lead after posting this. He explained that their energy this past year went to a migration to &lt;span class="caps"&gt;EC2&lt;/span&gt; and also moving from .NET to node.js (sorry, that didn&amp;#8216;t fill me with confidence about the road forward). He did also tell me though that they finally pushed out their GitHub integration. I just installed that. That is pretty bloody exciting.&lt;/p&gt;

	&lt;p&gt;I am going to blog about the other elements of our exchange, about why story points aren&amp;#8216;t there and process templates. I think it&amp;#8216;s pretty interesting. He also mentioned there were a bunch of exciting things coming. Sounds interesting..&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/IwHqfYC3Py0" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robwilliams/entry/agilezen_dark_side_of_saas</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/HazemBlog/entry/refreshing_dijit_tree_in_dojo</guid>
    <title>Refreshing Dijit tree in Dojo (code that works)</title>
    <dc:creator>Hazem Ahmed Saleh</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/CrKSVjBzRY8/refreshing_dijit_tree_in_dojo</link>
        <pubDate>Sat, 14 Jan 2012 13:20:03 -0500</pubDate>
    <category>Java</category>
    <category>custom</category>
    <category>dijit</category>
    <category>dojo</category>
    <category>javascript</category>
    <category>refresh</category>
    <category>reload</category>
    <category>solution</category>
    <category>tree</category>
    <category>web2</category>
    <atom:summary type="html">
&lt;p&gt;Refreshing the Dijit tree in Dojo with a new data store does not have a ready-made API in Dojo (Iam talking about Dojo 1.4). In this post, I will show a technique with example that will illustrate how to refresh the Dijit tree with a new data store.&lt;/p&gt;

</atom:summary>        <description>&lt;p&gt;I wrote this post in my new wordpress blog here:&lt;br/&gt;
&lt;a href="http://www.technicaladvices.com/2012/01/14/refreshing-dijit-tree-in-dojo-code-that-works/"&gt;http://www.technicaladvices.com/2012/01/14/refreshing-dijit-tree-in-dojo-code-that-works/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/CrKSVjBzRY8" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/HazemBlog/entry/refreshing_dijit_tree_in_dojo</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/bookreview/entry/the_fault_in_our_stars</guid>
    <title>The Fault in Our Stars</title>
    <dc:creator>evans</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/nmEyGTCM4yA/the_fault_in_our_stars</link>
        <pubDate>Sat, 14 Jan 2012 13:11:43 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;I am not an emotional reader. Hallmark commercials, Disney movies, beautiful songs, but books never really have that effect on me. I read them, I think about them for a few days, and then I let them go. I've never been swept up into the world of a book enough that I feel the triumphs and tribulations of the characters.&lt;/p&gt;


&lt;p&gt;Until this book.&lt;/p&gt;


&lt;p&gt;I can't accurately describe the life this book has taken inside of me. I read it through Thursday night, staying up hours later than I should have; I woke up three times in the night, heart racing, caught in the emotional impact of the book; I thought about it all through my Friday morning errands and class; I listened to the audiobook (though not in its entirety) when I returned home. Two days later, I am still having a emotional reaction to parts of the book, sometimes out of the blue. I feel like there are these long-reaching aftershocks, and every time, they twist my belly into knots.&lt;/p&gt;


&lt;p&gt;Green stated that he'd sought to write an epic in miniature. I cannot think of a better term for this book. It's unlike his others, it's unlike anything I've read, and I am not sure I can carefully set it in one category or another. It is beautiful, it is haunting, it is funny and tragic and overwhelming.&lt;/p&gt;


&lt;p&gt;If you are a nerdfighter or simply heard of the hype surrounding this book, believe it with a grain of salt. Believe it with a voice in the back of your head telling you to be cautious. Because the first two chapters we've all heard are nothing like the remaining 23. And all 25 are nothing like Green's other books, but in the best and most wonderful way. I feel like this is the writer Green was meant to be, the one we've all expected to emerge since Looking for Alaska.&lt;/p&gt;


&lt;p&gt;Entertainment Weekly picked "luminous" as their descriptor, but I would disagree.&lt;/p&gt;


&lt;p&gt;My word is "resonant", and I am still feeling the afterglow. &lt;/p&gt;


&lt;p&gt;&lt;img src='http://www.amazon.com/?ie=UTF8&amp;tag=7536-20' style='display:none;'/&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/nmEyGTCM4yA" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/bookreview/entry/the_fault_in_our_stars</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/HazemBlog/entry/getting_the_selected_dijit_tree</guid>
    <title>Getting the Selected Dijit Tree node in Dojo</title>
    <dc:creator>Hazem Ahmed Saleh</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/gd6v-KajNuo/getting_the_selected_dijit_tree</link>
        <pubDate>Fri, 13 Jan 2012 21:17:33 -0500</pubDate>
    <category>Java</category>
    <category>dijit</category>
    <category>dojo</category>
    <category>javascript</category>
    <category>node</category>
    <category>selected</category>
    <category>tree</category>
    <category>web2</category>
            <description>&lt;p&gt;I wrote this tip in my new wordpress blog here:&lt;br/&gt;
&lt;a href="http://www.technicaladvices.com/2012/01/14/getting-the-selected-dijit-tree-node-in-dojo/"&gt;http://www.technicaladvices.com/2012/01/14/getting-the-selected-dijit-tree-node-in-dojo/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/gd6v-KajNuo" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/HazemBlog/entry/getting_the_selected_dijit_tree</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/mert/entry/getting_out_of_tomcat_hell</guid>
    <title>Getting out of Tomcat Hell - SEVERE: Error listenerStart</title>
    <dc:creator>Mert Caliskan</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/6_ko7ENsy9U/getting_out_of_tomcat_hell</link>
        <pubDate>Fri, 13 Jan 2012 11:42:35 -0500</pubDate>
    <category>Java</category>
    <category>error</category>
    <category>exception</category>
    <category>java</category>
    <category>tomcat</category>
            <description>&lt;br/&gt;&lt;pre&gt;&lt;/pre&gt;While getting up application context if you see the line&lt;br/&gt;&lt;br/&gt;
&lt;pre&gt;SEVERE: Error listenerStart&lt;/pre&gt;
&lt;br/&gt;
and nothing more just drop logging.properties to src/main/resources (if you use maven) or to WEB-INF/classes to get the actual stack trace. The content of logging.properties is like below,&lt;br/&gt;&lt;br/&gt;
&lt;pre&gt;
org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler
&lt;br/&gt;
&lt;/pre&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/6_ko7ENsy9U" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/mert/entry/getting_out_of_tomcat_hell</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/ethdsy/entry/the_calendar_hour_trap1</guid>
    <title>The Calendar HOUR Trap</title>
    <dc:creator>David Shay</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/6i5_IKr-Ff4/the_calendar_hour_trap1</link>
        <pubDate>Thu, 12 Jan 2012 13:50:25 -0500</pubDate>
    <category>Java</category>
            <description>For the need of some algorithm, a developer wrote this small piece of code that theoretically, from a given Date, will return the same Date but with a time set to the end of the day.&lt;p&gt;

&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;&lt;font color='#7f0055'&gt;public&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;&lt;strong&gt;&lt;font color='#7f0055'&gt;static&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;Date&amp;nbsp;setDateToEndDay(&lt;strong&gt;&lt;font color='#7f0055'&gt;final&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;Date&amp;nbsp;date)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Calendar&amp;nbsp;lcal&amp;nbsp;=&amp;nbsp;Calendar.getInstance();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lcal.setTime(date);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lcal.set(Calendar.HOUR,&amp;nbsp;23);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lcal.set(Calendar.MINUTE,&amp;nbsp;59);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lcal.set(Calendar.SECOND,&amp;nbsp;0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lcal.set(Calendar.MILLISECOND,&amp;nbsp;0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt;&lt;font color='#7f0055'&gt;return&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;lcal.getTime();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/pre&gt;
&lt;p&gt;
As you can see, it sets the time to be 23H59. Being used to the quirks of the Calendar class, and having already fallen to the trap, I immediately saw the bug that would, sometimes, change the day to the next one.&lt;p&gt;
If you take a look at the javadoc for the HOUR field, it says the following:
&lt;p&gt;"&lt;i&gt;Field number for get and set indicating the hour of the morning or afternoon. HOUR is used for the 12-hour clock (0 - 11). Noon and midnight are represented by 0, not by 12. E.g., at 10:04:15.250 PM the HOUR is 10.&lt;/i&gt;"
&lt;p&gt;So the field should have a value between 0 and 11. If the time part of your date is in the morning, everything will work as expected. But If you have a time in the afternoon, or even at noon, something will change. Something small actually: the AM/PM field will be set to PM. The result is that setting the HOUR field to 23 will bring you to the next day at 11...
&lt;p&gt;The correct field to use for this situation is called HOUR_OF_DAY. Be bitten once, and you will remember it.&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/6i5_IKr-Ff4" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/ethdsy/entry/the_calendar_hour_trap1</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/sebastianKuebeck/entry/pauldotcom_featuring_bruce_schneier</guid>
    <title>PaulDotCom Featuring Bruce Schneier</title>
    <dc:creator>Sebastian Kübeck</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/xero0w_cK3U/pauldotcom_featuring_bruce_schneier</link>
        <pubDate>Thu, 12 Jan 2012 13:04:06 -0500</pubDate>
    <category>Security</category>
            <description>&lt;p&gt;Bruce Schneier talks about his new Book &lt;a href="http://www.schneier.com/book-lo.html"&gt;Liars and Outliers&lt;/a&gt; in the current episode of the PaulDotCom podcast.
&lt;/p&gt;
&lt;a href="http://pauldotcom.com/2012/01/pauldotcom-security-weekly-epi-233.html"&gt;
&lt;img src="http://www.jroller.com/sebastianKuebeck/resource/BruceSchneierAtPaulDocCom.jpg" border="0"&gt;
&lt;/a&gt;
&lt;p&gt;
I had to read dozens of security books while I wrote my own and in retrospect I have to say that I learned most from Bruce Schneier's &lt;a href="http://www.schneier.com/book-beyondfear.html"&gt;Beyond Fear&lt;/a&gt;. So I'm looking forward to reading his new book soon... &lt;img src="http://www.jroller.com/images/smileys/smile.gif" class="smiley" alt=":-)" title=":-)" /&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/xero0w_cK3U" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/sebastianKuebeck/entry/pauldotcom_featuring_bruce_schneier</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robwilliams/entry/an_eclipse_template_for_parameterized</guid>
    <title>An Eclipse Template for Parameterized JUnit Tests</title>
    <dc:creator>Rob Williams</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/yK5v_RlPeEk/an_eclipse_template_for_parameterized</link>
        <pubDate>Wed, 11 Jan 2012 00:25:13 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;After refusing much of any changes, especially the ugly TestDecorator fixture, after TestNG showed up, JUnit went bonkers with a  spasm of matching features. Parameterized tests were in 3.8.1, but in 4.x, they were redone with annotations. The results were rather unspectacular. Mainly because you can never really remember exactly how to put one of them together.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://bucket.ontometrics.com/images/parameterized-test-template.png" class="leftWrap" width="435" height="250"/&gt;Which makes it a perfect candidate for an eclipse template.&lt;/p&gt;

	&lt;p&gt;Developing this one turned into a nightmare. Mainly because it was the first time I needed multiple imports, and the posts I found on the internet all showed just one, didn&amp;#8216;t know that you had to list the types, comma-separated in a single var declaration. I was kind of amazed at the state of the documentation about the templating system in eclipse now: there is a lot of crap in there. Frankly, I kept thinking &amp;#8216;ugh, heuristics is still utterly lost in development: we either don&amp;#8216;t document things, or whittle them down to minute detailed schematics, hardly ever achieving a fluid balance between examples and specs.&amp;#8216; [Ok, that was kind of a long half-quoted thought.] I still wish the template system would allow me to define a var and then the same name but small first letter so I could get an instance without retyping.. ! Might be in there, who knows.&lt;/p&gt;

	&lt;p&gt;The real timesuck was the package statement in my template (I like to clear out the whole file with Apple-A/DEL) and no matter what I did, the package appears below the imports. Can eclipse really be this stupid a decade on? I finally relented and removed it for now.&lt;/p&gt;

	&lt;p&gt;Here is the template. I think it does make it quicker to setup a parameterized test, and relieves you of having to try to remember the non-intuitive way the plumbing is done.&lt;/p&gt;

	&lt;p&gt;&lt;a href="http://bucket.ontometrics.com/images/param-test-template.xml" title=""&gt;Parameterized Test Template for Eclipse&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/yK5v_RlPeEk" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robwilliams/entry/an_eclipse_template_for_parameterized</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robwilliams/entry/static_builder_extension_choices</guid>
    <title>Static Builder Extension Choices</title>
    <dc:creator>Rob Williams</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/gDFPt1E249I/static_builder_extension_choices</link>
        <pubDate>Tue, 10 Jan 2012 16:06:30 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;As has been clear on here for some time, I&amp;#8216;m pretty obsessed with the Static Builder pattern from Bloch&amp;#8216;s second edition. It&amp;#8216;s not really a builder. It&amp;#8216;s a fluent interface builder, which is not the classical version from Gang of Four that uses a Director and has multiple implementers. But the great things about it is you can see the properties being &amp;#8216;set&amp;#8216; (kind of like named parameters) and the class is immutable: you can stipulate what can only be provided at creation time without making constructors that take 20 arguments.&lt;/p&gt;

	&lt;p&gt;The problem when doing dependency injection is that eventually you will have a property that needs to be looked up in the database. For instance, consider a class called Post (if we were doing a news site) and we have a property in it called Source that tells us where this Post came from. When we create a new Post or import one, we have to lookup the source in the database and then put that into the class. Of course, we cannot do that in the builder because it doesn&amp;#8216;t have an entity manager. I have also blogged about this, about what a drag it is that this aspect of injection/persistence is left to the user despite the fact that 90% of the time it&amp;#8216;s really just boilerplate (looking up the related item by id or name (which could be id)).&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://bucket.ontometrics.com/images/static-builder.png" class="rightWrap"/&gt;Probably the most obvious idea would be to just make a Factory. The Factory could have the related repository injected, then when you ask for the new Article, you could pass the name of the source and it could look it up and inject it into the Post instance and return it. The problem with this is that the builder is gone and you are stuck having to pass all your crap through the Factory interface(s) [if it&amp;#8216;s a Factory Method, s].&lt;/p&gt;

	&lt;p&gt;There are two pretty simple solutions to this: one is to have the factory return not the built object, but a reference to the static builder. That sounds hinky when you hear it because you think &amp;#8216;wait, one of us build it,&amp;#8216; but remember, the whole idea is immutability so you have to get all the input before calling build.&lt;/p&gt;

	&lt;p&gt;The other option is to have the Factory basically take over the fluent interface. I did this recently in another place and liked the results. Basically, you have static methods in the factory that setup chaining and then a build method.&lt;/p&gt;

	&lt;p&gt;I think I will also take a whack at the boilerplate lookup problem, with the proviso that the class would provide the Source and the wrapper would simply perform a lookup to make sure it was preventing a dupe. So for instance, I could do builder.source(new Source(&amp;#8220;joeblow&amp;#8221;)) and inside the wrapper, it would pull out the source and look for it in the db. Kind of ugly. Another option would be to skip injecting the repository, rather, have the Factory create the source, or hold a default source and then inject that. One advantage to that is if you were doing a large import from a single source, you could set the default once on the factory then just build from there.&lt;/p&gt;

	&lt;p&gt;If all this sounds like it would lend itself to a Decorator, that&amp;#8216;s what I was thinking, but the problem with that is that Decorators must stand in for the decorated class, and we can&amp;#8216;t inject another implementation of the builder into the source class (Post). Going to do the class builder that wraps itself around the static builder approach.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/gDFPt1E249I" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robwilliams/entry/static_builder_extension_choices</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/HazemBlog/entry/accessing_parent_window_elements_from</guid>
    <title>Accessing parent window elements from child window in JavaScript</title>
    <dc:creator>Hazem Ahmed Saleh</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/1EH2zeSdUz4/accessing_parent_window_elements_from</link>
        <pubDate>Mon, 9 Jan 2012 18:25:27 -0500</pubDate>
    <category>Java</category>
    <category>accessing</category>
    <category>child</category>
    <category>elements</category>
    <category>from</category>
    <category>in</category>
    <category>javascript</category>
    <category>parent</category>
    <category>window</category>
            <description>&lt;br&gt;
I wrote this tip in my new wordpress blog here:&lt;br&gt;
&lt;a href="http://www.technicaladvices.com/2012/01/09/accessing-parent-window-elements-from-child-window-in-javascript/"&gt;http://www.technicaladvices.com/2012/01/09/accessing-parent-window-elements-from-child-window-in-javascript/&lt;/a&gt;.&lt;br&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/1EH2zeSdUz4" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/HazemBlog/entry/accessing_parent_window_elements_from</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/bookreview/entry/american_sniper_the_autobiography_of</guid>
    <title>American Sniper: The Autobiography of the Most Lethal Sniper in U.S. Military History</title>
    <dc:creator>evans</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/wcKiOuEyrmQ/american_sniper_the_autobiography_of</link>
        <pubDate>Mon, 9 Jan 2012 16:03:40 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;This is truly a disturbing book. However, war is supposed to be disturbing. The life of any individual is tremendously precious. Therefore to hear of someone who has killed, by official count, over 160 people should be disturbing. In the light of our everyday life it is incomprehensible. However, war is not our everyday life and is in itself incomprehensible. Chief Kyle did what he was trained to do: enter into a realm that is foreign from our lives and do the incomprehensible.&lt;/p&gt;


&lt;p&gt;I do not want my warriors, the men and women who protect me and my children, to face down the enemy and give them a real severe tongue-lashing. I want them to stop them, neutralize them, kill them. I want the threat removed and prevented from ever surfacing again. Chief Kyle did what he was supposed to do. To study and make judgements on his method from our sanitized position is illogical and insane. It is inconsistent with reality, just as our Rules of Engagement have proved to be.&lt;/p&gt;


&lt;p&gt;There are some areas in which some people will never agree with me. First and foremost, I believe &lt;a href="http://www.amazon.com/American-Sniper-Autobiography-Military-History/dp/0062082353"&gt;Chris Kyle&lt;/a&gt; is a patriot. He is an American hero. Call me what names you wish, judge me as being conservative, disillusioned, ignorant, short-sighted, immoral, unfeeling...whatever. It does not change the fact that Chief Kyle saved lives. If I were in danger and needed protection, I would only hope that it could be a Navy SEAL, preferably Chief Kyle, watching over me. Now, that would make me feel safe. &lt;/p&gt;


&lt;p&gt;See the &lt;a href="http://www.amazon.com/American-Sniper-Autobiography-Military-History/dp/0062082353"&gt;sample copy here&lt;/a&gt; &gt;&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/wcKiOuEyrmQ" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/bookreview/entry/american_sniper_the_autobiography_of</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/HazemBlog/entry/window_open_invalid_argument_in</guid>
    <title>window.open Invalid argument in IE</title>
    <dc:creator>Hazem Ahmed Saleh</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/qFgdKtqd8Mc/window_open_invalid_argument_in</link>
        <pubDate>Sun, 8 Jan 2012 16:56:13 -0500</pubDate>
    <category>Java</category>
    <category>argument</category>
    <category>ie</category>
    <category>invalid</category>
    <category>javascript</category>
    <category>window.open</category>
            <description>&lt;p&gt;I wrote this tip in my new wordpress blog here:&lt;br/&gt;
&lt;a href="http://www.technicaladvices.com/2012/01/08/window-open-invalid-argument-in-ie/"&gt;http://www.technicaladvices.com/2012/01/08/window-open-invalid-argument-in-ie/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/qFgdKtqd8Mc" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/HazemBlog/entry/window_open_invalid_argument_in</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/mert/entry/anatomy_of_a_mock_test</guid>
    <title>Anatomy of a Mock Test</title>
    <dc:creator>Mert Caliskan</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/g7jJZvvKFek/anatomy_of_a_mock_test</link>
        <pubDate>Sun, 8 Jan 2012 11:41:12 -0500</pubDate>
    <category>Java</category>
    <category>junit</category>
    <category>mockito</category>
    <category>test</category>
    <category>testing</category>
            <description>&lt;br/&gt;
I love mockito and trying to use every bit of it. It offers a powerful stubbing and verification mechanism for unit testing. 
As the author states, Mockito is a mocking framework that tastes really good. That’s for sure! So with this article I'll be stating 
how to configure the mockito and I'll focus on the bits and pieces of testing with mockito with a simple example and how the annotations are used to shape it up.
I believe it's the way to get to understand the capabilities of this framework.
&lt;br/&gt;&lt;br/&gt;
To get the latest version of mockito goodies just configure your maven project with the mockito dependency; along with the junit dependency of course,&lt;br/&gt;
&lt;br/&gt;
&lt;pre&gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;junit&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;junit&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;4.10&amp;lt;/version&amp;gt;
            &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
        &amp;lt;/dependency&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.mockito&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;mockito-all&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;1.9.0&amp;lt;/version&amp;gt;
            &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
        &amp;lt;/dependency&amp;gt;
&lt;/pre&gt;
&lt;br/&gt;
You should be resolving the artifact from central http://repo1.maven.org/maven2/org/mockito repo. So here is the simple testing example.&lt;br/&gt;
&lt;br/&gt;
&lt;pre&gt;
@RunWith(MockitoJUnitRunner.class)
public class MyServiceImplTest {

    @Mock
    MyServiceHelper helper;

    @InjectMocks
    private MyServiceImpl myServiceImpl = new MyServiceImpl();

    @Captor
    ArgumentCaptor&amp;lt;ApplicantProgress&amp;gt; argument;

    @Spy
    Applicant applicant = new Applicant();

    @Test
    public void applyApprovalStateToApplicant(){
        myServiceImpl.initiateApprovalState(applicant);

        verify(helper).approve(argument.capture());
        assertThat(argument.getValue().getStatus(), is(ApplicantStatus.APPROVED));
    }
}

and the rest of the code,

class Applicant {
}

class ApplicantProgress {
    private ApplicantStatus applicantStatus = ApplicantStatus.PENDING;

    public ApplicantStatus getStatus() {
        return applicantStatus;
    }

    public void setStatus(ApplicantStatus applicantStatus) {
        this.applicantStatus = applicantStatus;
    }
}

enum ApplicantStatus {
    PENDING,
    APPROVED,
    REJECTED;
}

public interface MyServiceHelper {
    void approve(ApplicantProgress progress);
}

public class MyServiceImpl {

    private MyServiceHelper helper;

    public void initiateApprovalState(Applicant applicant) {
        ApplicantProgress progress = new ApplicantProgress();
        progress.setStatus(ApplicantStatus.APPROVED);

        helper.approve(progress);
    }

    public void setHelper(MyServiceHelper helper) {
        this.helper = helper;
    }
}
&lt;/pre&gt;
&lt;br/&gt;
Here concrete MyServiceImpl implementation is being tested. The initiateApprovalState method gets invoked with an applicant.
MyServiceImpl contains a helper that delegates its actual approve process to. So that why an argument is set to capture the ApplicantProgress which is passed
as an argument to the helper's method. So helper gets verified after the actual invoke of the concrete and equality is asserted for the argument captor, which is
an ApplicantProgress with status value ApplicantStatus.APPROVED. Here are some details of the annotations that are used within the test.
&lt;br/&gt;&lt;br/&gt;
@RunWith(MockitoJUnitRunner.class): The starting point for creating a mockito testing is pointing RunWith annotation of 
JUnit to use the MockitoJUnitRunner class. This will initialize the mocks annotated with @Mock. Mocks will get initialized before each test method.
&lt;br/&gt;&lt;br/&gt;
@InjectMocks: This annotation provides injection of mocks and spy’s automatically. It supports setter injection and with mockito version 1.9.x 
it now also supports constructor injection.
&lt;br/&gt;&lt;br/&gt;
@Mock: This annotation enables the actual mock creation.
&lt;br/&gt;&lt;br/&gt;
@Spy: This annotation enables the shorthand wrapping of field instances in a spy object. So it will proxy the real implementation with a CGLib proxy. 
That will give the ability to stub the calls for the spied instance and return a mocked value.
&lt;br/&gt;&lt;br/&gt; 	
@Captor: This is another handy annotation that does the job of ArgumentCaptor class. It's used to capture argument values for further assertions.
&lt;br/&gt;&lt;br/&gt; 
&lt;b&gt;Integrating Jenkins Emma Plugin for getting Code Coverage&lt;/b&gt;
&lt;br/&gt;&lt;br/&gt;
Currently in one of my projects (which is a total Microsoft stack, sadly) we’re building a web application 
adapter to conduct as gate to the legacy systems written in Java. The second thing that we’d done after 
introducing maven project structure was installing JenkinsCI for continuous integration. 
Of course we needed a test coverage report immediately per package; we ended up integrating Jenkins Emma Plugin on top of it. 
Likewise you can get your mockito tests coverage reports with this nice plugin. Just get your hands on it!
&lt;br/&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/g7jJZvvKFek" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/mert/entry/anatomy_of_a_mock_test</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/bookreview/entry/python_programming_for_hackers_and</guid>
    <title>Python Programming for Hackers and Reverse Engineers</title>
    <dc:creator>evans</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/nh0tPTksmxs/python_programming_for_hackers_and</link>
        <pubDate>Sun, 8 Jan 2012 08:52:40 -0500</pubDate>
    <category>Java</category>
            <description>&lt;p&gt;&lt;a href="http://www.amazon.com/Gray-Hat-Python-Programming-Engineers/dp/1593271921"&gt;&lt;img style="padding:5px;" src="http://akamaicovers.oreilly.com/images/9781593271923/cat.gif" align="right" height="170" width="120"&gt;&lt;/a&gt;In general the book explains how to &lt;a href="http://www.amazon.com/Gray-Hat-Python-Programming-Engineers/dp/1593271921"&gt;watch live programs&lt;/a&gt; run and reverse engineer how they work by observing the programs behaviour in real time. The author does an excellent job of showing how to do this via Python PyDbg and the Immunity Debugger.&lt;/p&gt;


&lt;p&gt;The topics covered include hooking with PyDbg and Immunity, DLL and code injection, fuzzing common bugs, and working with drivers. All of these are covered well with lots of explanation and example.&lt;/p&gt;


&lt;p&gt;The best part of the book is the first area though. Step by step a simple, working debugger is built. At each step the author explains how the CPU allows for program debugging, how debuggers can intercept the currently running code, and how to perform three types of debugging. Because the reader gets to build the debugger line by line, it is easy to see how the debuggers work internally. The amount of information learned in this part of the book makes it worth getting just in the first four chapters.&lt;/p&gt;


&lt;p&gt;For the next two thirds of the book, the reader is shown how to use the &lt;a href="http://www.amazon.com/Gray-Hat-Python-Programming-Engineers/dp/1593271921"&gt;PyDbg and Immunity&lt;/a&gt;. Since the basic operation of debuggers has already been covered, it is much easier to understand what the debuggers are doing and how they are able to interact with the running executables.&lt;/p&gt;


&lt;p&gt;This book is excellent for students and programmers alike. A definite must have for Computer Science students.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/nh0tPTksmxs" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/bookreview/entry/python_programming_for_hackers_and</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/mert/entry/dependencies_for_hbm2ddl_plugin</guid>
    <title>Dependencies for hbm2ddl plugin</title>
    <dc:creator>Mert Caliskan</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/KTtdYjZHCPc/dependencies_for_hbm2ddl_plugin</link>
        <pubDate>Sat, 7 Jan 2012 16:06:21 -0500</pubDate>
    <category>Java</category>
            <description>If you encounter with error,
&lt;br/&gt;&lt;br/&gt;
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl failed: sun.reflect.annotation.EnumConstantNotPresentExceptionProxy
&lt;br/&gt;&lt;br/&gt;
while executing hbm2ddl of hibernate3-maven-plugin then consider adding hibernate dependency to the plugin definition like,
&lt;br/&gt;&lt;br/&gt;
&lt;pre&gt;
&amp;lt;plugin&amp;gt;&lt;br/&gt;
&amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;&lt;br/&gt;
	&amp;lt;artifactId&amp;gt;hibernate3-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;br/&gt;
	&amp;lt;version&amp;gt;2.2&amp;lt;/version&amp;gt;&lt;br/&gt;
	&amp;lt;configuration&amp;gt;&lt;br/&gt;
		&amp;lt;components&amp;gt;&lt;br/&gt;
			&amp;lt;component&amp;gt;&lt;br/&gt;
				&amp;lt;name&amp;gt;hbm2ddl&amp;lt;/name&amp;gt;&lt;br/&gt;
				&amp;lt;implementation&amp;gt;annotationconfiguration&amp;lt;/implementation&amp;gt;&lt;br/&gt;
			&amp;lt;/component&amp;gt;&lt;br/&gt;
		&amp;lt;/components&amp;gt;&lt;br/&gt;
		&amp;lt;componentProperties&amp;gt;&lt;br/&gt;
			&amp;lt;export&amp;gt;true&amp;lt;/export&amp;gt;&lt;br/&gt;
			&amp;lt;drop&amp;gt;true&amp;lt;/drop&amp;gt;&lt;br/&gt;
			&amp;lt;create&amp;gt;true&amp;lt;/create&amp;gt;&lt;br/&gt;
			&amp;lt;update&amp;gt;false&amp;lt;/update&amp;gt;&lt;br/&gt;
			&amp;lt;jdk5&amp;gt;true&amp;lt;/jdk5&amp;gt;&lt;br/&gt;
			&amp;lt;propertyfile&amp;gt;target/classes/maven.properties&amp;lt;/propertyfile&amp;gt;&lt;br/&gt;
		&amp;lt;/componentProperties&amp;gt;&lt;br/&gt;
	&amp;lt;/configuration&amp;gt;&lt;br/&gt;
	&amp;lt;executions&amp;gt;&lt;br/&gt;
		&amp;lt;execution&amp;gt;&lt;br/&gt;
			&amp;lt;phase&amp;gt;process-test-resources&amp;lt;/phase&amp;gt;&lt;br/&gt;
			&amp;lt;goals&amp;gt;&lt;br/&gt;
				&amp;lt;goal&amp;gt;hbm2ddl&amp;lt;/goal&amp;gt;&lt;br/&gt;
			&amp;lt;/goals&amp;gt;&lt;br/&gt;
		&amp;lt;/execution&amp;gt;&lt;br/&gt;
	&amp;lt;/executions&amp;gt;&lt;br/&gt;
	&amp;lt;dependencies&amp;gt;&lt;br/&gt;
		&amp;lt;dependency&amp;gt;&lt;br/&gt;
			&amp;lt;groupId&amp;gt;org.hibernate&amp;lt;/groupId&amp;gt;&lt;br/&gt;
			&amp;lt;artifactId&amp;gt;hibernate-core&amp;lt;/artifactId&amp;gt;&lt;br/&gt;
			&amp;lt;version&amp;gt;3.6.9.Final&amp;lt;/version&amp;gt;&lt;br/&gt;
		&amp;lt;/dependency&amp;gt;&lt;br/&gt;
	&amp;lt;/dependencies&amp;gt;&lt;br/&gt;
&amp;lt;/plugin&amp;gt;&lt;br/&gt;
&lt;/pre&gt;
&lt;br/&gt;&lt;br/&gt;
if you want to see the details of the exception just run the maven with -X.
&lt;br/&gt;&lt;br/&gt;
[ERROR] Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl (default) on project X: Execution default of goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl failed: sun.reflect.annotation.EnumConstantNotPresentExceptionProxy -&gt; [Help 1]&lt;br/&gt;
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl (default) on project ebtam-core: Execution default of goal &lt;br/&gt;org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl failed: sun.reflect.annotation.EnumConstantNotPresentExceptionProxy&lt;br/&gt;
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)&lt;br/&gt;
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojioExecutor.java:153)&lt;br/&gt;
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)&lt;br/&gt;
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)&lt;br/&gt;
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)&lt;br/&gt;
	at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)&lt;br/&gt;
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)&lt;br/&gt;
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)&lt;br/&gt;
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)&lt;br/&gt;
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)&lt;br/&gt;
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)&lt;br/&gt;
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)&lt;br/&gt;
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br/&gt;
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br/&gt;
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br/&gt;
	at java.lang.reflect.Method.invoke(Method.java:597)&lt;br/&gt;
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)&lt;br/&gt;
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)&lt;br/&gt;
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)&lt;br/&gt;
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)&lt;br/&gt;
	at org.codehaus.classworlds.Launcher.main(Launcher.java:47)&lt;br/&gt;
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br/&gt;
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br/&gt;
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br/&gt;
	at java.lang.reflect.Method.invoke(Method.java:597)&lt;br/&gt;
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)&lt;br/&gt;
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl failed: sun.reflect.annotation.EnumConstantNotPresentExceptionProxy&lt;br/&gt;
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)&lt;br/&gt;
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)&lt;br/&gt;
	... 25 more&lt;br/&gt;
Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.EnumConstantNotPresentExceptionProxy
	at sun.reflect.annotation.AnnotationParser.parseEnumArray(AnnotationParser.java:673)
	at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:462)
	at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286)
	at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222)
	at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
	at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
	at java.lang.reflect.Method.declaredAnnotations(Method.java:693)
	at java.lang.reflect.Method.getAnnotation(Method.java:679)
	at java.lang.reflect.AccessibleObject.isAnnotationPresent(AccessibleObject.java:168)
	at org.hibernate.annotations.common.reflection.java.JavaAnnotationReader.isAnnotationPresent(JavaAnnotationReader.java:27)
	at org.hibernate.annotations.common.reflection.java.JavaXAnnotatedElement.isAnnotationPresent(JavaXAnnotatedElement.java:43)
	at org.hibernate.cfg.AnnotationBinder.mustBeSkipped(AnnotationBinder.java:1111)
	at org.hibernate.cfg.AnnotationBinder.addProperty(AnnotationBinder.java:1091)
	at org.hibernate.cfg.AnnotationBinder.addElementsOfAClass(AnnotationBinder.java:1038)
	at org.hibernate.cfg.AnnotationBinder.getElementsToProcess(AnnotationBinder.java:859)
	at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:667)
	at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546)
	at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291)
	at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1148)
	at org.codehaus.mojo.hibernate3.configuration.AbstractComponentConfiguration.getConfiguration(AbstractComponentConfiguration.java:57)
	at org.codehaus.mojo.hibernate3.exporter.Hbm2DDLExporterMojo.doExecute(Hbm2DDLExporterMojo.java:87)
	at org.codehaus.mojo.hibernate3.HibernateExporterMojo.execute(HibernateExporterMojo.java:152)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
	... 26 more
[ERROR]&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/KTtdYjZHCPc" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/mert/entry/dependencies_for_hbm2ddl_plugin</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/HazemBlog/entry/typeerror_this_arrayoftoplevelitems_is_undefined</guid>
    <title>TypeError: this._arrayOfTopLevelItems is undefined</title>
    <dc:creator>Hazem Ahmed Saleh</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/hawJkY_8df4/typeerror_this_arrayoftoplevelitems_is_undefined</link>
        <pubDate>Sat, 7 Jan 2012 13:12:38 -0500</pubDate>
    <category>Java</category>
    <category>dojo</category>
    <category>dojo.fromjson</category>
    <category>error</category>
    <category>typeerror</category>
    <category>web2</category>
    <category>_arrayoftoplevelitems</category>
            <description>&lt;p&gt;I wrote this tip in my new wordpress blog here:&lt;br/&gt;
&lt;a href="http://www.technicaladvices.com/2012/01/07/typeerror-this-_arrayoftoplevelitems-is-undefined/"&gt;http://www.technicaladvices.com/2012/01/07/typeerror-this-_arrayoftoplevelitems-is-undefined/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/hawJkY_8df4" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/HazemBlog/entry/typeerror_this_arrayoftoplevelitems_is_undefined</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/robertburrelldonkin/entry/agile_yorkshire_an_extreme_hour</guid>
    <title>Agile Yorkshire: An Extreme Hour, Tue Jan 10</title>
    <dc:creator>robert burrell donkin</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/ox0DCBlLNro/agile_yorkshire_an_extreme_hour</link>
        <pubDate>Sat, 7 Jan 2012 06:14:16 -0500</pubDate>
    <category>Development</category>
            <description>&lt;p&gt;
&lt;a href='http://uk.linkedin.com/pub/grant-crofton/4/187/65a' rel='tag'&gt;Grant Crofton&lt;/a&gt; and &lt;a href='http://robertburrelldonkin.name'&gt;I&lt;/a&gt; are preparing an &lt;a href='http://c2.com/xp/ExtremeHour.html' rel='tag'&gt;Extreme Hour&lt;/a&gt; with a few &lt;a href='http://www.paperprototyping.com/what.html'&gt;twists&lt;/a&gt; contrasting &lt;abbr title='Extreme Programming'&gt;&lt;a href='http://www.extremeprogramming.org/' rel='tag'&gt;XP&lt;/a&gt;&lt;/abbr&gt; and methods like &lt;a href='http://www.scrum.org/' rel='tag'&gt;Scrum&lt;/a&gt;. All welcome, and &amp;mdash; if you can make &amp;mdash; it'd be great to see you for &lt;a href='http://www.agileyorkshire.org/' rel='tag'&gt;Agile Yorkshire&lt;/a&gt; on Tuesday January 10 at &lt;a href='http://www.oldbroadcastinghouse.com/' rel='tag'&gt;Old Broadcasting House&lt;/a&gt;, &lt;a href='http://www.ntileeds.co.uk/old-broadcasting-house/'&gt;Leeds&lt;/a&gt;. Details &lt;a href='http://www.agileyorkshire.org/event-announcements/10thjanuaryanextremehour'&gt;here&lt;/a&gt;.
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/ox0DCBlLNro" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/robertburrelldonkin/entry/agile_yorkshire_an_extreme_hour</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/dmdevito/entry/adobe_flex_air_sound_just</guid>
    <title>Adobe Flex+AIR sound just like Firefox</title>
    <dc:creator>Dominique De Vito</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/zeBNJ9N1LM8/adobe_flex_air_sound_just</link>
        <pubDate>Wed, 4 Jan 2012 10:10:09 -0500</pubDate>
    <category>Developer</category>
            <description>&lt;p&gt;
I don't use Flex or AIR, but as an architect,
I have finally got how to position Flex+AIR
as rich client platform.
Well, I think I have found 
a good comparison for Flex+AIR (that is, 
the progamming model and its associated platform)
in order to 
get a grasp of its features.
This comparison involves Flex+AIR and Firefox.
&lt;/p&gt;
&lt;p&gt;
Let's compare Flex+AIR and Firefox in order to show they are very close:
&lt;br/&gt;
- Both platforms include an HTML component, as Firefox is a browser itself,
while 
AIR embeds WebKit
(learn 
&lt;a href="http://www.riacodes.com/flex/webbrowser-in-air-with-flex/"&gt;here&lt;/a&gt;
how to extend the Flex+AIR HTML component for creating your own web browser).
&lt;br/&gt;
- They understand and leverage both web (HTML/CSS/JavaScript) technologies
&lt;br/&gt; 
- Both platforms extend web technologies and offer then to develop rich clients:
the Flex programming model is based on
&lt;a href="http://en.wikipedia.org/wiki/MXML"&gt;MXML&lt;/a&gt;
and 
&lt;a href="http://en.wikipedia.org/wiki/ActionScript"&gt;ActionScript&lt;/a&gt;,
while
the 
Firefox programming model relies on
&lt;a href="http://en.wikipedia.org/wiki/XUL"&gt;XUL&lt;/a&gt;
and 
JavaScript.
They both target
an XML-based  definition of GUI, and 
a dialect of the
&lt;a href="http://en.wikipedia.org/wiki/ECMAScript"&gt;ECMAScript&lt;/a&gt;
language
(which is the base of ActionScript or JavaScript).
The runtime associated with Flex is AIR, while the one 
associated with XUL/JS could be Firefox (AFAIK) or part of it
(&lt;a href="https://developer.mozilla.org/en/XULRunner"&gt;XULRunner&lt;/a&gt;).
&lt;br/&gt;
- They are all expected to be open source or open sourced
&lt;/p&gt;

&lt;p&gt;
So, my idea
is that a valuable mind model
is, at first sight (!), to think about Flex+AIR as a Firefox sibling.
&lt;/p&gt;


&lt;p&gt;
&lt;u&gt;May the Flex+AIR future rely on providing a "corporate browser" ?&lt;/u&gt;
&lt;/p&gt;

&lt;p&gt;
While Flex+AIR and Firefox are siblings
and share quite a lot of similar features,
they are identified as coming from different
horizons: Flex+AIR are associated with
rich client development, while Firefox is 
known, first, as a web browser.
While Flex+AIR look like at a tipping point
for its future (as Flex is now incubated in Apache community),
I just wonder if it would be valuable to market AIR both as a browser and for rich client programming, 
just like Firefox.
Well, 
IE 6 showed us 
there is a place for a "corporate browser", used for 
intranet applications,
and 
while 
&lt;a href="https://wiki.mozilla.org/Enterprise/Firefox/ExtendedSupport:Proposal"&gt;Firefox ESR&lt;/a&gt;
(Extended Support Release)
is still not available, it looks like 
marketing also AIR as a browser may be an interesting move.
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/zeBNJ9N1LM8" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/dmdevito/entry/adobe_flex_air_sound_just</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/sebastianKuebeck/entry/jeff_sutherland_are_agile_teams</guid>
    <title>Jeff Sutherland: Are Agile Teams Truly Agile?</title>
    <dc:creator>Sebastian Kübeck</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/ZwMItXPrn6A/jeff_sutherland_are_agile_teams</link>
        <pubDate>Wed, 4 Jan 2012 08:04:46 -0500</pubDate>
    <category>Developer</category>
            <description>&lt;p&gt;
Michael Floyd's interview with Jeff Sutherland from the Agile 2011 is now online.
&lt;/p&gt;
&lt;a href="http://www.infoq.com/interviews/jeff-sutherland-agile-teams"&gt;&lt;img src="http://www.jroller.com/sebastianKuebeck/resource/JeffSutherlandAgile2011.jpg" border="0"/&gt;
&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/ZwMItXPrn6A" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/sebastianKuebeck/entry/jeff_sutherland_are_agile_teams</feedburner:origLink></item>
    <item>
    <guid isPermaLink="false">http://www.jroller.com/sebastianKuebeck/entry/robert_martin_architecture_the_lost</guid>
    <title>Robert Martin: Architecture the Lost Years </title>
    <dc:creator>Sebastian Kübeck</dc:creator>
    <link>http://feeds.dzone.com/~r/jroller/frontpage/~3/iQAgsugqsxA/robert_martin_architecture_the_lost</link>
        <pubDate>Tue, 3 Jan 2012 10:01:27 -0500</pubDate>
    <category>Developer</category>
            <description>&lt;p&gt;Robert Martin's Keynote at the Ruby Midwest 2011 is now online...&lt;/p&gt;

&lt;a href="http://confreaks.net/videos/759-rubymidwest2011-keynote-architecture-the-lost-years"&gt;&lt;img src="http://www.jroller.com/sebastianKuebeck/resource/RobertMartinKeynoteRailsMidwest2011.jpg" border="0"&gt;&lt;/a&gt;
&lt;p&gt;
And here is Jeremy McAnally's review &lt;a href="http://omgbloglol.com/post/15190003367/bad-or-my-unfortunately-unfavorable-review-of-bob"&gt;Bad (or, my unfortunately unfavorable review of Bob Martin’s Ruby Midwest keynote)&lt;/a&gt; which is, as Robert Martin pointed out correctly, longer than the &lt;a href="http://blog.8thlight.com/uncle-bob/2011/11/22/Clean-Architecture.html"&gt;original post&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Update:&lt;/b&gt; Robert Martin added some &lt;a href="http://omgbloglol.com/post/15190003367/bad-or-my-unfortunately-unfavorable-review-of-bob#disqus_thread"&gt;Comments&lt;/a&gt; to the blog post. Unfortunately, Firefox fails to render them.
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/jroller/frontpage/~4/iQAgsugqsxA" height="1" width="1"/&gt;</description>          <feedburner:origLink>http://www.jroller.com/sebastianKuebeck/entry/robert_martin_architecture_the_lost</feedburner:origLink></item>
  </channel>
</rss>

