<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gAcl="http://schemas.google.com/acl/2007" xmlns:sites="http://schemas.google.com/sites/2008" xmlns:gs="http://schemas.google.com/spreadsheets/2006" xmlns:dc="http://purl.org/dc/terms" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0"><id>http://sites.google.com/feeds/content/site/humaorie</id><updated>2012-02-17T04:09:23.714Z</updated><title>Posts of blog</title><link rel="next" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie?start-index=26&amp;parent=6123962644688335633&amp;kind=announcement" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie" /><link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie" /><link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/batch" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie?parent=6123962644688335633&amp;kind=announcement" /><generator version="1" uri="http://sites.google.com">Google Sites</generator><openSearch:startIndex>1</openSearch:startIndex><entry gd:etag="&quot;YD0peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/2584108563102203645</id><published>2011-08-07T11:13:41.416Z</published><updated>2011-08-07T11:14:49.904Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-07T11:14:49.889Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>WordReference Java Library</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">Check it out: <a href="https://bitbucket.org/dfa/wr">https://bitbucket.org/dfa/wr</a><div><br /></div><div>It features also a command line client.</div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/wordreferencejavalibrary" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/2584108563102203645" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2584108563102203645" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2584108563102203645" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>wordreferencejavalibrary</sites:pageName><sites:revision>1</sites:revision></entry><entry gd:etag="&quot;YD4peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/7870783780709907980</id><published>2010-07-18T09:56:01.132Z</published><updated>2010-07-18T11:17:54.058Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-18T11:17:54.057Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Dollar 1-0-alpha2</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><span style="color:rgb(0,0,0);font-family:Georgia;font-size:16px"><span style="font-size:small">A new version of </span><a href="http://bitbucket.org/dfa/dollar/src/49ce007b2c1b"><span style="font-size:small">dollar is out</span></a><span style="font-size:small">. Major changes:<br /></span><ul style="margin-top:0px;margin-bottom:0px"><li style="margin-top:0px;margin-bottom:0px"><span style="font-size:small">defined a contract: </span><i><span style="font-size:small">copy</span></i><span style="font-size:small">, </span><i><span style="font-size:small">iterator</span></i><span style="font-size:small">, </span><i><span style="font-size:small">equals</span></i><span style="font-size:small"> and </span><i><span style="font-size:small">hashCode</span></i></li><li style="margin-top:0px;margin-bottom:0px"><i><span style="font-size:small">copy</span></i><span style="font-size:small">() for ListWrapper, SetWrapper and MapWrapper always returns a </span><b><span style="font-size:small">new</span></b><span style="font-size:small"> object </span></li><li style="margin-top:0px;margin-bottom:0px"><span style="font-size:small">improved generics usage</span></li><li style="margin-top:0px;margin-bottom:0px"><span style="font-size:small">improved internal design (e.g. OCP violations)</span></li><li style="margin-top:0px;margin-bottom:0px"><span style="font-size:small">removed </span><b><span style="font-size:small">TODO exception</span></b><span style="font-size:small">s</span></li><li style="margin-top:0px;margin-bottom:0px"><span style="font-size:small">countless bugfixes </span></li></ul><div><span style="font-size:small"><br /></span></div><div><i><span style="font-size:small">Javadoc is still missing</span></i><span style="font-size:small">, maybe you can contribute it? :-)</span></div></span></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/dollar1-0-alpha2" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/7870783780709907980" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/7870783780709907980" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/7870783780709907980" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>dollar1-0-alpha2</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag="&quot;YD4peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/3442308951062110656</id><published>2010-06-30T10:19:36.512Z</published><updated>2010-06-30T10:49:13.690Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-30T10:49:13.688Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Dollar 1.0-alpha1 is out</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">After spending a week fixing  bugs I've decided to tag revision <a href="http://bitbucket.org/dfa/dollar/src/2b48f56e7c75" style="color:rgb(0,51,102)">2b48f56e7c75</a> as <b>1.0-alpha1</b>. <div><br /></div><div>Furthermore all wrappers now are well tested using <a href="http://junit.sourceforge.net/doc/ReleaseNotes4.4.html#theories">JUnit Theories</a>. You may find useful the <a href="http://bitbucket.org/dfa/dollar/src/tip/src/test/java/com/humaorie/dollar/integration/ObjectTest.java">ObjectTester class</a>.</div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/dollar10-alpha1isout" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/3442308951062110656" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/3442308951062110656" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/3442308951062110656" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>dollar10-alpha1isout</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag="&quot;YDopeyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/4030762398199816764</id><published>2010-03-31T11:58:41.140Z</published><updated>2010-06-30T10:19:27.997Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-30T10:19:27.995Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>My new laptop: Asus UL30A</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><div>PROs</div><div><ul><li>looooong battery life, about 10 hours</li><li>light (1.5 Kg)</li><li>very small power supply, compared to my old one </li><li>easy to use keyboard</li><li>4 GB DDR3 ram</li><li>wifi N with a very good antenna</li><li>cool palm rest</li></ul><div>CONs</div><div><ul><li>glossy display</li><li>too many sticks :-(</li><li>noisy and slow hard disk (<b>Update: I've just replaced  it with Intel X-25V, zero noise</b>)</li></ul></div></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/mynewlaptop" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/4030762398199816764" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/4030762398199816764" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/4030762398199816764" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>mynewlaptop</sites:pageName><sites:revision>6</sites:revision></entry><entry gd:etag="&quot;YD0peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/6011549812476278903</id><published>2010-06-01T16:54:18.271Z</published><updated>2010-06-01T16:55:54.417Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-01T16:55:54.374Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>First Dollar review</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><i>"</i><span style="font-family:Verdana;font-size:12px;line-height:16px"><i>An experimental Java API that shows how much you can bend the Java syntax to suit your personal taste. Through inspiration by this project I’ve come to some unique ways to make my code more expressive – without using funny signs. Thanks to Davide Angelocola for his unique approach."</i></span><div><span style="font-family:Verdana;font-size:12px;line-height:16px"><i>  -- <a href="http://schneide.wordpress.com/2010/05/30/blog-harvest-may-2010/">http://schneide.wordpress.com/2010/05/30/blog-harvest-may-2010/</a></i></span></div><div><span style="font-family:Verdana;font-size:12px;line-height:16px"><br /></span></div><div><font face="Verdana" size="3"><span style="font-size:12px;line-height:16px"><br /></span></font></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/firstdollarreview" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/6011549812476278903" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6011549812476278903" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6011549812476278903" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>firstdollarreview</sites:pageName><sites:revision>1</sites:revision></entry><entry gd:etag="&quot;YD4peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/1272605686055212925</id><published>2010-03-19T18:24:14.663Z</published><updated>2010-03-19T20:41:21.507Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-19T20:41:21.505Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Learning JSR 299</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font face="georgia, serif"><font color="#000000"><span style="font-size:small">Since I'm taking a break from my master thesis, IA and JavaScript these days I'm studying JSR-299,</span></font></font><span style="color:rgb(0,0,0);line-height:18px"><font face="georgia, serif"><span style="font-size:small"> the Java Contexts and Dependency Injection. CDI is the new Java standard for dependency injection and contextual lifecycle management </span></font><font face="georgia, serif"><a href="http://www.humaorie.com/blog/iteratornewsjava"><span style="font-size:small">that I was excited some time </span></a><span style="font-size:small">.</span></font></span><div><span style="color:rgb(0,0,0);line-height:18px"><font face="georgia, serif"><span style="font-size:small"><br /></span></font></span></div><div><span style="color:rgb(0,0,0);line-height:18px"><font face="georgia, serif"><span style="font-size:small">During this learn process I've done some experiments with </span><a href="http://seamframework.org/Weld" target="_blank"><span style="font-size:small">Weld</span></a><span style="font-size:small">, the reference implementation of JSR 299. Today I've published two experiments on</span><a href="http://bitbucket.org/" target="_blank"><span style="font-size:small"> bitbucket.org</span></a><span style="font-size:small">, feel free to use it as you want :-)</span></font></span></div><div><span style="color:rgb(0,0,0);line-height:18px"><font face="georgia, serif"><span style="font-size:small"><br /></span></font></span></div><div><span style="color:rgb(0,0,0);line-height:18px"><font face="georgia, serif"><span style="font-size:small">The </span><a href="http://bitbucket.org/dfa/weld/" target="_blank"><span style="font-size:small">first project targets Java SE, using an unofficial/unportable SE extension</span></a><span style="font-size:small"> (see also </span><a href="http://relation.to/Bloggers/WeldInJavaSE" target="_blank"><span style="font-size:small">this post</span></a><span style="font-size:small">):</span></font></span></div><div><span style="color:rgb(0,0,0);line-height:18px"><font face="georgia, serif"><span style="font-size:small"><br /></span></font></span></div><div><font color="#000000" face="georgia, serif"><span style="line-height:18px"><div><font face="'courier new', monospace"><span style="font-size:small">@ApplicationScoped</span></font></div><div><font face="'courier new', monospace"><b><span style="font-size:small">public class </span></b><span style="font-size:small">RandomNumberGenerator {</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small"><br /></span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    </span><b><span style="font-size:small">private </span></b><span style="font-size:small">Random random = </span><b><span style="font-size:small">new </span></b><span style="font-size:small">Random(System.currentTimeMillis());</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small"><br /></span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    @Produces</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    @RandomInt</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    @Named</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    </span><b><span style="font-size:small">public int </span></b><span style="font-size:small">getRandomInteger() {</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">        </span><b><span style="font-size:small">return </span></b><span style="font-size:small">random.nextInt(100);</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    }</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">}</span></font></div></span></font></div><div><span style="color:rgb(0,0,0);line-height:18px"><font face="georgia, serif"><span style="font-size:small"><br /></span></font></span></div><div><span style="color:rgb(0,0,0);line-height:18px"><font face="georgia, serif"><span style="font-size:small">Please note the </span><b><span style="font-size:small">new</span></b><span style="font-size:small"> main, it is very elegant:</span></font></span></div><div><font color="#000000" face="georgia, serif"><span style="line-height:18px"><span style="font-size:small"><br /></span></span></font></div><div><span style="color:rgb(0,0,0);line-height:18px"><font face="georgia, serif"><div><font face="'courier new', monospace"><span style="font-size:small">@ApplicationScoped</span></font></div><div><font face="'courier new', monospace"><b><span style="font-size:small">public class </span></b><span style="font-size:small">Consumer {</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small"><br /></span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    @Inject</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    @RandomInt</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    </span><b><span style="font-size:small">int </span></b><span style="font-size:small">random;</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small"><br /></span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    @Inject</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    @Parameters</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    List&lt;String&gt; parameters; // the String[] args for your main </span></font></div><div><font face="'courier new', monospace"><span style="font-size:small"><br /></span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    // listen for container event "Initialized"</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">    </span><b><span style="font-size:small">public void </span></b><span style="font-size:small">main(@Observes ContainerInitialized event) {</span></font></div><div><span style="font-family:courier new,monospace"><span style="font-size:small">        System.out.println("I'm a random number " + random);</span></span></div><div><font face="'courier new', monospace"><span style="font-size:small">    }</span></font></div><div><font face="'courier new', monospace"><span style="font-size:small">}</span></font></div></font></span></div><div><div><div><span style="font-size:small"><br /></span></div><div><span style="font-size:small">Whereas the </span><a href="http://bitbucket.org/dfa/mymvc/" target="_blank"><span style="font-size:small">second project is a simple MVC framework </span></a><span style="font-size:small">based on </span><a href="https://jsr311.dev.java.net/" target="_blank"><span style="font-size:small">JSR-311</span></a><span style="font-size:small"> (with </span><a href="https://jersey.dev.java.net/" target="_blank"><span style="font-size:small">Jersey </span></a><span style="font-size:small">as implementation) and, of course, weld-servlet.</span></div></div></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/learningjsr299" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/1272605686055212925" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/1272605686055212925" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/1272605686055212925" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>learningjsr299</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag="&quot;YDopeyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/2438657790723763411</id><published>2009-10-09T17:44:53.030Z</published><updated>2010-03-07T16:42:19.602Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-07T16:42:19.600Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Social coding: first steps</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><span style="color:rgb(41,48,59);font-family:Georgia,Times New Roman,sans-serif;line-height:19px">I've been using <a href="http://mercurial.selenic.com/" rel="nofollow" target="_blank">Mercurial</a>, a distributed revision control tool, for a few months now and it has changed the way I work since it is practical, simple, discoverable and well documented.<br /><br />In the past I was managing a server of my own, with manual backups on <a href="http://aws.amazon.com/s3/" target="_blank">Amazon S3</a>, but it was very time consuming: <a href="http://bitbucket.org/" rel="nofollow" target="_blank">bitbucket</a> comes to the rescue acting<b> </b>as mercurial hosting service <b>as well as </b>backup service. It integrates a wiki, a simple but effective bug management tool and some "social network" features like <b>follow </b>and <b>patch queue</b>.</span><br /></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/socialcodingfirststeps" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/2438657790723763411" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2438657790723763411" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2438657790723763411" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>socialcodingfirststeps</sites:pageName><sites:revision>6</sites:revision></entry><entry gd:etag="&quot;YD4peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/5804958632285893790</id><published>2010-02-06T14:10:12.034Z</published><updated>2010-03-07T16:39:35.471Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-07T16:39:35.469Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>pure Javascript Poisson Process Simulator</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><a href="/" />One of my last courses for my master degree in Computer Science is about the <a href="http://en.wikipedia.org/wiki/Poisson_process" rel="nofollow" target="_blank">Poisson Process</a> and Markov's Chains.  As my passion for programming devolves I've implemented two Poisson Process simulators using <a href="http://code.google.com/p/flot/" target="_blank">flot </a>(and thus <a href="http://jquery.org/" rel="nofollow" target="_blank">jQuery</a>) and <a href="http://bitbucket.org/dfa/lambdascript/" rel="nofollow" target="_blank">LambdaScript</a>, a functional Javascript library that I'm slowly evolving:<div><ul><li><a href="http://dfa.s3.amazonaws.com/poissonprocess/poisson.html" rel="nofollow" target="_blank">Poisson Simulator</a> </li><li><a href="http://dfa.s3.amazonaws.com/poissonprocess/composed-poisson.html" rel="nofollow" target="_blank">Composed Poisson Simulator</a></li></ul></div><div><br /></div><div>In the case you care clone the <a href="http://bitbucket.org/dfa/poisson-process/" rel="nofollow" target="_blank">mercurial repository at bitbucket</a>.</div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/purejavascriptpoissonprocesssimulator" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/5804958632285893790" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/5804958632285893790" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/5804958632285893790" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>purejavascriptpoissonprocesssimulator</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag="&quot;YD4peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/9108193344780456671</id><published>2010-02-02T09:22:29.205Z</published><updated>2010-02-02T09:37:50.315Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-02T09:37:50.313Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>2010: the year of HTML5?</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">Today Google send us a very informative mail about their plans for 2010:<div><br /></div><div><font face="georgia, serif"><i>"</i></font><span style="color:rgb(0,0,0);border-collapse:collapse"><font face="georgia, serif"><i>In order to continue to improve our products and deliver more sophisticated features and performance, we are harnessing some of the latest improvements in web browser technology.  This includes faster JavaScript processing and new standards like HTML5.  As a result, over the course of 2010, we will be phasing out support for Microsoft Internet Explorer 6.0 as well as other older browsers that are not supported by their own manufacturers."</i></font></span></div><div><span style="color:rgb(0,0,0);border-collapse:collapse"><font face="georgia, serif"><i><br /></i></font></span></div><div><font color="#000000"><span style="border-collapse:collapse"><font face="georgia, serif">Also Apple said that they will support HTML5 in place of flash. </font><span style="border-collapse:separate;font-size:12px;line-height:14px"><font face="georgia, serif">Recently, Microsoft has</font><div style="background-color:rgb(255,255,191);border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;height:auto;line-height:normal;text-align:left;display:inline;background-repeat:initial initial"><font face="georgia, serif"> </font></div><font face="georgia, serif">been engaging more and more with the HTML 5 community. </font></span></span></font></div><div><font color="#000000"><span style="border-collapse:collapse"><span style="border-collapse:separate;font-size:12px;line-height:14px"><font face="georgia, serif"><br /></font></span></span></font></div><div><font color="#000000"><span style="border-collapse:collapse"><span style="border-collapse:separate;font-size:12px;line-height:14px"><font face="georgia, serif">Is this the year of HTML5? I don't know but I'm already in charge reading <a href="http://diveintohtml5.org/" rel="nofollow" target="_blank">Dive Into HTML5</a> in my free spare time.<span style="line-height:normal;font-size:13px;border-collapse:collapse"> </span></font></span></span></font></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/2010theyearofhtml5" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/9108193344780456671" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/9108193344780456671" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/9108193344780456671" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>2010theyearofhtml5</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag="&quot;YD8peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/740111723003525042</id><published>2010-01-13T00:22:08.938Z</published><updated>2010-01-27T16:15:31.993Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-27T16:15:31.991Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>strtotime for Java5</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">About five months ago I've answered <a href="http://stackoverflow.com/questions/1268174/phps-strtotime-in-java" rel="nofollow" target="_blank">this question on stackoverflow</a>. Then I've created a<a href="https://bitbucket.org/dfa/strtotime/wiki/Home" rel="nofollow" target="_blank"> project on bitbucket</a>. Feel free to <a href="https://bitbucket.org/dfa/strtotime/src/" rel="nofollow" target="_blank">browse the source</a>, send patches, write documentation, and <b>please contribute whatever you can do make it better for everyone</b>. <div><span style="font-size:20px;font-weight:bold"><br /></span></div><div><span style="font-size:20px;font-weight:bold">Examples</span></div><div><span style="font-size:20px;font-weight:bold"><span style="color:rgb(68,68,68);font-family:Lucida Grande,Verdana,Arial,sans-serif;font-weight:normal;font-size:13px;border-collapse:collapse;line-height:16px"><pre style="line-height:1.4em!important;font-family:monospace!important;white-space:pre!important"><span><span style="font-family:Lucida Grande,Verdana,Arial,sans-serif;line-height:16px;white-space:normal;font-size:13px"><pre style="line-height:1.4em!important;font-family:monospace!important;white-space:pre!important"><span><b>import</b></span><b> </b><span style="color:rgb(85,85,85)"><b>static</b></span><b> </b><span><font color="#000000">com</font></span><span style="font-weight:bold"><font color="#000000">.</font></span><font color="#000000">humaorie</font><span style="font-weight:bold"><font color="#000000">.</font></span><font color="#000000">strtotime</font><span style="font-weight:bold"><font color="#000000">.</font></span><font color="#000000">strtotime</font><span style="font-weight:bold"><font color="#000000">.*</font>;</span>
</pre><div><span style="font-family:monospace;line-height:15px;font-size:11px;white-space:pre"><span>Date</span> <span>now</span> <span style="font-weight:bold">=</span> <span>strtotime</span><span style="font-weight:bold">(</span><font color="#FF0000">"now"</font><span style="font-weight:bold">);</span></span></div><div><span style="font-family:monospace;line-height:15px;font-size:11px;white-space:pre"><span style="font-weight:bold"><span style="font-weight:normal"><span>Date</span> <span>yesterday</span> <span style="font-weight:bold">=</span> <span>strtotime</span><span style="font-weight:bold">(</span><font color="#FF0000">"yesterday"</font><span style="font-weight:bold">);</span></span></span></span></div><div><span style="font-family:monospace;line-height:15px;font-size:11px;white-space:pre"><span style="font-weight:bold"><span style="font-weight:normal">Date dayBeforeYesterday = strtotime(<font color="#FF0000">"2 days"</font>); </span></span></span></div></span></span></pre></span></span></div><div><br /></div><div><br /></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/strtotimeforjava5" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/740111723003525042" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/740111723003525042" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/740111723003525042" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>strtotimeforjava5</sites:pageName><sites:revision>3</sites:revision></entry><entry gd:etag="&quot;YD8peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/7547128442757807443</id><published>2009-09-28T11:09:32.795Z</published><updated>2009-12-28T18:36:37.226Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-28T18:36:37.225Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Toscana web albums</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">I've just published two new web albums of my holydays in Toscana (<a href="http://en.wikipedia.org/wiki/Pienza" rel="nofollow" target="_blank">Pienza</a>, <a href="http://en.wikipedia.org/wiki/Montepulciano" rel="nofollow" target="_blank">Montepulciano</a>):<div><br /></div><div><a href="http://picasaweb.google.com/davide.angelocola/Toscana#" target="_blank">http://picasaweb.google.com/davide.angelocola/Toscana#</a></div><div><a href="http://picasaweb.google.com/davide.angelocola/Toscana2#" target="_blank">http://picasaweb.google.com/davide.angelocola/Toscana2#</a></div><div><br /></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/toscanawebalbums" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/7547128442757807443" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/7547128442757807443" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/7547128442757807443" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>toscanawebalbums</sites:pageName><sites:revision>3</sites:revision></entry><entry gd:etag="&quot;YD4peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/2129369763578674840</id><published>2009-12-27T00:08:41.005Z</published><updated>2009-12-27T12:14:27.024Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-27T12:14:27.023Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>RhinoRunner</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font face="georgia, serif"><span style="font-size:small">During my thesis work I'm slowly creating a </span></font><a href="http://bitbucket.org/dfa/lambdascript/" rel="nofollow" target="_blank"><font face="georgia, serif"><span style="font-size:small">very small functional JavaScript library</span></font></a><font face="georgia, serif"><span style="font-size:small">.  </span></font><span style="color:rgb(0,0,0);line-height:22px"><font face="georgia, serif"><span style="font-size:small">I write a </span></font><em><font face="georgia, serif"><span style="font-size:small">lot</span></font></em><font face="georgia, serif"><span style="font-size:small"> of JavaScript these days and I write many bugs too. I want a nice integration with my IDE of choices for running unit tests for JS (no, <b>HTML with tests inside is not a viable solution for me</b>):</span></font></span><div><font color="#000000" face="georgia, serif"><span style="font-size:small;line-height:22px"><br /></span></font></div><div><span style="color:rgb(0,0,0);line-height:22px"><font face="georgia, serif"><span style="font-size:small"><div style="display:block;text-align:left"><a href="http://www.humaorie.com/blog/rhinorunner/junit.png?attredirects=0" imageanchor="1"><img border="0" src="http://www.humaorie.com/_/rsrc/1261874220699/blog/rhinorunner/junit.png" /></a></div><div style="display:block;text-align:left"><br /></div><div style="display:block;text-align:left">Leveraring JUnit's API I created a very simple <a href="http://bitbucket.org/dfa/lambdascript/src/f8bb6e488ae3/src/test/java/com/humaorie/lambdascript/RhinoRunner.java" rel="nofollow" target="_blank">RhinoRunner</a>. It is very simple to use, yet not perfect:</div><div style="display:block;text-align:left"><font face="'courier new', monospace"><br /></font></div><div style="display:block;text-align:left"><div style="display:block;text-align:left"><b><font face="'courier new', monospace">import </font></b><font face="'courier new', monospace">org.junit.runner.RunWith;</font></div><div style="display:block;text-align:left"><font face="'courier new', monospace"><br /></font></div><div style="display:block;text-align:left"><font face="'courier new', monospace">@RunWith(RhinoRunner.class)</font></div><div style="display:block;text-align:left"><font face="'courier new', monospace">@JavaScriptSourceFile("src/test/javascript/LambdaScriptTest.js")</font></div><div style="display:block;text-align:left"><b><font face="'courier new', monospace">public </font></b><b><font face="'courier new', monospace">class </font></b><font face="'courier new', monospace">LambdaScriptTest {</font></div><div style="display:block;text-align:left"><font face="'courier new', monospace">}</font></div><div><br /></div></div></span></font></span></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/rhinorunner" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/2129369763578674840" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2129369763578674840" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2129369763578674840" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>rhinorunner</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag="&quot;YDopeyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/1502045479229009163</id><published>2009-11-30T23:55:57.615Z</published><updated>2009-12-27T11:49:44.040Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-27T11:49:44.039Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Iterable&lt;Java&gt; news;</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><div>I'm very excited about these news JSRs:</div><ul><li>Java EE 6 profiles</li><li>Servlet 3.0</li><li>Bean Validation (<a href="http://in.relation.to/Bloggers/BeanValidationValidationEverywhereEE6Edition" rel="nofollow" target="_blank">especially for JPA/JSF</a>)</li><li>CDI (Context and Dependency Injection)</li><li>JPA 2</li><li>JSF 2</li><li>no EAR archive (<a href="http://www.adam-bien.com/roller/abien/entry/is_java_ee_6_war" rel="nofollow" target="_blank">JEE 6 WAR is the new EAR</a>)</li></ul><div>and about these new versions (in preview as time of writing) of my Java toolchain:   </div><div><ul><li>Netbeans 6.8</li><li>maven 3.0</li><li>Glassfish v3 (JBoss AS 6 too) </li></ul></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/iteratornewsjava" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/1502045479229009163" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/1502045479229009163" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/1502045479229009163" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>iteratornewsjava</sites:pageName><sites:revision>6</sites:revision></entry><entry gd:etag="&quot;YD8peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/4485593269859917818</id><published>2009-04-19T15:30:48.560Z</published><updated>2009-12-27T00:51:00.174Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-27T00:51:00.174Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>java6</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font size="3">Latest cool additions you maybe not aware of:<br /></font><ul><li><font size="3"><a href="http://blogs.sun.com/michaelmcm/entry/http_server_api_in_java" rel="nofollow">http builtin server in JSE </a><br /></font></li><li><font size="3">new java plugin</font></li><li><font size="3">new deploy via javascript</font></li><li><a href="http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/" rel="nofollow"><font size="3">desktop API</font></a></li><li><font size="3"><a href="http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/" rel="nofollow">scripting API</a><br /></font></li><li><a href="http://#%20http://today.java.net/pub/a/today/2007/04/10/whats-new-in-jdbc-40.html" rel="nofollow"><font size="3">JDBC 4</font></a></li><li><font size="3">derby 10.5 and memory db</font></li></ul></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/java6" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/4485593269859917818" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/4485593269859917818" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/4485593269859917818" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>java6</sites:pageName><sites:revision>3</sites:revision></entry><entry gd:etag="&quot;YDkpeyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/6469339976969204672</id><published>2009-11-24T14:31:28.927Z</published><updated>2009-12-27T00:40:00.414Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-27T00:40:00.413Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Squares</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><p>Today I need a way to quickly generate the n-th square, iteratively. I'm wondering about several naive approaches, all involving at least one multiplication. Maybe we can try an alternative approach based on these results:</p>
<p>1 = 1 (the square of 1)</p>
<p>1 + 3 = 4 (the square of 2)</p>
<p>1 +  3 + 5 = 4 + 5 = 9 (the square of 3)</p>
<p>1 + 3 + 5 + 7 = 9 + 7 = 16 (the square of 4)</p>
<p>It is clear now that the sum of the first n odd itegers is n<sup>2</sup>. The proof is left to thes an exercise for the reader. I used this simple observation to write an iterator that uses no multiplications, only additions:</p>
<div><b>
<div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px"><span style="font-weight:normal"><font face="'courier new', monospace"><b>public </b><b>class </b>SquaresIterator <b>implements </b>Iterator&lt;Integer&gt;, Iterable&lt;Integer&gt; {</font></span>
<div><span style="font-weight:normal"><font face="'courier new', monospace"><br />
</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    <b>private </b><b>int </b>square = 0;</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    <b>private </b><b>int </b>nextOdd = 1;</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace"><br />
</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    @Override</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    <b>public </b>boolean hasNext() {</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">        <b>return </b>true;</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    }</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace"><br />
</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    @Override</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    <b>public </b>Integer next() {</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">  <font color="#FF0000">      square += nextOdd;</font></font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace"><font color="#FF0000">        nextOdd += 2;</font></font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">        <b>return </b>square;</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    }</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace"><br />
</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    @Override</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    <b>public </b><b>void </b>remove() {</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">        <b>throw </b><b>new </b>UnsupportedOperationException("Not supported.");</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    }</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace"><br />
</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    @Override</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    <b>public </b>Iterator&lt;Integer&gt; iterator() {</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">        <b>return </b><b>this</b>;</font></span></div>
<div><span style="font-weight:normal"><font face="'courier new', monospace">    }</font></span></div>
<div><font face="'courier new', monospace"><span style="font-weight:normal">}</span></font></div>
<div><font face="'courier new', monospace"><span style="font-weight:normal"><br />
</span></font></div>
</blockquote><span style="font-weight:normal">the testcase:</span></div><div><span style="font-weight:normal"><font face="'courier new', monospace"><br /></font></span></div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><span style="font-weight:normal"><font face="'courier new', monospace"><b>for </b>(<b>int </b>square : <b>new </b>SquaresIterator()) {</font></span><div><span style="font-weight:normal"><font face="'courier new', monospace">    System.out.println(square);</font></span></div><div><span style="font-weight:normal"><font face="'courier new', monospace">} </font></span></div><div><font face="'courier new', monospace"><span style="font-weight:normal"><br /></span></font></div></blockquote><span style="font-weight:normal"><font face="georgia, serif">print:</font></span></div><div><font face="georgia, serif"><span style="font-weight:normal"><br /></span></font></div><div><font face="georgia, serif"><span style="font-weight:normal"><div><font face="'courier new', monospace">1</font></div><div><font face="'courier new', monospace">4</font></div><div><font face="'courier new', monospace">9</font></div><div><font face="'courier new', monospace">16</font></div><div><font face="'courier new', monospace">25</font></div><div><font face="'courier new', monospace">36</font></div><div><font face="'courier new', monospace">49</font></div><div><font face="'courier new', monospace">64</font></div><div><font face="'courier new', monospace">81</font></div><div><font face="'courier new', monospace">100</font></div><div><font face="'courier new', monospace">121</font></div><div><br /></div></span></font></div></b>

</div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/squares" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/6469339976969204672" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6469339976969204672" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6469339976969204672" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>squares</sites:pageName><sites:revision>5</sites:revision></entry><entry gd:etag="&quot;YD8peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/2777905092612281588</id><published>2009-10-29T10:32:29.130Z</published><updated>2009-11-24T15:23:47.172Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-24T15:23:47.171Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>my CV on stackoverflow</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><font face="georgia, serif"><span style="font-size:medium"><div><span style="font-family:georgia;font-size:13px"><div><span style="line-height:20px"><font face="georgia, serif"><i><font color="#000000"><span style="font-size:small">"Unlike traditional resumes, a Stack Overflow CV gives hiring managers insight into a developer’s real work and skills instead of just a list of acronyms."</span></font></i></font></span></div></span></div><div><span style="font-size:small"><br /></span></div><div><span style="font-family:georgia"><font face="georgia, serif"><span style="font-size:small">Another cool service from the guys of stackoverflow: </span></font><a href="http://careers.stackoverflow.com" rel="nofollow" target="_blank"><font face="georgia, serif"><span style="font-size:small">careers</span></font></a><font face="georgia, serif"><span style="font-size:small">.  </span><span style="color:rgb(0,0,0);font-family:georgia;line-height:20px"><font face="georgia, serif"><span style="font-size:small">In the case you care </span></font><a href="http://careers.stackoverflow.com/dfa" rel="nofollow" target="_blank"><font face="georgia, serif"><span style="font-size:small">here is my CV</span></font></a><font face="georgia, serif"><span style="font-size:small">.</span></font></span></font></span></div></span></font><div><font color="#000000" face="Arial, Helvetica, sans-serif" size="5"><span style="font-size:17px;line-height:20px"><br /></span></font></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/mycvonstackoverflow" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/2777905092612281588" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2777905092612281588" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2777905092612281588" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>mycvonstackoverflow</sites:pageName><sites:revision>3</sites:revision></entry><entry gd:etag="&quot;YD8peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/8776172858033159990</id><published>2009-11-11T18:03:35.082Z</published><updated>2009-11-22T09:49:59.437Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-22T09:49:59.436Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Migration to bitbucket.org complete</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><span style="font-size:small">I've just</span><a href="http://www.humaorie.com/blog/socialcodingfirststeps" target="_blank"><span style="font-size:small"> terminated migration to bitbucket.org</span></a><span style="font-size:small">. </span><div><span style="font-size:small"><br /></span></div><div><span style="font-size:small">I lost some </span><b><span style="font-size:small">perl scripts</span></b><span style="font-size:small"> and</span><b><span style="font-size:small"> boehm gc sample programs</span></b><span style="font-size:small"> during migration but I hope to restore them somehow. Howe<font face="georgia, serif">ver most of the </font></span><span style="color:rgb(0,0,0);font-family:monospace"><span style="font-size:small"><font face="georgia, serif"><i>publishable </i></font></span><span style="font-family:georgia;color:rgb(51,51,51)"><span style="font-size:small"><font face="georgia, serif">code that</font> I produced since 2004 is there, ready to be cloned :-)</span></span></span></div><div><font face="georgia, serif"><span style="font-size:small"><b><span style="font-weight:normal"><br /></span></b></span></font></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/migrationtobitbucketorgcomplete" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/8776172858033159990" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/8776172858033159990" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/8776172858033159990" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>migrationtobitbucketorgcomplete</sites:pageName><sites:revision>3</sites:revision></entry><entry gd:etag="&quot;YD4peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/4079292849414330759</id><published>2009-08-13T00:09:25.671Z</published><updated>2009-10-13T17:47:18.142Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-13T17:47:18.141Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>PHP's strtotime() reimplemented in Java</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">I've implemented <a href="http://it2.php.net/strtotime" rel="nofollow" style="color:rgb(85,26,139)">strtotime</a> in Java (in about 15 minutes) in order to answer <a href="http://stackoverflow.com/questions/1268174/phps-strtotime-in-java/1268380#1268380" rel="nofollow" style="color:rgb(85,26,139)">this question at stackoverflow.com</a>. <div><br /></div><div><b>EDIT</b></div><div><br /></div><div>I've also published it in a<a href="http://bitbucket.org/dfa/strtotime" target="_blank"> public repository at bitbucket</a>. </div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/phpsstrtotimereimplementedinjava-1" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/4079292849414330759" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/4079292849414330759" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/4079292849414330759" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>phpsstrtotimereimplementedinjava-1</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag="&quot;YD4peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/2472795086996268824</id><published>2009-10-11T21:53:21.592Z</published><updated>2009-10-11T22:02:23.888Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-11T22:02:23.887Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Duck typing... in Java</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><span style="color:rgb(0,0,0);font-family:Georgia;font-size:19px"><div style="margin-top:0px;margin-bottom:0px"><span style="font-size:small">A quick hack in Java, it comes handy when supporting old Java code (pre Java 5, where </span><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Closeable.html" rel="nofollow" target="_blank"><span style="font-size:small">Closeable</span></a><span style="font-size:small"> is missing):</span></div><div style="margin-top:0px;margin-bottom:0px"><span style="font-size:small"><br /></span></div><div style="margin-top:0px;margin-bottom:0px"><font><font face="'courier new', monospace"><b><span style="font-size:small">public </span></b><b><span style="font-size:small">static </span></b><b><span style="font-size:small">void </span></b><span style="font-size:small">universalClose(Object o) {</span></font></font></div><div style="margin-top:0px;margin-bottom:0px"><font><font face="'courier new', monospace"><span style="font-size:small">    </span><b><span style="font-size:small">try </span></b><span style="font-size:small">{</span></font></font></div><div style="margin-top:0px;margin-bottom:0px"><font><font face="'courier new', monospace"><span style="font-size:small">        o.getClass().getMethod("close", null).invoke(o, null);</span></font></font></div><div style="margin-top:0px;margin-bottom:0px"><font><font face="'courier new', monospace"><span style="font-size:small">    } </span><b><span style="font-size:small">catch </span></b><span style="font-size:small">(Exception e) {</span></font></font></div><div style="margin-top:0px;margin-bottom:0px"><font><font face="'courier new', monospace"><span style="font-size:small">        </span><b><span style="font-size:small">throw </span></b><b><span style="font-size:small">new </span></b><span style="font-size:small">IllegalArgumentException("no close() method");</span></font></font></div><div style="margin-top:0px;margin-bottom:0px"><font><font face="'courier new', monospace"><span style="font-size:small">    }</span></font></font></div><div style="margin-top:0px;margin-bottom:0px"><font><font face="'courier new', monospace"><span style="font-size:small">}</span></font></font></div><div style="margin-top:0px;margin-bottom:0px"><font><span style="font-size:small">    </span></font></div><div style="margin-top:0px;margin-bottom:0px"><span style="font-size:small">testcase:</span></div><div style="margin-top:0px;margin-bottom:0px"><font><span style="font-size:small">    </span></font></div><div style="margin-top:0px;margin-bottom:0px"><font><font face="'courier new', monospace"><b><span style="font-size:small">public </span></b><b><span style="font-size:small">static </span></b><b><span style="font-size:small">void </span></b><span style="font-size:small">main(String[] args) {</span></font></font></div><div style="margin-top:0px;margin-bottom:0px"><font><font face="'courier new', monospace"><span style="font-size:small">    Socket socket = new Socket();</span></font></font></div><div style="margin-top:0px;margin-bottom:0px"><font><font face="'courier new', monospace"><span style="font-size:small">    universalClose(socket);</span></font></font></div><div style="margin-top:0px;margin-bottom:0px"><font><font face="'courier new', monospace"><span style="font-size:small">}</span></font></font></div></span></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/ducktypinginjava" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/2472795086996268824" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2472795086996268824" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2472795086996268824" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>ducktypinginjava</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag="&quot;YD8peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/6190046563970205567</id><published>2009-09-28T13:14:46.696Z</published><updated>2009-10-07T10:15:51.638Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-07T10:15:51.637Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>My life on the clouds...</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">Since early 2008 I progressively moved my projects, photos, etc  into dedicated web based applications. I first migrated my emails accounts to gmail, using it as mail hub then I moved:<div><ul><li>contacts on <a href="http://www.google.com/contacts" target="_blank">google contacts</a></li><li>calendar on <a href="http://www.google.com/calendar" target="_blank">google calendard</a> (synced with my samsung omnia) </li><li>bookmarks on <a href="http://delicious.com/" rel="nofollow" target="_blank">delicious</a></li><li>photos on <a href="http://picasaweb.google.com/" target="_blank">picasaweb</a> (upgraded to 10 Gb account)</li><li>(some) documents, spreadsheets, presentations on <a href="http://docs.google.com/" target="_blank">google docs</a></li><li>backups, my maven repository among other stuff on <a href="http://aws.amazon.com/s3/" rel="nofollow" target="_blank">Amazon S3</a></li></ul><div>Today I'm starting to migrate my mercurial repositories to <a href="http://bitbucket.org/" rel="nofollow" target="_blank">bitbucket</a>. My projects are the last bit of data that I was managing locally, using apache httpd + hg webdir, and copying them at regular intervals to  S3. </div><div><br /></div><div>My<b> life goes on the clouds</b>!</div></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/mylifeontheclouds" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/6190046563970205567" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6190046563970205567" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6190046563970205567" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>mylifeontheclouds</sites:pageName><sites:revision>3</sites:revision></entry><entry gd:etag="&quot;YDgpeyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/3728438828053275389</id><published>2009-09-01T14:16:21.630Z</published><updated>2009-09-01T14:33:12.838Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-01T14:33:12.837Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Pro JavaScript Design Patterns Review</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr">Lately I'm involved in a project using Javascript as main programming language, with Java on GAE as server side. Javascript is not a toy language as I said for years: it has evolved in a very nice and higly productive language for programming The Web. Today I finished reading my latest programming book: "Pro JavaScript Design Pattern". It is a very good book, with great examples. It is a <b>must</b> reading if you are a JavaScript programmer with no prior knowledge about design patterns and it is a very good book for those who knowns design patterns but not some advanced idioms in JavaScript (like me).<div><br /></div><div><b><br /></b></div><div><div><div><img src="http://www.google.com/chart?chc=sites&amp;cht=d&amp;chdp=sites&amp;chl=%5B%5BGoogle+Gadget'%3D16'f%5Cbf%5Chv'a%5C%3D58'0'%3D57'0'dim'%5Cbox1'b%5CDBD9BB'fC%5CDBD9BB'eC%5C15'sk'%5C%5B%22Include+gadget+(iframe)%22'%5Dh'a%5CV%5C%3D12'f%5Cbf%5C%5DV%5Cta%5C%3D59'%3D0'%3D58'%3D237'dim'%5C%3D59'%3D0'%3D58'%3D237'vdim'%5Cbox1'b%5Cva%5CFFFEF0'fC%5CDBD9BB'eC%5Csites_gadget'i%5Chv-0-0'a%5C%5Do%5CLauto'f%5C&amp;sig=LU1NEQnbmpqJvQ1jKeUJ7ovAjbk" data-igsrc="http://53.gmodules.com/ig/ifr?mid=53&amp;synd=trogedit&amp;url=http%3A%2F%2Fhosting.gmodules.com%2Fig%2Fgadgets%2Ffile%2F106581606564100174314%2Fiframe.xml&amp;up_iframeURL=http%3A%2F%2Frcm.amazon.com%2Fe%2Fcm%3Ft%3Dhumaorie-20%26o%3D1%26p%3D8%26l%3Das1%26asins%3D159059908X%26fc1%3D000000%26IS2%3D1%26lt1%3D_blank%26m%3Damazon%26lc1%3D0000FF%26bc1%3D000000%26bg1%3DFFFFFF%26f%3Difr&amp;up_scroll=auto&amp;h=240&amp;w=120" data-type="ggs-gadget" data-props="align:left;borderTitle:Include gadget (iframe);height:240;igsrc:http#58//53.gmodules.com/ig/ifr?mid=53&amp;synd=trogedit&amp;url=http%3A%2F%2Fhosting.gmodules.com%2Fig%2Fgadgets%2Ffile%2F106581606564100174314%2Fiframe.xml&amp;up_iframeURL=http%3A%2F%2Frcm.amazon.com%2Fe%2Fcm%3Ft%3Dhumaorie-20%26o%3D1%26p%3D8%26l%3Das1%26asins%3D159059908X%26fc1%3D000000%26IS2%3D1%26lt1%3D_blank%26m%3Damazon%26lc1%3D0000FF%26bc1%3D000000%26bg1%3DFFFFFF%26f%3Difr&amp;up_scroll=auto&amp;h=240&amp;w=120;mid:53;scrolling:no;showBorder:false;showBorderTitle:null;spec:http#58//hosting.gmodules.com/ig/gadgets/file/106581606564100174314/iframe.xml;up_iframeURL:http#58//rcm.amazon.com/e/cm?t=humaorie-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=159059908X&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr;up_scroll:auto;view:default;width:120;wrap:true;" width="120" height="240" style="display:inline;float:left;margin:5px 20px 5px 0;" class="igm" /><span style="font-weight:bold">PROs  </span></div><div><ul><li>all major JavaScript idioms are well explained, such as prototypal and classic inheritance and scopes; <b>a killer feature</b>  </li><li>great examples</li><li>several design patterns are described: Singleton, Factory, Bridge, Composite, Facade, Adapter, Decorator, Flyweight, Proxy, Observer, Command and Chain of Responsability</li></ul><div><b>CONs</b></div><div><ul><li>no diagrams, very few images</li><li>code formatting could be better</li></ul></div></div><div><br /></div></div></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/projavascriptdesignpatternsreview" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/3728438828053275389" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/3728438828053275389" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/3728438828053275389" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>projavascriptdesignpatternsreview</sites:pageName><sites:revision>4</sites:revision></entry><entry gd:etag="&quot;YDgpeyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/6433223235256267162</id><published>2009-08-14T13:24:32.568Z</published><updated>2009-08-15T16:31:07.188Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-15T16:31:07.187Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Logitech Illuminated Keyboard</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="sites-layout-name-right-sidebar-hf sites-layout-vbox"><div class="sites-layout-tile sites-tile-name-header"><div dir="ltr">The Best Keyboard Ever (check also <a href="http://www.humaorie.com/blog/bestpointingdeviceever">The Best Pointing Device Ever</a>)</div></div><table cellspacing="0" class="sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><span style="color:rgb(0,0,0)"><font face="georgia, serif"><div>I can't rave enough about this minimalistic but cool keyboard. From the moment I took it out of the package (before the lunch), this keyboard screamed <b>quality.</b> The keyboard I replaced was a low cost keyboard that I use since 2004 (after my first notebook). </div></font></span><div><div><br /></div><div><div><span style="color:rgb(0,0,0)"><font face="georgia, serif">T</font><font face="georgia, serif">h</font><font face="georgia, serif">i</font><font face="georgia, serif">s</font><font face="georgia, serif"> </font><font face="georgia, serif">k</font><font face="georgia, serif">e</font><font face="georgia, serif">yboard is very thin with a very minimalistic design. The touch is soft and easy, I'm  loving it! </font></span></div><div><br /></div><div><span style="font-family:verdana"><b>PROS</b></span></div><div><span style="font-family:verdana"><ul><li>Very nice key layout with numpad </li><li>4-levels of illumination  </li><li>Extremely thin (9 mm)</li><li>Stylish looks  </li><li>Quality construction </li><li>3 year warranty  </li></ul></span></div><div><span style="font-family:verdana"><br /><b>CONS</b> <ul><li>Expensive (<b>but the cost is worthy</b>)</li><li>No USB ports</li><li>I bought it from logitech.com: no option for US layout, only UK (anyway it is better than Italian layout)</li></ul><div><div style="text-align:left"><br /></div><br /></div><div><br /></div></span></div></div></div></div></td><td class="sites-layout-tile sites-tile-name-content-2 sites-canvas-sidebar"><div dir="ltr"><br /><div><span style="font-family:verdana"><img src="http://www.google.com/chart?chc=sites&amp;cht=d&amp;chdp=sites&amp;chl=%5B%5BGoogle+Gadget'%3D16'f%5Cbf%5Chv'a%5C%3D58'0'%3D57'0'dim'%5Cbox1'b%5CDBD9BB'fC%5CDBD9BB'eC%5C15'sk'%5C%5B%22Include+gadget+(iframe)%22'%5Dh'a%5CV%5C%3D12'f%5Cbf%5C%5DV%5Cta%5C%3D59'%3D0'%3D58'%3D237'dim'%5C%3D59'%3D0'%3D58'%3D237'vdim'%5Cbox1'b%5Cva%5CFFFEF0'fC%5CDBD9BB'eC%5Csites_gadget'i%5Chv-0-0'a%5C%5Do%5CLauto'f%5C&amp;sig=LU1NEQnbmpqJvQ1jKeUJ7ovAjbk" data-igsrc="http://240.gmodules.com/ig/ifr?mid=240&amp;synd=trogedit&amp;url=http%3A%2F%2Fhosting.gmodules.com%2Fig%2Fgadgets%2Ffile%2F106581606564100174314%2Fiframe.xml&amp;up_iframeURL=http%3A%2F%2Frcm.amazon.com%2Fe%2Fcm%3Ft%3Dhumaorie-20%26o%3D1%26p%3D8%26l%3Das1%26asins%3DB001F51G16%26fc1%3D000000%26IS2%3D1%26lt1%3D_blank%26m%3Damazon%26lc1%3D0000FF%26bc1%3D000000%26bg1%3DFFFFFF%26f%3Difr&amp;up_scroll=auto&amp;h=240&amp;w=120" data-type="ggs-gadget" data-props="align:left;height:240;igsrc:http#58//240.gmodules.com/ig/ifr?mid=240&amp;synd=trogedit&amp;url=http%3A%2F%2Fhosting.gmodules.com%2Fig%2Fgadgets%2Ffile%2F106581606564100174314%2Fiframe.xml&amp;up_iframeURL=http%3A%2F%2Frcm.amazon.com%2Fe%2Fcm%3Ft%3Dhumaorie-20%26o%3D1%26p%3D8%26l%3Das1%26asins%3DB001F51G16%26fc1%3D000000%26IS2%3D1%26lt1%3D_blank%26m%3Damazon%26lc1%3D0000FF%26bc1%3D000000%26bg1%3DFFFFFF%26f%3Difr&amp;up_scroll=auto&amp;h=240&amp;w=120;mid:240;spec:http#58//hosting.gmodules.com/ig/gadgets/file/106581606564100174314/iframe.xml;up_iframeURL:http#58//rcm.amazon.com/e/cm?t=humaorie-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=B001F51G16&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr;up_scroll:auto;width:120;" width="120" height="240" style="display:block;text-align:left;margin-right:auto;" class="igm" /></span></div></div></td></tr></tbody></table><div class="sites-layout-tile sites-tile-name-footer sites-layout-empty-tile"><div dir="ltr"><br /></div></div></div></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/logitechilluminatedkeyboard" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/6433223235256267162" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6433223235256267162" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6433223235256267162" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>logitechilluminatedkeyboard</sites:pageName><sites:revision>4</sites:revision></entry><entry gd:etag="&quot;YDkpeyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/1771342680526368149</id><published>2009-04-20T21:28:14.668Z</published><updated>2009-08-15T16:10:42.419Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-15T16:10:42.418Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Best Pointing Device Ever</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><div style="display:block;margin-top:5px;margin-right:auto;margin-bottom:0pt;text-align:left"><br />
<table bordercolor="#888888" cellspacing="0" style="border-color:rgb(136,136,136);border-collapse:collapse">
<tbody>
<tr>
<td style="width:60px"> <img border="0" src="http://www.humaorie.com/_/rsrc/1241253821081/blog/bestpointingdeviceever/414BUQX%2BXSL._SL500_AA280_.jpg" /></td>
</tr>
<tr>
<td style="width:60px"> <img border="0" src="http://www.humaorie.com/_/rsrc/1241253821081/blog/bestpointingdeviceever/414BUQX%2BXSL._SL500_AA280_.jpg" /></td>
</tr>
<tr>
<td style="width:60px"> <img border="0" src="http://www.humaorie.com/_/rsrc/1241253821081/blog/bestpointingdeviceever/414BUQX%2BXSL._SL500_AA280_.jpg" /></td>
</tr>
</tbody>
</table>
<font size="3"><br />
That is not a cut-and-paste error... these are my <a href="http://www.logitech.com/index.cfm/mice_pointers/trackballs/devices/166&amp;cl=US,EN" rel="nofollow">Logitech Trackman</a>: one for my notebook, one for my desktop and one as "backup".  I'm using this devices since 2003... no complaints!<br />
<br />
Just one interesting note. <a href="http://en.wikipedia.org/wiki/Trackball" rel="nofollow">Wikipedia </a>says:</font>
<br />
<br />
<i><font size="3">Trackballs are also preferred by many professional gamers, who value their consistency highly. <span style="background-color:rgb(255,255,0)">A trackball requires no mousepad</span> and enables the player to aim swiftly (in first person shooters). </font></i><font size="3"><br />
</font></div><div style="display:block;margin-top:5px;margin-right:auto;margin-bottom:0pt;text-align:left"><font size="4"><span style="font-size:16px"><i><br /></i></span></font></div><div style="display:block;margin-top:5px;margin-right:auto;margin-bottom:0pt;text-align:left"><font size="4"><span style="font-size:16px"><i><img src="http://www.google.com/chart?chc=sites&amp;cht=d&amp;chdp=sites&amp;chl=%5B%5BGoogle+Gadget'%3D16'f%5Cbf%5Chv'a%5C%3D58'0'%3D57'0'dim'%5Cbox1'b%5CDBD9BB'fC%5CDBD9BB'eC%5C15'sk'%5C%5B%22Include+gadget+(iframe)%22'%5Dh'a%5CV%5C%3D12'f%5Cbf%5C%5DV%5Cta%5C%3D59'%3D0'%3D58'%3D237'dim'%5C%3D59'%3D0'%3D58'%3D237'vdim'%5Cbox1'b%5Cva%5CFFFEF0'fC%5CDBD9BB'eC%5Csites_gadget'i%5Chv-0-0'a%5C%5Do%5CLauto'f%5C&amp;sig=LU1NEQnbmpqJvQ1jKeUJ7ovAjbk" data-igsrc="http://25.gmodules.com/ig/ifr?mid=25&amp;synd=trogedit&amp;url=http%3A%2F%2Fhosting.gmodules.com%2Fig%2Fgadgets%2Ffile%2F106581606564100174314%2Fiframe.xml&amp;up_iframeURL=http%3A%2F%2Frcm.amazon.com%2Fe%2Fcm%3Ft%3Dhumaorie-20%26o%3D1%26p%3D8%26l%3Das1%26asins%3DB00005NIMJ%26fc1%3D000000%26IS2%3D1%26lt1%3D_blank%26m%3Damazon%26lc1%3D0000FF%26bc1%3D000000%26bg1%3DFFFFFF%26f%3Difr&amp;up_scroll=no&amp;h=240&amp;w=120" data-type="ggs-gadget" data-props="align:left;height:240;igsrc:http#58//25.gmodules.com/ig/ifr?mid=25&amp;synd=trogedit&amp;url=http%3A%2F%2Fhosting.gmodules.com%2Fig%2Fgadgets%2Ffile%2F106581606564100174314%2Fiframe.xml&amp;up_iframeURL=http%3A%2F%2Frcm.amazon.com%2Fe%2Fcm%3Ft%3Dhumaorie-20%26o%3D1%26p%3D8%26l%3Das1%26asins%3DB00005NIMJ%26fc1%3D000000%26IS2%3D1%26lt1%3D_blank%26m%3Damazon%26lc1%3D0000FF%26bc1%3D000000%26bg1%3DFFFFFF%26f%3Difr&amp;up_scroll=no&amp;h=240&amp;w=120;mid:25;spec:http#58//hosting.gmodules.com/ig/gadgets/file/106581606564100174314/iframe.xml;up_iframeURL:http#58//rcm.amazon.com/e/cm?t=humaorie-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=B00005NIMJ&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr;up_scroll:no;width:120;" width="120" height="240" style="display:block;text-align:left;margin-right:auto;" class="igm" /><br /><br /></i></span></font></div>
</div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/bestpointingdeviceever" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/1771342680526368149" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/1771342680526368149" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/1771342680526368149" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>bestpointingdeviceever</sites:pageName><sites:revision>5</sites:revision></entry><entry gd:etag="&quot;YD4peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/6926022734013282280</id><published>2009-05-03T15:23:35.975Z</published><updated>2009-08-13T00:18:49.553Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-13T00:18:49.552Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>I've joined!</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><span style="border-collapse:separate;color:rgb(102,102,102);font-family:Arial;font-size:20px;font-weight:bold;letter-spacing:-1px;line-height:20px"><br />
</span>
<div><span style="border-collapse:separate;color:rgb(102,102,102);font-family:Arial;font-size:20px;font-weight:bold;letter-spacing:-1px;line-height:20px"><span style="color:rgb(0,0,0);font-size:15px;font-weight:normal;letter-spacing:normal">
<p style="margin-top:0px;margin-right:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;outline-width:0px;outline-style:initial;outline-color:initial;font-size:100%;vertical-align:baseline;background-repeat:initial;background-color:transparent;margin-bottom:20px"><a href="http://www.antiifcampaign.com/" rel="nofollow" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;outline-width:0px;outline-style:initial;outline-color:initial;font-size:100%;vertical-align:baseline;background-repeat:initial;background-color:transparent;color:rgb(85,119,153)"><img alt="I have joined Anti-IF Campaign" height="60" src="http://www.antiifcampaign.com/_export/anti-if-campaign-ive-joined.gif" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;outline-width:0px;outline-style:initial;outline-color:initial;font-size:100%;vertical-align:baseline;background-repeat:initial;background-color:transparent;display:block" width="120" /></a></p>
</span></span></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/ivejoined" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/6926022734013282280" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6926022734013282280" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6926022734013282280" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>ivejoined</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag="&quot;YD4peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/2845896704976056167</id><published>2009-05-20T07:57:01.841Z</published><updated>2009-08-13T00:04:48.001Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-13T00:04:48.000Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>Userfly.com: instantaneuos web usability studies</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><span style="font-size:medium"><span style="font-style:italic">"<a href="http://userfly.com/">userfly.com</a></span><span style="font-style:italic"> provides by recording user visits and letting you play them back to see every mouse movement, click, and form interaction. Conducting a user study doesn't have to be expensive or a logistic nightmare. With userfly.com you can perform simple and cheap user testing with your real users."</span></span><div><span style="font-size:16px"><br /></span></div><div><span style="font-size:16px">This is the kind of web that I like. Awesome. Check out the video!</span></div><div><span style="font-size:16px"><br /></span></div></div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/userflycominstantaneuoswebusabilitystudies" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/2845896704976056167" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2845896704976056167" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/2845896704976056167" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>userflycominstantaneuoswebusabilitystudies</sites:pageName><sites:revision>2</sites:revision></entry><entry gd:etag="&quot;YD0peyY.&quot;"><id>http://sites.google.com/feeds/content/site/humaorie/1133210604606753912</id><published>2009-06-06T18:05:50.777Z</published><updated>2009-06-06T18:07:14.637Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-06T18:07:14.567Z</app:edited><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/sites/2008#announcement" label="announcement" /><title>I passed 6th grade sed ed</title><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellspacing="0" class="sites-layout-name-one-column sites-layout-hbox"><tbody><tr><td class="sites-layout-tile sites-tile-name-content-1"><div dir="ltr"><a href="http://www.sextoys.org/sex_ed/"><img alt="Could you pass 6th grade sex ed?" src="http://www.sextoys.org/sex_ed/img/badges/a.png" /></a><p>Created by <a href="http://www.sextoys.org">Sex Toys.org</a></p>
</div></td></tr></tbody></table></div></content><link rel="http://schemas.google.com/sites/2008#parent" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/6123962644688335633" /><link rel="alternate" type="text/html" href="http://sites.google.com/site/humaorie/blog/ipassed6thgradeseded" /><link rel="http://schemas.google.com/sites/2008#revision" type="application/atom+xml" href="http://sites.google.com/feeds/revision/site/humaorie/1133210604606753912" /><link rel="self" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/1133210604606753912" /><link rel="edit" type="application/atom+xml" href="http://sites.google.com/feeds/content/site/humaorie/1133210604606753912" /><author><name>Davide Angelocola</name><email>davide.angelocola@gmail.com</email></author><sites:pageName>ipassed6thgradeseded</sites:pageName><sites:revision>1</sites:revision></entry></feed>

