<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>blog.davebouwman.com &#187; Uncategorized</title>
	<atom:link href="http://blog.davebouwman.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.davebouwman.com</link>
	<description>ArcGIS, .NET and Mobile Web Apps</description>
	<lastBuildDate>Wed, 18 Jan 2012 15:29:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.davebouwman.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>blog.davebouwman.com &#187; Uncategorized</title>
		<link>http://blog.davebouwman.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.davebouwman.com/osd.xml" title="blog.davebouwman.com" />
	<atom:link rel='hub' href='http://blog.davebouwman.com/?pushpress=hub'/>
		<item>
		<title>Handling Circular References ASP.NET MVC Json Serialization</title>
		<link>http://blog.davebouwman.com/2011/12/08/handling-circular-references-asp-net-mvc-json-serialization/</link>
		<comments>http://blog.davebouwman.com/2011/12/08/handling-circular-references-asp-net-mvc-json-serialization/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 15:26:29 +0000</pubDate>
		<dc:creator>Dave Bouwman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://dbouwman.wordpress.com/?p=1673</guid>
		<description><![CDATA[I love the Entity Framework CodeFirst stuff, combined with scaffolding, it makes development go so fast. Fast that is until you drop an API into the mix and want that to serve Json. Here’s my EF Model. Lots of lovely &#8230; <a href="http://blog.davebouwman.com/2011/12/08/handling-circular-references-asp-net-mvc-json-serialization/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=1673&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I love the Entity Framework CodeFirst stuff, combined with scaffolding, it makes development go so fast. Fast that is until you drop an API into the mix and want that to serve Json.</p>
<p>Here’s my EF Model. Lots of lovely navigation properties allowing me to get from any entity to any other one. Handy-dandy in .NET land…</p>
<p><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="models" border="0" alt="models" src="http://dbouwman.files.wordpress.com/2011/12/models.png?w=550&#038;h=383" width="550" height="383"></p>
<p>But no-bueno when serializing using the out of the box Json serializer…</p>
<pre class="code">[<span style="color:#2b91af;">HttpGet</span>]
<span style="color:blue;">public </span><span style="color:#2b91af;">JsonResult </span>Get(<span style="color:blue;">int </span>id)
{
    <span style="color:blue;">return </span>Json(itemcategoryRepository.Find(id),
        <span style="color:#2b91af;">JsonRequestBehavior</span>.AllowGet);
}
</pre>
<p>Now, this sucks because how awesomely elegant is that code? What you get is an error like this:</p>
<h4><i>A circular reference was detected while serializing an object of type &#8216;System.Data.Entity.DynamicProxies.ItemCategory_A79…&#8217;.</i></h4>
<h2>Json Serialization Options</h2>
<p>There are a few ways to go here – you could use ViewModels everywhere and sloppy-copy properties across as needed. Even with Automapper to take the drugery out of this, it rubs me the wrong way – what’s the point of using EF if I still have to have a separate set of Poco ViewModels?</p>
<p>Another option is to add a .ToJson method to the EF classes, and emit strings. Lots of control, but… meh.</p>
<p>Using Json.net comes up a lot, but it’s also labor intensive.</p>
<p>What I ended up doing is using Linq to project the EF object graph into an anonymous object graph. Here’s an example that serializes two levels of objects (a list of ItemCategories, each of which can contain a list of Items – see the object model above)</p>
<pre class="code">[<span style="color:#2b91af;">HttpGet</span>]
<span style="color:blue;">public </span><span style="color:#2b91af;">JsonResult </span>List()
{
    <span style="color:blue;">var </span>data = itemcategoryRepository
        .AllIncluding(itemcategory =&gt; itemcategory.Items);
    <span style="color:green;">//Project into anonymous objects because Serializers
    //can't handle circular refs in the EF magic
    </span><span style="color:blue;">var </span>collection = data.Select(x =&gt; <span style="color:blue;">new
    </span>{
        id = x.Id,
        name = x.Name,
        items = x.Items.Select(item =&gt; <span style="color:blue;">new
        </span>{
            id=item.Id,
            name = item.Name
        })
    });
    <span style="color:blue;">return </span>Json(collection,
        <span style="color:#2b91af;">JsonRequestBehavior</span>.AllowGet);
}
</pre>
<p>I like this solution because I have control of the Json in the controller, rather than forcing an object to always serialize the same way in all cases (sometimes I want the Item to serialize it’s Entries, but only when I’m getting a single Item).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbouwman.wordpress.com/1673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbouwman.wordpress.com/1673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbouwman.wordpress.com/1673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbouwman.wordpress.com/1673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbouwman.wordpress.com/1673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbouwman.wordpress.com/1673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbouwman.wordpress.com/1673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbouwman.wordpress.com/1673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbouwman.wordpress.com/1673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbouwman.wordpress.com/1673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbouwman.wordpress.com/1673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbouwman.wordpress.com/1673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbouwman.wordpress.com/1673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbouwman.wordpress.com/1673/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=1673&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.davebouwman.com/2011/12/08/handling-circular-references-asp-net-mvc-json-serialization/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4bfa0a5e4a4e45219a80f9c3cfd6f6?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">dbouwman</media:title>
		</media:content>

		<media:content url="http://dbouwman.files.wordpress.com/2011/12/models.png" medium="image">
			<media:title type="html">models</media:title>
		</media:content>
	</item>
		<item>
		<title>Jumping in the Deep-End&#8230;</title>
		<link>http://blog.davebouwman.com/2011/08/17/jumping-in-the-deep-end/</link>
		<comments>http://blog.davebouwman.com/2011/08/17/jumping-in-the-deep-end/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 03:35:48 +0000</pubDate>
		<dc:creator>Dave Bouwman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.davebouwman.com/?p=1624</guid>
		<description><![CDATA[A week or so ago, just as Apple momentarily eclipsed Exxon in value, I finally took the plunge and got a Mac. I may be off the back in joining the Cult, but I&#8217;m making up for it by jumping &#8230; <a href="http://blog.davebouwman.com/2011/08/17/jumping-in-the-deep-end/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=1624&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A week or so ago, just as <a href="http://blogs.wsj.com/marketbeat/2011/08/10/apple-back-above-exxon-mobil-for-good/">Apple momentarily eclipsed Exxon in value</a>, I finally took the plunge and got a Mac. I may be off the back in joining the Cult, but I&#8217;m making up for it by jumping right into things.</p>
<p>Since getting this thing (maxed out MacBook Air w/ Lion if you&#8217;re interested), I&#8217;ve been learning all sort of stuff &#8211; got Xcode installed (via the app store) and knocked out the first 4 lectures on the <a href="http://itunes.apple.com/us/itunes-u/developing-apps-for-ios-sd/id395631522">Stanford iOS classes</a> (free through iTunes). I got my <a href="http://git-scm.com">git</a> on and poked at our <a href="https://github.com/dtsagile/Leaflet/blob/master/src/layer/AgsDynamicLayer.js">ArcGIS Layers</a> in <a href="http://macromates.com/">TextMate</a>, hacked up some python to harvest <a href="http://share.findmespot.com/shared/faces/viewspots.jsp?glId=0sFUrdrsUxFZFlTRSrgZfNYX6Yx9IhgkS">SpotGPS </a>data for a friend who&#8217;s about to start a multi-year, round the world sailing trip. I got <a href="https://github.com/mxcl/homebrew/wiki/installation">HomeBrew</a> installed and used it to install <a href="https://github.com/mxcl/homebrew/blob/07326546afdea74596a4d0119e9cbde7ad51b6c1/Library/Formula/postgis.rb">Postgresql/Postgis,</a> but I utterly failed to get it running (permissions maybe??!?).</p>
<p>Moving on from that, the next obvious toy to play with was <a href="http://nodejs.org">nodejs</a> and when in Rome, why not throw a NoSql database in the mix &#8211; enter <a href="http://www.mongodb.org/">mondodb</a>. Armed with <a href="http://shapeshed.com/journal/setting-up-nodejs-and-npm-on-mac-osx/">npm</a> (node package manager), I grabbed <a href="http://expressjs.com">Express</a>, cooked the most basic example app, and started to grok the <a href="http://jade-lang.com/">jade</a> templating system (shiny!). Still looking at options/examples for the M &amp; C part of the nodejs MVC stack though. And since I&#8217;ll need somewhere to run any of this hackery, I setup a (free) micro Linux instance on Amazon EC2. Since I&#8217;ll likely travel with this rather than my other massive quad PC notebook, I also got BootCamp setup and Win7 installed so I can perform emergency surgery on ASP.NET MVC apps if needed.</p>
<p>All of this is in the evenings. I&#8217;m spending my days working on a system architecture for a state-wide agency, trying to sort out the best options for synchronizing edits from far flung offices back to a central system, across slow to non-existant network links, taking into consideration new features at ArcGIS 10.1. Which of course means installing the beta of desktop and server, and sorting all the changes, and getting to up speed on the new-new way things work. Fun stuff for sure, but a mental blender. Of note, apparently the &#8220;beta&#8221; is under NDA, so I can&#8217;t talk about the &#8220;techy bits&#8221; until &#8220;pre-release&#8221;.</p>
<p>Suffice to say my head is full, but it&#8217;s seriously fun! Hopefully I can steal 10 minutes of some Postgresql guru&#8217;s time at FOSS4G and get my PostGIS woes solved, and then I&#8217;ll be hackin like a mad-man.</p>
<p>The only developer-ish thing that&#8217;s notoriously Mac-centric that I&#8217;ve not jumped on is <a href="http://www.rubyonrails.org">Ruby on Rails.</a> This is on the agenda, but since I&#8217;ve dabbled in the past, and I view it as more or less on par with ASP.NET MVC (start the flaming now) except in a language I suck at, so I&#8217;m not overly amped to jump on it till I have a particular project in mind.</p>
<p>Anyhow &#8211; I&#8217;d post some more technical stuff on these various things, but at this point I&#8217;m a total &#8220;<a href="http://en.wikipedia.org/w/index.php?title=N00b&amp;redirect=no">n00b</a>&#8220;, so I don&#8217;t have anything to add. Overall, it&#8217;s been really interesting learning new a whole new ecosystem, and fighting through issues. Once I get happy with a node MVC framework and build in some Esri hooks, I&#8217;ll throw up something on what I&#8217;m using.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbouwman.wordpress.com/1624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbouwman.wordpress.com/1624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbouwman.wordpress.com/1624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbouwman.wordpress.com/1624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbouwman.wordpress.com/1624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbouwman.wordpress.com/1624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbouwman.wordpress.com/1624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbouwman.wordpress.com/1624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbouwman.wordpress.com/1624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbouwman.wordpress.com/1624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbouwman.wordpress.com/1624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbouwman.wordpress.com/1624/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbouwman.wordpress.com/1624/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbouwman.wordpress.com/1624/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=1624&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.davebouwman.com/2011/08/17/jumping-in-the-deep-end/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4bfa0a5e4a4e45219a80f9c3cfd6f6?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">dbouwman</media:title>
		</media:content>
	</item>
		<item>
		<title>Mobile Custom View Engine Code</title>
		<link>http://blog.davebouwman.com/2011/07/12/ms-sig/</link>
		<comments>http://blog.davebouwman.com/2011/07/12/ms-sig/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 23:00:45 +0000</pubDate>
		<dc:creator>Dave Bouwman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.davebouwman.com/?p=1611</guid>
		<description><![CDATA[Today I gave a talk at the  Microsoft Special Interest Group about using ASP.NET MVC to serve device specific views. In that talk I used a CustomViewEngine class (code is here) This code was modified from this post by Scott &#8230; <a href="http://blog.davebouwman.com/2011/07/12/ms-sig/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=1611&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I gave a talk at the  Microsoft Special Interest Group about using ASP.NET MVC to serve device specific views. In that talk I used a CustomViewEngine class (<a href="https://gist.github.com/1077436">code is here</a>)</p>
<p>This code was modified from<a href="http://www.hanselman.com/blog/ABetterASPNETMVCMobileDeviceCapabilitiesViewEngine.aspx"> this </a>post by Scott Hanselman. To use it, use Package Manager and install 51degrees.mobi, comment out the redirect to Mobile/Default in the App_Data/51degrees.mobi.config file, drop in this class, and add the viewengines in Global.asax.cs like so:</p>
<p>ViewEngines.Engines.Clear();<br />
ViewEngines.Engines.AddIELessThan9&lt;RazorViewEngine&gt;();<br />
ViewEngines.Engines.AddBlackBerryLessThan6&lt;RazorViewEngine&gt;();<br />
ViewEngines.Engines.AddWP7&lt;RazorViewEngine&gt;();<br />
ViewEngines.Engines.AddPhone&lt;RazorViewEngine&gt;();<br />
ViewEngines.Engines.AddAndroidPhone&lt;RazorViewEngine&gt;();<br />
ViewEngines.Engines.AddIPad&lt;RazorViewEngine&gt;();</p>
<p>//Everybody else gets the full blown dealio<br />
ViewEngines.Engines.Add(new RazorViewEngine());</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbouwman.wordpress.com/1611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbouwman.wordpress.com/1611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbouwman.wordpress.com/1611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbouwman.wordpress.com/1611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbouwman.wordpress.com/1611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbouwman.wordpress.com/1611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbouwman.wordpress.com/1611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbouwman.wordpress.com/1611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbouwman.wordpress.com/1611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbouwman.wordpress.com/1611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbouwman.wordpress.com/1611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbouwman.wordpress.com/1611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbouwman.wordpress.com/1611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbouwman.wordpress.com/1611/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=1611&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.davebouwman.com/2011/07/12/ms-sig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4bfa0a5e4a4e45219a80f9c3cfd6f6?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">dbouwman</media:title>
		</media:content>
	</item>
		<item>
		<title>Esri UC BackChannel: Mobile Agenda &amp; More!</title>
		<link>http://blog.davebouwman.com/2011/06/16/esri-uc-backchannel-mobile-agenda-more/</link>
		<comments>http://blog.davebouwman.com/2011/06/16/esri-uc-backchannel-mobile-agenda-more/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 03:47:29 +0000</pubDate>
		<dc:creator>Dave Bouwman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://dbouwman.wordpress.com/2011/06/16/esri-uc-backchannel-mobile-agenda-more/</guid>
		<description><![CDATA[The Esri User Conference is a little less than a month away, and we’ve cooked up another BackChannel web site / mobile web app for everyone to enjoy. To be clear, this is just a site that we built for &#8230; <a href="http://blog.davebouwman.com/2011/06/16/esri-uc-backchannel-mobile-agenda-more/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=1608&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://esri.com/uc">Esri User Conference</a> is a little less than a month away, and we’ve cooked up another <a href="http://uc.dtsagile.com">BackChannel</a> web site / mobile web app for everyone to enjoy. To be clear, this is just a site that we built for the fun of it – Esri is not involved (yet!) and thus this is a very “un-official” type of thing.</p>
<p>We streamlined things a little since last year, focusing on the features people found the most useful and fun. Here’s the rundown…<br />
<h2>Conference Agenda</h2>
<p>We updated the <a href="http://uc.dtsagile.com/agenda">agenda</a> significantly. This year the agenda is a self-contained javascript application that uses local storage to cache the session information. </p>
<p><a href="http://uc.dtsagile.com/agenda"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="desktop-agenda" border="0" alt="desktop-agenda" src="http://dbouwman.files.wordpress.com/2011/06/desktop-agenda.png?w=504&#038;h=442" width="504" height="442"></a></p>
<p>This is important because there are well over 1200 sessions/events at the UC, and making a request for every search / filter operation would be brutally slow over 3G. By loading the data once a day (takes ~20 second on 3G) searching/filtering sessions is lightning fast because everything is already loaded into the browser. The app has two user interfaces – one for desktop &amp; tablet browsers and another for smartphones. </p>
<p><a href="http://dbouwman.files.wordpress.com/2011/06/mobile-agenda.jpg"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="mobile-agenda" border="0" alt="mobile-agenda" src="http://dbouwman.files.wordpress.com/2011/06/mobile-agenda_thumb.jpg?w=500&#038;h=300" width="500" height="300"></a></p>
<p>In both apps you can select sessions you want to attend, and these settings will be stored between visits – all in local storage in your browser.</p>
<p>If you <a href="http://uc.dtsagile.com/register">register</a> and log into the site, the Agenda app will send the sessions you select back to our server and we’ll be able to sync your agenda selections between your desktop browser and your smartphone. We think that this is a really smooth user experience and encourage users to check this out. </p>
<p>For those geeks interested, we used some python goodies to scrape the agenda info directly from Esri’s web site – we run this script daily and it spits out an optimized json file, which is then dumped into the site and gzipped during download. The app will pull this file down once a day. I’ll post more about this some other time.</p>
<h2>Session Evaluations</h2>
<p>The agenda app also features the ability to submit your session evaluations digitally. When you are in a session, simply look it up on the agenda app, and the “evaluate this session” area will become active. </p>
<p><a href="http://dbouwman.files.wordpress.com/2011/06/session-eval.jpg"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="session-eval" border="0" alt="session-eval" src="http://dbouwman.files.wordpress.com/2011/06/session-eval_thumb.jpg?w=500&#038;h=300" width="500" height="300"></a></p>
<p>Note: you can only submit evaluations for a session *after* the session has started. To encourage the use of this digital feed-back mechanism, you’ll get 10 points for every session evaluation you submit… and yes we check to make sure you submite no more than 2 per time-slot). And, just so this is clear, we will be sending Esri all the evaluations that are submitted via this application and that information will be anonymous.</p>
<h2>Photo Safari</h2>
<p>This was by far the most used part of last year’s BackChannel, and it’s back. We’ve dramatically improved how photos get submitted. Instead of having to download the photo to your PC and manually upload it, we’ve integrated the app with both Facebook and Instagram, allowing either to be used as a source for photos. </p>
<p><a href="http://dbouwman.files.wordpress.com/2011/06/desktop-upload.jpg"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="desktop-upload" border="0" alt="desktop-upload" src="http://dbouwman.files.wordpress.com/2011/06/desktop-upload_thumb.jpg?w=500&#038;h=300" width="500" height="300"></a></p>
<p>This allows uses to take photos with their phones, upload them to Facebook or Instagram and then log into the BackChannel and select a photo from either source. </p>
<p><a href="http://dbouwman.files.wordpress.com/2011/06/mobile-upload.jpg"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="mobile-upload" border="0" alt="mobile-upload" src="http://dbouwman.files.wordpress.com/2011/06/mobile-upload_thumb.jpg?w=500&#038;h=300" width="500" height="300"></a></p>
<p>Simple as can be, and very easy to do on the go. In addition to a cadre of Esri employees and other sundry geo-nerds, we’ve also added some San Diego landmarks to the Photo Safari, so be sure to check those out.</p>
<h2>Recruiting, Points, Shwag and all that Jazz</h2>
<p>Last year the app was a lot of fun, and we had just over 200 participants. This year we’d love to get a lot more people involved – and at the same time up the ante (the <a href="http://uc.dtsagile.com/home/prizes">prizes</a> get better the more people that participate – once we’re over 500 people, we start into the Apple products!) So, we’ve added an easy way for people to start getting ahead now – even before the conference starts!</p>
<p>When you register, you’ll get a personal “recruiting url”. For anyone that registers using that url, you’ll get 20 points (10 when they register, and another 10 when they become “active” which means they have earned 30 points). </p>
<p><a href="http://dbouwman.files.wordpress.com/2011/06/my-recruiting-url.jpg"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="my-recruiting-url" border="0" alt="my-recruiting-url" src="http://dbouwman.files.wordpress.com/2011/06/my-recruiting-url_thumb.jpg?w=504&#038;h=242" width="504" height="242"></a></p>
<p>So – get over to <a href="http://uc.dtsagile.com">http://uc.dtsagile.com</a> and register using your Facebook or Twitter account, and then spam all your coworkers &amp; geo-accomplices heading to the UC, and get them to register with your url <img style="border-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://dbouwman.files.wordpress.com/2011/06/wlemoticon-winkingsmile1.png?w=640"></p>
<p>You’ll also get 20 points for registering, and 10 points for every session evaluation you submit. Of course the points vary for each person / place on the Photo Safari, so you can earn a lot of points that way.</p>
<h2>But, what if I’m not going to the UC?</h2>
<p>Well, you can follow along in the fun by checking out <a href="http://uc.dtsagile.com/safari/all">all the photos</a> (at this time there are only test photos) that have been submitted, or just checking in on the <a href="http://uc.dtsagile.com/socialmedia">Social Stream</a> page where we harvest various social media streams onto a single page. Post anything on twitter with the #Esri or #EsriUC hash tag and it will get pulled in there as well. As for winning points etc, you’ll be at a major disadvantage if you’re not actually in San Diego!</p>
<h2>Why do we do this?</h2>
<p>Good question! A few years ago I wrote a blog post about <a href="http://blog.davebouwman.com/2009/10/06/rethinking-conferences/">Rethinking Conferences</a>. My main point was that many conferences had become dull. Between &#8220;technical&#8221; sessions that are thinly veiled marketing speeches by non-technical sales people, to the creeping death of bad presentations, many conferences had lost their spark. Since I don&#8217;t run conferences, there&#8217;s only so much I personally can do to change the content presented at these events (i.e. make an effort to give energetic, entertaining and educational talks &#8211; 1:30pm on Tuesday in Room 29B I’m talking about Deploying ArcGIS to the Cloud), I do have the power to create something that kicks some life back into an event. Thus the BackChannel. While the Esri UC had not “lost it’s spark” per-se, it is HUGE, and if you don’t know a lot of people attending, it’s a pretty overwhelming event. Having something like the BackChannel is kinda like having a built-in posse – people who you know you share something with – even if it’s just trying to get a photo with Jack!</p>
<p>With that, I invite you to jump in, <a href="http://uc.dtsagile.com/register">register</a> and start spreading the love. We’ve got a few weeks left before the conference and we have a few more ideas for things we’d like to add, and things we are going to tweak, so stay tuned. I hope to see you all out in San Diego &#8211; trying to get a photo with Jack! </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbouwman.wordpress.com/1608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbouwman.wordpress.com/1608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbouwman.wordpress.com/1608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbouwman.wordpress.com/1608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbouwman.wordpress.com/1608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbouwman.wordpress.com/1608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbouwman.wordpress.com/1608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbouwman.wordpress.com/1608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbouwman.wordpress.com/1608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbouwman.wordpress.com/1608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbouwman.wordpress.com/1608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbouwman.wordpress.com/1608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbouwman.wordpress.com/1608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbouwman.wordpress.com/1608/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=1608&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.davebouwman.com/2011/06/16/esri-uc-backchannel-mobile-agenda-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4bfa0a5e4a4e45219a80f9c3cfd6f6?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">dbouwman</media:title>
		</media:content>

		<media:content url="http://dbouwman.files.wordpress.com/2011/06/desktop-agenda.png" medium="image">
			<media:title type="html">desktop-agenda</media:title>
		</media:content>

		<media:content url="http://dbouwman.files.wordpress.com/2011/06/mobile-agenda_thumb.jpg" medium="image">
			<media:title type="html">mobile-agenda</media:title>
		</media:content>

		<media:content url="http://dbouwman.files.wordpress.com/2011/06/session-eval_thumb.jpg" medium="image">
			<media:title type="html">session-eval</media:title>
		</media:content>

		<media:content url="http://dbouwman.files.wordpress.com/2011/06/desktop-upload_thumb.jpg" medium="image">
			<media:title type="html">desktop-upload</media:title>
		</media:content>

		<media:content url="http://dbouwman.files.wordpress.com/2011/06/mobile-upload_thumb.jpg" medium="image">
			<media:title type="html">mobile-upload</media:title>
		</media:content>

		<media:content url="http://dbouwman.files.wordpress.com/2011/06/my-recruiting-url_thumb.jpg" medium="image">
			<media:title type="html">my-recruiting-url</media:title>
		</media:content>

		<media:content url="http://dbouwman.files.wordpress.com/2011/06/wlemoticon-winkingsmile1.png" medium="image">
			<media:title type="html">Winking smile</media:title>
		</media:content>
	</item>
		<item>
		<title>ASP.NET MVC3 Google Analytics Html Helper</title>
		<link>http://blog.davebouwman.com/2011/05/06/asp-net-mvc3-google-analytics-html-helper/</link>
		<comments>http://blog.davebouwman.com/2011/05/06/asp-net-mvc3-google-analytics-html-helper/#comments</comments>
		<pubDate>Fri, 06 May 2011 17:18:04 +0000</pubDate>
		<dc:creator>Dave Bouwman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.davebouwman.com/2011/05/06/asp-net-mvc3-google-analytics-html-helper/</guid>
		<description><![CDATA[While we do a lot of different types of projects, almost all of them boil down to creating a web site or app. And almost everyone wants to know usage information about the site/app, and almost everyone uses Google Analytics. &#8230; <a href="http://blog.davebouwman.com/2011/05/06/asp-net-mvc3-google-analytics-html-helper/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=1592&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>While we do a lot of different types of projects, almost all of them boil down to creating a web site or app. And almost everyone wants to know usage information about the site/app, and almost everyone uses Google Analytics.</p>
<p>For the most part, adding Google Analytics is just a matter of dropping some javascript into the layout for the site, but that’s not always a single file. More frequently we finding ourselves building custom views for desktop, tablet and smart-phone. And while the “web-site” design community is preaching all about responsive design and fluid grids, the simple fact is that for actual “web apps”, you’re WAY better off building an interface that’s specific to the form factor / device. Anyhow, this long rambling intro led me to a problem – in these apps with multiple views, we end up having the Analytics code in multiple locations, thus making changes to the Analytics somewhat painful.</p>
<p>So, I built a simple Html helper. </p>
<pre class="code"><span style="color:#657b83;">&lt;!</span><span style="color:#268bd2;">DOCTYPE </span><span style="color:#657b83;">html&gt;
&lt;</span><span style="color:#268bd2;">html</span><span style="color:#657b83;">&gt;
&lt;</span><span style="color:#268bd2;">head</span><span style="color:#657b83;">&gt;
   &lt;</span><span style="color:#268bd2;">title</span><span style="color:#657b83;">&gt;</span><span style="background:#eee8d5;color:#d33682;">@</span><span style="color:#657b83;">ViewBag</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Title&lt;/</span><span style="color:#268bd2;">title</span><span style="color:#657b83;">&gt;
&lt;/</span><span style="color:#268bd2;">head</span><span style="color:#657b83;">&gt;
&lt;</span><span style="color:#268bd2;">body</span><span style="color:#657b83;">&gt;
    &lt;</span><span style="color:#268bd2;">div</span><span style="color:#657b83;">&gt;
         </span><span style="background:#eee8d5;color:#d33682;">@</span><span style="color:#657b83;">RenderBody</span><span style="color:#586e75;">()
    </span><span style="color:#657b83;">&lt;/</span><span style="color:#268bd2;">div</span><span style="color:#657b83;">&gt;
     </span><span style="background:#eee8d5;color:#d33682;">@</span><span style="color:#657b83;">Html</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Analytics</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot;UA-22787686-6&quot;</span><span style="color:#586e75;">,</span><span style="color:#2aa198;">&quot;dtsagile.com&quot;</span><span style="color:#586e75;">)
</span><span style="color:#657b83;">&lt;/</span><span style="color:#268bd2;">body</span><span style="color:#657b83;">&gt;
&lt;/</span><span style="color:#268bd2;">html</span><span style="color:#657b83;">&gt;

</span></pre>
<p>The Analytics method takes the urchin code, and the domain name. As you can see in the code below, it also has a overload that takes no arguments, and simply pulls the values from AppSettings.</p>
<pre class="code">  <span style="color:#d33682;">&lt;</span><span style="color:#268bd2;">appSettings</span><span style="color:#d33682;">&gt;
    &lt;</span><span style="color:#268bd2;">add </span><span style="color:#657b83;">key</span><span style="color:#d33682;">=</span><span style="color:#93a1a1;">&quot;</span><span style="color:#2aa198;">ga-urchin</span><span style="color:#93a1a1;">&quot; </span><span style="color:#657b83;">value</span><span style="color:#d33682;">=</span><span style="color:#93a1a1;">&quot;</span><span style="color:#2aa198;">UA-22787686-6</span><span style="color:#93a1a1;">&quot;</span><span style="color:#d33682;">/&gt;
    &lt;</span><span style="color:#268bd2;">add </span><span style="color:#657b83;">key</span><span style="color:#d33682;">=</span><span style="color:#93a1a1;">&quot;</span><span style="color:#2aa198;">ga-domainName</span><span style="color:#93a1a1;">&quot; </span><span style="color:#657b83;">value</span><span style="color:#d33682;">=</span><span style="color:#93a1a1;">&quot;</span><span style="color:#2aa198;">dtsagile.com</span><span style="color:#93a1a1;">&quot;</span><span style="color:#d33682;">/&gt;
  &lt;/</span><span style="color:#268bd2;">appSettings</span><span style="color:#d33682;">&gt;
</span></pre>
<p>The helper itself is completely simple… and just uses a string builder to build up the analytics javascript.</p>
<pre class="code"><span style="color:#859900;">using </span><span style="color:#657b83;">System</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Configuration</span><span style="color:#586e75;">;
</span><span style="color:#859900;">using </span><span style="color:#657b83;">System</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Text</span><span style="color:#586e75;">;

</span><span style="color:#859900;">namespace </span><span style="color:#657b83;">System</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Web</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Mvc </span><span style="color:#586e75;">{
    </span><span style="color:#859900;">public static partial class </span><span style="color:#b58900;">HtmlHelpers
    </span><span style="color:#586e75;">{
        </span><span style="background:#eee8d5;color:#93a1a1;">/// &lt;summary&gt;
</span><span style="color:#586e75;">        </span><span style="background:#eee8d5;color:#93a1a1;">/// Insert GA with an Urchin and domain name
</span><span style="color:#586e75;">        </span><span style="background:#eee8d5;color:#93a1a1;">/// &lt;/summary&gt;
</span><span style="color:#586e75;">        </span><span style="background:#eee8d5;color:#93a1a1;">/// &lt;param name=&quot;htmlHelper&quot;&gt;&lt;/param&gt;
</span><span style="color:#586e75;">        </span><span style="background:#eee8d5;color:#93a1a1;">/// &lt;param name=&quot;urchin&quot;&gt;&lt;/param&gt;
</span><span style="color:#586e75;">        </span><span style="background:#eee8d5;color:#93a1a1;">/// &lt;param name=&quot;domainName&quot;&gt;&lt;/param&gt;
</span><span style="color:#586e75;">        </span><span style="background:#eee8d5;color:#93a1a1;">/// &lt;returns&gt;&lt;/returns&gt;
</span><span style="color:#586e75;">        </span><span style="color:#859900;">public static </span><span style="color:#b58900;">HtmlString </span><span style="color:#657b83;">Analytics</span><span style="color:#586e75;">(</span><span style="color:#859900;">this </span><span style="color:#b58900;">HtmlHelper </span><span style="color:#657b83;">htmlHelper</span><span style="color:#586e75;">, </span><span style="color:#859900;">string </span><span style="color:#657b83;">urchin</span><span style="color:#586e75;">, </span><span style="color:#859900;">string </span><span style="color:#657b83;">domainName</span><span style="color:#586e75;">)
        {
            </span><span style="color:#b58900;">StringBuilder </span><span style="color:#657b83;">sb </span><span style="color:#d33682;">= </span><span style="color:#859900;">new </span><span style="color:#b58900;">StringBuilder</span><span style="color:#586e75;">();

            </span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Append</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot;&lt;script type='text/javascript'&gt;&quot;</span><span style="color:#586e75;">);
            </span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Append</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot;  var _gaq = _gaq || [];&quot;</span><span style="color:#586e75;">);
            </span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Append</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot; _gaq.push(['_setAccount', '&quot; </span><span style="color:#d33682;">+ </span><span style="color:#657b83;">urchin </span><span style="color:#d33682;">+ </span><span style="color:#2aa198;">&quot;']);&quot;</span><span style="color:#586e75;">);
            </span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Append</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot; _gaq.push(['_setDomainName', '&quot; </span><span style="color:#d33682;">+ </span><span style="color:#657b83;">domainName </span><span style="color:#d33682;">+ </span><span style="color:#2aa198;">&quot;']);&quot;</span><span style="color:#586e75;">);
            </span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Append</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot; _gaq.push(['_trackPageview']);&quot;</span><span style="color:#586e75;">);
            </span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Append</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot;  (function() {&quot;</span><span style="color:#586e75;">);
            </span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Append</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot;   var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&quot;</span><span style="color:#586e75;">);
            </span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Append</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot;    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&quot;</span><span style="color:#586e75;">);
            </span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Append</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot;   var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&quot;</span><span style="color:#586e75;">);
            </span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Append</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot;  })();&quot;</span><span style="color:#586e75;">);
            </span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">Append</span><span style="color:#586e75;">(</span><span style="color:#2aa198;">&quot;&lt;/script&gt;&quot;</span><span style="color:#586e75;">);

            </span><span style="color:#859900;">return new </span><span style="color:#b58900;">HtmlString</span><span style="color:#586e75;">(</span><span style="color:#657b83;">sb</span><span style="color:#d33682;">.</span><span style="color:#657b83;">ToString</span><span style="color:#586e75;">());
        }

        </span><span style="background:#eee8d5;color:#93a1a1;">/// &lt;summary&gt;
</span><span style="color:#586e75;">        </span><span style="background:#eee8d5;color:#93a1a1;">/// Pull the urchin and domain name from Web.Config
</span><span style="color:#586e75;">        </span><span style="background:#eee8d5;color:#93a1a1;">/// &lt;/summary&gt;
</span><span style="color:#586e75;">        </span><span style="background:#eee8d5;color:#93a1a1;">/// &lt;param name=&quot;htmlHelper&quot;&gt;&lt;/param&gt;
</span><span style="color:#586e75;">        </span><span style="background:#eee8d5;color:#93a1a1;">/// &lt;returns&gt;&lt;/returns&gt;
</span><span style="color:#586e75;">        </span><span style="color:#859900;">public static </span><span style="color:#b58900;">HtmlString </span><span style="color:#657b83;">Analytics</span><span style="color:#586e75;">(</span><span style="color:#859900;">this </span><span style="color:#b58900;">HtmlHelper </span><span style="color:#657b83;">htmlHelper</span><span style="color:#586e75;">)
        {
            </span><span style="color:#93a1a1;">//pull values from Config
            </span><span style="color:#859900;">string </span><span style="color:#657b83;">urchin </span><span style="color:#d33682;">= </span><span style="color:#b58900;">ConfigurationManager</span><span style="color:#d33682;">.</span><span style="color:#657b83;">AppSettings</span><span style="color:#586e75;">[</span><span style="color:#2aa198;">&quot;ga-urchin&quot;</span><span style="color:#586e75;">];
            </span><span style="color:#859900;">string </span><span style="color:#657b83;">domainName </span><span style="color:#d33682;">= </span><span style="color:#b58900;">ConfigurationManager</span><span style="color:#d33682;">.</span><span style="color:#657b83;">AppSettings</span><span style="color:#586e75;">[</span><span style="color:#2aa198;">&quot;ga-domainName&quot;</span><span style="color:#586e75;">];
            </span><span style="color:#859900;">return </span><span style="color:#657b83;">Analytics</span><span style="color:#586e75;">(</span><span style="color:#657b83;">htmlHelper</span><span style="color:#586e75;">, </span><span style="color:#657b83;">urchin</span><span style="color:#586e75;">, </span><span style="color:#657b83;">domainName</span><span style="color:#586e75;">);
        }
    }
}
</span></pre>
<pre class="code">&#160;</pre>
<p>Have fun!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbouwman.wordpress.com/1592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbouwman.wordpress.com/1592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbouwman.wordpress.com/1592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbouwman.wordpress.com/1592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbouwman.wordpress.com/1592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbouwman.wordpress.com/1592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbouwman.wordpress.com/1592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbouwman.wordpress.com/1592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbouwman.wordpress.com/1592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbouwman.wordpress.com/1592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbouwman.wordpress.com/1592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbouwman.wordpress.com/1592/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbouwman.wordpress.com/1592/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbouwman.wordpress.com/1592/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=1592&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.davebouwman.com/2011/05/06/asp-net-mvc3-google-analytics-html-helper/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4bfa0a5e4a4e45219a80f9c3cfd6f6?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">dbouwman</media:title>
		</media:content>
	</item>
		<item>
		<title>Fostering Creativity: Internal Incubators?</title>
		<link>http://blog.davebouwman.com/2011/01/18/fostering-creativity-internal-incubators/</link>
		<comments>http://blog.davebouwman.com/2011/01/18/fostering-creativity-internal-incubators/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 21:20:00 +0000</pubDate>
		<dc:creator>Dave Bouwman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dbouwman.wordpress.com/2011/01/18/fostering-creativity-internal-incubators</guid>
		<description><![CDATA[In order to stay relevant, every organization needs to figure out how to foster creativity. If you&#8217;re as rich as Google, you can afford to &#8220;just try a lot of stuff and see what sticks&#8221;. But the vast majority of &#8230; <a href="http://blog.davebouwman.com/2011/01/18/fostering-creativity-internal-incubators/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=12&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;">In order to stay relevant, every organization needs to figure out how to foster creativity. If you&#8217;re as rich as Google, you can </span><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;">afford to &#8220;just try a lot of stuff and see what sticks&#8221;.</span><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;"> But the vast majority of organizations simply can&#8217;t . So, what can we do?<br /></span></p>
<p />
<div><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;">Let&#8217;s start with a cautionary tale&#8230; </span></div>
<p />
<div><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;">I recall a few years back when a VP of the company I was working for dropped by our office, and simply stated that he needed our team (of 5) to come up with a new line of business that would generate $1 million or more in revenue in the next 12 months. Oh, and we still needed to be 100% billable, and if we could have the outline of this ready later that week, that would be great. </span></div>
<p />
<div><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;">This was followed by an awkward silence as my team and I tried not to laugh at him. </span><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;">We  all said we&#8217;d keep him in the loop should anything occur to us. In  other directly related events, we had all left the company and joined  DTS within months.</span></div>
<p />
<div><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;">So, if that&#8217;s a prime example of what not to do, what&#8217;s a better model for fostering creativity / innovation that can actually be implemented in a &#8220;normal&#8221; business environment? Well, I&#8217;ll say it starts with the culture. </span></div>
<p />
<div><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;">Despite having a corporate slogan which included all sorts of  corporate-speak espousing high-minded values, the general culture of the organization was &#8220;duck and  cover&#8221;. Actual innovation was seen as costly and unpredictable, and was  likely to get you in some sort of trouble. Unless of course it was  demanded you lay a golden egg. Crazytown. </span></div>
<p />
<div><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;">At DTS we have a culture that values being technology leaders. Since we take our culture seriously and hire based on how people fit with the culture, a lot of our staff are constantly creating on their own time. This is great &#8211; the first step in fostering innovation! The challenge is transforming these little idea seeds into full-fledged products / services and doing so in a way that rewards those involved. <br /></span></div>
<p />
<p><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;">This is where you come in &#8211; how does your organization foster (or hinder) technical innovation and creativity? Care to share your ideas on how small organizations can move from these &#8220;idea seeds&#8221; into something more substantial? </span></p>
<p><span style="border-collapse:separate;color:#000000;font-family:Arial;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0;font-size:14pt;">Some ideas I&#8217;ve been considering are related to creating an internal &#8220;incubator&#8221;, and commiting the company to a certain number of projects per-year. This would seem to get us past the &#8220;idea seed&#8221; stage, and to a point where we&#8217;d be better informed re: making a more substantial investment. I&#8217;d love to hear from anyone who&#8217;s done this sort of thing.<br /></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbouwman.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbouwman.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbouwman.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbouwman.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbouwman.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbouwman.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbouwman.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbouwman.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbouwman.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbouwman.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbouwman.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbouwman.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbouwman.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbouwman.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=12&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.davebouwman.com/2011/01/18/fostering-creativity-internal-incubators/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4bfa0a5e4a4e45219a80f9c3cfd6f6?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">dbouwman</media:title>
		</media:content>
	</item>
		<item>
		<title>Scott Hanselman at Esri Dev Meetup in Portland this Thursday!</title>
		<link>http://blog.davebouwman.com/2010/12/06/scott-hanselman-at-esri-dev-meetup-in-portland-this-thursday/</link>
		<comments>http://blog.davebouwman.com/2010/12/06/scott-hanselman-at-esri-dev-meetup-in-portland-this-thursday/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 05:36:00 +0000</pubDate>
		<dc:creator>Dave Bouwman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dbouwman.wordpress.com/2010/12/06/scott-hanselman-at-esri-dev-meetup-in-portland-this-thursday</guid>
		<description><![CDATA[So, although I&#8217;m generally opposed to the grey weariness of the North West at this time of year, this is one event for which I wish I was a local. One of my personal nerd-heroes, Scott Hanselman, will be giving &#8230; <a href="http://blog.davebouwman.com/2010/12/06/scott-hanselman-at-esri-dev-meetup-in-portland-this-thursday/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=20&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So, although I&#8217;m generally opposed to the grey weariness of the North  West at this time of year, this is one event for which I wish I was a  local. One of my personal nerd-heroes, <a href="http://hanselman.com/">Scott Hanselman</a>, will be giving the opening talk at the <a href="http://www.meetup.com/DevMeetUpOregon/calendar/15354143/">Esri Developer Meetup in Portland</a> on Thursday Dec 9th 2010.&nbsp;</p>
<p>For anyone who does not know of Scott, he&#8217;s been blogging about .NET  and development since forever and if you&#8217;ve ever Googled anything about  ASP.NET or C#, you&#8217;ve likely read his stuff. He has also co-authored big  ass books on <a href="http://www.amazon.com/gp/product/0470502207?ie=UTF8&amp;ref_=sr_1_1&amp;s=books&amp;qid=1270496811&amp;sr=1-1&amp;linkCode=shr&amp;camp=213733&amp;creative=393185&amp;tag=diabeticbooks">ASP.NET</a>&nbsp;and <a href="http://www.amazon.com/gp/product/0470643188?ie=UTF8&amp;tag=diabeticbooks&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470643188">ASP.NET MVC</a>.&nbsp;In 2006 he started <a href="http://www.hanselminutes.com/">Hanselminutes</a>, an awesome no-bs .NET Developer podcast that made me get an iPod. He&#8217;s now a Microsoftie, and regularly posts about<a href="http://www.hanselman.com/blog/CategoryView.aspx?category=ASP.NET+MVC"> ASP.NET MVC</a>,  community and all things related to the &#8220;awesomer&#8221; side of Microsoft &#8211;  as in he christened &#8220;Entity Framwork 4 &#8220;Code-First&#8221; (pure-awesome by the  way) &nbsp;as <a href="http://www.hanselman.com/blog/SimpleCodeFirstWithEntityFramework4MagicUnicornFeatureCTP4.aspx">&#8220;Magic Unicorn Edition&#8221;</a>. He&#8217;s also a total tech geek and posts tons of <a href="http://www.hanselman.com/blog/CategoryView.aspx?category=Reviews">reviews </a>of all sorts of gadgets, in addition to the parts list and build details for the <a href="http://www.hanselman.com/blog/TheCodingHorrorUltimateDeveloperRigThrowdownPart2.aspx">Ultimate Developer Rig</a> (which I&#8217;m running) and the <a href="http://www.hanselman.com/blog/UltimateDeveloperPC20Part1BuildingAWEI79AndRFCForBuildingAGOMGodsOwnMachine.aspx">WEI7.9 six-core super rig</a>&nbsp;(next on our build list). Speaking of building a box &#8211; if you&#8217;re wondering what to load up, check out <a href="http://www.hanselman.com/blog/ScottHanselmans2009UltimateDeveloperAndPowerUsersToolListForWindows.aspx">Scott&#8217;s Ultimate Tool List</a>.&nbsp;</p>
<p>And, for all 3 of you who may not have heard about &#8220;<a href="http://thisdeveloperslife.com/">This Developer&#8217;s Life</a>&#8220;, Scott and <a href="http://blog.wekeroad.com/">Rob Conery</a> (also a nerd-hero of mine) have a new podcast that&#8217;s tearing up the  ratings in iTunes. It&#8217;s like &#8220;This American Life&#8221;, but oriented around  stories about developers &#8211; not &#8220;code-stories&#8221; but stories from the lives  of developers. He also <a href="http://www.hanselman.com/blog/CategoryView.aspx?category=Speaking">speaks</a>&nbsp;(link  to a mess of videos)&nbsp;all over the world, so I&#8217;d expect his presentation  to be slick, funny and you&#8217;ll leave smarter.&nbsp;With all this going on,  some question <a href="http://www.hanselman.com/blog/DoISleep.aspx">whether he actually sleeps</a>.  I don&#8217;t have the answer to that, but I sure as hell wish I was able to  attend this event, if only to thank Scott in person for sharing so much  stuff and inspiring me to try to do the same. If you&#8217;re lucky enough to  be in the area, you can get more details on the <a href="http://www.meetup.com/DevMeetUpOregon/calendar/15354143/">Developer Meetup</a> page.&nbsp;</p>
<p>(Oh, and someone please stream or record this! Thanks!)</p>
<p>oops! &#8211; I originally posted this on my <a href="http://smallbites.posterous.com">&#8220;random stuff&#8221;</a> blog instead of here&#8230; my bad!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbouwman.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbouwman.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbouwman.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbouwman.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbouwman.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbouwman.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbouwman.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbouwman.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbouwman.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbouwman.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbouwman.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbouwman.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbouwman.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbouwman.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=20&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.davebouwman.com/2010/12/06/scott-hanselman-at-esri-dev-meetup-in-portland-this-thursday/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4bfa0a5e4a4e45219a80f9c3cfd6f6?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">dbouwman</media:title>
		</media:content>
	</item>
		<item>
		<title>GeoGlobalDomination Gets a Home</title>
		<link>http://blog.davebouwman.com/2010/11/29/geoglobaldomination-gets-a-home/</link>
		<comments>http://blog.davebouwman.com/2010/11/29/geoglobaldomination-gets-a-home/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 03:31:00 +0000</pubDate>
		<dc:creator>Dave Bouwman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[GeoGlobalDomination]]></category>

		<guid isPermaLink="false">http://dbouwman.wordpress.com/2010/11/29/geoglobaldomination-gets-a-home</guid>
		<description><![CDATA[That&#8217;s right &#8211; GeoGlobalDomination now has a home&#8230; or at least a place where people can post upcoming geofestivities for all to see (and possibly attend!). &#160; Ok, the site is really more of an experiment with a variety of &#8230; <a href="http://blog.davebouwman.com/2010/11/29/geoglobaldomination-gets-a-home/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=21&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s right &#8211; <a href="http://geoglobaldomination.com">GeoGlobalDomination </a>now has a home&#8230; or at least a place where people can post upcoming geofestivities for all to see (and possibly attend!).
<div class='p_embed p_image_embed'>
<a href="http://dbouwman.files.wordpress.com/2010/11/ggd-pre-launch-scaled1000.png"><img alt="Ggd-pre-launch" height="538" src="http://dbouwman.files.wordpress.com/2010/11/ggd-pre-launch-scaled1000.png?w=500&#038;h=538" width="500" /></a>
</div>
</p>
<p>&nbsp;</p>
<p>Ok, the site is really more of an experiment with a variety of technologies than anything else, but thanks to Don Meltz it has a kick ass domain name. I had *hoped* to get some time to further the site this weekend, but  unlike the last 10 years, Thanksgiving snow conditions were great, so I  spent most of the weekend at Winter Park and not at my keyboard&#8230;</p>
<p>What technologies you ask? Well, it&#8217;s currently using the following goodies:</p>
<ul>
<li><a href="http://www.asp.net/mvc">ASP.NET MVC 2</a> (moving to 3 shortly &#8211; and may throw some Razor in just for good measure)</li>
<li>Entity Framework Code-First (officially <a href="http://blogs.msdn.com/b/adonet/archive/2010/07/14/ctp4announcement.aspx">EF 4 CTP 4</a>, but the cool kids know it as <a href="http://www.hanselman.com/blog/SimpleCodeFirstWithEntityFramework4MagicUnicornFeatureCTP4.aspx">&#8220;magic unicorn&#8221;</a>)</li>
<li><a href="https://github.com/stevehodgkiss/restful-routing">Restful Routing</a> &#8211; rails inspired routing for ASP.NET MVC</li>
<li><a href="http://html5boilerplate.com/">HTML5 Boilerplate</a> &#8211; exactly what it sounds like</li>
<li><a href="http://www.modernizr.com/">Modernizr</a> &#8211; javascript shiv++ for making all browsers play nice with HTML5 tags and CSS3</li>
<li>@font-face goodness for the manifesto</li>
<li><a href="http://code.google.com/p/autofac/">Autofac</a> &#8211; Dependency Injection cuz&#8217; you just know you love it</li>
<li>CloudMade <a href="http://developers.cloudmade.com/projects/web-maps-api/examples">Web Maps Lite</a> (with Midnigh Commander!)</li>
<li>Project structure and rails inspired html helpers riffed from Rob Conery&#8217;s <a href="http://mvcstarter.codeplex.com/">MVCStarter</a></li>
</ul>
<p>I&#8217;ve also got some hacky OAuth stuff in there that I will be swapping out for DotNetOAuth as soon as possible.</p>
<p><strong><span style="font-size:medium;">Bugs!</span></strong></p>
<p>Doh! Nothing like launching something (even as silly as this) only to hit some bugs right out of the gate!</p>
<p><strong>Description: yellow screen when logging in via twitter</strong></p>
<p>From what I can tell this is an artifact of a)&nbsp; running a CTP (essentially a pre-beta) of the code-first stuff and b) not reading quite enough about it. Should be a quick fix, but can&#8217;t do it remotely.</p>
<p><strong>Description: Messed up fonts on Mac &amp; iPad</strong></p>
<p>I&#8217;m using a custom web font, based on the open source font &#8220;League Gothic&#8221;. I used FontSquirrel.com to convert the TTF into the various web font formats, as well as cook the @font-face CSS. And this works for Safari/Firefox/Chrome (and IE8) on Windows, it does not work for Safari on OSX (Mac) or iOS (iPad &amp; iPhone). After some digging, it seems that these browser/OS combos want the web font in SVG format. FontSquirrel.com creates this for you, BUT, you need to ensure that the server is sending not ONLY the svg file, but the correct mime type (&#8220;svg-xml&#8221; in case you were wondering). Anyhow, this has been sorted out and verified on an iPad.</p>
<p><strong><span style="font-size:medium;">Coming Soon</span></strong>&#8230;</p>
<p>As I noted on Twitter, this was just the first drop. Here&#8217;s what else is on the list&#8230;</p>
<p><strong>Better Ux in Plan an Operation screen</strong></p>
<p>This screen &#8220;works&#8221; but it needs more polish. Required field validation, disambiguation dialog when the geocoding comes back with multiple hits, make it obvious that you can move the marker to more accurately show the location of the venue. etc etc.</p>
<p><strong>Maps</strong></p>
<p>CloudMade&#8217;s WebMapsLite is cool and really easy to use (great example documention) but Polymaps is the up and coming deal, and since we&#8217;re all seeking &#8220;geoglobaldomination&#8221;&#8230; you get the idea. Since Polymaps does not play nice with all browsers, the CloudMade control will be the fallback. And since some people were asking about the &#8220;GIS backend&#8221; for this &#8211; it&#8217;s a table with Lat &amp; Lon <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><strong>Support for IE8 and IE9</strong></p>
<p>There currently is a bug with IE8 and the map on the main page. I think it&#8217;s just a timing thing with the order the scripts are loading, but anyhow, I&#8217;ll get this working and allow the IE8 yahoos into the mix. I will be making the IE6 &amp; 7 page less diplomatic as well (hehehe!)</p>
<p><strong>List / Map interaction on the Upcoming Opearations page</strong></p>
<p>This is also simple, but just needs to get done. When you mouse over an event in the list, the map should zoom to it.</p>
<p><strong>Mobile Mobile Mobile</strong></p>
<p>The good thing about #GeoGlobalDomination is that it gets us out, and away from our computers. Thus a mobile version is needed. I&#8217;m basically waiting for jQuery Mobile to be a little more stable, but will likely jump on this sooner rather than later. As usual the mobile mapping is going to be the kicker, so to start it will likely be a &#8220;read-only&#8221; application &#8211; listing events, and showing a map on the &#8220;detail&#8221; view. Also, for the 5 of you rocking the WP7, you&#8217;re on your own. I&#8217;m not getting a WP7 device to test on, and who knows what variation of IE6/7/8/9 it ships with. Hopefully it works&#8230;</p>
<p>So that&#8217;s about it. If you have some other ideas, use the contact page (I guess that should also be on the coming soon list!) Hopefully this gets some actual use and good things come of it. If not, I&#8217;m having fun playing with this stuff in the evenings!</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbouwman.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbouwman.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbouwman.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbouwman.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbouwman.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbouwman.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbouwman.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbouwman.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbouwman.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbouwman.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbouwman.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbouwman.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbouwman.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbouwman.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=21&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.davebouwman.com/2010/11/29/geoglobaldomination-gets-a-home/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4bfa0a5e4a4e45219a80f9c3cfd6f6?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">dbouwman</media:title>
		</media:content>

		<media:content url="http://dbouwman.files.wordpress.com/2010/11/ggd-pre-launch-scaled1000.png?w=279" medium="image">
			<media:title type="html">Ggd-pre-launch</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails IDE on Windows</title>
		<link>http://blog.davebouwman.com/2010/10/13/rails-ide-on-windows/</link>
		<comments>http://blog.davebouwman.com/2010/10/13/rails-ide-on-windows/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 13:40:00 +0000</pubDate>
		<dc:creator>Dave Bouwman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://dbouwman.wordpress.com/2010/10/13/rails-ide-on-windows</guid>
		<description><![CDATA[I got a few questions regarding the IDE (integrated development environment) that I&#8217;m using for Rails on Windows. While I did download Aptana Studio 3, I felt that to get a solid handle on Ruby and Rails, I should work &#8230; <a href="http://blog.davebouwman.com/2010/10/13/rails-ide-on-windows/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=34&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I got a few questions regarding the IDE (integrated development environment) that I&#8217;m using for Rails on Windows.</p>
<p>While I did download Aptana Studio 3, I felt that to get a solid handle on Ruby and Rails, I should work &#8220;without a net&#8221; so to speak.</p>
<p>Thus, I&#8217;m using Notepad++ with the Explorer plugin to edit files, along with the command line to run rails commands
<div class='p_embed p_image_embed'>
<a href="http://dbouwman.files.wordpress.com/2010/10/npp-scaled1000.png"><img alt="Npp" height="436" src="http://dbouwman.files.wordpress.com/2010/10/npp-scaled1000.png?w=500&#038;h=436" width="500" /></a>
</div>
</p>
<p>The main benefits of this setup are that I&#8217;m actually learning the framework as opposed to learning some tooling. Sure, there is no &#8220;free lunch&#8221; with NotePad++ &#8211; it&#8217;s a basic editor, with code&nbsp;hi-lighting, but that&#8217;s pretty much what you get with TextMate before adding in all the bundles.</p>
<p>The kicker here is that you need to be able to write clean html/css/javascript without the help of code&nbsp;completion. I&#8217;d expect that most web developers coming from ASP.NET MVC would be in this boat, but those coming from ASP.NET&#8217;s &#8220;drag &amp; drop&#8221; <span style="text-decoration:line-through;">hell</span> nirvana may want to have a few books handy or use something a little heavier (like Aptana)</p>
<p>Is this the best RoR editor for windows? Doubtful, but for learning, I think it&#8217;s a great option.&nbsp;</p>
<p><a href="http://notepad-plus-plus.org/download">Notepad++ Download</a></p>
<p><a href="http://sourceforge.net/projects/npp-plugins/files/">Notepad++ Plugin Download</a></p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbouwman.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbouwman.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbouwman.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbouwman.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbouwman.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbouwman.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbouwman.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbouwman.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbouwman.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbouwman.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbouwman.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbouwman.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbouwman.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbouwman.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=34&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.davebouwman.com/2010/10/13/rails-ide-on-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4bfa0a5e4a4e45219a80f9c3cfd6f6?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">dbouwman</media:title>
		</media:content>

		<media:content url="http://dbouwman.files.wordpress.com/2010/10/npp-scaled1000.png?w=300" medium="image">
			<media:title type="html">Npp</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Rails?</title>
		<link>http://blog.davebouwman.com/2010/10/11/why-rails/</link>
		<comments>http://blog.davebouwman.com/2010/10/11/why-rails/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 14:17:00 +0000</pubDate>
		<dc:creator>Dave Bouwman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://dbouwman.wordpress.com/2010/10/11/why-rails</guid>
		<description><![CDATA[Recently I&#8217;ve been waxing about Rails on Twitter, which prompted this question&#8230; Curious&#8230; why rails? I was looking at it earlier and it just seems like another scripting language for the web. Whassup? What am I missing? Since it would &#8230; <a href="http://blog.davebouwman.com/2010/10/11/why-rails/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=35&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been waxing about <a href="http://rubyonrails.org/">Rails</a> on Twitter, which prompted this question&#8230;</p>
<blockquote class="posterous_short_quote">
<p>Curious&#8230; why rails? I was looking at it earlier and it just seems like another scripting language for the web. Whassup? What am I missing?</p>
</blockquote>
<p>Since it would be impossible to answer this in char(140), I thought I&#8217;d throw up a quick post.</p>
<p>Preface: I&#8217;m a .NET guy, focused on web development using ASP.NET MVC. I&#8217;m still very new to Ruby, but the &#8220;zen&#8221; of Rails is something that &#8220;just makes sense&#8221; coming from MVC. Rails is like ASP.NET MVC, but will a lot less busy work.</p>
<p>Start at the start: Rails is a web framework built on Ruby.</p>
<p>Ok, but there are lots of web frameworks, why should I get excited about Rails?</p>
<p>Rails has strong opinions about how things *should* be done, and for the vast majority of cases, these opinions are spot on. When you do things the way Rails wants you to, development just gets supremely simplified. Instead of spending time doing repetitive, boring tasks, like mapping objects and properties to tables and columns, Rails simply &#8220;does it&#8221;. By relying heavily on conventions, Rails allows the developer to focus on making the application great, rather than worrying about how specific changes will impact / break the data access layer. In short, Rails makes 90% of your database integration &#8220;go away&#8221;. It&#8217;s just handled.</p>
<p>That alone is cool, but this philosophy extends across the entire Rails framework and developer experience. Over the years the Rails community has been removing &#8220;pain points&#8221; and making the entire experience smoother and smoother. In a nutshell &#8211; Rails streamlines all aspects web applications, thus making things &#8220;fun&#8221; again.</p>
<p>For example &#8211; I&#8217;ve been cooking up a little side project (more on this later). I started in ASP.NET MVC, with the intent of learning NHibernate. After about 5 evenings worth of work I was still banging my head trying to get some simple database mappings working. On the 6th evening, I installed Rails, migrated the &#8220;master page&#8221; to a &#8220;layout&#8221;, created all the controllers, views and database, seeded the database and wrote a mess of unit tests. Basically I had the &#8220;core&#8221; of the app up and running, in ~3 hours.</p>
<p>And thats &#8220;Why Rails&#8221; <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbouwman.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbouwman.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbouwman.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbouwman.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbouwman.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbouwman.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbouwman.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbouwman.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbouwman.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbouwman.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbouwman.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbouwman.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbouwman.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbouwman.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.davebouwman.com&amp;blog=14377016&amp;post=35&amp;subd=dbouwman&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.davebouwman.com/2010/10/11/why-rails/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4bfa0a5e4a4e45219a80f9c3cfd6f6?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">dbouwman</media:title>
		</media:content>
	</item>
	</channel>
</rss>
