"Zonder categorie" Category


Why HTML5 audio/video on iOS is virtually unusable


vrijdag, november 4, 2011

Apple’s Safari on iOS is pretty cool. It has pretty good support for HTML5 audio and video. Unfortunately there’s one big quirk that makes it almost impossible to do anything useful with it. Why? They disabled autoplay. According to the docs this is because:

(…) the user may be on a cellular network and be charged per data unit, preload and autoplay are disabled. No data is loaded until the user initiates it.

In theory, this sounds great. Who doesn’t detest autoplaying advertisements on sites? Unfortunately this ‘feature’ has a few side-effects that cripple the general use of HTML5 audio/video. The autoplay property isn’t the only thing that’s disabled. Playing a HTML5 media element is not possible at all without an user action.

What does this mean in practice? Consider a piece of HTML like this:


<script>
function play() {
var a = new Audio();
a.src = 'http://example.com/audio.mp3';
a.play();
}
</script>

<button onclick="play()">play</button>

This works on iOS because the play() function is initiated from a user action (the click on the button). Now, consider something like this:


<script>
function play() {
var a = new Audio();
a.src = 'http://example.com/audio.mp3';
a.play();
}

setTimeout(play, 3000);
</script>

This doesn’t work on iOS. The play() method is called, but nothing happens because the function is not called from an user action.

Now, you might say, why would you ever want to play a video from a timeout? This example is very simplistic, but consider you’re writing a cross-browser media player that falls back on Flash on Internet Explorer, automatically plays the next track in a playlist, etcetera. You want to write clean code, so everything is modulairized, maybe using a tool like RequireJS and a MVC framework.

This means you’re getting lots of asynchronous callbacks, events, AJAX calls and dozens of functions you’re working with. Your original ‘click’ is lost and your cross-browser player doesn’t work on iOS. Bummer.

Or consider a game with sound effects. Every time you hit an enemy you want to play a sound. I suppose you don’t want to let your user click a button when she wants to hear a sound effect.

Of course, if you just want a simple video player for a blogpost you don’t run into this problem. But for virtually all advanced applications you’re going to run into the autoplay bug sooner or later.

Native iOS apps don’t have this problem, and you can actually disable the autoplay ‘feature’ by putting your web app in a native app (using UIWebView) and disabling the UIWebView.mediaPlaybackRequiresUserAction flag.

On Android this isn’t a problem at all. The code above works fine (tested on 2.3.3).

I think Apple has three possible solutions to ‘fix’ this problem:

  1. Prompt the user to enable autoplay, just like with geolocation
  2. Disable the ‘mediaPlaybackRequiresUserAction’ flag when the device is on WIFI
  3. Remove the ‘feature’ completely

If you’re having this problem as well, you might have some luck submitting a bug report.

Advanced HTML5 video and audio use on iOS: bugs and quirks


maandag, oktober 24, 2011

iOS has some pretty decent support for HTML5 audio and video in the Safari browser. For the new 3voor12 site we’re currently investigating how can we use HTML5 video/audio to support the new site on touch devices, such as iOS. Apple’s development site has a nice section on preparing your media content for iOS. However, some of the sections are pretty terse, while they might have big implications on your site.

So, we did some research ourselves, and we like to share it with you here. Note that we tested on both iOS 3, 4 and 5. Any differences are marked in the text.

Autoplay problems

The autoplay property is disabled on iOS, as is the preload property. The reasoning behind this is that users might have a prepaid plan, and pay a large sum for their data transfer on media items. This sounds a bit weird, because no such restriction exists on large images, and AFAIK native apps don’t have this restriction.

A problem with this restriction is that the Javascript play() and load() methods only work on user events, such as a click. Normally this isn’t a problem, but it can be quite tricky when you want to do other things before playing the video. Imagine doing a call to some kind of web service using Ajax and on the callback play the media file. This doesn’t work because the ‘play’ didn’t originate from an user action.

However there’s a hack: when you do a synchronous Ajax call instead of asynchronous (which is the default when using a library such as jQuery) iOS does play the video after the callback. There are two drawbacks to this hack: sync calls don’t work cross-domain (for example using JSONP or CORS) and the browser is ‘frozen’ when the call is active. If your call doesn’t return your webapp is broken, Safari freezes and the user can only exit to home (closing the tab doesn’t work because the browser thread is locked).

The video element on iPhone and iPod Touch

There’s a distinction between using the <video> element on the iPad and the iPhone/iPod. On the iPhone a video always plays full-screen, while on the iPad it’s an element on the page and you can use it on your site like any other HTML element.

Audio in the background

Audio played in an <audio> element keeps on playing, even if the user goes to another app using the home button (provided the app doesn’t play audio itself). Video always stops whenever the user exits Safari. When the user returns to Safari different things happen on iOS 4 and iOS5: on iOS4 the audio keeps on playing, on iOS5 the audio fades out and the user has to press the play button in the web app again.

Playlists

For the new site we want to create auto-playing ‘playlists’ consisting of multiple files. Video and audio can be on one playlist, so for example after a video ends an audio file can start.

The restrictions mentioned above make this tricky on iOS Safari. Automatically playing the ‘next’ video after a media item ended (using the ended event listener on the element) works, apart from iOS 3 where apparently the ‘ended’ event doesn’t trigger.

However, if you’re switching from an audio to a video element the original ‘click’ doesn’t come from the original element and the next item doesn’t start.

There’s a hack: it’s actually possible to put an audio file in a <video> element and vice versa. This provides one hack to counter the autoplay problem on playlists (by playing all audio in a video element). However, it doesn’t allow you to play ‘video’ in the background, which means that on the iPhone the video element always takes over Safari and you can’t play audio and read the website at the same time.

More references

Miller Medeiros has written two in-depth articles pointing out more quirks on HTML5 video/audio on iOS:

Wat is de VPRO MediaService?


woensdag, juli 20, 2011

De MediaService is een systeem om de gegevens over onze audio en video bestanden in op te slaan. Audio en video die vervolgens uitgespeeld kunnen worden op websites of andere afzetkanalen (mobiel, digitale televisie).

Het is daarmee, simpel gesteld, een plek waarin niet de eigenlijke files, streams of downloads staan, maar wel de meta-data die nodig is om dergelijke files in een site of speler aan te bieden. Op afstand is de MediaService enigszins vergelijkbaar met Nebo, de dienst van de Publieke Omroep. Belangrijk verschil is dat een redacteur in de MediaService veel meer soorten media kan aanmaken: clips, trailers, programma’s, afleveringen, seizoenen, series, albums, speellijsten en zelfs volledige archieven van een omroep of portal. Eigenlijk alle soorten inhoud die zich binnen ons domein voordoen.

Aanleiding tot de bouw van de service was onvrede over de wijze waarop tot voor kort op afdelingen en redacties in verschillende systemen programmagegevens werden ingevoerd zonder dat deze informatie gedeeld kon worden tussen de verschillende systemen. Ieder CMS en menige site had zijn eigen “gidsdata importer” met bijbehorende redactie omgeving- en beheertools. Als gidsdata onverhoeds wijzigde dan moest deze wijziging in alle systemen los verwerkt worden. Om deze situatie te doorbreken vormt de MediaService de centrale plek voor alle onderhoud van online programma- en uitzendgegevens.

Flexibel, open en dynamisch

Belangrijk uitgangspunt bij de bouw van de MediaService was dat het een flexibele, open en dynamische oplossing zou bieden. Flexibel zodat het systeem snel en goedkoop geintegreerd kan worden met meerdere systemen binnen het VPRO gebouw en in het omroep domein. Een open karakter zorgt ervoor dat de meta-data vrij toegankelijk is voor alle afnemers. En dynamisch houdt in dat aanpassingen aan de meta-data near real-time gedistribueerd kunnen worden naar alle afnemers. Deze gewenste dynamiek stond in schril contrast met de logge batch georiënteerde im-/export processen die op dat moment gangbaar waren.

Dit levert, technisch schematisch, het volgende globale proces op van de aanmaak van programmagegevens (spoorboekje) naar publikatie van verrijkte gegevens op verschillende media of platforms (de niet-techneuten kunnen in gezelschap goede sier maken door achteloos iets te melden over gebruik van XML, CouchDB of metadata-opslag…):

Omgeving van de MediaService

Inmiddels is de service anderhalf jaar operationeel en bevat hij circa 100.000 mediafragmenten. Het overgrote deel daarvan is afkomstig van radio of tv uitzendingen van de Publieke Omroep over deze periode. Een klein deel is afkomstig uit archieven van de VPRO en Uitzending Gemist. In deze archieven zit nog een veelvoud aan informatie die nog aan de service toegevoegd kan worden. Ter vergelijking: het archief van Uitzending Gemist gaat terug tot 2004 en het online archief van de VPRO gaat zelfs terug tot 1997. We hebben ervoor gekozen deze archieven niet in één keer over te zetten. In plaats daarvan worden binnen lopende projecten kleine stukjes uit de bestaande archieven naar behoefte gemigreerd. Deze strategie heeft ervoor gezorgd dat inmiddels de belangrijkste sites van de VPRO en een aantal themaportals van de Publieke Omroep (Geschiedenis24 en HollandDoc) hun media op basis van de meta-data uit de MediaService uitserveren.

In de praktijk betekent dat voor de redactie dat de informatie over de audio en video, met de inhoudelijke beschrijvingen daarvan in de MediaService worden gedaan, en dat in een apart CMS (in dit geval Magnolia) de website zelf wordt gevuld en onderhouden.

In 2011 is de VPRO in overleg met de NPO bezig de service in te richten voor themaportals waarbij de VPRO niet direct betrokken is. Aanvankelijk zou hiervoor een losse omgeving ingericht worden, maar omdat dit een situatie zou creëren die lijkt op de oorspronkelijke situatie die de MediaService juist beoogde op te lossen, is ervoor gekozen om de externe themaportals op te nemen in de huidige versie MediaService. Het beheer van de huidige omgeving zal wel geleidelijk overgedragen worden aan de NPO. Er loopt nu (medio 2011) een pilot met Spirit24 waarbij de mogelijkheden van deze oplossing verkend worden.

Meta data

Een belangrijk issue dat binnen deze pilot speelt is de externe locatie van de media meta-data. Binnen de eerste VPRO projecten was de strikte scheiding tussen CMS en MediaService vaak de belangrijkste bron van langdurige discussie. Zowel redacties als site bouwers waren gewend om binnen hun eigen omgeving rechtstreeks toegang te hebben tot de meta-data van de media. Dit gaf ze volledige vrijheid om de data helemaal naar hun hand te zetten en gebruiken. In de nieuwe situatie zit de meta-data niet meer in het CMS. In plaats daarvan moeten site bouwers een aantal services en schermen gebruiken om een koppeling te maken tussen pagina’s van de site en de media die daarop getoond wordt. Aanvankelijk lijkt dit beperkend, maar in de praktijk biedt dit vaak dezelfde mogelijkheden als de oude oplossing. Belangrijk voordeel van de nieuwe situatie is dat de site bouwers zich niet meer hoeven te bekommeren om de updates van programma gegevens, aanlevering van streaming info, koppelingen met encodeer infrastructuur en alle ander zaken die al onzichtbaar geregeld zijn.

Een mogelijk knelpunt van de nieuwe situatie is dat redacteuren en bouwers niet meer de volledige vrijheid hebben om het datamodel van de service naar hun hand te zetten. Voor een deel is deze vrijheid schijn, omdat ze al gelimiteerd wordt door de externe partijen die de data aanleveren. Maar er zijn ook scenario’s denkbaar waar dit zeker een beperking is. Zeker bij omroepbrede inzet is dit iets dat gaat spelen. Als een service voor veel verschillende gebruikers wordt ingezet, komt er een moment waarop een gebruiker dusdanig specifieke wensen heeft dat deze niet meer binnen de globale opzet van de service passen.

Op de huidige VPRO sites is de scheiding tussen media meta-data en CMS (Magnolia) langzaam een vanzelfsprekendheid geworden en het afgelopen anderhalf jaar is er eigenlijk geen aanleiding geweest om deze scheiding opnieuw ter discussie te stellen. Redacteuren brengen naar schatting ongeveer evenveel tijd door in hun CMS als in de MediaService. Hoe deze verdeling precies uitvalt is sterk afhankelijk is van het soort site. Op sites als Geschiedenis24 of Wetenschap24, waar veel tijd wordt gestoken in het inrichten en zorgvuldig aankleden van webpagina’s, is de afspeelbare media inhoud slechts één van de onderdelen op een pagina. Aan het andere uiterste van het spectrum staan de sites waar voornamelijk energie wordt gestoken in het aanvullen van de media meta-data model. Webpagina’s van deze sites (zoals Holland Doc) zijn in wezen containers waarin media clips, playlists of hele series kunnen afspelen.

Een voorbeeld van een Holland Doc pagina die gevoed wordt vanuit de MediaService

Een voorbeeld van een Holland Doc pagina die gevoed wordt vanuit de MediaService

Na anderhalf jaar hebben de beoogde voordelen van de MediaService zich bewezen:

  • De bezoeker kan zoeken of browsen door alle programma’s van de VPRO en zelfs de hele Publieke Omroep.
  • Updates en wijzigingen bij programma’s zijn onmiddellijk overal beschikbaar.
  • Alle redacties maken gebruik van dezelfde omgeving.
  • Verbeteringen aan het onderliggende systeem zijn direct voor iedereen beschikbaar.
  • Uniform gebruik van alle meta-data.
  • Hergebruik en doorverwijzing is nu veel eenvoudiger.

Met de vergroting van het aantal redacteuren, redacties en omroepen dat gebruik maakt van de Mediaservice vormt betrouwbaarheid en gebruiksvriendelijkheid van het systeem een steeds belangrijkere rol in. Zo kan de doorzoekbaarheid van de gegevens verbeterd worden en is het gebruik van de verschillende soorten meta-data een belangrijk punt van aandacht. Aan de verbetering van de Mediaservice zal zo, met de input van de groeiende gebruikersgroep, stap voor stap doorontwikkeld worden.

1 aprilgrap of Facebook “Like” knop killer: Google’s “+1″


donderdag, maart 31, 2011

Google kondigde gisteren de komst van de “+1″ knop aan. Een knop vergelijkbaar met de “Like” van Facebook, maar dan om met 1 klik zoekresultaten te waarderen en je omgeving te wijzen op goede, dan wel interessante zoekresultaten. Daarnaast biedt Google aan de knop ook te gebruiken op sites, aldus Google’s uitleg filmpje:

De aankondiging komt vlak voor 1 april, waardoor er twijfels zijn of het niet een 1 aprilgrap betreft. Met een vergelijkbare vlak-voor-1-april aankondiging werd ooit Gmail geïntroduceerd, dus dat hoeft zeker niet zo te zijn. Voorlopig werkt het in ieder geval alleen op Google.com en moet je je op Google Experimental voor de “+1″ knop aanmelden. We wachten af…

Infographics 2011


donderdag, maart 10, 2011

Wat zoek je op een vrijdagochtend in Zeist? In de felle ochtendzon stap ik uit de bus en loop ik richting hotel theater Figi. Voor de zekerheid heb ik google maps aangezet op mijn iPhone en geeft het bolletje live weer of ik de juiste kant oploop, want volgens mij is dit de eerste keer dat ik in Zeist ben.

Het is de vierde editie van het Infographics congres voor en door mensen uit het veld.
Eenmaal aangekomen in het hotel zie ik meteen dat ik op de juiste plek ben. De infographics staren mij tegemoet en de gastdame verwijst mij naar het balkon, daar is nog plaats. De keynote is al begonnen.
Ik had beter iets kunnen eten aangezien de presentatie van Gert Nielsen best zwaar op de maag valt. Hij laat gedetailleerd de ene na de andere gefilmde bloedige zelfmoordactie zien. Dit om aan te geven dat hij het gevoel mist in de verschillende infographics. Ik zie zijn punt: de vergelijking van beelden van nasmeulende lijken en de visuele vertaling daarvan d.m.v. een kaart met een getekende explosie staan in schril contrast met elkaar.
Vanzelfsprekend is er een abstractieniveau nodig om zaken in beeld te brengen, maar de emotie moet daar niet mee verdwijnen. Ander voorbeeld is de visualisatie van de revolutie in Egypte op basis van tweets:





En dan de ‘echte’ beelden:


Francien Malecki heeft zeker minder schokkende beelden dan haar voorganger. Spelenderwijs communiceren is haar motto. Door middel van van een fictief persoon laat ze zien hoe belastingplichtigen op een visueel aantrekkelijke manier hun aangifte kunnen doen. ‘Leuker kunnen we het niet maken’ lijkt een verouderde tagline. Met Francien aan het communicatieroer zou je er ‘het is gewoon hartstikke leuk om je belastingaangifte te doen’ van kunnen maken.

Resultaten van het grote interactiviteits onderzoek worden nog niet vertoond door Bas Broekhuizen, hij licht wel een tipje van de sluier op.
De laatste jaren is er een toenemende belangstelling voor infographics. Die populariseringsslag is in de jaren negentig van de vorige eeuw bij kranten en magazines begonnen. En de laatste tijd zie je in toenemende mate ook infographics bij de overheid en het bedrijfsleven. Geen artikelen met lange lappen tekst, maar toegankelijke visualisaties inclusief korte toelichtende zinnen. Nu zijn allerlei toeters en bellen mogelijk, maar voegen ze nu ook daadwerkelijk iets toe aan de informatie? En draagt interactie bij aan de effectiviteit? Bij infographics komen twee aspecten samen die voor goede informatie-uitwisseling relevant zijn. Communicatie wordt steeds visueler én wordt door de opkomst van internet en digitale media steeds interactiever. Die twee dingen samen bepalen dat genre van de informatieve graphic, en als we begrijpen hoe dat werkt, dan kunnen we dat extrapoleren naar andere vormen van communicatie.
Eerder schreef Bas Broekhuizen voor de nieuwe reporter een artikel om de noodzaak als journalist te experimenteren om informatie in beeld te brengen.

De live battle tussen Maartje Kunen en Ymke Pas, beiden illustrators, wordt ingeleid door ‘Battle Without Honour or Humanity’, ook wel bekend als de soundtrack van Kill Bill. Ik vind het spannend. De fictieve case: Steve Jobs is overleden. De infographic moet vertellen hoe, wat en waar. Ze krijgen anderhalf uur de tijd om het concept te bedenken en uit te werken.

Apple is springlevend in de presentatie van John Grimwade. The tablet revolution komt er aan. Hij doet uit de doeken wat de iPad zo goed maakt en waarom het apparaat volgens hem de toekomst is. Ondertussen zijn er 20 miljoen iPads verkocht en Wired, die in 2010 als eerste magazine op de iPad verscheen, verkocht binnen 24 uur 24.000 exemplaren van de app. Echter, inhoud is leidend en voor goede inhoud heb je inkomsten nodig, en voor inkomsten meer lezers die je alleen krijgt door goede inhoud.
Grimwade: ‘iPads rock! It’s just that Apple doesn’t’. Nadelig van Apple is dat ze Flash niet wil ondersteunen, plus dat Apple 30% van het magazine abonnementsgeld wil. Helaas is dan een papieren versie dan goedkoper. Hopelijk komen de rest van de tablets ook in opmars waardoor de marktwerking z’n werk kan doen.

De Argumentenfabriek helpt organisaties bij het inzichtelijk maken van complexe problemen door het visualiseren van informatie. Kees Kraaijeveld geeft aan dat structuur vaak moeilijk vindbaar is voor mensen. De Argumentenfabriek helpt de structuur weer terug te vinden. Helder denken is de missie, helder denken is zoeken naar een verhaalstructuur. Kees Kraaijeveld legt dit uit naar aanleiding van een typische cruijfiaanse uitspraken zen-achtige tautologie: ‘Je gaat het pas zien als je het doorhebt’ en als je die omdraait krijg je: ‘Je hebt het pas door als je het ziet’. Dat is de kern van hun filosofie.
Door middel van bijvoorbeeld de Argumentenkaart worden alle argumenten voor en tegen gevisualiseerd wat dwingt tot gestructureerd denken. Voorbeelden hiervan zijn te vinden op hun site.

René Glas bestudeert gaming en ziet een verschil in interfaces van games, onder te verdelen in ‘hypermediacy’ en ‘immediacy’.
-Hypermediacy = je bent je door de interface voortdurend bewust dat je aan het gamen bent door de aanwezigheid van de media-aspecten. Denk aan de Sims, waar je zo ver kunt gaan dat in de sidebar te zien is wat bijvoorbeeld de blaasinhoud is van je personage.
Nog een stapje verder gaat het in the World of Wardcraft, waar de speler in staat is aangebrachte modificaties aan de interface toe te passen zodat hun prestaties worden verbeterd. Het spel visualiseert gegenereerde data live op het scherm.
world-of-warcraft-2

Het spel met de data is in dat geval nog belangrijker dan het daadwerkelijke spel. Het is door de spelers zelf gemaakt en komt voort uit de participatie rondom games.
-Immediacy = De interface is soort van onzichtbaar, je bent je dus als speler niet echt bewust van de interface omdat de interface onderdeel is van de fictionele wereld. Het geheel is filmisch vormgegeven. Bijvoorbeeld in Deadspace, waar de levensduur van het personage op zijn rug wordt aangegeven door groen lichtgevende streepjes. Het wordt opgenomen in het geheel.
dead_space2-300x168
Beide ontwikkelingen, zowel hypermediacy als immediacy schijnen nieuw licht op wat interfaces op datavisualisaties in games kunnen betekenen, en met name in relatie tot immediacy. De onderdompeling in fictieve wereld of in onderdompeling in de data, alle data zelf, dat is een nieuw te ontginnen gebied voor infographics.

Wouter Kroese maakt animaties bij o.a. het actualiteitenprogramma NCRV’s Altijd Wat en geeft praktische tips voor het inrichten van een goed productieproces. Maak van de journalist een vormgever zodat hij/zij kan meedenken over metaforen. Maak illustraties niet te bont (twee steunkleuren, eenduidige typografie, geen perspectief); less is more. Een goede animator is een luie animator (constante beweging, makkelijke trucs, hergebruik van animatie). En als laatste: de sterke punch line. De informatie passeert snel en dat kan dienen als extra geheugensteuntje of samenvattende conclusie.
Zijn werk werpt vruchten af want hij (ism Subsoda) is de winnaar van de Infographic Jaarprijs 2011. Zie hier de winnende animatie Altijd Wat Wijzer Voedselverspilling:


Geinspireerd door de Amsterdamse grachtenstructuur heeft Eric Hammink een nieuwe vormgeving losgelaten op de plattegrond van het openbaar vervoersnetwerk in de hoofdstad. In plaats van vast te houden aan de rechte lijnen van de oorspronkelijke opzet, koos hij voor een concentrische opzet. Datzelfde concept heeft hij toegepast voor de nieuwe spoorkaart van Nederland. Evolutie in kaartdesign.

Aan het einde van de dag laat onze eigen GertJan Kuiper de video het woord doen. Aan de hand van voorbeelden van de Beagle en de recente iPad-app voor Tegenlicht (de Touchdoc Money and Speed: inside the Black Box) maakt hij het publiek deelgenoot van de ervaringen die de VPRO heeft opgedaan met interactieve datavisualisaties.
Ook Nederland van Boven passeert de revue. De VPRO is vol in voorbereiding van dit crossmediale project, dat een magische blik werpt op Nederland van bovenaf, waardoor de ritmes en patronen van het dagelijks leven zichtbaar worden.

Volgeladen met informatie sluit de dagvoorzitter af. En wie de battle gewonnen heeft? Volgens mij waren ze allebei erg goed, maar kwam Ymke Pas als winnaar uit de bus.

Timelapse Scrum bord


vrijdag, februari 4, 2011

Rechts in de zijbalk zie je onze Scrumcam: elke twee minuten wordt er een foto gemaakt van dit raam waarop we bijhouden hoe het gaat met de projecten die we nu aan het doen zijn. We doen dat sinds een aantal maanden met de Scrum-methode: een manier om beter software te ontwikkelen die dichter bij de wensen van de klant zit.

We hebben nu een reeks van die foto’s achter elkaar gezet zodat je een timelapse krijgt van hoe de briefjes op het bord in een dag verschuiven.

Cathode terminal voor OS X


woensdag, januari 26, 2011

Cathode terminal

Wat is er nou fijner dan code kloppen in de gouwe ouwe terminal. De cathode terminal natuurlijk:
Cathode terminal
Let op: de beeldbuis gaat hard achteruit als je de gratis versie blijft gebruiken…

GoogleTV, gevestigde orde


vrijdag, december 17, 2010

Wie was nu eigenlijk de gevestigde orde? Die merkwaardige vraag kon je je stellen toen een ‘business and development’ team van Google deze week in Geneve een presentatie hield voor de Europese broadcasters. Het was een mooie clash der culturen, en er hing in de zaal een interessante geur van wederzijds respect, argwaan en nog onvervulde mogelijkheden. Wat gaat GoogleTV worden?

Eigenlijk is iedereen er inmiddels wel van overtuigd: de convergentie van internet en TV is nu echt begonnen, het wordt ‘connected TV’. Er worden geen toestellen zonder internetaansluiting meer verkocht en grote bedrijven proberen nu de standaard te zetten: AppleTV, GoogleTV of HBBTV. Wat het ook gaat worden, duidelijk is dat de komende 10 jaar televisie kijken onherkenbaar gaat veranderen.
(meer…)

Javascript debugging met Chrome


vrijdag, december 3, 2010

Linkdump 24-11-2010


woensdag, november 24, 2010

Smarthistory

Digitaal geschiedenisboek over kunst en geschiedenis.

Gosu

Nieuwe programmeertaal op de Java Virtual Machine. Heeft static typing, closures (blocks), no checked exceptions, ranges, Java-achtige syntax.

Op het eerste gezicht een taal een beetje tussen Java en Groovy in.

Coffeescript

“CoffeeScript is a little language that compiles into JavaScript. Think of it as JavaScript’s less ostentatious kid brother — the same genes, roughly the same height, but a different sense of style.”

Een beetje syntatic sugar geïinspireerd op Python en Ruby, betere scoping, heredocs en nog veel meer. Er is een server side compiler (ook voor Node.js) en een client side interpreter (uiteraard geschreven in Javascript)

Aviary HTML5 editor

Image editor van een website die in-browser image editors levert (in Flash).