<?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>Marand Lab</title>
	<atom:link href="http://lab.marand.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lab.marand.com</link>
	<description>We are a team of developers &#38; designers, part of Marand, a software development company based in the beautiful city of Ljubljana, Slovenia.</description>
	<lastBuildDate>Wed, 28 Dec 2011 13:35:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tresalica an app from the Silly Department</title>
		<link>http://lab.marand.com/2010/07/tresalica-an-app-from-the-silly-department/</link>
		<comments>http://lab.marand.com/2010/07/tresalica-an-app-from-the-silly-department/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 13:05:22 +0000</pubDate>
		<dc:creator>Tomaž</dc:creator>
				<category><![CDATA[Lab projects]]></category>

		<guid isPermaLink="false">http://lab.marand.com/?p=92</guid>
		<description><![CDATA[About a month ago Damir started discovering the beautiful world of Android application development. As a learning experiment he developed an application that uses the accelerometer to count shakes, calculate the distance and speed of the users activity with the phone.
What is Tresalica?
Because we love silly apps (try out 1kdaysontwitter.com or Here Be Twitterers), we [...]]]></description>
			<content:encoded><![CDATA[<p>About a month ago Damir started discovering the beautiful world of Android application development. As a learning experiment he developed an application that uses the <a class="zem_slink" title="Accelerometer" rel="wikipedia" href="http://en.wikipedia.org/wiki/Accelerometer">accelerometer</a> to count shakes, calculate the distance and speed of the users activity with the phone.</p>
<h3>What is Tresalica?</h3>
<p>Because we love silly apps (try out <a href="http://1kdaysontwitter.com">1kdaysontwitter.com</a> or <a href="http://herebetwitterers.com">Here Be Twitterers</a>), we decided to pack his experiment in a smoothly designed, atomic shaker for Android, called <a href="http://www.tresalica.com/">Tresalica</a>.</p>
<p>The application is quite simple, with a hopefully intuitive and simple user interface. All the user has to do is tap the Shake it! button, select the theme to shake and start shaking. Advanced users might use their own content by adding custom shakable  motives.</p>
<p>To add a little twist to the shaking story, we decided to enable the application with goals that will change over time. Each time you use Tresalica you can submit your score, which gets added to a global shaking score and contributes to reach the goal. Our first goal is quite ambitious, but fun nevertheless. We want you to help us shake it to the moon.</p>
<h3>Why do you even bother with Silly Apps?</h3>
<p>We believe in learning and discovering by doing. That is why, from time to time, we endeavor on unexplored paths and try to create something silly, just to learn a trick or two. While at it we tried to make the most of it as part of the <a title="Learning" rel="wikipedia" href="http://en.wikipedia.org/wiki/Learning">learning process</a> of packaging <a title="Computer software" rel="wikipedia" href="http://en.wikipedia.org/wiki/Computer_software">software</a> products, with  all the small things required on the side &#8211; a <a href="http://www.tresalica.com/">website</a>,  <a href="http://www.twitter.com/tresalica">twitter</a> account and so on.</p>
<h3>Get it now!</h3>
<p>You can get the app straight from here by scanning the <a title="QR Code" rel="wikipedia" href="http://en.wikipedia.org/wiki/QR_Code">QR code</a> below:</p>
<p style="text-align: center; display: inline-block;">
<p>Depending on your feedback we will keep working on Tresalica, by adding new fun features, competitive goals and scores.</p>
<p><strong>So what would you like to see in the next release?</strong></p>
<p>p.s.: we will be sharing some more technical insights in the near future</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/zemified_a.png?x-id=2ac716a4-6974-4b86-8a7e-97e5844bf1f8" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://lab.marand.com/2010/07/tresalica-an-app-from-the-silly-department/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Futurama Fridays</title>
		<link>http://lab.marand.com/2010/07/futurama-fridays/</link>
		<comments>http://lab.marand.com/2010/07/futurama-fridays/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 10:46:40 +0000</pubDate>
		<dc:creator>Tomaž</dc:creator>
				<category><![CDATA[LabLife]]></category>

		<guid isPermaLink="false">http://lab.marand.com/?p=87</guid>
		<description><![CDATA[



Image via Wikipedia



We just love Futurama. Since the new season episodes are airing on Thursday, we decided that we are going to dedicate our Friday lunch breaks to collective watching of new Futurama episodes and use them as an intro to end of the week meetings, where we will review the work done during the [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://en.wikipedia.org/wiki/File:Futurama_-_The_Future.jpg"><img title="Fry's first glimpse of New New York City" src="http://upload.wikimedia.org/wikipedia/en/thumb/4/42/Futurama_-_The_Future.jpg/300px-Futurama_-_The_Future.jpg" alt="Fry's first glimpse of New New York City" width="300" height="230" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://en.wikipedia.org/wiki/File:Futurama_-_The_Future.jpg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>We just love Futurama. Since the new season episodes are airing on Thursday, we decided that we are going to dedicate our Friday lunch breaks to collective watching of new <a class="zem_slink" title="List of Futurama episodes" rel="wikipedia" href="http://en.wikipedia.org/wiki/List_of_Futurama_episodes">Futurama episodes</a> and use them as an intro to end of the week meetings, where we will review the work done during the week.</p>
<p>Do you like Futurama as well? Launch your own Futurama Fridays ;)</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/zemified_a.png?x-id=13ca070b-0bea-4839-9cf7-4d73aed923c4" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://lab.marand.com/2010/07/futurama-fridays/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing data on the web</title>
		<link>http://lab.marand.com/2010/06/visualizing-data-on-web/</link>
		<comments>http://lab.marand.com/2010/06/visualizing-data-on-web/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 10:45:39 +0000</pubDate>
		<dc:creator>Tomaž</dc:creator>
				<category><![CDATA[Bleeding Edge]]></category>

		<guid isPermaLink="false">http://lab.marand.com/?p=78</guid>
		<description><![CDATA[Visual representation of data is becoming extremely popular as we deal with more and more information. Given that web browser is the most dominant application on users’ computers, the set of people who use web development tools for programming graphics, animation and interactions is growing quickly.
Visualizing data on web
View more presentations from Matjaž Horvat.

Plug-ins
The old [...]]]></description>
			<content:encoded><![CDATA[<p>Visual representation of data is becoming extremely popular as we deal with more and more information. Given that web browser is the most dominant application on users’ computers, the set of people who use web development tools for programming graphics, animation and interactions is growing quickly.</p>
<div id="__ss_4373447" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="Visualizing data on web" href="http://www.slideshare.net/mathjazz/visualizing-data-on-web">Visualizing data on web</a></strong><object id="__sse4373447" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=visualizingdataonweb-100601031705-phpapp01&amp;stripped_title=visualizing-data-on-web" /><param name="name" value="__sse4373447" /><param name="allowfullscreen" value="true" /><embed id="__sse4373447" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=visualizingdataonweb-100601031705-phpapp01&amp;stripped_title=visualizing-data-on-web" name="__sse4373447" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/mathjazz">Matjaž Horvat</a>.</div>
</div>
<h3><strong>Plug-ins</strong></h3>
<p>The old school approach of visualizing data on web is by using browser <a class="zem_slink freebase/en/plugin" title="Plug-in (computing)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Plug-in_%28computing%29">plug-ins</a>, which add specific capabilities to a larger software application, in our case browser. Let&#8217;s take a quick look at some of them.</p>
<p>Java <a class="zem_slink freebase/en/java_applet" title="Java applet" rel="wikipedia" href="http://en.wikipedia.org/wiki/Java_applet">applets</a> were introduced in the first version of the Java language back in mid-1990s. They are slow, because the <a class="zem_slink freebase/en/java_virtual_machine" title="Java Virtual Machine" rel="wikipedia" href="http://en.wikipedia.org/wiki/Java_Virtual_Machine">JVM</a> will need to restart each time the browser starts. When Microsoft shipped its own modified JVM with Internet Explorer, applets that relied on these changes worked only within Microsoft&#8217;s Java system, causing compatibility related headaches. And oh &#8211; 99% of them look ridiculously ugly.</p>
<p>Much more common pick today is Adobe <a class="zem_slink freebase/en/adobe_flash" title="Adobe Flash" rel="wikipedia" href="http://en.wikipedia.org/wiki/Adobe_Flash">Flash</a>, which allows developers to create fascinating visualizations. But on the other hand, it is proprietary software, uses a lot of system resources and is responsible for a huge stake of browser crashes. <a title="Silverlight" rel="wikipedia" href="http://en.wikipedia.org/wiki/Microsoft_Silverlight">Silverlight</a> is Microsoft&#8217;s response to Flash, with similar advantages and disadvantages, but with much smaller usage share.</p>
<h3><strong>Native support</strong></h3>
<p>All these plug-ins are binary components with closed source. That means they cannot be hacked and used in a new innovative fashion, which is one of the principles of ensuring that the Internet is developed in a way that benefits everyone. So let&#8217;s take a look at what standardized technologies can offer us when visualizing data on web.</p>
<p>There are two standards: <a class="zem_slink freebase/en/scalable_vector_graphics" title="Scalable Vector Graphics" rel="wikipedia" href="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics">SVG</a> specifications for describing two-dimensional vector graphics and the <a class="zem_slink freebase/guid/9202a8c04000641f80000000008a920d" title="Canvas element" rel="wikipedia" href="http://en.wikipedia.org/wiki/Canvas_element">canvas</a> element for rendering of 2D shapes and bitmap images. All major modern web browsers support and render SVG, except Internet Explorer. The good news is however, Internet Explorer 9 will support SVG. The canvas element is part of HTML5 and is only supported by the latest versions of Firefox, Chrome, Safari, and Opera. It is not clear yet if Internet Explorer 9 will support it.</p>
<p>In SVG, each shape is remembered as objects in DOM, so if attributes of the object are changed, the SVG can automatically re-render the scene. But in canvas, if position was to be changed, the entire scene would need to be redrawn. SVG also enables events to be associated with objects. In canvas we must manually match the coordinates of the mouse click with the coordinates of the drawn rectangle to determine whether it was clicked.</p>
<h3><strong>SVG</strong></h3>
<p>First let&#8217;s take a look at three JavaScript libraries that simplify the use of SVG graphics: jQuery SVG, SVG Web and Raphaël.</p>
<p>As the name says, <a href="http://keith-wood.name/svg.html">jQuery SVG</a> is a jQuery plug-in that lets you manipulate SVG from JavaScript. Since SVG is XML-based, it can easily use jQuery syntax to work with SVG. It also offers graphing extension to make it easier to create SVG graphs. Due to lack of SVG implementation, jQuery SVG doesn&#8217;t work with Internet Explorer, which makes this library pretty useless. Oh, and if you&#8217;re looking for some pretty examples, don&#8217;t even go to their home page. They are fugly.</p>
<p><a href="http://code.google.com/p/svgweb/">SVG Web</a> is being developed by Google. It&#8217;s a JavaScript library which provides SVG support on many browsers, including Internet Explorer, so it should target ~95% of the existing installed web base (at least that&#8217;s what the home page says). Flash is used for the actual rendering, so it&#8217;s very easy to use and incorporate into an existing web site.</p>
<p>The last and the most promising of the three libraries is <a href="http://raphaeljs.com/">Raphaël</a>. It uses SVG and VML as a base for creating graphics. VML is a standards-based XML language used to produce vector graphics, but development of the format ceased in 1998. However Microsoft continues to document VML. It&#8217;s supported in all Internet Explorer versions since 5.0, which means Raphaël can target huge user base. The development momentum of the library seems to be going strong and another big plus is API documentation with beautiful <a href="http://raphaeljs.com/#demo">examples and demos</a>. There&#8217;s also charting plug-in available, called gRaphaël, which looks pretty slick, but lacks API documentation.</p>
<h3><strong>Canvas</strong></h3>
<p>After covering SVG, let&#8217;s take a look at canvas libraries. First of the two is <a href="http://code.google.com/p/flot/">Flot</a>, a plotting library for jQuery, which focuses on &#8220;simple usage, attractive looks and interactive features&#8221;. It&#8217;s supported in all browsers that support canvas element and the <a href="http://excanvas.sourceforge.net/">excanvas</a> JavaScript emulation helper is used for Internet Explorer 6.0+. It&#8217;s not as sweet as gRaphaël, but it&#8217;s easy to use, supports interaction and&#8230; oh, why don&#8217;t you take a look at some <a href="http://people.iola.dk/olau/flot/examples/">examples</a>.</p>
<p>Processing.js is a Processing programing language implementation, written in JavaScript by John Resig. Processing is written in Java and used by people who want to program images, animation, and interactions. Processing.js draws shapes and manipulates images on the HTML5 Canvas element, but sadly it doesn&#8217;t work with excanvas emulator mentioned above. Since it won&#8217;t work in Internet Explorer at all, its use is pretty much limited to show off cutting edge technologies. Of course, it will also come in handy in environments like <a href="http://en.wikipedia.org/wiki/WebOS">WebOS</a>.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/zemified_a.png?x-id=9cc6ee76-d0f7-4d23-a6bf-b5840b7d646b" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://lab.marand.com/2010/06/visualizing-data-on-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello Mobile!</title>
		<link>http://lab.marand.com/2010/05/hello-mobile/</link>
		<comments>http://lab.marand.com/2010/05/hello-mobile/#comments</comments>
		<pubDate>Mon, 31 May 2010 13:59:40 +0000</pubDate>
		<dc:creator>Tomaž</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://lab.marand.com/?p=73</guid>
		<description><![CDATA[Some friends from a digital agency in Ljubljana kindly asked if we could prepare a 40 minutes session about mobile and mobile marketing. This is what we came up with:

We are always willing to help introduce other to fresh technology and applications since we believe it can make a difference in producing better campaigns that [...]]]></description>
			<content:encoded><![CDATA[<p>Some friends from a <a class="zem_slink" title="Digital agency" rel="wikipedia" href="http://en.wikipedia.org/wiki/Digital_agency">digital agency</a> in Ljubljana kindly asked if we could prepare a 40 minutes session about mobile and <a class="zem_slink" title="Mobile marketing" rel="wikipedia" href="http://en.wikipedia.org/wiki/Mobile_marketing">mobile marketing</a>. This is what we came up with:</p>
<div id="__ss_4330927" style="width: 425px;"><object id="__sse4330927" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ts-quick-guide-to-mobile-100527113835-phpapp02&amp;stripped_title=hello-mobile" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ts-quick-guide-to-mobile-100527113835-phpapp02&amp;stripped_title=hello-mobile" /><param name="name" value="__sse4330927" /><param name="allowfullscreen" value="true" /><embed id="__sse4330927" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ts-quick-guide-to-mobile-100527113835-phpapp02&amp;stripped_title=hello-mobile" name="__sse4330927" allowscriptaccess="always" allowfullscreen="true" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ts-quick-guide-to-mobile-100527113835-phpapp02&amp;stripped_title=hello-mobile"></embed></object></div>
<p>We are always willing to help introduce other to fresh technology and applications since we believe it can make a difference in producing better campaigns that appeal to users.</p>
<p>btw: the deck was selected among <a href="http://www.slideshare.net">Slideshare.net</a>&#8217;s featured presentations.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/zemified_a.png?x-id=bb68ad99-681d-4646-b347-b7a874fb17e8" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://lab.marand.com/2010/05/hello-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Socket bind exception on Red5 restart</title>
		<link>http://lab.marand.com/2010/05/socket-bind-exception-on-red5-restart/</link>
		<comments>http://lab.marand.com/2010/05/socket-bind-exception-on-red5-restart/#comments</comments>
		<pubDate>Fri, 28 May 2010 13:41:32 +0000</pubDate>
		<dc:creator>jangnezda</dc:creator>
				<category><![CDATA[Lab projects]]></category>

		<guid isPermaLink="false">http://lab.marand.com/?p=66</guid>
		<description><![CDATA[This one is a gem. We&#8217;re using Red5 as flash server for several of our projects and one annoying problem that we encountered were thrown exceptions on Red5 restart. Specifically, Address  already in use exception which signals that a socket is still being used. The culprit is socket bound to 1935 port which is [...]]]></description>
			<content:encoded><![CDATA[<p>This one is a gem. We&#8217;re using Red5 as flash server for several of our projects and one annoying problem that we encountered were thrown exceptions on Red5 restart. Specifically, <strong>Address  already in use</strong> exception which signals that a socket is still being used. The culprit is socket bound to 1935 port which is used for rtmp traffic between flash clients and Red5. That socket remained in TIME_WAIT state even after Red5 was shutdown.</p>
<p>Now, it is important to note that tcp connections should be closed properly in order to avoid this sort of problems, but this is not always possible (unexpected server shutdown, bug which makes server unresponsive, etc.). Brief discussion about proper tcp handling is <a href="http://hea-www.harvard.edu/~fine/Tech/addrinuse.html">here</a>. I know from experience that other servers (for example Tomcat) don&#8217;t have this problem with socket binding (at least not in the last ~5 years) and I was curious why Red5 developers haven&#8217;t solved this. The thing to do to avoid this is to set SO_REUSEADDR flag on the socket. This means that other processes can bind to this socket if it is in TIME_WAIT state. Fortunately, Red5 is open source, so I browsed a bit and found this in <em>RTMPMinaTransport</em> class :<br />
<code><br />
acceptor = new NioSocketAcceptor(ioThreads);<br />
acceptor.setHandler(ioHandler);<br />
acceptor.setBacklog(100);</p>
<p>log.info("TCP No Delay: {}", tcpNoDelay);<br />
log.info("Receive Buffer Size: {}", receiveBufferSize);<br />
log.info("Send Buffer Size: {}", sendBufferSize);</p>
<p>SocketSessionConfig sessionConf = (SocketSessionConfig) acceptor.getSessionConfig();<br />
<strong>sessionConf.setReuseAddress(true);</strong><br />
sessionConf.setTcpNoDelay(tcpNoDelay);<br />
sessionConf.setReceiveBufferSize(receiveBufferSize);<br />
sessionConf.setSendBufferSize(sendBufferSize);<br />
</code></p>
<p>Interesting enough, they do set this flag as I&#8217;ve shown with the bolded line. So I&#8217;ve tried debugging the code and after some time I&#8217;ve found out, that <em>SocketSessionConfig</em> is never read, never used. I will repeat this : SocketSessionConfig is never accessed. That part of the code could as well be removed. The solution is simple, flag must be set directly on NioSocketAcceptor and then the socket can be bound on restart without a problem:<br />
<code><br />
acceptor = new NioSocketAcceptor(ioThreads);<br />
acceptor.setHandler(ioHandler);<br />
acceptor.setBacklog(100);<br />
<strong>acceptor.setReuseAddress(true);</strong><br />
</code></p>
<p>I&#8217;ve added the bolded line and compiled the source. With new red5.jar, restarting works like a charm.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.marand.com/2010/05/socket-bind-exception-on-red5-restart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A word or two on HTML5 video</title>
		<link>http://lab.marand.com/2010/05/a-word-or-two-on-html5-video/</link>
		<comments>http://lab.marand.com/2010/05/a-word-or-two-on-html5-video/#comments</comments>
		<pubDate>Mon, 03 May 2010 15:20:05 +0000</pubDate>
		<dc:creator>Tomaž</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://lab.marand.com/?p=58</guid>
		<description><![CDATA[What is HTML5?
HTML5 is being developed as the next major revision of HTML (HyperText Markup Language), the core markup language of the World Wide Web. It aims to reduce the need for proprietary plug-in-based rich internet application (RIA) technologies such as Adobe Flash, Microsoft Silverlight, and Sun JavaFX.
Source: Wikipedia
As part of this initiative the HTML [...]]]></description>
			<content:encoded><![CDATA[<h3>What is HTML5?</h3>
<blockquote><p>HTML5 is being developed as the next major revision of HTML (HyperText Markup Language), the core markup language of the World Wide Web. It aims to reduce the need for proprietary plug-in-based rich internet application (RIA) technologies such as Adobe Flash, Microsoft Silverlight, and Sun JavaFX.</p>
<p>Source: <a href="http://en.wikipedia.org/wiki/HTML5">Wikipedia</a></p></blockquote>
<p>As part of this initiative the HTML video tag is being introduced as well in order to unify the way video is distributed on the web. Currently most online video is distributed via Adobe&#8217;s Flash platform, on the contrary of what Apple and <a href="http://www.apple.com/hotnews/thoughts-on-flash/">Steve Jobs would like you to believe</a>, but we will not go deeper into that debate.</p>
<p>The <a href="http://en.wikipedia.org/wiki/HTML5_video">HTML5 video tag</a> is already supported in several browsers, the latest versions of Firefox, Safari (on all iDevices), Chrome and Opera. It would be great if you had the chance to serve video to all those browsers with the same code, same codecs, but guess what &#8211; you can&#8217;t, these are standards after all :)</p>
<h3>Embedding media in HTML5</h3>
<p>Embedding media in HTML5 is fairly simple and straightforward. You just need to use the &lt;video&gt; tag along with the &lt;source&gt; tag to define the path to your media content.</p>
<p><code>&lt;video controls&gt;<br />
&lt;source src="foo.ogg"&gt;<br />
The text written here will be displayed if your browser does not support the &lt;code&gt;video&lt;/code&gt; element.<br />
&lt;/video&gt;</code></p>
<p>So far everything looks great, but if I tell you that there is also an option to add many sources in order to assure playback in different browsers the thing starts to smell fishy right.<br />
<code><br />
&lt;video controls&gt;<br />
&lt;source src="foo.ogg" type="video/ogg"&gt;<br />
&lt;source src="foo.mp4"&gt;<br />
The text written here will be displayed if your browser does not support the &lt;code&gt;video&lt;/code&gt; element.<br />
&lt;/video&gt;<br />
</code></p>
<p>By adding another source, you can specify the fallback file for browsers that do not chew up videos contained in the ogg () container (usually encoded with the <a class="zem_slink" title="Theora" rel="wikipedia" href="http://en.wikipedia.org/wiki/Theora">Theora</a> codec).</p>
<p>For more info on how to include HTML5 video and 1001 detail you should <a href="https://developer.mozilla.org/En/Using_audio_and_video_in_Firefox">read Mozilla&#8217;s guide</a> (where I borrowed these examples).</p>
<h3>Fragmentation</h3>
<p>This is how HTML5 video is supported at the moment of writing (<a href="http://diveintohtml5.org/video.html#what-works">source</a>):</p>
<ul>
<li> Mozilla Firefox (3.5 and later) supports Theora video and Vorbis audio in an Ogg container.</li>
<li> Opera (10.5 and later) supports Theora video and Vorbis audio in an Ogg container.</li>
<li> Google Chrome (3.0 and later) supports Theora video and Vorbis audio in an Ogg container. Chrome also supports H.264 video (all profiles) and AAC audio (all profiles) in an MP4 container.</li>
<li> Safari on Macs and Windows PCs (3.0 and later) will support anything that QuickTime supports “out of the box.” This is a long list, but <strong>it does not include Theora video, Vorbis audio, or the Ogg container</strong>. However, QuickTime does support H.264 video (main profile) and AAC audio in an MP4 container.</li>
<li> Mobile phones like Apple’s iPhone and Google Android phones support H.264 video (baseline profile) and AAC audio (“low complexity” profile) in an MP4 container.</li>
<li> Adobe Flash (9.0.60.184 and later) supports H.264 video (all profiles) and AAC audio (all profiles) in an MP4 container.</li>
<li> Internet Explorer has no HTML5 video support at all (surprised?), but virtually all Internet Explorer users have the Adobe <a class="zem_slink" title="Adobe Flash" rel="wikipedia" href="http://en.wikipedia.org/wiki/Adobe_Flash">Flash plugin</a>.</li>
</ul>
<p>Just look at the table if you didn&#8217;t get it:</p>
<table style="margin-bottom:10px;" border="1">
<thead style="background:#EEEEEE;">
<tr>
<th style="padding:4px;">Codecs/container</th>
<th style="padding:4px;">Firefox</th>
<th style="padding:4px;">Opera</th>
<th style="padding:4px;">Chrome</th>
<th style="padding:4px;">Safari</th>
<th style="padding:4px;">iPhone</th>
<th style="padding:4px;">Android</th>
</tr>
</thead>
<tbody>
<tr>
<th style="padding:4px;text-align:center;">Theora+Vorbis+Ogg</th>
<td style="padding:4px;text-align:center;">✓</td>
<td style="padding:4px;text-align:center;">✓</td>
<td style="padding:4px;text-align:center;">✓</td>
<td style="padding:4px;text-align:center;">-</td>
<td style="padding:4px;text-align:center;">-</td>
<td style="padding:4px;text-align:center;">-</td>
</tr>
<tr>
<th style="padding:4px;">H.264+AAC+MP4</th>
<td style="padding:4px;text-align:center;">-</td>
<td style="padding:4px;text-align:center;">-</td>
<td style="padding:4px;text-align:center;">✓</td>
<td style="padding:4px;text-align:center;">✓</td>
<td style="padding:4px;text-align:center;">✓</td>
<td style="padding:4px;text-align:center;">✓</td>
</tr>
</tbody>
</table>
<p>To put it simple &#8211; if you want your video to play in every browser (on every device) you need to encode it in two different formats (Theora+Vorbis in Ogg for Firefox, Opera and Chrome &amp; H.264+AAC in MP4 for Safari, Mobile Webkit on Android and Flash).</p>
<h3>Serving content</h3>
<p>All these videos can be hosted on common web servers, the same that you use to host your static files.</p>
<p>Are you feeling dizzy yet? We still have to work out live <a class="zem_slink" title="Streaming media" rel="wikipedia" href="http://en.wikipedia.org/wiki/Streaming_media">video streaming</a>, but we will do that in another post (coming soon).</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/zemified_a.png?x-id=cc65101b-1039-49aa-87de-f2fe90b8c069" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://lab.marand.com/2010/05/a-word-or-two-on-html5-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making webcam work in flash on Ubuntu</title>
		<link>http://lab.marand.com/2010/04/making-webcam-work-in-flash-on-ubuntu/</link>
		<comments>http://lab.marand.com/2010/04/making-webcam-work-in-flash-on-ubuntu/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 22:15:03 +0000</pubDate>
		<dc:creator>jangnezda</dc:creator>
				<category><![CDATA[Lab projects]]></category>

		<guid isPermaLink="false">http://lab.marand.com/?p=37</guid>
		<description><![CDATA[It&#8217;s no secret that flash implementation for linux is buggy, unstable and resource hog. This post is about one particular bug: webcam not working in flash. It took me better part of one saturday to make webcam work in flash. Workaround is actually pretty easy, but you have to know what to do. My environment [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s no secret that flash implementation for linux is buggy, unstable and resource hog. This post is about one particular bug: webcam not working in flash. It took me better part of one saturday to make webcam work in flash. Workaround is actually pretty easy, but you have to know what to do. My environment is: Thinkpad T61, Xubuntu 9.10 (Karmic Koala), flash 10.0.45.2, firefox 3.5.9 and chrome 5.0.342.9.</p>
<p>Ideally, these would be the steps to make webcam work in flash :</p>
<ul>
<li>Buy a webcam</li>
<li>Plug it into your usb port</li>
</ul>
<p>However, real world always slaps you in your face. First, make sure that your webcam works outside flash :</p>
<ul>
<li>Buy a webcam that is listed as supported (green icon) <a href="http://linux-uvc.berlios.de/">here</a>, I bought cheapest available webcam in local store &#8211; Logitech C200</li>
<li>Plug it into your usb port and use  ﻿<a href="http://guvcview.berlios.de/">guvcview</a> to test it (it should work ok, if not, I can&#8217;t help you)</li>
</ul>
<p>Ok, now that we know that webcam is recognized and usable, let&#8217;s try it in flash. Oops, when I tried loading our old development flash widget it freezed my firefox tab :</p>
<p><a href="http://lab.marand.com/wp-content/uploads/flash_freeze_crop1.png"><img class="alignnone size-full wp-image-40" title="flash_freeze_crop" src="http://lab.marand.com/wp-content/uploads/flash_freeze_crop1.png" alt="" width="498" height="574" /></a></p>
<p>I couldn&#8217;t click on anything, because that settings pop-up window wasn&#8217;t responding. So, what happened ? Flash widget wanted access to my webcam and microphone and I had to confirm it. But I couldn&#8217;t because whole tab was unresponsive. Or was it ? Lo and behold, one key worked. One key out of one hundred and some keys on my keyboard worked.  That key is TAB with which I could cycle through pop-up window&#8217;s components (note the yellow rectangle) :</p>
<p><a href="http://lab.marand.com/wp-content/uploads/flash_freeze2_crop.png"><img class="alignnone size-full wp-image-41" title="flash_freeze2_crop" src="http://lab.marand.com/wp-content/uploads/flash_freeze2_crop.png" alt="" width="474" height="596" /></a></p>
<p>Cool, but the problem was, that I couldn&#8217;t toggle the selection, because only TAB worked. Enter, space and other keys didn&#8217;t work ! So I thought that replacing flash with version 9 would help or even a downgrade of firefox to version 3. Well, I&#8217;ve been down that road before and I didn&#8217;t like it. Downgrading only introduces new problems. Another option would be to change flash security settings via some other mechanism. After some googling it turns out that it actually is possible to change settings via Adobe&#8217;s <a href="http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html">Settings manager</a>. I had to add our development server address as trusted :</p>
<p><a href="http://lab.marand.com/wp-content/uploads/flash_settings_crop.png"><img class="alignnone size-full wp-image-46" title="flash_settings_crop" src="http://lab.marand.com/wp-content/uploads/flash_settings_crop.png" alt="" width="510" height="372" /></a></p>
<p>and :</p>
<p><a href="http://lab.marand.com/wp-content/uploads/flash_settings2_crop.png"><img class="alignnone size-full wp-image-47" title="flash_settings2_crop" src="http://lab.marand.com/wp-content/uploads/flash_settings2_crop.png" alt="" width="508" height="391" /></a></p>
<p>There are also Microphone and Camera settings in Adobe&#8217;s Settings Manager, but they are as unresponsive as that pop-up. Which is a bummer if you have more that one camera and/or microphone. But it&#8217;s a limitation that I can live with. Now reload that flash widget and it should work, because that security pop-up never shows up. Right ? Wrong, flash widget works, but there&#8217;s no camera stream. It is as if there was no camera plugged into usb port, flash simply doesn&#8217;t know it&#8217;s there ! At this point I was ready to throw my laptop over my balcony 20 meters down to the pavement. After I calmed down I googled some more and found that v4l (video for linux, used for capturing stream from video devices) comes in two flavors, version one and version two. There are some compatibility issues, so even though v4l version 2 is recommended, it doesn&#8217;t always work. It certainly doesn&#8217;t with flash widgets. Luckily, it&#8217;s possible to force some sort of compatibility layer unto every application that tries to use v4l with following command :</p>
<pre>LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so firefox &amp;</pre>
<p><br/><br />
Finally, webcam stream showed up in flash widget :</p>
<p><a href="http://lab.marand.com/wp-content/uploads/flash_webcam_crop.png"><img class="alignnone size-full wp-image-50" title="flash_webcam_crop" src="http://lab.marand.com/wp-content/uploads/flash_webcam_crop.png" alt="" width="564" height="427" /></a></p>
<p>(I used paper snowman to cover up my tired face, no need to show it on the &#8220;<a href="http://en.wikipedia.org/wiki/Internets">internets</a>&#8220;, there are better pics of me out there)</p>
<p>A note about microphones:<br />
It turns out that there&#8217;s a way to set one particular microphone as preferred sound capturing device by using alsamixer (in terminal):</p>
<p><a href="http://lab.marand.com/wp-content/uploads/alsa_crop.png"><img class="alignnone size-full wp-image-51" title="alsa_crop" src="http://lab.marand.com/wp-content/uploads/alsa_crop.png" alt="" width="488" height="427" /></a></p>
<p>After it loads up press F4 to switch to Capture  settings where you can set Input Source (I have multiple options &#8211; internal, docking and mix). However, this still leaves us the problem with camera choice (if there&#8217;s more than one available). I don&#8217;t know how to solve this problem but, frankly, I didn&#8217;t put to much effort into it. I don&#8217;t care.</p>
<p>Well, that&#8217;s it. Hopefully this will help someone until all multimedia shit finally starts working normally on linux.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.marand.com/2010/04/making-webcam-work-in-flash-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paintballing</title>
		<link>http://lab.marand.com/2010/04/paintballing/</link>
		<comments>http://lab.marand.com/2010/04/paintballing/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 11:18:58 +0000</pubDate>
		<dc:creator>Tomaž</dc:creator>
				<category><![CDATA[LabLife]]></category>

		<guid isPermaLink="false">http://lab.marand.com/?p=22</guid>
		<description><![CDATA[Work at MarandLab is hard, very hard :)
In order to spend some time off-work and relax together we went spent  our Sunday shooting other geeks in a paintball team deathmatch.
]]></description>
			<content:encoded><![CDATA[<p>Work at MarandLab is hard, very hard :)</p>
<p><img class="aligncenter size-full wp-image-23" title="Unlucky Dejan" src="http://lab.marand.com/wp-content/uploads/marandlab-paintball-dejan.jpg" alt="Unlucky Dejan" width="520" height="294" />In order to spend some time off-work and relax together we went spent  our Sunday shooting other geeks in a <a href="http://en.wikipedia.org/wiki/Paintball">paintball</a> team <a href="http://en.wikipedia.org/wiki/Deathmatch_%28gaming%29">deathmatch</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.marand.com/2010/04/paintballing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Qootia&#8217;s Snowball Fight gets Awarded</title>
		<link>http://lab.marand.com/2010/04/qootias-snowball-fight-gets-awarded/</link>
		<comments>http://lab.marand.com/2010/04/qootias-snowball-fight-gets-awarded/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 13:20:03 +0000</pubDate>
		<dc:creator>Tomaž</dc:creator>
				<category><![CDATA[Awards]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Innovation]]></category>
		<category><![CDATA[Qootia]]></category>

		<guid isPermaLink="false">http://lab.marand.com/?p=13</guid>
		<description><![CDATA[We just got some wonderful news. Our fun Snowball Fight game, developed with Renderspace for SiOL got awarded at the Slovene Advertising Festival (SOF).
The campaign ran in two major Slovene cities, during the 2010 Olympic games, combining the reach and exposure of digital out of home with Qootia&#8217;s interactivity and intimate follow-up communication potential via [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sof.si/katalog_del/nagrajena_dela?eid=34457&amp;cy=2010"><img class="alignright" title="Qootia at SOF" src="http://www.qootia.com/wp-content/qootia-at-sof.png" alt="" width="500" height="202" /></a>We just got some wonderful news. Our fun <a href="http://www.qootia.com/2010/03/olympic-snowball-fight/">Snowball Fight game</a>, developed with <a href="http://www.renderspace.si/index.php?LNG1=gb">Renderspace</a> for SiOL <a href="http://sof.si/katalog_del/nagrajena_dela?eid=34457&amp;cy=2010">got awarded at the Slovene Advertising Festival (SOF)</a>.</p>
<p>The campaign ran in two major Slovene cities, during the 2010 Olympic games, combining the reach and exposure of digital out of home with Qootia&#8217;s interactivity and intimate follow-up communication potential via SMS.</p>
<p>Congrats to the combined Qootia and Renderspace team that made this possible:</p>
<p>Project Manager: <strong>Tomaž Štolfa</strong><br />
Creative Director: <strong>Matevž Klanjšek</strong><br />
Art Director: <strong>Žiga Aljaž</strong><br />
Game frontend implementation: <strong>Nil Gradišnik, Anže Cesar</strong><br />
Game backend implementation: <strong>Aleš Černe</strong></p>
<p>And finally thanks to the great people at SiOL for believing in such a forward looking campaign. We showed it makes sense from the business, marketing and most importantly user&#8217;s perspective.</p>
<p><a href="http://www.qootia.com">Find out more about Qootia</a></p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/zemified_a.png?x-id=67184360-b305-4236-a13a-00caf0786021" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://lab.marand.com/2010/04/qootias-snowball-fight-gets-awarded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://lab.marand.com/2010/04/hello-world/</link>
		<comments>http://lab.marand.com/2010/04/hello-world/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 10:56:22 +0000</pubDate>
		<dc:creator>Tomaž</dc:creator>
				<category><![CDATA[Lab projects]]></category>

		<guid isPermaLink="false">http://193.77.75.25/wp-lab/?p=1</guid>
		<description><![CDATA[Finally, we took the time to set up our own little corner of the web. You will finally be able to meet the team and find out a bit more about MarandLAB.
We are planning to keep you updated with what is going on behind the curtains of our think tank, what we are working on [...]]]></description>
			<content:encoded><![CDATA[<p>Finally, we took the time to set up our own little corner of the web. You will finally be able to <a href="http://lab.marand.com/the-team/">meet the team</a> and find out a bit more about MarandLAB.</p>
<p>We are planning to keep you updated with what is going on behind the curtains of our think tank, what we are working on or just playing with. You can also expect some posts about specific technologies and their applicative uses. Finally, we will be providing some free material, code snippets and ideas for you to consume and share.</p>
<p>See you around ;)</p>
<p>p.s.: <a href="http://twitter.com/marandlab">follow us on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.marand.com/2010/04/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

