<?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>IO 9elements</title>
	<atom:link href="http://9elements.com/io/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://9elements.com/io</link>
	<description>Webninja&#039;s arise!</description>
	<lastBuildDate>Sat, 12 May 2012 15:11:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Falk Mobile relaunch, the HTML5 way</title>
		<link>http://9elements.com/io/?p=709</link>
		<comments>http://9elements.com/io/?p=709#comments</comments>
		<pubDate>Fri, 11 May 2012 17:48:04 +0000</pubDate>
		<dc:creator>wojtek</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://9elements.com/io/?p=709</guid>
		<description><![CDATA[
When the German map manufacturer Falk approached us to relaunch their mobile website we knew that we wanted to do it completely web based. No native code should be used for this application.
The building blocks
The app is realized as a single-page web application using the popular JavaScript library Backbone.js with Handlebars.js for the templates. The [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://m.falk.de/?utm_source=9elements" target="_blank"><img class="alignnone size-full wp-image-712" title="Falk Mobile Website" src="http://9elements.com/io/wp-content/uploads/2012/05/falk_hand_blog.jpg" alt="Falk Mobile Website" width="548" height="229" /></a></p>
<p>When the German map manufacturer <a href="http://m.falk.de/?utm_source=9elements">Falk</a> approached us to relaunch their mobile website we knew that we wanted to do it completely web based. No native code should be used for this application.</p>
<h4>The building blocks</h4>
<p>The app is realized as a single-page web application using the popular JavaScript library <a href="http://documentcloud.github.com/backbone/">Backbone.js</a> with <a href="http://handlebarsjs.com/">Handlebars.js</a> for the templates. The map component was built with the powerful <a href="http://msdn.microsoft.com/en-us/library/gg427610.aspx">Bing Maps AJAX Control SDK</a>.</p>
<p>The backend was created with our good old friend <a href="http://rubyonrails.org/">Ruby on Rails</a>. ;)</p>
<p>Here are some stats:</p>
<p><strong>Lines of code:</strong></p>
<ul>
<li>3838 CoffeeScript</li>
<li>4310 Javascript</li>
<li>727 Template code</li>
</ul>
<p><strong>Size:</strong><br />
The JavaScript code was uglified to 272.63 KB of pure awesomeness.</p>
<h4>The project diary</h4>
<p><a href="http://documentcloud.github.com/backbone/">Backbone.js</a> is a nice framework to build a client side web application. But don&#8217;t let all the built-in simplicity and goodness fool you! With frontend and backend combined your stack consists of MVC for the backend and MVC for the frontend… &#8211; that&#8217;s a pretty high stack! &#8211; Luckily, leveraging <a href="http://coffeescript.org/">CoffeeScript</a>, the code stays clear, readable and maintainable.</p>
<p>Initially, we started with <a href="http://zeptojs.com/">Zepto.js</a> which is a lightweight jQuery replacement but due to some complex UI components we had to switch to <a href="http://jqueryui.com/">jQuery-UI</a>. The switch to jQuery was very smooth. Everything that worked with Zepto.js worked perfectly fine with jQuery.</p>
<p>The first 80% of the application took 20% of the time, the last 20% took 80% of the time. The main reasons for that were the following:</p>
<ol style="list-style-type: decimal;">
<li>Opening Pandora’s box and unleashing everything that CSS3 has to offer brings some serious problems.<br />
For example, we are using a transition to show and hide most of the views, some of them containing different kinds of inputs. First we used the <code>transform:translate(x,y)</code> CSS attribute for that, because it performs very well on the mobile Safari. Unfortunately, on the Android browser the transition is not working correctly and the JavaScript hitboxes for buttons and inputs were not on the right position. We solved this issue by using CSS transitions for Android.</li>
<li>Resizing DOM elements beyond screen size yields in an ugly render bug on the mobile Safari. Fortunately there is an easy fix for that. By touching some CSS attributes you can trigger a relayout of the page. Details can be found <a href="http://gent.ilcore.com/2011/03/how-not-to-trigger-layout-in-webkit.html">here</a>.</li>
<li>HTML5 is a wonderland in theory but in practice you will have to sniff operating system and browser to provide the best user experience. Depending on the iOS version we had to render either a HTML5 range input or the jQuery-UI range slider. Also we have slightly different CSS for iOS and Android browsers. For example on Android 2.3 box-shadow did not work at all and border radius looks butt ugly.<br />
We needed to do a lot of tweeking to deal with the fragmentation of browsers on the Android platform and we are happy to see that google is tackeling this problem by providing chrome for Android and decoupling the browser evolution from system updates.</li>
</ol>
<p>Despite the problems we had developing this application it still was great fun. Again, we pushed the limits and saw once more that web and native are moving closer and closer.</p>
<p>Finally, we are very happy with the result and the users also seem to like it. In the first few weeks we already tracked up to 7.000 visits per day!</p>
]]></content:encoded>
			<wfw:commentRss>http://9elements.com/io/?feed=rss2&amp;p=709</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chaplin – an Application Architecture based on Backbone.js</title>
		<link>http://9elements.com/io/?p=680</link>
		<comments>http://9elements.com/io/?p=680#comments</comments>
		<pubDate>Fri, 24 Feb 2012 15:52:44 +0000</pubDate>
		<dc:creator>Mathias Schäfer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[backbone]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[single-page applications]]></category>

		<guid isPermaLink="false">http://9elements.com/io/?p=680</guid>
		<description><![CDATA[Today we’re releasing the application architecture of moviepilot.com into the public: Meet Chaplin!]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-692" title="Screen Shot 2012-02-23 at 1.52.57 PM" src="http://9elements.com/io/wp-content/uploads/2012/02/Screen-Shot-2012-02-23-at-1.52.57-PM.png" alt="Screen Shot 2012-02-23 at 1.52.57 PM" width="546" height="143" /></p>
<p>In April 2011, Moviepilot, a successful Berlin-based startup, asked us to help building their new product <a href="http://moviepilot.com">moviepilot.com</a>. After having established an international fan-base of over four million movie addicts on their facebook page, they wanted to use this momentum to create a social place for discovering upcoming movies and tracking them from rumor to release.</p>
<h4>Behind the scenes of Moviepilot</h4>
<p>Together with the Moviepilot team we decided to build a large-scale single-page application. The backend was built with a classic and bulletproof technical stack using Ruby on Rails, MySQL and Neo4j databases. The frontend is a sizeable JavaScript application written in CoffeeScript, HAML and SASS.</p>
<p>We chose the popular <a href="http://documentcloud.github.com/backbone/">Backbone library</a> as a basis for our JavaScript code. Since we were always convinced of the idea behind single-page apps, we started working with Backbone pretty early. When we built <a href="http://salon.io">salon.io</a>, one of our products designed as single page app, we gathered valuable experience (kudos <a href="http://twitter.com/thedeftone">@thedeftone</a>).</p>
<p>By design, Backbone is more of a minimalistic library than a full-featured framework. However, huge JavaScript applications are being built using Backbone and well-known companies like Foursquare, LinkedIn and 37Signals <a href="http://documentcloud.github.com/backbone/#examples">rely upon Backbone</a>. While Backbone is fine for what it’s made for, large projects require a sophisticated architecture on top of it that implements well-proven design patterns.</p>
<p>Recently, several frameworks based on Backbone were released, most notably <a href="http://walmartlabs.github.com/thorax/">Thorax</a> and <a href="http://derickbailey.github.com/backbone.marionette/">Marionette</a>. Independently from each other, we came to similar conclusions during the development of moviepilot.com.</p>
<h4>Meet Chaplin, an Application Architecture based on Backbone</h4>
<p>Today we’re releasing the application architecture of moviepilot.com: <strong><a href="https://github.com/chaplinjs/chaplin">Meet Chaplin!</a></strong> It’s free and open-source, MIT-licensed.</p>
<p>Chaplin is not a ready-to-use library, but an example how a real-world Backbone application might look like. Consider it as a scaffold which you might build upon and adapt to the specific needs of your application. The key features of Chaplin include:</p>
<ul>
<li>Pure CoffeeScript classes wrapped in RequireJS (AMD) modules</li>
<li>Cross-module communication using the Mediator and Publish/Subscribe patterns</li>
<li>Separated routing and business logic by introducing controllers</li>
<li>Application-wide view management</li>
<li>Strict memory management and object disposal</li>
</ul>
<p>You will find <a href="https://github.com/chaplinjs/chaplin">an in-depth explanation of the application structure</a> on the Chaplin Github page.</p>
<p>Chaplin comes with a simple demo application which allows you to log in via Facebook on the client-side and browse your Facebook Likes. While this isn’t by far as complex as moviepilot.com, it demonstrates how application modules interact and how a client-side login might be implemented.</p>
<h4>Fork Chaplin on Github</h4>
<p>By releasing Chaplin into the public, we’d love to share our experience on building large-scale JavaScript applications and contribute to the discussion on Backbone development. Chaplin is also our testbed to evolve our application structure, and it’s already ahead of the moviepilot.com codebase.</p>
<p>Since we’re constantly improving the architecture, your feedback is highly appreciated. Feel free to <a href="mailto:contact@9elements.com">contact us</a>, <a href="https://github.com/chaplinjs/chaplin">fork the code</a> or <a href="https://github.com/chaplinjs/chaplin/issues">create a new issue</a> on Github.</p>
<p>We&#8217;re also considering initiating a Backbone usergroup meet-up in Berlin in the next months. Let us know if you&#8217;re interested to join!</p>
]]></content:encoded>
			<wfw:commentRss>http://9elements.com/io/?feed=rss2&amp;p=680</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The digital carpenter.</title>
		<link>http://9elements.com/io/?p=653</link>
		<comments>http://9elements.com/io/?p=653#comments</comments>
		<pubDate>Fri, 21 Oct 2011 10:49:33 +0000</pubDate>
		<dc:creator>martin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://9elements.com/io/?p=653</guid>
		<description><![CDATA[
Two years ago, Martin, author of the following post, was about to become a carpenter. Instead, he became our apprentice and a fellow webdeveloper. Needless to say how drastically this changed his perspectives.

It was not an easy decision to take somebody with almost no relevant background or references into our team and teach him how [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-655" title="tubemap" src="http://9elements.com/io/wp-content/uploads/2011/10/tubemap.png" alt="tubemap" width="551" height="300" /><br />
<strong>Two years ago, Martin, author of the following post, was about to become a carpenter. Instead, he became our apprentice and a fellow webdeveloper. Needless to say how drastically this changed his perspectives.<br />
<span id="more-653"></span><br />
It was not an easy decision to take somebody with almost no relevant background or references into our team and teach him how to build web apps. It requires time, attention and patience; assets which are tremendously valuable in this fast living and growing industry. And since these are so valuable they became rare. Honestly: Aren&#8217;t we usually lusting for Stanford graduated robot ninjas who started coding unicorns when they turned five?<br />
In the digital age teaching has become pretty impersonal. I think this is a mistake, and making exceptions in the recruitment process every now and then can make a huge difference – not only in the life of a single person, but also for a company and its culture. </strong></p>
<p><strong> </strong></p>
<p><strong>Recently Martin created <a href="http://attackemart.in">attackemart.in</a>, a simple and elegant personal website. It quickly became viral and eventually won the prestigious <a title="attackemart.in on awwwards.com" href="http://www.awwwards.com/web-design-awards/attackemart-in" target="_blank">Awwward</a>. He did this after his first year. And boy, are we proud.<br />
We asked Martin to write down his story and share it on our blog, because we think this is a success story of its own. The successs of having unearthed the talents of a prospect carpenter.<br />
</strong></p>
<p>Hey, my name is Martin Gauer, I&#8217;m 23 years old and live in Bochum, Germany.<br />
Two years ago, I was about to start an apprenticeship as a carpenter. However, it wasn&#8217;t really what I wanted to do, since I had a deep interest in designing stuff. I had created cover designs for some bands and photoshopped some small websites before. Therefore, I was desperately looking for a place where I could learn more about these things, and eventually succeed as a designer.<br />
While googling around I came across the website of <a href="http://9elements.com">9elements</a>, and loved what I saw. I immediately contacted them to ask if I could work there.<br />
Initially, they hesitated but since they saw some potential in the stuff that I&#8217;ve designed, they offered me an internship.</p>
<p>My internship felt a little like a total brain wash: When I started, I quickly found out how little I knew about design and user experience. I didn&#8217;t really know what&#8217;s going on in the internet, what&#8217;s hot and cool. I&#8217;ve never heard about HTML5 and CSS3. Bottom line, I started from almost zero.<br />
During this time, almost all my designs were smashed down by either Eray or Sebastian, who told me I could do better. They asked me to start bookmarking and collecting websites that I like and to mimic their style, before creating my own. They asked me to sign up to Twitter and to follow the best designers around the world. Set your benchmark as high as possible, so you&#8217;ll never have to chance to tread water.</p>
<p>It was pretty frustrating to see how far I was from being a good designer, but it also fueled my curiosity and determination to succeed. I stayed in the office as long as I could. Sometimes I just didn&#8217;t want to leave at all.<br />
Later, they told me that exactly this attitude convinced them to open the doors wide for me. At last, when I asked them to become an apprentice at 9elements they agreed.</p>
<p>Learning you are, young padawan.</p>
<p>Their offer came with one condition though. They wanted me to enroll as a software developer rather than a designer. &#8216;Design and Code go hand in hand, it&#8217;s almost the same thing. The one you&#8217;ll see, the other you&#8217;ll feel&#8217;. They argued that it&#8217;ll be far more powerful to build what I envision than just to design it.<br />
This offer was somewhat unexpected, but honestly, the more I thought about it the more I liked the idea. It turned out to be great decision.</p>
<p>So I started to learn how to code. It was a very steep learning curve since I had no coding background at all. I learned how to create clean and scalable markup, and had the luck to look over the shoulder of one of the <a href="http://twitter.com/molily">bests</a>. I had the chance to work extensively with CSS3, media queries and mobile design.<br />
Today I&#8217;m already in charge of creating and maintaining HAML / SASS for most of the 9elements projects.</p>
<p>When 9elements launched their new website in the beginning of this year they got some traction and won some awards. And I thought: hey, this is something I want to accomplish, too! I was determined to build my own website and to make it awesome.</p>
<p>Naturally, it wasn&#8217;t that easy. It took me several iterations &#8211; you probably know the game &#8211; sketch, code, redesign, throw away, create from scratch, design, code, etc. Finally, in October 2011 it was finished, polished and ready for deployment.<br />
The development process was extremely valuable: I learned turning a vision into design and design into code &#8211; full stack!</p>
<p>Of course, I was very curious if the concept would get any traction. After launching the site I&#8217;ve submitted it to various CSS galleries and tweeted the link. And boom! People started tweeting about it and the feedback was overwhelming. Two days later, <a href="http://twitter.com/thedeftone">Jan</a> emailed me that @soxiam, the lead designer of vimeo featured me on his <a title="attackemart.in on soxiam blog" href="http://soxiam.com/post/11278713191/http-attackemart-in" target="_blank">personal blog</a>. The internet is such a wonderful place :)<br />
Finally, my goal was to win the prestigous awwward. It took almost 8 days &#8211; but here it is, I got it! And I&#8217;m proud as hell.</p>
<p>Huge thanks to my team for helping me to be more than I could have ever imagined. I consider myself really lucky to be part of it!</p>
]]></content:encoded>
			<wfw:commentRss>http://9elements.com/io/?feed=rss2&amp;p=653</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Live is beautiful.</title>
		<link>http://9elements.com/io/?p=620</link>
		<comments>http://9elements.com/io/?p=620#comments</comments>
		<pubDate>Thu, 14 Jul 2011 15:02:45 +0000</pubDate>
		<dc:creator>Eray Basar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://9elements.com/io/?p=620</guid>
		<description><![CDATA[
At Nodecamp 2011, we wanted to present a live tracker built with node.js. After seeing the popular facebook map by Paul Butler, I was wondering why not create something like that with live data. The appeal of watching the temporal dynamics within such a visualisation is obvious.
Of course, the problem with live data is that [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-621" title="img.ly live tracker" src="http://9elements.com/io/wp-content/uploads/2011/07/screenshot.jpg" alt="img.ly live tracker" width="550" height="286" /></p>
<p>At Nodecamp 2011, we wanted to present a live tracker built with node.js. After seeing the popular <a href="http://paulbutler.org/archives/visualizing-facebook-friends/">facebook map by Paul Butler</a>, I was wondering why not create something like that with live data. The appeal of watching the temporal dynamics within such a visualisation is obvious.</p>
<p>Of course, the problem with live data is that there is no way to tweak it with some nice afterfx, or play it in fast forward to make it look awesome. Mastering the art of live visualisation requires to create something meaningful while it looks stunning at almost every single instant. That&#8217;s not easy.<br />
<span id="more-620"></span><br />
After giving the idea some thought, I decided to go with data from <a href="http://img.ly/">img.ly</a>. Img.ly is one of our projects which has shown some serious traffic lately, mainly because img.ly became the default image service of the popular twitter client <a href="http://iconfactory.com/software/twitterrific">Twitterrific</a>. Needless to say the guys from Twitterrific deserve some serious credit, not only for creating awesome apps, but also for supporting other services without asking anything in return. After some years in this business I can tell you: this is more than unusual.</p>
<h4>The idea</h4>
<p>We still had to figure out what exactly to visualise. There are already many apps plotting visitors on a map, so obviously this was not very interesting. We were interested in connections, and basically there is already a very important type of connection on img.ly. Whenever you call a picture on img.ly, you create a connection to the user who posted it. We can apply this idea to location, thus all we had to do was to connect the location of visitors with the location of the picture they&#8217;re viewing. That&#8217;s the idea.</p>
<h4>The technical setup &#8211; Backend</h4>
<p>As mentioned before, we wanted to do something realtime. Sascha (<a href="http://twitter.com/rattazong">@rattazong</a>) therefore made an awesome setup for the backend. When someone views the experiment, a persistent connect to a <a href="http://nodejs.org/">node.js</a> server is established using <a href="http://socket.io/">socket.io</a>. If another person views an image on img.ly we send a message to the server with two parameters: The location of the image that has been viewed and the location of the viewer. Inside the server we&#8217;re accumulating these views in a datastructure and then propagating the information to all clients. The heavy lifting is done by the in-memory database <a href="http://redis.io/">Redis</a>. The locations are determined using the <a href="https://github.com/strange/node-geoip/">geoip</a> package for node.js. If the node process crashes, it&#8217;s automatically restarted with <a href="https://github.com/indexzero/forever">forever</a>. Deploying is done with <a href="https://github.com/capistrano/capistrano">capistrano</a> using <a href="https://gist.github.com/1081344">this recipe</a>.</p>
<h4>The technical setup &#8211; Frontend</h4>
<p>We considered different rendering techniques which could draw such a large amount of data on the screen. I decided to go with canvas, since I wanted to use procedural drawing instead of drawing every pixel of canvas on each frame. That turned out to be a wise decision.</p>
<p>I was able to &#8220;exploit&#8221; three features of the canvas API:</p>
<ol>
<li>You can apply a shadowBlur attribute to your canvas to make it glow. I was playing with a custom gaussian blur before, but it was far to expensive in terms of CPU performance. The shadowBlur was a nice workaround, it creates the &#8220;lazoresque&#8221; appearance in the visualisation.</li>
<li>You can use use different blending modes in HTML, and by successively applying the &#8220;lighter&#8221; and &#8220;source-over&#8221; option you can generate both a heatmap and a decay over time. Effects 1 &amp; 2 combined produce quite a stunning visual.</li>
<li>You can draw curves with the drawBezier function. Of course it&#8217;s not that simple in my case. I had to calculate segments of a Bezier curves, there is a nice explanation how it works on <a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve">wiki</a>. A tiny segment of the curve is drawn and moving forward every frame. By applying the &#8220;lighter&#8221; blending mode, overlapping segments created a lighter color and consequently I was able to produce the gradient effect on the curve. Getting there took quite some time though.</li>
</ol>
<p><img class="alignleft size-full wp-image-633" title="Screen-shot-2011-05-31-at-2.23.19-AM2" src="http://9elements.com/io/wp-content/uploads/2011/07/Screen-shot-2011-05-31-at-2.23.19-AM2.jpg" alt="Screen-shot-2011-05-31-at-2.23.19-AM2" width="550" height="250" /><br />
<em>One of the first visual outputs with random data.</em></p>
<h4>Mapping the data</h4>
<p>Fine-tuning the visualization was the most time-consuming and probably most important part of the project. If it doesn&#8217;t look sexy, nobody will watch it. There are many parameters to tweak and it&#8217;s been very time consuming to find out the best configuration.</p>
<p>Let&#8217;s sum up the most important decisions which made a deep impact into the visual:</p>
<p>The distance between both endpoints of the curve determines the bending and the opacity of the curve. The further two points are away, the more the curve bends. This significantly decreased collision between curves. Furthermore, the curves are directional, which means that a curve connecting Berlin with New York will bend up, while the opposite direction will produce a curve bending down. This is a simple way to give us more information about the connectivity: e.g. you can see with one glance that Europe drives more traffic to the US than the other way around.</p>
<h4>Creating patterns</h4>
<p>While working on this project I was lucky to see many intersting findings. For example, at one point popular football player Sergio Ramos (&gt;1million followers) posted a picture, and suddenly all spanish speaking countries on this world turned their attention to it:<br />
<img class="alignleft size-full wp-image-644" title="04-07-2011_09.23.04" src="http://9elements.com/io/wp-content/uploads/2011/07/04-07-2011_09.23.04.jpg" alt="04-07-2011_09.23.04" width="550" height="270" /><br />
<em>The Sergio Ramos Effect.</em><br />
You can see this pattern whenever some popular twitter user posts a picture on img.ly.<br />
During the riots in Syria something similar happend, after a Syrian posted a related picture on img.ly. It was far less dramatic than the Sergio Ramos effect &#8211; however the visualization showed a gradual incline of views. Even the propagation of this image across the world became visible.</p>
<p>Some other facts:</p>
<ol>
<li>There are more people in Europe &#8216;connecting&#8217; to the States than the other way around.</li>
<li>Tokio never sleeps.</li>
<li>img.ly used to be among the top alexa 500 websites in china. Now we&#8217;re blocked by the great chinese firewall.</li>
<li>Far less Mac traffic in the industrial states than expected.</li>
<li>Spotting Neil Patrick Harris&#8217;s picture on img.ly was legen&#8230;wait for it&#8230; dary!</li>
<li>Never show a live demo when there is no internet, and the room too bright to beam a decent visual ;)</li>
</ol>
<p><img class="alignleft size-full wp-image-645" title="nodecamp-crowd-watching-img" src="http://9elements.com/io/wp-content/uploads/2011/07/nodecamp-crowd-watching-img.jpg" alt="nodecamp-crowd-watching-img" width="550" height="338" /><br />
<em>I can haz internet? Nodecamp crowd waiting in vain for some live data.</em></p>
<p><a href="http://node.9elements.com">Now watch the img.ly &#8220;live is beautiful&#8221; experiment here!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://9elements.com/io/?feed=rss2&amp;p=620</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thank god it&#8217;s Friday</title>
		<link>http://9elements.com/io/?p=613</link>
		<comments>http://9elements.com/io/?p=613#comments</comments>
		<pubDate>Thu, 23 Jun 2011 16:43:50 +0000</pubDate>
		<dc:creator>Eray Basar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[In case you have missed it]]></category>

		<guid isPermaLink="false">http://9elements.com/io/?p=613</guid>
		<description><![CDATA[
We are stuntmen slash programmers.
]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/23696206?title=0&amp;byline=0&amp;portrait=0&amp;autoplay=0" width="550" height="330" frameborder="0"></iframe><br />
<br />We are stuntmen slash programmers.</p>
]]></content:encoded>
			<wfw:commentRss>http://9elements.com/io/?feed=rss2&amp;p=613</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spot on: Watchlater.</title>
		<link>http://9elements.com/io/?p=580</link>
		<comments>http://9elements.com/io/?p=580#comments</comments>
		<pubDate>Tue, 24 May 2011 13:03:28 +0000</pubDate>
		<dc:creator>Eray Basar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://9elements.com/io/?p=580</guid>
		<description><![CDATA[Today we have finally released watchlater for iPad!
Watchlater transfers the idea of instapaper to video. The app comes with the promise of watching video bookmarks anywhere and anytime.
To accomplish this goal we implemented a caching system, which also automatically converts video into an iPad ready format.
Check out the watchlater website to get more infos about [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Today we have finally released watchlater for iPad!</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Watchlater transfers the idea of instapaper to video. The app comes with the promise of watching video bookmarks anywhere and anytime.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">To accomplish this goal we implemented a caching system, which also automatically converts video into an iPad ready format.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Check out the watchlater website to get more infos about features and scope.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">In this post, we&#8217;d like to put some light into the process of creating watchlater, and some of the pain we had. After all, creating software is not always a one way road.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">The idea of watchlater came already in summer last year and we were quick to implement the first version of the app. The first app submission was in September 2010, and it took apple blasting 55 days to get back to us</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">just to tell that the app was rejected because of basic shortcomings, such as a missing icon and some random app crashes.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">This submission however was critical to see that apple had no problem with the idea of caching online videos. You&#8217;ll never know.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Consequently, we continued the development. We rewrote the app entirely from the scratch, acknowledging that our first attempt was simply not good enough.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Technically, we then made a mistake by rewriting the backend with Node. Using Node was far to early (v0.2) &#8211; the bulletproof rails tool chain was missing, hence slowing down the development process.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Don&#8217;t misunderstand &#8211;  we think that node is awesome. It was just a bad idea to use it for the whole backend. Instead, the video processing and transcoding layer provided by our partner filsh</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">was implemented entirely with a Node.js and reddis stack. With over 40 servers clustered together, this might be one of the largest node installations so far.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">When we submitted the second version, we had to deal another time with a slow and unresponsive apple support. Our company changed our legal form, and we wanted to change that in our development account.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Apparently, there is no way to make such a change. Instead, apple advised us to create a complete new account, and undergo the enrollment process from scratch.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">If this wasn&#8217;t pain enough, we lost the &#8220;watchlater&#8221; name for the app, which is still taken by our old account. Up to this point none at apple provided us with a solution for this problem.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Even though these backlashes were very good reasons to get us down, we didn&#8217;t. We received lots of encouraging feedback. People loved the idea, and encouraged us to keep on moving.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">And then there were the good news. HackFWD invested in watchlater. We took this outside investment not because we needed cash. 9elements is doing well, so we&#8217;re perfectly fine with bootstrapping our ideas.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">It was because we were looking for a partner who can boost the product with their experience and network. We had several options, but HackFWD made us feel right at home, so we found a perfect match.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Apple finally approved the app, but we decided to stay under the radar until all major milestones were completed.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">It also helped us to add over a thousand users, get their feedback and take some time for essentials improvements on the app. It also gave us the opportunity to iterate over the UI and overall user experience.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">All users who bought the app up to this point received 300 free caching minutes.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Even though we now start promoting the app, we don&#8217;t expect it to start with a big bang. We are a looking much more a for a sustainable growth, and we believe that watchlater provides</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">the kind of usefulness and uniqueness to get there.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">And, we&#8217;re already working on bringing even more of it in the upcoming updates!</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">A big shout out to our beta testers, we truly appreciate all your feedback and ideas.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Thank you:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">List of beta tester.</div>
<p><img class="alignleft size-full wp-image-581" title="io_teaser" src="http://9elements.com/io/wp-content/uploads/2011/05/io_teaser.jpg" alt="io_teaser" width="547" height="166" /></p>
<p>Today we have finally released <a href="http://itunes.apple.com/us/app/watchlaterapp/id423572879?mt=8&amp;ls=1">Watchlater for iPad</a>! Watchlater transfers the idea of Instapaper to video. The app lets you watch video bookmarks anywhere and anytime. To accomplish this we have created a caching function which supports most video platforms. Videos are also automatically converted into an iPad ready format. The app comes with 300 &#8216;caching&#8217; minutes, and users can add more minutes through in App purchase.</p>
<p>Check out the <a href="http://goo.gl/iGi1v">Watchlater website</a> to get more info about features and scope.</p>
<p>In this post, we&#8217;d like to shed some light on the process of creating Watchlater and some of the pain we had. After all, creating software is not always a one way road.</p>
<p><span id="more-580"></span></p>
<p>The idea of Watchlater came already in the summer of last year and we were quick to implement the first version of the app. The first app submission was in September 2010, and it took Apple a blasting 55 days to get back to us just to tell that the app was rejected due to shortcomings such as a missing icon and some random app crashes. This submission, however, was critical to see that Apple had no problem with the idea of caching online videos. You never know.</p>
<p>Consequently, we continued development. We rewrote the app entirely from scratch, acknowledging that our first attempt was simply not good enough.</p>
<p>We then made a technical mistake by rewriting the backend with <a href="http://nodejs.org">Node.js</a>. Using Node at this point was far to early (v0.2) – the bulletproof Rails tool chain was missing, hence slowing down the development process. Don&#8217;t get us wrong – we think Node is awesome! It was just a bad idea to use it for the whole backend. Instead, the video processing and transcoding layer provided by our partner <a href="http://filsh.net">Filsh</a> was implemented entirely with a Node.js and <a href="http://redis.io/">Redis</a> stack. With over 40 servers clustered together, this might be one of the largest Node installations so far.</p>
<p>When we submitted the second version we had to again deal with a slow and unresponsive Apple process. Our company changed its legal form, and we wanted to change that in our development account. Apparently, there is no way to make such a change. Instead, Apple advised us to create a new account and undergo the enrollment process again. If this wasn&#8217;t painful enough, we lost the &#8220;Watchlater&#8221; name for the app, which is still taken up by our old account. Up to this point nobody at Apple has provided us with a valid solution for this problem.</p>
<p>Even though these backslashes were good enough reasons to get us down, we did not. We received lots of encouraging feedback. People loved the idea and pushed us to keep on moving. And then there were the good news. <a href="http://hackfwd.com/">HackFwd</a> invested in Watchlater. We took this outside investment not because we needed cash. 9elements is doing well, so we were perfectly fine with bootstrapping our ideas. It was because we were looking for a partner who can boost the product with their experience and network. We had several options, but HackFwd made us feel right at home by sharing the same enthusiasm for technologies and building stuff. So we found a perfect match.</p>
<p>Apple finally approved the app, but we decided to stay under the radar until all major milestones were completed. It also helped us to add over a thousand users, get their feedback and take some time for essential improvements on the app. It also gave us the opportunity to iterate over the UI and the overall user experience. All users who bought the app up to this point received additional 300 free caching minutes. The app is now out in the open, and we believe it brings the kind of uniqueness and usefulness that users will find it and love it. And we are already working on bringing even more of that in the upcoming updates!</p>
<p>Finally, thanks to all our beta testers and supporters. We truly appreciate all your feedback and ideas.</p>
<p>Our beta testers and contributors:</p>
<p><span style="border-collapse: collapse; line-height: normal;">Dion Almaer, Thierry Apelt, Milind Avares, Marcel Fahle, Peter Grosskopf, Tom Hulme, Stefan Landrock, Jens Krahe, Felix Nensa, Diego Petrucci, Stephan Seidt, Timo Schilling, Federico Viticci, Chris White.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://9elements.com/io/?feed=rss2&amp;p=580</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New Website &#8211; ZOMG &#8211; It&#8217;s coffee all over the place!</title>
		<link>http://9elements.com/io/?p=551</link>
		<comments>http://9elements.com/io/?p=551#comments</comments>
		<pubDate>Mon, 09 May 2011 15:16:52 +0000</pubDate>
		<dc:creator>Sebastian Deutsch</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://9elements.com/io/?p=551</guid>
		<description><![CDATA[
As of today we have a new 9elements website. Whereas the old one was quickly put together to deliver an impression of our company culture, we put a lot more effort in developing this site. We now have a decent place where people see the cool projects we&#8217;ve worked on and also get an insight [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.9elements.com"><img class="alignleft size-full wp-image-571" title="coffee" src="http://9elements.com/io/wp-content/uploads/2011/05/coffee.jpg" alt="coffee" width="547" height="166" /></a></p>
<p>As of today we have a new <a href="http://9elements.com">9elements</a> website. Whereas the old one was quickly put together to deliver an impression of our company culture, we put a lot more effort in developing this site. We now have a decent place where people see the cool projects we&#8217;ve worked on and also get an insight on how we work. But not only the content is fresh &#8211; with the release of our new website, we revamped our complete production toolchain.</p>
<p><span id="more-551"></span></p>
<p><strong>ZOMG &#8211; It&#8217;s coffee all over the place!</strong></p>
<p>The whole website is implemented as a single page webapplication, so far nothing special here. But we created our own coffee-script haml parser so that we can write our templates in haml and coffeescript. We love haml, we use it in all of our Rails work and we love <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> since day 1. When we took <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> to create a single page webapp, we realized that there are many choices for templating, but most them force you to write plain HTML, which felt like a step in the wrong direction. On the other side there is already a Tim Caswells very inspiring <a href="https://github.com/creationix/haml-js" target="_blank">haml-js</a> library, but sadly this one forced us to write javascript instead of CoffeeScript. So in the end we decided to implement our own <a href="https://github.com/9elements/haml-coffee" target="_blank">haml-coffee</a> script parser to avoid pardigma breaks. It&#8217;s not perfect, but stable enough to build this website.</p>
<p>Last but not least we switched from Sass to <a href="https://github.com/LearnBoost/stylus" target="_blank">Stylus</a>, which is a little more radical and has tons of cool features. Stylus plays very nice with rails using the <a href="https://github.com/lucasmazza/stylus_rails" target="_blank">Stylus</a> gem from Luccas Mazza.</p>
<p><strong>So where do we go now?</strong></p>
<p>When we developed the website we&#8217;ve realized that there is a lot of redundancy in the code. As example I&#8217;ll take the project model. So how do I get it to the client?</p>
<ul>
<li>You&#8217;ll write it in Rails, tweaking the as_json method since you&#8217;ll have to incorporate all images into the JSON hash.</li>
<li>You&#8217;ll write a model for Backbone.js</li>
<li>You&#8217;ll write a collection for Backbone.js</li>
<li>You&#8217;ll create a view&#8230;</li>
<li>&#8230;and a template where the data will be finally rendered.</li>
</ul>
<p>If you repeat that steps for the other models you&#8217;ll get the feeling, that the web development is <a href="http://harry.me/2011/01/27/today-web-development-sucks/" target="_blank">terribly broken</a> at the moment. There must be a more DRY approach on realizing this. I&#8217;m thinking of switching from Rails to <a href="http://nodejs.org/" target="_blank">Node.js</a> and implementing models that can be used on the server and on the client. But this is another step, for now we just established a very cool toolchain for views and templates.</p>
<p>Photo by <a href="http://www.flickr.com/photos/puuikibeach/3299635718/">puuikibeach</a>. And for the big fans of our old page &#8211; you can view it <a href="http://9elements.com/de.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://9elements.com/io/?feed=rss2&amp;p=551</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Next decade: The big bang technology.</title>
		<link>http://9elements.com/io/?p=498</link>
		<comments>http://9elements.com/io/?p=498#comments</comments>
		<pubDate>Wed, 12 Jan 2011 19:25:01 +0000</pubDate>
		<dc:creator>9elements</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://9elements.com/io/?p=498</guid>
		<description><![CDATA[
Most of you might agree that the pace of web-evolution was impressively intense last year. (Yeah,  the web is dead, we just haven&#8217;t found a new name for it yet.)
From a business perspective, 2010 was also pretty good, with many services empowering smaller companies and solo developers. Especially the Apple and Facebook ecosystems continue to [...]]]></description>
			<content:encoded><![CDATA[<h2><img class="aligncenter size-full wp-image-529" title="tech-horizon" src="http://9elements.com/io/wp-content/uploads/2010/12/tech-horizon.jpg" alt="tech-horizon" width="547" height="189" /></h2>
<p>Most of you might agree that the pace of web-evolution was impressively intense last year. (Yeah,  <a href="http://www.wired.com/magazine/2010/08/ff_webrip/all/1" target="_blank">the web is dead</a>, we just haven&#8217;t found a new name for it yet.)</p>
<p>From a business perspective, 2010 was also pretty good, with many services empowering smaller companies and solo developers. Especially the Apple and Facebook ecosystems continue to nourishing a whole new generation of small dev shops. We like that.</p>
<p>But following Ray Kurzweil&#8217;s argumentation in &#8220;<a href="http://www.amazon.com/Age-Spiritual-Machines-Computers-Intelligence/dp/0140282025">Age of the spiritual machine</a>&#8220;, evolution will accelerate, which results in accelerated cycles of technologies, which in turn implies everything will change. In fact this thought is nothing new, but change is more perceptible nowadays, since it happens faster. That said, just turn your face for a second and you might have already missed the next big thing. It&#8217;s important to have an idea of what&#8217;s next.</p>
<p>So, curtain up for a random collection of our thoughts about the things to come in the near future.</p>
<p><span id="more-498"></span></p>
<h4 style="font-size: 1em;">Raise of the Javascript I: Serverside Javascript.</h4>
<p>For nearly two years, we&#8217;ve been working on smaller serverside javascript projects, so we kind of expected that this will happen. But node.js still took us by surprise.</p>
<p>While most serverside JavaScript frameworks mimic existing methodologies , <a href="http://nodejs.org">Node.js</a> introduced a novel approach to model our server processes.</p>
<p>Node.js is serverside JavaScript with a twist. In Node.js everything is non-blocking and all API calls are handled asynchronously. Behind the scenes this is realized by running <a href="http://code.google.com/p/v8/">V8</a> in a single process and leveraging <a href="http://software.schmorp.de/pkg/libev.html">libev</a> to process events. Node.js handles backend processes the same way jQuery handles frontend events.</p>
<p>This is a pretty bold move, and it has to be appreciated. Node.js caught the attention of many prominent developers in an unprecedent rush, dominating topics of one JavaScript conference after the other. And JavaScript is huge: With the usage of Javascript in Frontend, Database (MongoDB, CouchDB) and now backend, JavaScript evolves to become the very DNA of the web.</p>
<p>Want more proof? Some people took the effort and wrote an Emscripten, an engine to compile LLVM bytecode to JavaScript. With <a href="http://code.google.com/p/emscripten/">Emscripten</a> you can run C++ directly in the browser.</p>
<p>Now that JavaScript has become some sort of religion, it is considered to be the savior of the web, establishing it as THE platform of platforms and reviving openness and compatibility for everyone. Nevertheless, native solutions still outplay their web-based counterparts in terms of performance, functionality and user experience, so let&#8217;s watch close if and when this is going to change.</p>
<h4 style="font-size: 1em;">Raise of the Javascript II: Some Coffee to your JavaScript?</h4>
<p>Since so much JavaScript  is part of the development process, a lot of effort has been taken to abstract JavaScript in more established languages. <a href="http://cappuccino.org/">Cappuchino</a> tries to bridge it for Objective-C Coders. <a href="http://code.google.com/intl/de-DE/webtoolkit/">Google Web Toolkit</a> makes the Java-Guys happy. But why abstract, when you can enhance? <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a> is a wonderful language built on top of javascript that enhances the language to overcome it’s cumbersomeness without getting too far away from the bare metal. And since Rails 3.1 seems to fully integrate CoffeeScript into their toolchain, we have to expect more from it.</p>
<h4>User Experience: Shared, Synced and Remote</h4>
<p>All that shared data, repositories, and cloud devices, create the strong need for powerful syncing. Services like <a href="http://www.dropbox.com">Dropbox</a> do that job beautifully. While the joy of syncing anything to everything was primarily felt by geeks, this will be big in the mass market very soon. Smartphones, tablets, and embedded devices will force the user to sync the hell of their devices. With increasing bandwith and usage of cloud services, the average user will eventually have little need for local storage at all. In a certain sense, Dropbox could be considered as a solution for just a temporary problem.</p>
<h4>Hardware: TV</h4>
<p>Apple did a half-hearted job with the release of the next generation Apple TV. They might have been too busy with their wunderkinds, but obviously it&#8217;s just a question of time when they (or someone else?) do the job right.</p>
<p>Currently, Apple engages a huge number of talented developers creating successful iOS applications, games and tools through the hugely successful App Store. They are sitting on a pile of existing software that can quickly be ported to new devices running the same successful platform, giving Apple a massive headstart.</p>
<p>It&#8217;s also quite a convenience that most TV users already have a smartphone or/and an iPad. At last, we should kiss the good old tv remote goodbye. The remote interaction of TV screen and input device will be an interesting terrain to watch. There is a huge opportunity to revolutionize the TV experience very soon, because concepts like teletext or chunky remote controls don&#8217;t belong into this century. And while we&#8217;re at it, we might also get rid of our collection of consoles including everthing that comes with it (CDs, cable tangles, etc). There&#8217;s a reason Microsoft doesn&#8217;t give much about a new physical disk drive for the Xbox anymore after failing with the HD-DVD.</p>
<h4>Frameworks: Not without my Tools</h4>
<p>While in the last years software frameworks dominated the software scene , tools get more and more important: <a href="http://www.sencha.com/products/animator/">Sencha Animator</a>, <a href="http://developer.apple.com/iad/iadproducer/">Apple iAd Producer</a>, <a href="http://radiapp.com/">Radi</a> and even Flash being able to produce high quality HTML5/CSS3/Javascript Output. That shows us that people don’t care about the platform. They care about the tools that embrace creativity. And developers care about an easy workflow &#8211; and let&#8217;s be honest: Writing good code is hard! Most people just want things to work. The mac store could also play a significant role for the new generation of simple productivity tools.</p>
]]></content:encoded>
			<wfw:commentRss>http://9elements.com/io/?feed=rss2&amp;p=498</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If it moves they will watch it</title>
		<link>http://9elements.com/io/?p=492</link>
		<comments>http://9elements.com/io/?p=492#comments</comments>
		<pubDate>Sat, 25 Sep 2010 12:39:27 +0000</pubDate>
		<dc:creator>Sebastian Deutsch</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://9elements.com/io/?p=492</guid>
		<description><![CDATA[
We just held our talk &#8220;if it moves they will watch it&#8221; on jsconf.eu &#8211; I hope everyone enjoyed it so far. For those how are interested in the demos here are the links:

Canvas vs. SVG vs. matrix3d
CSS3 Timing functions

You can find the source code for these demos at github. Our real world examples for [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-494" title="jsconf" src="http://9elements.com/io/wp-content/uploads/2010/09/jsconf.jpg" alt="jsconf" width="547" height="189" /></p>
<p>We just held our talk <a href="http://www.scribd.com/doc/38122875/If-It-Moves-They-Will-Watch-It">&#8220;if it moves they will watch it&#8221;</a> on <a href="http://jsconf.eu/2010/">jsconf.eu</a> &#8211; I hope everyone enjoyed it so far. For those how are interested in the demos here are the links:</p>
<ul>
<li><a href="http://9elements.com/html5demos/ifitmovestheywillwatchit/jsconf-demos/canvas-vs-svg-vs-matrix3d">Canvas vs. SVG vs. matrix3d</a></li>
<li><a href="http://9elements.com/html5demos/ifitmovestheywillwatchit/jsconf-demos/css-transitions/">CSS3 Timing functions</a></li>
</ul>
<p>You can find the source code for these demos at <a href="http://github.com/9elements/jsconf.eu-2010">github</a>. Our real world examples for doing animations can be found here:</p>
<ul>
<li><a href="http://9elements.com/io/projects/html5/canvas/">100 Tweets (Canvas)</a></li>
<li><a href="http://networkmap.projects.9elements.de/8080ba/">Networkmap (Canvas)</a></li>
<li><a href="http://hackfwd.com/dilution">Dilution Calculator (SVG)</a></li>
<li><a href="http://9elements.com/html5demos/html5game/">HTML5 Game / Firefox only (Canvas)</a></li>
</ul>
<p>If you have any question feel free to comment or write us an email.</p>
]]></content:encoded>
			<wfw:commentRss>http://9elements.com/io/?feed=rss2&amp;p=492</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WebMontag Ruhr Review</title>
		<link>http://9elements.com/io/?p=477</link>
		<comments>http://9elements.com/io/?p=477#comments</comments>
		<pubDate>Wed, 02 Jun 2010 18:13:54 +0000</pubDate>
		<dc:creator>Sebastian Deutsch</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://9elements.com/io/?p=477</guid>
		<description><![CDATA[
On May 31st the WebMontag Ruhr took place at Witten University. It was quite packed and there were plenty of talks &#8211; most of them focused on internet marketing and social media.
My personal highlight was the fictitious character UWe Haar and the startup Buddy Beer (could anyone provide me a link on that &#8211; or is it [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-478" title="reformat-blog" src="http://9elements.com/io/wp-content/uploads/2010/06/reformat-blog.jpg" alt="reformat-blog" width="550" height="166" /></p>
<p>On May 31st the <a href="http://webmontag.de/location/ruhrgebiet/index">WebMontag Ruhr</a> took place at Witten University. It was quite packed and there were plenty of talks &#8211; most of them focused on internet marketing and social media.</p>
<p><span id="more-477"></span>My personal highlight was the fictitious character <a href="http://www.facebook.com/UWe.Haar">UWe Haar</a> and the startup Buddy Beer (could anyone provide me a link on that &#8211; or is it stealth?). I had a html5/css3 talk about responsive web design as mentioned by <a href="http://www.alistapart.com/articles/responsive-web-design/">A-list-apart</a> &#8211; if you&#8217;re interested in the slides (German) you can get them from <a href="http://www.scribd.com/doc/32287472/Responsive-Web-Design-mit-HTML-5-und-CSS-3">scribd</a>.</p>
<p>Big thanks to the organizers <a href="http://www.steuerungb.de/">Steuerung-B</a> and <a href="http://www.unicum.de/">Unicum</a> - Hope I&#8217;ll see everyone on the next Webmontag!</p>
]]></content:encoded>
			<wfw:commentRss>http://9elements.com/io/?feed=rss2&amp;p=477</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.787 seconds -->
<!-- Cached page served by WP-Cache -->

