<?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>Sami Dalouche</title>
	<atom:link href="http://www.dalouche.com/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dalouche.com/wordpress</link>
	<description>Sami Dalouche's blog about Linux, Java, .NET and other bleeding-edge stuff. skoobi@free.fr</description>
	<lastBuildDate>Wed, 25 Aug 2010 17:24:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>An interesting way to fund projects</title>
		<link>http://www.dalouche.com/wordpress/2010/08/25/an-interesting-way-to-fund-projects/</link>
		<comments>http://www.dalouche.com/wordpress/2010/08/25/an-interesting-way-to-fund-projects/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 17:24:29 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=287</guid>
		<description><![CDATA[Incubators are looking for ways to differentiate themselves. The newly launched AngelPad (an incubator created by 7 ex-googlers), for instance, bets on recreating a google-like atmosphere to foster innovation.
A recent post from Mark Shuttleworth seems to show that some foundations also have interesting ideas when it comes to financing projects :
&#8220;The model of the Foundation [...]]]></description>
			<content:encoded><![CDATA[<p>Incubators are looking for ways to differentiate themselves. The newly launched <a href="http://angelpad.org/">AngelPad</a> (an incubator created by 7 ex-googlers), for instance, bets on recreating a google-like atmosphere to foster innovation.</p>
<p>A <a href="http://www.markshuttleworth.com/archives/497"><a href="http://www.markshuttleworth.com/archives/497">recent post from </a>Mark Shuttleworth</a> seems to show that some foundations also have interesting ideas when it comes to financing projects :</p>
<blockquote><p>&#8220;The model of the Foundation is unusual: we identify interesting change  agents, like Mark, who are articulating powerful ideas that seem like  the offer a hint of the future, and we fund them to work on those for a  year. We also offer them an investment multiplier: if they put their  personal money into a project, we multiply that by 10x or more, up to a  maximum amount. In short, find good people, back them when they put skin  in the game.&#8221;</p></blockquote>
<p>Now, I am wondering about something : could incubators be a model for managing companies ?</p>
<ul>
<li>What would happen if you created a company that was merely a kind of aggregate of smaller companies sharing a common vision but running mostly independantly ?</li>
<li>Could the <a href="http://en.wikipedia.org/wiki/Politics_of_Switzerland">Politics of Switzerland</a> be an inspiration  for creating such an ecosystem ?</li>
<li>How much federal government do you need to have inside a company to have the perfect balance between &#8220;feeling like a single company&#8221; and &#8220;feeling empowered enough to do things without any bureaucracy&#8221; ? (do-ers hate bureaucracy, so if you want doers in your company, you&#8217;d better find a way to systematically fight it if you want to keep these people)</li>
<li>Is is possible for people to feel part of their community without neglecting the rest of the ecosystem, the same way <a href="http://en.wikipedia.org/wiki/Texas">Texas</a> inhabitants feel both texan and american ?  (Have you noticed that people have both the texan flag and the american one in their garden over there ?)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/08/25/an-interesting-way-to-fund-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Here is what happens when Open Source projects do not have any benevolent dictator</title>
		<link>http://www.dalouche.com/wordpress/2010/08/10/here-is-what-happens-when-open-source-projects-do-not-have-any-benevolent-dictator/</link>
		<comments>http://www.dalouche.com/wordpress/2010/08/10/here-is-what-happens-when-open-source-projects-do-not-have-any-benevolent-dictator/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 22:51:28 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=285</guid>
		<description><![CDATA[See Enough is enough: disinfecting OSM from poisonous people.
&#8220;I used to write the code, own the domain names, run the mailing list(s),  run the servers, evangelize, talk to the press and so on. I&#8217;ve  successively and successfully given up those rights to very capable  individuals. However this has led to a power [...]]]></description>
			<content:encoded><![CDATA[<p>See <a href="http://opengeodata.org/enough-is-enough-disinfecting-osm-from-poison">Enough is enough: disinfecting OSM from poisonous people.</a></p>
<blockquote><p>&#8220;I used to write the code, own the domain names, run the mailing list(s),  run the servers, evangelize, talk to the press and so on. I&#8217;ve  successively and successfully given up those rights to very capable  individuals. However this has led to a power vacuum when it comes to  making some key decisions because nobody, for example and in a sense, is  &#8220;in charge&#8221; of everything. For the most part I&#8217;ve enjoyed giving up  control and seeing the project blossom, because it wouldn&#8217;t have if I  hadn&#8217;t.&#8221;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/08/10/here-is-what-happens-when-open-source-projects-do-not-have-any-benevolent-dictator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why DCI is the right architecture for right now</title>
		<link>http://www.dalouche.com/wordpress/2010/05/29/why-dci-is-the-right-architecture-for-right-now/</link>
		<comments>http://www.dalouche.com/wordpress/2010/05/29/why-dci-is-the-right-architecture-for-right-now/#comments</comments>
		<pubDate>Sun, 30 May 2010 03:04:56 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=275</guid>
		<description><![CDATA[InfoQ runs a very interesting video of Jim Coplien about Data-Context Interaction.
&#8220;Uncle bob completly misses the point by assuming that professionalism is about doing TDD&#8221;.
&#8220;Dynamic languages got popular for the wrong reasons
&#8220;people get religious about details that don&#8217;t matter, and very very few people are talking about the big picture&#8221;
&#8220;scrum is all about common sense, [...]]]></description>
			<content:encoded><![CDATA[<p>InfoQ runs a very <a href="http://www.infoq.com/interviews/coplien-dci-architecture">interesting video of Jim Coplien about Data-Context Interaction</a>.</p>
<blockquote><p>&#8220;Uncle bob completly misses the point by assuming that professionalism is about doing TDD&#8221;.</p>
<p>&#8220;Dynamic languages got popular for the wrong reasons</p>
<p>&#8220;people get religious about details that don&#8217;t matter, and very very few people are talking about the big picture&#8221;</p>
<p>&#8220;scrum is all about common sense, but common sense is really uncommon&#8221;</p>
<p>&#8220;teams are effective, and to be effective they have to be small. 3 is better than 5&#8243;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/05/29/why-dci-is-the-right-architecture-for-right-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Anthem&#8217;s Law</title>
		<link>http://www.dalouche.com/wordpress/2010/05/18/code-anthems-law/</link>
		<comments>http://www.dalouche.com/wordpress/2010/05/18/code-anthems-law/#comments</comments>
		<pubDate>Tue, 18 May 2010 22:10:16 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=272</guid>
		<description><![CDATA[Code Anthem&#8217;s Law :
The less the median developer on a software project team is paid, the  more the project will cost to complete.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.codeanthem.com/blog/2010/04/code-anthem-law/">Code Anthem&#8217;s Law</a> :</p>
<blockquote><p><em>The less the median developer on a software project team is paid, the  more the project will cost to complete.</em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/05/18/code-anthems-law/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrum.org developer training</title>
		<link>http://www.dalouche.com/wordpress/2010/05/17/scrum-org-developer-training/</link>
		<comments>http://www.dalouche.com/wordpress/2010/05/17/scrum-org-developer-training/#comments</comments>
		<pubDate>Mon, 17 May 2010 23:39:52 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=270</guid>
		<description><![CDATA[In the last VoxAgile episode, Christian Lapointe, Ernst Perpignand and Vincent Tence are having a discussion concerning the latest Scrum.org developer training.
Is that the solution to all the problems we are facing in the software industry ? Is a full week training going to change anything to the current situation ? The answer is clearly [...]]]></description>
			<content:encoded><![CDATA[<p>In the last <a href="http://voxagile.pyxis-tech.com">VoxAgile</a> episode, Christian Lapointe, Ernst Perpignand and Vincent Tence are having a<a href="http://content.screencast.com/users/GreenPepper/folders/VoxAgile/media/d74168c0-f8b9-4ff8-9778-7601863c27be/ProgrammeScrumOrg.mp3"> discussion concerning the latest Scrum.org developer training</a>.</p>
<p>Is that the solution to all the problems we are facing in the software industry ? Is a full week training going to change anything to the current situation ? The answer is clearly a big NO, but what I find extremely important with this new trend is that people are slowly realizing that if you want to develop software, you&#8217;d rather invest in your developers !</p>
<p>So long live to Scrum.org developer course, and let&#8217;s hope to see more initiatives like that!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/05/17/scrum-org-developer-training/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://content.screencast.com/users/GreenPepper/folders/VoxAgile/media/d74168c0-f8b9-4ff8-9778-7601863c27be/ProgrammeScrumOrg.mp3" length="38792548" type="audio/mpeg" />
		</item>
		<item>
		<title>Top 5 android news websites</title>
		<link>http://www.dalouche.com/wordpress/2010/05/17/top-5-android-news-websites/</link>
		<comments>http://www.dalouche.com/wordpress/2010/05/17/top-5-android-news-websites/#comments</comments>
		<pubDate>Mon, 17 May 2010 17:21:59 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=268</guid>
		<description><![CDATA[Here is my selection of websites that are focusing on Android-related news :

Slashoid : Android news: stuff that matters
Phandroid: Android Phone Fans
Android Central : Android Central
MobileCrunch : Techcrunh&#8217;s mobile spin-off
mobile.slashdot.org : Slashdot&#8217;s mobile spin-off

Which ones do you often use ?
]]></description>
			<content:encoded><![CDATA[<p>Here is my selection of websites that are focusing on Android-related news :</p>
<ol>
<li><a href="http://www.slashoid.org">Slashoid</a> : Android news: stuff that matters</li>
<li><a href="http://phandroid.com/">Phandroid:</a> Android Phone Fans</li>
<li><a href="http://www.androidcentral.com/">Android Central</a> : Android Central</li>
<li><a href="http://www.mobilecrunch.com/">MobileCrunch</a> : Techcrunh&#8217;s mobile spin-off</li>
<li><a href="http://mobile.slashdot.org/">mobile.slashdot.org</a> : Slashdot&#8217;s mobile spin-off</li>
</ol>
<p>Which ones do you often use ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/05/17/top-5-android-news-websites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slashoid.org traffic on the rise</title>
		<link>http://www.dalouche.com/wordpress/2010/05/17/slashoid-org-traffic-on-the-rise/</link>
		<comments>http://www.dalouche.com/wordpress/2010/05/17/slashoid-org-traffic-on-the-rise/#comments</comments>
		<pubDate>Mon, 17 May 2010 15:13:03 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=266</guid>
		<description><![CDATA[With a few people from Pyxis Tech, we launched Slashoid.org last month. The goal was to provide a community-driven website that provides Android news that matter : interesting and unpolluted scoops that prevent you, as a reader, from subscribing to dozen of RSS feeds just to be notified of anything that is worth it in [...]]]></description>
			<content:encoded><![CDATA[<p>With a few people from <a href="http://www.pyxis-tech.com/fr/expertises/android/index_android.php">Pyxis Tech</a>, we <a href="http://www.dalouche.com/wordpress/2010/04/21/android-community-launch-of-slashoid-org/">launched Slashoid.org last month</a>. The goal was to provide a community-driven website that provides Android news that matter : interesting and unpolluted scoops that prevent you, as a reader, from subscribing to dozen of RSS feeds just to be notified of anything that is worth it in the Android community.</p>
<p>After a month of activity, things seem to go well. We average something like <strong>60 unique visitors and about 150 page views per day</strong>. This is a good start, and will continue to rise as we get some visibility (From a SEO point of view, we are practically invisible). Any idea on how to improve this ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/05/17/slashoid-org-traffic-on-the-rise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why &#8220;simplistic&#8221; scrum can&#8217;t work in large scale projects</title>
		<link>http://www.dalouche.com/wordpress/2010/05/15/why-simplistic-scrum-cant-work-in-large-scale-projects/</link>
		<comments>http://www.dalouche.com/wordpress/2010/05/15/why-simplistic-scrum-cant-work-in-large-scale-projects/#comments</comments>
		<pubDate>Sat, 15 May 2010 23:13:23 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=264</guid>
		<description><![CDATA[On Scrum cross-functional teams pinpoints the lack of a real flow in Scrum and its consequences
In Scrum, there is no mechanism to show the bottlenecks of a process.  You can only see that the realization of a task takes a long time or  that the task is blocked. You have no idea why [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pouetproject.blogspot.com/2010/05/on-scrum-cross-functional-teams-lean.html">On Scrum cross-functional teams</a> pinpoints the lack of a real flow in Scrum and its consequences</p>
<blockquote><p>In Scrum, there is no mechanism to show the bottlenecks of a process.  You can only see that the realization of a task takes a long time or  that the task is blocked. You have no idea why or where it is stuck  unless you ask the team members. The burndown chart doesn&#8217;t help in that  matter, when there is a bottleneck you can see some bumps on the graphs  but the chart doesn&#8217;t capture any information on where is the delay is  coming from. &#8220;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/05/15/why-simplistic-scrum-cant-work-in-large-scale-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dojo AJAX file uploader with progress bar</title>
		<link>http://www.dalouche.com/wordpress/2010/05/09/dojo-ajax-file-uploader-with-progress-bar/</link>
		<comments>http://www.dalouche.com/wordpress/2010/05/09/dojo-ajax-file-uploader-with-progress-bar/#comments</comments>
		<pubDate>Sun, 09 May 2010 19:22:55 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=260</guid>
		<description><![CDATA[I am proud to announce the availability of MFU (Multiple File Uploader) v0.1 . This is a small project that we developed with Florent Valdelievre.
If you are using the dojo toolkit and are looking for a clean, customizable file uploader, that works pretty much the same way as gmail file attachment mechanism (demo here), then [...]]]></description>
			<content:encoded><![CDATA[<p>I am proud to announce the availability of <a href="http://developers.sirika.com/mfu/">MFU (Multiple File Uploader)</a> v0.1 . This is a small project that we developed with <a href="http://developers.sirika.com/mfu/contact.html">Florent Valdelievre</a>.</p>
<p>If you are using the <a href="http://www.dojotoolkit.org/">dojo toolkit</a> and are looking for a clean, customizable file uploader, that works pretty much the same way as gmail file attachment mechanism (<a href="http://developers.sirika.com/mfu-demo/samples/mfu-dojo-embedded/mfu-dojo-embedded.html">demo here</a>), then please check it out !</p>
<p>The most important features include :</p>
<ul>
<li><strong>Cross-browser compliance:</strong> MFU has been successfully  tested on IE6, IE7, Firefox, Safari, Chrome, and Opera. Moreover, it  builds on top of dojo abstractions which provide a cross-browser  compatiblity layer</li>
<li><strong>Ease of use:</strong> MFU either comes as an easy-to-use  standalone, striped-down, optimized version, or as a module that can be  plugged into any dojo-based application. MFU distribution comes bundled  with a set of sample HTML/JavaScript templates as well as a sample  PHP-based server-side implementation. See the <a href="http://developers.sirika.com/mfu/quickstart.html">Quickstart</a> for more information.</li>
<li><strong>Customizable look:</strong> MFU takes advantage of dojo&#8217;s <a href="http://docs.dojocampus.org/dijit/_Templated">Template</a> mechanism. As a matter of fact, the layout, links, and general  appearance are completly configurable through an html template. This is  particularly handy in situations where you need to customize MFU for  your site&#8217;s look and feel.</li>
<li><strong>Internationalizable (i18n):</strong> All links and error messages  take advantage of dojo&#8217;s internationalization support. You are more than  welcome to <a href="http://developers.sirika.com/mfu/devzone.html#fork-the-code-on-github">fork  the code on github</a> to provide additional translations.</li>
<li><strong>Free Software:</strong> MFU is liberally dual-licensed under the  <a href="http://www.opensource-definition.org/licenses/bsd-license.html">New  BSD license</a> and the <a href="http://www.opensource-definition.org/licenses/afl-2.1.html">Academic  Free License v2.1</a> (same license terms as dojo). Feel free to either  contribute to or fork the <a href="http://developers.sirika.com/mfu/devzone.html#source-code">source  code</a> on github</li>
</ul>
<p>Please do not hesitate to drop me an email if you have trouble using MFU.</p>
<p>And of course, the project is <a href="http://github.com/samokk/multiplefileuploader">hosted on github</a>, so contributing is a breeze <img src='http://www.dalouche.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Just fork to provide additional code or translations, and we&#8217;ll be thrilled to include your enhancements in the next release.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/05/09/dojo-ajax-file-uploader-with-progress-bar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>8 types of software consulting firms</title>
		<link>http://www.dalouche.com/wordpress/2010/05/04/8-types-of-software-consulting-firms/</link>
		<comments>http://www.dalouche.com/wordpress/2010/05/04/8-types-of-software-consulting-firms/#comments</comments>
		<pubDate>Tue, 04 May 2010 16:56:47 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=258</guid>
		<description><![CDATA[Pretty good post from A. Skorkin.

BOZO Consulting
BOZO is a place with well-intentioned people who really want to  please their clients. The only downside to BOZO is it doesn&#8217;t have the  slightest clue about how to achieve that goal. BOZO says yes to  everything: &#8220;Yes, of course we will cut the estimate.&#8221; &#8220;Yes, [...]]]></description>
			<content:encoded><![CDATA[<p>Pretty good post from <a href="http://www.skorks.com/2010/05/8-types-of-software-consulting-firms-which-one-do-you-work-for/">A. Skorkin</a>.</p>
<blockquote>
<h3>BOZO Consulting</h3>
<p>BOZO is a place with well-intentioned people who really want to  please their clients. The only downside to BOZO is it doesn&#8217;t have the  slightest clue about how to achieve that goal. <strong>BOZO says yes to  everything</strong>: &#8220;Yes, of course we will cut the estimate.&#8221; &#8220;Yes, of  course, we will lower our bill rate.&#8221; The idea is to get the deal at  all costs. To summarize, BOZO has a sales-driven culture that lacks the  ability to leverage any sort of delivery capability it accidentally  hires (<em><strong>thought from Skorks:</strong> that would have to be  one of the most buzzword driven sentences ever, how can we &#8220;leverage&#8221;  that</em>).</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/05/04/8-types-of-software-consulting-firms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lessons learnt from start-ups</title>
		<link>http://www.dalouche.com/wordpress/2010/04/28/lessons-learnt-from-start-ups/</link>
		<comments>http://www.dalouche.com/wordpress/2010/04/28/lessons-learnt-from-start-ups/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 12:23:18 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=254</guid>
		<description><![CDATA[I came across a few very interesting set of &#8220;lessons learnt from my start-up&#8221; articles. (thanks Mathieu, Joel for the references) :



Lessons learnt from Devver.net
Startup lessons learnt from Warren Buffer
My co-founder took my company and my girlfriend

There are many  benefits to having a  distributed team, but two stood out in our  experience. [...]]]></description>
			<content:encoded><![CDATA[<p>I came across a few very interesting set of &#8220;lessons learnt from my start-up&#8221; articles. (thanks Mathieu, Joel for the references)<a href="http://devver.net/blog/2010/04/lessons-learned/"> :</a></p>
<p><a href="http://devver.net/blog/2010/04/lessons-learned/"><br />
</a></p>
<ul>
<li><a href="http://devver.net/blog/2010/04/lessons-learned/">Lessons learnt from Devver.net</a></li>
<li><a href="http://entrepreneur.venturebeat.com/2010/04/13/startup-lessons-learned-from-warren-buffett/">Startup lessons learnt from Warren Buffer</a></li>
<li><a href="http://blog.cubeofm.com/cofounders">My co-founder took my company and my girlfriend</a></li>
</ul>
<blockquote><p>There are <a id="o9gf" title="many benefits" href="http://toni.org/2010/03/08/5-reasons-why-your-company-should-be-distributed/">many  benefits</a> to having a  distributed team, but two stood out in our  experience. First, we could  hire top talent without having to worry  about location (in fact, our  flexibility regarding location was very  attractive to most candidates we  interviewed). Secondly, being in  different locations allowed every team  member to work with minimal  distractions, which is invaluable when it  comes to efficiently writing  good code.</p>
<p>&#8212;-</p>
<div>
<div>
<div>
<p>We would rather suffer the visible  costs of a few bad decisions than incur the many invisible costs that  come from decisions made too slowly – or not at all – because of a  stifling bureaucracy.</p>
</div>
<div>
<div>Warren Buffett excerpted in <a href="http://entrepreneur.venturebeat.com/2010/04/13/startup-lessons-learned-from-warren-buffett/">“Startup  lessons learned from Warren Buffett”</a> [thx Derick]</div>
</div>
<div>&#8212;-</div>
<div>And yes, a partnership is never really equal.  There has to be someone  who is somewhat more equal than others. There is nothing more  devastating than a partnership were all the members have exactly equal  rights and votes. This just does not work. Human society and all monkeys  always have a single individual at the top  and with all others, even  though they are almost equal, being not quite equal.</div>
</div>
</div>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/04/28/lessons-learnt-from-start-ups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slashoid is one-week old, already 30+ scoops published</title>
		<link>http://www.dalouche.com/wordpress/2010/04/26/slashoid-is-one-week-old-already-30-scoops-published/</link>
		<comments>http://www.dalouche.com/wordpress/2010/04/26/slashoid-is-one-week-old-already-30-scoops-published/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 00:02:16 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=251</guid>
		<description><![CDATA[Slashoid has been launched less than a week ago, and more than 30 scoops have already been published. The current feedback includes :

Too much clutter before being able to publish a scoop (tags, ..)
Article publishing date/time does not work correctly
Impossible to delete scoops

These issues are all related to Drigg/Drupal, but we will take a look [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.slashoid.org/node/34">Slashoid</a> has been launched less than a week ago, and more than 30 scoops have already been published. The current feedback includes :</p>
<ul>
<li>Too much clutter before being able to publish a scoop (tags, ..)</li>
<li>Article publishing date/time does not work correctly</li>
<li>Impossible to delete scoops</li>
</ul>
<p>These issues are all related to <a href="http://www.drigg-code.org/">Drigg/Drupal</a>, but we will take a look at them whenever we get some time, to check wether things can be easily fixed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/04/26/slashoid-is-one-week-old-already-30-scoops-published/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why Mark Suster is wrong about not hiring job hoppers</title>
		<link>http://www.dalouche.com/wordpress/2010/04/25/why-mark-suster-is-wrong-about-not-hiring-job-hoppers/</link>
		<comments>http://www.dalouche.com/wordpress/2010/04/25/why-mark-suster-is-wrong-about-not-hiring-job-hoppers/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 04:44:21 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=249</guid>
		<description><![CDATA[Why Mark Suster is wrong about not hiring job  hoppers
So who in the hell should you hire? Hire the best. Hire people that can  leave your startup at any minute if they wanted to because they&#8217;re so  kick ass that they&#8217;re constantly getting contacted by interested  parties. Then it becomes your [...]]]></description>
			<content:encoded><![CDATA[<h3><a href="http://www.pauldix.net/2010/04/why-mark-suster-is-wrong-about-not-hiring-job-hoppers.html">Why Mark Suster is wrong about not hiring job  hoppers</a></h3>
<blockquote><p>So who in the hell should you hire? Hire the best. Hire people that can  leave your startup at any minute if they wanted to because they&#8217;re so  kick ass that they&#8217;re constantly getting contacted by interested  parties. Then it becomes your job to ensure that you&#8217;re creating an  environment that is equally as good as your people. Create a company  that gives your people the most room for growth, creativity, a sense of  ownership, and fun. And if you can&#8217;t hire the best then hire people with  any level of experience (novice, intermediate, advanced) that have  promise. Then help them become the best so that they can leave any time  they want. Hint: they won&#8217;t. They&#8217;ll be loyal because you helped them  become the best. Your goal should be to help every single employee get  to the point where they&#8217;re the best in their field and are constantly  getting job offers.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/04/25/why-mark-suster-is-wrong-about-not-hiring-job-hoppers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Who is preventing the release of Java 1.7</title>
		<link>http://www.dalouche.com/wordpress/2010/04/23/who-is-preventing-the-release-of-java-1-7/</link>
		<comments>http://www.dalouche.com/wordpress/2010/04/23/who-is-preventing-the-release-of-java-1-7/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 22:15:12 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=247</guid>
		<description><![CDATA[Who is preventing the release of Java 1.7 ?
&#8220;He said it&#8217;s delayed as there are parties who are refusing to sign off  JSRs they own and thus preventing the 1.7 release. It apparently has  something to do with the cost of determining your Sun compliance.&#8221;
&#8220;The basis of the problem is the release process [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://stackoverflow.com/questions/2062952/who-is-preventing-the-release-of-java-1-7">Who is preventing the release of Java 1.7</a> ?</p>
<blockquote><p>&#8220;He said it&#8217;s delayed as there are parties who are refusing to sign off  JSRs they own and thus preventing the 1.7 release. It apparently has  something to do with the cost of determining your Sun compliance.&#8221;</p>
<p>&#8220;The basis of the problem is the release process itself. The <a rel="nofollow" href="http://en.wikipedia.org/wiki/Java_Community_Process">Java Community Process</a> was meant to bring a more  democratic process to JDK development, but it&#8217;s turned into an awful,  bureaucratic mess, with too many people having too much of a say on what  happens.&#8221;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/04/23/who-is-preventing-the-release-of-java-1-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CVS/SVN vs Git</title>
		<link>http://www.dalouche.com/wordpress/2010/04/23/cvssvn-vs-git/</link>
		<comments>http://www.dalouche.com/wordpress/2010/04/23/cvssvn-vs-git/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 22:06:04 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=243</guid>
		<description><![CDATA[Take a look at a pretty old email from Linus on cvs/svn vs git.. (2005).

So one of the worst downsides of CVS is _politics_. People, not
technology.
The upside of centralization is that a lot of things are easier. Easier to
think about, easier to get a stupid and straightforward idea working. 

But if you have hundreds of [...]]]></description>
			<content:encoded><![CDATA[<p>Take a look at a pretty <a href="http://marc.info/?l=git&amp;m=113072612805233&amp;w=2">old email from Linus on cvs/svn vs git</a>.. (2005).</p>
<blockquote>
<pre>So one of the worst downsides of CVS is _politics_. People, not
technology.
<pre>The upside of centralization is that a lot of things are easier. Easier to
think about, easier to get a stupid and straightforward idea working. 

But if you have hundreds of developers, and you have a dynamic trust
network (I trust some people, they trust others, <strong>and we all tend to trust
people more or less depending on what they work on</strong>), the CVS model is
absolutely HORRID. It just doesn't work.
</pre>
</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/04/23/cvssvn-vs-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android community: launch of Slashoid.org</title>
		<link>http://www.dalouche.com/wordpress/2010/04/21/android-community-launch-of-slashoid-org/</link>
		<comments>http://www.dalouche.com/wordpress/2010/04/21/android-community-launch-of-slashoid-org/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 19:21:55 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=235</guid>
		<description><![CDATA[With a few work collegues from Pyxis-technologies, we have decided we would use our 20% side-project time to launch an Android community.
The first visible part of our work is the launch of the Slashoid.org news website. The Launch of Slashoid post describes the intent of the website, and what we want this to be. Any [...]]]></description>
			<content:encoded><![CDATA[<p>With a few work collegues from <a href="http://www.pyxis-tech.com">Pyxis-technologies</a>, we have decided we would use our 20% side-project time to launch an Android community.</p>
<p>The first visible part of our work is the launch of the <a href="http://www.slashoid.org">Slashoid.org</a> news website. The <em><a href="http://www.slashoid.org/node/3">Launch of Slashoid</a></em> post describes the intent of the website, and what we want this to be. Any kind of feedback and suggestions are more than welcome, and you can use our <a href="http://groups.google.com/group/slashoid">Slashoid Google Groups</a> for this, for instance.</p>
<p><strong>What is the next step</strong> ?</p>
<p>Well, we are a small team of motivated developers working from Montreal, and we would be thrilled to find partners in the area of mobile development. We can especially bring a lot of expertise in server-side application development, as well as in the agile stuff (tests, engineering practices, etc.), so we would love to collaborate on creating full-stack, mobile enabled applications. If you like the idea, do not hesitate to contact us to <a href="mailto:android@pyxis-tech.com">android@pyxis-tech.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/04/21/android-community-launch-of-slashoid-org/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Finally a free/Open Source video codec !!</title>
		<link>http://www.dalouche.com/wordpress/2010/04/13/finally-a-freeopen-source-video-codec/</link>
		<comments>http://www.dalouche.com/wordpress/2010/04/13/finally-a-freeopen-source-video-codec/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 11:14:07 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=233</guid>
		<description><![CDATA[As I mentioned in a previous post, the acquisition of On2 by google was unclear, and nobody really knew what google would do with this.
Well, it is now clear : google will open source the VP8 codec !
You can expect to hear a lot about that in the next few months.
]]></description>
			<content:encoded><![CDATA[<p>As I mentioned in a previous post, <a href="http://www.dalouche.com/wordpress/2010/04/10/html5-and-video-codecs/">the acquisition of On2 by google was unclear</a>, and nobody really knew what google would do with this.</p>
<p>Well, it is now clear : google will <a href="http://newteevee.com/2010/04/12/google-to-open-source-vp8-for-html5-video/">open source the VP8 codec</a> !</p>
<p>You can expect to hear a lot about that in the next few months.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/04/13/finally-a-freeopen-source-video-codec/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTML5 and video codecs</title>
		<link>http://www.dalouche.com/wordpress/2010/04/10/html5-and-video-codecs/</link>
		<comments>http://www.dalouche.com/wordpress/2010/04/10/html5-and-video-codecs/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 14:05:46 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=228</guid>
		<description><![CDATA[Some interesting links regarding video on the web :

Google funds TheorARM open source project
Youtube vs Ogg/Theora video quality comparison : Theora IS competitive (do not listen to the FUD)
HTML5 video element codec debate explained
Ogg codecs dropped from HTML5
Google&#8217;s acquisition of On2 : what will they actually do with this ?

]]></description>
			<content:encoded><![CDATA[<p>Some interesting links regarding video on the web :</p>
<ul>
<li><a href="http://google-opensource.blogspot.com/2010/04/interesting-times-for-video-on-web.html">Google funds TheorARM open source project</a></li>
<li><a href="http://people.xiph.org/~greg/video/ytcompare/comparison.html">Youtube vs Ogg/Theora video quality comparison</a> : Theora IS competitive (do not listen to the <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-June/020380.html">FUD</a>)</li>
<li><a href="http://lwn.net/Articles/372566/">HTML5 video element codec debate explained</a></li>
<li><a href="http://lwn.net/Articles/340132/">Ogg codecs dropped from HTML5</a></li>
<li><a href="http://blog.streamingmedia.com/the_business_of_online_vi/2009/08/googles-acquisition-of-on2-not-a-big-deal-heres-why.html">Google&#8217;s acquisition of On2</a> : what will they actually do with this ?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/04/10/html5-and-video-codecs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Git reviewed by a non-fanboy ;-)</title>
		<link>http://www.dalouche.com/wordpress/2010/04/06/git-reviewed-by-a-non-fanboy/</link>
		<comments>http://www.dalouche.com/wordpress/2010/04/06/git-reviewed-by-a-non-fanboy/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 21:37:28 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=226</guid>
		<description><![CDATA[Here is a pragmatic experience report of using git by a non-fanboy.
&#8220;The transition will work much better if several of your employees are already familiar with Git and can help you evangelize the idea and provide support to reticent users.&#8221;
&#8220;Looking back, it took me a while to warm up to Git (quite a while), but [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a <a href="http://beust.com/weblog/2010/04/06/git-for-the-nervous-developer/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+beust%2FOtakuXml+%28Otaku%2C+Cedric%27s+weblog%29&amp;utm_content=Google+Reader">pragmatic experience report of using git</a> by a non-fanboy.</p>
<blockquote><p>&#8220;The transition will work much better if several of your employees are already familiar with Git and can help you evangelize the idea and provide support to reticent users.&#8221;</p>
<p>&#8220;Looking back, it took me a while to warm up to Git (quite a while), but now that I’m here, I really enjoy using it.&#8221;</p></blockquote>
<p>Additionally, the post includes really useful links to learn more about git.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/04/06/git-reviewed-by-a-non-fanboy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NoSQL: consistent hashing for dummies</title>
		<link>http://www.dalouche.com/wordpress/2010/03/26/nosql-consistent-hashing-for-dummies/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/26/nosql-consistent-hashing-for-dummies/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 00:19:10 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=217</guid>
		<description><![CDATA[Consistent hashing is a technique used in some NoSQL implementations. However, for those who try to understand what consistent hashing is, online papers usually talk about abstract stuff that is quite hard to understand for mere mortals. For instance, The wikipedia entry states :
Consistent hashing is a scheme that provides hash table functionality in a way [...]]]></description>
			<content:encoded><![CDATA[<p>Consistent hashing is a technique used in some <a href="http://www.dalouche.com/wordpress/2010/02/26/nosql/">NoSQL implementations</a>. However, for those who try to understand what consistent hashing is, online papers usually talk about abstract stuff that is quite hard to understand for mere mortals. For instance, The <a href="http://en.wikipedia.org/wiki/Consistent_hashing">wikipedia entry</a> states :</p>
<blockquote><p><strong>Consistent hashing</strong> is a scheme that provides <a title="Hash table" href="/wiki/Hash_table">hash table</a> functionality in a way that the addition or removal of one slot does not significantly change the mapping of keys to slots. In contrast, in most traditional hash tables, a change in the number of array slots causes nearly all keys to be remapped. By using consistent hashing, only K/n keys need to be remapped on average, where <em>K</em> is the number of keys, and <em>n</em> is the number of slots.</p></blockquote>
<p>Add a few acronyms and formulas, and you have everything you need to kill a Buffalo.</p>
<p>The good news is that I came across this <a href="http://weblogs.java.net/blog/2007/11/27/consistent-hashing">blog entry on consistent hashing</a> that makes it really easy to understand what consistent hashing is used for, and how to implement it. It&#8217;s actually quite easy in the end <img src='http://www.dalouche.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<blockquote><p>It would be nice if, when a cache machine was added, it took its fair share of objects from all the other cache machines. Equally, when a cache machine was removed, it would be nice if its objects were shared between the remaining machines. This is exactly what consistent hashing does - <em>consistently</em> maps objects to the same cache machine, as far as is possible, at least.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/26/nosql-consistent-hashing-for-dummies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source leadership, and making the tough calls</title>
		<link>http://www.dalouche.com/wordpress/2010/03/25/open-source-leadership-and-making-the-tough-calls/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/25/open-source-leadership-and-making-the-tough-calls/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 00:06:09 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=213</guid>
		<description><![CDATA[Mark Shuttleworth, the guy behind Ubuntu, shows us once again what an Open Source leader is.
There are some decisions that are necessarily unpopular, but are important to prepare the future. Being unpopular does not necessarily means being bad, but it definitely means going against the opinion of some people, which is quite important if you [...]]]></description>
			<content:encoded><![CDATA[<p>Mark Shuttleworth, the guy behind Ubuntu, <a href="http://www.markshuttleworth.com/archives/330">shows us once again</a> what an Open Source leader is.</p>
<p>There are some decisions that are necessarily unpopular, but are important to prepare the future. Being unpopular does not necessarily means being bad, but it definitely means going against the opinion of some people, which is quite important if you want to get things done. No wonder that in just a few years, Ubuntu has gone from a _ZERO_ user base to being the <a href="http://distrowatch.com/">most widely used Linux distribution</a>. <a href="http://en.wikipedia.org/wiki/DistroWatch">Compare it with Debian</a> trends, which tries to satisfy everybody and use voting as its main decision tool.</p>
<p>But unlike politics who most often do not have the courage to make the tough calls, most of the successful <strong>Open Source projects leaders have the balls to enforce their vision</strong>, even if it means being heavily criticized. The reason is quite simple : what counts in the end is not the surrounding politics or perception of the community, but the actual effect of the decisions.  Open Source is a meritocratic environment where the good ideas win in the end.</p>
<blockquote><p>&#8220;On that particular decision, we’ll have to let time tell. <strong>For the moment, the decision stands.</strong> I’m the first to admit fallibility but I also know that it would be impossible to get consensus around a change like that. If those tooltips are, on balance, really just clutter, then <strong>unless someone is willing to take a decision that will be unpopular, they will be clutter forever</strong>. <strong>And it’s easier for me to make a decision like that in Ubuntu than for virtually anybody else</strong>. I apologise in advance for the mistakes that I will certainly make, and which others on the design team may make too, but I think<strong> it’s important to defend our willingness to pare things back and let the core, essential goodness shine through</strong>.&#8221;</p></blockquote>
<p>Of course, good leaders must also publicly admit when they&#8217;re wrong, and Linus Torvalds, another successful open source leader, has shown us his <a href="http://www.wired.com/wired/archive/11.11/linus_pr.html">ability to admit it when he made the wrong calls</a>.</p>
<blockquote><p>&#8220;and sometimes make the wrong call, but if so, he&#8217;s proved willing to publicly admit his mistakes.&#8221;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/25/open-source-leadership-and-making-the-tough-calls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You do need Math skills to be a great developer</title>
		<link>http://www.dalouche.com/wordpress/2010/03/25/you-do-need-math-skills-to-be-a-great-developer/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/25/you-do-need-math-skills-to-be-a-great-developer/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 12:01:20 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=211</guid>
		<description><![CDATA[Pretty interesting read on : You don&#8217;t need Math skills To be a Good developer, but you do need them to be a great one.
And yes, the author is right about Math : it should be part of your tooling if you want to do something else than coding stupid web forms all day.
On a related [...]]]></description>
			<content:encoded><![CDATA[<p>Pretty interesting read on : <em><a href="http://www.skorks.com/2010/03/you-dont-need-math-skills-to-be-a-good-developer-but-you-do-need-them-to-be-a-great-one/">You don&#8217;t need Math skills To be a Good developer, but you do need them to be a great one</a></em>.</p>
<p>And yes, the author is right about Math : it should be part of your tooling if you want to do something else than coding stupid web forms all day.</p>
<p>On a related note, I have been working with a team where most people in the team had Phds in various mathematics-related fields. I can tell you that learning how to correctly write tests was a joke for them ! They instantaneously understood :</p>
<ul>
<li>the value of testing</li>
<li>where data-driven tests helps (<a href="http://testng.org/doc/index.html">@DataProvider</a>)</li>
<li>how unit-testing can complement integrated tests to avoid writing all combinations of integrated tests</li>
<li>etc&#8230; (tons of other things that most teams take months &#8211; if not years &#8211; to understand)</li>
</ul>
<p>The reason is quite simple  : people with a decent mathematical background <strong>exhibit abstraction skills and can perform abstract thinking and reasoning</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/25/you-do-need-math-skills-to-be-a-great-developer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Linux Kernel development process in a nutshell</title>
		<link>http://www.dalouche.com/wordpress/2010/03/24/linux-kernel-development-process-in-a-nutshell/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/24/linux-kernel-development-process-in-a-nutshell/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 12:14:22 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=209</guid>
		<description><![CDATA[I came across Linux Kernel development, a paper from the Linux Foundation that highlights a few important facts about the kernel development process. This nicely complements a few of my previous posts :

Maximum numbers of developers on a project
Surviving with many patches
What Thoughtworkers think of git
On real meritocracy
Open Source is not a democracy

A few interesting [...]]]></description>
			<content:encoded><![CDATA[<p>I came across <a href="http://www.linuxfoundation.org/publications/whowriteslinux.pdf"><em>Linux Kernel development</em></a><em>,</em> a paper from the Linux Foundation that highlights a few important facts about the kernel development process. This nicely complements a few of my previous posts :</p>
<ul>
<li><a href="http://www.dalouche.com/wordpress/2010/03/02/maximum-number-of-developers-on-a-project/">Maximum numbers of developers on a project</a></li>
<li><a href="http://www.dalouche.com/wordpress/2010/02/27/surviving-with-many-patches/">Surviving with many patches</a></li>
<li><a href="http://www.dalouche.com/wordpress/2010/03/11/what-thoughtworkers-think-of-git/">What Thoughtworkers think of git</a></li>
<li><a href="http://www.dalouche.com/wordpress/2010/03/11/on-real-meritocracy/">On real meritocracy</a></li>
<li><a href="http://www.dalouche.com/wordpress/2010/03/22/open-source-is-not-a-democracy/">Open Source is not a democracy</a></li>
</ul>
<p>A few interesting quotes from the paper</p>
<blockquote><p>&#8220;Regular 2-3 month releases deliver stable updates to Linux users, each with significant new features, added device support, and improved performance.&#8221;</p>
<p>&#8220;The rate of change in the kernel is high and increasing, with over 10,000 patches going into each recent kernel release. These releases each contain the work of over 1000 developers representingaround 200 corporations.&#8221;</p>
<p>&#8220;Since 2005, over 5000 individual developers from nearly 500 different companies have contributed to the kernel&#8221;</p>
<p>&#8220;We have seen a roughly 10% increase in the number of developers contributing to each kernel release cycle.&#8221;</p>
<p>&#8220;The kernel code base has grown by over 2.7 million lines&#8221;</p>
<p>&#8220;Patches do not normally pass directly into the mainline kernel; instead, they pass through one ofone-hundred or so subsystem trees. Each subsystem tree is dedicated to a specific part of the kernel (examples might be SCSI drivers, x86 architecture code, or networking) and is under the control of a specific maintainer.&#8221;</p></blockquote>
<p>Once again, <strong>there <em>might</em> be a few things we can learn from Open Source</strong>.</p>
<blockquote></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/24/linux-kernel-development-process-in-a-nutshell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSGi-enterprise related open source projects</title>
		<link>http://www.dalouche.com/wordpress/2010/03/23/osgi-enterprise-related-open-source-projects/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/23/osgi-enterprise-related-open-source-projects/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 02:18:32 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=207</guid>
		<description><![CDATA[First, here is an introduction to what OSGi-enterprise means.
Second, here are a set of OSGI-enterprise implementations :

Apache Aries : sponsored by IBM and SAP
Eclipse gemini : sponsored by Oracle and SpringSource
Eclipse virgo : donated by SpringSource (formerly known as spring-DM) &#8211; reference implementation of OSGI enterprise)

On a totally unrelated note, please take a look at [...]]]></description>
			<content:encoded><![CDATA[<p>First, here is an introduction to <a href="http://www.gxdeveloperweb.com/Blogs/Martijn-van-Berkum/State-of-OSGi-in-the-Java-world.htm">what OSGi-enterprise means</a>.</p>
<p>Second, here are a set of OSGI-enterprise implementations :</p>
<ul>
<li><a href="http://incubator.apache.org/aries/">Apache Aries</a> : sponsored by IBM and SAP</li>
<li><a href="http://www.eclipse.org/proposals/gemini/">Eclipse gemini</a> : sponsored by Oracle and SpringSource</li>
<li><a href="http://www.eclipse.org/proposals/virgo/">Eclipse virgo</a> : donated by SpringSource (formerly known as spring-DM) &#8211; reference implementation of OSGI enterprise)</li>
</ul>
<p>On a totally unrelated note, please take a look at the <em>&#8220;Relationship to existing projects&#8221;</em> on <a href="http://www.eclipse.org/proposals/virgo/">Eclipse virgo&#8217;s page</a>. This will give you an idea of how decoupled the Open Source world is : each project has its own <strong>Project Leader, its commiters, contributors</strong>, and even though the projects depend on each other, there is only <strong>limited communication between them</strong>. Each project can be developed according to its own schedule, and this is the way open source can scale. The limit is the sky !</p>
<p>Once again, <strong>there are <em>maybe</em> some things we can learn from Open Source</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/23/osgi-enterprise-related-open-source-projects/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hibernate Validator 4 in action</title>
		<link>http://www.dalouche.com/wordpress/2010/03/23/hibernate-validator-4-in-action/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/23/hibernate-validator-4-in-action/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 10:49:42 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=205</guid>
		<description><![CDATA[A new release of Hibernate validator has been unleashed. It contains interesting features, such as the fact that your constraints will now be visible by the whole Java ecosystem. Finally !
Marc-Andre Thibodeau and Vincent Tence have set-up a sample Petstore project on github that shows how to take advantage of this new release of Hibernate [...]]]></description>
			<content:encoded><![CDATA[<p>A new release of <a href="http://in.relation.to/Bloggers/HibernateValidator4Unleashed">Hibernate validator has been unleashed</a>. It contains interesting features, such as the fact that your constraints will now be visible by the whole Java ecosystem. Finally !</p>
<p>Marc-Andre Thibodeau and Vincent Tence have set-up a sample <a href="http://github.com/mathibodeau/petstore">Petstore project on github</a> that shows how to take advantage of this new release of Hibernate Validator.   Feel free to take a look !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/23/hibernate-validator-4-in-action/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>top 10 one liners</title>
		<link>http://www.dalouche.com/wordpress/2010/03/23/top-10-one-liners/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/23/top-10-one-liners/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 10:44:00 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=202</guid>
		<description><![CDATA[I came across this interesting set of linux/unix one-liners&#8230;   (thanks Phil).
Nice brain gymnastics, and it is definitely worth checking out if you want to add a few tricks to your power-user recipes  
]]></description>
			<content:encoded><![CDATA[<p>I came across this interesting set of <a href="http://www.catonmat.net/blog/top-ten-one-liners-from-commandlinefu-explained">linux/unix one-liners</a>&#8230;   (thanks Phil).</p>
<p>Nice brain gymnastics, and it is definitely worth checking out if you want to add a few tricks to your power-user recipes <img src='http://www.dalouche.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/23/top-10-one-liners/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Open Source is Not a Democracy</title>
		<link>http://www.dalouche.com/wordpress/2010/03/22/open-source-is-not-a-democracy/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/22/open-source-is-not-a-democracy/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 01:59:20 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=199</guid>
		<description><![CDATA[IT world runs a very interesting article explaining why Open source is not a democracy, and never should. Some interesting quotes :
&#8220;No. This is not a democracy. Good feedback, good data, are welcome. But
we are not voting on design decisions.&#8221;
&#8220;Shuttleworth is in the right here. Ubuntu and a vast majority of free and open source [...]]]></description>
			<content:encoded><![CDATA[<p>IT world runs a very interesting article explaining <a href="http://www.itworld.com/open-source/101641/open-source-not-democracy">why Open source is not a democracy, and never should</a>. Some interesting quotes :</p>
<blockquote><p><em>&#8220;No. This is not a democracy. Good feedback, good data, are welcome. But<br />
<strong>we are not voting on design decisions</strong>.</em>&#8221;</p>
<p><em>&#8220;Shuttleworth is in the right here. Ubuntu and a <strong>vast majority of free and open source software projects</strong>, including the Linux kernel, have <strong>never been democracies</strong>. They are <strong>meritocracies</strong>, and any member of a community that thinks otherwise is kidding themselves.&#8221;</em></p>
<p><em><span style="font-style: normal;">&#8220;too many hands on a project with no consensus of direction<strong> leads to a pretty crappy project</strong>&#8220;</span></em></p>
<p><em><span style="font-style: normal;">&#8220;It&#8217;s critical to recognize that open source does not bring complete democracy to software development. It never did, and it never should. Ultimately, <strong>someone</strong> in the developer chain <strong>will have to make the tough calls</strong>.&#8221;</span></em></p></blockquote>
<p>So, if you run your software development project as a Democracy, there might be some things you can learn from Open Source.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/22/open-source-is-not-a-democracy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The google way</title>
		<link>http://www.dalouche.com/wordpress/2010/03/14/the-google-way/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/14/the-google-way/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 04:35:37 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=196</guid>
		<description><![CDATA[The key to gmail describes what sh*t umbrellas are at google :
as a shit umbrella, the product managers protect the engineers from getting distracted. It’s not enough to be a “shit funnel” where they would pass some of the junk down to engineers, they need to fully protect the engineers.
No wonder google engineers accomplish great [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://techcrunch.com/2010/03/14/key-to-gmail/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29&amp;utm_content=Google+Reader">The key to gmail</a> describes what sh*t umbrellas are at google :</p>
<blockquote><p>as a shit umbrella, the product managers protect the engineers from getting distracted. It’s not enough to be a “shit funnel” where they would pass some of the junk down to engineers, they need to fully protect the engineers.</p></blockquote>
<p>No wonder google engineers accomplish great things : they just focus on their work !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/14/the-google-way/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Microsoft employees love their iphone</title>
		<link>http://www.dalouche.com/wordpress/2010/03/14/microsoft-employees-love-their-iphone/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/14/microsoft-employees-love-their-iphone/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 22:37:58 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=193</guid>
		<description><![CDATA[Slashdot runs a story about Microsoft employees preferring to use the iPhone over Microsoft alternatives.
Even though it might be a good idea to always eat your own dog food, the simple fact that your employees prefer the available alternatives is worth taking into consideration. Indeed, the motivation behind eating your own dogfood is to get [...]]]></description>
			<content:encoded><![CDATA[<p>Slashdot runs a story about <a href="http://apple.slashdot.org/story/10/03/14/208200/Microsoft-Employees-Love-Their-iPhones?from=rss&amp;utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29&amp;utm_content=Google+Reader">Microsoft employees preferring to use the iPhone</a> over Microsoft alternatives.</p>
<p>Even though it might be a good idea to <a href="http://en.wikipedia.org/wiki/Eating_one%27s_own_dog_food">always eat your own dog food</a>, the simple fact that your employees prefer the available alternatives is worth taking into consideration. Indeed, the motivation behind eating your own dogfood is to get feedback ; and the simple fact that even your employees do not want to use the product is exactly the kind of feedback you are looking for.</p>
<p>So, if you are a software editor for a product, and for some reason, your own employees (or worse, the developers of the solution itself) want to use the competitor&#8217;s product, then the first thing you should do is welcome them to, and get back to them once the product becomes at least as good as the alternative. No matter whether the reason for not using the product is good or not, it just means there is something to address.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/14/microsoft-employees-love-their-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>An example of not applying the repair rule principle</title>
		<link>http://www.dalouche.com/wordpress/2010/03/12/an-example-of-not-applying-the-repair-rule-principle/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/12/an-example-of-not-applying-the-repair-rule-principle/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 12:11:03 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=190</guid>
		<description><![CDATA[Errors should never pass describes  the case of AppArmour which fails to follow the Rule of Repair. In this particular case, AppArmor could not make sense of the user (config) input &#8211; and thus cannot repair the data-, so it should fail as noisily and as soon as possible to prevent debugging nightmares.
Grails is another [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.vrplumber.com/index.php?/archives/2452-guid.html">Errors should never pass</a> describes  the case of AppArmour which fails to follow the <a href="http://www.faqs.org/docs/artu/ch01s06.html#id2878538">Rule of Repair</a>. In this particular case, AppArmor could not make sense of the user (config) input &#8211; and thus cannot repair the data-, so it should fail as noisily and as soon as possible to prevent debugging nightmares.</p>
<p><a href="http://www.grails.org/">Grails</a> is another example of a framework that fails to follow this rule (at least until v1.1, I cannot speak for v1.2).  I have way too often seen situations where the input was clearly incorrect (e.g. spring builder configuration) and grails was not reporting any error, and was injecting null values instead.</p>
<p>Note: this rule is part of <a href="http://www.faqs.org/docs/artu/index.html">the Art of unix programming</a>, and thus part of the <a href="http://www.dalouche.com/wordpress/2010/03/10/on-design-principles/">design principles I believe in (previous post)</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/12/an-example-of-not-applying-the-repair-rule-principle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On real meritocracy</title>
		<link>http://www.dalouche.com/wordpress/2010/03/11/on-real-meritocracy/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/11/on-real-meritocracy/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 03:56:01 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=185</guid>
		<description><![CDATA[If you want to hear about a real example of pure meritocracy, you should listen to Tarus Balog on Linux Link Tech Show episode 343. This guy has truly understood how to lead an open source project, and a number of really interesting things such as Open Source Marketing are discussed. (VCs who want to [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to hear about a real example of pure meritocracy, you should listen to Tarus Balog on <a href="http://feedproxy.google.com/~r/TheLinuxLinkTechShowOgg-vorbisFeed/~3/VsopfBSIDww/tllts_343-03-03-10.ogg">Linux Link Tech Show episode 343</a>. This guy has truly understood how to lead an open source project, and a number of really interesting things such as Open Source Marketing are discussed. (VCs who want to invest $2,000,000 in a company are also welcomed to listen to the podcast episode).</p>
<p>If you have a (possibly good) product that you have open sourced, but without being able to gather a community around it, then I urge you to listen to the episode.</p>
<p>Tarus Balog, keep up the good work, you clearly have understood what a number of supposedly open-source companies totally miss  ! Good work pays in the long run !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/11/on-real-meritocracy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Thoughtworkers think of git&#8230;</title>
		<link>http://www.dalouche.com/wordpress/2010/03/11/what-thoughtworkers-think-of-git/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/11/what-thoughtworkers-think-of-git/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 03:21:51 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=182</guid>
		<description><![CDATA[Martin Fowler published an informal survey of version control tools among Thoughtworkers. Of course, the big winner is git, and anyone who has been going through the effort of learning it correctly would confirm.
BTW, if you want some help convincing people that git is better, do not hesitate to take a look at why git [...]]]></description>
			<content:encoded><![CDATA[<p>Martin Fowler published an <a href="http://martinfowler.com/bliki/VcsSurvey.html">informal survey of version control tools among Thoughtworkers</a>. Of course, the big winner is git, and anyone who has been going through the effort of learning it correctly would confirm.</p>
<p>BTW, if you want some help convincing people that git is better, do not hesitate to take a look at <a href="http://whygitisbetterthanx.com/">why git is better than X</a>.</p>
<p>On a related note, you might want to listen to <a href="http://wiki.twit.tv/wiki/FLOSS_Weekly_111">FLOSS weekly 111</a> podcast (direct <a href="http://www.podtrac.com/pts/redirect.mp3/twit.cachefly.net/floss0111.mp3">link here</a>), where <a href="http://www.cmake.org/">CMake</a> lead developer talks about his wonder build tool (I&#8217;ll never ever use <a href="http://www.gnu.org/software/autoconf/">autoconf</a> again if I need to write some C any day) that is now developed using git.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/11/what-thoughtworkers-think-of-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDD and NoSQL are a nice fit</title>
		<link>http://www.dalouche.com/wordpress/2010/03/11/ddd-and-nosql-are-a-nice-fit/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/11/ddd-and-nosql-are-a-nice-fit/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 03:04:06 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=178</guid>
		<description><![CDATA[As I explained in a previous post, Domain-driven Design (DDD) is a design principle I strongly believe in.
With more and more evidence of systems/companies switching to NoSQL for scalability reasons, creating a rich  domain model becomes less and less of an option if you don&#8217;t want to shoot yourself in the foot. Indeed, while traditional [...]]]></description>
			<content:encoded><![CDATA[<p>As I explained in a previous post, <a href="http://www.dalouche.com/wordpress/2010/03/10/on-design-principles/">Domain-driven Design (DDD) is a design principle I strongly believe in</a>.</p>
<p>With more and more evidence of systems/companies <a href="http://highscalability.com/blog/2010/3/10/saying-yes-to-nosql-going-steady-with-cassandra-at-digg.html">switching to NoSQL for scalability reasons</a>, creating a rich  domain model becomes less and less of an option if you don&#8217;t want to shoot yourself in the foot. Indeed, while traditional applications <span style="text-decoration: line-through;">sometimes</span> often rely on the database to enforce integrity and referential constraints, this is no longer an option with NoSQL because of the <a href="http://en.wikipedia.org/wiki/CAP_theorem">CAP theorem</a>.</p>
<p>So, this means enforcing constraints becomes the sole application&#8217;s responsibility, which is, IMHO, a good thing. Validation naturally belongs to the domain layer, and once you go through the trouble of transforming your <a href="http://en.wikipedia.org/wiki/Anemic_Domain_Model">POJOs/anaemic domain model</a> into a rich domain model, you will certainly start adopting more and more DDD principles.</p>
<p>Responsibilities thus become clear : the storage layer handles the (possibly distributed) persistence, and the domain layer handles the domain-specific business rules and validation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/11/ddd-and-nosql-are-a-nice-fit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GeoTools</title>
		<link>http://www.dalouche.com/wordpress/2010/03/10/geotools/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/10/geotools/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 04:05:20 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=172</guid>
		<description><![CDATA[GeoTools developers have released the 2.6.2  version. GeoTools contains an incredible amount of utilities related to GIS and I am totally impressed by the feature set.
To give an example of its use, here is some sample code from gisgraphy-java-client ( a simple Java client I am writing for the open source GISgraphy project).  It calculates [...]]]></description>
			<content:encoded><![CDATA[<p>GeoTools developers have released the <a href="http://geotoolsnews.blogspot.com/2010/03/geotools-262-released.html">2.6.2  version</a>. GeoTools contains an incredible amount of utilities related to <a href="http://en.wikipedia.org/wiki/GIS">GIS</a> and I am totally impressed by the <a href="http://docs.codehaus.org/display/GEOTDOC/Home">feature set</a>.</p>
<p>To give an example of its use, here is some <a href="http://github.com/samokk/gisgraphy-java-client/blob/master/client/src/main/java/com/gisgraphy/client/gisfeature/GisFeatureGeography.java">sample code</a> from <a href="http://github.com/samokk/gisgraphy-java-client">gisgraphy-java-client</a> ( a simple Java client I am writing for the open source <a href="http://www.gisgraphy.com/">GISgraphy</a> project).  It calculates the <a href="http://en.wikipedia.org/wiki/Great-circle_distance">orthodromic distance</a> between two coordinates :</p>
<pre>
    public double distance(GisFeatureGeography o, Unit<Length> unit) {
           Unit<Length> targetUnit = (unit != null) ? unit : SI.METER;
           com.vividsolutions.jts.geom.Geometry me = location;
           com.vividsolutions.jts.geom.Geometry other = o.getLocation();
           try {
                   return  SI.METER
                          .getConverterTo(targetUnit)
                          .convert(JTS.orthodromicDistance(
                                 me.getCoordinate(),
                                 other.getCoordinate(),
                                 DefaultGeographicCRS.WGS84));
           } catch (TransformException e) {
                   throw new RuntimeException(e);
           }
   }
</pre>
<p>Please note that the code makes use of two excellent libraries : <a href="http://www.vividsolutions.com/jts/jtshome.htm">JTS</a> for geographical types, and <a href="http://jscience.org/">JScience</a> for units. And for your information, <a href="http://en.wikipedia.org/wiki/WGS84">WGS84</a> is a friendly name to refer to the GPS coordinate system (x,y,z).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/10/geotools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On Design principles</title>
		<link>http://www.dalouche.com/wordpress/2010/03/10/on-design-principles/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/10/on-design-principles/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 03:37:28 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=169</guid>
		<description><![CDATA[There is a constant about Software Developers : they love debating and arguing about every single aspect of the development process. Moreover, they will most likely debate forever, because there is usually nothing that can serve as a reference to tell good and bad practices apart. Want to know why ? Well.. everyone is making [...]]]></description>
			<content:encoded><![CDATA[<p>There is a constant about Software Developers : they love debating and arguing about every single aspect of the development process. Moreover, they will most likely debate forever, because there is usually nothing that can serve as a reference to tell good and bad practices apart. Want to know why ? Well.. everyone is making his own opinion based on his own vision of the truth. There is no <a href="http://en.wikipedia.org/wiki/Axiom">axiom</a> that is taken for granted and that serves as the basis for further discussion.</p>
<blockquote><p>&#8220;In traditional <a title="Logic" href="http://en.wikipedia.org/wiki/Logic">logic</a>, an <strong>axiom</strong> or <strong>postulate</strong> is a proposition that is not proved or demonstrated but considered to be either <a title="Self-evidence" href="http://en.wikipedia.org/wiki/Self-evidence">self-evident</a>, or subject to necessary <a title="Decision making" href="http://en.wikipedia.org/wiki/Decision_making">decision</a>. Therefore, its truth is taken for granted, and serves as a starting point for deducing and inferring other (theory dependent) truths.&#8221;</p></blockquote>
<p>The rest of the mathematical logic is based on these axioms, and given these axioms, everything else can either be proven right or wrong. While it is certainly impossible to create universal axioms and reasoning principles that cover the foundation of software development, I believe we should at least mimic the approach : <strong>decide of which design, architectural and coding principles we believe on, and then use these <em>axiomatic principles</em> as the foundation for decision making</strong>. Of course, the outcome of your next project will depend on the  quality of these axioms, but at least you will be able to move forward and take consistent decisions throughout the lifecycle of the application.</p>
<p>As far as I am concerned, I tend to base my reasoning on a set of <em>axiomatic principles</em> that are based on the opinion of respected and talented people in the software industry. <strong>Even though nothing is perfect, I believe that listening to these experienced people will more likely lead to successes</strong> than listening to any lambda developer&#8217;s opinion. This is my bet, and the rest of this post is a first draft of the main design and architectural principles that I consider my axioms.</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Domain-driven_design">Domain Driven Design</a>, <a href="http://en.wikipedia.org/wiki/Specification_pattern">Specifications pattern</a>, <a href="http://corfield.org/blog/index.cfm/do/blog.entry/entry/Layered_Design_Principles">Layered design</a>.</li>
<li><a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">Principles of OOD</a>, and in particular, the <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">S.O.L.I.D. principles</a></li>
<li><a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882">Clean code: A Handbook of Agile Software craftmanship</a>.</li>
<li><a href="http://www.amazon.com/Implementation-Patterns-Kent-Beck/dp/0321413091">Implementation Patterns</a></li>
<li>Implementation of the right <a href="http://www.enterpriseintegrationpatterns.com/toc.html">Enterprise Integration Patterns</a> that best describes a given integration issue</li>
<li><a href="http://en.wikipedia.org/wiki/Defensive_programming">Defensive Programming</a> (also see<a href="http://anirudhvyas.com/root/2008/10/20/art-of-defensive-programming/"> Defensive programming in Java</a>) and its derived principles : <a href="http://en.wikipedia.org/wiki/Design_by_Contract">Design by contract</a>, <a href="http://en.wikipedia.org/wiki/Assertion_(computing)">Assertions</a>,  <a href="http://en.wikipedia.org/wiki/Immutable_object">Immutability</a>, Copy-On-Write, <a href="http://code.google.com/p/google-collections/">Immutable collections</a>.</li>
<li><a href="http://en.wikipedia.org/wiki/Inversion_of_control">Inversion of Control</a></li>
<li><a href="http://en.wikipedia.org/wiki/Declarative_programming">Declarative Programming</a>, and in particular <a href="http://en.wikipedia.org/wiki/Functional_programming">Functional Programming</a>-style <a href="http://blogs.warwick.ac.uk/chrismay/entry/writing_functional_java/">collection manipulation</a> and <a href="http://martinfowler.com/bliki/CommandQuerySeparation.html">Command/Query separation</a>, side-effect free methods.</li>
<li><a href="http://c2.com/cgi/wiki?PrematureOptimization">No premature optimization</a>.</li>
<li><a href="http://www.faqs.org/docs/artu/index.html">Lessons learnt from UNIX programming</a>.</li>
<li><a href="http://tagswap.net/articles/OOP_Principles_in_Action:_Tell,_Don%60t_Ask/">Tell don&#8217;t ask</a>.</li>
<li><a href="http://tools.ietf.org/html/rfc793">Robustness principle</a> : Be conservative in what you do, be liberal in what you accept from others.</li>
<li><a href="http://en.wikipedia.org/wiki/Reinventing_the_wheel">Do not reinvent the wheel</a>.</li>
</ul>
<p>The people behind these principles are smart, experienced, and potentially more intelligent than you and me together. So let&#8217;s just follow these principles for now, and once we master every single aspect of them, we will be able to help create the next generation of design and coding principles. In the meanwhile, I take these principles for granted.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/10/on-design-principles/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Usability reviews in the open source world</title>
		<link>http://www.dalouche.com/wordpress/2010/03/09/usability-reviews-in-the-open-source-world/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/09/usability-reviews-in-the-open-source-world/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 03:49:21 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=162</guid>
		<description><![CDATA[It is a pleasure to hear that some open source projects are conducting usability reviews :

Wikipedia : Usability and Experience Study
OpenStreetMap: UX Review
any other ?

Usability reviews are of uttermost importance if you want to learn how your end users use your product. I initially thought that conducting usability reviews was complex, and involved lots of [...]]]></description>
			<content:encoded><![CDATA[<p>It is a pleasure to hear that some open source projects are conducting usability reviews :</p>
<ul>
<li>Wikipedia : <a href="http://usability.wikimedia.org/wiki/Usability_and_Experience_Study">Usability and Experience Study</a></li>
<li>OpenStreetMap: <a href="http://opengeodata.org/ux-review">UX Review</a></li>
<li>any other ?</li>
</ul>
<p>Usability reviews are of uttermost importance if you want to learn how your end users use your product. I initially thought that conducting usability reviews was complex, and involved lots of steps, but <a href="http://pyxis-tech.com/blog/author/jfproulx/">Jean-Francois Proulx</a> definitely convinced me of the approach when I attended one of his usability talks a few months ago.</p>
<p>To me, this is clearly a better investment than having your market-team meet during long hours in front of screenshots trying to shape the next version of your website <img src='http://www.dalouche.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/09/usability-reviews-in-the-open-source-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python ecosystem for a Java Developer</title>
		<link>http://www.dalouche.com/wordpress/2010/03/04/python-ecosystem-for-a-java-developer/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/04/python-ecosystem-for-a-java-developer/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 06:52:42 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=154</guid>
		<description><![CDATA[So&#8230;. you&#8217;ve been developing serious Java applications for quite a few years now, and while it was fun and enjoyable to discover the best practices, the misc. tools, how the messy fragmented ecosystem of frameworks and libraries  hardly wonderfully integrates thanks to amazing JEE-whatever integration stacks (Spring, no pun intended), you now feel that the [...]]]></description>
			<content:encoded><![CDATA[<p>So&#8230;. you&#8217;ve been developing serious Java applications for quite a few years now, and while it was fun and enjoyable to discover the best practices, the misc. tools, how the <span style="text-decoration: line-through;">messy</span> fragmented ecosystem of frameworks and libraries  <span style="text-decoration: line-through;">hardly</span> wonderfully integrates thanks to amazing JEE-whatever integration stacks (Spring, no pun intended), you now feel that the platform has become pretty much boring, and you want to try something else..</p>
<p>Of course, you still love Java (<a href="http://blogs.payscale.com/ask_dr_salary/2008/01/software-develo.html">it pays more</a>) and think it is still the best way to write serious applications (<a href="http://www.dalouche.com/wordpress/2010/02/27/scala-might-be-useable-very-soon/">currently waiting for Scala to get decent IDE support</a> ?). You do not want to hear about this over-hyped language that is supposedly perfect because you simply don&#8217;t like languages that use half of the keyboard&#8217;s non-letter keys as metacharacters.  But you definitely want to hack a little bit using <em>some</em> dynamic language (maybe because you feel like an idiot when these dynamic-language lovers tell you they get a 10x productivity boost by using XXX instead of Java &#8211; replace XXX by whatever trendy, over-hyped popular language of the moment).</p>
<p>Anyways.. for some reason, your choice is Python (if not, then the rest of this post is of no interest to you). You have read a book or two online, and since you&#8217;re not an idiot, you already know how to code basic stuff (still need to lookup some stuff here and there, not sure of what is idiomatic yet, but you have definitely grasped the basic concepts). However, you feel a little bit alone in this new world, wondering what the best practices are, which tools are generally used.. etc.  And nobody on the internet really helps you because when it comes to giving technological advice, people are either of the &#8220;mine is bigger than yours&#8221; type, or the &#8220;everything depends on your needs/preference/[...]&#8221; BS.</p>
<p>So, here are a few things I learned while developping <a href="http://github.com/samokk/pymager">pymager</a>, a RESTful image conversion/rescaling service (hopefully, it will help you to find your way):</p>
<ul>
<li>The equivalent of jars is <a href="http://peak.telecommunity.com/DevCenter/PythonEggs">eggs</a>.</li>
<li>The equivalent of maven dependency resolution/download system is <a href="http://en.wikipedia.org/wiki/Python_eggs">easy_install</a> or the newer <a href="http://pip.openplans.org/">pip</a> that is even better.</li>
<li>The equivalent of ibiblio main repository is <a href="http://en.wikipedia.org/wiki/Python_Package_Index">Pypi</a>.</li>
<li>the equivalent of maven is either <a href="http://docs.python.org/library/distutils.html">distutils</a> or <a href="http://peak.telecommunity.com/DevCenter/setuptools">setuptools</a>. distutils is the default tool shipped with python, and setuptools is an alternative, that is simply superior. This is what runs your unit tests and creates source/egg packages for you.</li>
<li>Installing dependencies can be done using several ways : using <a href="http://en.wikipedia.org/wiki/Python_eggs">easy_install</a> / pip (pollutes your system), using your system package manager (e.g. debian/ubuntu apt-get :  super-clean, but does not install the most up to date packages), and easy_install / pip inside a <a href="http://pypi.python.org/pypi/virtualenv">virtualenv</a> sandbox . See <a href="http://www.clemesha.org/blog/2009/jul/05/modern-python-hacker-tools-virtualenv-fabric-pip/">Tools for the modern Python hacker</a> for some help regarding virtualenv.</li>
<li>There are mainly 2 decent stacks for creating web applications : <a href="http://www.djangoproject.com/">Django</a> and <a href="http://turbogears.org/2.0/">TurboGears 2</a>. Django is for people who like monolithic frameworks that reinvent the wheel, and TurboGears 2.0 is for people who favor integrating best-of-the-breed components. (TG2 gives you this integration for free, so you can see it as an equivalent of <a href="http://www.springsource.org/roo">Spring ROO</a> ).</li>
<li>The equivalent of Hibernate is <a href="http://www.sqlalchemy.org/">SQLAlchemy</a>. In addition to what hibernate gives you, SQLAlchemy provides you with some lower-level utilities (such as SQL manipulation, DB-agnostic way to create a connection, ..). However, the transaction management is clearly inferior to what you get with Spring/Hibernate and their ThreadLocal implementation is just a hack that is clearly not suited to anything else than using from a web framework.  If you need to do anything more serious, you will need to reinvent the wheel (See pymager&#8217;s <a href="http://github.com/samokk/pymager/blob/master/pymager/persistence/_transactional.py">reimplementation of ThreadLocal&#8217;s transaction management</a> ).</li>
<li>There are a dozen ways to expose a python webapp including nasty CGI-related techniques. All of them are either hacks or legacy stuff except the newer <a href="http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface">WSGI</a> approach. Most websites use fancy names for describing what WSGi does, but it is mostly an equivalent of the servlet API.</li>
<li><a href="http://www.cherrypy.org/">Cherrypy</a> is a wonderful embedded web server that supports WSGi (and that can be used as a WSGi application itself behind apache, pretty much like tomcat can serve applications behind mod_jk).  It used to be the one shipped with TurboGears, but they <a href="http://www.cherrypy.org/wiki/CherryPyAndPaste">switched to Paste for some political reasons</a>. (that was necessary for the merge with pylons)</li>
<li>Naming conventions are a joke in python, as nobody seems to follow the same rules. Even some modules in the python standard library (e.g.: unittest module) seem to adopt different conventions than what looks like the python coding standard. I guess that too many ex-java developers program in python without being able to let away their java naming conventions..</li>
<li>As a Java developer, there is some OO purity that you will need to forget about. It seems to be the &#8220;python way&#8221; to use module-wide variables, and you feel like you are fighting the platform / frameworks if you insist on applying your IoC best practices&#8230;</li>
<li><a href="http://code.google.com/p/python-nose/">nose</a> is the way to go for running tests. (it integrates well with setuptools)</li>
<li>there is no really manipulable classpath, and the default python mechanisms for discovering / handling files/data the equivalent of the classpath is <a href="http://peak.telecommunity.com/DevCenter/PkgResources">pkg_resources</a>.  (an additional reason to use setuptools)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/04/python-ecosystem-for-a-java-developer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>maximum number of developers on a project ?</title>
		<link>http://www.dalouche.com/wordpress/2010/03/02/maximum-number-of-developers-on-a-project/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/02/maximum-number-of-developers-on-a-project/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 03:40:21 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Software Development best practices]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=152</guid>
		<description><![CDATA[What is the maximum number of developers you can ever imagine working _efficiently_ on a project ? 5 ? 7 ? 10 ? 20 ?
Who wrote 2.6.33 reminds us how much the open source world (and in particular the linux kernel community) excels in this area. For the single 2.6.33 release that was developed in [...]]]></description>
			<content:encoded><![CDATA[<p>What is the maximum number of developers you can ever imagine working <em>_efficiently_</em> on a project ? 5 ? 7 ? 10 ? 20 ?</p>
<p><a href="http://lwn.net/Articles/373405/">Who wrote 2.6.33</a> reminds us how much the open source world (and in particular the linux kernel community) excels in this area. For the single 2.6.33 release that was developed in about 3 months :</p>
<blockquote><p>&#8220;As of this writing, <strong>10,500</strong> non-merge <strong>commits</strong> have found their way into 2.6.33 &#8211; <strong>fairly normal by recent standards</strong>.  These changes <strong>added</strong> almost <strong>900,000 lines</strong> while deleting almost 520,000 others; as a result, the kernel grew by a mere 380,000 lines this time around.&#8221;</p></blockquote>
<p>So, if you happen to struggle to scale your team past the 10-people mark using your usual development habits, then there are <strong>maybe</strong> a <strong>few things</strong> you could learn from the open source world.</p>
<p>My personal understanding of why it works so well :</p>
<ul>
<li><span style="text-decoration: line-through;">good</span> elite developers</li>
<li>top-notch, distributed, <a href="http://whygitisbetterthanx.com/">super-fast and merge-friendly version control tools</a> (e.g. git)</li>
<li>Fault-proof and <strong>compromise-free</strong> (though sometimes not politically-correct) ways of enforcing software quality and architecture. Examples showing the disagreement-proof nature of the kernel development process include last summer&#8217;s <a href="http://www.h-online.com/open/news/item/Dispute-between-Linux-gurus-Alan-Cox-and-Linus-Torvalds-742717.html">Alan Cox vs Linus Torvalds dispute</a> regarding the tty subsystem, or <a href="http://lkml.org/lkml/2006/7/28/180">Linus Torvalds vs Hans Reiser argument regarding Reiser4</a>&#8217;s plugin system that does not fit well into linux architecture</li>
<li><a href="http://ericbrown.com/linus-torvalds-on-managing-projects.htm">result-oriented</a> and <a href="http://blog.crossoverhealth.com/2006/12/06/part-2-open-source-values-meritocracy-transparency-and-legitimacy/">meritocracy-driven</a> way of managing the project</li>
<li><a href="http://lwn.net/Articles/246313/">decentralized development</a> (made possible thanks to distributed SCM tools). To quote Linus Torvalds : &#8220;<em>Centralized _works_. It&#8217;s just *inferior*.</em>&#8220;</li>
<li><a href="http://docs.huihoo.com/linux/kernel/a1/index.html">modular architecture</a> supporting the collaboration of many developers.  <em>&#8220;The large number of developers and the fact that they are volunteers has an impact on how the system should be architected. With such a large number of geographically dispersed developers, a tightly coupled system would be quite difficult to develop &#8212; developers would be constantly treading on each others code.</em><em>&#8220;</em></li>
</ul>
<p>You might disagree on the reasons why it works so well (after all, that&#8217;s just my analysis based on my understanding of the situation), but the success is a reality, a fact.</p>
<p>Also, if you are tempted to think that it could not work in the corporate world, please think about that twice by taking another look at <a href="http://lwn.net/Articles/373405/">who wrote 2.6.33</a>, where contributing companies are listed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/02/maximum-number-of-developers-on-a-project/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google go</title>
		<link>http://www.dalouche.com/wordpress/2010/03/01/google-go/</link>
		<comments>http://www.dalouche.com/wordpress/2010/03/01/google-go/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 02:06:13 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=150</guid>
		<description><![CDATA[Looks  like go is attracting some attention.
&#8220;&#8221;Open source does not mean anarchy. Somebody has to have a vision and the perseverance to see that through. The open source community can then create their own versions if they wish, but it is best if there is a main line, stable version with a consistent architecture with [...]]]></description>
			<content:encoded><![CDATA[<p>Looks  like go is<a href="http://www.pcworld.idg.com.au/article/337773/google_go_captures_developers_imaginations/"> attracting some attention</a>.</p>
<blockquote><p>&#8220;&#8221;Open source does not mean anarchy. Somebody has to have a vision and the perseverance to see that through. The open source community can then create their own versions if they wish, but it is best if there is a main line, stable version with a consistent architecture with a guiding force behind it,&#8221; Gordon said.&#8221;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/03/01/google-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scala might be useable very soon</title>
		<link>http://www.dalouche.com/wordpress/2010/02/27/scala-might-be-useable-very-soon/</link>
		<comments>http://www.dalouche.com/wordpress/2010/02/27/scala-might-be-useable-very-soon/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 06:44:19 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=134</guid>
		<description><![CDATA[The Scala 2.8 beta 1 announcement gives hope regarding the availability of a decent IDE for editing Scala code. We will see what Scala 2.8 final looks like, but if the eclipse IDE support features basic Class and Method renaming, I will most likely make Scala my main programming language for writing open source code [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.infoq.com/news/2010/01/scala-beta1">Scala 2.8 beta 1 announcement</a> gives hope regarding the availability of a decent IDE for editing Scala code. We will see what Scala 2.8 final looks like, but if the eclipse IDE support features basic Class and Method renaming, I will most likely make Scala my main programming language for writing open source code that targets the JVM. Two projects that I would most likely convert to Scala would be :</p>
<ul>
<li><a href="http://github.com/samokk/gisgraphy-java-client">Gisgraphy Java client</a> : a Java library that gives access to <a href="http://www.gisgraphy.com/">gisgraphy</a> City and GIS features search engine.</li>
<li><a href="http://github.com/samokk/pymager-java-client">Pymager Java client</a> : a simple Java wrapper on top of the RESTful interface provided by <a href="http://github.com/samokk/pymager">pymager</a>, an image service that provides simple conversion and thumbnailing / resizing features.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/02/27/scala-might-be-useable-very-soon/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Surviving with many patches</title>
		<link>http://www.dalouche.com/wordpress/2010/02/27/surviving-with-many-patches/</link>
		<comments>http://www.dalouche.com/wordpress/2010/02/27/surviving-with-many-patches/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 06:05:33 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=147</guid>
		<description><![CDATA[In many situations, open Source software developers need to deal with the maintenance of patches. Examples include :

Unofficial versions of the linux kernel, where specific patches are applied (e.g. Xen kernel, openvz kernel, ..) and need to be constantly forward-ported to the latest kernel when it is released
Distribution-specific changes (e.g. Ubuntu-specific changes to debian packages).

Maintaining [...]]]></description>
			<content:encoded><![CDATA[<p>In many situations, open Source software developers need to deal with the maintenance of patches. Examples include :</p>
<ul>
<li>Unofficial versions of the linux kernel, where specific patches are applied (e.g. Xen kernel, openvz kernel, ..) and need to be constantly forward-ported to the latest kernel when it is released</li>
<li>Distribution-specific changes (e.g. Ubuntu-specific changes to debian packages).</li>
</ul>
<p>Maintaining one big diff file for all changes would clearly quickly become unmaintanable, so it looks like different approaches are now widely used instead :</p>
<ul>
<li>Maintaining stacks of patches, using specialized tools such as <a href="http://en.wikipedia.org/wiki/Quilt_%28software%29">quilt</a>.</li>
<li>Using distributed VCS tools such as <a href="http://en.wikipedia.org/wiki/Git_%28software%29">git</a>.</li>
</ul>
<p><a href="http://www.suse.de/~agruen/quilt.pdf">How to survive with many patches</a> describes the use of quilt. Here is some background :</p>
<blockquote><p>“Andrew Morton originally developed a set of scripts for<br />
maintaining kernel patches outside of any SCM tool. Others extended these into a suite called quilt.</p></blockquote>
<p>It looks like distributed VCS tools have now superceded quilt, as far as pure software development is concerned (linux kernel, etc.). But quilt remains very popular for maintaining distribution-specific changes to packages. Indeed, as distribution packages live outside a SCM tree, it is important to have mechanisms to apply distribution-specific changes to the upstream source packages. And this is where quilt comes to the rescue.</p>
<p>Ubuntu packaging guide describes the <a href="https://wiki.ubuntu.com/PackagingGuide/Complete#quilt%20%28Example%20Package:%20xterm%29">use of quilt in debian&#8217;s packaging system</a>. Such a simple system is clearly awesome, and the more I understand how the Open Source communities organize themselves, the more it makes me realize how technically advanced the Open Source world  is compared to the corporate world !</p>
<p>No matter how much you might have heard that tooling is unimportant, the reality is that <strong>tools are important.</strong> <strong>Tools</strong> <strong>enable complex collaboration</strong>, and this is clearly an area where Open Source excels.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 109px; width: 1px; height: 1px;">http://www.suse.de/~agruen/quilt.pdf</div>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/02/27/surviving-with-many-patches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cumulative Flow Chart in Kanban, and distributed SCM tools</title>
		<link>http://www.dalouche.com/wordpress/2010/02/27/cumulative-flow-chart-in-kanban/</link>
		<comments>http://www.dalouche.com/wordpress/2010/02/27/cumulative-flow-chart-in-kanban/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 17:01:01 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=144</guid>
		<description><![CDATA[Cumulative Flow Chart in Kanban attracted my attention as I consider it a nice example of using branching efficiently.
IMHO, it is simply wrong to assume that every single task can be split into small fragments that are then iteratively incorporated into the mainline. The author calls this kind of task a &#8220;technically complex story&#8221;, and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.targetprocess.com/blog/2010/02/cumulative-flow-chart-in-kanban-real-usage-example.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Targetprocess+%28Edge+of+Chaos+|+Agile+Development+Blog%29&amp;utm_content=Google+Reader">Cumulative Flow Chart in Kanban</a> attracted my attention as I consider it a nice example of using branching efficiently.</p>
<p>IMHO, it is simply wrong to assume that every single task can be split into small fragments that are then iteratively incorporated into the mainline. The author calls this kind of task a &#8220;technically complex story&#8221;, and I have yet to see a successful example of migrating frameworks or doing technical migrations like that without resorting to branching. This is what the whole open source community does, and it is high time the &#8220;enterprise&#8221; world catches with these practices.</p>
<p><strong>Branching then comes to the rescue !</strong> Let the &#8220;technically complex story&#8221; evolve in its own branch, and make sure to conduct in-depth QA BEFORE the merge. Same thing for code reviews and going through the DONE checklist : make sure to do it BEFORE the merge so that you do not end up with non production-quality code in the mainline, which is then pretty hard to get rid of.</p>
<p>BTW, <a href="http://martinfowler.com/bliki/VersionControlTools.html">Version Control Tools</a> gives an overview of the differences between <a href="http://git-scm.com/">git</a> and <a href="http://mercurial.selenic.com/">mercurial</a>, which are two wonderful SCM tools that are very branch-friendly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/02/27/cumulative-flow-chart-in-kanban/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I think this is frightening&#8230;.</title>
		<link>http://www.dalouche.com/wordpress/2010/02/26/i-think-this-is-frightening/</link>
		<comments>http://www.dalouche.com/wordpress/2010/02/26/i-think-this-is-frightening/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 07:13:28 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=142</guid>
		<description><![CDATA[why can&#8217;t programmers&#8230;. program is definitely worth reading&#8230; Yes, this is disturbing&#8230;.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html">why can&#8217;t programmers&#8230;. program</a> is definitely worth reading&#8230; Yes, this is disturbing&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/02/26/i-think-this-is-frightening/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cannot stop laughing while reading this..</title>
		<link>http://www.dalouche.com/wordpress/2010/02/26/cannot-stop-laughing-while-reading-this/</link>
		<comments>http://www.dalouche.com/wordpress/2010/02/26/cannot-stop-laughing-while-reading-this/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 07:00:54 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=138</guid>
		<description><![CDATA[The worst question interview ever describes&#8230; well, just read the post and you will quickly figure out what it is about. I simply LOVE Gavin King&#8217;s comment :
Heh, and I&#8217;ll continue to be an ass in all future responses to &#8220;John Smith&#8221;s who tell talented guys who worked on my projects for years that they [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nostacktrace.com/dev/2010/2/26/the-worst-interview-question-ever.html">The worst question interview ever</a> describes&#8230; well, just read the post and you will quickly figure out what it is about. I simply LOVE Gavin King&#8217;s comment :</p>
<blockquote><p>Heh, and I&#8217;ll continue to be an ass in all future responses to &#8220;John Smith&#8221;s who tell talented guys who worked on my projects for years that they aren&#8217;t &#8220;team player&#8221;s, &#8220;have an attitude&#8221; and are &#8220;prima donna&#8221;s. I&#8217;ll be the judge of that, not some asshole anonymous blog comment poster who has never met or worked with Norm. I&#8217;m protective of my team. That&#8217;s not going to change. Sorry if you don&#8217;t like it.</p></blockquote>
<p>YES, Gavin King is an ass, but most of the time, this category of ass is right, and people should just listen to them instead of complaining.. ah ah ah <img src='http://www.dalouche.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  love it ! <img src='http://www.dalouche.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>PS: for those who don&#8217;t already know it, Gavin King is the founder of Hibernate&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/02/26/cannot-stop-laughing-while-reading-this/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>EJB 3.1 : still not there yet&#8230;</title>
		<link>http://www.dalouche.com/wordpress/2010/02/26/ejb-3-1-still-not-there-yet/</link>
		<comments>http://www.dalouche.com/wordpress/2010/02/26/ejb-3-1-still-not-there-yet/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 16:07:29 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=131</guid>
		<description><![CDATA[EJB 3.1, a compelling evolution describes the new features available in EJB 3.1. It looks like EJBs are finally getting the features they miss..
However, there are still a few things bugging me :

Why insist on keeping the neat features (IoC, ..) server-side only ? Why can&#8217;t I just use the same mechanisms for in-container server-side [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.infoq.com/news/2010/02/jee6_ejb_31">EJB 3.1, a compelling evolution</a> describes the new features available in EJB 3.1. It looks like EJBs are finally getting the features they miss..</p>
<p>However, there are still a few things bugging me :</p>
<ul>
<li>Why insist on keeping the neat features (IoC, ..) server-side only ? Why can&#8217;t I just use the same mechanisms for in-container server-side code  and other kind of code ? Do I still need to revert to using Spring for everything that is not running inside the JEE6 container ? What about integrated tests ?</li>
<li>How come we still don&#8217;t have any equivalent to Spring templates, that take care of creating standardized, runtime exceptions and handling opening/closing resources automatically ?</li>
</ul>
<p>So for now, when working in non-spring environments, I need to create my own Templates to avoid creating clumsy code&#8230;</p>
<p>I agree that Spring Framework is a patch, and should eventually disappear. But for it to disappear, the underlying technologies need to start being half-decent&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/02/26/ejb-3-1-still-not-there-yet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NoSQL</title>
		<link>http://www.dalouche.com/wordpress/2010/02/26/nosql/</link>
		<comments>http://www.dalouche.com/wordpress/2010/02/26/nosql/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 14:27:58 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=127</guid>
		<description><![CDATA[These days, it looks like there is a lot of hype around the NoSQL movement.
These data storage systems have a number of features in common:
•   a call level interface (in contrast to a SQL binding)
•   fast indexes on large amounts of data,
•   ability to horizontally scale throughput over many servers, and
•   ability to dynamically define [...]]]></description>
			<content:encoded><![CDATA[<p>These days, it looks like there is a lot of hype around the NoSQL movement.</p>
<blockquote><p>These data storage systems have a number of features in common:<br />
•   a call level interface (in contrast to a SQL binding)<br />
•   fast indexes on large amounts of data,<br />
•   ability to horizontally scale throughput over many servers, and<br />
•   ability to dynamically define attributes or data schema.</p></blockquote>
<p><a href="http://beust.com/weblog/2010/02/25/nosql-explained-correctly-finally/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+beust%2FOtakuXml+%28Otaku%2C+Cedric%27s+weblog%29&amp;utm_content=Google+Reader">NoSQL explained correctly</a> gives an idea of what these datastores are useful for, and how they complement the current RDBMS offering.</p>
<p><a href="http://highscalability.com/blog/2010/2/25/paper-high-performance-scalable-data-stores.html">High performance scalable datastores</a> compares the technical  characteristics, maturity and licenses of the  NoSQL offering.</p>
<p>Other links on the subject that might be of interest :</p>
<ul>
<li>Twitter is <a href="http://nosql.mypopescu.com/post/407159447/cassandra-twitter-an-interview-with-ryan-king">switching to Cassandra</a></li>
<li><a href="https://dzone.webex.com/ec0605l/eventcenter/recording/recordAction.do?theAction=poprecord&amp;actname=%2Feventcenter%2Fframe%2Fg.do&amp;actappname=ec0605l&amp;renewticket=0&amp;renewticket=0&amp;apiname=lsr.php&amp;entappname=url0107l&amp;needFilter=false&amp;&amp;isurlact=true&amp;rID=188652&amp;entactname=%2FnbrRecordingURL.do&amp;rKey=7ca2de1aa515d68d&amp;recordID=188652&amp;siteurl=dzone&amp;rnd=7475843994&amp;SP=EC&amp;AT=pb&amp;format=short">Common principles and patterns for building scalable systems</a></li>
<li><a href="http://ai.mee.nu/seeking_a_database_that_doesnt_suck">Seeking a database that does not suck</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/02/26/nosql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Is OpenSolaris dead ?</title>
		<link>http://www.dalouche.com/wordpress/2010/02/24/is-opensolaris-dead/</link>
		<comments>http://www.dalouche.com/wordpress/2010/02/24/is-opensolaris-dead/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 03:48:13 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=125</guid>
		<description><![CDATA[It looks like that the future of OpenSolaris is unclear, now that Oracle has acquired Sun..
I take the official Oracle website to be rather &#8230; official ?
Lets recap, shall we ?
a) Almost every trace of OpenSolaris Support subscriptions vanished from
the official website within the last 14 days.
b) An Oracle sales rep informed me personally last [...]]]></description>
			<content:encoded><![CDATA[<p>It looks like that<a href="http://opensolaris.org/jive/thread.jspa?threadID=124338&amp;tstart=0"> the future of OpenSolaris is unclear</a>, now that Oracle has acquired Sun..</p>
<blockquote><p>I take the official Oracle website to be rather &#8230; official ?</p>
<p>Lets recap, shall we ?</p>
<p>a) Almost every trace of OpenSolaris Support subscriptions vanished from<br />
the official website within the last 14 days.</p>
<p>b) An Oracle sales rep informed me personally last week that I could no<br />
longer purchase support subscriptions for OpenSolaris.</p></blockquote>
<p>More information available on <a href="http://opensolaris.org/jive/thread.jspa?threadID=124338&amp;tstart=0">this thread</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/02/24/is-opensolaris-dead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenStreetMap</title>
		<link>http://www.dalouche.com/wordpress/2010/02/20/openstreetmap/</link>
		<comments>http://www.dalouche.com/wordpress/2010/02/20/openstreetmap/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 15:52:09 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=123</guid>
		<description><![CDATA[Here is an introductory article to OpenStreetMap (OSM) . A short except :
Why is that important? Because each time you fix something in OSM your brain gives you a little drop of seratonin, or something, that makes you feel good. And that comes from a quick feedback loop. With traditional companies your feedback loop is far, [...]]]></description>
			<content:encoded><![CDATA[<p>Here is an <a href="http://opengeodata.org/openstreetmap-the-best-map?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Opengeodata+%28OpenGeoData%29&amp;utm_content=Google+Reader">introductory article to OpenStreetMap (OSM)</a> . A short except :</p>
<blockquote><p>Why is that important? Because each time you fix something in OSM your brain gives you a little drop of seratonin, or something, that makes you feel good. And that comes from a quick feedback loop. With traditional companies your feedback loop is far, far too long. Anything more than a couple of minutes is too long because there’s no association of the act of fixing something with the good feeling. More often than not, you help fix something and it drops in to a black hole.</p>
<p>[...]</p>
<p>The logistical costs of producing maps in a top-down fashion pretty much levelled out at having fleets of cars driving around North America and Europe. Increasing the detail with footpaths would cost far more than the benefit any company could leverage if they tried to do it a similar way. Crowd sourcing this from customers and others is simply inevitable &#8211; there is no other way to do it. But many will likely try to add quality assurance in between their contributors and the map and thus limit the scope and depth of the contributions.</p>
<p>[...]</p>
<p>Those maps will, at times and in certain areas, be better than OSM. But the growth of OSM is inexorable and like a freight train will ultimately roll over everything in its path. It may even happen before traditional companies figure this out and try to start seriously crowd sourcing data.</p></blockquote>
<p>Is OSM the next wikipedia of mapping data ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/02/20/openstreetmap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 25 most dangerous programming errors</title>
		<link>http://www.dalouche.com/wordpress/2010/02/19/top-25-most-dangerous-programming-errors/</link>
		<comments>http://www.dalouche.com/wordpress/2010/02/19/top-25-most-dangerous-programming-errors/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 12:56:38 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=121</guid>
		<description><![CDATA[Top 25 most dangerous programming errors can be used to identify common programming, design, architecture mistakes that can potentially harm your system. A few examples :

Failure to Preserve Web Page Structure (&#8216;Cross-site Scripting&#8216;)
Improper Sanitization of Special Elements used in an SQL Command (&#8216;SQL Injection&#8217;)
Cross-Site Request Forgery (CSRF)
Reliance on untrusted input in a security decision
&#8230;

]]></description>
			<content:encoded><![CDATA[<p><a href="http://cwe.mitre.org/top25/?">Top 25 most dangerous programming errors</a> can be used to identify common programming, design, architecture mistakes that can potentially harm your system. A few examples :</p>
<ul>
<li>Failure to Preserve Web Page Structure (&#8216;<a href="http://cwe.mitre.org/top25/?#CWE-79">Cross-site Scripting</a>&#8216;)</li>
<li>Improper Sanitization of Special Elements used in an SQL Command (<a href="http://cwe.mitre.org/top25/?#CWE-89">&#8216;SQL Injection&#8217;</a>)</li>
<li>Cross-Site Request Forgery (<a href="http://cwe.mitre.org/top25/?#CWE-352">CSRF</a>)</li>
<li><a href="http://cwe.mitre.org/top25/?#CWE-807">Reliance on untrusted input in a security decision</a></li>
<li>&#8230;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/02/19/top-25-most-dangerous-programming-errors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git, Mercurial, Subversion..</title>
		<link>http://www.dalouche.com/wordpress/2010/02/17/git-mercurial-subversion/</link>
		<comments>http://www.dalouche.com/wordpress/2010/02/17/git-mercurial-subversion/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 04:26:02 +0000</pubDate>
		<dc:creator>Sami Dalouche</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dalouche.com/wordpress/?p=119</guid>
		<description><![CDATA[Pretty good post from Martin Fowloer on Version Control Tools.
What he says on git :
Git certainly seems to be liked for its power. Folks go ga-ga   over it&#8217;s near-magical ability to do textual merges automatically   and correctly, even in the face of file renames. I haven&#8217;t seen any   objective [...]]]></description>
			<content:encoded><![CDATA[<p>Pretty good post from Martin Fowloer on <a href="http://martinfowler.com/bliki/VersionControlTools.html">Version Control Tools</a>.</p>
<p>What he says on git :</p>
<blockquote><p>Git certainly seems to be liked for its power. Folks go ga-ga   over it&#8217;s near-magical ability to do textual merges automatically   and correctly, even in the face of file renames. I haven&#8217;t seen any   objective tests comparing merge capabilities, but the subjective   opinion favors git.</p>
<p>[...]</p>
<p>For many git&#8217;s biggest downside was its oft-cryptic commands and   mental model. Ben Butler-Cole phrased it beautifully: &#8220;there is this   amazingly powerful thing writhing around in there that will   basically do everything I could possibly ask of it if only I knew   how.&#8221; To its detractors, git lacks discoverability &#8211; the ability to   gradual infer what it does from it&#8217;s apparent design. Git&#8217;s   advocates say that much of this is because it uses a different   mental model to other VCSs, so you have to do more unlearn your   knowledge of VCS to appreciate git. Whatever the reason git seems to   be attractive more to those who enjoy learning the internals while   mercurial seems to appeal more to those who just want to do version   control.</p>
<p>[..]</p>
<p>People generally find that git handles branching better than   Mercurial, particular for short-lived branches for experimentation   and check-pointing. Mercurial encourages other mechanisms, such as   fast cloning of separate repository directories and queue patching,   but git&#8217;s branching is a simpler and better model.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.dalouche.com/wordpress/2010/02/17/git-mercurial-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
