<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Something witty.</description><title>Beer, Photography, Code, and the Rest</title><generator>Tumblr (3.0; @markcoleman)</generator><link>http://markcoleman.tumblr.com/</link><item><title>Audio</title><description>&lt;iframe class="spotify_audio_player" src="https://embed.spotify.com/?uri=spotify%3Atrack%3A2Foc5Q5nqNiosCNqttzHof&amp;view=coverart" frameborder="0" allowtransparency="true" width="500" height="580"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;</description><link>http://markcoleman.tumblr.com/post/48362193585</link><guid>http://markcoleman.tumblr.com/post/48362193585</guid><pubDate>Fri, 19 Apr 2013 12:11:57 -0400</pubDate><category>music</category><category>spotify</category></item><item><title>Online Resources for AngularJs</title><description>&lt;p&gt;&lt;div&gt;Angular Seed – Good starting point for an angular project&lt;/div&gt;
&lt;div&gt;&lt;a href="https://github.com/angular/angular-seed"&gt;&lt;a href="https://github.com/angular/angular-seed"&gt;https://github.com/angular/angular-seed&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Egghead.io – Tons of videos about AngularJs&lt;/div&gt;
&lt;div&gt;&lt;a href="http://egghead.io/"&gt;&lt;a href="http://egghead.io"&gt;http://egghead.io&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;AngularJs – the source&lt;/div&gt;
&lt;div&gt;&lt;a href="http://angularjs.org/"&gt;&lt;a href="http://angularjs.org"&gt;http://angularjs.org&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Angular UI – components for UI items in Angular&lt;/div&gt;
&lt;div&gt;&lt;a href="http://angular-ui.github.com/"&gt;&lt;a href="http://angular-ui.github.com"&gt;http://angular-ui.github.com&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;ngModules – popular modules for AngularJs&lt;/div&gt;
&lt;div&gt;&lt;a href="http://ngmodules.org/"&gt;&lt;a href="http://ngmodules.org"&gt;http://ngmodules.org&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/47040340504</link><guid>http://markcoleman.tumblr.com/post/47040340504</guid><pubDate>Wed, 03 Apr 2013 15:18:53 -0400</pubDate><category>angularjs</category><category>javascript</category></item><item><title>Add class to element when scrolling in AngularJs</title><description>&lt;p&gt;&lt;span&gt;Revised scroll directive that supports IE8&amp;#160;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://stackoverflow.com/a/10286208/181776" target="_blank"&gt;&lt;span&gt;Calculate Offset&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://stackoverflow.com/a/14880862/181776" target="_blank"&gt;&lt;span&gt;Scroll directive&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;div class="gist"&gt;&lt;a href="https://gist.github.com/markcoleman/5300596"&gt;https://gist.github.com/markcoleman/5300596&lt;/a&gt;&lt;/div&gt;</description><link>http://markcoleman.tumblr.com/post/47017158060</link><guid>http://markcoleman.tumblr.com/post/47017158060</guid><pubDate>Wed, 03 Apr 2013 08:03:02 -0400</pubDate><category>angularjs</category><category>directive</category><category>javascript</category><category>scroll</category><category>quirks</category></item><item><title>Why all your text is black when printing when you use bootstrap</title><description>&lt;p&gt;In bootstrap.css&lt;/p&gt;

&lt;div class="gist"&gt;&lt;a href="https://gist.github.com/markcoleman/5271369"&gt;https://gist.github.com/markcoleman/5271369&lt;/a&gt;&lt;/div&gt;</description><link>http://markcoleman.tumblr.com/post/46595113181</link><guid>http://markcoleman.tumblr.com/post/46595113181</guid><pubDate>Fri, 29 Mar 2013 11:01:28 -0400</pubDate><category>bootstrap</category><category>Css</category></item><item><title>Beware of DateTimeOffset precision and Javascript</title><description>&lt;p&gt;&lt;div&gt;We decided to use DateTimeOffset or DateTime2 as the datatype for our date fields in Sql using Entity Framework Code First.  Sounds simple enough should not cause any problems right?&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;WRONG!&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;The default of DateTimeOffset and DateTime2 has a precision of 7 digits for milliseconds, but ECMAScript only supports 3 (webkit does 5) digits for milliseconds.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;See this example with AngularJs&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://jsfiddle.net/markcoleman/8UyTU"&gt;&lt;a href="http://jsfiddle.net/markcoleman/8UyTU"&gt;http://jsfiddle.net/markcoleman/8UyTU&lt;/a&gt;&lt;/a&gt;/&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;The time is completely wrong.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Changing the time stamp&lt;/div&gt;
&lt;div&gt;2013-03-18T15:29:22.2001801-04:00 &amp;lt;&amp;#8212; Does not Work&lt;/div&gt;
&lt;div&gt;2013-03-18T15:29:22.20018-04:00 &amp;lt;&amp;#8212; Works&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Code First&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;Try the Column Attribute&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;Looked promising you can specify a datatype, so I tried datetime2(2) and datetimeoffset(2) no dice as for some reason it did not recognize the data type with the (2), taking off the () would change the schema to a datetime2, but the default precision for datetime2 also is 7.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;Global Conventions&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;We could create a global convention to change the precision of the datatype to handle the problem.  Nope, conventions existed in EF5 but were pulled before it went live.  EF6 has conventions but that is currently in alpha.  &lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;Fluent API&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;This could work but we would need to always remember to adjust the precision of our fields via the fluent api for any new field we wish to have precision.  This would work but just seems like a giant pain and potentially prone for further bugs down the road.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;Bye bye DateTimeOffset/DateTime2 and welcome back in DateTime&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;So in the end we just went with DateTime which will just work and requires no additional configuration.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;em&gt;we could alter this after the fact with a script but just wanted it to work without having to shoe horn something after the database is created&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/45771558711</link><guid>http://markcoleman.tumblr.com/post/45771558711</guid><pubDate>Tue, 19 Mar 2013 15:20:17 -0400</pubDate><category>angularjs</category><category>javascript</category><category>EntityFramework</category><category>datetime</category></item><item><title>SxSW Day 5 - Interfaces Accessibility &amp; Superheroes &amp; Breaking the Mold With Meaningful Desgin</title><description>&lt;p&gt;&lt;span&gt;&lt;strong&gt;SXSW Day 5&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Interfaces, Accessibility &amp;amp; Superheroes&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;One out of seven of the world’s populate has some form of disability&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In the US 15 and over 21.3% have a disability, People over 65&amp;#160;49.8%&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regulations and Guidelines&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1990 ADA&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1998 Section 508&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1999 WCAG 1.0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2008 - WCAG 2.0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2010 - All video needs captions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Superhero Checklist&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Overcome adversity&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;fight for good&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;adhere to principles guidelines and laws&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;use existing infrastructure in new ways&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;use innovative technology&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;look great in a cape&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Four principles of P.O.U.R.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Perceivable - Providing alternative text on images, captions or transcripts for video and audio, good color contrast, avoid marques or movement&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Operable - providing access to navigations and controls through alternative means e.g. tab  Don’t make buttons too tiny&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Understandable - Content is clearly and logically presented.  Wording should be simple and concise.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Robust - semantic markups, validated code, responsive design&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Basic Elements of Accessible Design&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Can my audience understand it&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;how can the platform help my users understand?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;does the platform suggest particular usability patterns&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;How difficult is it to learn? (learned behavior vs established patterns)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Legibility&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Hierarchy - Order Size and Action.  Example would be a traffic light &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Iconography - Simplicity is key.  make sure to always name things that make sense and also always to use alt text on the image.  If you use sprite sheets make sure to always include title or alt text on the element.  Empty elements with a sprite sheet causes problems for screen readers&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Color and Contrast - Hue chromaticity saturation value contrast.  Color blindness affects approximately 8% of males and .5% of females.  Never use yellow with white type or yellow type with while background.  Munsell color system&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Typography - Font, size, weight, uniformity, contrast.  Spacing between lines is very important.  Left aligned text is ideal, center align is hard to find the next line, and right align should be avoided by all costs. Geometry of font is important geometric typography is usually easier to read.  If you squint and can not decern the letters it should be avoided.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Sound - use in conjunction with visual cues, differentiated between alerts, integrating sound as responsive feedback.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Touch and Haptics - Haptic feedback to indicate state of error or completion.  Touch to invoke action.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Exercise with turning on voice over&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Our phone gap application does not work at all when it is turned on.  Mobile website did a bit better but need to title the input text boxes.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Common built-in features&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;increase text size&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;text to speech&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;pinch and zoom&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Assistive Technologies and services&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;screen readers&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;screen magnifiers&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;alternative keyboards&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;braille output&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Advanced interactions&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;shake your device for help since it might be a sign of frustration from a user.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Ways to improve the application you tested voice over&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Add alt and title text to clickable elements.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Increase font-size or at least make it adjustable&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Figure out what needs to be done to make the application accessible.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thinking outside the box&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Breaking the Mold with Meaningful Design&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Define a problem that the consumer has to deal with and work through each and every step that solves that problem completely.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Good design is when you have the bar minimum to solve the problem.  Don’t add features just for the sake of it to make it more robust.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;When hiring people ask people what they want to learn.  How would you take a thing and make it better.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Only ship when something is ready never rush.  &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You need to iterate constantly.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Good design needs constraints&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/45348477652</link><guid>http://markcoleman.tumblr.com/post/45348477652</guid><pubDate>Thu, 14 Mar 2013 12:07:59 -0400</pubDate><category>accessibility</category><category>interfaces</category><category>UX</category><category>design</category><category>web</category><category>sxsw</category></item><item><title>SXSW Day 4
Intentionally Dealing with Responsive Design
 
A designer/developer is a unicorn a...</title><description>&lt;p&gt;&lt;span&gt;&lt;strong&gt;SXSW Day 4&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Intentionally Dealing with Responsive Design&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A designer/developer is a unicorn a mystical person that does everything.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;As an organization grows the specialization in each field grows.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;They optimized the css per page not actually globally.  This allows to optimize for the smallest possible css required for the page.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Performance of a responsive design is very important when designing responsively.  700k on a desktop is no big deal but having to serve the same content for a mobile device is not acceptable.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Only axes for media queries are screen width.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Screen dimensions&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;orientation&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;pixel density&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;Performance hit&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;CSS Regions and Content Flow &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Not backward compatible&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Srcset spec&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Not backward compatible&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Only for images&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Aware.js and Breakpoint.js&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Multi class structure leads to harder to maintain code at scale&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;fewer responsive axes&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Conditionizer&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Good at managing low and high resolution images&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;What to use?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Intention.js&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;allows you to create custom responsive contexts&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;do things in those contexts&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;Context.js&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;an implementation of Intention.js with a whole lot of useful&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;can easily be extended to add your own.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="http://intentionjs.com/pages/about.html"&gt;&lt;a href="http://intentionjs.com/pages/about.html"&gt;http://intentionjs.com/pages/about.html&lt;/a&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="http://www.slideshare.net/everyplace/intentionally-dealing-with-responsive-design"&gt;&lt;a href="http://www.slideshare.net/everyplace/intentionally-dealing-with-responsive-design"&gt;http://www.slideshare.net/everyplace/intentionally-dealing-with-responsive-design&lt;/a&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;How AI Is Enhancing the User Experience&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;When AI goes wide things are very broad and might frustrate users because of expectations.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you go deep you pick a subject and train the machine to understand the subject.  Expectations for the user are that it should only deal with that subject and tends to provide a greater experience.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;AI works well if you have collections of data on intent.  Google Now is working well because of all the search history.  If you do not have the data of intent it it AI tries to crawl random history of the user and tends to be noise and produce a lot of notifications.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Future&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;AI will become greater with more virtual with very specific needs.  Along with wearable devices that collect more data for intent to better understand the user.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/45190115421</link><guid>http://markcoleman.tumblr.com/post/45190115421</guid><pubDate>Tue, 12 Mar 2013 10:40:24 -0400</pubDate><category>intentionsjs</category><category>responsive</category><category>ai</category><category>ux</category></item><item><title>SXSW Day 3, (Mobile Web Apps Suck - Workshop)</title><description>&lt;p&gt;&lt;span&gt;&lt;strong&gt;SXSW Day 3&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://github.com/fisherwebdev/seeds"&gt;https://github.com/fisherwebdev/seeds&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;em&gt;Versioning your app is not agile or lean&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;With using apple you only have 100 test tickets, this limits your alpha group.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you use web you have unlimited alpha&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Future Friendly&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;The age of ubiquitous computing&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;strong&gt;progressive enhancement &lt;em&gt;is not graceful degradation&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;mobile first&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;responsive design&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Write once -&amp;gt; run anywhere (debug everywhere)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;How many will you support today?&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;50% - 18 devices&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;60% - 37 devices&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;80% - 156 devices&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;90% - 331 devices&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Web Apps that don’t suck&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The Financial Times &lt;a href="http://www.ft.com/home/uk"&gt;&lt;span&gt;&lt;a href="http://www.ft.com/home/uk"&gt;http://www.ft.com/home/uk&lt;/a&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Used html5 technologies and hacks to achieve optimal user experience&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;user prompted to save to home screen and allow additional local storage&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Presentation on how to they did it.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="http://vimeo/26604635"&gt;http://vimeo/26604635&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="http://labs.ft.com"&gt;&lt;a href="http://labs.ft.com"&gt;http://labs.ft.com&lt;/a&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In Code&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Improve the initial page load with gzip, fewer requests and advanced caching&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;optimize for touch interaction&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Hardware acceleration and throttled event handler calls with requestAnimationFrame&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Hit the DOM as little as possible.  Batch DOM reads and writes. Avoid Reflow&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Optimize how you then make external requests with ajax, web sockets, and WebRTC&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In Design&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Try to avoid taking control of scrolling&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Don’t assume connectivity or the latest WebKit is going to be there.  Archaic and Unreliable First.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Skeumorphism is fattening, avoid drop shadows, gradients, rounded corners.  If you use animation on you are going to have a world of pain.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Know the limitations of your platform.  Design to the platform you are building for.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;DO you really want to spend 4 weeks trying to figure out how to get that feature you saw in a native app working in HTML5.  Is there an alternative?  Is it actually needed?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Optimistic rendering&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Render the success even though it might not actually happen.  This gives the user the perceived idea of very fast interaction.  &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Responsive Web Design&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Not just for small screens&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Generally use percentages for width and ems for height&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Pixels to be avoided&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thing about haptics (vibration api)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This would allow for the user to know that a button was pressed by giving a bit of vibration that something was pressed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Only supported by firefox at the moment&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="http://bill.hotstudiodev.com/mowebapps/Mobile-Web-Apps-Suck-Part-1.pdf"&gt;&lt;a href="http://bill.hotstudiodev.com/mowebapps/Mobile-Web-Apps-Suck-Part-1.pdf"&gt;http://bill.hotstudiodev.com/mowebapps/Mobile-Web-Apps-Suck-Part-1.pdf&lt;/a&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="http://bill.hotstudiodev.com/mowebapps/Mobile-Web-Apps-Suck-Part-2.pdf"&gt;&lt;a href="http://bill.hotstudiodev.com/mowebapps/Mobile-Web-Apps-Suck-Part-2.pdf"&gt;http://bill.hotstudiodev.com/mowebapps/Mobile-Web-Apps-Suck-Part-2.pdf&lt;/a&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/45109637439</link><guid>http://markcoleman.tumblr.com/post/45109637439</guid><pubDate>Mon, 11 Mar 2013 10:21:33 -0400</pubDate><category>mobile</category><category>html5</category><category>backbone</category><category>webapp</category><category>twitter</category><category>demo</category><category>SXSW</category></item><item><title>Random SXSW Day 2 Notes (Prototype or Die!)</title><description>&lt;p&gt;&lt;span&gt;&lt;strong&gt;SXSW Day 2&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Prototype or Die (Workshop)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Five questions of &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Do they get it?  Do they understand what is going on in the application&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Can they find it? Does the user know that something is on the screen.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Can they do it?  can they preform the function&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Do they like it? is it enjoyable experience&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Is it useful?  Does the user find that the application is useful&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Use wizard of oz type just so people can see and go through the action, the action doesn&amp;#8217;t need to actually happen.  Instead of taking a picture to capture text use oz to make it appear to happen&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Building Prototypes&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Fake it with images&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Avoid compiling, don’t use any special optimizations.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;No semantic html, use very simple elements use &amp;lt;div/&amp;gt; instead of &amp;lt;ul/&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;It doesn’t need to be just one prototype.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Don’t adapt, you control the environment prototype for that particular device&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Browser extensions, use extensions to inject css and html into an existing site so you don’t have to build up a base&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Hacks are encouraged.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Never optimize&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Research&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You do not need a user study per say just ask people sit down and show them the ideas&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you have about 5 people you can identify about 80% of the usability issues.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Define the research questions, these should come easily from the product questions that you created from the start.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Recruit participants of our actual users since the person making it is not the user.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Ask questions to find people, use twitter/facebook to find the people.  Have questions that are not yes/no.  Multiple choice examples so the person replying doesn&amp;#8217;t know what you are looking for and you get actual users.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Define study tasks&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Don’t ask them what items mean, give them actions that they need to perform.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Make them meaningful&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;use the users language&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;describe the end goal, don’t give the user steps give them a goal with the prototype given.  Don&amp;#8217;t tell them how to perform the action just tell them buy a product don&amp;#8217;t reference cart, products, check out etc.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Asking interview questions&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Avoid leading and biasing questions.  Keep things open ended.   Ask questions that would help describe how the feature would fit into a workflow.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Observation is key, don’t just listen. Ask the user to perform the action not just describe what they did for the action.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Don’t use words that are in the UI, don’t ask them about the share button.  Ask them a question about a real life scenario that they need to perform that action.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Give the participant time to answer.  If you don’t the follow up question would bias the participant to answering the question with the follow up question you provided.  Give the person time to answer and the answer will be open ended.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Ask the participant to think aloud &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;The Future is Now - Futuristic UIs with HTML5&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://github.com/mattnull/thefutureisnow-workshop"&gt;&lt;a href="https://github.com/mattnull/thefutureisnow-workshop"&gt;https://github.com/mattnull/thefutureisnow-workshop&lt;/a&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://github.com/mattnull/thefutureisnow-demos"&gt;&lt;a href="https://github.com/mattnull/thefutureisnow-demos"&gt;https://github.com/mattnull/thefutureisnow-demos&lt;/a&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://github.com/mattnull/thefutureisnow-server"&gt;&lt;a href="https://github.com/mattnull/thefutureisnow-server"&gt;https://github.com/mattnull/thefutureisnow-server&lt;/a&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/45109558394</link><guid>http://markcoleman.tumblr.com/post/45109558394</guid><pubDate>Mon, 11 Mar 2013 10:19:31 -0400</pubDate><category>prototype</category><category>sxsw</category><category>google</category><category>html5</category><category>mockup</category><category>paper</category></item><item><title>Random Notes from SXSW 2013 Day 1</title><description>&lt;p&gt;&lt;span&gt;&lt;strong&gt;SxSw 2013 - Day 1&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Lean Forward, Lean Back: Tablet News Experiences&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Storytelling in the age of the tablet&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Lean forward platforms are phone and tablet, short quick headlines easy to see and read&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Lean back, long form and lots of detail, paper or computer&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you put any emphasis on something treat the phone as almost the most important&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Tablet is also almost as important&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;keep navigation down to a minimum&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Keep the bucks of information to a minimum so people do not get overwhelmed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Design for the tablet, design for the eye, touch, and finger.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br/&gt; The tablet experience should almost be like a pop up book.  When taping on things things should happen so the touch does something.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The tablet isn&amp;#8217;t just meant for a photo and to turn the page.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;After 6pm is the time when you will find the usage of the tablet increases (lean back time) computer and phone usage decreases. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Don&amp;#8217;t take what is there and convert to a tablet application.  You need to white board and sketch out the application.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;EyeTrack: tablet research&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You need to have one element that is 5 times bigger compared to the rest.  The eye goes to the photos first.  60% of the design is from the pattern from the eye track research and about 40% creativity.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;70% of people like landscape&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Make things bigger to draw emphasis to certain materials, that way the user doesn&amp;#8217;t need to try to hunt for the information.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Pictures say a lot and let people make a decision quicker.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;67% used native controls like the back button to get to other information.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Older readers where more methodical &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Younger readers scan more when reading information.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;61% of readers touched the screen frequently&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;80-90 second is the bail out point when someone jumps ship and stops reading&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;What is next?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Does the tap and reveal of information helps people retain the information.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Awe-Inspiring Web Typography You Can Do Now&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Typography does not actually improve comprehension of the content.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Good typography can put the user in a good mood&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;45-75 characters is widely regarded as a satisfactory length of line for a single column page.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;66 characters is about 32em in length.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Use media queries to keep line length in an ideal range.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Use hyphens auto for smaller screens helps increase readability, on larger screens it does not hep so turning hyphens off is the ideal practice.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Use column count to split up short paragraphs, longer paragraphs can cause issue if the person needs to scroll back up to the top.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;16px is an ideal size to start out with in a page.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The bigger the text the smaller the line height.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Always good to do a margin and padding reset.  This forces you to do this and think about the items and how they relate.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Treat numbers as letters to make sure they don’t stand out.  If you put dates in the text it makes them appear like they are shouting.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Most fonts come with this number formatting backed in as part of CSS3, you can use old style numbers which makes the numbers not stand out.  Might have to change your type face to one that supports this features.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you use acronyms, use c2sc capitals to small caps, which is an open font feature.  The capitals are a bit smaller and fatter to make them appear like they lower case letters.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Choosing Fonts&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Even if people are not consciously aware of the type they’re &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Does the font have the character set your text requires.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Does it have enough useful weights and styles&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Does it have the features you need&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Loading Web Fonts&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Default text appears as each web font loads&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;don’t send web font to small screens&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;fall back&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;media attribute on an link element to apply conditional css loading&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Show text in the fallback font until all the font loads, can use the google web font loader.  This allows you to use the css classes to swap out the font once it loads.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;be aware of the device for fall back fonts ios/windows phone 7/android have different fonts installed by default.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Fonts&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Shaker&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Karminda sans, pairs nicely with karmina serif&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;april display, works will with april text&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;april text&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;table gothic compressed , works well with apirl text&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Url&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="http://webtypography.net/talks/sxsw13"&gt;http://webtypography.net/talks/sxsw13&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/44925830344</link><guid>http://markcoleman.tumblr.com/post/44925830344</guid><pubDate>Sat, 09 Mar 2013 03:07:02 -0500</pubDate></item><item><title>Correct setup for iCloud in Windows 8 Mail</title><description>&lt;a href="http://miapple.me/2012/11/03/setting-up-icloud-email-in-windows-8-mail-app/"&gt;Correct setup for iCloud in Windows 8 Mail&lt;/a&gt;: &lt;p&gt;From the link&lt;/p&gt;

&lt;p&gt;&lt;a href="mailto:youremail@me"&gt;youremail@me&lt;/a&gt;.com&lt;/p&gt;
&lt;p&gt;imap.mail.me.com port 993 &lt;strong&gt;With SSL&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;smtp.mail.com port 587 &lt;strong&gt;No SSL&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Outgoing requires authentication&lt;/p&gt;
&lt;p&gt;Use same username for incoming and outgoing mail.&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/44668749993</link><guid>http://markcoleman.tumblr.com/post/44668749993</guid><pubDate>Tue, 05 Mar 2013 20:03:41 -0500</pubDate></item><item><title>AngularJs currency filter with no $ sign</title><description>&lt;p&gt;&lt;div class="gist"&gt;&lt;a href="https://gist.github.com/markcoleman/5093740"&gt;https://gist.github.com/markcoleman/5093740&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/44645280546</link><guid>http://markcoleman.tumblr.com/post/44645280546</guid><pubDate>Tue, 05 Mar 2013 15:03:06 -0500</pubDate><category>angularjs</category><category>javascript</category><category>html</category><category>template</category></item><item><title>AngularJs, Json.Net, and the $type property</title><description>&lt;p&gt;We use the Json.Net serializer in our project and while performing a post that deserializes into a derved class we would also serilization exceptions. We enabled Json.net to emit the $type property so this should be working without problems. Opening up Firebug we quickly realized that the $type property was missing from the request, what gives?&lt;/p&gt;

&lt;p&gt;Digging in a bit further it appears that for some reason AngularJs was stripping any property that has a $ sign in the name.  Looking further into the source the problem is in the &lt;a href="https://github.com/angular/angular.js/issues/1463"&gt;toJsonReplacer&lt;/a&gt; function.&lt;/p&gt;
&lt;p&gt;The reason this happens is so Angular doesn&amp;#8217;t accidentally post angularjs ($$hashkey for instance) properties to the backend, but in this case we need the $type property to go along so Json.Net remains happy.&lt;/p&gt;

&lt;p&gt;This can easily be accomplished by replacing the default transformRequest function on the $httpProvider.&lt;/p&gt;
&lt;div class="gist"&gt;&lt;a href="https://gist.github.com/markcoleman/5085650"&gt;https://gist.github.com/markcoleman/5085650&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Now Angular is happy and Json.net is happy!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/44563216519</link><guid>http://markcoleman.tumblr.com/post/44563216519</guid><pubDate>Mon, 04 Mar 2013 16:18:01 -0500</pubDate><category>angularjs</category><category>javascript</category><category>json</category><category>jsondotnet</category></item><item><title>AngularJS directive for currency that adds +/- classes to the element</title><description>&lt;a href="https://gist.github.com/markcoleman/5042147"&gt;AngularJS directive for currency that adds +/- classes to the element&lt;/a&gt;: &lt;p&gt;&lt;div class="gist"&gt;&lt;a href="https://gist.github.com/markcoleman/5042147"&gt;https://gist.github.com/markcoleman/5042147&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/44083330396</link><guid>http://markcoleman.tumblr.com/post/44083330396</guid><pubDate>Tue, 26 Feb 2013 16:04:02 -0500</pubDate></item><item><title>Unknown (to me) .net framework gem - TextInfo</title><description>&lt;a href="http://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase.aspx"&gt;Unknown (to me) .net framework gem - TextInfo&lt;/a&gt;: &lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;A source Description of “REGULAR SAVINGS”&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;            &lt;span&gt;TextInfo&lt;/span&gt; textInfo &lt;span&gt;=&lt;/span&gt; &lt;span&gt;new&lt;/span&gt; &lt;span&gt;CultureInfo&lt;/span&gt;(&lt;span&gt;“en-US”&lt;/span&gt;, &lt;span&gt;false&lt;/span&gt;)&lt;span&gt;.&lt;/span&gt;TextInfo;&lt;/p&gt;
&lt;p&gt;            depositProduct&lt;span&gt;.&lt;/span&gt;Description &lt;span&gt;=&lt;/span&gt; textInfo&lt;span&gt;.&lt;/span&gt;ToTitleCase(share&lt;span&gt;.&lt;/span&gt;Description&lt;span&gt;.&lt;/span&gt;ToLower());&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Using TextInfo&lt;/div&gt;
&lt;div&gt;Turns it into “Regular Savings”&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;.net framework and msdn once again to the rescue.&lt;/div&gt;</description><link>http://markcoleman.tumblr.com/post/42445988437</link><guid>http://markcoleman.tumblr.com/post/42445988437</guid><pubDate>Wed, 06 Feb 2013 15:18:23 -0500</pubDate><category>.net</category><category>.NET 4.0</category><category>msdn</category><category>TextInfo</category><category>en-US</category><category>ToTitleCase</category></item><item><title>Tug</title><description>&lt;img src="http://25.media.tumblr.com/5631e16b35c09c7a9b5dbb2bd19799bb/tumblr_mh7h7aPGGr1qbmzy5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Tug&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/41476962535</link><guid>http://markcoleman.tumblr.com/post/41476962535</guid><pubDate>Fri, 25 Jan 2013 18:57:09 -0500</pubDate><category>dog</category><category>tug</category><category>toy</category><category>pull</category></item><item><title>Microsoft Lync wants to use the OC_KeyContainer_emailaddress keychain prompt</title><description>&lt;a href="http://answers.microsoft.com/en-us/mac/forum/macoffice2011-macother/microsoft-lync-wants-to-use-the/76b883bb-ed1e-4ba2-bcec-54dc36a04261?msgId=671cb024-886f-4eaf-8bff-96b6eb28f48f"&gt;Microsoft Lync wants to use the OC_KeyContainer_emailaddress keychain prompt&lt;/a&gt;: &lt;p&gt;I ran into this issue yesterday and after a quick google the answer was found, archived here for my own knowledge.&lt;/p&gt;
&lt;p&gt;From the answer:&lt;/p&gt;
&lt;div class="userInfo"&gt;
&lt;blockquote&gt;&lt;a href="http://answers.microsoft.com/en-us/profile/beecfe4c-c538-409e-b80e-b3e9c72eeded" title="gnomehole"&gt;gnomehole&lt;/a&gt; replied on 
&lt;div class="history dropNav dropNavDelayShow"&gt;March 28, 2012&lt;/div&gt;
&lt;div class="userTags"&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="msgContent"&gt;
&lt;div class="msgBody wrapWord fullMessage"&gt;
&lt;blockquote&gt;Fixed my own problem… in case anyone else runs into this.
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;I removed the keychains from my keychain access app, but even though they did not show there were still physical key files in the folder userid/Library/Keychains&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Deleting the OC_KeyContainer files allowed Lync to start back up again and create a new one.&lt;/div&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;</description><link>http://markcoleman.tumblr.com/post/40008669211</link><guid>http://markcoleman.tumblr.com/post/40008669211</guid><pubDate>Tue, 08 Jan 2013 07:37:17 -0500</pubDate><category>lync</category><category>mac</category><category>osx</category><category>keychain</category></item><item><title>Why does VS2012 always check out the sln when opening it?</title><description>&lt;a href="https://connect.microsoft.com/VisualStudio/feedback/details/737184/globalsection-extensibilityglobals-postsolution-checks-out-sln-file-on-open#details"&gt;Why does VS2012 always check out the sln when opening it?&lt;/a&gt;: &lt;p&gt;&lt;span&gt;This explains why whenever anyone opens up a solution they automatically check out the file with no changes.&lt;/span&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/39669150211</link><guid>http://markcoleman.tumblr.com/post/39669150211</guid><pubDate>Fri, 04 Jan 2013 13:18:43 -0500</pubDate><category>VS2012</category><category>TFS</category><category>Enterprise Library</category></item><item><title>Bug Hunt: Always use radix in parseInt()</title><description>&lt;h3&gt;Is the bug valid?&lt;/h3&gt;

&lt;p&gt;&lt;font size="3"&gt;Yesterday we received a bug report that one of our text fields were defaulting to 00 when the user enters in 08 or 09.  Confused as to what could be causing this I fired up my various browsers and iOS simulator and was not able to duplicate the problem.&lt;/font&gt;&lt;/p&gt;

&lt;h3&gt;The Code&lt;/h3&gt;

&lt;p&gt;&lt;font size="3"&gt;Looking at the code it was something like this:&lt;/font&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;
    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; num = $(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;).val(), &lt;span style="color: #008000"&gt;//val() would be "08" or "09"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;     theInt = parseInt(num);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;font size="3"&gt;Nothing seems out of the ordinary and everything is working correctly.  What could possibly be happening?  From there I started spinning up older versions of iOS5 and android.  Bam, the bug presents it self and is easily reproducible.&lt;/font&gt;&lt;/p&gt;

&lt;h3&gt;Debugging&lt;/h3&gt;

&lt;p&gt;&lt;font size="3"&gt;Next up I wanted to figure out what the heck could be going on, so now the code morphed to the following.&lt;/font&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;
    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; num = $(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;).val(),&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;     theInt = parseInt(num);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt; alert(num); &lt;span style="color: #008000"&gt;//alerts "08"&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt; alert(theInt); //alerts 0&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;font size="3"&gt;Well it looks like we found our problem, parseInt() is some how behaving differently depending on the version of the browser, but why?&lt;/font&gt;&lt;/p&gt;

&lt;h3&gt;To the google!&lt;/h3&gt;

&lt;p&gt;&lt;font size="3"&gt;After a few searches I soon smacked my head and said, darn it I forgot the radix!  The radix specifies which numeral system to use when parsing the number.  But why does it work correctly in new browsers but incorrectly in older ones?  Well after a bit more research I found this blurb on mozilla&lt;/font&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;ECMAScript 5 Removes Octal Interpretation&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;The ECMAScript 5 specification of the function parseInt no longer allows implementations to treat Strings beginning with a 0 character as octal values. ECMAScript 5 states:&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;The parseInt function produces an integer value dictated by interpretation of the contents of the string argument according to the specified radix. Leading white space in string is ignored. If radix is undefined or 0, it is assumed to be 10 except when the number begins with the character pairs 0x or 0X, in which case a radix of 16 is assumed. If radix is 16, number may also optionally begin with the character pairs 0x or 0X.&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;This differs from ECMAScript 3, which discouraged but allowed octal interpretation.&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;Since many implementations have not adopted this behavior as of 2011, and because older browsers must be supported, always specify a radix.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;font size="3"&gt;The key part is that in older browsers when no radix was specified the radix would default to 8, while in new browsers the radix is assumed to be 10.&lt;/font&gt;&lt;/p&gt;

&lt;h3&gt;The Fix&lt;/h3&gt;

&lt;p&gt;&lt;font size="3"&gt;Well since we now know the problem we can easily fix the code to look something like this:&lt;/font&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;
    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; num = $(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;).val(),&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt;     theInt = parseInt(num, 10);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;font size="3"&gt;Now the script works correctly on new and older browsers and we no longer have the undesired behavior we had previously.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/38303547172</link><guid>http://markcoleman.tumblr.com/post/38303547172</guid><pubDate>Wed, 19 Dec 2012 09:26:56 -0500</pubDate><category>javascript</category><category>parseInt</category><category>debug</category><category>bug</category></item><item><title>Building TypeScript in Web Applications</title><description>&lt;p&gt;The one thing I failed to mention with the AngularBanking demo application is how do we get the TypeScript files to build during a build of the application.&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Well the first part is simply installing the plugin from the &lt;a href="http://www.typescriptlang.org/#Download"&gt;TypeScript site&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Unload and edit your web application project and add the following snippet to the BeforeBuild &amp;lt;target/&amp;gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;
&lt;div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"&gt;
&lt;pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"&gt;&lt;span id="lnum1" style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #800000"&gt;xml&lt;/span&gt; &lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="1.0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;encoding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="utf-8"&lt;/span&gt;?&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"&gt;&lt;span id="lnum2" style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Project&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ToolsVersion&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="4.0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;DefaultTargets&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Build"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://schemas.microsoft.com/developer/msbuild/2003"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"&gt;&lt;span id="lnum3" style="color: #606060"&gt;   3:&lt;/span&gt;   &lt;span style="color: #008000"&gt;&amp;lt;!-- snip --&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"&gt;&lt;span id="lnum4" style="color: #606060"&gt;   4:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Target&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="BeforeBuild"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"&gt;&lt;span id="lnum5" style="color: #606060"&gt;   5:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Message&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Compiling TypeScript files"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"&gt;&lt;span id="lnum6" style="color: #606060"&gt;   6:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Exec&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Command&lt;/span&gt;="&amp;amp;&lt;span style="color: #ff0000"&gt;amp&lt;/span&gt;;&lt;span style="color: #ff0000"&gt;quot&lt;/span&gt;;$(&lt;span style="color: #ff0000"&gt;PROGRAMFILES&lt;/span&gt;)\&lt;span style="color: #ff0000"&gt;Microsoft&lt;/span&gt; &lt;span style="color: #ff0000"&gt;SDKs&lt;/span&gt;\&lt;span style="color: #ff0000"&gt;TypeScript&lt;/span&gt;\&lt;span style="color: #ff0000"&gt;0&lt;/span&gt;.&lt;span style="color: #ff0000"&gt;8&lt;/span&gt;.&lt;span style="color: #ff0000"&gt;1&lt;/span&gt;.&lt;span style="color: #ff0000"&gt;1&lt;/span&gt;\&lt;span style="color: #ff0000"&gt;tsc&lt;/span&gt;&amp;amp;&lt;span style="color: #ff0000"&gt;amp&lt;/span&gt;;&lt;span style="color: #ff0000"&gt;quot&lt;/span&gt;; &lt;span style="color: #ff0000"&gt;-target&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ES5&lt;/span&gt; @(&lt;span style="color: #ff0000"&gt;TypeScriptCompile&lt;/span&gt; &lt;span style="color: #ff0000"&gt;-&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;'&lt;span style="color: #ff0000"&gt;&amp;amp;quot;&lt;/span&gt;%(fullpath)&lt;span style="color: #ff0000"&gt;&amp;amp;quot;&lt;/span&gt;', ' ')" &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"&gt;&lt;span id="lnum7" style="color: #606060"&gt;   7:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Target&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"&gt;&lt;span id="lnum8" style="color: #606060"&gt;   8:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Target&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="AfterBuild"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"&gt;&lt;span id="lnum9" style="color: #606060"&gt;   9:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Target&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;
&lt;pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"&gt;&lt;span id="lnum10" style="color: #606060"&gt;  10:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Project&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Once you reload your project your TypeScript files will build along with your web application and you will get your JavaScript files your application relies on each time.&lt;/p&gt;

&lt;p&gt;Also the AngularJs demo has been updated on &lt;a href="https://github.com/markcoleman/AngularBlogPost"&gt;github&lt;/a&gt;.&lt;/p&gt;</description><link>http://markcoleman.tumblr.com/post/37400788250</link><guid>http://markcoleman.tumblr.com/post/37400788250</guid><pubDate>Fri, 07 Dec 2012 08:13:12 -0500</pubDate><category>TypeScript</category></item></channel></rss>
