HTML5 is ready for mobile Open Web games. Flash is absent or disappearing on mobile devices. Meanwhile, in the US and the UK, 20% of Internet users are mobile-only, and in some markets more than half of Internet users are mobile-only. It is widely held that the next two billion people coming online in the developing world will be on mobile phones.
I got to hear some great presentations and have some great conversations at last week's inaugural Backbone Conf, and one thing that came up over and over again was how to effectively communicate between views in client-side applications. There are lots of patterns for doing this -- and we love talking patterns at Bocoup -- so I thought I'd go over a few.
Yesterday, Opera announced and released the latest version of its mobile browser, Opera Mobile 12. Today, while running the browser against the Ringmark suite, I noticed that it was now passing the WebRTC detection tests. Very exciting, indeed!
To test drive the first ever mobile browser implementation of WebRTC, I decided to use dmv — my super simple Node.js served, socket.io enabled,
navigator.getUserMedia normalized, video-frame-to-canvas capturing program, which was developed using an Opera Labs build and Google Chrome Canary for desktop.
Over the past year Bocoup has worked on several production applications that utilize the MVC library Backbone.js. We've worked hard to give back to the community through informative blog posts, core contributions, support & evangelism through various mediums such as meetups, IRC and Twitter. Over the course of the past year, we created small boilerplates to share around the office and across projects. I recently began to organize this work into a canonical boilerplate for Backbone. Today, I’d like to introduce our Backbone Boilerplate:
Upon first thought, you might think that synchronized playback of two video elements would be simple - however - because the
timeupdate event of the video element is indeterminate beyond its specification description of "Every 15 to 250ms, or whenever the MediaController's media controller position changes", this is actually non-trivial.
Today, on the Web Made Movies mailing list, a poster asked whether or not Popcorn.js was capable of synchronizing the playback of multiple videos or video and audio elements. While Popcorn.js does not ship with any kind of "sync A to B" functionality, it occurred to me that such a task should not be hard to achieve using Popcorn.js's event management system.
Whenever you ask for a page on the web, your request has a lot of data attached to it. One part of your request (the “user-agent” string) describes your software environment—usually your operating system and your browser’s name and version number. Like many things on the web, this data is a convention, not a law. You are free to modify it however you want. This practice is known as user-agent spoofing.
If you’re ready to give it a try yourself (and you have Google Chrome), you can find the extension (and installation instructions) here. If you’re a developer interested in modifying headers from a Chrome extension, read on!
Bocoup is excited to announce that we are working with Gradient Studios to port the hit mobile game Fieldrunners, by Subatomic Studios, to HTML5. This is the first in a series of weekly development blog posts.
One of the earliest tasks in porting an existing game to a new platform is to assess feasibility. This task involves evaluating things like user input, delivery methods, and monetization opportunity, but above all comes performance testing. As part of pre-production for the Fieldrunners port, we ran WebGL performance tests on a variety of laptops and browsers.
I gave a talk in February on Advanced jQuery Templates that had an interesting and unique twist. Instead of changing slides using traditional presentation delivery methods such as a clicker or a laptop keyboard, I used my smartphone which made asynchronous calls to a Node.js server. The server then propagated events to all connected viewers, regardless of Internet connection or device.
This post provides all the code necessary to run the Node.js server, the controller on a smartphone (or any device that has a web browser) and the client-side component necessary to work with various HTML5 slide decks.