<rss version="2.0" 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/"><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><item><title>Wed, Feb 10, 2010: Basics of Building Silverlight Applications (For Business Devs)</title><link>http://theruntime.com/blogs/jaykimble/archive/2010/02/09/wed-feb-10-2010-basics-of-building-silverlight-applications-for.aspx</link><pubDate>Tue, 09 Feb 2010 13:59:56 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2010/02/09/wed-feb-10-2010-basics-of-building-silverlight-applications-for.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2835.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2835.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2010/02/09/wed-feb-10-2010-basics-of-building-silverlight-applications-for.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2835.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">Wed, Feb 10, 2010: Basics of Building Silverlight Applications (For Business Devs)</source><description>&lt;strong /&gt;Tomorrow, is our next meeting at 7pm at the MS offices (check out the &lt;a href="javascript:void(0);/*1265723366282*/"&gt;TampaSLUG&lt;/a&gt; site for more info). I want to stress that this is a very basic 101 type of talk. If you have a desire to learn Silverlight, but don't know where to begin, or simply just want to get some background in it. This is the group and night for you! The night will be focused on a couple topics, but it's mostly about building forms with Silverlight and binding data to those forms to make your life easier (SIlverlight is actually easier in many respects from what you are used to if you are a web developer).&lt;br /&gt;
&lt;br /&gt;
BTW, I hear its the speaker's first presentation on Silverlight so at the  very least it will be fun to see him sweat.&lt;br /&gt;
&lt;br /&gt;
We will have pizza and soda, so plan on coming! BUT, there is one thing you must do! Register here --&amp;gt; http://tampaslug0210.eventbrite.com/&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2835.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Tampa Silverlight UG (1/14/2010 ): Introduction to the Silverlight Workflow</title><link>http://theruntime.com/blogs/jaykimble/archive/2010/01/10/tampa-silverlight-ug-1142010--introduction-to-the-silverlight-workflow.aspx</link><pubDate>Sun, 10 Jan 2010 21:58:13 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/jaykimble/archive/2010/01/10/tampa-silverlight-ug-1142010--introduction-to-the-silverlight-workflow.aspx</guid><wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2834.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2834.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/jaykimble/archive/2010/01/10/tampa-silverlight-ug-1142010--introduction-to-the-silverlight-workflow.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/jaykimble/services/trackbacks/2834.aspx</trackback:ping><source url="http://theruntime.com/blogs/jaykimble/rss.aspx">Tampa Silverlight UG (1/14/2010 ): Introduction to the Silverlight Workflow</source><description>&lt;p&gt;I want to blog a quick reminder to my readers the first (official) meeting of the Tampa SLUG (Silverlight User Group) is Thursday, Jan 14th, 2010 at the Microsoft offices in Tampa. We’re starting the group off with a series of topics that will be good for beginners. Here’s the info on the first topic:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introduction to the Silverlight Workflow:&lt;/strong&gt; One of the promises of separating business logic from the display is that designers and developers can more easily work with each other to create an application. Learn about strategies to actually deliver on this promise and make your data and logic more designer friendly.&lt;/p&gt;
&lt;p&gt;This topic will be done by &lt;strong&gt;Bill Reiss&lt;/strong&gt; (Silverlight MVP). We are priviledged to have Bill --the first ever Silverlight MVP-- as a part of our group. Bill could present every month, but he won’t. He will be around to help out (as well as correct me and others who will be presenting). If you plan on coming please RSVP at &lt;a href="http://silvertb.eventbrite.com/"&gt;http://silvertb.eventbrite.com/&lt;/a&gt; so we can know how many folks are coming.&lt;/p&gt;
&lt;p&gt;You can read up more about our group here at &lt;a href="http://www.tampaslug.net"&gt;http://www.tampaslug.net&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2834.aspx" width="1" height="1" /&gt;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Google Reader's "Explore" feature</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2009/11/30/google-readers-explore-feature.aspx</link><pubDate>Mon, 30 Nov 2009 14:31:05 GMT</pubDate><guid isPermaLink="true">http://theruntime.com/blogs/thomasswilliams/archive/2009/11/30/google-readers-explore-feature.aspx</guid><wfw:comment>http://theruntime.com/blogs/thomasswilliams/comments/2833.aspx</wfw:comment><wfw:commentRss>http://theruntime.com/blogs/thomasswilliams/comments/commentRss/2833.aspx</wfw:commentRss><comments>http://theruntime.com/blogs/thomasswilliams/archive/2009/11/30/google-readers-explore-feature.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://theruntime.com/blogs/thomasswilliams/services/trackbacks/2833.aspx</trackback:ping><source url="http://theruntime.com/blogs/thomasswilliams/rss.aspx">Google Reader's "Explore" feature</source><description>&lt;p&gt;I recently discovered the new &lt;a href="http://googlereader.blogspot.com/2009/10/reading-gets-personal-with-popular.html"&gt;Google Reader "Explore" section&lt;/a&gt;, just above my subscriptions in the left-hand panel:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/QtI5aAMg0iI8E-4Gv7X7yg?feat=embedwebsite"&gt;&lt;img width="400" height="231" border="0" src="http://lh3.ggpht.com/_Ln7LRKt4zEw/SxNKGTuuP4I/AAAAAAAABfc/l49AIZywC5g/s800/google-reader-explore.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Using it like my screenshot above - not expanded - means that when I click on the "Explore" text, I get an endless, combined feed of everything Google Reader thinks I might like (there's actually been some good stuff there too) for the price of one line of text.&lt;/p&gt;
&lt;p&gt;This is much handier than viewing a list of feed titles using the old "Browse for stuff" link and having to make a decision to even click on a feed based on the title, author and number of subscribers.&lt;/p&gt;
&lt;p&gt;Well done Google for a smart, non-obtrusive way to help users find more reading.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/google+reader"&gt;google reader&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/design"&gt;design&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/thomasswilliams/aggbug/2833.aspx" width="1" height="1" /&gt;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>TRUIX Update for Nov. 3rd! Jim ZImmerman is sick!</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/11/03/truix-update-for-nov.-3rd-jim-zimmerman-is-sick.aspx</link><pubDate>Tue, 03 Nov 2009 14:20:26 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>A very important TRUIX meeting with Jim Zimmerman on Nov. 3rd</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/10/28/a-very-important-truix-meeting-with-jim-zimmerman-on-nov.aspx</link><pubDate>Wed, 28 Oct 2009 21:21:44 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>VSLive! Orlando 2009 Sessions Posted</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/10/07/vslive-orlando-2009-sessions-posted.aspx</link><pubDate>Wed, 07 Oct 2009 00:56:08 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Brian Peek</dc:creator></item><item><title>VSLive! Orlando</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/10/04/vslive-orlando.aspx</link><pubDate>Sun, 04 Oct 2009 01:16:23 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Brian Peek</dc:creator></item><item><title>The Coding4Fun Show – Ep 3 with Rick Barraza</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/09/18/the-coding4fun-show--ep-3-with-rick-barraza.aspx</link><pubDate>Fri, 18 Sep 2009 11:56:29 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Brian Peek</dc:creator></item><item><title>The Next TRUIX meeting is October 8th</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/09/15/the-next-truix-meeting-is-october-8th.aspx</link><pubDate>Tue, 15 Sep 2009 18:09:37 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Blockbuster Signup WTF</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2009/09/14/blockbuster-signup-wtf.aspx</link><pubDate>Mon, 14 Sep 2009 08:54:04 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>On the Road to iTextFileResult: Getting the Results from System.Web.MVC.WebFormViewEngine</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/09/10/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="true">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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>JavaScript for the masses</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/09/03/javascript-for-the-masses.aspx</link><pubDate>Thu, 03 Sep 2009 11:43:57 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Anyone in Vegas for C4F Show Interview?</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/08/14/anyone-in-vegas-for-c4f-show-interview.aspx</link><pubDate>Fri, 14 Aug 2009 16:16:34 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Brian Peek</dc:creator></item><item><title>TampaUX.NET Next Meeting: 7/29 (tomorrow!) 7:00 at MS Tampa Offices!</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/07/28/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="true">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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>The Case For Renaming Controls In a Reporting Services Report</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/28/the-case-for-renaming-controls-in-a-reporting-services-report.aspx</link><pubDate>Tue, 28 Jul 2009 01:54:28 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>The Coding4Fun Show – Ep 2 with Arian Kulp</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/07/26/the-coding4fun-show--ep-2-with-arian-kulp.aspx</link><pubDate>Sun, 26 Jul 2009 20:26:00 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Brian Peek</dc:creator></item><item><title>Reporting Services "Execution xxx cannot be found"</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/24/reporting-services-execution-xxx-cannot-be-found.aspx</link><pubDate>Fri, 24 Jul 2009 02:40:50 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>jQuery-UI visual studio intellisense (vsdoc) file</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/07/20/jquery-ui-visual-studio-intellisense-vsdoc-file.aspx</link><pubDate>Mon, 20 Jul 2009 07:19:18 GMT</pubDate><guid isPermaLink="true">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 class="wlWriterEditableSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:671d55e1-df05-4ebd-b698-7ee816b9f77c" style="margin: 0px; padding: 0px; display: inline; float: none;"&gt;
&lt;p&gt;File Attachment: &lt;a target="_blank" href="http://theruntime.com/blogs/images/theruntime_com/blogs/jaykimble/WindowsLiveWriter/jQueryUIvisualstudiointellisensevsdocfil_98FB/jquery-ui-vsdoc_1.js"&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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>WiimoteLib 1.8 Beta 1 Posted</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/07/20/wiimotelib-1.8-beta-1-posted.aspx</link><pubDate>Mon, 20 Jul 2009 03:01:10 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Brian Peek</dc:creator></item><item><title>Data Dump to Excel through SSIS and SSRS</title><link>http://TheRuntime.com/blogs/gscarfone/archive/2009/07/15/data-dump-to-excel-through-ssis-and-ssrs.aspx</link><pubDate>Thu, 16 Jul 2009 02:07:54 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Guiseppe Scarfone</dc:creator></item><item><title>If You Had 6 Months To a Sudden Death&amp;hellip;</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/07/15/if-you-had-6-months-to-a-sudden-deathhellip.aspx</link><pubDate>Wed, 15 Jul 2009 12:22:00 GMT</pubDate><guid isPermaLink="true">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>3</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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Welcome Guiseppe Scarfone to TheRuntime.com</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/07/15/welcome-guiseppe-scarfone-to-theruntime.com.aspx</link><pubDate>Wed, 15 Jul 2009 06:48:17 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Spammers Are Vermin</title><link>http://theruntime.com/blogs/jacob/archive/2009/07/14/spammers-are-vermin.aspx</link><pubDate>Mon, 13 Jul 2009 23:33:59 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Jacob</dc:creator></item><item><title>Introduction</title><link>http://TheRuntime.com/blogs/gscarfone/archive/2009/07/13/introduction.aspx</link><pubDate>Mon, 13 Jul 2009 22:41:10 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Guiseppe Scarfone</dc:creator></item><item><title>Two Types of Developers</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2009/07/09/two-types-of-developers.aspx</link><pubDate>Thu, 09 Jul 2009 05:44:58 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Thomas Williams</dc:creator></item><item><title>Tampa UX .NET next meeting July 29th at the Microsoft Offices (in Tampa)</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/07/06/tampa-ux-.net-next-meeting-july-29th-at-the-micrososft.aspx</link><pubDate>Mon, 06 Jul 2009 14:17:15 GMT</pubDate><guid isPermaLink="true">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>1</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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Facebook .NET Programmers Group XNA Session Posted</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/06/25/facebook-.net-programmers-group-xna-session-posted.aspx</link><pubDate>Thu, 25 Jun 2009 01:02:48 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Brian Peek</dc:creator></item><item><title>Better JavaScript class generation</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/06/24/better-javascript-class-generation.aspx</link><pubDate>Wed, 24 Jun 2009 15:15:32 GMT</pubDate><guid isPermaLink="true">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>2</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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Status of Wii MotionPlus Support for WiimoteLib</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/06/19/status-of-wii-motionplus-support-for-wiimotelib.aspx</link><pubDate>Fri, 19 Jun 2009 11:43:59 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Brian Peek</dc:creator></item><item><title>Using the Ajax control toolbox with jQuery (and ASP.NET MVC)</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/06/09/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="true">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>5</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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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: &amp;quot;Courier New&amp;quot;, 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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Tampa ux&amp;hellip; Meeting tomorrow night (Wed. June 10th, 2009).. 7:30pm</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/06/09/tampa-uxhellip-meeting-tomorrow-night-wed.-june-10th-2009.-730pm.aspx</link><pubDate>Tue, 09 Jun 2009 07:20:10 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>The Coding4Fun Show – Ep 1 with Andy Beaulieu</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/06/08/the-coding4fun-show--ep-1-with-andy-beaulieu.aspx</link><pubDate>Mon, 08 Jun 2009 20:22:56 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Brian Peek</dc:creator></item><item><title>clientscript as the view controller</title><link>http://theruntime.com/blogs/jaykimble/archive/2009/06/01/clientscript-as-the-view-controller.aspx</link><pubDate>Mon, 01 Jun 2009 12:34:29 GMT</pubDate><guid isPermaLink="true">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>2</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;</description><dc:creator>Jay Kimble</dc:creator></item><item><title>Facebook .NET Programmers Group Session on XNA 3.0</title><link>http://theruntime.com/blogs/brianpeek/archive/2009/05/29/facebook-.net-programmers-group-session-on-xna-3.0.aspx</link><pubDate>Fri, 29 May 2009 03:46:22 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Brian Peek</dc:creator></item><item><title>Setting Focus to Control in an IFRAME using JQuery</title><link>http://theruntime.com/blogs/thomasswilliams/archive/2009/05/28/setting-focus-to-control-in-an-iframe-using-jquery.aspx</link><pubDate>Thu, 28 May 2009 03:58:54 GMT</pubDate><guid isPermaLink="true">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;</description><dc:creator>Thomas Williams</dc:creator></item></channel></rss>