<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Bruno Silva&#187; Bruno Silva - Technology Blog</title>
	<atom:link href="http://brunosilva.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://brunosilva.net</link>
	<description>Blog about Technology and Me!</description>
	<pubDate>Fri, 21 Aug 2009 16:58:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>What I almost can&#8217;t wait for from E3</title>
		<link>http://brunosilva.net/what-i-almost-cant-wait-for-from-e3/558/</link>
		<comments>http://brunosilva.net/what-i-almost-cant-wait-for-from-e3/558/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 10:49:10 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[Games]]></category>

		<category><![CDATA[My Life]]></category>

		<category><![CDATA[XBox 360]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=558</guid>
		<description><![CDATA[<p>Yesterday I assisted to the 3 E3 main press conferences by Microsoft, Nintendo and Sony.</p>
<p>Lately I haven&#8217;t been such an active video game player as I used to be some months ago, but now I&#8217;m feeling that during this year and the next one I&#8217;ll come to my roots <img src='http://brunosilva.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Microsoft XBox 360</strong></p>
<p>From Microsoft, as a XBox 360 owner I was glad to hear that XBox Live will have integration with Facebook and Twitter, my two main social networks. For gold membership owners will get full access to Last.FM through their XBox 360 systems.</p>
<p>But the best of all, that really got me crazy was Project Natal. My friend <a title="Marco Silva - XBox360 – Project Natal" href="http://marconsilva.wordpress.com/2009/06/03/xbox360-%e2%80%93-project-natal/" target="_blank">Marco wrote a post on his blog</a> about it and it has 2 MUST SEE videos.</p>
<p><strong>Nintendo</strong></p>
<p>The news about Nintendo DS weren&#8217;t that appealing to me, since I don&#8217;t own a Nintendo DS, but it&#8217;s obvious that Nintendo is targeting young women with several games meant to them. The focus in user generated content is a great initiative. It doesn&#8217;t apply only to Nintendo DS applications but also video games with user generated levels.</p>
<p>As a Wii owner I really must buy Wii Sports Resort with Wii Motion Plus that is coming to stores in July.</p>
<p>As a fan of one of the best games I&#8217;ve ever played (if not the best) I was glad to ear that a Super Mario Galaxy sequel is coming. You can watch the trailer at <a title="GameTrailers - Super Mario Galaxy 2" href="http://www.gametrailers.com/video/e3-09-super-mario/50233" target="_blank">GameTrailers.com</a></p>
<p>Nintendo also announced <a title="Wii Vitality Sensor @ Engadget" href="http://www.engadget.com/2009/06/02/nintendo-wii-vitality-sensor-detects-your-pulse/" target="_blank">Wii Vitality Sensor</a> which can read your vital signs and find out whether you&#8217;re anxious or focused, etc. I&#8217;m not really convinced, but I&#8217;ll wait and see.</p>
<p><strong>Sony Entertainment</strong></p>
<p> I own a PSP 3000, and I won&#8217;t buy PSP Go, but a new handheld video game console it&#8217;s always good news for gamers. And I didn&#8217;t pay attention to Playstation 2 and 3 news&#8230;</p>
<p>You can what the 3 press conferences though Gamespot at <a href="http://e3.gamespot.com/press-conference/">http://e3.gamespot.com/press-conference/</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Yesterday I assisted to the 3 E3 main press conferences by Microsoft, Nintendo and Sony.</p>
<p>Lately I haven&#8217;t been such an active video game player as I used to be some months ago, but now I&#8217;m feeling that during this year and the next one I&#8217;ll come to my roots <img src='http://brunosilva.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Microsoft XBox 360</strong></p>
<p>From Microsoft, as a XBox 360 owner I was glad to hear that XBox Live will have integration with Facebook and Twitter, my two main social networks. For gold membership owners will get full access to Last.FM through their XBox 360 systems.</p>
<p>But the best of all, that really got me crazy was Project Natal. My friend <a title="Marco Silva - XBox360 – Project Natal" href="http://marconsilva.wordpress.com/2009/06/03/xbox360-%e2%80%93-project-natal/" target="_blank">Marco wrote a post on his blog</a> about it and it has 2 MUST SEE videos.</p>
<p><strong>Nintendo</strong></p>
<p>The news about Nintendo DS weren&#8217;t that appealing to me, since I don&#8217;t own a Nintendo DS, but it&#8217;s obvious that Nintendo is targeting young women with several games meant to them. The focus in user generated content is a great initiative. It doesn&#8217;t apply only to Nintendo DS applications but also video games with user generated levels.</p>
<p>As a Wii owner I really must buy Wii Sports Resort with Wii Motion Plus that is coming to stores in July.</p>
<p>As a fan of one of the best games I&#8217;ve ever played (if not the best) I was glad to ear that a Super Mario Galaxy sequel is coming. You can watch the trailer at <a title="GameTrailers - Super Mario Galaxy 2" href="http://www.gametrailers.com/video/e3-09-super-mario/50233" target="_blank">GameTrailers.com</a></p>
<p>Nintendo also announced <a title="Wii Vitality Sensor @ Engadget" href="http://www.engadget.com/2009/06/02/nintendo-wii-vitality-sensor-detects-your-pulse/" target="_blank">Wii Vitality Sensor</a> which can read your vital signs and find out whether you&#8217;re anxious or focused, etc. I&#8217;m not really convinced, but I&#8217;ll wait and see.</p>
<p><strong>Sony Entertainment</strong></p>
<p> I own a PSP 3000, and I won&#8217;t buy PSP Go, but a new handheld video game console it&#8217;s always good news for gamers. And I didn&#8217;t pay attention to Playstation 2 and 3 news&#8230;</p>
<p>You can what the 3 press conferences though Gamespot at <a href="http://e3.gamespot.com/press-conference/">http://e3.gamespot.com/press-conference/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/what-i-almost-cant-wait-for-from-e3/558/feed/</wfw:commentRss>
		</item>
		<item>
		<title>User Styles in Internet Explorer</title>
		<link>http://brunosilva.net/user-styles-in-internet-explorer/554/</link>
		<comments>http://brunosilva.net/user-styles-in-internet-explorer/554/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 14:50:46 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[My Life]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[Usability]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=554</guid>
		<description><![CDATA[<p>As a Firefox user, one of the extensions that I can&#8217;t live without is <a title="Userstyles.org" href="http://userstyles.org/" target="_blank">Userstyles</a>.  They allow me to remove tons of ads and format some webpages that I use in my daily life in the way I want.</p>
<p>A few months ago I started using IE8 as my main browser in my personal laptop. And very happy about it because it&#8217;s lighter than Firefox, and I don&#8217;t really need all the extensions outside work. But I missed Userstyles&#8230;</p>
<p>After searching for a while I found information about <a title="Format Web pages using a custom style sheet" href="http://www.microsoft.com/enable/training/windowsvista/webstyle.aspx" target="_blank">custom cascade style sheets in IE </a>in a Microsoft article.</p>
<p>By following this step-by-step tutorial, you can set a custom css file for your browser. The changes are applied after browser restart, and it&#8217;s somewhat limited when compared with userstyles, since you can&#8217;t turn on/off setting on the fly and the css rules are global, which means that you change a class properties for a website, and you happen to navigate to another one that uses the same class, the css rules will also be applied.</p>
<p>Nevertheless, now I was able to remove ads from Windows Live Hotmail in IE8, remove the search bar that I don&#8217;t use and so on.</p>
]]></description>
			<content:encoded><![CDATA[<p>As a Firefox user, one of the extensions that I can&#8217;t live without is <a title="Userstyles.org" href="http://userstyles.org/" target="_blank">Userstyles</a>.  They allow me to remove tons of ads and format some webpages that I use in my daily life in the way I want.</p>
<p>A few months ago I started using IE8 as my main browser in my personal laptop. And very happy about it because it&#8217;s lighter than Firefox, and I don&#8217;t really need all the extensions outside work. But I missed Userstyles&#8230;</p>
<p>After searching for a while I found information about <a title="Format Web pages using a custom style sheet" href="http://www.microsoft.com/enable/training/windowsvista/webstyle.aspx" target="_blank">custom cascade style sheets in IE </a>in a Microsoft article.</p>
<p>By following this step-by-step tutorial, you can set a custom css file for your browser. The changes are applied after browser restart, and it&#8217;s somewhat limited when compared with userstyles, since you can&#8217;t turn on/off setting on the fly and the css rules are global, which means that you change a class properties for a website, and you happen to navigate to another one that uses the same class, the css rules will also be applied.</p>
<p>Nevertheless, now I was able to remove ads from Windows Live Hotmail in IE8, remove the search bar that I don&#8217;t use and so on.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/user-styles-in-internet-explorer/554/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I just hate April Fool&#8217;s Day&#8230;</title>
		<link>http://brunosilva.net/i-just-have-april-fools-day/551/</link>
		<comments>http://brunosilva.net/i-just-have-april-fools-day/551/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 15:01:10 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[My Life]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=551</guid>
		<description><![CDATA[<p>&#8230; because while reading my RSS feed subscriptions, there are a lot of news that are fake (clearly), and someones that I can&#8217;t tell if they are.</p>
<p>Edit: I just &#8220;hate&#8221;, not &#8220;have&#8221;.</p>
]]></description>
			<content:encoded><![CDATA[<p>&#8230; because while reading my RSS feed subscriptions, there are a lot of news that are fake (clearly), and someones that I can&#8217;t tell if they are.</p>
<p>Edit: I just &#8220;hate&#8221;, not &#8220;have&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/i-just-have-april-fools-day/551/feed/</wfw:commentRss>
		</item>
		<item>
		<title>2º Seminário de Tecnologias Móveis IT PRO &#038; DEV</title>
		<link>http://brunosilva.net/2%c2%ba-seminario-de-tecnologias-moveis-it-pro-dev/545/</link>
		<comments>http://brunosilva.net/2%c2%ba-seminario-de-tecnologias-moveis-it-pro-dev/545/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 09:30:14 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<category><![CDATA[Mobility]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=545</guid>
		<description><![CDATA[<p style="text-align: center;"><a href="http://www.mtechseminar.com/09" target="_blank"><img class="aligncenter" title="2º Seminário de Tecnologias Móveis IT PRO &amp; DEV" src="http://brunosilva.net/bs-images/semtecmoveis2009.jpg" alt="" width="674" height="110" /></a></p>
<blockquote>
<p style="text-align: left;"><span class="style6">A segunda edição do evento da comunidade PocketPT.net para os Profissionais de tecnologias móveis e relacionadas, dá continuidade ao sucesso obtido pela primeira edição.<br />
Este ano, de modo a oferecer um conjunto de conteúdos mais alargado, as duas tracks foram divididas em dois dias, sendo o primeiro dia reservado a programadores e o segundo a profissionais de TI.<br />
Consegue-se assim uma maior  riqueza e abrangência de conteúdos e intervenientes.</span></p></blockquote>
<p>Mais um evento sobre Windows Mobile promovido pela comunidade PocketPT.NET. A julgar pelos a que já assisti irá valer bem a pena. Inscrições abertas. Mais informações no <a title="2º Seminário de Tecnologias Móveis IT PRO &amp; DE" href="http://www.mtechseminar.com/09" target="_blank">site oficial</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.mtechseminar.com/09" target="_blank"><img class="aligncenter" title="2º Seminário de Tecnologias Móveis IT PRO &amp; DEV" src="http://brunosilva.net/bs-images/semtecmoveis2009.jpg" alt="" width="674" height="110" /></a></p>
<blockquote>
<p style="text-align: left;"><span class="style6">A segunda edição do evento da comunidade PocketPT.net para os Profissionais de tecnologias móveis e relacionadas, dá continuidade ao sucesso obtido pela primeira edição.<br />
Este ano, de modo a oferecer um conjunto de conteúdos mais alargado, as duas tracks foram divididas em dois dias, sendo o primeiro dia reservado a programadores e o segundo a profissionais de TI.<br />
Consegue-se assim uma maior  riqueza e abrangência de conteúdos e intervenientes.</span></p></blockquote>
<p>Mais um evento sobre Windows Mobile promovido pela comunidade PocketPT.NET. A julgar pelos a que já assisti irá valer bem a pena. Inscrições abertas. Mais informações no <a title="2º Seminário de Tecnologias Móveis IT PRO &amp; DE" href="http://www.mtechseminar.com/09" target="_blank">site oficial</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/2%c2%ba-seminario-de-tecnologias-moveis-it-pro-dev/545/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ASP.NET Output Cache - Cleaning all at once</title>
		<link>http://brunosilva.net/aspnet-output-cache-cleaning-all-at-once/540/</link>
		<comments>http://brunosilva.net/aspnet-output-cache-cleaning-all-at-once/540/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 15:52:20 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=540</guid>
		<description><![CDATA[<p>I&#8217;ve been using a feature of ASP.NET called Output Cache. It allows you to have server-side cache for your ASP.NET webpages. You can define several profiles and cache expiration rules. You can read more about it in a <a title="Nothin' but - ASP.NET Page Output Caching, Part 1" href="http://msdn.microsoft.com/en-us/library/ms972362.aspx" target="_blank">simple and short article at MSDN</a> or in the <a title="ASP.NET Caching Overview" href="http://msdn.microsoft.com/en-us/library/ms972362.aspx" target="_blank">full documentation</a> also at MSDN.</p>
<p>A feature that I wasn&#8217;t able to find was cleaning all the cached data. You can remove cache for a specific page using <strong>HttpResponse.RemoveOutputCacheItem(&#8221;pagename&#8221;)</strong> but to remove all pages (which can have several cached versions each) you have to use some kind of workaround. You can <a title="Remove ASP.NET Page Output Cache Entries" href="http://aspalliance.com/668" target="_blank">use a Cache dependency</a> relying in a item stored in <strong>HttpContext.Cache</strong> items collection, but for my particular scenario it wasn&#8217;t the right solution. Why?</p>
<p>If you have several front-end servers serving your website, you have independent cache systems, so when forcing a cache cleaning, you will force it only for the front-end serving your request. To solve this issue I&#8217;ve created a cache system relying on a file dependency. This way, when I change that file, all the front-end servers will clean their cache. I&#8217;ve included a CacheManager class that has the usual Add method, that automatically add the file dependency to cached data ( usually using Response.Cache.Add) and not only output cache.</p>
<p><a title="Output Cache Demo" href="http://brunosilva.net/bs-downloads/demoOutputCache.zip">Download source code</a> and have fun exploring it.<a title="Output Cache Demo" href="http://brunosilva.net/bs-downloads/demoOutputCache.zip"><br />
</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using a feature of ASP.NET called Output Cache. It allows you to have server-side cache for your ASP.NET webpages. You can define several profiles and cache expiration rules. You can read more about it in a <a title="Nothin' but - ASP.NET Page Output Caching, Part 1" href="http://msdn.microsoft.com/en-us/library/ms972362.aspx" target="_blank">simple and short article at MSDN</a> or in the <a title="ASP.NET Caching Overview" href="http://msdn.microsoft.com/en-us/library/ms972362.aspx" target="_blank">full documentation</a> also at MSDN.</p>
<p>A feature that I wasn&#8217;t able to find was cleaning all the cached data. You can remove cache for a specific page using <strong>HttpResponse.RemoveOutputCacheItem(&#8221;pagename&#8221;)</strong> but to remove all pages (which can have several cached versions each) you have to use some kind of workaround. You can <a title="Remove ASP.NET Page Output Cache Entries" href="http://aspalliance.com/668" target="_blank">use a Cache dependency</a> relying in a item stored in <strong>HttpContext.Cache</strong> items collection, but for my particular scenario it wasn&#8217;t the right solution. Why?</p>
<p>If you have several front-end servers serving your website, you have independent cache systems, so when forcing a cache cleaning, you will force it only for the front-end serving your request. To solve this issue I&#8217;ve created a cache system relying on a file dependency. This way, when I change that file, all the front-end servers will clean their cache. I&#8217;ve included a CacheManager class that has the usual Add method, that automatically add the file dependency to cached data ( usually using Response.Cache.Add) and not only output cache.</p>
<p><a title="Output Cache Demo" href="http://brunosilva.net/bs-downloads/demoOutputCache.zip">Download source code</a> and have fun exploring it.<a title="Output Cache Demo" href="http://brunosilva.net/bs-downloads/demoOutputCache.zip"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/aspnet-output-cache-cleaning-all-at-once/540/feed/</wfw:commentRss>
		</item>
		<item>
		<title>List Random Order in .NET using Linq</title>
		<link>http://brunosilva.net/list-random-order-in-net-using-linq/534/</link>
		<comments>http://brunosilva.net/list-random-order-in-net-using-linq/534/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 17:03:57 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=534</guid>
		<description><![CDATA[<p>While refactoring some C# code I came across some lines that seemed a bit awkward. I was trying to sort a list or an array randomly. That code was written before Linq came into the .Net Framework, so now I was able to figure out a new approach.</p>
<p>Since Linq to Objects has some similarities with SQL, I got the idea of trying the same approach that I used several times in SQL, which was ordering a SELECT statement using ORDER BY RAND().</p>
<p>The result is shown bellow.</p>
<p style="text-align: left;"><img class="aligncenter" title="List Random Order in .NET using Linq" src="http://brunosilva.net/bs-images/LinqOrderRandom.png" alt="" width="551" height="106" /></p>
<p>It uses the Extension Methods syntax of Linq to save some bytes on the source code <img src='http://brunosilva.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /></p>
]]></description>
			<content:encoded><![CDATA[<p>While refactoring some C# code I came across some lines that seemed a bit awkward. I was trying to sort a list or an array randomly. That code was written before Linq came into the .Net Framework, so now I was able to figure out a new approach.</p>
<p>Since Linq to Objects has some similarities with SQL, I got the idea of trying the same approach that I used several times in SQL, which was ordering a SELECT statement using ORDER BY RAND().</p>
<p>The result is shown bellow.</p>
<p style="text-align: left;"><img class="aligncenter" title="List Random Order in .NET using Linq" src="http://brunosilva.net/bs-images/LinqOrderRandom.png" alt="" width="551" height="106" /></p>
<p>It uses the Extension Methods syntax of Linq to save some bytes on the source code <img src='http://brunosilva.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/list-random-order-in-net-using-linq/534/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using web.config for custom configuration settings</title>
		<link>http://brunosilva.net/using-webconfig-for-custom-configuration-settings/525/</link>
		<comments>http://brunosilva.net/using-webconfig-for-custom-configuration-settings/525/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 10:13:54 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=525</guid>
		<description><![CDATA[<p style="text-align: left;">If you are an ASP.NET developer you must be familiar with <strong>web.config</strong>. Something that maybe you haven&#8217;t tried yet is to create custom configuration sections to store you application specific settings. Bellow you can see a <strong>web.config</strong> file that uses a custom configuration section. In the <strong>configuration/configSections </strong>element you must define which class is responsible for handling your configuration section. Then you can add your custom settings to the file as shown bellow.</p>
<p style="text-align: center;"><img class="alignnone" title="Web.config" src="http://brunosilva.net/bs-images/appsettings01.png" alt="" width="610" height="253" /></p>
<p style="text-align: left;">The usage of your settings is shown bellow. The configuration section handler class is used in order to access the configuration properties.</p>
<p style="text-align: center;"><img class="aligncenter" title="Accessing Web.config Application Settings" src="http://brunosilva.net/bs-images/appsettings02.png" alt="" width="611" height="245" /></p>
<p style="text-align: left;">I&#8217;ve shown you the usage of a class called <strong>SiteSettings</strong>, but how does it&#8217;s definition look? It is a class that inherits the <strong>ConfigurationSection</strong> class. The configuration section properties are defined by adding public properties that correspond to <strong>Configuration Element</strong>s. While adding these properties you can define the name of the XML node that you will use in the <strong>web.config</strong> file and either if the property is required or not. In the example bellow you can see the Singleton design pattern in order do avoid creating several instances of the class and loading the section from the configuration file each time I access the values.</p>
<p style="text-align: center;"><img class="aligncenter" title="Configuration Section Class" src="http://brunosilva.net/bs-images/appsettings03.png" alt="" width="610" height="300" /></p>
<p style="text-align: left;">In this example, we only have one configuration property. It is defined in the class bellow. It corresponds to a contact information. Each property of this class correspond to an XML attribute, and by using annotations you can define the name of the XML attribute, it&#8217;s default value, if it is required and even add validators such as regular expression validators. You can use several variable types such as strings, integers and event enumerables.</p>
<p style="text-align: center;"><img class="aligncenter" title="Configuration Element Class" src="http://brunosilva.net/bs-images/appsettings04.png" alt="" width="610" height="279" /></p>
<p style="text-align: left;">By using custom configuration settings this way instead of accessing <strong>ConfigurationManager.AppSettings</strong> as a dictionary of string values you get intellisense while using configuration settings, and best of all, automatic validation of the types, constraints and structure of the settings (checked when the settings are accessed for the first time).</p>
<p style="text-align: left;">The full demo project is available for <a title="Download Web.config Application Settings Demo" href="http://brunosilva.net/bs-downloads/demoWebConfig.zip">download</a>. I hope it gets useful to you.</p>
<p style="text-align: center;">
]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">If you are an ASP.NET developer you must be familiar with <strong>web.config</strong>. Something that maybe you haven&#8217;t tried yet is to create custom configuration sections to store you application specific settings. Bellow you can see a <strong>web.config</strong> file that uses a custom configuration section. In the <strong>configuration/configSections </strong>element you must define which class is responsible for handling your configuration section. Then you can add your custom settings to the file as shown bellow.</p>
<p style="text-align: center;"><img class="alignnone" title="Web.config" src="http://brunosilva.net/bs-images/appsettings01.png" alt="" width="610" height="253" /></p>
<p style="text-align: left;">The usage of your settings is shown bellow. The configuration section handler class is used in order to access the configuration properties.</p>
<p style="text-align: center;"><img class="aligncenter" title="Accessing Web.config Application Settings" src="http://brunosilva.net/bs-images/appsettings02.png" alt="" width="611" height="245" /></p>
<p style="text-align: left;">I&#8217;ve shown you the usage of a class called <strong>SiteSettings</strong>, but how does it&#8217;s definition look? It is a class that inherits the <strong>ConfigurationSection</strong> class. The configuration section properties are defined by adding public properties that correspond to <strong>Configuration Element</strong>s. While adding these properties you can define the name of the XML node that you will use in the <strong>web.config</strong> file and either if the property is required or not. In the example bellow you can see the Singleton design pattern in order do avoid creating several instances of the class and loading the section from the configuration file each time I access the values.</p>
<p style="text-align: center;"><img class="aligncenter" title="Configuration Section Class" src="http://brunosilva.net/bs-images/appsettings03.png" alt="" width="610" height="300" /></p>
<p style="text-align: left;">In this example, we only have one configuration property. It is defined in the class bellow. It corresponds to a contact information. Each property of this class correspond to an XML attribute, and by using annotations you can define the name of the XML attribute, it&#8217;s default value, if it is required and even add validators such as regular expression validators. You can use several variable types such as strings, integers and event enumerables.</p>
<p style="text-align: center;"><img class="aligncenter" title="Configuration Element Class" src="http://brunosilva.net/bs-images/appsettings04.png" alt="" width="610" height="279" /></p>
<p style="text-align: left;">By using custom configuration settings this way instead of accessing <strong>ConfigurationManager.AppSettings</strong> as a dictionary of string values you get intellisense while using configuration settings, and best of all, automatic validation of the types, constraints and structure of the settings (checked when the settings are accessed for the first time).</p>
<p style="text-align: left;">The full demo project is available for <a title="Download Web.config Application Settings Demo" href="http://brunosilva.net/bs-downloads/demoWebConfig.zip">download</a>. I hope it gets useful to you.</p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/using-webconfig-for-custom-configuration-settings/525/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linq - Adding element to collection, Union vs Concat</title>
		<link>http://brunosilva.net/linq-adding-element-to-collection-union-vs-concat/517/</link>
		<comments>http://brunosilva.net/linq-adding-element-to-collection-union-vs-concat/517/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 11:45:50 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=517</guid>
		<description><![CDATA[<p>Some time ago while developing a project I came across a problem related to Linq to Objects. I wanted do join a single object with a collection in order to transverse them with a <strong>foreach</strong> statement (the item was not allways present and I wanted to treat it as a regular element in the original collection).</p>
<p>Using the intellisense to find a Linq to Objects extension method that fitted my needs I didn&#8217;t find that particular functionality, but I thought about an alternative: creating a collection with the single element and joining the two collections with one of the two extension methods that seem promising to this new task: <strong>Union</strong> and <strong>Concat</strong>.</p>
<p><img class="alignnone" title="Linq to Objects - Concat vs Union" src="http://brunosilva.net/bs-images/linq2objects.png" alt="" width="610" height="296" /></p>
<p>After reading the documentation and writing the example above I became aware of the difference. <strong>Union</strong> acts as a mathematical set operator, adding the elements of both lists into a single list without repeated elements. <strong>Contat</strong>, by the other hand keeps the repeated elements.</p>
]]></description>
			<content:encoded><![CDATA[<p>Some time ago while developing a project I came across a problem related to Linq to Objects. I wanted do join a single object with a collection in order to transverse them with a <strong>foreach</strong> statement (the item was not allways present and I wanted to treat it as a regular element in the original collection).</p>
<p>Using the intellisense to find a Linq to Objects extension method that fitted my needs I didn&#8217;t find that particular functionality, but I thought about an alternative: creating a collection with the single element and joining the two collections with one of the two extension methods that seem promising to this new task: <strong>Union</strong> and <strong>Concat</strong>.</p>
<p><img class="alignnone" title="Linq to Objects - Concat vs Union" src="http://brunosilva.net/bs-images/linq2objects.png" alt="" width="610" height="296" /></p>
<p>After reading the documentation and writing the example above I became aware of the difference. <strong>Union</strong> acts as a mathematical set operator, adding the elements of both lists into a single list without repeated elements. <strong>Contat</strong>, by the other hand keeps the repeated elements.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/linq-adding-element-to-collection-union-vs-concat/517/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Novo portal Sapo Kids</title>
		<link>http://brunosilva.net/novo-portal-sapo-kids/520/</link>
		<comments>http://brunosilva.net/novo-portal-sapo-kids/520/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 17:12:23 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[Freeware]]></category>

		<category><![CDATA[Sapo]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=520</guid>
		<description><![CDATA[<p style="text-align: center;"><a title="Sapo Kids" href="http://kids.sapo.pt/" target="_blank"><img class="aligncenter" title="Sapo Kids - Scratch" src="http://brunosilva.net/bs-images/sapokids.jpg" alt="" width="603" height="300" /></a></p>
<p>Foi lançado hoje um novo portal português destinado aos mais novos. É o Sapo Kids! Além de diversos conteúdos lúdicos e didácticos reunidos a partir dos diversos serviços do mundo Sapo, conta com parcerias como a Porto Editora ou até mesmo o MIT.</p>
<p>Realço a integração do Scratch no portal. O <a title="Scratch MIT" href="http://info.scratch.mit.edu/About_Scratch" target="_blank">Scratch que nasceu no MIT</a> permite aos mais novos criarem animações interactivas de forma simples e divertida enquanto aprendem. O Sapo Kids tem a plataforma Scratch totalmente em Português, tornando-a ainda mais atractiva às crianças portuguesas.</p>
<p>Antes mesmo do projecto criar raízes em Portugal já existia uma escola pioneira a utilizar o sistema do MIT. Espero que outras lhe sigam o exemplo agora com este portal Português.</p>
<p>Mais informações no site <a title="Sapo Kids" href="http://kids.sapo.pt" target="_self">http://kids.sapo.pt</a></p>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Sapo Kids" href="http://kids.sapo.pt/" target="_blank"><img class="aligncenter" title="Sapo Kids - Scratch" src="http://brunosilva.net/bs-images/sapokids.jpg" alt="" width="603" height="300" /></a></p>
<p>Foi lançado hoje um novo portal português destinado aos mais novos. É o Sapo Kids! Além de diversos conteúdos lúdicos e didácticos reunidos a partir dos diversos serviços do mundo Sapo, conta com parcerias como a Porto Editora ou até mesmo o MIT.</p>
<p>Realço a integração do Scratch no portal. O <a title="Scratch MIT" href="http://info.scratch.mit.edu/About_Scratch" target="_blank">Scratch que nasceu no MIT</a> permite aos mais novos criarem animações interactivas de forma simples e divertida enquanto aprendem. O Sapo Kids tem a plataforma Scratch totalmente em Português, tornando-a ainda mais atractiva às crianças portuguesas.</p>
<p>Antes mesmo do projecto criar raízes em Portugal já existia uma escola pioneira a utilizar o sistema do MIT. Espero que outras lhe sigam o exemplo agora com este portal Português.</p>
<p>Mais informações no site <a title="Sapo Kids" href="http://kids.sapo.pt" target="_self">http://kids.sapo.pt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/novo-portal-sapo-kids/520/feed/</wfw:commentRss>
		</item>
		<item>
		<title>O marketing nas grandes superfícies&#8230;</title>
		<link>http://brunosilva.net/o-marketing-nas-grandes-superficies/513/</link>
		<comments>http://brunosilva.net/o-marketing-nas-grandes-superficies/513/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 09:14:44 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[My Life]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=513</guid>
		<description><![CDATA[<p>No outro dia fui ao Media Markt de Sintra para comprar um pack de 4 pilhas recarregáveis. Encontrei um pack da Duracell a 14 euros (ou 13.90 e tal, whatever). Ao lado estavam um pack de 2 pilhas a 6 euros.</p>
<p>Portanto, <strong></strong></p>
<ul>
<li><strong>6 euros x 2 packs</strong> (2 pilhas cada) = <strong>12 euros</strong></li>
<li><strong>14 euros * 1 pack</strong> * (4 pilhas) = <strong>14 euro</strong></li>
</ul>
<p>O senso comum não nos diz que os packs de maior número de unidades deve sair mais barato? Ou pelo menos ter o mesmo preço? O meu diz que sim. Ou é um engano de marcação de preço, ou stocks distintos em que um deles ainda foi adquirido com preço antigo.</p>
<p>Mas a hipótese que me parece mais interessante é ser uma estratégia de marketing para ganharem uns trocos. Se toda a gente pensar como eu que os packs maiores saem mais barato ou igual, imaginem os vários 2 euros que ganham em cada pack (já nem falando na poupança na embalagem).</p>
<p>Tive sorte de geralmente ter a mania de comparar os preços, e depois deste episódio vou estar mesmo atento.</p>
<p>P.S.: Contei este episódio a uma pessoa que me disse que numa qualquer superfície o mesmo acontecia com os sacos de areia para gatos de 5 e 10 kg. Não comprovei <img src='http://brunosilva.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /></p>
]]></description>
			<content:encoded><![CDATA[<p>No outro dia fui ao Media Markt de Sintra para comprar um pack de 4 pilhas recarregáveis. Encontrei um pack da Duracell a 14 euros (ou 13.90 e tal, whatever). Ao lado estavam um pack de 2 pilhas a 6 euros.</p>
<p>Portanto, <strong></strong></p>
<ul>
<li><strong>6 euros x 2 packs</strong> (2 pilhas cada) = <strong>12 euros</strong></li>
<li><strong>14 euros * 1 pack</strong> * (4 pilhas) = <strong>14 euro</strong></li>
</ul>
<p>O senso comum não nos diz que os packs de maior número de unidades deve sair mais barato? Ou pelo menos ter o mesmo preço? O meu diz que sim. Ou é um engano de marcação de preço, ou stocks distintos em que um deles ainda foi adquirido com preço antigo.</p>
<p>Mas a hipótese que me parece mais interessante é ser uma estratégia de marketing para ganharem uns trocos. Se toda a gente pensar como eu que os packs maiores saem mais barato ou igual, imaginem os vários 2 euros que ganham em cada pack (já nem falando na poupança na embalagem).</p>
<p>Tive sorte de geralmente ter a mania de comparar os preços, e depois deste episódio vou estar mesmo atento.</p>
<p>P.S.: Contei este episódio a uma pessoa que me disse que numa qualquer superfície o mesmo acontecia com os sacos de areia para gatos de 5 e 10 kg. Não comprovei <img src='http://brunosilva.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/o-marketing-nas-grandes-superficies/513/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Windows Live Hotmail - What was wrong about the icons?&#8230;</title>
		<link>http://brunosilva.net/new-windows-live-hotmail-what-was-wrong-about-the-icons/509/</link>
		<comments>http://brunosilva.net/new-windows-live-hotmail-what-was-wrong-about-the-icons/509/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 17:03:11 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[My Life]]></category>

		<category><![CDATA[Usability]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[Windows Live]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=509</guid>
		<description><![CDATA[<p>Today I got access to the new Hotmail interface. Pretty, but lacks the usual icons. I feel lost. The icons were a great help on finding what I needed. Now I just have to read the labels&#8230; I&#8217;m not feeling as a happy user right now&#8230; <img src='http://brunosilva.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> Keep it simple, but not too simple.</p>
<p style="text-align: center;"><img class="aligncenter" title="Windows Live Hotmail" src="http://brunosilva.net/bs-images/new_live_hotmail.png" alt="" width="610" height="351" /></p>
]]></description>
			<content:encoded><![CDATA[<p>Today I got access to the new Hotmail interface. Pretty, but lacks the usual icons. I feel lost. The icons were a great help on finding what I needed. Now I just have to read the labels&#8230; I&#8217;m not feeling as a happy user right now&#8230; <img src='http://brunosilva.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> Keep it simple, but not too simple.</p>
<p style="text-align: center;"><img class="aligncenter" title="Windows Live Hotmail" src="http://brunosilva.net/bs-images/new_live_hotmail.png" alt="" width="610" height="351" /></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/new-windows-live-hotmail-what-was-wrong-about-the-icons/509/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How Addicted to Blogging Are You?</title>
		<link>http://brunosilva.net/how-addicted-to-blogging-are-you/504/</link>
		<comments>http://brunosilva.net/how-addicted-to-blogging-are-you/504/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 17:38:57 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[My Life]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=504</guid>
		<description><![CDATA[<p><a style="background: transparent url(http://www.oneplusyou.com/q/img/bb_badges/blog_addiction.jpg) no-repeat scroll 0% 0%; color: #d64b32; text-decoration: none; display: block; width: 286px; height: 128px; padding-top: 50px; padding-left: 17px; font-family: Times New Roman,sans-serif; font-size: 30px;" href="http://www.oneplusyou.com/bb/blog_addiction" target="_blank">77%<span style="display: none;">How Addicted to Blogging Are You?</span></a></p>
]]></description>
			<content:encoded><![CDATA[<p><a style="background: transparent url(http://www.oneplusyou.com/q/img/bb_badges/blog_addiction.jpg) no-repeat scroll 0% 0%; color: #d64b32; text-decoration: none; display: block; width: 286px; height: 128px; padding-top: 50px; padding-left: 17px; font-family: Times New Roman,sans-serif; font-size: 30px;" href="http://www.oneplusyou.com/bb/blog_addiction" target="_blank">77%<span style="display: none;">How Addicted to Blogging Are You?</span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/how-addicted-to-blogging-are-you/504/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More about Azure Platform Services</title>
		<link>http://brunosilva.net/more-about-azure-platform-services/497/</link>
		<comments>http://brunosilva.net/more-about-azure-platform-services/497/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 15:27:46 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[My Life]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=497</guid>
		<description><![CDATA[<p>Some highlights from a nice article that I <a title="Windows Azure" href="http://canoas.com/blog/PermaLink,guid,0bcb96be-7f1c-4fe6-85d6-f015a697b47e.aspx" target="_blank">found in my feeds</a>. They are excerpts of the document, text in italic was written by me. Please note that the lines lack some context.</p>
<h3>.NET Services</h3>
<p><strong>.NET Access Control Service</strong></p>
<p>All communication with the Access Control Service relies on standard protocols such as WS-Trust and WS-Federation. This makes the service accessible from any kind of application on any platform.</p>
<p>Claims-based identity is on its way to becoming the standard approach for distributed environments.<br />
By providing an STS <em>(Securtity Token Service)</em> in the cloud, complete with rules-based claims transformation, the Access Control Service makes this modern approach to identity more attractive.</p>
<p><strong>.NET Service Bus</strong></p>
<p>The Service Bus assigns your organization a URI root, below which you’re free to create any naming hierarchy you like.<br />
This allows your endpoints to be assigned specific, discoverable URIs.<br />
Your application must also open a connection with the Service Bus for each endpoint it exposes.<br />
The Service Bus holds this connection open, which solves two problems.<br />
First, NAT is no longer an issue, since traffic on the open connection with the Service Bus will always be routed to your application. Second, because the connection was initiated from inside the firewall, there’s no problem passing information back to the application—the firewall won’t block this traffic.</p>
<p><strong>.NET Workflow Service</strong></p>
<p>Running <em>(workflows)</em> in the cloud brings some limitations, however.<em>(not all Windows Workflow Foundation activities are available: code activity isn&#8217;t)</em>.<br />
WF-based applications running in the Workflow Service can only use WF’s sequential workflow model, for example.</p>
<p>Also, running arbitrary code isn’t allowed, and so neither the BAL’s Code activity nor custom activities can be used.</p>
<h3>SQL Services</h3>
<p>SQL Services is an umbrella name for what will be a group of cloud-based technologies.<br />
<em> (the first one available is SQL Data Services)</em><br />
SQL Data Services doesn’t provide a standard relational database, nor does it support SQL queries.<br />
LINQ C# syntax, with queries sent via either SOAP or a RESTful approach. The other is to use ADO.NET Data Services</p>
<h3>Live Services</h3>
<p>A mesh-enabled Web application must be implemented using a multi-platform technology, such as Microsoft Silverlight, DHTML, or Adobe Flash. These technologies are supported on all of the operating systems that can run the Live Framework.<em>(targeting Windows Vista/XP, Macintosh OS X, and Windows Mobile 6)</em>.</p>
]]></description>
			<content:encoded><![CDATA[<p>Some highlights from a nice article that I <a title="Windows Azure" href="http://canoas.com/blog/PermaLink,guid,0bcb96be-7f1c-4fe6-85d6-f015a697b47e.aspx" target="_blank">found in my feeds</a>. They are excerpts of the document, text in italic was written by me. Please note that the lines lack some context.</p>
<h3>.NET Services</h3>
<p><strong>.NET Access Control Service</strong></p>
<p>All communication with the Access Control Service relies on standard protocols such as WS-Trust and WS-Federation. This makes the service accessible from any kind of application on any platform.</p>
<p>Claims-based identity is on its way to becoming the standard approach for distributed environments.<br />
By providing an STS <em>(Securtity Token Service)</em> in the cloud, complete with rules-based claims transformation, the Access Control Service makes this modern approach to identity more attractive.</p>
<p><strong>.NET Service Bus</strong></p>
<p>The Service Bus assigns your organization a URI root, below which you’re free to create any naming hierarchy you like.<br />
This allows your endpoints to be assigned specific, discoverable URIs.<br />
Your application must also open a connection with the Service Bus for each endpoint it exposes.<br />
The Service Bus holds this connection open, which solves two problems.<br />
First, NAT is no longer an issue, since traffic on the open connection with the Service Bus will always be routed to your application. Second, because the connection was initiated from inside the firewall, there’s no problem passing information back to the application—the firewall won’t block this traffic.</p>
<p><strong>.NET Workflow Service</strong></p>
<p>Running <em>(workflows)</em> in the cloud brings some limitations, however.<em>(not all Windows Workflow Foundation activities are available: code activity isn&#8217;t)</em>.<br />
WF-based applications running in the Workflow Service can only use WF’s sequential workflow model, for example.</p>
<p>Also, running arbitrary code isn’t allowed, and so neither the BAL’s Code activity nor custom activities can be used.</p>
<h3>SQL Services</h3>
<p>SQL Services is an umbrella name for what will be a group of cloud-based technologies.<br />
<em> (the first one available is SQL Data Services)</em><br />
SQL Data Services doesn’t provide a standard relational database, nor does it support SQL queries.<br />
LINQ C# syntax, with queries sent via either SOAP or a RESTful approach. The other is to use ADO.NET Data Services</p>
<h3>Live Services</h3>
<p>A mesh-enabled Web application must be implemented using a multi-platform technology, such as Microsoft Silverlight, DHTML, or Adobe Flash. These technologies are supported on all of the operating systems that can run the Live Framework.<em>(targeting Windows Vista/XP, Macintosh OS X, and Windows Mobile 6)</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/more-about-azure-platform-services/497/feed/</wfw:commentRss>
		</item>
		<item>
		<title>First toughts about Windows Azure</title>
		<link>http://brunosilva.net/first-toughts-about-windows-azure/484/</link>
		<comments>http://brunosilva.net/first-toughts-about-windows-azure/484/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 12:33:30 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=484</guid>
		<description><![CDATA[<p style="text-align: center;"><a title="Windows Azure" href="http://www.microsoft.com/azure/windowsazure.mspx" target="_blank"><img class="aligncenter" title="Windows Azure" src="http://brunosilva.net/bs-images/logo_windows_azure.jpg" alt="" width="610" height="88" /></a></p>
<p>After the yesterday&#8217;s announcement of <a title="Azure Services Platform" href="http://www.microsoft.com/azure/" target="_blank">Windows Azure</a>, the brand new cloud-based Windows, today I started reading a little bit about it. This new platform seems promising, and I&#8217;ll write a bit about it in some of my next blog entries.</p>
<p>First of all I&#8217;ll talk about the Windows Azure, which is a part of the Azure Services Platform. It allows you to run applications and store data on the cloud (replace cloud by &#8220;a bunch o Microsoft data centers&#8221;). You can reduce the Total Cost of Ownership (I don&#8217;t say eliminate, because you will have to pay for the service), because you don&#8217;t have to build/buy/care about the infrastructure. You contract a service that is payed based on usage, so you can get scalable solutions even for start-up projects for which is difficult to predict the needs.</p>
<h3>Computing</h3>
<p>You can have 2 kind of applications running on Windows Azure. Web applications and workers (asp.net applications vs. something like the Windows services).</p>
<p><strong>Web Role</strong></p>
<p>Web applications are just like any web app that you write nowadays (receiving HTTP requests and responding) but in order to take advantage of the farm of virtual servers that Windows Azure provides you, your web applications should be stateless.</p>
<p>Well, not really stateless, but the state must be stored in a particular way. If you used session variables stored in the web server, you app would be attached to a particular server (the one to which the first request was made), this way any load balancing decision that lead your end-user to another server would lead to loss of that session data in the subsequent request&#8230; The right way to do it is to use cookies or (to prevent overhead on communications, or for security concerns) Windows Azure storage, which is available from all the virtual servers that serve your application.</p>
<p><strong>Worker Role</strong></p>
<p>Another option is to have an application that does some background work. They can&#8217;t have inbound communication, but can connect the outside world. They can read data from the Windows Azure Storage, and in the typical scenario, they get data from queues (which is one of the 3 storage mechanism of Azure). This kind of application can run indefinitely just like a Windows Service.</p>
<h3>Storage</h3>
<p>What about storage? There are 3 kind of storage that I&#8217;ll briefly refer.</p>
<p><strong>Blobs</strong> - to store large amounts of unstructured data such as images, movies, binary data, etc. You can associate meta-data to blobs such as location and tags for a photograph or title of an audio file, etc. Whatever you need.</p>
<p><strong>Tables</strong> - not regular relational tables, just a hierarchical set of entities and properties. You can access it&#8217;s data using LINQ and not SQL (to reinforce that this isn&#8217;t an SQL table :P)</p>
<p><strong>Queues</strong> - As I wrote before the main purpose of queues is communication to and between applications instances with the worker role</p>
<p>All the storage is replicated 3 times in order to tolerate faults (at least some of them).</p>
<p>As far as I read, I wasn&#8217;t able to try it yet, the Windows Azure SDK allows you to develop your applications locally and getting some guaranties that when you deploy it into to the cloud it will work smoothly. Locally you can debug you application, which you won&#8217;t be able to in the cloud.</p>
<p>Next: .NET Services, SQL Services and Live Services</p>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Windows Azure" href="http://www.microsoft.com/azure/windowsazure.mspx" target="_blank"><img class="aligncenter" title="Windows Azure" src="http://brunosilva.net/bs-images/logo_windows_azure.jpg" alt="" width="610" height="88" /></a></p>
<p>After the yesterday&#8217;s announcement of <a title="Azure Services Platform" href="http://www.microsoft.com/azure/" target="_blank">Windows Azure</a>, the brand new cloud-based Windows, today I started reading a little bit about it. This new platform seems promising, and I&#8217;ll write a bit about it in some of my next blog entries.</p>
<p>First of all I&#8217;ll talk about the Windows Azure, which is a part of the Azure Services Platform. It allows you to run applications and store data on the cloud (replace cloud by &#8220;a bunch o Microsoft data centers&#8221;). You can reduce the Total Cost of Ownership (I don&#8217;t say eliminate, because you will have to pay for the service), because you don&#8217;t have to build/buy/care about the infrastructure. You contract a service that is payed based on usage, so you can get scalable solutions even for start-up projects for which is difficult to predict the needs.</p>
<h3>Computing</h3>
<p>You can have 2 kind of applications running on Windows Azure. Web applications and workers (asp.net applications vs. something like the Windows services).</p>
<p><strong>Web Role</strong></p>
<p>Web applications are just like any web app that you write nowadays (receiving HTTP requests and responding) but in order to take advantage of the farm of virtual servers that Windows Azure provides you, your web applications should be stateless.</p>
<p>Well, not really stateless, but the state must be stored in a particular way. If you used session variables stored in the web server, you app would be attached to a particular server (the one to which the first request was made), this way any load balancing decision that lead your end-user to another server would lead to loss of that session data in the subsequent request&#8230; The right way to do it is to use cookies or (to prevent overhead on communications, or for security concerns) Windows Azure storage, which is available from all the virtual servers that serve your application.</p>
<p><strong>Worker Role</strong></p>
<p>Another option is to have an application that does some background work. They can&#8217;t have inbound communication, but can connect the outside world. They can read data from the Windows Azure Storage, and in the typical scenario, they get data from queues (which is one of the 3 storage mechanism of Azure). This kind of application can run indefinitely just like a Windows Service.</p>
<h3>Storage</h3>
<p>What about storage? There are 3 kind of storage that I&#8217;ll briefly refer.</p>
<p><strong>Blobs</strong> - to store large amounts of unstructured data such as images, movies, binary data, etc. You can associate meta-data to blobs such as location and tags for a photograph or title of an audio file, etc. Whatever you need.</p>
<p><strong>Tables</strong> - not regular relational tables, just a hierarchical set of entities and properties. You can access it&#8217;s data using LINQ and not SQL (to reinforce that this isn&#8217;t an SQL table :P)</p>
<p><strong>Queues</strong> - As I wrote before the main purpose of queues is communication to and between applications instances with the worker role</p>
<p>All the storage is replicated 3 times in order to tolerate faults (at least some of them).</p>
<p>As far as I read, I wasn&#8217;t able to try it yet, the Windows Azure SDK allows you to develop your applications locally and getting some guaranties that when you deploy it into to the cloud it will work smoothly. Locally you can debug you application, which you won&#8217;t be able to in the cloud.</p>
<p>Next: .NET Services, SQL Services and Live Services</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/first-toughts-about-windows-azure/484/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microformats and Me</title>
		<link>http://brunosilva.net/microformats-and-me/470/</link>
		<comments>http://brunosilva.net/microformats-and-me/470/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 14:10:51 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[My Life]]></category>

		<category><![CDATA[Usability]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=470</guid>
		<description><![CDATA[<p style="text-align: left;"><a title="Microformats" href="http://microformats.org/" target="_blank"><img class="aligncenter" title="Microformats" src="http://brunosilva.net/bs-images/microformats.png" alt="" width="640" height="100" /></a></p>
<p>Last week I had a <a title="Microformatos: pequenas peças do puzzle - slides" href="http://andr3.net/blog/post/126" target="_blank">workshop about Microformats</a> with <a class="url fn n" href="http://andr3.net/"><span class="given-name">André</span> <span class="family-name">Luís</span></a><span class="url fn n"><span class="family-name"> sponsored by PrimeIT and Sapo. It was very interesting and really answered some of the questions I had about Microformats.<br />
</span></span></p>
<p>What are Microformats?</p>
<blockquote><p>Designed for humans first and machines second, microformats are a set of simple, open data formats built upon existing and widely adopted standards.</p></blockquote>
<p>Which Microformats did I implement in this blog after this workshop?</p>
<p><strong><a title="hAtom" href="http://microformats.org/wiki/hatom" target="_blank">hAtom</a></strong></p>
<blockquote><p>hAtom is a <a title="microformat" href="http://microformats.org/wiki/microformat">microformat</a> for identifying semantic information in weblog posts and practically any other place <a class="external" title="http://www.atomenabled.org/" rel="nofollow" href="http://www.atomenabled.org/">Atom</a><span class="urlexpansion"> (<em>http://www.atomenabled.org/</em>)</span> may be used, such as news articles. hAtom content is easily added to most blogs by simple modifications to the blog&#8217;s template definitions.</p></blockquote>
<p>Since, as André told us, the new feature of IE8 called <a title="Web Slices" href="http://www.microsoft.com/windows/internet-explorer/beta/features/web-slices.aspx" target="_blank">Web Slices</a> is based o hAtom, by adding the class<br />
hslice next to the hentry class, now I also support Web Slices!</p>
<p><strong><a title="hCard" href="http://microformats.org/wiki/hcard" target="_blank">hCard</a></strong></p>
<blockquote><p>hCard is a simple, open, distributed format for representing people, companies, organizations, and places, using a 1:1 representation of vCard (<a title="rfc-2426" href="http://microformats.org/wiki/rfc-2426">RFC2426</a>) properties and values in <a title="semantic-xhtml" href="http://microformats.org/wiki/semantic-xhtml">semantic HTML or XHTML</a>.</p></blockquote>
<p><strong><a title="xFolk" href="http://microformats.org/wiki/xfolk" target="_blank">xFolk</a></strong></p>
<blockquote><p><strong>xFolk</strong> (from &#8220;xFolksomony&#8221;) is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data in web-based bookmarking software.</p></blockquote>
<p>I was glad to ear that support for Microformats is growing on the web, and the web browsers are becoming Microformats-aware. According to André, Firefox 3 (or 3.1, I don&#8217;t remember) already brings an API for Microformats, although there isn&#8217;t any support in the user interface. Maybe in FireFox 4 we&#8217;ll get it. And as I said before, IE is supporting one of the Microformats.</p>
<p>There are some web browser plugins that make Microformats usable. For FireFox you can get <a title="Firefox Operator" href="https://addons.mozilla.org/en-US/firefox/addon/4106" target="_blank">Operator</a> which will add a toolbar like shown in the picture bellow. You can access the contacts, events, bookmarks, etc available in the current webpage.</p>
<p style="text-align: center;"><a title="Firefox Operator" href="https://addons.mozilla.org/en-US/firefox/addon/4106" target="_blank"><img class="aligncenter" title="Operator - Firefox Extension" src="http://brunosilva.net/bs-images/firefox_operator.jpg" alt="" width="640" height="451" /></a></p>
<p>For Internet Explorer you can get <a title="Internet Explorer Oomph" href="http://www.codeplex.com/Oomph/" target="_blank">Oomph</a>, but I wasn&#8217;t able to use it with my blog&#8230; Well, maybe in the future it will work better.</p>
<p>Adding Microformats support  in your blog or website can be pretty simple. It took me about 2 hours in this blog, thanks to a nice base Wordpress theme easily customizable.</p>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a title="Microformats" href="http://microformats.org/" target="_blank"><img class="aligncenter" title="Microformats" src="http://brunosilva.net/bs-images/microformats.png" alt="" width="640" height="100" /></a></p>
<p>Last week I had a <a title="Microformatos: pequenas peças do puzzle - slides" href="http://andr3.net/blog/post/126" target="_blank">workshop about Microformats</a> with <a class="url fn n" href="http://andr3.net/"><span class="given-name">André</span> <span class="family-name">Luís</span></a><span class="url fn n"><span class="family-name"> sponsored by PrimeIT and Sapo. It was very interesting and really answered some of the questions I had about Microformats.<br />
</span></span></p>
<p>What are Microformats?</p>
<blockquote><p>Designed for humans first and machines second, microformats are a set of simple, open data formats built upon existing and widely adopted standards.</p></blockquote>
<p>Which Microformats did I implement in this blog after this workshop?</p>
<p><strong><a title="hAtom" href="http://microformats.org/wiki/hatom" target="_blank">hAtom</a></strong></p>
<blockquote><p>hAtom is a <a title="microformat" href="http://microformats.org/wiki/microformat">microformat</a> for identifying semantic information in weblog posts and practically any other place <a class="external" title="http://www.atomenabled.org/" rel="nofollow" href="http://www.atomenabled.org/">Atom</a><span class="urlexpansion"> (<em>http://www.atomenabled.org/</em>)</span> may be used, such as news articles. hAtom content is easily added to most blogs by simple modifications to the blog&#8217;s template definitions.</p></blockquote>
<p>Since, as André told us, the new feature of IE8 called <a title="Web Slices" href="http://www.microsoft.com/windows/internet-explorer/beta/features/web-slices.aspx" target="_blank">Web Slices</a> is based o hAtom, by adding the class<br />
hslice next to the hentry class, now I also support Web Slices!</p>
<p><strong><a title="hCard" href="http://microformats.org/wiki/hcard" target="_blank">hCard</a></strong></p>
<blockquote><p>hCard is a simple, open, distributed format for representing people, companies, organizations, and places, using a 1:1 representation of vCard (<a title="rfc-2426" href="http://microformats.org/wiki/rfc-2426">RFC2426</a>) properties and values in <a title="semantic-xhtml" href="http://microformats.org/wiki/semantic-xhtml">semantic HTML or XHTML</a>.</p></blockquote>
<p><strong><a title="xFolk" href="http://microformats.org/wiki/xfolk" target="_blank">xFolk</a></strong></p>
<blockquote><p><strong>xFolk</strong> (from &#8220;xFolksomony&#8221;) is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data in web-based bookmarking software.</p></blockquote>
<p>I was glad to ear that support for Microformats is growing on the web, and the web browsers are becoming Microformats-aware. According to André, Firefox 3 (or 3.1, I don&#8217;t remember) already brings an API for Microformats, although there isn&#8217;t any support in the user interface. Maybe in FireFox 4 we&#8217;ll get it. And as I said before, IE is supporting one of the Microformats.</p>
<p>There are some web browser plugins that make Microformats usable. For FireFox you can get <a title="Firefox Operator" href="https://addons.mozilla.org/en-US/firefox/addon/4106" target="_blank">Operator</a> which will add a toolbar like shown in the picture bellow. You can access the contacts, events, bookmarks, etc available in the current webpage.</p>
<p style="text-align: center;"><a title="Firefox Operator" href="https://addons.mozilla.org/en-US/firefox/addon/4106" target="_blank"><img class="aligncenter" title="Operator - Firefox Extension" src="http://brunosilva.net/bs-images/firefox_operator.jpg" alt="" width="640" height="451" /></a></p>
<p>For Internet Explorer you can get <a title="Internet Explorer Oomph" href="http://www.codeplex.com/Oomph/" target="_blank">Oomph</a>, but I wasn&#8217;t able to use it with my blog&#8230; Well, maybe in the future it will work better.</p>
<p>Adding Microformats support  in your blog or website can be pretty simple. It took me about 2 hours in this blog, thanks to a nice base Wordpress theme easily customizable.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/microformats-and-me/470/feed/</wfw:commentRss>
		</item>
		<item>
		<title>C# Yellow Book by Rob Miles</title>
		<link>http://brunosilva.net/c-yellow-book-by-rob-miles/457/</link>
		<comments>http://brunosilva.net/c-yellow-book-by-rob-miles/457/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 08:59:37 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=457</guid>
		<description><![CDATA[<p><a title="Rob Miles website" href="http://www.robmiles.com" target="_blank">Rob Miles</a> (a MVP from UK) has made available in his website a C# book for beginners that is used in this university in the  First Year programming course. <a title="C# Yellow Book" href="http://www.robmiles.com/c-yellow-book/" target="_blank">Download the PDF</a> and happy reading.</p>
]]></description>
			<content:encoded><![CDATA[<p><a title="Rob Miles website" href="http://www.robmiles.com" target="_blank">Rob Miles</a> (a MVP from UK) has made available in his website a C# book for beginners that is used in this university in the  First Year programming course. <a title="C# Yellow Book" href="http://www.robmiles.com/c-yellow-book/" target="_blank">Download the PDF</a> and happy reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/c-yellow-book-by-rob-miles/457/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TODAY, Mobile Application - Make art from your communications log</title>
		<link>http://brunosilva.net/today-mobile-application-make-art-from-your-communications-log/450/</link>
		<comments>http://brunosilva.net/today-mobile-application-make-art-from-your-communications-log/450/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 17:35:42 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[Culture]]></category>

		<category><![CDATA[Design]]></category>

		<category><![CDATA[Freeware]]></category>

		<category><![CDATA[Mobility]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=450</guid>
		<description><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="TODAY, Mobile Application by CADA" src="http://brunosilva.net/bs-images/today_mobile_app.png" alt="" width="650" height="165" /></p>
<p>In the last day of <a title="Shift" href="http://shift.pt/" target="_blank">Shift&#8217;08 Conference</a> I attended to a session about a project of investigation that I really liked. The speakers (authors of the project) weren&#8217;t good speakers and had difficulties to &#8220;sell the product&#8221;, but the project itself and their idea really pleased me. What is it?</p>
<blockquote><p>TODAY is a piece of generative design for mobile phones.</p>
<p>It’s an application that visualizes personal mobile communication. It sits on the periphery of the machine, monitoring our connectivity through the number and type of calls we receive, subtly displaying them back to us, in the form of a generative graphic. Here, the visual result is a figurative and seemingly abstract picture – the story of your day. Some days will be really colorful and wired, others quieter and more reflective, either way the resulting visuals will always be personal, unrepeatable and unique.</p>
</blockquote>
<p>They have a set of rules used in the creation of the elements of each drawing. Bellow you can have a taste of the main rules.</p>
<p style="text-align: center;"><img class="aligncenter" title="TODAY rules" src="http://brunosilva.net/bs-images/today_mobile_app_table.jpg" alt="" width="603" height="432" /></p>
<p style="text-align: left;">When I talked about this project to some people they were like &#8220;And what&#8217;s the use of it? Seems silly&#8230;&#8221; As far as I am concerned: NONE!!! But it is art! It is not meant to have an use. It is pretty and meaningful. Your day recorded in an image. Brilliant concept. That&#8217;s it. No &#8220;features&#8221;. This project gets funds from the Portuguese Ministry of Culture!</p>
<p style="text-align: left;">This software is free and it is available for download. The only drawback is that it targets only Symbian&#8230; When someone in the audience asked the authors about porting to other platforms they told that iPhone or Android would be great, but in the iPhone would be difficult to get information about your communications, so Android would be a nice option.</p>
<p style="text-align: left;">I was really sad that they didn&#8217;t even mentioned Windows Mobile, which I consider to be a great platform for development that is growing everyday. I haven&#8217;t ever tried something like this, but my feeling is that it wouldn&#8217;t be that difficult to get information regarding calls log and SMS&#8217; log on a Windows Mobile powered phone.</p>
<p style="text-align: left;">Try this software if you can, really. Unfortunatly I won&#8217;t be able to&#8230; <a title="TODAY, Mobile Application" href="http://today.cada1.net" target="_blank">TODAY, Mobile Application</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="TODAY, Mobile Application by CADA" src="http://brunosilva.net/bs-images/today_mobile_app.png" alt="" width="650" height="165" /></p>
<p>In the last day of <a title="Shift" href="http://shift.pt/" target="_blank">Shift&#8217;08 Conference</a> I attended to a session about a project of investigation that I really liked. The speakers (authors of the project) weren&#8217;t good speakers and had difficulties to &#8220;sell the product&#8221;, but the project itself and their idea really pleased me. What is it?</p>
<blockquote><p>TODAY is a piece of generative design for mobile phones.</p>
<p>It’s an application that visualizes personal mobile communication. It sits on the periphery of the machine, monitoring our connectivity through the number and type of calls we receive, subtly displaying them back to us, in the form of a generative graphic. Here, the visual result is a figurative and seemingly abstract picture – the story of your day. Some days will be really colorful and wired, others quieter and more reflective, either way the resulting visuals will always be personal, unrepeatable and unique.</p>
</blockquote>
<p>They have a set of rules used in the creation of the elements of each drawing. Bellow you can have a taste of the main rules.</p>
<p style="text-align: center;"><img class="aligncenter" title="TODAY rules" src="http://brunosilva.net/bs-images/today_mobile_app_table.jpg" alt="" width="603" height="432" /></p>
<p style="text-align: left;">When I talked about this project to some people they were like &#8220;And what&#8217;s the use of it? Seems silly&#8230;&#8221; As far as I am concerned: NONE!!! But it is art! It is not meant to have an use. It is pretty and meaningful. Your day recorded in an image. Brilliant concept. That&#8217;s it. No &#8220;features&#8221;. This project gets funds from the Portuguese Ministry of Culture!</p>
<p style="text-align: left;">This software is free and it is available for download. The only drawback is that it targets only Symbian&#8230; When someone in the audience asked the authors about porting to other platforms they told that iPhone or Android would be great, but in the iPhone would be difficult to get information about your communications, so Android would be a nice option.</p>
<p style="text-align: left;">I was really sad that they didn&#8217;t even mentioned Windows Mobile, which I consider to be a great platform for development that is growing everyday. I haven&#8217;t ever tried something like this, but my feeling is that it wouldn&#8217;t be that difficult to get information regarding calls log and SMS&#8217; log on a Windows Mobile powered phone.</p>
<p style="text-align: left;">Try this software if you can, really. Unfortunatly I won&#8217;t be able to&#8230; <a title="TODAY, Mobile Application" href="http://today.cada1.net" target="_blank">TODAY, Mobile Application</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/today-mobile-application-make-art-from-your-communications-log/450/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Print What You Like</title>
		<link>http://brunosilva.net/print-what-you-like/445/</link>
		<comments>http://brunosilva.net/print-what-you-like/445/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 07:43:28 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[Utilities]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=445</guid>
		<description><![CDATA[<p>What to print an article embebed on a webpage, or other online content, but what to reduce the paper consumption? Today I found out a nice online service that allow you to edit a webpage for printing really easily.</p>
<p>Sometimes web pages have printing style sheets, other times copy-paste to Word is really effective. But if the web page is messy, this is a great tool.</p>
<p style="text-align: center;"><img class="aligncenter" title="Print What You Like" src="http://brunosilva.net/bs-images/printwhatyouwant.gif" alt="" width="520" height="328" /></p>
<p style="text-align: left;">It is worth giving it a try! Go to <a title="Print What You Like" href="http://www.printwhatyoulike.com/" target="_blank">PrintWhatYouLike.com</a> and start printing in a ecologic and cheaper way.</p>
]]></description>
			<content:encoded><![CDATA[<p>What to print an article embebed on a webpage, or other online content, but what to reduce the paper consumption? Today I found out a nice online service that allow you to edit a webpage for printing really easily.</p>
<p>Sometimes web pages have printing style sheets, other times copy-paste to Word is really effective. But if the web page is messy, this is a great tool.</p>
<p style="text-align: center;"><img class="aligncenter" title="Print What You Like" src="http://brunosilva.net/bs-images/printwhatyouwant.gif" alt="" width="520" height="328" /></p>
<p style="text-align: left;">It is worth giving it a try! Go to <a title="Print What You Like" href="http://www.printwhatyoulike.com/" target="_blank">PrintWhatYouLike.com</a> and start printing in a ecologic and cheaper way.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/print-what-you-like/445/feed/</wfw:commentRss>
		</item>
		<item>
		<title>User Experience Week</title>
		<link>http://brunosilva.net/user-experience-week/436/</link>
		<comments>http://brunosilva.net/user-experience-week/436/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 10:23:09 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=436</guid>
		<description><![CDATA[<p style="text-align: center;"><a title="UX Week" href="http://www.fullsix.pt/uxweek/" target="_blank"><img class="aligncenter" title="UX Week" src="http://brunosilva.net/bs-images/UXweek.gif" alt="" width="654" height="109" /></a></p>
<p>A área me usabilidade é-me bastante querida deste que tive a cadeira de Interfaces Pessoa-Máquina. Sempre que tenho oportunidade de aprendar mais sobre este assunto que tantas vezes é colocado de parte, tento aproveitar ao máximo.</p>
<p>Um destes casos é a User Experience Week que engloba uma apresentação pública e 2 workshops. Para os workshops não tenho <em>budget</em> mas na apresentação devo estar presente!</p>
<table border="0" width="100%">
<tbody>
<tr>
<td valign="top">
<h3><a title="User Experience Strategy" href="http://www.fullsix.pt/uxweek/User-Experience-Strategy.html" target="_blank">User Experience Strategy</a></h3>
<p>Apresentação, 2 Horas<br />
<strong>03</strong> de Novembro de 2008</p>
<p>Auditório Microsoft<br />
Oeiras, Portugal</p>
</td>
<td valign="top">
<h3><a title="User Experience Design" href="http://www.fullsix.pt/uxweek/User-Experience-Design.html" target="_blank">User Experience Design</a></h3>
<p>Workshop de 2 dias,<br />
Beginner to Intermediate<br />
<strong>04 e 05</strong> de Novembro de 2008</p>
<p>Hotel Real Oeiras<br />
Oeiras, Portugal</p>
</td>
<td valign="top">
<h3><a title="Information Architecture &amp; Search" href="http://www.fullsix.pt/uxweek/Information-Architecture-Search.html" target="_blank">Information Architecture &amp; Search</a></h3>
<p>Workshop de um dia,<br />
Intermediate to Advanced<br />
<strong>06</strong> de Novembro de 2008</p>
<p>Hotel Real Oeiras<br />
Oeiras, Portugal</p>
</td>
</tr>
</tbody>
</table>
<p>Parabéns à Fullsix e à Microsoft por mais uma excelente iniciativa conjunta.</p>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="UX Week" href="http://www.fullsix.pt/uxweek/" target="_blank"><img class="aligncenter" title="UX Week" src="http://brunosilva.net/bs-images/UXweek.gif" alt="" width="654" height="109" /></a></p>
<p>A área me usabilidade é-me bastante querida deste que tive a cadeira de Interfaces Pessoa-Máquina. Sempre que tenho oportunidade de aprendar mais sobre este assunto que tantas vezes é colocado de parte, tento aproveitar ao máximo.</p>
<p>Um destes casos é a User Experience Week que engloba uma apresentação pública e 2 workshops. Para os workshops não tenho <em>budget</em> mas na apresentação devo estar presente!</p>
<table border="0" width="100%">
<tbody>
<tr>
<td valign="top">
<h3><a title="User Experience Strategy" href="http://www.fullsix.pt/uxweek/User-Experience-Strategy.html" target="_blank">User Experience Strategy</a></h3>
<p>Apresentação, 2 Horas<br />
<strong>03</strong> de Novembro de 2008</p>
<p>Auditório Microsoft<br />
Oeiras, Portugal</p>
</td>
<td valign="top">
<h3><a title="User Experience Design" href="http://www.fullsix.pt/uxweek/User-Experience-Design.html" target="_blank">User Experience Design</a></h3>
<p>Workshop de 2 dias,<br />
Beginner to Intermediate<br />
<strong>04 e 05</strong> de Novembro de 2008</p>
<p>Hotel Real Oeiras<br />
Oeiras, Portugal</p>
</td>
<td valign="top">
<h3><a title="Information Architecture &amp; Search" href="http://www.fullsix.pt/uxweek/Information-Architecture-Search.html" target="_blank">Information Architecture &amp; Search</a></h3>
<p>Workshop de um dia,<br />
Intermediate to Advanced<br />
<strong>06</strong> de Novembro de 2008</p>
<p>Hotel Real Oeiras<br />
Oeiras, Portugal</p>
</td>
</tr>
</tbody>
</table>
<p>Parabéns à Fullsix e à Microsoft por mais uma excelente iniciativa conjunta.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/user-experience-week/436/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using Neural Networks for Classification</title>
		<link>http://brunosilva.net/using-neural-networks-for-classification/426/</link>
		<comments>http://brunosilva.net/using-neural-networks-for-classification/426/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 19:18:21 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Artificial Intelligence]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=426</guid>
		<description><![CDATA[<p>During the last weeks I&#8217;ve been doing some research related to my Master thesis. One of the topics I&#8217;m studying is <a title="Unsupervised Learning" href="http://en.wikipedia.org/wiki/Unsupervised_learning" target="_blank">Unsupervised Machine Learning</a>. The main goal is to have a piece of software that given a training set (a set of examples representative of the whole population) allow the software to accept input that it has never seen before and behave as expected.</p>
<p>Imagine for instance a concept called Color Classifier. We usually have several named colors such as red, green, blue, yellow, gray, orange, etc.  You have different flavors of each color, and you can consider different combinations of RGB colors the same color. How  can you, given a RGB Color code, name that color?</p>
<p>One approach is using Neural Networks (which is a unsupervised learning method) for classification.</p>
<p>I won&#8217;t talk about the details of Neural Networks algorithms, since it is the reason why many people avoid this kind of approach: complexity. I&#8217;ll just show you how, with a library that hides the implementation details, you can use them.</p>
<p><a title="NeuronDotNet - Artificial Neural Networks in C#" href="http://neurondotnet.freehostia.com/download.html" target="_blank">NeuronDotNet</a> is a .NET library which allows you to use Neural Networks algorithms as a black box. They have <a title="NeuronDotNet - Demo Applications" href="http://neurondotnet.freehostia.com/samples/index.html" target="_blank">some samples</a> which can guide you, as they guided me.</p>
<p>The algorithm I&#8217;m using is called <a title="Self-organizing Map" href="http://en.wikipedia.org/wiki/Self-organizing_map" target="_self">Self-organizing Map</a> (SOM). The main idea is to generate a 2D map which topology (dispersion of the points and their positions) is based on the relation between the input data. Back to the example, from a set of random colors which can be represented as a vector with 3 dimensions (input), we generate a map with 2 dimensions, where similar colors get close to each other and completely different colors are set apart. The picture bellow represents the results.</p>
<p>(Left: input, Right: 2D map that results from the algorithm)</p>
<p style="text-align: center;"><a title="Color Classifier" href="http://brunosilva.net/bs-images/ColorClassifier.png" target="_blank"><img class="aligncenter" title="Color Classifier" src="http://brunosilva.net/bs-images/ColorClassifier_small.png" alt="" width="596" height="421" /></a></p>
<p>The number of colors that will be recognized (the number of neurons of the output layer) can be customized in the neural network configuration, prior to the training phase. In the example above I recognize 25 different colors.</p>
<p>Once the SOM algorithm runs in training mode, the resultant neural network is able to classify new colors into the different slots of the map. If you name each slot with the name of a color, you get a color classifier. In the example above you can label several flavors of green, blue, red,  brown, pink, etc. In each slot you have several stripes that represent the colors from the training set and in which slot they ended up.</p>
<p>In the demo application the basic steps are:</p>
<ol>
<li>Play with the different settings (or leave them alone&#8230; take special attention to Layer Width/Height and Set Size)</li>
<li>Generate Training Set</li>
<li>Start (Learning)</li>
<li>Choose Color (to classify)</li>
<li>Classify (the neuron that best matches the selected color will be highlighted with a red border)</li>
</ol>
<p>Download and try the Color Classifier. Keep in mind that a lot of the source code is UI-related, and not Algorithm-related, so don&#8217;t be afraid!</p>
<p><a title="Color Classifier Application" href="http://brunosilva.net/bs-downloads/ColorClassifier1.0.rar" target="_self">Download Demo</a> | <a title="Color Classifier Source Code" href="http://brunosilva.net/bs-downloads/ColorClassifier1.0.source.rar" target="_self">Download Source Code</a></p>
]]></description>
			<content:encoded><![CDATA[<p>During the last weeks I&#8217;ve been doing some research related to my Master thesis. One of the topics I&#8217;m studying is <a title="Unsupervised Learning" href="http://en.wikipedia.org/wiki/Unsupervised_learning" target="_blank">Unsupervised Machine Learning</a>. The main goal is to have a piece of software that given a training set (a set of examples representative of the whole population) allow the software to accept input that it has never seen before and behave as expected.</p>
<p>Imagine for instance a concept called Color Classifier. We usually have several named colors such as red, green, blue, yellow, gray, orange, etc.  You have different flavors of each color, and you can consider different combinations of RGB colors the same color. How  can you, given a RGB Color code, name that color?</p>
<p>One approach is using Neural Networks (which is a unsupervised learning method) for classification.</p>
<p>I won&#8217;t talk about the details of Neural Networks algorithms, since it is the reason why many people avoid this kind of approach: complexity. I&#8217;ll just show you how, with a library that hides the implementation details, you can use them.</p>
<p><a title="NeuronDotNet - Artificial Neural Networks in C#" href="http://neurondotnet.freehostia.com/download.html" target="_blank">NeuronDotNet</a> is a .NET library which allows you to use Neural Networks algorithms as a black box. They have <a title="NeuronDotNet - Demo Applications" href="http://neurondotnet.freehostia.com/samples/index.html" target="_blank">some samples</a> which can guide you, as they guided me.</p>
<p>The algorithm I&#8217;m using is called <a title="Self-organizing Map" href="http://en.wikipedia.org/wiki/Self-organizing_map" target="_self">Self-organizing Map</a> (SOM). The main idea is to generate a 2D map which topology (dispersion of the points and their positions) is based on the relation between the input data. Back to the example, from a set of random colors which can be represented as a vector with 3 dimensions (input), we generate a map with 2 dimensions, where similar colors get close to each other and completely different colors are set apart. The picture bellow represents the results.</p>
<p>(Left: input, Right: 2D map that results from the algorithm)</p>
<p style="text-align: center;"><a title="Color Classifier" href="http://brunosilva.net/bs-images/ColorClassifier.png" target="_blank"><img class="aligncenter" title="Color Classifier" src="http://brunosilva.net/bs-images/ColorClassifier_small.png" alt="" width="596" height="421" /></a></p>
<p>The number of colors that will be recognized (the number of neurons of the output layer) can be customized in the neural network configuration, prior to the training phase. In the example above I recognize 25 different colors.</p>
<p>Once the SOM algorithm runs in training mode, the resultant neural network is able to classify new colors into the different slots of the map. If you name each slot with the name of a color, you get a color classifier. In the example above you can label several flavors of green, blue, red,  brown, pink, etc. In each slot you have several stripes that represent the colors from the training set and in which slot they ended up.</p>
<p>In the demo application the basic steps are:</p>
<ol>
<li>Play with the different settings (or leave them alone&#8230; take special attention to Layer Width/Height and Set Size)</li>
<li>Generate Training Set</li>
<li>Start (Learning)</li>
<li>Choose Color (to classify)</li>
<li>Classify (the neuron that best matches the selected color will be highlighted with a red border)</li>
</ol>
<p>Download and try the Color Classifier. Keep in mind that a lot of the source code is UI-related, and not Algorithm-related, so don&#8217;t be afraid!</p>
<p><a title="Color Classifier Application" href="http://brunosilva.net/bs-downloads/ColorClassifier1.0.rar" target="_self">Download Demo</a> | <a title="Color Classifier Source Code" href="http://brunosilva.net/bs-downloads/ColorClassifier1.0.source.rar" target="_self">Download Source Code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/using-neural-networks-for-classification/426/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gmail - Labs Plugin for Drunk People?!</title>
		<link>http://brunosilva.net/gmail-labs-plugin-for-drunk-people/420/</link>
		<comments>http://brunosilva.net/gmail-labs-plugin-for-drunk-people/420/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 10:19:13 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[Funny]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=420</guid>
		<description><![CDATA[<blockquote><p><span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-family: arial; color: #000000;">When you enable <a title="New in Labs: Mail Googles" href="http://gmailblog.blogspot.com/2008/10/new-in-labs-stop-sending-mail-you-later.html" target="_blank">Mail Goggles</a>, it will check that you&#8217;re really sure you want to send that late night Friday email. And what better way to check than by making you solve a few simple math problems after you click send to verify you&#8217;re in the right state of mind?</span></p></blockquote>
<p>As you can read above and by the challenges bellow it really looks like a test to find out if you are drunk or under the influence of drugs. lol</p>
<p style="text-align: center;"><img class="aligncenter" title="Mail Googles" src="http://brunosilva.net/bs-images/mail_goggles.png" alt="" width="505" height="258" /></p>
<p style="text-align: left;">This Plugin is kind of useless, but you can find some more with nice features. Learn about Gmail Labs in the <a title="Introducing Gmail Labs" href="http://gmailblog.blogspot.com/2008/06/introducing-gmail-labs.html" target="_blank">official Gmail blog</a>.</p>
]]></description>
			<content:encoded><![CDATA[<blockquote><p><span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-family: arial; color: #000000;">When you enable <a title="New in Labs: Mail Googles" href="http://gmailblog.blogspot.com/2008/10/new-in-labs-stop-sending-mail-you-later.html" target="_blank">Mail Goggles</a>, it will check that you&#8217;re really sure you want to send that late night Friday email. And what better way to check than by making you solve a few simple math problems after you click send to verify you&#8217;re in the right state of mind?</span></p></blockquote>
<p>As you can read above and by the challenges bellow it really looks like a test to find out if you are drunk or under the influence of drugs. lol</p>
<p style="text-align: center;"><img class="aligncenter" title="Mail Googles" src="http://brunosilva.net/bs-images/mail_goggles.png" alt="" width="505" height="258" /></p>
<p style="text-align: left;">This Plugin is kind of useless, but you can find some more with nice features. Learn about Gmail Labs in the <a title="Introducing Gmail Labs" href="http://gmailblog.blogspot.com/2008/06/introducing-gmail-labs.html" target="_blank">official Gmail blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/gmail-labs-plugin-for-drunk-people/420/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sapo Code Bits está aí!</title>
		<link>http://brunosilva.net/sapo-code-bits-esta-ai/417/</link>
		<comments>http://brunosilva.net/sapo-code-bits-esta-ai/417/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 13:31:17 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=417</guid>
		<description><![CDATA[<p style="text-align: center;"><a title="Sapo Codebits" href="http://codebits.sapo.pt/" target="_blank"><img class="aligncenter" title="Sapo Codebits" src="http://brunosilva.net/bs-images/codebits2008.png" alt="" width="468" height="80" /></a></p>
<p style="text-align: left;">O Sapo Code Bits aproxima-se! Este evento conta com concursos, workshops e bastante animação e troca de ideias. O ano passado não estive presente, mas estou a fazer os possíveis para ir este ano!</p>
<p style="text-align: left;">Para tal registem-se no site apresentando a vossa candidatura. Mais informações através do site <a title="Sapo Codebits" href="http://codebits.sapo.pt" target="_blank">codebits.sapo.pt</a> e para notificações de última hora sigam <a title="Sapo Codebits Twitter" href="http://twitter.com/codebits" target="_blank">http://twitter.com/codebits</a></p>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Sapo Codebits" href="http://codebits.sapo.pt/" target="_blank"><img class="aligncenter" title="Sapo Codebits" src="http://brunosilva.net/bs-images/codebits2008.png" alt="" width="468" height="80" /></a></p>
<p style="text-align: left;">O Sapo Code Bits aproxima-se! Este evento conta com concursos, workshops e bastante animação e troca de ideias. O ano passado não estive presente, mas estou a fazer os possíveis para ir este ano!</p>
<p style="text-align: left;">Para tal registem-se no site apresentando a vossa candidatura. Mais informações através do site <a title="Sapo Codebits" href="http://codebits.sapo.pt" target="_blank">codebits.sapo.pt</a> e para notificações de última hora sigam <a title="Sapo Codebits Twitter" href="http://twitter.com/codebits" target="_blank">http://twitter.com/codebits</a></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/sapo-code-bits-esta-ai/417/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GPS Cycle and Google Earth - Keep track of your steps</title>
		<link>http://brunosilva.net/gps-cycle-and-google-earth-keep-track-of-your-steps/409/</link>
		<comments>http://brunosilva.net/gps-cycle-and-google-earth-keep-track-of-your-steps/409/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 15:10:13 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[Freeware]]></category>

		<category><![CDATA[My Life]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=409</guid>
		<description><![CDATA[<p>Probably I haven&#8217;t mentioned before, but after my Qtek S200 crashed a few months ago, I&#8217;ve bought an HTC Diamond. At first it was a little slow and battery consuming, but 3 days after I bought it, HTC released a new ROM for TMN customers which solved those issues. Great timing I had. <img src='http://brunosilva.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>Yesterday I tried a new version of a tool I didn&#8217;t know about. It is called GPS Cycle and it uses your built-in GPS receiver to track your position and draw a graph.</p>
<p style="text-align: center;"><img class="aligncenter" title="GPS Cycle for Windows Mobile" src="http://brunosilva.net/bs-images/gps_tracking01.jpg" alt="" width="625" height="304" /></p>
<p>But the feature that I really like, is the ability to save your path into a file which can be read by applications such as Google Earth. This way you can review your tracking, if you go for a walk by foot or bicycle , or something like that.</p>
<p style="text-align: center;"><img class="aligncenter" title="Google Earth - Open File" src="http://brunosilva.net/bs-images/gps_tracking02.png" alt="" width="670" height="515" /></p>
<p>If you enable the geo-referenced photographs in your phone, you can decorate your path with those pictures (with some additional work).</p>
<p style="text-align: center;"><img class="aligncenter" title="Google Earth - Tracking" src="http://brunosilva.net/bs-images/gps_tracking03.png" alt="" width="624" height="258" /></p>
<p style="text-align: left;">GPS Cycle is available at the <a title="GPS Cycle" href="http://forum.xda-developers.com/showthread.php?t=424423" target="_blank">XDA Developers Forum</a>. You can enable the geo-referencing in your photos in HTC Diamond using  <a title="Diamond Tweak" href="http://forum.xda-developers.com/showthread.php?t=409540" target="_blank">Diamond Tweak</a>. (Other devices that have builtin GPS have similar tools that change some register keys).</p>
]]></description>
			<content:encoded><![CDATA[<p>Probably I haven&#8217;t mentioned before, but after my Qtek S200 crashed a few months ago, I&#8217;ve bought an HTC Diamond. At first it was a little slow and battery consuming, but 3 days after I bought it, HTC released a new ROM for TMN customers which solved those issues. Great timing I had. <img src='http://brunosilva.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>Yesterday I tried a new version of a tool I didn&#8217;t know about. It is called GPS Cycle and it uses your built-in GPS receiver to track your position and draw a graph.</p>
<p style="text-align: center;"><img class="aligncenter" title="GPS Cycle for Windows Mobile" src="http://brunosilva.net/bs-images/gps_tracking01.jpg" alt="" width="625" height="304" /></p>
<p>But the feature that I really like, is the ability to save your path into a file which can be read by applications such as Google Earth. This way you can review your tracking, if you go for a walk by foot or bicycle , or something like that.</p>
<p style="text-align: center;"><img class="aligncenter" title="Google Earth - Open File" src="http://brunosilva.net/bs-images/gps_tracking02.png" alt="" width="670" height="515" /></p>
<p>If you enable the geo-referenced photographs in your phone, you can decorate your path with those pictures (with some additional work).</p>
<p style="text-align: center;"><img class="aligncenter" title="Google Earth - Tracking" src="http://brunosilva.net/bs-images/gps_tracking03.png" alt="" width="624" height="258" /></p>
<p style="text-align: left;">GPS Cycle is available at the <a title="GPS Cycle" href="http://forum.xda-developers.com/showthread.php?t=424423" target="_blank">XDA Developers Forum</a>. You can enable the geo-referencing in your photos in HTC Diamond using  <a title="Diamond Tweak" href="http://forum.xda-developers.com/showthread.php?t=409540" target="_blank">Diamond Tweak</a>. (Other devices that have builtin GPS have similar tools that change some register keys).</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/gps-cycle-and-google-earth-keep-track-of-your-steps/409/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Citizen Card based authentication @ IST</title>
		<link>http://brunosilva.net/citizen-card-based-authentication-ist/404/</link>
		<comments>http://brunosilva.net/citizen-card-based-authentication-ist/404/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 15:52:40 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[My Life]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=404</guid>
		<description><![CDATA[<p align="center"><a title="Citizen Card @ IST" href="https://id.ist.utl.pt/cas/login"><img class="aligncenter" title="Citizen Card @ IST" src="http://brunosilva.net/bs-images/citizen_card.png" alt="" width="516" height="362" /></a></p>
<p>Today I was amazed to realize that my University systems allow you to use the new <a title="Cartão do Cidadão" href="http://www.cartaodecidadao.pt/">Portuguese Citizen Card</a>!</p>
<p>I&#8217;m pretty sure that almost no one will use this feature, but it is a nice initiative to embrace this new authentication mechanism.</p>
]]></description>
			<content:encoded><![CDATA[<p align="center"><a title="Citizen Card @ IST" href="https://id.ist.utl.pt/cas/login"><img class="aligncenter" title="Citizen Card @ IST" src="http://brunosilva.net/bs-images/citizen_card.png" alt="" width="516" height="362" /></a></p>
<p>Today I was amazed to realize that my University systems allow you to use the new <a title="Cartão do Cidadão" href="http://www.cartaodecidadao.pt/">Portuguese Citizen Card</a>!</p>
<p>I&#8217;m pretty sure that almost no one will use this feature, but it is a nice initiative to embrace this new authentication mechanism.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/citizen-card-based-authentication-ist/404/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Life without Walls</title>
		<link>http://brunosilva.net/life-without-walls/398/</link>
		<comments>http://brunosilva.net/life-without-walls/398/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 08:47:35 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[Funny]]></category>

		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=398</guid>
		<description><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="Life without walls" src="http://brunosilva.net/bs-images/life_without_walls01.jpg" alt="" width="240" height="150" /></p>
<p>A new Microsoft marketing wave has started with the motto &#8220;Windows Without Walls&#8221; as I read int <a title="Windows: Life without Walls" href="http://windowsvistablog.com/blogs/windowsvista/archive/2008/09/18/windows-life-without-walls.aspx" target="_blank">Windows Vista Blog</a>. Pretty nice concept and <a title="Life without Walls Wallpapers" href="http://windowsvistablog.com/blogs/windowsexperience/archive/2008/09/18/life-without-walls-wallpapers-for-your-pc.aspx" target="_self">nice wallpaper</a>.  But from a developer perspective the image is pretty funny. Take a look at the image bellow.</p>
<p style="text-align: center;"><img class="aligncenter" title="Life without walls - details" src="http://brunosilva.net/bs-images/life_without_walls02.jpg" alt="" width="281" height="344" /></p>
<p>It seems that Windows is about getting some construction tools and hack our house around and using a hammer to get a hole where you need a hole. <img src='http://brunosilva.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /></p>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="Life without walls" src="http://brunosilva.net/bs-images/life_without_walls01.jpg" alt="" width="240" height="150" /></p>
<p>A new Microsoft marketing wave has started with the motto &#8220;Windows Without Walls&#8221; as I read int <a title="Windows: Life without Walls" href="http://windowsvistablog.com/blogs/windowsvista/archive/2008/09/18/windows-life-without-walls.aspx" target="_blank">Windows Vista Blog</a>. Pretty nice concept and <a title="Life without Walls Wallpapers" href="http://windowsvistablog.com/blogs/windowsexperience/archive/2008/09/18/life-without-walls-wallpapers-for-your-pc.aspx" target="_self">nice wallpaper</a>.  But from a developer perspective the image is pretty funny. Take a look at the image bellow.</p>
<p style="text-align: center;"><img class="aligncenter" title="Life without walls - details" src="http://brunosilva.net/bs-images/life_without_walls02.jpg" alt="" width="281" height="344" /></p>
<p>It seems that Windows is about getting some construction tools and hack our house around and using a hammer to get a hole where you need a hole. <img src='http://brunosilva.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/life-without-walls/398/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Encomendas no Site FNAC &#8211; Not that simple&#8230;</title>
		<link>http://brunosilva.net/encomendas-no-site-fnac-not-that-simple/394/</link>
		<comments>http://brunosilva.net/encomendas-no-site-fnac-not-that-simple/394/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 11:13:43 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[My Life]]></category>

		<category><![CDATA[Usability]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=394</guid>
		<description><![CDATA[<p>Ontem necessitei de fazer uma encomenda no site da FNAC, mas não foi propriamente fácil. Fiquei frustrado o suficiente para lhes enviar um e-mail para o Apoio a Clientes.</p>
<blockquote><p>Bom dia. </p>
<p>Acabei agora de realizar uma encomenda na loja online, e há algumas coisas que não percebo. Primeiro tive bastantes dificuldades em realizar a encomenda devido a questões de usabilidade: Ao seleccionar como local de entrega uma loja FNAC, as caixas de texto para expedição (morada, código postal, etc) ficaram inactivas (o que é espectável). No entanto permaneceram com preenchimento obrigatório, o que me obrigou a mudar o local de entrega para &quot;Morada&quot;, preencher tudo, e só aí escolher a loja para entrega&#8230;      <br />Quando é aberto o formulário para expedição, no envio para morada apenas aparece a opção de recepção das 9 às 18 horas, só preenchendo os diversos campos aparece a opção das 19 às 22h. Ora além da falta de       <br />transparência para o utilizador, ainda se arriscam a perder encomendas por falta desta informação. Finalmente no pagamento, é-me pedido o NIB, o qual copio da minha aplicação de e-banking e colo na caixa de texto.       <br />Recebo uma mensagem de &quot;NIB incorrecto&quot; à qual não é anexada qualquer informação do formato esperado, depois de tirar espaços, o código do país e os digitos finais de checkdigit, lá consegui submeter o pedido.       <br />Têm sorte que não desisti a meio. Por fim em vez de uma mensagem de &quot;Compra efectuada com sucesso, vá ao seu e-mail&quot; tenho o carrinho vazio, levando-me a pensar que tinha perdido o processo de encomenda.       <br />Aconselhava seriamente a uma revisão da usabilidade do vosso site. </p>
<p>Com os melhores cumprimentos, </p>
<p>Bruno Silva </p>
</blockquote>
<p>Foram simpáticos o suficiente para responderem a pedir desculpas e a dizerem que se encontravam com “problemas técnicos”… Era o que esperava, mas pelo menos despejei a frustração! <img src='http://brunosilva.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Também achei curioso dizerem que estavam totalmente disponíveis para mais esclarecimentos, e de seguida me fecharem o ticket no sistema deles. lol</p>
]]></description>
			<content:encoded><![CDATA[<p>Ontem necessitei de fazer uma encomenda no site da FNAC, mas não foi propriamente fácil. Fiquei frustrado o suficiente para lhes enviar um e-mail para o Apoio a Clientes.</p>
<blockquote><p>Bom dia. </p>
<p>Acabei agora de realizar uma encomenda na loja online, e há algumas coisas que não percebo. Primeiro tive bastantes dificuldades em realizar a encomenda devido a questões de usabilidade: Ao seleccionar como local de entrega uma loja FNAC, as caixas de texto para expedição (morada, código postal, etc) ficaram inactivas (o que é espectável). No entanto permaneceram com preenchimento obrigatório, o que me obrigou a mudar o local de entrega para &quot;Morada&quot;, preencher tudo, e só aí escolher a loja para entrega&#8230;      <br />Quando é aberto o formulário para expedição, no envio para morada apenas aparece a opção de recepção das 9 às 18 horas, só preenchendo os diversos campos aparece a opção das 19 às 22h. Ora além da falta de       <br />transparência para o utilizador, ainda se arriscam a perder encomendas por falta desta informação. Finalmente no pagamento, é-me pedido o NIB, o qual copio da minha aplicação de e-banking e colo na caixa de texto.       <br />Recebo uma mensagem de &quot;NIB incorrecto&quot; à qual não é anexada qualquer informação do formato esperado, depois de tirar espaços, o código do país e os digitos finais de checkdigit, lá consegui submeter o pedido.       <br />Têm sorte que não desisti a meio. Por fim em vez de uma mensagem de &quot;Compra efectuada com sucesso, vá ao seu e-mail&quot; tenho o carrinho vazio, levando-me a pensar que tinha perdido o processo de encomenda.       <br />Aconselhava seriamente a uma revisão da usabilidade do vosso site. </p>
<p>Com os melhores cumprimentos, </p>
<p>Bruno Silva </p>
</blockquote>
<p>Foram simpáticos o suficiente para responderem a pedir desculpas e a dizerem que se encontravam com “problemas técnicos”… Era o que esperava, mas pelo menos despejei a frustração! <img src='http://brunosilva.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Também achei curioso dizerem que estavam totalmente disponíveis para mais esclarecimentos, e de seguida me fecharem o ticket no sistema deles. lol</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/encomendas-no-site-fnac-not-that-simple/394/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows Live New Wave Beta</title>
		<link>http://brunosilva.net/windows-live-new-wave-beta/386/</link>
		<comments>http://brunosilva.net/windows-live-new-wave-beta/386/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 08:41:15 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[Windows Live]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=386</guid>
		<description><![CDATA[<blockquote><p>As promised, the <a href="http://download.live.com/" target="_blank">public betas</a> of the latest version of the Windows Live suite of PC applications are now available for download.&#160; Go to <a href="http://download.live.com/" target="_blank">http://download.live.com/</a> and get the newest <a href="http://download.live.com/messenger" target="_blank">Messenger</a>, <a href="http://download.live.com/wlmail" target="_blank">Mail</a>,<a href="http://download.live.com/photogallery" target="_blank">Photo Gallery</a>, <a href="http://download.live.com/moviemaker" target="_blank">Movie Maker</a>, <a href="http://download.live.com/writer" target="_blank">Writer</a>, <a href="http://download.live.com/toolbar" target="_blank">Toolbar</a>, and <a href="http://download.live.com/familysafety" target="_blank">Family Safety</a>.</p>
</blockquote>
<p style="text-align: right">in <a title="Windows Live Wire - The New Betas are available for download" href="http://windowslivewire.spaces.live.com/Blog/cns!2F7EB29B42641D59!6861.entry" target="_blank">Windows Live Wire</a></p>
<p style="text-align: left">So far I&#8217;ve only tested Windows Live Messenger, generally I like the new look. I love the &quot;Favorites List&quot; feature, since I already had a favorites group in previous versions of Windows Live Messenger. Another feature that may become useful: creating groups of users as a single contact. This way in a single click you can begin a conversation with multiple contacts, almost like a mailing list or a chat room channel.</p>
<p style="text-align: center"><img class="aligncenter" title="Windows Live Messenger Beta - Main Window" height="545" alt="" src="http://brunosilva.net/bs-images/wlmessenger_beta01.png" width="354" /></p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">Something I would like to change is the size of the avatars in the conversation window. It is pretty cool that now you can get a minimalistic conversation window if you hide the toolbar in the top and the avatars.</p>
<p style="text-align: center"><img class="aligncenter" title="Windows Live Messenger Beta - Conversation Window" height="495" alt="" src="http://brunosilva.net/bs-images/wlmessenger_beta02.png" width="630" /></p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">Make sure you restart your operating system after installing, because I was getting some strange window behavior previous to that. One feature that is a &quot;little&quot; buggy is the theme customization. You can try to change your windows color to black, but even if you set it as your default color, after restarting Windows Live Messenger it will be reset to the default blue, even the main window will get the default color&#8230;</p>
<p style="text-align: left">Next step: keep on testing and try the other applications also.</p>
]]></description>
			<content:encoded><![CDATA[<blockquote><p>As promised, the <a href="http://download.live.com/" target="_blank">public betas</a> of the latest version of the Windows Live suite of PC applications are now available for download.&#160; Go to <a href="http://download.live.com/" target="_blank">http://download.live.com/</a> and get the newest <a href="http://download.live.com/messenger" target="_blank">Messenger</a>, <a href="http://download.live.com/wlmail" target="_blank">Mail</a>,<a href="http://download.live.com/photogallery" target="_blank">Photo Gallery</a>, <a href="http://download.live.com/moviemaker" target="_blank">Movie Maker</a>, <a href="http://download.live.com/writer" target="_blank">Writer</a>, <a href="http://download.live.com/toolbar" target="_blank">Toolbar</a>, and <a href="http://download.live.com/familysafety" target="_blank">Family Safety</a>.</p>
</blockquote>
<p style="text-align: right">in <a title="Windows Live Wire - The New Betas are available for download" href="http://windowslivewire.spaces.live.com/Blog/cns!2F7EB29B42641D59!6861.entry" target="_blank">Windows Live Wire</a></p>
<p style="text-align: left">So far I&#8217;ve only tested Windows Live Messenger, generally I like the new look. I love the &quot;Favorites List&quot; feature, since I already had a favorites group in previous versions of Windows Live Messenger. Another feature that may become useful: creating groups of users as a single contact. This way in a single click you can begin a conversation with multiple contacts, almost like a mailing list or a chat room channel.</p>
<p style="text-align: center"><img class="aligncenter" title="Windows Live Messenger Beta - Main Window" height="545" alt="" src="http://brunosilva.net/bs-images/wlmessenger_beta01.png" width="354" /></p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">Something I would like to change is the size of the avatars in the conversation window. It is pretty cool that now you can get a minimalistic conversation window if you hide the toolbar in the top and the avatars.</p>
<p style="text-align: center"><img class="aligncenter" title="Windows Live Messenger Beta - Conversation Window" height="495" alt="" src="http://brunosilva.net/bs-images/wlmessenger_beta02.png" width="630" /></p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">Make sure you restart your operating system after installing, because I was getting some strange window behavior previous to that. One feature that is a &quot;little&quot; buggy is the theme customization. You can try to change your windows color to black, but even if you set it as your default color, after restarting Windows Live Messenger it will be reset to the default blue, even the main window will get the default color&#8230;</p>
<p style="text-align: left">Next step: keep on testing and try the other applications also.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/windows-live-new-wave-beta/386/feed/</wfw:commentRss>
		</item>
		<item>
		<title>XNA Game Studio 3.0 beta &#124; Now Live!</title>
		<link>http://brunosilva.net/xna-game-studio-30-beta-now-live/383/</link>
		<comments>http://brunosilva.net/xna-game-studio-30-beta-now-live/383/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 09:01:13 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[XBox 360]]></category>

		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=383</guid>
		<description><![CDATA[<p style="text-align: center;"><a title="XNA Game Studio 3.0 Beta" href="http://creators.xna.com/en-us/3.0beta_mainpage" target="_blank"><img class="aligncenter" title="XNA Game Studio 3.0 Beta" src="http://brunosilva.net/bs-images/xna_gamestudio_3beta.png" alt="" width="648" height="107" /></a></p>
<blockquote>
<p style="margin-right: 0px;">This release represents the beta of Microsoft XNA Game Studio 3.0, which enables hobbyists, academics, and independent game developers to easily create video games for Windows and the Microsoft Zune digital media player using optimized cross-platform gaming libraries based on the .NET Framework.</p>
<p style="margin-right: 0px;">The XNA Game Studio 3.0 Beta is a chance to get an early look at XNA Game Studio 3.0, and provide feedback on the product that is currently in development.</p>
</blockquote>
<p style="margin-right: 0px; text-align: right;">in <a title="XNA Game Studio 3.0 Beta" href="http://creators.xna.com/en-us/3.0beta_mainpage" target="_blank">XNA Creators Club</a></p>
<p style="margin-right: 0px; text-align: left;">Now it supports Zune with the 3.0 software version. The CTP version didn&#8217;t have support for XBOX 360 development, now it is fully supported <img src='http://brunosilva.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Finally we can use Visual Studio 2008 for XBOX 360 development! Other features that please me are the Rich Presence support (that message in XBox Live that tells you what are your friends playing in the context of a game. eg: level, dificulty,etc.), and Invites for joining you in a multiplayer game.</p>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="XNA Game Studio 3.0 Beta" href="http://creators.xna.com/en-us/3.0beta_mainpage" target="_blank"><img class="aligncenter" title="XNA Game Studio 3.0 Beta" src="http://brunosilva.net/bs-images/xna_gamestudio_3beta.png" alt="" width="648" height="107" /></a></p>
<blockquote>
<p style="margin-right: 0px;">This release represents the beta of Microsoft XNA Game Studio 3.0, which enables hobbyists, academics, and independent game developers to easily create video games for Windows and the Microsoft Zune digital media player using optimized cross-platform gaming libraries based on the .NET Framework.</p>
<p style="margin-right: 0px;">The XNA Game Studio 3.0 Beta is a chance to get an early look at XNA Game Studio 3.0, and provide feedback on the product that is currently in development.</p>
</blockquote>
<p style="margin-right: 0px; text-align: right;">in <a title="XNA Game Studio 3.0 Beta" href="http://creators.xna.com/en-us/3.0beta_mainpage" target="_blank">XNA Creators Club</a></p>
<p style="margin-right: 0px; text-align: left;">Now it supports Zune with the 3.0 software version. The CTP version didn&#8217;t have support for XBOX 360 development, now it is fully supported <img src='http://brunosilva.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Finally we can use Visual Studio 2008 for XBOX 360 development! Other features that please me are the Rich Presence support (that message in XBox Live that tells you what are your friends playing in the context of a game. eg: level, dificulty,etc.), and Invites for joining you in a multiplayer game.</p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/xna-game-studio-30-beta-now-live/383/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Data Visualization Charts (Part 3 - WCF Webservice Data Source)</title>
		<link>http://brunosilva.net/data-visualization-charts-part-3-wcf-webservice-data-source/378/</link>
		<comments>http://brunosilva.net/data-visualization-charts-part-3-wcf-webservice-data-source/378/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 10:51:37 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[WCF]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=378</guid>
		<description><![CDATA[<p>Since I&#8217;m having trouble to get enough time to complete these post series (1 post was left), I&#8217;ll just leave you the source code.</p>
<p>It contains a sample of a WCF service that uses LINQ to SQL to retrieve some data from a SQL Server Database (AdventureWorks) and return it as XML. I&#8217;ve also some commented code in order to add a JSON endpoint.</p>
<p><a title="Data Visualization Charts (Part 3 - WCF Webservice Data Source)" href="http://brunosilva.net/bs-downloads/demoVisifireSilverlight-part3.zip" target="_self">Download Source Code</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Since I&#8217;m having trouble to get enough time to complete these post series (1 post was left), I&#8217;ll just leave you the source code.</p>
<p>It contains a sample of a WCF service that uses LINQ to SQL to retrieve some data from a SQL Server Database (AdventureWorks) and return it as XML. I&#8217;ve also some commented code in order to add a JSON endpoint.</p>
<p><a title="Data Visualization Charts (Part 3 - WCF Webservice Data Source)" href="http://brunosilva.net/bs-downloads/demoVisifireSilverlight-part3.zip" target="_self">Download Source Code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/data-visualization-charts-part-3-wcf-webservice-data-source/378/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Data Visualization Charts (Part 2 - XML Data Source)</title>
		<link>http://brunosilva.net/data-visualization-charts-part-2-xml-data-source/364/</link>
		<comments>http://brunosilva.net/data-visualization-charts-part-2-xml-data-source/364/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 12:42:57 +0000</pubDate>
		<dc:creator>Bruno Silva</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://brunosilva.net/?p=364</guid>
		<description><![CDATA[<p>Previously I&#8217;ve written <a title="Data Visualization Charts (Part 1 - Silverlight Interface)" href="http://brunosilva.net/data-visualization-charts-part-1-silverlight-interface/346/" target="_blank">about how to create data charts</a> using Silverlight. The data was coming from an static array, which is not that useful after all. Now lets see how to use data from an XML file. Bellow you can see an example of the XML file we&#8217;ll use. It is as simple as it can be, having pairs of labels and their associated value.</p>
<p style="text-align: center;"><img class="aligncenter" title="Silverlight Chart - Samples XML Data Source" src="http://brunosilva.net/bs-images/visifire04.png" alt="" width="350" height="191" /></p>
<p>In your Silverlight project, if you try to open directly the XML file using something like <tt>XDocument.Load(&#8221;Data.xml&#8221;)</tt> Silverlight will try to find the file inside the XAP file. We could place the XML file inside the XAP file in order to make it work, but when we needed to update the file we would have to change the XAP file (replacing an XML file in a ZIP file)&#8230; Instead, we will use an external XML file. We must download the file using a WebClient (the download term applies: remember that Silverlight code runs in the client side, so while accessing you website resources you are accessing remote resources).</p>
<p style="text-align: center;"><img class="aligncenter" title="Silverlight Charts - Download and Parse XML - LINQ" src="http://brunosilva.net/bs-images/visifire05.png" alt="" width="605" height="179" /></p>
<p>The download is asynchronous, so we need to create an event handler to be executed when the XML file download is completed. The XML file is downloaded as a string, so we need to parse it into a XDocument object, in order to manipulate it. The example bellow shows a little bit of LINQ to XML. <a title="Language Integrated Query - Wikipedia" href="http://en.wikipedia.org/wiki/Language_Integrated_Query" target="_blank">LINQ (Language Integrated Query)</a> allows you to query several data sources, including XML, Databases, Object collections, etc (even <a title="Introducing Linq to Amazon" href="http://weblogs.asp.net/fmarguerie/archive/2006/06/26/Introducing-Linq-to-Amazon.aspx" target="_blank">Amazon</a>&#8230;). A nice tutorial about <a title="Using LINQ to XML (and how to build a custom RSS Feed Reader with it) " href="http://weblogs.asp.net/scottgu/archive/2007/08/07/using-linq-to-xml-and-how-to-build-a-custom-rss-feed-reader-with-it.aspx" target="_blank">LINQ to XML can be found at Scott Guthrie&#8217;s blog</a>.</p>
<p>We iterate through the data points present in the XML file and create a list of pairs containing the labels and respective values. After building the dataPoints list, the remaining code is similar to the code I&#8217;ve shown you in the Part 1 of these tutorials.</p>
<p style="text-align: center;"><img class="aligncenter" title="Silverlight Charts - Download and Parse XML - LINQ" src="http://brunosilva.net/bs-images/visifire06.png" alt="" width="605" height="246" /></p>
<p>The next and final step will be to use a WCF web service to retrieve the data from an database in order to create a real dynamic chart powered by Silverlight.</p>
<p><a title="Data Visualization Charts - XML Data Source Example" href="http://brunosilva.net/bs-downloads/demoVisifireSilverlight-part2.zip">Download Source Code</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Previously I&#8217;ve written <a title="Data Visualization Charts (Part 1 - Silverlight Interface)" href="http://brunosilva.net/data-visualization-charts-part-1-silverlight-interface/346/" target="_blank">about how to create data charts</a> using Silverlight. The data was coming from an static array, which is not that useful after all. Now lets see how to use data from an XML file. Bellow you can see an example of the XML file we&#8217;ll use. It is as simple as it can be, having pairs of labels and their associated value.</p>
<p style="text-align: center;"><img class="aligncenter" title="Silverlight Chart - Samples XML Data Source" src="http://brunosilva.net/bs-images/visifire04.png" alt="" width="350" height="191" /></p>
<p>In your Silverlight project, if you try to open directly the XML file using something like <tt>XDocument.Load(&#8221;Data.xml&#8221;)</tt> Silverlight will try to find the file inside the XAP file. We could place the XML file inside the XAP file in order to make it work, but when we needed to update the file we would have to change the XAP file (replacing an XML file in a ZIP file)&#8230; Instead, we will use an external XML file. We must download the file using a WebClient (the download term applies: remember that Silverlight code runs in the client side, so while accessing you website resources you are accessing remote resources).</p>
<p style="text-align: center;"><img class="aligncenter" title="Silverlight Charts - Download and Parse XML - LINQ" src="http://brunosilva.net/bs-images/visifire05.png" alt="" width="605" height="179" /></p>
<p>The download is asynchronous, so we need to create an event handler to be executed when the XML file download is completed. The XML file is downloaded as a string, so we need to parse it into a XDocument object, in order to manipulate it. The example bellow shows a little bit of LINQ to XML. <a title="Language Integrated Query - Wikipedia" href="http://en.wikipedia.org/wiki/Language_Integrated_Query" target="_blank">LINQ (Language Integrated Query)</a> allows you to query several data sources, including XML, Databases, Object collections, etc (even <a title="Introducing Linq to Amazon" href="http://weblogs.asp.net/fmarguerie/archive/2006/06/26/Introducing-Linq-to-Amazon.aspx" target="_blank">Amazon</a>&#8230;). A nice tutorial about <a title="Using LINQ to XML (and how to build a custom RSS Feed Reader with it) " href="http://weblogs.asp.net/scottgu/archive/2007/08/07/using-linq-to-xml-and-how-to-build-a-custom-rss-feed-reader-with-it.aspx" target="_blank">LINQ to XML can be found at Scott Guthrie&#8217;s blog</a>.</p>
<p>We iterate through the data points present in the XML file and create a list of pairs containing the labels and respective values. After building the dataPoints list, the remaining code is similar to the code I&#8217;ve shown you in the Part 1 of these tutorials.</p>
<p style="text-align: center;"><img class="aligncenter" title="Silverlight Charts - Download and Parse XML - LINQ" src="http://brunosilva.net/bs-images/visifire06.png" alt="" width="605" height="246" /></p>
<p>The next and final step will be to use a WCF web service to retrieve the data from an database in order to create a real dynamic chart powered by Silverlight.</p>
<p><a title="Data Visualization Charts - XML Data Source Example" href="http://brunosilva.net/bs-downloads/demoVisifireSilverlight-part2.zip">Download Source Code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://brunosilva.net/data-visualization-charts-part-2-xml-data-source/364/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
