<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0EHQHs-fip7ImA9WhVUGUU.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125</id><updated>2012-05-26T00:47:11.556+01:00</updated><category term="Windows Phone" /><category term="C#" /><category term="Python" /><category term="Life" /><category term="University" /><category term="Certification" /><category term="DotNetToscana" /><category term="Discussion" /><category term="Windows Installer" /><category term="TopCoder" /><category term="Debugging" /><category term="Gadgeteer" /><category term="Events" /><category term="Book" /><category term="Robotics" /><category term="Java" /><category term="Citrix" /><category term="Algorithms" /><category term="Event" /><category term="Visual Studio 2010" /><category term="Robotics Algorithms" /><category term=".NET Micro Framework" /><title type="text">Andrea Angella Blog</title><subtitle type="html">Infinite Passion for Software Development</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://andrea-angella.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/AndreaAngella-OfficialBlog" /><feedburner:info uri="andreaangella-officialblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>AndreaAngella-OfficialBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;A0EHQHs9eSp7ImA9WhVUGUU.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-1241825950795686574</id><published>2012-05-26T00:47:00.000+01:00</published><updated>2012-05-26T00:47:11.561+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-26T00:47:11.561+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="Debugging" /><title>.NET Debugging in Visual Studio 2010</title><content type="html">&lt;div style="text-align: justify;"&gt;
Everyone involved with .NET programming know how to use the basics of the powerful debugger available in Visual Studio 2010. It is pretty easy to use and very useful. However, very few people explore all the tools available and sometimes you can be very surprised to discover something truly amazing that you was completely unaware of. This post want introduce some of that things.&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Show Next Statement&lt;/span&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
When you are in the middle of a debugging session it can be easy to get lost. You can switch back to the next statement using the "Show Next Statement" option.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-91UBHA88Jdg/T7wSy5W7FQI/AAAAAAAACHM/ts5H4Do3dCI/s1600/Show+Next+Statement.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="82" src="http://4.bp.blogspot.com/-91UBHA88Jdg/T7wSy5W7FQI/AAAAAAAACHM/ts5H4Do3dCI/s400/Show+Next+Statement.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;b&gt;Debugging&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;.NET Code&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: -webkit-auto;"&gt;
You can debug the .NET Framework code. You need to check "Enable .NET Framework source stepping" and "Enable source server support." in the debugging options and you need to add a specific symbol file server.&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-ES2if3uV5oU/T7wfKY1fACI/AAAAAAAACHw/RUqaIQEUs-U/s1600/net+debugging.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="426" src="http://3.bp.blogspot.com/-ES2if3uV5oU/T7wfKY1fACI/AAAAAAAACHw/RUqaIQEUs-U/s640/net+debugging.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-CoYqKx4KFsY/T7wdxVCscwI/AAAAAAAACHo/9FPlMwm3dnQ/s1600/2012-05-22_234417.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="426" src="http://1.bp.blogspot.com/-CoYqKx4KFsY/T7wdxVCscwI/AAAAAAAACHo/9FPlMwm3dnQ/s640/2012-05-22_234417.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Pinning the Data Tips&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Everyone know that when you hold the mouse on a variable during the debugging you can explore the value inside a data tip. However, nobody knows (me included), that this data tip can be pinned. This is very useful in some circumstances!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-iLOx7PDFmqQ/T8ANK7bpuOI/AAAAAAAACIM/C6jUBhPJzk0/s1600/2012-05-25_234923.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://2.bp.blogspot.com/-iLOx7PDFmqQ/T8ANK7bpuOI/AAAAAAAACIM/C6jUBhPJzk0/s400/2012-05-25_234923.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-o1bF1cKfwPo/T8ANMFIPqcI/AAAAAAAACIU/V74JEu-OTeg/s1600/2012-05-25_235011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://3.bp.blogspot.com/-o1bF1cKfwPo/T8ANMFIPqcI/AAAAAAAACIU/V74JEu-OTeg/s400/2012-05-25_235011.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Immediate Windows and Intellisense&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="text-align: justify;"&gt;&lt;br /&gt;A another important thing to consider is the immediate windows. You can run complex code and update variables during the debugging session and there is full &lt;/span&gt;Intellisense&lt;span style="text-align: justify;"&gt; support (using &lt;/span&gt;CTRL&lt;span style="text-align: justify;"&gt; + SPACE to activate it).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-DjRJF9cNcwQ/T8AOWW53UNI/AAAAAAAACIc/fhiH_6IVgUs/s1600/2012-05-25_235717.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="276" src="http://4.bp.blogspot.com/-DjRJF9cNcwQ/T8AOWW53UNI/AAAAAAAACIc/fhiH_6IVgUs/s320/2012-05-25_235717.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Intellitrace&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: -webkit-auto;"&gt;
Intellitrace is a very&amp;nbsp;sophisticated&amp;nbsp;debugging tool that allow you to go&amp;nbsp;backward&amp;nbsp;in time and reduce the number of times you have to restart your application for the debugging. This is a feature only available in Visual Studio 2010 Ultimate.&lt;/div&gt;
&lt;div style="text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
More information on &lt;a href="http://msdn.microsoft.com/en-us/library/dd264915.aspx"&gt;MSDN&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Thread Support&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="text-align: justify;"&gt;&lt;br /&gt;In Visual Studio 2010 there is a specific windows (Thread Windows) that allow you to explore the various threads that are running at the specific point of time and easily switch between them. You can even give a name to a thread in order to be able to later recognise it.&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-i6x0wzfK3xo/T8ASkBeIbeI/AAAAAAAACIo/wC4eTKDJHPU/s1600/2012-05-26_001150.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="388" src="http://1.bp.blogspot.com/-i6x0wzfK3xo/T8ASkBeIbeI/AAAAAAAACIo/wC4eTKDJHPU/s640/2012-05-26_001150.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-UDk_uv_I0w8/T8ASmGF4uKI/AAAAAAAACIw/-u3jYrApJnM/s1600/2012-05-26_001324.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="http://3.bp.blogspot.com/-UDk_uv_I0w8/T8ASmGF4uKI/AAAAAAAACIw/-u3jYrApJnM/s640/2012-05-26_001324.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
It is also possible to see in which line of code each thread is, using the "Show Thread in Source" option.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-5tCW_BPIles/T8AUfYG_WXI/AAAAAAAACI4/VckU5p1FuRY/s1600/2012-05-26_001727.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="http://2.bp.blogspot.com/-5tCW_BPIles/T8AUfYG_WXI/AAAAAAAACI4/VckU5p1FuRY/s400/2012-05-26_001727.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-T6AeJETfZ-0/T8AUgqTINKI/AAAAAAAACJA/zrrK3tbXbTw/s1600/2012-05-26_002254.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://3.bp.blogspot.com/-T6AeJETfZ-0/T8AUgqTINKI/AAAAAAAACJA/zrrK3tbXbTw/s640/2012-05-26_002254.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Debugger Canvas&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;span style="text-align: justify;"&gt;&lt;br /&gt;This is available only for Visual Studio 2010 Ultimate. I never tried it but I have to say that it looks awesome. It allows to see the context of the debugging session in a much broader way as a set of interconnected code balls. This tools is extremely powerful and support also&amp;nbsp;&lt;/span&gt;multi&lt;span style="text-align: justify;"&gt;-threading&lt;/span&gt;&lt;span style="text-align: justify;"&gt;&amp;nbsp;applications where each thread is represented by balls of the same&amp;nbsp;&lt;/span&gt;&lt;span style="text-align: justify;"&gt;colour&lt;/span&gt;&lt;span style="text-align: justify;"&gt;. Finally, it is possible to export the diagram as an &lt;/span&gt;XPS&lt;span style="text-align: justify;"&gt; file.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-0k3fjpfk2Wc/T8AWeYHs1wI/AAAAAAAACJI/7M50vHSO_8M/s1600/image15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="399" src="http://3.bp.blogspot.com/-0k3fjpfk2Wc/T8AWeYHs1wI/AAAAAAAACJI/7M50vHSO_8M/s640/image15.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-1241825950795686574?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=s_0xZANWNjA:q3JpyAAkccI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=s_0xZANWNjA:q3JpyAAkccI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=s_0xZANWNjA:q3JpyAAkccI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=s_0xZANWNjA:q3JpyAAkccI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=s_0xZANWNjA:q3JpyAAkccI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=s_0xZANWNjA:q3JpyAAkccI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=s_0xZANWNjA:q3JpyAAkccI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=s_0xZANWNjA:q3JpyAAkccI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=s_0xZANWNjA:q3JpyAAkccI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=s_0xZANWNjA:q3JpyAAkccI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=s_0xZANWNjA:q3JpyAAkccI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=s_0xZANWNjA:q3JpyAAkccI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/s_0xZANWNjA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/1241825950795686574/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/05/net-debugging-in-visual-studio-2010.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/1241825950795686574?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/1241825950795686574?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/s_0xZANWNjA/net-debugging-in-visual-studio-2010.html" title=".NET Debugging in Visual Studio 2010" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-91UBHA88Jdg/T7wSy5W7FQI/AAAAAAAACHM/ts5H4Do3dCI/s72-c/Show+Next+Statement.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/05/net-debugging-in-visual-studio-2010.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UASXozeSp7ImA9WhVUF0w.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-5942392766880438747</id><published>2012-05-22T20:34:00.000+01:00</published><updated>2012-05-22T20:34:08.481+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-22T20:34:08.481+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Gadgeteer" /><category scheme="http://www.blogger.com/atom/ns#" term="DotNetToscana" /><category scheme="http://www.blogger.com/atom/ns#" term=".NET Micro Framework" /><title>DotNetToscana and Gadgeteer</title><content type="html">&lt;div style="text-align: justify;"&gt;
Saturday 12 May there was a &lt;a href="http://www.dotnettoscana.org/"&gt;DotNetToscana &lt;/a&gt;event about Gadgeteer and .NET Micro Framework. I was in Italy that time and I participated. I really have to say that the event was great.&amp;nbsp;&lt;a href="http://www.netmf.com/gadgeteer/"&gt;Gadgeteer &lt;/a&gt;represent a very interesting platform for creating prototypes and simply for having fun. The various modules are still quite expensive but in the future I could maybe try to do something in this area&amp;nbsp;especially&amp;nbsp;to put under test some of my new knowledge about artificial intelligence.&lt;/div&gt;
&lt;br /&gt;
The most interesting part of the day was when we moved a rover.&lt;br /&gt;
&lt;br /&gt;
We saved that moment in a video :)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://1.gvt0.com/vi/a0ObY5HoOYk/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/a0ObY5HoOYk&amp;fs=1&amp;source=uds" /&gt;
&lt;param name="bgcolor" value="#FFFFFF" /&gt;
&lt;embed width="320" height="266"  src="http://www.youtube.com/v/a0ObY5HoOYk&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;br /&gt;
Here few pictures:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-0YPlsHsMtFw/T7vmEz4_ZjI/AAAAAAAACGo/yggT67Z4PGw/s1600/sam_0548.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/-0YPlsHsMtFw/T7vmEz4_ZjI/AAAAAAAACGo/yggT67Z4PGw/s640/sam_0548.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-za_JqZ8HBBw/T7vmG6aIB4I/AAAAAAAACGw/GHG2wJcXgk0/s1600/sam_0549.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/-za_JqZ8HBBw/T7vmG6aIB4I/AAAAAAAACGw/GHG2wJcXgk0/s640/sam_0549.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Ndxxp2Asaj4/T7vmI-ypFcI/AAAAAAAACG4/-wNI7SEuPhY/s1600/sam_0551.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/-Ndxxp2Asaj4/T7vmI-ypFcI/AAAAAAAACG4/-wNI7SEuPhY/s640/sam_0551.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-CQM8XFdvzxI/T7vmKFoVNSI/AAAAAAAACHA/n7xaX2jbvJM/s1600/sam_0559.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/-CQM8XFdvzxI/T7vmKFoVNSI/AAAAAAAACHA/n7xaX2jbvJM/s640/sam_0559.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
For other pictures, videos, material about the event you can visit the following page:&lt;br /&gt;
&lt;a href="http://www.dotnettoscana.org/net-micro-framework-presenta-gadgeteer.aspx"&gt;http://www.dotnettoscana.org/net-micro-framework-presenta-gadgeteer.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
A big thanks to &lt;a href="http://blogs.ugidotnet.org/marcom/Default.aspx"&gt;Marco Minerva&lt;/a&gt; and &lt;a href="http://blogs.ugidotnet.org/marcodalpino/Default.aspx"&gt;Marco Dal Pino&lt;/a&gt; for preparing and running this brilliant event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-5942392766880438747?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=oMWAn1qHA4c:JI14f0JUdBY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=oMWAn1qHA4c:JI14f0JUdBY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=oMWAn1qHA4c:JI14f0JUdBY:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=oMWAn1qHA4c:JI14f0JUdBY:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=oMWAn1qHA4c:JI14f0JUdBY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=oMWAn1qHA4c:JI14f0JUdBY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=oMWAn1qHA4c:JI14f0JUdBY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=oMWAn1qHA4c:JI14f0JUdBY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=oMWAn1qHA4c:JI14f0JUdBY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=oMWAn1qHA4c:JI14f0JUdBY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=oMWAn1qHA4c:JI14f0JUdBY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=oMWAn1qHA4c:JI14f0JUdBY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/oMWAn1qHA4c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/5942392766880438747/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/05/dotnettoscana-and-gadgeteer.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/5942392766880438747?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/5942392766880438747?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/oMWAn1qHA4c/dotnettoscana-and-gadgeteer.html" title="DotNetToscana and Gadgeteer" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-0YPlsHsMtFw/T7vmEz4_ZjI/AAAAAAAACGo/yggT67Z4PGw/s72-c/sam_0548.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/05/dotnettoscana-and-gadgeteer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUFQ3Y_fip7ImA9WhVVEUs.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-2657545412837556223</id><published>2012-05-04T21:43:00.001+01:00</published><updated>2012-05-04T21:43:32.846+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-04T21:43:32.846+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Book" /><title>Book - Code Simplicity</title><content type="html">&lt;b&gt;This book is awesome !!!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
It is very short (less than 100 pages) but contains a lot of truth about software design in a very condensed way. At the end, it&amp;nbsp;defines&amp;nbsp;a list of laws and rules that any good software engineer or architect need to know and follow&amp;nbsp;constantly to create really valuable and long-term software.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-uk.amazon.co.uk/e/cm?t=andrangeoffib-21&amp;amp;o=2&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=1449313892&amp;amp;ref=tf_til&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=FFFFFF&amp;amp;bg1=FFFFFF&amp;amp;npa=1&amp;amp;f=ifr" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
It starts with a comparison that I believe is very effective to underline how complex the software is:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;Windows 2000 was 30 million lines of code, something like writing a book of 200 million of words - over five times the size of the Encyclopedia Britannica.&lt;/i&gt;&lt;/blockquote&gt;
Everyone can easy agree with the following sentence:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;The average computer program is so complex that no person could comprehend how all the code works in its entirely&lt;/i&gt;&lt;/blockquote&gt;
The author believe that the software design can be defined as a science. Even if you don't agree with him, the list of laws and rules presented in the books are still extremely helpful and important.&lt;br /&gt;
&lt;br /&gt;
The most important foundational law of the book is:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;b&gt;&lt;i&gt;&lt;span style="font-size: large;"&gt;The purpose of software is to help people&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/blockquote&gt;
This fundamental law bring towards the three goals of a science of software:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;To allow us to write software that is as helpful as possible&lt;/li&gt;
&lt;li&gt;To allow our software to continue to be as helpful as possible&lt;/li&gt;
&lt;li&gt;To design systems that can be created and maintained as easily as possible by their programmers, so that they can be - and continue to be - as helpful as possible&lt;/li&gt;
&lt;/ul&gt;
The book then define the &lt;b&gt;Equation of Software Design&lt;/b&gt; that the author call the &lt;b&gt;Primary Law of Software Design&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
D = V / E&lt;br /&gt;
&lt;br /&gt;
This equation should help to&amp;nbsp;prioritise the work and can be&amp;nbsp;summarised&amp;nbsp;in this way:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;The desirability of any change (D) is directly proportional to the value of the change (V) and inversely proportional to the effort involved in making the change (E)&lt;/i&gt;&lt;/blockquote&gt;
that can be reduced to:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;It is more important to reduce the effort of maintenance than it is to reduce the effort of implementation.&lt;/i&gt;&lt;/blockquote&gt;
So, nearly all decisions in software design reduce entirely to measuring the future value of a change versus its effort of maintenance.&amp;nbsp;The quality level of your design should be proportional to the length of future time in which your system will continue to help people.&lt;br /&gt;
&lt;br /&gt;
Then, the book introduce the &lt;b&gt;Law of change&lt;/b&gt;:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;The longer your program exists, the more probable it is that any piece of it will have to change&lt;/i&gt;&lt;/blockquote&gt;
explaining the typical mistakes that software designers make when attempting to&amp;nbsp;cope with this law:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;writing code that isn't needed&lt;/li&gt;
&lt;li&gt;not making the code easy to change&lt;/li&gt;
&lt;li&gt;being too generic (Over-engineering)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Perfect easy of maintenance is impossible but it should be the ultimate goal.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Finally, the &lt;b&gt;Law of Testing&lt;/b&gt;:&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;The degree to which you know how your software behaves is the degree to which you have accurately tested it&lt;/i&gt;&lt;/blockquote&gt;
&lt;div&gt;
I strongly recommend this book. I definitely insert it in my &lt;a href="http://astore.amazon.co.uk/andrangeoffib-21"&gt;restricted list of favourites books&lt;/a&gt;.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-2657545412837556223?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=A4E1GYRcsPE:ny60cVx_Mbs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=A4E1GYRcsPE:ny60cVx_Mbs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=A4E1GYRcsPE:ny60cVx_Mbs:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=A4E1GYRcsPE:ny60cVx_Mbs:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=A4E1GYRcsPE:ny60cVx_Mbs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=A4E1GYRcsPE:ny60cVx_Mbs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=A4E1GYRcsPE:ny60cVx_Mbs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=A4E1GYRcsPE:ny60cVx_Mbs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=A4E1GYRcsPE:ny60cVx_Mbs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=A4E1GYRcsPE:ny60cVx_Mbs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=A4E1GYRcsPE:ny60cVx_Mbs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=A4E1GYRcsPE:ny60cVx_Mbs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/A4E1GYRcsPE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/2657545412837556223/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/05/book-code-simplicity.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/2657545412837556223?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/2657545412837556223?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/A4E1GYRcsPE/book-code-simplicity.html" title="Book - Code Simplicity" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/05/book-code-simplicity.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMFQHwyfyp7ImA9WhVWEEg.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-6731018683809907485</id><published>2012-04-22T01:08:00.000+01:00</published><updated>2012-04-22T01:10:11.297+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-22T01:10:11.297+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><title>Roadmap of the Java platform driven by C# and .NET?</title><content type="html">I have just finished watching the interested &lt;a href="http://www.infoq.com/"&gt;InfoQ&lt;/a&gt;&amp;nbsp;talk called &lt;a href="http://www.infoq.com/presentations/To-Java-SE-8-and-Beyond"&gt;"To Java SE 8, and Beyond!"&lt;/a&gt; where &lt;a href="http://www.infoq.com/author/Simon-Ritter"&gt;Simon Ritter&lt;/a&gt; discusses the future of Java, taking a look at proposed features and roadmap for Java 8 thought 12.&lt;br /&gt;
&lt;br /&gt;
It is absolutely clear that many of the new proposed features has been taken from C# and in this post I would like to show some comparisons.&lt;br /&gt;
&lt;br /&gt;
First of all, it is important to say that the information presented in the talk are only a draft and here I would like to report the statement presented in the &lt;a href="http://res.infoq.com/downloads/pdfdownloads/presentations/QConLondon2012-SimonRitter-TheFutureoftheJavaPlatformJavaSE8Beyond.pdf?Expires=1335045281&amp;amp;Signature=Vt-syYgeq3FXTdPTgOzllyRVrW~rIMC58R4Wus7ng2sHMVyOifRoBA296F7ip-lyCHqzxHlh6Xb9sV8c9FutA3f7bslOFH9gEsOWxBRiv19sgE12isqv8SPht3C85V-I0R15gQ0bALW45QWcMCBl4ZvWYvWJiQtadOgEUBlMqpE_&amp;amp;Key-Pair-Id=APKAIMZVI7QH4C5YKH6Q"&gt;Oracle slides associated with the talk&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;The following is intended to outline our general&amp;nbsp;product direction. It is intended for information&amp;nbsp;purposes only, and may not be incorporated into any&amp;nbsp;contract. It is not a commitment to deliver any&amp;nbsp;material, code, or functionality, and should not be&lt;/i&gt;&lt;i&gt;relied upon in making purchasing decisions.&amp;nbsp;The development, release, and timing of any&amp;nbsp;features or functionality described for Oracle’s&amp;nbsp;products remains at the sole discretion of Oracle.&lt;/i&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/bb397926.aspx"&gt;LINQ&lt;/a&gt; is by far my favourite feature of the C# language and Java is likely to add extension methods and lambdas to the language included the possibility to create a parallel execution.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-7q1sCVWLENM/T5M4zNGgVcI/AAAAAAAACBs/ELgKLqKPC0E/s1600/2012-04-21_234535.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="72" src="http://4.bp.blogspot.com/-7q1sCVWLENM/T5M4zNGgVcI/AAAAAAAACBs/ELgKLqKPC0E/s400/2012-04-21_234535.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-22iWsxZp-HE/T5M40BWXyrI/AAAAAAAACBw/M5O6itPEK9o/s1600/2012-04-21_234557.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://2.bp.blogspot.com/-22iWsxZp-HE/T5M40BWXyrI/AAAAAAAACBw/M5O6itPEK9o/s400/2012-04-21_234557.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This is something that has been introduced in C# 3.0 in 2007 and you can notice the similarities.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-NTAuPk3A3i4/T5NAIaJH1II/AAAAAAAACB8/N5M687rFUIk/s1600/2012-04-22_001415.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="82" src="http://2.bp.blogspot.com/-NTAuPk3A3i4/T5NAIaJH1II/AAAAAAAACB8/N5M687rFUIk/s400/2012-04-22_001415.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
In C# is also possible to write the same statement using the query syntax:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-SoAG8VwXQJ0/T5NAI_yFyUI/AAAAAAAACCA/naVFAJJWgkE/s1600/2012-04-22_001428.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="57" src="http://2.bp.blogspot.com/-SoAG8VwXQJ0/T5NAI_yFyUI/AAAAAAAACCA/naVFAJJWgkE/s400/2012-04-22_001428.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
The various methods are actually implemented as extension methods of the IEnumerable&amp;lt;T&amp;gt; interface.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/--A4SQ41Nm0g/T5NAJSZJ4HI/AAAAAAAACCI/Abz3ipSqWxA/s1600/2012-04-22_001735.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="69" src="http://1.bp.blogspot.com/--A4SQ41Nm0g/T5NAJSZJ4HI/AAAAAAAACCI/Abz3ipSqWxA/s640/2012-04-22_001735.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
An another idea is to simplify the references between java modules, something that we always had for the .NET assemblies.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-O9hfp6bpxN0/T5NAyt8mFzI/AAAAAAAACCU/ekhJSZn-Pv8/s1600/2012-04-22_002020.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-O9hfp6bpxN0/T5NAyt8mFzI/AAAAAAAACCU/ekhJSZn-Pv8/s400/2012-04-22_002020.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
It is interesting that for the version 9 of Java SE (in 2015 according to the roadmap) there is a plan to support multi-languages in the JVM. This is actually something that is a core design principle of .NET that allow to run VB.NET, C# and many other languages on top of the platform.&amp;nbsp;In addition, this will require the definition of a unified type system in Java that in .NET is called &lt;a href="http://msdn.microsoft.com/en-us/library/zcx1eb1e(v=vs.71).aspx"&gt;Common Type System&lt;/a&gt; (CTS).&lt;br /&gt;
&lt;br /&gt;
In Java 7 has been introduced the&amp;nbsp;&lt;a href="http://java.sun.com/developer/technicalArticles/DynTypeLang/"&gt;invokedynamic bytecode instruction&lt;/a&gt; to improve the support for not-Java languages. I don't know how to use it but it seems that &lt;a href="http://niklasschlimm.blogspot.co.uk/2012/02/java-7-complete-invokedynamic-example.html"&gt;there is no an easy way to use this feature at the language level&lt;/a&gt;. There is no comparison with the simple and effective &lt;a href="http://msdn.microsoft.com/en-us/library/dd264736.aspx"&gt;dynamic keyword&lt;/a&gt; introduced by C# 4.&lt;br /&gt;
&lt;br /&gt;
If this is not enough, in the JDK 10+ (2017) the unified type system will be introduced and &lt;b&gt;primitives types will be removed&lt;/b&gt;. This basically means that Java is going to introduce &lt;a href="http://msdn.microsoft.com/en-us/library/s1ax56ch.aspx"&gt;value types&lt;/a&gt; (&lt;a href="http://msdn.microsoft.com/en-us/library/ah19swz4(v=vs.71).aspx"&gt;structs&lt;/a&gt;) in the picture. In .NET all of this was taken into account from the very beginning. I am quite impressed how well .NET has been designed. You shouldn't forget that this&amp;nbsp;happened&amp;nbsp;more then 10 years ago !!!&lt;br /&gt;
&lt;br /&gt;
Also multi-dimensional arrays will be introduced in Java in the JDK 10+. Again in C# we have the&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/2yd9wwz4(v=vs.71).aspx"&gt;multidimensional&amp;nbsp;arrays&lt;/a&gt;&amp;nbsp;for such a long time.&lt;br /&gt;
&lt;br /&gt;
There are some features that has been vaguely announced that are very interesting:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Improve Java/Native integration and sensors support&lt;/li&gt;
&lt;li&gt;Cloud support (multi-tenancy and resource management)&lt;/li&gt;
&lt;li&gt;Sale down to embedded, up to massive servers&lt;/li&gt;
&lt;li&gt;Hypervisor aware JVM&lt;/li&gt;
&lt;li&gt;Large arrays&lt;/li&gt;
&lt;li&gt;True generics&lt;/li&gt;
&lt;li&gt;Performance improvements to close the gap to low-level languages&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
This is the announced roadmap for the next versions of the Java Platform.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-PBj3VEi_DdQ/T5NInSF72FI/AAAAAAAACCg/a_DsqBYb-wc/s1600/2012-04-22_005354.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="http://2.bp.blogspot.com/-PBj3VEi_DdQ/T5NInSF72FI/AAAAAAAACCg/a_DsqBYb-wc/s640/2012-04-22_005354.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The final big new is that all the code development will be open source in a project called &lt;a href="http://openjdk.java.net/"&gt;OpenJDK&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
I am very happy to see that the Java language is evolving. Anyway, I continue to be a big fan of C# and the .NET platform where the designer of the language, &lt;a href="http://en.wikipedia.org/wiki/Anders_Hejlsberg"&gt;Anders Hejlsberg&lt;/a&gt;, is putting a lot of innovation in it with the main mission to improve the productivity of developers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-6731018683809907485?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=BzlFUHQYXas:7IFoz3YtgBs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=BzlFUHQYXas:7IFoz3YtgBs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=BzlFUHQYXas:7IFoz3YtgBs:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=BzlFUHQYXas:7IFoz3YtgBs:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=BzlFUHQYXas:7IFoz3YtgBs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=BzlFUHQYXas:7IFoz3YtgBs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=BzlFUHQYXas:7IFoz3YtgBs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=BzlFUHQYXas:7IFoz3YtgBs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=BzlFUHQYXas:7IFoz3YtgBs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=BzlFUHQYXas:7IFoz3YtgBs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=BzlFUHQYXas:7IFoz3YtgBs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=BzlFUHQYXas:7IFoz3YtgBs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/BzlFUHQYXas" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/6731018683809907485/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/04/roadmap-of-java-platform-driven-by-c.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/6731018683809907485?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/6731018683809907485?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/BzlFUHQYXas/roadmap-of-java-platform-driven-by-c.html" title="Roadmap of the Java platform driven by C# and .NET?" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-7q1sCVWLENM/T5M4zNGgVcI/AAAAAAAACBs/ELgKLqKPC0E/s72-c/2012-04-21_234535.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/04/roadmap-of-java-platform-driven-by-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4BQHs4eSp7ImA9WhVXFEU.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-8787837910647155724</id><published>2012-04-15T11:15:00.002+01:00</published><updated>2012-04-15T11:15:51.531+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-15T11:15:51.531+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TopCoder" /><category scheme="http://www.blogger.com/atom/ns#" term="Algorithms" /><title>2012 TopCoder Open - Qualifications</title><content type="html">Yesterday, I&amp;nbsp;participated&amp;nbsp;to the &lt;a href="http://community.topcoder.com/tco12/algorithm-schedule/"&gt;Online Qualification Round 1C&lt;/a&gt; that is the first phase of the &lt;a href="http://community.topcoder.com/tco12/"&gt;Worldwide 2012 TopCoder Open Turnament&lt;/a&gt; in the &lt;a href="http://community.topcoder.com/tco12/algorithm/"&gt;algorithm category&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If you look at the &lt;a href="http://community.topcoder.com/tco12/algorithm-schedule/"&gt;algorithm competition schedule&lt;/a&gt; you will see that 600 out of 2000 (the maximum number of participants per qualifications round) advances to the semifinals. &lt;b&gt;My final position is 306&lt;/b&gt; &lt;b&gt;so I believe I advanced to semifinals&lt;/b&gt; but I didn't received yet an official communication from TopCoder.&lt;br /&gt;
&lt;br /&gt;
The match has been intense but it has started in a very bad way. First, I opened the easy problem and I spent 15 minutes to find a solution. I couldn't come up with a solution. I was shocked because this is usually simple and I always had a first quick solution to it. I decided to move to the medium problem and the same happened. In that case, the text of the problem was too long and I hate this kind of problems so I decided to move on the hard problem. At that point, my hope was almost null because I never been able to solve a TopCoder hard problem. &lt;b&gt;I focused all my remaining time to solve the hard problem and I submitted a solution and I got 448.50 points&lt;/b&gt;. I was happy because I&amp;nbsp;knew&amp;nbsp;that I discovered some&amp;nbsp;subtle&amp;nbsp;edge cases and I addressed them but I wasn't 100% sure that my code was fully functional (never I am).&lt;br /&gt;
&lt;br /&gt;
Then the challenge phase. Only three people (included me) in the room (usually 20 people) did the hard problem. Three tentative to break my code has been done with a negative result (each person lost 25 points for this). I challenged the code of a guy that submitted a solution to the hard problem but without covering an edge case and I got 50 points. &lt;b&gt;So my score became 494.80&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Then the system test. The system test is terrible because if only a single test case against a solution does not pass you automatically get a score of 0. &lt;b&gt;Fortunately my code passed the system test&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
I would like to share the problem and my code with you but unfortunately for copyright issues I can't. You have to register on TopCoder to have access to all the problems.&lt;br /&gt;
&lt;br /&gt;
However, I can share with you &lt;a href="http://community.topcoder.com/tc?module=MemberProfile&amp;amp;cr=22899220"&gt;my public profile information&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;My total topcoder score in the algorithm&amp;nbsp;&lt;/b&gt;&lt;b&gt;category&amp;nbsp;&lt;/b&gt;&lt;b&gt;(a kind of average of all the competition you did) &amp;nbsp;is now 1167&lt;/b&gt;. As you can see, my last match has been significantly better than the previous. Solving the hard problem is a great achievement for me.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-smTXqWtSYfA/T4qY5bBP7II/AAAAAAAAB_8/cXRD605ywvg/s1600/performance.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-smTXqWtSYfA/T4qY5bBP7II/AAAAAAAAB_8/cXRD605ywvg/s640/performance.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
The most interesting chart is &lt;b&gt;my global position relative to the others TopCoders (3520 out of 9334)&lt;/b&gt;. &amp;nbsp;It is good to see that I am better positioned than the average TopCoder. My &lt;b&gt;percentile is 62.2884%&lt;/b&gt;. As you can see I am very closed to the blue area (a score greater than 1200) and this is my next goal, an hard goal.&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-TjGikGjD-Dg/T4qY4OI5YYI/AAAAAAAAB_4/GYhgZmwLVNc/s1600/Rating+distribution.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="396" src="http://3.bp.blogspot.com/-TjGikGjD-Dg/T4qY4OI5YYI/AAAAAAAAB_4/GYhgZmwLVNc/s640/Rating+distribution.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-WACH3G0jApg/T4qc9PIv5jI/AAAAAAAACAI/pKB5PLe4AmA/s1600/percentile.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="307" src="http://3.bp.blogspot.com/-WACH3G0jApg/T4qc9PIv5jI/AAAAAAAACAI/pKB5PLe4AmA/s320/percentile.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Competing on TopCoder is amazing and I like the adrenaline released during the competition. I strongly recommend the experience to any programmers. It doesn't matter what will be your score, what it matters is challenging yourself, improving yourself and having fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-8787837910647155724?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-K_eFZ_oHmk:jUrMN1C0BlY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-K_eFZ_oHmk:jUrMN1C0BlY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-K_eFZ_oHmk:jUrMN1C0BlY:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=-K_eFZ_oHmk:jUrMN1C0BlY:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-K_eFZ_oHmk:jUrMN1C0BlY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=-K_eFZ_oHmk:jUrMN1C0BlY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-K_eFZ_oHmk:jUrMN1C0BlY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-K_eFZ_oHmk:jUrMN1C0BlY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-K_eFZ_oHmk:jUrMN1C0BlY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-K_eFZ_oHmk:jUrMN1C0BlY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=-K_eFZ_oHmk:jUrMN1C0BlY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-K_eFZ_oHmk:jUrMN1C0BlY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/-K_eFZ_oHmk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/8787837910647155724/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/04/2012-topcoder-open-qualifications.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/8787837910647155724?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/8787837910647155724?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/-K_eFZ_oHmk/2012-topcoder-open-qualifications.html" title="2012 TopCoder Open - Qualifications" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-smTXqWtSYfA/T4qY5bBP7II/AAAAAAAAB_8/cXRD605ywvg/s72-c/performance.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/04/2012-topcoder-open-qualifications.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YCRn8_fSp7ImA9WhVXFUw.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-4115721238127117749</id><published>2012-04-15T01:40:00.001+01:00</published><updated>2012-04-15T19:39:27.145+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-15T19:39:27.145+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Book" /><title>Book - The Developer's Code</title><content type="html">I have just finish reading the book &lt;a href="http://www.amazon.co.uk/gp/product/1934356794/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=andrangeoffib-21&amp;amp;linkCode=as2&amp;amp;camp=1634&amp;amp;creative=6738&amp;amp;creativeASIN=1934356794"&gt;The Developer's Code&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.co.uk/e/ir?t=andrangeoffib-21&amp;amp;l=as2&amp;amp;o=2&amp;amp;a=1934356794" style="border: none !important; margin: 0px !important;" width="1" /&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm-uk.amazon.co.uk/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS2=1&amp;amp;npa=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=andrangeoffib-21&amp;amp;o=2&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;ref=tf_til&amp;amp;asins=1934356794" style="height: 240px; width: 120px;"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
This is a light book with some considerations and advices about working as a software engineer and beyond.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here I want to&amp;nbsp;summarise&amp;nbsp;what I liked the most from the book:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Discussion about the fact that architects shouldn't stop coding remembering that the code is the glue that binds each role. So regardless of where you are in the development hierarchy, it is valuable to keep coding.&lt;/li&gt;
&lt;li&gt;The importance of diversification over specialisation&lt;/li&gt;
&lt;li&gt;It is better not be perfectionists because it can become exhausting. Perfect code does not exist. This means that you can event apply to speak at a conference. You don't need to be a rock-star programming hero.&lt;/li&gt;
&lt;li&gt;The importance of investing in a good work environment&lt;/li&gt;
&lt;li&gt;Have a single TO DO List.&amp;nbsp;I found&amp;nbsp;&lt;a href="https://workflowy.com/"&gt;WorkFlowy&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.instapaper.com/"&gt;Instapaper &lt;/a&gt;very&amp;nbsp;useful&lt;/li&gt;
&lt;li&gt;The importance of the working relationships that form over time.&lt;/li&gt;
&lt;li&gt;The simplicity paradox&lt;/li&gt;
&lt;li&gt;The fact that once you've become an expert in a particular domain, it is nearly impossible to understand what it feels like to not understand that domain. So, when you're teaching something new you can lie and also say incorrect things to make things easier to understand.&lt;/li&gt;
&lt;li&gt;The responsibilities of the project managers&lt;/li&gt;
&lt;li&gt;Don't lose your appreciation, interest and understanding for what's going on under the hood&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
It has been a pleasant and relaxed reading.&lt;/div&gt;
&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-4115721238127117749?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=bvh9-uqRSpA:_8RAjjtb5xc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=bvh9-uqRSpA:_8RAjjtb5xc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=bvh9-uqRSpA:_8RAjjtb5xc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=bvh9-uqRSpA:_8RAjjtb5xc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=bvh9-uqRSpA:_8RAjjtb5xc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=bvh9-uqRSpA:_8RAjjtb5xc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=bvh9-uqRSpA:_8RAjjtb5xc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=bvh9-uqRSpA:_8RAjjtb5xc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=bvh9-uqRSpA:_8RAjjtb5xc:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=bvh9-uqRSpA:_8RAjjtb5xc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=bvh9-uqRSpA:_8RAjjtb5xc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=bvh9-uqRSpA:_8RAjjtb5xc:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/bvh9-uqRSpA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/4115721238127117749/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/04/book-developers-code.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/4115721238127117749?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/4115721238127117749?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/bvh9-uqRSpA/book-developers-code.html" title="Book - The Developer's Code" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/04/book-developers-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AMRXozfyp7ImA9WhVXE0g.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-3783336442704775438</id><published>2012-04-13T22:16:00.000+01:00</published><updated>2012-04-13T22:16:24.487+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-13T22:16:24.487+01:00</app:edited><title>Engagement with Michela</title><content type="html">The &lt;b&gt;26 February 2012&lt;/b&gt; I got engaged with Michela. After a lovely lunch at the restaurant, I made my declaration&amp;nbsp;in the&lt;a href="http://en.wikipedia.org/wiki/Christ's_Pieces"&gt; Christ's Pieces park&lt;/a&gt; in Cambridge. She was shocked but extremely touched and obviously she said "YES".&lt;br /&gt;
&lt;br /&gt;
For a while after it, she wasn't able to walk but we have been able to do some shopping at Primark for then relaxing in front of a beautiful cappuccino at Costa.&lt;br /&gt;
&lt;br /&gt;
Here some pictures that saved that magic moment forever:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-RSPQ3mg3loo/T4iQoBmQNXI/AAAAAAAAB-Q/lcmisVy7LUc/s1600/DSC_0007.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-RSPQ3mg3loo/T4iQoBmQNXI/AAAAAAAAB-Q/lcmisVy7LUc/s640/DSC_0007.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-MVQzrrvLspM/T4iQukXwwNI/AAAAAAAAB-Y/wipm9BHKM8U/s1600/DSC_0008.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://4.bp.blogspot.com/-MVQzrrvLspM/T4iQukXwwNI/AAAAAAAAB-Y/wipm9BHKM8U/s640/DSC_0008.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
Michela is 5 years younger then me but she's wise, she's romantic, she's crazy, she's beautiful, she's my life and I love her immensely. She understand me as anyone else, she's a perfect fit for me.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-o48fy8ongQM/T4iRJD1N_NI/AAAAAAAAB-4/HxUnK_Jg4dU/s1600/SAM_0095+(Large).JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/-o48fy8ongQM/T4iRJD1N_NI/AAAAAAAAB-4/HxUnK_Jg4dU/s640/SAM_0095+(Large).JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
We are planning to get married after she finishes university in Italy&amp;nbsp;(2 to 3 years)&amp;nbsp;and then start our living together in UK.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;"No measure of time with you will be long enough. But let's start with forever"&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-3783336442704775438?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yS_8Wv7r9yY:T_7Y3x0gdLo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yS_8Wv7r9yY:T_7Y3x0gdLo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yS_8Wv7r9yY:T_7Y3x0gdLo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=yS_8Wv7r9yY:T_7Y3x0gdLo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yS_8Wv7r9yY:T_7Y3x0gdLo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=yS_8Wv7r9yY:T_7Y3x0gdLo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yS_8Wv7r9yY:T_7Y3x0gdLo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yS_8Wv7r9yY:T_7Y3x0gdLo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yS_8Wv7r9yY:T_7Y3x0gdLo:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yS_8Wv7r9yY:T_7Y3x0gdLo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=yS_8Wv7r9yY:T_7Y3x0gdLo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yS_8Wv7r9yY:T_7Y3x0gdLo:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/yS_8Wv7r9yY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/3783336442704775438/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/04/engagement-with-michela.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/3783336442704775438?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/3783336442704775438?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/yS_8Wv7r9yY/engagement-with-michela.html" title="Engagement with Michela" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-RSPQ3mg3loo/T4iQoBmQNXI/AAAAAAAAB-Q/lcmisVy7LUc/s72-c/DSC_0007.JPG" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/04/engagement-with-michela.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04GR3k8eip7ImA9WhVXE0g.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-8410498521103924975</id><published>2012-04-12T19:59:00.001+01:00</published><updated>2012-04-13T22:18:46.772+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-13T22:18:46.772+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Citrix" /><title>Andrea Angella works in Citrix</title><content type="html">It is one year and four months since I work in Citrix as a Software Development Engineer and it is time to show some pictures.&amp;nbsp;Working here is amazing!&lt;br /&gt;
&lt;br /&gt;
This is my favourite picture with the Citrix logo on the wall:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-yyEzG7TxB6E/T4ciqgS19xI/AAAAAAAAB5c/LhW3UgcayY8/s1600/Me+and+Citrix.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-yyEzG7TxB6E/T4ciqgS19xI/AAAAAAAAB5c/LhW3UgcayY8/s640/Me+and+Citrix.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Here you can look at me doing some work.. don't look at the belly :)&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-fY5c6o6TEZc/T4cixDeF7YI/AAAAAAAAB5k/ZZGd0UgRhcg/s1600/My+office.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-fY5c6o6TEZc/T4cixDeF7YI/AAAAAAAAB5k/ZZGd0UgRhcg/s640/My+office.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
"Simplicity is power" is our mantra !!!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-12LJI6_n4BY/T4ci2m7i_3I/AAAAAAAAB5s/SC8Jqiud3uk/s1600/Simplicity+is+power.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-12LJI6_n4BY/T4ci2m7i_3I/AAAAAAAAB5s/SC8Jqiud3uk/s640/Simplicity+is+power.JPG" width="360" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-8410498521103924975?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=z5_JjQzUuR8:La-i94lLjvE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=z5_JjQzUuR8:La-i94lLjvE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=z5_JjQzUuR8:La-i94lLjvE:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=z5_JjQzUuR8:La-i94lLjvE:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=z5_JjQzUuR8:La-i94lLjvE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=z5_JjQzUuR8:La-i94lLjvE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=z5_JjQzUuR8:La-i94lLjvE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=z5_JjQzUuR8:La-i94lLjvE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=z5_JjQzUuR8:La-i94lLjvE:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=z5_JjQzUuR8:La-i94lLjvE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=z5_JjQzUuR8:La-i94lLjvE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=z5_JjQzUuR8:La-i94lLjvE:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/z5_JjQzUuR8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/8410498521103924975/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/04/andrea-angella-works-in-citrix.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/8410498521103924975?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/8410498521103924975?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/z5_JjQzUuR8/andrea-angella-works-in-citrix.html" title="Andrea Angella works in Citrix" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-yyEzG7TxB6E/T4ciqgS19xI/AAAAAAAAB5c/LhW3UgcayY8/s72-c/Me+and+Citrix.JPG" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/04/andrea-angella-works-in-citrix.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcCRng8eip7ImA9WhVQFEk.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-6032998639968004429</id><published>2012-04-03T09:01:00.000+01:00</published><updated>2012-04-03T09:01:07.672+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-03T09:01:07.672+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Robotics Algorithms" /><title>Programming a Robotic Car</title><content type="html">In the last few weeks I have been quite busy following the course &lt;a href="http://www.udacity.com/overview/Course/cs373"&gt;"Programming a Robotic Car"&lt;/a&gt;&amp;nbsp;on &lt;a href="http://www.udacity.com/"&gt;Udacitity&lt;/a&gt;. The course is quite demanding because it force you to implement all the algorithms presented. I think this is by far the most effective way to really learn and their&amp;nbsp;on-line&amp;nbsp;platform based on Python works pretty well.&lt;br /&gt;
&lt;br /&gt;
These are some of the problems that can be solved with the techniques explained:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Localizing a robot in a map&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Monte Carlo Localization&lt;/li&gt;
&lt;li&gt;Particle Filters Localization&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Tracking objects&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Kalman Filters&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Motion planning&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;A Star&lt;/li&gt;
&lt;li&gt;Dynamic Programming&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Robot Motion&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Smoothing&lt;/li&gt;
&lt;li&gt;PID Control&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Simultaneous localization and mapping&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;SLAM&lt;/li&gt;
&lt;li&gt;Online SLAM&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
You can access all the code in my &lt;a href="http://angellaa.codeplex.com/SourceControl/changeset/view/75541"&gt;public repository&lt;/a&gt;&amp;nbsp;under the following path:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Udacity &amp;gt;&amp;gt; CS 373 - Programming a robotic car&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Here few snippets of the most relevant code.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Kalman Filter:&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-M2EeLCeUWbo/T3qnnShZ8WI/AAAAAAAAB20/N5hosMBGcYA/s1600/KalmanFilter.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="http://4.bp.blogspot.com/-M2EeLCeUWbo/T3qnnShZ8WI/AAAAAAAAB20/N5hosMBGcYA/s320/KalmanFilter.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Particle Filter:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-cIDtzkH9jaM/T3qpFgZuTTI/AAAAAAAAB3M/Vu23rxyLSAE/s1600/ParticleFilter.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/-cIDtzkH9jaM/T3qpFgZuTTI/AAAAAAAAB3M/Vu23rxyLSAE/s640/ParticleFilter.PNG" width="488" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
A Start:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-eml_NY9kiGI/T3qqY48GCcI/AAAAAAAAB3U/sQeRTnEm3w4/s1600/2012-04-03_084356.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/-eml_NY9kiGI/T3qqY48GCcI/AAAAAAAAB3U/sQeRTnEm3w4/s640/2012-04-03_084356.png" width="491" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Smoothing:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-laif1bhPsec/T3qra6D7SwI/AAAAAAAAB3c/55EOn_dC-Ro/s1600/2012-04-03_084833.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://1.bp.blogspot.com/-laif1bhPsec/T3qra6D7SwI/AAAAAAAAB3c/55EOn_dC-Ro/s640/2012-04-03_084833.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
PID Control:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-fwS8nrUTn_U/T3qr2kvB5eI/AAAAAAAAB3k/YkREdi58doQ/s1600/2012-04-03_085027.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="289" src="http://1.bp.blogspot.com/-fwS8nrUTn_U/T3qr2kvB5eI/AAAAAAAAB3k/YkREdi58doQ/s640/2012-04-03_085027.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Twiddle (used for tuning the PID control parameters):&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-I52UkJItYu4/T3qsZEVWmUI/AAAAAAAAB3s/SpKp-DWX5pE/s1600/2012-04-03_085228.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-I52UkJItYu4/T3qsZEVWmUI/AAAAAAAAB3s/SpKp-DWX5pE/s400/2012-04-03_085228.png" width="252" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Online SLAM:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-6tOeVJcpfiM/T3qtHQD5gLI/AAAAAAAAB30/XOdEms6e-wY/s1600/2012-04-03_085522.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="524" src="http://2.bp.blogspot.com/-6tOeVJcpfiM/T3qtHQD5gLI/AAAAAAAAB30/XOdEms6e-wY/s640/2012-04-03_085522.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-jP1p7rJUYyU/T3qtJIfkZPI/AAAAAAAAB38/mtYTCZ1rVAY/s1600/2012-04-03_085547.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="638" src="http://3.bp.blogspot.com/-jP1p7rJUYyU/T3qtJIfkZPI/AAAAAAAAB38/mtYTCZ1rVAY/s640/2012-04-03_085547.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-6032998639968004429?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=tSXWB3GlBoI:8eUFyVpq9uw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=tSXWB3GlBoI:8eUFyVpq9uw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=tSXWB3GlBoI:8eUFyVpq9uw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=tSXWB3GlBoI:8eUFyVpq9uw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=tSXWB3GlBoI:8eUFyVpq9uw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=tSXWB3GlBoI:8eUFyVpq9uw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=tSXWB3GlBoI:8eUFyVpq9uw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=tSXWB3GlBoI:8eUFyVpq9uw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=tSXWB3GlBoI:8eUFyVpq9uw:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=tSXWB3GlBoI:8eUFyVpq9uw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=tSXWB3GlBoI:8eUFyVpq9uw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=tSXWB3GlBoI:8eUFyVpq9uw:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/tSXWB3GlBoI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/6032998639968004429/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/04/programming-robotic-car.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/6032998639968004429?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/6032998639968004429?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/tSXWB3GlBoI/programming-robotic-car.html" title="Programming a Robotic Car" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-M2EeLCeUWbo/T3qnnShZ8WI/AAAAAAAAB20/N5hosMBGcYA/s72-c/KalmanFilter.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/04/programming-robotic-car.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04MQX0zcCp7ImA9WhVRFko.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-9021231763354772523</id><published>2012-03-25T11:39:00.002+01:00</published><updated>2012-03-25T11:39:40.388+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-25T11:39:40.388+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DotNetToscana" /><title>DotNetToscana - RSS Feed</title><content type="html">&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 16px;"&gt;It is a pleasure to announce that the &lt;a href="http://www.dotnettoscana.org/"&gt;DotNetToscana&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 16px;"&gt;RSS Feed&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 16px;"&gt;is now online!&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-mTMBCNXOj3k/TyHXOXuN0vI/AAAAAAAABnU/z2DjAZY46r8/s1600/dotnettoscana_hight_resolution_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-mTMBCNXOj3k/TyHXOXuN0vI/AAAAAAAABnU/z2DjAZY46r8/s200/dotnettoscana_hight_resolution_4.png" width="200" /&gt;&lt;/a&gt;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 16px;"&gt;If you want to know the latest news, upcoming events and the activities from the official Microsoft .Net community in Tuscany, don't wait and subscribe to it.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: arial, sans-serif;"&gt;&lt;span style="font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: arial, sans-serif;"&gt;&lt;span style="font-size: 16px;"&gt;This is the direct link for subscription:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://feeds.feedburner.com/dotnettoscana"&gt;http://feeds.feedburner.com/dotnettoscana&lt;/a&gt;&amp;nbsp;&lt;span style="background-color: white; font-family: arial, sans-serif; font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: arial, sans-serif;"&gt;&lt;span style="font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-9021231763354772523?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=DUQ25G3jsHU:m899vBlo04Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=DUQ25G3jsHU:m899vBlo04Q:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=DUQ25G3jsHU:m899vBlo04Q:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=DUQ25G3jsHU:m899vBlo04Q:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=DUQ25G3jsHU:m899vBlo04Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=DUQ25G3jsHU:m899vBlo04Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=DUQ25G3jsHU:m899vBlo04Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=DUQ25G3jsHU:m899vBlo04Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=DUQ25G3jsHU:m899vBlo04Q:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=DUQ25G3jsHU:m899vBlo04Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=DUQ25G3jsHU:m899vBlo04Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=DUQ25G3jsHU:m899vBlo04Q:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/DUQ25G3jsHU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/9021231763354772523/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/03/dotnettoscana-rss-feed.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/9021231763354772523?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/9021231763354772523?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/DUQ25G3jsHU/dotnettoscana-rss-feed.html" title="DotNetToscana - RSS Feed" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-mTMBCNXOj3k/TyHXOXuN0vI/AAAAAAAABnU/z2DjAZY46r8/s72-c/dotnettoscana_hight_resolution_4.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/03/dotnettoscana-rss-feed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcDRHoyeCp7ImA9WhVRFE0.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-8973336932896586754</id><published>2012-03-22T09:04:00.002Z</published><updated>2012-03-22T09:04:35.490Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-22T09:04:35.490Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone" /><category scheme="http://www.blogger.com/atom/ns#" term="DotNetToscana" /><title>DotNetToscana - WP7 3D Lab</title><content type="html">Hello,&lt;br /&gt;
&lt;br /&gt;
Last week in Pisa there has been the &lt;a href="http://www.dotnettoscana.org/wp7-3d-lab.aspx"&gt;Windows Phone 7 3D Lab&lt;/a&gt; organized by &lt;a href="http://www.dotnettoscana.org/Default.aspx"&gt;DotNetToscana &lt;/a&gt;and leaded by &lt;a href="http://blogs.ugidotnet.org/naighes/Default.aspx"&gt;Nicola Baldi&lt;/a&gt;. Unfortunately I couldn't participate to the event but it seems that people really enjoyed playing with the hard concepts behind the 3D rendering.&lt;br /&gt;
&lt;br /&gt;
Here few pictures from the event:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-3VMOvaUKJaA/T2rpC3oRV2I/AAAAAAAABzg/NGQHaZlcO3k/s1600/sam_0113.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/-3VMOvaUKJaA/T2rpC3oRV2I/AAAAAAAABzg/NGQHaZlcO3k/s640/sam_0113.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-N8KhGatcMNs/T2rpEtXJXyI/AAAAAAAABzo/5iBHUUkbrWg/s1600/sam_0114.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/-N8KhGatcMNs/T2rpEtXJXyI/AAAAAAAABzo/5iBHUUkbrWg/s640/sam_0114.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-EBMrl6QEhh8/T2rpF-IkoRI/AAAAAAAABzw/ahXPCuLb4nQ/s1600/sam_0116.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/-EBMrl6QEhh8/T2rpF-IkoRI/AAAAAAAABzw/ahXPCuLb4nQ/s640/sam_0116.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-68txeDJX1U4/T2rpHHk7lAI/AAAAAAAABz4/62iHsnV6n5Y/s1600/sam_0126.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/-68txeDJX1U4/T2rpHHk7lAI/AAAAAAAABz4/62iHsnV6n5Y/s640/sam_0126.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-DKhYdF4W3FA/T2rpIXye-2I/AAAAAAAABz8/7DtMBE5foIU/s1600/sam_0133.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/-DKhYdF4W3FA/T2rpIXye-2I/AAAAAAAABz8/7DtMBE5foIU/s640/sam_0133.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
More pictures are available in the community official web site:&lt;br /&gt;
&lt;a href="http://www.dotnettoscana.org/wp7-3d-game-lab-photo-gallery.aspx"&gt;http://www.dotnettoscana.org/wp7-3d-game-lab-photo-gallery.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The source code of the game will be release soon. Stay tuned&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-8973336932896586754?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yR22a6mGbsU:kn3BRgHvgPI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yR22a6mGbsU:kn3BRgHvgPI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yR22a6mGbsU:kn3BRgHvgPI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=yR22a6mGbsU:kn3BRgHvgPI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yR22a6mGbsU:kn3BRgHvgPI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=yR22a6mGbsU:kn3BRgHvgPI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yR22a6mGbsU:kn3BRgHvgPI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yR22a6mGbsU:kn3BRgHvgPI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yR22a6mGbsU:kn3BRgHvgPI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yR22a6mGbsU:kn3BRgHvgPI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=yR22a6mGbsU:kn3BRgHvgPI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=yR22a6mGbsU:kn3BRgHvgPI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/yR22a6mGbsU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/8973336932896586754/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/03/dotnettoscana-wp7-3d-lab.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/8973336932896586754?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/8973336932896586754?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/yR22a6mGbsU/dotnettoscana-wp7-3d-lab.html" title="DotNetToscana - WP7 3D Lab" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-3VMOvaUKJaA/T2rpC3oRV2I/AAAAAAAABzg/NGQHaZlcO3k/s72-c/sam_0113.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/03/dotnettoscana-wp7-3d-lab.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYMQH8-fip7ImA9WhVUGEw.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-4797447910864135340</id><published>2012-03-01T22:46:00.000Z</published><updated>2012-05-24T00:03:01.156+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-24T00:03:01.156+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Robotics" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><category scheme="http://www.blogger.com/atom/ns#" term="Algorithms" /><title>Robot Localization using Montecarlo Localization</title><content type="html">The problem of localising a robot in a known environment is quite interesting. I would like to share with you my solution to the homework assignment for the unit 1 of the "CS 373 Programming a Robotic Car".&lt;br /&gt;
&lt;br /&gt;
The environment is a discrete map (colours matrix) where each area can be green or red. The robot can sense the colour (sense function) of the area where is currently on and can move in any directions (move function). To make things more interesting and close to reality the measurements and the motions are subjected to errors and this is represented by the variables sensor_right and p_move. Given a list of measurements and a list of motions the problem is to create a matrix of probability that describe where the robot is likely to be after all the specified moves.&lt;br /&gt;
&lt;br /&gt;
More information about the definition of the problem can be found on&amp;nbsp;&lt;a href="http://www.udacity.com/view#Course/cs373/CourseRev/feb2012/Unit/41002/Nugget/52001"&gt;Udacity&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I used the&amp;nbsp;&lt;a href="http://docs.python.org/library/unittest.html"&gt;python module unittest&lt;/a&gt; for this purpose.&amp;nbsp;This is one of the unit tests that I defined for the problem:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-4E_dw3Ll7UA/T0_3pIjU7rI/AAAAAAAAByQ/vS5iIGbsI3M/s1600/2012-03-01_222148.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="570" src="http://1.bp.blogspot.com/-4E_dw3Ll7UA/T0_3pIjU7rI/AAAAAAAAByQ/vS5iIGbsI3M/s640/2012-03-01_222148.png" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This is the main code that does the actual calculation:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-_7gbxoMueOE/T0_3oAVzcMI/AAAAAAAAByI/esArfFm3qz0/s1600/2012-03-01_221934.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="446" src="http://2.bp.blogspot.com/-_7gbxoMueOE/T0_3oAVzcMI/AAAAAAAAByI/esArfFm3qz0/s640/2012-03-01_221934.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The current algorithm used to solve this problem is called &lt;a href="http://en.wikipedia.org/wiki/Monte_Carlo_localization"&gt;Montecarlo Localization&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
You can find the full code in &lt;a href="http://angellaa.codeplex.com/SourceControl/changeset/changes/73534"&gt;my personal repository&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-4797447910864135340?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=y11YD8ngX0o:-gddNewTH9o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=y11YD8ngX0o:-gddNewTH9o:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=y11YD8ngX0o:-gddNewTH9o:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=y11YD8ngX0o:-gddNewTH9o:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=y11YD8ngX0o:-gddNewTH9o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=y11YD8ngX0o:-gddNewTH9o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=y11YD8ngX0o:-gddNewTH9o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=y11YD8ngX0o:-gddNewTH9o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=y11YD8ngX0o:-gddNewTH9o:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=y11YD8ngX0o:-gddNewTH9o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=y11YD8ngX0o:-gddNewTH9o:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=y11YD8ngX0o:-gddNewTH9o:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/y11YD8ngX0o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/4797447910864135340/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/03/robot-localization-using-montecarlo.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/4797447910864135340?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/4797447910864135340?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/y11YD8ngX0o/robot-localization-using-montecarlo.html" title="Robot Localization using Montecarlo Localization" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-4E_dw3Ll7UA/T0_3pIjU7rI/AAAAAAAAByQ/vS5iIGbsI3M/s72-c/2012-03-01_222148.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/03/robot-localization-using-montecarlo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08ERX0-eCp7ImA9WhVTEU8.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-3253851576637746480</id><published>2012-02-24T22:16:00.000Z</published><updated>2012-02-24T22:16:44.350Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-24T22:16:44.350Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><category scheme="http://www.blogger.com/atom/ns#" term="DotNetToscana" /><title>DotNetToscana 2012 Spring Events</title><content type="html">In this post, I would like to announce the next events organised by my .NET community in Italy called &lt;a href="http://www.dotnettoscana.org/Default.aspx"&gt;DotNetToscana&lt;/a&gt;.&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-lwkcFZl68Jw/T0gKXwpPUDI/AAAAAAAABx4/l7NkP4d_xsA/s1600/Lab.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-lwkcFZl68Jw/T0gKXwpPUDI/AAAAAAAABx4/l7NkP4d_xsA/s1600/Lab.jpg" /&gt;&lt;/a&gt;The next 17th March 2012 there&amp;nbsp;will be&amp;nbsp;the &lt;a href="http://www.dotnettoscana.org/wp7-3d-lab.aspx"&gt;"Windows Phone 7 3D Lab"&lt;/a&gt;. In this lab, Nicola Baldi is introducing how to develop a 3D game in XNA using the Windows Phone platform. During the lab, a simple but real game will be created step by step in order to learn all the main important aspects of creating a game. The event will be in Pisa, Italy. You can find more information on the &lt;a href="http://www.dotnettoscana.org/wp7-3d-lab.aspx"&gt;DotNetToscana official website&lt;/a&gt;.&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;
In April 19th, instead, there will be an important event in collaboration with Microsoft called &lt;a href="http://www.dotnettoscana.org/start-something-tour-windows-8-e-windows-phone-75.aspx"&gt;Start Something! Tour – Windows 8 e Windows Phone 7.5&lt;/a&gt;. This day is created for people that want to create and test their applications on Windows Phone (in partnership with Nokia)&amp;nbsp;and/or on Windows 8 Tablets. This is not a step by step lab, but a way to bring passionate developers together and build awesome software with the help of the Microsoft experts and the DotNetToscana stuff members. You can find more information on the &lt;a href="http://www.dotnettoscana.org/start-something-tour-windows-8-e-windows-phone-75.aspx"&gt;DotNetToscana official website&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-SvKxb-M0xYM/T0gKyUW3aXI/AAAAAAAAByA/92hyg_lBtNc/s1600/dotnettoscana.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-SvKxb-M0xYM/T0gKyUW3aXI/AAAAAAAAByA/92hyg_lBtNc/s1600/dotnettoscana.gif" /&gt;&lt;/a&gt;We have already&amp;nbsp;an idea for an event in May but it is too early to say something... stay tuned :)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
I am constantly giving my contribution in order to make these events a success but I am a little sad that I will not be able to participate this time. As you know, I am now living in&amp;nbsp;UK and&amp;nbsp;I can't always be present to all of our events. Anyway, I am very proud to be part of this growing community and I am sure that over time will become the reference point&amp;nbsp;for .NET professionals in Tuscany.&lt;/div&gt;
&lt;br /&gt;
&lt;span style="display: none;"&gt;ZUGJ5HE9MTMX&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-3253851576637746480?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=c-aKx0hgkDI:2efiBy17w_U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=c-aKx0hgkDI:2efiBy17w_U:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=c-aKx0hgkDI:2efiBy17w_U:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=c-aKx0hgkDI:2efiBy17w_U:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=c-aKx0hgkDI:2efiBy17w_U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=c-aKx0hgkDI:2efiBy17w_U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=c-aKx0hgkDI:2efiBy17w_U:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=c-aKx0hgkDI:2efiBy17w_U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=c-aKx0hgkDI:2efiBy17w_U:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=c-aKx0hgkDI:2efiBy17w_U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=c-aKx0hgkDI:2efiBy17w_U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=c-aKx0hgkDI:2efiBy17w_U:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/c-aKx0hgkDI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/3253851576637746480/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/02/dotnettoscana-2012-spring-events.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/3253851576637746480?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/3253851576637746480?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/c-aKx0hgkDI/dotnettoscana-2012-spring-events.html" title="DotNetToscana 2012 Spring Events" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-lwkcFZl68Jw/T0gKXwpPUDI/AAAAAAAABx4/l7NkP4d_xsA/s72-c/Lab.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/02/dotnettoscana-2012-spring-events.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIFSXs8eCp7ImA9WhRaE0g.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-7075069343175602281</id><published>2012-02-15T20:28:00.001Z</published><updated>2012-02-16T01:41:58.570Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-16T01:41:58.570Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Installer" /><title>Comparing two MSI Files using SuperOrca</title><content type="html">&lt;span style="display: none;"&gt;ZUGJ5HE9MTMX&lt;/span&gt;

&lt;a href="http://www.pantaray.com/msi_super_orca.html"&gt;SuperOrca&lt;/a&gt;&amp;nbsp;(from "Pantaray Research Ltd.") is a free tool that can be use to explore and manipulate MSI files.&lt;br /&gt;
&lt;br /&gt;
The two features that I like the most are the following:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Not lock the MSI file you are working on, so you can test it with other  tools or even install it while the file is still opened in SuperOrca. &lt;/li&gt;
&lt;li&gt;Provide a powerful "Compare" function that will compare two MSI files &lt;/li&gt;
&lt;/ul&gt;
It is very easy to use. &lt;br /&gt;
&lt;br /&gt;
You can find the feature in Tools&amp;nbsp;| Compare MSI Files&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-WdFrlefgwbw/TzvT_zuVWXI/AAAAAAAABwk/56GoipMJT8s/s1600/2012-02-15_154050.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="270" src="http://2.bp.blogspot.com/-WdFrlefgwbw/TzvT_zuVWXI/AAAAAAAABwk/56GoipMJT8s/s640/2012-02-15_154050.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Then you&amp;nbsp;select the two files that you want compare and press "Refresh". The results are shown in the usual way using tables.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-X0ZLEZ4K5Ys/TzvUbAOOycI/AAAAAAAABw0/i-1LmfQFOOU/s1600/2012-02-15_154011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="184" src="http://3.bp.blogspot.com/-X0ZLEZ4K5Ys/TzvUbAOOycI/AAAAAAAABw0/i-1LmfQFOOU/s640/2012-02-15_154011.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&amp;nbsp;﻿&lt;/div&gt;
From the example you can see that the property ARPCONTACT is changed from "Andrea Angella." to "Angella Andrea".&lt;br /&gt;
&lt;br /&gt;
This tool is very useful&amp;nbsp;for learning an&amp;nbsp;MSI generator tool because allow you to understand the effects of your changes.&lt;br /&gt;
&lt;br /&gt;
For my example, I simply changed the "Author" property in my setup project in Visual Studio and I rebuilt the project.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-Fbhk8y8E9cs/TzvVLoWq1DI/AAAAAAAABw8/IaCsOi1YPyM/s1600/2012-02-15_153900.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="127" src="http://4.bp.blogspot.com/-Fbhk8y8E9cs/TzvVLoWq1DI/AAAAAAAABw8/IaCsOi1YPyM/s400/2012-02-15_153900.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-4b_e_DvaCZU/TzvVM-_sv7I/AAAAAAAABxE/1PKtO6Uub38/s1600/2012-02-15_153924.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-4b_e_DvaCZU/TzvVM-_sv7I/AAAAAAAABxE/1PKtO6Uub38/s400/2012-02-15_153924.png" width="357" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Using the tool I realized that not only the "author" property is changed but also some properties in the Icon and Shortcut table.&amp;nbsp;I didn't expected this behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-XPneh1Nnooo/TzvWajt2OmI/AAAAAAAABxM/p6Z_3CMDlWY/s1600/2012-02-15_155855.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="152" src="http://4.bp.blogspot.com/-XPneh1Nnooo/TzvWajt2OmI/AAAAAAAABxM/p6Z_3CMDlWY/s640/2012-02-15_155855.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-YYHl3_Rl8RY/TzvWb87pgRI/AAAAAAAABxU/yCjxMd2MU3E/s1600/2012-02-15_155901.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="152" src="http://4.bp.blogspot.com/-YYHl3_Rl8RY/TzvWb87pgRI/AAAAAAAABxU/yCjxMd2MU3E/s640/2012-02-15_155901.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-7075069343175602281?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-5_cEuKHui4:AWprrCxUirk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-5_cEuKHui4:AWprrCxUirk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-5_cEuKHui4:AWprrCxUirk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=-5_cEuKHui4:AWprrCxUirk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-5_cEuKHui4:AWprrCxUirk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=-5_cEuKHui4:AWprrCxUirk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-5_cEuKHui4:AWprrCxUirk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-5_cEuKHui4:AWprrCxUirk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-5_cEuKHui4:AWprrCxUirk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-5_cEuKHui4:AWprrCxUirk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=-5_cEuKHui4:AWprrCxUirk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=-5_cEuKHui4:AWprrCxUirk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/-5_cEuKHui4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/7075069343175602281/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/02/comparing-two-msi-files-using-superorca.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/7075069343175602281?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/7075069343175602281?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/-5_cEuKHui4/comparing-two-msi-files-using-superorca.html" title="Comparing two MSI Files using SuperOrca" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-WdFrlefgwbw/TzvT_zuVWXI/AAAAAAAABwk/56GoipMJT8s/s72-c/2012-02-15_154050.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/02/comparing-two-msi-files-using-superorca.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8BR3c5fSp7ImA9WhRaE04.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-1550281905088124589</id><published>2012-02-15T17:51:00.000Z</published><updated>2012-02-15T19:07:36.925Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T19:07:36.925Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Installer" /><title>Exploring the Windows Installer</title><content type="html">Windows Installer is a piece of technology that we all are aware of but that few of us really know well. If you work in a small company or as a freelance developer you probably don't need to learn the complexity of Microsoft Installer and you can simply do XCopy deployments to your customers.&lt;br /&gt;
&lt;br /&gt;
If you work in a medium/big company, however, releasing the software for Windows using the Microsoft Installer is the norm and it is important to understand how it works.&lt;br /&gt;
&lt;br /&gt;
The installation process of a product&amp;nbsp;can be&amp;nbsp;extremely complex and could consist of:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Installing software dependencies&lt;/li&gt;
&lt;li&gt;Installing services (that might require stopping/restarting other services)&lt;/li&gt;
&lt;li&gt;Installing/replacing files (some could be in use)&lt;/li&gt;
&lt;li&gt;Supporting rollback in case of errors&lt;/li&gt;
&lt;li&gt;Supporting hot fix and upgrades&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;strong&gt;Windows Installer provide a standard way to install, maintain and uninstall software.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Here some of the features:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Support for atomic installation (all or nothing)&lt;/li&gt;
&lt;li&gt;Support for repair (fix a broken application)&lt;/li&gt;
&lt;li&gt;Ability to share files&lt;/li&gt;
&lt;li&gt;Integrated into Windows&lt;/li&gt;
&lt;li&gt;WMI provider to query configuration, installed products and MSI files&lt;/li&gt;
&lt;li&gt;Built-in support for installing .Net assemblies into the GAC&lt;/li&gt;
&lt;li&gt;Ability to install per-user or per-machine (registry keys in HKCU or HKLM)&lt;/li&gt;
&lt;li&gt;Support for upgrade and fixes&lt;/li&gt;
&lt;li&gt;Support to run custom code (custom actions)&lt;/li&gt;
&lt;/ul&gt;
The latest version of Windows Installer is Windows Installer 5.0 that is available only for Microsoft Windows 7 and Windows Server 2008 R2. This is quite limiting and for this reason is probably reasonable to use an older version like Windows Installer 3.1 that support Windows Server 2003, Windows XP, or     Windows 2000 with Service Pack 3 (SP3).&lt;br /&gt;
&lt;br /&gt;
More information in &lt;a href="http://msdn.microsoft.com/en-us/library/windows/desktop/cc185688(v=vs.85).aspx"&gt;Windows Installer on MSDN&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
There are two important components:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Windows Installer Package (MSI file)&lt;/li&gt;
&lt;li&gt;Windows Installer Service&lt;/li&gt;
&lt;/ul&gt;
The&amp;nbsp;MSI file&amp;nbsp;represents a setup file that the user can launch in order to install&amp;nbsp;an application while the Installer Service is a Windows Service that is responsible of the installation process.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-LNSjvASnrnk/TzrjRQELPRI/AAAAAAAABt0/DAV73AsMuWk/s1600/2012-02-14_174712.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="282" src="http://2.bp.blogspot.com/-LNSjvASnrnk/TzrjRQELPRI/AAAAAAAABt0/DAV73AsMuWk/s640/2012-02-14_174712.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
There are&amp;nbsp;different ways of creating installer packages and the three more important are:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Visual Studio Setup and Deployment Projects&lt;/li&gt;
&lt;li&gt;InstallShield 2010 Limited Edition&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wix.sourceforge.net/"&gt;Windows Installer XML Toolset&lt;/a&gt;&amp;nbsp;(Wix)&lt;/li&gt;
&lt;/ul&gt;
In the following page if can see a feature comparison of these tools: &lt;a href="http://msdn.microsoft.com/en-us/library/ee721500.aspx"&gt;Choosing a Windows Installer Deployment Tool&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
It is clear that Wix is the more flexible and powerful way for generation MSIs. The disadvantages are that is difficult to learn and&amp;nbsp;the absence of a designer to customise the installer. Anyway, I don't want to talk about Wix in this post and I will simply use the Visual Studio Setup project.&lt;br /&gt;
&lt;br /&gt;
It is important to notice that &lt;strong&gt;Microsoft intention is to drop the support of the Visual Studio Setup project in the future versions of Visual Studio&lt;/strong&gt;:&lt;br /&gt;
&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;&lt;blockquote class="tr_bq"&gt;
Caution: Future versions of Visual Studio will not include the Visual Studio Installer project templates. To preserve existing customer investments in Visual Studio Installer projects, Microsoft will continue to support the Visual Studio Installer projects that shipped with Visual Studio 2010 per the product life-cycle strategy.&lt;/blockquote&gt;
&lt;/em&gt;&lt;br /&gt;
In order to explore the windows installer I created a simple WPF app called MyApp and a setup project. It is all so easy.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-lOXYBWEFJtU/TzrmC7_ocoI/AAAAAAAABt8/3xx84dskqFM/s1600/2012-02-14_164556.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="318" src="http://2.bp.blogspot.com/-lOXYBWEFJtU/TzrmC7_ocoI/AAAAAAAABt8/3xx84dskqFM/s640/2012-02-14_164556.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-flm57zPXRRs/TzrmM-8jhiI/AAAAAAAABuE/A6rmtANjnlo/s1600/2012-02-14_164857.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://2.bp.blogspot.com/-flm57zPXRRs/TzrmM-8jhiI/AAAAAAAABuE/A6rmtANjnlo/s640/2012-02-14_164857.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-qE0W4MDD-PA/TzrmQKWzlaI/AAAAAAAABuM/FYNxqoIzc8g/s1600/2012-02-14_165018.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="208" src="http://4.bp.blogspot.com/-qE0W4MDD-PA/TzrmQKWzlaI/AAAAAAAABuM/FYNxqoIzc8g/s640/2012-02-14_165018.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ylPN844oyY4/Tzrmm6Ws58I/AAAAAAAABus/cYY8PkAyXeI/s1600/2012-02-14_171518.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="194" src="http://2.bp.blogspot.com/-ylPN844oyY4/Tzrmm6Ws58I/AAAAAAAABus/cYY8PkAyXeI/s640/2012-02-14_171518.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-uvRla7wvEzk/Tzrmup2gxSI/AAAAAAAABu0/oiX3TlN0-is/s1600/2012-02-14_171529.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="90" src="http://3.bp.blogspot.com/-uvRla7wvEzk/Tzrmup2gxSI/AAAAAAAABu0/oiX3TlN0-is/s640/2012-02-14_171529.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-t8Mzk5Zrwjo/TzrmUw0ZJ8I/AAAAAAAABuU/kD8JTfIYVP4/s1600/2012-02-14_165558.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-t8Mzk5Zrwjo/TzrmUw0ZJ8I/AAAAAAAABuU/kD8JTfIYVP4/s1600/2012-02-14_165558.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-kVc0BexTvTY/TzrtdnO2dgI/AAAAAAAABwc/UB3DYGsT4Rw/s1600/2012-02-14_165456.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-kVc0BexTvTY/TzrtdnO2dgI/AAAAAAAABwc/UB3DYGsT4Rw/s640/2012-02-14_165456.png" width="484" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-UKAfrLLtDqI/Tzrma1eU9RI/AAAAAAAABuc/YOnwV4ux6Xs/s1600/2012-02-14_165814.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="455" src="http://3.bp.blogspot.com/-UKAfrLLtDqI/Tzrma1eU9RI/AAAAAAAABuc/YOnwV4ux6Xs/s640/2012-02-14_165814.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
If you build the setup project, the result will be an MSI file that you can delivery to customer:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-p9aHSngH6sw/TzrmfGBQAgI/AAAAAAAABuk/QWMgIN2qbDE/s1600/2012-02-14_170124.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="152" src="http://4.bp.blogspot.com/-p9aHSngH6sw/TzrmfGBQAgI/AAAAAAAABuk/QWMgIN2qbDE/s640/2012-02-14_170124.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;The setup experience is something we are quite familiar:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-MacR8dAG5EY/TzrnjMc_2MI/AAAAAAAABu8/LREAq0DVZ7A/s1600/2012-02-14_170243.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="259" src="http://3.bp.blogspot.com/-MacR8dAG5EY/TzrnjMc_2MI/AAAAAAAABu8/LREAq0DVZ7A/s320/2012-02-14_170243.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-BsophpmbM3E/TzrnqMwXbOI/AAAAAAAABvE/Uwwhuzy3zvQ/s1600/2012-02-14_170251.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="259" src="http://2.bp.blogspot.com/-BsophpmbM3E/TzrnqMwXbOI/AAAAAAAABvE/Uwwhuzy3zvQ/s320/2012-02-14_170251.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Y6R8_9YS4J0/TzrnsfcXpAI/AAAAAAAABvM/RqiB2nqlWCk/s1600/2012-02-14_170258.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="260" src="http://1.bp.blogspot.com/-Y6R8_9YS4J0/TzrnsfcXpAI/AAAAAAAABvM/RqiB2nqlWCk/s320/2012-02-14_170258.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-j-6pIlOlleM/Tzrnu3ZoiQI/AAAAAAAABvU/0R7-plfF94o/s1600/2012-02-14_170305.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="260" src="http://3.bp.blogspot.com/-j-6pIlOlleM/Tzrnu3ZoiQI/AAAAAAAABvU/0R7-plfF94o/s320/2012-02-14_170305.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-5zTAD5RdIxI/TzrnxJPQE3I/AAAAAAAABvc/gyrjyILzmMM/s1600/2012-02-14_170319.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="260" src="http://4.bp.blogspot.com/-5zTAD5RdIxI/TzrnxJPQE3I/AAAAAAAABvc/gyrjyILzmMM/s320/2012-02-14_170319.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The interesting think about&amp;nbsp;MSI file&amp;nbsp;is the following:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;An MSI file is substantially a&amp;nbsp;database made of tables with rows and columns.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
There is a tool called &lt;a href="http://www.technipages.com/download-orca-msi-editor"&gt;Orca&lt;/a&gt; that can be used to explore the content of an MSI. This tool has been created by Microsoft but it is not more officially supported. An alternative is &lt;a href="http://www.pantaray.com/msi_super_orca.html"&gt;SuperOrca&lt;/a&gt;.&lt;br /&gt;
Once you installed Orca you can right click an MSI file and&amp;nbsp;edit the file in Orca.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-4YGKarUkTm0/TzrpQfMUoXI/AAAAAAAABvk/fU9BWiRFZfc/s1600/2012-02-14_171607.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="148" src="http://3.bp.blogspot.com/-4YGKarUkTm0/TzrpQfMUoXI/AAAAAAAABvk/fU9BWiRFZfc/s640/2012-02-14_171607.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You can see the tables in the left panel and the rows in the right panel. As you can see, there is a single component (MyApp.exe) with the version 1.0.0.0&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-eLEr6GNXQmo/TzrpkXMyvFI/AAAAAAAABvs/POKFkdwLvsg/s1600/2012-02-14_172614.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="http://3.bp.blogspot.com/-eLEr6GNXQmo/TzrpkXMyvFI/AAAAAAAABvs/POKFkdwLvsg/s640/2012-02-14_172614.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
The table Property contain various properties with values. An important property is &lt;strong&gt;ProductCode&lt;/strong&gt; that is a GUID that identify the product uniquely. The Windows Installer Services uses it to determine whether your product is already present on a system.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-xvcFLcAao_U/TzrqS6jT3jI/AAAAAAAABv0/Pu-1AfbN6NI/s1600/2012-02-14_174142.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="344" src="http://3.bp.blogspot.com/-xvcFLcAao_U/TzrqS6jT3jI/AAAAAAAABv0/Pu-1AfbN6NI/s640/2012-02-14_174142.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
In addition there is the &lt;strong&gt;PackageCode &lt;/strong&gt;that identify the individual MSI and it is used to distinguish between different builds of the same product:&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-6acOe987QUY/TzrqY3-4Z7I/AAAAAAAABwE/pk6HDfvqHjc/s1600/2012-02-14_175149.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="302" src="http://4.bp.blogspot.com/-6acOe987QUY/TzrqY3-4Z7I/AAAAAAAABwE/pk6HDfvqHjc/s320/2012-02-14_175149.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
If I try to run the same installer again (same ProductCode and Package code), the system recognise that the product is already installed and prompt for repairing or removing the product.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-NXQbQqDDHkE/TzrsQmEmVmI/AAAAAAAABwM/0r_tBCc5Les/s1600/2012-02-14_175634.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="326" src="http://2.bp.blogspot.com/-NXQbQqDDHkE/TzrsQmEmVmI/AAAAAAAABwM/0r_tBCc5Les/s400/2012-02-14_175634.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Instead, if I rebuild the setup project in Visual Studio I get an new MSI with a new PackageCode (while the ProductCode will&amp;nbsp;remain the same). In that case, when I try run the installer, I get an error:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-zna1-2c9LiI/TzrsuvSKPAI/AAAAAAAABwU/tSpzMcnF49w/s1600/2012-02-14_175702.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="252" src="http://2.bp.blogspot.com/-zna1-2c9LiI/TzrsuvSKPAI/AAAAAAAABwU/tSpzMcnF49w/s400/2012-02-14_175702.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You can find the simple code in my personal repository:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://angellaa.codeplex.com/SourceControl/changeset/changes/73057"&gt;Basic Visual Studio Setup Project&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
The important lesson to take away are:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Windows Installer is the standard way to install, maintain and uninstall software on Windows.&lt;/li&gt;
&lt;li&gt;Wix is the more flexible way to generate MSI files.&lt;/li&gt;
&lt;li&gt;The Visual Studio Setup Project is the easiest way to generate MSI files.&lt;/li&gt;
&lt;li&gt;An MSI file is a database.&lt;/li&gt;
&lt;li&gt;You can explore the content of an MSI file using the tool Orca.&lt;/li&gt;
&lt;li&gt;The ProductCode&amp;nbsp;identify the product uniquely.&lt;/li&gt;
&lt;li&gt;The PackageCode identify the individual MSI.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-1550281905088124589?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=VJZAfzrmXGU:a7fpdM_42wk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=VJZAfzrmXGU:a7fpdM_42wk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=VJZAfzrmXGU:a7fpdM_42wk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=VJZAfzrmXGU:a7fpdM_42wk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=VJZAfzrmXGU:a7fpdM_42wk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=VJZAfzrmXGU:a7fpdM_42wk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=VJZAfzrmXGU:a7fpdM_42wk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=VJZAfzrmXGU:a7fpdM_42wk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=VJZAfzrmXGU:a7fpdM_42wk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=VJZAfzrmXGU:a7fpdM_42wk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=VJZAfzrmXGU:a7fpdM_42wk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=VJZAfzrmXGU:a7fpdM_42wk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/VJZAfzrmXGU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/1550281905088124589/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/02/exploring-windows-installer.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/1550281905088124589?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/1550281905088124589?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/VJZAfzrmXGU/exploring-windows-installer.html" title="Exploring the Windows Installer" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-LNSjvASnrnk/TzrjRQELPRI/AAAAAAAABt0/DAV73AsMuWk/s72-c/2012-02-14_174712.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/02/exploring-windows-installer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIFR3s4fSp7ImA9WhRaE04.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-2143612969354444312</id><published>2012-02-14T02:03:00.000Z</published><updated>2012-02-15T19:01:56.535Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T19:01:56.535Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>Learning the basics of Python in an evening</title><content type="html">I decided to enroll the free two courses delivered by &lt;a href="http://www.udacity.com/"&gt;Udacity&lt;/a&gt;: &lt;a href="http://www.udacity.com/cs#101"&gt;Building a Search Engine&lt;/a&gt; and &lt;a href="http://www.udacity.com/cs#373"&gt;Programming a Robotic Car&lt;/a&gt;. There will be programming contests and the language used will be Python. I never programmed in Python before and so I decided to start learning the language.&lt;br /&gt;
&lt;br /&gt;
If you already know a language like Java, C# or C++ learning Python is relatively easy.&lt;br /&gt;
&lt;br /&gt;
I started to&amp;nbsp;quickly read the official tutorial:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://docs.python.org/py3k/tutorial/index.html"&gt;The Python Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
I think that it is quite good as a starting point and teach you all the basics: control flows, data structures, modules, input and output, errors and exceptions, classes and&amp;nbsp;standard library.&lt;br /&gt;
&lt;br /&gt;
An another interesting resource is &lt;a href="http://www.korokithakis.net/tutorials/python/"&gt;Learning Python in 10 minutes&lt;/a&gt;. This collects in a single post the basic Python syntax.&lt;br /&gt;
&lt;br /&gt;
After the following reading I decided to start doing a simple coding session. I decided to implement a Code Kata and in particular the &lt;a href="http://codekata.pragprog.com/2007/01/kata_four_data_.html"&gt;Kata Four: Data Munging&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
First of all, I installed the python engine:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://python.org/download/releases/2.7.2/"&gt;Python 2.7&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
I decided to use the version 2.7 instead of the latest 3.2. It seems that the latest is quite recent and there are lots of breaking changes and the conversation process of many libraries is still in progress.&lt;br /&gt;
&lt;br /&gt;
The next step is installing the development environment. It seems that there is a &lt;a href="http://stackoverflow.com/questions/81584/what-ide-to-use-for-python"&gt;unproportional list of editors out there to develop in Python&lt;/a&gt;. I personally love Visual Studio and the idea of a single integrated environment and for this reason I found a Python extension for Visual Studio that was perfect for me:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://pytools.codeplex.com/"&gt;Python Tools for Visual Studio&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
Ready !!!&lt;br /&gt;
&lt;br /&gt;
You can create a new project in the usual way:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-QciitGsvvuc/Tzm7D_sNhiI/AAAAAAAABs4/DONiQn8-ocw/s1600/NewProject.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="430" src="http://3.bp.blogspot.com/-QciitGsvvuc/Tzm7D_sNhiI/AAAAAAAABs4/DONiQn8-ocw/s640/NewProject.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
and start adding files in the solution explorer:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-2HEc0HoHNjM/Tzm7phBceyI/AAAAAAAABtE/HQvUnNI_0LQ/s1600/SolutionExplorer.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://2.bp.blogspot.com/-2HEc0HoHNjM/Tzm7phBceyI/AAAAAAAABtE/HQvUnNI_0LQ/s320/SolutionExplorer.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The tool has also some good intellisense that helps in writing code. Considering that Python is a dynamic language this is quite impressive. &lt;br /&gt;
&lt;br /&gt;
Here few examples:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-lqJjfdartI8/Tzm8UJuPsbI/AAAAAAAABtM/WHi4pMDZ_jI/s1600/2012-02-14_014325.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="287" src="http://3.bp.blogspot.com/-lqJjfdartI8/Tzm8UJuPsbI/AAAAAAAABtM/WHi4pMDZ_jI/s320/2012-02-14_014325.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-c-Sr--TsMeY/Tzm9Z4mUFwI/AAAAAAAABtU/BSIqpNR5E84/s1600/2012-02-14_014505.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://4.bp.blogspot.com/-c-Sr--TsMeY/Tzm9Z4mUFwI/AAAAAAAABtU/BSIqpNR5E84/s400/2012-02-14_014505.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-ZT8X3YsGY0U/Tzm9b-RFYoI/AAAAAAAABtc/IWFj9hQAis4/s1600/2012-02-14_014543.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="125" src="http://4.bp.blogspot.com/-ZT8X3YsGY0U/Tzm9b-RFYoI/AAAAAAAABtc/IWFj9hQAis4/s400/2012-02-14_014543.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-lxdGIfOUqMo/Tzm9dsbge1I/AAAAAAAABtk/q7mo2zkuHPc/s1600/2012-02-14_014728.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="260" src="http://3.bp.blogspot.com/-lxdGIfOUqMo/Tzm9dsbge1I/AAAAAAAABtk/q7mo2zkuHPc/s400/2012-02-14_014728.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This is an extract of the code: &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-TvYDL6UkJAA/TznAJHchveI/AAAAAAAABts/7Gojx253Vns/s1600/2012-02-14_015948.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="542" src="http://1.bp.blogspot.com/-TvYDL6UkJAA/TznAJHchveI/AAAAAAAABts/7Gojx253Vns/s640/2012-02-14_015948.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find the complete source code in my personal repository:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://angellaa.codeplex.com/SourceControl/changeset/changes/73030"&gt;Kata Four: Data Munging in Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
I think that the best way to learn Python is using it. I am looking forward to play with it during the courses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-2143612969354444312?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=47ZCJbBEBpU:VNhh-xA6vpU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=47ZCJbBEBpU:VNhh-xA6vpU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=47ZCJbBEBpU:VNhh-xA6vpU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=47ZCJbBEBpU:VNhh-xA6vpU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=47ZCJbBEBpU:VNhh-xA6vpU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=47ZCJbBEBpU:VNhh-xA6vpU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=47ZCJbBEBpU:VNhh-xA6vpU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=47ZCJbBEBpU:VNhh-xA6vpU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=47ZCJbBEBpU:VNhh-xA6vpU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=47ZCJbBEBpU:VNhh-xA6vpU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=47ZCJbBEBpU:VNhh-xA6vpU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=47ZCJbBEBpU:VNhh-xA6vpU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/47ZCJbBEBpU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/2143612969354444312/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/02/learning-basics-of-python-in-evening.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/2143612969354444312?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/2143612969354444312?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/47ZCJbBEBpU/learning-basics-of-python-in-evening.html" title="Learning the basics of Python in an evening" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-QciitGsvvuc/Tzm7D_sNhiI/AAAAAAAABs4/DONiQn8-ocw/s72-c/NewProject.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/02/learning-basics-of-python-in-evening.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIAQ345eCp7ImA9WhRaE04.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-6140796023058149901</id><published>2012-02-04T09:41:00.000Z</published><updated>2012-02-15T19:02:22.020Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T19:02:22.020Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="University" /><title>Democratizing Higher Education</title><content type="html">Last year, I have been part of the first step in the upcoming revolution of education. I took an online&amp;nbsp;class on "&lt;a href="https://www.ai-class.com/home/"&gt;Introduction to Artificial Intelligence&lt;/a&gt;" and the experience has been great. I love learning and I truly believe in the importance of higher quality education at lower cost delivered through Internet everywhere at anytime.&lt;br /&gt;
&lt;br /&gt;
There are already some outstanding experiments&amp;nbsp;out there:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.khanacademy.org/"&gt;Khan&amp;nbsp;Academy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ocw.mit.edu/index.htm"&gt;MIT Open Courseware&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
Both offer interesting lessons on a broad range of topics for free. The topics are not strictly related with computer science.&lt;br /&gt;
&lt;br /&gt;
I believe that people love learning but at the same time people want to be able to add their new skills on their CV. For this reason, it is important to organise exams and give certificates. The most important thing is price: price have to be very low in order to make education available to all the people.&lt;br /&gt;
There is now a new&amp;nbsp;exiting project that is called &lt;a href="http://www.udacity.com/"&gt;Udacity&lt;/a&gt; with exactly this purpose in mind. The classes will be free of cost and all about computer science topics (at the moment). &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Classes start on 20th February 2012 but courses will be offered again starting April 16, 2012.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
The most exiting thing for me is that now they have a programming environment, so you can develop and test software. This means that there will be programming problems to solve in order to pass the course.&lt;br /&gt;
&lt;br /&gt;
An another upcoming project&amp;nbsp;is &lt;a href="http://web.mit.edu/newsoffice/2011/mitx-education-initiative-1219.html"&gt;MITx&lt;/a&gt;&amp;nbsp;that will offer a portfolio of MIT courses through an online interactive learning platform. I am very curious to see what will happen.&lt;br /&gt;
&lt;br /&gt;
We will have plenty of cool things to learn... as usual is all about prioritising and finding the time for studying.&lt;br /&gt;
&lt;br /&gt;
Sebastian Thrun resigns from Stanford to Launch Udacity. &lt;span class="hps"&gt;I have a&lt;/span&gt; &lt;span class="hps"&gt;great respect&lt;/span&gt; &lt;span class="hps"&gt;for this man&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://1.gvt0.com/vi/SkneoNrfadk/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/SkneoNrfadk&amp;fs=1&amp;source=uds" /&gt;
&lt;param name="bgcolor" value="#FFFFFF" /&gt;
&lt;embed width="320" height="266"  src="http://www.youtube.com/v/SkneoNrfadk&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-6140796023058149901?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=rlNJI5HqKIQ:Vp76dTVWZVo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=rlNJI5HqKIQ:Vp76dTVWZVo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=rlNJI5HqKIQ:Vp76dTVWZVo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=rlNJI5HqKIQ:Vp76dTVWZVo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=rlNJI5HqKIQ:Vp76dTVWZVo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=rlNJI5HqKIQ:Vp76dTVWZVo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=rlNJI5HqKIQ:Vp76dTVWZVo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=rlNJI5HqKIQ:Vp76dTVWZVo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=rlNJI5HqKIQ:Vp76dTVWZVo:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=rlNJI5HqKIQ:Vp76dTVWZVo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=rlNJI5HqKIQ:Vp76dTVWZVo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=rlNJI5HqKIQ:Vp76dTVWZVo:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/rlNJI5HqKIQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/6140796023058149901/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/02/democratizing-higher-education.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/6140796023058149901?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/6140796023058149901?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/rlNJI5HqKIQ/democratizing-higher-education.html" title="Democratizing Higher Education" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/02/democratizing-higher-education.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcCQ3ozeCp7ImA9WhRbEkw.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-1267824001901710766</id><published>2012-01-31T00:12:00.000Z</published><updated>2012-02-02T21:27:42.480Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-02T21:27:42.480Z</app:edited><title>Waterloo Game Analysis</title><content type="html">Microsoft created the &lt;a href="http://research.microsoft.com/en-us/projects/researchgames/"&gt;Facebook Game Waterloo&lt;/a&gt;&amp;nbsp;in order to do some research on game theories.&lt;br /&gt;
&lt;br /&gt;
Tonight, just for fun, I wanted to create a piece of software that enumerate all the possible combinations and find the move with the highest probability of win (one Nash Equilibrium).&lt;br /&gt;
&lt;br /&gt;
I created it using a simple C# console application.&lt;br /&gt;
&lt;br /&gt;
First of all, I created a function that returns a list of all possible moves for each player (the funniest part):&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-fLoIKMZqsEk/Tycot6JxhRI/AAAAAAAABrI/baaKQlCV1u4/s1600/Capture.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="519" src="http://2.bp.blogspot.com/-fLoIKMZqsEk/Tycot6JxhRI/AAAAAAAABrI/baaKQlCV1u4/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
After that, for each pair of moves, I calculated the number of wins and finally get the better move.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-qR7FVmnSOkU/TycplP5kthI/AAAAAAAABrQ/Ed6KQzF7hlA/s1600/Capture2.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="372" src="http://2.bp.blogspot.com/-qR7FVmnSOkU/TycplP5kthI/AAAAAAAABrQ/Ed6KQzF7hlA/s640/Capture2.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The implementation of the&amp;nbsp;Win extension method:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-mmTGLaX4ihw/TycqNWVcOkI/AAAAAAAABrY/BOD0DS2uwEc/s1600/Capture3.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="139" src="http://3.bp.blogspot.com/-mmTGLaX4ihw/TycqNWVcOkI/AAAAAAAABrY/BOD0DS2uwEc/s640/Capture3.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
and the main body:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-WXMVu6fQUpg/TycqjihW8CI/AAAAAAAABrg/2_dtMq4ans8/s1600/Capture5.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="86" src="http://4.bp.blogspot.com/-WXMVu6fQUpg/TycqjihW8CI/AAAAAAAABrg/2_dtMq4ans8/s400/Capture5.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
This is the output of&amp;nbsp;the basic example:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-WyrYlqmGffY/Tycq_ID1qZI/AAAAAAAABro/9mvRF313nwg/s1600/Capture.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="447" src="http://2.bp.blogspot.com/-WyrYlqmGffY/Tycq_ID1qZI/AAAAAAAABro/9mvRF313nwg/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
Using total = 15 and n = 5 the result is:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-B0Mf5isNe5Y/Tycr9f0IH6I/AAAAAAAABrw/cH4dcCago9s/s1600/Capture.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="158" src="http://2.bp.blogspot.com/-B0Mf5isNe5Y/Tycr9f0IH6I/AAAAAAAABrw/cH4dcCago9s/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The Waterloo game use total = 100 and n = 5. With these numbers the code is too slow to terminate but you can easily guess that the result will be (20, 20, 20, 20, 20).&lt;br /&gt;
&lt;br /&gt;
If you are curious about the total number of possible moves in Waterloo I can tell you this with the following code. The code analyse a specific Waterloo move telling you what is the probability of win in addition to the total number of moves.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-CpYIbkCPz98/TyctGRcI6eI/AAAAAAAABr4/puHFaEeBMLY/s1600/Capture.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="231" src="http://4.bp.blogspot.com/-CpYIbkCPz98/TyctGRcI6eI/AAAAAAAABr4/puHFaEeBMLY/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;&lt;a href="http://4.bp.blogspot.com/-SUfVhIImwlw/TyctYuwjaRI/AAAAAAAABsA/FJPni_rdTVM/s1600/Capture.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="80" src="http://4.bp.blogspot.com/-SUfVhIImwlw/TyctYuwjaRI/AAAAAAAABsA/FJPni_rdTVM/s400/Capture.PNG" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
The output:&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-vtuzIUIU8Xk/TycuL_TnyCI/AAAAAAAABsI/h9EqXb8680Q/s1600/Capture.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="112" src="http://3.bp.blogspot.com/-vtuzIUIU8Xk/TycuL_TnyCI/AAAAAAAABsI/h9EqXb8680Q/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
So, the total number of moves is &lt;strong&gt;4598126&lt;/strong&gt; !!!&lt;br /&gt;
&lt;br /&gt;
The move&amp;nbsp;(20, 20, 20, 20, 20) is the "best move" in terms of probability. However, if you play against a human being it is probably easier to come up with a solution like (33, 33, 34, 0, 0) or (34, 34, 11, 11, 10). In both the cases, if you use the&amp;nbsp;"best move"&amp;nbsp;you lost.&lt;br /&gt;
&lt;br /&gt;
Let's see the result using (33, 33, 34, 0, 0):&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-GPURjAM12sc/Tycu--_oAGI/AAAAAAAABsQ/IkCxna3q_qM/s1600/Capture.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="112" src="http://3.bp.blogspot.com/-GPURjAM12sc/Tycu--_oAGI/AAAAAAAABsQ/IkCxna3q_qM/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let's see the result using (34, 34, 11, 11, 10):&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-gL5hy5KXn4k/TycvYfVTabI/AAAAAAAABsY/ngJF3HelKbc/s1600/Capture.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="112" src="http://2.bp.blogspot.com/-gL5hy5KXn4k/TycvYfVTabI/AAAAAAAABsY/ngJF3HelKbc/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Arrived at this point I feel a little bit lost. What is the best solution?&lt;br /&gt;
&lt;br /&gt;
Probably there are more Nash Equilibrium's and the solution should be a probabilistic strategy instead of a simple move.&lt;br /&gt;
&lt;br /&gt;
Let's see what will be the result of the research.&lt;br /&gt;
&lt;br /&gt;
If you want to learn more about Game Theory, you can watch this introduction course taken from the Artificial Intelligence class:&lt;br /&gt;
&lt;a href="https://www.ai-class.com/course/video/videolecture/164"&gt;https://www.ai-class.com/course/video/videolecture/164&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You can find the full source code in my personal repository: &lt;a href="http://angellaa.codeplex.com/SourceControl/changeset/view/72684#1540062"&gt;Waterloo Game&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;UPDATE: Code from IanS&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
IanS proposed a recurvise implementation of the "combinations" algorithm. It it probably slower then mine (it is a recursive algorithm) but has the advantage of readability. This solution has the interesting property of not using any explicit assignments or increment operations. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-bSYxwLvALNI/Tyr_rxYJClI/AAAAAAAABso/aIRUczDZN10/s1600/Capture.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="16" src="http://4.bp.blogspot.com/-bSYxwLvALNI/Tyr_rxYJClI/AAAAAAAABso/aIRUczDZN10/s400/Capture.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-ck5pWRaHJoE/Tyr-tTaOScI/AAAAAAAABsg/wq-sixsqEjA/s1600/Capture.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="270" src="http://3.bp.blogspot.com/-ck5pWRaHJoE/Tyr-tTaOScI/AAAAAAAABsg/wq-sixsqEjA/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Thank you Ian for your feedback.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-1267824001901710766?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=6f7GbA52H9o:37iEgPP_ZFA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=6f7GbA52H9o:37iEgPP_ZFA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=6f7GbA52H9o:37iEgPP_ZFA:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=6f7GbA52H9o:37iEgPP_ZFA:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=6f7GbA52H9o:37iEgPP_ZFA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=6f7GbA52H9o:37iEgPP_ZFA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=6f7GbA52H9o:37iEgPP_ZFA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=6f7GbA52H9o:37iEgPP_ZFA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=6f7GbA52H9o:37iEgPP_ZFA:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=6f7GbA52H9o:37iEgPP_ZFA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=6f7GbA52H9o:37iEgPP_ZFA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=6f7GbA52H9o:37iEgPP_ZFA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/6f7GbA52H9o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/1267824001901710766/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/01/waterloo-game-analysis.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/1267824001901710766?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/1267824001901710766?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/6f7GbA52H9o/waterloo-game-analysis.html" title="Waterloo Game Analysis" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-fLoIKMZqsEk/Tycot6JxhRI/AAAAAAAABrI/baaKQlCV1u4/s72-c/Capture.PNG" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/01/waterloo-game-analysis.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEGQHs5cCp7ImA9WhRaE04.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-1785115128286520517</id><published>2012-01-29T15:51:00.001Z</published><updated>2012-02-15T19:03:41.528Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T19:03:41.528Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Life" /><title>Unlimited Internet and my new Android device</title><content type="html">Yesterday, I finally solved an important problem.

&lt;br /&gt;
&lt;br /&gt;
As many of you know, I am living in UK while my girlfriend live partially here and partially in Italy. We tend to stay quite in touch with each other but this costs me a lot of money. Unfortunately there&amp;nbsp;are&amp;nbsp;no telephone companies with&amp;nbsp;offers on text between countries.

&lt;br /&gt;
&lt;br /&gt;
The solution? &lt;strong&gt;Unlimited Mobile Internet&lt;/strong&gt;.

&lt;br /&gt;
&lt;br /&gt;
We started from the following situation:&lt;a href="http://2.bp.blogspot.com/-DfR3wWjSnzM/TyVnkj8otSI/AAAAAAAABqs/qB1Ek84SMmI/s1600/LG-Optimus-7_50526_1.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="181" src="http://2.bp.blogspot.com/-DfR3wWjSnzM/TyVnkj8otSI/AAAAAAAABqs/qB1Ek84SMmI/s200/LG-Optimus-7_50526_1.jpg" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;I have a vodafone italian card without Internet access&lt;/li&gt;
&lt;li&gt;I have a Windows Phone&amp;nbsp;7 device (LG Optimus 7)&lt;/li&gt;
&lt;li&gt;She has a vodafone italian card without Internet access&lt;/li&gt;
&lt;li&gt;She hasn't a smart phone&lt;/li&gt;
&lt;/ul&gt;
We decided to move to 3 and get two UK Sim cards with unlimited Internet and the offer with two android devices (two years plan). I could simply buy the Sim card and using my Windows Phone but the price was almost similar. I choose an Android device because it was silly to me to have two Windows Phones.&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-8skx550dWPo/TyVnohMdKjI/AAAAAAAABq8/_Yt2UrMb6WI/s1600/Sony_Ericsson_XPERIA_X10_Black-01.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="136" src="http://1.bp.blogspot.com/-8skx550dWPo/TyVnohMdKjI/AAAAAAAABq8/_Yt2UrMb6WI/s200/Sony_Ericsson_XPERIA_X10_Black-01.jpg" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;
The situation is now:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;We both have a smart phone with Android &lt;br /&gt;(Sony Ericsson XPERIA)&lt;/li&gt;
&lt;li&gt;I have a Windows Phone 7 device with my Italian Sim card&lt;/li&gt;
&lt;li&gt;We both have Unlimited Internet in UK&lt;/li&gt;
&lt;li&gt;We both have lots of text and calls for free every month&lt;/li&gt;
&lt;li&gt;I reduced&amp;nbsp;my telephone costs of more than 50%&lt;/li&gt;
&lt;/ul&gt;
Yesterday, I played all the day with my new phone :)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Having Unlimited Internet is awesome. You feels like the entire world is in your hand.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Fantastic !!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-1785115128286520517?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=MvnE7jIS6mA:ECyALan6uJw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=MvnE7jIS6mA:ECyALan6uJw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=MvnE7jIS6mA:ECyALan6uJw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=MvnE7jIS6mA:ECyALan6uJw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=MvnE7jIS6mA:ECyALan6uJw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=MvnE7jIS6mA:ECyALan6uJw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=MvnE7jIS6mA:ECyALan6uJw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=MvnE7jIS6mA:ECyALan6uJw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=MvnE7jIS6mA:ECyALan6uJw:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=MvnE7jIS6mA:ECyALan6uJw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=MvnE7jIS6mA:ECyALan6uJw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=MvnE7jIS6mA:ECyALan6uJw:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/MvnE7jIS6mA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/1785115128286520517/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/01/unlimited-internet-and-my-new-android.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/1785115128286520517?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/1785115128286520517?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/MvnE7jIS6mA/unlimited-internet-and-my-new-android.html" title="Unlimited Internet and my new Android device" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-DfR3wWjSnzM/TyVnkj8otSI/AAAAAAAABqs/qB1Ek84SMmI/s72-c/LG-Optimus-7_50526_1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/01/unlimited-internet-and-my-new-android.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEGQHs4eyp7ImA9WhRaE04.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-2406083986745106122</id><published>2012-01-29T11:36:00.000Z</published><updated>2012-02-15T19:03:41.533Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T19:03:41.533Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Life" /><title>My New Official Blog</title><content type="html">Hello,&lt;br /&gt;
&lt;br /&gt;
It is a while that I am considering ways to centralise my presence on the web and I finally decided what to do.&lt;br /&gt;
&lt;br /&gt;
Until now I had three blogs and one personal web site:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.ugidotnet.org/angellaa/Default.aspx"&gt;Technical Italian Blog&lt;/a&gt;&amp;nbsp;(Hosted by UgiDotNet)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.ugidotnet.org/angellaa-en/Default.aspx"&gt;Technical English Blog&lt;/a&gt; (Hosted by UgiDotNet)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://angellaandrea84.wordpress.com/"&gt;Life Blog&lt;/a&gt; (Hosted by Word Press, my old windows live blog)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.angellaa.it/"&gt;Personal Homepage&lt;/a&gt; (Personal Hosted Plan)&lt;/li&gt;
&lt;/ul&gt;
In the past, I made the decision to separate technical blogs from personal blogs and trying to differentiate between Italian and English but actually I realised that has been a very very bad decision. When I wanted to create&amp;nbsp;a post I had to decide the language to use and try to identify the type of content in order to choose where to write. However sometimes it is difficult to make this choice because some content are both technical and personal. In addition creating a pure impersonal technical blog is sad. For this reason I often mixed the things in strange ways loosing completely my original intention to differentiate. The advent of Facebook changed the rules significantly because I started to publish my personal stuffs there so&amp;nbsp;I almost stop blogging.&lt;br /&gt;
&lt;br /&gt;
At the same time I didn't want only a simple blog but I wanted a single personal homepage with a blog inside it. I basically wanted a single entry point to my digital life. Implementing a portal like this manually requires a lot of work and I couldn't really afford it in a reasonable time. Fortunately, I realised that BlogSpot could be easily solve all my problems.&lt;br /&gt;
&lt;br /&gt;
Why &lt;a href="http://www.blogger.com/"&gt;BlogSpot&lt;/a&gt;:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Extremely easy to setup and use&lt;/li&gt;
&lt;li&gt;Easy to customise with lots of gatdets available&lt;/li&gt;
&lt;li&gt;Possibility to create custom pages in addition to the blog (the blog itself is just a page)&lt;/li&gt;
&lt;li&gt;Possibility to choose a custom domain name (andrea-angella)&lt;/li&gt;
&lt;li&gt;Possibility to add a new post using the browser (no need of external software like Live Writer)&lt;/li&gt;
&lt;li&gt;Possibility to check the spelling&lt;/li&gt;
&lt;li&gt;Support for mobile devices&lt;/li&gt;
&lt;li&gt;Well integrated with Google services&amp;nbsp;(Of course, this is Google)&lt;/li&gt;
&lt;li&gt;Free&lt;/li&gt;
&lt;/ul&gt;
Unfortunately I didn't find a way to export my old posts in a format acceptable for import. For this reason, I imported manually only the most&amp;nbsp;important old posts. &lt;br /&gt;
&lt;br /&gt;
An another important decision is the language. For obvious reasons, I am going to write most of my posts in English. After all, I am living in UK and this seems the right decision. English is the way to reach a vast amount of people but I am very sorry for some of my Italian friends that could have problems reading my posts. For you, I suggest using automatic translation services offered by Google that are easily accessible at the right of the page. An another quick option is to install the &lt;a href="http://www.google.com/toolbar/ie/index.html"&gt;Google Toolbar&lt;/a&gt; to get translations with a single click by adding one of the buttons below to your 
browser's toolbar.&lt;br /&gt;
&lt;br /&gt;
I probably won't remove the others blogs for a while but I am not going to update them anymore. For this reason, please, consider this as my only blog.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: large;"&gt;This is&amp;nbsp;my only blog.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
My intentions with this blog are the following:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Create a single entry point to my digital life with links to my presence in the web&lt;/li&gt;
&lt;li&gt;Share with the world my opinions and some technical stuffs&lt;/li&gt;
&lt;li&gt;Receive constructive feedbacks&lt;/li&gt;
&lt;li&gt;Keep track of my life experiences and my learning for personal&amp;nbsp;reference&lt;/li&gt;
&lt;li&gt;Improve my writing skills in English&lt;/li&gt;
&lt;/ul&gt;
Thank you&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-2406083986745106122?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=qzqJi5cyP2U:jgce-ObZAxY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=qzqJi5cyP2U:jgce-ObZAxY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=qzqJi5cyP2U:jgce-ObZAxY:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=qzqJi5cyP2U:jgce-ObZAxY:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=qzqJi5cyP2U:jgce-ObZAxY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=qzqJi5cyP2U:jgce-ObZAxY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=qzqJi5cyP2U:jgce-ObZAxY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=qzqJi5cyP2U:jgce-ObZAxY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=qzqJi5cyP2U:jgce-ObZAxY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=qzqJi5cyP2U:jgce-ObZAxY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=qzqJi5cyP2U:jgce-ObZAxY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=qzqJi5cyP2U:jgce-ObZAxY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/qzqJi5cyP2U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/2406083986745106122/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2012/01/my-new-official-blog.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/2406083986745106122?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/2406083986745106122?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/qzqJi5cyP2U/my-new-official-blog.html" title="My New Official Blog" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2012/01/my-new-official-blog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAEQX47fSp7ImA9WhRaE04.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-942420015827090258</id><published>2011-08-31T22:24:00.000+01:00</published><updated>2012-02-15T19:05:00.005Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T19:05:00.005Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Event" /><title>Windows Phone Camp in London</title><content type="html">&amp;nbsp;Next 17 September will be a full immersion day of Windows Phone 7 Mango &lt;img alt="Sorriso" class="wlEmoticon wlEmoticon-smile" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/angellaa-en/Windows-Live-Writer/2a10cd367d12_13A6A/wlEmoticon-smile_2.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-BMsKK5aCR3U/TyHWbNb7zlI/AAAAAAAABnM/23qSF1mf9vc/s1600/image_thumb.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="227" src="http://4.bp.blogspot.com/-BMsKK5aCR3U/TyHWbNb7zlI/AAAAAAAABnM/23qSF1mf9vc/s640/image_thumb.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-942420015827090258?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_P6sqlE9OiE:JsYRSym04v0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_P6sqlE9OiE:JsYRSym04v0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_P6sqlE9OiE:JsYRSym04v0:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=_P6sqlE9OiE:JsYRSym04v0:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_P6sqlE9OiE:JsYRSym04v0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=_P6sqlE9OiE:JsYRSym04v0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_P6sqlE9OiE:JsYRSym04v0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_P6sqlE9OiE:JsYRSym04v0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_P6sqlE9OiE:JsYRSym04v0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_P6sqlE9OiE:JsYRSym04v0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=_P6sqlE9OiE:JsYRSym04v0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_P6sqlE9OiE:JsYRSym04v0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/_P6sqlE9OiE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/942420015827090258/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2011/08/windows-phone-camp-in-london.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/942420015827090258?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/942420015827090258?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/_P6sqlE9OiE/windows-phone-camp-in-london.html" title="Windows Phone Camp in London" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-BMsKK5aCR3U/TyHWbNb7zlI/AAAAAAAABnM/23qSF1mf9vc/s72-c/image_thumb.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Cambridge, UK</georss:featurename><georss:point>52.205337 0.121817</georss:point><georss:box>52.1664135 0.04285299999999999 52.2442605 0.200781</georss:box><feedburner:origLink>http://andrea-angella.blogspot.com/2011/08/windows-phone-camp-in-london.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEACR3Y7fCp7ImA9WhRaE04.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-5325923461067786308</id><published>2011-08-23T23:39:00.000+01:00</published><updated>2012-02-15T19:06:06.804Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T19:06:06.804Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Certification" /><title>Exam passed: “MCTS - Windows Applications Development with Microsoft .NET Framework 4”</title><content type="html">I am definitely not a guru of WPF but recently in my company I had to play with it a little bit and it was the right opportunity to prepare the certification.&lt;br /&gt;
&lt;br /&gt;
The 15th of August 2011 I passed the certification exam:&lt;br /&gt;
&lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-511&amp;amp;locale=en-us"&gt;“MCTS - Windows Applications Development with Microsoft .NET Framework 4”&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
This is how looks my certification logo at the moment:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-6-aJz9UGk00/TyHhXzOpmbI/AAAAAAAABn8/ZedaR-gZFIQ/s1600/MCTS(rgb)_513_1369_thumb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="70" src="http://4.bp.blogspot.com/-6-aJz9UGk00/TyHhXzOpmbI/AAAAAAAABn8/ZedaR-gZFIQ/s320/MCTS(rgb)_513_1369_thumb.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
For many people certifications are not important or required. However, I believe that setting goals and achieve them is very exciting. If you studied at the university like me, you know what means passing an exam. Well, that kind of emotion allow you to continue towards higher goals.&lt;br /&gt;
This time I want to achieve the professial level MCPD.&lt;br /&gt;
&lt;br /&gt;
Before this, I have to pass other two MCTS level certifications:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;MCTS: .NET Framework 4, Data Access &lt;/li&gt;
&lt;li&gt;MCTS: .NET Framework 4, Service Communication Applications &lt;/li&gt;
&lt;/ul&gt;
Let's start :)    &lt;br /&gt;
&lt;br /&gt;
Before to finish, I want to underline some important aspects when you want to prepare a Microsoft certification:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Don't use only the official preparation book because it contains a subset of the required arguments.&lt;/li&gt;
&lt;li&gt;Read carefully the section "Skills Measured" and check that you covered all the subjects&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;In this case, for example, it was easy to unnote that the exam included the Task Parallel Library and Parallel LINQ&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Take practise tests on MeasureUp is a big help and you shouldn't understimate this &lt;/li&gt;
&lt;/ol&gt;
One thing that I liked is that, comparing to the last time I did an exam (two years ago), the complexity was higher. Questions were less trivial that asking what is the name of a certain method (useless questions). Questions were about concepts in order to test your deep knowledge of certain subjects. It seems clear the work that Microsoft is doing to make certifications more valuable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-5325923461067786308?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=zaNlqZdGM4M:AnqfXe53BQM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=zaNlqZdGM4M:AnqfXe53BQM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=zaNlqZdGM4M:AnqfXe53BQM:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=zaNlqZdGM4M:AnqfXe53BQM:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=zaNlqZdGM4M:AnqfXe53BQM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=zaNlqZdGM4M:AnqfXe53BQM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=zaNlqZdGM4M:AnqfXe53BQM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=zaNlqZdGM4M:AnqfXe53BQM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=zaNlqZdGM4M:AnqfXe53BQM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=zaNlqZdGM4M:AnqfXe53BQM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=zaNlqZdGM4M:AnqfXe53BQM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=zaNlqZdGM4M:AnqfXe53BQM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/zaNlqZdGM4M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/5325923461067786308/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2011/08/exam-passed-mcts-windows-applications.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/5325923461067786308?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/5325923461067786308?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/zaNlqZdGM4M/exam-passed-mcts-windows-applications.html" title="Exam passed: “MCTS - Windows Applications Development with Microsoft .NET Framework 4”" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-6-aJz9UGk00/TyHhXzOpmbI/AAAAAAAABn8/ZedaR-gZFIQ/s72-c/MCTS(rgb)_513_1369_thumb.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2011/08/exam-passed-mcts-windows-applications.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEABQHkycSp7ImA9WhRaE04.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-8937479631990301513</id><published>2011-08-12T22:06:00.000+01:00</published><updated>2012-02-15T19:05:51.799Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T19:05:51.799Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DotNetToscana" /><title>Unit Test Lab il 24 Settembre 2011 – Tenetevi pronti</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-mTMBCNXOj3k/TyHXOXuN0vI/AAAAAAAABnU/z2DjAZY46r8/s1600/dotnettoscana_hight_resolution_4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-mTMBCNXOj3k/TyHXOXuN0vI/AAAAAAAABnU/z2DjAZY46r8/s200/dotnettoscana_hight_resolution_4.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
Ciao a tutti,    &lt;br /&gt;appena prima delle meritate vacanze estive &lt;a href="http://www.dotnettoscana.org/"&gt;&lt;strong&gt;DotNetToscana&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;vuole rivelare alcuni dettagli del prossivo evento laboratorio.&lt;br /&gt;
&lt;br /&gt;
La data à già stata fissata a &lt;strong&gt;Sabato 24 Settembre 2011&lt;/strong&gt; mentre il luogo deve ancora essere confermato.&lt;br /&gt;
&lt;br /&gt;
Il laboratorio sarà guidato da&lt;strong&gt; &lt;/strong&gt;&lt;a href="http://blogs.ugidotnet.org/bmatte/Default.aspx"&gt;&lt;strong&gt;Matteo Baglini&lt;/strong&gt;&lt;/a&gt; mentre gli altri membri dello staff forniranno supporto tecnico ai partecipanti.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;Segue una breve descrizione dell’evento:&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Uno degli aspetti più controversi dello sviluppo software è sicuramente il test.     &lt;br /&gt;Pratica da molti reputata importante per ottenere un software di qualità ma allo stesso tempo snobbata. La realtà è che gli sviluppatori preferiscono progettare e realizzare il software piuttosto che testarlo lasciando quest'ultimo compito al team di tester. Esistono molteplici tipologie di test, lo Unit Test è uno di questi e rappresenta uno strumento importante per i tester, ma soprattutto per gli sviluppatori. &lt;/em&gt;&lt;em&gt;Durante questo laboratorio potrai provare con mano la pratica dello Unit Test e trovare risposta alle tipiche domande: perchè, come e quando effettuare Unit Test. Imparerai i principi che guidano lo Unit Test passando dalla teoria alla pratica, applicando questa tecnica in svariati contesti.&lt;/em&gt;&lt;br /&gt;
Maggiori dettagli seguiranno alla fine del mese,&lt;br /&gt;
&lt;br /&gt;
Buone vacanze a tutti,&lt;br /&gt;
&lt;br /&gt;
Vi aspettiamo,&lt;br /&gt;
&lt;br /&gt;
Andrea&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-8937479631990301513?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_f66xrkN28A:_jMRgN_23V0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_f66xrkN28A:_jMRgN_23V0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_f66xrkN28A:_jMRgN_23V0:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=_f66xrkN28A:_jMRgN_23V0:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_f66xrkN28A:_jMRgN_23V0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=_f66xrkN28A:_jMRgN_23V0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_f66xrkN28A:_jMRgN_23V0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_f66xrkN28A:_jMRgN_23V0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_f66xrkN28A:_jMRgN_23V0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_f66xrkN28A:_jMRgN_23V0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=_f66xrkN28A:_jMRgN_23V0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=_f66xrkN28A:_jMRgN_23V0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/_f66xrkN28A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/8937479631990301513/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2011/08/unit-test-lab-il-24-settembre-2011.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/8937479631990301513?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/8937479631990301513?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/_f66xrkN28A/unit-test-lab-il-24-settembre-2011.html" title="Unit Test Lab il 24 Settembre 2011 – Tenetevi pronti" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-mTMBCNXOj3k/TyHXOXuN0vI/AAAAAAAABnU/z2DjAZY46r8/s72-c/dotnettoscana_hight_resolution_4.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Via Santa Maria, 1, 56126 Pisa, Italy</georss:featurename><georss:point>43.7161354 10.3965843</georss:point><georss:box>43.5326254 10.080727300000001 43.8996454 10.7124413</georss:box><feedburner:origLink>http://andrea-angella.blogspot.com/2011/08/unit-test-lab-il-24-settembre-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8ERnY9fSp7ImA9WhRaE04.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-2320835924896307711</id><published>2011-07-23T17:23:00.000+01:00</published><updated>2012-02-15T19:06:47.865Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T19:06:47.865Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Book" /><title>101 Ways to Motivate Yourselft and Others – My favourites</title><content type="html">Recentely &lt;a href="http://sourcesofinsight.com/"&gt;Sources of Insight&lt;/a&gt; published a really interesting post: &lt;a href="http://sourcesofinsight.com/2011/07/13/101-ways-to-motivate-yourself-and-others/"&gt;101 Ways to Motivate Yourselft and Others&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
As a reminder, I would like to write the points I considere more important for me and where I want to work:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Act on your inspiration&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“Use your best energy for your best results”&lt;/li&gt;
&lt;li&gt;"Your passion can expire, if you wait too long or miss the window of opportunity”&lt;/li&gt;
&lt;li&gt;“A common way to kill idea or momentum is to spread them out over time, or keep pushing them out”&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Be a coach, not a critic&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“Use your inner coach for constructive feedback, and give your inner-critic a break”&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Be on fire&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“You know when you’re on fire. You kno what you’re like when you’re in the zone and you’re fully engaged and you’re at your best. Sometimes, the easiest way to get back to this mode is to simply remember what if feels like”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Be YOUR best&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“Compete with yourselft and make it a game”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Build your band of merry men&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“Surround yourself with the people that inspire and deligh you, wherever you go”&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Change the frame, to change your game&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“Problems aren’t problems when you reframe them as challenges. Challenges are opportunities for growth, excellence and your personal best”&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Chart your progress&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“If you want to motivate, find a way to keep the score. Progress is the top motivator of performance. Even incremental progress boosts motivation”&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Choose significant tasks that are meaningful for you&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“If you like excellence, then challenge yourself to shine”.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Create a wall of inspiration&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“Put those pictures up that show you the greates things in life and what’s possible. Get those hopes and dreams up on the wall that remind you what’s worth fighting for.”&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;“Put those wards on the wall and quotable quotes that fire you up and make you feel alive”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Decide&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“Nothing builds momentum like decisive action. Just Decide.Decisive action is motivation, it build momentum and it crowds out excuses”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Do worst things first&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“Don’t let things loom over you. Once they’re out of the waym the rest is a glide-path”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Don’t let feat stop you&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“A great way to conquer fear is to put the fears on the table and find a way to take away the thread or prepare for the worst case scenario”&lt;/li&gt;
&lt;li&gt;“The only thing we have to fear is fear itself”, Roosevelt&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Don’t be perfectionist&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“Perfection is a fallacy and it’s over-rated. A better focus is to be effective. Make it work, then make it right. Think of perfection as a process of improvement.”&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;“Focus on good enough for now. and satisfice”.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;“Taking action is a key way to stay out of analysis paralysis, and keep your motivation strong. Don’t worry about the perfect place to start, just start”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Don’t look for execuse&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Don’t take yourselft too seriously&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“Build your sense of humor”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Eat, sleep and exercise on a cadence&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“Your cadence will serve you emotionally, mentally and physically”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Find your “one thing”&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“One thing matters to you most. Do more of that. That’s the thing to focus on”&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Finish faster&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“The faster you finish, the more you will finish. The more you finish, the easier it gets”&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Focus on what you want&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“Get a clear and compelling picture of what you do want and focus on that”&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Play your favorite music&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“Play the songs that make your spirit soar”&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Reming yourself how short life is&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“One way to give your fall is to remember that nothing lasts forever”&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Set a deadline&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“Knowing when something is due can help you funnel and focus your action and attention”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Set extreme goals&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“Sometimes goals have to be extreme to feel worth it. Dream big. Set crazy limits or hurdles”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Want it with a passion&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;“Nothing beats the pursuit of a worhy and compelling objective”&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Keep in mind that knowing and doing are two different things&lt;/strong&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;“You hold the keys to unleashing what you’re capable of”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-2320835924896307711?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=L2LYVZKjmA0:Xkp0RCrqga8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=L2LYVZKjmA0:Xkp0RCrqga8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=L2LYVZKjmA0:Xkp0RCrqga8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=L2LYVZKjmA0:Xkp0RCrqga8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=L2LYVZKjmA0:Xkp0RCrqga8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=L2LYVZKjmA0:Xkp0RCrqga8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=L2LYVZKjmA0:Xkp0RCrqga8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=L2LYVZKjmA0:Xkp0RCrqga8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=L2LYVZKjmA0:Xkp0RCrqga8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=L2LYVZKjmA0:Xkp0RCrqga8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=L2LYVZKjmA0:Xkp0RCrqga8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=L2LYVZKjmA0:Xkp0RCrqga8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/L2LYVZKjmA0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/2320835924896307711/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2011/07/101-ways-to-motivate-yourselft-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/2320835924896307711?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/2320835924896307711?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/L2LYVZKjmA0/101-ways-to-motivate-yourselft-and.html" title="101 Ways to Motivate Yourselft and Others – My favourites" /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2011/07/101-ways-to-motivate-yourselft-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8DSXczfyp7ImA9WhRaE04.&quot;"><id>tag:blogger.com,1999:blog-3339062625442125125.post-5081018490558132068</id><published>2011-06-25T23:41:00.000+01:00</published><updated>2012-02-15T19:07:58.987Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T19:07:58.987Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Discussion" /><title>Discussione: metodi efficaci di apprendimento.</title><content type="html">Ciao a tutti ragazzi,    &lt;br /&gt;sto leggendo il libro “&lt;a href="http://pragprog.com/titles/ahptl/pragmatic-thinking-and-learning"&gt;Pragmatic Thinking and Learning&lt;/a&gt;” e mi sto soffermando su alcuni punti interessanti legati all’apprendimento.&lt;br /&gt;
&lt;br /&gt;In particolare io mi riferisco al nostro settore quindi all’apprendimento in ambito IT (tecnologia, design, architettura, metodologie, …).&lt;br /&gt;
&lt;br /&gt;
Come sappiamo esistono differenti modi di apprendere:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Leggere libri&lt;/li&gt;
&lt;li&gt;Realizzare un progetto personale&lt;/li&gt;
&lt;li&gt;Apprendimento tramite esperienza in azienda&lt;/li&gt;
&lt;li&gt;Apprendimento tramite corsi offerti dall’azienda&lt;/li&gt;
&lt;li&gt;Partecipazione a sessioni tecniche e a community&lt;/li&gt;
&lt;li&gt;Webcast&lt;/li&gt;
&lt;li&gt;Podcast&lt;/li&gt;
&lt;li&gt;Lettura di articoli / blog sul web&lt;/li&gt;
&lt;li&gt;Mentoring&lt;/li&gt;
&lt;li&gt;Gruppi di studio&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
Sicuramente tutti dobbiamo lavorare e quindi l’apprendimento tramite esperienza in azienda e’ abbastanza scontato ma a mio parere non e’ sufficiente per costruirsi una brillante carriera. Spesso in azienda sei costretto a compiere decisioni con una conoscenza incompleta mentre a me spesso piace un approccio graduale all’apprendimento che al lavoro non e’ quasi mai praticabile. Inoltre al lavoro non utilizzerai mai tutte le tecnologie ed e’ quindi necessario un lavoro esterno di compensazione e di espansione delle proprie conoscenze. Nonostante la partecipazione a community, il guardare webcast la mia fonte preferita di apprendimento sono i libri. Il motivo principale e’ che dietro al libro c’e’ un lavoro immane di raccolta materiale e riorganizzazione che e’ estremamente utile per il lettore che si ritrova una esposizione dei contenuti in maniera lineare e chiara. Tuttavia e’ noto che leggere richiede tempo e non e’ la forma preferita di apprendimento per l’essere umano che spesso impara piu’ velocemente imitando e osservando invece che leggendo. &lt;br /&gt;
&lt;br /&gt;Ci sono tantissimi professionisti che stimo e rispetto (e molti sono qui su ugi) con un bagaglio di competenza tecnica immenso che spazia campi di applicazioni diversi e sorge spontanea la domanda:&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;Qual e’ il vostro modo efficace di apprendere?     &lt;br /&gt;&lt;br /&gt;Come e’ evoluto nel corso degli anni?&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;Una classica risposta e’ con la pratica! Si e’ vero, capisco che la pratica e’ la chiave ma qui entra in gioco il fattore tempo. &lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;Quanto tempo extra-lavoro dedichi all’apprendimento?&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;Io personalmente ne dedico molto in quanto sono estremamente appassionato ma misuro che i progressi non sono rapidi come vorrei. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Il mio manager dice che e’ solo una questione di esperienza ma non condivido la sua affermazione. Voi?&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;Condividete la vostra esperienza perfavore, penso che possa nascere una discussione interessante.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;Per concludere vorrei riportare una frase significativa del libro:&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;“There's always going to be a new technology or a new version of an existing technology to be learned. The technology itselft isn't as important; it's the constant learning that counts."&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3339062625442125125-5081018490558132068?l=andrea-angella.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=xMKYA-71Qe8:Q65rKsJse6o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=xMKYA-71Qe8:Q65rKsJse6o:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=xMKYA-71Qe8:Q65rKsJse6o:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=xMKYA-71Qe8:Q65rKsJse6o:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=xMKYA-71Qe8:Q65rKsJse6o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=xMKYA-71Qe8:Q65rKsJse6o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=xMKYA-71Qe8:Q65rKsJse6o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=xMKYA-71Qe8:Q65rKsJse6o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=xMKYA-71Qe8:Q65rKsJse6o:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=xMKYA-71Qe8:Q65rKsJse6o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?i=xMKYA-71Qe8:Q65rKsJse6o:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?a=xMKYA-71Qe8:Q65rKsJse6o:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AndreaAngella-OfficialBlog?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AndreaAngella-OfficialBlog/~4/xMKYA-71Qe8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://andrea-angella.blogspot.com/feeds/5081018490558132068/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://andrea-angella.blogspot.com/2011/06/discussione-metodi-efficaci-di.html#comment-form" title="16 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/5081018490558132068?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3339062625442125125/posts/default/5081018490558132068?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AndreaAngella-OfficialBlog/~3/xMKYA-71Qe8/discussione-metodi-efficaci-di.html" title="Discussione: metodi efficaci di apprendimento." /><author><name>Andrea Angella</name><uri>http://www.blogger.com/profile/16030164472457151873</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>16</thr:total><feedburner:origLink>http://andrea-angella.blogspot.com/2011/06/discussione-metodi-efficaci-di.html</feedburner:origLink></entry></feed>

