<?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>Legolas in Minas Tirith &#187; ideas</title>
	<atom:link href="http://www.javalinux.it/wordpress/categories/ideas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.javalinux.it/wordpress</link>
	<description>Alessio &#38; Stefano ideas</description>
	<lastBuildDate>Wed, 14 Sep 2011 14:05:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Sibilla first release: experience a new approach to unit testing</title>
		<link>http://www.javalinux.it/wordpress/2010/10/12/sibilla-first-release-experince-a-new-approach-to-unit-testing/</link>
		<comments>http://www.javalinux.it/wordpress/2010/10/12/sibilla-first-release-experince-a-new-approach-to-unit-testing/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 22:16:05 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[ideas]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[testedby]]></category>
		<category><![CDATA[sibilla]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=390</guid>
		<description><![CDATA[abstract: [...] collecting metadata set that represent links between classes under test and test classes (and eventually more fine grained links between methods) and using them for a lot of purposes. Metadata can be collected from different sources: annotations on classes under test, instrumentation of test classes during tests&#8217; execution (in future perhaps even from [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><span style="font-size: small;"><br />
</span></p>
<p>abstract:</p>
<blockquote><p><span style="color: #800000;">[...] <span style="font-size: large;">c</span><em><span style="font-size: large;">ollecting metadata set that represent links between classes under test and test classes (and eventually more fine grained links between methods) and using them for a lot of purposes. Metadata can be collected from different sources: annotations on classes under test, instrumentation of test classes during tests&#8217; execution (in future perhaps even from a dedicated user interface). These metadata can be used for various goals: f</span></em><strong><em><span style="font-size: large;">irst of all it becomes possible to run only the tests that stress just a particular set of classes (for instance the classes changed since last compilation) <span style="font-weight: normal;">[...] We have a Maven plugin, while Eclipse and Hudson ones are in our roadmap.</span></span></em></strong></span></p></blockquote>
<p>Full story:</p>
<p><a href="http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/" target="_blank">A while ago I&#8217;ve written a post about a new approach to unit tests</a>; it has been a quite read and discussed post and it gives the momentum for starting a new community discussing about the idea and working on a software project implementing this idea. The project was named TestedBy and  hosted in google code.</p>
<p>That idea has evolved and changed and we have decided to change also the name of the project as a remark of these changes, calling it <a href="http://sibilla.javalinux.it" target="_blank">SibillaTest</a>. Why Sibilla? Because, as you can read in this post and you can get trying our samples, Sibilla (italian name for Cumae Sybil) is always able to prophesy and predict which tests you need to run.</p>
<p>This post has been written to announce the release of a first beta version of <a href="http://sibilla.javalinux.it" target="_blank">SibillaTest</a> and describe how our thoughts about the original idea have changed in these months and how they have been  implemented in <a href="http://sibilla.javalinux.it" target="_blank">SibillaTest</a>.<br />
I&#8217;m going to recall the main concepts of the original idea, If you haven&#8217;t read the <a href="http://www.javalinux.it/wordpress/2008/10/20/a-new-approach-to-unit-tests/" target="_blank">original blog would be nice to take a look to it</a>, to its numerous comments and also to the update I&#8217;ve posted few days after. If you are interested in all the genesis of the project you could also have a look to the discussions continued in <a href="http://groups.google.com/group/testedby-dev">our forum</a></p>
<p>Generally speaking what I&#8217;ve depicted in my old blog post was a system to keep annotations in classes under test pointing test classes (or in some case to specific test methods). Advantage of this approach were mainly 2:</p>
<p>• Design By Contract (viewing test as contract definition). The sugar here was the opportunity to put TestedBy annotation also on super classes (even if they are abstract or even interfaces) and inherit test annotations.<br />
• Run only tests stressing a specific class. IOW run test stressing a class of your interest (i.e just compiled) giving you the confidence you aren&#8217;t breaking test suite without running the entire suite itself.</p>
<p>The main concerns about this approach was about code cluttering putting a lot of annotations in production code (of course you could have a lot of test stressing a class or even a method).</p>
<p>So we have changed a bit the focus from an annotation centric approach to a more general metadata<br />
approach. The idea is to collect a set of metadata that represent link between classes under test and test classes (and eventually more fine grained links between methods) and use them for a lot of purposes.<br />
The pluses of this approach are mainly two:</p>
<p>• Metadata can be collected from different sources: annotations , instrumentation of test during test execution, maybe in the future from a dedicated  user interface.<br />
• Metadata can be serialized and/or used in a second step for various goals: run &#8220;right&#8221; tests of course will remain a central feature, but also<br />
&#8220;graphical&#8221; representation, code navigation in IDE, more dynamic use of it</p>
<p style="text-align: center;">
<p style="text-align: left;">I&#8217;m trying to keep this post not too long trying to keep your attention focused on the usefulness of SibillaTest,  I&#8217;m going to describe in this the feature already implemented in SibillaTest. But, of course, we have a lot of ideas that will be developed in next future that we would like to discuss with the community and maybe have some contribution from the community. Here you have a mind map depicting a lot of these working areas to get you an idea. I<a href="http://github.com/maeste/SibillaTest/wiki/IdeasDescription" target="_blank">f you are interested in a more detailed description of them you  can find a page in our wiki describing it.</a></p>
<p><img class="size-full wp-image-396 aligncenter" title="tb" src="http://www.javalinux.it/wordpress/wp-content/uploads/2010/04/tb.png" alt="" width="525" height="194" /></p>
<p>So, what is SibillaTest today?<em><a name="Short_description:"></a></em></p>
<blockquote><p><em><a name="Short_description:"></a></em><em> aims at changing the point of view regarding test classes and classes under test. What </em><em>we get is the focus being moved to the classes under test; from those classes, which of course are the most important ones of your projects, we obtain links to your test classes and test methods. In other words we define the classes and methods&#8217; contract using tests, while also keeping track of tests that need to be run when a class/method under test has been modified. This is possible by collecting metadata sets that represent links between classes under test and test classes (and eventually more fine grained links between methods) and using them for a lot of purposes. Metadata can be collected from different sources: annotations on classes under test, instrumentation of test classes during tests&#8217; execution (in future perhaps even from a dedicated user interface). These metadata can be used for various goals: </em><em><strong>first of all it becomes possible to run only the tests that stress just a particular set of classes (for instance the classes changed since last compilation)</strong></em><em>, moreover a graphical representation of classes&#8217; links can be derived. We have a Maven plugin, while Eclipse and Hudson ones are in our roadmap. Further cool idea around this is supporting generic tests to inject on existing production code (to verify commonly situation like don&#8217;t accept null parameters) and mock verification (are your mocks respecting the contract you have defined on mocked classes with your tests?)</em></p></blockquote>
<p>Practically speaking in this beta release we have:</p>
<ul>
<li><a href="http://github.com/maeste/SibillaTest" target="_blank">a core </a> supporting both annotation based metadata definition and instrumentation of classes during test execution to collect metadata. With annotation we support metadata on test stressing a whole hierarchy of classes/interfaces: you can define tests to be run against all implementation of your interface and SibillaTest take care of it Instrumentation do the magic of knowing which test is stressing particular classes and run only tests needed to validate last changed classes (i.e just compiled)</li>
<li><a href="http://github.com/maeste/SibillaMavenPlugin"> a maven plugin</a> (docs here) you can use to run test stressing only last changed classes.</li>
<li>support of Junit tests (not yet testng or other frameworks)</li>
</ul>
<p><a href="http://github.com/maeste/SibillaMavenPlugin/wiki" target="_blank">In our wiki you can find some documentation of how to include Sibilla into your maven project</a>, how to run it and documentation about our annotations if you decide to give TestedBy design by contract approach a try. <span style="font-size: medium;"><strong><a href="http://github.com/maeste/SibillaSamples" target="_blank">Here you can also find a small project with trivial classes under test and test classes using SibillaTest to run them. Check it out and give it a try&#8230;it&#8217;s the key to understand the idea and to say &#8220;wow it&#8217;s cool!&#8221; <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </a></strong></span></p>
<p>Have a look and send us comment through this blog or, much better, <a href="http://github.com/maeste/SibillaTest/issues" target="_blank">through our issue tracker</a> and/or <a href="http://groups.google.com/group/sibillatest" target="_blank">our forum</a>. We have also an<a href="irc://irc.freenode.net/sibilla" target="_blank"> IRC channel </a><strong><a href="irc://irc.freenode.net/sibilla" target="_blank">#sibilla</a></strong><a href="irc://irc.freenode.net/sibilla" target="_blank"> active on FreeNode</a> for discussions and suggestions.</p>
<p><a href="http://repo2.maven.org/maven2/it/javalinux/sibilla/" target="_blank">Artifact are available</a> on maven central repository, <a href="http://github.com/maeste/SibillaMavenPlugin/wiki">see the docs too.</a></p>
<p>Some other post with detailed descriptions of instrumentation and annotation based metadata and their use and plans for next versions will follow during next days. Moreover we will discuss on <a href="http://groups.google.com/group/sibillatest" target="_blank">forum</a> and post here also plans of integration with the very cool <a href="http://www.jboss.org/arquillian" target="_blank">Arquillian</a> (<a href="http://twitter.com/aslakknutsen/status/26729527708#" target="_blank">I had a very interesting discussion</a> about that with <a href="http://twitter.com/aslakknutsen" target="_blank">Aslak</a> at last <a href="http://www.jboss.org/events/JUDCon/JUDCon2010Berlin.html" target="_blank">JUDCon</a>)&#8230;.</p>
<p>&#8230;.stay tuned.</p>
<p>Of course if anyone is interested to join us and help (especially for eclipse plugin) please write us.</p>
<p>Stay tuned, join us and show some love around on the net!</p>
<p style="text-align: center;"><a href="http://sibilla.javalinux.it" target="_blank"><span style="font-size: large;">http://sibilla.javalinux.it</span></a></p>
<p style="text-align: center;"><span style="font-size: small;">(</span><a href="http://groups.google.com/group/sibillatest" target="_blank"><span style="font-size: small;">Forum</span></a><span style="font-size: small;"> &#8211; </span><a href="irc://irc.freenode.net/sibilla"><span style="font-size: small;">IRC</span></a><span style="font-size: medium;"><span style="font-size: small;"> &#8211; </span><a href="http://github.com/maeste/SibillaTest"><span style="font-size: small;">GitHub</span></a><span style="font-size: small;"> &#8211; </span><a href="http://github.com/maeste/SibillaSamples" target="_blank"><span style="font-size: small;">Sample(github)</span></a><span style="font-size: small;"> &#8211; </span><a href="http://github.com/maeste/SibillaMavenPlugin" target="_blank"><span style="font-size: small;">Maven Plugin(github)</span></a><span style="font-size: small;"> &#8211; </span><a href="https://twitter.com/SibillaTest"><span style="font-size: small;">@SibillaTest on twitter</span></a><span style="font-size: small;"> &#8211; </span><a href="http://github.com/maeste/SibillaTest/issues" target="_blank"><span style="font-size: small;">issues</span></a><span style="font-size: small;">)</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2010/10/12/sibilla-first-release-experince-a-new-approach-to-unit-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google code issue tracker integration with version control using git commit template</title>
		<link>http://www.javalinux.it/wordpress/2009/10/17/google-code-issue-tracker-integration-with-version-control-using-git-commit-template/</link>
		<comments>http://www.javalinux.it/wordpress/2009/10/17/google-code-issue-tracker-integration-with-version-control-using-git-commit-template/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 21:39:46 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[google code]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=319</guid>
		<description><![CDATA[I&#8217;m using google code for one of my open source project. And I think it is definitively a good code site. All open source community code site have its pros and cons (I&#8217;ve tried a lot of them sourceforge, github, jboss.org, google code etc), and every one have some beautiful unique feature. But one of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m using <a href="http://code.google.com/" target="_blank">google code</a> for one of my <a href="http://code.google.com/p/testedby/">open source project</a>. And I think it is definitively a good code site.</p>
<p>All open source community code site have its pros and cons (I&#8217;ve tried a lot of them sourceforge, github, jboss.org, google code etc), and every one have some beautiful unique feature. But one of my most loved feature is definitively <a href="http://code.google.com/p/support/wiki/IssueTracker#Integration_with_version_control" target="_blank">google code&#8217;s integration of issue tracker and version control</a>. In a nutshell it permit to create, update and close issues just adding some keyword on your commit.</p>
<p>It&#8217;s great in general, but it&#8217;s really amazing if you are using a <a href="http://en.wikipedia.org/wiki/Revision_control#Distributed_revision_control" target="_blank">distributed Version Control</a>. And I&#8217;m using <a href="http://git-scm.com/" target="_blank">git</a> for local repository and <a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html" target="_blank">git-svn</a> to synchronize it with central <a href="http://subversion.tigris.org/" target="_blank">subversion</a> repository.<br />
Imagine this situation: you are working with your laptop off-line (i.e into an air plane where also GSM connection isn&#8217;t available) and you find a bug or you have an idea for an enhancement. What do you do in this case? Of course take care of the bugged code, fix it, write a test for that and then commit it into your git local repository. What is the missing step in this work flow? Of course create an issue into your issue tracker system to keep community up to date, and don&#8217;t forget it if you can&#8217;t completely finish it now. At this point come very useful the google code feature permitting you to create, update, or fix an issue when you are committing a change.</p>
<p>There is only one problem with this integration: remember the structure the commit message have to fit and all (or at least the most useful) values you can assign to various fields. I&#8217;ve solved this problem creating 3 template for the commit messages and I use them with git. Using template during a git commit is very easy: just make a commit like this</p>
<pre>git commit -a -t tempalteFile</pre>
<p>Git will Use the contents of the given file as the initial version of the commit message. The editor is invoked and you can make subsequent changes. If a message is specified using the -m or -F options, this option has no effect.</p>
<p>Here you have my 3 template file:</p>
<p>NewIssue.tmpl</p>
<pre lang="sh">#commit comment here

#next line doesn't need any number. ssue number will be automaticaly assigned after commit
New issue
#A summary is always needed. Please complete next line
Summary:
#Uncomment the rigt Status
#Status: Accepted
#Status: Fixed
#Status: New
#Uncommet right Labels and/or add labels to the list (comma or space separate)
#Labels: Type-Defect Priority-Medium
#Labels: Type-Defect Priority-High
#Labels: Type-Defect Priority-Critical
#Labels: Type-Enhancement Priority-Medium
#Labels: Type-Enhancement Priority-Low
#Labels: Type-Enhancement Priority-High

#Comment text for the issue tracker goes here</pre>
<p>UpdateIssue.tmpl</p>
<pre lang="sh">#commit comment here

#Complete next line with issue number
Update issue
#summary is rarely updated. If you need that uncomment and complete next line
#Summary:
#Uncomment the new Status you would get your issue. No uncomment status will keep the previous status
#Status: Accepted
#Status: Fixed
#Status: New
#Uncommet Labels and/or add labels to the list (comma or space separate) if you want update/add Labels
#Labels: Type-Defect Priority-Medium
#Labels: Type-Defect Priority-High
#Labels: Type-Defect Priority-Critical
#Labels: Type-Enhancement Priority-Medium
#Labels: Type-Enhancement Priority-Low
#Labels: Type-Enhancement Priority-High

#Comment text for the issue tracker goes here</pre>
<p>FixIssue.tmpl</p>
<pre lang="sh">#commit comment here

#Complete next line with issue number
Fixes issue

#Comment text for the issue tracker goes here</pre>
<p>The same thing should be possible also with svn and other SCM.</p>
<p>Hoping it could help some other people enjoying this google code feature developing open source code during their trips <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2009/10/17/google-code-issue-tracker-integration-with-version-control-using-git-commit-template/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Writing an irc bot for svn commit notification</title>
		<link>http://www.javalinux.it/wordpress/2009/10/15/writing-an-irc-bot-for-svn-commit-notification/</link>
		<comments>http://www.javalinux.it/wordpress/2009/10/15/writing-an-irc-bot-for-svn-commit-notification/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 11:40:04 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[ideas]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=311</guid>
		<description><![CDATA[Recently I&#8217;ve started working with a new team. Since we are based in 2 different site a bit far each other we are using extensively an IRC channel to communicate. We are using subversion as SCM and we need to keep all members of the team up to date about svn commits. The solution I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve started working with a new team. Since we are based in 2 different site a bit far each other we are using extensively an <a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat" target="_blank">IRC</a> channel to communicate.</p>
<p>We are using <a href="http://subversion.tigris.org/" target="_blank">subversion</a> as SCM and we need to keep all members of the team up to date about svn commits. The solution I&#8217;ve put in place during an insomniac night in an hotel is a post-commit hook invoking an irc bot script written in perl connecting to the server and shotting a message there. Quite simple, and it is taking its goal.</p>
<p>In $SVN_REPOSITORY/hooks edit and make executable the file <a href="http://svnbook.red-bean.com/en/1.4/svn.ref.reposhooks.post-commit.html" target="_blank">post-commit</a></p>
<pre lang="sh">#!/bin/sh

REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook

# get last commit message
COMMIT=`$SVNLOOK log "$REPOS"`
USER=`whoami`

# call bot with arguments reposname, revison and commit message in one string
/usr/bin/perl /usr/local/bin/svn_irc_bot.pl "$USER $REPOS r$TXN: $COMMIT"

# all checks passed, so allow the commit
exit 0</pre>
<p>then edit and make executable the file /usr/local/bin/svn_irc_bot.pl</p>
<pre lang="perl">#!/usr/bin/perl -w
#svn_irc_bot.pl

my $server = ""; #put here your address
my $port = 6667;
my $nick = "svn_bot";
my $ident = "svn_bot";
my $realname = "svn_bot";
my $chan = "#YourChannel";#put here your channel name
my $pass = "svn_bot";
my $svn_commit = $ARGV[0];
use IO::Socket;

my $irc=IO::Socket::INET-&gt;new(
PeerAddr=&gt;$server,
PeerPort=&gt;$port,
Proto=&gt;'tcp') or die "DEAD!";

#print $irc "USER $ident $ident $ident $ident :$realname\n";
print $irc "NICK $nick\r\n";
#print $irc "PRIVMSG nickserv/@/services.dal.net :identify $pass\n";
print $irc "USER $ident 8 * <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> erl IRC Hacks Robot\r\n";

print $irc "join $chan\n";

while(my $in = &lt;$irc&gt;)
{
if($in=~/004/)
{
print $irc "PRIVMSG $chan :$svn_commit \n";
last;
}

if($in=~/^PING(.*)$/i)
{
print $irc "PONG :$1\n";
}
}
close($irc);
#EOF</pre>
<p>If user named &#8220;fooUser&#8221; make a commit on &#8220;fooRepository&#8221; for release 409 with a comment like &#8220;this is a fooComment&#8221; on irc channel you will get something like:</p>
<pre>&lt;svn_bot&gt; fooUser fooRepository r409: this is a fooComment</pre>
<p>I took the base of code <a href="http://happynerds.wordpress.com/2008/01/06/irc-message-after-svn-commits/" target="_blank">here</a>. Then I&#8217;ve modified it a little to get result I like.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2009/10/15/writing-an-irc-bot-for-svn-commit-notification/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>[book-review] Pragmatic Thinking and learning</title>
		<link>http://www.javalinux.it/wordpress/2009/03/25/book-review-pragmatic-thinking-and-learning/</link>
		<comments>http://www.javalinux.it/wordpress/2009/03/25/book-review-pragmatic-thinking-and-learning/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 23:21:22 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[book]]></category>
		<category><![CDATA[ideas]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=269</guid>
		<description><![CDATA[Some weeks ago I&#8217;ve been at my usual book store looking for some new book to read. I couldn&#8217;t resist when I see this catchy title: &#8220;Pragmatic Thinking and Learning. Refactor your wetware&#8221;&#8230;I had to buy it! In fact the book have been even better than my expectations, giving me a lot of hint and [...]]]></description>
			<content:encoded><![CDATA[<p>Some weeks ago I&#8217;ve been at my usual book store looking for some new book to read. I couldn&#8217;t resist when I see this catchy title: <a href="http://pragprog.com/titles/ahptl" target="_blank">&#8220;Pragmatic Thinking and Learning. Refactor your wetware&#8221;</a>&#8230;I had to buy it!</p>
<p>In fact the book have been even better than my expectations, giving me a lot of hint and idea around the day by day improvement and <em>refactor</em> of my brain.</p>
<p>As usual I wouldn&#8217;t bother you making just another complete book review (BTW you can find a great one <a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=9117359" target="_blank">here</a>), but I would prefer to spot just 5 point that totally catch my attention and I&#8217;m applying (every day a bit more) in my work and life, hoping to add something to the discussion and stimulate your curiosity for the book:</p>
<ol>
<li>A greater awareness of R-mode to L-mode flow. Ok it&#8217;s not the first time I&#8217;ve heard about right vs left brain. In a nutshell (please keep in mind it is a terrible reduction to keep the post brief!!) R-mode is responsible of intuition and creativity, L-mode of verbal and logic. But Hunt&#8217;s explanation and hint to favour R-mode to L-mode flow are really great. There are some of his hint I&#8217;ve been already doing because they are natural for me (i.e. large use of metaphor and humor during explanatio ; step away from my keyboard when thinking to hard problem or pattern matching; describe problems to someone to get the solution). But now I have a more precise awareness that I&#8217;m working with these habit on R-mode to L-mode flow, and it make easier to understand what is happening into my brain and eventually try to drive this process.</li>
<li>Mind map. I already know them. Perhaps because I&#8217;m italian: it&#8217;s quite impressive how much infos about you can find in italian language about on internet, much more than in english  (if you undertsand italian  just try this <a href="http://it.wikipedia.org/wiki/Mappa_mentale" target="_blank">wikipedia page</a> and follow external link). What Hunt&#8217;s book have added is the fantastic idea that simply make decoration on them expose in some way your R-mode thought. I&#8217;ve tried that and it&#8217;s quite impressive which results I&#8217;m getting.</li>
<li>personal wiki to keep track and organize idea. Of course I already known wiki, but I&#8217;m trying to use it extensively to write down idea and knowledge of various kind. One more time I&#8217;m getting quite impressive results, getting much more ideas than ever and having a single place to correlate and link them. BTW I&#8217;m using <a href="http://zim-wiki.org/">zim desktop wiki</a>&#8230;really a cool software for this purpose</li>
<li>meditation to increase focus and attention. Well I&#8217;ve been already curious about. It just give the hint to try vipassana meditation. I like it, try to leave your  prejudice (it&#8217;s nothing about religion!) and give it a try the results is tangible.</li>
<li>keep the focus, avoid distraction in your environment. Hunt give some hints on how to avoid distraction starting from desktop workspace organization, email frequency and so on. The reason to avoid distraction is that our brain would spend a lot of energy and time (about 20 mins!) to change context and get back i.e to move away from IDE to answer an email and then switch back to programming activities. At a first look it seems impossible to limit the frequency of email check or just use a script to put a todo in your todo list without review the whole list before, but if you try that you will notice productivity will definitively increase.</li>
</ol>
<p>They aren&#8217;t the only good points in the book, and I&#8217;m applying more hints, but for sure these 5 are the most effective for me. Moreover the second chapter of the book (<a href="http://media.pragprog.com/titles/ahptl/chap2.pdf" target="_blank">you can read it here</a>) is influencing a lot how I&#8217;m managing my team and considering expertise of people working with me and expertise of myself too.</p>
<p>The book of course contain much more than these, perhaps something that work better for you (no one of us have the same brain&#8230;luckily). Take a look to the linked book review, or much better leave your chair right now for few minutes, walk to your book store and pick up the book. Walking will re-activate  your Rigth Brain, and the book will do much more for it <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Thanks to Mr. Hunt for all the hints.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2009/03/25/book-review-pragmatic-thinking-and-learning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Open source is matter of ideas not of software</title>
		<link>http://www.javalinux.it/wordpress/2009/02/25/open-source-is-matter-of-ideas-not-of-software/</link>
		<comments>http://www.javalinux.it/wordpress/2009/02/25/open-source-is-matter-of-ideas-not-of-software/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 16:25:25 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[blogging]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=245</guid>
		<description><![CDATA[Hi all, A long silence from me here. I&#8217;m sorry for that but time is very very few. It is one of the reason I&#8217;m twitting more than blogging. Twitter require a lot lesser time than blogging. I&#8217;m loving it men! It make possible to write some notes without wasting a lot of time in [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all,<br />
A long silence from me here.</p>
<p>I&#8217;m sorry for that but time is very very few. It is one of the reason I&#8217;m <a href="http://twitter.com/maeste" target="_blank">twitting</a> more than blogging. <a href="http://twitter.com" target="_blank">Twitter</a> require a lot lesser time than blogging. I&#8217;m loving it men! It make possible to write some notes without wasting a lot of time in a blog post and it&#8217;s<a href="http://rossmason.blogspot.com/2009/02/twitter-is-changing-community-dynamics.html"> very very effective in terms of feedbacks and information exchange</a>.<br />
But I&#8217;m not here to describe all the resons I&#8217;m loving twitter.<br />
I&#8217;m here to say I have no time <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . A little counter sense wasting time in a blog post to say I haven&#8217;t time to waste <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . But counter senses are fun because drive us to think different, open the mind and ask our selves where is the real problem.<br />
I have no time for what?<br />
To realize my ideas. I have a lot of ideas (as all people have, I&#8217;m sure of that), but it seems I haven&#8217;t time to put them in practice. And it&#8217;s frustrating. But I decided t return to regular post some ideas here to don&#8217;t loose them.</p>
<p>Perhaps I&#8217;m not having a revulotionary ideas, I&#8217;m not saying E=mc2! But ideas are important per se and share ideas could be the key to give them a spin, an make them fly. Isn&#8217;t it the real spirit of open source movement? Open source isn&#8217;t IMHO a matter of software, but more generally is matter of ideas.</p>
<p>Innovation have a simple recipe: ideas +time to realize it. But innovation in a open source world could become ideas + some opportunity to realize and share them. <a href="http://oddthesis.org/" target="_blank">One of my favourite blog</a> is exactly this: enunciating ideas and realize them (Bob is sufficient lucky to have time itself to realize hi idea).<br />
In the past I have some ideas<a href="http://www.jboss.org/Wise" target="_blank"> became an open source project</a>, and <a href="http://www.javalinux.it/wordpress/?p=116" target="_blank">some stimulated some discussions</a> and I&#8217;d like to implement it in near future as open source project (I haven&#8217;t yet got time, but I love too much <a href="http://code.google.com/p/testedby/">TestedBy</a> underlying idea, it is one of my first priority!).</p>
<p>Anyway I can&#8217;t switch off my brain just because I haven&#8217;t time to realize my ideas.<br />
Could be more interesting and helpful for my curiosity to write down these ideas and share them for an open discussion. At least I&#8217;ll have take note of them to work on in some future, or maybe I&#8217;ll stimulate others&#8217; ideas in virtuos circle. <strong>Let me remark one more time, that is the real underlying idea of open source.</strong></p>
<p>Moreover I&#8217;m reading an interesting book &#8220;<a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning" target="_blank">Pragmatic Thinking and Learning</a>&#8220;. It say a lot of interesting things, but the one I&#8217;m totally sold out is that ideas will be lost if you leave it in a corner of your brain, it&#8217;s much better to write it down and eventually discuss it with someone. I would raise the bidding discussing my ideas not with someone, but virtually all <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Stay tuned, I&#8217;m going to post much more regulary, with really brief post, perhaps someone could be interesting for you and you would like to discuss about it in a virtuous circle <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2009/02/25/open-source-is-matter-of-ideas-not-of-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

