Contributii la WebKit si web standards
Posted by cataling on noiembrie 29, 2011
Filed Under Echipa, Muncă, Recrutare, România | 6 Comments
Salut,
Sunt Catalin Grigoroscuta, si vreau sa va vorbesc despre cateva lucruri foarte interesante la care lucram in Adobe Romania, lucruri despre care poate putina lume stie ca sunt facute la noi, si despre echipa care lucreaza la ele.
Numele echipei in care lucrez acum la Adobe Romania este “WebKit Expressiveness”, iar misiunea noastra este de a impinge mai departe limitele a ceea ce este posibil sa faci folosind tehnologii Web. Adobe a fost inca de la inceput si continua sa fie partenerul designerilor si al oamenilor creativi in general, ajutandu-i sa-si transpuna ideile in spatiul online. Pentru asta, am facut tools-uri destinate oamenilor de creatie (gen Photoshop, Illustrator, Flash Authoring, si restul aplicatiilor care formeaza Creative Suite), insa i-am ajutat si in a-si aduce creatiile in fata utilizatorilor. Astfel, pe vremea cand standardele web permiteau putin peste simple documente HTML, noi am facut Flash Player-ul – care in esenta nu este decat o platforma ce permite afisarea unui continut mult mai “rich” decat permiteau browserele si standardele din spatele lor.
Intre timp lucrurile au evoluat, a aparut explozia device-urilor mobile (smart phones, tablete), HTML(5) s-a impus ca standard de facto pentru prezentarea continutului cross-devices si a evoluat foarte mult ca standard, insa misiunea noastra a ramas aceeasi: de a ajuta oamenii creativi sa faca continut cat mai bun, pe care sa-l poata distribui unui numar cat mai mare de oameni. Desi standardele web au evoluat foarte mult in ultima vreme (ajunge sa runcati o privire pe www.theexpressiveweb.com ca sa va faceti o idee cam unde s-a ajuns), noi credem ca mai sunt inca multe lucruri de imbunatatit, si vrem sa ajutam activ la asta.
Am inceput acum un an si ceva, cand lucram cu o ehipa din statele unite la un prototip – o incercare de a publica continut profesional pentru reviste in formatul HTML. Desi poti face multe lucruri intr-o pagina HTML, afisarea unei pagini dintr-o revista profesionala (gen Wired Magazine), al carei design este facut cu tool-uri profesionale (gen InDesign, Illustrator), la un nivel inalt de fidelitate, care sa se vada bine pe orice tableta, pur si simplu nu este posibil. Nu voi intra aici in detalii din lumea print-ului, insa doua dintre limitarile majore de care ne-am lovit au fost: cum sa faci un text sa “curga” in mai multe regiuni definite in pagina, astfel incat sa arate bine pe cat mai multe rezolutii, si cum sa “decupezi” textul in jurul unor imagini cu forma arbitrara. Solutii tehnice au fost gasite pe moment, insa presupuneau cunostinte foarte avansate de JavaScript, si o complexitate foarte ridicata. Asa ca ne-am gandit: ce-ar fi sa impingem mai departe standardele HTML/CSS astfel incat lucrurile acestea sa fie simplu de realizat intr-o pagina HTML de catre oricine?
Asa au aparut CSS Regions si CSS Exclusions, primele noastre contributii la standardele web (ma refer aici la Adobe Romania). Acum un an, la MAX 2010, am aratat primul prototip de regions si exclusions. Am luat WebKit-ul (HTML layout engine-ul din spatele cunoscutelor browsere Chrome si Safari, si pe baza caruia sunt implementate si browserele de pe Android si iOS), si am inceput sa-l modificam pentru a adauga suport de regions si exclusions. Am reusit apoi sa instalam acest WebKit modificat pe o tableta Android (lucru nu chiar trivial – dar despre asta in alt post), si l-am prezentat la MAX. Alexandru Chiculita (aka Chicu), Virgil Palanciuc si Andrei Bucur au fost temerarii care au reusit sa faca prototipul de WebKit, iar Razvan Caliman (aka TSK) ne-a aratat ce poate face un web designer cu noile feature-uri ce CSS.
Reactia comunitatii web a fost una foarte buna, asa ca am mers mai departe pe doua directii: una de standardizare, contretizata sub forma unei propuneri de specificatie pentru W3C (organismul care se ocupa de standardele HTML si CSS), si a doua de implementare a specificatiei in WebKit. Si nu ma refer aici la un prototip peste WebKit, ci chiar la contribuitia in proiectul WebKit – proiect open source. La nici un an de cand am inceput sa facem asta, CSS Regions si CSS Exclusions au ajuns specificatii W3C, prima parte din CSS Regions a fost implementata in WebKit si se gaseste deja in Chrome 15, iar Microsoft a implementat deja acest spec in IE10. Doi dintre colegii mei, Alexandru Chiculita si Mihnea Ovidenie sunt acum committers in WebKit (titlu acordat de ceilalti membri ai proiectului ca recunoastere a contirbutiilor aduse), si lucram impreuna cu Apple si Google la WebKit (de altfel, ingineri de la Apple au ajutat chiar la implementarea de CSS Regions). Mai multe despre CSS Regions puteti gasi pe Adobe Labs; pentru un quick intro puteti citi acest articol, iar aici gasiti un demo inregistrat.
Nu ne-am oprit insa la Regions si Exclusions: o alta directie pe care ne-am hotarat sa o exploram este cea aplicarii de efecte pe elemente HTML. SVG-ul permite deja aplicarea anumitor efecte pe elemente SVG (gen blur, shadow), iar acum se lucreaza activ la aplicarea acestor efecte pe elemente HTML. Lista efectelor posibile este insa una restransa, limitand creativitatea autorilor de continut. Inspirandu-ne din lumea jocurilor, ne-am dat seama ca putem extinde concepul de “filtre” din SVG (si apoi HTML) permitand autorilor sa-si creeze propriile filtre prin vertex shaders si pixel shaders. Prin aplicarea de shaders arbitrare pe orice element HTML, posibilitatile deschise sunt uimitoare. Puteti vedea aici un quick demo cu cateva dintre lucrurile care se pot face, si mai multe in acest articol introductiv. Echipa din Romania, cu ajutorul unor interni, a implementat un prototip de CSS Shaders in WebKit, care a fost prezentat la MAX 2011. In prezent, lucram la standardizarea lui (cu ajutorul unui coleg din Statele Unite), si la implementarea din WebKit mainline.
Nu voi mai intra in alte detalii despre aceste lucruri, insa as vrea sa vorbesc putin si despre echipa care sta in spatele lor (Chicu, Mihnea, Raul, TSK). Intai de toate, sunt oameni foarte pasionati (de web, de design, de a face lucruri noi si creative), care vor sa schimbe status quo-ul. Apoi, sunt oameni cu foarte multa experienta in programare. Chicu, Mihnea si Raul sunt programatori C++, insa cunosc foarte bine tehnologiile web (JavaScript, HTML, CSS), si programeaza atat pe Windows cat si pe OS X. Si bineinteles, la baza au cunostinte solide din ceea ce numim generic “computer science” (algoritmi, structuri de date, concepte si paradigme de programare). TSK este un web developer, care actioneaza ca o legatura intre lumea C++ si lumea dezvoltatorilor de aplicatii web, si ne ajuta sa ne dam seama cum vor folosi dezvoltatorii web feature-urile pe care le propunem.
Este o echipa mica, insa talentata, creativa si foarte ambitioasa, cu planuri mari. Am dori sa gasim si alti oameni la fel de pasionati si talentati care sa ni se alature in aceasta misiune de a face web-ul mai bun, si chiar avem pozitii deschise in echipa si cautam activ.Asa ca, daca sunteti sau cunoasteti oameni cu experienta in C++, pasionati de web, si care vor sa contribuie la ceea ce facem noi, trimiteti-ne un CV (aici gasiti mai multe detalii despre ce trebuie sa stiti pentru a aplica pe aceasta pozitie).
Comments
6 Responses to “Contributii la WebKit si web standards”
Leave a Reply


Felicitari pentru tsk
si programatori
Eu fac parte din “vechea garda” a dezvoltatorilor web ce lucreaza exclusiv in Flash. Recent am incercat sa trec la jQuery/HTML5 si vreau sa zic ca imi este foarte dor de strong typing si oop(oop adevarat, nu ce are javascript-ul). M-as plange si de faptul ca a trebuit sa ma intorc la practici antice pentru debugging dar sa zicem ca FireBug rezolva o parte din problema.
As vrea sa stiu cam cat de greu a fost pentru voi (dezvoltatori in C++) sa faceti tranzitia la dezvoltarea de feature-uri pentru web.
In alta ordine de idei, Facebook decis recent sa forteze migrarea pe OAUTH 2.0 pentru aplicatiile ce folosesc api-ul lor.
http://developers.facebook.com/blog/post/614/
Asta inseamna ca micul buton de Login with Facebook ce apare la “Leave a Reply” nu va mai functiona corect.
Mentionez acest fapt deoarece m-am lovit si eu recent de problema asta, sper sa va fie de folos.
Multumim de comentariu, Valentin.
Stim ca tool-urile pentru developerii de HTML/JS nu sunt extraordinare, este una din directiile in care incepem sa ne uitam activ. Credem ca putem contribui la imbunatatirea mediului de development pentru web.
Cu tranzitia catre web, i-as lasa pe baietii care au facut asta sa comenteze. Ce pot sa spun este ca, desi fac features pentru web, la baza tot hardcore C++ development este. Este adevarat, bineinteles, ca trebuie sa se puna si in pielea oamenilor care vor folosi aceste features, iar testele sunt scrise in HTML/CSS/JS, insa nu este chiar acelasi lucru cu a face aplicatii web. Si pentru lucrurile mai avansate (gen demo-uri cool), il avem pe TSK, care este web developer.
[...] inca, CSS Regions este o initiativa pornita din Adobe Romania, implementata tot in Romania de catre echipa WebKit. Faptul ca CSS Regions a ajuns in Chrome pentru Android ne demonstreaza ca obiectivul nostru de a [...]
[...] inca, CSS Regions este o initiativa pornita din Adobe Romania, implementata tot in Romania de catre echipa WebKit. Faptul ca CSS Regions a ajuns in Chrome pentru Android ne demonstreaza ca obiectivul nostru de a [...]
[...] In the end i just want to mention that CSS Regions initiative started in Adobe Romania office and was also implemented by a team from Adobe Romania ( the Webkit team). [...]