Vše s tagem rails

Powered by Phusion Passenger

27.10.2008 14:23

Nejak mi včera na serveru kompletně lehlul SwitchPipe, ve kterém běžely všecky Rails aplikace a bylo to natolik misteriózní, že jsem neměl chuť ani energii to řešit. Proč se v tom taky hrabat, když snadné řešení je tak blízko. Instalace mod_rails je vskutku tak jednoduchá jak vypadá. Aplikace skutečně běží out-of-the-box takže jediná práce navíc byla změna restart tasků v deployment skriptech. Místo touch na konfigurák pro SwitchPipe se udělá touch tmp/restart.txt a je to. Kéž by všechny přechody mezi různými řešeními pro stejný problém byly tak jednoduché.

Pokud v Rails testujete fakt důkladně, tak stejně jako já občas narazíte na záludnosti, které není jenom tak jednoduché vyřešit. Testování chybobých stavů je dobrý příklad a vede ke spoustě zajímavých závěrů.

pokračování

RailsConf 08 za půl hodiny

02.06.2008 18:12

Pokud jste nebyli na letošní RailsConf (já bohužel nebyl) a nečtete RailsEnvy, tak vám snad přijde vhod následující video. Gregg Pollack v něm během půl hodiny a něco vyzpovídá některé účastníky RailsConf a pozjišťuje co okolo Ruby on Rails nového. Konečně jsem tak za některá dlouho známá jména přiřadil tváře a hlasy a už mě ani nemusí mrzet, že další RailsConf se obešla beze mě.

Road to Mongrel

31.03.2008 21:30

Vlastní server to je spousta práce, ale také spousta zkušeností. Od hrátek s aptitude přes nastavovaní systému a konečně konfiguraci apache jsem se dostal k deploymentu vlastních Rails aplikací. Klasické první “Hurá!”, když se první pokus rozbělh pod hloupým (a pomalým) CGI nastalo už docela dávno. Od té doby jstem se stihl naučit pracovat s FastCGI (přesněji řečeno mod_fcgid) a všecko běhalo rychle a spolehlivě. Problém je, že fcgi procesy spawnuje (hnusné slovo, já vím) apache a proto bylo potřeba vydat se cestou k hoře jménem Mongrel.

pokračování

mod_rails: Rails deployment vyřešen?

26.03.2008 15:06

Tak to vypadá, že problematičnost deploymentu Rails aplikací bude brzo minulostí. mod_rails je prozatím jenom video prezenetující, že upload & run postup známý PHPkářům je možný i s Rails. Video například tvrdí, že prvotní instalace zabere pouhé dvě minuty. To je sice pěkné, ale já to beru spíše jako minimum. Nevím proč, ale vždycky, když začnu něco kompilovat, se mi to napoprvé nějak nepodaří. Oficiální bechmarky sice zatím nejsou, ale můžete se dočíst, že výkonnost je stejná jako u mongrelu. Každopádně považuju mod_rails za pozitivní událost. Někteří jsou, ale jiného názoru. Podle mě docela zcestně. Široká adaptace Rails sice přinese určité změny v core komunitě, ale že by měla znamenat konec světa? To asi ne.

Je to pár dní co mi několik nezávislých zdrojů přes RSS čtečku sdělilo, že Ruby 1.9.0 je na světě. Jelikož tento release nese označení development release nechával mě úplně klidným, protože to znamená, že pro proukci je nepoužitelný a na testování nových fíčur nějak nemám energii. Čláky jsem nicméně pročetl a nové Ruby se změnami, o kterých se píše už měsíce, jsem ignoroval. V podstatě pro mě tento release nemá žádný význam.

pokračování

Potřebuju návrháře

29.10.2007 19:34

Potřebuju grafika. Ale nejenom grafika. Potřebuju člověka s citem pro detail, použitelnost a eleganci. Člověka znalého prostředí webových aplikací. Nejradši někoho jako je Martin Cohen. Mám hromadu nápadů a občas i nějaký ten čas, ale práce s jakýmkoli grafickým editorem je pro mě očistcem. Trvá mi hodiny než vytvořím něco co má člověk s grafickým citem za pět minut. Přitom vím jak je pro uživatele vzhled aplikace důležitý. Potřebuju člověka, který si, tak jako já, rád hraje, má čas a chuť dělat věci jinak, experimentovat a prostě se prací bavit.

Jak jsem už říkal, mám několik nápadů na potenciálně výdělečné a hlavně zájímavé projekty nad Ruby On Rails, ale chtělo by to někoho, kdo dokáže dát věcem tvář. Hledám někoho kdo si rozumí s grafikou a neštítí se HTML/CSS. Hledám někoho kdo se nebojí si hrát a dělat věci pořádně.

Rails aplikace jako WAR

20.09.2007 08:07

Všecko to začalo, když jsem si četl dojmy DHH vztahující se k právě probíhající RailsConf Europe. Jeho nadšení postojem Sunu k Ruby on Rails stoprocentně sdílím. Velmi mě ale zaujal link na tento screencast. Věděl jsem, že díky JRuby je možné nasazovat Rails aplikace do servletového containeru, ale že je to tahle jednoduché a funkční, zaskočilo i mě. Vřele doporučuji k shlédnutí.

V minulém díle jsem nakousl práci s migracemi v Rails. Na konci článku jsem slíbil pokračování, které přichází dnes.

Občas se stane, že migrace provádí něco, co jakmile se provede již nelze vzít zpět. Pro takovéto případy existují ireversibilní neboli nevratné migrace. Takové migrace již nejdou vrátit zpět. Zavoláte-li rake db:migrate VERSION=x a x bude menší než číslo nějaké irefersibilní migrace. Provedou se všechny změny až po onu ireversibilní migraci. Migraci učiníte ireversibilní tak, že v její metodě down bude následující kód:

pokračování

Můj první podcast: CZ podcast volume 15

06.09.2007 19:00

Reakcí na mé nedávné připomínny k poslednímu CD podcastu #13 bylo pozvání do dalšího dílu plně věnovaného Ruby On Rails. Jelikož jsem do Rails skoro fanaticky zamilován, nemohl jsem si příležitost přiblížit Ruby a RoR české Java komunitě nechat ujít.

CZ podcast #15 je tedy slavnostně venku. Jeho natáčení bylo velice zajímavé a hlavně zábavné. Bylo to poprvé a stálo to zato. Tímto bych chtěl Roumenovi, Dagimu a Filemonovi za pozvání poděkovat. Byl to skvěle strávený večer, snad se i vám bude líbit.

Lokalizujeme datumy

05.09.2007 17:44

Na českém Rails fóru jsem nalezl pochvalný ohlas na článek Localizing datetime format. Nerad bych byl za rejpala, ale autorův přístup je velice pěkný jako demostrace možností Ruby, jako řešení nastíněného probému je to zbytečný overkill.

K podobným praktikám mají Rails lepší a daleko jednodužší prostředky. Ve spoustě tříd definuje ActiveSupport metodu to_formatted_s, mimo jiné taky ve všech třídách pro datum a čas (Time, Date a DateTime). K lokalizovanému výstupu datumových objektů je pak potřeba udelat dvě věci.

pokračování

Začínáme s Migracemi

03.09.2007 19:41

Skoro každé rozšiřování nebo upravování Rails aplikace nějak souvisí s databází. Většinou pouze přidáváme nějakou tu logiku do modelů a controllerů a databázi pouze používáme. Čas od času se ale databázové schéma mění. Na změny databázového schématu existuje spousta grafických a klikacích nástrojů, někdo používá konzoli databáze a píše SQL DDL příkazy ručně. Já mám rád Rails a ještě více Ruby. Migrace jsou nástroj jak změny v databázovém schématu definovat v Ruby. V tomto článku bych chtěl popsat jak migrace fungují, jak se používají a poradit jak migrace nasadit na již rozběhnutém projektu, kde se na ně zapomnělo.

pokračování

V minulém článku jsem vysvětlil co je to has_many :through a jak se používá pro reprezentaci tranzitivních relací. Dnes bych se rád dostal k samotné pointě toho miniseriálu. Jak již jsem psal minule, zajímavosti se začnou objevovat, když poslední příklad z minula torkšku rozšíříme:

class Person
has_many :likings
has_many :bands, :through => :likings
has_many :cds, :through => :bands
end
class Liking
belongs_to :person
belongs_to :band
end

pokračování

O asociacích v Rails už jsem něco málo psal. Do nějakých obecných úvodních článků se mi nechce, spíše se znažím zachytit své aktuální potřeby a myšlenkové pochody. Dnes to bude o speciální variantě asociace has_many nazývané has_many :through.

Proč se o has_many :through mluví často jako o zvláštním typu asociace? HM:T se tak trochu svému názvu vymiká a z mého pohledu je to taková přijemná sestra has_many na půl cesty k asociaci has_and_belongs_to_many. M:N asociace jsou totiž většinou přesně ty, u kterých HM:T nejčasněji použijeme. Jako už tolikrát ohraná písnička o Značkách a Článcích.

pokračování

Posledních několik večerů jsem strávil tvorbou docela složitého Ajaxového UI pro jednu novou aplikaci, o které už bude taky brzo co psát. Při této zábavné práci jsem si osvojil jednoduchou a velmi prospěšnou praktiku, o kterou bych se rád podělil. Týká se to přiřazování hodnot atributu id HTML elementů, fuj to zní složitě a přitom je to tak jednoduché.

Začnu jako obvykle jednoduchým příkladem:

<div class="item" id="<%= "item_#{current_item.id}" %>">
... nejaky obsah divu ...
</div>
... zbytek stranky ....
<%= link_to_remote "updatni muj div",
:update => "item_#{current_item.id}",
:url => {:action => "nejaka_akce", :id => current_item }
%>

pokračování

Collection finders

12.08.2007 20:00

Hračky jako has_one, has_many, belongs_to, habtm a has_many :through všichni snad znají a hojně používají. Rozdíl je ale v hloubce pochopení a využití těchto asociací.

Dnes jsem došel k zajímavému poznání. Týká se především násobných asociací jako je například has_many. Dejme tomu, že mám model firma -> zaměstnanci (1:N) a potřebuji najít všechny zaměstnance v systému s platem vyšším než 10 korun.

pokračování

ActiveRecord tutorial

08.08.2007 18:12

RailsEnvy je skvělý blog, jeden z nejelpších Rails blogů. Anglicky rozumějícím doporučuji podívat se na jejich poslední výtvor ActiveRecord Tutorial. Tutoriál začíná jednoduchým úvodem do problematiky ActiveRecordu a na konci se dozvíte i něco o polymofních asociacích.

Vám, co RailsEnvy neznáte, přidávám odkazy ještě na poněkud postarší, ale stále skvělé reklamy na Ruby on Rails: první, druhá, třetí, čtvrtá.

Ruby on Rails Java podcast

07.08.2007 11:34

Včera se objevil nový CZ Java PodCast. Asi z poloviny se věnuje Ruby on Rails. Doporučuji poslechnout Ruby zvědavcům a snad každému, koho zajímají názory českých Java celebrit na Ruby on Rails. Svoje postřehy jsem sepsal do nějakolika bodů.

pokračování

Agilní metodiky a Ruby

06.08.2007 19:22

Pokud vám toto uniklo, tak důrazně doporučuji obětovat tři čtvrtě hodiny a předášku si poslechnout. Je to podobné kvality jako většina věcí vycházející z dílny ThoughtWorks a Martina Fowlera.

O agilní metodiky se zajímám už nějakou tu dobu, ale tato přednáška mě hodně nadchla i pro opomíjené praktiky jako pair-programming a test first, code after. Celkové statistické zhodnocení vlivu Ruby a Agile na průběh projektu sice nelze brát na 100% (je to pořád jenom statistika), ale závěr je nevyvratitelný. Agilní metodiky v kombinaci s dynamickými jazyky jsou dobré nejenom pro vývojáře (práce je zábavnější), ale i pro manažery a byznys jako takový (projekty jsou úspěšnější a výdělečnější).

Existuje jedna taková vlastnost funkce link_to a jejích kamarádek. Jedna taková, která se příliš často neprojevuje. První parametr funkce link_to a podobných je String. Toto ve většině případů není problém, ale když máte komplikovaný HTML layout a chcete po své Rails aplikaci, aby vyprodukovala něco jako:

<a class="points" href="#" onclick="new Ajax.Updater(...); return false;">
<span class="number" id="points"> 1 </span>
<span class="number" style="display: none;" id="indicator">
<img alt="woking..." src="/images/indicator.gif" />
</span>
<span class="desc">
description
</span>
</a>

pokračování

Při nedávném předělávání Boomy.cz do nového kabátku jsem znovu propadl fenoménu v Rails zvanému named routes.

Named routes jsou v Rails prostředek jak naše specifické url nejenom efektivně zobrazit, ale také zefektivnit a zpřehlednit kód aplikace a to převážně šablon.

Předvedu názorně na příkladu. Když máte v aplikaci nadefinované jenom základní routy, používáte všude v kódu, ač nevědomě, funkci url_for, která z hashe parametrů { :controller => “nejaky_controller”, :action => “nejaka_action” }, generuje URL (url_for volá link_to a všechny podobné). Napsat takový hash je docela práce a dělat to pořád dokola je už fakt otrava. Zachrání nás named routes.

pokračování

Nepoužívejte logo Rails bez povolení!

24.07.2007 20:55

Tedy musím říct, že tohle mě docela šokovalo. Člověk uveřejní článek, kde řekne jak jsou Rails skvělé, zdarma a svobodné, a pak se stane tohle.

První jsem si řekl: “Co to sakra znamená? Co si ten člověk sakra myslí?”. Doporučuju přečíst si diskusi, trošku mě uklidnila. Pořád tu jsou ale otevřené problémy. Logo bylo zaplaceno komunitou. Je v pořádku, že jeden člověk na ním má plnou kontrolu? To mi přijde kapku šílené. Nechápu to. A co vy?

Nějak mám pořád problém udělat si na věc jasný názor. Mělo by logo spravovat komunita? Jeden zajímavý nápad: Co takhle, kdyby každé komerční použití loga muselo být komunitě finančně kompenzováno? Rails komunita by získla kousek z toho byznysu, který Rails okolo sebe generují.

(Anglická verze )

Právě jsem se dodíval na řeč Richarda Stallmana nazvanou Copyright vs Community in the Age of Computer Networks a prostě se musím podělit o své pocity.

Jedno staré anglické rčení říká “The good things in life come for free” a myslím, že to je přesně to co je hlavní osou Richardovi řeči. V průběhu svého projevu vyslovil (jak už je zvykem) nespočet zajímavých myšlenek, faktů a příkladů (nejhorší teroristická organizace je vláda Spojených Států a pod.). Ale nejlepší část přichází na konci, kde popisuje svůj návrh řešení současných problémů s copyrightem. Když to tak člověk poslouchá a představuje si to chce se mu smát, já jsem se teda smál a se mnou spousta posluchačů na tom videu.

pokračování

Ruby on Rails? Ano, Prosím!

22.07.2007 14:32

Centi mi doporučil k přečtení článek dxg o frameworku Ruby on Rais a jeho nevýhodách a hrozbách. Tímto bych si dovolil s ním krapet polemizovat.

pokračování na AcidLogu