Od Karmi k Restafari
Dobrá předsevzetí mají nejdelší život. Tak dlouho ležely nadesetinu až načtvrt připravené články v šuplíku, až autora život poučil, že už je nikdy nedopíše.
Když před rokem a půl publikoval první článek o Ruby on Rails na tomto blogu, neexistoval v Čechách (veřejný) spolehlivý Rails hosting. Jediné informace o Ruby a Rails byly bez kontextu, útržkovité nebo zastaralé. Neexistovalo fórum ani IRC kanál na výměnu zkušeností a kontaktů. Neexistovala setkání vývojářů v Ruby. Ani svobodný software v Ruby českého původu. Nikdo nepsal testy, leckdy protože nevěděl, že se nějaké testy pro webové aplikace píšou. Pro lokální vývojářskou komunitu bylo kromě několika výjimek Ruby on Rails nesrozumitelný úkaz, který je jim přece k ničemu, když „mají svoje PHP a tam to jde taky“. Až na to poslední :) se za tu dobu leccos změnilo. Proto je na místě alespoň ta nejmenší rekapitulace.
Rok a půl v Ruby a Rails
Čtyři články na tomto blogu tvoří (bohužel) stále neujucelenější informaci o Ruby on Rails v češtině. Pokud se chce někdo o Rails dozvědět, a začít s nimi, rozhodně má kde (přestože např. routing v Rails je nyní o pár světelných let dále). (Začínat s knihou lákavě nazvanou „Začínáme programovat v Ruby on Rails“ je dle oficiálního stanoviska Československého sdružení uživatelů programovacího jazyka Ruby rozhodně nedoporučeno :) Mission accomplished. Děkuji všem čtenářům, kteří mi napsali do komentářů nebo e-mailem!
Automatizované testování aplikací, jedna z nejdůležitějších součástí Rails a zároveň téma, které Rails pomáhaly svojí atraktivitou mezi webovými vývojáři propagovat, už není tou vysmívanou věcí „na kterou nemáme čas a peníze“. Už i v české Ruby komunitě se vedou spíše debaty kterou testovací strategii a technologii zvolit a nikoliv jestli testovat či netestovat. Přednášky o automatizovaném testování jsou obecně sice stále unheimlich, ale však „oni“ to i do toho Zend Frameworku nakonec dodělají a zase všichni popojedem :)
V Čechách nyní existuje přátelská a dosti rozmanitá komunita vývojářů v Ruby a Rails, která se pravidelně setkává v Praze, a tak kdokoliv z vás by chtěl o Rails zjistit více, může tak učinit i mimo virtuální svět internetu. Máte-li to do Prahy daleko, můžete většinu z nás pravidelně potkat na IRC kanále #rubyonrails (IRCnet).
Po konferenci Ostrava on Rails v roce 2007 proběhla v Praze následující rok mezinárodní konference o Ruby, EURUKO 2008. Ruby se vyučuje na Filosofické fakultě Univerzity Karlovy a na Unicorn College.
Čeští Ruby vývojáři se zapojili i do mezinárodní komunity a v Čechách vzniká dost open-source software. Zajímá-li vás pokrok v Rails za uplynulý rok, podívejte se určitě alespoň na k internacionalizační/lokalizační framework (I18n) — viz průvodce ve formě živé aplikace. Konkrétní způsob, jak integrovat Rails lokalizaci do vaší aplikace si můžete prohlédnout v ukázkové mini-aplikaci.
Rails jsou v obecném povědomí čím dál známější, i když stále jako ten „divný“ framework v tom „divném“ jazyce (který my se učit nebudem', když máme to svoje atd atd ). To ale vůbec nevadí. Síla Rails byla od začátku v něčem úplně jiném, než že jsou „tečka za webovými frameworky“. Nic takového nikdy Rails nebyly ani být nechtěly.
Síla Rails od počátku byla v tom, že nekompromisně implementovaly ty nejlepší z prakticky možných řešení pro webový vývoj. V počátku to bylo použití generátorů kódu a scaffolding, podpora pro automatizované testy, migrace databátového schématu, implementace Model—View–Controller průzračná jako sklo, bez „XML sklapovaček“. Posléze důsledně RESTful architektura. Jedna z posledních věcí je např. Rails podpora pro tzv. „conditional get“ neboli ETag, což je ultimátní řešení pro cachování webových aplikací, o kterém však mimo kruhy Rails vývojářů a často i v nich člověk slyší většinou jen „ETag? Co to je todle?“ Postupně však většina z těchto strategií a technologií prosakuje i do ostatních frameworků v jiných technologiích a webový vývoj se tak postupně skutečně vyvíjí a „vývoj“ nespočívá v tom že se maličko poladí „třída pro připojení k databázi“.
Právě implementace toho nejlepšího z webového vývoje podle hesla „představil jsem si chlápka chytřejšího než jsem já a pak jsem přemýšlel, co by udělal“, je tím, co autora tohoto blogu přimělo opustit teplé místo v internetové agentuře a vydat se opět na volnou nohu jako programátor v Ruby.
Od té doby celkem úspěšně „kudy chodí, tudy o Ruby mluví“ a lidi to zdá se baví. I když za to platí :) Např. autorova přednáška na konferenci WebExpo která proběhla před pár týdny, se setkala s velmi příjemným přijetím, a všem, které zaujala, patří jeho dík.
Prezentaci z ní si můžete prohlédnout níže a ukázkovou aplikaci stáhnout na serveru Github. (Zvažujete-li, co vám může přinést Ruby on Rails ve vaší společnosti nebo ve vašem podnikání, můžete si u autora blogu objednat školení Ruby on Rails -- jak obecný úvod do Rails, tak specializovaná témata nebo pokročilá školení na míru.)
To nejdůležitější: Hosting!
A nakonec to nejdůležitější. Z webové aplikace, která běží na http://localhost:3000 má člověk možná docela radost, ale moc se o ni nepodělí. Díky relativně složité struktuře toho, jak Rails aplikace běží na serveru na světě prakticky neexistuje Rails hosting „na zkoušku“ nebo „zadarmo“. Vynikající prostředí pro vývoj a zkoušení Rails, navíc cele v prostředí webového prohlížeče, poskytuje např. platforma Heroku. Ale nejedná se o plnohodnotný hosting.
V České republice existuje samozřejmě mnoho hostingů „podporujících“ Ruby, jen málokde ale sami provozovatelé těchto hostingů vědí, co si na své weby o „podpoře Ruby“ vlastně píšou. (Nebudeme citovat.) Před několika týdny ale společnost Kraxnet, provozovatel absolutně nejlepšího Rails hostingu v České republice, Railshosting.cz, spustila tzv. mod_rails verzi Rails hostingu, která je zcela zdarma. Úplně. Naprosto. Nyní můžete díky týmu Jiřího Kubíčka hostovat v Rails cokoliv chcete. I ty poslední, ufňukané výmluvy, proč si to nezkusit, zkrátka zmizely. Cítil-li by se snad někdo poškozen tvrzením o „nejlepším Rails hostingu”, nechť směle argumentuje v komentářích! :)
Railshosting zdarma si můžete registrovat na adrese http://free.railshosting.cz.
Tento hosting je na rozdíl od komerčního Rails hostingu, který je provozován na technologii „Mongrel proxyovaný Apachem“ (viz složitý obrázek), provozován na technologii Phusion Passenger, neboli modrails. Phusion Passenger je modul do webového serveru Apache (ano!, jako modphp! OMG PONIES!) a umožňuje současné spuštění desítek Rails aplikací, aniž by si každá z nich ukousla třicet, padesát nebo sto megabajtů paměti. Pro provoz free hostingu je zatím dle sdělení Jiřího Kubíčka vyhrazen jeden stroj IBM Blade Server (2×Xeon 3.0Ghz, 4GB RAM). Více informací, zkušeností z provozu, tipů, apod. se dočtete na blogu společnosti Kraxnet. Zbývá připomenout, že se jedná o plnohodnotný, „normální“ hosting zdarma, který není „na hraní“, jak se člověk může dočíst na internetu. Ne, TLD doménu nebo e-mail „na hraní“ k němu ale (překvapení! překvapení!) nedostanete.
To nejdůležitější je ale stále ještě v něčem jiném.
Za prvé, mod_rails umožňuje provozovat nejen aplikace napsané v Ruby on Rails, ale v libovolném Ruby frameworku: např. Merb nebo Sinatra. Ba co víc! Umožňuje také provoz aplikací napsaných v jazyce Python, jako je např. Django.
Za druhé: tento hosting obsahuje plnou podporu pro ty nejefektivnější techniky deploymentu (instalace a aktualizace) aplikací na server pomocí nástroje Capistrano. Capistrano vám umožňuje jedním příkazem (cap deploy:migrations) provést export nové revize kódu aplikace z verzovacího systému, nahrát ji na server, starou verzi uložit do archivu releases, spustit migrace databázového schématu, restartovat webový server, a provést další řadu maintenance úkolů, které pravděpodobně děláte ručně nebo vůbec. (Umožňuje vám např. také pomocí jednoho příkazu cap deploy:rollback vrátit aplikaci na serveru ke starší verzi, pokud omylem nasadíte verzi s chybou. Jak se vracíte k předchozí verzi vy?)
Pokračujte!
Blog Karmi is on Rails bude v provozu ještě pár týdnů, než stařičká Rails aplikace (stále ještě běžící na přibalené archivní verzi Rails z května 2007) doslouží a bude nahrazena statickým obsahem. Všechny články tedy budou stále k nalezení na svých původních adresách. Konstruktivní i destruktivní komentáře můžete tedy v klidu zanechat níže :)
O autorovy články ale přijít nemusíte. Chcete-li, můžete pokračovat na webu Restafari.org, tentokrát však v lingua franca internetu: angličtině. Není vyloučeno, že na adrese www.restafari.cz někdy v budoucnu najdete články v češtině, pravděpodobné to ale není.
Autor děkuje ještě projednou všem milým komentářům a e-mailům, které po založení blogu obdržel. Pomohly-li vám články najít, získat nebo znovu nakopnout ztracenou energii něco dělat na webu, podělte se o vaši karmu v komentářích!
Linkujte svoje blogy, svoje projekty! Založte si blog a pište o tom, co vás na Ruby/Rails baví a co ne! Navrhněte tričko pro CSRUG. Pošlete odkaz na forum.rubyonrails.cz! Sestavte RSS agregátor z českých Ruby/Rails zdrojů a publikujte ho na webu, třebas jako Sinatra aplikaci! Když už nemůžete publikovat ucelené aplikace, publikujte alespoň fragmenty kódu! Nechte už těch keců a dělejte konečně něco!
~
12 komentářů