Showing posts with label adobe. Show all posts
Showing posts with label adobe. Show all posts

Tuesday, January 6, 2009

Lights off - un „împrumut” foarte util

Acum ceva vreme urmăream un video pe YouTube. După puţină vreme mi-a sărit în ochi butonul de „Lights off” situat în dreapta sus relativ la player-ul video. Un click pe acest buton scade luminozitatea întregii pagini, mai puţin a video-ului care este rulat. Încă un click pe buton, sau oriunde în pagină, readuce pagina la starea iniţială.
Se pare că acest feature este disponibil acum doar pentru anumite video-uri (unele voci spun că doar pentru cele publicate de către universităţi), dar sper să fie lansat cât de curând „cu audienţă generală”.
De ce am considerat că este un feature demn de luat în seamă şi de scris despre el (deşi în ultimele câteva luni, YouTube a văzut destul de multe adăugiri la capitolul „features”)? Pentru că mi se pare că e unul din cele care contribuie mult în partea de utilizabilitate a interfeţei web de redare a filmelor. De ani buni media playerele „clasice” au învăţat că un film se vede cel mai bine când ai cât mai puţine elemente în jur care distrag atenţia. Pe web în schimb, pe lângă conţinutul video „util” de multe ori se găseşte o mare cantitate de informaţie care poate fi considerată „zgomot”, cel puţin atâta vreme cât este urmărit propriu-zis filmul. Soluţia (care ar trebui să fie destul de simplă tehnic), permite înlăturarea în mare măsură a „zgomotului” permiţând în acelaşi timp utilizarea relativ neschimbată a site-ului (deşi mi-ar fi plăcut mai mult o abordare a la Lightroom, vezi mai jos).

Am totuşi o reţinere legată de generalizarea acestui feature. Prin înlăturarea „zgomotului” din pagină, scade şi interesul utilizatorului către (eventualele) reclame inserate în pagină. Deşi, o dată cu introducerea suportului pentru captions şi a reclamelor în video, problema este, aparent rezolvată.
De ce am menţionat totuşi termenul de împrumut în titlu? Prima oară când am văzut acest feature, a fost în Adobe Lightroom. Aici, opţiunea se prezintă sub numele de „Dim lights” şi are două niveluri: primul nivel scade luminozitatea întregului ecran, mai puţin a pozei cu aproximativ 70%, în timp ce în al doilea nivel, totul devine negru, mai puţin imaginea curentă. De ce spun că implementarea e mai deşteaptă în Lightroom (deşi e de înţeles, comparăm totuşi interfeţe web cu (una din cele mai frumoase) interfeţe de aplicaţii desktop)? În cazul Lightroom, aplicaţia poate fi controlată fără a ieşi din modul „Dimmed lights” (da, chiar şi pe întuneric beznă :D ), în timp ce în YouTube, orice click în afara playerului video atrage „aprinderea luminilor”.

Sunt tare curios să văd cu ce o să mai vină YouTube, cu atât mai mult cu cât unii prevestesc sfârşitul video-ului pe web (dar despre asta, în alt episod).
miChou, editorul de serviciu :)

Monday, November 24, 2008

Crawlere şi interfeţe web Flash

Multe companii preferă să-şi impresioneze vizitatorii site-urilor lor prin realizarea de interfeţe în totalitate în Flash. Această platformă oferă experienţe multimedia superioare unui conţinut exclusiv HTML+CSS şi în plus, în ultima vreme, odată cu lansarea framework-ului de aplicaţii rich client Adobe Flex, a devenit accesibilă unei baze mult mai largi de dezvoltatori.

Una din problemele cu care totuşi aceste site-uri s-au confruntat până recent a fost invizibiltatea pe motoarele de căutare. Crawler-ele lor nu erau capabile decât să indexeze conţinut HTML (text), în timp ce obiectele SWF integrate in pagină erau total opace. Adobe era conştient de acest lucru, astfel încât în această vară a lansat o variantă simplificată de Flash Player, capabilă să parseze conţinutul text din clipurile SWF, şi pe care a pus-o la dispoziţie principalelor motoare de căutare (Google şi Yahoo), pentru ca acestea să poată indexa inclusiv conţinutul Flash.

Astfel, astăzi am pornit un mic experiment pentru a verifica dacă într-adevăr Google sau Yahoo indexează conţinutul Flash. Pentru acest experiment, am avut nevoie de:

  • O pagină cu conţinut Flash/SWF. Pentru aceasta, cel mai la îndemână a fost să realizez o aplicaţie Flex simplă, care conţine câteva componente cu conţinut text (Label-uri).
  • Un search term oarecum original (ca să nu stăm să căutam acul în carul cu fân... I mean în search results pages :) ). Imaginaţia mea debordantă a ales Any Donkey Owns Basically Everything.
  • Un link către pagina noastră, pentru ca Google crawler-ul să poată ajunge la ea şi s-o indexeze. La asta e bun post-ul acesta.
Long story short, aplicaţia de test rezultată poate fi accesată aici.

Puteţi oricând verifica dacă textele din clipul SWF au fost indexate căutând pe Google search term-ul magic. Este de aşteptat ca acest lucru să se întâmple (dacă este cazul), peste câteva zile. Voi reveni şi eu oricum, cu un post cu rezultatele mele, so stay tuned!


Ștefan

PS: Are 10 puncte cine găseşte modul în care am construit search term-ul :)

Thursday, November 6, 2008

Şi a fost şi a treia ediţie de FlexCamp...


... iar noi am fost acolo :)

Pe scurt: programul serii a fost următorul:

  • 17:45 - 18:15: Înregistrare participanţi (aka bere & pizza :D )
  • 18:15 - 18:30: Deschidere
  • 18:30 - 18:45: Keynote Matt Chotin
  • 18:30 - 19:00: Keynote follow up
  • 19:00 - 19:30: Why/Where AIR applications use case (Mihai Corlan)
  • 19:30 - 20:00: Cristian Pascu - FlairBuilder
  • 20:00 - 20:30: Pauză
  • 20:30 - 21:00: Boost your UI in AIR (Dragoş Dăscăliţa)
  • 21:00 - 21:30: Bending pixels and more (Mihai Pricope)
  • 21:30 ~ 22:00: o prezentare scurtă despre Cabanova (îmi scapă numele prezentatorului pe moment) intrată în program pe ultima sută de metri :)
Pe larg
Dacă am înţeles eu bine, ăsta a fost primul FlexCamp organizat simultan în 3 locaţii din Europa: Hamburg, Viena şi Bucureşti. Ideea iniţială era să fie broadcast-uite cu video cu tot toate cele 3 FlexCamp-uri. Însă din motive de logistică, particularităţi de infrastructură (o transmisie video cere broadband pentru o vizualizare decentă) şi diferenţe de limbă s-a decis transmiterea doar a prezentărilor, însoţite de sunet.

Să trecem deci la prezentări:

1. Keynote - Matt Chotin
Ca orice keynote, a fost un speech destul de general orientat pe noutăţile pe care le introduce FlashPlayer 10 şi pe ce ni se pregăteşte o dată cu Flex 4 şi Thermo.

2. Why/Where AIR - AIR apps use case
Prezentarea a fost ţinută de Mihai Corlan, unul din cei 4 platform evanghelişti din Adobe România. Un exemplu foarte fain de situaţie unde nu numai că folosirea unei aplicaţii AIR se preta, dar adăugă valoare şi feature-uri destul de importante unei aplicaţii Flash deja existente. Este vorba de MotorPlay şi de revista lor pe care aşteptăm să o vedem cât de curând în format .air . Practic Mihai Corlan şi Miţi Pricope au lucrat împreună cu dezvoltatorii de la MotorPlay pentru a trece revista lor dintr-un format Flash exportat cu Projector într-o aplicaţie AIR cu funcţii de offline browsing, auto update şi alte bunătăţi.

3. Flair Builder cu Cristi Pascu
Cristi a prezentat produsul la care lucrează singur de 6 luni şi care se doreşte să fie un tool de prototipare rapidă pentru Flex. E un fel de FlexBuilder, dar care conţine deja scriptate o sumă de comportamente, suport pentru stări şi tranziţii, etc. Prezentarea a fost interesantă atât prin prisma faptului că e vorba de un produs dezvoltat de o singură persoană cât şi a punctului de vedere (deseori neglijat) de la care pleacă - punct de vedere foarte bine sintetizat în „Clients are from Mars, Developers are from Jupiter and Project Managers are still on the Moon”.

Deşi nici Cristi nu e încă sigur de direcţia sau abordarea pe care o va avea Flair Builder, mie personal mi se pare o aplicaţie faină care permite dezvoltatorilor să facă rapid un prototip arătabil clientului şi care în mare să se comporte ca o aplicaţie reală, lăsându-le astfel mai mult timp de dezvoltare pentru ceea ce va deveni aplicaţia finală. (Cristi puncta bine că deşi dezvoltarea iterativă e foarte bună, datorită problemelor inerente de comunicare între client şi dezvoltatori, de multe ori progresul este destul de lent şi diferenţele între iteraţii pot fi puţin vizibile ceea ce poate duce la frustrarea clientului).

4. Boost your UI in AIR
Prezentarea lui Dragoş Dăscăliţa a vrut să atingă mai multe aspecte legate de UI ale dezvoltării aplicaţiilor AIR, dar, din păcate, Dragoş n-a apucat să-şi facă tot spectacolul.
Grosul prezentării a fost legat de skinarea aplicaţiilor AIR/Flex, Dragoş argumentând soluţia skinării programatice. Aceasta are avantajul scalabilităţii şi a unei oarecare flexibilităţi folosind CSS faţă de skinarea „grafică” ce foloseşte PNG-uri. A treia variantă de skinare (care-l sperie groaznic pe Miţi) este cea folosind simboluri Flash „pure” încărcate dintr-un SWF generat (cel mai probabil) cu Flash Authoring Tool.
Al doilea punct din prezentare a fost o comparaţie între DataGrid şi Repeater. În afară de nişte concepte de performanţă şi două-trei lucruri legate de limitările celor două abordări, partea asta a fost cam păsărească pentru mine (lucru deloc de mirare având în vedere experienţa mea deloc vastă în Flex).
Prima din cireşele de pe tort şi ultimul punct din prezentarea lui Dragoş a fost legată de PixelBender, subiect continuat cu mare artă de către Miţi în prezentarea următoare.

5. Bending Pixels and more
Într-o formă de zile mari şi cu un stil numai bun pentru a ţine audienţa trează la ora 21 şi ceva (şi după câteva beri), Miţi a prezentat unul din feature-urile foarte faine din FlashPlayer 10 şi anume PixelBender.
PixelBender este practic un limbaj de shadere pentru runtime-ul Flash. Marele lui avantaj este că ştie să profite de arhitecturile multi core şi ni se promite că în curând va şti să se execute şi pe placa grafică, acolo unde există posibilitatea. Astfel, se pot scrie diverse shadere în PixelBender care apoi sunt compilate în bytecode Flash şi încărcate într-o aplicaţie Flash/Flex. De aici pot fi aplicate pe imagini, pe video sau chiar pe componente Flash/Flex.

Un foarte fain exemplu de thinking outside the box a fost folosirea unui shader PixelBender pentru a mixarea a două sunete. Şi aici sporul de performanţă era vizibil, codul care folosea PixelBender fiind de 3-4 ori mai rapid decât cel implementat echivalent în ActionScript.

Magda a promis să urce o arhivă cu codul demonstrat de Dragoş şi Miţi pe myadobe cât de curând :)

6. Cabanova
O prezentare intrată „în concurs” pe ultima sută de metri a fost prezentarea despre Cabanova. Cabanova e un site builder realizat în Flex care ştie tot felul de lucruri interesante şi care în plus arată şi foarte bine. Singura mea nelămurire (pe care am uitat să o lămuresc) e cât şi unde diferă Cabanova faţă de nou lansatul ICE.

Per total a fost un eveniment foarte fain, prezentat de oameni entuziaşti şi entuziasmaţi pe bună dreptate. Câteva poze furate în timpul prezentărilor găsiţi aici.
Mihai