John Lilly – Lessons From Mozilla: WordCamp San Francisco 2009

I know I’m a bit late to the party, but I just watched this:

John Lilly – Lessons From Mozilla: WordCamp San Francisco 2009.

John lays out the state of the world from the Mozilla point of view back in 2009 with his usual clarity and humor. Highly recommended.

Posted in HTML5, Mozilla | Leave a comment

HTML5 Gaming, Ashley Gullen (Scirra) and Tyler Smith (appMobi), DevCon5

Notes from HTML5 Gaming, Ashley Gullen (Scirra) and Tyler Smith (appMobi), DevCon5

Scirra makes Construct2

The number one reason why your App is slow — software rendering instead of HW acceleration

Why? graphics card drivers are a big, abysmal mess; browsers blacklist bad drivers; those users lose

Roughly half of web users have blacklisted graphics card drivers!

Lenovo won’t let you download graphics card drivers from nVidia et al due to customization

Drivers alone are holding back HTML5 gaming on the desktop

iOS webkit when packaged in native app turns off GPU support. Lame.

Android stock browser has no GPU support.

You have to use native wrappers like appMobi, CocoonJS to solve this problem on mobile; PhoneGap doesn’t work for gaming

Google Closure Compiler reduces ~800k of Ashley’s engine into ~80k; woah

Awesomium lets you distribute HTML5 games on desktop; fast, could be used to skip driver blacklist

Posted in HTML5, Trip Reports | Leave a comment

Intro to Canvas, 8bitrocket, DevCon5

Notes from an Intro to Canvas, 8bitrocket, DevCon5

Firefox Canvas performance got really bad six months ago, slowly coming back now

Retained mode (Flash, DOM) versus Immediate mode (Canvas)

They still use Modernizr.js to test for Canvas support

They end up creating (minimal) object system and re-rendering the whole scene at each frame

You can do much of this with CSS, but for developers coming from other technologies, this is so much easier

Posted in HTML5, Trip Reports | Leave a comment

State of Mobile Web Gaming, Keith Wright, DevCon5

Within Android, breathtaking diversity of screen resolution, processor speed — HTML/JS/CSS parse speed ranges from 0.4 to 1.4 seconds (put JS at end of the page!) even with JS in cache

later OS version doesn’t guarantee better device (see Cricket Mobile)

In his world, Canvas is too slow on mobile devices for gaming; don’t count on Web Workers, WebGL. WebSockets, etc.

Monetization is less smooth; Distribution is hard; Google+ has no mobile games story

He lists off lots of game engines and libraries; they don’t use any of them (100k library is too big!)

Speed is everything, especially during game load; use local / session storage; all games are one page load

client cache is limited; iOS 4.3 had total 4MB limit; Android had total 2MB limit; try to limit HTML pages to 25k if you want them to be cached

local storage is OK up to 5 MB, after which it gets ugly

Avoid DOM updates to make mobile browsers happy

Do use CSS transitions

Do use CSS four color gradients instead of repeating images for 3D-looking buttons

CHALLENGE: can you design a two lane road for a side-scrolling game using CSS gradients?

Q: are data URI’s useful for mobile game performance? A: reduces network request but 30% bigger than raw file

Q: use gzip on mobile? A: yes, always

avoid CSS box-shadow and text-shadow, they killed mobile performance

do use CSS3 animations (webkit keyframes example) to make waving flags

do use stepped animation, but expect to use lots of proprietary ways to find next available frame time

pre-ICS Android disregards absolutely-positioned items when doing click events. The z-index problem.

orientation change is slow and unreliable

cheaters — don’t store game state in the DOM; wrap all javascript in closures; single page load defeats URL hacking attempts; sign requests with timestamp

Posted in HTML5, Trip Reports | Leave a comment

David Kaneda, Mobile Design, DevCon5

-webkit-touch-overflow is cool but only mobile safari; in the meantime, see iscroll4

Sencha invested several engineers for six months making the scroller work well

Zynga just released their scroller (can also work with Canvas)

David isn’t impressed with the current Android web browser, but is stoked about Chrome on Android.

Animation on Mobile isn’t just gratuitous, it gives people context and consistency

Posted in HTML5, Trip Reports | Leave a comment

Ronjon Nag, Future of Blackberry, DevCon5

BlackBerry 10 Jam coming next week in Orlando, FL

many acquisitions including torch mobile, the astonishing tribe set the stage for blackberry 10 platform

Q: why BlackBerry? A: 77 million smartphone subscribers; 55 million blackberry messenger subscribers; 75,000 Apps with 180 million downloads / month; carrier billing support

More downloads and more income for average apps compared to Android or Apple App stores

We have many runtime libraries, but we are investing in HTML5

Ripples from Tiny Hippos looks like a nice emulator for HTML5 mobile apps

Posted in HTML5, Trip Reports | Leave a comment

Sy Choudhury, “Future of Mobile Computing”, DevCon5

Notes from Sy Choudhury, Qualcomm, “Future of Mobile Computing”, DevCon5

Makers of Snapdragon processors.

Sy declares the javascript performance problem officially solved [we agree]

Cool demos of optimized HTML5 canvas performance for GUImarks in their prototype hardware; 60 FPS with smooth animation

Posted in HTML5, Trip Reports | Leave a comment

David Kaneda, “Web, Native”, DevCon5

Notes from David Kaneda, “Web, Native”, DevCon5

cool contrast between early wikipedia page versus Sencha touch app running in mobile browser

most of the world’s traffic stop signs are red and octagonal

form follows function: craigslist is really ugly and works great

The web is a dynamic context; the app is a static context; with web apps you can decide

AWESOMEly tall screenshot of boston globe’s responsive HTML in phone mode; it’s a great job so far, but not ideal

Worrying divergence of host OS’s — fancy 3D things versus flat 2D rectangles (see Skeuomorph); tend toward the minimal (see Flipboard)

Q: do skeuomorphs make casual / novice users more comfortable?

Posted in HTML5, Trip Reports | Leave a comment

Andrew Lunny, “Anatomy of an App”, Adobe / PhoneGap

Notes from Andrew Lunny’s talk, “Anatomy of an App”, Adobe/PhoneGap

“Native versus HTML5” is not the distinction you should worry about.

“Is your App a citizen or a tourist?” Is your App a jerk or a non-jerk?

Citizens are responsible, considerate, knowledgable; Tourists are crass, self-serving, and ignorant

Alex Payne’s post entitled “Shortchanging your business with user-hostile platforms” urges you not to use cross-platform frameworks because they are the gray mystery meat of client-side software. Slow, inconsistent, awkward.

Q: what is the most popular hybrid App on iOS? A: Facebook? Instapaper? APP STORE ITSELF is implemented in HTML/CSS

Q: how can your cross-platform App “pass” as native? A: don’t be slow, ugly, inconsistent; do be fast, pretty, consistent, elegant

see Tim Bray’s post “Three Mobile-Software Rules” post. Why isn’t all software written that way?

three principles — (1) death is certain, (2) you’re not alone, (3) stop doing so much

(1) life for a mobile app is nasty, brutish, and short, so: start up quickly, listen for and cope with lifecycle events, listen to and cope with network status events, always save state always

(2) you’re not alone, so make good use of android intents or iOS custom URL schemes; look ahead to web intents

(3) stop doing so much; if you don’t bring along every single javascript library, you’ll have fewer performance problems; avoid decoration; build lots of smaller apps

Posted in HTML5, Trip Reports | Leave a comment

Peter Lubbers, “Connectivity features of HTML5”, DevCon5

Notes from Peter Lubbers’s talk, “Connectivity features of HTML5”, DevCon5

[He’s the guy with the ‘HTML5’ license plate in California]

Peter shows a very cool demo of impress.js being controlled live using websockets from his phone to the presentation machine.

Another really shiny demo of streaming foreign exchange data, canvas graphs, drag-and-drop portlets

Posted in HTML5, Trip Reports | Leave a comment