<?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.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:posterous="http://posterous.com/help/rss/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>The Lazy Dev</title>
    <link>http://lazydev.ildella.net</link>
    <description>Do less. Develop more. </description>
    <generator>posterous.com</generator>
    <link xmlns="http://www.w3.org/2005/Atom" href="http://posterous.com/api/sup_update#2d5812e32" type="application/json" rel="http://api.friendfeed.com/2008/03#sup" />
    
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TheLazyDev" /><feedburner:info uri="thelazydev" /><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="hub" href="http://posterous.superfeedr.com/" /><item>
      <pubDate>Mon, 27 Feb 2012 03:05:00 -0800</pubDate>
      <title>RedMonk Programming Language Rankings: CoffeeScript and Java Make Gains</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/wTVfDwxWog8/redmonk-programming-language-rankings-coffees</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/redmonk-programming-language-rankings-coffees</guid>
      <description>&lt;p&gt;
	&lt;div class="posterous_bookmarklet_entry"&gt;
      &lt;blockquote class="posterous_long_quote"&gt;If you were predicting Java's demise, says O'Grady, then you might want to reconsider. O'Grady says that it not only has the second most associated tags on Stack Overflow (&lt;a href="http://stackoverflow.com/tags" title="opens in new window" target="_blank"&gt;C# is first, PHP is third as of this writing&lt;/a&gt;), but it's the second highest growth language on GitHub and grew faster than the average on Stack.&lt;/blockquote&gt;

&lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.readwriteweb.com/hack/2012/02/redmonk-programming-language-r.php?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+readwriteweb%2Fhack+%28ReadWriteHack%29"&gt;readwriteweb.com&lt;/a&gt;&lt;/div&gt;
    &lt;p&gt;And those are the languages, with javascript behind the scenes, we're using the most. In the close future, I see the team start learning Clojure.&lt;/p&gt;&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/redmonk-programming-language-rankings-coffees"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/redmonk-programming-language-rankings-coffees#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/wTVfDwxWog8" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/redmonk-programming-language-rankings-coffees</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 07 Aug 2011 14:49:00 -0700</pubDate>
      <title>Mark Shuttleworth » Blog Archive » Fantastic engineering management is…</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/HrvQnL8Eb60/mark-shuttleworth-blog-archive-fantastic-engi</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/mark-shuttleworth-blog-archive-fantastic-engi</guid>
      <description>&lt;p&gt;
	&lt;div class="posterous_bookmarklet_entry"&gt;
      &lt;blockquote class="posterous_short_quote"&gt;Great engineering depends on deep, uninterrupted focus. But great management is all about handling interrupts efficiently so that engineers don’t have to.&lt;/blockquote&gt;

&lt;div class="posterous_quote_citation"&gt;via &lt;a href="http://www.markshuttleworth.com/archives/694"&gt;markshuttleworth.com&lt;/a&gt;&lt;/div&gt;
    &lt;p&gt;&lt;/p&gt;&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/mark-shuttleworth-blog-archive-fantastic-engi"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/mark-shuttleworth-blog-archive-fantastic-engi#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/HrvQnL8Eb60" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/mark-shuttleworth-blog-archive-fantastic-engi</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 04 Aug 2011 05:09:35 -0700</pubDate>
      <title>A simple choice</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/a-Slh2jiTc0/a-simple-choice</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/a-simple-choice</guid>
      <description>&lt;p&gt;
	Yesterday a friend asked me a suggestion to quickly put online a form to gather email of people interested in a service he is promoting.&lt;br /&gt;I told him to go with &lt;a href="http://wufoo.com"&gt;http://wufoo.com&lt;/a&gt;. Or Launchrock, but it&amp;#39;s still in private beta. Anyway, my advice was to use something existent and not to reimplement it. &lt;p /&gt; He was a little concerned: &amp;quot;but does the Wufoo logo will appear? Does not people think that if we have to used something like that we will not be able to build the service we are promising to?&amp;quot; &lt;p /&gt;Is that a reasonable concern? &lt;br /&gt; As an engineer and a guy that follows daily the evolution of the web, I think exactly the opposite. People that would reimplement a whole registration mechanism just to gather emails are not good candidate to build software that works and sticks. &lt;br /&gt; Cause they make some basic and common mistakes:&lt;p /&gt;1. reinvent the wheel&lt;br /&gt;2. over-engineering&lt;p /&gt;In using a Wufoo like solution, you prove to know your world, using the right tools for the right purpose and not just reimplement everything with your php/rails-mysql or java-oracle or whatever is your usual development stack over and over again.&lt;p /&gt; Also, as a third bonus point, this is the very basic but indeed important example of what cloud computing means, and what &amp;quot;thinking cloud&amp;quot; means.
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/a-simple-choice"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/a-simple-choice#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/a-Slh2jiTc0" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/a-simple-choice</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 03 Aug 2011 04:08:44 -0700</pubDate>
      <title>Looking for developers for a new Startup in Milan</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/vCgasXufHqE/looking-for-developers-for-a-new-startup-in-m</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/looking-for-developers-for-a-new-startup-in-m</guid>
      <description>&lt;p&gt;
	I am assembling the software developers team for a new, financed startup.&lt;p /&gt;The final product will be a web service that will let user engage in videogame tournaments and matches and will focus the most famous games in the multiplayer scenario.&lt;p /&gt; The team will build the new product from scratch. We are interested in experienced developers as well in younger ones. We are not considering applications from people with zero or almost zero experience. &lt;p /&gt;The development will start in September 2011 in Milan. There&amp;#39;s a very high probability that the team will be relocated in London after a few months of development or immediately after the public launch.&lt;p /&gt; The development will require some months and the team will be dedicated and committed to the build and launch of the product. The company is interested in a team that will remain in the company after the project is launched, to continue working on improvements on the product. &lt;p /&gt; There is not any strict technological requirement to apply for this position. My personal background &lt;a href="http://danieledellafiore.emurse.com/"&gt;is public&lt;/a&gt; but I will consider and choose technologies after the team is formed and not vice versa. Also, the team will be involved in the upfront analysis and extimation so to build the release schedule together.&lt;p /&gt; For any information feel free to contact me personally.&lt;br /&gt;Daniele Dellafiore&lt;br /&gt;&lt;a href="http://twitter.com/ildella"&gt;@ildella&lt;/a&gt;&lt;br /&gt;ildella at gmail dot com
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/looking-for-developers-for-a-new-startup-in-m"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/looking-for-developers-for-a-new-startup-in-m#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/vCgasXufHqE" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/looking-for-developers-for-a-new-startup-in-m</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 28 Jul 2011 14:34:41 -0700</pubDate>
      <title>What's next for me?</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/pmovlmfZMv8/whats-next-for-me</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/whats-next-for-me</guid>
      <description>&lt;p&gt;
	Starting in September, I&amp;#39;ll work close with &lt;a href="http://www.telnext.com" target="_blank"&gt;Telnext&lt;/a&gt;, which has been my client in the last year.&lt;br /&gt;&lt;div class="gmail_quote"&gt;This is a big is news itself: an old client who still want to deal with me. Amazing. Other big news, I will be committed to a company and a team since a long time. The reasons are, mainly, that they&amp;#39;re nice people, a good company and we share vision. &lt;p /&gt; What will we do? Telnext business is about software consulting and development for many different customers. The first word is &amp;quot;cloud&amp;quot;, the second is &amp;quot;integration&amp;quot; and the third is &amp;quot;SalesForceDotCom&amp;quot; and related platforms.&lt;p /&gt; Telnext is growing also thanks to the great traction that Salesforce has these years, but Telnext is not about reselling CRM licenses or customizing forms.&lt;br /&gt;Telnext is all about building new products and integrating in the cloud and on-premise systems.&lt;br /&gt; Telnext works to drive its customers in the &amp;quot;road to cloud&amp;quot; and to develop working and beautiful products.&lt;p /&gt; With a unique and well made combination of engineers and designers, Telnext delivers first class applications that looks good, are usable, leverage the ease of development, quick time to market, stability and scalability of the &lt;a href="http://force.com" target="_blank"&gt;force.com&lt;/a&gt; platform and integrate with the rest of the world using the most modern open source technologies and Web APIs.&lt;p /&gt; Also, in the last months, we started to explore different business opportunities other than consulting and development: creating solutions for many customers allow us to create prototypes that will eventually become products. &lt;a href="http://pipelean.com/" target="_blank"&gt;Pipelean&lt;/a&gt; is the first example of what we are doing here.&lt;p /&gt; With a more close relationship and a growing team of engineers and designers, we aim to achieve even better results and to create more and more beautiful and interesting solutions and products.&lt;p /&gt;Looking forward starting to work with you guys.&lt;br /&gt; I can see a sea of opportunities, that looks like the sea of Sardinia in front of me as I type ;)&lt;p /&gt;&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/whats-next-for-me"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/whats-next-for-me#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/pmovlmfZMv8" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/whats-next-for-me</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 24 Jun 2011 09:58:00 -0700</pubDate>
      <title>Eclipse Indigo: I am touched</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/2WF3OlTo4Ls/eclipse-indigo-i-am-touched</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/eclipse-indigo-i-am-touched</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Screenshot11" height="401" src="http://getfile0.posterous.com/getfile/files.posterous.com/lazydev/ts1x2umcA9E9HD3s5XmgDhqc2Fr3fRfTvZvE7275W4PXsxicINJrIBWRffkf/screenshot11.png" width="421" /&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;I've downloaded Eclipse 3.7 final, codename Indigo, Java Edition (not JEE). &lt;br /&gt;As expected it has Maven integration by default, and that's good but &lt;br /&gt;is not the real good news. &lt;p /&gt; The good news is that it works great, more than I could even dream. &lt;br /&gt;The integration exists and comes without any negative effect: you can &lt;br /&gt;just import Maven project by default. &lt;p /&gt; What is great is that when you import a project, Eclipse analyzes the &lt;br /&gt;POM and propose you to install some plugins afrter it: so while importing my &lt;br /&gt;projects Eclipse asked me to install WTP integration and another plugin &lt;br /&gt;dedicated to OSGI, for example. And after the restart, all the existing projects &lt;br /&gt;take advanteges of the new plugin and I had to do nothing. Going to Preferences | Maven | Discovery will show all the catalog.&lt;p /&gt; It's not finished. I installed Spring Tools Suite from &lt;br /&gt;&lt;a href="http://www.springsource.org/node/3151"&gt;http://www.springsource.org/node/3151&lt;/a&gt; and not only installation was &lt;br /&gt;smooth and working, but after the restart all the spring based &lt;br /&gt;projects gained the Spring Nature again without doing nothing. The &lt;br /&gt;project explorer also show a nice organized view of a project. &lt;p /&gt; From Eclipse Marketplace I quickly added Subclipse, EGit and MoreUnit &lt;br /&gt;and I'm ready to go. &lt;p /&gt; First Eclipse release I'm really happy about since, I thing, 3.2. At &lt;br /&gt;those time was the Eclipse features to be important: new refactoring, &lt;br /&gt;new automation etc... Since a few years what I was missing more the &lt;br /&gt;lack of integration with the project management (maven) and &lt;br /&gt;application configuration (spring). &lt;p /&gt; Now the gap has been filled. Good work. &lt;p /&gt; &lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/eclipse-indigo-i-am-touched"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/eclipse-indigo-i-am-touched#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/2WF3OlTo4Ls" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="401" width="421" url="http://getfile0.posterous.com/getfile/files.posterous.com/lazydev/ts1x2umcA9E9HD3s5XmgDhqc2Fr3fRfTvZvE7275W4PXsxicINJrIBWRffkf/screenshot11.png">
        <media:thumbnail height="401" width="421" url="http://getfile0.posterous.com/getfile/files.posterous.com/lazydev/ts1x2umcA9E9HD3s5XmgDhqc2Fr3fRfTvZvE7275W4PXsxicINJrIBWRffkf/screenshot11.png" />
      </media:content>
    <feedburner:origLink>http://lazydev.ildella.net/eclipse-indigo-i-am-touched</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 19 Jun 2011 09:25:00 -0700</pubDate>
      <title>Artivio - The Making of - Overview</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/kuGzMj-hlh0/artivio-the-making-of-overview</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/artivio-the-making-of-overview</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Artivio is project I made that I will launch for private beta in the next month. It is mostly a CMS for artworks: pictures, metadata, search... nothing more than this for now, but I'm actually quite satisfied of the state of the project, form different reasons:&lt;p /&gt; First, Artivio now &lt;strong&gt;does well what it does&lt;/strong&gt;. It's still basic but already useful and it works fine.&lt;br /&gt;Second, the "&lt;strong&gt;platform&lt;/strong&gt;" that is emerged allows me to create a new similar site with reasonable low effort and with a well defined architecture. &lt;br /&gt; Third, the &lt;strong&gt;status of the code is quite good&lt;/strong&gt; including a good automated test base, allowing me to make modifications quickly.&lt;br /&gt;Finally I've been able to successfully apply a lot of &lt;strong&gt;technologies and techniques that have proved to work&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;The Making Of&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Artivio is a made with many open source technologies, a few I master since some years like Wicket, other that I became expert during the last year: Restlet, OSGi, some JMS with ActiveMQ, MongoDB. Also, For some of these technology there is something I want to talk about and I'll promise here to write these articles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JMS: event based in-app communication &lt;/li&gt;
&lt;li&gt;Wicket: automatic form panels generation from XML&lt;/li&gt;
&lt;li&gt;OSGi and Karaf: light war deployment&lt;/li&gt;
&lt;li&gt;Restlet: light web frontend and REST API backend.&lt;/li&gt;
&lt;li&gt;MongoDB: integration with Elasticsearch (so, Lucene)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I've already written the article about Wicket so I'll probably publish that first, and there is already a generic introduction to the Event Based Application (1)&lt;p /&gt;Also, Artivio now is a lot more "cloudified": lives on a Amazon EC2 instance, stores pictures on S3, the database is hosted at MongoHQ and the User Administration is delegated to Pipelean Accounts (2) that offer a per user authentication, authorization and OAuth connection with third party services. &lt;p /&gt; &lt;span style="font-size: medium;"&gt;&lt;strong&gt;Code Quality&lt;/strong&gt;&lt;/span&gt;&lt;p /&gt;But today is Sunday and I'm spending some time making project cleanup (mainly removing unused classes) and analyzing the status of the code. &lt;p /&gt;Just looking and using it, it seems good: for example, today I've been able to add the "Remove Picture" and the "Force Picture Upload during Bulk" features in less than one hour and it has been smooth: implementation involved four classes in nice direct flow: a new Link in the page, one line of code per class involved with the last one with 4 lines to update the database and eliminate two files from S3 storage. &lt;p /&gt; What do automated analysis say? Sloccount says there are about 3100 lines of Java code in three projects (core, api, web), with 808 lines of XML for Spring IOC configuration, Maven POMs and the HTML templates also, I think. Without the test tree of the source, numbers are, for Java only&lt;p /&gt; core: 236&lt;br /&gt;api: 1026&lt;br /&gt;web: 1328&lt;p /&gt;That makes less then 2600. What does this mean? Not much, but it's good that the codebase does not explode. &lt;br /&gt;PMD does not find any priority 1 or 2 problem that is not the Logger that's not static final (just final).&lt;br /&gt; Findbugs also shows less then 8 issues per project, nothing major.&lt;br /&gt;Copy Paste detector, from PMD Suite, also did not find nothing but a couple of real code duplication which I was already aware of.&lt;p /&gt;That is all. Now I promise to publish one article per week from the list above. Stay tuned. &lt;p /&gt; &lt;br /&gt;1. My &lt;a href="http://lazydev.ildella.net/asynchronous-non-blocking-apps" target="_blank"&gt;Event Based Application&lt;/a&gt; article &lt;br /&gt; 2. Pipelean is my other main project, get in touch at &lt;a href="http://pipelean.com" target="_blank"&gt;http://pipelean.com&lt;/a&gt; or, well, just write me :)&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/artivio-the-making-of-overview"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/artivio-the-making-of-overview#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/kuGzMj-hlh0" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/artivio-the-making-of-overview</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 07 Jun 2011 16:02:00 -0700</pubDate>
      <title>Asynchronous non blocking apps</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/d4a9PxGp6k8/asynchronous-non-blocking-apps</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/asynchronous-non-blocking-apps</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Since a year I'm developing my applications following the usual principle of "non duplication" but pushing it to an higher level then just code duplication. &lt;br /&gt;I'm moving to eliminate the "runtime duplication", or maybe I something that can be called like that. &lt;br /&gt; This lead me to decoupled modules that communicate through messages, of course. This is pretty normal in the world of software integrations, is a well known Integration Pattern. But I wanted to put this into a single, standard application, like a CMS that manage images. There are two way I can achieve this.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scenario&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let's say that there is a message broker I can use, external to the application, that just works. The app receive a file uploaded by the user. It's an image I need to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;handle the file upload to file system&lt;/li&gt;
&lt;li&gt;convert file into expected formats&lt;/li&gt;
&lt;li&gt;store file somewhere into the cloud (S3 or such)&lt;/li&gt;
&lt;li&gt;make the image available to the system&amp;nbsp; (associate with database)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now point 1 is handled by the web framework and is synchronous (but some tricks on the user interface side that are outside the scope of my analysis now)&lt;br /&gt; Simplest solution is to do 2,3 and 4 in a row: that stuck the gui of course. I should have a scheduled thread to search for new files and performed 2, 3, 4 so that the GUI becomes free as long as upload is complete, and the "backend" perform the rest of the processing: there's the scheduled thread to tune and is not that nice, is it?&lt;p /&gt; What I'd rather do today? I'll send a message, I do delegate. This is nice.&lt;/p&gt;
&lt;p&gt;At the end of point 1, the gui send a light message to the broker saying "there's a new file called ..." and it send this to the right recipient(s). The receiver performs the conversion and send a new message, this time to a new component that perform the upload to S3 and when it's finished send a last message that is received by the original application that performs the association between the stored blob and the database: now the image is available and we can eventually notify the user, maybe with some cool user interface async message.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Push  further&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now if the broker is something like ActiveMQ, the components have some listener to different queues or topics and that's done. What is the next question? &lt;p /&gt;Where does those components lives? In the same process of the application? Or maybe somewhere else?&lt;br /&gt; It can be both. If they live with the application they can be some spring beans that register a listener on the right topic at startup. But this is a solution that does not satisfy me. &lt;br /&gt;Cause there's duplication, and not enough decoupling. &lt;p /&gt; The duplication is that each new app will have to have it's own instances (and configuration) of the same components. Also, if the app is hanged, all those components are and there is no reason for this to be.&lt;br /&gt; Better make them leave somewhere else, and the message broker (and the right queue/topic) is the only link between who procuce a message (say: upload is done!) and the consumer (ok, I'll do perform the conversion!) and so on.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;There's a better environment than java?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now, this is something I've done many times in the last year and I'm trying to make it more "standard" for all my apps. What I'm wiondering is: there a more natural way to do this? I mean, something more deeply integrated with the language?&lt;p /&gt; In java, there are a lot of good tools to do this but everything only exists in my mind and some docs. This kind of architecture really is not supported by the environment, and unit testing that is possible but hard to do an maintain. &lt;p /&gt; I'm talking, maybe, about the actor model. Or something that is possible with node.js. Are those technologies really more suitable to create programs the way I just narrated? If so, what is the dark side of the moon?&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/asynchronous-non-blocking-apps"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/asynchronous-non-blocking-apps#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/d4a9PxGp6k8" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/asynchronous-non-blocking-apps</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 19 May 2011 08:11:49 -0700</pubDate>
      <title>Joke of the day</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/zn-E05WypWg/joke-of-the-day</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/joke-of-the-day</guid>
      <description>&lt;p&gt;
	What happened to me today. &lt;p /&gt;The OSGi Manifest file generator tool suddenly started inserting a dot in the import package. A dot? A dot. Does not make sense, who tells him to do that? &lt;br /&gt;This way the bundle won&amp;#39;t start on the OSGi container. Why does this happen? All other 4 projects with the very exact same configuration work fine. &lt;p /&gt; Two hours investigating the problem. In the end, I hacked the maven-bundle-plugin, discovered that is the underline tool, Bnd, that insert the dots, and hacked the maven-bundle-plugin to remove the dots. &lt;p /&gt;In the meantime, I asked the question on twitter. &lt;blockquote class="twitter-tweet"&gt;&lt;p&gt;Why &lt;a href="https://twitter.com/search/%2523bnd"&gt;#bnd&lt;/a&gt; would ever put a dot in the beginning of the Import-Package? &lt;a href="https://twitter.com/search/%2523osgi"&gt;#osgi&lt;/a&gt; &lt;a href="https://twitter.com/search/%2523maven"&gt;#maven&lt;/a&gt;&lt;/p&gt;&amp;mdash; Daniele Dellafiore (@ildella) &lt;a href="https://twitter.com/ildella/status/71189575145496576" data-datetime="2011-05-19T12:24:52+00:00"&gt;May 19, 2011&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt; &lt;a class="reflink showprof bolder"&gt;@njbartlett&lt;/a&gt; answered me: &amp;quot;It can happen with classes produced by the Eclipse compiler that still have compile errors in them. &amp;quot;&lt;br /&gt;&lt;blockquote class="twitter-tweet" data-in-reply-to="71189575145496576"&gt;&lt;p&gt;@&lt;a href="https://twitter.com/ildella"&gt;ildella&lt;/a&gt; It can happen with classes produced by the Eclipse compiler that still have compile errors in them.&lt;/p&gt;&amp;mdash; Neil Bartlett (@njbartlett) &lt;a href="https://twitter.com/njbartlett/status/71192822333718528" data-datetime="2011-05-19T12:37:46+00:00"&gt;May 19, 2011&lt;/a&gt;&lt;/blockquote&gt;&lt;p /&gt; Really? Really? &lt;br /&gt;&amp;quot;It&amp;#39;s because you drank a capuccino too late this morning&amp;quot;. &lt;br /&gt;&amp;quot;Hey, have you called your mom today? That&amp;#39;s why it does not work&amp;quot;&lt;br /&gt;&amp;quot;Look out, there&amp;#39;s too much sun, so Bnd insert the dot&amp;quot;. &lt;p /&gt; These explanations to me make sense exacly like the one that has been provided by &lt;a class="reflink showprof bolder"&gt;@njbartlett&lt;br /&gt;The only difference is that he is right, that is exactly the problem that was affecting me. &lt;p /&gt; But why? Why in the world this happen? And why specifically with Eclipse?&lt;br /&gt;You can say it&amp;#39;s easy, you just make the build compile. Yes, but it continue not to make sense. &lt;br /&gt;And I still lost two precious hours dealing with some completely insane behavior. &lt;p /&gt; That&amp;#39;s bad. &lt;br /&gt;&lt;/a&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/joke-of-the-day"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/joke-of-the-day#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/zn-E05WypWg" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/joke-of-the-day</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 25 Apr 2011 07:41:00 -0700</pubDate>
      <title>My top 5 OSGi unanswered questions</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/jrVC9yfrQGg/my-top-5-osgi-unanswered-questions</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/my-top-5-osgi-unanswered-questions</guid>
      <description>&lt;p&gt;
	&lt;ol&gt;
&lt;li&gt;how do I tell obr:deploy to ignore optional bundles?&lt;/li&gt;
&lt;li&gt;how do I change the layout of "osgi:list" and "obr:list" to display symbolicName instead of the (useless) bundle name?&lt;/li&gt;
&lt;li&gt;how do I instruct maven-bundle-plugin to create a war without the dependencies jars in the WEB-INF/lib folder?&lt;/li&gt;
&lt;li&gt;how do I configure Export-Package to export ALL the packages in the bundle BUT the packages that the bundles already imports from some other bundle&lt;/li&gt;
&lt;li&gt;why there are so few tutorial kind of documentation about OSGI?&lt;/li&gt;
&lt;/ol&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/my-top-5-osgi-unanswered-questions"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/my-top-5-osgi-unanswered-questions#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/jrVC9yfrQGg" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/my-top-5-osgi-unanswered-questions</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 01 Mar 2011 05:14:00 -0800</pubDate>
      <title>What's new in Karaf 2.2.0</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/qkzcOFL5xhI/whats-new-in-karaf-220</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/whats-new-in-karaf-220</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Yesterday, February 28th 2011, Apache Karaf 2.2.0 OSGI container has &lt;br /&gt;been released. It's a serious upgrade, the release notes say:&lt;/p&gt;
&lt;blockquote class="posterous_medium_quote"&gt;
&lt;p&gt;Some highlights include many new or updated commands, a LDAP JAAS module  with login support, an updated feature service, a feature for Aries  transaction, JPA &amp;amp; JNDI modules, expanded documentation, and new  versions of most dependencies.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;and here is a list of the most significative improvment I see: &lt;p /&gt; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;XML schema for features descriptor &lt;a href="https://issues.apache.org/jira/browse/KARAF-53"&gt;https://issues.apache.org/jira/browse/KARAF-53&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pax Web 1.0 &lt;a href="https://issues.apache.org/jira/browse/KARAF-338 "&gt;https://issues.apache.org/jira/browse/KARAF-338 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Allow the use of version ranges on dependant features &lt;a href="https://issues.apache.org/jira/browse/KARAF-251 "&gt;https://issues.apache.org/jira/browse/KARAF-251 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;encryption with Jasypt 1.7 &lt;a href="https://issues.apache.org/jira/browse/KARAF-266 "&gt;https://issues.apache.org/jira/browse/KARAF-266 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pax Logging 1.6 with SLF4J 1.6 support &lt;a href="https://issues.apache.org/jira/browse/KARAF-396 "&gt;https://issues.apache.org/jira/browse/KARAF-396 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Command to manage users, password and roles &lt;a href="https://issues.apache.org/jira/browse/KARAF-188 "&gt;https://issues.apache.org/jira/browse/KARAF-188 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;'extract' deployment option, with automatic detection of feature repositories &lt;a href="https://issues.apache.org/jira/browse/KARAF-151 "&gt;https://issues.apache.org/jira/browse/KARAF-151 &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;Also we have some minor upgrade to Aries, Spring, Jetty, Pax and so on &lt;br /&gt;and something like 50 bug fixes, here's the complete release notes, &lt;br /&gt;find out what's relevant for you. &lt;br /&gt;&lt;a href="http://karaf.apache.org/index/community/download/karaf-2.2.0-release.html"&gt;http://karaf.apache.org/index/community/download/karaf-2.2.0-release.html&lt;/a&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/whats-new-in-karaf-220"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/whats-new-in-karaf-220#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/qkzcOFL5xhI" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/whats-new-in-karaf-220</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 25 Nov 2010 09:58:00 -0800</pubDate>
      <title>The only way</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/ZhWSpUqL6qM/the-only-way</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/the-only-way</guid>
      <description>&lt;p&gt;
	Read. Read and think. And if you are guilty, read and then cry and beg for pardon, because &lt;br /&gt;&lt;h1&gt;&lt;a href="http://agile.dzone.com/news/its-our-own-damn-fault"&gt;it's our own damn fault&lt;/a&gt;&lt;/h1&gt; 														 							 			That&amp;#39;s the way to roll, and Micheal got the point totally. &lt;p /&gt;Rocknroll.
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/the-only-way"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/the-only-way#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/ZhWSpUqL6qM" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/the-only-way</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 17 Nov 2010 10:11:23 -0800</pubDate>
      <title>Processes and practices</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/4lIdLuHQxLo/processes-and-practices</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/processes-and-practices</guid>
      <description>&lt;p&gt;
	&lt;b&gt;Log driven development&lt;/b&gt;&lt;p /&gt;1. execute an operation against the live system&lt;br /&gt;2. scan one hundred/thousand lines of log/response&lt;br /&gt;3. hack some code&lt;br /&gt;4. return to point 1&lt;p /&gt;&lt;b&gt;Fear driven programming&lt;/b&gt;&lt;p /&gt; if (person.getNickname() != null) { ... }&lt;p /&gt;&lt;b&gt;Eclipse default compiler options driven programming&lt;/b&gt;&lt;p /&gt;   private static final long serialVersionUID = 1L;&lt;br /&gt;   @SuppressWarnings(&amp;quot;rawtypes&amp;quot;)&lt;p /&gt;  &lt;b&gt;Strategy of tension driven programming&lt;/b&gt;&lt;p /&gt;if (product.getPrice() != null &amp;amp;&amp;amp; BigDecimal.ZERO.compareTo(product.getPrice()) &amp;lt; 0) { ... }
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/processes-and-practices"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/processes-and-practices#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/4lIdLuHQxLo" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/processes-and-practices</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 20 Oct 2010 03:29:00 -0700</pubDate>
      <title>My IDE does not understand me anymore</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/ozDsNbtblpk/my-ide-does-not-understand-me-anymore</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/my-ide-does-not-understand-me-anymore</guid>
      <description>&lt;p&gt;
	&lt;p&gt;When around 2002 I switched from Netbeans to Eclipse I was attending &lt;br /&gt;university, coding just for passion. It was a great step: Eclipse knew &lt;br /&gt;what I were doing while Netbeans was just a big GUI with coloured &lt;br /&gt;syntax and integrated compilation. It's ability to understand code did &lt;br /&gt;not go beyond a for cycle. He was like a guy that call itself a &lt;br /&gt;programmer just because he can write a for loop. &lt;br /&gt;Eclipse was smart, he can do code refactoring, that means that he had &lt;br /&gt;a more high level understanding of what was going on. &lt;p /&gt; In the first years, Eclipse grew with me and development was a two &lt;br /&gt;people game: I coded *with* Eclipse. &lt;br /&gt;In recent two or three years I continue growing but Eclipse was stuck. &lt;br /&gt;Now he just does not understand me anymore, like a girlfriend that &lt;br /&gt;still talks about things we talked five years ago, that still has same &lt;br /&gt;vision of the world. Our relationship is going to end. &lt;p /&gt; Nowadays understanding code is not enough. Projects are big, made of &lt;br /&gt;many modules, with sophisticated dependency hierarchy and &lt;br /&gt;configuration. If the IDE can't understand what is going on, you do &lt;br /&gt;not have enough support, you are left alone and you loose time &lt;br /&gt;understanding issues that involves projects configuration, relying on &lt;br /&gt;test, without any refactoring abilities in the field. &lt;p /&gt; Eclipse just does not understand this "multi module projects" thing, &lt;br /&gt;is not integrated with maven and the builds result are non &lt;br /&gt;deterministic. I want to tell the ide "this module is not here &lt;br /&gt;anymore, from now on belongs to this other project". This statement &lt;br /&gt;means a lot of changes in project config and in subversion and so on. &lt;br /&gt;This is a predictable change, there should be a refafctoring for this. &lt;p /&gt; I'd like that my IDE moves in this direction, helping me in managing &lt;br /&gt;modules, deploys and different kind of configuration and runtime &lt;br /&gt;environments. &lt;p /&gt; I hope that IntelliJ IDEA, which I am trying now, will answer to at &lt;br /&gt;least some of my needs.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/my-ide-does-not-understand-me-anymore"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/my-ide-does-not-understand-me-anymore#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/ozDsNbtblpk" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/my-ide-does-not-understand-me-anymore</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 27 Sep 2010 03:24:25 -0700</pubDate>
      <title>The super master of nothing</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/enLDKdYRro8/the-super-master-of-nothing</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/the-super-master-of-nothing</guid>
      <description>&lt;p&gt;
	A software developer that trains himself over and over to become &lt;br /&gt;better and better on a single activity or practice is like the 100 &lt;br /&gt;meters runner that trains himself not to beat his previous best time &lt;br /&gt;but to improve the appearance of his legs muscles.
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/the-super-master-of-nothing"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/the-super-master-of-nothing#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/enLDKdYRro8" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/the-super-master-of-nothing</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 06 Jul 2010 09:53:23 -0700</pubDate>
      <title>I got satisfaction (architectural solutions and cool technologies)</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/6OD3HkvZBNE/i-got-satisfaction-architectural-solutions-an</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/i-got-satisfaction-architectural-solutions-an</guid>
      <description>&lt;p&gt;
	Very busy couple of weeks. I got over some new (for me) technologies that are actually pretty cool. &lt;p /&gt;I got a lot of free degree of movement in the rejuvenation and restructuring of a software infrastructure that aims to deliver an ecommerce store for different countries. &lt;p /&gt; The plan was to build a new message driven middleware based on ActiveMQ to manage the store orders distribution to some external system (like SAP). We need to have a lot of different small, very specific subject that are able to consume and manage the store orders in, ehm, order to manipulate them the most natural solution to me seem to run them in a OSGi container that allows to install, uninstall, upgrade, start and stop many different OSGI bundles (nothing more than simple jars with some meta information) in the easiest and fastest way. &lt;p /&gt; So I got the change to play with Apache ActiveMQ to build the middleware and Apache Felix to have the OSGi container. &lt;br /&gt;I got over both of them in less than two weeks, doing other tasks in the meantime. &lt;br /&gt;Now I have a running Felix and I am able to produce a bundle that got activated once installed and started. This without changing my build tool chain, a simple &amp;quot;mvn install&amp;quot; is enough to produce the bundle, I just miss the way to deploy directly to the felix install. &lt;br /&gt; And on the  ActiveMQ side I can connect producer as well as subscribers to my queues or topics and my subscribers are able to reconnect and recover messages they lost when they were offline. &lt;p /&gt;This solve all the first wave of technical challenges and put the basis for a nice infrastructure. &lt;p /&gt; So I am satisfied and I deserve a present, let&amp;#39;s go looking for that Android phone...
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/i-got-satisfaction-architectural-solutions-an"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/i-got-satisfaction-architectural-solutions-an#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/6OD3HkvZBNE" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/i-got-satisfaction-architectural-solutions-an</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 14 Jun 2010 11:03:53 -0700</pubDate>
      <title>Maven Eclipse Plugin and the POM packaging project</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/V2z588bKRyU/maven-eclipse-plugin-and-the-pom-packaging-pr</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/maven-eclipse-plugin-and-the-pom-packaging-pr</guid>
      <description>&lt;p&gt;
	I simply hate that &amp;quot;mvn eclipse:eclipse&amp;quot; does not generate project files for Maven projects that have POM packaging. Yes I know that I can simply create a Default Eclipse project on the folder but why do I have to do this action many time when the target is to avoid to repeat task?&lt;br /&gt; So I hacked into and &amp;quot;fixed&amp;quot; it. That was simple. What is not is to understand reason behind the choice and provide a better alternative. Let&amp;#39;s dig into it&lt;br /&gt; &lt;br /&gt;When it comes to multi-project maven configuration, there is always a little confusion. There has been a discussion about it on the jug Milano mailing list a few months ago and what put confusion in my opinion is that &amp;quot;pom&amp;quot; packaging type is misleading cause it is used for multi-modules project as well for POM inheritance. &lt;p /&gt; So, &amp;quot;pom&amp;quot; is a bad keyword for a packaging type. First, is the name of the file itself, second isn&amp;#39;t related in any way to the to the objective of the packaging type. We should have two different keyword, something like &amp;quot;multi-module&amp;quot; and &amp;quot;abstract&amp;quot;, the second behing for pom inheritance while the first one is obvious. &lt;p /&gt; Back to the maven-eclipse-plugin, I expect it to generate a default Eclipse project, not a Java Project, for those two kind of projects. And the multi-module of course should not include the childs project in its Eclipse project structure: a project with just the pom.xml in it should be more than enough. &lt;p /&gt; What do you think about?
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/maven-eclipse-plugin-and-the-pom-packaging-pr"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/maven-eclipse-plugin-and-the-pom-packaging-pr#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/V2z588bKRyU" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/maven-eclipse-plugin-and-the-pom-packaging-pr</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 07 May 2010 06:37:48 -0700</pubDate>
      <title>Lifestyle</title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/CtXthafOMog/lifestyle-136</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/lifestyle-136</guid>
      <description>&lt;p&gt;
	Building mozilla is all about having the right environment set up and then follow these simple instructions:&lt;br /&gt;&lt;a href="https://developer.mozilla.org/En/Prism/Build"&gt;https://developer.mozilla.org/En/Prism/Build&lt;/a&gt;&lt;p /&gt; Very short page with few steps from source checout to the actual build. Nice. &lt;p /&gt;So complexity is all about prerequisites. Let&amp;#39;s see what these prerequisites are in different Operative system&lt;p /&gt;&lt;b&gt;Windows:&lt;/b&gt;&lt;br /&gt; Let&amp;#39;s start with this long page: &lt;a href="https://developer.mozilla.org/En/Developer_Guide/Build_Instructions/Windows_Prerequisites"&gt;https://developer.mozilla.org/En/Developer_Guide/Build_Instructions/Windows_Prerequisites&lt;/a&gt;&lt;br /&gt; From there we need to manually download and install: a Visual Studio, a Windows SDK, a Mozilla Build package and configure something else about ATL studying this page &lt;a href="https://developer.mozilla.org/en/atlbase.h"&gt;https://developer.mozilla.org/en/atlbase.h&lt;/a&gt; , taking care to a eight bullet points long paragraph about &amp;quot;Common problems, hints and restrictions&amp;quot;. It seems lot of work and thousand of possible things that could not work or have problems. &lt;br /&gt; Scary.&lt;p /&gt;&lt;b&gt;Linux:&lt;/b&gt;&lt;br /&gt;In a terminal:&lt;br /&gt;&lt;code&gt;
&amp;lt;pre&amp;gt;apt-get build-dep firefox
apt-get install mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev mesa-common-dev autoconf2.13
 &amp;lt;/pre&amp;gt;&lt;/code&gt;&lt;p /&gt;Finished. &lt;p /&gt;Make your choice.
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/lifestyle-136"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/lifestyle-136#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/CtXthafOMog" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/lifestyle-136</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 22 Mar 2010 09:22:28 -0700</pubDate>
      <title>A Tale of developing a Social Network implementation in Java. SE01E01 (Pilot) </title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/9IgZMIS73Ok/a-tale-of-developing-a-social-network-impleme</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/a-tale-of-developing-a-social-network-impleme</guid>
      <description>&lt;p&gt;
	Well in the ancient days of computer programming, developing an authentication and authorizazion system was all about giving permission to different kind of system user. In the end, there was the admin and then some other figure like some super user, simple user, whatever. A simple Account-Profile-Permission schema worked fine. &lt;p /&gt; In our days, in a &amp;quot;social&amp;quot; kind of website, the authorization system is more complicated. We must take care of authorization that depend on a user specific permission of a resource that is not provided by the system but by another user. And often this authorization check is based on the relation between two accounts. So the model change. The framework that we developers can use use just do not have models and utilities for this stuff. They have models for the classical authorization system and lot of utility for cryptografy, realms for any kind of old style repository (LDAP, JDBC...) but nothing for example that is ready for modern web aplication: what about a Realm that works with Google or Yahoo account? Or with Twitter? What about user to user relationships?&lt;p /&gt; So in developing a Web application that have some social aspect I had to face many challanges regarding dynamical permissions, both account to user reources and account to account. There are architecture and design problem, first of all. Then there is the integration with other framework you may already been using like Spring Security or Apache Shiro that provide some basic mechanism you do not want to rewrite). And the Web framework of course. &lt;p /&gt; And this is just the Authorization part. Do not forget that also authentication is far more than just registering a username and a password. What about OpenID like login? And a Twitter based login? We need that. I do not like a site that does not allow me to log in with another of my existing mainstream account. &lt;p /&gt; So here we go, I developed a lot of stuff: sometime was hardcore design (authorization system), sometime just dealing with some library (OpenID implementations, Spring Security, Wicket...) to make everything work. &lt;p /&gt; I am almost at the end of the journey now and have a lot of feature in place. In this blog series I will talk about the most interesting and generic things I made. Hope co0uld be of interest for someone. &lt;p /&gt;Looking forward Episode 02 :)
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/a-tale-of-developing-a-social-network-impleme"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/a-tale-of-developing-a-social-network-impleme#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/9IgZMIS73Ok" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/a-tale-of-developing-a-social-network-impleme</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 11 Mar 2010 10:41:18 -0800</pubDate>
      <title>Rant against Eclipse </title>
      <link>http://feedproxy.google.com/~r/TheLazyDev/~3/1L0zhTCQq9M/rant-against-eclipse</link>
      <guid isPermaLink="false">http://lazydev.ildella.net/rant-against-eclipse</guid>
      <description>&lt;p&gt;
	Ok, the day is arrived. I will say things that make me sad, because I loved Eclipse, I loved developing on it. I like to consider myself an Eclipse ninja. &lt;p /&gt;But it is no more the time. &lt;p /&gt;I started developing on Eclipse at the end of 2002, with version 2.something. I came from kawa/JBuilder/Netbeans and when I tried Eclipse it was a big, BIG boost. Something incredible for the time. Years ahead everything else. Refactoring, incredible CVS integration, great test support, amazing completion and aid. Wonderful. &lt;br /&gt; But, since a couple of years, evolution of the product slowed down. Just to say, it is not acceptable that it still does not ship with a built in and always working SVN support. Subclipse and Subversive... you know. And you need a basic IDE support for svn, even if, like me, you do almost every SCM and Maven operation from the command line. &lt;p /&gt; Eclipse development is almost stucked since last two years, or maybe is focused on stuff I do not care about. I need a great coding editor, jUnit support and refactoring. And Eclipse got them all. The problem is all the rest. And the update system is the greatest failure of all. This is non acceptable at all. Everyday I use apt and Firefox which have amazing modular update system that never broke. And I use apt in Ubuntu development even now. And it works, always. &lt;p /&gt; Biggest problem: one year development cycle is too long nowadays. Example? Eclipse 3.5 Galileo ships in June 2009. I install Ubuntu 9.10 in September. Galileo is broken on it so install 3.6 Helios (in development), but hibernate/spring plugins are almost non-installable on it, and so is Subclipse, you can survive without but when Eclipse starts using a .xml.svn-base spring file instead of the actual one because it does not have any subversion support in it and latest subclipse does not install on latest eclipse milestone... ARGHHHHH, I went mad. &lt;p /&gt; No subversion support, no maven support. I mean, basic support, nothing fancy. Basic. Instead: nothing at all. One year of wait to have new features, and development version is a mess with plugin dependencies. &lt;p /&gt; So, it is time to use Idea community. Installed, imported a project from POM, immediately everything is working, dependencies, subversion. Smooth. &lt;p /&gt;I will see how this goes, but maybe after almost eight years, my relationship with Eclipse can be closed.
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lazydev.ildella.net/rant-against-eclipse"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://lazydev.ildella.net/rant-against-eclipse#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheLazyDev/~4/1L0zhTCQq9M" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/147543/avatar.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4akZTyCEI22Z</posterous:profileUrl>
        <posterous:firstName>Daniele</posterous:firstName>
        <posterous:lastName>Dellafiore</posterous:lastName>
        <posterous:nickName>ildella</posterous:nickName>
        <posterous:displayName>Daniele Dellafiore</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://lazydev.ildella.net/rant-against-eclipse</feedburner:origLink></item>
  </channel>
</rss>

