<feed xmlns:dc="http://purl.org/dc/elements/1.1/" 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="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>The Reluctant Blogger</title>
    <link rel="self" type="application/xml" href="http://geekswithblogs.net/DavidHoerster/Atom.aspx" />
    <subtitle type="html">Blogging not because I have to, but because I want to</subtitle>
    <id>http://geekswithblogs.net/DavidHoerster/Default.aspx</id>
    <author>
        <name>David Hoerster</name>
        <uri>http://geekswithblogs.net/DavidHoerster/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2012-01-10T08:11:27Z</updated>
    <entry>
        <title>Thoughts on Windows Phone 7&amp;hellip;</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/DavidHoerster/archive/2012/01/09/thoughts-on-windows-phone-7hellip.aspx" />
        <id>http://geekswithblogs.net/DavidHoerster/archive/2012/01/09/thoughts-on-windows-phone-7hellip.aspx</id>
        <published>2012-01-09T10:42:34-05:00:00</published>
        <updated>2012-01-09T10:44:12Z</updated>
        <content type="html">&lt;p&gt;So, first off, I’m by no means a mobile developer.  I’ve played around with some samples here and there, but I have not built anything significant to date.  So I’m not that familiar with the publishing process for iPhone, Android and WP7 applications.&lt;/p&gt;  &lt;p&gt;OK, with that out of the way, I will say that I am an owner of 2 WP7 devices (one for me, and one for my wife).  We both like them a lot, think the UI is great and intuitive, and like how the device is laid out.  Honestly, when I go back to my iPod Touch device, I find it a bit clunky compared to the WP7 devices.&lt;/p&gt;  &lt;p&gt;I have about the same number of apps on both devices – my iPod Touch has a few more financial and personal applications than my WP7 device does because of the sheer number of more apps in the App Store.  But I have a good number of apps that exist on both platforms (e.g. Netflix, Amazon, IMDB, Evernote, etc.) and I think a good number of them look and perform better on the WP7 device.&lt;/p&gt;  &lt;p&gt;But what bothers me is that the activity in the App Store dwarfs the activity in the WP7 Marketplace.  The apps on my iPod Touch seem to have updates every week or so – updates that provide fixes and functionality.  The apps from the WP7 Marketplace are few and far between, and usually don’t provide a lot of functionality.  Granted, this is not scientific – but more of an informal observation.&lt;/p&gt;  &lt;p&gt;But what this tells me is that companies aren’t investing a lot in WP7 applications.  Looking through the WP7 Marketplace, while there are a large number of apps, there aren’t a lot of “professional” applications.  There’s no E-Trade, Schwab or an app for my personal bank; few productivity apps that are free; and just a bunch of odd apps scattered throughout the marketplace.  My guess is that a lot of developers are building apps for personal gain; but few companies are building apps.&lt;/p&gt;  &lt;p&gt;All of this makes me concerned for the future of WP7.  I think it’s a great OS that has a lot of potential, but I’m afraid that it’s going to be a niche OS at best.  I think Microsoft should pay attention to some of the items in &lt;a href="http://www.netnavi.tv/2011/12/27/12-things-microsoft-should-do-in-2012/" target="_blank"&gt;this blog post&lt;/a&gt; about how they can get the WP7 out there.  If they don’t react and try to improve the reach of WP7, I think Microsoft’s future in the mobile space is over.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/DavidHoerster/aggbug/148289.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/DavidHoerster/comments/148289.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/DavidHoerster/comments/commentRss/148289.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/DavidHoerster/services/trackbacks/148289.aspx</trackback:ping>
    </entry>
    <entry>
        <title>My Two DEVLINK 2011 Talks Uploaded</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/DavidHoerster/archive/2011/08/25/my-two-devlink-2011-talks-uploaded.aspx" />
        <id>http://geekswithblogs.net/DavidHoerster/archive/2011/08/25/my-two-devlink-2011-talks-uploaded.aspx</id>
        <published>2011-08-25T21:46:47-04:00:00</published>
        <updated>2011-08-25T21:52:24Z</updated>
        <content type="html">&lt;p&gt;After an incredible trip to Chattanooga, TN (my first trip to Tennessee, by the way), I finally made it back home to Pittsburgh and found some time to upload my two DEVLINK talks (slides and code).  I tried something a little different this time by adding my code to GitHub and my slides to SlideShare.  We’ll see how that works out – but I’m optimistic.  So without further adieu, I present to you my 2011 DEVLINK talks.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;Talk #1&lt;/font&gt;&lt;/strong&gt;: &lt;strong&gt;&lt;font size="2"&gt;Greenfield Development with CQRS (&lt;font size="1"&gt;&lt;em&gt;and Azure, and MVC, and a bunch of other stuff…&lt;/em&gt;&lt;/font&gt;.)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Admittedly a bit of an overly achieving topic, but the talk went well.  I did not do a very good job of managing time, due to the fact that the discussions in the session were that engaging and interesting.  But I think the talk went well and introduced the basics of a CQRS application being hosted in Azure.&lt;/p&gt;  &lt;p&gt;GitHub Repo: &lt;a href="https://github.com/DavidHoerster/BuzzyGo"&gt;https://github.com/DavidHoerster/BuzzyGo&lt;/a&gt;&lt;/p&gt;  &lt;div style="width: 425px" id="__ss_9014183"&gt;&lt;strong style="margin: 12px 0px 4px; display: block"&gt;&lt;a title="Greenfield Development with CQRS" href="http://www.slideshare.net/dhoerster/greenfield-development-with-cqrs"&gt;Greenfield Development with CQRS&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse9014183" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=greenfielddevelopmentwithcqrs-110825203126-phpapp02&amp;amp;stripped_title=greenfield-development-with-cqrs&amp;amp;userName=dhoerster" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed name="__sse9014183" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=greenfielddevelopmentwithcqrs-110825203126-phpapp02&amp;amp;stripped_title=greenfield-development-with-cqrs&amp;amp;userName=dhoerster" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;    &lt;div style="padding-bottom: 12px; padding-left: 0px; padding-right: 0px; padding-top: 5px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/dhoerster"&gt;David Hoerster&lt;/a&gt;.&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;Talk #2&lt;/font&gt;&lt;/strong&gt;: &lt;strong&gt;&lt;font size="2"&gt;jQuery and OData – Perfect Together&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I really enjoyed this talk.  I’ve given WCF Data Services / OData talks before, but this one had a great dynamic in the room – the questions were great, the interaction was awesome.  Overall, I had a great time.&lt;/p&gt;  &lt;p&gt;GitHub Repo: &lt;a href="https://github.com/DavidHoerster/AgileBaseball"&gt;https://github.com/DavidHoerster/AgileBaseball&lt;/a&gt;&lt;/p&gt;  &lt;div style="width: 425px" id="__ss_9014170"&gt;&lt;strong style="margin: 12px 0px 4px; display: block"&gt;&lt;a title="jQuery and OData - Perfect Together" href="http://www.slideshare.net/dhoerster/jquery-and-odata-perfect-together"&gt;jQuery and OData - Perfect Together&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse9014170" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jqueryandodata-110825202920-phpapp02&amp;amp;stripped_title=jquery-and-odata-perfect-together&amp;amp;userName=dhoerster" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed name="__sse9014170" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jqueryandodata-110825202920-phpapp02&amp;amp;stripped_title=jquery-and-odata-perfect-together&amp;amp;userName=dhoerster" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;    &lt;div style="padding-bottom: 12px; padding-left: 0px; padding-right: 0px; padding-top: 5px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/dhoerster"&gt;David Hoerster&lt;/a&gt;.&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Again, thanks to everyone that attended my talks.  I had a great time and I’m looking forward to next year’s DEVLINK!!&lt;/p&gt;&lt;img src="http://geekswithblogs.net/DavidHoerster/aggbug/146671.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/DavidHoerster/comments/146671.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/DavidHoerster/comments/commentRss/146671.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/DavidHoerster/services/trackbacks/146671.aspx</trackback:ping>
    </entry>
    <entry>
        <title>HTML / CSS / JavaScript &amp;ndash; We Need An Acronym</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/DavidHoerster/archive/2011/08/10/html--css--javascript-ndash-we-need-an-acronym.aspx" />
        <id>http://geekswithblogs.net/DavidHoerster/archive/2011/08/10/html--css--javascript-ndash-we-need-an-acronym.aspx</id>
        <published>2011-08-10T13:58:10-04:00:00</published>
        <updated>2011-08-16T09:06:33Z</updated>
        <content type="html">&lt;p&gt;I’m a big fan of client-side development using HTML / CSS / JavaScript for about the past 2 or 3 years – really ever since I dug into jQuery and really began to appreciate the power that the technologies on the client-side possess.  Nowadays, everything is HTML / CSS / JavaScript – it’s in all the articles, all the techies are talking about it, and it’s on everyones’ resumes.&lt;/p&gt;
&lt;p&gt;In looking at candidate resumes or listening to presenters speak about web technologies, we constantly hear “HTML / CSS / JavaScript”.  They’re presented in different order, but regardless, it’s still quite a mouthful to say or read over and over.  It’s 10 syllables – way too much for these OCD days.  And especially since we live in a 140 character world, we need an acronym or a shortening for this term.  I’ve given this much thought and have arrived at my contribution to this serious, serious problem.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;JACSHT&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;That’s right.  We’ll just take the first two characters of &lt;strong&gt;JA&lt;/strong&gt;vascript, &lt;strong&gt;CS&lt;/strong&gt;s, and &lt;strong&gt;HT&lt;/strong&gt;ml, and voila!  A new word!  I mean, we have:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;AJAX (asynchronous JavaScript and XML – way too long and it’s not even XML all the time anymore!);&lt;/li&gt;
    &lt;li&gt;JSON (JavaScript Object Notation – and is it JAY-son or jay-SOHN?)&lt;/li&gt;
    &lt;li&gt;and so on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So how could this work?  I think this could lend so much truth to many conversations:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;HIRING MANAGER: So, do you know JACSHT?&lt;/p&gt;
&lt;p&gt;CANDIDATE: No, sir, I don’t know JACSHT.&lt;/p&gt;
&lt;p&gt;HIRING MANAGER: How can you expect me to employ you if you don’t know JACSHT?  The whole world is moving towards JACSHT.&lt;/p&gt;
&lt;p&gt;CANDIDATE: Sir, I wish I knew as much JACSHT as you.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;DEV1: I just got back from BUILD and now I know all about JACSHT.&lt;/p&gt;
&lt;p&gt;DEV2: Oooh, I’m not doing JACSHT in my job.  I wonder if anyone will care if I’m not doing JACSHT?&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;See how easy this is?  And it really conveys a ton of meaning when a DEV doesn’t know JACSHT.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;So I’m proposing that we begin to refer to the client side technologies of HTML, CSS and JavaScript as JACSHT.  It’s easy to say (heck, even a little funny) and communicates effectively when a DEV doesn’t understand that technology.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/DavidHoerster/aggbug/146492.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/DavidHoerster/comments/146492.aspx</wfw:comment>
        <slash:comments>8</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/DavidHoerster/comments/commentRss/146492.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/DavidHoerster/services/trackbacks/146492.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Creating a PHP MD5() Extension Method for C#</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/DavidHoerster/archive/2011/08/01/creating-a-php-md5-extension-method-for-c.aspx" />
        <id>http://geekswithblogs.net/DavidHoerster/archive/2011/08/01/creating-a-php-md5-extension-method-for-c.aspx</id>
        <published>2011-08-01T07:53:31-04:00:00</published>
        <updated>2011-08-01T07:59:10Z</updated>
        <content type="html">&lt;p&gt;In the project that I’m working on (let’s call it &lt;a href="http://braincredits.com" target="_blank"&gt;BrainCredits&lt;/a&gt; v2.0), I wanted to integrate a user’s &lt;a href="http://en.gravatar.com/" target="_blank"&gt;Gravatar&lt;/a&gt; into the system (like how &lt;a href="http://stackoverflow.com/users/237808/david-hoerster" target="_blank"&gt;StackOverflow&lt;/a&gt; does it).&lt;/p&gt;  &lt;p&gt;To &lt;a href="http://en.gravatar.com/" target="_blank"&gt;Gravatar&lt;/a&gt;’s credit, they make it very easy to incorporate a user’s image – just hash the user’s email address (which I have) to the end of their URL and you’ll get the image back.  The email address just has to be hashed using the MD5 algorithm, and they provide examples of how to do that in PHP.  Oh, it looks so easy:&lt;/p&gt;  &lt;pre class="brush: csharp; ruler: true;"&gt;echo md5( "MyEmailAddress@example.com " );&lt;/pre&gt;

&lt;p&gt;It’s a one-liner in PHP – just call md5() passing in the string you want to hash and you’ll get your hash back.  There must be a similar method in C#, right?  As far as I can tell, there isn’t.  You have to:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;instantiate the &lt;a href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.md5cryptoserviceprovider.aspx" target="_blank"&gt;MD5CryptoServiceProvider&lt;/a&gt;, &lt;/li&gt;

  &lt;li&gt;convert your string to a byte array, &lt;/li&gt;

  &lt;li&gt;run that byte array through the crypto provider to compute the hash (and get a byte array back)&lt;/li&gt;

  &lt;li&gt;and instead of just converting that byte array back to a string, you need to run through each byte and convert it via this: 
    &lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;pre class="brush: csharp; ruler: true;"&gt;myByte.ToString("x2").ToLower()&lt;/pre&gt;



&lt;p&gt;Now you have your string.  Lots of work, especially compared to PHP.  Perhaps this is why so many developers go towards PHP?  Anyway, I need to generate this hash, and decided to create an &lt;a href="http://msdn.microsoft.com/en-us/library/bb383977.aspx" target="_blank"&gt;Extension Method&lt;/a&gt; for it.  My full code looks like this:&lt;/p&gt;

&lt;pre class="brush: csharp; ruler: true;"&gt;using System.Text;

namespace System
{
    public static class StringExtensions
    {
        public static String MD5(this String stringToHash)
        {
            var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
            byte[] emailBytes = System.Text.Encoding.UTF8.GetBytes(stringToHash.ToLower());
            byte[] hashedEmailBytes = md5.ComputeHash(emailBytes);
            System.Text.StringBuilder sb = new StringBuilder();
            foreach (var b in hashedEmailBytes)
            {
                sb.Append(b.ToString("x2").ToLower());
            }
            return sb.ToString();
        }
    }
}&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;You would call it like this:&lt;/p&gt;

&lt;pre class="brush: csharp; ruler: true;"&gt;String emailToHash = "dhoerster@gmail.com";
String hashedEmail = emailToHash.MD5();&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Oh, that’s easy!  And it makes sense.&lt;/p&gt;

&lt;p&gt;Well, I hope this helps someone, and maybe there will be some suggestions on how to improve this.  Good luck!&lt;/p&gt;&lt;img src="http://geekswithblogs.net/DavidHoerster/aggbug/146403.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/DavidHoerster/comments/146403.aspx</wfw:comment>
        <slash:comments>5</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/DavidHoerster/comments/commentRss/146403.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/DavidHoerster/services/trackbacks/146403.aspx</trackback:ping>
    </entry>
    <entry>
        <title>JSON.NET Custom Converters&amp;ndash;A Quick Tour</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/DavidHoerster/archive/2011/07/26/json.net-custom-convertersndasha-quick-tour.aspx" />
        <id>http://geekswithblogs.net/DavidHoerster/archive/2011/07/26/json.net-custom-convertersndasha-quick-tour.aspx</id>
        <published>2011-07-26T13:22:25-04:00:00</published>
        <updated>2011-07-26T13:35:40Z</updated>
        <content type="html">&lt;p&gt;I have to admit that I’m a basic user when it comes to JSON serialization/deserialization.  I’ve used &lt;a href="http://james.newtonking.com/projects/json-net.aspx" target="_blank"&gt;JSON.NET&lt;/a&gt; and the &lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx" target="_blank"&gt;DataContractJsonSerializer&lt;/a&gt;.  I’ve read that JSON.NET is faster and more efficient than the built-in .NET serializer, but I haven’t had to build a system that is dependent on squeezing microseconds out of my serialization routines.  That said, I do prefer JSON.NET because it is more flexible when it comes to using DataContractAttribute and DataMemberAttribute for customizing your JSON output.&lt;/p&gt;  &lt;p&gt;So I came across an interesting question on &lt;a href="http://stackoverflow.com/questions/6829905/serialize-json-to-an-object-with-catch-all-dictionary-property/6830435#6830435" target="_blank"&gt;StackOverflow&lt;/a&gt; today, asking how a json string like:&lt;/p&gt;  &lt;pre class="brush: js; ruler: true;"&gt;{‘one’: 1, ‘two’: 2, ‘three’: 3, ‘four’: 4, ‘blah’: 100}&lt;/pre&gt;

&lt;p&gt;would have its “one” and “two” properties deserialized to an object’s One and Two properties (easy) and anything else in the json string would be dumped into a Dictionary&amp;lt;string,object&amp;gt; (hmmm…not so easy).  So the resulting object would look like:&lt;/p&gt;

&lt;pre class="brush: csharp; ruler: true;"&gt;Mapped mappedObj = { 
  One = 1; 
  Two = 2; 
  TheRest = [{three=3}, {four=4}, {blah=100}]'; 
}&lt;/pre&gt;

&lt;p&gt;I’ve read about custom &lt;a href="http://james.newtonking.com/projects/json-net.aspx" target="_blank"&gt;JSON.NET&lt;/a&gt; converters, but had never written one.  So I decided to give it a shot and discovered that it’s really not too bad.  Here’s my sample code:&lt;/p&gt;

&lt;pre class="brush: csharp; ruler: true;"&gt;using System;
using System.Collections.Generic;
using System.Linq;

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System.Reflection;

namespace JsonConverterTest1
{
    public class Mapped
    {
        private Dictionary&amp;lt;string, object&amp;gt; _theRest = new Dictionary&amp;lt;string, object&amp;gt;();
        public int One { get; set; }
        public int Two { get; set; }
        public Dictionary&amp;lt;string, object&amp;gt; TheRest { get { return _theRest; } }
    }

    public class MappedConverter : CustomCreationConverter&amp;lt;Mapped&amp;gt;
    {
        public override Mapped Create(Type objectType)
        {
            return new Mapped();
        }

        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var mappedObj = new Mapped();
            //get an array of the object's props so I can check if the JSON prop s/b mapped to it
            var objProps = objectType.GetProperties().Select(p =&amp;gt; p.Name.ToLower()).ToArray();

            //loop through my JSON string
            while (reader.Read())
            {
                //if I'm at a property...
                if (reader.TokenType == JsonToken.PropertyName)
                {
                    //convert the property to lower case
                    string readerValue = reader.Value.ToString().ToLower();
                    if (reader.Read())  //read in the prop value
                    {
                        //is this a mapped prop?
                        if (objProps.Contains(readerValue))
                        {
                            //get the property info and set the Mapped object's property value
                            PropertyInfo pi = mappedObj.GetType().GetProperty(readerValue, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
                            var convertedValue = Convert.ChangeType(reader.Value, pi.PropertyType);
                            pi.SetValue(mappedObj, convertedValue, null);
                        }
                        else
                        {
                            //otherwise, stuff it into the Dictionary
                            mappedObj.TheRest.Add(readerValue, reader.Value);
                        }
                    }
                }
            }
            return mappedObj;
        }
    }

    public class Program
    {
        static void Main(string[] args)
        {
            //a sample JSON string to deserialize
            string json = "{'one':1, 'two':2, 'three':3, 'four':4}";

            //call DeserializeObject, passing in my custom converter
            Mapped mappedObj = JsonConvert.DeserializeObject&amp;lt;Mapped&amp;gt;(json, new MappedConverter());

            //output some of the properties that were stuffed into the Dictionary
            Console.WriteLine(mappedObj.TheRest["three"].ToString());
            Console.WriteLine(mappedObj.TheRest["four"].ToString());
        }
    }
}&lt;/pre&gt;

&lt;p&gt;It’s pretty simple to create a custom converter and it’s almost limitless as to what you can do with it.&lt;/p&gt;

&lt;p&gt;Of course, my sample code above is pretty simple and doesn’t take into account arrays or nested objects in the JSON string; but, that can be accounted for by using the JsonToken enumeration (which I do above in detecting a property) and checking for the start of a nested object or an array.&lt;/p&gt;

&lt;p&gt;I found this an interesting exercise and gave me an opportunity to take a tour of a feature in &lt;a href="http://james.newtonking.com/projects/json-net.aspx" target="_blank"&gt;JSON.NET&lt;/a&gt; that I’ve read about but never used.  I hope you find it interesting.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/DavidHoerster/aggbug/146346.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/DavidHoerster/comments/146346.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/DavidHoerster/comments/commentRss/146346.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/DavidHoerster/services/trackbacks/146346.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Things I Didn&amp;rsquo;t Know &amp;ndash; Stacking Your Using Statements</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/DavidHoerster/archive/2011/04/15/things-i-didnrsquot-know-ndash-stacking-your-using-statements.aspx" />
        <id>http://geekswithblogs.net/DavidHoerster/archive/2011/04/15/things-i-didnrsquot-know-ndash-stacking-your-using-statements.aspx</id>
        <published>2011-04-15T16:25:30-04:00:00</published>
        <updated>2011-07-26T13:16:11Z</updated>
        <content type="html">&lt;p&gt;One of the things that I love about the .NET framework is that I am constantly learning new things about it, finding new jewels that save me time, and just some really interesting bits.  This latest item I found falls into the “interesting bits” category.&lt;/p&gt;
&lt;p&gt;Probably like many of you, I’ve written a number of console applications to do some tasks quickly and with little fanfare.  Usually these tasks are one-time tasks, and the console application is almost a throw-away project once I’m done with it.  Because of this, I usually attempt to get things done quickly and sometimes my code isn’t the neatest – shocking, I know!&lt;/p&gt;
&lt;p&gt;Well, for this one task, I had to read information from a CSV file, write a status to a TXT file and also write some updates to our data layer.  These tasks involve the use of &lt;font face="Courier New"&gt;IDisposable&lt;/font&gt; objects; and as a result, I usually wrap these in a &lt;font face="Courier New"&gt;using&lt;/font&gt; block.&lt;/p&gt;
&lt;p&gt;Here’s what my code usually looks like:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;
&lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&lt;span id="lnum1" style="color: rgb(96, 96, 96);"&gt;   1:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; (StreamWriter sw = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; StreamWriter(statusFile, &lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;))&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&lt;span id="lnum2" style="color: rgb(96, 96, 96);"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&lt;span id="lnum3" style="color: rgb(96, 96, 96);"&gt;   3:&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; (StreamReader sr = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; StreamReader(filename, Encoding.Default))&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&lt;span id="lnum4" style="color: rgb(96, 96, 96);"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&lt;span id="lnum5" style="color: rgb(96, 96, 96);"&gt;   5:&lt;/span&gt;         &lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; (CsvReader csv = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; CsvReader(sr, &lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;))&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&lt;span id="lnum6" style="color: rgb(96, 96, 96);"&gt;   6:&lt;/span&gt;         {&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&lt;span id="lnum7" style="color: rgb(96, 96, 96);"&gt;   7:&lt;/span&gt;             &lt;span style="color: rgb(0, 128, 0);"&gt;//some work is done here&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&lt;span id="lnum8" style="color: rgb(96, 96, 96);"&gt;   8:&lt;/span&gt;         }&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&lt;span id="lnum9" style="color: rgb(96, 96, 96);"&gt;   9:&lt;/span&gt;     }&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&lt;span id="lnum10" style="color: rgb(96, 96, 96);"&gt;  10:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;So not too bad, but most of the ‘real’ code in my project tends to be in the middle of the IDE due to all of the indenting.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;I can stack my &lt;font face="Courier New"&gt;using&lt;/font&gt; statements, instead, on top of each other, and have them all be contained with a single block, like so:&lt;/font&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);"&gt;
&lt;div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&lt;span id="lnum1" style="color: rgb(96, 96, 96);"&gt;   1:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; (StreamWriter sw = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; StreamWriter(statusFile, &lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;))&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&lt;span id="lnum2" style="color: rgb(96, 96, 96);"&gt;   2:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; (StreamReader sr = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; StreamReader(filename, Encoding.Default))&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&lt;span id="lnum3" style="color: rgb(96, 96, 96);"&gt;   3:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; (CsvReader csv = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; CsvReader(sr, &lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;))&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&lt;span id="lnum4" style="color: rgb(96, 96, 96);"&gt;   4:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"&gt;&lt;span id="lnum5" style="color: rgb(96, 96, 96);"&gt;   5:&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;//some work is done here&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"&gt;&lt;span id="lnum6" style="color: rgb(96, 96, 96);"&gt;   6:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Much cleaner, much more condense, a little easier to read (IMHO) and it saves a few lines.  It’s nice when you find out something new in a language you’ve been using for years.  I’m a little embarrassed that I didn’t know you could do this, but I’m glad I know now.&lt;/p&gt;&lt;img src="http://geekswithblogs.net/DavidHoerster/aggbug/144908.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/DavidHoerster/comments/144908.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/DavidHoerster/comments/commentRss/144908.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/DavidHoerster/services/trackbacks/144908.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Philly Code Camp 2011.1 - Recap and Session Materials for My Two Talks (OData and LINQ)</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/DavidHoerster/archive/2011/04/11/philly-code-camp-2011.1---recap-and-session-materials-for.aspx" />
        <id>http://geekswithblogs.net/DavidHoerster/archive/2011/04/11/philly-code-camp-2011.1---recap-and-session-materials-for.aspx</id>
        <published>2011-04-11T08:12:52-04:00:00</published>
        <updated>2011-04-11T08:28:55Z</updated>
        <content type="html">&lt;p&gt;Well, another Philly Code Camp has come and gone, and it was a great time. I made it a one-day trip, which I think I'm getting too old to keep doing. Left the house at 4 AM from Pittsburgh, made it to Philly by 8:15 AM; I left around 4 PM and got home by 9 PM (no thanks to my TomTom, which took me on a scenic tour of old town Fort Washington).&lt;/p&gt;
&lt;p&gt;I was expecting a nice and relaxing day at Philly Code Camp where I had one talk (A Beginner's Guide to LINQ) at 2 PM; but I got an email from Marc Ziss asking if I could do another session due to a speaker getting sick. So I filled in for Roberto Hernadez and presented on An Introduction to WCF Data Services and the OData Protocol (I need to shorten that title!) at 10 AM. Roberto's talk was on NHibernate 3, which I know nothing about, so I couldn't fill in for the topic. Since he had to drop out the day before and the schedules were already printed up, there was no time to get an update out to all attendees.  So I ended up with a lot of people coming into my session, staring at the projector with a confused look for a few seconds, and then looking disappointed that the topic wasn't NHibernate. But I would say a good 50% of the attendees stuck around and we ended up with an 80% full room towards the end, which I was impressed with.&lt;/p&gt;
&lt;p&gt;Both sessions had great interaction with the attendees, great questions, and gave me a few things to think about for the next time I use these topics. Thanks to everyone who attended my sessions and thanks to the folks at Philly Code Camp for allowing me to speak.&lt;/p&gt;
&lt;p&gt;By the way, my current "new adventure" is a start-up called &lt;a target="_blank" href="http://www.braincredits.com"&gt;BrainCredits&lt;/a&gt;. It's a site that allows you to track all of your informal learning - code camps, webinars, podcasts, articles you've read, etc. - in one place. We're currently in "laying low" mode, but you're more than welcome to sign up and get credit for my talks. It's free to sign up, and if you have any feedback on the site, please email me at &lt;a href="mailto:david@braincredits.com?subject=Comment%20About%20BrainCredits"&gt;david@braincredits.com&lt;/a&gt;. The URLs to my lessons on BrainCredits.com are:&lt;/p&gt;
&lt;p&gt;OData: &lt;a target="_blank" href="http://www.braincredits.com/Lesson/10774"&gt;http://www.braincredits.com/Lesson/10774&lt;/a&gt;&lt;br /&gt;
LINQ: &lt;a target="_blank" href="http://www.braincredits.com/Lesson/10760"&gt;http://www.braincredits.com/Lesson/10760&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In fact, all of the Philly Code Camp &lt;a target="_blank" href="http://www.braincredits.com/Lesson/List?t=philly"&gt;sessions &lt;/a&gt;are indexed there - so you can grab credit for any session you attended. Just do a tag search for "philly".&lt;/p&gt;
&lt;p&gt;If you just want to download my slides and code from the presentations, the materials are on my SkyDrive account at:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-a5ab7de2a28501ee.office.live.com/browse.aspx/Public/Philly%20Code%20Camp%202011.1"&gt;http://cid-a5ab7de2a28501ee.office.live.com/browse.aspx/Public/Philly%20Code%20Camp%202011.1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks again, and see you at the next Philly Code Camp!&lt;/p&gt;&lt;img src="http://geekswithblogs.net/DavidHoerster/aggbug/144798.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/DavidHoerster/comments/144798.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/DavidHoerster/comments/commentRss/144798.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/DavidHoerster/services/trackbacks/144798.aspx</trackback:ping>
    </entry>
    <entry>
        <title>CMAP 2010.2 Session Materials</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/DavidHoerster/archive/2010/11/07/cmap-2010.2-session-materials.aspx" />
        <id>http://geekswithblogs.net/DavidHoerster/archive/2010/11/07/cmap-2010.2-session-materials.aspx</id>
        <published>2010-11-07T21:52:52-05:00:00</published>
        <updated>2010-11-07T21:54:19Z</updated>
        <content type="html">&lt;p&gt;So I had a great time at this past weekend's Central Maryland Code Camp (CMAP).  I was honored that the organizers chose two of my talks for their schedule (Intro to Threading and A Beginner's Guide to LINQ).  I have to admit that I didn't manage my time very well with the Intro to Threading talk; and, as a result, I didn't really get to my favorite code samples.  But I feel like I came back strong with my LINQ talk and managed the clock pretty well.  We'll see when the evals come in.&lt;/p&gt;
&lt;p&gt;My session materials, both slide decks and code samples, can be downloaded from my SkyDrive account.  Here's the &lt;a target="_blank" href="http://cid-a5ab7de2a28501ee.office.live.com/embedicon.aspx/Public/CMAP2010-2.zip"&gt;link&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;I hope everyone had a great time at CMAP, and I'll see you at my next Code Camp adventure!&lt;/p&gt;&lt;img src="http://geekswithblogs.net/DavidHoerster/aggbug/142634.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/DavidHoerster/comments/142634.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/DavidHoerster/comments/commentRss/142634.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/DavidHoerster/services/trackbacks/142634.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Altoona (PA) Area .NET User Group (AltooNUG):  Welcome to the Club!!</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/DavidHoerster/archive/2010/09/08/altoona-pa-area-.net-user-group-altoonug--welcome-to.aspx" />
        <id>http://geekswithblogs.net/DavidHoerster/archive/2010/09/08/altoona-pa-area-.net-user-group-altoonug--welcome-to.aspx</id>
        <published>2010-09-08T16:29:11-04:00:00</published>
        <updated>2010-09-08T16:29:11Z</updated>
        <content type="html">&lt;p&gt;There's a new .NET user group forming out there -- in Altoona, PA.  I've been lucky enough to listen in on the initial conversations of AltooNUG and I'm excited to hear that they are holding their first meeting on September 21st, 2010!&lt;/p&gt;
&lt;p&gt;Here's the initial informatioin about the group's first meeting.  If you're in or around the Altoona, PA area, you should drop in and pay them a visit.  There's a lot of interest in starting this group and I think there will be a lot of activity coming out of Altoona very soon.&lt;/p&gt;
&lt;p&gt;Good luck AltooNUG!!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div&gt;&lt;b&gt;&lt;u&gt;Meeting Date/Time/Location&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;Sept. 21 2010, 6pm – 8pm&lt;/div&gt;
&lt;div&gt;@ Link Computer Corp.&lt;/div&gt;
&lt;div&gt;Bellwood PA&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;u&gt;Planned Topics&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;Review of Central PA .Net user group CodeCamp (held Sept 11&lt;sup&gt;th&lt;/sup&gt; in Harrisburg)&lt;/div&gt;
&lt;div&gt;Roundtable discussion on how members are using .Net&lt;/div&gt;
&lt;div&gt;Formulate LinkUp presence/strategy&lt;/div&gt;
&lt;div&gt;Plan topic/time/location for next two meetings&lt;/div&gt;
&lt;div&gt;Eat pizza&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;u&gt; &lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;u&gt;Directions To Link&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;Link is in Bellwood, which is about 8 miles north of Altoona, just off of I-99/U.S. 220.&lt;/div&gt;
&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;Get off I-99 (U.S. 220) at exit 41 (Bellwood Exit), taking PA-865 North (really west) toward Bellwood.&lt;/div&gt;
&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;Drive 1/3 mile, take your first left onto E Pleasant Valley Blvd.&lt;/div&gt;
&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;Drive 1/2 mile, turn right onto Stadium Dr.&lt;/div&gt;
&lt;div&gt;&lt;span&gt;·&lt;span&gt;         &lt;/span&gt;&lt;/span&gt;Drive 1/4 mile to Link Corp. (on your right).&lt;/div&gt;&lt;img src="http://geekswithblogs.net/DavidHoerster/aggbug/141687.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/DavidHoerster/comments/141687.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/DavidHoerster/comments/commentRss/141687.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/DavidHoerster/services/trackbacks/141687.aspx</trackback:ping>
    </entry>
    <entry>
        <title>NoVA Code Camp 2010-1 Materials From My WCF Data Services Talk</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/DavidHoerster/archive/2010/06/13/nova-code-camp-2010-1-materials-from-my-wcf-data-services.aspx" />
        <id>http://geekswithblogs.net/DavidHoerster/archive/2010/06/13/nova-code-camp-2010-1-materials-from-my-wcf-data-services.aspx</id>
        <published>2010-06-13T11:11:15-04:00:00</published>
        <updated>2010-06-13T11:11:15Z</updated>
        <content type="html">&lt;p&gt;Here's the &lt;a target="_blank" href="http://cid-a5ab7de2a28501ee.office.live.com/browse.aspx/Public/NOVA%5E_CodeCamp%5E_2010-1"&gt;link &lt;/a&gt;to the materials from my WCF Data Services and OData introductory talk from the June 12th NoVA Code Camp.  Thanks to everyone who attended my session.  The questions were great and the discussions that I had with some of the attendees afterwards were very insightful.  It was a great time.  I'm looking forward to the next NoVACC!&lt;/p&gt;&lt;img src="http://geekswithblogs.net/DavidHoerster/aggbug/140384.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/DavidHoerster/comments/140384.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/DavidHoerster/comments/commentRss/140384.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/DavidHoerster/services/trackbacks/140384.aspx</trackback:ping>
    </entry>
</feed>
