<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><description>Endquote is Josh Santangelo, an interface developer and former man-about-town in Seattle. Lately, he talks a lot about Silverlight, Surface, and Stimulant.

email: josh[a]endquote[.]comwork: stimulant.io</description><title>endquote</title><generator>Tumblr (3.0; @endquote)</generator><link>http://blog.endquote.com/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/endquote" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="endquote" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://tumblr.superfeedr.com/" /><item><title>About a year ago I sat down in the offices of the Surface team...</title><description>&lt;iframe width="400" height="225" src="http://www.youtube.com/embed/CUS5gBFa488?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;About a year ago I sat down in the offices of the &lt;a href="http://surface.com"&gt;Surface&lt;/a&gt; team to talk about the design and development processes that went into building the &lt;a href="http://stimulant.io/wp/index.php/blog/2011/09/microsoft-surface-live-stream/"&gt;Social Stream&lt;/a&gt; application. It took about that long to edit out all of the silly things I said down to 23 minutes of discussion of what it takes to build a quality app for Surface. The chat is presented in three parts &lt;a href="http://www.youtube.com/playlist?list=PL00747551AB7477E1&amp;feature=plcp"&gt;over on the Surface YouTube channel&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.endquote.com/post/20663585158</link><guid>http://blog.endquote.com/post/20663585158</guid><pubDate>Sat, 07 Apr 2012 11:36:56 -0700</pubDate></item><item><title>Recently, Stimulant was the first company to produce an...</title><description>&lt;iframe src="http://player.vimeo.com/video/28080245" width="400" height="225" frameborder="0"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Recently, Stimulant was the first company to produce an application for the &lt;a href="http://sifteo.com/"&gt;Sifteo&lt;/a&gt; platform outside of Sifteo themselves. We decided to create a simple music sequencing application which can be enjoyed by children and adults alike. The video above will give you the general idea. More over on the &lt;a href="http://stimulant.io/wp/index.php/blog/2011/08/looploop/"&gt;Stimulant blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It was really fun to work on an app for a platform that’s limited to 128x128 displays, 256 colors, but offers a bunch of new and novel interaction possibilities. The SDK is based on Mono, so I was able to use Visual Studio and C# to work very efficiently with familiar tools, even though it was a new environment.&lt;/p&gt;</description><link>http://blog.endquote.com/post/11077210936</link><guid>http://blog.endquote.com/post/11077210936</guid><pubDate>Wed, 05 Oct 2011 16:07:08 -0700</pubDate><category>sifteo</category><category>portfolio</category></item><item><title>Microsoft Local Impact Map v3</title><description>&lt;p&gt;Recently at &lt;a href="http://stimulant.io"&gt;Stimulant&lt;/a&gt; we launched a third version of the &lt;a href="http://microsoft.com/localimpactmap"&gt;Local Impact Map&lt;/a&gt; for Microsoft (&lt;a href="http://blog.endquote.com/post/204721203/updates-to-microsoft-local-impact-map"&gt;previously&lt;/a&gt;, &lt;a href="http://microsoft.com/LocalImpactMap"&gt;previously&lt;/a&gt;). The map is a tool to &amp;#8220;Explore the positive impact of local programs promoted and supported by Microsoft around the world.&amp;#8221; This was a full rewrite of the front-end which introduced new ways to navigate through the collection of 1500+ stories. We also replaced our custom Deep Zoom map with an extended version of the Bing Maps Silverlight control.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://microsoft.com/localimpactmap"&gt;&lt;img src="http://media.tumblr.com/tumblr_lo8ef9lCS51qz4bwf.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Typically the labels for countries and regions on the map are not interactive, but we extended the map control with custom labels that are interactive and can display dynamic data. We also added a data visualization layer which illustrates various statistics for each region, and designed an algorithm for smoothly clustering dense collections of story icons.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://microsoft.com/localimpactmap"&gt;&lt;img src="http://media.tumblr.com/tumblr_lo8ff3jKHu1qz4bwf.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Each state of the application is serialized as a unique URL, which allows the back and forward buttons in the browser to work naturally and makes it easy to share a link with a friend or social network. This was achieved through some creative hacking of the &lt;a href="http://msdn.microsoft.com/en-us/library/cc838245(v=vs.95).aspx"&gt;Silverlight navigation framework&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The relaunch has been received positively within Microsoft so far, with features on the &lt;a href="http://blogs.technet.com/b/microsoftupblog/archive/2011/06/22/bringing-local-impact-to-life.aspx"&gt;Unlimited Potential blog&lt;/a&gt; and the &lt;a href="http://www.bing.com/community/site_blogs/b/maps/archive/2011/06/23/discovering-inspiring-stories-with-new-microsoft-local-impact-map.aspx"&gt;Bing Maps blog&lt;/a&gt;. And we&amp;#8217;re not done yet, there are big plans to bring the map to new places over the coming months.&lt;/p&gt;</description><link>http://blog.endquote.com/post/7539488987</link><guid>http://blog.endquote.com/post/7539488987</guid><pubDate>Tue, 12 Jul 2011 11:07:00 -0700</pubDate><category>portfolio</category><category>silverlight</category></item><item><title>Playing with Sifteo blocks at Stimulant. 8-bit lo-fi action.</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lo8coqhEUl1qz4bwfo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Playing with &lt;a href="http://sifteo.com"&gt;Sifteo&lt;/a&gt; blocks at &lt;a href="http://stimulant.io"&gt;Stimulant&lt;/a&gt;. 8-bit lo-fi action.&lt;/p&gt;</description><link>http://blog.endquote.com/post/7537364222</link><guid>http://blog.endquote.com/post/7537364222</guid><pubDate>Tue, 12 Jul 2011 10:02:00 -0700</pubDate></item><item><title>Goings On</title><description>&lt;p&gt;There&amp;#8217;s enough happening over the next little while that it seems to warrant an update.&lt;/p&gt;
&lt;p&gt;Lately my time has been focused on wrapping up the &lt;a href="http://blog.endquote.com/post/2754395235/bing-and-social-stream-for-microsoft-surface-v2"&gt;Bing application for Surface v2&lt;/a&gt;. What was shown at CES was just a portion of the final functionality so there&amp;#8217;s been a lot of work to do, but we&amp;#8217;re planning on shipping a &amp;#8220;final&amp;#8221; (nothing ever is) version over to MS soon.&lt;/p&gt;
&lt;p&gt;In a couple of weeks I&amp;#8217;ll be attending my first &lt;a href="http://www.2011mvpsummit.com/"&gt;MVP summit&lt;/a&gt;. I&amp;#8217;m looking forward to hanging out with most of the other &lt;a href="https://mvp.support.microsoft.com/communities/mvp.aspx?product=1&amp;amp;competency=Surface"&gt;Surface MVPs&lt;/a&gt;, dining with the &lt;a href="http://groups.google.com/group/wpf-disciples"&gt;WPF disciples&lt;/a&gt;, learning some inside info, and attending some kind of giant party in a stadium. Should be a good time.&lt;/p&gt;
&lt;p&gt;After that I&amp;#8217;m headed directly to &lt;a href="http://en.wikipedia.org/wiki/Roat%C3%A1n"&gt;Roatàn&lt;/a&gt; for ten days with a group of friends to get into who knows what kind of trouble.&lt;/p&gt;
&lt;p&gt;Then it&amp;#8217;s back to work for about a month to start a couple of new projects before I&amp;#8217;m off to Vegas to attend &lt;a href="http://live.visitmix.com/"&gt;MIX11&lt;/a&gt;. This time I&amp;#8217;ll actually be on stage as part of &lt;a href="http://live.visitmix.com/OpenCall"&gt;a panel&lt;/a&gt; with the other Surface MVPs. We&amp;#8217;ll be talking and demoing about Surface but also the future of NUI in general. If you&amp;#8217;re attending I hope you&amp;#8217;ll come check us out.&lt;/p&gt;</description><link>http://blog.endquote.com/post/3322203995</link><guid>http://blog.endquote.com/post/3322203995</guid><pubDate>Tue, 15 Feb 2011 20:54:03 -0800</pubDate></item><item><title>On the first of the year, I attained the ultimate nerd status...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lf1plen0kC1qz4bwfo1_400.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;On the first of the year, I attained the ultimate nerd status and was granted an “&lt;a href="http://mvp.support.microsoft.com/"&gt;MVP award&lt;/a&gt;” from Microsoft under the Surface discipline. What’s that mean?&lt;/p&gt;
&lt;p&gt;“The Microsoft MVP Award recognizes exceptional technical community leaders from around the world who voluntarily share their high quality, real world expertise with others. Microsoft MVPs are a highly select group of experts representing technology’s best and brightest who share a deep commitment to community and a willingness to help others. Worldwide, there are over 100 million participants in technical communities; of these participants, there are fewer than 4,000 active Microsoft MVPs.”&lt;/p&gt;
&lt;p&gt;I’ll be joining the &lt;a href="https://mvp.support.microsoft.com/communities/mvp.aspx?product=1&amp;competency=Surface"&gt;six other Surface MVPs&lt;/a&gt; at &lt;a href="http://www.2011mvpsummit.com/"&gt;the summit&lt;/a&gt; in February. It should get pretty crazy… those guys know how to party.&lt;/p&gt;</description><link>http://blog.endquote.com/post/2754485130</link><guid>http://blog.endquote.com/post/2754485130</guid><pubDate>Fri, 14 Jan 2011 19:56:00 -0800</pubDate><category>portfolio</category><category>surface</category></item><item><title>Bing and Social Stream for Microsoft Surface v2</title><description>&lt;p&gt;At CES, Microsoft announced the second version of the Microsoft Surface product. Part of their demos included two apps that I&amp;#8217;ve been working on.&lt;/p&gt;
&lt;p&gt;The first is Social Stream (née &lt;a href="http://blog.endquote.com/post/1094999754/the-last-project-i-worked-on-at-stimulant-for-the"&gt;Live Stream&lt;/a&gt;), which has been reworked for the HD display of the v2 hardware.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.engadget.com/photos/samsung-sur40-for-microsoft-surface-hands-on/#3758546"&gt;&lt;img src="http://www.blogcdn.com/www.engadget.com/media/2011/01/surface-2-hands-dsc0384-rm-eng.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The second is a Bing application. Currently you&amp;#8217;re able to use their image search API to bring up images of pretty much anything. By the time it launches you&amp;#8217;ll be able to do&amp;#8230; other cool things. This is mostly what I&amp;#8217;m working on lately.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.engadget.com/photos/samsung-sur40-for-microsoft-surface-hands-on/#3758516"&gt;&lt;img src="http://www.blogcdn.com/www.engadget.com/media/2011/01/surface-2-hands-dsc0342-rm-eng.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Surface v2 and these applications will launch this summer. Learn more at &lt;a href="http://surface.com/"&gt;surface.com&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.endquote.com/post/2754395235</link><guid>http://blog.endquote.com/post/2754395235</guid><pubDate>Fri, 14 Jan 2011 19:50:02 -0800</pubDate><category>surface</category></item><item><title>KEXP Archive</title><description>&lt;p&gt;My last project went by so fast (three weeks) that I forgot to post about it. It&amp;#8217;s a rework of &lt;a href="http://blog.endquote.com/post/1127363957/stimulants-first-html5-project-launched-today-at"&gt;the WebVizBench project&lt;/a&gt;, which ads a new mode that shows each KEXP DJ&amp;#8217;s favorite albums in a JavaScript-powered particle system. It&amp;#8217;s live at &lt;a href="http://kexparchive.org/"&gt;KEXParchive.org&lt;/a&gt; and works best in &lt;a href="http://ie.microsoft.com/testdrive/"&gt;the IE9 beta&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The app was featured in &lt;a href="http://player.microsoftpdc.com/Session/6f853fa2-06f6-45e5-ac25-18c31cc4ba32"&gt;the PDC10 keynote&lt;/a&gt; (scrub to 44 minutes) and on &lt;a href="http://windowsteamblog.com/ie/b/ie/archive/2010/10/29/pushing-the-limits-of-an-all-around-fast-browser.aspx"&gt;the IE blog&lt;/a&gt;. I also did a video interview for the IE blog which is embedded below.&lt;/p&gt;
&lt;p&gt;
&lt;object width="640" height="385"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/BJZwW0_Xkr0?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/BJZwW0_Xkr0?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;</description><link>http://blog.endquote.com/post/1558822924</link><guid>http://blog.endquote.com/post/1558822924</guid><pubDate>Fri, 12 Nov 2010 21:02:13 -0800</pubDate><category>javascript</category><category>html5</category><category>portfolio</category></item><item><title>A short video and longer writeup of the Surface Live Stream...</title><description>&lt;iframe src="http://player.vimeo.com/video/15205677" width="400" height="225" frameborder="0"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;A short video and &lt;a href="http://stimulant.io/wp/index.php/blog/2010/09/microsoft-surface-live-stream/"&gt;longer writeup&lt;/a&gt; of the Surface Live Stream application is up on the Stimulant site.&lt;/p&gt;</description><link>http://blog.endquote.com/post/1176291579</link><guid>http://blog.endquote.com/post/1176291579</guid><pubDate>Thu, 23 Sep 2010 18:45:30 -0700</pubDate><category>portfolio</category><category>surface</category></item><item><title>I did an interview with Channel 9 about WebVizBench. More on...</title><description>&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="400" height="300"&gt;&#xD;
&lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap" /&gt;&lt;param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/4556/574556/webcampsie9demo_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/4556/574556/webcampsie9demo_512_ch9.jpg, postid=574556" /&gt;&lt;param name="background" value="#00FFFFFF" /&gt;&#xD;
&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;I did an interview with Channel 9 about WebVizBench. More on that &lt;a href="http://blog.endquote.com/post/1127363957/stimulants-first-html5-project-launched-today-at"&gt;here&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.endquote.com/post/1128383758</link><guid>http://blog.endquote.com/post/1128383758</guid><pubDate>Wed, 15 Sep 2010 15:06:00 -0700</pubDate><category>portfolio</category><category>html5</category></item><item><title>Stimulant’s first HTML5 project launched today at...</title><description>&lt;iframe src="http://player.vimeo.com/video/14982601" width="400" height="300" frameborder="0"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Stimulant’s first HTML5 project launched today at &lt;a href="http://webvizbench.com/"&gt;WebVizBench.com&lt;/a&gt;. You’ll need the &lt;a href="http://beautyoftheweb.com/"&gt;IE9 beta&lt;/a&gt; to run it properly, but the video above gives you a good idea of how it works. The full writeup is on &lt;a href="http://stimulant.io/wp/index.php/blog/2010/09/webvizbench-com-for-html5/"&gt;the Stimulant blog&lt;/a&gt;, and &lt;a href="http://www.beautyoftheweb.com/#/experience/kexp"&gt;it’s included&lt;/a&gt; among the many experiences available on &lt;a href="http://www.beautyoftheweb.com/"&gt;BeautyOfTheWeb.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It is essentially a visualization of every song played on &lt;a href="http://kexp.org"&gt;KEXP&lt;/a&gt; over the span of about seven years, totaling close to 800,000 data points. It also includes a benchmark mode, which stresses a browser’s GPU features in order to show off what a nice video card can do for future browsing experiences.&lt;/p&gt;
&lt;p&gt;I was the sole developer on the project, working with all of the other teams at Stimulant. It started out as our first &lt;a href="http://www.microsoft.com/windowsazure/"&gt;Azure&lt;/a&gt; project — I developed an Azure worker role to harvest and reformat data and album art from a not-yet-released KEXP API.&lt;/p&gt;
&lt;p&gt;The application you see in the browser is 100% JavaScript, using &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; and a few jQuery plugins. The grid of album art and the gray grid in the background (click and drag on that for fun) are implemented using the &lt;a href="http://dev.w3.org/html5/canvas-api/canvas-2d-api.html"&gt;canvas tag&lt;/a&gt;. The tooltips are &lt;a href="http://www.w3.org/TR/SVG/"&gt;SVG&lt;/a&gt;, the background video uses the &lt;a href="http://www.w3.org/TR/html5/video.html"&gt;video tag&lt;/a&gt;, and there’s tons of DOM animation between states. Additionally I wrote a small library for making the development of canvas-based applications a little more sane, which we may use in future projects. If you’re interested in seeing the code, the &lt;a href="http://webvizbench.com/Debug.htm"&gt;debug version&lt;/a&gt; of the app is un-minified.&lt;/p&gt;
&lt;p&gt;This is the first time I’ve developed a native browser application in a while, and I can say that browsers and JavaScript libraries have come a long way. However I think they’ve still got a while to go before developing in the browser is as easy and fun as it is in consistent plug-in or native environment.&lt;/p&gt;</description><link>http://blog.endquote.com/post/1127363957</link><guid>http://blog.endquote.com/post/1127363957</guid><pubDate>Wed, 15 Sep 2010 11:14:00 -0700</pubDate><category>portfolio</category><category>html5</category></item><item><title>The last project I worked on at Stimulant for the Surface team...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_l8ife7vARH1qz4bwfo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;The last project I worked on at Stimulant for the Surface team at Microsoft was &lt;a href="http://code.msdn.microsoft.com/surfacelivestream"&gt;Live Stream&lt;/a&gt;, a multi-user social media reader. An administrator can configure it to pull specific feeds from Twitter, Flickr, and RSS services, which are then displayed in a never-ending, scrollable stream across the display.&lt;/p&gt;
&lt;p&gt;Multiple users can pull interesting content toward them, where it will scale and orient to them for easy reading. They can take the content with them by flipping the items over and taking a photo of the Microsoft Tag on the back with their mobile phone, which resolves to the URL of that item.&lt;/p&gt;
&lt;p&gt;This project was the inspiration for the &lt;a href="http://blog.endquote.com/post/802771198/surfacescrollviewer-behaviors"&gt;SurfaceScrollViewer behaviors&lt;/a&gt;, &lt;a href="http://blog.endquote.com/post/778530474/manipulationviewport"&gt;ManipulationViewport&lt;/a&gt;, &lt;a href="http://blog.endquote.com/post/715775536/flipping-scatterviewitems"&gt;flipping ScatterViewItems&lt;/a&gt;, and &lt;a href="http://blog.endquote.com/post/710116433/planeprojection-in-wpf"&gt;Plane&lt;/a&gt;. Each of these components are free for download from the preceding links, and the entire project’s source code is available on the &lt;a href="http://code.msdn.microsoft.com/surfacelivestream"&gt;MSDN code gallery&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.endquote.com/post/1094999754</link><guid>http://blog.endquote.com/post/1094999754</guid><pubDate>Thu, 09 Sep 2010 19:39:43 -0700</pubDate><category>portfolio</category><category>surface</category><category>wpf</category></item><item><title>SAP InSite Studio</title><description>&lt;p&gt;Things have been stupid-busy at Stimulant &amp;#8212; so much so that I haven&amp;#8217;t gotten around to posting some recently completed projects.&lt;/p&gt;
&lt;p&gt;Back in May, we shipped &amp;#8220;SAP InSite Studio&amp;#8221;, which was a proof-of-concept app for SAP&amp;#8217;s &lt;a href="http://www.sap.com/about/events/sapphire/index.epx"&gt;big conference&lt;/a&gt; in Orlando. There were three instances of the application running on large HDTVs with &lt;a href="http://multi-touch-screen.com/"&gt;multitouch overlays&lt;/a&gt;, all connected to a high-end Cisco videoconferencing system. The Stimulant blog has &lt;a href="http://stimulant.io/wp/index.php/blog/2010/08/sap-insite-studio/"&gt;more details&lt;/a&gt;, and the video below.&lt;/p&gt;
&lt;p&gt;
&lt;object width="600" height="338"&gt;
&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13525679&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=e2e65b&amp;amp;fullscreen=1&amp;amp;autoplay=0&amp;amp;loop=0"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=13525679&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=e2e65b&amp;amp;fullscreen=1&amp;amp;autoplay=0&amp;amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="338"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;This one was &lt;a href="http://blog.endquote.com/post/525138452/theres-always-more-to-learn"&gt;particularly challenging&lt;/a&gt; to me, as it was my first Windows 7 touch app, which isn&amp;#8217;t quite the same as Surface. The Surface Touch Pack didn&amp;#8217;t ship until the project was mostly done, so I wasn&amp;#8217;t able to take advantage of it much. I also had to do lots of interop between managed and native code in order to get my app to control other arbitrary applications on the system &amp;#8212; mostly IE and Office apps. It turns out that Windows doesn&amp;#8217;t really want you to do that sort of thing, so various hacks and workarounds were applied that kept this from being more than a proof of concept. We learned a lot though, and could potentially make it &amp;#8220;real&amp;#8221; in the future.&lt;/p&gt;</description><link>http://blog.endquote.com/post/1077897268</link><guid>http://blog.endquote.com/post/1077897268</guid><pubDate>Mon, 06 Sep 2010 16:09:09 -0700</pubDate><category>portfolio</category><category>windows7</category></item><item><title>SurfaceScrollViewer Behaviors</title><description>&lt;p&gt;In my last Surface project, I developed a couple of behaviors which tweak how SurfaceScrollViewer works. You can see them in the video below.&lt;/p&gt;
&lt;p&gt;
&lt;object width="600" height="450"&gt;
&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13047809&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=e2e65b&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=13047809&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=e2e65b&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="450"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://electricalbeauty.com/misc/tumblr/ScrollViewerBehaviors.zip"&gt;Here&lt;/a&gt; is a VS 2010 project which includes the demo application shown in the video. Let&amp;#8217;s discuss them over on the &lt;a href="http://social.msdn.microsoft.com/Forums/en/surfaceappdevelopment/thread/b33ac9d9-356a-48f7-b329-c43e6cdb504d"&gt;Surface forum&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.endquote.com/post/802771198</link><guid>http://blog.endquote.com/post/802771198</guid><pubDate>Mon, 12 Jul 2010 10:48:00 -0700</pubDate><category>surface</category><category>sample</category></item><item><title>ManipulationViewport</title><description>&lt;p&gt;By default, a ScatterViewItem can be scaled as large as the display. If the content is an image, the image will scale up with it. This works well, but if the application has multiple users at the same time, one person could scale an image up and occlude everything the other user was working with.&lt;/p&gt;
&lt;p&gt;A solution to that would be to limit the size of the ScatterViewItem, but allow the content within it to be manipulated separately from the container. Something like the video below.&lt;/p&gt;
&lt;p&gt;
&lt;object width="600" height="450"&gt;
&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=13047706&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=e2e65b&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=13047706&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=e2e65b&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="450"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://electricalbeauty.com/misc/tumblr/ManipulationViewport.zip"&gt;Here&lt;/a&gt; is a Visual Studio 2010 project which includes the source for the application shown above. Let&amp;#8217;s discuss it over on the &lt;a href="http://social.msdn.microsoft.com/Forums/en/surfaceappdevelopment/thread/b53c3930-1ae0-4f79-871a-483c5b99f54a"&gt;Surface forum&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.endquote.com/post/778530474</link><guid>http://blog.endquote.com/post/778530474</guid><pubDate>Tue, 06 Jul 2010 15:49:00 -0700</pubDate><category>surface</category><category>portfolio</category><category>samples</category></item><item><title>Flipping ScatterViewItems</title><description>&lt;p&gt;If you&amp;#8217;re building a &lt;a href="http://surface.com"&gt;Surface&lt;/a&gt; or &lt;a href="http://msdn.microsoft.com/en-us/library/ee957351.aspx"&gt;Surface Toolkit&lt;/a&gt; application, there&amp;#8217;s a pretty good chance that you&amp;#8217;re using &lt;a href="http://msdn.microsoft.com/en-us/library/ee957360.aspx"&gt;ScatterView&lt;/a&gt;. ScatterView is an ItemsControl, so it&amp;#8217;s a great way to show information about a list of objects and allow multiple users to manipulate the objects independently. However you&amp;#8217;re usually only showing a small amount of information about the object within a ScatterViewItem &amp;#8212; an image thumbnail, or a song title, for example. What would be nice is if you could flip the item over to show more detail.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve needed to do this more than once, and I&amp;#8217;m &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/surfaceappdevelopment/thread/edc68262-f1ae-4337-aa4d-b7beb8cfee44"&gt;not&lt;/a&gt; &lt;a href="http://social.msdn.microsoft.com/Forums/en/surfaceappdevelopment/thread/6786df74-4243-45bf-83f8-5ebe9e432dd2"&gt;the&lt;/a&gt; &lt;a href="http://social.msdn.microsoft.com/Forums/en/surfaceappdevelopment/thread/d70b6065-ac63-47fe-b94f-a7d6b2f3fc98"&gt;only&lt;/a&gt; &lt;a href="http://social.msdn.microsoft.com/Forums/en/surfaceappdevelopment/thread/9cfbee80-9c2c-413e-bd0b-0c6603e1f1df"&gt;one&lt;/a&gt;. The first time was in our &lt;a href="http://blog.endquote.com/post/199695606/stimulants-official-video-and-writeup-for-the"&gt;Kodak Surface application&lt;/a&gt;, and I achieved the affect with some horribly hacky and fake animations. The project I&amp;#8217;m currently working on also has a requirement to flip items over, so I decided I&amp;#8217;d do it right this time. That&amp;#8217;s the real reason I put &lt;a href="http://blog.endquote.com/post/710116433/planeprojection-in-wpf"&gt;Plane&lt;/a&gt; together. Check it out.&lt;/p&gt;
&lt;p&gt;
&lt;object height="450" width="600"&gt;
&lt;param value="true" name="allowfullscreen"&gt;&lt;param value="always" name="allowscriptaccess"&gt;&lt;param value="http://vimeo.com/moogaloop.swf?clip_id=13047516&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=e2e65b&amp;amp;fullscreen=1" name="movie"&gt;&lt;embed height="450" width="600" allowscriptaccess="always" allowfullscreen="true" type="application/x-shockwave-flash" src="http://vimeo.com/moogaloop.swf?clip_id=13047516&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=e2e65b&amp;amp;fullscreen=1"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://electricalbeauty.com/misc/tumblr/Plane.zip"&gt;Here&lt;/a&gt; is a Visual Studio 2010 project which includes the Plane source as well as examples of flipping ScatterViewItems in Surface and Surface Toolkit projects. You will need the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3db8987b-47c8-46ca-aafb-9c3b36f43bcc&amp;amp;displaylang=en"&gt;Surface SDK&lt;/a&gt; and/or the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=801907A7-B2DD-4E63-9FF3-8A2E63932A74&amp;amp;displaylang=en"&gt;Surface Toolkit&lt;/a&gt; installed to run these samples.&lt;/p&gt;</description><link>http://blog.endquote.com/post/715775536</link><guid>http://blog.endquote.com/post/715775536</guid><pubDate>Sat, 19 Jun 2010 12:13:00 -0700</pubDate><category>samples</category><category>surface</category><category>3d</category><category>wpf</category></item><item><title>Modeling the World</title><description>&lt;p&gt;I forgot to mention the launch of &lt;a href="http://modelingtheworld.com"&gt;Modeling the World&lt;/a&gt;, a collection of videos and the start of a community from &lt;a href="http://www.microsoft.com/mscorp/tc/default.mspx"&gt;Microsoft Technical Computing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://modelingtheworld.com"&gt;&lt;img height="281" width="470" src="http://electricalbeauty.com/misc/tumblr/tcw_lobby.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://modelingtheworld.com"&gt;&lt;img src="http://electricalbeauty.com/misc/tumblr/tcw_video.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The lobby is the most interesting bit, and features a gravity simulation developed by Joel Pryde. I was in charge of the video player, which features Smooth Streaming video, a transcript, and extras timed to specific cuepoints in the video. You may remember much of this functionality from &lt;a href="http://blog.endquote.com/post/144450114/project-tuva-post-mortem"&gt;Project Tuva&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.endquote.com/post/710167710</link><guid>http://blog.endquote.com/post/710167710</guid><pubDate>Thu, 17 Jun 2010 20:39:18 -0700</pubDate><category>silverlight</category><category>portfolio</category></item><item><title>PlaneProjection in WPF</title><description>&lt;p&gt;Silverlight has an excellent feature called &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.media.planeprojection(VS.95).aspx"&gt;PlaneProjection&lt;/a&gt; which enables basic perspective transforms on any display object. That&amp;#8217;s great for Silverlight, but when I&amp;#8217;m working with &lt;a href="http://surface.com"&gt;Surface&lt;/a&gt;, I&amp;#8217;m still using WPF 3.5. If I want to do any kind of 3D transform there I need to use the WPF 3D library, which is very powerful and very scary, especially if all I want to do is rotate a postcard in space. What to do?&lt;/p&gt;
&lt;p&gt;There have been a &lt;a href="http://blogs.msdn.com/b/greg_schechter/archive/2007/10/26/enter-the-planerator-dead-simple-3d-in-wpf-with-a-stupid-name.aspx"&gt;couple&lt;/a&gt; of &lt;a href="http://joshsmithonwpf.wordpress.com/2009/02/23/introducing-contentcontrol3d/"&gt;attempts&lt;/a&gt; to create a reusable perspective transform in WPF, but I found them both lacking. The main problem I had with existing solutions is that I needed my psuedo-3D element to play perfectly well with the WPF layout system, and I also needed my text to look perfect when the object was not rotated at some strange angle. So I started with those examples, and along with some help from &lt;a href="http://channel9.msdn.com/posts/AdamKinney/WPF-35-SP1-Graphics-with-David-Teitlebaum/"&gt;David Teitlebaum&lt;/a&gt; and my co-worker Joel Pryde, created a class simply called &amp;#8220;Plane&amp;#8221;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://electricalbeauty.com/misc/tumblr/Plane.zip"&gt;&lt;img src="http://electricalbeauty.com/misc/tumblr/plane.png"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In addition to the features illustrated in the test application, Plane lets you specify differently-sized content for the front and back sides, renders content in regular 2D when rotated to an angle parallel to the display, and has no trouble existing in the same layout with regular 2D objects.&lt;/p&gt;
&lt;p&gt;Click the image above to download a Visual Studio 2010 project with the full source. I&amp;#8217;ll be posting an example of it in a real application soon.&lt;/p&gt;</description><link>http://blog.endquote.com/post/710116433</link><guid>http://blog.endquote.com/post/710116433</guid><pubDate>Thu, 17 Jun 2010 20:20:00 -0700</pubDate><category>3d</category><category>WPF</category><category>sample</category></item><item><title>"Working at @stimulant is all about spending hours building transitions that last milliseconds, and..."</title><description>“Working at @stimulant is all about spending hours building transitions that last milliseconds, and then hoping people notice.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://twitter.com/endquote/status/13146067969"&gt;tweeted&lt;/a&gt;&lt;/em&gt;</description><link>http://blog.endquote.com/post/561530843</link><guid>http://blog.endquote.com/post/561530843</guid><pubDate>Fri, 30 Apr 2010 13:07:03 -0700</pubDate></item><item><title>There's always more to learn</title><description>&lt;p&gt;My main project these days has been a bit of a stretch, as it&amp;#8217;s neither Silverlight nor Surface. Things involved that I have never used before:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/04/12/visual-studio-2010-and-net-4-released.aspx"&gt;.NET 4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd562197(VS.85).aspx"&gt;Windows 7 touch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms694980(VS.85).aspx"&gt;Flicks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pinvoke.net/"&gt;p/invoke&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa969541(VS.85).aspx"&gt;DWM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/netframework/aa663324.aspx"&gt;WCF&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;But, somehow it&amp;#8217;s all coming together and we&amp;#8217;re dropping a beta tomorrow, and should be done &lt;a href="http://www.sapandasug.com"&gt;soon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Next up, I&amp;#8217;ll be back in the cozy world of Surface, where I can stretch my brain on design and experience rather than config files and native interop. I definitely can&amp;#8217;t complain about a lack of variety in my work.&lt;/p&gt;</description><link>http://blog.endquote.com/post/525138452</link><guid>http://blog.endquote.com/post/525138452</guid><pubDate>Thu, 15 Apr 2010 22:45:23 -0700</pubDate></item></channel></rss>

