<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>MapWrecker 2.0</title>
	<atom:link href="http://mapwrecker.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mapwrecker.wordpress.com</link>
	<description>AJAX, Maps, .NET, and Destruction</description>
	<lastBuildDate>Fri, 06 Mar 2009 15:07:06 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/8c7f1cdef6e1967b12e6d1ba643dd690?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>MapWrecker 2.0</title>
		<link>http://mapwrecker.wordpress.com</link>
	</image>
			<item>
		<title>Using SQL-Geometry with SSIS Import/Export Tasks</title>
		<link>http://mapwrecker.wordpress.com/2009/03/06/using-sql-geometry-with-ssis-importexport-tasks/</link>
		<comments>http://mapwrecker.wordpress.com/2009/03/06/using-sql-geometry-with-ssis-importexport-tasks/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 15:07:06 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=129</guid>
		<description><![CDATA[I know I shouldn&#8217;t be looking at these things before coffee.  Still, when a SQL Import task complained about my Geometry column type, I tried to fix this.
I editted my &#8220;C:\Program Files\Microsoft SQL Server\100\DTS\MappingFiles\MSSQLToSSIS10.XML&#8221; file, duplicating the entry for varbinary(max), but changing the data type name to &#8220;geometry.&#8221;
Bingo.  Everything now seems to copy fine.
  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=129&subd=mapwrecker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I know I shouldn&#8217;t be looking at these things before coffee.  Still, when a SQL Import task complained about my Geometry column type, I tried to fix this.</p>
<p>I editted my &#8220;C:\Program Files\Microsoft SQL Server\100\DTS\MappingFiles\MSSQLToSSIS10.XML&#8221; file, duplicating the entry for varbinary(max), but changing the data type name to &#8220;geometry.&#8221;</p>
<p>Bingo.  Everything now seems to copy fine.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/129/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=129&subd=mapwrecker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2009/03/06/using-sql-geometry-with-ssis-importexport-tasks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Palm Springs Hotels?</title>
		<link>http://mapwrecker.wordpress.com/2009/02/18/palm-springs-hotels/</link>
		<comments>http://mapwrecker.wordpress.com/2009/02/18/palm-springs-hotels/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 21:15:37 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=123</guid>
		<description><![CDATA[I&#8217;m attending the ESRI Developers Conference for the first time ever, and was hunting for hotel suggestions.  There are comments on James Fee&#8217;s blog from last year that recommend Zoso over the Wyndham.  TripAdvisor skews towards the tiny romatic places&#8230; any recommandations on a cheaper place for the barely-under 30 crowd?
     [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=123&subd=mapwrecker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m attending the ESRI Developers Conference for the first time ever, and was hunting for hotel suggestions.  There are <a href="http://www.spatiallyadjusted.com/2008/01/14/esri-business-bpdev-summit-hotels-sold-out/">comments on James Fee&#8217;s blog</a> from last year that recommend Zoso over the Wyndham.  <a href="http://www.tripadvisor.com/Hotels-g32847-Palm_Springs_California-Hotels.html">TripAdvisor</a> skews towards the tiny romatic places&#8230; any recommandations on a cheaper place for the barely-under 30 crowd?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=123&subd=mapwrecker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2009/02/18/palm-springs-hotels/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Awesome Job in Fort Collins, CO</title>
		<link>http://mapwrecker.wordpress.com/2008/12/18/awesome-job-in-fort-collins-co/</link>
		<comments>http://mapwrecker.wordpress.com/2008/12/18/awesome-job-in-fort-collins-co/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 14:48:13 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=118</guid>
		<description><![CDATA[Earn ~$70k, 5 weeks vacation, 3 weeks sick, with awesome people, for a good cause (the National Parks Service).  Take my old job.  Deadline is the 22nd.
http://www.cemml.colostate.edu/Jobs/351.pdf
Please forward / link this post!!
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=118&subd=mapwrecker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Earn ~$70k, 5 weeks vacation, 3 weeks sick, with awesome people, for a good cause (the National Parks Service).  Take my old job.  Deadline is the 22nd.</p>
<p><a href="http://www.cemml.colostate.edu/Jobs/351.pdf" target="_blank">http://www.cemml.colostate.edu/Jobs/351.pdf</a></p>
<p>Please forward / link this post!!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/118/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=118&subd=mapwrecker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2008/12/18/awesome-job-in-fort-collins-co/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Google&#8217;s &#8220;Native Client&#8221; Browser Plugin</title>
		<link>http://mapwrecker.wordpress.com/2008/12/10/googles-native-client-browser-plugin/</link>
		<comments>http://mapwrecker.wordpress.com/2008/12/10/googles-native-client-browser-plugin/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 22:10:33 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=115</guid>
		<description><![CDATA[The blogs are abuzz today with Google&#8217;s new cross-browser, cross-platform plugin that allows native x86 code to be run from a browser with minimal code tweaking.
Called Native Client, its complete with sandboxing, Javascript interop, a Quake demo and &#8230;  Yet Another Globe Application!!

This really escalates the Javascript / Flash / Silverlight wars&#8230;. x86?!
Hello OpenGL, goodbye [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=115&subd=mapwrecker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The blogs are abuzz today with Google&#8217;s new cross-browser, cross-platform plugin that allows native x86 code to be run from a browser with minimal code tweaking.</p>
<p>Called <a href="http://code.google.com/p/nativeclient/">Native Client</a>, its complete with sandboxing, Javascript interop, a Quake demo and &#8230;  <strong>Yet Another Globe Application!!</strong></p>
<p><img class="alignnone size-full wp-image-116" title="naclapp" src="http://mapwrecker.files.wordpress.com/2008/12/naclapp.jpg?w=450&#038;h=469" alt="naclapp" width="450" height="469" /></p>
<p>This really escalates the Javascript / Flash / Silverlight wars&#8230;. x86?!</p>
<p>Hello OpenGL, goodbye vector drawing performance woes.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=115&subd=mapwrecker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2008/12/10/googles-native-client-browser-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>

		<media:content url="http://mapwrecker.files.wordpress.com/2008/12/naclapp.jpg" medium="image">
			<media:title type="html">naclapp</media:title>
		</media:content>
	</item>
		<item>
		<title>Persisting Model State with JSON</title>
		<link>http://mapwrecker.wordpress.com/2008/12/08/persisting-model-state-with-json/</link>
		<comments>http://mapwrecker.wordpress.com/2008/12/08/persisting-model-state-with-json/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 17:26:23 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Thin Clients]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=109</guid>
		<description><![CDATA[I&#8217;m departing from my normal show a lot of code methods here, to talk about an idea.
ASP.NET MVC denegrates ASP.NET Web Form&#8217;s old state-maintenance construct called Viewstate.  Without Viewstate, many developers are wondering how &#8212; more aptly where &#8212; to preserve the state of a web-application.  Here I will be explaining my favored answer &#8212; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=109&subd=mapwrecker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m departing from my normal <em>show a lot of code</em> methods here, to talk about an idea.</p>
<p>ASP.NET MVC denegrates ASP.NET Web Form&#8217;s old state-maintenance construct called Viewstate.  Without Viewstate, many developers are wondering how &#8212; more aptly where &#8212; to preserve the state of a web-application.  Here I will be explaining my favored answer &#8212; serializing your model to JSON &#8212; and showing why.</p>
<h3>SOME HISTORY</h3>
<p>In ASP.NET Web Forms, page state was stored within a highly compressed, encrypted hidden form field.  This allowed .NET web developers to persist the state of the GUI controls with little-to-no effort.  Unfortunately, AJAX came along.  AJAX developers found ASP.NET Web Forms didn&#8217;t play nicely at all; and that since Viewstate was encoded, AJAX developers couldn&#8217;t easily work-around ASP.NET Web Forms limitations.</p>
<h3>ASP.NET MVC</h3>
<p>The Model-View-Controller architectural pattern could easily be called the state/GUI/event-handler pattern.  Personally, I feel that most ASP.NET MVC examples nail showing off the Controller, and by proxy do a pretty alright job showing off the View.  But simple examples often have simple domain logic, and hence the Model and state-maintenance has been largely ignored.  This is important to note, because HTTP is a stateless protocol, yet the MVC pattern was designed for persistantly stated desktop applications.</p>
<p><em>&#8220;The <strong>model</strong> manages the behavior and data of the application domain, responds to requests for information about its state (usually from the view), and responds to instructions to change state (usually from the controller).&#8221; &#8211; </em>Steve Burbeck, from the paper first describing MVC</p>
<h3>STATE MAINTANENCE IN MVC</h3>
<p>Given the statesless nature of HTTP, most ASP.NET MVC examples imply that the Model is little more than a &#8220;page model&#8221; with some supporting domain logic.  For the Model to act across multiple pages, we must persist that model between page requests&#8230; and we have options&#8230; databases, mutiple hidden form fields, sessions, cookies, etc..</p>
<p>The common denominator is that each page request must somehow reconnect to its Model.  In many cases, the Model &#8212; or at least the current pertinant chunk of the Model &#8212; is small enough to reasonably be persisted with each page, much as Viewstate was.   The huge advantage to custom Model persistance  comes in saving the Model to a hidden-form-field in the form of Javascript Object Notation, or JSON.  Using JSON means that not only will the Model be persisted, it will also be available for AJAX developers to update without full-page-postback.</p>
<h3><strong>ISN&#8217;T PUTTING THE MODEL IN THE VIEW BAD?</strong></h3>
<p>Considering the alternatives, no.  Sure, persisting the Model to a database would have some security benefits &#8212; at the expense of connection overhead.  Sessions or cookies work as well &#8212; with their own known limitations.  You could also &#8212; God forbid &#8212; break your model into little bits and persist each one as necessary.   Let me say this is the WORST possible thing you could do, because it requires the View to know the entire Model to do its job.  The code to serialize to JSON is the same for any object you throw at it, and changes to the Model won&#8217;t have to be duplicated in each View.</p>
<h3>CONCLUSION</h3>
<p>Of course, there are limitations to persisting your Model via JSON.  HTTP Get/Post have character limitations you must consider.  You will want to validate your model on each page post.  Overall, however, the benefit to AJAX developers outweighs the security awareness necessary to implement this state-management architecture, and prevents your ASP.MVC architectures from falling into the rut of &#8220;page-state&#8221;.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=109&subd=mapwrecker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2008/12/08/persisting-model-state-with-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>SwitchProxy Firefox Extension</title>
		<link>http://mapwrecker.wordpress.com/2008/12/02/switchproxy-firefox-extension/</link>
		<comments>http://mapwrecker.wordpress.com/2008/12/02/switchproxy-firefox-extension/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 22:27:29 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=104</guid>
		<description><![CDATA[I&#8217;m not sure why its taken this long, but I finally looked for a Firefox extension that does proxy switching.  Its called SwitchProxy.  Now I can easily enable Fiddler or bypass the annoying DOI web filters preview my websites as an outside user would.  Check it out:

       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=104&subd=mapwrecker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m not sure why its taken this long, but I finally looked for a Firefox extension that does proxy switching.  Its called <a href="https://addons.mozilla.org/en-US/firefox/addon/125">SwitchProxy</a>.  Now I can easily enable <a href="http://www.fiddlertool.com/fiddler/">Fiddler</a> or <span style="text-decoration:line-through;">bypass the annoying DOI web filters</span> preview my websites as an outside user would.  <a href="https://addons.mozilla.org/en-US/firefox/addon/125">Check it out</a>:</p>
<p><a href="http://mapwrecker.files.wordpress.com/2008/12/switchproxy.gif"><img class="alignnone size-full wp-image-105" title="switchproxy" src="http://mapwrecker.files.wordpress.com/2008/12/switchproxy.gif?w=218&#038;h=199" alt="switchproxy" width="218" height="199" /></a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/104/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=104&subd=mapwrecker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2008/12/02/switchproxy-firefox-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>

		<media:content url="http://mapwrecker.files.wordpress.com/2008/12/switchproxy.gif" medium="image">
			<media:title type="html">switchproxy</media:title>
		</media:content>
	</item>
		<item>
		<title>Fast unknown method invocation for loose coupling</title>
		<link>http://mapwrecker.wordpress.com/2008/11/26/fast-unknown-method-invocation-for-loose-coupling/</link>
		<comments>http://mapwrecker.wordpress.com/2008/11/26/fast-unknown-method-invocation-for-loose-coupling/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 18:18:45 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=101</guid>
		<description><![CDATA[I was recently tasked to refactor a WinForms application. Now familiar with ASP.NET MVC, I wondered how easy it would be to apply existing ASP.NET MVC constructs to WinForms.  Implementing an IController is easy enough, but there&#8217;s still the matter of loose coupling within the IController&#8217;s execute method.
I&#8217;ve previously shown using reflection to allow loosely-coupled [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=101&subd=mapwrecker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I was recently tasked to refactor a WinForms application. Now familiar with ASP.NET MVC, I wondered how easy it would be to apply existing ASP.NET MVC constructs to WinForms.  Implementing an <a href="http://en.wikipedia.org/wiki/Front_controller">IController</a> is easy enough, but there&#8217;s still the matter of loose coupling within the IController&#8217;s execute method.</p>
<p>I&#8217;ve previously shown using <a href="http://mapwrecker.wordpress.com/2008/11/19/ags-soes-without-the-soap/">reflection to allow loosely-coupled method invocation in ArcGIS Server Object Extensions</a>, but reflection is <a href="http://msdn.microsoft.com/en-us/magazine/cc163759.aspx">wicked slow</a>.  I knew that people were writing <a href="http://www.codeproject.com/KB/cs/Dynamic_Code_Generation.aspx">ORM binding</a> using <a href="http://en.wikipedia.org/wiki/Common_Intermediate_Language">IL op-codes</a>, and I figured that Microsoft had done something similar for ASP.NET MVC.</p>
<p>It turns out that LINQ expressions can be compiled into IL op-codes and that <a href="http://www.nablasoft.com/alkampfer/index.php/2008/10/06/faster-invoke-method-of-unknown-objects-with-expression-tree-part2/">people</a> are <a href="http://ergonlabs.com/Posts/LINQ-Expressions-as-Fast-Reflection-Invoke/3/">doing it</a> to invoke unknown code quickly, without reflection.  No need to fire up <a href="http://www.red-gate.com/products/reflector/">Reflector</a> to see Microsoft&#8217;s <em><span style="color:#339966;"><span style="color:#000000;">worth seeing</span> </span></em>LINQ implemenation, you can simply <a href="https://aspnet.svn.codeplex.com/svn/MVC/src/SystemWebMvc/Mvc/ActionMethodDispatcher.cs">check CodePlex</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=101&subd=mapwrecker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2008/11/26/fast-unknown-method-invocation-for-loose-coupling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Fast SQL&#8217;08 Geometry Insertion</title>
		<link>http://mapwrecker.wordpress.com/2008/11/25/fast-sql08-geometry-insertion/</link>
		<comments>http://mapwrecker.wordpress.com/2008/11/25/fast-sql08-geometry-insertion/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 16:32:58 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=96</guid>
		<description><![CDATA[If you&#8217;re inserting SQL&#8217;08 Native Spatial Datatypes into a brand new table, favor SqlBulkCopy over Insert. Its ridiculously faster. Below is some reduced code to show the basic idea:

// use minimal transaction logging during upload
new SqlCommand("alter database [" + dbName + "] SET RECOVERY BULK_LOGGED", connection).ExecuteNonQuery();

// create and a datatable of points
DataTable dt = new [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=96&subd=mapwrecker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you&#8217;re inserting SQL&#8217;08 Native Spatial Datatypes into a brand new table, favor SqlBulkCopy over Insert. Its ridiculously faster. Below is some reduced code to show the basic idea:</p>
<div style="overflow:scroll;text-align:left;">
<pre><code>// use minimal transaction logging during upload
new SqlCommand("alter database [" + dbName + "] SET RECOVERY BULK_LOGGED", connection).ExecuteNonQuery();

// create and a datatable of points
DataTable dt = new DataTable();
dt.Columns.Add("Shape", typeof(SqlGeometry));

// populate your SqlGeometry
dt = magicFunction_fillMyDataTableWithGeometry();

// copy data, use batches and tablelock to ensure small minimal transaction log sizes
using (SqlBulkCopy sbc = new SqlBulkCopy(connectionString(dbName), SqlBulkCopyOptions.TableLock))
{
    sbc.DestinationTableName = tableName;
    sbc.BatchSize = 10000;
    sbs.ColumnMappings.Add("Shape", "Shape");
    sbc.WriteToServer(dt);
    sbc.Close();
}

// use normal transaction logging after upload
new SqlCommand("alter database [" + dbName + "] SET RECOVERY FULL", connection).ExecuteNonQuery();
</code></pre>
</div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=96&subd=mapwrecker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2008/11/25/fast-sql08-geometry-insertion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>Using ProjNET for point reprojection</title>
		<link>http://mapwrecker.wordpress.com/2008/11/21/using-projnet-for-point-reprojection/</link>
		<comments>http://mapwrecker.wordpress.com/2008/11/21/using-projnet-for-point-reprojection/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 17:47:31 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=90</guid>
		<description><![CDATA[Are you &#8211; yes, you&#8211; firing up ArcObjects code just to do simple point reprojection?  Check out Proj.NET.  Grab the EPSG-code reader and point projection code from the very helpful FAQs and you&#8217;ll get something like this: [edit: fixed, thanks Morten ... definitely read the comments, this code was meant to show how easy things [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=90&subd=mapwrecker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Are you <em>&#8211; yes, you&#8211;</em> firing up ArcObjects code just to do simple point reprojection?  Check out <a href="http://www.codeplex.com/ProjNET">Proj.NET</a>.  Grab the <a href="http://www.codeplex.com/ProjNET/Wiki/View.aspx?title=LoadByID&amp;referringTitle=FAQ">EPSG-code reader</a> and <a href="http://www.codeplex.com/ProjNET/Wiki/View.aspx?title=CreateProjection&amp;referringTitle=FAQ">point projection</a> code from the very helpful <a href="http://www.codeplex.com/ProjNET/Wiki/View.aspx?title=FAQ&amp;referringTitle=Home">FAQs</a> and you&#8217;ll get something like this: <em>[edit: fixed, thanks Morten ... definitely read the comments, this code was meant to show how easy things could be... its definitely not the ProjNet best practices]</em></p>
<div style="overflow:scroll;text-align:left;">
<pre><code>public static double[] projectFromWgs84(double X, double Y, int destinationEpsgCode)
{
   double[] input = new double[] { X, Y };
   SC.ICoordinateSystem destProj = SridReader.GetCSbyID(destinationEpsgCode);
   SC.ICoordinateSystem sourceProj = SridReader.GetCSbyID(4236);
   SCT.CoordinateTransformationFactory ctf = new SCT.CoordinateTransformationFactory();
   SCT.IMathTransform xForm = ctf.CreateFromCoordinateSystems(sourceProj, destProj).MathTransform;
   return xForm.Transform(input);
}
</code></pre>
</div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/90/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=90&subd=mapwrecker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2008/11/21/using-projnet-for-point-reprojection/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>
	</item>
		<item>
		<title>AGS SOE&#8217;s without the SOAP</title>
		<link>http://mapwrecker.wordpress.com/2008/11/19/ags-soes-without-the-soap/</link>
		<comments>http://mapwrecker.wordpress.com/2008/11/19/ags-soes-without-the-soap/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 17:38:36 +0000</pubDate>
		<dc:creator>Bill Thorp</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ArcGIS Server]]></category>

		<guid isPermaLink="false">http://mapwrecker.wordpress.com/?p=87</guid>
		<description><![CDATA[Vish recently wrote about calling AGS SOEs via SOAP instead of DCOM.  He doesn&#8217;t mention that AGS doesn&#8217;t make you use SOAP, nor XML for that matter. This low-tech JSON-RPC invoker shows the proof-of-concept:

public string HandleStringRequest(string Capabilities, string request){
  MethodCall mc = JavaScriptConvert.DeserializeObject&#60;MethodCall&#62;(request);
  object result = this.GetType().GetMethod(mc.name).Invoke(this, mc.parameters);
  return JavaScriptConvert.SerializeObject(result);
}

public string test(string str1, string str2){
  return str1 + str2;
} 

class MethodCall{
  public string [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=87&subd=mapwrecker&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://viswaug.wordpress.com/">Vish</a> recently wrote about <a href="http://viswaug.wordpress.com/2008/09/30/exposing-arcgis-server-object-extensions-as-a-web-service-will-save-you-some-licenses/">calling AGS SOEs via SOAP instead of DCOM</a>.  He doesn&#8217;t mention that AGS doesn&#8217;t make you use SOAP, nor XML for that matter. This low-tech JSON-RPC invoker shows the proof-of-concept:</p>
<div style="overflow:scroll;width:100%;text-align:left;">
<pre><code>public string HandleStringRequest(string Capabilities, string request){
  MethodCall mc = JavaScriptConvert.DeserializeObject&lt;MethodCall&gt;(request);
  object result = this.GetType().GetMethod(mc.name).Invoke(this, mc.parameters);
  return JavaScriptConvert.SerializeObject(result);
}

public string test(string str1, string str2){
  return str1 + str2;
} 

class MethodCall{
  public string name;
  public object[] parameters;
}
</code></pre>
</div>
<p> Here&#8217;s an action shot&#8230;</p>
<p><a href="http://mapwrecker.files.wordpress.com/2008/11/fiddler.jpg"><img class="alignnone size-full wp-image-88" title="fiddler" src="http://mapwrecker.files.wordpress.com/2008/11/fiddler.jpg?w=232&#038;h=134" alt="fiddler" width="232" height="134" /></a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mapwrecker.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mapwrecker.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mapwrecker.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mapwrecker.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mapwrecker.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mapwrecker.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mapwrecker.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mapwrecker.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mapwrecker.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mapwrecker.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mapwrecker.wordpress.com&blog=920496&post=87&subd=mapwrecker&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mapwrecker.wordpress.com/2008/11/19/ags-soes-without-the-soap/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e68cbde5dbc158d8eceab62caa6fb19f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bill Thorp</media:title>
		</media:content>

		<media:content url="http://mapwrecker.files.wordpress.com/2008/11/fiddler.jpg" medium="image">
			<media:title type="html">fiddler</media:title>
		</media:content>
	</item>
	</channel>
</rss>