<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>The Sea of Ideas</title>
	
	<link>http://paulbakaus.com</link>
	<description>The personal blog of Paul Bakaus</description>
	<lastBuildDate>Thu, 08 Oct 2009 14:38:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-rare</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/TheSeaOfIdeas" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Underestimated UI techniques: Morphing</title>
		<link>http://paulbakaus.com/2009/10/08/underestimated-ui-techniques-morphing/</link>
		<comments>http://paulbakaus.com/2009/10/08/underestimated-ui-techniques-morphing/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 14:38:02 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery UI]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=251</guid>
		<description><![CDATA[When I design new applications, I realized I use a couple patterns that I haven&#8217;t seen in much use elsewhere, so I&#8217;ll start to blog about them. The first pattern in this series is called morphing.
What is morphing?
Morphing essentially describes a state change on an element, transforming it into another. Many UI frameworks have helpers [...]]]></description>
			<content:encoded><![CDATA[<p>When I design new applications, I realized I use a couple patterns that I haven&#8217;t seen in much use elsewhere, so I&#8217;ll start to blog about them. The first pattern in this series is called morphing.</p>
<h3>What is morphing?</h3>
<div id="attachment_253" class="wp-caption alignleft" style="width: 310px"><a href="http://paulbakaus.com/wp-content/uploads/2009/10/bush-obama-morphing.jpg"><img src="http://paulbakaus.com/wp-content/uploads/2009/10/bush-obama-morphing-300x72.jpg" alt="Bush-Obama morphing" title="bush-obama-morphing" width="300" height="72" class="size-medium wp-image-253" /></a><p class="wp-caption-text">Bush-Obama morphing</p></div>
<p>Morphing essentially describes a state change on an element, transforming it into another. Many UI frameworks have helpers for morphing, usually in the form of class animations. jQuery UI has made it transparent to animate jQuery&#8217;s class manipulation functions like <a href="http://jqueryui.com/demos/addClass/">addClass</a>, script.aculo.us has Effect.morph which essentially <a href="http://wiki.github.com/madrobby/scriptaculous/effect-morph">does the same</a>.</p>
<h3>Why is it useful?</h3>
<p>From a higher level UI perspective, morphing really describes that one element becomes another based on the context. It is essentially very powerful because it gives your users a visual cue what is happening, how is happening and why it is happening. Instead of doing an instant change, the users eye can follow the motion and you therefore give them a better feeling of control over the whole situation.</p>
<h3>Show me!</h3>
<p>Let&#8217;s do an example. While working on smart.fm&#8217;s new item builder, I had to visualize the following steps: Clicking on a button to add text, then displaying a text input, and hiding the button since you cannot add text twice. Usually, it would roughly look like this:</p>
<div class="canvas" style="padding: 10px; margin: 5px; border: 1px solid #eee; position: relative; height: 80px;">
<button class="ui-state-default ui-corner-all" style="position: absolute; top: 40px; left: 20px;" onclick="jQuery(this).hide().parent().find('input').show()[0].focus(); ">Hit me!</button></p>
<input type="text" style="position: absolute; top: 40px; left: 140px; display: none;"  />
</div>
<p>However, with morphing, it not only looks hot but solves the issue in style:</p>
<div class="canvas" style="padding: 10px; margin: 5px; border: 1px solid #eee; position: relative; height: 80px;">
<div class="ui-state-default ui-corner-all" style="position: absolute; top: 40px; left: 20px; padding: 2px 6px 3px 6px;" onclick="jQuery(this).animate({ left: 140, background: '#fff', width: 100 }, 1000); jQuery('input', this).animate({ opacity: 'show' }, 1000)[0].focus();">Hit me!<br />
<input type="text" style="position: absolute; top: -1px; left: 4px; display: none; width: 100px; border: 1px solid black;"  /></div>
</div>
<p>This was a particularly lazy example, since it doesn&#8217;t even truly morph one item into another &#8211; it just animates the width of the button and fades in the input on top. But visually, the element clearly transforms.</p>
<h3>Morphing in the wild: Inline editing</h3>
<p>One technique that was is heavily inspired by morphing is inline editing. Essentially, you click on a paragraph or element, and it transforms into and editable element. Most solutions don&#8217;t actually morph, but you get the idea. There are thousands of other usecases out there waiting to be discovered, and if you have some, I&#8217;d love it of you share them with me!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/vdixAQGUXBIBn-kep53k6fGpqHQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/vdixAQGUXBIBn-kep53k6fGpqHQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/vdixAQGUXBIBn-kep53k6fGpqHQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/vdixAQGUXBIBn-kep53k6fGpqHQ/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/10/08/underestimated-ui-techniques-morphing/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>If Walt Disney was running a web business</title>
		<link>http://paulbakaus.com/2009/10/07/if-walt-disney-was-running-a-web-business/</link>
		<comments>http://paulbakaus.com/2009/10/07/if-walt-disney-was-running-a-web-business/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 10:30:50 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[disney]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=246</guid>
		<description><![CDATA[I&#8217;ve long wanted to write about the little known Disney method, also called Walt Disney strategy. In fact, it is so little known that there&#8217;s not even an english Wikipedia article or reference about it, so here&#8217;s the german article, auto-translated by Google.
Walt Disney was not only known as great entrepreneur, but also as an [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve long wanted to write about the little known <em>Disney method</em>, also called <em>Walt Disney strategy</em>. In fact, it is so little known that there&#8217;s not even an english Wikipedia article or reference about it, so <a href="http://translate.google.com/translate?prev=hp&#038;hl=en&#038;js=y&#038;u=http%3A%2F%2Fde.wikipedia.org%2Fwiki%2FWalt-Disney-Methode&#038;sl=auto&#038;tl=en&#038;history_state0=">here&#8217;s the german article</a>, auto-translated by Google.</p>
<p>Walt Disney was not only known as great entrepreneur, but also as an individual who could <strong>switch easily between many different roles</strong>. Quoted from Wikipedia, he was &#8220;<em>film producer, director, screenwriter, voice actor, animator, entrepreneur, entertainer, international icon and philanthropist</em>&#8220;, and that&#8217;s only his official roles. The <em>Walt Disney method</em> essentially strips it down to three, sometimes four roles: The <em>dreamer</em>, the <em>realist</em>, the <em>spoiler</em> and the <em>neutral</em>. It is a highly effective creative method inspired by Disney, and can handle almost any product creation process. Before I&#8217;m going to explain how it can be applied to the web development world, I&#8217;ll first explain the basics.</p>
<h3>The Disney method explained</h3>
<p>Essentially a <a href="http://en.wikipedia.org/wiki/Roleplaying">role playing</a> strategy, the Disney method is said to work best with four different roles (I usually skip the forth though..):</p>
<ul>
<li><em>Dreamer</em> (visionary, delivering ideas)</li>
<li><em>Realist</em> (doer)</li>
<li><em>Spoiler</em> (critic)</li>
<li><em>Neutral</em> (consultant, reviewer)</li>
</ul>
<p>Take four chairs and mark them with above roles. As single technique, it is recommended to start within the neutral position to analyze the problem. I, however, recommend to start as <em>dreamer</em>, since there&#8217;s in fact not always a <em>problem</em> you want to solve. When you&#8217;re sitting on the first chair, you start brainstorming until you have a beautiful complete vision. As soon as the <em>dreamer</em> in you is happy, you move on to the next chair, taking the role of the <em>realist</em>. You analyze the <em>dreamer&#8217;s</em> ideas and make sure they&#8217;re implementable, or strip them down accordingly. When you think it works out, you pass your product to the <em>critic</em>, who will then try to find anything possibly wrong with it. When the though review is done, take a deep breath as <em>neutral consultant</em> to review everything from a bird&#8217;s perspective, and explore if every chair role is happy. If they&#8217;re not, simply continue your circle: Pass the <em>dreamer</em> the finished implementation and critique, and let him explore different or additional directions. Do those steps, until everyone is considerably happy with the product.</p>
<p>The whole strategy can of course also be applied to groups of people, meaning you have a full discussion going on between the roles, and every couple minutes you move places. However, I highly suggest trying out the single variant, because it proved to be much more effective for me personally.</p>
<h3>Applying it the web development</h3>
<p>As already mentioned, the Disney method can be applied to almost any situation. Let&#8217;s apply our roles to the web development world and see how they would look like:</p>
<ul>
<li><em>Dreamer</em> becomes <em>Designer, Prototyper</em></li>
<li><em>Realist</em> becomes <em>Engineer</em></li>
<li><em>Spoilers</em> become your <em>users, investors</em></li>
</ul>
<p>Note that I skipped the neutral role, because the new <em>spoiler</em> is essentially both, and it allows for faster iteration. Now that we have a fully working cycle for a web development situation, let&#8217;s narrow it down and focus on individual implementation aspecs:</p>
<h3>Going into detail: Implementation roles</h3>
<p>If it&#8217;s not working well enough on a high level like above, you can always narrow it down to more granular roles. As an example, I&#8217;m taking the engineer role, and splitting it up into three:</p>
<ul>
<li>Model</li>
<li>View</li>
<li>Controller</li>
</ul>
<p>or how about this one:</p>
<ul>
<li>Rapid prototyper</li>
<li>Frontend engineer</li>
<li>Backend engineer</li>
<li>Performance Guru</li>
</ul>
<p>As you can see, there are endless possibilities.</p>
<h3>Now why should I do it anyway?</h3>
<p>The whole point about the Disney method is that it allows you to understand your co-workers, the flow of a product, and the most effective path to your end goal. It gives you the chance to have a look at each role&#8217;s unique perspective, how they see themselves and others around them, and when mastered, gives you a bird eye or global view that incredibly improves your leadership or individual role. If you do it a couple times, it&#8217;s very likely you start projecting your 4 chairs on your actual co-workers and naturally improve the workflow.</p>
<p>Switching between different roles is a unique and highly rewarding skill. I personally believe that this particular skill let Disney become the legend he is today. If Walt Disney was running a web business, he would simply add a couple more roles to his mind model and start to build up highly successful web products.</p>
<p>Now go ahead and grab some chairs!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/V0unrpthS7UfcInGIoqg2qBbJxs/0/da"><img src="http://feedads.g.doubleclick.net/~a/V0unrpthS7UfcInGIoqg2qBbJxs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/V0unrpthS7UfcInGIoqg2qBbJxs/1/da"><img src="http://feedads.g.doubleclick.net/~a/V0unrpthS7UfcInGIoqg2qBbJxs/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/10/07/if-walt-disney-was-running-a-web-business/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Why I would hire game developers for my startup</title>
		<link>http://paulbakaus.com/2009/10/06/why-i-would-hire-game-developers-for-my-startup/</link>
		<comments>http://paulbakaus.com/2009/10/06/why-i-would-hire-game-developers-for-my-startup/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 13:18:43 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[labs]]></category>
		<category><![CDATA[pushingtheweb]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=230</guid>
		<description><![CDATA[This is one of the ideas I&#8217;ve only realized now in context but always knew deep in my mind. Whenever I talk publicly, I talk about pushing the limits of the web. My startup ideas are nothing different &#8211; every idea I have pushes the web to its greatest limit to deliver the most impressive [...]]]></description>
			<content:encoded><![CDATA[<p>This is one of the ideas I&#8217;ve only realized now in context but always knew deep in my mind. Whenever I talk publicly, I talk about pushing the limits of the web. My startup ideas are nothing different &#8211; every idea I have pushes the web to its greatest limit to deliver the most impressive result.</p>
<h3>Perfectionism vs. trying to be awesome</h3>
<p>Note that all ideas I have, and everything I&#8217;ve presented so far is not related to being perfect or delivering the perfect web product. Perfectionism is extremely dangerous, and chances are you never get the job done. In fact, many of my labs demos are far from perfect, even stable, but they push the limits. They deliver awesomeness. They provide great experiences.</p>
<h3>Looking at games</h3>
<p>Why games? It&#8217;s actually really simple. While web developers have been whining for years and have been stuck in their despair, game developers never stopped to amaze with the little tools and possibilities they&#8217;re given.  3D on a Super Nintendo? <a href="http://en.wikipedia.org/wiki/Super_Mario_Kart">Easy</a>. Full blown 3D RPG on PlayStation 12 years ago? <a href="http://en.wikipedia.org/wiki/Final_Fantasy_VII">You bet</a>.  Yes, game developers deliver.</p>
<h3>Cheating and optimizing</h3>
<p>Why are game developers so different, and what are they doing? Well, for once, they&#8217;re simply cheating. Remember Final Fantasy VII, the greatest selling role playing game of all time that lead Sony&#8217;s success of the PlayStation? Since the limited 3D capacities where not enough to deliver a great experience at times, they simply uses prerendered scenes and mixed them with live renderings. Yes, 1997. The even bigger point though is the optimization efforts that are made. Web developers only optimize when they see performance issues. For game devs, they know from the beginning on that the console they&#8217;re developing for cannot handle the raw 3D data, so they need to find optimization patterns right away!</p>
<p>They for instance need to control the number of polygons on the screen, memory consumption and frame rates. Many 3D techniques developed in the last 10 years are in fact optimization techniques, that either deliver a richer experience with the current hardware, or consume much more energy to be able to use much more of the same.</p>
<h3>Delivering</h3>
<p>Most importantly, game developers aren&#8217;t afraid of going different routes if something doesn&#8217;t work out. They try hard to deliver the experience they&#8217;ve planned, not the actual expact specification. Whenever I work on new projects, I ask myself &#8220;how would a game developer do it in a game?&#8221;. This usually gives me brilliant new ideas, and I highly suggest you try it out!</p>
<p>Now if only I could convert some game developers to start over in the web world&#8230; <img src='http://paulbakaus.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/urQCQUFPPQJX1qX_E1OiRBx7trg/0/da"><img src="http://feedads.g.doubleclick.net/~a/urQCQUFPPQJX1qX_E1OiRBx7trg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/urQCQUFPPQJX1qX_E1OiRBx7trg/1/da"><img src="http://feedads.g.doubleclick.net/~a/urQCQUFPPQJX1qX_E1OiRBx7trg/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/10/06/why-i-would-hire-game-developers-for-my-startup/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>A UX pattern: Reusable hints with jQuery</title>
		<link>http://paulbakaus.com/2009/10/05/a-ux-pattern-reusable-hints-with-jquery/</link>
		<comments>http://paulbakaus.com/2009/10/05/a-ux-pattern-reusable-hints-with-jquery/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 09:13:49 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=221</guid>
		<description><![CDATA[Update (1): The CSS source had wrong formatted comments and the markup was using class instead of id, please update your sample code when you grabbed it earlier!
Update (2): Please find a working demo here: Hints demo
When building nifty UI solutions, always keep in mind that in order to make your target audience use your [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update (1): The CSS source had wrong formatted comments and the markup was using class instead of id, please update your sample code when you grabbed it earlier!</strong></p>
<p><strong>Update (2): Please find a working demo here: <a href="http://paulbakaus.com/lab/js/hints">Hints demo</a></strong></p>
<p>When building nifty UI solutions, always keep in mind that in order to make your target audience use your cool features, you must teach them. The iPhone is to a certain extend only intuitive because they have the marketing power to teach people on TV how to do pinches and swipes. Anyway, since most budgets are smaller, let&#8217;s try to achieve the same with contextual hints.</p>
<p>Contextual hints are basically help bubbles that pop up as soon as you are in a certain context. They can also serve as an application walkthrough or tutorial. If you build a todo list, the first hint you would show your users would be sticking on top of the &#8220;Create new todo&#8221; button, and would tell you something like &#8220;Why don&#8217;t you click here and create your first task?&#8221;.</p>
<p>I&#8217;m sure you got the idea, let&#8217;s build a very simple solution without any graphics (The downside: Will not look too good in IE..). First, we need to create the markup for the hint:</p>
<pre class="ln-1-hi"><code class="html">&lt;div id="bubble"&gt;
	&lt;span class="content"&gt;&lt;/span&gt;
	&lt;div class="pointer"&gt;&lt;/div&gt;
&lt;/div&gt;
</code></pre>
<p>Sweet. We just have the outer bubble element which has the id #bubble, a content div that will hold our text and a pointer div which we&#8217;ll transform to a nice triangle. Next, let&#8217;s do the CSS:</p>
<pre class="ln-1-hi"><code class="css">#bubble {
	background: rgba(255,255,255,0.9); /* use rgba to let the bubble shine through a bit */
	font-size: 1.2em;
	padding: 1em;
	width: 22em; /* the bubble needs a certain width since it's absolutely positioned */
	-moz-border-radius: 1em; /* give the bubble nice rounded corners */
	-webkit-border-radius: 1em; /* ...in both gecko and webkit */
	position: absolute;
	z-index: 100; /* give it a high value here to lie on top of all other stuff */
	opacity: 0; /* opacity must be set to zero at beginning (use filter: alpha(opacity=0) for IE) */
}

#bubble .pointer {
	position: absolute;
	bottom: -1em;
	left: 2em;
	width: 0;
	height: 0;
	border-style: solid;
	border-color: rgba(255,255,255,0.9) transparent transparent transparent; /* make sure only one border side is shown */
	border-width: 1em 2em 0em 1em; /* this is called a border slant and creates the shape of the triangle */
}
</code></pre>
<p>Obviously feel free to customize everything related to styling, font size etc. Next, we want it to see come all together by doing the JavaScript/jQuery work:</p>
<pre class="ln-1-hi"><code class="javascript">$.fn.hint = function(msg) {

	var offset = this.offset(), // generate the offset position of the hinted element
		bubble = $('#bubble'), // cache the bubble as jQuery
		pointer = $('.pointer', bubble), // cache the pointer of the bubble
		fadeDistance = 50; // the distance from where the bubble will fade in

	// append the message to the bubble, position it and slowly fade it in
	bubble
		.find('span.content').html(msg).end() // insert the new message
		.css({
			top: offset.top - bubble.outerHeight() - pointer.outerHeight() + this.outerHeight()/4 - fadeDistance, // the element offset minus the height of the bubble, minus the height of the pointer, plus one quarter of the height of the element to be on top of it, minus the fading distance
			left: offset.left + this.outerWidth()*0.75 - 42 // the element offset + 3/4 of the element's width to position the bubble at the right side, minus the pixel width to the edge of the triangle
		})
		.animate({
			opacity: 1, // fades it in
			top: '+='+fadeDistance+'px' // moves it in from the fade distance that we substracted above
		}, 600);

	// make sure the bubble goes away when clicking on the hinted element
	return this.one('click', function() {
		bubble.animate({
			opacity: 0, // fades out
			top: '-='+fadeDistance+'px' // animate back the fade distance
		}, 300);
	});

};
</code></pre>
<p>That&#8217;s it. Now all you need to know is it&#8217;s usage, but you probably know it already:</p>
<pre class="ln-1-hi"><code class="javascript">$('#myButton').hint("Click here to make it explode.");
</code></pre>
<p>This will blend it your hint, and as soon as you click on the element, it will fade away again. Sweet, huh?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/ZBYEBGGxfSj0maucj0yCbaJvp88/0/da"><img src="http://feedads.g.doubleclick.net/~a/ZBYEBGGxfSj0maucj0yCbaJvp88/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ZBYEBGGxfSj0maucj0yCbaJvp88/1/da"><img src="http://feedads.g.doubleclick.net/~a/ZBYEBGGxfSj0maucj0yCbaJvp88/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/10/05/a-ux-pattern-reusable-hints-with-jquery/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A plugin so short it’s tweetable: Mask</title>
		<link>http://paulbakaus.com/2009/10/02/a-plugin-so-short-its-tweetable-mask/</link>
		<comments>http://paulbakaus.com/2009/10/02/a-plugin-so-short-its-tweetable-mask/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 08:10:41 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=217</guid>
		<description><![CDATA[I recently found the need to create a utility that helps me to mask a series of elements with a background image that spans across them, so the the picture basically gets masked by the elements selected. I couldn&#8217;t find a sweet reusable solution out there, so I went ahead and created my own little [...]]]></description>
			<content:encoded><![CDATA[<p>I recently found the need to create a utility that helps me to mask a series of elements with a background image that spans across them, so the the picture basically gets masked by the elements selected. I couldn&#8217;t find a sweet reusable solution out there, so I went ahead and created my own little jQuery mask plugin. Here&#8217;s the code:</p>
<pre class="ln-1-hi"><code class="javascript">$.fn.mask = function(u) {
	return $(this).each(function() {
		var p = $(this).position();
		this.style.background = 'url('+u+') -'+p.left+'px -'+p.top+'px';
	});
};
</code></pre>
<p>Here&#8217;s how to use it:</p>
<pre class="ln-1-hi"><code class="javascript">// grab all li's on the page and mask them with a certain image
$('li').mask('http://farm3.static.flickr.com/2075/2509376094_737cce37d4_o.jpg');
</code></pre>
<p>Most interestingly, this was the first actually useful plugin that was tweetable in it&#8217;s entirety: <a href="http://twitter.com/pbakaus/statuses/2492305298">http://twitter.com/pbakaus/statuses/2492305298</a>. Enjoy!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/6KVkU_FUOBHaRV4esLdMll1aYF4/0/da"><img src="http://feedads.g.doubleclick.net/~a/6KVkU_FUOBHaRV4esLdMll1aYF4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6KVkU_FUOBHaRV4esLdMll1aYF4/1/da"><img src="http://feedads.g.doubleclick.net/~a/6KVkU_FUOBHaRV4esLdMll1aYF4/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/10/02/a-plugin-so-short-its-tweetable-mask/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Totally uber: Webkit 3D Ubercarousel + Uberplayer now in HD!</title>
		<link>http://paulbakaus.com/2009/07/20/totally-uber-webkit-3d-ubercarousel-uberplayer-now-in-hd/</link>
		<comments>http://paulbakaus.com/2009/07/20/totally-uber-webkit-3d-ubercarousel-uberplayer-now-in-hd/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 11:49:18 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=209</guid>
		<description><![CDATA[Hey everyone, it&#8217;s time to get some demos out once again!
First off, I was really impressed when I found out that Webkit now has now ported over 3D CSS Transforms over from the iPhone webkit fork, and they showed us some really cool demos a couple days ago. Obviously I couldn&#8217;t resist and grabbed a [...]]]></description>
			<content:encoded><![CDATA[<p>Hey everyone, it&#8217;s time to get some demos out once again!</p>
<p>First off, I was really impressed when I found out that Webkit now has now <a href="http://webkit.org/blog/386/3d-transforms/" target="_blank">ported over 3D CSS Transforms</a> over from the iPhone webkit fork, and they showed us some <a href="http://webkit.org/blog-files/3d-transforms/poster-circle.html">really</a> <a href="http://webkit.org/blog-files/3d-transforms/morphing-cubes.html">cool</a> demos a couple days ago. Obviously I couldn&#8217;t resist and grabbed a bunch of them, transformed them over hours only to recreate one of my plugins with some extra webkit spice. Meet the <a href="http://paulbakaus.com/lab/css/ubercarousel">Ubercarousel</a>!</p>
<p><strong>Note: You need to download a <a href="http://nightly.webkit.org/" target="_blank">nightly of Webkit</a> in order to see this!</strong></p>
<div id="attachment_210" class="wp-caption alignnone" style="width: 440px"><a href="http://paulbakaus.com/lab/css/ubercarousel"><img class="size-full wp-image-210" title="The Ubercarousel" src="http://paulbakaus.com/wp-content/uploads/2009/07/Picture-1.png" alt="The Ubercarousel in latest Webkit nightly" width="430" height="242" /></a><p class="wp-caption-text">The Ubercarousel in latest Webkit nightly</p></div>
<p>The <a href="http://paulbakaus.com/lab/css/ubercarousel">Ubercarousel</a> is using almost every latest CSS enhancements build into Webkit (including CSS 3). Here&#8217;s a quick list:</p>
<ul>
<li><a href="http://webkit.org/blog/175/introducing-css-gradients/" target="_blank">CSS Gradients</a> for the overall background and the reflection (yep, shamelessly ripped from the webkit demo <img src='http://paulbakaus.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>RGBA (on the control panel and the debug backgrounds)</li>
<li><a href="http://webkit.org/blog/386/3d-transforms/" target="_blank">3D Transforms</a> (Rotation and translation on the Z Axis)</li>
<li><a href="http://webkit.org/blog/324/css-animation-2/" target="_blank">CSS Animations</a> (For the spinning animation and the wobbling)</li>
<li><a href="http://webkit.org/blog/138/css-animation/" target="_blank">CSS Transitions</a> (for the hovering of the images)</li>
<li><a href="http://webkit.org/blog/182/css-reflections/" target="_blank">CSS Reflections</a> (using a gradient)</li>
<li><a href="http://lipidity.com/apple/iphone-webkit-css-3" target="_blank">Appearance</a> (For the sliders, it&#8217;s a range input)</li>
</ul>
<p>Functionality wise, it just grabs the 100 most recent interesting pictures from Flickr and displays some of them in the carousel, enlarging them when you hover. While working on this demonstration, I found out about a couple bugs and hit some walls, but generally I was extremely impressed of how well you can combine various new enhancements. To mention some issues, the inner &lt;img&gt; tag needs a &#8220;translateZ(0px)&#8221; or otherwise the images will be blurry, gradients don&#8217;t animate and are generally hidden when something is transformed, and transforms that are applied on :hover don&#8217;t play well with the wobble animation.  Anyway, have fun!</p>
<h3>Uberplayer now in HD!</h3>
<p>On a side note, Google finally added support for HD playback for their chromeless player, so from today on, <a href="http://paulbakaus.com/lab/interface/uberplayer">the Uberplayer</a> supports HD playback. Enjoy!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/t083uTFRZjuqCcFHJSDWfQbybCA/0/da"><img src="http://feedads.g.doubleclick.net/~a/t083uTFRZjuqCcFHJSDWfQbybCA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/t083uTFRZjuqCcFHJSDWfQbybCA/1/da"><img src="http://feedads.g.doubleclick.net/~a/t083uTFRZjuqCcFHJSDWfQbybCA/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/07/20/totally-uber-webkit-3d-ubercarousel-uberplayer-now-in-hd/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>‘How to change the world’ series: Dedication</title>
		<link>http://paulbakaus.com/2009/06/17/%e2%80%98how-to-change-the-world%e2%80%99-series-dedication/</link>
		<comments>http://paulbakaus.com/2009/06/17/%e2%80%98how-to-change-the-world%e2%80%99-series-dedication/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 09:36:17 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=199</guid>
		<description><![CDATA[A couple weeks ago, I started with my the first entry in this series. If you missed it, read it first to learn more about what this is all about and the first keyword, motivation. Directly followed by motivation comes dedication!
Dedication
When you are motivated, you start working on something. But to actually finish the job, [...]]]></description>
			<content:encoded><![CDATA[<p>A couple weeks ago, I started with my the <a href="http://paulbakaus.com/2009/05/11/how-to-change-the-world-series-motivation/">first entry</a> in this series. If you missed it, <a href="http://paulbakaus.com/2009/05/11/how-to-change-the-world-series-motivation/">read it</a> first to learn more about what this is all about and the first keyword, motivation. Directly followed by motivation comes dedication!</p>
<h3>Dedication</h3>
<p>When you are motivated, you start working on something. But to actually finish the job, you need dedication. Unfortunately, dedication and motivation are a bit hard to describe individually, but let&#8217;s try with some metaphors. Imagine drinking a bottle of cold water after a crazily hot day. The motivation in this case is the bottle. The technique you use to get it into your body (hopefully through swallowing) is the first part of the dedication &#8211; you&#8217;re making sure the motivation is converted into something that gets the job done. Unfortunately, you need to drink again in a couple hours &#8211; to think about it, and get a new bottle of water in advance, is the second part. So in other words, the two fundamental pieces of dedication consist of converting your motivation into creative energy and maintaining the motivated state.</p>
<h3>Focus &amp; Distraction</h3>
<p>Focus and distraction is often considered as good and evil, but there&#8217;s a little twist to it. In general of course, you need to focus on your current task to keep being dedicated, and the worst thing that can happen then is to loose that focus again. Especially for most us (the internet generation), distraction is a real problem. The Web 2.0 gave us thousands and thousands of new opportunities to get distracted. Don&#8217;t worry though &#8211; there&#8217;s an answer to every problem.</p>
<p>Here&#8217;s a example list of things that will likely make you forget about your task, and how to solve them effectively:</p>
<ul>
<li><strong>Twitter</strong><br />
Ok, this one is simple. First off, do not twitter in the middle of a task, <em>unless</em> it&#8217;s specifically related to <em>solving</em> the task. For instance, if you have a technical question that you can&#8217;t solve, it&#8217;s perfectly fine to ask for it through twitter. Secondly, try to get twitter off your PC, and onto another device, and only use it from there (i.e. your phone). It helps you to completely (re)move the focus.</li>
<li><strong>Social communities</strong><br />
Again, think about if using this particular community helps solve your specific task. If it doesn&#8217;t (Facebook for instance likely is a good candidate for wasted time &#8211; unless of course you&#8217;re developing a FB app), then simply don&#8217;t use it. If the community can actually help you getting your work done, then that&#8217;s great!</li>
<li><strong>Family</strong> (if you&#8217;re working remotely)<br />
It is extremely important to have a seperate office with a door that you can close. Make sure the process is the same than driving to another city &#8211; and make sure your family knows about how important it is not to get you distracted. Have them understand you&#8217;re collaborating with collegues online and via Skype, and let them contact you only if it&#8217;s really urgent.</li>
<li><strong>Instant messanging</strong><br />
Set up seperate groups or accounts for work and freetime. Set your status to &#8216;Working&#8217;, and let your coworkers know that this is just to tell people you&#8217;re &#8216;in the office&#8217;.  Do not answer to IM&#8217;s from other contacts &#8211; or tell them politely that you can&#8217;t chat during business hours.</li>
<li><strong>RSS Feeds</strong><br />
This one is dangerous, since chances are that most of the information is somehow important and relevant to you and your job, but not in this exact moment. That&#8217;s why I suggest to make sure to only open your newsreader once a day &#8211; after all, you wouldn&#8217;t bring a printed newspaper to the office and peek at it every half hour, would you?</li>
<li><strong>Everything else in your head</strong><br />
To clear your entire head from everything else, I still highly suggest the GTD (&#8216;Getting things done&#8217;) method and sort everything you have in your head into seperate todo lists that you can access at anytime. This basically is the essence of GTD.</li>
</ul>
<h3>Positively distracted</h3>
<p>As mentioned above, it is possible to use distration as a tool to keep motivation and dedication flowing, and I highly suggest to use at least one or two of the following examples to relax during work hours, or to get into a different thinking mode.</p>
<ul>
<li><strong>Music</strong><br />
Music can be very inspiring and motivating if used right. Make sure though not to listen to audio books and songs that are focussing solely on the text &#8211; since listening actively distracts you too much.</li>
<li><strong>Collegues</strong><br />
Talk to your collegues every hour or two, even if you think they can&#8217;t solve your problem. Ask them what they&#8217;re working on. It&#8217;ll most likely move your brain waves into another direction, and you&#8217;ll get fresh new ideas. Also try pair programming of you&#8217;re a programmer!</li>
<li><strong>Walking around in the office</strong><br />
This especially goes well with pinging collegues. Don&#8217;t just shout around in the room, but relax your muscles a bit by getting out of your chair and walking around a bit. If you think it looks too silly, go outside and grab something to drink.</li>
</ul>
<h3>Goal orientation</h3>
<p>Of course, there are thousand more ways to keep you in the flow, but some of them I feel are especially helpful. First off, try to split up your current task in the smallest possible pieces to work them off easily and always have an immediate feeling of accomplishment. Second, try to think about the goal! If you&#8217;re paid hourly for your work and your objective is money, think about what you earned already in the next couple of hours, and how much you&#8217;ll earn in the next ones. If you work in a team, think about how much your current work will help other people finish their job, and how much they&#8217;ll like you for it. There are many individual goals if you think about it, and those two are very generic, so try to apply them.</p>
<p>See you soon!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/FBOOxR839QneDBmbWVLI-CtGi5w/0/da"><img src="http://feedads.g.doubleclick.net/~a/FBOOxR839QneDBmbWVLI-CtGi5w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/FBOOxR839QneDBmbWVLI-CtGi5w/1/da"><img src="http://feedads.g.doubleclick.net/~a/FBOOxR839QneDBmbWVLI-CtGi5w/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/06/17/%e2%80%98how-to-change-the-world%e2%80%99-series-dedication/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The problem with Twitter</title>
		<link>http://paulbakaus.com/2009/06/17/the-problem-with-twitter/</link>
		<comments>http://paulbakaus.com/2009/06/17/the-problem-with-twitter/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 03:37:28 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=204</guid>
		<description><![CDATA[Twitter is wonderful, since it allows us to post all these tiny bits of information that can be expressed in less than 140 characters. Blog posts are usually considered if you have a lengthy topic to blog about, and you want to provide real value and detail. But what about everything inbetween? What happens with [...]]]></description>
			<content:encoded><![CDATA[<p>Twitter is wonderful, since it allows us to post all these tiny bits of information that can be expressed in less than 140 characters. Blog posts are usually considered if you have a lengthy topic to blog about, and you want to provide real value and detail. But what about everything inbetween? What happens with all the content and ideas that I want to share, but are too lenghty for Twitter, but too feel to short for a blog post?</p>
<p>It gets lost.</p>
<p>This blog post is a wonderful example. If I hadn&#8217;t realized the fact above, you&#8217;d never read about this &#8211; since it&#8217;s a short blog post, but too long for Twitter. The constraint that you&#8217;re setting on yourself is dangerous, and you can see it here on this blog. I love talking about what I do, and I talk to people everyday, but as a matter of fact, very few things end up here.</p>
<p>The key to remember is that what counts is always quality, not quantity. If you have something in your mind that you think provides real value, then please write about it. Yes, even if it&#8217;s just one character more than your tweet can hold.</p>
<p>See you soon with more short blog posts!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/hPm4akM2fo0Zrtj8D5_QR-iTE9I/0/da"><img src="http://feedads.g.doubleclick.net/~a/hPm4akM2fo0Zrtj8D5_QR-iTE9I/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hPm4akM2fo0Zrtj8D5_QR-iTE9I/1/da"><img src="http://feedads.g.doubleclick.net/~a/hPm4akM2fo0Zrtj8D5_QR-iTE9I/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/06/17/the-problem-with-twitter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>‘How to change the world’ series: Motivation</title>
		<link>http://paulbakaus.com/2009/05/11/how-to-change-the-world-series-motivation/</link>
		<comments>http://paulbakaus.com/2009/05/11/how-to-change-the-world-series-motivation/#comments</comments>
		<pubDate>Mon, 11 May 2009 08:20:08 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[motivation]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=165</guid>
		<description><![CDATA[So I decided to blog more, since one fundamental ability that was failing for me was partially communication the last couple of years (other topic in this series btw!). Along that, I decided it&#8217;d be more interesting if I write about everything that&#8217;s important to me, even if that means some entries will be non [...]]]></description>
			<content:encoded><![CDATA[<p>So I decided to blog more, since one fundamental ability that was failing for me was partially communication the last couple of years (other topic in this series btw!). Along that, I decided it&#8217;d be more interesting if I write about everything that&#8217;s important to me, even if that means some entries will be non technical. Hope you&#8217;ll enjoy reading anyway!</p>
<p>&#8216;<em>How to change the world</em>&#8216; sounds a bit high level, but everyone with high ambitions in his personal and business life is likely to share a common vision of wanting to work on something that makes a significant impact. To start off, it could of course also be read as &#8216;<em>How to change yourself to change the world</em>&#8216;. The first entry in this series, and the most important one of all is motivation. But let&#8217;s first explain the order of how things work.</p>
<h3>The productivity cycle</h3>
<div id="attachment_169" class="wp-caption alignnone" style="width: 440px"><a href="http://paulbakaus.com/wp-content/uploads/2009/05/productivity-cycle.001.png"><img class="size-full wp-image-169" title="Productivity cycle" src="http://paulbakaus.com/wp-content/uploads/2009/05/productivity-cycle.001.png" alt="Productivity cycle" width="430" height="297" /></a><p class="wp-caption-text">Visualization of the productivity cycle</p></div>
<p>Being productive is something many people can&#8217;t grasp easily. There are however a couple of directions to follow, and I personally call it the productivity cycle. I&#8217;ll go into detail for each of these in subsequent blog posts.</p>
<ol>
<li>Inspiration</li>
<li>Motivation (today&#8217;s topic)</li>
<li>Dedication</li>
<li>Communication</li>
<li>Recreation</li>
</ol>
<p>Very quick explanation: Before you can even start to <em>work</em> on anything, you have to be <strong>inspired</strong>. When you are inspired, you have to become really <strong>motivated</strong> to start working on it, and then you need <strong>dedication</strong> to stay on focus and do the job. After a couple hours, you need a <strong>recreation</strong> phase to start over with the whole process, but before that, make sure you <strong>communicate</strong> today&#8217;s work with your boss, comrades, coworkers to maximize the impact (sometimes you can leave out inspiration and motivation on the next cycles for a couple days).</p>
<h3>Why motivation?</h3>
<p>People who truly internalize those fundamentals can solve more tasks in 4 hours than a &#8216;normal&#8217; worker could finish in 12. Even better, the guru won&#8217;t be exhausted mentally. Obviously, it&#8217;s a long way, but if you get today&#8217;s topic right, chances are that the others will come to you automatically.</p>
<p>That being said, off all things, motivation is the trickiest to master. You know it yourself. Even if you really love your job, you&#8217;re only motivated randomly, and it comes and goes. And when you&#8217;re not motivated, everything seems to take longer. Wait &#8211; it doesn&#8217;t <em>seem</em> to take longer, it <strong>does</strong> take longer! It happens to me all the time: I have this great idea (-&gt;Inspiration), I start working on it, get distracted, and the motivation&#8217;s gone. At that point, I still enjoy the original idea, but somehow my killer energy is gone. Sounds familiar? Don&#8217;t worry, all hope is not lost my friend!</p>
<h3>Getting motivated</h3>
<ol>
<li>
<h4>Set a goal</h4>
<p>If you don&#8217;t know your goal, you&#8217;re drifting and chances are you&#8217;ll circle around with your efforts and thoughts. If you have a great inspiration and a following idea, set yourself a <em>uber</em> nice but realistic goal, best with an attached date. Deadlines generate pressure, but no deadlines make you idle &#8211; the first is always preferable.</li>
<li>
<h4>Make sure the outcome justifies the effort</h4>
<p>Only very few people like to work on projects just for the sake of their <em>own</em> satisfaction, most likely you have a greater objective. In many cases it&#8217;s money, but it can also be reputation, fame, power or the greater good. Whatever works for you, but make sure thinking about the possible outcome makes you feel great &#8211; it&#8217;s a motivational key factor.</li>
<li>
<h4>Enlightening your office enlightens your thoughts</h4>
<p>This one is a very practical advice. Most living beings, including humans, need light, <em>preferably</em> sunlight (with more &#8216;<em>blue</em>&#8216; in it) to stay awake and feel comfortable. Scientists have proven already the receptors that fire off when light reaches our eyes stop the production of the sleep inducing hormone <a href="http://en.wikipedia.org/wiki/Melatonin" target="_blank">melantonin</a>. But even if you forget science, light is, like fire, one of the greatest phenomena for all cultures. It gives us security and warmth, and it often stands as a symbol for intelligence. So start using it!</li>
<li>
<h4>Communicate</h4>
<p>I can&#8217;t stress this one enough, being the most useful resource of all. Talk to people that likely want to listen to your ideas. It could be your wife, your children, your collegues or you best friend. Meet all those people before you start a big project, and encourage them to participate in a discussion. You will receive positive and negative critism, doubt and more inspirations, but most often they&#8217;ll back you up and encourage you. Even better, it works for the inspirational part of the productivity cycle as well. Remember those times when you met a former collegue for dinner and got your brain spinning again? It&#8217;s no coincidence. Inspiration through communication will be discussed in detail when we cover the topic.</li>
</ol>
<h3>Keep being motivated</h3>
<p>So you&#8217;re motivated now. Excellent! The next step is to keep being motivated, or how I call it in the productivity cycle, <strong>dedication</strong>. It&#8217;s the next topic I will cover, along with the first missing piece &#8211; how do you actually find out what you&#8217;d like to do (read <strong>inspiration</strong>). See you soon!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/RA7hW-qdejprAZ2YeUC82IpUAQY/0/da"><img src="http://feedads.g.doubleclick.net/~a/RA7hW-qdejprAZ2YeUC82IpUAQY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RA7hW-qdejprAZ2YeUC82IpUAQY/1/da"><img src="http://feedads.g.doubleclick.net/~a/RA7hW-qdejprAZ2YeUC82IpUAQY/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/05/11/how-to-change-the-world-series-motivation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Meet the Uberplayer.</title>
		<link>http://paulbakaus.com/2009/05/07/meet-the-uberplayer/</link>
		<comments>http://paulbakaus.com/2009/05/07/meet-the-uberplayer/#comments</comments>
		<pubDate>Thu, 07 May 2009 10:11:25 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[coverflow]]></category>
		<category><![CDATA[fluid]]></category>
		<category><![CDATA[player]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=160</guid>
		<description><![CDATA[
Finally I can present you one of my newer interface experiments that has grown to something quite nice in the meantime.  With the transition from small movieclips to longer and bigger full length flicks, sites like Youtube still don&#8217;t really get the idea that the movie player has to give the user space, feel a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://paulbakaus.com/lab/interface/uberplayer" target="_blank"><img class="alignnone size-full wp-image-161" title="uberplayer" src="http://paulbakaus.com/wp-content/uploads/2009/05/uberplayer.png" alt="uberplayer" width="430" height="222" /></a></p>
<p>Finally I can present you one of my newer <a href="http://paulbakaus.com/laboratory/">interface experiments</a> that has grown to something quite nice in the meantime.  With the transition from small movieclips to longer and bigger full length flicks, sites like <a href="http://youtube.com">Youtube</a> still don&#8217;t really get the idea that the movie player has to give the user space, feel a bit like a theater for a overall greater experience. What we still receive is a bloated page with thousands of comments below, tags and whatever &#8211; things the user <strong>really</strong> doesn&#8217;t need or want to see while watching. This is why I started a new experiment &#8211; <strong>building a movieplayer for the web that doesn&#8217;t suck</strong>.</p>
<h3>Shows only what&#8217;s needed</h3>
<p>The first idea of the interface was that everything that&#8217;s not required during movie playback will simply not be visible. This effectively means that if the video is playing, <em>nothing</em> else should be shown. Under that requirement, I thought it will also need at least movie information somewhere, and a search interface.</p>
<p>The <em>Uberplayer</em> has slide-in elements for controlling the video. Every function or visibility can be controlled through either the mouse or the keyboard. At initialization and pause, all controls are automatically shown, since you&#8217;re not focussing on the video. During video playback, move your mouse towards the bottom and the search slides in &#8211; move it to the top and you&#8217;ll see current video information and the search bar.</p>
<h3>Coverflow</h3>
<p>I can also proudly state that this is the first time I actually integrated my experimental <a href="http://paulbakaus.com/2008/05/31/coverflow-anyone/">Coverflow</a> plugin into an actual application. After you entered a search term and pressed return, the bottom view slides in and presents the search result thumbnails in a really nice flowing coverflow like view if you are using a <a href="http://en.wikipedia.org/wiki/List_of_web_browsers#KHTML-_and_WebKit-based_browsers" target="_blank">webkit enabled browser</a>. If not, don&#8217;t worry &#8211; the fallback looks nice nontheless! Additionally, the click-through rate is minimized by switching coverflow states on mouse over &#8211; clicking opens the new movie.</p>
<h3>Integration with Youtube</h3>
<p>I choose to integrate with Youtube because it allows me to do searches to their API&#8217;s through their <a href="http://code.google.com/intl/en/apis/youtube/2.0/developers_guide_json.html" target="_blank">JSON API</a>. What does that mean? It means that the <em>Uberplayer</em> is completely backendless, therefore doesn&#8217;t need any server software / logic. It&#8217;s all JavaScript, baby!</p>
<p>The second reason was that Youtube has a nice <a href="http://code.google.com/intl/de-DE/apis/youtube/chromeless_player_reference.html">chromeless player</a>, which worked really well for my kind of interface. The only drawback is that the chromless player doesn&#8217;t support HD playback at this point, but I hope they&#8217;ll give us that feature <a href="http://code.google.com/p/gdata-issues/issues/detail?id=1003" target="_blank">eventually</a>.</p>
<h3>Feature overview</h3>
<p>To get an idea, here&#8217;s a quick walk through all features that are probably worth mentioning and explain how the player works.</p>
<ul>
<li>Full-screen playback at all times (toggle full screen mode on your browser for a better experience)</li>
<li>Fluid slide-in interface (move your mouse towards the bottom or top to blend in controls)</li>
<li>Click on the video to toggle pause state and blend in all controls</li>
<li>Rich keyboard interaction
<ul>
<li>&#8216;<em>down</em>&#8216; toggles the search results view</li>
<li>&#8216;<em>up</em>&#8216; toggles movie information and search bar</li>
<li>&#8216;<em>space</em>&#8216; toggles pause state</li>
<li>&#8216;<em>s</em>&#8216; focusses search bar and let&#8217;s you type in a new search (&#8216;escape&#8217; cancels)</li>
<li>&#8216;<em>left</em>&#8216;,&#8217;<em>right</em>&#8216; let&#8217;s you navivate through search results when the search results view is active</li>
<li>&#8216;<em>return</em>&#8216; opens a new movie when the search results view is active</li>
</ul>
</li>
<li>Automatically generates hash urls that you can bookmark or send to someone &#8211; they will not only open the movie, but also the attached search results</li>
<li>Completely backendless through <a href="http://code.google.com/intl/en/apis/youtube/2.0/developers_guide_json.html" target="_blank">Youtube&#8217;s JSON API</a></li>
</ul>
<h3>What&#8217;s left to do</h3>
<p>This is a very early preview release, so please be merciful. Some things I would like to do for the next version is a playlist manager (sliding in from the left), and if I only could get access to a chromeless <a href="http://vimeo.com">Vimeo</a> player, that would totally kick ass.</p>
<p>Anyway, <a href="http://paulbakaus.com/lab/interface/uberplayer" target="_blank">check it out</a>, and leave a comment!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/6eiLpMNIGi08A2pg4FGWslvS9Jk/0/da"><img src="http://feedads.g.doubleclick.net/~a/6eiLpMNIGi08A2pg4FGWslvS9Jk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6eiLpMNIGi08A2pg4FGWslvS9Jk/1/da"><img src="http://feedads.g.doubleclick.net/~a/6eiLpMNIGi08A2pg4FGWslvS9Jk/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/05/07/meet-the-uberplayer/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
	</channel>
</rss>
