<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>JohnPapa.net</title><link>http://www.7papa7.com:80/</link><description>JohnPapa.net</description><item><title>International Code Sharing</title><link>http://www.7papa7.com:80/international-code-sharing</link><description>&lt;p&gt;A Swede, and Italian/American, and a … Ward Bell walk into a bar …&lt;/p&gt; &lt;p align="left"&gt;OK, so I don’t exactly know what &lt;a href="https://twitter.com/#!/wardbell"&gt;Ward Bell&lt;/a&gt; is (besides a great friend and brilliant colleague). And what’s he doing walking into a bar with a Swede? And how did they do that since Ward lives in San Francisco, CA and &lt;a href="https://twitter.com/#!/hfjallemark"&gt;Hans Fjällemark&lt;/a&gt; lives in Sweden? And why did they invite me, the Italian/American, since I don’t drink? They went to the bar to share code ideas, of course!&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/5f8c7c51c063_78B7/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/5f8c7c51c063_78B7/image_thumb_1.png" width="520" height="269"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="left"&gt;I’ve always enjoyed working on side projects with friends so I could share ideas and bounce crazy ones off each other. The ultimate result is better code and a lot of fun. Ward and I have been friends for years and we often chat over the 3 hour time different from Florida to California via Skype while working out different patterns for building apps. One project Ward was instrumental in helping me work through was how I use a service locator (aka my ServiceProvider) for MVVM with XAML.&lt;/p&gt; &lt;p align="left"&gt;Hans is a new friend who I ran into on Twitter. he lives in Sweden, but thanks to Skype the 8 hour time difference is not a problem.&amp;nbsp; I wanted a designer to help with my &lt;a href="http://jpapa.me/jsrenderps"&gt;JsRender course’s&lt;/a&gt; demo layout and he was willing to help out (did a great job too). Together we came up with a nice layout for showing demos and key code concepts. What really helped is that Hans is a good designer and a good developer. Later, Hans and I worked out a bunch of small open source projects, one of which is the recently released &lt;a href="https://github.com/CodeSeven/toastr"&gt;toastr on github&lt;/a&gt;.&lt;/p&gt; &lt;p align="left"&gt;My point here is that all 3 of us have greatly benefited not only by creating better code, but also by motivating each other. Motivation is key so side projects don’t get left hanging (at least for me). And I find it directly helps me to build patterns that I can apply to my day job. &lt;/p&gt; &lt;p align="left"&gt;So how does this work? We use a few tools … Skype for IM and screen share, DropBox for instant sharing of ideas, and github for a a private repository and source control. &lt;/p&gt; &lt;p align="left"&gt;I highly recommend giving this type of collaboration a try. Find somebody that you know or who is on twitter, regardless if they are down the hall or on the other side of the world. With tools like Skype, DropBox and github there is no reason not to. And who knows, you might meet some great people like Hans and Ward &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/5f8c7c51c063_78B7/wlEmoticon-smile_2.png"&gt;&lt;/p&gt;</description><pubDate>Fri, 04 May 2012 14:21:29 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/international-code-sharing</guid></item><item><title>New Course on JsRender Templating Fundamentals with JavaScript</title><link>http://www.7papa7.com:80/new-course-on-jsrender-templating-fundamentals-with-javascript</link><description>&lt;p align="justify"&gt;Super fast rendering, code-less tag syntax, and no DOM nor jQuery dependency. That’s &lt;a href="https://github.com/BorisMoore/jsrender"&gt;JsRender&lt;/a&gt;!&lt;/p&gt; &lt;p align="justify"&gt;My latest course &lt;a href="http://jpapa.me/jsrenderps"&gt;JsRender Fundamentals&lt;/a&gt; is now available at &lt;a href="http://pluralsight.net"&gt;Pluralsight&lt;/a&gt;! Learn how to build fast, robust, and maintainable Web applications with JavaScript, jQuery and JsRender: the successor to jQuery Templates.&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;Free Preview:&lt;/strong&gt;&lt;/p&gt; &lt;div style="padding-bottom: 0px; padding-left: 0px; width: 448px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:1c5e2b60-6bab-4c92-910f-8f76567e004e"&gt;&lt;embed height="252" type="application/x-shockwave-flash" width="448" src="http://www.youtube.com/v/03xbkl1bjkY?hd=1" wmode="transparent"&gt;&lt;/embed&gt;&amp;nbsp;&lt;/div&gt; &lt;p align="justify"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;Course Description:&lt;/strong&gt;&lt;/p&gt; &lt;p align="justify"&gt;JsRender (the successor to jQuery Templates) is a JavaScript library that allows you to define a boilerplate structure once and reuse it to generate content dynamically. Learn how JsRender brings a new templating library to HTML5 development that has a code-less tag syntax, high performance, no dependency on jQuery nor a DOM, supports creating custom functions, and uses pure string based rendering.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://jpapa.me/jsrenderps"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="jsrender-ps12" border="0" alt="jsrender-ps12" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/jsrender-ps12_2f31fc1d-f4b1-4f64-b72d-84191061dbbc.png" width="520" height="102"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;What are the modules?&lt;/strong&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb20_thumb_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ps2_thumb20_thumb" border="0" alt="ps2_thumb20_thumb" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb20_thumb_thumb.png" width="30" height="31"&gt;&lt;/a&gt;0: Course Overview &lt;/p&gt; &lt;p align="justify"&gt;&amp;gt; 1 minute teaser trailer on what the course covers&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb25_thumb_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ps2_thumb25_thumb" border="0" alt="ps2_thumb25_thumb" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb25_thumb_thumb.png" width="30" height="31"&gt;&lt;/a&gt;1: Getting Started with JsRender&lt;/p&gt; &lt;p align="justify"&gt;This first module sets the foundations for the course by showing you everything you need to know to get started with JsRender and some helpful resources. You'll also learn a few tips on some tools and conventions that may help you along the way.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb23_thumb_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ps2_thumb23_thumb" border="0" alt="ps2_thumb23_thumb" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb23_thumb_thumb.png" width="30" height="31"&gt;&lt;/a&gt; 2: JsRender Core Tokens&lt;/p&gt; &lt;p align="justify"&gt;This module introduces the core JsRender token syntax for HTML encoding, handling conditionals, expressions, and looping through data. Also covered are how to use JsRender without jQuery and the #data and #index tokens.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb27_thumb_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ps2_thumb27_thumb" border="0" alt="ps2_thumb27_thumb" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb27_thumb_thumb.png" width="30" height="31"&gt;&lt;/a&gt;3: View Paths, Nesting and Context Changes&lt;/p&gt; &lt;p align="justify"&gt;This module covers how to manage object hierarchies, changing context, view paths, and contextual parameters using the JsRender features.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb29_thumb_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ps2_thumb29_thumb" border="0" alt="ps2_thumb29_thumb" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb29_thumb_thumb.png" width="30" height="31"&gt;&lt;/a&gt;4: Managing Templates&lt;/p&gt; &lt;p align="justify"&gt;This module covers important management and performance tips for your templates using JsRender and jQuery. You will learn how and when to use strings to store templates, how to compile and name 1 or more templates, and how to use external templates.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb31_thumb_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ps2_thumb31_thumb" border="0" alt="ps2_thumb31_thumb" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/ps2_thumb31_thumb_thumb.png" width="30" height="31"&gt;&lt;/a&gt;5: Advanced JsRender Concepts and Tips&lt;/p&gt; &lt;p align="justify"&gt;This module demonstrates how to create your own JsRender tags, converters and helper functions to create more powerful and cleaner templates through separation of behavior and structure. These tips can create powerful, resuable and more maintainable templates for web applications.&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;Demos:&lt;/strong&gt;&lt;/p&gt; &lt;p align="left"&gt;The course includes 20+ demos that you can run (some within Visual Studio and others from &lt;a href="http://jsfiddle.net"&gt;JsFiddle&lt;/a&gt;)&lt;/p&gt; &lt;p align="left"&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/image_thumb4_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image_thumb4" border="0" alt="image_thumb4" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/New-Course-on-JsRender-Templating-Fundam_F44E/image_thumb4_thumb.png" width="520" height="316"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;Parting Thoughts:&lt;/strong&gt;&lt;/p&gt; &lt;p align="justify"&gt;I extend a sincere thank you to some great folks who helped influence this course through their contributions to open source, the plug in community, and some by helping me vet the content and ideas. They are, in no particular order:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div align="justify"&gt;&lt;a href="https://twitter.com/#!/BorisMoore"&gt;Boris Moore&lt;/a&gt; – creative mind behind of JsRender and jQuery Templates&lt;/div&gt; &lt;li&gt; &lt;div align="justify"&gt;&lt;a href="http://twitter.com/hfjallemark"&gt;Hans Fjällemark&lt;/a&gt; – designed the responsive web design layout for the demos&lt;/div&gt; &lt;li&gt; &lt;div align="justify"&gt;&lt;a href="https://twitter.com/#!/wardbell"&gt;Ward Bell&lt;/a&gt; – helped vet my ideas for the “code concepts” window in the demos&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;</description><pubDate>Tue, 01 May 2012 21:23:46 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/new-course-on-jsrender-templating-fundamentals-with-javascript</guid></item><item><title>Simple JavaScript Notifications with toastr</title><link>http://www.7papa7.com:80/toastr100beta</link><description>&lt;p&gt;My friend &lt;a href="http://twitter.com/hfjallemark"&gt;Hans Fjällemark&lt;/a&gt; and I have been collaborating on some JavaScript libraries lately and we decided it was time to release &lt;a href="http://jpapa.me/c7toastr"&gt;toastr&lt;/a&gt;, the first of them, on github. Our collaborative organization is under &lt;a title="https://github.com/CodeSeven" href="https://github.com/CodeSeven"&gt;https://github.com/CodeSeven&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;toastr is a simple JavaScript toast notification library that is small, easy to use, and extendable. It allows you to create simple toasts with HTML5 and JavaScript like this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/toastr_13960/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/toastr_13960/image_thumb.png" width="377" height="79"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Simply include the files in your HTML page and write a simple line of code like this:&lt;/p&gt; &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;toastr.success(&lt;span style="color: #006080"&gt;'Are you the six fingered man?'&lt;/span&gt;, &lt;span style="color: #006080"&gt;'Inigo Montoya'&lt;/span&gt;);    &lt;/pre&gt;&lt;br&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;p align="justify"&gt;Hans is a great developer / designer and has recently helped me created some nice responsive designs in some demos and &lt;a href="http://www.pluralsight-training.net/"&gt;Pluralsight&lt;/a&gt; courses. You can see the layout he helped design and create in my latest course, &lt;a href="http://jpapa.me/jsrenderps"&gt;JsRender Fundamentals&lt;/a&gt; on &lt;a href="http://www.pluralsight-training.net/"&gt;Pluralsight&lt;/a&gt; now.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://jpapa.me/jsrenderps"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="jsrender ps" border="0" alt="jsrender ps" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/toastr_13960/jsrender%20ps_31c81a43-2ce7-4e2f-994d-bb523e799492.png" width="500" height="79"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;The API&lt;/h3&gt;
&lt;p&gt;There are 4 methods to learn. info, warning, success and error. The each have a message and an optional title.&lt;/p&gt;

&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #008000"&gt;// Display a info toast, with no title&lt;/span&gt;&lt;br&gt;toastr.info(&lt;span style="color: #006080"&gt;'Are you the six fingered man?'&lt;/span&gt;)&lt;br&gt;&lt;br&gt;&lt;span style="color: #008000"&gt;// Display a warning toast, with no title&lt;/span&gt;&lt;br&gt;toastr.warning(&lt;span style="color: #006080"&gt;'My name is Inigo Montoya. You Killed my father, prepare to die!'&lt;/span&gt;)&lt;br&gt;&lt;br&gt;&lt;span style="color: #008000"&gt;// Display a success toast, with a title&lt;/span&gt;&lt;br&gt;toastr.success(&lt;span style="color: #006080"&gt;'Have fun storming the castle!'&lt;/span&gt;, &lt;span style="color: #006080"&gt;'Miracle Max Says'&lt;/span&gt;)&lt;br&gt;&lt;br&gt;&lt;span style="color: #008000"&gt;// Display an error toast, with a title&lt;/span&gt;&lt;br&gt;toastr.error(&lt;span style="color: #006080"&gt;'I do not think that word means what you tink it means.'&lt;/span&gt;, &lt;span style="color: #006080"&gt;'Inconceivable!'&lt;/span&gt;)&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;After having it in alpha for a few weeks and accepting feedback on it, we decided today to take it to beta as the API has stabilized.&amp;nbsp; &lt;h3&gt;toastr is Responsive&lt;/h3&gt;
&lt;p&gt;Just include the viewport meta tag and the toastr-responsive.css, and toastr will adjust to different device sizes. &lt;a href="http://www.responsinator.com/?url=http%3A%2F%2Fcodeseven.github.com%2Ftoastr%2F"&gt;See toastr and its responsive web design here on responsinator.com&lt;/a&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/toastr_13960/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/toastr_13960/image_thumb_1.png" width="129" height="244"&gt;&lt;/a&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/toastr_13960/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/toastr_13960/image_thumb_2.png" width="244" height="128"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Some important links:&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;see toastr in action at &lt;a href="http://codeseven.github.com/toastr/"&gt;toastr’s demo page here&lt;/a&gt; 
&lt;li&gt;grab toastr from github at &lt;a href="https://github.com/CodeSeven/toastr"&gt;https://github.com/CodeSeven/toastr&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;&lt;strong&gt;What Else Can toastr Do?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Check out the demo for these and other examples of toastr in action.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Override the css classes to change the appearance 
&lt;li&gt;Set the fadeOut, fadeIn, and timeOut settings 
&lt;li&gt;Set timeOut to 0 to make the toast sticky 
&lt;li&gt;Position the toast in the top left, top right, bottom right, or bottom left 
&lt;li&gt;Set the message to HTML content&amp;nbsp; and/or wire event handlers up to that content. 
&lt;li&gt;For debugging, set the debug info to true to show all of the options and setting in the browser’s console window&lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;&lt;strong&gt;Unit Tests&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Feel free to &lt;a href="http://codeseven.github.com/toastr/tests/toastr-unit-tests.html"&gt;check out toastr’s unit tests, which you can run online here&lt;/a&gt;. We decided to go simple and use QUnit, which does the job quite nicely.&lt;/p&gt;
&lt;h3&gt;NuGet&lt;/h3&gt;
&lt;p&gt;I published a &lt;a href="https://nuget.org/packages/toastr"&gt;package on NuGet for toastr that you can find here&lt;/a&gt;. Be sure to allow searching for pre-release packages (NuGet disables that by default). We do not foresee any changes to the API so this beta should be pretty solid. If we receive no major issues, we’ll go RC very soon.&lt;/p&gt;</description><pubDate>Tue, 01 May 2012 13:46:32 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/toastr100beta</guid></item><item><title>2 Months with the ASUS ZenBook UX31E</title><link>http://www.7papa7.com:80/2-months-with-the-asus-zenbook-ux31e</link><description>&lt;p&gt;It’s been over 2 months since I’ve been using my &lt;a href="http://www.amazon.com/dp/B005SY32Q2/?t=johnpanet-20"&gt;ASUS ZenBook UX31E&lt;/a&gt; out and about for blogging, surfing, coding, and presentations. I wrote about the slick look of the UX31E and &lt;a href="http://johnpapa.net/review-of-the-asus-zenbook-ux31e"&gt;my (poor) opinion of the keyboard and the screen&amp;nbsp; last month&lt;/a&gt; and frankly that has not changed. However, I have found the UX31E to be ideal for several situations over that time, so I’ll focus my wrap up on what this sub $1000 ultrabook is good for. &lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;img src="http://johnpapa.net/Media/Default/Windows-Live-Writer/5-Weeks-Later-with-the-ASUS-ZenBook-UX31_7B93/WP_000530_thumb.jpg"&gt;&lt;img src="http://johnpapa.net/Media/Default/Windows-Live-Writer/5-Weeks-Later-with-the-ASUS-ZenBook-UX31_7B93/WP_000532_thumb.jpg"&gt;&lt;/p&gt; &lt;h3&gt;Speed&lt;/h3&gt; &lt;p&gt;I give a lot of presentations with multiple instances of Visual Studio and heavy loads of software running on my computer. I won’t suffer a laptop that performs sluggishly in front of a room of developers because it needlessly detracts from the presentation. The good news is that the UX31E is really fast for a small lightweight laptop. I have been able to run multiple demos, powerpoint, presentation tools, and other apps during my presentations and the machine has not missed a beat. The best thing I can say about its performance is that I never once paused for concern over how it was performing on stage. &lt;br&gt;&lt;/p&gt; &lt;h3&gt;Projection&lt;/h3&gt;&lt;br&gt; &lt;p&gt;It frustrates me to no end when a laptop does not work well with projectors. Laptop is ready to go, you are on stage, you plug it into the projector, and the resolution you want to use is not available. Ugh. The UX31E worked great with many of the projectors I connected to it. Now, this is not often just on the laptop. The projector and video card in the laptop have a lot to do with this too. I bring multiple laptops to presentations (call me careful, call me prepared). The point is that when some of my laptops were not working with the resolution I wanted, the UX31E always came up aces.&amp;nbsp; When giving a presentation the last things you want to worry about are the speed of your laptop and how it will project to the screen. Kudos go to the UX31E on both of these points.&lt;br&gt;&lt;/p&gt; &lt;h3&gt;Boot Up / Awake&lt;/h3&gt;&lt;br&gt; &lt;p&gt;&lt;img style="display: inline; float: right" align="right" src="http://ecx.images-amazon.com/images/I/41ZNTQkRKGL._SL500_AA300_.jpg" width="225" height="225"&gt;It really is amazing at how fast this computer comes awake from sleep. Open the lid, count to 3 and before you can do that it’s ready to go. At first I did not appreciate this feature, but after using it for a few months I really grew to appreciate how fast it came awake. I’d be sitting chatting with some folks about code and they’d ask to see a demo. I could just whip out the UX31E, open the lid, and in seconds I was running my demo. Now that is sweet.&lt;br&gt;&lt;/p&gt; &lt;h3&gt;Summary&lt;/h3&gt;&lt;br&gt; &lt;p&gt;Due to the keyboard responsiveness issue I experienced I found the UX31E not to be good for me for everyday development, but I did find it to be very valuable for travel and presentations. However if you do a lot of presentations and/or travel, this could be an ideal laptop.&lt;/p&gt; &lt;p&gt;&lt;br&gt;… And to be clear …&lt;br&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Disclosure of Material Connection: I received one or more of the products or services mentioned above for free in the hope that I would mention it on my blog. Regardless, I only recommend products or services I use personally and believe my readers will enjoy. I am disclosing this in accordance with &lt;a href="http://www.access.gpo.gov/nara/cfr/waisidx_03/16cfr255_03.html"&gt;the Federal Trade Commission’s 16 CFR, Part 255: “Guides Concerning the Use of Endorsements and Testimonials in Advertising.”&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;</description><pubDate>Mon, 30 Apr 2012 14:19:20 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/2-months-with-the-asus-zenbook-ux31e</guid></item><item><title>New Article on JsRender Templating</title><link>http://www.7papa7.com:80/clientin1204</link><description>&lt;p&gt;Super fast rendering, easy to pick up, no DOM nor jQuery dependency. That’s JsRender. &lt;a href="http://jpapa.me/clientIn1204"&gt;Check out this month’s Client Insight column where I cover the basics of JsRender&lt;/a&gt;. And be on the lookout for my new full length course on JsRender, coming to &lt;a href="http://www.pluralsight-training.net/microsoft/Authors/Details?handle=john-papa"&gt;Pluralsight&lt;/a&gt; in May 2012.&lt;/p&gt; &lt;p&gt;&lt;a href="https://github.com/BorisMoore/jsrender"&gt;JsRender&lt;/a&gt; is the &lt;a href="http://jpapa.me/jsrenderroadmap"&gt;successor to jQuery Templates&lt;/a&gt; created by Boris Moore. It brings a new templating library to HTML5 development that has a code-less tag syntax, high performance, no dependency on jQuery nor a DOM, supports creating custom functions, and uses pure string-based rendering. &lt;/p&gt; &lt;p&gt;So instead of writing code like this:&lt;/p&gt; &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; i = 1;&lt;br&gt;$(my.vm.movies).each(&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; () {&lt;br&gt;  &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; movie = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;;&lt;br&gt;  $(&lt;span style="color: #006080"&gt;"#movieContainer1"&lt;/span&gt;).append(&lt;br&gt;    &lt;span style="color: #006080"&gt;"&amp;lt;div&amp;gt;"&lt;/span&gt; + i++ + &lt;span style="color: #006080"&gt;": "&lt;/span&gt; + movie.name + &lt;span style="color: #006080"&gt;" ("&lt;/span&gt;&lt;br&gt;    + movie.releaseYear + &lt;span style="color: #006080"&gt;")&amp;lt;/div&amp;gt;"&lt;/span&gt;);&lt;br&gt;});&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;you can write code like this:&lt;/p&gt;
&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;    {{:#index+1}}: {{:name}} ({{:releaseYear}})&lt;br&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><pubDate>Wed, 11 Apr 2012 12:49:13 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/clientin1204</guid></item><item><title>Activating the Nokia Lumia 900 Windows Phone</title><link>http://www.7papa7.com:80/activating-the-nokia-lumia-900-windows-phone</link><description>&lt;p&gt;I received my Nokia Lumia 900 today and was very excited to open it. I had 3 goals for today:&lt;/p&gt; &lt;p&gt;1) activate it&lt;/p&gt; &lt;p&gt;2) make sure my unlimited data plan was still in place&lt;/p&gt; &lt;p&gt;3) get my apps to the new phone&lt;/p&gt; &lt;p&gt;I accomplished 1 and 2 and I am currently working on 3. I’ll be doing an &lt;a href="http://jpapa.me/lumia900unbox"&gt;unboxing post shortly after this here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;em&gt;Disclaimer: this review is purely about the ordering, activation and setup process. So this is entirely on ATT … I’ll be reviewing the phone and the OS in a later hands on post.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="DSC_2041" border="0" alt="DSC_2041" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_107C9/DSC_2041_thumb.jpg" width="210" height="328"&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Don’t forget the Micro SIM&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Make sure you have a micro sim card before activating. If you went from a Samsung focus, like I did, then this will be key.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Activation&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;This took me about 30 minutes. I tried in vain for 15 minutes online to activate the phone. Eventually, I called Premier Support at 1-866-499-8008 and they had me turn both phones off, call me back on my wife’s cell phone, and then they activated the Lumia 900. In all, it was 30 minutes form when I opened the box and not a great experience, but it certainly could have been much worse. That it did not work online and that the guy kept putting me on hold without explaining anything was not good. But 30 minutes is not terrible. So I give this activation process a generous&amp;nbsp; 7/10.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Data Plan&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I formerly had an unlimited data plan on my Samsung Focus. ATT no longer offers that plan. When I ordered the Lumia I made sure that they would put this plan back on my Lumia when I got it. They made a note of it and after 2.5 hours on a Sunday, I felt better about it. Then when I got my phone today I called the number they instructed me to call and they put the unlimited plan back on my phone. I’m very happy that honored their promise and despite the time on the phone, I give this a 8/10. They have me the impression that they will only be doing this for customers who have had the unlimited plan for a long time. Obviously, they are trying to phase it out completely.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Apps&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I wish the apps would go to the Zune software so when I reconnect to my PC it would just resync them on the new phone. Or with Windows Live it would be great if it noticed the apps were not there, and asked me if I wanted them to be downloaded and installed. Alas, that’s not reality. I had to go through the marketplace and try to find all the apps I had before and install them 1 at a time. The good news is that they queue them up so I can tell it to go install 50 apps. The bad news is that this process really needs to be much simpler and less user involved. Overall, a 5/10 rating for me.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Overall Activation Process&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;It took a lot of time on the phone beforehand and during the activation and setup process, which really was not fun. I’d rather be spending that time with my family. In the end, it all works, so I am happy … but I give the activation and setup process 6/10 overall simply for the many hours of effort that I had to put into it Sunday and today.&lt;/p&gt;</description><pubDate>Fri, 06 Apr 2012 23:27:20 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/activating-the-nokia-lumia-900-windows-phone</guid></item><item><title>Nokia Lumia 900 Windows Phone Unboxing</title><link>http://www.7papa7.com:80/nokia-lumia-900-windows-phone-unboxing</link><description>&lt;p&gt;I just activated my Nokia Lumia 900 running the latest Windows Phone OS. I purchased the cyan colored Lumia … or blue to me &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/wlEmoticon-smile_2.png"&gt; I’ll post a thorough review later after I get more hands on time with it, but this post is all about first impressions. In short … WOW!&lt;/p&gt; &lt;p&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/a_2.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="a" border="0" alt="a" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/a_thumb.jpg" width="463" height="788"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;Tip: Click on the photos for the full size versions. &lt;/em&gt;&lt;/p&gt; &lt;p&gt;If you want to see &lt;a href="http://johnpapa.net/activating-the-nokia-lumia-900-windows-phone"&gt;my activation process experience, you can check it out here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;It arrived on time, as promised from ATT Wireless, via FedEx. Here is the phone inside the box and then a closeup of the box itself (with my number blocked out).&lt;/p&gt; &lt;p&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2040.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2040" border="0" alt="DSC_2040" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2040_thumb.jpg" width="244" height="165"&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/image_thumb.png" width="244" height="165"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;When I opened the Lumia box, I found a subtle reminder not to text and drive. How’d they know?&lt;/p&gt;   &lt;p&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2042.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2042" border="0" alt="DSC_2042" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2042_thumb.jpg" width="244" height="165"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Here are the contents of the box laid out on the table. Notice that they sent a funky looking plug and USB cable, that looks oddly familiar. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/wlEmoticon-winkingsmile_2.png"&gt; There is also a SIM card door key, that is needed to open the door for the sim card. My device came with a sim card already punched out and installed, which was nice. I was upgrading a Samsung Focus (first edition) to the Lumia on the same phone number. But the sim card is a different size, so they sent a new one and installed it for me. &lt;/p&gt; &lt;p&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2043.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2043" border="0" alt="DSC_2043" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2043_thumb.jpg" width="210" height="328"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Here is the Lumia 900 cyan from the powered off state all the way through setup&amp;nbsp; and then its initial powered on state. Took about 8 seconds for the first boot to setup, then just a short bit to entered the setup information.&lt;/p&gt; &lt;p&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2046.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2046" border="0" alt="DSC_2046" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2046_thumb.jpg" width="165" height="244"&gt;&lt;/a&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2045.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2045" border="0" alt="DSC_2045" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2045_thumb.jpg" width="165" height="244"&gt;&lt;/a&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2047.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2047" border="0" alt="DSC_2047" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2047_thumb.jpg" width="165" height="244"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2049.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2049" border="0" alt="DSC_2049" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2049_thumb.jpg" width="165" height="244"&gt;&lt;/a&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2051.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2051" border="0" alt="DSC_2051" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2051_thumb.jpg" width="165" height="244"&gt;&lt;/a&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2052.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2052" border="0" alt="DSC_2052" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2052_thumb.jpg" width="165" height="244"&gt;&lt;/a&gt;&lt;/p&gt;     &lt;p&gt;I had to skip the Windows Live setup because I could not get activated right away. Once I was activated, all was well though. &lt;/p&gt; &lt;p&gt;I set up WiFi first and hooked up gmail, twitter (using Rowi from the marketplace), Facebook, and Windows Live. Took about 1 minute to get these going … so I was very happy with that.&lt;/p&gt; &lt;p&gt;The screen is awesome. Its bigger than the Samsung Focus and the colors just pop. You can see here the Lumia 900 is larger than the Samsung Focus, but only by a little bit. It appears (and feels) slightly thinner than the Focus too. &lt;/p&gt; &lt;p&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2053.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2053" border="0" alt="DSC_2053" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2053_thumb.jpg" width="244" height="165"&gt;&lt;/a&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2054.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2054" border="0" alt="DSC_2054" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2054_thumb.jpg" width="244" height="165"&gt;&lt;/a&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2055.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2055" border="0" alt="DSC_2055" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2055_thumb.jpg" width="244" height="165"&gt;&lt;/a&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2056.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_2056" border="0" alt="DSC_2056" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Nokia-Lumia-900-Unboxing_10BF4/DSC_2056_thumb.jpg" width="244" height="165"&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;It looks great, feels great in my hand (heavier than the Focus, but less toy like), and so far is very fast. I’ll reserve judgment on the final review for when I have time to do more hands on with it. But out of the gate, I was very impressed with the device!&lt;/p&gt;</description><pubDate>Fri, 06 Apr 2012 23:26:34 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/nokia-lumia-900-windows-phone-unboxing</guid></item><item><title>Learn About External Templates with KnockoutJS</title><link>http://www.7papa7.com:80/learn-about-external-templates-with-knockoutjs</link><description>&lt;p&gt;Templating is a killer feature of many technologies that helps reduce code and make it more manageable and adaptable. &lt;a href="http://www.knockoutjs.com"&gt;Knockout.js&lt;/a&gt; has a native template engine (or you can tie in a custom templating engine), but often I like to go a bit further and load my templates from external files. In this month’s &lt;a href="http://jpapa.me/HebUzm"&gt;Papa’s Perspective column in Visual Studio Magazine I cover the Knockout.js External Template Engine&lt;/a&gt; and how it makes using external templates with Knockout.js a breeze. Check it out.&lt;/p&gt; &lt;p&gt;&lt;a href="http://twitter.com/ifandelse"&gt;Jim Cowart&lt;/a&gt; wrote this library, pushed it to &lt;a href="https://github.com/ifandelse/Knockout.js-External-Template-Engine"&gt;github&lt;/a&gt;, and created a &lt;a href="http://nuget.org/packages/Knockout.js_External_Template_Engine/"&gt;NuGet package&lt;/a&gt; for it, so there’s no reason not to use it &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/External-Templates-with-KnockoutJS_7A44/wlEmoticon-smile_2.png"&gt;. Just search for “Knockout” and you will find it in NuGet. &lt;a href="http://jpapa.me/komvvm"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="ko ps" border="0" alt="ko ps" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/External-Templates-with-KnockoutJS_7A44/ko%20ps_3.png" width="504" height="81"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I talk more Jim’s templating library and several ways to use templates with Knockout in my in depth Knockout course at &lt;a href="http://www.pluralsight.com"&gt;Pluralsight&lt;/a&gt;. So if you want to learn more, check out &lt;a href="http://jpapa.me/komvvm"&gt;Building HTML5 and JavaScript Apps with MVVM and Knockout&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Wed, 04 Apr 2012 13:13:42 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/learn-about-external-templates-with-knockoutjs</guid></item><item><title>Fundamentals of Windows 8 XAML/C# Metro Style Apps</title><link>http://www.7papa7.com:80/fundamentals-of-windows-8-xaml-c-metro-style-apps</link><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/dwahlin/image_26380E21.png"&gt;&lt;img title="image" border="0" alt="image" src="http://weblogs.asp.net/blogs/dwahlin/image_thumb_1A361DED.png" width="240" height="56"&gt;&lt;/a&gt;  &lt;p&gt;This is a Windows 8 XAML/C# Fundamentals presentation I gave at the Spring 2012 &lt;a href="http://devconnections.com/"&gt;DevConnections&lt;/a&gt; conference in Las Vegas. It covers some of the key topics you need to know to get started building Windows 8 XAML Metro apps including styling, animations, invoking the Windows Runtime (WinRT), the intrinsic controls, and more that will help prepare you to develop Windows 8 Metro style apps. &lt;/p&gt; &lt;p&gt;You can view my other sessions from DevConnections and Orlando Code Camp here:  &lt;ul&gt; &lt;li&gt;&lt;a href="http://johnpapa.net/9-jquery-samples"&gt;jQuery Fundamentals workshop&lt;/a&gt;  &lt;li&gt;&lt;a href="http://johnpapa.net/jsrender-fundamentals-templating-for-html5-applications"&gt;JsRender Fundamentals: Templating for HTML5 Applications&lt;/a&gt;  &lt;li&gt;&lt;a href="http://johnpapa.net/fundamentals-of-windows-8-xaml-c-metro-style-apps"&gt;Fundamentals of Windows 8 XAML/C# Metro Style Apps&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;View more of my presentations &lt;a href="http://speakerdeck.com/u/johnpapa"&gt;here&lt;/a&gt;.   &lt;script src="http://speakerdeck.com/embed/4f7a5951829b3f0022006423.js"&gt;&lt;/script&gt;   &lt;p&gt;Sample code shown in the presentation can be &lt;a href="http://johnpapa.net/files/downloads/win8cpdemos.zip"&gt;found here&lt;/a&gt;. A large number of samples are available in the Windows 8 SDK which can be &lt;a href="http://jpapa.me/win8cpsdk"&gt;found here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you like this you can check out the &lt;a href="http://jpapa.me/Win8IntroPS"&gt;Windows 8 Fundamentals course&lt;/a&gt; &lt;a href="http://weblogs.asp.net/dwahlin"&gt;Dan Wahlin&lt;/a&gt; and I co-authored for &lt;a href="http://www.pluralsight.com"&gt;Pluralsight&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://jpapa.me/Win8IntroPS"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="win8 ps" border="0" alt="win8 ps" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Getting-Started-Building-Windows-8-XAMLC_12F1D/win8%20ps_3.png" width="1458" height="240"&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 03 Apr 2012 04:15:56 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/fundamentals-of-windows-8-xaml-c-metro-style-apps</guid></item><item><title>Whirlwind Tour of Building HTML5 and JavaScript Apps with MVVM and Knockout</title><link>http://www.7papa7.com:80/whirlwind-tour-of-hellip-building-html5-and-javascript-apps-with-mvvm-and-knockout</link><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;This is the Whirlwind Tour of Building HTML5 and JavaScript Apps with MVVM and Knockout presentation I gave at the Spring 2012 &lt;a href="http://devconnections.com/"&gt;DevConnections&lt;/a&gt; conference in Las Vegas and in Orlando Code Camp (both last week). It covers some of the key topics you need to know to build web applications using the MVVM pattern with JavaScript and jQuery that consume json data, use json objects in Javascript, use declarative binding, using KnockoutJS.&lt;/p&gt; &lt;p&gt;You can view my other sessions from DevConnections and Orlando Code Camp here:  &lt;ul&gt; &lt;li&gt;&lt;a href="http://johnpapa.net/9-jquery-samples"&gt;jQuery Fundamentals workshop&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://johnpapa.net/jsrender-fundamentals-templating-for-html5-applications"&gt;JsRender Fundamentals: Templating for HTML5 Applications&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://johnpapa.net/fundamentals-of-windows-8-xaml-c-metro-style-apps"&gt;Fundamentals of Windows 8 XAML/C# Metro Style Apps&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;span id="preserve511c0a850afb4249ad61dd1eceb15e7a" class="wlWriterPreserve"&gt;&lt;span id="preserve9621b158bd774617b1b98430e912ed34" class="wlWriterPreserve"&gt;&lt;script src="http://speakerdeck.com/embed/4f7a5c3c6fbefe0022008ce1.js"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;View more of my presentations &lt;a href="http://speakerdeck.com/u/johnpapa"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;The demo code can be downloaded &lt;a href="http://archive.msdn.microsoft.com/mag201202Client"&gt;from here&lt;/a&gt; and &lt;a href="http://archive.msdn.microsoft.com/mag201203ClientInsight"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you are interested in KnockoutJS, you’ll want to check out my course for &lt;a href="http://www.pluralsight.net"&gt;Pluralsight&lt;/a&gt; which &lt;a href="http://jpapa.me/komvvm"&gt;covers KnockoutJS in depth.&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://jpapa.me/komvvm"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ko ps" border="0" alt="ko ps" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/bbe49adbff7e_140DD/ko%20ps_3.png" width="1095" height="188"&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 03 Apr 2012 04:14:48 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/whirlwind-tour-of-hellip-building-html5-and-javascript-apps-with-mvvm-and-knockout</guid></item><item><title>JsRender Fundamentals: Templating for HTML5 Applications</title><link>http://www.7papa7.com:80/jsrender-fundamentals-templating-for-html5-applications</link><description>&lt;p&gt;&amp;nbsp; &lt;p&gt;This is a JsRender Fundamentals presentation I gave at the Spring 2012 &lt;a href="http://devconnections.com/"&gt;DevConnections&lt;/a&gt; conference in Las Vegas. It covers some of the key topics you need to know to build web applications with JsRender. Learn how JsRender brings a new templating library to HTML5 development that has a code-less tag syntax, high performance, no dependency on jQuery nor a DOM, supports creating custom functions, and uses pure string-based rendering. &lt;/p&gt; &lt;p&gt;You can view my other sessions from DevConnections and Orlando Code Camp here:  &lt;ul&gt; &lt;li&gt;&lt;a href="http://johnpapa.net/9-jquery-samples"&gt;jQuery Fundamentals workshop&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://johnpapa.net/whirlwind-tour-of-hellip-building-html5-and-javascript-apps-with-mvvm-and-knockout"&gt;Whirlwind Tour of Building HTML5 and JavaScript Apps with MVVM and Knockout&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://johnpapa.net/fundamentals-of-windows-8-xaml-c-metro-style-apps"&gt;Fundamentals of Windows 8 XAML/C# Metro Style Apps&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span id="preserve511c0a850afb4249ad61dd1eceb15e7a" class="wlWriterPreserve"&gt;&lt;script src="http://speakerdeck.com/embed/4f7a5e416fbefe00220090f6.js"&gt;&lt;/script&gt;&lt;/span&gt; &lt;p&gt;View more of my presentations &lt;a href="http://speakerdeck.com/u/johnpapa"&gt;here&lt;/a&gt;.  &lt;p&gt;The demo code can be downloaded &lt;a href="http://archive.msdn.microsoft.com/mag201204Insight"&gt;from here&lt;/a&gt;.  &lt;p&gt;If you are interested in &lt;a href="https://github.com/BorisMoore/jsrender"&gt;JsRender&lt;/a&gt;, you’ll want to check out my upcoming course for &lt;a href="http://www.pluralsight.net"&gt;Pluralsight&lt;/a&gt; (May 2012) which will cover JsRender in depth.  </description><pubDate>Tue, 03 Apr 2012 04:14:30 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/jsrender-fundamentals-templating-for-html5-applications</guid></item><item><title>9 jQuery Samples</title><link>http://www.7papa7.com:80/9-jquery-samples</link><description>&lt;p&gt;These are the jsfiddle samples that &lt;a href="http://weblogs.asp.net/dwahlin"&gt;Dan Wahlin&lt;/a&gt; and I covered in our jQuery Fundamentals workshop at &lt;a href="http://www.devconnections.com"&gt;DevConnections&lt;/a&gt; last week. These were samples we wrote on the fly in &lt;a href="http://jsfiddle.net"&gt;http://jsfiddle.net&lt;/a&gt; and wanted to share. Enjoy!  &lt;p&gt;Additional jQuery samples covering selectors, DOM manipulation, Ajax techniques, as well as sample applications can be &lt;a href="http://dl.dropbox.com/u/6037348/jQuerySamples.zip"&gt;found here&lt;/a&gt;. &lt;p&gt;You can view my other sessions from DevConnections and Orlando Code Camp here: &lt;ul&gt; &lt;li&gt;&lt;a href="http://johnpapa.net/whirlwind-tour-of-hellip-building-html5-and-javascript-apps-with-mvvm-and-knockout"&gt;Whirlwind Tour of Building HTML5 and JavaScript Apps with MVVM and Knockout&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://johnpapa.net/jsrender-fundamentals-templating-for-html5-applications"&gt;JsRender Fundamentals: Templating for HTML5 Applications&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://johnpapa.net/fundamentals-of-windows-8-xaml-c-metro-style-apps"&gt;Fundamentals of Windows 8 XAML/C# Metro Style Apps&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;View more of my presentations &lt;a href="http://speakerdeck.com/u/johnpapa"&gt;here&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;Using the Data Function&lt;/h4&gt;&lt;iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/dwahlin/pLSvV/1/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;h4&gt;Using Object Literals with jQuery&lt;/h4&gt;&lt;iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/dwahlin/DUU9p/2/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;h4&gt;Using jQuery each() with string concatenation&lt;/h4&gt;&lt;iframe style="width: 100%; height: 141px" src="http://jsfiddle.net/dwahlin/bbwZr/3/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;h4&gt;Using on() to handle child events&lt;/h4&gt;&lt;iframe style="width: 100%; height: 260px" src="http://jsfiddle.net/dwahlin/nCLy6/4/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;h4&gt;jQuery - hover&lt;/h4&gt;&lt;iframe style="width: 100%; height: 180px" src="http://jsfiddle.net/johnpapa/XLWGb/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;h4&gt;jQuery - event handling variations&lt;/h4&gt;&lt;iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/johnpapa/rCXnj/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;h4&gt;jQuery - Twitter (bind, append, appendTo, each, fadeOut, $.getJSON, callback, success, error, complete)r&lt;/h4&gt;&lt;iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/johnpapa/YS3u4/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;h4&gt;jQuery - attr vs prop&lt;/h4&gt;&lt;iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/johnpapa/kPL8w/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;h4&gt;jQuery - Simple selectors&lt;/h4&gt;&lt;iframe style="width: 100%; height: 128px" src="http://jsfiddle.net/johnpapa/Q7kbT/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;</description><pubDate>Tue, 03 Apr 2012 04:13:12 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/9-jquery-samples</guid></item><item><title>3 Quick JavaScript Tips for .NET Developers</title><link>http://www.7papa7.com:80/3-quick-javascript-tips-for-.net-developers</link><description>&lt;p&gt;Yesterday at the &lt;a href="http://devconnections.com/home.aspx"&gt;DevConnections&lt;/a&gt; event I had to make an emergency speaking appearance for a speaker who became suddenly ill. Luckily that talk was a topic I know well (JavaScript intro for .NET developers), I was available, and I didn’t freak out &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/3-Quick-JavaScript-Tips_A886/wlEmoticon-smile_2.png"&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I grabbed the speaker’s deck and used it as a guideline, but I spent the majority of the time in &lt;a href="http://jsfiddle.net"&gt;jsfiddle.net&lt;/a&gt; writing examples. The audience was really interactive and grasped the basics pretty quickly. The topics that we spent the most amount of time discussing as a group where regarding namespaces, functions and objects. So I thought I might include 3 of the examples here on my blog.&lt;/p&gt; &lt;h4&gt;Namespacing&lt;/h4&gt; &lt;p&gt;Namespacing is an important (and easy) way to make sure your objects do not collide with other javascript libraries. There are many ways to handle namespacing, but the way I like to start with is dead simple. This example shows that all variables hang off the ‘my’ namespace. I like using ‘my’ because its short and sweet.&lt;/p&gt;&lt;iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/johnpapa/t6TBv/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; &lt;h4&gt;Creating an Object Literal&lt;/h4&gt; &lt;p&gt;Objects can be created in a variety of ways. But the most common you will see in demos is the object literal. The reason? Its short and sweet. Objects can be created simply by setting a variable equal to an open and close curly brace pair, as shown below. Then add properties as needed. I often use this syntax for simple objects (not a lot of logic, mostly properties and a few methods). &lt;/p&gt; &lt;p&gt;The ‘this’ keyword does work with the object literal, though once you get into nesting functions it can get unwieldy unless you manage ‘this’. That’s often when I use one of a few techniques such as setting ‘this’ (at a place where you know what ‘this’ represents for certain) to a variable called self. But I’ll hit that topic in a later post.&lt;/p&gt; &lt;p&gt;I most often use object literals for passing arguments to functions &lt;/p&gt; &lt;p&gt;&lt;iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/johnpapa/XNPH9/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt; &lt;h4&gt;Creating an Object from a Function&lt;/h4&gt; &lt;p&gt;You can also create objects through functions. While I prefer using a pattern such as the Revealing Module pattern for this, the simplest way to create an object from a function is shown below. Note that use of ‘self’ in here to represent ‘this’. It may not be needed in all cases but it’s a good habit to get into that has saved me many times. A friend of mine actually uses the word ’me’ instead of self … says its twice as fast &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/3-Quick-JavaScript-Tips_A886/wlEmoticon-smile_2.png"&gt;&lt;/p&gt; &lt;p&gt;&lt;iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/johnpapa/uZMfH/embedded/" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Fri, 30 Mar 2012 16:16:15 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/3-quick-javascript-tips-for-.net-developers</guid></item><item><title>Review of the ASUS ZenBook UX31E</title><link>http://www.7papa7.com:80/review-of-the-asus-zenbook-ux31e</link><description>&lt;p&gt;I’ve been using my &lt;a href="http://www.amazon.com/dp/B005SY32Q2/?t=johnpanet-20"&gt;ASUS ZenBook UX31E&lt;/a&gt; out and about for blogging, surfing, coding, and presentations for about 5 weeks now. A lot of people have commented on it with the common theme of it being a slick looking, eye catching, lightweight machine. I agree that its got the looks. The ZenBook is pretty snappy too for a i5 with 4GB of RAM and has done a very good job during presentations. When I wrote about &lt;a href="http://johnpapa.net/asusux31eunboxing"&gt;my unboxing experience&lt;/a&gt;, I was originally bothered by the keyboard (it’s just not as fluent as Lenovo or even Vaio keyboards) and the overly “washed out” screen.&amp;nbsp; Ultimately, I found some very good uses for the UX31E. It’s fair to note that these machines sell for around $1000 depending on varying features. So when evaluating my options I try to keep in mind that value for the cost. In this review I broke down my experiences by how I used the ZenBook.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/5-Weeks-Later-with-the-ASUS-ZenBook-UX31_7B93/WP_000530_2.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="WP_000530" border="0" alt="WP_000530" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/5-Weeks-Later-with-the-ASUS-ZenBook-UX31_7B93/WP_000530_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;But first, just as a reminder…&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Disclosure of Material Connection: I received one or more of the products or services mentioned above for free in the hope that I would mention it on my blog. Regardless, I only recommend products or services I use personally and believe my readers will enjoy. I am disclosing this in accordance with the &lt;a href="http://www.access.gpo.gov/nara/cfr/waisidx_03/16cfr255_03.html"&gt;Federal Trade Commission’s 16 CFR, Part 255: “Guides Concerning the Use of Endorsements and Testimonials in Advertising.”&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;Power&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If a PC can’t handle the load, I instantly toss it aside. So did the ZenBook hold its own with my daily use? Simply put, the ZenBook handled all of my requests admirably. I suspect that the i5 and SSD had a lot to do with this as the 4GB of RAM is certainly not a lot. It handled lightweight tasks like surfing the web, blogging with Live Writer, managing email, editing photos, and playing games on the internet (that was my daughter) quite well. When I installed Visual Studio 2010 on the ZenBook I expected some bigger lags but I was pleasantly surprised in how fast it loaded and built projects. Is it as fast as my i7, 8GB RAM machines, no … but its also half the cost. Overall, I the ZenBook was fast and powerful enough for me. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Writing Code&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I do a lot of coding, writing demos, and tinkering on the side with Visual Studio. The ZenBook had no problems keeping up with me and I was happy to code along with it. My biggest concerns were that I never quite got used to the keyboard. Maybe I’m picky, but I just didn’t get used to the feel of the keyboard and often had to go back and correct typos more often than usual. This was a problem for me when coding because my mind takes me in many directions, very quickly, and having to go back really took me out of any rhythm I could get into. I am used to nice expensive keyboards that are very responsive. Maybe I am too used to them, because my most common issue was I “missed” keys (did not press hard enough). Ultimately, because of this hurdle I could not overcome, for writing code in long blocks of time I just was not as productive with the ZenBook.&lt;/p&gt; &lt;p&gt;&lt;img alt="WP_000440" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/fdb3e10cd2a6_109A1/WP_000440_thumb.jpg"&gt;&lt;/p&gt; &lt;p&gt;It’s worth noting that the screen does appear to be a little washed out, too. I played with the contrast quite a bit as I kept thinking that maybe it was turned up too high. I could never get it to be as sharp and colorful as I had hoped. This wasn’t a killer, but it certainly wasn’t a plus either when sitting down to write code for long periods.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Presentations&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I took the ZenBook to several presentations and it simply excelled. First, its lightweight at less than 3 pounds so it was easy to carry around. The power supply is lightweight too, which is often a place that these tiny laptops manufacturers lack. The ZenBook also looks great, so when doing presentations I often got a lot of remarks about how nice it looked. It was certainly a topic of conversation with its shiny case. The fast start feature on the ZenBook was also great, so I could close the lid, carry it from room to room, and set back up in just a few minutes. The keyboard issues I mentioned previously did not bother me at all for this type of use as during presentations I am more deliberate about what I type. So overall, the UX31E is an ideal presentation laptop for me. The laptop comes in a nice looking case and also has a small ouch for the video out dongle.&lt;/p&gt; &lt;p&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/5-Weeks-Later-with-the-ASUS-ZenBook-UX31_7B93/WP_000532_2.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="WP_000532" border="0" alt="WP_000532" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/5-Weeks-Later-with-the-ASUS-ZenBook-UX31_7B93/WP_000532_thumb.jpg" width="244" height="184"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Family Use&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;My daughter loves this laptop. I let her use it for a day and not long after she was attached to it. We have several laptops and desktops in our house along with a Windows 8 tablet from Build and an iPad 2. but the kids enjoy the laptops because they can do so much more with them. My daughter gave the ZenBook a good test by writing stories in Word, surfing the web, playing games (HTML5 and Flash based), watching videos, and doing homework (sometimes). The ZenBook fared very well for all of these uses and my daughter simply loved it. In fact, I had to tear it away from her to write the review &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/5-Weeks-Later-with-the-ASUS-ZenBook-UX31_7B93/wlEmoticon-smile_2.png"&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Sound&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I normally don’t say anything about the sound on a computer,because frankly, I don’t often use a computer’s built in speakers for music or movies. Instead, I use nice headphones or a dedicated sound system. But for being a built in sound system, the ZenBook’s sound is exceptionally good. I was very happy with the quality of the sound coming from the UX31E and found myself using it more that I ever had with a laptop.&lt;/p&gt; &lt;p&gt;&lt;img alt="WP_000442" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/fdb3e10cd2a6_109A1/WP_000442_thumb.jpg"&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;More on the Keyboard&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Interestingly, my daughter had the same problems with the keyboard early on, but got over them faster than I did. She no longer has any slow downs with the keyboard. I however, never got comfortable with the keyboard responsiveness. Keyboards are a personal taste, so I expect some will be fine with it and others will find the same issues I did.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The ultimate test for me is if I still use it after a month. So do I? Yes, I found the ZenBook to be very useful for travel and presentations, but not for long periods of day to day development. I did find a hidden gem though, as the ZenBook is ideal for my oldest daughter. In fact, my younger children all eye the laptop too. So it seems that its looks and weight (kids lugging it around the house) are very appealing to families. My kids are picky too, as they get frustrated when their apps are slow (Word, email, videos) or games won’t work. They had no such issues on the ZenBook.&lt;/p&gt; &lt;p&gt;The keyboard was a killer for me, but my family is happy about that since they now have a great laptop that they share. I’ll still use it for travel and presentations, but on all other days, its slated for my family’s use. I’ll follow up with a final conclusion in April, since I have a few more tests slated for the ZenBook.&lt;/p&gt;</description><pubDate>Fri, 23 Mar 2012 13:47:04 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/review-of-the-asus-zenbook-ux31e</guid></item><item><title>Free Online Event on KnockoutJS and MVVM</title><link>http://www.7papa7.com:80/free-online-event-on-knockoutjs-and-mvvm</link><description>&lt;p&gt;I published my &lt;a href="http://jpapa.me/komvvm"&gt;Knockout / JavaScript / MVVM course with Pluralsight&lt;/a&gt; last month and have been getting a lot of positive feedback … &lt;strong&gt;thanks&lt;/strong&gt;! I decided to do a free short presentation from the course and answer some questions online. And what better way to do that than on LIDNUG. So next Monday I’ll be presenting KnockoutJs and MVVM at LIDNUG …&amp;nbsp; y&lt;a href="http://lidnug-johnpapa2.eventbrite.com/"&gt;ou can register for the event online&lt;/a&gt;. Monday, March 19th 2012 from 1:00pm to 2:00pm ET&lt;/p&gt; &lt;p&gt;&lt;strong&gt;HTML/ JavaScript Apps with MVVM and KnockoutJS&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt;Do you write a lot of HTML and JavaScript code to push and pull data? In this session John will demonstrate how to bind your data from JavaScript to your target controls in HTML writing less code, and gaining more power. See how to use objects in JavaScript, use declarative binding, integrate templates and control of flow, create custom bindings, and include jQuery UI following good separation patterns using KnockoutJS and MVVM.&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;&lt;a href="http://lidnug-johnpapa2.eventbrite.com/"&gt;&lt;img alt="image" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/e58a68b47406_CA7C/image_thumb_2.png" width="1024" height="593"&gt;&lt;/a&gt;</description><pubDate>Wed, 14 Mar 2012 01:52:21 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/free-online-event-on-knockoutjs-and-mvvm</guid></item><item><title>More Resources for JavaScript Patterns</title><link>http://www.7papa7.com:80/more-resources-for-javascript-patterns</link><description>&lt;p&gt;In just a few weeks I’ll be at DevConnections in Las Vegas where I’ll be presenting on a few sessions such as JsRender/JsViews, KnockoutJS, and Windows 8 Metro apps with XAML, JavaScript Patterns. These will each be a whirlwind tour of those topics, which is about all you can do in an hour. I always tell folks that I am not trying to teach everything there is to know in 1 hour …. but rather I am showing what can be done and inspire you to continue down that path, if you so choose. &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.pluralsight-training.net/microsoft/Courses/TableOfContents?courseName=structuring-javascript"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/jQuery-and-Ajax-Workshop_12FD8/image_3.png" width="1049" height="220"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;For those of you who can’t make DevConnections, you’ll be glad to know that there is an excellent video training course on the JavaScript patterns by &lt;a href="http://weblogs.asp.net/dwahlin"&gt;Dan Wahlin&lt;/a&gt; at Pluralsight titled “&lt;a href="http://www.pluralsight-training.net/microsoft/Courses/TableOfContents?courseName=structuring-javascript"&gt;Structuring JavaScript&lt;/a&gt;”. Dan and I subscribe to many of the same philosophies on patterns. For example, you’ll see that Dan and I are co-presenting the JavaScript Patterns session at DevConnections and in my &lt;a href="http://jpapa.me/komvvm"&gt;KnockoutJS course for Pluralsight&lt;/a&gt;, I use the Revealing Module Pattern heavily. (Hey, I practice what I preach.) &lt;/p&gt; &lt;p&gt;For the most in depth coverage of the patterns and how to use them properly, you should definitely check out Dan’s course. It’s chocked full of great content such as:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Why do we Need JavaScript Patterns?&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Prototype Pattern&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Module Pattern&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Revealing Module Pattern&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Revealing Prototype Pattern&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:b97010de-0410-4342-9576-2e64466ed1a0" class="wlWriterEditableSmartContent"&gt;&lt;div&gt;&lt;object width="448" height="252"&gt;&lt;param name="movie" value="http://www.youtube.com/v/t1B5TJQAKjM?hl=en&amp;amp;hd=1"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/t1B5TJQAKjM?hl=en&amp;amp;hd=1" type="application/x-shockwave-flash" width="448" height="252"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;</description><pubDate>Wed, 14 Mar 2012 01:51:24 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/more-resources-for-javascript-patterns</guid></item><item><title>CSS3 Background Gradients</title><link>http://www.7papa7.com:80/css3-background-gradients</link><description>&lt;p align="justify"&gt;CSS3 background gradients can add jut the right amount of pop to a web page when used properly, but its important to know how they work differently in the major browsers.&lt;/p&gt; &lt;p align="justify"&gt;This month in my Papa’s Perspective column in Visual Studio Magazine I discuss CSS3 background gradients and show some tips on how to use them across Chrome, Safari, Firefox and IE. It’s a quick article that will help get you jump started and coding with them in just a few minutes. You can check out my article on &lt;a href="http://visualstudiomagazine.com/articles/2012/03/01/5-minute-tour-of-css3-background-gradients.aspx"&gt;CSS3 background gradients here&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Mon, 05 Mar 2012 18:38:10 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/css3-background-gradients</guid></item><item><title>KnockoutJS's Built-in Bindings</title><link>http://www.7papa7.com:80/knockoutjs-s-built-in-bindings</link><description>&lt;p align="justify"&gt;Bindings are the glue between the data values in the source (JavaScript objects) and the presentation in the target (the DOM). I continue to explore the KnockoutJS JavaScript library by examining &lt;a href="http://jpapa.me/clientIn1203"&gt;Knockout’s various built in bindings in this month’s Client Insight column&lt;/a&gt; in MSDN Magazine, that just hit the shelves. &lt;/p&gt; &lt;p align="justify"&gt;&lt;pre class="csharpcode"&gt;&amp;lt;htmltag 
    data-bind=&lt;span class="str"&gt;"built-in-binding:vm-property1, 
        another-built-in-binding:vm-property2"&lt;/span&gt;&amp;gt;
&amp;lt;/htmltag&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;If you are not familiar with Knockout, you may want to first read the &lt;a href="http://jpapa.me/clientIn1202"&gt;overview article on Knockout in last months’ Client Insight column&lt;/a&gt; here first.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/KnockoutJSs-Built-in-Bindings_90A8/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 4px 4px 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/KnockoutJSs-Built-in-Bindings_90A8/image_thumb_1.png" width="260" height="58"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Knockout is ideal for building single page web apps (SPA’s) and works great with the MVVM pattern with JavaScript and HTML. If you are interested in learning Knockout from end to end, you can check out my Pluralsight course &lt;a href="http://jpapa.me/komvvm"&gt;Building HTML5 and JavaScript Apps with MVVM and Knockout&lt;/a&gt;, which contains over 40 examples you can download with your Pluralsight subscription. &lt;/p&gt;
&lt;p align="justify"&gt;And if you like it, please be sure to&amp;nbsp; share it.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://jpapa.me/komvvm"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="image" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/KnockoutJS-MVVM_12D51/image_12.png"&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 02 Mar 2012 15:40:55 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/knockoutjs-s-built-in-bindings</guid></item><item><title>Knockout Session from South Florida Code Camp</title><link>http://www.7papa7.com:80/sflcc2012slides</link><description>&lt;p&gt;I had a great time at the South Florida Code Camp last weekend presenting a Whirlwind tour of Knockout and Javascript Patterns. The rooms were small and way overpacked, but I’ll take that as a sign that the topic is popular &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Knockout-Session-from-South-Florida-Code_9E67/wlEmoticon-smile_2.png"&gt;&lt;/p&gt; &lt;p&gt;The Knockout session is a whirlwind tour of &lt;a href="http://knockoutjs.com/"&gt;KnockoutJS&lt;/a&gt; ’s features. If you like it and want to see more in depth material on Knockout, you can check out my full&amp;nbsp; course at &lt;a href="http://pluralsight.net"&gt;Pluralsight&lt;/a&gt; titled &lt;a href="http://jpapa.me/komvvm"&gt;Building HTML5 and JavaScript Apps with MVVM and KnockoutJS&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://jpapa.me/komvvm"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/Knockout-Session-from-South-Florida-Code_9E67/image_3.png" width="1283" height="220"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Here are the &lt;a href="http://johnpapa.net/files/downloads/kowhirlwind.zip"&gt;slides and sample code&lt;/a&gt; from the presentation at code camp. Thanks for attending!&lt;/p&gt;</description><pubDate>Tue, 21 Feb 2012 16:23:31 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/sflcc2012slides</guid></item><item><title>South Florida Code Camp is Tomorrow</title><link>http://www.7papa7.com:80/sfcc2012</link><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://www.fladotnet.com/codecamp/"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/e58a68b47406_CA7C/image_3.png" width="240" height="102"&gt;&lt;/a&gt;I’ll be heading to Ft Lauderdale tonight so I can get a bright and early start for &lt;a href="http://www.fladotnet.com/codecamp/"&gt;South Florida Code Camp&lt;/a&gt; tomorrow. They have a pretty good lineup and I’ll be presenting 2 sessions. Hope to catch you there!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;HTML5 and JavaScript Fundamentals with MVVM and KnockoutJS&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;John Papa&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;11:10am – 12:20pm&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p align="justify"&gt;Do you write a lot of HTML and JavaScript code to push and pull data? In this session you will learn popular techniques to use &lt;a href="http://johnpapa.net/Media/Default/Windows-Live-Writer/e58a68b47406_CA7C/image_7.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 3px 0px 3px 3px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://johnpapa.net/Media/Default/Windows-Live-Writer/e58a68b47406_CA7C/image_thumb_2.png" width="340" height="197"&gt;&lt;/a&gt;data binding to bind your data to your target controls in HTML writing less code, but gaining more power. See how to consume json data, use json objects in JavaScript, use declarative binding, using KnockoutJS. You will also see how to use the MVVM pattern to write data centric JavaScript code that follows good separation patterns and creates highly maintainable code.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Techniques, Strategies, and Patterns for Structuring JavaScript Code&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;John Papa&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;1:20pm – 2:30pm&lt;/strong&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p align="justify"&gt;Are you writing a lot of JavaScript code and trying to apply good practices to make it more maintainable and flexible? In this session learn about common practices to make avoid problems such as polluting the global namespace and code that executes inconsistently, by using patterns such as separation and the Revealing Module Pattern. You will leave this session with several tips on how to write clean, more maintainable, and consistent code.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;lt;shameless plug&amp;gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;If you enjoy these and want more, you can check my latest course &lt;a href="http://jpapa.me/komvvm"&gt;Building HTML5 and JavaScript Apps with MVVM and Knockout&lt;/a&gt; which is now available at &lt;a href="http://pluralsight.net/"&gt;Pluralsight&lt;/a&gt;. In it, I demonstrate how to build robust and maintainable Web applications with JavaScript patterns, MVVM, and &lt;a href="http://knockoutjs.com/"&gt;KnockoutJS&lt;/a&gt; . &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;lt;/shameless plug&amp;gt;&lt;/p&gt;</description><pubDate>Fri, 17 Feb 2012 19:43:25 GMT</pubDate><guid isPermaLink="true">http://www.7papa7.com:80/sfcc2012</guid></item></channel></rss>
