<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blog.avanadeadvisor.com/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Aali - a developer's view</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.0 (Build: 60217.2664)</generator><item><title>Custom SendTo targets in Windows 7</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/12/14/14885.aspx</link><pubDate>Mon, 14 Dec 2009 10:10:02 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14885</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14885.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14885</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14885.aspx</wfw:comment><description>&lt;p&gt;Over the years, I have used to putting Notepad in my list of Send To -targets. Since installing Windows 7, I have tried opening the SendTo folder multiple times but never found it (it used to be easy in Vista and earlier versions, just right-click on start menu and it is there somewhere.). Now I finally took the time (maybe 10 seconds.) to find it and here it is:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The How-To Geek offers an easy way to customize the default choices. &lt;strong&gt;Simply type "shell:sendto" (without the quotes) in the location bar of a Windows Explorer window&lt;/strong&gt;. You'll see the default choices here. Now you can pull any of the defaults out or you can add locations you want in the standard list with a simple drag-and-drop.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a title="http://jkontherun.com/2009/02/03/customize-the-windows-7-send-to-menu-option/" href="http://jkontherun.com/2009/02/03/customize-the-windows-7-send-to-menu-option/"&gt;http://jkontherun.com/2009/02/03/customize-the-windows-7-send-to-menu-option/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14885" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1387.aspx">Windows 7</category></item><item><title>Playing with Windows Azure and SQL Azure</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/11/28/14844.aspx</link><pubDate>Sat, 28 Nov 2009 14:26:11 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14844</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14844.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14844</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14844.aspx</wfw:comment><description>&lt;p&gt;I have been playing around with Windows Azure and SQL Azure lately. Here are a few things that I have discovered along the way.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SQL Azure has a firewall, that by default blocks all external access. &lt;/strong&gt;This includes also Windows Azure, so the firewall rules need to be relaxed to do anything useful with it. There is a setting in SQL Azure management site called "Allow Microsoft Services access to this server" which adds a range 0.0.0.0-0.0.0.0, but that was not enough to allow access from code running in Windows Azure roles. I needed to manually add my role IP addresses to the rule list (found out the address range by using logging, explained below). Don't know if my affinity group settings has an effect to this or not. Note that it takes a few minutes for the firewall rules to become effective.&lt;/p&gt;  &lt;p&gt;Once you have loosened the firewall to allow traffic from your computer, you can &lt;strong&gt;use regular SQL Management Studio to query the SQL Azure databases&lt;/strong&gt;. Note that you cannot connect to the database engine, only open a query window to a specific database. You cannot change active database either using use command inside query window so you need to pay attention to the options when opening a query connection!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Azure has built in logging features nowadays that fully support System.Diagnostics trace/error logging&lt;/strong&gt;. However, if you want to look at the traces etc in production, you will need to configure Azure Storage, since table storage is the place where the diagnostics info can be transferred for viewing. There is an excellent talk in PDC09 that explains all aspects here: &lt;a title="http://microsoftpdc.com/Sessions/SVC15" href="http://microsoftpdc.com/Sessions/SVC15"&gt;http://microsoftpdc.com/Sessions/SVC15&lt;/a&gt;. I had some trouble getting the logs transferred until I realized that my storage account was created last spring and probably was somehow an outdated version. It started working once I created a new storage account.&lt;/p&gt;  &lt;p&gt;For viewing the logs I have used &lt;a href="http://www.cerebrata.com/Products/CloudStorageStudio/"&gt;app called CloudStorageStudio from Cerebrata&lt;/a&gt;, but I am sure there are many alternatives (including building your own, of course).&lt;/p&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14844" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1396.aspx">Windows Azure</category></item><item><title>Parsing DateTime strings that contain timezone abbreviations</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/11/22/14818.aspx</link><pubDate>Sun, 22 Nov 2009 22:32:19 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14818</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14818.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14818</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14818.aspx</wfw:comment><description>&lt;p&gt;I needed to parse RSS/Atom feeds and I was rather surprised to find that the standard .NET class libraries do not include a convenient way to successfully parse strings like &lt;strong&gt;&amp;quot;Tue, 01 Dec 2009 10:22:00 EST&amp;quot;&lt;/strong&gt;. The problem lies in the last part that says EST (or some other abbreviation). Based on my experiments, it is appearing in feed pubDate values every now and then. I don't know what the specs say about the time formats, but the dominant format seems to be like this: &lt;strong&gt;&amp;quot;Mon, 19 Mar 2007 23:48:18 -0700&amp;quot;&lt;/strong&gt;, which gets fortunately parsed correctly by DateTime.Parse().&lt;/p&gt;  &lt;p&gt;So, I needed a way to parse the "incorrectly formatted" string. Another surprise was that .NET class libraries do not even seem to include those abbreviated timezones either (TimeZoneInfo class comes close though). So I ended up writing this to solve the problem:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;// Handles cases like &amp;quot;Tue, 01 Dec 2009 10:22:00 EST&amp;quot; which cannot be parsed by DateTime.TryParse()      &lt;br /&gt;private static DateTime ParseSpecialDateTime(string datetimeString)       &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Dictionary&amp;lt;string, int&amp;gt; knownTimeZoneAbbreviations = new Dictionary&amp;lt;string, int&amp;gt;()       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;AST&amp;quot;, -4},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;ADT&amp;quot;, -3},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;EST&amp;quot;, -5},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;EDT&amp;quot;, -4},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;CST&amp;quot;, -6},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;CDT&amp;quot;, -5},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;MST&amp;quot;, -7},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;MDT&amp;quot;, -6},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;PST&amp;quot;, -8},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;PDT&amp;quot;, -7},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;AKST&amp;quot;, -9},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;AKDT&amp;quot;, -8},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;HAST&amp;quot;, -10},       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;quot;HADT&amp;quot;, -9}       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }; &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; foreach (String key in knownTimeZoneAbbreviations.Keys)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DateTime dt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (datetimeString.Contains(key))       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string withoutAbbr = datetimeString.Replace(key, &amp;quot;&amp;quot;);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (DateTime.TryParse(withoutAbbr, out dt) == true)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dt = dt.AddHours(knownTimeZoneAbbreviations[key]);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return dt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; break;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return DateTime.Now;       &lt;br /&gt;} &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;If anybody knows a better way to do this, feel free to write a comment or email me at aali.alikoski (at) avanade.com&lt;/p&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14818" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1153.aspx">General software development</category><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1448.aspx">Code</category></item><item><title>PDC09 over, get the content here</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/11/20/14808.aspx</link><pubDate>Fri, 20 Nov 2009 08:39:55 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14808</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14808.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14808</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14808.aspx</wfw:comment><description>&lt;p&gt;&lt;a title="http://bit.ly/pdc09scripts" href="http://bit.ly/pdc09scripts"&gt;http://bit.ly/pdc09scripts&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There are downloader and renamer scripts that do it.&lt;/p&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14808" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1383.aspx">PDC</category></item><item><title>PDC keynote 1 today</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/11/17/14787.aspx</link><pubDate>Tue, 17 Nov 2009 10:29:04 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14787</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14787.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14787</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14787.aspx</wfw:comment><description>&lt;p&gt;This evening (Finnish time) is the first PDC keynote. Plan on watching it remotely: &lt;a title="http://microsoftpdc.com/" href="http://microsoftpdc.com/"&gt;http://microsoftpdc.com/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14787" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1383.aspx">PDC</category></item><item><title>Oslo -&amp;gt; SQL Server Modeling</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/11/10/14736.aspx</link><pubDate>Tue, 10 Nov 2009 13:50:38 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14736</guid><dc:creator>aalialikoski</dc:creator><slash:comments>1</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14736.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14736</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14736.aspx</wfw:comment><description>&lt;p&gt;From DouglasP &lt;a href="http://www.douglaspurdy.com/2009/11/10/from-oslo-to-sql-server-modeling/"&gt;blog&lt;/a&gt; (emphasis mine):&lt;/p&gt;  &lt;p&gt;The components of the SQL Server Modeling CTP are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;"M" is a highly productive, developer friendly, textual language for defining schemas, queries, values, functions and DSLs for SQL Server databases &lt;/li&gt;    &lt;li&gt;"Quadrant" is a customizable tool for interacting with large datasets stored in SQL Server databases &lt;/li&gt;    &lt;li&gt;"Repository" is a SQL Server role for the the secure sharing of models between applications and systems &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We will announce the official names for these components as we land them, but the key thing is that &lt;strong&gt;all of these components are now part of SQL Server and will ship with a future release of that product&lt;/strong&gt;.&lt;/p&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14736" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1150.aspx">Software Factories</category><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1405.aspx">Oslo</category></item><item><title>Windows Mobile 6.5 on my Touch Diamond2</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/10/27/14660.aspx</link><pubDate>Tue, 27 Oct 2009 19:38:25 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14660</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14660.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14660</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14660.aspx</wfw:comment><description>&lt;p&gt;Just upgraded my phone to WM 6.5. So far so good.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.htc.com/europe/supportdownloadlist.aspx?p_id=249&amp;amp;act=sd&amp;amp;cat=2" href="http://www.htc.com/europe/supportdownloadlist.aspx?p_id=249&amp;amp;act=sd&amp;amp;cat=2"&gt;http://www.htc.com/europe/supportdownloadlist.aspx?p_id=249&amp;amp;act=sd&amp;amp;cat=2&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14660" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1177.aspx">Mobile</category></item><item><title>Exchange Web Services Managed API</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/10/26/14658.aspx</link><pubDate>Mon, 26 Oct 2009 21:11:49 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14658</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14658.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14658</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14658.aspx</wfw:comment><description>&lt;p&gt;Great, now there is an easy way to talk to Exchange over ws: &lt;a href="http://msdn.microsoft.com/en-us/library/dd633709.aspx"&gt;managed API&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Wrote this in 5 minutes and it worked without a single bug:&lt;/p&gt;  &lt;p&gt;ExchangeService service = new ExchangeService();   &lt;br /&gt;service.Credentials = new NetworkCredential(&amp;quot;userid&amp;quot;, &amp;quot;password&amp;quot;, &amp;quot;domain&amp;quot;);    &lt;br /&gt;service.Url = new Uri(&amp;quot;&lt;a href="https://servername/EWS/Exchange.asmx&amp;quot;);"&gt;https://servername/EWS/Exchange.asmx&amp;quot;);&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;ItemView view = new ItemView(100); // Return only ten items.   &lt;br /&gt;FindItemsResults&amp;lt;Item&amp;gt; findResults = service.FindItems(WellKnownFolderName.Inbox, view); &lt;/p&gt;  &lt;p&gt;foreach (Item i in findResults)   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; listBox1.Items.Add(i.Subject);    &lt;br /&gt;} &lt;/p&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14658" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1153.aspx">General software development</category></item><item><title>Shake and Save</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/10/25/14653.aspx</link><pubDate>Sun, 25 Oct 2009 21:38:56 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14653</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14653.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14653</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14653.aspx</wfw:comment><description>&lt;p&gt;I have been trying to figure out some use for the gyro sensors in Touch Diamond2. Here is one idea: &lt;a href="http://msmobiles.com/news.php/8708.html"&gt;Shake and Save&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Some instructions/code for the gyro stuff: &lt;a title="http://sensorapi.codeplex.com/" href="http://sensorapi.codeplex.com/"&gt;http://sensorapi.codeplex.com/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14653" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1153.aspx">General software development</category><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1177.aspx">Mobile</category></item><item><title>What does it mean to develop software for the cloud?</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/10/05/14557.aspx</link><pubDate>Mon, 05 Oct 2009 11:59:43 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14557</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14557.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14557</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14557.aspx</wfw:comment><description>&lt;p&gt;I participated with a couple of other people to an effort to create a paper about cloud computing. The initiative was started by Pasi Mäkinen (architect evangelist at Microsoft Finland), and the paper is available via Pasi's skydrive &lt;a href="http://cid-40f961178d6c28c9.skydrive.live.com/self.aspx/Julkinen/Azure/The%20Battle%20for%20Clouds.pdf"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Pasi wrote a small preface in his blog both in English and in Finnish:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/pasim/archive/2009/10/01/cloud-computing-arkkitehtuuri.aspx"&gt;Cloud computing -arkkitehtuuri&lt;/a&gt; (in Finnish)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/pasim/archive/2009/10/01/the-battle-for-clouds.aspx"&gt;The Battle for Clouds&lt;/a&gt; (in English)&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14557" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1396.aspx">Windows Azure</category></item><item><title>Color blind</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/09/27/14543.aspx</link><pubDate>Sun, 27 Sep 2009 21:30:59 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14543</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14543.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14543</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14543.aspx</wfw:comment><description>&lt;p&gt;I am color blind (red-green, the most popular type I guess). It makes many things more difficult that for the average person, and especially in computing there are many places where I have found out later that something was highlighted in red etc.&lt;/p&gt;  &lt;p&gt;Useful-looking web site to pay attention to the problem: &lt;a title="http://wearecolorblind.com/" href="http://wearecolorblind.com/"&gt;http://wearecolorblind.com/&lt;/a&gt;, if you are NOT color blind please take a look at the site and learn from the bad examples!&lt;/p&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14543" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1153.aspx">General software development</category></item><item><title>New stuff for Azure</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/09/21/14537.aspx</link><pubDate>Mon, 21 Sep 2009 14:21:29 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14537</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14537.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14537</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14537.aspx</wfw:comment><description>&lt;p&gt;Long time no posts. Let's write an update.&lt;/p&gt;  &lt;p&gt;Azure gets a &lt;a href="http://www.azurejournal.com/2009/09/windows-azure-service-management-api/"&gt;Management API&lt;/a&gt;. If I &lt;a href="http://msdn.microsoft.com/en-us/library/ee460809.aspx"&gt;read it right&lt;/a&gt;, you can e.g. make programmatic changes to the Azure service configuration to respond dynamically to load changes.&lt;/p&gt;  &lt;p&gt;Earlier during summer &lt;a href="http://blogs.msdn.com/windowsazure/archive/2009/07/14/confirming-commercial-availability-and-announcing-business-model.aspx"&gt;Azure pricing was announced&lt;/a&gt;. Old stuff but let's record it here.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/sqlserver/dataservices/default.aspx"&gt;SQL Azure CTP is publicly available&lt;/a&gt;. This is the "SQL Server in the cloud" -version announced originally spring earlier this year.&lt;/p&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14537" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1396.aspx">Windows Azure</category></item><item><title>May CTP of Azure SDK</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/06/03/14099.aspx</link><pubDate>Wed, 03 Jun 2009 09:42:00 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:14099</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/14099.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=14099</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/14099.aspx</wfw:comment><description>Almost missed this: &lt;A href="http://www.microsoft.com/azure/windowsazurefordevelopers/Default.aspx?path=DownloadToolsBtn"&gt;May CTP of the tools &amp;amp; SDK&lt;/A&gt; has been released. Most notable changes are added stability and integration to VS as well as Visual Studio 2010 beta support.&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=14099" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1396.aspx">Windows Azure</category></item><item><title>SEAMonster</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/05/18/13881.aspx</link><pubDate>Mon, 18 May 2009 07:57:00 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:13881</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/13881.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=13881</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/13881.aspx</wfw:comment><description>&lt;P&gt;Maybe this should go to &lt;A href="http://aalialikoski.blogspot.com"&gt;my photo blog&lt;/A&gt;, but since it has an interesting software development aspect, let's post it here:&lt;/P&gt;
&lt;P&gt;SEAMonster is a .NET based implementation of a fairly recent idea presented in SIGGRAPH 2007 called seam carving. To put it short, it means resizing images in a way that preseves meaningful areas of the image while compressing/deleting the other parts as needed.&lt;/P&gt;
&lt;P&gt;Have to download the code and play with it with my own images, putting it in codeplex is also a great idea :)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/mswanson/archive/2007/10/23/seamonster-a-net-based-seam-carving-implementation.aspx"&gt;http://blogs.msdn.com/mswanson/archive/2007/10/23/seamonster-a-net-based-seam-carving-implementation.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=13881" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1151.aspx">Photography</category><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1153.aspx">General software development</category></item><item><title>New Azure white papers</title><link>http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2009/05/12/13858.aspx</link><pubDate>Tue, 12 May 2009 07:13:00 GMT</pubDate><guid isPermaLink="false">5e51d585-b788-4f7c-85ba-1877739ce145:13858</guid><dc:creator>aalialikoski</dc:creator><slash:comments>0</slash:comments><comments>http://blog.avanadeadvisor.com/blogs/aalialikoski/comments/13858.aspx</comments><wfw:commentRss>http://blog.avanadeadvisor.com/blogs/aalialikoski/commentrss.aspx?PostID=13858</wfw:commentRss><wfw:comment>http://blog.avanadeadvisor.com/blogs/rsscomments/13858.aspx</wfw:comment><description>&lt;P&gt;Recently released:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5057e2b3-c8e5-4b26-a601-ff9621589ce3&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=5057e2b3-c8e5-4b26-a601-ff9621589ce3&amp;amp;DisplayLang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;B&gt;An Introduction to Microsoft .NET Services for Developers&lt;/B&gt;. This overview paper introduces Microsoft® .NET Services, each of its building block services, and how they fit together. &lt;BR&gt;&lt;BR&gt;&lt;B&gt;A Developer’s Guide to the Microsoft® .NET Access Control Service&lt;/B&gt;. This whitepaper shows developers how to use a claims-based identity model and the Microsoft® .NET Access Control Service – part of the Microsoft® .NET Services family – to implement single sign-on, federated identity, and role based access control in Web applications and services.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;A Developer’s Guide to the Microsoft® .NET Service Bus&lt;/B&gt;. This whitepaper shows developers how to use the .NET Service Bus – part of the Microsoft® .NET Services family – to provide a secure, standards-based messaging fabric to connect applications across the Internet.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;A Developer’s Guide to the Microsoft® .NET Workflow Service&lt;/B&gt;. This whitepaper provides details about the Microsoft® .NET Workflow Service, its relation to Windows Workflow Foundation, and what developers need to know to begin building workflows for the cloud. It not only explains the current tools and capabilities but also outlines the vision for future releases.&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=13858" width="1" height="1"&gt;</description><category domain="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/category/1396.aspx">Windows Azure</category></item></channel></rss>