Webcamp'08

Ve dnech 27-28. 3. 2008 se uskutečnila v Praze Dejvicích v Masarykově koleji konference věnovaná webdevelopmentu a webdesignu. Konferenci pořádali Jakub Vrána a Vilém Málek.

Jakub Vrána je odborník na programování v jazyku PHP, tuto problematiku školí v rámci vlastních školení a učí na MFF UK. Píše vynikající blog PHP triky (http://php.vrana.cz).

Vilém Málek je šéfredaktor známého webového odborného časopisu o internetu Interval (http://www.interval.cz).

27. 3. 2008 – webdevelopment

Konference začala přednáškou Štěpána Bechynského na téma PHP a IIS 7.0, Expression Web 2.0 pro PHP vývojáře. Přednáška představila FASTCGI modul (www.iis.net/php/) pro provoz PHP na IIS, který vyvinul Microsoft (MS) ve spolupráci s firmou Zend. Modul je volně ke stažení a bude součástí Windows Serveru 2008. Umožňuje také kombinaci ASP.NET a PHP na jednom serveru. MS vydal také Expression Web 2.0, který nahrazuje známý Frontpage. Ve verzi 2.0 přidali základní podporu pro PHP. Funguje zvýrazňování syntaxe a doplňování funkcí z manuálu. Doplňování syntaxe nefunguje na vlastních třídách a funkcích. Pokud neprogramujete v PHP, můžete využít Visual Web Developer Express, který je k dispozici zdarma. Dá se to využít např. pro programování v JavaScriptu – v kombinaci s IE můžete debugovat JavaScript a samozřejmě programovat v .NET jazycích.

V další přednášce Derick Rethans z Holandska nám přednášel o výkonu aplikací PHP. Jeho přednáška měla název Performance of PHP Applications. Přednáška byla velmi odborná, ukazovala, jak vývojáři PHP zlepšují výkon jednotlivých částí PHP. V současném PHP použitý parser Flex bude v nové verzi PHP 5.3 nahrazen výkonnějším re2c. Derick ukazoval použití disassembleru VLD a APC pro ladění výkonu skriptů. V PHP 5.3 je také plánován GC (garbage collector), který může v určitých typech aplikací velmi pomoci, celkově se správa paměti v PHP 5.3 zlepší, pomůže i nový nativní driver pro MySQL, ale o tom mluvil v další přednášce Pavel Šindelka.

Další vývoj PHP – verze 5.3 a 6.0. Pavel se soustředil na verzi 5.3, protože to je verze, která nás čeká v průběhu roku, kdežto 6.0 je zatím v nedohlednu. Z novinek ve verzi 5.3 zdůraznil jmenné prostory (namespaces), pozdní statickou vazbu (late state binding), zkrácený ternární operátor, magickou konstantu DIR a hlavně novou knihovnu mysqlnd, která nahradí stávající libmysql. Díky nové knihovně bude nativní podpora zahrnuta přímo do PHP, bude mít vlastní vývojový cyklus a oproti dnešnímu řešení dojde k ušetření zhruba poloviny paměti. Bude také fungovat omezení paměti, které nastavíte v php.ini, což dnes pro MySQL databázi neplatí a někdy to způsobuje velké problémy. Spolu s GC to jistě přinese řadu zlepšení.

Jakub Vrána měl přednášku o Generování administračního rozhraní (www.adminer.cz). Dokumentace, kterou na webu zveřejnil, ukazuje všechny možnosti, které jeho systém umožňuje. Nám ale také ukázal něco zevnitř jeho systému. Mě zaujal hlavně skript, který používá pro porovnání SQL skriptu, ze kterého se generuje administrační rozhraní, se stávající databází. Skript potom vyhodí SQL skript obsahující příslušné ALTER příkazy.

Borek Bernard se nevěnoval PHP, ale technologiím pro webový vývoj. Mluvilo se o MS Silverlightu, Adobe Flexu ve kterém je nedávno spuštěný Adobe Photoshop Express. Dalším tématem také byly webové aplikace pro desktop. Adobe AIR, Mozilla Prism, Google Gears a Jaxer.

Jan Tichý měl zajímavou přednášku na téma Návrhové vzory. Problematika návrhových vzorů je pro objektové programování velmi důležitá, ale mnoho programátorů si myslí, že v PHP vystačí s procedurálním programováním. Přednáška obsahovala nejběžnější návrhové vzory a ukázala jejich aplikaci v použití v Zend Frameworku, kde se dá najít dost příkladů. V přednášce byla zmíněna kniha Rudolfa Pecinovského Návrhové vzory, která vyšla v nakladatelství Computer Press v roce 2007. Kniha není jen sbírka typů návrhových vzorů, ale také učebnicí moderního programování. Autor je zkušený učitel jazyka Java, ale poznatky si můžete odnést i pro programování v PHP 5.

V přednášce PHP a Silverlight pomocí Phalangeru představil Tomáš Petříček aktuální verzi Phalangeru, který umožňuje programovat Silverlight za pomoci PHP a případně ho kombinovat s .NET technologií. Více podrobností na http://php-compiler.net.

První den zakončil David Grudl přednáškou Vznik a architektura Texy. Zpracování dokumentu s ohledem na strukturu textu není vůbec jednoduché. V Texy jsou použitý dva parsery, blokový a řádkový. Celý dokument se transformuje do DOM a převede do TexyHtml.

28. 3. 2008 – webdesign

Druhý den se věnoval webdesignu, dopoledne bylo převážně zaměřené na přístupnost. Věnoval se tomu David Špinar v přenášce o Českých pravidlech přístupnosti, která 1. 3. 2008 vstoupila v platnost pro českou státní správu a samosprávu.

Pokračovala přednáška Přístupnost komerčních portálů, kterou představili Lukáš Marvan ze Seznamu a Karel Břinda z centra Tereza. Výsledky jejich spolupráce jsou vidět na stránkách Seznamu, nejen v přístupném vyhledávání a v přístupné CAPTCHe. Seznam definoval strategii pro rozvoj přístupnosti na svých projektech.

Radek Pavlíček v jejich společné přednášce vysvětlil co je důležité z hlediska přístupnosti a software JAWS. Mimořádně zajímavě působila část přednášky Michala Jelínka. On sám jako nevidomý předvedl praktické ovládání prohlížeče pomocí odečítacího programu JAWS. Přednáška poukázala na chyby, které vývojáři dělají a tím znepřístupňují stránky nevidomým.

Tomáš "Chamurappi" Hradil představil svůj český validátor, okolo kterého se strhla docela zajímavá diskuse. Tento validátor je podle mě hlavně docela dobrá pomůcka pro ty, co neumějí anglicky.

Patrick Zandl nám řekl o internetové televizi Stream. Ukazoval, jak se měnil návrh designu v průběhu vzniku projektu až do dneška. Přítomné upoutala formulace, že musí mít kolečko pro křečka aneb jak si udržet diváka co nejdéle na webu.

Martin Hassman měl přednášku o HTML5. Viděli jsme některé novinky, které už mají prohlížeče implementovány. Ať je to webkit (SQL5, storage engine, canvas), IE8 (canvas, hashchange) nebo Opera 9 (WebForms2). SQL5 používá sqlite pro lokální db na straně prohlížeče.