web on tv - the joy and (mostly) pain of tv development / jquery europe / vienna 23.02.2013
TRANSCRIPT
![Page 1: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/1.jpg)
Web on TV THE JOY AND (MOSTLY) PAIN OF TV DEVELOPMENT
Patrick H. Lauke / jQuery Europe / Vienna / 23 February 2013
![Page 2: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/2.jpg)
![Page 3: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/3.jpg)
“web” on TV is nothing new
![Page 4: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/4.jpg)
![Page 5: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/5.jpg)
![Page 6: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/6.jpg)
![Page 7: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/7.jpg)
![Page 9: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/9.jpg)
![Page 10: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/10.jpg)
![Page 11: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/11.jpg)
“Smart” TV = runs apps (optionally, has a web browser)
![Page 12: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/12.jpg)
Apps● native apps (Android, Apple TV, ...)● packaged web apps (W3C widgets or similar)● “in the cloud” (they're URLs)
![Page 13: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/13.jpg)
![Page 14: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/14.jpg)
![Page 15: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/15.jpg)
![Page 16: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/16.jpg)
![Page 17: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/17.jpg)
![Page 18: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/18.jpg)
![Page 19: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/19.jpg)
![Page 20: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/20.jpg)
![Page 21: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/21.jpg)
![Page 22: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/22.jpg)
developing for TV
![Page 23: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/23.jpg)
1. display size2. input mechanisms3. features/performance
![Page 24: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/24.jpg)
1. display size2. input mechanisms3. features/performance
![Page 25: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/25.jpg)
![Page 26: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/26.jpg)
![Page 27: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/27.jpg)
![Page 28: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/28.jpg)
![Page 29: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/29.jpg)
![Page 30: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/30.jpg)
![Page 31: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/31.jpg)
![Page 32: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/32.jpg)
![Page 33: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/33.jpg)
720×576960×540
1280×7201920×1080
![Page 34: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/34.jpg)
CSS 2 Media Types?
![Page 35: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/35.jpg)
Media types
all brailleembossed handheldprint projectionscreen speechtty tv
![Page 36: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/36.jpg)
![Page 37: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/37.jpg)
![Page 38: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/38.jpg)
<!-- mobile/tablet viewport sanity -->
<meta name=”viewport” content=”width=device-width”>
<!-- but TVs don't support viewport -->
![Page 39: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/39.jpg)
old-school browser sniffing
http://www.flickr.com/photos/timdorr/2096272747/
![Page 40: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/40.jpg)
/* Still make it responsive/adaptive */
/* Full HD */@media screen and (min-width: 1920px) { … }
/* HD-Ready */@media screen and (min-width: 1280px) and (max-width: 1920px) { … }
/* Smaller */@media screen and (max-width: 1280px) { … }
![Page 41: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/41.jpg)
● large text and images● large UI elements for interaction● minimise scrolling
![Page 42: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/42.jpg)
1. display size2. input mechanisms3. features/performance
![Page 43: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/43.jpg)
● mouse pointer (“magic” remotes)● spatial navigation (Opera only?)● D-pad key events
![Page 44: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/44.jpg)
![Page 45: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/45.jpg)
● not very precise (giant mouse pointer)● scrolling can be an issue
![Page 46: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/46.jpg)
![Page 47: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/47.jpg)
![Page 48: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/48.jpg)
Opera-specific: spatial navigationShift + cursor keys
focusable elements and elements with mouseover / click
![Page 49: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/49.jpg)
don't lose your focusa:focus, button:focus { … }
![Page 50: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/50.jpg)
![Page 51: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/51.jpg)
blah.addEventListener("keydown", function(e) {…
switch (e.keyCode) {case 37:
// leftbreak;
case 38:// upbreak;
case 39:// rightbreak;
…}
}, useCapture);
// Fun fact: key codes can vary between devices!
![Page 52: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/52.jpg)
blah.addEventListener("keydown", function(e) {
…
e.preventDefault(); // prevent Opera's spatnav
}, useCapture);
![Page 53: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/53.jpg)
var VK_ENTER = 13; var VK_RED = 403;var VK_PAUSE = 19; var VK_GREEN = 404;var VK_PAGE_UP = 33; var VK_YELLOW = 405;var VK_PAGE_DOWN = 34; var VK_BLUE = 406;var VK_LEFT = 37; var VK_REWIND = 412;var VK_UP = 38; var VK_STOP = 413;var VK_RIGHT = 39; var VK_PLAY = 415;var VK_DOWN = 40; var VK_FAST_FWD = 417;var VK_0 = 48; var VK_INFO = 457;var VK_1 = 49; var VK_BACK = 461;var VK_2 = 50;var VK_3 = 51;var VK_4 = 52;var VK_5 = 53;var VK_6 = 54;var VK_7 = 55;var VK_8 = 56;var VK_9 = 57;
![Page 54: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/54.jpg)
// abstracted VK_ globals … better?
blah.addEventListener("keydown", function(e) {…
switch (e.keyCode) {case VK_LEFT:
// leftbreak;
case VK_UP:// upbreak;
case VK_RIGHT:// rightbreak;
…}
}, useCapture);
![Page 56: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/56.jpg)
// DOM Level 3 … better?
blah.addEventListener("keydown", function(e) {…
switch (e.key) {case 'Left':
// leftbreak;
case 'Up':// upbreak;
case 'Right':// rightbreak;
…}
}, useCapture);
![Page 57: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/57.jpg)
key repeats and lag[keydown]+ > keyup
[keydown > keyup]+
![Page 58: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/58.jpg)
minimise form input / text entry
![Page 59: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/59.jpg)
![Page 60: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/60.jpg)
![Page 61: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/61.jpg)
1. display size2. input mechanisms3. features/performance
![Page 62: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/62.jpg)
tl;drdesign like for mobiles … 5 years ago
![Page 63: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/63.jpg)
![Page 65: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/65.jpg)
![Page 66: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/66.jpg)
CSS3 transitions / animations vs JS
![Page 67: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/67.jpg)
paulirish.com/2012/why-moving-elements...
![Page 68: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/68.jpg)
![Page 69: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/69.jpg)
![Page 72: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/72.jpg)
![Page 74: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/74.jpg)
![Page 75: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/75.jpg)
![Page 76: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/76.jpg)
// Feature detect?
var hasStorage = (function() {try {
localStorage.setItem(mod, mod);localStorage.removeItem(mod);return true;
} catch(e) {return false;
}}());
![Page 78: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/78.jpg)
![Page 79: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/79.jpg)
![Page 80: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/80.jpg)
no magic bullet...
![Page 81: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/81.jpg)
testing and debugging
![Page 82: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/82.jpg)
![Page 83: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/83.jpg)
![Page 89: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/89.jpg)
![Page 93: Web on TV - the joy and (mostly) pain of TV development / jQuery Europe / Vienna 23.02.2013](https://reader031.vdocuments.mx/reader031/viewer/2022022415/53fa4e918d7f72fc4e8ba8fd/html5/thumbnails/93.jpg)
@patrick_h_laukeslideshare.net/redux