<?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>Tokbox Blog</title>
	<atom:link href="http://www.tokbox.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tokbox.com/blog</link>
	<description></description>
	<lastBuildDate>Mon, 06 May 2013 22:01:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Mantis Checklist &#8211; How to get started with Mantis</title>
		<link>http://www.tokbox.com/blog/getting-started-with-mantis/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=getting-started-with-mantis</link>
		<comments>http://www.tokbox.com/blog/getting-started-with-mantis/#comments</comments>
		<pubDate>Fri, 26 Apr 2013 18:00:52 +0000</pubDate>
		<dc:creator>Melih O.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Mantis]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.tokbox.com/blog/?p=5803</guid>
		<description><![CDATA[We just launched Mantis yesterday, and saw a rush of activity as partners hopped onto the WebRTC cloud. The new things people will be able to build &#8211; a real-time, online dungeons and dragons web app, seminar applications, education applications, and more &#8211; are now going to see a whole new level of quality and [...]]]></description>
				<content:encoded><![CDATA[<p>We just launched <a title="Mantis: Next-generation Cloud Technology for WebRTC" href="http://www.tokbox.com/blog/mantis-next-generation-cloud-technology-for-webrtc/">Mantis</a> yesterday, and saw a rush of activity as partners hopped onto the WebRTC cloud. The new things people will be able to build &#8211; a real-time, online dungeons and dragons web app, seminar applications, education applications, and more &#8211; are now going to see a whole new level of quality and experience. We&#8217;re really excited to be the face-to-face video platform that helps make this happen. But to make it happen more quickly, we&#8217;ve decided to write a quick Mantis checklist. To make your Mantis application work, you will need to:</p>
<ul>
<li><span style="line-height: 15px;">Make sure that you are using the OpenTok on WebRTC JS library. You can find the library <a href="http://tokbox.com/opentok/webrtc/downloads/index.html">here</a>, and find the reference documentation <a href="http://tokbox.com/opentok/webrtc/docs/js/reference/index.html">here</a>. If you are using the v1.1 JS library, you will need to update your application to the v2.0 library.</span></li>
</ul>
<ul>
<li><span style="line-height: 15px;">Use a browser with WebRTC support &#8211; Chrome 26, FireFox Beta, or IE9 with the <a href="http://www.google.com/chromeframe?prefersystemlevel=true">Google Chrome Frame plugin</a>.</span></li>
</ul>
<ul>
<li><span style="line-height: 15px;">When you generate a session, make sure that the <em>p2p.preference</em> flag is set to <em>disabled</em>. If you&#8217;re generating your sessions from the Developer Dashboard, then you will need to <a href="http://tokbox.com/opentok/webrtc/downloads/index.html">download</a> one of our server-side SDKs and generate sessions yourself.</span></li>
</ul>
<ul>
<li>If you haven&#8217;t already asked to participate in the Mantis beta, please contact us at <a href="mailto:mantis@tokbox.com" target="_blank">mantis@tokbox.com</a>. Then make sure that you are using the correct API key for the Mantis beta. <span style="line-height: 15px;">If you are not sure which API key you sent us, then please email us, and we will let you know. Mantis requires that your API key be enabled to access the infrastructure.</span></li>
</ul>
<p>It really is that quick, and if you&#8217;re finding that you need some more help, then let us know. To make sure that your question gets answered as quickly as possible, please send an email to <a href="mailto:support@tokbox.com?subject=Mantis%20bug%20report">support@tokbox.com</a> using the following template:</p>
<p><span id="more-5803"></span></p>
<p>Email subject: [Mantis bug report] [Description of issue]<br />
Email body:</p>
<p>API key:<br />
Session ID:<br />
Browser version:<br />
Time of issue:</p>
<p>and then feel free to describe the issue further after filling out those fields.</p>
<p>We&#8217;re excited to see what our partners can build with Mantis, and we&#8217;re also ready and available whenever you need help. Happy coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tokbox.com/blog/getting-started-with-mantis/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mantis: Next-generation Cloud Technology for WebRTC</title>
		<link>http://www.tokbox.com/blog/mantis-next-generation-cloud-technology-for-webrtc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mantis-next-generation-cloud-technology-for-webrtc</link>
		<comments>http://www.tokbox.com/blog/mantis-next-generation-cloud-technology-for-webrtc/#comments</comments>
		<pubDate>Wed, 24 Apr 2013 23:09:50 +0000</pubDate>
		<dc:creator>Badri Rajasekar</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Industry News]]></category>
		<category><![CDATA[New Products & Features]]></category>
		<category><![CDATA[OpenTok on WebRTC]]></category>

		<guid isPermaLink="false">http://www.tokbox.com/blog/?p=5754</guid>
		<description><![CDATA[Today we’re proud to announce our latest WebRTC innovation: Mantis, a cloud-scaling infrastructure for our OpenTok on WebRTC platform. This is another big step forward for the TokBox team as we continue to pursue our goal of providing application developers with simple yet powerful APIs. APIs that not only leverage the latest standards to deliver [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/04/OpenTok_allplatforms-1.jpg"><img class="alignleft  wp-image-5775" alt="OpenTok_allplatforms (1)" src="http://www.tokbox.com/blog/wp-content/uploads/2013/04/OpenTok_allplatforms-1.jpg" width="382" height="86" /></a>Today we’re proud to announce our latest WebRTC innovation: Mantis, a cloud-scaling infrastructure for our <a href="http://tokbox.com/opentok/webrtc/docs/index.html">OpenTok on WebRTC </a>platform.</p>
<p>This is another big step forward for the TokBox team as we continue to pursue our goal of providing application developers with simple yet powerful APIs. APIs that not only leverage the latest standards to deliver the best possible experience, but that are backed by a scalable, smart cloud which supports interoperability across a variety of end-points.</p>
<p><span id="more-5754"></span></p>
<p>It was just over six months ago that we <a href="http://www.tokbox.com/blog/opentok-on-webrtc-offering-the-technology-of-tomorrow-today/">launched the OpenTok on WebRTC platform</a>. Since that time we’ve been hard at work, constantly pushing the boundaries of OpenTok on WebRTC’s functionality and performance. We launched the <a href="http://www.tokbox.com/blog/opentok-webrtc-for-ios-raises-the-bar/">first iOS SDK for WebRTC</a>, introduced cross-platform and device support, improved connectivity with cross-platform TURN support and more.</p>
<p>Mantis for OpenTok on WebRTC acts as a central switching station for all the WebRTC streams in the OpenTok cloud.  Mantis enables:</p>
<ul>
<li>Reduced upload bandwidth consumption, with the ability to scale out a single WebRTC stream to many endpoints</li>
<li>High-quality multi-party video calls</li>
<li>Cross-browser compatibility for Chrome, Firefox and Internet Explorer (through <a href="www.google.com/chromeframe">Google Chrome Frame</a>)</li>
<li>Cross-device compatibility for iOS native apps and Chrome on Android</li>
<li>SIP interop: the ability to dial in to a WebRTC video session from any cell or landline phone</li>
</ul>
<p>Why should you care about Mantis?</p>
<p><strong style="font-size: 20px;">1) It’s scalable…</strong></p>
<p>WebRTC inherently uses a <a href="http://dev.w3.org/2011/webrtc/editor/webrtc.html">peer-to-peer based</a> communication model.</p>
<p>In reality, while this is useful, several real-world applications naturally lend themselves to a multi-party use-case:  online classrooms, collaboration tools, the list goes on. The only way to enable a group video call using off-the-shelf WebRTC would be to create a mesh of PeerConnections between all participants in a call.</p>
<p>This mechanism doesn&#8217;t scale the number of connections well (it <a href="http://en.wikipedia.org/wiki/Complete_graph">scales quadratically</a> with the number of participants), and it is bandwidth inefficient. Every publisher needs to pipe out one video stream per call participant, leading to a linear increase in the amount of upload bandwidth required.</p>
<p>Mantis is a cloud-based media routing server, which enables us to get around this mesh problem by providing a centralized relay authority.</p>
<p>Every browser/device end-point thinks it&#8217;s connecting to a peer, but instead connects to one of our Mantis servers. Mantis can mediate multiple connections and then route streams from each publisher to any relevant end-point subscribing to that stream. Now OpenTok on WebRTC can scale subscribers effectively without constraints on publisher upload bandwidth, all while still leveraging standards-compliant WebRTC implementations under the covers.</p>
<p><img class="aligncenter size-full wp-image-5759" alt="Mantis Diagram" src="http://www.tokbox.com/blog/wp-content/uploads/2013/04/Mantis-Diagram.png" width="1164" height="656" /></p>
<p><strong style="font-size: 20px;">2) It’s smart…</strong></p>
<p>Scale is just one piece of the puzzle.</p>
<p>Mantis also provides a call-control/signaling mechanism that works in lockstep with media routing. This means OpenTok on WebRTC uses some pretty sophisticated algorithms to dynamically adapt to various network conditions that the client endpoints may experience.</p>
<p>Let&#8217;s say you were on your iPhone in a coffee shop with Wi-Fi, and then you step out into the street and switch to a much slower cellular connection. Mantis is aware of the change in network conditions and can adapt the bitrate of the encoded stream in order to adapt.</p>
<p><strong style="font-size: 20px;">3) It interoperates…</strong></p>
<p>Supporting different devices endpoints is one of the core tenets we strive towards at TokBox.  Mantis helps us work towards interoperability between WebRTC and other communications ecosystems.</p>
<p>One such use-case we are demonstrating with Mantis is interoperability with telephony endpoints. Leveraging <a href="http://www.jajah.com/">Telefónica Digital’s telecom</a> infrastructure, OpenTok on WebRTC can now connect PSTN or VOIP endpoints with WebRTC-enabled group video calls, using SIP to interoperate. This enables a user who is not video-enabled to dial-in to a multi-party OpenTok video session, and have the audio streams appropriately mixed and piped in each direction.</p>
<p>We believe Mantis lays the foundation for not only a powerful routing technology, but also for other functionality that can be layered on top of it: stream mixing, recording of media, signaling/event-notification APIs, and more.</p>
<p>We’re excited to show off our initial implementation of Mantis at the The Next Web &#8217;13 in Amsterdam.  If you are going to be around, swing by our demo booth to see bandwidth-efficient multi-party WebRTC video in action, as well as a demo of dialing in to a WebRTC video call from your everyday mobile phone.</p>
<p>Mantis is now in external beta.  If you are interested in taking it for a spin, please contact us at <a href="mailto:mantis@tokbox.com">mantis@tokbox.com</a>.</p>
<p><iframe src="http://player.vimeo.com/video/64613446?color=0099cc" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/64613446">Mantis: Cloud-scaling infrastructure for OpenTok on WebRTC</a> from <a href="http://vimeo.com/tokboxinc">TokBox</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tokbox.com/blog/mantis-next-generation-cloud-technology-for-webrtc/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Firepad Plugin: WebRTC video collaboration</title>
		<link>http://www.tokbox.com/blog/firepad-plugin-webrtc-video-collaboration/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=firepad-plugin-webrtc-video-collaboration</link>
		<comments>http://www.tokbox.com/blog/firepad-plugin-webrtc-video-collaboration/#comments</comments>
		<pubDate>Wed, 10 Apr 2013 09:31:31 +0000</pubDate>
		<dc:creator>Song Zheng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[OpenTok API]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.tokbox.com/blog/?p=5741</guid>
		<description><![CDATA[Yesterday Firebase launched Firepad, a Firebase-powered open source collaborative text editor. Here&#8217;s the product pitch, Michael Lehenbauer says it best: Firepad provides true collaborative editing, complete with intelligent OT-based merging and conflict resolution. It’s full-featured and has support for both rich text and code editing. Some of its features include cursor position synchronization, undo / redo, text [...]]]></description>
				<content:encoded><![CDATA[<p>Yesterday Firebase launched <a href="https://www.firebase.com/blog/2013-04-09-firepad-open-source-realtime-collaborative-editor.html">Firepad</a>, a Firebase-powered open source collaborative text editor. Here&#8217;s the product pitch, <a href="https://twitter.com/mikelehen">Michael Lehenbauer</a> says it best:</p>
<blockquote><p>Firepad provides true collaborative editing, complete with intelligent <a href="http://en.wikipedia.org/wiki/Operational_transformation" target="_blank">OT</a>-based merging and conflict resolution. It’s full-featured and has support for both rich text and code editing. Some of its features include cursor position synchronization, undo / redo, text highlighting, user attribution, presence detection, and version checkpointing.</p>
<p><span id="more-5741"></span></p></blockquote>
<p>For the first time, developers can now add text editing and document collaboration to their own apps without too much extra work.</p>
<p>This project is <a href="https://github.com/firebase/firepad">open-sourced</a>, which is exciting because it means that we can build plugins for it. Since collaboration usually involves communication, we decided to build a video chat plugin right into Firepad, so you can not only collaborate, but talk to your companions as well. Here&#8217;s how you can add <a href="http://tokbox.com">video chat</a> to your firepad project:</p>
<p>First, include all the necessary Firepad Javascript and CSS libraries</p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-10-at-2.23.01-AM.png"><img class="aligncenter size-full wp-image-5742" alt="firepadLibraries" src="http://www.tokbox.com/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-10-at-2.23.01-AM.png" width="648" height="278" /></a></p>
<p>Second, include TokBox library and Tokbox plugin for firepad:</p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-10-at-2.26.30-AM.png"><img class="aligncenter size-full wp-image-5744" alt="Screen Shot 2013-04-10 at 2.26.30 AM" src="http://www.tokbox.com/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-10-at-2.26.30-AM.png" width="736" height="83" /></a></p>
<p>Third, add a &#8216;div&#8217; element for video to appear:</p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-10-at-2.27.28-AM.png"><img class="aligncenter size-full wp-image-5745" alt="Screen Shot 2013-04-10 at 2.27.28 AM" src="http://www.tokbox.com/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-10-at-2.27.28-AM.png" width="434" height="108" /></a>Lastly, put videos in that div element!</p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-10-at-2.29.17-AM.png"><img class="aligncenter size-full wp-image-5746" alt="Screen Shot 2013-04-10 at 2.29.17 AM" src="http://www.tokbox.com/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-10-at-2.29.17-AM.png" width="439" height="69" /></a></p>
<p>And you will now be able to video chat with your collaborators while you work together. For a live demo, check out our <a href="http://songz.github.io/firepadvchat/">demo page</a>.</p>
<p>Happy Coding!</p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-10-at-10.42.37-AM.png"><img class="aligncenter size-full wp-image-5750" alt="Screen Shot 2013-04-10 at 10.42.37 AM" src="http://www.tokbox.com/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-10-at-10.42.37-AM.png" width="1162" height="1061" /></a></p>
<p>*Disclaimer*: WebRTC is currently only supported in Chrome, Firefox Nightly, Internet Explorer (with Chrome Frame Plugin), and Android Chrome Beta (with webrtc flag enabled)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tokbox.com/blog/firepad-plugin-webrtc-video-collaboration/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>New changes for WebRTC in Chrome 26</title>
		<link>http://www.tokbox.com/blog/new-changes-for-webrtc-in-chrome-26/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-changes-for-webrtc-in-chrome-26</link>
		<comments>http://www.tokbox.com/blog/new-changes-for-webrtc-in-chrome-26/#comments</comments>
		<pubDate>Fri, 29 Mar 2013 22:58:30 +0000</pubDate>
		<dc:creator>Melih O.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Industry News]]></category>
		<category><![CDATA[OpenTok on WebRTC]]></category>

		<guid isPermaLink="false">http://www.tokbox.com/blog/?p=5730</guid>
		<description><![CDATA[A new version of Chrome is out, and with it changes in the WebRTC stack. We dug through the commit logs for Chrome 26, and found the following list of WebRTC bug fixes, enhancements, and updates that we thought were relevant to the OpenTok community: Highlights A lot of audio bugs in WebRTC were fixed [...]]]></description>
				<content:encoded><![CDATA[<p>A new version of Chrome is out, and with it changes in the WebRTC stack. We dug through the commit logs for Chrome 26, and found the following list of WebRTC bug fixes, enhancements, and updates that we thought were relevant to the OpenTok community:</p>
<h3><strong>Highlights</strong></h3>
<ul>
<li>A lot of audio bugs in WebRTC were fixed dealing with crashes and non-standard audio bitrates</li>
<li>Chrome on Android can now be WebRTC-enabled by enabling a flag</li>
<li>Improvements to the connectivity stack in WebRTC</li>
<li>Ability to set media constraints for audio</li>
</ul>
<h3><strong>Full list</strong></h3>
<ul>
<li>Avoids crash in WebRTC audio clients for unsupported capture sample rates.</li>
<li>Avoids crash in WebRTC audio clients for 96kHz render rate on Mac OSX.</li>
<li>Enable webrtc build on android.</li>
<li>
<div>Set WebMediaPlayerMS network state to loading instead of loaded</div>
<ul>
<li>
<div>This indirectly fixes the problem where WebRTC audio is muted upon refresh. The HTMLMediaElement will try to cache fully Loaded videos when the element is destructed. This will signal to the HTMLMediaElement that the player was destroyed when loading, so it needs to recreate WebMediaPlayerMS upon destruction of the media tag.</div>
</li>
</ul>
</li>
<li>Allowing multiple MediaPlayers to connect to WebRtcAudioDeviceImpl by sharing one WebRtcAudioRenderer.
<ul>
<li>
<div> The audio is gone when new PeerConnection is connecting to a media stream. What is happening is that the stream will pause the existing MediaPlayer and create new MediaPlayers to associated to it. But since we only allow one WebRtcAudioRenderer to connect to WebRtcAudioDeviceImpl, the new MediaPlayers audio won&#8217;t be able to associate to stream.</p>
<p><span id="more-5730"></span></p>
<p>This patch fixes the problem by allowing multiple MediaPlayers to connect to WebRtcAudioDeviceImpl by sharing one WebRtcAudioRenderer</p>
</div>
</li>
</ul>
</li>
<li> Add webrtc audio-mirroring flag for automated testing</li>
<li>Set MediaConstraints for audio to WebRTC</li>
<li>
<div>When both stun and turn server are provided, use the turn server as the stun server.</div>
</li>
<li> This patch fixes two audio issues for webrtc hangout.
<ul>
<li>#1 Audio is muted when switching between the local stream to remote stream.</li>
<li>#2 It has glitches when switching between views.
<div>The first issue is fixed by storing the volume for local stream before muting, and recover the volume when it goes away. The second issue is fixed by re-using the |audio_renderer_| between different webmediaplayer.</div>
</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tokbox.com/blog/new-changes-for-webrtc-in-chrome-26/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Building an online Photo Booth app with Aviary</title>
		<link>http://www.tokbox.com/blog/building-an-online-photo-booth-app-with-aviary/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=building-an-online-photo-booth-app-with-aviary</link>
		<comments>http://www.tokbox.com/blog/building-an-online-photo-booth-app-with-aviary/#comments</comments>
		<pubDate>Thu, 28 Mar 2013 17:42:04 +0000</pubDate>
		<dc:creator>Song Zheng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tokbox.com/blog/?p=5715</guid>
		<description><![CDATA[A few weeks ago at SXSW I had the opportunity to meet Ari Fuchs, developer evangelist at Aviary. After a few rounds of birthday drinks (I had just turned 24), I slurred a promise to him that I would play around with Aviary&#8217;s API. Aviary provides an API that lets you put instagram-esque filters and [...]]]></description>
				<content:encoded><![CDATA[<p>A few weeks ago at <a href="http://www.tokbox.com/blog/tokbox-is-bringing-the-best-swag-to-sxsw/">SXSW</a> I had the opportunity to meet <a href="https://twitter.com/arifuchs">Ari Fuchs</a>, developer evangelist at Aviary. After a few rounds of birthday drinks (I had just turned 24), I slurred a promise to him that I would play around with <a href="http://www.aviary.com/">Aviary&#8217;s API</a>.</p>
<p style="text-align: center;"><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/03/883382_10151279728036612_1373695968_o.jpg"><img class="aligncenter  wp-image-5717" alt="883382_10151279728036612_1373695968_o" src="http://www.tokbox.com/blog/wp-content/uploads/2013/03/883382_10151279728036612_1373695968_o.jpg" width="1852" height="720" /></a></p>
<p><span id="more-5715"></span></p>
<p>Aviary provides an API that lets you put instagram-esque filters and all sorts of image editing capabilities to your web or mobile app. As an amateur instagrammer, I&#8217;ve always appreciated the ability to make an ordinary picture look good so this promise was actually one that I was excited to fulfill.</p>
<p>Inspired by <a href="http://blog.sendgrid.com/sx-sendgrid/">Sendgrid&#8217;s Photo Booth at their SXSW party</a>, I decided to build a virtual Photo Booth online.</p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/03/fd17751a89b111e2895222000aaa0568_7.jpg"><img class="aligncenter size-full wp-image-5719" alt="fd17751a89b111e2895222000aaa0568_7" src="http://www.tokbox.com/blog/wp-content/uploads/2013/03/fd17751a89b111e2895222000aaa0568_7.jpg" width="612" height="612" /></a></p>
<p><strong>Game Plan:</strong></p>
<ul>
<li>Use OpenTok&#8217;s <a href="http://tokbox.com/opentok/api/demo/v2?session_id=2_MX4xMTI3fn5UaHUgTWFyIDI4IDA5OjU0OjI2IFBEVCAyMDEzfjAuMTE0NDAwNDV-">getting started tutorial</a> to build a simple group video chat app.</li>
<li>When user clicks on a button, snap a picture of each video by calling getImgData</li>
<li>Use HTML5 canvas to stitch all the images together</li>
<li>Pass the stitched image into Aviary and let it do its magic!</li>
</ul>
<p>OpenTok provides a live video chat API. I started with a <a href="http://nodeopentok.aws.af.cm/roomId">base nodejs project</a> that uses each url as a video chat room. publisher is a video object of myself, and subscriber is the video object of other people&#8217;s streams that I&#8217;m watching or listening to.</p>
<p>To snap a picture of publisher or subscriber objects, call their &#8216;getImgData&#8217; method to return a base64 encoded image string. Here is a code snippet iterating through an array of subscribers, getting image data, and displaying them in image tags.</p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/03/Screen-Shot-2013-03-28-at-10.00.27-AM.png"><img class="aligncenter size-full wp-image-5720" alt="Screen Shot 2013-03-28 at 10.00.27 AM" src="http://www.tokbox.com/blog/wp-content/uploads/2013/03/Screen-Shot-2013-03-28-at-10.00.27-AM.png" width="351" height="133" /></a></p>
<p>To stitch the images together, draw each image onto a canvas and then retrieve a base64 string representation of the canvas. Since Aviary&#8217;s API requires an image element or the image element&#8217;s ID, I take the base64 image string from the canvas and put it into an image element.</p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/03/Screen-Shot-2013-03-28-at-10.08.28-AM.png"><img class="aligncenter size-full wp-image-5721" alt="Screen Shot 2013-03-28 at 10.08.28 AM" src="http://www.tokbox.com/blog/wp-content/uploads/2013/03/Screen-Shot-2013-03-28-at-10.08.28-AM.png" width="456" height="120" /></a></p>
<p>Using Aviary&#8217;s API is the simplest part of this process. First you initialize Aviary&#8217;s Feather editor. The required fields here are your apiKey and apiVersion. Everything else is included by default. I also defined an onSave function handler so I can display the processed image to the user and automatically close the editor.</p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/03/Screen-Shot-2013-03-28-at-10.12.33-AM.png"><img class="aligncenter size-full wp-image-5722" alt="Screen Shot 2013-03-28 at 10.12.33 AM" src="http://www.tokbox.com/blog/wp-content/uploads/2013/03/Screen-Shot-2013-03-28-at-10.12.33-AM.png" width="328" height="160" /></a></p>
<p>After initializing the Feather editor, simply launch it whenever some clicks on a button</p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/03/Screen-Shot-2013-03-28-at-10.21.48-AM.png"><img class="aligncenter size-full wp-image-5723" alt="Screen Shot 2013-03-28 at 10.21.48 AM" src="http://www.tokbox.com/blog/wp-content/uploads/2013/03/Screen-Shot-2013-03-28-at-10.21.48-AM.png" width="325" height="127" /></a></p>
<p>And just like that, OpenTok+Aviary Photo Booth was born. <a href="http://aviaryopentok.herokuapp.com/">Try it out</a>! The code is <a href="https://github.com/songz/AviaryOpenTok">open sourced and available</a> on Github, feel free to fork it and do cool things.</p>
<p>If you are available on the weekend of April 6th, 2013, we are proud sponsors of <a href="http://www.photohackday.org/">Photo Hack Day 4</a> and we would love to see you there at Facebook HQ in Menlo Park for a full weekend of Photo-Centric Awesomeness! We will be giving away <a href="http://en.wikipedia.org/wiki/Bitcoin">Bit Coins</a> for the best use of OpenTok API.</p>
<p>If you can&#8217;t join us at the hackathon, no worries. Fork our Photo Booth project and add something cool (or find a bug in our code and send a pull request) and we will mail you our very own TokBox Wristband so you can go fist-bumping!</p>
<p><img class="alignnone" alt="" src="https://s3.amazonaws.com/TokBoxMarketing/tokbox-wristbands.gif" width="480" height="320" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tokbox.com/blog/building-an-online-photo-booth-app-with-aviary/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>TokBox bringing Awesome Swag to SXSW</title>
		<link>http://www.tokbox.com/blog/tokbox-is-bringing-the-best-swag-to-sxsw/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tokbox-is-bringing-the-best-swag-to-sxsw</link>
		<comments>http://www.tokbox.com/blog/tokbox-is-bringing-the-best-swag-to-sxsw/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 00:41:42 +0000</pubDate>
		<dc:creator>Song Zheng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tokbox.com/blog/?p=5701</guid>
		<description><![CDATA[SXSW is here again and we are ready! This year we are giving out TokBox WristBands. They are motion activated and light up with a brilliant flare whenever you shake hands or fist bump someone. Make a visual connection! Here&#8217;s how it works: Ankur Oberoi and Song Zheng will be roaming the city. To get your TokBox [...]]]></description>
				<content:encoded><![CDATA[<p>SXSW is here again and we are ready!</p>
<p>This year we are giving out TokBox WristBands. They are motion activated and light up with a brilliant flare whenever you shake hands or fist bump someone. Make a visual connection! Here&#8217;s how it works:</p>
<div class="wp-caption aligncenter" style="width: 490px"><img alt="TokBox WristBands" src="https://s3.amazonaws.com/TokBoxMarketing/tokbox-wristbands.gif" width="480" height="320" /><p class="wp-caption-text">TokBox WristBands</p></div>
<p><a href="https://twitter.com/aoberoi">Ankur Oberoi</a> and <a href="http://songz.me">Song Zheng</a> will be roaming the city. To get your TokBox wristband simply find us and ask for one!</p>
<p><span id="more-5701"></span></p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/03/Screen-Shot-2013-03-06-at-4.46.51-PM.png"><img class="aligncenter size-full wp-image-5708" alt="AnkurSong" src="http://www.tokbox.com/blog/wp-content/uploads/2013/03/Screen-Shot-2013-03-06-at-4.46.51-PM.png" width="1228" height="548" /></a></p>
<p>To find out where we are, tweet at <a href="http://twitter.com/songz">@songz</a> or <a href="http://twitter.com/aoberoi">@aoberoi</a> with hashtag <a href="http://twitter.com/#sxsw">#sxsw</a></p>
<p>See you at SXSW!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tokbox.com/blog/tokbox-is-bringing-the-best-swag-to-sxsw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenTok on WebRTC now supports Firefox!</title>
		<link>http://www.tokbox.com/blog/opentok-on-webrtc-now-supports-firefox/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=opentok-on-webrtc-now-supports-firefox</link>
		<comments>http://www.tokbox.com/blog/opentok-on-webrtc-now-supports-firefox/#comments</comments>
		<pubDate>Mon, 25 Feb 2013 20:34:32 +0000</pubDate>
		<dc:creator>Rolly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Industry News]]></category>
		<category><![CDATA[New Products & Features]]></category>
		<category><![CDATA[OpenTok on WebRTC]]></category>

		<guid isPermaLink="false">http://www.tokbox.com/blog/?p=5656</guid>
		<description><![CDATA[On February 4th Mozilla and Google announced that their respective browsers could now talk to each other via WebRTC. This is another big milestone in WebRTC&#8217;s path towards becoming available in all modern web browsers, albeit, today only in an early development build of Firefox, version 21+ (currently Nightly and soon to be Aurora). We&#8217;ve [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/02/OpenTok_WebRTC_FF-1.png"><img class="alignleft size-full wp-image-5685" alt="OpenTok_WebRTC_FF-1" src="http://www.tokbox.com/blog/wp-content/uploads/2013/02/OpenTok_WebRTC_FF-1.png" width="308" height="183" /></a>On February 4th <a href="https://hacks.mozilla.org/2013/02/hello-chrome-its-firefox-calling/">Mozilla and Google announced</a> that their respective browsers could now talk to each other via WebRTC. This is another big milestone in WebRTC&#8217;s path towards becoming available in all modern web browsers, albeit, today only in an early development build of Firefox, version 21+ (currently Nightly and soon to be Aurora).</p>
<p>We&#8217;ve also been working hard on making OpenTok on WebRTC work with both Firefox and Chrome so you too can enjoy all this cross-browser goodness!</p>
<h2>Off to the races</h2>
<p>The first thing that you need is version 21 or higher of Firefox, currently available through the <a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/">Aurora FTP</a> site and <a href="http://nightly.mozilla.org/">Nightly</a> site.</p>
<p><span id="more-5656"></span>If you&#8217;re a Firefox user already you may want to set up a separate profile to test with. This will keep your default profile clean, and your test profile will likely also start up a bit faster than your default one. You can find instructions on how to do this <a href="http://kb.mozillazine.org/Using_multiple_profiles_-_Firefox#Using_new_profiles_in_secondary_Firefox_installations" target="_blank">here</a> and <a href="http://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles" target="_blank">here</a>.</p>
<p>If you&#8217;re testing with Chrome, you will want to make sure that you have updated to the latest version (version 25 at the time of this article), which has all of the fixes required for interoperability with Firefox. All of the relevant WebRTC bits are enabled by default in Firefox 21+ and in Chrome 25, so you should be ready to roll. Now go have a play with TokBox&#8217;s <a href="https://www.tokbox.com/opentok/api/demo/v2" target="_blank">OpenTok on WebRTC demo</a>. Then come back here afterwards.</p>
<h2>When can I have this in the production release of Firefox?</h2>
<p>Parts of WebRTC are working in the current production release version of Firefox (Firefox 19). However, Firefox 21 is the version that interoperates successfully with Chrome, and it also has all of the WebRTC preferences turned on by default. The gang at Mozilla is also pushing hard to fix lots of critical WebRTC bugs before production release of Firefox 21 and hopefully turning on WebRTC for everyone. According to the <a href="https://wiki.mozilla.org/RapidRelease/Calendar">Mozilla release calendar</a>, Firefox 21 is targeted to be released the week of May 13th.</p>
<p><strong>If this isn’t in the production release of Firefox, why is this news?</strong></p>
<p>What we’re doing today is giving you a head start.</p>
<p>The great thing about OpenTok on WebRTC is that we make face-to-face video work in your users’ browsers when those browsers are ready to work correctly.  So our announcement today lets you know that we are ready for Firefox WebRTC support to go production.  Right now, you can install Firefox Aurora and use it to test your app using OpenTok on WebRTC.  And you can watch as Firefox 21 makes it from Aurora to Beta and then to release and know when a big new chunk of your users can get access to WebRTC through OpenTok on WebRTC, all without your having to write an extra line of code.</p>
<h2>What doesn&#8217;t work yet?</h2>
<p>Mozilla isn&#8217;t quite done yet, so there are still some holes. The biggest one involves anything to do with disabling audio and video tracks. Namely:</p>
<ul>
<li>Muting audio</li>
<li>subscribeToAudio and subscribeToVideo on Subscribers</li>
<li>publishAudio and publishVideo on Publishers</li>
</ul>
<p>You may also see some connectivity issues in particularly restrictive networks. We&#8217;re working on these issues now, and we&#8217;ll update you as we have good news to share in the not too distant future.</p>
<h2>What were some of the challenges of getting Firefox and Chrome to play nicely?</h2>
<p>Some of things we had to do were pretty straight-forward &#8211; normalizing the cosmetic differences between the APIs, for example. This just involved making sure that we were using the appropriate vendor prefixed object and function names, say webkitGetUserMedia in Chrome and mozGetUserMedia in Mozilla.</p>
<p>The more complex bits involved working around browser specific issues and incompatibilities in the messaging layer (this is the part that uses text blobs of SDP). One notable example was that earlier implementations in Chrome and Firefox didn&#8217;t support compatible implementations of cryptography, with Firefox supporting DTLS and Chrome SDES. This was eventually resolved, but a <a href="http://code.google.com/p/webrtc/issues/detail?id=1314" target="_blank">new related issue</a> popped up in Chrome as a result.</p>
<p>Simply, DTLS adds an extra &#8220;a=fingerprint&#8221; line to the SDP payload which makes Chrome 25 incorrectly assume that the payload is SDES when it sees it. If SDES <em>was</em> being used there should also be an &#8220;a=crypto&#8221; line, but in this case there won&#8217;t be. So Chrome complains and won&#8217;t accept the SDP message.</p>
<p>As Chrome doesn&#8217;t actually care about the value of the crypto line, only that it&#8217;s present and well formed, the solution is to add a dummy crypto line when sending offers from Firefox to Chrome. Google is landing a fix for this in Chrome 26, but leaving the extra line in causes no harm and allows compatibility with Chrome 25. The dummy line we add in OpenTok looks like this:</p>
<pre>a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:FakeFakeFakeFakeFakeFakeFakeFakeFakeFake\\r\\n</pre>
<p>On the Mozilla side, Firefox doesn&#8217;t support FQDNs when specifying ICE servers for the PeerConnection. There&#8217;s a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=837919" target="_blank">Bug</a> open for this on Bugzilla, but in the meantime, ICE servers must to be specified as raw IPs for Firefox.</p>
<p>Another issue is caused by Firefox sending Data Channel information as part of its JSEP Offers &#8211; something that Firefox is doing temporarily until its Data Channels implementation is completed. Unfortunately this upsets Chrome and requires another workaround.</p>
<p>The good news is that we are doing all this hard work for you &#8211; making OpenTok on WebRTC interoperate smoothly &#8211; so you can spend your time building great applications, not worrying about browser compatibility between different implementations of the WebRTC standard.</p>
<p><span class="Apple-style-span" style="font-weight: bold; color: #000000;">Wrapping it up</span></p>
<p>At TokBox we&#8217;re super excited to see another great browser jump on board with the WebRTC standard, and we&#8217;re really impressed with how quickly the Firefox and Chrome teams have come together to make this happen. We really believe in the power of WebRTC &#8211; in particular, in the quality of the video and audio it delivers while maintaining low latency. We&#8217;re constantly keeping an eye out for all of the new developments in WebRTC, making sure we&#8217;re staying ahead of the curve to keep our API supporting the latest and greatest. Now we&#8217;re off to take a hard look at Microsoft&#8217;s first implementation of CU-RTC-Web.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tokbox.com/blog/opentok-on-webrtc-now-supports-firefox/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Music Hack Day SF 2013 Recap</title>
		<link>http://www.tokbox.com/blog/music-hack-day-sf-2013-recap/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=music-hack-day-sf-2013-recap</link>
		<comments>http://www.tokbox.com/blog/music-hack-day-sf-2013-recap/#comments</comments>
		<pubDate>Fri, 22 Feb 2013 01:50:12 +0000</pubDate>
		<dc:creator>Jon Mumm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.tokbox.com/blog/?p=5638</guid>
		<description><![CDATA[This weekend we hosted 175 hackers for Music Hack Day San Francisco in our office for the third consecutive year. Music Hack Day is a unique event—it doesn&#8217;t use huge prizes or big name judges to draw a crowd. It&#8217;s one of the rare Bay Area hackathons where (seemingly) most attendees actually aren&#8217;t local—giving it [...]]]></description>
				<content:encoded><![CDATA[<p>This weekend we hosted 175 hackers for Music Hack Day San Francisco in our office for the third consecutive year. Music Hack Day is a unique event—it doesn&#8217;t use huge prizes or big name judges to draw a crowd. It&#8217;s one of the rare Bay Area hackathons where (seemingly) most attendees actually aren&#8217;t local—giving it a fresh vibe, with new faces and ideas every year.</p>
<p>Last week I wrote <a href="http://www.tokbox.com/blog/saving-the-hackathon/">a post</a> that called for more hackathons to be purpose driven—Music Hack Day is not one of those of events. Instead, Music Hack Day is an event driven by a desire to learn and a shared passion for music. These types of events are, without question, very good for the hacker ecosystem, and Music Hack Day is a shining example of how they should be run.</p>
<p><span id="more-5638"></span></p>
<p>What makes Music Hack Day great is that expectations are clear. There is no question—we&#8217;re there to mingle, build, and learn—not to make money. There&#8217;s only a few small prizes and no PowerPoints—it&#8217;s a true hacker&#8217;s hackathon. And over the years this event has blossomed into a passionate community filled with incredibly smart developers and musicians.</p>
<p>Here&#8217;s a couple of my favorite hacks from the event:</p>
<p><strong><a href="https://www.hackerleague.org/hackathons/music-hack-day-sf-2013/hacks/leap-orchestra">Leap Orchestra</a></strong><br />
An orchestra controlled by the new <a href="http://www.leapmotion.com">Leap Motion</a> device.<br />
<iframe src="http://www.youtube.com/embed/4LuVl_T397g" frameborder="0" width="560" height="349"></iframe></p>
<p><strong><a href="https://www.hackerleague.org/hackathons/music-hack-day-sf-2013/hacks/tokbox-ukulele">TokBox Ukulele</a></strong><br />
Play an imaginary instrument via webcam using OpenTok.<br />
<img src="http://zafuta.com/tokboxukulele/ss1.png" alt="TokBox Ukulele" /></p>
<p><strong><a href="https://www.hackerleague.org/hackathons/music-hack-day-sf-2013/hacks/live-crowdsourced-concert-visuals-with-lsd">Live Crowdsourced Concert Visuals with LSD</a></strong><br />
A collaborative VJing webapp that uses OpenTok to crowd source visuals from a concert audience.</p>
<p><strong><a href="https://www.hackerleague.org/hackathons/music-hack-day-sf-2013/hacks/mugatu">Mugatu</a></strong><br />
A playable piano neck tie.<br />
<img src="http://www.tokbox.com/blog/wp-content/uploads/2013/02/photo.jpg" alt="" width="450" height="600" /></p>
<p><strong><a href="https://www.hackerleague.org/hackathons/music-hack-day-sf-2013/hacks/inspiration">Inspiration</a></strong><br />
Provides example chord progressions for a given genre or song.</p>
<p>We&#8217;re thankful to the wonderful folks at <a href="http://www.echonest.com">Echo Nest</a> and the attendees for making it a pleasure for us to host. Cya next year!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tokbox.com/blog/music-hack-day-sf-2013-recap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>LiveNinja: Video chat face-to-face with experts</title>
		<link>http://www.tokbox.com/blog/liveninja-video-chat-face-to-face-with-experts/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=liveninja-video-chat-face-to-face-with-experts</link>
		<comments>http://www.tokbox.com/blog/liveninja-video-chat-face-to-face-with-experts/#comments</comments>
		<pubDate>Fri, 08 Feb 2013 20:26:52 +0000</pubDate>
		<dc:creator>Lauren Slattery</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[App of the Week]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[OpenTok API]]></category>
		<category><![CDATA[Partner News]]></category>

		<guid isPermaLink="false">http://www.tokbox.com/blog/?p=5570</guid>
		<description><![CDATA[There is a new breed of Ninjas taking over. Instead of covert agents wielding nunchucks and wearing ninja-yoroi, you’ll find gentler individuals donned in yoga pants, weaponed with guitars and Adobe CSS. LiveNinja, our App of the Week, is responsible. They&#8217;ve created a searchable marketplace of experts (Certified Ninjas) in the topics you care about, using the [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/02/LiveNinja-logo.png"><img class="alignleft size-medium wp-image-5571" title="LiveNinja logo" src="http://www.tokbox.com/blog/wp-content/uploads/2013/02/LiveNinja-logo.png" alt="" width="240" height="161" /></a>There is a new breed of Ninjas taking over. Instead of covert agents wielding nunchucks and wearing ninja-yoroi, you’ll find gentler individuals donned in yoga pants, weaponed with guitars and Adobe CSS. <a href="http://www.liveninja.com/">LiveNinja</a>, our App of the Week, is responsible. They&#8217;ve created a searchable marketplace of experts (Certified Ninjas) in the topics you care about, using the OpenTok API to facilitate live video consultations.</p>
<p><span id="more-5570"></span>In today&#8217;s struggling economy, the founders of LiveNinja saw a new work trend emerging. Friends, family and acquaintances were setting up consultancy shops online, using siloed video chat services like Skype to connect face-to-face with clients. While this worked for some consultants, they also saw many people struggling to bring in to new clients. Just google &#8220;Spanish lessons&#8221; and imagine how hard it would be to stand out amongst the 59 million + results. ¡Ay caramba!</p>
<p>On why his team decided to develop LiveNinja, CEO and Co-founder Will Weinraub said:</p>
<blockquote><p>The number of skillful individuals across the world that are unemployed and unable to produce income is exorbitant. However, we feel if we can modernize the traditional concepts of employment by providing the proper tools, we can eliminate the barriers to both job and income creation. LiveNinja effectively allows people to create and accelerate these jobs by empowering any individual with all the tools they need for an online service-based business.</p></blockquote>
<p>In response, LiveNinja created a full service marketplace that enables experts to set up their own web page and customize the look and feel. Certified Ninjas can set their own rates and schedules, and collect income in the LiveNinja one stop shop.</p>
<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/02/liveninja-screenshot.png"><img class="alignleft size-full wp-image-5600" title="liveninja screenshot" src="http://www.tokbox.com/blog/wp-content/uploads/2013/02/liveninja-screenshot.png" alt="" width="640" height="296" /></a></p>
<p>What is the experience like for a student? Let&#8217;s say you&#8217;re dying to improve the height of your round-house kick (who isn&#8217;t?) Simply head over to LiveNinja and search for &#8220;martial arts&#8221;. If they can&#8217;t find exactly what you&#8217;re looking for, LiveNinja&#8217;s intelligent search will make recommendations for other areas you may be interested in. Once you find the expert you&#8217;re looking for, simply book an appointment and let them welcome you to their virtual dojo.</p>
<p>Have a skill that you&#8217;d like to share with the world? <a href="http://www.liveninja.com/">Become a Certified Ninja</a> today. Prefer to learn something new? <a href="http://www.liveninja.com/browse/">Start browsing</a> expert profiles, reading user reviews, and booking sessions. Welcome to the dojo.</p>
<p><iframe src="http://player.vimeo.com/video/37270865" frameborder="0" width="400" height="300"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tokbox.com/blog/liveninja-video-chat-face-to-face-with-experts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What I learned on my cross platform development panel</title>
		<link>http://www.tokbox.com/blog/what-i-learned-on-my-cross-platform-development-panel/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-i-learned-on-my-cross-platform-development-panel</link>
		<comments>http://www.tokbox.com/blog/what-i-learned-on-my-cross-platform-development-panel/#comments</comments>
		<pubDate>Fri, 08 Feb 2013 01:40:21 +0000</pubDate>
		<dc:creator>Melih O.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[OpenTok API]]></category>

		<guid isPermaLink="false">http://www.tokbox.com/blog/?p=5581</guid>
		<description><![CDATA[Last Thursday, I had the pleasure of being a part of the Mobile + Web developer conference held at the Hilton Hotel in San Francisco. I spoke on a panel about where development was headed in a world where Web + Mobile are the two predominant platforms. There were four of us total, and we [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.tokbox.com/blog/wp-content/uploads/2013/02/mobile-+-web-dev-con.png"><img class="alignleft size-medium wp-image-5630" title="mobile + web dev con" src="http://www.tokbox.com/blog/wp-content/uploads/2013/02/mobile-+-web-dev-con.png" alt="" width="286" height="120" /></a>Last Thursday, I had the pleasure of being a part of the Mobile + Web developer conference held at the Hilton Hotel in San Francisco. I spoke on a panel about where development was headed in a world where Web + Mobile are the two predominant platforms. There were four of us total, and we had a great time talking about how each of us lived in, and viewed the future of development in this two platform world. The panel was composed of (beyond myself) John Hammink, a QA engineer from Mozilla, Jonathan Smiley, a partner at Zurb building their own HTML5 framework, and Ted Drake, a senior accessibility engineer from Intuit.</p>
<p><span id="more-5581"></span></p>
<p>Walking away from the panel, I found myself quite convinced of a few things that beforehand I had only held as loose opinions, and I wanted to share those with the TokBox blog audience.</p>
<p><strong>1) Ultimately a common language set will prevail&#8230; but not for the reasons you’re thinking</strong><br />
Today, as we all know, it takes a developer a long time, and real effort, to be available on all platforms (namely web, iOS, and Android) from day one. The reason is simple &#8211; HTML5 based applications don’t perform as well as their native counterparts. If anyone learned this lesson the hard way, it was <a href="http://techcrunch.com/2012/12/13/facebook-android-faster/">Facebook</a>, but other app developers have similar horror stories.</p>
<p>Further, it takes first-world incomes to be able to buy the top of the line smartphones from the likes of Apple, Samsung, and Motorola. Most of these devices are extreme luxury items outside of the US and Western Europe. As a result, an already saturated app store for existing platforms is a daunting marketplace for new and emerging apps.</p>
<p>Given all of that, we asked ourselves&#8230; but what if the native API was HTML5?</p>
<p>The upcoming launch of Firefox OS is exciting exactly because developers targeting untapped markets (Latin America, South America, Africa) using skills (HTML5, JS, and CSS) that they already have is a large ocean of opportunity.</p>
<p>Firefox OS phones, a device our Telefonica Digital family have dedicated significant time to developing, may not compete on hardware specs with the iPhones we have in the US and Western Europe, but, as a platform for the masses, their reach could be much greater, open much larger markets, and open many more interesting opportunities in the years to come. Simultaneously, as mobile browsers continue to invest in speed and quality, a second wave of HTML5 apps wrapped in native application bindings could make a comeback.</p>
<p>The sum of these parts is that developers who have built HTML5-based apps will be well positioned to take advantage of the next generation of smartphone devices, but the panel agreed that today the burden lies on the developer to build multiple native applications.</p>
<p><strong>2) Frameworks are only as powerful as the developer who wields them</strong><br />
Ted Drake spoke a lot about how accessibility has been pushed to new, and powerful, places with the emergence of smartphones and tablet devices. However, he decried frameworks as a programming paradigm where, “shit goes in, and shit comes out.”</p>
<p>This, I thought, was one of the better topics we debated.</p>
<p>It started with the thesis that frameworks are used by developers who don’t know what they’re doing as a shortcut or to quickly prototype their work. However, Jonathan Smiley spoke up for framework users by giving the example of his agency who had built a framework that they used to quickly, and robustly, build responsive applications for their clients. Zurb  knew what they were doing, and knew how to use the tool effectively.</p>
<p>Ultimately, I think the entire panel agreed that the issue with frameworks is speed more than complexity. If people are moving too fast, while not understanding the programming paradigm, and producing second-class applications as a result, then of course, “shit goes in, and shit comes out.” But a framework in the right hands used to solve the right problems can really help development, especially when it has to work across both mobile + web at launch.</p>
<p>I’m personally a huge fan of frameworks as they abstract the mess away from developers. Our OpenTok thesis is that we worry about the details so that our partners don’t have to. Instead they build really great applications that take advantage of a live-video platform without signing up for the hassle that usually comes with one.</p>
<p><strong>3) Regardless of the target audience &#8211; mobile + web will both be part of the solution</strong><br />
One of the questions from the audience was about whether our discussions over the course of the hour applied equally to enterprise as well as consumer. At TokBox we’ve learned over the last two years of the OpenTok platform that solutions need to exist wherever the users are.</p>
<p>Doing a customer support app? People may want to call in from a website, a native app, or from the phone.</p>
<p>Heading to the doctor’s office remotely? Requiring patients to buy an iPad would make the solution impossible for most doctors, but having a solution that works as long as the patient has a web connection opens this door.</p>
<p>Mobile + Web is not a consumer only phenomenon, though the headlines are dominated by these types of products. The truth is that mobile + web is the new paradigm in which all products are being built.</p>
<p>I wanted to quickly thank Lisa Oshima who was the moderator of our panel, and just say again how much fun I had. I’d love to hear more about where you think mobile + web development is going so please comment or email me at <a href="mailto:melih@tokbox.com">melih@tokbox.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tokbox.com/blog/what-i-learned-on-my-cross-platform-development-panel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
