<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>rbarraza.com</title>
	<atom:link href="http://rbarraza.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://rbarraza.com</link>
	<description></description>
	<lastBuildDate>Fri, 01 Jun 2012 05:49:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>10 Good Books I&#8217;m Reading Now &#8211; May 2012</title>
		<link>http://rbarraza.com/10-good-books-may2012/</link>
		<comments>http://rbarraza.com/10-good-books-may2012/#comments</comments>
		<pubDate>Thu, 31 May 2012 10:45:16 +0000</pubDate>
		<dc:creator>Rick Barraza</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rbarraza.com/?p=180</guid>
		<description><![CDATA[My desk, home office and bedroom are usually swimming in books. Here are ten that I&#8217;ve been busy with recently and recommend: Confessions of a Young Novelist by Umberto Eco I love Umberto Eco. Reading Name of the Rose in high school got me hooked. Finishing Foucault&#8217;s Pendulum (after two tries at various stages in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rbarraza.com/10-good-books-may2012/"><img class="alignnone size-full wp-image-123" title="10booksApril" src="http://rbarraza.com/wp-content/uploads/2012/06/10BooksMay.png" alt="" width="600" height="490" /></a></p>
<p>My desk, home office and bedroom are usually swimming in books. Here are ten that I&#8217;ve been busy with recently and recommend:<br />
<span id="more-180"></span></p>
<p><span style="font-size: small;"><a title="Confessions of a Young Novelist" href="http://www.amazon.com/Confessions-Novelist-Richard-Lectures-Literature/dp/0674058690/ref=sr_1_1?ie=UTF8&#038;qid=1338439583&#038;sr=8-1" target="_blank"><img src="http://www.hup.harvard.edu/images/jackets/9780674058699.jpg" alt="" /></a></span><br />
<a title="Confessions of a Young Novelist" href="http://www.amazon.com/Confessions-Novelist-Richard-Lectures-Literature/dp/0674058690/ref=sr_1_1?ie=UTF8&#038;qid=1338439583&#038;sr=8-1" target="_blank">Confessions of a Young Novelist</a><br />
by Umberto Eco</p>
<p>I love Umberto Eco. Reading <em>Name of the Rose</em> in high school got me hooked. Finishing <em>Foucault&#8217;s Pendulum</em> (after two tries at various stages in my life) ruined me for lesser conspiracy fiction from that point forward. So this personal, fun romp that loosely covers his career and explores the relationship of fiction, nonfiction and myth making along the way is a must read. Also one of the best book covers I&#8217;ve seen this year, I love it.</p>
<p><span style="font-size: small;"><br />
<a title="Supercharged JavaScript Graphics" href="http://www.amazon.com/Supercharged-JavaScript-Graphics-canvas-jQuery/dp/1449393632/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1338440276&#038;sr=1-1" target="_blank"><br />
<img src="http://akamaicovers.oreilly.com/images/0636920013044/cat.gif" alt="" /><br />
</a></span><br />
<a title="Supercharged JavaScript Graphics" href="http://www.amazon.com/Supercharged-JavaScript-Graphics-canvas-jQuery/dp/1449393632/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1338440276&#038;sr=1-1" target="_blank"><br />
Supercharged JavaScript Graphics</a><br />
by Rafaele Cecco</p>
<p>I love that this book is all over the map. It may seem a bit frantic at first, but having good, solid examples of multiple graphics techniques in JavaScript is a great resource. I&#8217;m also a sucker for most types of books that discuss code and graphics, so I support the better efforts in this field when they&#8217;re worth it. A great add to your UX library. </p>
<p><span style="font-size: small;"><br />
<a title="Angelmaker" href="http://www.amazon.com/Angelmaker-Nick-Harkaway/dp/0307595951/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1338441175&#038;sr=1-1" target="_blank"><br />
<img src="http://www.randomhouse.com/images/dyn/cover/?source=9780307595959&#038;height=450&#038;.jpg" alt="" /><br />
</a></span><br />
<a title="Angelmaker" href="http://www.amazon.com/Angelmaker-Nick-Harkaway/dp/0307595951/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1338441175&#038;sr=1-1" target="_blank"><br />
Angelmaker</a><br />
by Nick Harkaway</p>
<p>While I try to keep the books on this list focused on design or technology, I&#8217;ll definitely include great fiction finds as well. Angelmaker recently came out and needs a lot more attention than it&#8217;s getting so far. The Book&#8217;s own description says it best, &#8220;blistering gangster noir meets howling absurdist comedy as the forces of good square off against the forces of evil, and only an unassuming clockwork repairman and an octogenarian former superspy can save the world from total destruction.&#8221; And it has mechanical bees too! Check it out.</p>
<p><span style="font-size: small;"><br />
<a title="Diversity and Complexity" href="http://www.amazon.com/Diversity-Complexity-Primers-Complex-Systems/dp/0691137676/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1338441665&#038;sr=1-1" target="_blank"><br />
<img src="http://press.princeton.edu/images/j9208.gif" alt="" /><br />
</a></span><br />
<a title="Diversity and Complexity" href="http://www.amazon.com/Diversity-Complexity-Primers-Complex-Systems/dp/0691137676/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1338441665&#038;sr=1-1" target="_blank"><br />
Diversity and Complexity</a><br />
by Scott E. Page</p>
<p>Keeping up with emerging trends in technology, adaptive complex systems are becoming all the rage. This is a great primer on a timely topic.</p>
<p><span style="font-size: small;"><br />
<a title="Design In Nature" href="http://www.amazon.com/Design-Nature-Constructal-Organization-ebook/dp/B004YWKKC8/ref=la_B001ITYEKO_1_1_title_1_kin?ie=UTF8&#038;qid=1338442048&#038;sr=1-1" target="_blank"><br />
<img src="http://img2.imagesbn.com/images/125400000/125409256.JPG" alt="" /><br />
</a></span><br />
<a title="Design In Nature" href="http://www.amazon.com/Design-Nature-Constructal-Organization-ebook/dp/B004YWKKC8/ref=la_B001ITYEKO_1_1_title_1_kin?ie=UTF8&#038;qid=1338442048&#038;sr=1-1" target="_blank"><br />
Design In Nature</a><br />
J. Peder Zane</p>
<p>Much of the creative process is finding patterns in seemingly unrelated ideas. I think that&#8217;s why I&#8217;ve always loved Biomimicry. In <em>Design In Nature</em>, Zane takes it a step further to presents a governing Constructional Law in animate and inanimate systems. Rich, thought provoking stuff and at least for me, always helpful as an inspirational boost during those blue sky, divergent thinking sessions.</p>
<p><span style="font-size: small;"><br />
<a title="Practical Rendering and Computation with Direct3D 11" href="http://www.barnesandnoble.com/w/practical-rendering-and-computation-with-direct3d-11-jason-zink/1100108024?ean=9781568817200" target="_blank"><br />
<img src="http://img2.imagesbn.com/images/171030000/171035754.JPG" alt="" /><br />
</a></span><br />
<a title="Practical Rendering and Computation with Direct3D 11" href="http://www.barnesandnoble.com/w/practical-rendering-and-computation-with-direct3d-11-jason-zink/1100108024?ean=9781568817200" target="_blank"><br />
Practical Rendering and Computation with Direct3D 11</a><br />
by Jason Zink</p>
<p>There is no better time to learn C++ and DirectX then right now for Windows 8. If you&#8217;ve already burned through the easier <em>Game Programming with DirectX 11</em> type books, this is the deep dive book you&#8217;ve ben looking for. The breadth and depth is amazing, but be warned &#8211; this is not light reading. This one requires chewing, but is well worth it to take smart, aggressive beginners up to the next level in understanding what&#8217;s <em>really</em> going on under the covers.</p>
<p><span style="font-size: small;"><br />
<a title="Origami Tessellations" href="http://www.amazon.com/Origami-Tessellations-Awe-Inspiring-Geometric-Designs/dp/1568814518/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1338443752&#038;sr=1-1" target="_blank"><br />
<img src="http://img2.imagesbn.com/images/85750000/85752037.JPG" alt="" /><br />
</a></span><br />
<a title="Origami Tessellations" href="http://www.amazon.com/Origami-Tessellations-Awe-Inspiring-Geometric-Designs/dp/1568814518/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1338443752&#038;sr=1-1" target="_blank"><br />
Origami Tessellations</a><br />
by Eric Gjerde</p>
<p>I&#8217;ve been getting deep into Papercraft and Folding in my down time this year, and this was a great find. From stark, geometric patterns to Arabesque techniques, these paper / fabric folding techniques are awesome to learn and explore for crafting or fashion design.</p>
<p><span style="font-size: small;"><br />
<a title="Shapes for Sounds" href="http://www.amazon.com/dp/0979966620/ref=as_li_ss_til?tag=braipick-20&#038;camp=213381&#038;creative=390973&#038;linkCode=as4&#038;creativeASIN=0979966620&#038;adid=1ADB4PA0B3F4PCS49HEV" target="_blank"><br />
<img src="http://ecx.images-amazon.com/images/I/41ZAtQCs-QL._SL500_AA300_.jpg" alt="" /><br />
</a></span><br />
<a title="Shapes for Sounds" href="http://www.amazon.com/dp/0979966620/ref=as_li_ss_til?tag=braipick-20&#038;camp=213381&#038;creative=390973&#038;linkCode=as4&#038;creativeASIN=0979966620&#038;adid=1ADB4PA0B3F4PCS49HEV" target="_blank"><br />
Shapes for Sounds</a><br />
by Timothy Donaldson</p>
<p>Now this book is a compound win &#8211; typography, graphic design and comparative language studies! The information graphics are pure gold as the author breaks down the origins and commonalities among the alphabet and common phonetic structure of languages around the globe. A must for language lovers and absolutely a stand alone in its design quality and visualization of verbal concepts. Go <a href="http://www.brainpickings.org/index.php/2011/06/21/shapes-for-sounds/" target="_blank">here for a great review</a> that shows some of the amazing graphics found in the book.</p>
<p><span style="font-size: small;"><br />
<a title="Glitch: Designing Imperfection" href="http://www.amazon.com/Glitch-Designing-Imperfection-Iman-Moradi/dp/0979966663/ref=la_B002UNU95G_1_1?ie=UTF8&#038;qid=1338445348&#038;sr=1-1" target="_blank"><br />
<img src="http://ecx.images-amazon.com/images/I/617sDQz-P3L._SL500_AA300_.jpg" alt="" /><br />
</a></span><br />
<a title="Glitch: Designing Imperfection" href="http://www.amazon.com/Glitch-Designing-Imperfection-Iman-Moradi/dp/0979966663/ref=la_B002UNU95G_1_1?ie=UTF8&#038;qid=1338445348&#038;sr=1-1" target="_blank"><br />
Glitch: Designing Imperfection</a><br />
Iman Moradi</p>
<p>Yes, this type of book is designer bait, but who can resist? It provides a nice snapshot of the Glitch trend and seems to fit somewhere between Metro and the New Aesthetic. If you&#8217;re looking for design that isn&#8217;t minimalist yet also is <a href="http://rbarraza.com/is-metro-a-noun-or-a-verb/" target="_blank">exploring what it means to be digital</a> now that skeumorphism has jumped the shark, start here. There are at least a half dozen app ideas in here just waiting to be fished out.</p>
<p><span style="font-size: small;"><br />
<a title="Karakuri: How to Make Mechanical Paper Models That Move " href="http://www.amazon.com/Karakuri-Make-Mechanical-Paper-Models/dp/0312566697/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1338444503&#038;sr=1-1" target="_blank"><br />
<img src="http://img2.imagesbn.com/images/43580000/43585609.JPG" alt="" /><br />
</a></span><br />
<a title="Karakuri: How to Make Mechanical Paper Models That Move " href="http://www.amazon.com/Karakuri-Make-Mechanical-Paper-Models/dp/0312566697/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1338444503&#038;sr=1-1" target="_blank"><br />
Karakuri: How to Make Mechanical Paper Models That Move</a><br />
Keisuke Saka</p>
<p>Finally, this book is papercraft for geeks! I&#8217;m not ashamed to say that I learned more about gears, cranks and levers from this book then I ever have before. Building paper based models of simple mechanisms while learning about the time honored art of Japanese Automata is a winning combo and my daughter and I build the functional paper robots together. Geek Win + Dad Win = Buy It.</p>
<p>That&#8217;s it for this month. You reading anything amazing? Let me know in the comments!</p>
<p><a href="http://twitter.com/rickbarraza" title="rick barraza" target="_blank">@rickbarraza</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rbarraza.com/10-good-books-may2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Metro a Noun or a Verb?</title>
		<link>http://rbarraza.com/is-metro-a-noun-or-a-verb/</link>
		<comments>http://rbarraza.com/is-metro-a-noun-or-a-verb/#comments</comments>
		<pubDate>Thu, 17 May 2012 23:31:05 +0000</pubDate>
		<dc:creator>Rick Barraza</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rbarraza.com/?p=150</guid>
		<description><![CDATA[Some languages are more slippery than others. George Orwell argued that English was the language of politics due to its high level of vagueness. In English, some words are downright unpinable. If you have anything to do with the concept, design and development of software, I’m sure you’ve run into this with the word design. [...]]]></description>
			<content:encoded><![CDATA[<p><span class="leadingSentence">Some languages are more slippery than others.</span> George Orwell argued that English was the <a title="Politics and the English Language" href="http://en.wikipedia.org/wiki/Politics_and_the_English_Language" target="_blank">language of politics</a> due to its high level of vagueness. In English, some words are downright unpinable.</p>
<p>If you have anything to do with the concept, design and development of software, I’m sure you’ve run into this with the word <em>design</em>. Everyone uses the word but most people can&#8217;t agree on what it means. Metro face many of the same challenges, since Metro inherits from Design. So before we analyze Metro syntax, let’s tackle the question of design.<br />
<span id="more-150"></span></p>
<h2>What is Design?</h2>
<p>Much of the frustration between designers and developers is due to a basic semantic problem. Design is <em>both </em>a noun and a verb.</p>
<p>Most people think of design as a noun. <em>I love the design of that app.</em> In this context, design as a noun is usually collapsed down to simply mean the visual style of the app. When they speak of design they just mean the skin and the visual ornaments tacked on at the end.</p>
<p>Design professionals, though, tend to think of design as a verb.<em> I design apps peoples love.</em> In this context, design as a verb is all about the process from the beginning. To understand what Metro is and what it isn’t, more importantly, to understand how to do Metro right, you have to understand this process.</p>
<h2>Three Pillars of Great Design</h2>
<p>In the Donald Norman classic, <a href="http://www.amazon.com/Emotional-Design-Love-Everyday-Things/dp/0465051367/ref=sr_1_3?ie=UTF8&amp;qid=1337294087&amp;sr=8-3#_" target="_blank">Emotional Design: Why we Love (or Hate) Everyday Things</a>, great design can viewed as a synthesis of three targeted disciplines: visceral design, behavioral design, and reflective design.<br />
<br/><br />
<img class="alignnone size-full wp-image-123" title="Great Design" src="http://rbarraza.com/wp-content/uploads/2012/05/threePillars.png" alt="" width="600" height="193" /><br />
<br/><br />
<strong>Visceral design </strong>is all about nailing that initial, gut reaction. The goal of visceral design is to brain hack the user by directly appealing to their base, automatic reactions. We can cerebrally talk about beauty only being skin deep, but we all want to experience love at first sight.</p>
<p><strong>Behavioral design </strong>is all about solving the right problem, and making sure you are solving it the right way. Is the application functional, dependable, and usable? This model embraces the consumer as a predictable, rational user fixed on performing a task.</p>
<p><strong>Reflective design </strong>elevates the solution into the social and moral landscape. What does using this product say about me, my values, my goals, and my network? This product associates me with what larger movement, tribe or belief system?</p>
<p>Cheap design will chase a single pillar at the expense of the other two. Great design architects a solution that is properly balanced upon all three, depending on the goal of the application and the audience it serves. So where does Metro rank?</p>
<h2>What is Metro?</h2>
<p>At the highest level, Metro is a design philosophy that embraces five core principles:</p>
<p>• Pride of Craftsmanship<br />
• Fast and Fluid<br />
• Authentically Digital<br />
• Do More with Less<br />
• Win as One</p>
<p>When we map these principles to the three pillars of great design, we see that <em>Metro absolutely nails Behavioral Design</em>. With its reductivist and modernist ethos, it promotes content before chrome. It preaches form follows function and embraces the elegance of simplicity.</p>
<p>However, I would also argue that <em>Metro is at the forefront of a radical shift in Reflective Design</em>. This is perfectly encapsulated in the creed <strong>Authentically Digital</strong>. To understand the deep and significant shift in thinking that this requires, we need to zoom out and put this war cry in its context.</p>
<h2>The Rise and Fall of Skeumorphism</h2>
<p>When most people speak of design as a noun, they are talking about the feeling they get from the aesthetics. In this post scarcity, hyper consumer based economy, this battle for eyeballs and dollars has been fought primarily targeting this aspect of visceral design.</p>
<p>Unfortunately, the easiest way to nail visceral design, even at the expense of behavioral and reflective design, is to employ skeumorphism. Skeumorphism can be defined as <em>a derivative object that retains ornamental design cues to a structure that was necessary in the original.</em> In other words, making the app mimic the anolog world to invoke desire. Doing this well is a talent. It is also the first thing we are usually drawn to and learn as budding designers.</p>
<p>Skeumorphism in itself isn’t bad. It is one of several techniques at our disposal as design professionals. <a title="Page Flip Technique" href="http://rbarraza.com/html5-canvas-pageflip/" target="_blank">The Page Flip effect I created a couple posts back is a perfect example of skeumorphism.</a> There is no actual paper, light source, or shadows in the virtual pages you flip, but by manipulating the effect of physical paper turning, the design is targeting the familiar to play upon your emotions when interacting with the digital. </p>
<p>Unfortunately, skeumorphism stopped being one of several ingredients in a well-balanced diet of experience design, and became our primary food group. Skeumorphism is eye candy. Skeumorphism is highly refined, blindingly white brain sugar, and who does’t like sugar? But if skeumorphism is the only trick we needed to learn, we can&#8217;t really call ourselves designers since we&#8217;re not really solving any problems. We would simply be stylists for hire. Now that may be what a particular client wants, but its not what our profession is all about. Design solves problems.</p>
<p>So the shift in professional design to move away from skeumorphism did not begin with Metro, but it is an emerging movement arising across the world of design and technology as a push back against this sickly sweet, analog mimicry that has saturating everything. We are waking up to a new aesthetic, and shedding crutches that were needed during the analog to digital transition, but may be gratuitous bloat today.</p>
<p>Through a brilliant combination of talent, hard work, luck and timing, it just so happens that Metro is coming out at exactly the right time to be the dominant operating system of this paradigm shift. This is big, deep, radical change. This is change that inspires. This is change that terrifies. This is change that forces reflection.</p>
<h2>Please Don’t Be Boring</h2>
<p>So while skeumorphism isn’t the only way to achieve visceral design, breaking free from it is not an easy task. It now has decades of momentum and ubiquity in the digital world. It is that easy access box of donuts at work in the morning that tempts us with filters, cow bell, and gimmicks that many of us have stuffed in our toolbox over the years for just that very reason. That tired collection of good old crowd pleasers we can crank out quickly and move on to the projects that really inspired us. We&#8217;re all guilt of this. But we should work at stopping it. </p>
<p>&#8230;Metro is a forcing function that can help us return to great design.</p>
<p>That is why Metro is hard right now for many designers, because it requires all of us to think differently about our designs <em>from the ground up</em>. But this is a good thing. Edward Tufte says that good design is clear thinking made visible. As such, Metro design doesn’t start with templates, it starts with questions. Are you sure you are solving the right problem? Are you solving it with laser focus and clarity? Are you solving it as fast and fluid as possible? What form would best optimize this function? Is the visual style being true to both the task at hand the desire of the audience? Or is the style treatment simply relying on eye candy to hide a weak concept or poor execution?</p>
<p>It is said that a design is done, not when there is nothing left to add but when there is nothing left to remove. The difference between an amateur and a professional in both design and software is that an amateur becomes obsessed with adding new objects and frameworks, even when not needed. In contrast, a mature professional thinks in terms of refining the solution down to its essence and sustainable framework. In both cases, professionalism is manifest in the ability to strip off all that is unnecessary, but nothing more.</p>
<p>Metro promotes visceral design through pride of craftsmanship. This is not easy to do. This requires thought and talent. Simply stripping all the chrome away down to the bones is no more metro than stuffing everything into a box and using 42 point fonts.</p>
<p>The design of a Metro app is focused on human centered problem solving. Enable the task to be performed quickly and efficiently, but don’t forget the human on the other end. Getting rid of skeumorphism isn’t done to remove any traces of humanity, but to provide space for the authenticity and soul of your application to breathe.</p>
<p><strong>Most importantly, the amount of visceral design has to be appropriate for the task and audience.</strong> Pragmatic, task driven apps should plainly manifest the prioritization of behavioral design within Metro. As the content and goals of the application move into the visceral realm (such as luxury goods and services, entertainment experiences, gameplay or creativity products), the aesthetic should match accordingly. In both cases, though, it is the content that dictates the style. <em>There should be no more and no less style than is required by the content and the audience.</em> That is putting content before chrome.</p>
<h2>So is Metro a noun or a verb?</h2>
<p>Like Design, Metro is both. Metro design requires an investment among everyone involved in building the app, both developers and designers. And while we as designers should be drawn to the elegant simplicity the language affords, let us have no doubt about it &#8211; whatever we want to express, engineering will need it in tangible nouns. We all have to speak the same language.</p>
<p>So when you need a crash course in a language, there are two initial steps that are critical. The first is building up a vocabulary of nouns. The second is memorizing a few key phrases that get you up and running as fast as possible. We are in exactly the same position with Metro right now.</p>
<p>The templates and code samples that are available today in the preview version of Visual Studio 11 are exactly that: well executed phrases and nouns for some of the most common scenarios. Start there. Start with the nouns. Memorize those phrases. But it’s not about memory; it is about breaking these simple, entry level phrases down apart and studying them, practicing them again and again until you start to understand how the grammar works.</p>
<p>Even if you are a designer, start with the nouns and phrases. <em>Especially </em>if you are a designer, start with the nouns. It will keep you honest. Because we are so accustomed to speaking skemorphism as our default language, the tendency to want to swap out words or thinking from our current tongue to complete the phrase in Metro may be too strong to resist. But fight this tendency if you want to learn it right. Otherwise, the results will just be a poor example of both.</p>
<h2>Languages Evolve</h2>
<p>Metro is the dominant language of the emerging Microsoft ecosystem. If this is where we are going to live and work, we should learn to speak it well. It is not defined by those templates, but those templates are the phrase book to get you up and running as a native speaker as quick as possible.</p>
<p>The danger, however, comes when we start believing that those few dozen phrases constitute the entirety of the language and the limits of its ability to be expressive, to inspire, to be visceral. Those nouns and phrases are needed to understand the syntax and are a required first step. But the goal of language is expression. As designers and developers, we need to start with the nouns to work our way up to the verbs and adjectives. Don’t take short cuts, invest in them early. But pushing onward, we move up the spectrum to achieve mastery of the core principles of this new language.</p>
<p>Metro has the power to be a highly efficient language that both enhances and enables the people who use it. But it should not be confined to a small lookup table of compliance. <em>If this is how you think about Metro, you are thinking about it wrong.</em></p>
<p>What Metro needs are native speakers who have invested the time and energy to understand the beauty of this language and speak it with subtle elegance. Speakers who understand what it is trying to say about technology and its place within our broader world of humanity. Like learning a new language, it will be frustrating at first and may require patience and determination. But the rewards are worth it. Invest in learning the language right. Respect the rules of grammar. But once you’re fluent, make it sing.<br />
<br/><br />
<a href="http://twitter.com/rickbarraza" title="follow me on twitter" target="_blank">@rickbarraza</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rbarraza.com/is-metro-a-noun-or-a-verb/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>10 Good Books I&#8217;m Reading Now &#8211; April 2012</title>
		<link>http://rbarraza.com/10-good-books-im-reading-now-april-2012/</link>
		<comments>http://rbarraza.com/10-good-books-im-reading-now-april-2012/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 22:28:42 +0000</pubDate>
		<dc:creator>Rick Barraza</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rbarraza.com/?p=122</guid>
		<description><![CDATA[My desk, home office and bedroom are usually swimming in books. Here are ten that I&#8217;ve been busy with recently and recommend: Responsive Web Design by Ethan Marcotte A great little book from the gang at &#8220;A Book Apart&#8221;, this gets you up to speed quickly on the main ideas behind Responsive Design. Besides the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rbarraza.com/wp-content/uploads/2012/04/10booksApril.jpg"><img class="alignnone size-full wp-image-123" title="10booksApril" src="http://rbarraza.com/wp-content/uploads/2012/04/10booksApril.jpg" alt="" width="600" height="448" /></a></p>
<p>My desk, home office and bedroom are usually swimming in books. Here are ten that I&#8217;ve been busy with recently and recommend:<br />
<span id="more-122"></span></p>
<p><span style="font-size: small;"><a title="Responsive Web Design" href="http://www.abookapart.com/products/responsive-web-design" target="_blank"><img src="http://ecx.images-amazon.com/images/I/61qNrYMJFfL._AA115_.png" alt="" /></a></span><br />
<a title="Responsive Web Design" href="http://www.abookapart.com/products/responsive-web-design" target="_blank">Responsive Web Design</a><br />
by Ethan Marcotte</p>
<p>A great little book from the gang at &#8220;A Book Apart&#8221;, this gets you up to speed quickly on the main ideas behind Responsive Design. Besides the immediate advantages of thinking in terms of mobile first and fluid layouts for websites across devices, I found it a great help in shifting my traditional thinking around apps to a more fluid layout for Metro design as well. I bought it as an ebook first, but ordered the hardcopy as well since I love the book design and want to support such efforts with cash. Thanks to <a href="https://twitter.com/#!/rainypixels" target="_blank">@rainypixels</a> for the recommend.</p>
<p><span style="font-size: small;"><br />
<a title="The Vignelli Canon" href="http://www.amazon.com/The-Vignelli-Canon-Massimo/dp/3037782250/ref=sr_1_1?ie=UTF8&amp;qid=1334774328&amp;sr=8-1" target="_blank"><br />
<img src="http://images.booksense.com/images/books/255/782/FC9783037782255.JPG" alt="" /><br />
</a></span><br />
<a title="The Vignelli Canon" href="http://www.amazon.com/The-Vignelli-Canon-Massimo/dp/3037782250/ref=sr_1_1?ie=UTF8&amp;qid=1334774328&amp;sr=8-1" target="_blank"><br />
The Vignelli Canon</a><br />
by Massimo Vignelli</p>
<p>Massimo Vignelli is one of the most important designers of the last half century, and continues to work down to today. Anyone touching Metro needs to reads this book. I stumbled upon the hard copy at <a title="Elliot Bay Books" href="http://www.elliottbaybook.com/" target="_blank">Elliot Bay Books</a> here in Seattle (a must go to haunt for all things [book+epic]), but <b>it seems that Massimo Vignelli has also made a</b> <a href="http://www.vignelli.com/canon.pdf" target="_blank">PDF copy freely available</a> <b>off his website.</b> Thanks to <a href="https://twitter.com/#!/augustdlr" target="_blank">@augustdlr</a> for introducing me to Massimo Vignelli.</p>
<p><span style="font-size: small;"><br />
<a title="Imagine" href="http://www.amazon.com/Imagine-Creativity-Works-Jonah-Lehrer/dp/0547386079/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1334782557&amp;sr=1-1" target="_blank"><br />
<img src="http://ecx.images-amazon.com/images/I/51lmwRuM9oL._AA160_.jpg" alt="" /><br />
</a></span><br />
<a title="Imagine" href="http://www.amazon.com/Imagine-Creativity-Works-Jonah-Lehrer/dp/0547386079/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1334782557&amp;sr=1-1" target="_blank"><br />
Imagine</a><br />
by Jonah Lehrer</p>
<p>Picked up this book at work as part of Microsoft Research and their visiting speaker series. Enjoyed how he contrasts the right brain &#8220;Flash of Inspiration&#8221; aspects of creativity with the equally important &#8220;sense of knowing&#8221; drive that keeps one pushing forward when others would give up.</p>
<p><span style="font-size: small;"><br />
<a title="Imagine" href="http://shop.oreilly.com/product/9780596517748.do" target="_blank"><br />
<img src="http://covers.oreilly.com/images/9780596517748.IP/bkt.gif" alt="" /><br />
</a></span><br />
<a title="Javascript: The Good Parts" href="http://shop.oreilly.com/product/9780596517748.do" target="_blank"><br />
Javascript: The Good Parts</a><br />
by Douglas Crockford</p>
<p>I know I&#8217;m a little bit late to the party on this one, but it has been coming in handy recently as I onramp my very out dated, very dusty web skills. Thanks to <a href="https://twitter.com/#!/allenjs" title="Joshua Allen" target="_blank">@allenjs</a> for the recommend.</p>
<p><span style="font-size: small;"><br />
<a title="The Manual" href="http://alwaysreadthemanual.com/" target="_blank"><br />
<img src="http://rbarraza.com/wp-content/uploads/2012/04/themanual.jpg" alt="" /><br />
</a></span><br />
<a title="The Manual" href="http://alwaysreadthemanual.com/" target="_blank"><br />
The Manual</a><br />
<i>multiple contributors</i></p>
<p>Here is a great book (periodical? Website articles via hardcover?) that I just love. Smart writing and great topics. Here is how they self describe and I whole heartedly agree: &#8220;Three beautiful, illustrated hardbound books a year, each holding six articles and six personal lessons that use the maturing of the discipline of web design as a starting point for deeper explorations of our work and who we are as designers.&#8221; Props to <a href="https://twitter.com/#!/justsomeguy" target="_blank">@justsomeguy</a> for the recommend.</p>
<p><span style="font-size: small;"><br />
<a title="Just My Type" href="http://www.simongarfield.com/pages/books/just_my_type_us_edition.htm" target="_blank"><br />
<img src="http://ecx.images-amazon.com/images/I/51UALW1h91L._AA160_.jpg" alt="" /><br />
</a></span><br />
<a title="Just My Type" href="http://www.simongarfield.com/pages/books/just_my_type_us_edition.htm" target="_blank"><br />
Just My Type</a><br />
by Simon Garfield</p>
<p>If you are a graphic designer, new order &#8220;designerd&#8221;, or just love fonts, pick up this book. It is a wonderfully entertaining trip through the world of type design. The forward is by <a href="http://www.ted.com/talks/lang/en/chip_kidd_designing_books_is_no_laughing_matter_ok_it_is.html" title="Chip Kidd" target="_blank">Chip Kidd</a> for heaven&#8217;s sake! Great stuff.</p>
<p><span style="font-size: small;"><br />
<a title="Distrust That Particular Flavor" href="http://www.williamgibsonbooks.com/books/distrust_that_particular_flavor.asp" target="_blank"><br />
<img src="http://www.williamgibsonbooks.com/images/books/distrust_that_particular_flavor.jpg" alt="" /><br />
</a></span><br />
<a title="Distrust That Particular Flavor" href="http://www.williamgibsonbooks.com/books/distrust_that_particular_flavor.asp" target="_blank"><br />
Distrust That Particular Flavor</a><br />
by William Gibson</p>
<p>While known primarily as a novelist and one of the founding fathers of cyberpunk, William Gibson has written extensively for magazines, newspapers and media outlets all over the world. This collection of essays spans his 30 year career and are a joy to read. Props again to Microsoft Research and their visiting speaker series that brings these great authors to the Microsoft Campus and give us a chance to meet and interact with the authors.</p>
<p><span style="font-size: small;"><br />
<a title="The Information" href="http://www.amazon.com/The-Information-History-Theory-Vintage/dp/1400096235/ref=sr_1_1_title_0_main?s=books&#038;ie=UTF8&#038;qid=1334785469&#038;sr=1-1" target="_blank"><br />
<img src="http://ecx.images-amazon.com/images/I/514ur1i6PWL._AA160_.jpg" alt="" /><br />
</a></span><br />
<a title="The Information" href="http://www.amazon.com/The-Information-History-Theory-Vintage/dp/1400096235/ref=sr_1_1_title_0_main?s=books&#038;ie=UTF8&#038;qid=1334785469&#038;sr=1-1" target="_blank"><br />
The Information</a><br />
by James Gleick</p>
<p>James Gleick is known for writting <b>Chaos</b> and <b>Genius</b> but I&#8217;m really digging his new book, <b>The Information: A History, A Theory, A Flood</b>. I haven&#8217;t finished it yet, but even just the opening chapter on the data implications of African talking drums alone makes the book worth it.</p>
<p><span style="font-size: small;"><br />
<a title="The Fractal Geometry of Nature" href="http://www.amazon.com/Fractal-Geometry-Nature-Benoit-Mandelbrot/dp/0716711869/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1334785770&#038;sr=1-1" target="_blank"><br />
<img src="http://ecx.images-amazon.com/images/I/51skyBvNuEL._AA160_.jpg" alt="" /><br />
</a></span><br />
<a title="The Fractal Geometry of Nature" href="http://www.amazon.com/Fractal-Geometry-Nature-Benoit-Mandelbrot/dp/0716711869/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1334785770&#038;sr=1-1" target="_blank"><br />
The Fractal Geometry of Nature</a><br />
by Benoit B. Mandelbrot</p>
<p>Sometimes you need to hear it straight from the horse&#8217;s mouth, and here is <a href="http://www.ted.com/talks/lang/en/benoit_mandelbrot_fractals_the_art_of_roughness.html" title="Benoit Mandelbrot" target="_blank">Benoit Mandelbrot</a> talking about his own baby, fractal geometry. Picked it up from the Microsoft library, so if you&#8217;re a blue badge, you can borrow it once I&#8217;m done, natch.</p>
<p><span style="font-size: small;"><br />
<a title="Blank - A Book on Printing" href="http://www.amazon.com/Blank-Book-Printing-Vivian-Lei/dp/9881889359" target="_blank"><br />
<img src="http://ecx.images-amazon.com/images/I/51ds39goFoL._AA160_.jpg" alt="" /><br />
</a></span><br />
<a title="Blank - A Book on Printing" href="http://www.amazon.com/Blank-Book-Printing-Vivian-Lei/dp/9881889359" target="_blank"><br />
Blank. A Book on Printing</a><br />
Artpower International Publishing</p>
<p>If you find yourself in Seattle and you love books, go to <a title="Elliot Bay Books" href="http://www.elliottbaybook.com/" target="_blank">Elliot Bay Books</a>. But after you&#8217;ve gone there, if you love design books of all flavors and Japanese stationary, check out the awesome collection at <a href="http://www.bing.com/local/details.aspx?lid=YN926x15795015&#038;qt=yp&#038;what=Kinokuniya+bookstore&#038;where=Seattle%2c+Washington&#038;s_cid=ansPhBkYp02&#038;mkt=en-us&#038;q=Kinokuniya+Book+Store+Seattle&#038;FORM=LARE" title="Kinokuniya" target="_blank">Kinokuniya Book Store</a> at Uwajimaya Village in the International District. I love this place. Picked up this book on my last visit and has great, glossy pics of modernist and minimalist print design. Great for a serious dose of &#8220;Metro style&#8221; inspiration for your next Windows 8 project.</p>
<p>That&#8217;s it for this month. You reading anything amazing? Let me know in the comments!</p>
<p><a href="http://twitter.com/rickbarraza" title="rick barraza" target="_blank">@rickbarraza</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rbarraza.com/10-good-books-im-reading-now-april-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Secret to the Page Flip in HTML5/Canvas for Windows8 and iOS</title>
		<link>http://rbarraza.com/html5-canvas-pageflip/</link>
		<comments>http://rbarraza.com/html5-canvas-pageflip/#comments</comments>
		<pubDate>Sun, 08 Apr 2012 00:13:17 +0000</pubDate>
		<dc:creator>Rick Barraza</dc:creator>
				<category><![CDATA[HTML5/Canvas]]></category>

		<guid isPermaLink="false">http://rbarraza.com/?p=24</guid>
		<description><![CDATA[source: PageFlip.js A few years back I wrote a tutorial called &#8220;The Secret Behind the Page Flip Technique&#8221; for Silverlight Developers while working as Creative Director at the experience agency, cynergy.  That blog post isn&#8217;t available anymore, and I haven&#8217;t touched Silverlight in a while, but even now, I still get several requests for the solution. [...]]]></description>
			<content:encoded><![CDATA[<div class="DivPageFlip" style="overflow: hidden; background: #333333; width: 100%; height: 400px;"></div>
<p><span class="sourceLink">source: <a href="http://rbarraza.com/wp-content/script/PageFlip.js" title="PageFlip.js" target="_blank">PageFlip.js</a></span><br />
<script type="text/javascript" src="http://rbarraza.com/wp-content/script/PointerFusion.js"></script><script type="text/javascript" src="http://rbarraza.com/wp-content/script/PageFlip.js"></script><br />
<script type="text/javascript">// <![CDATA[
PageFlip();
// ]]&gt;</script><br />
<span class="leadingSentence">A few years back I wrote a tutorial called &#8220;The Secret Behind the Page Flip Technique&#8221;</span> for Silverlight Developers while working as Creative Director at the experience agency, <a href="http://www.cynergy.com" title="PageFlip.js" target="_blank">cynergy.</a>  That blog post isn&#8217;t available anymore, and I haven&#8217;t touched Silverlight in a while, but even now, I still get several requests for the solution.</p>
<p>As I&#8217;ve been on-ramping my skills with HTML5, I decided to kill two birds with one stone and solve from scratch the advanced Page Flip Technique with Canvas. While underlying math is very similar, drawing, rotation and clipping are very different between Canvas in HTML5 and Silverlight, so I had to work out quite a few new tricks, highlighted below.<br/><br/><br />
<span id="more-24"></span></p>
<h2>Handling Touch and Constraints</h2>
<div class="DivStudy1" style="overflow: hidden; background: #333333; width: 100%; height: 400px;"></div>
<p><span class="sourceLink">source: <a href="http://rbarraza.com/wp-content/script/Study1.js" title="Study1.js" target="_blank">study1.js</a></span></p>
<p>The page flip above and all the interactive math illustrations work with the mouse, but also work with touch events from an iPhone or iPad and with the msPointer events for Internet Explorer 10 and the Windows 8 Consumer Preview. In order to get this to work, I found some great articles online, most notably <a href="http://blogs.msdn.com/b/ie/archive/2011/10/19/handling-multi-touch-and-mouse-input-in-all-browsers.aspx" title="Handling Multi-Touch and mouse input in all browsers" target="_blank">Handling Multi-Touch and mouse input in all browsers</a> from the IEBlog. I pulled out what I needed for the platforms I was targeting and wrapped the main functions in a file called PointerFusion.js, which you will find in the code behind. You call PointerFusion.js by passing in a DIV that will house your Canvas element, along with the down, move and up functions you want linked to it like so:</p>
<p><code><br />
var targets;<br />
if (document.querySelectorAll)<br />
{<br />
  targets = document.querySelectorAll(".DivStudy1");<br />
  if ( targets.length > 0 ) {<br />
    PointerFusion(targets[0], onMouseDown, onMouseMove, onMouseUp);<br />
  } else {<br />
    return;<br />
  }<br />
}<br />
</code></p>
<p>If you look at <a href="http://rbarraza.com/wp-content/script/Study1.js" title="Study1.js" target="_blank">study1.js</a>, you&#8217;ll see that the init() function kicks everything off, and after sending the DIV target to PointerFusion to enable mouse/pointer/touch interactions, sets up the Canvas elements and wires up a resize listener to call SetSizes() so the DIV and Canvas elements can support a responsive layout ( like this blog ) and will continue to work on a smaller iPhone / Windows Phone 7 screen up to an iPad / Microsoft Tablet or full Windows 8 / IE10 browser.</p>
<p>The &#8220;math&#8221; part of the page flip is very straightforward for this first step, and is all handled in the function renderMath(). Mainly, we setup a point that represents the mouse (or touch, or pointer, etc.) shown above as <strong>[M]</strong> and a generic follow point <strong>[F]</strong> that provides some graceful easing. Our red node represents the corner of the page <strong>[C]</strong> and will always try and align itself to <strong>[F]</strong>. However, since we are mapping a physical page flip, the corner of the page <strong>[C]</strong> needs to have two constraints. You can&#8217;t turn the page &#8216;upward&#8217; more than the page width allows without tearing the page, so from Spine Bottom <strong>[SB]</strong> to the Edge Bottom <strong>[EB]</strong>, we create the first radius constraint <strong>[R1]</strong>. A physical page being turned also can&#8217;t be turned &#8216;downward&#8217; more than the page diagonal without ripping, so by taking the diagonal from the Spine Top <strong>[ST]</strong> to [EB], we create the second radius constraint <strong>[R2]</strong>.</p>
<p>So as we finish step1.js, we have a Canvas that dynamically resizes itself to it&#8217;s DIV container for a responsive layout, a DIV that is wired for mouse, touch and pointers and renders acceptably in iPhone, iPad, Windows Phone 7, touch optimized Windows 8 experiences, and the common mouse. Dragging your finger moves the corner <strong>[C]</strong>, but only within the constraints defined by <strong>[R1]</strong> and <strong>[R2]</strong>. Not a bad start, there is is still a lot more.</p>
<h2>Calculating the Critical Triangle</h2>
<div class="DivStudy2" style="overflow: hidden; background: #333333; width: 100%; height: 400px;"></div>
<p><span class="sourceLink">source: <a href="http://rbarraza.com/wp-content/script/Study2.js" title="Study2.js" target="_blank">study2.js</a></span></p>
<p>In order for the page flip technique to work, we need to calculate a critical triangle that gives us the angle of the page being flipped, as well as the angle of the clipping mask. This triangle is formed by finding the bisector <strong>[T0]</strong> of the corner <strong>[C]</strong> and the edge bottom <strong>[EB]</strong>. Once we have <strong>[T0]</strong>, we shoot out a line perpendicular to the bisector toward the page bottom <strong>[T1]</strong>. You then close up the triangle with <strong>[T2]</strong>. </p>
<p>Here is what the math looks like:</p>
<p><code><br />
bisector.x = corner.x + .5*(edgeBottom.x - corner.x);<br />
bisector.y = corner.y + .5*(edgeBottom.y - corner.y);<br />
bisectorAngle = Math.atan2(edgeBottom.y - bisector.y, edgeBottom.x - bisector.x);<br />
bisectorTangent = bisector.x - Math.tan(bisectorAngle) * (edgeBottom.y - bisector.y);<br />
if ( bisectorTangent < 0 ) bisectorTangent = 0;<br />
tangentBottom.x = bisectorTangent;<br />
tangentBottom.y = edgeBottom.y;<br />
bisectorBottom.x = bisector.x;<br />
bisectorBottom.y = tangentBottom.y;<br />
</code></p>
<h2>The Page and the Clipping Region</h2>
<div class="DivStudy3" style="overflow: hidden; background: #333333; width: 100%; height: 400px;"></div>
<p><span class="sourceLink">source: <a href="http://rbarraza.com/wp-content/script/Study3.js" title="Study3.js" target="_blank">study3.js</a></span></p>
<p>Once we have the critical triangle, we have the angles required to calculate the position and rotation of both the Page sheet and what will become our Clipping Region. If you look at the code for Study3.js, you'll see that the work is done in a function called drawSheets(). The two angles we care about are the pageAngle and the clipAngle. They are calculated like so:</p>
<p><code><br />
var clipAngle = Math.atan2(tangentBottom.y - bisector.y, tangentBottom.x - bisector.x);<br />
if ( clipAngle < 0 ) clipAngle += Math.PI;<br />
clipAngle -= Math.PI/2;<br />
</code></p>
<p>Placing and rotating the Page canvas (shown in red) is relatively straight forward. The place it at <strong>[C]</strong> and rotate it by the calculated <strong>pageAngle</strong>. The code looks like this:</p>
<p><code><br />
clipctx.save();<br />
clipctx.translate(corner.x, corner.y);<br />
clipctx.rotate(pageAngle);<br />
clipctx.drawImage(sheetctx.canvas,0,-pageHeight);<br />
clipctx.restore();<br />
</code></p>
<p>Calculating the clipping region is a bit harder. We need to make sure the clipping region is fixed to <strong>[T1]</strong>, but rotated by <strong>clipAngle</strong>. To do this, I wrote a helper function that takes in a point and an angle of rotation and returns that value rotated around [T1]. The function looks like this:</p>
<p><code><br />
function rotateClipPoint(_p, angle) {<br />
  var result = new Point();<br />
  _p.x -= tangentBottom.x;<br />
  _p.y -= tangentBottom.y;<br />
  result.x = (_p.x * Math.cos(angle)) - (_p.y*Math.sin(angle));<br />
  result.y = Math.sin(angle)*_p.x + Math.cos(angle)*_p.y;<br />
  result.x += tangentBottom.x;<br />
  result.y += tangentBottom.y;<br />
  return result;<br />
}<br />
</code></p>
<p>Once we have those clipping points, for Study3 we use them define a filled path that represents the clipping region we will use later (shown in blue). In the final step, we will use these calculated points to define an actual clipping path for a canvas that wraps the page canvas being rendered.</p>
<h2>Implementing the Clip</h2>
<div class="DivStudy4" style="overflow: hidden; background: #333333; width: 100%; height: 400px;"></div>
<p><span class="sourceLink">source: <a href="http://rbarraza.com/wp-content/script/Study4.js" title="Study4.js" target="_blank">study4.js</a></span></p>
<p>The biggest challenge in implementing the Page Flip technique in Canvas isn't the math, but figuring out the clipping. The problem I ran into was that drawing content from a canvas into another canvas first in retained mode and then applying a clip function wouldn't work. However, if I defined the clip first and then attempted to save() restore() on the drawing context to draw a rotated element, restore() call would also wipe out the clip! If you don't understand what that means, just play with it enough and trust me, you will. It was infuriating.</p>
<p>The way I was able to work around it was two fold. I needed to force a full drawing context reset by setting the width property on the parent canvas and rotate, nest, render and clip from scratch on every loop. There are three canvas and drawing context we are using in Study 4. SheetCTX is the canvas drawing context we are using for our page placeholder ( if you look at the final code for <a href="http://rbarraza.com/wp-content/script/PageFlip.js" title="PageFlip.js" target="_blank">PageFlip.js</a> you will see that SheetCTX is not only responsible for the page being flipped, but also the dynamic shadow of the page curl as well ). SheetCTX is rendered into the drawing context of the wrapper canvas that handles the clipping, called ClipCTX. Once the position and angle of the page is rendered into SheetCTX, ClipCTX uses the clipping points to define a Clipping path region and render SheetCTX into itself. At this point, we render SheetCTX into our main drawing context, CTX to interact with the rest of the elements on the screen. The full function looks like so:</p>
<p><code><br />
function drawSheets()<br />
{<br />
  var pageAngle = Math.atan2(tangentBottom.y - corner.y, tangentBottom.x - corner.x);<br />
  var clipAngle = Math.atan2(tangentBottom.y - bisector.y, tangentBottom.x - bisector.x);<br />
  if ( clipAngle < 0 ) clipAngle += Math.PI;<br />
  clipAngle -= Math.PI/2;<br />
  sheetCanvas.width = pageWidth;<br />
  sheetctx.fillStyle = "rgba(255,0,0,.3)";<br />
  sheetctx.fillRect(0,0,pageWidth, pageHeight);<br />
  // CALCULATE THE CLIPPING CORNERS<br />
  clipPoint0 = rotateClipPoint(new Point(tangentBottom.x, tangentBottom.y+50), clipAngle);<br />
  clipPoint1 = rotateClipPoint(new Point(tangentBottom.x-pageWidth, tangentBottom.y+50), clipAngle);<br />
  clipPoint2 = rotateClipPoint(new Point(tangentBottom.x-pageWidth, tangentBottom.y-550), clipAngle);<br />
  clipPoint3 = rotateClipPoint(new Point(tangentBottom.x, tangentBottom.y-550), clipAngle);<br />
  // RESET THE CLIPCANVAS AND CREATE CLIPPING REGION<br />
  clipCanvas.width = WIDTH;<br />
  clipctx.beginPath();<br />
  clipctx.moveTo(clipPoint0.x, clipPoint0.y);<br />
  clipctx.lineTo(clipPoint1.x, clipPoint1.y);<br />
  clipctx.lineTo(clipPoint2.x, clipPoint2.y);<br />
  clipctx.lineTo(clipPoint3.x, clipPoint3.y);<br />
  clipctx.closePath();<br />
  clipctx.clip();<br />
  // DRAW THE UPDATED PAGE BEING TURNED<br />
  clipctx.translate(corner.x, corner.y);<br />
  clipctx.rotate(pageAngle);<br />
  clipctx.drawImage(sheetctx.canvas,0,-pageHeight);<br />
  // DRAW THE CORNER<br />
  ctx.drawImage(clipctx.canvas,0,0);<br />
}<br />
</code></p>
<h2>Conclusion</h2>
<p>The final PageFlip experience shown at the top of this post is built directly on top of Study4, but uses graphics for the Pages being flipped and some well placed (and calculated) shadow PNGs to help sell the illusion. Creating a professional level Page Flip experience in Canvas was a great learning experience for myself and hopefully the code and techniques above will help you ramp up your own skills. For sure there are optimizations that can be done and the technique shown only handles flipping "from the bottom", but the solution should be scalable to fit your needs.</p>
<p>There is a lot of potential with HTML5 and Canvas, even in the face of a more "responsive layout" web and multiple interaction metaphors across different devices. If you create something awesome with any of this, please put a link in the comments. I'd love to check it out!<br />
<br/><br />
<a href="http://twitter.com/rickbarraza" title="follow me on twitter" target="_blank">@rickbarraza</a><br />
<script type="text/javascript" src="http://rbarraza.com/wp-content/script/Study1.js"></script><script type="text/javascript" src="http://rbarraza.com/wp-content/script/Study2.js"></script><br />
<script type="text/javascript" src="http://rbarraza.com/wp-content/script/Study3.js"></script><script type="text/javascript" src="http://rbarraza.com/wp-content/script/Study4.js"></script><br />
<script type="text/javascript">// <![CDATA[
 Study1(); Study2(); Study3(); Study4();
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://rbarraza.com/html5-canvas-pageflip/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Why I Joined Microsoft</title>
		<link>http://rbarraza.com/why-i-joined-msft/</link>
		<comments>http://rbarraza.com/why-i-joined-msft/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 18:02:35 +0000</pubDate>
		<dc:creator>Rick Barraza</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rbarraza.com/?p=1</guid>
		<description><![CDATA[There I was, Spring 2011. Ready to walk away. Coming from an interactive design background all those years ago, I had enjoyed a great ride partnering with Microsoft. As the original contributor for Microsoft&#8217;s Project Rosetta to get Flash designers and programmers up to speed in early Silverlight, I started off strong helping to grow [...]]]></description>
			<content:encoded><![CDATA[<p><span class="leadingSentence">There I was, Spring 2011. Ready to walk away.</span> Coming from an interactive design background all those years ago, I had enjoyed a great ride partnering with Microsoft. As the original contributor for Microsoft&#8217;s Project Rosetta to get Flash designers and programmers up to speed in early Silverlight, I started off strong helping to grow and foster the young community of interaction designers migrating to the Microsoft stack. Hey, it got me an MVP Award. From dipping my toe into Microsoft’s broader world of .NET and managed code, it was only a tiny jump over to pushing the boundaries with WPF, pixel shaders and exploring NUI experiences on the Microsoft Surface. That got me another MVP, and several demo and guest speaking opportunities at SXSWi, MIX and other conferences. Living at the forefront of technology and design is where I thrive, and in that desktop dominant world I was having a blast. But then something happened&#8230;<br/></p>

<p>The world changed. We entered what some call a Post-PC world. Other’s call it a PC Plus world &#8211; I think they are both true in different ways. But what became painfully evident to me is that the assumptions of unlimited power and unlimited CPU that fueled so many of my projects were no longer sustainable in this particular corner of the future. And that was the corner I was growing increasingly passionate about. By pushing Objective-C and OpenGL optimization in 2008 and their staunch refusal to support plug-in solutions, Apple had fired a resounding shot against managed code in a high experience, devices optimized future. A future where managed code, with all of its developer optimized benefits, was going to have a very real, very hard time competing at the premium experiences level. As I looked across the Microsoft stack at the time, nothing seemed capable of handling this impending shift in the technology landscape. My passions were changing. The world was changing. The face of experience design was changing. And at the time, it didn&#8217;t even look like Microsoft was noticing.<br/></p>
<h2>The BUILD Conference, September 2011</h2>
<p>By September, most of my involvement with Microsoft had been reduced to the part of the future we still had in common &#8211; great experiences in the browser. I had the opportunity to build Jitterbugs for the IE9 launch and help <a href="http://blogs.msdn.com/b/tims/archive/2010/10/11/pushing-the-boundaries-of-html5-gaming-jitterbugs.aspx" target="_blank">push the boundaries of HTML5</a>, but the Windows story had lost its charm and pull for me. As much as I wanted to believe, it didn’t look like Microsoft could be competitive. I started focusing on iPad and iPhone development. I had started unplugging from Redmond and wishing them well in our separate ways.<br />
<br/>&#8230;then <a href="http://channel9.msdn.com/events/BUILD/BUILD2011" title="Build Conference" target="_blank">BUILD</a> happened.<br/><br />
The BUILD conference came as a lightning strike. Microsoft came out razor smart, enterprise strong, and swinging for the fences. After the keynote Monday, I was confused. Tuesday I was suspicious. Wednesday I was dazed. But by Friday I was sold. That same Friday, I <a href="http://dennisdel.com/blog/live-at-build---interview-with-rick-barraza" target="_blank">gave an interview</a> with Dem Delimarsky (<a href="http://twitter.com/denniscode" target="_blank">@DennisCode</a>) that captured so well the new opportunities I was seeing. Everything was changing. All of a sudden, we were talking ARM based devices for calculations per watt sensitive experiences. We were talking GPU and DirectX 11 and the return of native code. Deep and smart conversations on cost per pixel calcuations. But most importantly, we were talking the key differentiator – an integrated ecosystem of experience and services that spans consumer and enterprise across scales of interaction. From sensors, phones and tablets to desktops and smart rooms to intelligent spaces and the internet of things, a grand unified reality was being born and Microsoft was playing to win. As Steve Ballmer had put it, &#8220;the platform is the operating system.&#8221; This is the fight I was waiting for. In that one week, I feel in love with Microsoft again.<br/></p>
<p>So a few months later, when I got the call out of the blue that the <a href="http://channel9.msdn.com/coding4fun/projects/BoxingBots" target="_blank">Coding4Fun</a> team at Microsoft was growing and they wanted to talk, I jumped at the chance. Dan, Clint and Brian have been friends and colleagues for a while, and the more we talked, the more we could see how awesome all of us teaming up our strengths Voltron style could be. A rag tag group of design technologists, hackers and hardware wizards bringing the Maker spirit to all things Microsoft. Painting interactive pictures of what is possible when you marry pixels, code and hardware in this emerging Microsoft ecosystem.</p>
<h2>Moving Forward</h2>
<p>Especially now, with so much changing, so much risk and so much reward, getting the chance to join a team where our primary mission is to entertain, educate and inspire is a dream come true. All those years ago, I took a chance on Microsoft and it has continued to pay off. It hasn’t always been easy, but I honestly believe there is no better time to invest your talent and energy into Microsoft then right now. I’m still passionate about educating and fostering the designer developer community, and now I’m getting paid to do exactly that. Lead by example and share what you know. I’m having a blast.</p>
<p>So if you’re a unicorn, a hybrid, a design technologist or any other combination of designer/developer wizard, you are desperately needed. You are needed all across the domain of technology, but I personally am betting on Microsoft, because of the huge amount of growth potential. It is all blue ocean opportunity right now on their stack, since everyone else is still fighting in red water territory. So jump in, the water’s fine! Wherever your passion is taking you &#8211; from open and responsive web experiences to rich and reach, consumer slash enterprise plays all the way to diving deep into native experiences, coding on the metal across devices at scale, it is full of potential win. Work hard, stay sharp, and keep nimble and together we can build the future one amazing experience at a time. If you’re looking for me, that’s where I’ll be. And I’d love to help you get there too.<br/><br />
So let’s get started. It’s going to be a wild ride!<br />
<br/><br />
<a href="http://twitter.com/rickbarraza" title="follow me on twitter" target="_blank">@rickbarraza</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rbarraza.com/why-i-joined-msft/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
