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

<channel>
	<title>mindthegab.com</title>
	<atom:link href="http://mindthegab.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mindthegab.com</link>
	<description>A fool with a tool is still a fool :)</description>
	<lastBuildDate>Wed, 02 May 2012 12:05:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>What&#8217;s going on with Maven and Alfresco ? (WIP)</title>
		<link>http://mindthegab.com/2012/05/02/whats-going-on-with-maven-and-alfresco-wip/</link>
		<comments>http://mindthegab.com/2012/05/02/whats-going-on-with-maven-and-alfresco-wip/#comments</comments>
		<pubDate>Wed, 02 May 2012 11:42:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[alfresco]]></category>
		<category><![CDATA[alm]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://mindthegab.com/?p=101</guid>
		<description><![CDATA[Just in case you were wondering, this is the time things are actually happening. If you are working or willing to work on Alfresco ECM platform with Maven, you better stay tuned and keep your patience for a few weeks more. Why? Well for a few interesting reasons: *  The Maven Alfresco Community is growing [...]]]></description>
			<content:encoded><![CDATA[<p>Just in case you were wondering, this is the time things are actually happening.</p>
<p>If you are working or willing to work on Alfresco ECM platform with Maven, you better stay tuned and keep your patience for a few weeks more.</p>
<p>Why?</p>
<p>Well for a few interesting reasons:</p>
<p><strong>*</strong>  The <strong>Maven Alfresco Community is growing</strong> and every day there is more activity in the lists and on the code contributions side. If you need information around Maven and Alfresco, the <a title="Maven Alfresco discussion group" href="http://groups.google.com/group/maven-alfresco/">Maven Alfresco discussion group</a> is the place to be.<strong></strong><strong></strong><strong></strong></p>
<p><strong>* Alfresco is integrating Maven artifacts deployment in its build process</strong> (see <a href="https://issues.alfresco.com/jira/browse/ALF-11027" target="_blank">issue</a>): we are literally days away from having 3.4 and 4.0 Community and Enterprise versions available on the <a href="http://maven.alfresco.com/nexus/" target="_blank">Alfresco Artifacts Repository</a>. BTW, bear with us in these days as some changes might be undergoing in the repositories. This is great news for all of you who are hosting corporate repositories (especially for Alfresco Enterprise) as this way you will just have to point to maven.alfresco.com to retrieve Alfresco artifacts<strong></strong></p>
<p><strong>* We are working actively</strong> (kudos to <a title="Maurizio Pillitu's weblog" href="http://session.it" target="_blank">Mau</a>) <strong>on a clean, neat, supportable version of the Maven Alfresco Lifecycle project</strong>: if you check out the <a href="http://maven-alfresco-archetypes.googlecode.com/svn/branches/experimental/alfresco-lifecycle-aggregator/" target="_blank">experimental branch</a> you&#8217;ll find a nicely merged, lean, fully functional set of parent POMs and archetypes to allow you, for example, to run a full Alfresco Repository, Share, AMP, etc. as a single project embedded in Jetty and H2. Nice, ain&#8217;t it? Stay tuned there because we are aligning that to the automated deployment at point #2, so we&#8217;re just really weeks away from a nice, fully featured, extensible but above all standard open Maven Alfresco SDK.</p>
<p>As we do lots of progress on this area,<strong> your feedback is more than welcome</strong> and, once again, bear with us while we actively work to make your Maven Alfresco developer life easier.</p>
]]></content:encoded>
			<wfw:commentRss>http://mindthegab.com/2012/05/02/whats-going-on-with-maven-and-alfresco-wip/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Maven Alfresco Lifecycle 3.9.1 Released</title>
		<link>http://mindthegab.com/2012/04/07/maven-alfresco-lifecycle-3-9-1-released/</link>
		<comments>http://mindthegab.com/2012/04/07/maven-alfresco-lifecycle-3-9-1-released/#comments</comments>
		<pubDate>Sat, 07 Apr 2012 07:08:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[alfresco]]></category>
		<category><![CDATA[alm]]></category>
		<category><![CDATA[application lifecycle management]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[share]]></category>
		<category><![CDATA[google code]]></category>

		<guid isPermaLink="false">http://mindthegab.com/?p=96</guid>
		<description><![CDATA[Hey guys, I&#8217;m proud to announce that thanks to a vigorous Community help (special mentions and kudos to Mao and Stijnr for the great help in the last period), we have been able to pull out the 3.9.1 release of the Maven Alfresco LIfecycle. Multiple bug-fixes, a zero defect targeted release and a couple of [...]]]></description>
			<content:encoded><![CDATA[<p>Hey guys,</p>
<p>I&#8217;m proud to announce that thanks to a vigorous Community help (special mentions and kudos to <a title="Maurizio Pillitu's weblog" href="http://session.it">Mao</a> and Stijnr for the great help in the last period), we have been able to pull out the <a title="Maven Alfresco Lifecycle 3.9.1 announcement" href="https://groups.google.com/forum/?fromgroups#!topic/maven-alfresco/ZSX1t9W-Jcg" target="_blank">3.9.1 release</a> of the <a title="Maven Alfresco Lifecycle project" href="http://code.google.com/p/maven-alfresco-archetypes/">Maven Alfresco LIfecycle</a>.</p>
<p>Multiple bug-fixes, a zero defect targeted release and a couple of juicy new features like:</p>
<ul>
<li>Support for <a href="http://skuro.tk/2011/12/14/h2-support-for-alfresco-4x/">H2 DB embedded run</a></li>
<li>Support for <a title="Support for file-mappings.properties" href="http://code.google.com/p/maven-alfresco-archetypes/issues/detail?id=5">empty file-mappings.properties</a> (to map WEB-INF)</li>
<li>Support for <a title="Share AMPs supported" href="http://code.google.com/p/maven-alfresco-archetypes/issues/detail?id=38">Share AMPs</a></li>
</ul>
<p>make of this one probably the most stable and tested release of the Maven Alfresco Lifecycle. The release is tested against Alfresco 4.0b Community, and it&#8217;s the perfect foundation to the great work we are going to do in the next weeks to clean it up completely and support Alfresco Enterprise.</p>
<p>The releases is available in the <a title="Maven Alfresco Repository" href="http://maven.alfresco.com/nexus/" target="_blank">Maven Alfresco Repository</a> (in case you are wondering, I still need to update the <a href="http://maven.alfresco.com/nexus/content/repositories/releases/archetype-catalog.xml" target="_blank">archetype-catalog.xml</a>, but that will happen just after Easter, as I have no permissions right now <img src='http://mindthegab.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  ). Full release notes are also published on the <a title="Maven Alfresco Lifecycle Release Notes" href="http://code.google.com/p/maven-alfresco-archetypes/wiki/ReleasesInformation" target="_blank">Google Code project</a> and per component documentation is available in the <a title="Maven Alfresco Lifecycle 3.9.1 Maven site" href="http://mindthegab.com/2012/04/07/maven-alfresco-lifecycle-3-9-1-released/" target="_blank">brand new published Maven Site</a> (using the <a title="Maven Fluido Skin" href="http://maven.apache.org/skins/maven-fluido-skin/">HUGELY COOL Maven Fluido Skin</a>).</p>
<p>Feedback is always welcome in the <a title="Maven Alfresco List" href="http://groups.google.com/group/maven-alfresco/" target="_blank">Maven Alfresco List</a> and we also have a Skype chat so feel free to contact me on Skype if you want to contribute / participate in any way <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Have fun and let us know what you think!</p>
]]></content:encoded>
			<wfw:commentRss>http://mindthegab.com/2012/04/07/maven-alfresco-lifecycle-3-9-1-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Consultant Life is Hard ep. I &#8211; Get that damn SSH X11 forwarding tunnel to work</title>
		<link>http://mindthegab.com/2012/02/10/consultant-life-is-hard-ep-i-get-that-damn-ssh-x11-forwarding-tunnel-to-work/</link>
		<comments>http://mindthegab.com/2012/02/10/consultant-life-is-hard-ep-i-get-that-damn-ssh-x11-forwarding-tunnel-to-work/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 15:07:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[hacks]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://mindthegab.com/?p=78</guid>
		<description><![CDATA[This is probably more of a note to myself than anything else, since every time I have to do some sneaky X11 forwarding (e.g. to profile or perfomance tune a production server) it somehow never works the first time&#8230;having to waste at least 15, fundamentally boring, minutes to figure it out again. Of course prerequisite [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="X Tunnel over SSH" src="http://fc01.deviantart.net/images/i/2002/48/a/e/Metro_tunnel_X.jpg" alt="" width="307" height="230" />This is probably more of a note to myself than anything else, since every time I have to do some sneaky X11 forwarding (e.g. to profile or perfomance tune a production server) it somehow never works the first time&#8230;having to waste at least 15, fundamentally boring, minutes to figure it out again.</p>
<p>Of course prerequisite is that you need to have some kind of X11 server running on your client, whose display will be forwarded to the server. Linux has it by default, Mac users can install it from the OS disks, for Windows users I suggest <a href="http://sourceforge.net/projects/xming/">XMing</a> to avoid the whole CygWin download).</p>
<p>So this is Gab self reminding recipe for that (tested from MacOS 10.6.8 to RHEL5):</p>
<ol>
<li>Make sure that
<pre>"X11Forwarding Yes"</pre>
<p>is in your</p>
<pre>/etc/ssh/sshd_config</pre>
<p>on the <strong>SERVER SIDE</strong></li>
<li>Make sure that
<pre>"ForwardX11 yes"</pre>
<p>is your</p>
<pre>/etc/ssh_config</pre>
<p>(or</p>
<pre>/etc/ssh/ssh_config</pre>
<p>for Linux distros) on the <strong>CLIENT SIDE<br />
</strong></li>
<li>Login to the machine with
<pre>ssh -X user@host</pre>
</li>
<li>If &#8220;echo $DISPLAY&#8221; does not display any meaningful value (e.g. host:display) then you typically miss libraries on the server side. From root or sudo your should issue at least (this worked for me on all RedHat based distros):</li>
</ol>
<ul>
<li>
<pre>yum install xorg-x11-xauth</pre>
</li>
<li>
<pre>yum install libXtst</pre>
</li>
<li>
<pre>yum install libXi</pre>
</li>
</ul>
<p>At that point you might have to logout/login but the you should be able to run whatever X based application (e.g. JConsole, JProfiler, can you tell I use Java? <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) directly from the server and see the UI pop up on your client.</p>
<p>Never forget anymore Gab&#8230;and thanks for reminding to write this down <a href="https://twitter.com/#!/JCARRASKO">my friend</a> <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mindthegab.com/2012/02/10/consultant-life-is-hard-ep-i-get-that-damn-ssh-x11-forwarding-tunnel-to-work/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Alfresco DevCon Presentations</title>
		<link>http://mindthegab.com/2011/12/23/alfresco-devcon-presentations/</link>
		<comments>http://mindthegab.com/2011/12/23/alfresco-devcon-presentations/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 13:21:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[alfresco]]></category>
		<category><![CDATA[alm]]></category>
		<category><![CDATA[cmis]]></category>
		<category><![CDATA[devcon]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[opencmis]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[scalability]]></category>

		<guid isPermaLink="false">http://mindthegab.com/2011/12/23/alfresco-devcon-presentations/</guid>
		<description><![CDATA[A bit late, but for those of you following this blog who did not join either the San Diego or the London Alfresco DevCon, here are my 3 presos I gave in both conferences available in Share: BP-1 (Best Practices) -  &#8220;Alfresco 4.x scalabity and performance&#8221; PLAT-1 (Platform) &#8211; &#8220;CMIS in the Real World&#8221; BP-5 [...]]]></description>
			<content:encoded><![CDATA[<p>A bit late, but for those of you following this blog who did not join either the <a href="http://www.amiando.com/alfresco-devcon-san-diego-2011.html">San Diego</a> or the <a href="http://www.amiando.com/alfresco-devcon-london-2011.html">London</a> Alfresco DevCon, here are my 3 presos I gave in both conferences available in Share:</p>
<ul>
<li><strong>BP-1</strong><em> (Best Practices</em>) -  <a href="http://www.slideshare.net/alfresco/performance-and-scalability-10161703" target="_blank">&#8220;Alfresco 4.x scalabity and performance&#8221;</a></li>
<li><strong>PLAT-1</strong> (<em>Platform</em>) &#8211; <a href="http://www.slideshare.net/alfresco/cmis-in-the-real-world" target="_blank">&#8220;CMIS in the Real World&#8221;</a></li>
<li><strong>BP-5</strong> (<em>Best Practice</em>) &#8211; <a href="http://www.slideshare.net/alfresco/application-lifecycle-management-10161723" target="_blank">&#8220;Alfresco Application Lifecycle Management&#8221;</a></li>
</ul>
<p>Turnout was great and the event was wonderfully mastered by our beloved <a href="http://ecmarchitect.com/">Chief Community Officer</a>: regarding my presos, I found a very good general interested public on my Maven + Alfresco Application Lifecycle preso, <a href="http://mindthegab.com/wp-content/uploads/2011/12/screen-shot-2011-12-23-at-13124-pm.png">as the Slideshare searchbox top suggestions</a> seem to confirm <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a title="Alfresco DevCon and Maven top search in Slideshare :)" href="http://mindthegab.com/wp-content/uploads/2011/12/screen-shot-2011-12-23-at-13124-pm.png"><img title="Alfresco DevCon and Maven top search in Slideshare :)" src="http://mindthegab.com/wp-content/uploads/2011/12/screen-shot-2011-12-23-at-13124-pm.png" alt="Alfresco DevCon and Maven top search in Slideshare :)" width="477" height="151" align="left" hspace="20" /></a> A couple of other presentations were using Maven and I even heard our mighty VP of Engineering mentioning the <a href="http://maven.apache.org/">magic 7-six lettered word</a> a couple of times in the Engineering QA panel.</p>
<p>New challenges in scalability and complex application management are to be expected with the so long awaited Alfresco 4.x version (BTW, don&#8217;t forget to join the <a href="http://www.google.it/url?sa=t&amp;rct=j&amp;q=alfresco%204.0%20enterprise%20launch&amp;source=web&amp;cd=5&amp;ved=0CDMQFjAE&amp;url=http%3A%2F%2Fwww.slideshare.net%2Falfresco%2Fget-ready-for-alfresco-40&amp;ei=H4D0TojQD4WE4gTyhc2NCA&amp;usg=AFQjCNHizLzRaN6d252NTQkYfeoAR4QFEQ&amp;cad=rja">4.o EE launch parties</a> <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So I think we can expect more VERY juicy news VERY soon in scalability and Maven&#8230;once again, stay posted <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mindthegab.com/2011/12/23/alfresco-devcon-presentations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>That comedy called Italy</title>
		<link>http://mindthegab.com/2011/09/26/that-comedy-called-italy/</link>
		<comments>http://mindthegab.com/2011/09/26/that-comedy-called-italy/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 11:26:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[italy]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://mindthegab.com/2011/09/26/that-comedy-called-italy/</guid>
		<description><![CDATA[Italy is such a wonderful place, full of culture, landscapes, smart and lively people and a great social life. For long centuries it was the cultural center of Europe, giving birth and growing heroes of the world&#8217;s inheritance. Still it&#8217;s the best representation of contradiction I can think of. Maybe it&#8217;s because I&#8217;m Italian and, [...]]]></description>
			<content:encoded><![CDATA[<p>Italy is such a wonderful place, full of culture, landscapes, smart and lively people and a great social life. For long centuries it was the cultural center of Europe, giving birth and growing heroes of the world&#8217;s inheritance.</p>
<p>Still it&#8217;s the best representation of contradiction I can think of. Maybe it&#8217;s because I&#8217;m Italian and, although living in the Netherlands for 5+ years, I still have a pretty tight connection with my mother land. And there are some things which I feel I need to post, at least because those are the main reasons why I don&#8217;t want to go back home now.</p>
<p>This is mostly a technical blog, so I will start with something somehow technical, which was the original reason for this post: as you might have heard already, seems that <a href="http://en.wikipedia.org/wiki/Neutrino">neutrinos</a> have been recently <a href="http://www.guardian.co.uk/science/2011/sep/22/faster-than-light-particles-neutrinos">discovered</a> to be able to <a href="http://www.washingtonpost.com/blogs/achenblog/post/cern-neutrinos-faster-than-light/2011/09/22/gIQAkxBOoK_blog.html">travel</a> <a href="http://io9.com/5843112/faster-than-light-neutrinos-not-so-fast">faster</a> than the <a href="http://www.elpais.com/articulo/sociedad/Neutrinos/rapidos/luz/elpepusoc/20110922elpepusoc_10/Tes">speed of light</a>. This would have disruptive consequence&#8217;s on Einstein relativity theory and on other pillars of contemporary physics. But that&#8217;s another story and worth reading some expert&#8217;s blog post as well at the <a href="http://arxiv.org/abs/1109.4897">original paper</a></p>
<p>The point is another one: the original article is in from a international team involving many Italians, since the measurement of neutrinos speed was done from <a href="http://public.web.cern.ch/public/">Geneve&#8217;s CERN</a> to <a href="http://www.lngs.infn.it/">Italian Gran Sasso</a> laboratories. And that&#8217;s when Italy is somehow involved in something big, that some character of the great persistent comedy troupe which is Italy comes into stage.</p>
<p>This time it was our &#8220;smart&#8221; Minister of Education, Mariastella Gelmini, came out with <a href="http://www.istruzione.it/web/ministero/cs230911">this press release</a> (<a href="http://translate.google.com/translate?sl=it&amp;tl=en&amp;js=n&amp;prev=_t&amp;hl=it&amp;ie=UTF-8&amp;layout=2&amp;eotf=1&amp;u=http%3A%2F%2Fwww.istruzione.it%2Fweb%2Fministero%2Fcs230911&amp;act=url">English Translation</a>) on the official Minister website to actually congratulate with the scientists for their discovery, but especially to take credit for</p>
<p><em>&#8220;<span>The  construction of the tunnel between CERN and Gran Sasso Laboratories,  through which the experiment took place, Italy has contributed a sum now  estimated at around 45 million euros.</span> &#8220;</em></p>
<p><a href="http://mindthegab.com/wp-content/uploads/2011/09/screen-shot-2011-09-26-at-11640-pm.png" title="Comunicato Mariastella Gelmini Ministero dell’Istruzione Tunnel Neutrini"><img src="http://mindthegab.com/wp-content/uploads/2011/09/screen-shot-2011-09-26-at-11640-pm.png" title="Comunicato Mariastella Gelmini Ministero dell’Istruzione Tunnel Neutrini" alt="Comunicato Mariastella Gelmini Ministero dell’Istruzione Tunnel Neutrini" align="left" height="95" hspace="25" width="189" /></a>Now, I&#8217;m not asking Ministries to be nuclear physicists (although I&#8217;d secretly dream of it), but at least to have a decent level of culture or realism not to imagine that that a 730km tunnel (yeah, that is the air distance between <a href="http://maps.google.com/maps?saddr=CERN,+Geneve,+Switzerland&amp;daddr=Assergi,+L%27Aquila,+Italia&amp;hl=it&amp;ll=44.949249,8.151855&amp;spn=5.947754,15.5896&amp;sll=44.127028,9.777832&amp;sspn=7.293728,19.281006&amp;geocode=FZFzwQIdJFlcACGe1CUFM6awXg%3BFVI6hwIdbx_OACmhWpJvVyouEzFwMJ9bnU8JCg&amp;vpsrc=0&amp;mra=ltm&amp;t=m&amp;z=7">CERN and Gran Sasso</a>) could have been build below Alps and Apennine Mountains.</p>
<p>I&#8217;m fed up of having to take account for the stupidity (yeah that&#8217;s the only good definition of it) of our Government and in general of the whole ruling class in Italy, since, when I finish working, it&#8217;s always about those <a href="http://www.youtube.com/watch?v=RWa9U79-Yg0&amp;feature=related">childish</a>, <a href="http://www.youtube.com/watch?v=hz9jwKwmBZs&amp;feature=related">banana republic</a> style, <a href="http://www.youtube.com/watch?v=VMxPvcMIhg0">ignorant</a> declarations that some random <a href="http://www.youtube.com/watch?v=byhZN6aMRgo">member</a> of our <a href="http://www.youtube.com/watch?v=8oExfLlLRuI&amp;feature=related">Government</a> does.  No wonder why all my foreign friends sort of laugh at us for that.</p>
<p>I&#8217;ve never wanted to play the part of the &#8220;bitchy expat&#8221; that over-criticizes his country, but it seems at least we (expats) have a lower threshold of BS we are able to digest.  So think it&#8217;s time to do something more substantial to actually try and wake up our country, that seems now asleep, almost indifferent to any type of attack to normal rules and democracy, completely powerless drugged by media.</p>
<p>Other <a href="http://leserpent.wordpress.com/2011/09/24/cern-neutrinos-faster-than-light-italian-ministry-of-instruction-university-and-research-explains-why-finanziamenti-al-cern-il-ministro-gelmini-spiega-il-piano-di-rilancio-della-ricerca-in-italia/">Italian expat</a> fellows seem to have been stroke by this, last, unbearable deprivation of the Italian culture.</p>
<p>And don&#8217;t get me wrong, I still like to remember all great things Italian culture did in history. People like Leonardo, Michelangelo, Cristoforo Colombo, Guglielmo Marconi, Enrico Fermi or periods like Renaissance or the same Roman Empire marked our cultures permanently.</p>
<p>That&#8217;s why I think we should get organized and do something, something very well designed and planned, using the weapons of internet and social networks to propose a wake up call for Italy and destabilize the current status quo. I am sure we can out smart them, they are basically organized old farts. Italy is a cash cow right now.</p>
<p>Just brainstorming here, but I am all in for any initiative any reader will suggest!</p>
<p>I&#8217;m all ears &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://mindthegab.com/2011/09/26/that-comedy-called-italy/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Alfresco DevCon in Rome just one week away</title>
		<link>http://mindthegab.com/2011/04/05/alfresco-devcon-in-rome-just-one-week-away/</link>
		<comments>http://mindthegab.com/2011/04/05/alfresco-devcon-in-rome-just-one-week-away/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 17:56:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[alfresco]]></category>
		<category><![CDATA[cmis]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[italy]]></category>
		<category><![CDATA[opencmis]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://mindthegab.com/2011/04/05/alfresco-devcon-in-rome-just-one-week-away/</guid>
		<description><![CDATA[I&#8217;m very excited about what&#8217;s going to happen and I&#8217;m going to participate to next week in my mother country If you did not know (and so should definitely join!), next week we&#8217;re holding an Alfresco Developer Conference in a nice venue in Rome! The DevCon is spread over two days (Tuesday 12th and Wednesday [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.amiando.com/eventResources/p/s/DGij5ZBHTTVV6V/mainImage_ThHJgYA5Of.png" height="132" width="449" /></p>
<p>I&#8217;m very excited about what&#8217;s going to happen and I&#8217;m going to participate to next week in my mother country <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you did not know (and so should definitely join!), next week we&#8217;re holding an <a href="http://www.amiando.com/alfresco-devcon-rome-2011.html">Alfresco Developer Conference</a> in a <a href="http://www.amiando.com/alfresco-devcon-rome-2011.html?page=503739">nice venue in Rome</a>!</p>
<p>The <a href="http://www.amiando.com/alfresco-devcon-rome-2011.html?page=503735" target="_blank">DevCon is spread over two days</a> (Tuesday 12th and Wednesday 13th of April) and will be full of technical in depth topics on Alfresco product and application development.</p>
<p><strong>On day 1</strong>, we&#8217;ll be hosting a full day introduction of Alfresco Fundamentals, in which I&#8217;ll be giving quick and effective insights on Alfresco key concepts like Repository, Content Modeling, Architecture &amp; Technologies.</p>
<p><strong>On day 2</strong>, the agenda is full of Alfresco stars like our Product Managers Mike Farman &amp; Ben Hagan, giving us a full insight on the new and great evolutions of Alfresco 3.4 (and above) in the <a href="http://www.alfresco.com/media/releases/2011/03/alfresco-jive/">Social Content Management</a> era. I will also be giving a talk about latest CMIS (and the recent OpenCMIS <a href="http://mail-archives.apache.org/mod_mbox/www-announce/201104.mbox/%3C5FEA98D1-1926-40CA-8F0F-D2070BCD6FFD@apache.org%3E">0.3.0 release</a>) evolutions and how you can leverage them with Alfresco.</p>
<p>Most of the event will be held in the <em>English language</em>, but for all my talks I guess we can of course be a bit more flexible and go for Italian <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So, if you did not do it already, please <a href="http://www.amiando.com/alfresco-devcon-rome-2011.html?page=503741">subscribe to this event</a> and join the most interesting Alfresco technical event and first Alfresco Developer Conference in Italy!</p>
<p><strong>See you there!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://mindthegab.com/2011/04/05/alfresco-devcon-in-rome-just-one-week-away/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I want TODO a list</title>
		<link>http://mindthegab.com/2011/01/22/partner-newsletter-january-2011/</link>
		<comments>http://mindthegab.com/2011/01/22/partner-newsletter-january-2011/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 00:07:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mindthegab.com/2011/01/22/partner-newsletter-january-2011/</guid>
		<description><![CDATA[I reckon the blog might look a bit silent at the moment but I&#8217;ve been mostly engaged on site lately, and so to say, customers don&#8217;t take blogging too kindly But I expect some juicy new content to be available soon, I reckon to be interesting for almost all (1 o 2 actually) classes of [...]]]></description>
			<content:encoded><![CDATA[<p>I reckon the blog might look a bit silent at the moment but I&#8217;ve been mostly engaged on site lately, and so to say, customers don&#8217;t take blogging too kindly <img src='http://mindthegab.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>But I expect some juicy new content to be available soon, I reckon to be interesting for almost all (1 o 2 actually) classes of potential readers of this blog, ranging from Alfresco Partners and Customers to Community members, but also more simply from my personal social (BTW if only all my FB friends would read my blog daily, I would be rich&#8230;).</p>
<p>Not much time now but maybe some anticipation (one each, so nobody gets disappointed):</p>
<ul>
<li>For Alfresco Partners, we&#8217;re working on a Newsletter which will be issued soon with interesting updates and pointers specifically targeted. Stay tuned!</li>
<li>For Alfresco Customers, my quest for Maven Alfresco Enterprise repository is still on. Hope to be able to post updates soon. But if you also think this is a strong enterprise fit requirement, make yourself heard <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>For the Alfresco Community, apart from some juicy release update and review for OpenCMIS and Surf, discussions are starting to consolidate and produce a new release of the Community Maven Alfresco SDK. If you have any wishes join the Maven Alfresco Community so we might produce a more complete and up to date release.</li>
<li>And for my beloved social network, last but not least of course, 2010 is a key year for my personal objectives and I see it already quite shaky. And I&#8217;ll turn 30 in 10 months anyways, so worst case you&#8217;ll get to make fun on me getting &#8220;older&#8221;</li>
</ul>
<p>Now that I look at it seems more of a TODO list rather than a quick eye-and-attention-catching intro but anyways&#8230;anything to add? <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Talk soon, gotta go now.</p>
]]></content:encoded>
			<wfw:commentRss>http://mindthegab.com/2011/01/22/partner-newsletter-january-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Southparkstudios.com (Or possibly the weakest IP regional check I&#8217;ve ever seen)</title>
		<link>http://mindthegab.com/2010/11/09/southparkstudioscom-or-possibly-the-weakest-ip-regional-check-ive-ever-seen/</link>
		<comments>http://mindthegab.com/2010/11/09/southparkstudioscom-or-possibly-the-weakest-ip-regional-check-ive-ever-seen/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 14:28:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[funtime]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[southpark]]></category>

		<guid isPermaLink="false">http://mindthegab.com/2010/11/09/southparkstudioscom-or-possibly-the-weakest-ip-regional-check-ive-ever-seen/</guid>
		<description><![CDATA[Those who know me better definitely reckon that I am one of those crazy South Park  (&#60;&#8211; Hem, you can open this link only if you&#8217;re in the US) fans which knows every episode by heart and that, together with Mau, tries to dedicate 30 mins Thursday night to watch the new episode, aired in [...]]]></description>
			<content:encoded><![CDATA[<p>Those who know me better definitely reckon that I am one of those crazy <a href="http://southparkstudios.com/">South Park</a>  (&lt;&#8211; Hem, you can open this link only if you&#8217;re in the US) fans which knows every episode by heart and that, together with <a href="http://session.it/">Mau</a>, tries to dedicate 30 mins Thursday night to watch the new episode, aired in the US the night before.</p>
<p>Till a couple of years ago the South Park official site (South Park Studios) was nice, free and open worldwide, airing all episodes and clips just right after US airing, once again demonstrating Matt &amp; Trey (the authors) open mindedness and free-o-cratic approach.</p>
<p>Well that couldn&#8217;t last and months ago <a href="http://www.comedycentral.nl/">Comedy Central</a> decided to start shaping traffic from the .com domain to national domains (e.g. <a href="http://www.southpark.nl/">SouthPark.nl</a> in my case, being resident in Amsterdam). Pretty fair you would say?</p>
<p>Well, I guess so but you know, as a South Park fan, when they also started messing around with content, limiting views &#8220;<a href="http://answers.yahoo.com/question/index?qid=20101028134917AAam1SW">based on pre-existing contractual agreements</a>&#8221; and following the local Dutch TV Comedy Central broadcasting schedule (typically postponing a few, CRUCIAL, weeks after the US original airing), this became hardly bearable <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://mindthegab.com/wp-content/uploads/2010/11/picture-120.png" title="SouthParkStudios regional check"><img src="http://mindthegab.com/wp-content/uploads/2010/11/picture-120.png" title="SouthParkStudios regional check" alt="SouthParkStudios regional check" align="left" height="265" hspace="20" vspace="20" width="438" /></a></p>
<p>Basically if you try to access SouthParkStudios.com from the Netherlands (in my case) you&#8217;ll get a nice Cartman in blond dialog telling you to click and go to the national SouthPark.nl &#8230; with outdated content &#8230; outrageous <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>To be honest, I could solve my issues using the infinite resources of online streaming <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>But today I wanted to do something more: I actually wanted to send a friend a link to a specific clip from the last espisode (<a href="http://en.wikipedia.org/wiki/Mysterion_Rises">&#8220;Mysterion Rises&#8221;</a>, 14th series, aired last Wed in the US), so basically something possible to just from the US site, <a href="http://southparkstudios.com/">SouthParkStudios.com</a>.</p>
<p><strong>First try</strong>: with little success I tried the standard <a href="http://oreilly.com/pub/h/4807">Google Translate hack</a> which was nicely detected by the SouthParkStudios, and still the blondish Cartman blocked me.</p>
<p><strong>The way too easy win: </strong></p>
<p>Looking a bit closer to the type of regional check, I noticed than, upon detecting an access to the .com site from a non US IP address, a grayed out foreground DIV was overlaid on the pre-loaded (and fully functional) underlying .com page.</p>
<p>Well, then, why don&#8217;t try with a simple Firefox plugin like <a href="http://getfirebug.com/">Firebug </a>which allows me to point and click the web page and edit the live rendered DOM?</p>
<p><a href="http://mindthegab.com/wp-content/uploads/2010/11/picture-121.png" title="South Park Studios Firebug Hack for US only block"><img src="http://mindthegab.com/wp-content/uploads/2010/11/picture-121.png" title="South Park Studios Firebug Hack for US only block" alt="South Park Studios Firebug Hack for US only block" align="left" height="245" hspace="20" vspace="20" width="446" /></a>And the game was done: as you can see in the second pic with Firebug open on the SouthParkStudios.com page, I was easily able to identify the DIV which caused the geoblock (search for &#8216;<em>geoblock&#8217;</em>) , and using Firebug DOM editing features <strong>I could remove the guilty DIV</strong> (apologies to the dutch Cartman and the black DIV).</p>
<p>Of course you need to re-do the edit at every click you do, but you understand how easy would be to automate this using tools like <a href="https://addons.mozilla.org/en-US/firefox/addon/748/">Greasemonkey</a> or successors. This way I could easily browse the .com site from the Netherlands and send the <a href="ttp://www.southparkstudios.com/clips/360445/i-am-mysterion">proper Mysterion link</a> to <a href="http://3.bp.blogspot.com/_FV4qP-kONJY/SisKhuajTrI/AAAAAAAAAoE/IMnWtM7KT2c/s400/hackers_JOLIE+1995.jpg">my friend</a> <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Now, get me straight, the intention of this post (and of this author) is <strong>NOT TO ANYHOW SUGGEST</strong> to use this hack (and anyways <strong>this was so simple that calling it a hack would be a unique case of overrating</strong>), but more to send a message to website writers all over the world, a message which goes something like<strong> DON&#8217;T INSULT OUR INTELLIGENCE</strong> <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Please, in the undesirable and potentially not agreeable case that you really need to perform this kind of blocks, take into account that the Internet public is growing in maturity day by day, and you don&#8217;t have to be anymore a computer science geek or an engineer like me to actually being able to break such a poorly designed and coded geoblock.</p>
<p>And with specific reference to <a href="http://tvmedia.ign.com/tv/image/article/719/719160/south-park-20060716073348069.jpg">Matt &amp; Trey</a>: I love you guys a lot, and if you knew me you would know. But you also know (or I think assume) that to watch and appreciate South Park your need a proper level of self irony and a decent IQ &#8230; also I know lots of real geek friends of mine which die for South Park, as yes let&#8217;s be honest there&#8217;s a geek irony component in the series &#8230;  then please hire (or tell the Network) to hire some serious guy to run you online video publishing, as with these ***ppy solutions &#8220;pre-existing contractual obligations&#8221; are <a href="http://www.youtube.com/watch?v=tkpVLIhUa9E&amp;feature=youtube_gdata">doomed to a dark oblivion</a>  <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I know &#8220;someone&#8221; who would be definitely interested to spare a hand  <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mindthegab.com/2010/11/09/southparkstudioscom-or-possibly-the-weakest-ip-regional-check-ive-ever-seen/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Boost your Maven build with best practices</title>
		<link>http://mindthegab.com/2010/10/21/boost-your-maven-build-with-best-practices/</link>
		<comments>http://mindthegab.com/2010/10/21/boost-your-maven-build-with-best-practices/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 10:15:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[maven]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[springsurf]]></category>

		<guid isPermaLink="false">http://mindthegab.com/2010/10/21/boost-your-maven-build-with-best-practices/</guid>
		<description><![CDATA[Today I&#8217;m approaching the Spring Surf RC2 release and one of the major thing that has been bothering me (and definitely the other devs) has been the slowness and instability of the Maven build. Recurring issues like: Huge overhead in repository snapshot artifact lookups Multimodule useless plugin invocations Build randomly failing on the build server [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tropicalpasta.com/blog/wp-content/uploads/2009/06/legocool43.jpg" style="padding-right: 20px" align="left" width="244" height="156" /></p>
<p>Today I&#8217;m approaching the <a href="http://www.springsurf.org/">Spring Surf</a>  RC2 release and one of the major thing that has been bothering me (and  definitely the other devs) has been the slowness and instability of the  Maven build.</p>
<p>Recurring issues like:</p>
<ul>
<li>Huge overhead in repository snapshot artifact lookups</li>
<li>Multimodule useless plugin invocations</li>
<li>Build randomly failing on the build server</li>
<li>Release unnecessary complex</li>
</ul>
<p>In this sense, as Maven has always been my boy, today I decided, prior to the RC2 release, to try and improve performances and stability of the build to a good extent before proceeding with release: in this sense, as I often suggest, a Maven project is somehow like a very sweet but complicated woman, who really need some Tender, Love &amp; Care before actually being able to release all its potential.</p>
<p>And as I believe that, in the infinite hate &amp; love between software writers and software users/configurators, Maven design has too many times blamed for circumstances that actually are fully under the control of the configurator (e.g. the dev who writes the Maven POM), while I go trough this Maven refactoring I dediced to share my experience and achievements with you, to actually try and somehow <em>give Ceasar what belongs to Ceasar.</em></p>
<p><strong><span id="more-56"></span></strong></p>
<p><strong>The Before</strong></p>
<p>Before we enter in the Maven refactoring best practices a glimpse on what the project looks like right now.</p>
<ul>
<li>My machine is a MacBook Pro 2.66 Ghz Intel Core 2 Duo, with 4GB DDR3 RAM and MacOSX 10.5.8</li>
<li><a href="https://fisheye.springsource.org/browse/se-surf/trunk/pom.xml?r=603">Maven POM on Spring Surf Trunk at revision 603</a></li>
<li><strong>Maven 2.0.11</strong> (old version but needed for some non updated plugins) on <strong>Java 1.6.0_20</strong><code><br />
zion:spring-surf-parent mindthegab$ mvn --version<br />
Apache Maven 2.0.11 (r909250; 2010-02-12 06:55:50+0100)<br />
Java version: 1.6.0_20<br />
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home<br />
Default locale: en_US, platform encoding: MacRoman</code></li>
<li>
<p align="left">Using <a href="http://cloc.sourceforge.net/">Cloc</a> to count lines <strong>in pom.xml files</strong> across the whole project, I<strong> got 7139 LOC</strong><br />
<em>Command</em>: <code>zion:tools mindthegab$ perl cloc-1.52.pl ~/Dev/alfresco/workspace/spring-surf-parent/ --match-f=pom.xml</code><br />
<code></code></li>
<li>With a fairly full repository (already built this at least once) this is the current build performance:<br />
<table border="1" width="375" height="56">
<tr>
<td align="center"><strong>When</strong></td>
<td align="center"><strong>Command</strong></td>
<td align="center"><strong>Performance</strong></td>
</tr>
<tr>
<td>Original</td>
<td><code>mvn clean install</code></td>
<td>18 minutes 49 seconds</td>
</tr>
</table>
</li>
</ul>
<p>Let&#8217;s make it fly, now <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Best Practice 1 &#8211; Lower the number of repositories</strong></p>
<p>Keeping the number of Repositories declared in the POM as low as possible has a drastic impact on the build experience and also lowers concerns on the build being dependent on multiple internet sources to be reproducible. This has to be achieved by:</p>
<ul>
<li><strong>Remove development leftovers</strong>, i.e. validating which repositories are actually needed by the build</li>
<li><strong>Use a corporate repository to proxy external repositories, </strong>allowing Maven to focus on building and leaving the hassle of remote repository dependency resolution to the proxy repository. In our example we&#8217;ll an Enterprise Maven repository software called <a href="http://nexus.sonatype.org">Sonatype Nexus</a>, which is hosted by Alfresco at <a href="http://maven.alfresco.com">http://maven.alfresco.com</a></li>
</ul>
<p>In our case <a href="https://fisheye.springsource.org/browse/se-surf/trunk/pom.xml?r=603">Surf original POM</a> contained <strong>10 repositories</strong> and <strong>3 plugin repositories</strong> which seems really to be an exaggeration, especially most repositories are from the Spring community anyways (and one of them is already the <a href="http://maven.alfresco.com/">http://maven.alfresco.com</a> Nexus instance).</p>
<p>So first of all I removed the following repositories:</p>
<ul>
<li>http://private.repository.springsource.com/maven/bundles/external &#8211; <strong>This is private repo, not suitable for an opensource project</strong></li>
</ul>
<p>And then I proceeded removing from the POM (and creating corresponding Proxy URLs in <a href="http://maven.alfresco.com/">http://maven.alfresco.com</a>) for the following repositories:</p>
<table border="1" width="682" height="737">
<tr>
<td align="center"><strong>Repository</strong></td>
<td align="center"><strong>Proxied URL<br />
(under</p>
<p>http://maven.alfresco.com/nexus/content/repositories</strong>)</td>
<td align="center"><strong>Type</strong></td>
</tr>
<tr>
<td align="center">http://repository.springsource.com/maven/bundles/release</td>
<td align="center">/com.springsource.repository.bundles.release</td>
<td align="center">Release</td>
</tr>
<tr>
<td align="center">http://repository.springsource.com/maven/bundles/external</td>
<td align="center">/com.springsource.repository.bundles.external</td>
<td align="center">Release</td>
</tr>
<tr>
<td align="center">http://repository.springsource.com/maven/bundles/milestone</td>
<td align="center">/com.springsource.repository.bundles.milestone</td>
<td align="center">Release</td>
</tr>
<tr>
<td align="center">http://repository.springsource.com/maven/bundles/snapshot</td>
<td align="center">/com.springsource.repository.bundles.snapshot/</td>
<td align="center">Snapshot (was wrongly configured as release in the POM)</td>
</tr>
<tr>
<td align="center">http://maven.springframework.org/milestone</td>
<td align="center">/maven.springframework.org.milestone</td>
<td align="center">Release</td>
</tr>
<tr>
<td align="center">http://maven.springframework.org/snapshot</td>
<td align="center">/maven.springframework.org.snapshot/</td>
<td align="center">Snapshot (was wrongly configured as release in the POM)</td>
</tr>
<tr>
<td align="center">http://extensions.springframework.org/snapshot</td>
<td align="center">/snapshot.extensions.springframework.org</td>
<td align="center">Snapshot</td>
</tr>
<tr>
<td align="center">http://extensions.springframework.org/milestone</td>
<td align="center">/snapshot.extensions.springframework.org/</td>
<td align="center">Release (was wrongly configured as snapshot in the POM)</td>
</tr>
<tr>
<td align="center">http://mc-repo.googlecode.com/svn/maven2/releases</td>
<td align="center">/mc-repo/</td>
<td align="center">Release</td>
</tr>
<tr>
<td align="center">https://nexus.codehaus.org/content/repositories/releases</td>
<td align="center">/codehaus-repository-nexus/</td>
<td align="center">Release</td>
</tr>
<tr>
<td align="center">https://nexus.codehaus.org/content/repositories/snapshots/</td>
<td align="center">/codehaus-snapshots-nexus/</td>
<td align="center">Snapshot (was wrongly configured as release in the POM)</td>
</tr>
</table>
<p>Now the whole point of this repository proxying is that Nexus allows us to <strong>group repositories</strong> on common URLs so that we can have a single reference for <strong>only one releases</strong> and <strong>only one snapshots</strong> repositories. In this sense what I did is grouping:</p>
<ul>
<li><strong>all the above release repositories</strong> under one single URL <a href="http://maven.alfresco.com/nexus/content/groups/public/">http://maven.alfresco.com/nexus/content/groups/public/</a></li>
<li><strong>all the above snapshot repositories</strong> under one single URL <a href="http://maven.alfresco.com/nexus/content/groups/public-snapshots/">http://maven.alfresco.com/nexus/content/groups/public-snapshots/</a></li>
</ul>
<p>This way the refactored Surf POM will mention only 2 repositories (+ 2 pluginRepositories) which looks already much better than when we started, see below:<br />
<code>&lt;repositories&gt;<br />
&lt;!-- Alfresco Community Maven Repositories --&gt;<br />
&lt;repository&gt;<br />
&lt;id&gt;alfresco-public-snapshots&lt;/id&gt;<br />
&lt;url&gt;http://maven.alfresco.com/nexus/content/groups/public-snapshots&lt;/url&gt;<br />
&lt;releases&gt;<br />
&lt;enabled&gt;false&lt;/enabled&gt;<br />
&lt;/releases&gt;<br />
&lt;snapshots&gt;<br />
&lt;enabled&gt;true&lt;/enabled&gt;<br />
&lt;/snapshots&gt;<br />
&lt;/repository&gt;<br />
&lt;repository&gt;<br />
&lt;id&gt;alfresco-public-releases&lt;/id&gt;<br />
&lt;url&gt;http://maven.alfresco.com/nexus/content/groups/public&lt;/url&gt;<br />
&lt;/repository&gt;<br />
&lt;/repositories&gt;<br />
&lt;pluginRepositories&gt;<br />
&lt;pluginRepository&gt;<br />
&lt;id&gt;alfresco-public-snapshots&lt;/id&gt;<br />
&lt;url&gt;http://maven.alfresco.com/nexus/content/groups/public-snapshots&lt;/url&gt;<br />
&lt;releases&gt;<br />
&lt;enabled&gt;false&lt;/enabled&gt;<br />
&lt;/releases&gt;<br />
&lt;snapshots&gt;<br />
&lt;enabled&gt;true&lt;/enabled&gt;<br />
&lt;/snapshots&gt;<br />
&lt;/pluginRepository&gt;<br />
&lt;pluginRepository&gt;<br />
&lt;id&gt;alfresco-public-releases&lt;/id&gt;<br />
&lt;url&gt;http://maven.alfresco.com/nexus/content/groups/public&lt;/url&gt;<br />
&lt;/pluginRepository&gt;<br />
&lt;/pluginRepositories&gt;</code></p>
<p>After this refactoring, we tried to run the build again with a following (encouraging, have to admit) <strong>drastical 48% performance improvement</strong>:</p>
<table border="1" width="300" height="60">
<tr>
<td align="center"><strong>When</strong></td>
<td align="center"><strong>Command</strong></td>
<td align="center"><strong>Performance</strong></td>
<td align="center"><strong>Perf delta</strong></td>
</tr>
<tr>
<td>Original</td>
<td><code>mvn clean install</code></td>
<td>18 minutes 49 seconds</td>
<td>Not applicable</td>
</tr>
<tr>
<td>Post Repository Consolidation</td>
<td><code>mvn clean install</code></td>
<td>9 minutes 42 seconds</td>
<td><strong>48.4 %</strong></td>
</tr>
</table>
<p><strong>Best Practice 2 &#8211; Fine tune SNAPSHOT repositories policies</strong></p>
<p>By default Maven 2 checks always for newer versions of SNAPSHOT dependencies and plugin, but this can definitely be controlled by <a href="http://maven.apache.org/settings.html#Repositories">POM/settings configurations</a>. It&#8217;s always a best practice to limit <strong>SNAPSHOT update policies </strong>to perform a daily check rather than bothering every single build with useless (unless you&#8217;re in heavy development phases) HTTP failed requests.</p>
<p>In our case we only have (after applying <strong>Best Practice 1</strong>) 2 snapshot repositories: in this sense, with respect to the above repositories configuration we only need to add the <code>&lt;updatePolicy&gt;daily&lt;/updatePolicy&gt;</code> snippet to the <code></code><code>alfresco-public-snapshots</code><code></code> <code>repository</code> and<code> pluginRepository.</code></p>
<p>Since we have few repositories after refactoring, we expect this won&#8217;t improve that much the performances (and anyways SNAPSHOTs were already updated today by earlier builds), so we skip the performance improvement step for this best practice.</p>
<p><strong>Best Practice 3 &#8211; Limit Multimodule unnecessary plugin executions</strong></p>
<p>When used in their default configuration certain plugins result in unnecessary (or at least overhead) executions for all the submodules in the reactor. In our context, especially, being <strong>Spring Surf composed of 30 submodules + 1 parent</strong>, well, you can already see the issue.</p>
<p>In particular, looking around in the POM I found and optimized the usage of :</p>
<table border="1" width="301" height="149">
<tr>
<td align="center"><strong>Plugin</strong></td>
<td align="center"><strong>Usage</strong></td>
<td align="center"><strong>Optimization</strong></td>
</tr>
<tr>
<td><a href="http://mojo.codehaus.org/buildnumber-maven-plugin/">buildnumber-maven-plugin</a></td>
<td>Used to incrementally label builds based on the SVN revision.</td>
<td>Using <a href="http://mojo.codehaus.org/buildnumber-maven-plugin/create-mojo.html#getRevisionOnlyOnce">getRevisionOnlyOnce</a>, we limit the execution of this plugin (and SVN remote requests) to the parent project, and this save 30 plugin executions</td>
</tr>
</table>
<p>With this configurations turned on, <strong>we are happily improving the build performances of another incremental 40%</strong>:</p>
<table border="1" width="301" height="149">
<tr>
<td align="center"><strong>When</strong></td>
<td align="center"><strong>Command</strong></td>
<td align="center"><strong>Performance</strong></td>
<td align="center"><strong>Perf delta</strong></td>
</tr>
<tr>
<td>Original</td>
<td><code>mvn clean install</code></td>
<td>18 minutes 49 seconds</td>
<td>Not applicable</td>
</tr>
<tr>
<td>Post Repository Consolidation</td>
<td><code>mvn clean install</code></td>
<td>9 minutes 42 seconds</td>
<td><strong>48.4 %</strong></td>
</tr>
<tr>
<td>Post Plugins configuration</td>
<td><code>mvn clean install</code></td>
<td>5 minutes 51 seconds</td>
<td><strong>39.6 %</strong></td>
</tr>
</table>
<p><strong>Best Practice 4 &#8211; Fix plugin versions</strong></p>
<p>One the main causes of <strong>non reproducible or instable</strong> builds is the Maven <em>&#8220;feature&#8221;</em> which allows you not to specify a plugin version, in which case Maven will try to retrieve the latest plugin version fronm any of the available repositories. This becomes expecially dangerous when using proxying which are basically mirroring the full Maven public artifacts arena, because, simply, if and whenever someone will upload a new (maybe broken) plugin version your build will pick it up right away potentially failing.</p>
<p>In our contexts no plugins were using SNAPSHOT versions, but I leave this best practice here as a reference</p>
<p><strong>Best Practice 5 &#8211; Check for weird plugin executions in your lifecycle</strong></p>
<p>In certain contexts a complex POM configuration or a heavily multi-module build might require certain plugins (in certain configurations) to be ran multiple times, with unnecessary build time wasted. It&#8217;s always a good practice to follow (at least once) your build in order to understand if there are weird loops.</p>
<p>In our contexts I was able to find a <a href="http://jira.codehaus.org/browse/MSITE-479">bug</a> in the <a href="http://maven.apache.org/plugins/maven-javadoc-plugin/">maven javadoc plugin</a> 2.6+ which was causing the plugin to be invoked N*N times where N is the number of modules of my project (so N times per each of the N modules). The workaround was to downgrade to 2.5 version of the javadoc plugin.</p>
<p><strong>Wrap up and considrations</strong><br />
Looking at the numbers we can be quite happy of having reduced the build time from 18 minutes and 49 seconds to actually <strong>5 minutes and 51  </strong>(<em><strong>a good 68% performance improvement</strong></em>), while POM LOC went down to 6990<strong> (~2% reduction)</strong> Not saying this is the recipe for any build improvements, just trying to convey the message that, when used properly, Maven can actually be a great automation tool instead of an additional hassles for the devs.<br />
Last but not least, the <a href="http://uspolitics.einnews.com/pr-news/190819-the-apache-software-foundation-announces-apache-maven-version-3-0">ASF has just announced Maven 3</a>, which promises to speed up our builds and provide a much safer framework to do Application Lifecycle Management. So stay posted, because I might try to Maven3ize the Spring Surf build sooner or later <img src='http://mindthegab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mindthegab.com/2010/10/21/boost-your-maven-build-with-best-practices/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Surf-ing in Cagliari</title>
		<link>http://mindthegab.com/2010/09/09/surf-ing-in-cagliari/</link>
		<comments>http://mindthegab.com/2010/09/09/surf-ing-in-cagliari/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 11:24:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[alfresco]]></category>
		<category><![CDATA[calm]]></category>
		<category><![CDATA[cmis]]></category>
		<category><![CDATA[spanish]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://mindthegab.com/2010/09/09/surf-ing-in-cagliari/</guid>
		<description><![CDATA[And almost 18 months after Surf-ing in Munich&#8217;s snow, but this time as a presenter, and in the quite warmer venue of Cagliari, I was lucky enough to be invited by Max to speak at the Spring Framework meeting last weekend.I just published the slides about my talk &#8220;Spring Surf and OpenCMIS, the dynamic duo&#8221;, while, considering my agenda of the next weeks/months, I guess it&#8217;ll take a [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.springsurf.org/images/logo/PoweredBySurf.png" style="width: 139px; height: 63px" alt="undefined" title="undefined" align="top" height="63" width="139" /><img src="http://incubator.apache.org/chemistry/images/chemistry_logo_small.png" style="width: 389px; height: 41px" title="undefined" align="top" height="41" width="389" alt="undefined" /><br />
<br/>And almost 18 months after <a href="http://mindthegab.com/2009/01/19/surf-ing-alfresco-on-the-snow/">Surf-ing in Munich&#8217;s snow</a>, but this time <a href="http://www.jugsardegna.org/vqwiki/jsp/Wiki?4settembre2010">as a presenter</a>, and in the <a href="http://mysardinia.com/content/cagliari41.jpg">quite warmer</a><a href="http://mysardinia.com/content/cagliari41.jpg"> venue</a> of Cagliari, I was lucky enough to be invited by <a href="http://www.jroller.com/desmax/">Max</a> to speak at the Spring Framework meeting last weekend.I just published the slides about my talk <a href="http://www.slideshare.net/mindthegab/0910-cagliari-spring-surf-and-cmis-the-dynamic-duo">&#8220;Spring Surf and OpenCMIS, the dynamic duo&#8221;</a>, while, considering my agenda of the next weeks/months, I guess it&#8217;ll take a while for me to find a little rest and publish some nice photos of the wonderful Sardinian landscape I&#8217;ve visited.Nevertheless (as some <a href="http://www.xing.com/profile/Christian_Thiede3">German friend of mine</a> like to repeat more than often), stay posted!</p>
]]></content:encoded>
			<wfw:commentRss>http://mindthegab.com/2010/09/09/surf-ing-in-cagliari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-2609345-2']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
