søndag 16. mars 2014

Leksikonsøk på TVen?

Hver søndag, starter jeg som regel dagen min med litt surfing fra sengekanten, før jeg drar meg ut av sengen, trer inn i dusjen og deretter lager egg og bacon til frokost.

Jeg er vel neppe alene om dette, å sitte på sengekanten for å lese litt nyheter eller andre artikler. I morges tenkte jeg over: Hvordan gjør JQuery Mobile seg på en SmartTV? Jeg har jo to SmartTVer og flere JQuery Mobile sider jeg har laget før - så det var jo en enkel sak å teste.

Ransake fant jeg ut var en god kandidat, her er det utstrakt bruk av CORS (Cross-Origin Resource Sharing), gjennom min egenutviklede API-PROXY, som mellomlagrer resulatene. Ransake benytter seg også av NSF (Norsk Scrabbleforbund) sin ordliste, for "tilfeldig"-funksjonen (søk etter tilfeldige emneord).

Testen min var ikke -om det virker-, dagens SmartTVer baserer seg nemmelig - som de fleste nettleserne på WebKit. At det virket, var nesten forventet - og det virket!

Universell utforming

Når det kommer til grad av universell utforming, vil jeg si at her er det TVen som ødelegger moroen.
Teksten, bilder og alt annet fungerer utmerket og som forventet, knapper er store og tydelige, illustrsajoner like så. Men tekst-inntasting gjennom en fjernkontroll er fremdeles en utfordring.

Nå kan jeg riktignok fjernstyre TV-en min gjennom en APP, slik at jeg kan bruke tastaturet jeg foretrekker på telefonen (eller nettbrettet). Eller, jeg kan velge å koble til et tastatur til TVen.

Hvor mange som kobler tastatur eller mobile enheter til TV-apparatene, vet jeg ikke. Hvis mange gjør dette, er kanskje ikke inndata et like stort problem som jeg personlig føler det er. 

Funksjonalitet

Som forventet, fungerte funksjonaliteten på lik måte som på mobil, nettbrett eller PC.
Jeg må egentlig si at jeg var overrasket over hvor raskt det gikk, særlig når jeg henter tilfeldige ord og så søker opp fra 8 API-tilbydere og laster dette inn asynkront i Ransake. Jeg fikk opp bilder fra Flickr, artikler fra Store Norske Leksikon, artikler fra Bergen byleksikon, Norsk Kunstnerleksikon, WikiPedia og flere andre kilder. Alt fungerte sømløst og kjapt, selv om SmartTVer har svakere prosessor enn dagens telefoner.

Her skinner selvsagt den asynkrone lastingen godt, man laster nemmelig inn data - uavhengig av grensesnittet. Grensesnittet lastes bare en gang og innholdet lastes uavhengig. I motsetning til synkrone webapplikasjoner, vil man ikke her måtte vente på svartider, domeneoppslag og annet. At jeg har laget en proxy for API-er, som både omgår CORS-problemet (same origin policy) og mellomlagrer JSON-treff, betyr at jeg får enda raskere søketreff.

Erfaringer fra bruk

Tilfeldig-knappen synes jeg er enda mer på sin plass på TV, enn på mobil. Jeg er glad i den på mobilen også, men på TV-en er inndata enda kjedeligere enn på mobilen. Jeg liker ikke å skrive på OSD (On-Screen Display) tastatur. At jeg kan ligge på sengekanten og trykke på "tilfeldig" og enten laste tilfeldige bilder, basert på ord fra NSF-listen (eller se artikler), er ganske kult. Jeg vil si det er minst 80% kult, en måte å snuble over innhold på.

Jeg tror ordskyen (som jeg ikke har utviklet) - der jeg skal visualisere brukerskapte spørringer og utbredelsen (relativ forekomst hos datatilbyderne) - vil være enda en god kilde for bruk. Særlig gjelder nok dette på TV, hvor man da kan lese seg gjennom en strøm av hva andre folk har søkt etter! Man har da en "trending", ved at brukerne skaper metadata om bruken.

Andre kule ting å gjøre på mobil/tv-APP

Jeg har tenkt på å implementere SSE (Server Sent Events), som betyr at jeg kan fra serverens side påtvinge oppdateringer av grensesnittet til brukeren. Eksempel på dette er et parkeringssystem jeg lagde i HTML5, med kartbobler, som viste kapasite på 3 parkeringshus i Bergen. Her brukt jeg AppCache, LocalStorage, SSE og selvsagt responsivt design. Jeg har tenkt litt tanker rundt dette i morges, når jeg lå på sengekanten.
Hva er egentlig vitsen med informasjonstavler, når man kan lage HTML5 APPS med SSE?
Man trenger ikke dyre infotavler med proprietær programvare, man kan like gjerne lage HTML5-baserte APPs som fungerer på alle plattformer.

Tanker om ransake

Jeg er usikker på hva jeg skal gjøre med ransake, den fungerer fint som en demo og jeg kan utvikle mer på den. Men jeg tenker at Ransake -navnet ikke er bra nok. Hva er det for noe? Enten må jeg finne på et "hipt navn" og skape assosiasjoner, eller jeg må prøve å få en bedre definisjon av hva ransake er for noe. Det er ikke utelukkende leksikon, samt jeg vil koble på mer.. Men hva er det egentlig (hvis man ser bort i fra at det er en slags proof of concept).

Hvis jeg for eksempel skal lansere Ransake som en APP, på TV og mobil, hva kaller man det? :-)
Den vil jo gi treff i alt fra WikiPedia til forskjellige nettleksikon, til flickr og enda flere kilder jeg kobler på.
Jeg er usikker på hvordan jeg skal definere ransake, hva er det, er det håndfast? Hvorfor skal folk bruke ransake? Må jeg snevre inn "scopet" til bare leksikale kilder, ellre bør jeg koble på populære tjenester som instagram, facebook og annet? Jo flere datakilder jeg kobler på, jo mer "ullent" føler jeg tjenesten blir.

Men samtidig blir en mer ullen tjeneste kanskje mer morsom å bruke, med NSF-ordlisten og tilfeldig-funksjonen, ser jeg jo lett at mange søkerod ikke får treff i flickr. De fleste ordene har artikler i en av de autoritative kildene, men bilder er en annen ting - her må jeg nok eventuelt koble meg på flere bildetjenester!