Čtete statickou verzi tohoto blogu. Nové články autora nalezenete v angličtině na blogu Restafari.

Od Karmi k Restafari

Kategorie: Ostatní, Rails, Web design

Publikováno 31. 10. 2008 v 09:16

12 komentářů (poslední napsal/a Messa)


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!

One Love!

~


12 komentářů

# 1
Keff napsal před 24 dny:

Díky za slidy (i za přednášku na webexpo)!

# 2
jan napsal před 23 dny:

Zajímal by mě postup úvah, kterým ses dostal k publikování v angličtině (osobně jsem v tomhle směru pořád rozpolcen).

Přece jenom je blog svým způsobem reklama tvých služeb a předpokládám, že školíš především v Česku, ne? A přijde mi, že pro lidi mimo programátorskou komunitu je angličtina stále určitou bariérou. Také - jak ostatně píšeš - v češtině je cokoliv slušného králem mezi slepými; ve světovém měřítku je to už těžší.

Já osobně nyní preferuji soupeřit se světem, než u nás usínat nudou, ale třeba blog naší nové firmy je česky a myslím, že je to vzhledem k cílové skupině jejích produktů dobře.

Ideálně mít překladatele ;-)

# 3
Botanicus napsal před 23 dny:

"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."

Gratuluju :) ! Nedovedu si predstavit lepsi a pohodovejsi praci nez prave freelancing. Totalne to zboznuju!

BTW uz jsem to navrhoval na IRC, ale co udelat nejakou podpurnou strukturu pro freelancery? Nevim presne co by to melo byt, ale vidim, ze spoustu lidi by to chtelo zkusit a netusi jak na to. Kdyz jsem zacinal ja, mel jsem zkur ... hodne tezke zacatky, protoze jsem absolutne netusil jak na to. Mohlo by jit treba o spolecny miniportalek, kde by jednotlivi lide psali ruzne prakticke rady, kde by se dali dohazovat zakazky (nestiham, ale nekdo jiny za to bude rad) a podobne. Co vy na to?

Drobny tip na hosting - Lukas Konarovsky aka daeltar ma skvely hosting na Solarisu se skvelou podporou. Je to jiny typ hostingu nez ten Jirkuv, Lukas dela hosting pro narocnejsi, nic sdileneho etc. Duvod proc stoji za uvahu je prave Solaris - a jeho ZFS, ktere umoznuje napr. snapshoty filesystemu. Udelam snapshot, coz je rozdilova zaloha FS v dany moment. Nenahraditelne pro zalohovani. Propagaci asi zatim nema, teprve to rozjizdi, ale pokud mate zajem, muzete ho kontaktovat osobne.

"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."

Coze? Na Passengeru jede i Django? Jak proboha? Passenger podporuje Rails a rackove aplikace, jak na tom muze bezet Python?

A samozrejme gratuluju k novemu webu :) !

# 4
EskiMag napsal před 23 dny:

Karmi pekny clanok. Chyti cloveka za srdce a motivuje k dalsej praci :-) Diky

# 5
Honza napsal před 23 dny:

No teda kdyby se nasla nejaka pomocna ruka v zacatcich freelance tak by to bylo urcite super. Ja uz na neco takoveho myslim pres rok ale rozhoupat se to neni jenom tak.

# 6
Botanicus napsal před 23 dny:

Honza: urcite bude. Resili jsme to s Honzou Kubrem a pro zacatek jsme se rozhodli, ze na forum.rubyonrails.cz zalozime kategorii prave pro freelancery. Honza psal Jirkovi, tak doufam, ze se k tomu v dohledne dobe dostane :) Jestli mas nake napady, navrhy, napis bud tam nebo primo me. JID: botanicus@njs.netlab.cz, Skype: botanicus_arch (na Skype nejsem ale porad) popr. mail stastny at 101ideas.cz

# 7
karmi napsal před 23 dny:

Díky za komentáře! Postupně:

@jan: Postup úvah... to je asi příliš složité nebo dokonce politicky nekorektní to nějak reprodukovat? :) Předně: nepokládám blog za "reklamu svých služeb". Je to pro mně médium svobodného vyjádření, můžu si psát co chci, jak dlouho chci, o čem chci, atd atd atd. Samozřejmě, kdybych psal nějaký blog s marketingovým y8m2rem, tak platí tvá úvaha. Konkrétně: filosoficky vzato mi přijde psát anglicky celkem absurdní. Český nebo makedonský spisovatel taky nebude psát anglicky, protože má "malou cílovou skupinu". Navíc, lokální kontext je pro mně osobně důležitý, žiju, pracuju v České republice. Ale nakonec zvítězilo pragmatické hledisko. Řečeno brutálně a stručně, článek jako je třeba ten o localized_country_select na Restafari nemá cenu psát česky. Ale teď se koukám, že bych na restafari.cz mohl spustit něco jako http://translate.google.com/translate?u=http%3A%2F%2Fwww.restafari.org%2Flocalized-country-select.html&hl=en&ie=UTF-8&sl=en&tl=cs pro všeobecné pobavení :)

@Botanicus: Dobrý nápad. Uděláš ho? Nebo jsi zatím jen "psal Jirkovi", který se k tomu "snad v dohledne dobe dostane"? LOL! :)

Díky taky za tip na hosting, to je zajímavé. "Lukas dela hosting pro narocnejsi, nic sdileneho" má znamenat přesně co? Že u Railshosting.cz nemáš zadarmo, ani za 250 Kč měsíčně pro sebe celý fyzický server, zatímco "u Lukáše" jo? Nebo jak jsi to prosím tě myslel?

Ad Django, GIYF: http://groups.google.com/group/phusion-passenger/browse_thread/thread/9fcfcf7c73b43529

# 8
jan napsal před 23 dny:

Založení fóra "Freelacing" na stávajícím Ruby on Rails fóru mi přijde jako nejjednodušší a nejpřímočařejší řešení. Pokud se to ujme, můžem třeba skončit až u specializované aplikace (kterou kdybychom chtěli začít, nemuselo by se stát ještě dlouho nic). Založil bych ho sám, ale nemůžu. Nahození vlastní bestie je až plán B.

# 9
Jiří Kubíček napsal před 23 dny:

@Botanicus: ad podnikání: Jaké jsi měl problémy při zakládání podnikání? Dojdeš na úřad a ohlásíš živnost. Přihlásíš se na finančním úřadě, zdravotní pojišťovně a sociálním zabezpečení. Pak stačí už jen vést účetnictví (daňovou evidenci), odevzdávat daňová přiznání či přehledy a platit. Kromě toho založit účet v bance, aby měli klienti kam platit a nějakou vzorovou smlouvu, abys měl smluvní vztah písemně podchycený. Dnes je to navíc vše mnohem jednodušší než před několika lety. Jestli o tom potřebujete nějak zvlášť debatovat, mohu na to samozřejmě založit fórum. Mě by se ale víc líbilo bavit se o např. metodikách vývoje a nejlepších postupech, než o tom, jak vyplnit nějaký formulář. ad hosting: nějak nechápu narážku na hosting "pro náročnější, nic sdíleného". Když jsme s Lukášem mluvili naposledy, bylo to o Solarisích zónách. To je něco podobného jako FreeBSD jaily s tím rozdílem, že sw nainstalovaný v globální zóně se práve sdílí do všech ostatních zón narozdíl od FreeBSD jailů. U nás máme variantu zdarma(mod_rails), FreeBSD jaily(mongrel) a vyhrazené servery(cokoliv). U vyhrazených serverů opravdu není nic sdíleného :) a využívají je již tři velcí zákazníci. FreeBSD ZFS samozřejmě také má a používáme ho na zálohovacích serverech. BTW. ZFS opravdu není řešení pro zálohování, pokud ty snapshoty neposíláš jinam. ad django: ano, modrails opravdu mají podporu (zatím jako proof-of-concept) WSGI (Python Web Server Gateway Interface), takže Django pod Phusion Passenger běží. (ale modrails zatím tolik nevěřím, abychom to nasadili jako komerční službu, proto to máme zdarma)

# 10
Botanicus napsal před 22 dny:

@karmi napad uskutecnim az kdyz uvidim ze je opravdu zajem, pro zacatek je kategorie na foru uplne dostatecna.

O hostingu se prit nebudu, neznam moc Railshosting, takze radeji mlcim, jen poznamka pro Jirku Kubicka: samozrejme ze snapshoty je treba posilat jinam :)

Diky za info s Djangem, nevedel jsem.

# 11
karmi napsal před 22 dny:

@Botanicus: Pak ale stále není jasné, co jsi myslel svojí poznámkou <q>"Je to jiny typ hostingu nez ten Jirkuv, Lukas dela hosting pro narocnejsi, nic sdileneho etc. "<q>. V čem je "jiny", není tedy "Jirkův hosting" pro "náročnější", ale pro nějaké amatéry co se nezmůžou na pořádný hosting, nebo jak celé téhle šlamastice rozumět? Pořád se v tom nemůžu vyznat. Nebo jsi to prostě "jen tak plácnul"?

# 12
Messa napsal před 21 dny:

Díky za technologický přehled. A za pokřik na konci :-)

Ad hosting: osobně mám za to, že kdo nechce dát ty tři čtyři stovky za vlastní (pro začátek tedy alespoň virtuální) server, ten to s webem nemyslí vážně. Ale je asi dobře, že někteří tento názor nesdílí a konají :-)

Karmi se (alespoň tentokrát) čte jedním dechem. Mám ale obavy, jestli mi dech vydrží i v anglické verzi... Snad ano.



Karel Minařík navrhuje a programuje webové stránky a aplikace s důrazem na čistý design a interaktivitu. Přednáší o web designu na Institutu Digitálních Médií a o Ruby na FF UK. Píše blog o Ruby On Rails, díky němuž ho opět začalo bavit programovat. Žije v Praze se svojí ženou a dvěma dcerkami, které mu to vše umožňují. Můžete mu napsat e-mail.

Karel Minařík is an independent web designer and developer with focus on clean UI and rich interactivity. He lectures on web design at Institut Digitálních Médií and on Ruby at FF UK. He writes blog about Ruby On Rails (in Czech), which re-ignited his passion for programming. He lives in Prague with his wife and two little daughters, who are making it all possible. You can send him an e-mail.

˜