<?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>The Sea of Ideas &#187; project</title>
	<atom:link href="http://paulbakaus.com/tag/project/feed/" rel="self" type="application/rss+xml" />
	<link>http://paulbakaus.com</link>
	<description>Capturing the thoughts of Paul Bakaus</description>
	<lastBuildDate>Thu, 02 Feb 2012 15:34:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<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>admin</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>
<div style="height:1px;overflow:hidden">
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.theviagrastore.com/">viagra online no prescription</a></div>
<p>Anyway, <a href="http://paulbakaus.com/lab/interface/uberplayer" target="_blank">check it out</a>, and leave a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2009/05/07/meet-the-uberplayer/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>The Library Detector</title>
		<link>http://paulbakaus.com/2008/12/20/the-library-detector/</link>
		<comments>http://paulbakaus.com/2008/12/20/the-library-detector/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 13:02:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery UI]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=114</guid>
		<description><![CDATA[I&#8217;m happy to announce my first Firefox extension called Library Detector. Similar to a greasemonkey script I published to the jQuery mailing lists a couple months ago that showed if jQuery is running (which proved to be pretty useful to extend the Sites using jQuery page), the library detector is able to detect multiple libraries, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to announce my first Firefox extension called <a href="https://addons.mozilla.org/de/firefox/addon/10083">Library Detector</a>. Similar to a greasemonkey script I published to the jQuery mailing lists a couple months ago that showed if jQuery is running (which proved to be pretty useful to extend the <a href="http://docs.jquery.com/Sites_Using_jQuery">Sites using jQuery</a> page), the library detector is able to detect multiple libraries, currently including the following:</p>
<ul>
<li><a href="http://jquery.com">jQuery</a></li>
<li><a href="http://ui.jquery.com">jQuery UI</a></li>
<li><a href="http://dojotoolkit.org">Dojo</a></li>
<li><a href="http://prototypejs.org">Prototype</a></li>
<li><a href="http://script.aculo.us">Scriptaculous</a></li>
<li><a href="http://mootools.net">MooTools</a></li>
<li><a href="http://labs.adobe.com/technologies/spry/">Spry</a></li>
<li><a href="http://developer.yahoo.com/yui/">YUI</a></li>
<li><a href="http://qooxdoo.org/">Qooxdoo</a></li>
</ul>
<p>If one of these is found on the current page, it displays their favicon in the statusbar, and if you hover it, a tooltip will show with additional information (In most cases the version of the library, in the case of jQuery UI the plugins being used, and for Dojo if Dijit is being used).</p>
<p>Of course, there&#8217;s one catch in some libraries: If the developer renamed the scope of the Library (i.e. window.dojo) to something entirely different, the test fails (however, usually that&#8217;s not the case).</p>
<p>So, if you want to know what websites use your favorite library (or which do not), go ahead and grab the Library Detector from its <a href="https://addons.mozilla.org/de/firefox/addon/10083">download page</a>.</p>
<p>Additionally, I&#8217;d love to see feedback, and if you think there&#8217;s a library missing, or if you have an idea how to improve a test / show additional information, please leave me a comment.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2008/12/20/the-library-detector/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Bringing CSS Transforms to Internet Explorer</title>
		<link>http://paulbakaus.com/2008/08/16/bringing-css-transform-to-internet-explorer/</link>
		<comments>http://paulbakaus.com/2008/08/16/bringing-css-transform-to-internet-explorer/#comments</comments>
		<pubDate>Sat, 16 Aug 2008 11:49:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[css transforms]]></category>
		<category><![CDATA[filters]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[transformation]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=11</guid>
		<description><![CDATA[Extending the teaser So I hope I got you a bit excited with my little teaser, and yes, the second tab was opened on purpose to give you a hint. Indeed, I was talking about CSS transforms, and yes, I was talking about somehow successfully porting them to Firefox. I won&#8217;t go into details of [...]]]></description>
			<content:encoded><![CDATA[<h2>Extending the teaser</h2>
<p>So I hope I got you a bit excited with my little teaser, and yes, the second tab was opened on purpose to give you a hint. Indeed, I was talking about <a href="http://webkit.org/specs/CSSVisualEffects/CSSTransforms.html">CSS transforms</a>, and yes, I was talking about somehow successfully porting them to Firefox.</p>
<p>I won&#8217;t go into details of my implemention of it yet, but I can assure you it isn&#8217;t using any additional plugins. Anyway, during my CSS transformation research for possible other browser implementations, I came up with something entirely different, and it was completely unexpected to me. As it turns out, Internet Explorer already <a href="http://msdn.microsoft.com/en-us/library/ms533014(VS.85).aspx">supports CSS transformations</a> in some way for years!</p>
<p>I was telling myself that surely, this wouldn&#8217;t actually work, since the Matrix Filter would allow you to actually rotate, scale and do whatever you want with elements, in IE, natively. And then, someone must have figured before me, years ago. But it turns out that the Matrix filter isn&#8217;t that popular at all (yes, these are filters that we hated so much back in time, and I feel totally stupid doing so now), so I decided to give it a go and played around with it.</p>
<h2>Transformie!</h2>
<p>What I came up with, is my new jQuery plugin (though fairly easy to convert to other libs) &#8220;<strong>Transformie</strong>&#8220;, a javascript plugin that comes in less than 5k that you embed into web pages and that maps the native IE Filter API to CSS transitions as proposed by Webkit.</p>
<p><a href="http://paulbakaus.com/lab/js/transformie"><img class="alignnone size-full wp-image-12" title="bild-5" src="http://paulbakaus.com/wp-content/uploads/2008/08/bild-5.png" alt="" width="456" height="372" /></a></p>
<p>Transformie supports the following functions from Webkit&#8217;s syntax (in degrees, radians or grads):</p>
<ul>
<li>rotate</li>
<li>scale, scaleX, scaleY</li>
<li>skew, skewX, skewY</li>
<li>matrix (with the exception of the last two modifiers, tx and ty)</li>
</ul>
<p>The reason the translate functions are not yet supported is the fact that IE&#8217;s Matrix function is not as flexible as Webkit&#8217;s, since you&#8217;re not able to specify tx and ty, the third columns&#8217; first row value and second row value in the actual matrix (there is a way, but then the auto scaling doesn&#8217;t work anymore &#8211; does&#8217;t help much).</p>
<p>However, it&#8217;s fairly easy to also add the translate functions and the last two missing values of the matrix function by simply modifying the position top/left values. The only problem is that the actual behaviour then is a bit different than Webkit&#8217;s &#8211; Webkit&#8217;s translate doesn&#8217;t modify layout.</p>
<p>Also good to understand is the <strong>-webkit-transform-origin</strong> css function, that defaults to the center of the element in Webkit. However, in IE, and therefore also in my implemention (at this moment), the top left corner is the origin for calculations. Again, this should be easy to fix using position values.</p>
<p>Anyway, let&#8217;s get to the point. To show you how simple it really is to get started with Transformie, I simply included Transformie, and its dependancies Sylvester (great javascript utility, very useful for matrix multiplication!) and jQuery (was already included there, obviously) into my last <a href="http://paulbakaus.com/?p=6">blog post&#8217;s entry Coverflow</a>, and from then it&#8217;s prety straight forward &#8211; reload Internet Explorer, and you should have CSS transforms!</p>
<p><a href="http://paulbakaus.com/lab/js/coverflow"><img class="alignnone size-full wp-image-13" title="bild-6" src="http://paulbakaus.com/wp-content/uploads/2008/08/bild-6.png" alt="" width="500" height="329" /></a></p>
<p>One implementation detail that stands out is the usage of the terribly handy event &#8220;<a href="http://msdn.microsoft.com/en-us/library/ms536956(VS.85).aspx">onpropertychange</a>&#8220;, which almost behaves like DOMAttrChanged, but is much finer grained. It is capable of telling you whenever a DOM property changes on an element, <strong>and when you track the style attribute, it actually passes the actual style that changed along with the event</strong>. Neat, huh?</p>
<h2>Documentation</h2>
<p>Anyway, enough said, give it a try. It&#8217;s tested in Internet Explorer 6 and 7 and simply does nothing in other browsers. The following can be optionally configured directly after script inclusion:</p>
<ul>
<li><strong>Transformie.inlineCSS = jQuerySelector</strong> (default: &#8220;*&#8221;, defines if inline styles should be parsed for selected elements on page load [disable or narrow down for better performance])</li>
<li><strong>Transformie.stylesheets = Boolean</strong> (default: true, defines if stylesheets are parsed on page load)</li>
<li><strong>Transformie.trackChangesFor = jQuerySelector</strong> (default: &#8220;*&#8221;, defines for what elements changes should be tracked [disable or narrow down for better performance])</li>
</ul>
<p>And when you&#8217;re done, simply use <strong>-webkit-transform</strong> or <strong>transform</strong> (thanks for the hint, John Resig!) in your Stylesheets or inline in the style tag.</p>
<h2>Download</h2>
<p>Here&#8217;s the download:</p>
<ul>
<li><a href="http://paulbakaus.com/lab/js/transformie/pb.transformie.bundle.zip">Transformie 0.2</a> <strong>(bundle, also contains jQuery and Sylvester, recommended)</strong></li>
<li><a href="http://paulbakaus.com/lab/js/transformie/pb.transformie.js">Transformie 0.2</a> (5k, single file, uncompressed)</li>
<li><a href="http://paulbakaus.com/lab/js/transformie/pb.transformie.min.js">Transformie 0.2</a> (3k, single file, minified)</li>
</ul>
<p>Transformie is, like jQuery, MIT/GPL double licensed.</p>
<p>Enjoy and leave me comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2008/08/16/bringing-css-transform-to-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Coverflow, anyone?</title>
		<link>http://paulbakaus.com/2008/05/31/coverflow-anyone/</link>
		<comments>http://paulbakaus.com/2008/05/31/coverflow-anyone/#comments</comments>
		<pubDate>Sat, 31 May 2008 15:31:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery UI]]></category>
		<category><![CDATA[coverflow]]></category>
		<category><![CDATA[css transforms]]></category>
		<category><![CDATA[fluid]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://paulbakaus.com/?p=6</guid>
		<description><![CDATA[The inspiration So I was looking at all the nice things the WebKit folks did, and one particular feature really got his way into my thoughts, and I was playing with possible usecases for weeks.. I&#8217;m talking about the CSS transforms. This handy nifty new css feature allows you to do all kinds of 2d [...]]]></description>
			<content:encoded><![CDATA[<h2>The inspiration</h2>
<p>So I was looking at all the nice things the WebKit folks did, and one particular feature really got his way into my thoughts, and I was playing with possible usecases for weeks.. I&#8217;m talking about the <a href="http://webkit.org/blog/130/css-transforms/">CSS transforms</a>.</p>
<p>This handy nifty new css feature allows you to do all kinds of 2d transformations on any element on the page, by utilizing custom CSS tags. This means you can rotate and translate DOM elements, but you can also use a generic matrix function to do whatever you want.</p>
<p>So here is where it get&#8217;s interesting. The fun thing about CSS Transforms is that they work today, in Safari 3.1, and on the iPhone, not only in one of the nightly builds, so it&#8217;s possible to target real-world users.</p>
<p>So now that I had all this power, I didn&#8217;t know what to do with it, until I remembered that I always wanted to do a cool iTunes like coverflow effect, already seen countless times in flash. Also helping me to remember was an <a href="http://ajaxian.com/archives/dojoworkers-a-showcase">Ajaxian post about the dojo.workers</a> a couple of days ago, which features the same coverflow effect, done by Peter Higgins.</p>
<p>While this dojo.workers example is absolutely fantastic work and looks brilliant however, it doesn&#8217;t feel quite like the effect: You can&#8217;t scroll at once through many items, there&#8217;s no real animation (the images are already prerendered).</p>
<h2>The result</h2>
<p><a href='http://paulbakaus.com/lab/js/coverflow'><img src="http://paulbakaus.com/wp-content/uploads/2008/05/fensteraufnahme-1.png" alt="" title="Coverflow demo" width="450" class="alignnone size-full wp-image-7" /></a></p>
<p>So after a couple hours of work, I was able to create a <a href="http://paulbakaus.com/lab/js/coverflow">coverflow effect</a> that actually flows and animates in real-time, without using canvas or prerendered graphics.</p>
<p>While impossible to do a real perspective transformation using WebKit right now (that would require a 3d affine matrix), I&#8217;m using the matrix and scale css functions to create a somewhat similar experience, along with some viewport and zIndex logic.</p>
<p>To make a nice demonstration, it uses <a href="http://ui.jquery.com">jQuery UI</a> to create a actual coverflow widget, and jQuery UI&#8217;s slider to be able to slide through. You can also navigate through the items by clicking on them or using the left/right keys on your keyboard.</p>
<p>For those of you who would like to know how I was able to create the real experience: The refresh() function that updates the viewport does unlike other examples (i.e. frash coverflow scripts) not only handle single animations, but is capable of doing true half-state renderings. Right now, this is not shown too much in the demo, but it would be actually possible to change the next/prev keyboard behaviour to not move from one item to the other, but render each single half-state inbetween.</p>
<p>Finally, for those of you wondering if this will become a real plugin: Indeed, it&#8217;s already commited in the 1.7 branch of jQuery UI, and along with other Webkit specific plugins, come to UI in the near future. I&#8217;ll keep you updated!</p>
]]></content:encoded>
			<wfw:commentRss>http://paulbakaus.com/2008/05/31/coverflow-anyone/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
	</channel>
</rss>

