<?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:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">
  <channel>
    <title>IRhetoric - Convergence in the Simulacrum. A Blog by Karsten Januszewski</title>
    <description>About Software Design and Development</description>
    <link>http://rhizohm.net/irhetoric/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.0.0.36</generator>
    <language>en-us</language>
    <blogChannel:blogRoll>http://rhizohm.net/irhetoric/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Karsten Januszewski</dc:creator>
    <dc:title>IRhetoric - Convergence in the Simulacrum. A Blog by Karsten Januszewski</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/irhetoric" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="irhetoric" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Extracting Tar archives with C#</title>
      <description>&lt;div&gt;I needed to extract some tar files and came across the&lt;a href="http://code.google.com/p/tar-cs/"&gt; tar_cs library for .net&lt;/a&gt;, which was great except it didn't work with the tar files I was using.&amp;nbsp; Fortunately, I was able to fix the problem by changing the ReadToEnd method at line 43 of tarreader.cs as follows:&lt;/div&gt;
&lt;div&gt;
&lt;pre class="brush: c-sharp;"&gt;public void ReadToEnd(string destDirectory)
        {
            while (MoveNext(false))
            {
                string totalPath = destDirectory + Path.DirectorySeparatorChar + FileInfo.FileName;
                string fileName = Path.GetFileName(totalPath);
                string directory = string.Empty;
                if (fileName.Length &amp;gt; 0)
                {
                    //directory = totalPath.Remove(totalPath.Length - fileName.Length);
                    using (FileStream file = File.Create(totalPath))
                    {
                        Read(file);
                    }
                }
                else
                {
                    directory = totalPath;
                    Directory.CreateDirectory(directory);
                }
            }
        }&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Attached in the modded file. Just swap it in and recompile and you should be all set!&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://rhizohm.net/irhetoric/file.axd?file=2012%2f5%2fTarReader.cs"&gt;TarReader.cs (7.03 kb)&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://rhizohm.net/irhetoric/post/2012/05/19/Extracting-Tar-archives-with-C.aspx</link>
      <comments>http://rhizohm.net/irhetoric/post/2012/05/19/Extracting-Tar-archives-with-C.aspx#comment</comments>
      <guid>http://rhizohm.net/irhetoric/post.aspx?id=bbb08062-cb75-4f42-a1dd-7bbf123cc3cc</guid>
      <pubDate>Sat, 19 May 2012 09:22:00 -0900</pubDate>
      <dc:publisher>rhizohm</dc:publisher>
      <pingback:server>http://rhizohm.net/irhetoric/pingback.axd</pingback:server>
      <pingback:target>http://rhizohm.net/irhetoric/post.aspx?id=bbb08062-cb75-4f42-a1dd-7bbf123cc3cc</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://rhizohm.net/irhetoric/trackback.axd?id=bbb08062-cb75-4f42-a1dd-7bbf123cc3cc</trackback:ping>
      <wfw:comment>http://rhizohm.net/irhetoric/post/2012/05/19/Extracting-Tar-archives-with-C.aspx#comment</wfw:comment>
      <wfw:commentRss>http://rhizohm.net/irhetoric/syndication.axd?post=bbb08062-cb75-4f42-a1dd-7bbf123cc3cc</wfw:commentRss>
    </item>
    <item>
      <title>Visual Studio Achievements For Windows Azure Buzz</title>
      <description>&lt;p&gt;&lt;img style="margin: 0px 5px 0px 0px; display: inline; float: left" align="left" src="http://mschannel9-ht2.dl.msecn.net/vsachievements/azureBadge.png" /&gt;Here’s some links to posts and stories about the 15 new Windows Azure achievements added to Visual Studio Achievements:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.neowin.net/news/visual-studio-adds-windows-azure-achievements"&gt;Visual Studio Adds Windows Azure Achievements&lt;/a&gt;&lt;strong&gt;      &lt;br /&gt;&lt;/strong&gt;Neowin&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;a href="http://www.i-programmer.info/news/99-professional/4123-azure-gamified-more-badges.html"&gt;Azure Gamified - More Badges!&lt;/a&gt;      &lt;br /&gt;&lt;/u&gt;I Programmer&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/b/microsoft_blog/archive/2012/04/26/visual-studio-brings-gamification-to-windows-azure-development.aspx" target="_blank"&gt;Visual Studio Achievements Brings Gamification to Windows Azure Development&lt;/a&gt;    &lt;br /&gt;MSFT post&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/04/26/announcing-windows-azure-achievements-for-visual-studio.aspx" target="_blank"&gt;Announcing Windows Azure Achievements For Visual Studio&lt;/a&gt;    &lt;br /&gt;Windows Azure Post&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/Shows/Cloud+Cover/Episode-78-Security-and-Compliance" target="_blank"&gt;Cloud Cover Video&lt;/a&gt;    &lt;br /&gt;Channel9&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/Blogs/C9Team/Announcing-Visual-Studio-Achievements-For-Windows-Azure" target="_blank"&gt;Announcing Visual Studio Achievements For Windows Azure&lt;/a&gt;    &lt;br /&gt;Channel9&lt;/p&gt;</description>
      <link>http://rhizohm.net/irhetoric/post/2012/05/01/Visual-Studio-Achievements-For-Windows-Azure-Buzz.aspx</link>
      <comments>http://rhizohm.net/irhetoric/post/2012/05/01/Visual-Studio-Achievements-For-Windows-Azure-Buzz.aspx#comment</comments>
      <guid>http://rhizohm.net/irhetoric/post.aspx?id=2d8b6496-e5d8-4548-8362-598a12399525</guid>
      <pubDate>Tue, 01 May 2012 08:31:37 -0900</pubDate>
      <category>Windows Azure</category>
      <dc:publisher>rhizohm</dc:publisher>
      <pingback:server>http://rhizohm.net/irhetoric/pingback.axd</pingback:server>
      <pingback:target>http://rhizohm.net/irhetoric/post.aspx?id=2d8b6496-e5d8-4548-8362-598a12399525</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://rhizohm.net/irhetoric/trackback.axd?id=2d8b6496-e5d8-4548-8362-598a12399525</trackback:ping>
      <wfw:comment>http://rhizohm.net/irhetoric/post/2012/05/01/Visual-Studio-Achievements-For-Windows-Azure-Buzz.aspx#comment</wfw:comment>
      <wfw:commentRss>http://rhizohm.net/irhetoric/syndication.axd?post=2d8b6496-e5d8-4548-8362-598a12399525</wfw:commentRss>
    </item>
    <item>
      <title>Using Parallel.ForEach To Aggregate Results From JSON Files Stored in Windows Azure Blob Storage</title>
      <description>&lt;p&gt;I love NoSQL, except when it comes to reporting.&amp;#160; Then I miss those handy SQL aggregation calls. I recently had a situation where I needed to look at a whole bunch of JSON files stored in Windows Azure Blob Storage and aggregate values from within those JSON files. The exact scenario was to get a count of how many people had achieved each achievement as part of the &lt;a href="http://channel9.msdn.com/achievements/visualstudio" target="_blank"&gt;Visual Studio Achievements&lt;/a&gt; project.&lt;/p&gt;  &lt;p&gt;Turned out to be an ideal use case for using some of the &lt;a href="http://msdn.microsoft.com/en-us/concurrency/bb964701" target="_blank"&gt;parallel programming features in .NET 4.0&lt;/a&gt;. Rather than download and process N JSON blobs linearly, I could throw the loop in a &lt;strong&gt;Parallel.ForEach&lt;/strong&gt; block and gain speed from the multi-core machine I was using. The code was pretty straightforward, especially once I discovered the &lt;strong&gt;System.Collections.Concurrent&lt;/strong&gt; namespace with its handy &lt;strong&gt;ConcurrentDictionary&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;And, most significantly, it increased performance by 400 percent!&lt;/p&gt;  &lt;p&gt;Below is the code in it’s entirety; I’ll walk through it here:&lt;/p&gt;  &lt;p&gt;For JSON deserialization, I’m using a library provided by the &lt;a href="http://wcf.codeplex.com" target="_blank"&gt;WCF team up on CodePlex&lt;/a&gt; which is now part of the ASP.NET Web API. It provides some nifty features for turning JSON into &lt;strong&gt;dynamic &lt;/strong&gt;objects. &lt;/p&gt;  &lt;p&gt;The first thing I do is download a JSON file that has all the achievements, which is publically available (line 25).&lt;/p&gt;  &lt;p&gt;I then put all the achievements in a &lt;strong&gt;ConcurrentDictionary&amp;lt;string, int&amp;gt;&lt;/strong&gt; which I’ll use to build my report (line 33).&lt;/p&gt;  &lt;p&gt;Then, I get the blobs and start my &lt;strong&gt;Parallel.ForEach &lt;/strong&gt;loop (line 41). Inside the &lt;strong&gt;Action(TSource)&lt;/strong&gt;, I walk the list of the user’s earned achievements, incrementing the count in the &lt;strong&gt;ConcurrentDictionary &lt;/strong&gt;of each achievement (line 57).&lt;/p&gt;  &lt;p&gt;Finally, once I exit the loop, I turn the dictionary into an Excel spreadsheet (line 69) – folks tend to like that format. &lt;/p&gt;  &lt;p&gt;You’ll notice the remmed out code; that’s the old non-parallelized code if you’d like to compare. &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:37481f70-5506-49eb-8ba6-098d236a09bc" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 656px; height: 1671px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System;
&lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Collections.Concurrent;
&lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.IO;
&lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Json;
&lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Net;
&lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Threading.Tasks;
&lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; Microsoft.WindowsAzure;
&lt;/span&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; Microsoft.WindowsAzure.StorageClient;
&lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000;"&gt; AchievementsReporting
&lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #000000;"&gt;{
&lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt; &lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; Program
&lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {
&lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; Main(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[] args)
&lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {
&lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt; &lt;span style="color: #000000;"&gt;            var cloudBlobClient &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; CloudBlobClient(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Uri(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;https://---.blob.core.windows.net&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;, UriKind.Absolute),
&lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                                      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StorageCredentialsAccountAndKey(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;---&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,
&lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                                                                          &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;---&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;));
&lt;/span&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt; &lt;span style="color: #000000;"&gt;            var container &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; cloudBlobClient.GetContainerReference(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;users&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;);
&lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt; &lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; masterJson &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; (var webClient &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; WebClient())
&lt;/span&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {
&lt;/span&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt; &lt;span style="color: #000000;"&gt;                masterJson &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    webClient.DownloadString(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Uri(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://channel9.msdn.com/achievements/visualstudio?json=true&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;));
&lt;/span&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }
&lt;/span&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt; &lt;span style="color: #000000;"&gt;            dynamic masterList &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; JsonValue.Parse(masterJson);
&lt;/span&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt; &lt;span style="color: #000000;"&gt;            var statisticsDictionary &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; ConcurrentDictionary&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;();
&lt;/span&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;var statisticsDictionary = new Dictionary&amp;lt;string, int&amp;gt;();&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000;"&gt; (var achieve &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; masterList.Achievements)
&lt;/span&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {
&lt;/span&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt; &lt;span style="color: #000000;"&gt;                statisticsDictionary.GetOrAdd(achieve.Name.ToString(), &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);
&lt;/span&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt; &lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;statisticsDictionary.Add(achieve.Name.ToString(), 0);&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            }
&lt;/span&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt; &lt;span style="color: #000000;"&gt;            BlobRequestOptions options &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; BlobRequestOptions();
&lt;/span&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt; &lt;span style="color: #000000;"&gt;            options.UseFlatBlobListing &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt; &lt;span style="color: #000000;"&gt;            options.BlobListingDetails &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; BlobListingDetails.Snapshots;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt; &lt;span style="color: #000000;"&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Starting...&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;);
&lt;/span&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt; &lt;span style="color: #000000;"&gt;            DateTime start &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; DateTime.Now;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt; &lt;span style="color: #000000;"&gt;            Parallel.ForEach(container.ListBlobs(options), blobListItem &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt; &lt;span style="color: #000000;"&gt;           &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;foreach (var blobListItem in container.ListBlobs(options))&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;43&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    {
&lt;/span&gt;&lt;span style="color: #008080;"&gt;44&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        CloudBlob blob &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;45&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            container.GetBlobReference(
&lt;/span&gt;&lt;span style="color: #008080;"&gt;46&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                blobListItem.Uri.AbsoluteUri);
&lt;/span&gt;&lt;span style="color: #008080;"&gt;47&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; json &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; blob.DownloadText();
&lt;/span&gt;&lt;span style="color: #008080;"&gt;48&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.IsNullOrEmpty(json))
&lt;/span&gt;&lt;span style="color: #008080;"&gt;49&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        {
&lt;/span&gt;&lt;span style="color: #008080;"&gt;50&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            dynamic achievementsDynamic &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;51&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                JsonValue.Parse(json) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; dynamic;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;52&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000;"&gt; (
&lt;/span&gt;&lt;span style="color: #008080;"&gt;53&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                var achieve &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; achievementsDynamic.Achievements)
&lt;/span&gt;&lt;span style="color: #008080;"&gt;54&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            {
&lt;/span&gt;&lt;span style="color: #008080;"&gt;55&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (achieve.DateEarned &lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)
&lt;/span&gt;&lt;span style="color: #008080;"&gt;56&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                {
&lt;/span&gt;&lt;span style="color: #008080;"&gt;57&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                        statisticsDictionary[achieve.Name.ToString()] &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;58&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                            statisticsDictionary[achieve.Name.ToString()] &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;59&lt;/span&gt; &lt;span style="color: #000000;"&gt;                                }
&lt;/span&gt;&lt;span style="color: #008080;"&gt;60&lt;/span&gt; &lt;span style="color: #000000;"&gt;                            }
&lt;/span&gt;&lt;span style="color: #008080;"&gt;61&lt;/span&gt; &lt;span style="color: #000000;"&gt;                        }
&lt;/span&gt;&lt;span style="color: #008080;"&gt;62&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    }
&lt;/span&gt;&lt;span style="color: #008080;"&gt;63&lt;/span&gt; &lt;span style="color: #000000;"&gt;                );
&lt;/span&gt;&lt;span style="color: #008080;"&gt;64&lt;/span&gt; &lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;65&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; (StreamWriter writer &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StreamWriter(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;report.xls&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;))
&lt;/span&gt;&lt;span style="color: #008080;"&gt;66&lt;/span&gt; &lt;span style="color: #000000;"&gt;            {
&lt;/span&gt;&lt;span style="color: #008080;"&gt;67&lt;/span&gt; &lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000;"&gt; (var key &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; statisticsDictionary.Keys)
&lt;/span&gt;&lt;span style="color: #008080;"&gt;68&lt;/span&gt; &lt;span style="color: #000000;"&gt;                {
&lt;/span&gt;&lt;span style="color: #008080;"&gt;69&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    writer.WriteLine(key &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;\t&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; statisticsDictionary[key].ToString());
&lt;/span&gt;&lt;span style="color: #008080;"&gt;70&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }
&lt;/span&gt;&lt;span style="color: #008080;"&gt;71&lt;/span&gt; &lt;span style="color: #000000;"&gt;            }
&lt;/span&gt;&lt;span style="color: #008080;"&gt;72&lt;/span&gt; &lt;span style="color: #000000;"&gt;            TimeSpan diff &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; DateTime.Now &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; start;
&lt;/span&gt;&lt;span style="color: #008080;"&gt;73&lt;/span&gt; &lt;span style="color: #000000;"&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;done - took: &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;);
&lt;/span&gt;&lt;span style="color: #008080;"&gt;74&lt;/span&gt; &lt;span style="color: #000000;"&gt;            Console.WriteLine(diff.TotalMinutes);
&lt;/span&gt;&lt;span style="color: #008080;"&gt;75&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }
&lt;/span&gt;&lt;span style="color: #008080;"&gt;76&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }
&lt;/span&gt;&lt;span style="color: #008080;"&gt;77&lt;/span&gt; &lt;span style="color: #000000;"&gt;}
&lt;/span&gt;&lt;span style="color: #008080;"&gt;78&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;</description>
      <link>http://rhizohm.net/irhetoric/post/2012/04/17/Using-ParallelForEach-To-Aggregate-Results-From-JSON-Files-Stored-in-Windows-Azure-Blob-Storage.aspx</link>
      <comments>http://rhizohm.net/irhetoric/post/2012/04/17/Using-ParallelForEach-To-Aggregate-Results-From-JSON-Files-Stored-in-Windows-Azure-Blob-Storage.aspx#comment</comments>
      <guid>http://rhizohm.net/irhetoric/post.aspx?id=ffe1e9da-fb0a-47a3-8db3-79e2f959d361</guid>
      <pubDate>Tue, 17 Apr 2012 13:24:35 -0900</pubDate>
      <category>Azure</category>
      <category>Development</category>
      <category>.NET 4.0</category>
      <dc:publisher>rhizohm</dc:publisher>
      <pingback:server>http://rhizohm.net/irhetoric/pingback.axd</pingback:server>
      <pingback:target>http://rhizohm.net/irhetoric/post.aspx?id=ffe1e9da-fb0a-47a3-8db3-79e2f959d361</pingback:target>
      <slash:comments>7</slash:comments>
      <trackback:ping>http://rhizohm.net/irhetoric/trackback.axd?id=ffe1e9da-fb0a-47a3-8db3-79e2f959d361</trackback:ping>
      <wfw:comment>http://rhizohm.net/irhetoric/post/2012/04/17/Using-ParallelForEach-To-Aggregate-Results-From-JSON-Files-Stored-in-Windows-Azure-Blob-Storage.aspx#comment</wfw:comment>
      <wfw:commentRss>http://rhizohm.net/irhetoric/syndication.axd?post=ffe1e9da-fb0a-47a3-8db3-79e2f959d361</wfw:commentRss>
    </item>
    <item>
      <title>Migrating VSIX Extensions To Dev11</title>
      <description>&lt;p&gt;Hit an interesting issue with porting Visual Studio VSIX extensions to Dev11.&amp;#160; &lt;/p&gt;  &lt;p&gt;To get my extension to work in Dev11, I tweaked the source.extension.vsixmanifest file. While there is a GUI for editing that file, it doesn’t expose the ability to add Dev11 as a supported edition. However, you can open the source.extension.vsixmanifest up in your favorite xml editor and party on it there. In my case, I changed it as follows: &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:5e16a0b2-5d81-4920-9c8f-822ba9eb05a1" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 656px; height: 240px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;SupportedProducts&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;VisualStudio &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Version&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;=&amp;quot;10.0&amp;quot;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Ultimate&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Premium&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Pro&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;IntegratedShell&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;VisualStudio&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;VisualStudio &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;Version&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;=&amp;quot;11.0&amp;quot;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Ultimate&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Premium&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Pro&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;IntegratedShell&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Edition&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;VisualStudio&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;SupportedProducts&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;Easy enough – the vsix installer will then install your extension for both versions. Nice! &lt;/p&gt;

&lt;p&gt;&lt;a href="http://rhizohm.net/irhetoric/image.axd?picture=vsix.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="vsix" border="0" alt="vsix" src="http://rhizohm.net/irhetoric/image.axd?picture=vsix_thumb.png" width="467" height="359" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, I experienced some odd behavior that may catch some people.&amp;#160; There’s another section of the vsixmanifest called the &amp;lt;Content&amp;gt; section.&amp;#160; You are supposed to put an element into that section called the &amp;lt;VsPackage&amp;gt; element, with the name of the pkgdef file (which is an .ini file).&amp;#160; However, in VS2010, you could get away without having this element. But, in Dev11, if you don’t have this element, your extension will install but never initialize.&amp;#160; So make sure you have this element, either as macro, aka &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:36890588-ebe1-45dc-a34f-a6a3b4a00d9c" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 656px; height: 39px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;VsPackage&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;|%CurrentProject%;PkgdefProjectOutputGroup|&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;VsPackage&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;Or as a hardcoded value:&lt;/p&gt;

&lt;p&gt;
  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:a81b5335-fe14-45bf-af00-93abee55b86d" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 656px; height: 22px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;VsPackage&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;MyVSIX.pdkdef&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;VsPackage&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;
&lt;/p&gt;







&lt;p&gt;Finally, be sure to test test test in Dev11, as you never know what might get ya. &lt;/p&gt;</description>
      <link>http://rhizohm.net/irhetoric/post/2012/03/30/Migrating-VSIX-Extensions-To-Dev11.aspx</link>
      <comments>http://rhizohm.net/irhetoric/post/2012/03/30/Migrating-VSIX-Extensions-To-Dev11.aspx#comment</comments>
      <guid>http://rhizohm.net/irhetoric/post.aspx?id=fb0978a1-4fce-4c59-a417-001bfdb51d4d</guid>
      <pubDate>Fri, 30 Mar 2012 08:22:29 -0900</pubDate>
      <dc:publisher>rhizohm</dc:publisher>
      <pingback:server>http://rhizohm.net/irhetoric/pingback.axd</pingback:server>
      <pingback:target>http://rhizohm.net/irhetoric/post.aspx?id=fb0978a1-4fce-4c59-a417-001bfdb51d4d</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://rhizohm.net/irhetoric/trackback.axd?id=fb0978a1-4fce-4c59-a417-001bfdb51d4d</trackback:ping>
      <wfw:comment>http://rhizohm.net/irhetoric/post/2012/03/30/Migrating-VSIX-Extensions-To-Dev11.aspx#comment</wfw:comment>
      <wfw:commentRss>http://rhizohm.net/irhetoric/syndication.axd?post=fb0978a1-4fce-4c59-a417-001bfdb51d4d</wfw:commentRss>
    </item>
    <item>
      <title>StreamInsight Nuggets</title>
      <description>&lt;p&gt;Here’s some choice quotes from a &lt;a href="http://msdn.microsoft.com/en-us/library/hh849321.aspx" target="_blank"&gt;whitepaper on StreamInsight&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Relational database applications typically acquire data and store it to disk before it can be analyzed. We therefore call analysis with traditional relational database systems &lt;i&gt;query-driven&lt;/i&gt;. Query-driven analysis is well-suited for historical data. … To reach the necessary performance and scale, [some] applications need to analyze the data in near real time while it is being acquired from the source. We denote these applications as &lt;i&gt;event-driven&lt;/i&gt; applications because new event data arriving at the system triggers the necessary analysis. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I think this is a great intro to help wrap yr head around the difference between query-driven and event-driven analysis.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Microsoft StreamInsight is Microsoft’s platform to build high-throughput, low-latency event-driven analytics applications. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;That’s a great one liner.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;With StreamInsight, business insight is delivered at the speed at which data is produced, as opposed to the speed at which traditional reports are processed or consumed.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Nicely worded value prop.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;StreamInsight’s runtime performs calculations incrementally whenever possible. This means that the processing only involves the data for the current result and the new event. Unlike in traditional databases, updating a report with aggregates or KPIs with StreamInsight does not require to re-iterate through past data once a new event comes in. Instead, StreamInsight answers continuous queries with a single pass over all the data, which is an important capability for long-running, potentially infinite, standing queries. Incremental processing is one key performance benefit of StreamInsight.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;That is rad engineering methinks.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;StreamInsight automatically distributes the processing across the available processor cores on the system as well. Thread management and query parallelization are performed automatically by the system.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;How cool is that!&lt;/p&gt;</description>
      <link>http://rhizohm.net/irhetoric/post/2012/03/22/StreamInsight-Nuggets.aspx</link>
      <comments>http://rhizohm.net/irhetoric/post/2012/03/22/StreamInsight-Nuggets.aspx#comment</comments>
      <guid>http://rhizohm.net/irhetoric/post.aspx?id=e18fb971-6ba9-4444-a586-0be90eed1025</guid>
      <pubDate>Thu, 22 Mar 2012 08:40:31 -0900</pubDate>
      <dc:publisher>rhizohm</dc:publisher>
      <pingback:server>http://rhizohm.net/irhetoric/pingback.axd</pingback:server>
      <pingback:target>http://rhizohm.net/irhetoric/post.aspx?id=e18fb971-6ba9-4444-a586-0be90eed1025</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://rhizohm.net/irhetoric/trackback.axd?id=e18fb971-6ba9-4444-a586-0be90eed1025</trackback:ping>
      <wfw:comment>http://rhizohm.net/irhetoric/post/2012/03/22/StreamInsight-Nuggets.aspx#comment</wfw:comment>
      <wfw:commentRss>http://rhizohm.net/irhetoric/syndication.axd?post=e18fb971-6ba9-4444-a586-0be90eed1025</wfw:commentRss>
    </item>
    <item>
      <title>Speaking At GSummit</title>
      <description>&lt;p&gt;Gonna be speaking at GSummit, a conference about gamefication, in June, down in San Francisco.&amp;#160; More &lt;a href="http://gamification.co/2012/03/08/gsummit-speakers-karsten-januszewski/" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://rhizohm.net/irhetoric/post/2012/03/19/Speaking-At-GSummit.aspx</link>
      <comments>http://rhizohm.net/irhetoric/post/2012/03/19/Speaking-At-GSummit.aspx#comment</comments>
      <guid>http://rhizohm.net/irhetoric/post.aspx?id=80c435ae-ee11-4cfd-a3b5-d17bf139e6b9</guid>
      <pubDate>Mon, 19 Mar 2012 11:53:40 -0900</pubDate>
      <dc:publisher>rhizohm</dc:publisher>
      <pingback:server>http://rhizohm.net/irhetoric/pingback.axd</pingback:server>
      <pingback:target>http://rhizohm.net/irhetoric/post.aspx?id=80c435ae-ee11-4cfd-a3b5-d17bf139e6b9</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://rhizohm.net/irhetoric/trackback.axd?id=80c435ae-ee11-4cfd-a3b5-d17bf139e6b9</trackback:ping>
      <wfw:comment>http://rhizohm.net/irhetoric/post/2012/03/19/Speaking-At-GSummit.aspx#comment</wfw:comment>
      <wfw:commentRss>http://rhizohm.net/irhetoric/syndication.axd?post=80c435ae-ee11-4cfd-a3b5-d17bf139e6b9</wfw:commentRss>
    </item>
    <item>
      <title>Visual Studio Achievements Buzz</title>
      <description>&lt;p&gt;The project I’ve been working on recently finally shipped: &lt;a href="http://channel9.msdn.com/Blogs/C9team/Announcing-Visual-Studio-Achievements"&gt;Visual Studio Achievements&lt;/a&gt;. &lt;/p&gt; &lt;iframe style="width: 512px; height: 288px" src="http://channel9.msdn.com/Blogs/C9Team/Visual-Studio-Achievements-in-60-seconds/player?w=512&amp;amp;h=288" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;It’s been great to see the reaction to it, including posts in Wired, Ars Technica, Life Hacker, BoingBoing, Gamasutra and more. It also sparked quite a discussion in &lt;a href="http://www.reddit.com/r/programming/comments/omdfe/microsoft_releases_visual_studio_achievements/"&gt;Reddit&lt;/a&gt; and &lt;a href="http://developers.slashdot.org/story/12/01/19/1334253/visual-studio-gets-achievements-badges-leaderboards"&gt;Slashdot&lt;/a&gt;. Here’s a list of all the buzz that the project has generated:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Crossbreeds Programming Kit with Fantasy Game&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Caleb Garling/Wired&lt;/p&gt;  &lt;p&gt;January 24, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.wired.com/wiredenterprise/2012/01/visual-studio-achievements/"&gt;http://www.wired.com/wiredenterprise/2012/01/visual-studio-achievements/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Coders, Motivate Yourself with Achievements&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Logan Booker/Lifehacker Australia&lt;/p&gt;  &lt;p&gt;January 21, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.lifehacker.com.au/2012/01/coders-motivate-yourself-with-achievements-for-visual-studio/"&gt;http://www.lifehacker.com.au/2012/01/coders-motivate-yourself-with-achievements-for-visual-studio/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Keeps It Old-School with a Pricey Text Adventure Game, Visual Studio 2010&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Peter Bright/Ars Technica&lt;/p&gt;  &lt;p&gt;January 20, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://arstechnica.com/microsoft/news/2012/01/microsoft-pimps-it-old-school-with-a-pricey-text-adventure-game.ars"&gt;http://arstechnica.com/microsoft/news/2012/01/microsoft-pimps-it-old-school-with-a-pricey-text-adventure-game.ars&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Text Adventure Game!&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Rob Beschizza/BoingBoing&lt;/p&gt;  &lt;p&gt;January 20, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://boingboing.net/2012/01/20/microsoft-text-adventure-game.html"&gt;http://boingboing.net/2012/01/20/microsoft-text-adventure-game.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Turns Coding Into a game with New Visual Studio Plug-In&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Matt Williams/Games.on.net&lt;/p&gt;  &lt;p&gt;January 20, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://games.on.net/article/14709/Microsoft_Turns_Coding_into_a_Game_with_New_Visual_Studio_Plug-In"&gt;http://games.on.net/article/14709/Microsoft_Turns_Coding_into_a_Game_with_New_Visual_Studio_Plug-In&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft to Make Programming Fun&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;David Stellmack/Fudzilla&lt;/p&gt;  &lt;p&gt;January 20, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.fudzilla.com/index.php/home/item/25641-microsoft-to-make-programing-fun"&gt;http://www.fudzilla.com/index.php/home/item/25641-microsoft-to-make-programing-fun&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Corporation Adding Visual Studio&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Rachael Brunelli/eMoneyDaily&lt;/p&gt;  &lt;p&gt;January 20, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.emoneydaily.com/microsoft-corporation-nasdaqmsft-adding-visual-studio/69822708/"&gt;http://www.emoneydaily.com/microsoft-corporation-nasdaqmsft-adding-visual-studio/69822708/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Gamifies Visual Studio with Achievements&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Mike Rose/Gamasutra&lt;/p&gt;  &lt;p&gt;January 19, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.gamasutra.com/view/news/39717/Microsoft_gamifies_Visual_Studio_with_achievements.php"&gt;http://www.gamasutra.com/view/news/39717/Microsoft_gamifies_Visual_Studio_with_achievements.php&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Now Has Achievements for… Developers&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Luke Plunkett/Kotaku&lt;/p&gt;  &lt;p&gt;January 19, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://kotaku.com/5877391/microsoft-now-has-achievements-fordevelopers"&gt;http://kotaku.com/5877391/microsoft-now-has-achievements-fordevelopers&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Visual Studio Gets Achievements&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Chris Duckett/TechRepublic&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.techrepublic.com/blog/australia/visual-studio-gets-achievements/572"&gt;http://www.techrepublic.com/blog/australia/visual-studio-gets-achievements/572&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Adds Achievements to Visual Studio Software&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Tom Bramwell/EuroGamer.net&lt;/p&gt;  &lt;p&gt;January 19, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.eurogamer.net/articles/2012-01-19-microsoft-adds-achievements-to-visual-studio-software"&gt;http://www.eurogamer.net/articles/2012-01-19-microsoft-adds-achievements-to-visual-studio-software&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Adds Developer Achievements to Visual Studio&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Nathan Brown/Edge&lt;/p&gt;  &lt;p&gt;January 19, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.edge-online.com/news/microsoft-adds-developer-achievements-visual-studio"&gt;http://www.edge-online.com/news/microsoft-adds-developer-achievements-visual-studio&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Visual Studio Achievements Program&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Sue Gee/I Programmer&lt;/p&gt;  &lt;p&gt;January 19, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.i-programmer.info/news/99-professional/3635-visual-studio-achievements-program.html"&gt;http://www.i-programmer.info/news/99-professional/3635-visual-studio-achievements-program.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Brings Achievements to Visual Studio&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Earnest “Nex” Cavalli/ Escapist Magazine&lt;/p&gt;  &lt;p&gt;January 19, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.escapistmagazine.com/news/view/115354-Microsoft-Brings-Achievements-To-Visual-Studio"&gt;http://www.escapistmagazine.com/news/view/115354-Microsoft-Brings-Achievements-To-Visual-Studio&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Achievement Unlocked: Microsoft Gamifies Development&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Craig Chapple/Develop&lt;/p&gt;  &lt;p&gt;January 19, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.develop-online.net/news/39534/Achievement-unlocked-Microsoft-gamifies-development"&gt;http://www.develop-online.net/news/39534/Achievement-unlocked-Microsoft-gamifies-development&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Adds Visual Studio Achievements for Developers&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Laurentiu Stan/Social Barrel&lt;/p&gt;  &lt;p&gt;January 19, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://socialbarrel.com/microsoft-adds-visual-studio-achievements-for-developers/30728/"&gt;http://socialbarrel.com/microsoft-adds-visual-studio-achievements-for-developers/30728/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Announces Visual Studio Achievements Beta, A Pat on the Back for Dev&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Ron/Winbeta&lt;/p&gt;  &lt;p&gt;January 19, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.winbeta.org/news/microsoft-announces-visual-studio-achievements-beta-pat-back-devs"&gt;http://www.winbeta.org/news/microsoft-announces-visual-studio-achievements-beta-pat-back-devs&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Visual Studio Achievements Program Brings Gamification to Development&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Staff Writer/The Financial&lt;/p&gt;  &lt;p&gt;January 19, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://finchannel.com/Main_News/Tech/102006_Visual_Studio_Achievements_Program_Brings_Gamification_to_Development/"&gt;http://finchannel.com/Main_News/Tech/102006_Visual_Studio_Achievements_Program_Brings_Gamification_to_Development/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Visual Studio Adds Game Mechanic to Keep Devs Engaged&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Jason Cartwright/TechAU&lt;/p&gt;  &lt;p&gt;January 19, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.techau.tv/blog/visual-studio-adds-game-mechanic-to-keep-devs-engaged/"&gt;http://www.techau.tv/blog/visual-studio-adds-game-mechanic-to-keep-devs-engaged/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Introduces Xbox-like Achievements for Developers&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Tom Warren/The Verge&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.theverge.com/microsoft/2012/1/18/2716215/xbox-achievements-badges-visual-studio-developers-gamification"&gt;http://www.theverge.com/microsoft/2012/1/18/2716215/xbox-achievements-badges-visual-studio-developers-gamification&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;The Coding Game: Microsoft’s Visual Studio Gets Badges, Achievements and Leaderboard&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Todd Bishop/GeekWire&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.geekwire.com/2012/coding-fun-microsofts-visual-studio-badges-leaderboard"&gt;http://www.geekwire.com/2012/coding-fun-microsofts-visual-studio-badges-leaderboard&lt;/a&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Channel9’s Visual Studio Achievements Now Available&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Long Zheng/istartedsomething&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.istartedsomething.com/20120119/channel9s-visual-studio-achievements-now-available/"&gt;http://www.istartedsomething.com/20120119/channel9s-visual-studio-achievements-now-available/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Visual Studio Brings Gamification to App Development&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Chris Burns/Slashgear&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.slashgear.com/microsoft-visual-studio-brings-gamification-to-app-development-18209774/"&gt;http://www.slashgear.com/microsoft-visual-studio-brings-gamification-to-app-development-18209774/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Announces Visual Studio Achievements Beta&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Pradeep Viswav/WMPoweruser&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://wmpoweruser.com/microsoft-announces-visual-studio-achievements-beta/"&gt;http://wmpoweruser.com/microsoft-announces-visual-studio-achievements-beta/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Adds Achievements for Developers&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Justin Rubio/IGN&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ign.com/articles/2012/01/18/microsoft-adds-achievements-for-developers"&gt;http://www.ign.com/articles/2012/01/18/microsoft-adds-achievements-for-developers&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Achievement Unlocked… For Developers&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Paul Thurrott/Supersite for Windows&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.winsupersite.com/blog/supersite-blog-39/developer/achievement-unlocked-developers-141940"&gt;http://www.winsupersite.com/blog/supersite-blog-39/developer/achievement-unlocked-developers-141940&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Microsoft Announces ‘Visual Studio Achievements’ for Developers&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Simon LR/Techie Buzz&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://techie-buzz.com/microsoft/microsoft-announces-visual-studio-achievements-for-developers.html"&gt;http://techie-buzz.com/microsoft/microsoft-announces-visual-studio-achievements-for-developers.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Visual Studio Achievements, Now a Reality!&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Rudi/While True Blog&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.whiletrue.com/2012/01/visual-studio-achievements-now-a-reality/"&gt;http://blog.whiletrue.com/2012/01/visual-studio-achievements-now-a-reality/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Visual Studio Achievements Program Brings Gamification to Development&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Staff Writer/Adafruit Industries Blog&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.adafruit.com/blog/2012/01/18/visual-studio-achievements-program-brings-gamification-to-development/"&gt;http://www.adafruit.com/blog/2012/01/18/visual-studio-achievements-program-brings-gamification-to-development/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Visual Studio Achievements – The Beta Goes Live! &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Alvin Ashcraft/Alvin Ashcraft’s Morning Dew&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.alvinashcraft.com/2012/01/18/visual-studio-achievements-the-beta-goes-live/"&gt;http://www.alvinashcraft.com/2012/01/18/visual-studio-achievements-the-beta-goes-live/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Visual Studio Achievements – Remember Kids They’re Just for Fun&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Bill Simser/Fear and Loathing&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/bsimser/archive/2012/01/18/visual-studio-achievements-they-re-just-for-fun.aspx"&gt;http://weblogs.asp.net/bsimser/archive/2012/01/18/visual-studio-achievements-they-re-just-for-fun.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Don’t Brag About Your Visual Studio Achievements! (Yet?)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Maarten Balliauw/Maarten Balliauw {blog}&lt;/p&gt;  &lt;p&gt;January 18, 2012&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.maartenballiauw.be/post/2012/01/18/Don%E2%80%99t-brag-about-your-Visual-Studio-achievements!-%28yet%29.aspx"&gt;http://blog.maartenballiauw.be/post/2012/01/18/Don%E2%80%99t-brag-about-your-Visual-Studio-achievements!-%28yet%29.aspx&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://rhizohm.net/irhetoric/post/2012/01/26/Visual-Studio-Achievements-Buzz.aspx</link>
      <comments>http://rhizohm.net/irhetoric/post/2012/01/26/Visual-Studio-Achievements-Buzz.aspx#comment</comments>
      <guid>http://rhizohm.net/irhetoric/post.aspx?id=91118b06-baed-4638-a067-eb7fa62de518</guid>
      <pubDate>Thu, 26 Jan 2012 08:06:06 -0900</pubDate>
      <category>Development</category>
      <dc:publisher>rhizohm</dc:publisher>
      <pingback:server>http://rhizohm.net/irhetoric/pingback.axd</pingback:server>
      <pingback:target>http://rhizohm.net/irhetoric/post.aspx?id=91118b06-baed-4638-a067-eb7fa62de518</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://rhizohm.net/irhetoric/trackback.axd?id=91118b06-baed-4638-a067-eb7fa62de518</trackback:ping>
      <wfw:comment>http://rhizohm.net/irhetoric/post/2012/01/26/Visual-Studio-Achievements-Buzz.aspx#comment</wfw:comment>
      <wfw:commentRss>http://rhizohm.net/irhetoric/syndication.axd?post=91118b06-baed-4638-a067-eb7fa62de518</wfw:commentRss>
    </item>
    <item>
      <title>Querying The Archivist API With JSON.NET</title>
      <description>&lt;p&gt;Someone recently asked me for a sample of how to query &lt;a href="http://archivist.visitmix.com/" target="_blank"&gt;The Archivist&lt;/a&gt; &lt;a href="http://archivist.visitmix.com/about/developers" target="_blank"&gt;API&lt;/a&gt; to programmatically get a list of the top users of a given search term.&lt;/p&gt;  &lt;p&gt;So I put a quick sample together, using the most excellent &lt;a href="http://json.codeplex.com/" target="_blank"&gt;JSON.NET&lt;/a&gt; library’s LINQ provider for querying JSON.&amp;#160; &lt;/p&gt;  &lt;p&gt;I used an archive on &lt;a href="http://archivist.visitmix.com/irhetoric/75/user" target="_blank"&gt;Wittgenstien&lt;/a&gt;.&amp;#160; To get the JSON that generated this chart, I simply append ?format=json to the URL, like this: &lt;a href="http://archivist.visitmix.com/irhetoric/75/user?format=json"&gt;http://archivist.visitmix.com/irhetoric/75/user?format=json&lt;/a&gt;&amp;#160; which results in the following response:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:f3a82951-5a34-4876-a53f-128c69b2acdb" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 665px; height: 684px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #000000;"&gt;[{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;667.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;lucasofri&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;439.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;3PennyMovies&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;326.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quotemeal&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;260.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;SiegenerZeitung&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;237.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;lucasarrimada&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;236.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Double_bliss&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;175.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;praashok&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;139.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;PhilosophyQuotz&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;135.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;NihilDeNada&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;132.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;wilsonvoight&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;126.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;imamrasyidi&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;117.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Iceburner&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;112.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;emilsantosiii&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;111.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;unwetterwarner&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;104.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;LogicalAnalysis&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;102.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;macondo83&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;93.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;de_340513031&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;90.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;neofibot&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;86.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;hw1&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;83.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;wirsiegen&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;82.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;souvik_rt&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;79.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;asmiather&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;76.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ogallardov&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;72.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;pr0ject2501&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;},{&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Date&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;\/Date(-62135596800000+0000)\/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Count&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;71.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Name&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;ggrigoriadis&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;}]&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Here’s the program I wrote to parse this:&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:6a0cfdf7-77e6-4679-bb14-3d2f2cb41f48" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 665px; height: 244px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; json &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; (WebClient webClient &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; WebClient())
{
    json &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; webClient.DownloadString(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://archivist.visitmix.com/irhetoric/75/user?format=json&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;);
}
JArray result &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; JArray.Parse(json);
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000;"&gt; (JObject user &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; result)
{
    Console.WriteLine((&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;)user[&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Name&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;] &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt; - &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;float&lt;/span&gt;&lt;span style="color: #000000;"&gt;)user[&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Count&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);
}
Console.ReadLine();&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;You can see how I simply pass the JSON to the static .Parse method hanging off the &lt;strong&gt;JArray &lt;/strong&gt;class. If the root of the JSON wasn’t an array, I would have used the &lt;strong&gt;JObject.Parse()&lt;/strong&gt; method. Once it is in the array, I can loop it and extract the values. You can also write LINQ queries using JSON.NET. For example, if I only wanted users whose tweet count was greater than 100, I could write this:&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:4ddd1fd1-ee6c-4713-b0db-528ffe8c014c" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 665px; height: 145px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #000000;"&gt;var greaterThan100 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; from r &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; result
                     &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;float&lt;/span&gt;&lt;span style="color: #000000;"&gt;)r[&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Count&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;] &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;100&lt;/span&gt;&lt;span style="color: #000000;"&gt;
                     select r;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000;"&gt; (JObject user &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; greaterThan100)
{
    Console.WriteLine((&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;)user[&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Name&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;] &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt; - &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;float&lt;/span&gt;&lt;span style="color: #000000;"&gt;)user[&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Count&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;</description>
      <link>http://rhizohm.net/irhetoric/post/2011/12/16/Querying-The-Archivist-API-With-JSONNET.aspx</link>
      <comments>http://rhizohm.net/irhetoric/post/2011/12/16/Querying-The-Archivist-API-With-JSONNET.aspx#comment</comments>
      <guid>http://rhizohm.net/irhetoric/post.aspx?id=7b4cf219-09b5-4fcf-b782-efea14af7953</guid>
      <pubDate>Fri, 16 Dec 2011 08:19:03 -0900</pubDate>
      <category>Development</category>
      <dc:publisher>rhizohm</dc:publisher>
      <pingback:server>http://rhizohm.net/irhetoric/pingback.axd</pingback:server>
      <pingback:target>http://rhizohm.net/irhetoric/post.aspx?id=7b4cf219-09b5-4fcf-b782-efea14af7953</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://rhizohm.net/irhetoric/trackback.axd?id=7b4cf219-09b5-4fcf-b782-efea14af7953</trackback:ping>
      <wfw:comment>http://rhizohm.net/irhetoric/post/2011/12/16/Querying-The-Archivist-API-With-JSONNET.aspx#comment</wfw:comment>
      <wfw:commentRss>http://rhizohm.net/irhetoric/syndication.axd?post=7b4cf219-09b5-4fcf-b782-efea14af7953</wfw:commentRss>
    </item>
    <item>
      <title>Creating A Weighted Average User Defined Aggregate in StreamInsight 1.1</title>
      <description>&lt;p&gt;I&amp;rsquo;ve been doing some prototyping &lt;strong&gt;StreamInsight&lt;/strong&gt; lately and hit the following issue. I needed to write a weighted average so that I could roll up result sets.&amp;nbsp; Let me elaborate on the scenario.&amp;nbsp; I had a query whose &lt;strong&gt;HoppingWindow&lt;/strong&gt; has a &lt;strong&gt;WindowSize&lt;/strong&gt; of 1 minute.&amp;nbsp; One of the things the query returns is an average of one of the values returned by the event payload:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;AvgLoadTime = win.Avg(e =&amp;gt; e.LoadTime)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I then want to take all the results of that query and roll them up into a larger window of 1 hour. So that means writing a new query that uses the results of the first query for its calculation. But, if I were to simply take the average of the average, I&amp;rsquo;d get inaccurate results. What I need was the &lt;a href="http://en.wikipedia.org/wiki/Weighted_mean" target="_blank"&gt;weighted mean&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To do so, I changed the code to look like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;AvgLoadTime = win.Sum(e =&amp;gt; e.AvgLoadTime * e.RecordCount)/win.Sum(e =&amp;gt; e.RecordCount)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But when I deployed to StreamInsight 1.1 and got no love:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Microsoft.ComplexEventProcessing.Linq.QueryGenerationException: Expression '(e.Sum(e =&amp;gt; (e.AvgLoadTime * Convert(e.RecordCount))) / Convert(e.Sum(e =&amp;gt; e.RecordCount)))' contains more than one aggregate method call, which is not supported.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Doh. But then I got hip to user-defined aggregates. I found the documentation on &lt;a href="http://msdn.microsoft.com/en-us/library/ee842720.aspx" target="_blank"&gt;this MSDN page&lt;/a&gt;&amp;nbsp;essential and it helped me to write my extension, which looks like this:&lt;/p&gt;
&lt;div id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:2b89dc8b-be6e-47da-a925-9fea6d56cd7a" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;"&gt;
&lt;pre style="width: 665px; height: 396px; background-color: white; white-space: pre-wrap; word-wrap: break-word; overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; WeightedAverage : CepAggregate&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;WqAggregate, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
{


    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt; GenerateOutput(IEnumerable&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;WqAggregate&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; win)
    {
            
        var AvgLoadTime &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; win.Sum(e &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; e.AvgLoadTime&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;e.RecordCount)&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;win.Sum(e &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; e.RecordCount);
        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; AvgLoadTime;
    }
}
&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExtensionMethods
{
    [CepUserDefinedAggregate(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(WeightedAverage))]
    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt; WeightedAvg(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt; CepWindow&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;WqAggregate&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; window)
    {
        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;throw&lt;/span&gt;&lt;span style="color: #000000;"&gt; CepUtility.DoNotCall();
    }
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;
&lt;p&gt;Where WqAggregate is just a class with the various fields that are returned as a result of my query.&lt;/p&gt;
&lt;p&gt;So, I can now write this code:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;AvgLoadTime = win.WeightedAvg()&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nice! I just had to deploy the .dll where I wrote the extension to the StreamInsight server and I was good to go. Now, with StreamInsight 1.2, the need to do this all goes away with but for now, this turns about to be a reasonable fix.&lt;/p&gt;</description>
      <link>http://rhizohm.net/irhetoric/post/2011/11/16/Creating-A-Weighted-Average-User-Defined-Aggregate-in-StreamInsight-11.aspx</link>
      <comments>http://rhizohm.net/irhetoric/post/2011/11/16/Creating-A-Weighted-Average-User-Defined-Aggregate-in-StreamInsight-11.aspx#comment</comments>
      <guid>http://rhizohm.net/irhetoric/post.aspx?id=80cb31aa-1c33-4796-9151-78717c1c5e46</guid>
      <pubDate>Wed, 16 Nov 2011 11:54:00 -0900</pubDate>
      <dc:publisher>rhizohm</dc:publisher>
      <pingback:server>http://rhizohm.net/irhetoric/pingback.axd</pingback:server>
      <pingback:target>http://rhizohm.net/irhetoric/post.aspx?id=80cb31aa-1c33-4796-9151-78717c1c5e46</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://rhizohm.net/irhetoric/trackback.axd?id=80cb31aa-1c33-4796-9151-78717c1c5e46</trackback:ping>
      <wfw:comment>http://rhizohm.net/irhetoric/post/2011/11/16/Creating-A-Weighted-Average-User-Defined-Aggregate-in-StreamInsight-11.aspx#comment</wfw:comment>
      <wfw:commentRss>http://rhizohm.net/irhetoric/syndication.axd?post=80cb31aa-1c33-4796-9151-78717c1c5e46</wfw:commentRss>
    </item>
    <item>
      <title>Dynamic Keyword and Dotfuscator = Very Unhappy</title>
      <description>&lt;p&gt;I’ve been using &lt;a href="http://preemptive.com/products/dotfuscator/overview" target="_blank"&gt;Dotfuscator&lt;/a&gt; to obfuscate an assembly.&amp;#160; I thought all was good, but when I tried to use the obfuscate assembly, the assembly didn’t work like the unobfuscated one did and was throwing exceptions all over the place. After much debugging, I finally discovered that the use of the &lt;strong&gt;dynamic&lt;/strong&gt; keyword was causing bigtime problems with Dotfucator. &lt;/p&gt;  &lt;p&gt;Understanding what is going on with a simple sample is useful.&amp;#160; Say I have the following method to be obfuscated:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:e9ec9187-f016-4a31-94a6-e6fbd804dd50" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 662px; height: 107px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; MyMethod()
{
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; num &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; DoSomething(num);
    
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;When obfuscated and then inspected in Reflector, here’s what it looks like:&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:ef8676d4-1161-4423-a896-726d9d274a24" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 662px; height: 95px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; a()
{
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; num &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; num2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; a(num);
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;That’s what you’d expect.&amp;#160; But, now let’s say you change that method to use &lt;strong&gt;dynamic&lt;/strong&gt; types instead of &lt;strong&gt;int&lt;/strong&gt;. So it looks like this:&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:1b147622-e207-4cc5-ba36-64dcbc43f4da" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 662px; height: 68px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; MyMethod()
{
    dynamic num &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; DoSomething(num);
        
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;When obfuscated and then disassembled in Reflector, here’s what you get:&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:35809944-32f7-4dea-857f-680ac0dce7e1" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 662px; height: 377px;background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: visible;"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; a()
{
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt; obj2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (a.a &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)
    {
        a.a &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; CallSite&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Func&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;CallSite, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Create(Binder.Convert(CSharpBinderFlags.None, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;), &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(a)));
    }
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (a.b &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)
    {
        a.b &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; CallSite&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Func&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;CallSite, Type, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Create(Binder.InvokeMember(CSharpBinderFlags.None, &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;DoSomething&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(a), &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; CSharpArgumentInfo[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.IsStaticType &lt;/span&gt;&lt;span style="color: #000000;"&gt;|&lt;/span&gt;&lt;span style="color: #000000;"&gt; CSharpArgumentInfoFlags.UseCompileTimeType, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;) }));
    }
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; num &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; a.a.Target(a.a, a.b.Target(a.b, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(a), obj2));
}

 

 
&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;Eek! Not only is it ugly as can be, look at how the method name &lt;strong&gt;DoSomething&lt;/strong&gt; is passed as a&amp;#160; string to the &lt;strong&gt;InvokeMember&lt;/strong&gt; method. But, &lt;strong&gt;DoSomething&lt;/strong&gt; has been ofbuscated as a, so the assembly no longer has any notion of the &lt;strong&gt;DoSomething&lt;/strong&gt; name for that method. &lt;/p&gt;

&lt;p&gt;I’m not the only one who’s hit this as you can see from this post in the &lt;strong&gt;Dotfuscator&lt;/strong&gt; forums.&amp;#160; Unfortunately, I couldn’t find a workaround other than removing the use of the &lt;strong&gt;dynamic&lt;/strong&gt; keyword.&lt;/p&gt;</description>
      <link>http://rhizohm.net/irhetoric/post/2011/10/03/Dynamic-Keyword-and-Dotfuscator-=-Very-Unhappy.aspx</link>
      <comments>http://rhizohm.net/irhetoric/post/2011/10/03/Dynamic-Keyword-and-Dotfuscator-=-Very-Unhappy.aspx#comment</comments>
      <guid>http://rhizohm.net/irhetoric/post.aspx?id=85e03105-b534-4309-97aa-0396622fc39b</guid>
      <pubDate>Mon, 03 Oct 2011 12:00:20 -0900</pubDate>
      <category>Development</category>
      <dc:publisher>rhizohm</dc:publisher>
      <pingback:server>http://rhizohm.net/irhetoric/pingback.axd</pingback:server>
      <pingback:target>http://rhizohm.net/irhetoric/post.aspx?id=85e03105-b534-4309-97aa-0396622fc39b</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://rhizohm.net/irhetoric/trackback.axd?id=85e03105-b534-4309-97aa-0396622fc39b</trackback:ping>
      <wfw:comment>http://rhizohm.net/irhetoric/post/2011/10/03/Dynamic-Keyword-and-Dotfuscator-=-Very-Unhappy.aspx#comment</wfw:comment>
      <wfw:commentRss>http://rhizohm.net/irhetoric/syndication.axd?post=85e03105-b534-4309-97aa-0396622fc39b</wfw:commentRss>
    </item>
  </channel>
</rss>

