<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>aheil Blog</title>
    <link>http://blog.aheil.de/</link>
    <description>aheil.de Blog</description>
    <language>en-us</language>
    <copyright>Andreas Heil</copyright>
    <lastBuildDate>Sun, 06 Jun 2010 13:55:38 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>blog@aheil.de</managingEditor>
    <webMaster>blog@aheil.de</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/aheil" /><feedburner:info uri="aheil" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <trackback:ping>http://blog.aheil.de/Trackback.aspx?guid=63a4fbb3-85c9-4d2d-9d2f-67a56e7e2b7f</trackback:ping>
      <pingback:server>http://blog.aheil.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.aheil.de/PermaLink,guid,63a4fbb3-85c9-4d2d-9d2f-67a56e7e2b7f.aspx</pingback:target>
      <dc:creator>Andreas Heil</dc:creator>
      <wfw:comment>http://blog.aheil.de/CommentView,guid,63a4fbb3-85c9-4d2d-9d2f-67a56e7e2b7f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.aheil.de/SyndicationService.asmx/GetEntryCommentsRss?guid=63a4fbb3-85c9-4d2d-9d2f-67a56e7e2b7f</wfw:commentRss>
      
      <title>KB967723 vs Windows Server 2008</title>
      <guid isPermaLink="false">http://blog.aheil.de/PermaLink,guid,63a4fbb3-85c9-4d2d-9d2f-67a56e7e2b7f.aspx</guid>
      <link>http://feedproxy.google.com/~r/aheil/~3/W2z8hfU00I8/KB967723VsWindowsServer2008.aspx</link>
      <pubDate>Sun, 06 Jun 2010 13:55:38 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
I recently experienced issue installing security update &lt;a href="http://support.microsoft.com/?kbid=967723" target="_blank"&gt;KB967723&lt;/a&gt; for&#xD;
Windows Update on a Windows Server 2008 (32-bit). This seems to be a very common issue&#xD;
with Windows Server 2008 resulting in a error code 80070490.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.aheil.de/content/binary/WindowsLiveWriter/KB967723vsWindowsServer2008_CD67/image_2.png"&gt;&#xD;
            &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="KB967723 important update was not installed" border="0" alt="KB967723 important update was not installed" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/KB967723vsWindowsServer2008_CD67/image_thumb.png" width="554" height="311"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt; &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The easiest way is getting the update from the Microsoft Download Center for &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=35c1d5a9-a953-4fc6-90c0-d2358c7b89e6" target="_blank"&gt;32-bit&lt;/a&gt; or&#xD;
for &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=6e46822e-f79d-492d-ad01-ee680ad324f5" target="_blank"&gt;64-bit&lt;/a&gt; directly.&#xD;
Once you get the update you can execute the standalone installer to install the security&#xD;
update manually. This should do the job.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="KB967723 Standalone Installer" border="0" alt="KB967723 Standalone Installer" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/KB967723vsWindowsServer2008_CD67/image_29323d84-40d6-48ef-8c37-ed4195b318c2.png" width="330" height="156"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Once installed you can start Windows Update again, it should now show Windows being&#xD;
up to date. Let me know if this worked for you.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.aheil.de/content/binary/WindowsLiveWriter/KB967723vsWindowsServer2008_CD67/image_5.png"&gt;&#xD;
            &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Windows up to date" border="0" alt="Windows up to date" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/KB967723vsWindowsServer2008_CD67/image_thumb_1.png" width="554" height="394"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.aheil.de/aggbug.ashx?id=63a4fbb3-85c9-4d2d-9d2f-67a56e7e2b7f"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;</description>
      <comments>http://blog.aheil.de/CommentView,guid,63a4fbb3-85c9-4d2d-9d2f-67a56e7e2b7f.aspx</comments>
      <category>Windows</category>
    <feedburner:origLink>http://blog.aheil.de/2010/06/06/KB967723VsWindowsServer2008.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.aheil.de/Trackback.aspx?guid=5026ae15-4382-41fe-8b02-4f62ba9d4811</trackback:ping>
      <pingback:server>http://blog.aheil.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.aheil.de/PermaLink,guid,5026ae15-4382-41fe-8b02-4f62ba9d4811.aspx</pingback:target>
      <dc:creator>Andreas Heil</dc:creator>
      <wfw:comment>http://blog.aheil.de/CommentView,guid,5026ae15-4382-41fe-8b02-4f62ba9d4811.aspx</wfw:comment>
      <wfw:commentRss>http://blog.aheil.de/SyndicationService.asmx/GetEntryCommentsRss?guid=5026ae15-4382-41fe-8b02-4f62ba9d4811</wfw:commentRss>
      
      <title>Facebook Social Engineering - You got p0wned but I do Quit</title>
      <guid isPermaLink="false">http://blog.aheil.de/PermaLink,guid,5026ae15-4382-41fe-8b02-4f62ba9d4811.aspx</guid>
      <link>http://feedproxy.google.com/~r/aheil/~3/gFKtNsLKIT8/FacebookSocialEngineeringYouGotP0wnedButIDoQuit.aspx</link>
      <pubDate>Wed, 19 May 2010 09:10:01 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Why would you accept a friendship request in &lt;a href="http://www.facebook.com" target="_blank"&gt;Facebook&lt;/a&gt; of&#xD;
someone you don’t know at all? It looks like many people do so, but what would be&#xD;
the benefit. It seems as many people just accept friendship requests without thinking&#xD;
about revealing information to someone they even don’t know. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In this article I describe some observations on Facebook over the last few weeks and&#xD;
how people behave – irrational or willingly? &#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="Michaela Lange on Facbook? Real or Fake?" border="0" alt="Michaela Lange on Facbook? Real or Fake?" align="left" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/FacebookSocialEngineeringoryougotp0wned_87F4/image_fa88fb13-d208-4a1e-bd16-df9e4db2f4a6.png" width="224" height="310"&gt;&lt;/img&gt;Some&#xD;
weeks ago I receive the first from &lt;a href="http://www.facebook.com/#!/profile.php?id=100001016907813" target="_blank"&gt;Michaela&#xD;
Lange&lt;/a&gt;. Not aware of that name I asked “&lt;em&gt;Do we know each other&lt;/em&gt;?” and never&#xD;
received an answer. For what reason on earth should I accept this request? &#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
A few days later I receive messages from my friends, asking me if I know a Michaela&#xD;
Lange. She wanted to be their “friend” on Facebook. Interestingly, these people already&#xD;
accepted their request.&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
Some obvious facts one might consider:  You don’t know the name, there is no&#xD;
picture identifying the person, there is no personal details identifying the person&#xD;
and everything written is generic fubar.&#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
So I happily answer everybody: “I do not know this person, do I?” and hit the ignore&#xD;
button on this friend request. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Why would you accept this friendship request again? &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="Tanja Fischer on Facebook. Real or Fake?" border="0" alt="Tanja Fischer on Facebook. Real or Fake?" align="right" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/FacebookSocialEngineeringoryougotp0wned_87F4/image_96239679-17b2-4633-8537-1aef2c81a27d.png" width="220" height="280"&gt;&lt;/img&gt;Only&#xD;
a few days later, I received friendships requests from  &lt;a href="http://www.facebook.com/#!/profile.php?id=100001079490791&amp;amp;v=wall" target="_blank"&gt;Tanja&#xD;
Fischer&lt;/a&gt;. For some reason I am not really surprised that she is a friend of Michaela&#xD;
Lange.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
Now I received direct messages from Michaela Lange telling me that she is going to&#xD;
have an surgery in Cambridge, not knowing anybody there and my friends have told here&#xD;
I could help her here? WTF!? She is using nicknames of my friends  even I don’t&#xD;
know – friends how obviously do not know her, asking me if I know her, but accepting&#xD;
her friendship request. &#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
Why have you accepted this friendship request again? &#xD;
&lt;/p&gt;&#xD;
        &lt;p align="justify"&gt;&#xD;
In contrast to the first account, I do not receive any direct messages from the second&#xD;
one, but the friendship request is send out periodically – too periodically.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Is this a social engineering attack or just someone playing the &lt;em&gt;game of Facebook&lt;/em&gt;.&#xD;
Is there a real person behind these accounts or is this away of gathering information?&#xD;
If they play the game of Facebook, they play the game well, as many of my contacts&#xD;
accepted the friendship requests.Consequently, they reveal all private information&#xD;
to a obviously stranger. Even if the information is protected and visible to friends&#xD;
only within Facebook, at the moment accepting the request, you grant access to all&#xD;
you data. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So why do people accept at all? It seems they do not feel well doing so, otherwise&#xD;
they would not try to check if someone else knows this persons. But not accepting,&#xD;
is this the fear of being not part of a community? The fear of missing any vital information?&#xD;
How vital could the information on Facebook be you miss?&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
If you share your information with anybody you don’t know at all, there is no point&#xD;
in requesting privacy. It is not the issue of what the user wants to share, it is&#xD;
the issue of with whom the user wants to share the information. With the later, Facebook&#xD;
won’t be able to help you all.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
I lay the game of many new platforms and technologies on the Web. Whether it is &lt;a href="http://www.xing.com" target="_blank"&gt;XING&lt;/a&gt;, &lt;a href="http://www.linkedin.com" target="_blank"&gt;LinkedIn&lt;/a&gt;, &lt;a href="http://www.plaxo.com" target="_blank"&gt;Plaxo&lt;/a&gt;, &lt;a href="http://www.twitter.com" target="_blank"&gt;Twitter&lt;/a&gt;, &lt;a href="http://tungle.me" target="_blank"&gt;Tungle.me&lt;/a&gt; et&#xD;
al. I am interested in how these platforms work and what benefit they provide. But&#xD;
sometimes it is necessary to take stock of a technology or platform. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
So for me it is time to quite Facebook. It seems not only the technology is &lt;a href="http://twitter.com/Bietiekay/status/13661169693" target="_blank"&gt;compromised&lt;/a&gt;,&#xD;
it seems as the system is compromised. I am back now with  some real friends.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.aheil.de/aggbug.ashx?id=5026ae15-4382-41fe-8b02-4f62ba9d4811"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;</description>
      <comments>http://blog.aheil.de/CommentView,guid,5026ae15-4382-41fe-8b02-4f62ba9d4811.aspx</comments>
      <category>Web 2.0</category>
    <feedburner:origLink>http://blog.aheil.de/2010/05/19/FacebookSocialEngineeringYouGotP0wnedButIDoQuit.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.aheil.de/Trackback.aspx?guid=27ca2301-b863-43b9-b173-ccfde2ebf490</trackback:ping>
      <pingback:server>http://blog.aheil.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.aheil.de/PermaLink,guid,27ca2301-b863-43b9-b173-ccfde2ebf490.aspx</pingback:target>
      <dc:creator>Andreas Heil</dc:creator>
      <wfw:comment>http://blog.aheil.de/CommentView,guid,27ca2301-b863-43b9-b173-ccfde2ebf490.aspx</wfw:comment>
      <wfw:commentRss>http://blog.aheil.de/SyndicationService.asmx/GetEntryCommentsRss?guid=27ca2301-b863-43b9-b173-ccfde2ebf490</wfw:commentRss>
      
      <title>Error TF30224 – The First Project on TFS 2010 is the  hardest</title>
      <guid isPermaLink="false">http://blog.aheil.de/PermaLink,guid,27ca2301-b863-43b9-b173-ccfde2ebf490.aspx</guid>
      <link>http://feedproxy.google.com/~r/aheil/~3/Di6OTKo_ixg/ErrorTF30224TheFirstProjectOnTFS2010IsTheHardest.aspx</link>
      <pubDate>Thu, 21 Jan 2010 00:16:56 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
While setting up Microsoft Team Foundation Server 2010 Beta 2 one might into an non&#xD;
obvious issue with user rights. The error observed would look the following:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.aheil.de/content/binary/WindowsLiveWriter/42c30f0b7e43_14D28/image_2.png"&gt;&#xD;
            &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="New Project TFS Error TF30224" border="0" alt="New Project TFS Error TF30224" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/42c30f0b7e43_14D28/image_thumb.png" width="554" height="450"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The  TFS installation considered is a single machine installation with SQL Server&#xD;
Reporting and Analysis services and SharePoint Services installed during the TFS installation. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The full descriptions of the error is:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;em&gt;&#xD;
            &lt;b&gt;Error&lt;/b&gt;&#xD;
            &lt;br&gt;&#xD;
TF30224: Failed to retrieve projects from the report server. Please check that the&#xD;
SQL Server Reporting Services Web and Windows services are running and you have sufficient&#xD;
privileges for creating a project. &lt;/em&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;em&gt;&#xD;
            &lt;b&gt;Explanation&lt;/b&gt;&#xD;
            &lt;br&gt;&#xD;
The Project Creation Wizard encountered a problem while creating reports on the SQL&#xD;
Server Reporting Services on http://coruscant/ReportServer/ReportService2005.asmx.&#xD;
The reason for the failure cannot be determined at this time. Because the operation&#xD;
failed, the wizard was not able to finish creating the SQL Server Reporting Services&#xD;
site. &lt;/em&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;em&gt;&#xD;
            &lt;b&gt;User Action&lt;/b&gt;&#xD;
            &lt;br&gt;&#xD;
Contact the administrator for the SQL Server Reporting Services on http://coruscant/ReportServer/ReportService2005.asmx&#xD;
to confirm that the SQL Server Reporting Services server is running and you have sufficient&#xD;
privileges to create a project . Your user account on SQL Server Reporting Services&#xD;
must have Content Manager permission to create a new project. Also, you might find&#xD;
additional helpful information in the project creation log. The log shows each action&#xD;
taken by the wizard at the time of the failure and may include additional details&#xD;
about the error.&lt;/em&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
A wild guess might be checking all rights for SQL Server, SharePoint sites, SQL Server&#xD;
Reporting Services etc. Pat Ramadass comes up with the &lt;a href="http://patramadass.emediait.com/weblog/2008/08/tf30224-failed-to-retrieve-projects-from-the-report-server.html" target="_blank"&gt;right&#xD;
hint&lt;/a&gt; that origins from the previous TFS version.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
First of all do not look for the &lt;em&gt;Reporting Service Configuration Manager.&lt;/em&gt; Go&#xD;
straight to &lt;em&gt;http://localhost/Reports/ &lt;/em&gt;(logged in on your TFS server machine&#xD;
with administrator rights). You will get the &lt;em&gt;SQL Server Reporting Services &lt;/em&gt;site.&#xD;
Select the &lt;em&gt;Properties&lt;/em&gt; page and click on &lt;em&gt;New Role Assignment.&lt;/em&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.aheil.de/content/binary/WindowsLiveWriter/42c30f0b7e43_14D28/image_5.png"&gt;&#xD;
            &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="SQL Server Repoting Services - Home" border="0" alt="SQL Server Repoting Services - Home" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/42c30f0b7e43_14D28/image_thumb_1.png" width="550" height="273"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Now add exactly the user (or group) you tried creating the TFS Team Project with.&#xD;
Select at least &lt;em&gt;Content Manager &lt;/em&gt;and confirm by pressing OK. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="SQL Server Reporting Services - New Role Assignment" border="0" alt="SQL Server Reporting Services - New Role Assignment" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/42c30f0b7e43_14D28/image_9888a81a-4d3d-4361-a033-d60fad2f4021.png" width="474" height="498"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Go back to you local machine and try to create the TFS Team Project again. The users&#xD;
should now have sufficient rights to create the project.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.aheil.de/aggbug.ashx?id=27ca2301-b863-43b9-b173-ccfde2ebf490"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;</description>
      <comments>http://blog.aheil.de/CommentView,guid,27ca2301-b863-43b9-b173-ccfde2ebf490.aspx</comments>
      <category>Knowledge Base</category>
      <category>Microsoft</category>
      <category>Windows</category>
    <feedburner:origLink>http://blog.aheil.de/2010/01/21/ErrorTF30224TheFirstProjectOnTFS2010IsTheHardest.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.aheil.de/Trackback.aspx?guid=dbc59af5-157f-4d26-be83-8b6e5ebc9c85</trackback:ping>
      <pingback:server>http://blog.aheil.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.aheil.de/PermaLink,guid,dbc59af5-157f-4d26-be83-8b6e5ebc9c85.aspx</pingback:target>
      <dc:creator>Andreas Heil</dc:creator>
      <wfw:comment>http://blog.aheil.de/CommentView,guid,dbc59af5-157f-4d26-be83-8b6e5ebc9c85.aspx</wfw:comment>
      <wfw:commentRss>http://blog.aheil.de/SyndicationService.asmx/GetEntryCommentsRss?guid=dbc59af5-157f-4d26-be83-8b6e5ebc9c85</wfw:commentRss>
      
      <title>How to use Google Calendar Sync with Microsoft Outlook on Windows 7</title>
      <guid isPermaLink="false">http://blog.aheil.de/PermaLink,guid,dbc59af5-157f-4d26-be83-8b6e5ebc9c85.aspx</guid>
      <link>http://feedproxy.google.com/~r/aheil/~3/kD80cKsKMyE/HowToUseGoogleCalendarSyncWithMicrosoftOutlookOnWindows7.aspx</link>
      <pubDate>Sat, 16 Jan 2010 15:35:58 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
There is an urban legend that &lt;a href="http://www.google.com/support/calendar/bin/answer.py?answer=98563" target="_blank"&gt;Google&#xD;
Calendar Sync&lt;/a&gt; would not run on Windows 7. Indeed, if you follow the &lt;a href="http://www.google.com/support/calendar/bin/answer.py?hl=en&amp;amp;answer=89955" target="_blank"&gt;installation&#xD;
instructions&lt;/a&gt; Google Calendar Sync will first ask you for your credentials and&#xD;
consequently fail to connect to Google Calendar. In the following you’ll find an solution&#xD;
how to use Google Calendar Sync with Microsoft Outlook 2007 on a Windows 7 system&#xD;
that that is provided under a works on my machine premise.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Google Calendar Sync 0.9.3.5" border="0" alt="Google Calendar Sync 0.9.3.5" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/HowtouseGoogleCalendarSyncwithMicrosoftO_DB4C/image_f11ff794-19ab-42e0-a5f3-76091cd1b43d.png" width="404" height="426"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Once saved, Google Calendar Sync will try to connect but fail with error 2006. There&#xD;
is not many information about this error beside various frustrated users ranting about&#xD;
this and some statements that the current version of Google Calendar Sync (0.9.3.5)&#xD;
is not supported under Windows 7 yet.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.aheil.de/content/binary/WindowsLiveWriter/HowtouseGoogleCalendarSyncwithMicrosoftO_DB4C/image_6.png"&gt;&#xD;
            &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Google Calendar Sync Error 2006" border="0" alt="Google Calendar Sync Error 2006" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/HowtouseGoogleCalendarSyncwithMicrosoftO_DB4C/image_thumb_2.png" width="554" height="108"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In the current case we will even run Google Calendar Sync on a Windows 7 64-bit system.&#xD;
Before you continue, make sure you exit Google Calendar Sync. First of all open a&#xD;
Explorer window and navigate to &lt;em&gt;C:\Program Files (x86)\Google\Google Calendar&#xD;
Sync&lt;/em&gt; or &lt;em&gt;C:\Program Files\Google\Google Calendar Sync&lt;/em&gt; on a 32-bit Windows&#xD;
7 system.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="GoogleCalendarSync.exe" border="0" alt="GoogleCalendarSync.exe" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/HowtouseGoogleCalendarSyncwithMicrosoftO_DB4C/image_63dba32a-2386-40d5-9fd0-9ec8826995a2.png" width="268" height="132"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Right click on &lt;em&gt;GoogleCalendarSync.exe&lt;/em&gt; and select &lt;em&gt;Properties&lt;/em&gt;. Now&#xD;
select the &lt;em&gt;Compatibility &lt;/em&gt;tab, check the &lt;em&gt;Run this program in compatibility&#xD;
mode for&lt;/em&gt; and choose &lt;em&gt;Windows Vista (Service Pack 2)&lt;/em&gt; from the drop down&#xD;
list. Click on &lt;em&gt;OK&lt;/em&gt; and restart Google Calendar Sync either from your desktop&#xD;
icon or from the start menu entry.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="GoogleCalndarSync.exe Properties - Compatibility Tab" border="0" alt="GoogleCalndarSync.exe Properties - Compatibility Tab" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/HowtouseGoogleCalendarSyncwithMicrosoftO_DB4C/image_dce7dca7-1cc9-485b-afc4-6e9477af480b.png" width="423" height="537"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Once restarted you can happily sync Google Calendar with Microsoft Outlook 2007 on&#xD;
(even a 64-bit) Windows 7 system. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Google Calendar Sync running on Windows 7" border="0" alt="Google Calendar Sync running on Windows 7" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/HowtouseGoogleCalendarSyncwithMicrosoftO_DB4C/image_ac729268-7c88-49e1-8656-88c8eed188e3.png" width="247" height="139"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The Compatibility mode of Windows is a great feature to make usage of legacy programs&#xD;
that have not been or will never bee updated to the latest Windows version. Since&#xD;
Windows 7 even mode modes (including Windows Server) back to Windows 95 are supported.&#xD;
The number of supported versions might vary depending on the Windows 7 version you&#xD;
use, however, the Vista and XP mode should always be available.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.aheil.de/aggbug.ashx?id=dbc59af5-157f-4d26-be83-8b6e5ebc9c85"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;</description>
      <comments>http://blog.aheil.de/CommentView,guid,dbc59af5-157f-4d26-be83-8b6e5ebc9c85.aspx</comments>
      <category>Knowledge Base</category>
      <category>Tools</category>
      <category>Windows</category>
    <feedburner:origLink>http://blog.aheil.de/2010/01/16/HowToUseGoogleCalendarSyncWithMicrosoftOutlookOnWindows7.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.aheil.de/Trackback.aspx?guid=8037efe9-dffb-4d8d-bd7a-608a93725177</trackback:ping>
      <pingback:server>http://blog.aheil.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.aheil.de/PermaLink,guid,8037efe9-dffb-4d8d-bd7a-608a93725177.aspx</pingback:target>
      <dc:creator>Andreas Heil</dc:creator>
      <wfw:comment>http://blog.aheil.de/CommentView,guid,8037efe9-dffb-4d8d-bd7a-608a93725177.aspx</wfw:comment>
      <wfw:commentRss>http://blog.aheil.de/SyndicationService.asmx/GetEntryCommentsRss?guid=8037efe9-dffb-4d8d-bd7a-608a93725177</wfw:commentRss>
      
      <title>Extension Method Naming Conventions Best Practices</title>
      <guid isPermaLink="false">http://blog.aheil.de/PermaLink,guid,8037efe9-dffb-4d8d-bd7a-608a93725177.aspx</guid>
      <link>http://feedproxy.google.com/~r/aheil/~3/keJNOBHni5Y/ExtensionMethodNamingConventionsBestPractices.aspx</link>
      <pubDate>Wed, 13 Jan 2010 22:24:03 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
With .NET Framework 3.5 &lt;a href="http://msdn.microsoft.com/en-us/library/bb383977.aspx" target="_blank"&gt;Extension&#xD;
Methods&lt;/a&gt; were introduced to .NET developers. The concept of extension methods allows&#xD;
you to &#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;“[… ] ‘add’ methods to existing types without creating a new derived type, recompiling,&#xD;
or otherwise modifying the original type.”&lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
While the most common use for extension methods are LINQ standard query operators,&#xD;
extension methods provide aplenty of new possibilities. One issue one comes along&#xD;
is the correct naming if extension methods and their corresponding classes. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The signature of a extension method differs slightly from a common signature as the&#xD;
first parameter is preceded by the &lt;em&gt;this&lt;/em&gt; modifier:&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;public static int &lt;/span&gt;WordCount(&lt;span style="color: blue"&gt;this&#xD;
string &lt;/span&gt;that)&lt;/pre&gt;&#xD;
        &lt;a href="http://11011.net/software/vspaste"&gt;&#xD;
        &lt;/a&gt;&#xD;
        &lt;p&gt;&#xD;
I haven’t found much about naming conventions, most about &lt;a href="http://blogs.microsoft.co.il/blogs/ariel/archive/2009/10/07/extension-methods-coding-convention.aspx" target="_blank"&gt;naming&#xD;
the methods&lt;/a&gt; itself, how to &lt;a href="http://stackoverflow.com/questions/1226189/best-practices-c-extension-methods-namespace-and-promoting-extension-methods" target="_blank"&gt;organize&#xD;
them&lt;/a&gt; or &lt;a href="http://stackoverflow.com/questions/321921/is-it-ok-to-write-my-own-extension-methods-in-the-system-namespace" target="_blank"&gt;what&#xD;
you should not do&lt;/a&gt; with them. If you have read through Robert C. Martin’s &lt;a href="http://blog.aheil.de/ct.ashx?id=cf1fed05-43c1-4ea8-a76a-ca04a79a7a8f&amp;amp;url=http%3a%2f%2fwww.amazon.de%2fgp%2fproduct%2f0132350882%3fie%3dUTF8%26tag%3daheilde-21%26linkCode%3das2%26camp%3d1638%26creative%3d6742%26creativeASIN%3d0132350882"&gt;Clean&#xD;
Code&lt;/a&gt; you might know that naming is an essential foundation of clean code. I’ve&#xD;
read through a lot of code outside and inside of Microsoft, however, I haven’t seen&#xD;
anybody following global guidelines. There might be group specific conventions but&#xD;
nothing that seems to be applied by the majority of developers. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;1. Name the type parameter that&lt;br&gt;&lt;br&gt;&lt;/strong&gt;This seems to be very odd, but naming the type parameter &lt;em&gt;that &lt;/em&gt;has&#xD;
quite some charm. When reading the signature you immediately see the type parameter,&#xD;
when reading through the method body you always know that that is the type parameter&#xD;
the extension is written for. When reading through many extension methods I found&#xD;
it very pleasant to read those methods following this convention.&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;public static int &lt;/span&gt;WordCount(&lt;span style="color: blue"&gt;this&#xD;
string &lt;/span&gt;that) &lt;/pre&gt;&#xD;
        &lt;a href="http://11011.net/software/vspaste"&gt;&#xD;
        &lt;/a&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;2. Create dedicated static classes for each type&lt;br&gt;&lt;br&gt;&lt;/strong&gt;No matter whether you put the extension methods in a separate library, in&#xD;
a specific sub-folder within your project or somewhere random&lt;br&gt;&lt;br&gt;&#xD;
a) Do create separate files for each class containing extension methods. &#xD;
&lt;br&gt;&#xD;
b) Do create separate classes for each set of extension methods for a certain type.&lt;br&gt;&lt;br&gt;&#xD;
Once you follow these simple rules you can think straight forward about naming of&#xD;
classes containing extension methods. If you collect all extension methods within&#xD;
a single class (or file) you might end ob with a lot of obsolete code while your application&#xD;
evolves. Due to rewriting your code and refactoring your application same extensions&#xD;
might become obsolete or some classes you extend do not exists anymore in your project.&#xD;
Using dedicated files make maintaining your codebase much more easy. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Classes for Extension Methods" border="0" alt="Classes for Extension Methods" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/ExtensionMethodNamingConventionsBestPrac_DE78/image_d2f6741b-330f-4c1d-9c7a-7da9a45d7ba3.png" width="287" height="198"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;3. Use the Extension suffix&lt;/strong&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
During our day job we realized that naming the class with the suffix &lt;em&gt;Extension&lt;/em&gt; provide&#xD;
good semantics of the class. This indicates clearly that you are dealing with a collection&#xD;
of extensions. For example, while using the using the Visual Studio &lt;a href="http://msdn.microsoft.com/en-us/library/exy1facf(VS.100).aspx" target="_blank"&gt;Object&#xD;
Browser&lt;/a&gt; you can easily identify those classes providing extension methods.&#xD;
&lt;/p&gt;&#xD;
        &lt;pre class="code"&gt;&#xD;
          &lt;span style="color: blue"&gt;public static class &lt;/span&gt;&#xD;
          &lt;span style="color: #2b91af"&gt;StringExtension &lt;/span&gt;{ &lt;span style="color: blue"&gt;public&#xD;
static int &lt;/span&gt;CountWords(&lt;span style="color: blue"&gt;this string &lt;/span&gt;that) {&#xD;
... } } &lt;/pre&gt;&#xD;
        &lt;a href="http://11011.net/software/vspaste"&gt;&#xD;
        &lt;/a&gt;&#xD;
        &lt;a href="http://11011.net/software/vspaste"&gt;&#xD;
        &lt;/a&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;4. Name what is being extended&lt;/strong&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
It seems to be a good practice to name classes after what they extend. If you follow&#xD;
the previous two guidelines this should be a straight forward job. In addition your&#xD;
code is good to read and easy to understand. In practice we came along various conflicts&#xD;
with already existing naming guidelines. Anyway extensions are a relatively new concepts&#xD;
and one would expect that there might be conflicts with already existing naming conventions.&#xD;
The following will illustrate one of those conflicts:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Naming conventions for Extension Methods" alt="Naming conventions for Extension Methods" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/ExtensionMethodNamingConventionsBestPrac_DE78/image_1468b026-290c-4ee1-8ea5-9e94ec49238a.png" width="276" height="251"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
By convention interface names should start with a capitalized ‘I’. So odes &lt;em&gt;ICalculator&lt;/em&gt;.&#xD;
Following the above guidelines you might consider naming the corresponding class providing&#xD;
extension methods for the interface &lt;em&gt;ICalculator&lt;/em&gt; type &lt;em&gt;CalculatorExtension. &lt;/em&gt;In&#xD;
this case it seems reasonable to neglect the convention for interfaces:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Consequently, &lt;em&gt;ICalculatorExtension&lt;/em&gt; provides extension methods for the &lt;em&gt;ICalculator&lt;/em&gt; type, &lt;em&gt;CalculatorExtension&lt;/em&gt; provides&#xD;
extension methods for the type &lt;em&gt;Calculator&lt;/em&gt;. This approach will not only increase&#xD;
the maintainability of your codebase, I will also allow new team members to orientate&#xD;
quickly in your codebase.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
There are various reasons for and against naming conventions for extension methods.&#xD;
Once writing &lt;a href="http://msdn.microsoft.com/de-de/devlabs/ee794896(en-us).aspx" target="_blank"&gt;Reactive&#xD;
Extensions for .NET&lt;/a&gt; this might get even more complicated as you will write a lot&#xD;
of extension methods for dedicated purposes. However, for common codebases the provided&#xD;
guidelines might help to develop easy to read and maintain, clean code. &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.aheil.de/aggbug.ashx?id=8037efe9-dffb-4d8d-bd7a-608a93725177"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;</description>
      <comments>http://blog.aheil.de/CommentView,guid,8037efe9-dffb-4d8d-bd7a-608a93725177.aspx</comments>
      <category>.NET</category>
      <category>Clean Code</category>
    <feedburner:origLink>http://blog.aheil.de/2010/01/13/ExtensionMethodNamingConventionsBestPractices.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.aheil.de/Trackback.aspx?guid=2be21bfd-d67c-4cf7-a01f-733680bc421f</trackback:ping>
      <pingback:server>http://blog.aheil.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.aheil.de/PermaLink,guid,2be21bfd-d67c-4cf7-a01f-733680bc421f.aspx</pingback:target>
      <dc:creator>Andreas Heil</dc:creator>
      <wfw:comment>http://blog.aheil.de/CommentView,guid,2be21bfd-d67c-4cf7-a01f-733680bc421f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.aheil.de/SyndicationService.asmx/GetEntryCommentsRss?guid=2be21bfd-d67c-4cf7-a01f-733680bc421f</wfw:commentRss>
      
      <title>Adobe PDF Preview for Windows 64-bit</title>
      <guid isPermaLink="false">http://blog.aheil.de/PermaLink,guid,2be21bfd-d67c-4cf7-a01f-733680bc421f.aspx</guid>
      <link>http://feedproxy.google.com/~r/aheil/~3/gCmO-x6lifE/AdobePDFPreviewForWindows64bit.aspx</link>
      <pubDate>Mon, 11 Jan 2010 23:49:18 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Microsoft’s Windows 7, Outlook 2007 and Adobe’s Acrobat just do not play well together&#xD;
on 64-bit systems. After receiving a PDF document via email, Outlook usually cannot&#xD;
display the PDF.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Outlook PDF Preview" alt="Outlook PDF Preview" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/8fd106f9cd49_14AEB/image_bce6728b-dba0-40be-ab48-da605b87e61e.png" width="463" height="309"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
When selection &lt;em&gt;Preview File&lt;/em&gt;, you will simply get the message &lt;em&gt;PDF Preview&#xD;
Handler for Vista &lt;/em&gt;(Vista!?)&lt;em&gt; &lt;/em&gt;caused an error.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Outlook PDF Preview Handler for Vista" border="0" alt="Outlook PDF Preview Handler for Vista" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/8fd106f9cd49_14AEB/image_88460432-d69a-4581-92ff-79f5b389bec2.png" width="439" height="256"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
For now, the only way to view the PDF file is to open it in an external PDF reader.&#xD;
Leo Davidson &lt;a href="http://www.pretentiousname.com/adobe_pdf_x64_fix/index.html" target="_blank"&gt;provides&#xD;
a fix&lt;/a&gt; that finally solves this issue. Just get the fix, and run the &lt;em&gt;Adobe&#xD;
Reader preview handler x64 fixer.exe&lt;/em&gt; which is included in the file.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Leo Davidson's Preview Handler Fix" border="0" alt="Leo Davidson's Preview Handler Fix" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/8fd106f9cd49_14AEB/image_0a90a3d2-178c-498f-9133-7217c3b9b760.png" width="500" height="437"&gt;&lt;/img&gt;  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
After applying the fix, both, the &lt;em&gt;32-bit AppID &lt;/em&gt;as well as the &lt;em&gt;64-bit&#xD;
AppID&lt;/em&gt; will show the value as correct.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Leo Davidson's Preview Handler Fix" border="0" alt="Leo Davidson's Preview Handler Fix" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/8fd106f9cd49_14AEB/image_e04da326-2c49-47d0-aceb-14e392996ae0.png" width="500" height="437"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
No reboot required, just go back to Outlook (worked even without restarting the application)&#xD;
and et voilà. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Fixed Outlook PDF Preview" alt="Fixed Outlook PDF Preview" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/8fd106f9cd49_14AEB/image_d370cfbe-d92b-4b19-9b9d-83757bb3ec61.png" width="583" height="476"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Thanks to &lt;a href="http://www.pretentiousname.com/" target="_blank"&gt;Leo Davidson&lt;/a&gt;,&#xD;
who provides this outstanding fix. Well played.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.aheil.de/aggbug.ashx?id=2be21bfd-d67c-4cf7-a01f-733680bc421f"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;</description>
      <comments>http://blog.aheil.de/CommentView,guid,2be21bfd-d67c-4cf7-a01f-733680bc421f.aspx</comments>
      <category>hack-the-planet</category>
      <category>Knowledge Base</category>
      <category>Tools</category>
      <category>Windows</category>
    <feedburner:origLink>http://blog.aheil.de/2010/01/11/AdobePDFPreviewForWindows64bit.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.aheil.de/Trackback.aspx?guid=1287c382-38e4-4677-b87a-da3dec24c11c</trackback:ping>
      <pingback:server>http://blog.aheil.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.aheil.de/PermaLink,guid,1287c382-38e4-4677-b87a-da3dec24c11c.aspx</pingback:target>
      <dc:creator>Andreas Heil</dc:creator>
      <wfw:comment>http://blog.aheil.de/CommentView,guid,1287c382-38e4-4677-b87a-da3dec24c11c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.aheil.de/SyndicationService.asmx/GetEntryCommentsRss?guid=1287c382-38e4-4677-b87a-da3dec24c11c</wfw:commentRss>
      
      <title>ReSharper 5.0 can Visual Studio 2010 Metadata View</title>
      <guid isPermaLink="false">http://blog.aheil.de/PermaLink,guid,1287c382-38e4-4677-b87a-da3dec24c11c.aspx</guid>
      <link>http://feedproxy.google.com/~r/aheil/~3/kursQNr1Qec/ReSharper50CanVisualStudio2010MetadataView.aspx</link>
      <pubDate>Sun, 27 Dec 2009 16:35:48 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
One major drawback of &lt;a href="http://www.jetbrains.com/resharper/index.html" target="_blank"&gt;ReSharper&lt;/a&gt; 4.5&#xD;
was the fact that when navigating to a compiled class, ReSharper always opened the&#xD;
Visual Studio Object Bowser. However, personally I prefer the Metadata View of Visual&#xD;
Studio:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Visual Studio Metadata View" border="0" alt="Visual Studio Metadata View" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/ReSharp.0canVisualStudio2010MetadataView_C8B4/image_58c5a14c-7111-403e-a615-cb1b8f5c2af5.png" width="380" height="251"&gt;&lt;/img&gt;  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
With Version 5.0 ReSharper (currently &lt;a href="http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+Early+Access+Program" target="_blank"&gt;available&#xD;
as EAP&lt;/a&gt;) there comes a major improvement. The first time you navigate to a pre-compiled&#xD;
class, ReSharper offers you to choose your favorite view: Object Browser, Metada View&#xD;
or directly the .NET framework sources. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="JetBrains ReSharper 5.0" border="0" alt="JetBrains ReSharper 5.0" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/ReSharp.0canVisualStudio2010MetadataView_C8B4/image_64e7be44-9933-40c1-aa65-6b82d1c86683.png" width="570" height="343"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In case your change your mind (or the selected sources is not available) you can define&#xD;
the order for the code navigation within Visual Studio at the ReSharper Options from &lt;em&gt;ReSharper&#xD;
/ Options… / Tools / External sources:&lt;/em&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="ReSharper Options: External sources" border="0" alt="ReSharper Options: External sources" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/ReSharp.0canVisualStudio2010MetadataView_C8B4/image_65af2ed1-929b-4125-be8a-28af2e0654f0.png" width="449" height="349"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.aheil.de/aggbug.ashx?id=1287c382-38e4-4677-b87a-da3dec24c11c"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;</description>
      <comments>http://blog.aheil.de/CommentView,guid,1287c382-38e4-4677-b87a-da3dec24c11c.aspx</comments>
      <category>Coding</category>
      <category>Knowledge Base</category>
      <category>Tools</category>
    <feedburner:origLink>http://blog.aheil.de/2009/12/27/ReSharper50CanVisualStudio2010MetadataView.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.aheil.de/Trackback.aspx?guid=cf1fed05-43c1-4ea8-a76a-ca04a79a7a8f</trackback:ping>
      <pingback:server>http://blog.aheil.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.aheil.de/PermaLink,guid,cf1fed05-43c1-4ea8-a76a-ca04a79a7a8f.aspx</pingback:target>
      <dc:creator>Andreas Heil</dc:creator>
      <wfw:comment>http://blog.aheil.de/CommentView,guid,cf1fed05-43c1-4ea8-a76a-ca04a79a7a8f.aspx</wfw:comment>
      <wfw:commentRss>http://blog.aheil.de/SyndicationService.asmx/GetEntryCommentsRss?guid=cf1fed05-43c1-4ea8-a76a-ca04a79a7a8f</wfw:commentRss>
      
      <title>Clean Code: o = 0</title>
      <guid isPermaLink="false">http://blog.aheil.de/PermaLink,guid,cf1fed05-43c1-4ea8-a76a-ca04a79a7a8f.aspx</guid>
      <link>http://feedproxy.google.com/~r/aheil/~3/yGb6Uu39Ptc/CleanCodeO0.aspx</link>
      <pubDate>Tue, 22 Dec 2009 13:54:07 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;a href="http://www.amazon.de/gp/product/0132350882?ie=UTF8&amp;amp;tag=aheilde-21&amp;amp;linkCode=as2&amp;amp;camp=1638&amp;amp;creative=6742&amp;amp;creativeASIN=0132350882"&gt;&#xD;
          &lt;img style="border-right-width: 0px; margin: 0px 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Clean Code" border="0" alt="Clean Code" align="right" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/5f5579a337b8_10A3E/image_b52d6811-0efb-4b02-b3fd-200e5b552cc6.png" width="132" height="174"&gt;&lt;/img&gt;&#xD;
        &lt;/a&gt;&#xD;
        &lt;img style="border-bottom-style: none !important; border-right-style: none !important; margin: 0px; border-top-style: none !important; border-left-style: none !important" border="0" alt="" src="http://www.assoc-amazon.de/e/ir?t=aheilde-21&amp;amp;l=as2&amp;amp;o=3&amp;amp;a=0132350882" width="1" height="1"&gt;&lt;/img&gt;I&#xD;
do not agree with all statements in &lt;a href="http://www.amazon.de/gp/product/0132350882?ie=UTF8&amp;amp;tag=aheilde-21&amp;amp;linkCode=as2&amp;amp;camp=1638&amp;amp;creative=6742&amp;amp;creativeASIN=0132350882" target="_blank"&gt;Clean&#xD;
Code&lt;/a&gt; by Robert C. Martin. One of the sections I though is completely obsolete&#xD;
was a statement  about disinformative names: &lt;blockquote&gt;&lt;p align="left"&gt;&lt;em&gt;“A truly awful example of disinformative names would be the use of lower-case&#xD;
L or uppercase O as variable names, especially in combination. The problem, of course,&#xD;
is that they look almost entirely like the constants one and zero, respectively.”&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&#xD;
The corresponding example he gives is the following: &#xD;
&lt;/p&gt;&lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Disinformative names in Clean Code" border="0" alt="Disinformative names in Clean Code" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/5f5579a337b8_10A3E/image_9af90fbe-6163-4777-8841-26ce64d007ac.png" width="120" height="85"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p&gt;&#xD;
So far I though it is obvious not to write such code, however, I came across similar&#xD;
code these days.&#xD;
&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;for &lt;/span&gt;(&lt;span style="color: blue"&gt;int &lt;/span&gt;o&#xD;
= 0; o &amp;lt; args.NewItems.Count; o++)&lt;br&gt;&#xD;
{&lt;br&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;s = args.NewItems[o].ToString();&lt;br&gt;&#xD;
...&lt;br&gt;&#xD;
}&lt;/pre&gt;&lt;p&gt;&#xD;
What’s the problem here? The variable name &lt;em&gt;o&lt;/em&gt; is used for a counter and initialized&#xD;
with 0. While this is already hard to read, &lt;em&gt;o&lt;/em&gt; might indicate that we deal&#xD;
with an object here. So when having just a brief look over this code you might get&#xD;
the impression it iterates through a set of objects. This is further supported by&#xD;
the usage of the &lt;em&gt;NewItems&lt;/em&gt; property here, as in .NET object references is&#xD;
quite commonly used to resolve e.g. a key/value pair within collections.&#xD;
&lt;/p&gt;&lt;p&gt;&#xD;
When using a counter variable without meaning one should use common names such as &lt;em&gt;i&lt;/em&gt; or &lt;em&gt;j&lt;/em&gt; that&#xD;
a commonly recognized as counter variables.&#xD;
&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;for &lt;/span&gt;(&lt;span style="color: blue"&gt;int &lt;/span&gt;i&#xD;
= 0; i &amp;lt; args.NewItems.Count; i++)&lt;br&gt;&#xD;
{&lt;br&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;s = args.NewItems[i].ToString();&lt;br&gt;&#xD;
...&lt;br&gt;&#xD;
}&lt;/pre&gt;&lt;p&gt;&#xD;
This is only a slight modification but already improves the readability of the code.&#xD;
&lt;/p&gt;&lt;img width="0" height="0" src="http://blog.aheil.de/aggbug.ashx?id=cf1fed05-43c1-4ea8-a76a-ca04a79a7a8f"&gt;&lt;/img&gt;&lt;/body&gt;</description>
      <comments>http://blog.aheil.de/CommentView,guid,cf1fed05-43c1-4ea8-a76a-ca04a79a7a8f.aspx</comments>
      <category>.NET</category>
      <category>Clean Code</category>
    <feedburner:origLink>http://blog.aheil.de/2009/12/22/CleanCodeO0.aspx</feedburner:origLink></item>
    <item><title>Microsoft Research Cambridge [Flickr]</title><link>http://feedproxy.google.com/~r/aheil/~3/JlkAv8Jsrjo/</link><category>nature</category><category>msrc</category><dc:creator>aheil.de</dc:creator><pubDate>Mon, 21 Dec 2009 08:02:56 PST</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/4202998183</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/aheil/"&gt;aheil.de&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/aheil/4202998183/" title="Microsoft Research Cambridge"&gt;&lt;img src="http://farm3.static.flickr.com/2700/4202998183_1e9dcf2811_m.jpg" width="240" height="180" alt="Microsoft Research Cambridge" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Roger Needham Building during winter time.&lt;/p&gt;</description><enclosure url="http://farm3.static.flickr.com/2700/4202998183_4a0f772604_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken>2009-12-18T11:01:18-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/aheil/4202998183/</feedburner:origLink></item><item>
      <trackback:ping>http://blog.aheil.de/Trackback.aspx?guid=96d24c74-d310-4493-a19f-e3fa8d166b7b</trackback:ping>
      <pingback:server>http://blog.aheil.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.aheil.de/PermaLink,guid,96d24c74-d310-4493-a19f-e3fa8d166b7b.aspx</pingback:target>
      <dc:creator>Andreas Heil</dc:creator>
      <wfw:comment>http://blog.aheil.de/CommentView,guid,96d24c74-d310-4493-a19f-e3fa8d166b7b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.aheil.de/SyndicationService.asmx/GetEntryCommentsRss?guid=96d24c74-d310-4493-a19f-e3fa8d166b7b</wfw:commentRss>
      <slash:comments>8</slash:comments>
      
      <title>Fixing Wrong USB Devices in Windows 7</title>
      <guid isPermaLink="false">http://blog.aheil.de/PermaLink,guid,96d24c74-d310-4493-a19f-e3fa8d166b7b.aspx</guid>
      <link>http://feedproxy.google.com/~r/aheil/~3/ygK-WGR1Udg/FixingWrongUSBDevicesInWindows7.aspx</link>
      <pubDate>Sat, 12 Dec 2009 22:12:06 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
If you experience issues with a USB device not being recognized under Windows 7, there&#xD;
might be a simple solution to solve this. For example the MSI USB 2.0 All IN 1 Card&#xD;
Reader aka &lt;a href="http://www.msi.com/index.php?func=proddesc&amp;amp;maincat_no=132&amp;amp;prod_no=634" target="_blank"&gt;MSI&#xD;
StarReader&lt;/a&gt; is recognized as &lt;em&gt;eHome Infrared Receiver (USBCIR)&lt;/em&gt; using Windows&#xD;
7. The device works great using Windows Vista or even the Windows 7 pre-release versions.&#xD;
Unfortunately, with the final Windows 7 the device just won’t work. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="MSI USB 2.0 All IN 1 Card Reader " border="0" alt="MSI USB 2.0 All IN 1 Card Reader " src="http://blog.aheil.de/content/binary/WindowsLiveWriter/019c19c667bf_132C7/msi_3a0ab7e2-11e7-4551-af3f-f83b7cb2fa4c.png" width="320" height="175"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
A quick look into the &lt;em&gt;Device Manager&lt;/em&gt; will show that the device is recognized&#xD;
as &lt;em&gt;eHome Infrared Receiver (USBCIR)&lt;/em&gt;. When connecting the first time Windows&#xD;
7 won’t give any notice that the installation of the driver failed or that the device&#xD;
is not ready to use. It will simply not work. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Device Manager" border="0" alt="Device Manager" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/019c19c667bf_132C7/image_b1a258cf-da97-414a-85d0-2aa3ab0b5741.png" width="398" height="162"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
This seems to be &lt;a href=" http://forum-en.msi.com/index.php?topic=129426.0" target="_blank"&gt;known&#xD;
problem&lt;/a&gt;, however, there is no need to wait for a Software Update from Microsoft.&#xD;
The solution is to &lt;a href="http://social.technet.microsoft.com/Forums/en-US/w7itprohardware/thread/ef806129-980d-46f8-9968-d667859b68e0" target="_blank"&gt;manually&#xD;
choose the device&lt;/a&gt;.&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
Start &lt;em&gt;Device Manager&lt;/em&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Right-click the &lt;em&gt;eHome Infrared Receiver (USBCIR)&lt;/em&gt; entry&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Select &lt;em&gt;Update Driver Software&lt;/em&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Choose &lt;em&gt;Browse my computer for driver software&lt;/em&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Choose &lt;em&gt;Let me pick from a list of device drivers on my computer&lt;/em&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Make sure the &lt;em&gt;Show compatible hardware&lt;/em&gt; box is checked&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Select the USB Composite Device and you are done&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Show compatible hardware" border="0" alt="Show compatible hardware" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/019c19c667bf_132C7/image_189ffae4-a47b-43df-a7e6-122de2e7cb7a.png" width="371" height="217"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
After a few seconds the driver should be installed and the device should be ready.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Driver Software Installation" border="0" alt="Driver Software Installation" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/019c19c667bf_132C7/image_2c20914d-8169-426c-b2a2-9c62238af453.png" width="540" height="281"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.aheil.de/aggbug.ashx?id=96d24c74-d310-4493-a19f-e3fa8d166b7b"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;</description>
      <comments>http://blog.aheil.de/CommentView,guid,96d24c74-d310-4493-a19f-e3fa8d166b7b.aspx</comments>
      <category>hack-the-planet</category>
      <category>Hardware</category>
      <category>Knowledge Base</category>
    <feedburner:origLink>http://blog.aheil.de/2009/12/12/FixingWrongUSBDevicesInWindows7.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.aheil.de/Trackback.aspx?guid=a172970d-c807-449d-ad9f-79f36e8f8913</trackback:ping>
      <pingback:server>http://blog.aheil.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.aheil.de/PermaLink,guid,a172970d-c807-449d-ad9f-79f36e8f8913.aspx</pingback:target>
      <dc:creator>Andreas Heil</dc:creator>
      <wfw:comment>http://blog.aheil.de/CommentView,guid,a172970d-c807-449d-ad9f-79f36e8f8913.aspx</wfw:comment>
      <wfw:commentRss>http://blog.aheil.de/SyndicationService.asmx/GetEntryCommentsRss?guid=a172970d-c807-449d-ad9f-79f36e8f8913</wfw:commentRss>
      <slash:comments>4</slash:comments>
      
      <title>A Simple Vedea Example</title>
      <guid isPermaLink="false">http://blog.aheil.de/PermaLink,guid,a172970d-c807-449d-ad9f-79f36e8f8913.aspx</guid>
      <link>http://feedproxy.google.com/~r/aheil/~3/QKT4SYopKgo/ASimpleVedeaExample.aspx</link>
      <pubDate>Fri, 04 Dec 2009 17:20:09 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p align="left"&gt;&#xD;
          &lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="Vedea" border="0" alt="Vedea" align="right" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/ASimpleVedeaExample_D583/vedea_img_d5fe3595-2c9c-4a66-a622-fc7be5c7a638.png" width="144" height="52"&gt;&lt;/img&gt; Martin&#xD;
Calsyn recently &lt;a href="http://blogs.msdn.com/martinca/archive/2009/12/03/introducing-the-microsoft-visualization-language.aspx" target="_blank"&gt;unveiled&lt;/a&gt; the&#xD;
second project we are working on at the Computational Science Laboratory at Microsoft&#xD;
Research in Cambridge,  UK. The Microsoft Visualization Language codenamed &lt;a href="http://research.microsoft.com/Vedea" target="_blank"&gt;Vedea&lt;/a&gt; is&#xD;
an experimental language for creating interactive infographics and data visualizations.&#xD;
The language initially targets non-programmers, however, Vedea also provides sophisticated&#xD;
features such as LINQ for experienced developers as Martin demonstrates in his post.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Vedea was demoed the first time at &lt;a href="http://microsoftpdc.com/" target="_blank"&gt;PDC09&lt;/a&gt; to&#xD;
the public. The demo shown there visualizes global IP traffic monitored during a 24h&#xD;
time span. The data is organized in a standard CSV file and contains source, destination,&#xD;
geographical coordinates, IP numbers and the time and some more statistical information.  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.aheil.de/content/binary/WindowsLiveWriter/ASimpleVedeaExample_D583/image_2.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Example Source Data" border="0" alt="Example Source Data" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/ASimpleVedeaExample_D583/image_thumb.png" width="359" height="142"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
The data itself is rather unspectacular and the most useful for some statistical analysis.&#xD;
However, with Vedea is is relatively easy to visualize the data in a handsome manner.&#xD;
Before you go on, please be aware that the language is still under development and&#xD;
the given example just represents the state of development at the time of PDC09.&#xD;
&lt;/p&gt;&#xD;
        &lt;pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  1: img = LoadImage("&lt;span style="color: #8b0000"&gt;world.png&lt;/span&gt;"); &lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  2: Scene.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Vedea.Image(img,&#xD;
0, 0)); &lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  3: &#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  4: &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (i=0;&#xD;
i&amp;lt;len; i=i+1) { &lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  5: &#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  6:     b = Noise(i*255);&#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  7:     Stroke(20, 0, 0, b);&#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  8: &#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  9:     x1 = csv.SourceLon[i];&#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 10:     y1 = cvs.SourceLat[i];&#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 11:     x2 = cvs.DestLon[i];&#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 12:     y2 = csv.DestLat[i];&#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 13: &#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 14:     c = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Vedea.Curve(x1-10,&#xD;
y1-b, x1, y1, x2, y2, x2, y2-b); &lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 15:     Scene.Add(c);&#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 16: }&lt;/pre&gt;&#xD;
        &lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
The fist two lines of code are used to load background image. after loading, the image&#xD;
is added to the current scene. The &lt;em&gt;Scene &lt;/em&gt;object describes the standard canvas,&#xD;
the programmer draws on. This demonstrates the object oriented capabilities of Vedea.&#xD;
As Vedea is a  dynamic language which is based on the DLR, there is no need &#xD;
to declare the type of the image object. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
At the next lines we find a simple for-loop that iterates through all lines of the&#xD;
source data. The data file has been loaded similar to the image beforehand into an&#xD;
data file called &lt;em&gt;csv&lt;/em&gt; and &lt;em&gt;len&lt;/em&gt; is a value of roughly 100.000. So yes,&#xD;
we draw an manage about 100.000 primitives here. Most of the language features in&#xD;
Vedea can be used in a imperative or declarative way. Noise for example is a built-in&#xD;
language features that returns a random number (between 0.0 an 1.0) based on a one-dimensional &lt;a href="http://en.wikipedia.org/wiki/Perlin_noise" target="_blank"&gt;Perlin&#xD;
noise&lt;/a&gt; function. This function is used to create a smooth color gradient with a&#xD;
alpha channel of 20 for our visualization. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;em&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Vedea Curve" border="0" alt="Vedea Curve" align="left" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/ASimpleVedeaExample_D583/curve_9f11c151-ca7e-4d5c-812d-f3defe814574.png" width="98" height="77"&gt;&lt;/img&gt; Stroke&lt;/em&gt; is&#xD;
used in a declarative way to set the stroke color for all primitives drawn afterwards.&#xD;
The next four lines simply read the x- and y-coordinates Finally, a curve is drawn&#xD;
and added to the current scene. The fist and the last point specified are control&#xD;
points that determine the curve’s flexure while the second and third point describe&#xD;
the actual start and endpoint of the curve. Of course the &lt;em&gt;Curve&lt;/em&gt; primitive&#xD;
can be used in an imperative or declarative style (or both) as well:&#xD;
&lt;/p&gt;&#xD;
        &lt;pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  1: Stroke(255, 0, 0);&#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  2: Scene.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Vedea.Curve(5,&#xD;
26, 5, 26, 73, 24, 73, 61)); &lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  3: Stroke(0, 0, 0); &#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  4: Curve(5, 26, 73, 24, 73, 61, 15, 65); &#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  5: Stroke(255, 0, 0);&#xD;
&lt;/pre&gt;&#xD;
          &lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;  6: Curve(73, 24, 73, 61, 15, 65, 15, 65);&lt;/pre&gt;&#xD;
        &lt;/pre&gt;&#xD;
        &lt;p&gt;&#xD;
In the original example we use the previously generated random value &lt;em&gt;b&lt;/em&gt; also&#xD;
to vary the curves control points corresponding with the color. Once we run (remember,&#xD;
we are based on the DLR and thus we don’t compile) the example, we finally get our&#xD;
visualization. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.aheil.de/content/binary/WindowsLiveWriter/ASimpleVedeaExample_D583/image_4.png"&gt;&#xD;
            &lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Vedea Vizualization" border="0" alt="Vedea Vizualization" src="http://blog.aheil.de/content/binary/WindowsLiveWriter/ASimpleVedeaExample_D583/image_thumb_1.png" width="489" height="199"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt; &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In his &lt;a href="http://blog.seattlepi.com/microsoft/archives/187105.asp?source=rss" target="_blank"&gt;post&lt;/a&gt; Nick&#xD;
Eaton stated that &#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p align="left"&gt;&#xD;
“&lt;em&gt;Users of Vedea obviously need to have some background in coding.&lt;/em&gt;”&#xD;
&lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
This is not necessarily true as the example above should show. Using the declarative&#xD;
style of the language it is relatively easy to create appealing visualizations with&#xD;
only little knowledge about programming structures and technologies such as DirectX,&#xD;
GDI+ or WPF. As seen in the example above its within the nature of Vedea to forgive&#xD;
various mistakes which makes it easy to use from the very beginning.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Vedea is a research project of the Computational Science Laboratory of Microsoft Research&#xD;
in Cambridge, UK. The project and still under development. The example shown here&#xD;
represents the state of the project at the time of PDC09 as it was presented to the&#xD;
public. As this is an ongoing project the language might evolve, new features will&#xD;
be developed and others might become obsolete. &#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.aheil.de/aggbug.ashx?id=a172970d-c807-449d-ad9f-79f36e8f8913"&gt;&lt;/img&gt;&#xD;
      &lt;/body&gt;</description>
      <comments>http://blog.aheil.de/CommentView,guid,a172970d-c807-449d-ad9f-79f36e8f8913.aspx</comments>
      <category>Microsoft</category>
      <category>Research</category>
    <feedburner:origLink>http://blog.aheil.de/2009/12/04/ASimpleVedeaExample.aspx</feedburner:origLink></item>
  <item><title>Survival [Flickr]</title><link>http://feedproxy.google.com/~r/aheil/~3/kydgwkJyiEg/</link><dc:creator>aheil.de</dc:creator><pubDate>Sun, 29 Nov 2009 04:39:48 PST</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/4142932149</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/aheil/"&gt;aheil.de&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/aheil/4142932149/" title="Survival"&gt;&lt;img src="http://farm3.static.flickr.com/2794/4142932149_01a0e8472b_m.jpg" width="240" height="160" alt="Survival" /&gt;&lt;/a&gt;&lt;/p&gt;</description><enclosure url="http://farm3.static.flickr.com/2794/4142932149_0e1e42f4f0_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken>2009-11-03T16:43:26-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/aheil/4142932149/</feedburner:origLink></item><item><title>City of London [Flickr]</title><link>http://feedproxy.google.com/~r/aheil/~3/rku9Yj_lQqc/</link><dc:creator>aheil.de</dc:creator><pubDate>Sun, 29 Nov 2009 04:35:58 PST</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/4143684606</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/aheil/"&gt;aheil.de&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/aheil/4143684606/" title="City of London"&gt;&lt;img src="http://farm3.static.flickr.com/2676/4143684606_512914e860_m.jpg" width="240" height="180" alt="City of London" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mankind&lt;/p&gt;</description><enclosure url="http://farm3.static.flickr.com/2676/4143684606_be02126b7e_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken>2009-09-20T12:42:55-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/aheil/4143684606/</feedburner:origLink></item><item><title>Break Glass for Key [Flickr]</title><link>http://feedproxy.google.com/~r/aheil/~3/ThMslF0-DlA/</link><category>case</category><category>emergency</category><category>in</category><dc:creator>aheil.de</dc:creator><pubDate>Thu, 06 Aug 2009 16:23:01 PDT</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/3796733990</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/aheil/"&gt;aheil.de&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/aheil/3796733990/" title="Break Glass for Key"&gt;&lt;img src="http://farm4.static.flickr.com/3539/3796733990_bfae6e3cf9_m.jpg" width="160" height="240" alt="Break Glass for Key" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Seen at the exit of the London Aquarium&lt;/p&gt;</description><enclosure url="http://farm4.static.flickr.com/3539/3796733990_726d388d7f_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken>2009-08-01T14:20:53-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/aheil/3796733990/</feedburner:origLink></item><item><title>Mac G [Flickr]</title><link>http://feedproxy.google.com/~r/aheil/~3/LD-o1XFmHeU/</link><category>hardware</category><dc:creator>aheil.de</dc:creator><pubDate>Sat, 27 Dec 2008 15:34:26 PST</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/3141852967</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/aheil/"&gt;aheil.de&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/aheil/3141852967/" title="Mac G"&gt;&lt;img src="http://farm4.static.flickr.com/3161/3141852967_9d9a4f6696_m.jpg" width="240" height="160" alt="Mac G" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mac Keyboard&lt;/p&gt;</description><enclosure url="http://farm4.static.flickr.com/3161/3141852967_312f01651a_o.jpg" length="0" type="image/jpeg" /><dc:date.Taken>2008-06-09T10:57:19-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/aheil/3141852967/</feedburner:origLink></item></channel>
</rss>
