<?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/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>The Runtime.com</title><link>http://www.theruntime.com/blogs/MainFeed.aspx</link><description>.NET by Subtext</description><generator>Subtext Version 1.9.5.0</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/TheRuntime" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>TRUIX Update for Nov. 3rd! Jim ZImmerman is sick!</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/8Jh7ELmmD3o/truix-update-for-nov.-3rd-jim-zimmerman-is-sick.aspx</link><pubDate>Tue, 03 Nov 2009 14:20:26 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/11/03/truix-update-for-nov.-3rd-jim-zimmerman-is-sick.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2832.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2832.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/11/03/truix-update-for-nov.-3rd-jim-zimmerman-is-sick.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2832.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">TRUIX Update for Nov. 3rd! Jim ZImmerman is sick!</source><description>&lt;p&gt;We are not cancelling though. Greg Leonardo has graciously offered to step in and give us a talk he calls “Impromptu Sketchflow.” Should be fun. Everything else is the same (7:00pm for the speaker/Pizza at 6:30pm.. MS Offices)&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2832.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=8Jh7ELmmD3o:FVfxICPCkVE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=8Jh7ELmmD3o:FVfxICPCkVE:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=8Jh7ELmmD3o:FVfxICPCkVE:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=8Jh7ELmmD3o:FVfxICPCkVE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=8Jh7ELmmD3o:FVfxICPCkVE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=8Jh7ELmmD3o:FVfxICPCkVE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=8Jh7ELmmD3o:FVfxICPCkVE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=8Jh7ELmmD3o:FVfxICPCkVE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=8Jh7ELmmD3o:FVfxICPCkVE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=8Jh7ELmmD3o:FVfxICPCkVE:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=8Jh7ELmmD3o:FVfxICPCkVE:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/8Jh7ELmmD3o" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/11/03/truix-update-for-nov.-3rd-jim-zimmerman-is-sick.aspx</feedburner:origLink></item><item><title>A very important TRUIX meeting with Jim Zimmerman on Nov. 3rd</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/EHQVeuq9T8U/a-very-important-truix-meeting-with-jim-zimmerman-on-nov.aspx</link><pubDate>Wed, 28 Oct 2009 21:21:44 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/10/28/a-very-important-truix-meeting-with-jim-zimmerman-on-nov.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2831.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2831.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/10/28/a-very-important-truix-meeting-with-jim-zimmerman-on-nov.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2831.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">A very important TRUIX meeting with Jim Zimmerman on Nov. 3rd</source><description>&lt;p&gt;Next Tuesday, November 3rd, we have Jim Zimmerman coming in. Jim is talking about a subject that in my opinion is important to both developers and designers. Jim will be showing us how to do something that both areas of app development need to know how to do. He’s teaching us how to take a Photoshop file, slice it up into usable web graphics and then build html and CSS to create a web layout from the original file which is perfect for an ASP.NET Masterpage.&lt;/p&gt;  &lt;p&gt;You might wonder why I think this is so important. The reason is simple. In today’s world of app development, a designer who just produces graphics and little else will someday go the way of the designer. As well as a developer with no design skills is equally on its way out. We need to know something about each other’s expertise, and be able to function in the tools of the “other half.”&lt;/p&gt;  &lt;p&gt;Anyway, Pizza will hopefully arrive around 6:30-6:45pm. We will start the session at 7:00pm. &lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2831.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EHQVeuq9T8U:-l2LUhNd8Hs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EHQVeuq9T8U:-l2LUhNd8Hs:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=EHQVeuq9T8U:-l2LUhNd8Hs:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EHQVeuq9T8U:-l2LUhNd8Hs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EHQVeuq9T8U:-l2LUhNd8Hs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=EHQVeuq9T8U:-l2LUhNd8Hs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EHQVeuq9T8U:-l2LUhNd8Hs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EHQVeuq9T8U:-l2LUhNd8Hs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=EHQVeuq9T8U:-l2LUhNd8Hs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EHQVeuq9T8U:-l2LUhNd8Hs:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EHQVeuq9T8U:-l2LUhNd8Hs:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/EHQVeuq9T8U" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/10/28/a-very-important-truix-meeting-with-jim-zimmerman-on-nov.aspx</feedburner:origLink></item><item><title>VSLive! Orlando 2009 Sessions Posted</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/Sq-CcRCWgB0/vslive-orlando-2009-sessions-posted.aspx</link><pubDate>Wed, 07 Oct 2009 00:56:08 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/brianpeek/archive/2009/10/07/vslive-orlando-2009-sessions-posted.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2830.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2830.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/10/07/vslive-orlando-2009-sessions-posted.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2830.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">VSLive! Orlando 2009 Sessions Posted</source><description>&lt;p&gt;&lt;a href="http://vslive.com/2009/orlando/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="vslive" border="0" alt="vslive" align="right" src="http://www.brianpeek.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/1134.vslive_5F00_3D91795B.png" width="244" height="70" /&gt;&lt;/a&gt; Thanks to everyone who came out to my two VSLive sessions today.  You can find the slide decks and full source code posted in &lt;a href="http://brianpeek.com/media/g/2009/default.aspx" target="_blank"&gt;my download section&lt;/a&gt;.  Please note that in order to save some bandwidth, I didn’t include the 125MB video file I used in my examples, but you can download that separately &lt;a href="http://www.microsoft.com/windows/windowsmedia/musicandvideo/hdvideo/contentshowcase.aspx" target="_blank"&gt;here&lt;/a&gt;.  Just unzip and copy to the Media and GPUAcceleration sample directories and build the project.&lt;/p&gt;  &lt;p&gt;I welcome any and all questions, and especially comments/critiques.  As a speaker, I rarely, if ever, receive any formalized feedback from the session organizers, so I’d love to hear what those in attendance thought of my sessions.  Good or bad, &lt;a href="http://www.brianpeek.com/blog/contact.aspx" target="_blank"&gt;please send it along&lt;/a&gt;!  Thanks!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2830.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Sq-CcRCWgB0:6NeHKqJFzSU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Sq-CcRCWgB0:6NeHKqJFzSU:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Sq-CcRCWgB0:6NeHKqJFzSU:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Sq-CcRCWgB0:6NeHKqJFzSU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Sq-CcRCWgB0:6NeHKqJFzSU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Sq-CcRCWgB0:6NeHKqJFzSU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Sq-CcRCWgB0:6NeHKqJFzSU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Sq-CcRCWgB0:6NeHKqJFzSU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Sq-CcRCWgB0:6NeHKqJFzSU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Sq-CcRCWgB0:6NeHKqJFzSU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Sq-CcRCWgB0:6NeHKqJFzSU:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/Sq-CcRCWgB0" height="1" width="1"/&gt;</description><dc:creator>Brian Peek</dc:creator><feedburner:origLink>http://theruntime.com/blogs/brianpeek/archive/2009/10/07/vslive-orlando-2009-sessions-posted.aspx</feedburner:origLink></item><item><title>VSLive! Orlando</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/CIHYXanxkxU/vslive-orlando.aspx</link><pubDate>Sun, 04 Oct 2009 01:16:23 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/brianpeek/archive/2009/10/04/vslive-orlando.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2829.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2829.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/10/04/vslive-orlando.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2829.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">VSLive! Orlando</source><description>&lt;p&gt;&lt;a href="http://vslive.com/2009/orlando/" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="vslive" border="0" alt="vslive" align="right" src="http://www.brianpeek.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/2783.vslive_5F00_56F47FDE.png" width="244" height="70" /&gt;&lt;/a&gt; Anyone out there heading to &lt;a href="http://vslive.com/2009/orlando/" target="_blank"&gt;VSLive! Orlando&lt;/a&gt; this week?  I will be giving two introductory sessions on &lt;a href="http://www.silverlight.net/" target="_blank"&gt;Silverlight&lt;/a&gt; as listed below:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Getting Started with Silverlight&lt;/strong&gt;     &lt;br /&gt;Tuesday, October 6, 10:30am &lt;/p&gt;  &lt;p&gt;Microsoft Silverlight allows developers and designers to build rich cross-browser and cross-platform applications for the Web using the same tools and technologies that are familiar to .NET developers.  This session will cover the basics of Silverlight, including basic XAML, the tools that can be used to create Silverlight applications, the controls available in the Silverlight framework, and pros and cons of Silverlight vs. other web technologies, all while building a few very simple applications demonstrating the power of the framework.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Silverlight Controls and Animations&lt;/strong&gt;     &lt;br /&gt;Tuesday, October 6, 12:00pm &lt;/p&gt;  &lt;p&gt;The Microsoft Silverlight framework contains an assortment of pre-built controls that can be used directly by your applications.  Developers can also create their own custom controls to fit their requirements.  In addition, Silverlight can be used to create animations that are simple or extremely complex, from pulsing buttons to 3D movement.  This session will demonstrate how to use the most common and important controls, as well as how to create custom user controls, along with demonstrating how XAML, Visual Studio and Expression Blend can be used to create animations that will spice up any application.&lt;/p&gt;  &lt;p&gt;If anyone will be attending the conference, &lt;a href="http://brianpeek.com/blog/contact.aspx" target="_blank"&gt;let me know&lt;/a&gt; so I can say hello!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2829.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CIHYXanxkxU:RJWfXp28tBA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CIHYXanxkxU:RJWfXp28tBA:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=CIHYXanxkxU:RJWfXp28tBA:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CIHYXanxkxU:RJWfXp28tBA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CIHYXanxkxU:RJWfXp28tBA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=CIHYXanxkxU:RJWfXp28tBA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CIHYXanxkxU:RJWfXp28tBA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CIHYXanxkxU:RJWfXp28tBA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=CIHYXanxkxU:RJWfXp28tBA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CIHYXanxkxU:RJWfXp28tBA:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CIHYXanxkxU:RJWfXp28tBA:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/CIHYXanxkxU" height="1" width="1"/&gt;</description><dc:creator>Brian Peek</dc:creator><feedburner:origLink>http://theruntime.com/blogs/brianpeek/archive/2009/10/04/vslive-orlando.aspx</feedburner:origLink></item><item><title>The Coding4Fun Show – Ep 3 with Rick Barraza</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/Dyqd3ZwD7Vk/the-coding4fun-show--ep-3-with-rick-barraza.aspx</link><pubDate>Fri, 18 Sep 2009 11:56:29 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/brianpeek/archive/2009/09/18/the-coding4fun-show--ep-3-with-rick-barraza.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2828.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2828.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/09/18/the-coding4fun-show--ep-3-with-rick-barraza.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2828.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">The Coding4Fun Show – Ep 3 with Rick Barraza</source><description>&lt;p&gt;&lt;a href="/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/8233.c9logo_5F00_4DE73BFB.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="c9logo" alt="c9logo" src="/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/8244.c9logo_5F00_thumb_5F00_7F72A990.png" align="right" border="0" height="114" width="98" /&gt;&lt;/a&gt; The third episode of my &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/"&gt;Coding4Fun Show&lt;/a&gt;, live from Las Vegas, is now up on &lt;a href="http://channel9.msdn.com/"&gt;Channel 9&lt;/a&gt;.  In this episode I interview &lt;a href="http://www.cynergysystems.com/blogs/page/rickbarraza"&gt;Rick Barraza&lt;/a&gt; of &lt;a href="http://www.cynergysystems.com/"&gt;Cynergy Systems&lt;/a&gt;, who has put together several very unique applications and accompanying tutorials demonstrating advanced rendering techniques using Silverlight 3.  During the show, we discuss Silverlight 3, UX design, and the three demos he has created showing off advanced rendering techniques.  For more on how these amazing demos were made, check out his (currently) three part series at his blog:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.cynergysystems.com/blogs/page/rickbarraza?entry=fluid_dynamics_in_silverlight"&gt;Fluid Dynamics in Silverlight&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cynergysystems.com/blogs/page/rickbarraza?entry=advanced_render_techniques_with_writeablebitmaps"&gt;Advanced Render Techniques with WriteableBitmaps&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cynergysystems.com/blogs/page/rickbarraza?entry=rendering_vector_fields_in_silverlight"&gt;Rendering Vector Fields in Silverlight&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You should see the video below if you have &lt;a href="http://www.silverlight.net/"&gt;Silverlight&lt;/a&gt; installed, otherwise head over to the &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-Advanced-Rendering-with-Silverlight-Rick-Barraza/"&gt;episode on Channel 9&lt;/a&gt; to watch and download in a variety of formats for offline viewing.&lt;/p&gt;
&lt;center&gt;
&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" height="240" width="320"&gt;
&lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_06_22.xap" /&gt;
&lt;param name="initParams" value="m=http://ecn.channel9.msdn.com/o9/ch9/2/6/3/2/9/4/C4FShowE3Barraza_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/2/6/3/2/9/4/C4FShowE3Barraza_320_ch9.png, postid=492362" /&gt;
&lt;param name="background" value="#00FFFFFF" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt; 
&lt;/object&gt;
&lt;br /&gt;&lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-Advanced-Rendering-with-Silverlight-Rick-Barraza/"&gt;The Coding4Fun Show: Advanced Rendering with Silverlight, Rick Barraza&lt;/a&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/center&gt;
&lt;p&gt;A big thanks to Rick for taking a few minutes out of his vacation to chat with me.  Enjoy!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2828.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Dyqd3ZwD7Vk:WbEk96_24ig:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Dyqd3ZwD7Vk:WbEk96_24ig:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Dyqd3ZwD7Vk:WbEk96_24ig:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Dyqd3ZwD7Vk:WbEk96_24ig:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Dyqd3ZwD7Vk:WbEk96_24ig:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Dyqd3ZwD7Vk:WbEk96_24ig:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Dyqd3ZwD7Vk:WbEk96_24ig:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Dyqd3ZwD7Vk:WbEk96_24ig:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Dyqd3ZwD7Vk:WbEk96_24ig:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Dyqd3ZwD7Vk:WbEk96_24ig:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Dyqd3ZwD7Vk:WbEk96_24ig:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/Dyqd3ZwD7Vk" height="1" width="1"/&gt;</description><dc:creator>Brian Peek</dc:creator><feedburner:origLink>http://theruntime.com/blogs/brianpeek/archive/2009/09/18/the-coding4fun-show--ep-3-with-rick-barraza.aspx</feedburner:origLink></item><item><title>The Next TRUIX meeting is October 8th</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/EfGUyzhJt8I/the-next-truix-meeting-is-october-8th.aspx</link><pubDate>Tue, 15 Sep 2009 18:09:37 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/09/15/the-next-truix-meeting-is-october-8th.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2827.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2827.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/09/15/the-next-truix-meeting-is-october-8th.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2827.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">The Next TRUIX meeting is October 8th</source><description>&lt;p&gt;The next TRUIX meeting is October 8th. We are still finalizing some of the details for the night, but we will definitely be continuing tutorial on building a UI (using our &lt;a href="http://www.TampaUx.net"&gt;www.TampaUx.net&lt;/a&gt; site). We also plan on bringing you some material for the Silverlight 3/Expression 3 launch.&lt;/p&gt;  &lt;p&gt;Things will get started at about 7:00pm (with doors opening up at 6:30pm). &lt;/p&gt;  &lt;p&gt;Sorry it’s taken us so long to get a next meeting (we’ve had a lot of scheduling conflicts to work through of our core team).&lt;/p&gt;  &lt;p&gt;PS. the meeting after this one will be on November 3rd and we’ll have Jim Zimmerman talking to us about a topic that is definitely in the Dev-Signer realm! Stay tuned!&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2827.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EfGUyzhJt8I:WZ8ecbcWBGo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EfGUyzhJt8I:WZ8ecbcWBGo:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=EfGUyzhJt8I:WZ8ecbcWBGo:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EfGUyzhJt8I:WZ8ecbcWBGo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EfGUyzhJt8I:WZ8ecbcWBGo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=EfGUyzhJt8I:WZ8ecbcWBGo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EfGUyzhJt8I:WZ8ecbcWBGo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EfGUyzhJt8I:WZ8ecbcWBGo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=EfGUyzhJt8I:WZ8ecbcWBGo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EfGUyzhJt8I:WZ8ecbcWBGo:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=EfGUyzhJt8I:WZ8ecbcWBGo:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/EfGUyzhJt8I" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/09/15/the-next-truix-meeting-is-october-8th.aspx</feedburner:origLink></item><item><title>Blockbuster Signup WTF</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/6uPwJIj3Bc0/blockbuster-signup-wtf.aspx</link><pubDate>Mon, 14 Sep 2009 08:54:04 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/09/14/blockbuster-signup-wtf.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2826.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2826.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/09/14/blockbuster-signup-wtf.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2826.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">Blockbuster Signup WTF</source><description>&lt;p&gt;I love the &lt;a href="http://thedailywtf.com/"&gt;DailyWTF blog&lt;/a&gt; and recently had a WTF moment of my own while signing up at the Blockbuster (Australia) website:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/R0USN6Wvm18pMY6gj4_5Xg?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_Ln7LRKt4zEw/Sq4O10nP45I/AAAAAAAABak/aNczwv1j4IA/s400/blockbuster-signup-wtf.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In my case the password wasn't long enough, but Blockbuster effectively "threw the book" at me and dumped all the password error text onto the screen.&lt;/p&gt;
&lt;p&gt;I read and re-read the highlighted text but it still didn't make sense, especially considering I didn't use any non-alphanumeric characters. If something should "contain at least zero" then it could also be written "should not contain" which might have come off better.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/wtf"&gt;wtf&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/blockbuster"&gt;blockbuster&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/design"&gt;design&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/ui"&gt;ui&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/error"&gt;error&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2826.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=6uPwJIj3Bc0:4pRB9gKIRUw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=6uPwJIj3Bc0:4pRB9gKIRUw:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=6uPwJIj3Bc0:4pRB9gKIRUw:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=6uPwJIj3Bc0:4pRB9gKIRUw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=6uPwJIj3Bc0:4pRB9gKIRUw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=6uPwJIj3Bc0:4pRB9gKIRUw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=6uPwJIj3Bc0:4pRB9gKIRUw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=6uPwJIj3Bc0:4pRB9gKIRUw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=6uPwJIj3Bc0:4pRB9gKIRUw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=6uPwJIj3Bc0:4pRB9gKIRUw:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=6uPwJIj3Bc0:4pRB9gKIRUw:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/6uPwJIj3Bc0" height="1" width="1"/&gt;</description><dc:creator>Thomas Williams</dc:creator><feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/09/14/blockbuster-signup-wtf.aspx</feedburner:origLink></item><item><title>On the Road to iTextFileResult: Getting the Results from System.Web.MVC.WebFormViewEngine</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/UbWvwcJ1iyI/on-the-road-to-itextfileresult-getting-the-results-from-system.web.mvc.webformviewengine.aspx</link><pubDate>Thu, 10 Sep 2009 08:27:13 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/09/10/on-the-road-to-itextfileresult-getting-the-results-from-system.web.mvc.webformviewengine.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2825.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2825.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/09/10/on-the-road-to-itextfileresult-getting-the-results-from-system.web.mvc.webformviewengine.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2825.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">On the Road to iTextFileResult: Getting the Results from System.Web.MVC.WebFormViewEngine</source><description>&lt;p&gt;I’m in the process of building a new ActionResult for ASP.NET MVC. This new ActionResult will allow you to transform data into a PDF, RTF, or HTML (it uses iTextSharp behind the scenes, and yes, I have a working prototype right now that isn’t all that useful yet.. and you have to know way too much in order to use it as of this time).&lt;/p&gt;  &lt;p&gt;Essentially what I want to do is use any view engine that the programmer chooses and convert the resulting html, xml, or regular string data into a file that gets pushed to the browser. All this works for all of the alternative engines, but the default engines doesn’t work… so, without further adieu&lt;/p&gt;  &lt;h4&gt;Challenge #1: WebFormViewEngine ignores the TextStream you give it&lt;/h4&gt;  &lt;p&gt;Actually this might be the only challenge here. I tried numerous solutions.. none of which worked. I finally cracked open the MVC source code and determined that I needed to inherit form their class and do some overriding… In my API I created BufferedViewPage, and BufferedViewPage&amp;lt;T&amp;gt; so I could intercept the RenderView code. Here’s a copy of my current (in progress) version of BufferedViewPage:&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; BufferedViewPage : ViewPage, IBufferWebFormView&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; TextWriter Writer { get; set; }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; RenderView(ViewContext viewContext)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;     {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;         ViewContext = viewContext;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;         InitHelpers();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;         &lt;span style="color: #008000"&gt;// Tracing requires Page IDs to be unique.&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;         ID = Guid.NewGuid().ToString();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;         var wfv = viewContext.View &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; WebFormView;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt;         var page = (wfv!=&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;?wfv.ViewPath:&lt;span style="color: #006080"&gt;""&lt;/span&gt;); &lt;span style="color: #008000"&gt;// View should always be WebFormView&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (viewContext.ViewData[&lt;span style="color: #006080"&gt;"____writer"&lt;/span&gt;] != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt;         {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt;             Writer = viewContext.ViewData[&lt;span style="color: #006080"&gt;"____writer"&lt;/span&gt;] &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; TextWriter;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt;         }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt;         ProcessRequest(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; HttpContext(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; simpleWR(page, viewContext.HttpContext, viewContext.HttpContext.Response.Output)));&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (Writer != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Render(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; HtmlTextWriter(Writer));&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;You will see that I’m injecting a new writer into the ViewData (I’ll eventuually come up with a better mechanism, but it works for now). My code for the most part copies what the standard WebFormViewPage does except that you’ll see that if the page is a WebFormView it runs Render after running ProcessRequest. I’m not sure if this is problematic or not, but it works! Before I release the actual library I will probably clean this up quite a bit (this is mainly an exercise in helping anyone who wants to use the WebFormViewEngine, but somehow capture the result and do something else with it..&lt;/p&gt;

&lt;p&gt;BTW, the part of the code here you don’t see is that before I render I make sure buffering is on and then I clear the response text after generating this (which clearing the response was about the only thing I could do.. that generated data in HttpContext.Current.Response.Output is lost to you… at least I couldn’t find a way to get at it…)&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2825.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UbWvwcJ1iyI:tm9gXMM3RFc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UbWvwcJ1iyI:tm9gXMM3RFc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=UbWvwcJ1iyI:tm9gXMM3RFc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UbWvwcJ1iyI:tm9gXMM3RFc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UbWvwcJ1iyI:tm9gXMM3RFc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=UbWvwcJ1iyI:tm9gXMM3RFc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UbWvwcJ1iyI:tm9gXMM3RFc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UbWvwcJ1iyI:tm9gXMM3RFc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=UbWvwcJ1iyI:tm9gXMM3RFc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UbWvwcJ1iyI:tm9gXMM3RFc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UbWvwcJ1iyI:tm9gXMM3RFc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/UbWvwcJ1iyI" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/09/10/on-the-road-to-itextfileresult-getting-the-results-from-system.web.mvc.webformviewengine.aspx</feedburner:origLink></item><item><title>JavaScript for the masses</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/YPbCpdc13RQ/javascript-for-the-masses.aspx</link><pubDate>Thu, 03 Sep 2009 11:43:57 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/09/03/javascript-for-the-masses.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2824.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2824.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/09/03/javascript-for-the-masses.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2824.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">JavaScript for the masses</source><description>&lt;p&gt;As you may be aware &lt;a href="http://www.hanselman.com/blog/ScottHanselmans2009UltimateDeveloperAndPowerUsersToolListForWindows.aspx"&gt;Scott Hanselman’s 2009 Ultimate Developer and Power Users Tool List for Windows&lt;/a&gt; came out yesterday. If you are like me you end up pooling through the list especially the new stuff to see if there is something cool that somehow you missed.&lt;/p&gt;  &lt;p&gt;I found an item on the list that answers something I think I have been looking for (but not for me), but before I go on I need to give you some background (as usual).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://new.efficientcoder.net/"&gt;Kevin D. Wolf&lt;/a&gt; (aka ByteMaster) and I have been talking over the last several months on all things Ajax. We’re both pretty deep on the topic of Ajax (Actually Kevin is deep on a number of topics), and we’re both pretty opinionated about a few things (I know you are shocked that I would say that about myself). &lt;/p&gt;  &lt;p&gt;One of the things I’ve sort of been looking for is something that makes it easy for someone to write Ajax. The new Blend Skecthflow stuff is a HUGE game changer, but if what I want to write is Ajax then after using Sketchflow I’m back to the drawing board.&lt;/p&gt;  &lt;h2&gt;Interractions in Ajax.. found!&lt;/h2&gt;  &lt;p&gt;So yesterday, I was browsing the Hanselman list and I found a side reference to a tool to watch called “&lt;a href="http://www.ixedit.com/"&gt;IxEdit&lt;/a&gt;.” All I can say is WOW! [Personal Note: Diane Leeper download this now! I think you could have some fin with this…] Their video tells it all, but I will tell you what I think is cool about it. &lt;/p&gt;  &lt;p&gt;You create a page and add references to jquery, jquery ui, and their ixEdit script as well as a few CSS. Once you do this the page launches with a movable dialog. This new dialog let’s you create Ajax/Web 2.0 (more the latter) interactions with your page all by simply playing in their GUI. Really, really cool! Now they don’t do everything, and in fact from what I saw of the tool you can’t set up to make calls back to the server (but I could see something like that being set up, and am starting to think about it). Once you are satisfied you can “save and reload” which reloads the page and applies your designed interaction (so now you can see how it worked).. something not look right simply edit the interaction to tweak it’s setting.&lt;/p&gt;  &lt;p&gt;When you are done it will help you deploy the script, so now you have designed JS code with out actually writing a line of code! Really, really cool, IMO!&lt;/p&gt;  &lt;p&gt;[I spent a couple of hours looking for pictures to fancy this up a little.. I run a UI/UX users group for crying out loud.. I need to get better at that, so sorry my post is bland.. I’ll try to follow up with something more graphically pleasing]&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2824.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=YPbCpdc13RQ:DrdXOdxVbTs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=YPbCpdc13RQ:DrdXOdxVbTs:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=YPbCpdc13RQ:DrdXOdxVbTs:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=YPbCpdc13RQ:DrdXOdxVbTs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=YPbCpdc13RQ:DrdXOdxVbTs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=YPbCpdc13RQ:DrdXOdxVbTs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=YPbCpdc13RQ:DrdXOdxVbTs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=YPbCpdc13RQ:DrdXOdxVbTs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=YPbCpdc13RQ:DrdXOdxVbTs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=YPbCpdc13RQ:DrdXOdxVbTs:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=YPbCpdc13RQ:DrdXOdxVbTs:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/YPbCpdc13RQ" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/09/03/javascript-for-the-masses.aspx</feedburner:origLink></item><item><title>Anyone in Vegas for C4F Show Interview?</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/Y4psLsQJJwQ/anyone-in-vegas-for-c4f-show-interview.aspx</link><pubDate>Fri, 14 Aug 2009 16:16:34 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/brianpeek/archive/2009/08/14/anyone-in-vegas-for-c4f-show-interview.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2823.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2823.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/08/14/anyone-in-vegas-for-c4f-show-interview.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2823.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">Anyone in Vegas for C4F Show Interview?</source><description>&lt;p&gt;&lt;a href="http://www.brianpeek.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/1682.logo_5F00_0589CF1B.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="logo" border="0" alt="logo" align="right" src="http://www.brianpeek.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/4426.logo_5F00_thumb_5F00_65028F68.png" width="98" height="114" /&gt;&lt;/a&gt; Is there anyone in or around the Las Vegas area between September 7th and September 12th that would like to be my guest for an episode of the &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/" target="_blank"&gt;Coding4Fun Show&lt;/a&gt;?  I’ll be in the area for the week and would love to do an in-person show with anyone doing a cool project with Microsoft technologies.  If you’re interested, please &lt;a href="http://www.brianpeek.com/blog/contact.aspx"&gt;contact me&lt;/a&gt; so we can set something up.  Maybe you’ll even get a free lunch out of it.  :)  Thanks!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2823.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Y4psLsQJJwQ:4XlBhGAZ9yU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Y4psLsQJJwQ:4XlBhGAZ9yU:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Y4psLsQJJwQ:4XlBhGAZ9yU:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Y4psLsQJJwQ:4XlBhGAZ9yU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Y4psLsQJJwQ:4XlBhGAZ9yU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Y4psLsQJJwQ:4XlBhGAZ9yU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Y4psLsQJJwQ:4XlBhGAZ9yU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Y4psLsQJJwQ:4XlBhGAZ9yU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Y4psLsQJJwQ:4XlBhGAZ9yU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Y4psLsQJJwQ:4XlBhGAZ9yU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Y4psLsQJJwQ:4XlBhGAZ9yU:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/Y4psLsQJJwQ" height="1" width="1"/&gt;</description><dc:creator>Brian Peek</dc:creator><feedburner:origLink>http://theruntime.com/blogs/brianpeek/archive/2009/08/14/anyone-in-vegas-for-c4f-show-interview.aspx</feedburner:origLink></item><item><title>TampaUX.NET Next Meeting: 7/29 (tomorrow!) 7:00 at MS Tampa Offices!</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/7xbuDzZYEBg/tampaux.net-next-meeting-729-tomorrow-700-at-ms-tampa-offices.aspx</link><pubDate>Tue, 28 Jul 2009 08:40:37 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/07/28/tampaux.net-next-meeting-729-tomorrow-700-at-ms-tampa-offices.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2822.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2822.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/07/28/tampaux.net-next-meeting-729-tomorrow-700-at-ms-tampa-offices.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2822.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">TampaUX.NET Next Meeting: 7/29 (tomorrow!) 7:00 at MS Tampa Offices!</source><description>&lt;h2&gt;Reinventing TUX - Our Website... and Our Identity&lt;/h2&gt;  &lt;p&gt;Big things in the wind. Besides a new location, we are making a slight URL change to &lt;acronym&gt;www.TampaUX.net&lt;/acronym&gt;. &lt;/p&gt;  &lt;p&gt;With a new web address, we decided that a new design was in order, so our next session will be all about reinventing our web site and setting it up for future development by YOU! &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Speakers: &lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;strike&gt;Roy Lawson&lt;/strike&gt; (Roy couldn’t make it.. it’s my fault.. we’ll get him another month)&lt;/li&gt;      &lt;li&gt;Shawn Cady &lt;/li&gt;      &lt;li&gt;Jay Kimble &lt;/li&gt;      &lt;li&gt;Nikita Polyakov &lt;/li&gt;      &lt;li&gt;Kevin Wolf &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;NEW Location:    &lt;br /&gt;Microsoft Corporation 5426 Bay Center Suite 700 Tampa, FL 33609 &lt;a href="http://tinyurl.com/MSTPA"&gt;Map&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;[A little busy today, so yes, I stole Nikita’s &lt;a href="http://geekswithblogs.net/campuskoder/archive/2009/07/28/133760.aspx"&gt;post&lt;/a&gt;]&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2822.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=7xbuDzZYEBg:O_nqys9zz1Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=7xbuDzZYEBg:O_nqys9zz1Q:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=7xbuDzZYEBg:O_nqys9zz1Q:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=7xbuDzZYEBg:O_nqys9zz1Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=7xbuDzZYEBg:O_nqys9zz1Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=7xbuDzZYEBg:O_nqys9zz1Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=7xbuDzZYEBg:O_nqys9zz1Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=7xbuDzZYEBg:O_nqys9zz1Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=7xbuDzZYEBg:O_nqys9zz1Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=7xbuDzZYEBg:O_nqys9zz1Q:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=7xbuDzZYEBg:O_nqys9zz1Q:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/7xbuDzZYEBg" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/07/28/tampaux.net-next-meeting-729-tomorrow-700-at-ms-tampa-offices.aspx</feedburner:origLink></item><item><title>The Case For Renaming Controls In a Reporting Services Report</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/9O3aUr8JDQ0/the-case-for-renaming-controls-in-a-reporting-services-report.aspx</link><pubDate>Tue, 28 Jul 2009 01:54:28 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/07/28/the-case-for-renaming-controls-in-a-reporting-services-report.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2821.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2821.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/28/the-case-for-renaming-controls-in-a-reporting-services-report.aspx#comment</comments><slash:comments>3</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2821.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">The Case For Renaming Controls In a Reporting Services Report</source><description>&lt;p&gt;Since my Access days, I've believed in renaming important* controls in reports. Now that I use Reporting Services daily, this practice still holds: ambiguous names like "Textbox1" or "Textbox112" become "ReportName" or "FinalBalance", "table1" becomes "WidgetSalesTable", and "chart1" becomes "MonthlyTrendChart".&lt;/p&gt;
&lt;p&gt;As well as better organising the report while in development and adding only a small amount of time to actually do, renaming controls is useful to me later when I'm maintaining a report as I can see which controls contain which data points.&lt;/p&gt;
&lt;p&gt;There's one further advantage to renaming controls in a Reporting Services report: because reports are stored in XML format, I can extract the static contents of a control (as long as I know it's name) either from the RDL file or from the RDL file stored as XML in the &lt;code&gt;Catalog&lt;/code&gt; table in the &lt;code&gt;ReportServer&lt;/code&gt; database.&lt;/p&gt;
&lt;p&gt;I recently needed this functionality as I wanted a list of reports with the contents of a textbox on each report body called "Purpose".&lt;/p&gt;
&lt;p&gt;This was fairly straightforward to accomplish using the XML &lt;code&gt;nodes()&lt;/code&gt; method, which is dependent on the control being sought (which is why there's no code for this blog post, sorry!)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;* I don't usually rename controls that contain "meta" information, like column headers and blank cells.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/sql+server"&gt;sql server&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/reporting+services"&gt;reporting services&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2821.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9O3aUr8JDQ0:9NSD045zPgc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9O3aUr8JDQ0:9NSD045zPgc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=9O3aUr8JDQ0:9NSD045zPgc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9O3aUr8JDQ0:9NSD045zPgc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9O3aUr8JDQ0:9NSD045zPgc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=9O3aUr8JDQ0:9NSD045zPgc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9O3aUr8JDQ0:9NSD045zPgc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9O3aUr8JDQ0:9NSD045zPgc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=9O3aUr8JDQ0:9NSD045zPgc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9O3aUr8JDQ0:9NSD045zPgc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9O3aUr8JDQ0:9NSD045zPgc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/9O3aUr8JDQ0" height="1" width="1"/&gt;</description><dc:creator>Thomas Williams</dc:creator><feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/28/the-case-for-renaming-controls-in-a-reporting-services-report.aspx</feedburner:origLink></item><item><title>The Coding4Fun Show – Ep 2 with Arian Kulp</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/03BH8dmHM5A/the-coding4fun-show--ep-2-with-arian-kulp.aspx</link><pubDate>Sun, 26 Jul 2009 20:26:00 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/brianpeek/archive/2009/07/26/the-coding4fun-show--ep-2-with-arian-kulp.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2820.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2820.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/07/26/the-coding4fun-show--ep-2-with-arian-kulp.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2820.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">The Coding4Fun Show – Ep 2 with Arian Kulp</source><description>&lt;p&gt;&lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-MEF-Utility-Runner-with-Arian-Kulp/"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="logo" border="0" alt="logo" align="right" src="http://www.brianpeek.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/brian.metablogapi/8547.logo_5F00_4B5CDE8E.png" width="98" height="114" /&gt;&lt;/a&gt; The second episode of my &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/"&gt;Coding4Fun Show&lt;/a&gt; is now up on &lt;a href="http://channel9.msdn.com/"&gt;Channel 9&lt;/a&gt;.  In this episode of the Coding4Fun Show, I interview &lt;a href="http://www.ariankulp.com/"&gt;Arian Kulp&lt;/a&gt;, creator of the &lt;a href="http://utilrunner.codeplex.com/"&gt;MEF Utility Runner&lt;/a&gt;, a unified host for system tray utility applications.  Learn a bit about MEF and how it can be leveraged to create a plugin architecture for any application, as well as how it was used to create the MEF Utility runner, and how you can write your own plugins for this application.&lt;/p&gt;  &lt;p&gt;You should see the video below if you have &lt;a href="http://www.silverlight.net/"&gt;Silverlight&lt;/a&gt; installed, otherwise head over to the &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-MEF-Utility-Runner-with-Arian-Kulp/"&gt;episode on Channel 9&lt;/a&gt; to watch and download in a variety of formats for offline viewing.&lt;/p&gt; &lt;center&gt;&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="320" height="240"&gt; &lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_06_22.xap" /&gt; &lt;param name="initParams" value="m=http://mschnlnine.vo.llnwd.net/d1/ch9/6/5/9/0/8/4/C4FShowE2Kulp_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://mschnlnine.vo.llnwd.net/d1/ch9/6/5/9/0/8/4/C4FShowE2Kulp_large_ch9.png, postid=480956" /&gt; &lt;param name="background" value="#00FFFFFF" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt; &lt;/object&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-MEF-Utility-Runner-with-Arian-Kulp/" target="_blank"&gt;The Coding4Fun Show: MEF Utility Runner with Arian Kulp&lt;/a&gt;&lt;/center&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2820.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=03BH8dmHM5A:hkJpJdleGPU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=03BH8dmHM5A:hkJpJdleGPU:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=03BH8dmHM5A:hkJpJdleGPU:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=03BH8dmHM5A:hkJpJdleGPU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=03BH8dmHM5A:hkJpJdleGPU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=03BH8dmHM5A:hkJpJdleGPU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=03BH8dmHM5A:hkJpJdleGPU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=03BH8dmHM5A:hkJpJdleGPU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=03BH8dmHM5A:hkJpJdleGPU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=03BH8dmHM5A:hkJpJdleGPU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=03BH8dmHM5A:hkJpJdleGPU:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/03BH8dmHM5A" height="1" width="1"/&gt;</description><dc:creator>Brian Peek</dc:creator><feedburner:origLink>http://theruntime.com/blogs/brianpeek/archive/2009/07/26/the-coding4fun-show--ep-2-with-arian-kulp.aspx</feedburner:origLink></item><item><title>Reporting Services "Execution xxx cannot be found"</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/_QRtx0UQM9w/reporting-services-execution-xxx-cannot-be-found.aspx</link><pubDate>Fri, 24 Jul 2009 02:40:50 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/07/24/reporting-services-execution-xxx-cannot-be-found.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2819.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2819.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/24/reporting-services-execution-xxx-cannot-be-found.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2819.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">Reporting Services "Execution xxx cannot be found"</source><description>&lt;p&gt;Recently I investigated a Reporting Services problem where a user first ran a report with one parameter, then switched applications to do some work, then returned to the report and attempted to run it with a different parameter. The end result was that they received an "execution &lt;em&gt;xxx&lt;/em&gt; cannot be found (rsExecutionNotFound)" error.&lt;/p&gt;
&lt;p&gt;I too see this "execution cannot be found" error intermittently, sometimes after coming back to a report I'd run earlier and clicking "Back" or trying to expand a section on the report, and sometimes when my browser loads up tabs from a previous session.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;And The Reason Is You&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Behind the scenes, Reporting Services tracks each user's session (using an "execution" identifier) in the &lt;code&gt;ReportServerTempDB&lt;/code&gt; database, storing report snapshot data and information on selected parameters as well as report sections that are expanded. There's an article &lt;a href="http://www.databasejournal.com/features/mssql/article.php/3695721/Report-Session-Caching-in-Reporting-Services-2005.htm"&gt;"Report Session Caching in Reporting Services 2005" on Database Journal&lt;/a&gt; that explains the caching in more detail.&lt;/p&gt;
&lt;p&gt;The expiry time for the Reporting Services session is set to 10 minutes by default (note this is different to ASP.NET session and/or connection or command timeouts).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;And I Will Try, To Fix You&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Although there are multiple ways to alleviate the problem, in my case it was following the advice at &lt;a href="http://blogs.msdn.com/emilianb/archive/2009/05/28/timeouts-and-microsoft-sql-server-2005-reporting-services.aspx"&gt;Emi Baragan's blog which describes how to modify the session timeout&lt;/a&gt; using script. &lt;a href="http://blogs.msdn.com/jgalla/archive/2006/10/11/session-timeout-during-execution.aspx"&gt;John Gallardo goes into more detail where the session might expire while a user is running a report (that takes longer than 10 minutes to run)&lt;/a&gt;, which wasn't happening in my case, but is also a potential cause of the "execution cannot be found" error.&lt;/p&gt;
&lt;p&gt;John's post ends with a note that keeping sessions alive longer can cause the &lt;code&gt;ReportServerTempDB&lt;/code&gt; database to increase in size - something which I'm happy with, but will need monitoring.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a href="http://technorati.com/tag/reporting+services" rel="tag"&gt;reporting services&lt;/a&gt;, &lt;a href="http://technorati.com/tag/sql+server" rel="tag"&gt;sql server&lt;/a&gt;, &lt;a href="http://technorati.com/tag/rsexecutionnotfound" rel="tag"&gt;rsexecutionnotfound&lt;/a&gt; &lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2819.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=_QRtx0UQM9w:QjRx6IY5Kek:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=_QRtx0UQM9w:QjRx6IY5Kek:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=_QRtx0UQM9w:QjRx6IY5Kek:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=_QRtx0UQM9w:QjRx6IY5Kek:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=_QRtx0UQM9w:QjRx6IY5Kek:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=_QRtx0UQM9w:QjRx6IY5Kek:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=_QRtx0UQM9w:QjRx6IY5Kek:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=_QRtx0UQM9w:QjRx6IY5Kek:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=_QRtx0UQM9w:QjRx6IY5Kek:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=_QRtx0UQM9w:QjRx6IY5Kek:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=_QRtx0UQM9w:QjRx6IY5Kek:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/_QRtx0UQM9w" height="1" width="1"/&gt;</description><dc:creator>Thomas Williams</dc:creator><feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/24/reporting-services-execution-xxx-cannot-be-found.aspx</feedburner:origLink></item><item><title>jQuery-UI visual studio intellisense (vsdoc) file</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/q0Eka29l5uQ/jquery-ui-visual-studio-intellisense-vsdoc-file.aspx</link><pubDate>Mon, 20 Jul 2009 07:19:18 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/07/20/jquery-ui-visual-studio-intellisense-vsdoc-file.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2818.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2818.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/07/20/jquery-ui-visual-studio-intellisense-vsdoc-file.aspx#comment</comments><slash:comments>5</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2818.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">jQuery-UI visual studio intellisense (vsdoc) file</source><description>&lt;p&gt;If you’ve ever tried to use jQuery UI with Visual Studio, you’ve run into a JavaScript parse error and you lose JavaScript intellisense in Visual Studio. I wasn’t exactly sure of the issue until I read someone’s advice (who was just trying to get the datepicker working) to simply include a dummy jquery-datepicker-vsdoc.js file. So I did this for the jquery-ui.js file and lo and behold, no JavaScript parsing errors, and I had intellisense for everything EXCEPT jQuery UI.&lt;/p&gt;  &lt;p&gt;Anyway, I dug around and couldn’t find one… so I created the beginnings of one. What you get is very core level (and not an actual working file). Simply add it to your project along side your jquery-ui.js file and VS will automagically realize that when it gives you intellisense for JavaScript and you are using (or have referenced) the jquery-ui file.&lt;/p&gt;  &lt;p&gt;As I said it’s not complete. The areas that I know for sure is that it doesn’t give you any of the theming support.. actually the jquery.ui object is pretty much not there at all… I did get the effects and all the base controls intellisense working (datepicker, tabs, dialogs, etc.). It’s not perfect, but it will be a good start for someone else…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to Use it&lt;/strong&gt;    &lt;br /&gt;So to use this simply add it alongside your jquery-ui.js file in visual studio and visual studio should pick up my file and use it to give you intellisense. If you are using an external JS file you’ll need to use “/// &amp;lt;reference… /&amp;gt; to reference the JS file. &lt;/p&gt;  &lt;p&gt;If I get around to it I will publish an update in the future.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:671d55e1-df05-4ebd-b698-7ee816b9f77c" class="wlWriterEditableSmartContent"&gt;&lt;p&gt;File Attachment: &lt;a href="http://theruntime.com/blogs/images/theruntime_com/blogs/jaykimble/WindowsLiveWriter/jQueryUIvisualstudiointellisensevsdocfil_98FB/jquery-ui-vsdoc_1.js" target="_blank"&gt;jquery-ui-vsdoc.js&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2818.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=q0Eka29l5uQ:Q1yrdYLLKJQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=q0Eka29l5uQ:Q1yrdYLLKJQ:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=q0Eka29l5uQ:Q1yrdYLLKJQ:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=q0Eka29l5uQ:Q1yrdYLLKJQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=q0Eka29l5uQ:Q1yrdYLLKJQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=q0Eka29l5uQ:Q1yrdYLLKJQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=q0Eka29l5uQ:Q1yrdYLLKJQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=q0Eka29l5uQ:Q1yrdYLLKJQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=q0Eka29l5uQ:Q1yrdYLLKJQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=q0Eka29l5uQ:Q1yrdYLLKJQ:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=q0Eka29l5uQ:Q1yrdYLLKJQ:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/q0Eka29l5uQ" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/07/20/jquery-ui-visual-studio-intellisense-vsdoc-file.aspx</feedburner:origLink></item><item><title>WiimoteLib 1.8 Beta 1 Posted</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/tW-dBgw1qdI/wiimotelib-1.8-beta-1-posted.aspx</link><pubDate>Mon, 20 Jul 2009 03:01:10 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/brianpeek/archive/2009/07/20/wiimotelib-1.8-beta-1-posted.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2817.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2817.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/07/20/wiimotelib-1.8-beta-1-posted.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2817.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">WiimoteLib 1.8 Beta 1 Posted</source><description>&lt;p&gt;&lt;a href="http://www.amazon.com/dp/B001TOQ8NO/tag=brianpcom-20" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.brianpeek.com/blogimages/WiimoteLib1.8Beta1Posted_457F/image.png" width="165" height="124" /&gt;&lt;/a&gt; I have posted a new version of &lt;a href="http://wiimotelib.codeplex.com/" target="_blank"&gt;WiimoteLib&lt;/a&gt; as a beta for people to play around with the &lt;a href="http://www.amazon.com/dp/B001TOQ8NO/tag=brianpcom-20" target="_blank"&gt;Wii MotionPlus accessory&lt;/a&gt;.  Please note that this is not a stable release and should only be used if you wish to mess around with the MotionPlus.  Also note that only C# source code is included in this release as it is not a final build.  Here’s the change log:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;v1.8.0.0&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Taiko Drum Master's TaTaCon drum controller supported (Dean Herbert)&lt;/li&gt;    &lt;li&gt;Bare-bones Wii MotionPlus support (wiibrew.org, testing by Tyler Tolley)&lt;/li&gt;    &lt;li&gt;WiimoteTest UI changed to add MotionPlus data&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Please note that the current version is VERY flakey and may not work at all for you.&lt;/li&gt;      &lt;li&gt;Pair your Wiimote, plug in your MotionPlus, call InitializeMotionPlus()&lt;/li&gt;      &lt;li&gt;Extensions plugged into the MotionPlus will give wacky results...not supported...yet!&lt;/li&gt;      &lt;li&gt;Internal changes to perhaps fix some threading issues&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;So remember, it’s a beta, it may not work for you, and the data you’ll get back from the accessory is just the raw data it provides.  You won’t get real orientation values.&lt;/p&gt;  &lt;p&gt;That said, head over to &lt;a href="http://wiimotelib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30401" target="_blank"&gt;CodePlex&lt;/a&gt; and give it a try!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2817.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=tW-dBgw1qdI:XHpmva3TSHw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=tW-dBgw1qdI:XHpmva3TSHw:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=tW-dBgw1qdI:XHpmva3TSHw:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=tW-dBgw1qdI:XHpmva3TSHw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=tW-dBgw1qdI:XHpmva3TSHw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=tW-dBgw1qdI:XHpmva3TSHw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=tW-dBgw1qdI:XHpmva3TSHw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=tW-dBgw1qdI:XHpmva3TSHw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=tW-dBgw1qdI:XHpmva3TSHw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=tW-dBgw1qdI:XHpmva3TSHw:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=tW-dBgw1qdI:XHpmva3TSHw:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/tW-dBgw1qdI" height="1" width="1"/&gt;</description><dc:creator>Brian Peek</dc:creator><feedburner:origLink>http://theruntime.com/blogs/brianpeek/archive/2009/07/20/wiimotelib-1.8-beta-1-posted.aspx</feedburner:origLink></item><item><title>Data Dump to Excel through SSIS and SSRS</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/utyJPlsKiUk/data-dump-to-excel-through-ssis-and-ssrs.aspx</link><pubDate>Thu, 16 Jul 2009 02:07:54 GMT</pubDate><guid isPermaLink="false">http://TheRuntime.com/blogs/gscarfone/archive/2009/07/15/data-dump-to-excel-through-ssis-and-ssrs.aspx</guid><wfw:comment>http://TheRuntime.com/blogs/gscarfone/comments/2816.aspx</wfw:comment><wfw:commentRss>http://TheRuntime.com/blogs/gscarfone/comments/commentRss/2816.aspx</wfw:commentRss><comments>http://TheRuntime.com/blogs/gscarfone/archive/2009/07/15/data-dump-to-excel-through-ssis-and-ssrs.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://TheRuntime.com/blogs/gscarfone/services/trackbacks/2816.aspx</trackback:ping><source url="http://TheRuntime.com/blogs/gscarfone/rss.aspx">Data Dump to Excel through SSIS and SSRS</source><description>&lt;p&gt;There are many ways to handle dumping data to Excel, and while there is no right or wrong way to push the data to Excel, there are some methods which will work out to the most benefit depending on the users' needs.&lt;/p&gt;
&lt;p&gt;For the options below, I will use the example of a department store where the Excel file provides information to Department Managers on their product pricing across 52 weeks.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Option 1&lt;/strong&gt;: Use a Reporting Services report.     &lt;br /&gt;
&lt;strong&gt;When to use&lt;/strong&gt;: When desired set of data frequently changes through parameters, or when data and charts are relatively unchanged.  Few steps needed to get the data (couple stored procs or SQL commands).  Small to medium sized set of data.  Include drilldowns in the Excel file.  Few destinations for subscriptions (unless using data driven subscriptions).&lt;/p&gt;
&lt;p&gt;One great advantage with Reporting Services is the efficiency of generating the report and the flexibility offered in running the report.  Maybe, for our example, the Electronics Department Manager wants to only view television pricing, the can be set up as a parameter to filter the report in RS, while with a SSIS package, the user may need to filter the full set of data in the Excel file after it is generated.  The subscriptions can become unwieldy if there are a lot of destinations (such as 10 departments with 10 different emails), but can be better managed with data driven subscriptions (available in SQL Server Enterprise).  Also, any data manipulation after the report is generated to an Excel file will take some extra time (such as setting up a pivot table or pivot chart to view the data in various ways).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://theruntime.com/blogs/images/theruntime_com/blogs/gscarfone/WindowsLiveWriter/DataDumptoExcelthroughSSISandSSRS_14450/image_8.png" rel="lightbox"&gt;&lt;img height="74" width="404" border="0" style="border-width: 0px; display: inline;" title="image" alt="image" src="http://theruntime.com/blogs/images/theruntime_com/blogs/gscarfone/WindowsLiveWriter/DataDumptoExcelthroughSSISandSSRS_14450/image_thumb_3.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Option 2&lt;/strong&gt;: Use an Excel file through Integration Services     &lt;br /&gt;
&lt;strong&gt;When to use: &lt;/strong&gt;When format of data is of little importance.  Many tasks needed to get data.  Large set of data.  Many subsets of the report and/or delivery destinations.&lt;/p&gt;
&lt;p&gt;Maybe option 1 was not a good choice for our case.  Could be that the data was in several places, the amount of data is more than we would prefer reporting services to generate, etc.  The SSIS package can be set up to key off email addresses and department mappings in a table if we want to send only an excel file with that department’s product information.  We create an Excel file for the data, we set it up as an Excel Destination in SSIS and add the tasks to our package, run the package, and the data in Excel is listed as test.  Not very useful for the Department Managers, because now they will need to convert the numerical data out of the textual form, prior to being able to manipulate the data through pivots, etc..  Also, the header formatting in our Excel file was carried over across the data as well (we can fix the header formatting issue in the excel file from SSIS, and I will cover that more when discussing the steps for setting up SSIS to use Option 3).  Because we don’t necessarily know what the user does not want in the report, we are likely to have a larger Excel file using this method than Option 1, where the user may filter down to products or weeks they are interested in prior to exporting to Excel.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://theruntime.com/blogs/images/theruntime_com/blogs/gscarfone/WindowsLiveWriter/DataDumptoExcelthroughSSISandSSRS_14450/image_4.png" rel="lightbox"&gt;&lt;img height="72" width="404" border="0" style="border-width: 0px; display: inline;" title="image" alt="image" src="http://theruntime.com/blogs/images/theruntime_com/blogs/gscarfone/WindowsLiveWriter/DataDumptoExcelthroughSSISandSSRS_14450/image_thumb_1.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Option 3&lt;/strong&gt;: Use an Excel file through Integration Services with SQL Task Drop/Create Table     &lt;br /&gt;
&lt;strong&gt;When to use:&lt;/strong&gt; When formatting of data is important and/or data manipulation is desired (such as through a pivot table or pivot chart).  Many tasks needed to get the data.  Large set of data.  Many subsets of the report and/or delivery destinations.&lt;/p&gt;
&lt;p&gt;With this option, we are able to merge together aspects of Option 1 and Option 2 to remove some of the limitations that resulted from either method.  Using this method, we can create a pivot table on one sheet and have the data refresh when open (a limitation with Option 2 because the data was non-numeric).  We also leave the option open for the user to add/remove fields from the pivot, a limitation of a pivot in a RS report.    As with Option 2, the Excel file size is likely to be larger than Option 1 and we can use supporting tables in the database to determine where individual reports should go.  There is more time involved in setting up the report in this method compared to the other methods, be depending on the circumstances and users’ needs, the user may have a much better experience in obtaining the information they through this method.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Next update will cover the setup of Option 3 in SSIS, followed by an update later on the topic of Reporting Services.&lt;/p&gt;&lt;img src="http://TheRuntime.com/blogs/gscarfone/aggbug/2816.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=utyJPlsKiUk:EnldnYS6fwQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=utyJPlsKiUk:EnldnYS6fwQ:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=utyJPlsKiUk:EnldnYS6fwQ:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=utyJPlsKiUk:EnldnYS6fwQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=utyJPlsKiUk:EnldnYS6fwQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=utyJPlsKiUk:EnldnYS6fwQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=utyJPlsKiUk:EnldnYS6fwQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=utyJPlsKiUk:EnldnYS6fwQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=utyJPlsKiUk:EnldnYS6fwQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=utyJPlsKiUk:EnldnYS6fwQ:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=utyJPlsKiUk:EnldnYS6fwQ:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/utyJPlsKiUk" height="1" width="1"/&gt;</description><dc:creator>Guiseppe Scarfone</dc:creator><feedburner:origLink>http://TheRuntime.com/blogs/gscarfone/archive/2009/07/15/data-dump-to-excel-through-ssis-and-ssrs.aspx</feedburner:origLink></item><item><title>If You Had 6 Months To a Sudden Death&amp;hellip;</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/9JHbj1RRji8/if-you-had-6-months-to-a-sudden-deathhellip.aspx</link><pubDate>Wed, 15 Jul 2009 12:22:00 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/07/15/if-you-had-6-months-to-a-sudden-deathhellip.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2815.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2815.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/07/15/if-you-had-6-months-to-a-sudden-deathhellip.aspx#comment</comments><slash:comments>4</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2815.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">If You Had 6 Months To a Sudden Death&amp;hellip;</source><description>&lt;p&gt;This is a concept I have been pondering lately (and not just from a personal perspective). To be clear on the concept, here’s the idea: what would you do differently right now, if you knew in 6 months you would be killed in an accident (and not a terminal illness)?&lt;/p&gt;  &lt;p&gt;Personally the answer that we all come up tends to be the same. Spend more time with family and friends. Have more fun. Maybe, join a religion or get deeper in the one that you subscribe to(you gotta worry about the afterlife if you believe in one.. which obviously I do). &lt;/p&gt;  &lt;p&gt;Professionally though, you might think a little differently. For instance I was tweeting this last week and Steve Hebert (can’t find your blog anymore man) responded…&lt;/p&gt;  &lt;p&gt;To summarize him he said that he would find a fun project and forget about unit testing on it (no point if you are dying in the not too distant future… it’s someone else’ problem… ) Interestingly enough I would say the opposite. Now to make it really weird, Steve is probably more in that realm than I am.. My suspicion for why this is has something to do with our current teams. My current team is in many respects very inexperienced; I’d bet the team Steve would pick for himself or who he would have in mind working with him isn’t. My reasons for wanting to do more is that I would want my team to have a better understanding of my code.&lt;/p&gt;  &lt;p&gt;Anyway, for me the more critical fact is that I would probably doing less development on my team.. Seriously, I’d be investing a lot more time into my team helping them grow.&lt;/p&gt;  &lt;p&gt;If I took the fun route, I’d be working on probably PocketCBZ or one of my other “fun” projects (which by the way have no unit tests in them)..&lt;/p&gt;  &lt;p&gt;How about you?&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2815.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9JHbj1RRji8:2tPdwVd_sEU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9JHbj1RRji8:2tPdwVd_sEU:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=9JHbj1RRji8:2tPdwVd_sEU:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9JHbj1RRji8:2tPdwVd_sEU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9JHbj1RRji8:2tPdwVd_sEU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=9JHbj1RRji8:2tPdwVd_sEU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9JHbj1RRji8:2tPdwVd_sEU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9JHbj1RRji8:2tPdwVd_sEU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=9JHbj1RRji8:2tPdwVd_sEU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9JHbj1RRji8:2tPdwVd_sEU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=9JHbj1RRji8:2tPdwVd_sEU:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/9JHbj1RRji8" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/07/15/if-you-had-6-months-to-a-sudden-deathhellip.aspx</feedburner:origLink></item><item><title>Welcome Guiseppe Scarfone to TheRuntime.com</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/vuBUPx4kG2E/welcome-guiseppe-scarfone-to-theruntime.com.aspx</link><pubDate>Wed, 15 Jul 2009 06:48:17 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/07/15/welcome-guiseppe-scarfone-to-theruntime.com.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2814.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2814.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/07/15/welcome-guiseppe-scarfone-to-theruntime.com.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2814.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">Welcome Guiseppe Scarfone to TheRuntime.com</source><description>&lt;p&gt;I just wanted to mention that we added a new blogger here on theruntime.com (actually we have a few more in the pipeline. Guiseppe (“G” hereafter) is my workplace’s resident Reporting Services guru. He’s gonna focusing on Reporting Services (duhh), SSIS (which he also does), and Analysis Services (an area I bet most of us could use some additional knowledge of).&lt;/p&gt;  &lt;p&gt;He already put up an intro post &lt;a href="http://theruntime.com/blogs/gscarfone/archive/2009/07/13/introduction.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2814.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=vuBUPx4kG2E:WADYXSFX8mA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=vuBUPx4kG2E:WADYXSFX8mA:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=vuBUPx4kG2E:WADYXSFX8mA:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=vuBUPx4kG2E:WADYXSFX8mA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=vuBUPx4kG2E:WADYXSFX8mA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=vuBUPx4kG2E:WADYXSFX8mA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=vuBUPx4kG2E:WADYXSFX8mA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=vuBUPx4kG2E:WADYXSFX8mA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=vuBUPx4kG2E:WADYXSFX8mA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=vuBUPx4kG2E:WADYXSFX8mA:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=vuBUPx4kG2E:WADYXSFX8mA:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/vuBUPx4kG2E" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/07/15/welcome-guiseppe-scarfone-to-theruntime.com.aspx</feedburner:origLink></item><item><title>Spammers Are Vermin</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/754lPIRH1kg/spammers-are-vermin.aspx</link><pubDate>Mon, 13 Jul 2009 23:33:59 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jacob/archive/2009/07/14/spammers-are-vermin.aspx</guid><wfw:comment>http://theruntime.com/blogs/jacob/comments/2813.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jacob/comments/commentRss/2813.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jacob/archive/2009/07/14/spammers-are-vermin.aspx#comment</comments><slash:comments>4</slash:comments><trackback:ping>http://theruntime.com/blogs/jacob/services/trackbacks/2813.aspx</trackback:ping><source url="http://theruntime.com/blogs/jacob/rss.aspx">Spammers Are Vermin</source><description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 12px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cockroaches" border="0" alt="Cockroaches" align="right" src="http://theruntime.com/blogs/images/theruntime_com/blogs/jacob/WindowsLiveWriter/SpammersShouldDie_FC9B/Cockroaches_3.png" width="175" height="117" /&gt; My apologies if you’ve tried to access my &lt;a href="http://scruffylookingcatherder.com/"&gt;personal blogs&lt;/a&gt; recently. I’ve been inundated by comment spammers and it has been a tremendous pain in the buttocks getting them straightened out. For a while, I was getting only a half dozen or so a day. Short comments about what an amazing blog/post it was and that they’d definitely be back and/or bookmark/subscribe.&lt;/p&gt;  &lt;p&gt;I could manually delete them without too much inconvenience for a while. Lately, though, there’s been a staggering increase in these weasels so I’ve adopted measures a little more… drastic.&lt;/p&gt;  &lt;h2&gt;A Comment Filter BlogEngine.Net Extension&lt;/h2&gt;  &lt;p&gt;I noticed that most of these spammers shared some distinctive characteristics. Many of them put down the same email address, for example. I also noticed that there were only three or four websites generally involved. Since the spam exists for the purpose of Google pagerank manipulation, the website is probably the important thing to note.&lt;/p&gt;  &lt;p&gt;Now, I looked for a BE.Net extension that’d do this already. Unfortunately, most of the comment filters I found were tied into &lt;a href="http://akismet.com/"&gt;Akismet&lt;/a&gt; or some other blog filter service. That’s more overhead than I really want (in terms of configuration, registering, and complexity etc.). All I really need is something to check the email address, website, and maybe IP address against a known blacklist I can maintain myself. That shouldn’t be difficult, right?&lt;/p&gt;  &lt;h2&gt;Adventures in Comment Filtering&lt;/h2&gt;  &lt;p&gt;On the surface, these things weren’t that hard to accomplish. BlogEngine.Net has some quirks, though, that got in my way until I figured them out. For those interested, I’m going to explain them here. If you want to skip the gory details, head down to the next section. Or if you just want &lt;a href="http://scruffylookingcatherder.com/Files/CommentFilter.zip"&gt;the extension&lt;/a&gt;, download it, pop it into the App_Data/Extensions folder and season to taste.&lt;/p&gt;  &lt;h3&gt;Finding the Right Event&lt;/h3&gt;  &lt;p&gt;My first impulse was to look at the Comment object for useful events to extend. Comment.Validating looked like a good candidate so I tried that one out. Unfortunately, that event never got hit on my blog. It took me a bit to realize that this is because I don’t actually validate comments. Validating comments is a setting where a comment doesn’t show up until it is approved. Since I only do blog maintenance once a day or so, I don’t want to prevent comments from showing up for that long. Validating comments would pretty much stop discussions in their tracks and I don’t want that.&lt;/p&gt;  &lt;p&gt;Once I remembered that comments are managed on the Page object, things went much better. The Page.AddingComment event turned out to be the one I wanted.&lt;/p&gt;  &lt;h3&gt;ExtensionParameter Fun&lt;/h3&gt;  &lt;p&gt;This is the one that held me up the longest. ExtensionParameters can be assigned types that include things like “DropDown” and “ListBox”. That seemed like exactly the kind of thing I could use for my filters. You see, each filter will be of a limited number of valid types: “Website”, “Email”, “IP Address”, or “Length” (I added Length when I noticed that all these messages are really short and I might want to account for that in my filter).&lt;/p&gt;  &lt;p&gt;Unfortunately, these ParamType values are a complete red herring for tabular data storage. I noticed that BE.Net wasn’t actually storing my selection when I tried to add filter entries. The thing is that BE.Net stores tabular values on each parameter in the DataStore and only maintains a link to them by the order in which they appear. So my parameters in the DataStore look like this once saved:&lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 10pt"&gt;   &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Parameters&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Filter&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Label&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Filter&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Label&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;MaxLength&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;100&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;MaxLength&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Required&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Required&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;KeyField&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;KeyField&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;http://www.sonicity.com/&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;http://www.unlockprivateprofiles.com/&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;http://www.lastminutejoy.de/&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;http://www.mooladays.com/&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;http://www.dbpclan.com/&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;200&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;email002545@hotmail.com&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;http://www.ramshyam.com/&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ParamType&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;String&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ParamType&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;SelectedValue&lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Parameters&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Parameters&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;FilterType&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Label&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Filter Type&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Label&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;MaxLength&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;100&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;MaxLength&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Required&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;true&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Required&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;KeyField&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;false&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;KeyField&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Website&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Website&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Website&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Website&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Website&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Length&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Email&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Website&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Values&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ParamType&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;String&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ParamType&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;SelectedValue&lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Parameters&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;It looks to me like list types (DropDown, ListBox, etc.) were mainly implemented with scalar settings in mind rather than tabular settings as this needs to be. This is unfortunate, but I can’t see an easy way to alter the architecture to enable list types easily. I could create my own custom admin page for the extension (and I still may) but that’s more work than I wanted to do to get this running.&lt;/p&gt;

&lt;h2&gt;The Extension&lt;/h2&gt;

&lt;p&gt;So &lt;a href="http://scruffylookingcatherder.com/Files/CommentFilter.zip"&gt;my comment extension&lt;/a&gt; has been up and working for a day or two now and things have calmed down a &lt;em&gt;lot&lt;/em&gt;. This is a good thing. I can’t say that it is extensively tested for the simple reason that I don’t get many legitimate comments on a regular basis.&lt;/p&gt;

&lt;p&gt;Configuration is pretty simple as long as you don’t typo the Filter Type value. Each filter is its own entry in the tabular list on top.&lt;/p&gt;

&lt;p align="center"&gt;&lt;a href="http://theruntime.com/blogs/images/theruntime_com/blogs/jacob/WindowsLiveWriter/SpammersShouldDie_FC9B/commentFilterConfiguration_6.png" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="CommentFilterConfiguration" border="0" alt="CommentFilterConfiguration" src="http://theruntime.com/blogs/images/theruntime_com/blogs/jacob/WindowsLiveWriter/SpammersShouldDie_FC9B/commentFilterConfiguration_thumb_2.png" width="539" height="480" /&gt;&lt;/a&gt; (Click image to enlarge)&lt;/p&gt;

&lt;h3&gt;Talking Back to Spammers&lt;/h3&gt;

&lt;p&gt;When I noticed that it still looks to the user like their comment is saved (because the comment is still part of the page object, it just isn’t saved to the DataStore), I had an inspiration. Since the comment is still displayed to the person who posted it (though not to anyone else), that’s an opportunity to make sure that someone running afoul of my length requirement doesn’t end up wondering what happened. Plus, it gives me a chance to tell spammers that they’ve been noticed (yeah, that’s of dubious value and I may rethink this, but for now, it just makes me feel better). If you enlarged the image above, you’ll see that there are templated values that will be used to replace the comment content. I can be as nasty as I want and the only ones who see it will be the spammers—though you’ll probably want to take it easy on those who stumble on your length filter (if any).&lt;/p&gt;

&lt;h2&gt;Spammers Should Die&lt;/h2&gt;

&lt;p&gt;A day or so after this filter went into effect I started to get new messages. These are clever little plays for sympathy saying things like “my comment got eaten but anyway… &amp;lt;regular spiel here&amp;gt;”. Or another “my blog is getting lots of comment spam, do know any way to help?” The website links were still classic spam sites so these weren’t real users looking for help. Cheeky little locusts, aren’t they? Seriously, someone with the right skills needs to hunt these bastards down and rearrange key organs into innovative new patterns.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6062cdc1-ab9d-4372-b590-e2c99093e191" class="wlWriterEditableSmartContent"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/Spam" rel="tag"&gt;Spam&lt;/a&gt;, &lt;a href="http://technorati.com/tags/BlogEngine.Net" rel="tag"&gt;BlogEngine.Net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Extension" rel="tag"&gt;Extension&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Software" rel="tag"&gt;Software&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Blogging" rel="tag"&gt;Blogging&lt;/a&gt;&lt;/div&gt;&lt;img src="http://theruntime.com/blogs/jacob/aggbug/2813.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=754lPIRH1kg:pLHMIGZIzNY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=754lPIRH1kg:pLHMIGZIzNY:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=754lPIRH1kg:pLHMIGZIzNY:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=754lPIRH1kg:pLHMIGZIzNY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=754lPIRH1kg:pLHMIGZIzNY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=754lPIRH1kg:pLHMIGZIzNY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=754lPIRH1kg:pLHMIGZIzNY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=754lPIRH1kg:pLHMIGZIzNY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=754lPIRH1kg:pLHMIGZIzNY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=754lPIRH1kg:pLHMIGZIzNY:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=754lPIRH1kg:pLHMIGZIzNY:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/754lPIRH1kg" height="1" width="1"/&gt;</description><dc:creator>Jacob</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jacob/archive/2009/07/14/spammers-are-vermin.aspx</feedburner:origLink></item><item><title>Introduction</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/T3RcrPQUZe8/introduction.aspx</link><pubDate>Mon, 13 Jul 2009 22:41:10 GMT</pubDate><guid isPermaLink="false">http://TheRuntime.com/blogs/gscarfone/archive/2009/07/13/introduction.aspx</guid><wfw:comment>http://TheRuntime.com/blogs/gscarfone/comments/2812.aspx</wfw:comment><wfw:commentRss>http://TheRuntime.com/blogs/gscarfone/comments/commentRss/2812.aspx</wfw:commentRss><comments>http://TheRuntime.com/blogs/gscarfone/archive/2009/07/13/introduction.aspx#comment</comments><slash:comments>16</slash:comments><trackback:ping>http://TheRuntime.com/blogs/gscarfone/services/trackbacks/2812.aspx</trackback:ping><source url="http://TheRuntime.com/blogs/gscarfone/rss.aspx">Introduction</source><description>My name is Guiseppe Scarfone.  I am a Senior Report Developer with a focus on Reporting Services, Integration Services, and Analysis Services.&lt;br /&gt;
&lt;br /&gt;
Blog posts will likely be focused mostly around Reporting Services and Integration Services and ways in which to accomplish tasks with the technologies or ways to solve issues that others may experience.&lt;br /&gt;
&lt;br /&gt;
Feel free to share your experiences along with my posts.  I will likely have a post up regarding SSIS and data exporting to Excel within the next couple days.&lt;img src="http://TheRuntime.com/blogs/gscarfone/aggbug/2812.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=T3RcrPQUZe8:Q9EbIHd8_Jg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=T3RcrPQUZe8:Q9EbIHd8_Jg:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=T3RcrPQUZe8:Q9EbIHd8_Jg:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=T3RcrPQUZe8:Q9EbIHd8_Jg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=T3RcrPQUZe8:Q9EbIHd8_Jg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=T3RcrPQUZe8:Q9EbIHd8_Jg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=T3RcrPQUZe8:Q9EbIHd8_Jg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=T3RcrPQUZe8:Q9EbIHd8_Jg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=T3RcrPQUZe8:Q9EbIHd8_Jg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=T3RcrPQUZe8:Q9EbIHd8_Jg:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=T3RcrPQUZe8:Q9EbIHd8_Jg:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/T3RcrPQUZe8" height="1" width="1"/&gt;</description><dc:creator>Guiseppe Scarfone</dc:creator><feedburner:origLink>http://TheRuntime.com/blogs/gscarfone/archive/2009/07/13/introduction.aspx</feedburner:origLink></item><item><title>Two Types of Developers</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/K1Mg2FSZcqU/two-types-of-developers.aspx</link><pubDate>Thu, 09 Jul 2009 05:44:58 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/07/09/two-types-of-developers.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2811.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2811.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/09/two-types-of-developers.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2811.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">Two Types of Developers</source><description>&lt;p&gt;Recently my boss said something like:&lt;/p&gt;
&lt;blockquote&gt;There are two types of developers - ones that are into their tools, and those that just use the tools. You don't need to be the first type to get the job done.&lt;/blockquote&gt;
&lt;p&gt;With regards to most of the programs I use, I'm the first type (and proud of it). However there's some things I have no desire to get into, and would rather just use; DOS batch files, Oracle TNSNAMES.ORA configuration, HTML help authoring, to name a few.&lt;/p&gt;
&lt;p&gt;That one little quote also touched on a tendency that I have to spend too much time fiddling and fine-tuning. Have you ever downloaded a single-use utility to get a task "just right"? Me too!&lt;/p&gt;
&lt;p&gt;Maybe there's some programs that I spend a lot of effort on, that I could afford to take a step back from and just use to get the job done.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/career"&gt;career&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/developers"&gt;developers&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/tools"&gt;tools&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2811.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=K1Mg2FSZcqU:e21Fv5B6_zM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=K1Mg2FSZcqU:e21Fv5B6_zM:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=K1Mg2FSZcqU:e21Fv5B6_zM:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=K1Mg2FSZcqU:e21Fv5B6_zM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=K1Mg2FSZcqU:e21Fv5B6_zM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=K1Mg2FSZcqU:e21Fv5B6_zM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=K1Mg2FSZcqU:e21Fv5B6_zM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=K1Mg2FSZcqU:e21Fv5B6_zM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=K1Mg2FSZcqU:e21Fv5B6_zM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=K1Mg2FSZcqU:e21Fv5B6_zM:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=K1Mg2FSZcqU:e21Fv5B6_zM:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/K1Mg2FSZcqU" height="1" width="1"/&gt;</description><dc:creator>Thomas Williams</dc:creator><feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/09/two-types-of-developers.aspx</feedburner:origLink></item><item><title>Tampa UX .NET next meeting July 29th at the Microsoft Offices (in Tampa)</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/UKXyRi_bXuI/tampa-ux-.net-next-meeting-july-29th-at-the-micrososft.aspx</link><pubDate>Mon, 06 Jul 2009 14:17:15 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/07/06/tampa-ux-.net-next-meeting-july-29th-at-the-micrososft.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2810.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2810.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/07/06/tampa-ux-.net-next-meeting-july-29th-at-the-micrososft.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2810.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">Tampa UX .NET next meeting July 29th at the Microsoft Offices (in Tampa)</source><description>&lt;p&gt;Just wanted to fire off a quick blog post/update on what is happening with Tampa UX this month. With the switch to the Microsoft Offices in Tampa (map, etc to come in a future post), we had to adjust the schedule a little, so sorry if this inconveniences you (BTW, I don’t have credentials for our web site nor do I have the email list at this time, but I will do my best to update them soon).&lt;/p&gt;  &lt;p&gt;Look for an update on our new URL – &lt;a href="http://www.tampaux.NET"&gt;http://www.tampaux.NET&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We have really, really exciting things happening (I can’t wait to share them at the next meeting). I can tell you that next month is going to be mostly about re-inventing our web site. &lt;/p&gt;  &lt;p&gt;Among other things, we’re going to open source our web site’s source code and will be taking suggestions/patches from you (for design as well as development tasks).&lt;/p&gt;  &lt;p&gt;Anyway, stay tuned for more info…&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2810.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UKXyRi_bXuI:mn24rwkx4PU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UKXyRi_bXuI:mn24rwkx4PU:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=UKXyRi_bXuI:mn24rwkx4PU:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UKXyRi_bXuI:mn24rwkx4PU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UKXyRi_bXuI:mn24rwkx4PU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=UKXyRi_bXuI:mn24rwkx4PU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UKXyRi_bXuI:mn24rwkx4PU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UKXyRi_bXuI:mn24rwkx4PU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=UKXyRi_bXuI:mn24rwkx4PU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UKXyRi_bXuI:mn24rwkx4PU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=UKXyRi_bXuI:mn24rwkx4PU:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/UKXyRi_bXuI" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/07/06/tampa-ux-.net-next-meeting-july-29th-at-the-micrososft.aspx</feedburner:origLink></item><item><title>Facebook .NET Programmers Group XNA Session Posted</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/x9btRfmuPy0/facebook-.net-programmers-group-xna-session-posted.aspx</link><pubDate>Thu, 25 Jun 2009 01:02:48 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/brianpeek/archive/2009/06/25/facebook-.net-programmers-group-xna-session-posted.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2809.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2809.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/06/25/facebook-.net-programmers-group-xna-session-posted.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2809.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">Facebook .NET Programmers Group XNA Session Posted</source><description>&lt;p&gt;&lt;a href="http://www.brianpeek.com/blogimages/Faceb.NETProgrammesGroupXNASessionPosted_28DC/NETPROGRAMMERS2bcropSmall2.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="NET PROGRAMMERS2bcropSmall2" border="0" alt="NET PROGRAMMERS2bcropSmall2" align="right" src="http://www.brianpeek.com/blogimages/Faceb.NETProgrammesGroupXNASessionPosted_28DC/NETPROGRAMMERS2bcropSmall2_thumb.jpg" width="160" height="93" /&gt;&lt;/a&gt; The recordings for the session I gave on &lt;a href="http://creators.xna.com/" target="_blank"&gt;XNA Game Studio 3.0&lt;/a&gt; and the XNA Framework to the &lt;a href="http://www.netprogrammers.org/" target="_blank"&gt;Facebook .NET Programmers Group&lt;/a&gt; have now been &lt;a href="http://www.netprogrammers.org/dnportal/Events/tabid/56/Default.aspx" target="_blank"&gt;posted&lt;/a&gt;.  In this session, I give an overview of XNA Game Studio 3.0 and the XNA Framework while building a simple Space Invaders clone named &lt;a href="http://www.c4fbook.com/alienattack" target="_blank"&gt;Alien Attack&lt;/a&gt;.  This game is gone into even greater detail with more features in chapter 1 of our &lt;a href="http://www.amazon.com/dp/0596520743?tag=brianpcom-20&amp;amp;camp=213381&amp;amp;creative=390973&amp;amp;linkCode=as4&amp;amp;creativeASIN=0596520743&amp;amp;adid=19TVZXZSKP8VYN1181MD&amp;amp;" target="_blank"&gt;Coding4Fun book&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;You can find a quick, low-res, streaming version below, or you can download and &lt;a href="http://www.netprogrammers.org/dnlinks/recordings/13/ReplayMeeting.htm" target="_blank"&gt;play the recording at a higher resolution&lt;/a&gt; in &lt;a href="http://office.microsoft.com/en-us/livemeeting/default.aspx" target="_blank"&gt;Microsoft Office Live Meeting&lt;/a&gt;.  I had a great time presenting the topic and hope to speak to the group again in the future!&lt;/p&gt;  &lt;p align="center"&gt;&lt;object width="400" height="302"&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=5044730&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=5044730&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"&gt;&lt;/embed&gt;&lt;/object&gt;    &lt;br /&gt;&lt;a href="http://vimeo.com/5044730"&gt;Meeting #13 - Coding4Fun: Designing a Video Game using XNA Game Studio 3.0&lt;/a&gt; from &lt;a href="http://vimeo.com/user1696553"&gt;Muneeb&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2809.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=x9btRfmuPy0:oxiRM7GESQA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=x9btRfmuPy0:oxiRM7GESQA:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=x9btRfmuPy0:oxiRM7GESQA:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=x9btRfmuPy0:oxiRM7GESQA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=x9btRfmuPy0:oxiRM7GESQA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=x9btRfmuPy0:oxiRM7GESQA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=x9btRfmuPy0:oxiRM7GESQA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=x9btRfmuPy0:oxiRM7GESQA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=x9btRfmuPy0:oxiRM7GESQA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=x9btRfmuPy0:oxiRM7GESQA:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=x9btRfmuPy0:oxiRM7GESQA:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/x9btRfmuPy0" height="1" width="1"/&gt;</description><dc:creator>Brian Peek</dc:creator><feedburner:origLink>http://theruntime.com/blogs/brianpeek/archive/2009/06/25/facebook-.net-programmers-group-xna-session-posted.aspx</feedburner:origLink></item><item><title>Better JavaScript class generation</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/0yyC91kXVPU/better-javascript-class-generation.aspx</link><pubDate>Wed, 24 Jun 2009 15:15:32 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/06/24/better-javascript-class-generation.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2808.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2808.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/06/24/better-javascript-class-generation.aspx#comment</comments><slash:comments>3</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2808.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">Better JavaScript class generation</source><description>&lt;p&gt;For years, I have been espousing how great Script# is. I often do an advanced MS ASP.NET Ajax client talk and end it with a Script# talk. Mainly because I think that the idea of learning the nuances of JavaScript OO techniques can be a little confusing. It’s really the challenge (All you need to do is search the archives of my blog and you’ll see my own confusion on this topic).&lt;/p&gt;  &lt;p&gt;I think many web developers can wrap their heads around building the functionality, but making something private/public/static can get a little confusing. Especially if you are used to using something like C# or VB to do it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://new.efficientcoder.net/"&gt;Kevin “ByteMaster” Wolf&lt;/a&gt; and I have been talking about this. As a result of those talks I started playing with an idea of allowing developers create something that feels more like OO… Anyway, I have come up with a very alpha version. &lt;/p&gt;  &lt;h3&gt;A Better OO For JavaScript??&lt;/h3&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; compileClasses({    &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;     testClass: {        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;         ctor: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;             &lt;span style="color: #008000"&gt;// this is a test        &lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;         },        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;private&lt;/span&gt;: {            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;             privateVar:1,            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;             privateMethd:&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {                &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;                 &lt;span style="color: #008000"&gt;// test method            &lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;             }        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;         },        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;public&lt;/span&gt;:{            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;             &lt;span style="color: #008000"&gt;// public stuff here            &lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt;             publicVar:&lt;span style="color: #006080"&gt;"2"&lt;/span&gt;        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt;         },        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;static&lt;/span&gt;:{            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt;             &lt;span style="color: #008000"&gt;//public statics            &lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt;             staticVar:&lt;span style="color: #006080"&gt;"test"&lt;/span&gt;        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt;         }    &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt;     },    &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt;     testClass2: {        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt;         ctor: testFunc,        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;private&lt;/span&gt;: {            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum24"&gt;  24:&lt;/span&gt;             privateVar2:&lt;span style="color: #006080"&gt;"2"&lt;/span&gt;        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum25"&gt;  25:&lt;/span&gt;         },        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum26"&gt;  26:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;public&lt;/span&gt;:{            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum27"&gt;  27:&lt;/span&gt;             publicMethod:&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {                &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum28"&gt;  28:&lt;/span&gt;                 &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum29"&gt;  29:&lt;/span&gt;             },            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum30"&gt;  30:&lt;/span&gt;             myVar:&lt;span style="color: #006080"&gt;"this is a test"&lt;/span&gt;,            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum31"&gt;  31:&lt;/span&gt;             dispose:&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum32"&gt;  32:&lt;/span&gt;             }        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum33"&gt;  33:&lt;/span&gt;         },        &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum34"&gt;  34:&lt;/span&gt;         implements:[&lt;span style="color: #006080"&gt;"Sys.IDisposable"&lt;/span&gt;]    &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum35"&gt;  35:&lt;/span&gt;     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum36"&gt;  36:&lt;/span&gt; });&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Two classes are defined here.. the first one is the testClass. you will see that I’m creating a JSON object that has members called “&lt;em&gt;ctor&lt;/em&gt;” (constructor), “&lt;em&gt;private&lt;/em&gt;” (private members are contained within this object), “&lt;em&gt;public&lt;/em&gt;” (public members are contained within this object),”&lt;em&gt;static&lt;/em&gt;” (static public members are contained within this object), and “&lt;em&gt;implements&lt;/em&gt;” (“array of interfaces that are implemented). I also will handle single inheritance using a member called “&lt;em&gt;inherits&lt;/em&gt;.” &lt;/p&gt;

&lt;p&gt;I think this makes class definition a little more straightforward for those of us who aren’t closure gurus, and it just might replace the pull of Script# on my life.&lt;/p&gt;

&lt;p&gt;Right now this all works with a simple function that uses the MS Ajax Client framework. I’m considering doing this for other frameworks (so if you love some other framework, never fear I’m considering your framework as well).&lt;/p&gt;

&lt;p&gt;I created a codeplex project which contains a single release that contains a simple ASP.NET project (could have been a simple html page too).. Don’t fret I expect the code to be a ton cleaner in the next version (I’m reading the MEAP version of John Resig’s &lt;a href="http://www.manning.com/resig/"&gt;Secrets of the JavaScript Ninja&lt;/a&gt; (and am learning a ton!)&lt;/p&gt;

&lt;p&gt;Here’s the link: &lt;a href="http://JsClassDef.codeplex.com"&gt;JsClassDef Project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me know what you think.. does it stink? is it cool? I know it ain’t Resig-like, but both Kevin and I think the simplified structure is nice and not un-JavaScript-like&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2808.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=0yyC91kXVPU:jiyAvDCLfFo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=0yyC91kXVPU:jiyAvDCLfFo:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=0yyC91kXVPU:jiyAvDCLfFo:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=0yyC91kXVPU:jiyAvDCLfFo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=0yyC91kXVPU:jiyAvDCLfFo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=0yyC91kXVPU:jiyAvDCLfFo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=0yyC91kXVPU:jiyAvDCLfFo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=0yyC91kXVPU:jiyAvDCLfFo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=0yyC91kXVPU:jiyAvDCLfFo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=0yyC91kXVPU:jiyAvDCLfFo:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=0yyC91kXVPU:jiyAvDCLfFo:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/0yyC91kXVPU" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/06/24/better-javascript-class-generation.aspx</feedburner:origLink></item><item><title>Status of Wii MotionPlus Support for WiimoteLib</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/RwdPmRGjwjY/status-of-wii-motionplus-support-for-wiimotelib.aspx</link><pubDate>Fri, 19 Jun 2009 11:43:59 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/brianpeek/archive/2009/06/19/status-of-wii-motionplus-support-for-wiimotelib.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2807.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2807.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/06/19/status-of-wii-motionplus-support-for-wiimotelib.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2807.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">Status of Wii MotionPlus Support for WiimoteLib</source><description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; See &lt;a href="http://www.brianpeek.com/blog/archive/2009/07/20/wiimotelib-1-8-beta-1-posted.aspx" target="_blank"&gt;this post&lt;/a&gt; for a beta release&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/dp/B001TOQ8NO/tag=brianpcom-20" target="_blank"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="wii-motionplus" border="0" alt="wii-motionplus" align="right" src="http://www.brianpeek.com/blogimages/StatusofWiiMotionPlusSupportforWiimoteLi_BA5C/wiimotionplus.jpg" width="165" height="124" /&gt;&lt;/a&gt; Ok, I get about 10 emails a day on this, so I figure a status update is in order.&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://www.amazon.com/dp/B001TOQ8NO/tag=brianpcom-20" target="_blank"&gt;Wii MotionPlus&lt;/a&gt; extension for the Wiimote was released last week.  Since then, I and others have been working to figure out how the device works.  Unfortunately, it does &lt;strong&gt;NOT&lt;/strong&gt; work as every other extension controller has worked up until this point, mostly due to the fact that the Wii MotionPlus accessory has an expansion port of its own so all of the other extension controllers can plug into it.&lt;/p&gt;  &lt;p&gt;In the past few days, some progress has been made thanks to the folks over at &lt;a href="http://wiibrew.org/wiki/Wiimote/Extension_Controllers" target="_blank"&gt;wiibrew.org&lt;/a&gt;, although functionality is nowhere near complete.  For example, it’s currently impossible to have the Wiimote notify you when the Wii MotionPlus is inserted into the bottom of the Wiimote, like all of the other extension controllers do.&lt;/p&gt;  &lt;p&gt;I have been working with the information at &lt;a href="http://wiibrew.org/wiki/Wiimote/Extension_Controllers" target="_blank"&gt;wiibrew.org&lt;/a&gt; and am trying to get things working reliably with my library so that developers can actually get some degree of functionality out of it.&lt;/p&gt;  &lt;p&gt;So, all that said, expect to see a new (likely beta) version of WiimoteLib “soon” that has some bare-bones Wii MotionPlus functionality included.  It won’t be perfect, complete, or bug free, but it will allow you to tinker with the device a bit.  I will update my blog when the new version is available.  Thanks!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2807.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=RwdPmRGjwjY:Kot7e9Fadg8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=RwdPmRGjwjY:Kot7e9Fadg8:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=RwdPmRGjwjY:Kot7e9Fadg8:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=RwdPmRGjwjY:Kot7e9Fadg8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=RwdPmRGjwjY:Kot7e9Fadg8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=RwdPmRGjwjY:Kot7e9Fadg8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=RwdPmRGjwjY:Kot7e9Fadg8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=RwdPmRGjwjY:Kot7e9Fadg8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=RwdPmRGjwjY:Kot7e9Fadg8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=RwdPmRGjwjY:Kot7e9Fadg8:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=RwdPmRGjwjY:Kot7e9Fadg8:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/RwdPmRGjwjY" height="1" width="1"/&gt;</description><dc:creator>Brian Peek</dc:creator><feedburner:origLink>http://theruntime.com/blogs/brianpeek/archive/2009/06/19/status-of-wii-motionplus-support-for-wiimotelib.aspx</feedburner:origLink></item><item><title>Using the Ajax control toolbox with jQuery (and ASP.NET MVC)</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/Cy7spigG4B8/using-the-ajax-control-toolbox-with-asp.net-mvc-and-jquery.aspx</link><pubDate>Tue, 09 Jun 2009 20:19:30 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/06/09/using-the-ajax-control-toolbox-with-asp.net-mvc-and-jquery.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2806.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2806.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/06/09/using-the-ajax-control-toolbox-with-asp.net-mvc-and-jquery.aspx#comment</comments><slash:comments>7</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2806.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">Using the Ajax control toolbox with jQuery (and ASP.NET MVC)</source><description>&lt;p&gt;[Here’s a preview of something I’m going to show Thursday night at the Tampa MVC group.]&lt;/p&gt;  &lt;p&gt;You may have thought that by jumping on ASP.NET MVC that you have to leave behind all the cool Ajax Control Toolbox controls.. or more than likely you realize that it’s possible to use them, but one has to be a “JavaScript Rocket Scientist” to use them..&lt;/p&gt;  &lt;p&gt;It’s really not, but you do need a couple things to use them.. First of all go &lt;a href="http://weblogs.asp.net/bleroy/archive/2009/05/04/creating-jquery-plug-ins-from-microsoftajax-components.aspx"&gt;&lt;strong&gt;here (Bertrand Le Roy’s blog)&lt;/strong&gt;&lt;/a&gt; and pick up the jQuery plugin that let’s you instantiate MS Ajax Behaviors. Next go &lt;strong&gt;&lt;a href="http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27326"&gt;here to the Ajax Control Toolbox project and get both the ScriptFilesOnly project and the Source code&lt;/a&gt;&lt;/strong&gt; as with MVC you won’t need anything but the JS files since the source/DLLs are for WebForms-related controls, but the Source code contains the debug version of the JS files which we’ll need (By the way, 6 months from now that link to the Ajax Control Toolbox will be old so you’ll probably want to get the latest release, and not the release I pointed at).&lt;/p&gt;  &lt;p&gt;Now let’s look at how you would wire up the DropShadow behavior (aka the DropShadow Extender). First of all, we need to figure out the references. Thanks to Visual Studio 2008, this is easy. Using the text editor/view of your choice, open up the DropShadowBehavior.Debug.js from the Source project (not the ScriptOnly zip); this is located under the zip file at .\AjaxControlToolkitSource\AjaxControlToolkit\DropShadow. When you open up the file you will see the following at the top of the file:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;reference name="MicrosoftAjax.debug.js" /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;reference name="MicrosoftAjaxTimer.debug.js" /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;reference name="MicrosoftAjaxWebForms.debug.js" /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;reference path="../ExtenderBase/BaseScripts.js" /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;reference path="../Common/Common.js" /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;reference path="../RoundedCorners/RoundedCornersBehavior.js" /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt; /// &amp;lt;reference path=&lt;span style="color: #006080"&gt;"../Compat/Timer/Timer.js"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The first 3 items are all the standard MS Ajax client library, so we’ll need to reference those. Now we need to look at the last 4 items. If you open up the files from the ScriptOnly zip file, you aren’t going to find these exact named files; to find the right file look at the end of the file name to find the actual file you need to reference. You’ll also need to reference jQuery and Bertrand Le Roy plugins. Here’s what the references look like:&lt;/p&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &amp;lt;script src=&lt;span style="color: #006080"&gt;"Scripts/MicrosoftAjax.js"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; &amp;lt;script src=&lt;span style="color: #006080"&gt;"Scripts/jquery-1.3.2.js"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; &amp;lt;script src=&lt;span style="color: #006080"&gt;"Scripts/JqueryPlugin/jquery.MicrosoftAjax.js"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; &amp;lt;script src=&lt;span style="color: #006080"&gt;"Scripts/MicrosoftAjaxTimer.js"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;    &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; &amp;lt;script src=&lt;span style="color: #006080"&gt;"Scripts/MicrosoftAjaxWebForms.js"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;    &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt; &amp;lt;script src=&lt;span style="color: #006080"&gt;"Scripts/AjaxCT/AjaxControlToolkit.ExtenderBase.BaseScripts.js"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt; &amp;lt;script src=&lt;span style="color: #006080"&gt;"Scripts/AjaxCT/AjaxControlToolkit.Common.Common.js"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; &amp;lt;script src=&lt;span style="color: #006080"&gt;"Scripts/AjaxCT/AjaxControlToolkit.RoundedCorners.RoundedCornersBehavior.js"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt; &amp;lt;script src=&lt;span style="color: #006080"&gt;"Scripts/AjaxCT/AjaxControlToolkit.Compat.Timer.Timer.js"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt; &amp;lt;script src=&lt;span style="color: #006080"&gt;"Scripts/AjaxCT/AjaxControlToolkit.DropShadow.DropShadowBehavior.js"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Here’s how we can then make every div with a “box” class to have a drop shadow:&lt;/p&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; $().ready(&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;     $(&lt;span style="color: #006080"&gt;".box"&lt;/span&gt;).create(AjaxControlToolkit.DropShadowBehavior,&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;             { &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;                 Opacity: 0.3,&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;                 Rounded: &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;,&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;                 TrackPosition: &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;,&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;                 Width: 5&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;             });&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; });&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;See that JSON string (lines 3-8). If you look at those settings closely and compare them to the Ajax Control Toolbox documentation web site, you’ll see that these are the same settings that the extender uses which should make everything easy.&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2806.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Cy7spigG4B8:UlC2KPVq8qo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Cy7spigG4B8:UlC2KPVq8qo:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Cy7spigG4B8:UlC2KPVq8qo:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Cy7spigG4B8:UlC2KPVq8qo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Cy7spigG4B8:UlC2KPVq8qo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Cy7spigG4B8:UlC2KPVq8qo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Cy7spigG4B8:UlC2KPVq8qo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Cy7spigG4B8:UlC2KPVq8qo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Cy7spigG4B8:UlC2KPVq8qo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Cy7spigG4B8:UlC2KPVq8qo:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Cy7spigG4B8:UlC2KPVq8qo:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/Cy7spigG4B8" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/06/09/using-the-ajax-control-toolbox-with-asp.net-mvc-and-jquery.aspx</feedburner:origLink></item><item><title>Tampa ux&amp;hellip; Meeting tomorrow night (Wed. June 10th, 2009).. 7:30pm</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/WjnAoBl_Osw/tampa-uxhellip-meeting-tomorrow-night-wed.-june-10th-2009.-730pm.aspx</link><pubDate>Tue, 09 Jun 2009 07:20:10 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/06/09/tampa-uxhellip-meeting-tomorrow-night-wed.-june-10th-2009.-730pm.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2805.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2805.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/06/09/tampa-uxhellip-meeting-tomorrow-night-wed.-june-10th-2009.-730pm.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2805.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">Tampa ux&amp;hellip; Meeting tomorrow night (Wed. June 10th, 2009).. 7:30pm</source><description>&lt;p&gt;We are meeting at Buffalo Wild Wings across the street from our normal location tomorrow night. If you have had any complaints or suggestions about how we run Tampa UX, you need to be there. It’s an important meeting. We have some ideas that we want to run by you guys and see what you guys think.. We can’t do this without you!&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2805.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=WjnAoBl_Osw:7w1OSUtE0ec:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=WjnAoBl_Osw:7w1OSUtE0ec:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=WjnAoBl_Osw:7w1OSUtE0ec:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=WjnAoBl_Osw:7w1OSUtE0ec:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=WjnAoBl_Osw:7w1OSUtE0ec:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=WjnAoBl_Osw:7w1OSUtE0ec:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=WjnAoBl_Osw:7w1OSUtE0ec:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=WjnAoBl_Osw:7w1OSUtE0ec:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=WjnAoBl_Osw:7w1OSUtE0ec:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=WjnAoBl_Osw:7w1OSUtE0ec:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=WjnAoBl_Osw:7w1OSUtE0ec:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/WjnAoBl_Osw" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/06/09/tampa-uxhellip-meeting-tomorrow-night-wed.-june-10th-2009.-730pm.aspx</feedburner:origLink></item><item><title>The Coding4Fun Show – Ep 1 with Andy Beaulieu</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/pR_4rfeL3b4/the-coding4fun-show--ep-1-with-andy-beaulieu.aspx</link><pubDate>Mon, 08 Jun 2009 20:22:56 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/brianpeek/archive/2009/06/08/the-coding4fun-show--ep-1-with-andy-beaulieu.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2804.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2804.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/06/08/the-coding4fun-show--ep-1-with-andy-beaulieu.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2804.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">The Coding4Fun Show – Ep 1 with Andy Beaulieu</source><description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="logo" border="0" alt="logo" align="right" src="http://www.brianpeek.com/blogimages/TheCoding4FunShowEp1withAndyBeaulieu_13943/logo.png" width="98" height="114" /&gt; The very first episode of my new &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/"&gt;Coding4Fun Show&lt;/a&gt; is now up on &lt;a href="http://channel9.msdn.com/"&gt;Channel 9&lt;/a&gt;.  This is a show I plan on doing monthly, interviewing developers creating fun and interesting projects, and showcasing what they’re doing.&lt;/p&gt;  &lt;p&gt;In this first episode, I interview &lt;a href="http://www.andybeaulieu.com/"&gt;Andy Beaulieu&lt;/a&gt; and we discuss his &lt;a href="http://physicshelper.codeplex.com/"&gt;Physics Helper for Silverlight, Blend, and Farseer&lt;/a&gt;.  You’ll learn a bit about how he made the library, and how you can use it in your own applications for some pretty cool effects.  You should see the video below if you have &lt;a href="http://www.silverlight.net/"&gt;Silverlight&lt;/a&gt; installed, otherwise head over to the &lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-Physics-Helper-for-Silverlight-by-Andy-Beaulieu/"&gt;episode on Channel 9&lt;/a&gt; to watch and download in a variety of formats for offline viewing.&lt;/p&gt; &lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="320" height="240"&gt; &lt;param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_04_23.xap" /&gt; &lt;param name="initParams" value="m=http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/5/2/7/4/C4FShowE1Beaulieu_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://mschnlnine.vo.llnwd.net/d1/ch9/1/9/5/2/7/4/C4FShowE1Beaulieu_large_ch9.png, postid=472591" /&gt; &lt;param name="background" value="#00FFFFFF" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt; &lt;/object&gt;  &lt;br /&gt;&lt;a href="http://channel9.msdn.com/shows/Coding4FunTV/The-Coding4Fun-Show-Physics-Helper-for-Silverlight-by-Andy-Beaulieu/" target="_blank"&gt;The Coding4Fun Show: Physics Helper for Silverlight by Andy Beaulieu&lt;/a&gt;   &lt;p&gt;Have a look and let me know what you think.  It’s my first time trying this out, so I’d love to hear your feedback.  Thanks!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2804.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=pR_4rfeL3b4:hsRQQjXa-fk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=pR_4rfeL3b4:hsRQQjXa-fk:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=pR_4rfeL3b4:hsRQQjXa-fk:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=pR_4rfeL3b4:hsRQQjXa-fk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=pR_4rfeL3b4:hsRQQjXa-fk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=pR_4rfeL3b4:hsRQQjXa-fk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=pR_4rfeL3b4:hsRQQjXa-fk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=pR_4rfeL3b4:hsRQQjXa-fk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=pR_4rfeL3b4:hsRQQjXa-fk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=pR_4rfeL3b4:hsRQQjXa-fk:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=pR_4rfeL3b4:hsRQQjXa-fk:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/pR_4rfeL3b4" height="1" width="1"/&gt;</description><dc:creator>Brian Peek</dc:creator><feedburner:origLink>http://theruntime.com/blogs/brianpeek/archive/2009/06/08/the-coding4fun-show--ep-1-with-andy-beaulieu.aspx</feedburner:origLink></item><item><title>clientscript as the view controller</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/26Bxc16AElU/clientscript-as-the-view-controller.aspx</link><pubDate>Mon, 01 Jun 2009 12:34:29 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/jaykimble/archive/2009/06/01/clientscript-as-the-view-controller.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2803.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2803.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2009/06/01/clientscript-as-the-view-controller.aspx#comment</comments><slash:comments>3</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2803.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">clientscript as the view controller</source><description>&lt;p&gt;I’m finalizing my demos for next week’s talk at the &lt;a href="http://www.tampadev.org/"&gt;Tampa ASP.NET MVC user group&lt;/a&gt;. I’m also in the midst of a deploy to our test servers of among other things a page that is an experimental architecture for me and my team. I was talking with my boss (Perry for those of you who attend Tampa UX). He had to do a little touch up on my quickly thrown together UI. He told me after playing with it that he really liked how it performs and even how it works. He thinks it’s a pretty good UX.&lt;/p&gt;  &lt;p&gt;It’s actually very similar to DT Mini Mint (the app I’ll show at &lt;a href="http://www.tampadev.org/"&gt;Tampa ASP.NET MVC user group&lt;/a&gt; next week). &lt;/p&gt;  &lt;p&gt;The idea behind it is that the initial page is pushed out by the server and then additional data is retrieved on the fly via services (or JSON views in MVC) using JavaScript; additional functions like updates, deletes, adds, and more complex operations use the same mechanism.. so the page never refreshes once it has been rendered the first time (no, I’m not using any kind of partial view in any of my examples.. not that I couldn’t, but I don’t have that much to render in either app). &lt;/p&gt;  &lt;p&gt;I jokingly referred to “Jay’s Dream Architecture” on Twitter, but was never really able to fully quantify what I was talking about. I likened it to MVC where the model was the service, and the controller was the JavaScript code..&lt;/p&gt;  &lt;p&gt;After &lt;a href="http://devlicious.com/blogs/christopher_bennage/default.aspx"&gt;Christopher Bennage&lt;/a&gt; came to Tampa UX last month, we came up with a term (that I’m sure already existed): JavaScript View Controller (or JC). I loved annoying Christopher by saying I was going to attribute the MVCJC pattern to him (it seems he really loves the over use of letters in Pattern names &amp;lt;smile /&amp;gt;). So remember he came up with the name for this pattern…&lt;/p&gt;  &lt;p&gt;I’m finding more and more that I am building key pages (not all pages) that have everything they need to get started but then user interactions that would normally cause a Postback or a Ajax Postback (for an UpdatePanel), etc. I’m replacing with a client-side Ajax call to a service (for WebForms) or a client-side Ajax call to a controller action (for ASP.NET MVC). The end result is a fairly responsive UI that gives me options.&lt;/p&gt;  &lt;p&gt;Back to my discussion with my boss today.. One of the things we realized is that side effect of this is there is an occasion where I have in memory the all the data in memory for render a client side paged grid (we’re talking at most 1000 rows of data… more like no more than 700 rows.. probably much smaller than that). We realized with this architecture and the rows in memory we could easily let the user filter the results client-side via textbox that updates the grid after filtering by the value in the test box.. without any hops back to the server)..&lt;/p&gt;  &lt;p&gt;A similar thing for my ASP.NET MVC talk in 2 weeks is that I’m going to be replacing a standard select with an autocomplete text box that uses the original select’s options array as the source for the autocomplete suggestions text (you’ll be able to type something new and that new item will be dynamically added to the DB on save). The idea is that the client browser has pieces of data already and doesn’t need to retrieve it. There are also Jquery cache plugins that can help with this (something I won’t be showing)..&lt;/p&gt;  &lt;p&gt;Bottom line is that the client is a for real place where we can write code and make the user’s experience better (I know I’ve not been one to totally go gaga in this arena in the past, but I’m starting to warm to it.. I think Jquery is the big reason why, too.. it’s very mature and really makes it easy to write complex interactions without writing tons of code..)&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2803.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=26Bxc16AElU:9Si4ftsUQX4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=26Bxc16AElU:9Si4ftsUQX4:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=26Bxc16AElU:9Si4ftsUQX4:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=26Bxc16AElU:9Si4ftsUQX4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=26Bxc16AElU:9Si4ftsUQX4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=26Bxc16AElU:9Si4ftsUQX4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=26Bxc16AElU:9Si4ftsUQX4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=26Bxc16AElU:9Si4ftsUQX4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=26Bxc16AElU:9Si4ftsUQX4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=26Bxc16AElU:9Si4ftsUQX4:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=26Bxc16AElU:9Si4ftsUQX4:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/26Bxc16AElU" height="1" width="1"/&gt;</description><dc:creator>Jay Kimble</dc:creator><feedburner:origLink>http://theruntime.com/blogs/jaykimble/archive/2009/06/01/clientscript-as-the-view-controller.aspx</feedburner:origLink></item><item><title>Facebook .NET Programmers Group Session on XNA 3.0</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/TAvg50WJh8k/facebook-.net-programmers-group-session-on-xna-3.0.aspx</link><pubDate>Fri, 29 May 2009 03:46:22 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/brianpeek/archive/2009/05/29/facebook-.net-programmers-group-session-on-xna-3.0.aspx</guid><wfw:comment>http://theruntime.com/blogs/brianpeek/comments/2802.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/brianpeek/comments/commentRss/2802.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/brianpeek/archive/2009/05/29/facebook-.net-programmers-group-session-on-xna-3.0.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/brianpeek/services/trackbacks/2802.aspx</trackback:ping><source url="http://theruntime.com/blogs/brianpeek/rss.aspx">Facebook .NET Programmers Group Session on XNA 3.0</source><description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://www.brianpeek.com/blogimages/Facebook.NETProgrammersGroupSessiononX.0_500B/image.png" width="121" height="62" /&gt; I will be giving a session on Tuesday, June 2nd at 6pm EST to the &lt;a href="http://www.facebook.com/home.php#/group.php?gid=2204912892"&gt;Facebook .NET Programmers group&lt;/a&gt; on XNA 3.0.  This is an online session and everyone is welcome to attend.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Topic&lt;/strong&gt;: Building a Video Game with XNA Game Studio 3.0     &lt;br /&gt;&lt;strong&gt;Abstract: &lt;/strong&gt;This session will demonstrate how to build a very simple 2D game (a Space Invaders clone) using XNA Game Studio 3.0. Attendees will learn how to effectively use the content pipeline, import 2D sprites into XNA, manage input from the keyboard, mouse, Xbox 360 controller and Zune, manage game state, and debug the resulting game. The sample code will be built on a PC and run on the PC, Xbox 360, and Zune platforms when complete.     &lt;br /&gt;&lt;strong&gt;Date: &lt;/strong&gt;June 2nd, 2009     &lt;br /&gt;&lt;strong&gt;Time:&lt;/strong&gt; 6PM Eastern | 10PM GMT/UTC - Get local event time in your city: &lt;a href="http://tinyurl.com/l9hq65"&gt;http://tinyurl.com/l9hq65&lt;/a&gt;     &lt;br /&gt;&lt;strong&gt;Add to Outlook&lt;/strong&gt;: &lt;a href="http://tinyurl.com/mpp5of"&gt;http://tinyurl.com/mpp5of&lt;/a&gt;     &lt;br /&gt;&lt;strong&gt;RSVP and Event Details:&lt;/strong&gt; &lt;a href="http://www.facebook.com/event.php?eid=49178981206"&gt;http://www.facebook.com/event.php?eid=49178981206&lt;/a&gt;     &lt;br /&gt;&lt;strong&gt;Live Meeting Link to join meeting:&lt;/strong&gt; &lt;a href="http://tinyurl.com/ago484"&gt;http://tinyurl.com/ago484&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I’ll also be giving away a copy or two of our &lt;a href="http://www.amazon.com/dp/0596520743?tag=brianpcom-20&amp;amp;camp=213381&amp;amp;creative=390973&amp;amp;linkCode=as4&amp;amp;creativeASIN=0596520743&amp;amp;adid=0F8Y0560VYFSSH9NKQZZ&amp;amp;"&gt;Coding4Fun book&lt;/a&gt;.  Hope to “see” you all there!&lt;/p&gt;
Cross Posted from &lt;a href="http://www.brianpeek.com/"&gt;www.brianpeek.com&lt;/a&gt;.&lt;img src="http://theruntime.com/blogs/brianpeek/aggbug/2802.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=TAvg50WJh8k:b5zVuhPaTDc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=TAvg50WJh8k:b5zVuhPaTDc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=TAvg50WJh8k:b5zVuhPaTDc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=TAvg50WJh8k:b5zVuhPaTDc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=TAvg50WJh8k:b5zVuhPaTDc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=TAvg50WJh8k:b5zVuhPaTDc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=TAvg50WJh8k:b5zVuhPaTDc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=TAvg50WJh8k:b5zVuhPaTDc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=TAvg50WJh8k:b5zVuhPaTDc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=TAvg50WJh8k:b5zVuhPaTDc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=TAvg50WJh8k:b5zVuhPaTDc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/TAvg50WJh8k" height="1" width="1"/&gt;</description><dc:creator>Brian Peek</dc:creator><feedburner:origLink>http://theruntime.com/blogs/brianpeek/archive/2009/05/29/facebook-.net-programmers-group-session-on-xna-3.0.aspx</feedburner:origLink></item><item><title>Setting Focus to Control in an IFRAME using JQuery</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/hfo3OT7clnU/setting-focus-to-control-in-an-iframe-using-jquery.aspx</link><pubDate>Thu, 28 May 2009 03:58:54 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/05/28/setting-focus-to-control-in-an-iframe-using-jquery.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2801.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2801.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/05/28/setting-focus-to-control-in-an-iframe-using-jquery.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2801.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">Setting Focus to Control in an IFRAME using JQuery</source><description>Had a gnarly problem this afternoon, while trying to set focus to a control in an IFRAME.  &lt;br /&gt;
&lt;br /&gt;
Using JQuery, I had created the IFRAME with the JQuery plugin &lt;a href="http://jquery.com/demo/thickbox/"&gt;ThickBox&lt;/a&gt;. ThickBox provides functionality that can simulate a modal dialog using an IFRAME, loading a page from a URL into the IFRAME (&lt;a href="http://jquery.com/demo/thickbox/#examples"&gt;check out the demo here&lt;/a&gt; - scroll down to "Inline Content"). The page loaded inside the IFRAME contained code to set the focus which was actually being called, but &lt;strong&gt;after&lt;/strong&gt; the page loaded something else was stealing the focus.  &lt;br /&gt;
&lt;br /&gt;
I began to look at the javascript code in the parent that created the IFRAME.  &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://alexking.org/blog/2006/01/17/iframe-element-focus"&gt;I discovered to set the focus to a control in an IFRAME that has already been loaded, you need to set the focus to the IFRAME first (thanks Alex King).&lt;/a&gt; &lt;a href="http://simple.procoding.net/2008/03/21/how-to-access-iframe-in-jquery/"&gt;I also benefited from "How to access IFRAME in JQuery" over at ProCoding (thanks Taras Ilnytskyy).&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here's the code to set focus to a control in an IFRAME using JQuery (called from the parent window, after the IFRAME has been loaded and shown):
&lt;pre class="javascript"&gt;	&lt;br /&gt;	//get the IFRAME element - note no hashes in the name, we're using browser functionality &lt;br /&gt;	var iframeRef = document.getElementById("IFRAMEID"); &lt;br /&gt;	//focus the IFRAME element &lt;br /&gt;	$(iframeRef).focus(); &lt;br /&gt;	//use JQuery to find the control in the IFRAME and set focus &lt;br /&gt;	$(iframeRef).contents().find("#CONTROLID").focus(); &lt;/pre&gt;
I hope this helps someone! &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;UPDATE: Fixed formatting.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/jquery"&gt;jquery&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/javascript"&gt;javascript&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/web"&gt;web&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/iframe"&gt;iframe&lt;/a&gt;&lt;/em&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2801.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=hfo3OT7clnU:_fARfk0H0pw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=hfo3OT7clnU:_fARfk0H0pw:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=hfo3OT7clnU:_fARfk0H0pw:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=hfo3OT7clnU:_fARfk0H0pw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=hfo3OT7clnU:_fARfk0H0pw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=hfo3OT7clnU:_fARfk0H0pw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=hfo3OT7clnU:_fARfk0H0pw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=hfo3OT7clnU:_fARfk0H0pw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=hfo3OT7clnU:_fARfk0H0pw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=hfo3OT7clnU:_fARfk0H0pw:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=hfo3OT7clnU:_fARfk0H0pw:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/hfo3OT7clnU" height="1" width="1"/&gt;</description><dc:creator>Thomas Williams</dc:creator><feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/05/28/setting-focus-to-control-in-an-iframe-using-jquery.aspx</feedburner:origLink></item><item><title>Firefox vs Flock</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/Vn4lOUUDlMY/firefox-vs-flock.aspx</link><pubDate>Mon, 25 May 2009 07:54:26 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/thomasswilliams/archive/2009/05/25/firefox-vs-flock.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2799.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2799.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/05/25/firefox-vs-flock.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2799.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">Firefox vs Flock</source><description>I've blogged &lt;a href="http://theruntime.com/blogs/thomasswilliams/archive/2007/11/25/flock-the-social-web-browser.aspx"&gt;previously&lt;/a&gt; about how I use the &lt;a href="http://flock.com/"&gt;Flock web  browser&lt;/a&gt;, but recently decided to try my luck at the latest release of &lt;a href="http://theruntime.com/blogs/thomasswilliams/archive/2009/05/14/5-firefox-add-ons-i-cant-live-without.aspx"&gt; Firefox&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Flock had several features that enticed me to adopt it in late 2007:  social media sidebar integrated with Facebook, blog post editor, in-built image  uploader which connected to Flickr and Picasa, media bar, and one-click access  to services I constantly used (like Delicious).&lt;br /&gt;&lt;br /&gt;My biggest gripe with  Flock was that the user interface was not customisable enough. Also, the browser had more features than I'd ever  need.&lt;br /&gt;&lt;br /&gt;Buying a widescreen  monitor with very limited vertical space was the straw that finally made me  switch from Flock to Firefox, permanently. Here's a comparison between the  two (the red highlights represent the menu &amp;amp; toolbar space used):&lt;br /&gt;&lt;img style="max-width: 800px;" src="http://lh3.ggpht.com/_Ln7LRKt4zEw/ShpY2BI8ZOI/AAAAAAAABM4/t4qtLGZ1taA/s800/firefox-vs-flock.jpg" /&gt;&lt;br /&gt;I use a couple of Firefox add-ons to reduce the vertical space  used (that's the other thing...Firefox has an unbelievable collection of add-ons):&lt;br /&gt;&lt;ul style="list-style-type: none;"&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3895"&gt;Personal Menu&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1272"&gt;Status Buttons&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5890"&gt;Tree Style Tabs&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Flock was good to me. Now, I just need the screen space, and don't need a lot of its features.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Tags: &lt;a class="performancingtags" href="http://technorati.com/tag/flock" rel="tag"&gt;flock&lt;/a&gt;, &lt;a class="performancingtags" href="http://technorati.com/tag/browser" rel="tag"&gt;browser&lt;/a&gt;, &lt;a class="performancingtags" href="http://technorati.com/tag/firefox" rel="tag"&gt;firefox&lt;/a&gt;&lt;/em&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2799.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Vn4lOUUDlMY:Rytor-joVAw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Vn4lOUUDlMY:Rytor-joVAw:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Vn4lOUUDlMY:Rytor-joVAw:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Vn4lOUUDlMY:Rytor-joVAw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Vn4lOUUDlMY:Rytor-joVAw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Vn4lOUUDlMY:Rytor-joVAw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Vn4lOUUDlMY:Rytor-joVAw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Vn4lOUUDlMY:Rytor-joVAw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=Vn4lOUUDlMY:Rytor-joVAw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Vn4lOUUDlMY:Rytor-joVAw:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=Vn4lOUUDlMY:Rytor-joVAw:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/Vn4lOUUDlMY" height="1" width="1"/&gt;</description><dc:creator>Thomas Williams</dc:creator><feedburner:origLink>http://theruntime.com/blogs/thomasswilliams/archive/2009/05/25/firefox-vs-flock.aspx</feedburner:origLink></item><item><title>IDENTITY vs. ROWGUID, Part II</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/CcjO_fvSMxY/identity-vs.-rowguid-part-ii.aspx</link><pubDate>Thu, 21 May 2009 14:30:33 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/devprime/archive/2009/05/21/identity-vs.-rowguid-part-ii.aspx</guid><wfw:comment>http://theruntime.com/blogs/devprime/comments/2797.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/devprime/comments/commentRss/2797.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/devprime/archive/2009/05/21/identity-vs.-rowguid-part-ii.aspx#comment</comments><slash:comments>5</slash:comments><trackback:ping>http://theruntime.com/blogs/devprime/services/trackbacks/2797.aspx</trackback:ping><source url="http://theruntime.com/blogs/devprime/rss.aspx">IDENTITY vs. ROWGUID, Part II</source><description>&lt;p&gt;So wow, this was the week of nonstop GUID ID discussion (in many different forms). Given that, I thought it'd be appropriate to expand on my &lt;a href="http://theruntime.com/blogs/devprime/archive/2009/05/19/identity-vs.-rowguid.aspx"&gt;last post&lt;/a&gt;. Surprisingly, the discussions have been angst and rant-free, which is a good thing. I've often wondered why professional engineers stoop to zealous and rancorous name-calling in dogmatic flames rather than objectively looking at all sides of an issue like the scientists we're supposed to be, so it's nice to engage in something that doesn't sound like jihad run amok. &lt;/p&gt;
&lt;p&gt;This brings us to a central point in the debate, which falls into that fulcrum point between KISS/YAGNI and purposeful programming. One of the arguments often leveled against RAD development or the so-called "Mort" programmers, is they thrash about until they find something, anything, that appears to work and go with it, never taking into account the harm the approach might entail; the idea being that developers ought to program with a sufficient understanding of the stakes, and code with intent and purpose, not out of incident. We then have to balance that notion against the concept of YAGNI, which means not to over-evaluate nor over-engineer a situation and go with the best yet simplest solution available. However, I'm finding that a lot of people hide behind YAGNI, and use it as a crude bludgeoning tool for bashing and ignoring what they can't comprehend – which is the wrong approach to take. With that in mind, I'd like to point out once more that the purpose of my posts here isn't to say "Thou shalt never use GUIDs as IDs", but rather that I'm presenting issues that are crucial in order to make informed decisions. More importantly, I'm presenting arguments for both sides and allowing you (the reader) to come to your own conclusions based on your particular scenario, which is far more objective and constructive than saying "always do this" or "never do that". &lt;/p&gt;
&lt;p&gt;One of the points I raised about using nonsequential GUIDs for keys is the index fragmentation. I soon realized that a lot of people didn't fully comprehend what this really meant, so this post is really a primer on index fragmentation and why you should or shouldn't care. &lt;/p&gt;
&lt;p&gt;First, if your tables are very small, this doesn't pose much of a problem, if any at all. In fact, if your tables are small enough (for example, 10 rows or less) an index can be completely ignored for queries, as the query optimizer can favor a table scan over an index scan, since with so few records, a table scan can reach a desirable record faster than (or on par with) going via index on average. &lt;/p&gt;
&lt;p&gt;Second, the problems you encounter with index fragmentation grow proportionally with table size and frequency of access. In other words, the more data there is, and the more concurrent reads/writes taking place, the more you will get noticeably slammed by index fragmentation. What this means is that to a certain degree, you can live with index fragmentation if you feel you absolutely have to, depending largely on the nature (size and use) of the table. Don't relegate this decision for later consideration! It's not a trivial matter to change the key and index structure of a table post production deployment. This could impact your entire architecture. &lt;/p&gt;
&lt;p&gt;Before showing you what's really at stake with index fragmentation, it's important to understand the indexes themselves. And I find that with most developers I talk to today, the understanding of databases is very limited because they see it as some abstract physical storage black box not unlike a relationally structured file system (I can hear the anguished screams of terror DBAs are giving off right now). &lt;/p&gt;
&lt;p&gt;First, SQL Server has two kinds of indexes: clustered and non-clustered. They are both implemented as B-Trees, meaning that you have a tree structure of nodes (for fast searching). In both cases, the indexed values are stored in order (from min to max, or alphabetically). The main difference between clustered and non-clustered indexes is that clustered indexes incorporate the actual storage of the data, whereas non-clustered indexes are separate lookups pointing to the data. OK, for a better idea of this notion, think of clustered indexes like a directory, encyclopedia, or phone book – the contents of the book itself are stored in order by a name or key. A non-clustered index is more like an index in a chemistry textbook: the index entries are in ordered, but it is separate from the content (found way in the back in some appendix), and each index entry points back to a specific fragment of actual content, which is in turn written out completely independent of the order of the index. Otherwise, both are pretty similar in terms of physical storage in the DB file. There are other nuances (such as whether or not unique keys are present), but those are somewhat inconsequential to this particular matter. &lt;/p&gt;
&lt;p&gt;SQL Server is designed around pages of data, each containing 8Kb. As long as data is contained within a single page, things are fast. But when SQL Server has to switch pages, you get a performance hit, particularly when said page isn't contained in the same block (extent) and/or isn't cached and physical IO has to occur. Just like everything else in the DB, your indexes are written on pages. Now let's say that (in a really simplified view) your index, containing simple integer IDs for this example, looks like this: &lt;/p&gt;
&lt;p&gt;&lt;img alt="original index" src="http://theruntime.com/blogs/images/theruntime_com/blogs/devprime/403/r_db_index_a.png" /&gt;&lt;/p&gt;
&lt;p&gt;Notice that each page is full and everything is sequential and contiguous. This is what a good index is supposed to look like. The index Value here is the ID itself. Now let's pretend I have to insert a row where the index value (the key in this case) is 6. This entry has to be written into a page that already has data, and worse, is already full. Now SQL Server has to do a page split and relocation – which is very expensive for a write. Your index would now look like this: &lt;/p&gt;
&lt;p&gt;&lt;img alt="original index" src="http://theruntime.com/blogs/images/theruntime_com/blogs/devprime/403/r_db_index_b.png" /&gt;&lt;/p&gt;
&lt;p&gt;Notice that for entry 6 to be inserted in order, the rest of that page had to be split off, and relocated to a new page – which also happens to be at the end, so the page itself is also out of order. This affects query performance in a number of ways because the pages aren't contiguous (the scan has to bounce around), and caching will be difficult depending on the spacing between the pages (which is why this problem grows worse as the table gets larger). For severely fragmented indexes, which is what happens with random/pseudo-random/hashed values (like non-sequential GUIDs), page switching on queries will be very noticeable. &lt;/p&gt;
&lt;p&gt;Also, notice that you now have partially-filled pages. Page 1 and Page 3 have holes with no data. This sharply increases the size of the data file for large, fragmented indexes. So in addition to GUIDs being physically larger values than the INT IDs, you get substantial data bloat with page fragmentation. &lt;/p&gt;
&lt;p&gt;You can avoid a lot of these problems simply by using sequential GUID keys (for example, by using the NEWSEQUENTIALID() function) if you don't care much for INT IDs. Though the size of the data will increase, obviously, storage is cheap and a lot of people simply won't care, although you still have to take performance into account. However, this isn't really possible when using client-side generated IDs, barring some complex infrastructure. &lt;/p&gt;
&lt;p&gt;So what makes me curious is why people want to use client-side generated IDs to begin with. This is genuine curiosity because it's possible the solution is solving problems that no longer exist or might be better served with a different solution. One of the reasons for client-generated unique IDs used to be that you couldn't always depend on the server to hand you the correct the identity value for parent-child relationships inserted in batch. For example, @@IDENTITY could hand you the wrong ID value since it grabbed the last ID produced by the session, which could have been the result of an insert trigger write to a different table, rather than the identity insert of the present command statement (as an example). However, there are more elegant ways around this today, particularly with the SCOPE_IDENTITY() function. Of course, that's all SQL Server specific, so YMMV depending on your particular scenario. &lt;/p&gt;&lt;img src="http://theruntime.com/blogs/devprime/aggbug/2797.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CcjO_fvSMxY:ldCOwo3tWGQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CcjO_fvSMxY:ldCOwo3tWGQ:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=CcjO_fvSMxY:ldCOwo3tWGQ:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CcjO_fvSMxY:ldCOwo3tWGQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CcjO_fvSMxY:ldCOwo3tWGQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=CcjO_fvSMxY:ldCOwo3tWGQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CcjO_fvSMxY:ldCOwo3tWGQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CcjO_fvSMxY:ldCOwo3tWGQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=CcjO_fvSMxY:ldCOwo3tWGQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=CcjO_fvSMxY:ldCOwo3tWGQ:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/CcjO_fvSMxY" height="1" width="1"/&gt;</description><dc:creator>DevPrime</dc:creator><feedburner:origLink>http://theruntime.com/blogs/devprime/archive/2009/05/21/identity-vs.-rowguid-part-ii.aspx</feedburner:origLink></item><item><title>IDENTITY vs. ROWGUID</title><link>http://feedproxy.google.com/~r/TheRuntime/~3/xAHWUYOd294/identity-vs.-rowguid.aspx</link><pubDate>Tue, 19 May 2009 09:38:43 GMT</pubDate><guid isPermaLink="false">http://theruntime.com/blogs/devprime/archive/2009/05/19/identity-vs.-rowguid.aspx</guid><wfw:comment>http://theruntime.com/blogs/devprime/comments/2796.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/devprime/comments/commentRss/2796.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/devprime/archive/2009/05/19/identity-vs.-rowguid.aspx#comment</comments><slash:comments>11</slash:comments><trackback:ping>http://theruntime.com/blogs/devprime/services/trackbacks/2796.aspx</trackback:ping><source url="http://theruntime.com/blogs/devprime/rss.aspx">IDENTITY vs. ROWGUID</source><description>&lt;p&gt;I had the pleasure of once again talking with Dan Simmons from MS at a TechEd mix session. He probably thinks I'm a pain in the butt with all my EF requests, but I do enjoy our conversations. Anyway, after the session, we were discussing data architectural decisions with some of the attendees when primary keys came up. At some point, the issue took a turn towards the old INT ID vs. GUID discussion. Ironically, I had the same discussion with someone else this week, so I figured it would make a good post.&lt;/p&gt;
&lt;p&gt;INT ID vs. GUID is one of those long-standing arguments that for whatever reason rival SProcs vs. No-SProcs in terms of passionate opposition. People either love GUIDs or hate them. But the fact of the matter is that a lot of people simply have a hard time understanding the details enough to make an informed decision.&lt;/p&gt;
&lt;p&gt;My first reaction is to say that GUID keys are there for a reason. That reason, as far as I can tell from back in the day was replication. In fact, on some of the tooling, you'll see uniqueidentifier identities referred to as replication identities. At this point, Dan quickly pointed out that GUIDs aren't guaranteed to be unique (at least across machines in this scenario), and that's a very good point to stress. In the old documentaion, you would see scenarios where people dumped data from disperate systems into a central BI database for analysis. The problem then becomes one of overlapping IDs. Enter GUID ID. But really, that only mitigates the problem to a certain degree since you still have to code for the occassional identifier collision.&lt;/p&gt;
&lt;p&gt;GUIDs as IDs have two main drawbacks:&lt;/p&gt;
&lt;p&gt;1) The size. They are four times the size of a normal INT. That may not seem like a lot for today's storage hardware, but on a table of 4 million rows, that's 12MB of difference. Multiply that by several tables and/or more rows, and you get the idea. Now, many tables may not get that big and you don't necessarily have to worry about it much.&lt;/p&gt;
&lt;p&gt;2) (another reminder that Dan brought up) GUIDs do not index well, particularly if you are talking about clustered indexes (the default for primary keys in SQL server tooling). In this scenario, because they aren't sequential, GUIDs tend to fragment the index horribly. This both wastes space and can make index updates and relocation computationally expensive. In 2005, SQL Server introduced a new function - NEWSEQUENTIALID() - to help alleviate this problem. However, most people don't use it, and you still have to contend with the size issue.&lt;/p&gt;
&lt;p&gt;I've seen people also argue that the set of operators for GUIDs are more limited than the set for INTs, but I don't think this argument carries a lot of weight. After all, you shouldn't be using arithematic operators on primary keys anyway. Comparison operators are perfectly valid for both though. However, if you don't have sequential IDs, then comparisons for ranking and sampling (for example, for paging) become a lot trickier.&lt;/p&gt;
&lt;p&gt;At the end of the day, there's nothing particularly evil about using GUIDs for identifiers. However, I think people need to fit the solution to a specific problem and carefully weigh the pros and cons. Personally, I'd go with INT identifiers natrually unless there was a compelling reason to use GUIDs. And expected data size isn't one of those reasons. If you need more than 4 billion records, you can always upgrade to BIGINT.&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/devprime/aggbug/2796.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=xAHWUYOd294:tv8XmbA4ckc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=xAHWUYOd294:tv8XmbA4ckc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=xAHWUYOd294:tv8XmbA4ckc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=xAHWUYOd294:tv8XmbA4ckc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=xAHWUYOd294:tv8XmbA4ckc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=xAHWUYOd294:tv8XmbA4ckc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=xAHWUYOd294:tv8XmbA4ckc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=xAHWUYOd294:tv8XmbA4ckc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?i=xAHWUYOd294:tv8XmbA4ckc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TheRuntime?a=xAHWUYOd294:tv8XmbA4ckc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TheRuntime?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheRuntime/~4/xAHWUYOd294" height="1" width="1"/&gt;</description><dc:creator>DevPrime</dc:creator><feedburner:origLink>http://theruntime.com/blogs/devprime/archive/2009/05/19/identity-vs.-rowguid.aspx</feedburner:origLink></item></channel></rss>
