<feed version="0.3" xml:lang="en-US" xmlns="http://purl.org/atom/ns#">
  <title>Planet Ruby on Rails</title>
  <tagline mode="escaped" type="text/html"/>
  <id>tag:planet.rubyonrails.cz,2005:Planet</id>
  <generator url="http://www.leetsoft.com">Planet</generator>
  <link href="http://planet.rubyonrails.cz/articles" rel="alternate" type="text/html"/>
  <modified>2008-04-07T18:00:14+02:00</modified>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-735</id>
    <issued>2008-04-07T17:55:53+02:00</issued>
    <modified>2008-04-07T18:00:14+02:00</modified>
    <title>Botanicus: Merb: Rails po odtu&amp;#269;&amp;#328;ovac&amp;#237; k&amp;#367;&amp;#345;e</title>
    <link href="http://botablog.cz/clanek/merb-rails-po-odtucnovaci-kure" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">Ne v&amp;#382;dy pot&amp;#345;ebujeme zabudovanou podporu v&amp;#353;ech mo&amp;#382;n&amp;#253;ch i nemo&amp;#382;n&amp;#253;ch datab&amp;#225;z&amp;#237;, milion helper&amp;#367; pro pr&amp;#225;ci s JavaScriptem a podobn&amp;#233; v&amp;#283;ci. N&amp;#283;kdy hraje prim rychlost a konfigurovatelnost.</content>
  </entry>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-734</id>
    <issued>2008-04-07T17:54:54+02:00</issued>
    <modified>2008-04-07T18:00:14+02:00</modified>
    <title>Botanicus: Jak urychlit RubyGems na Ma OS X Leopard?</title>
    <link href="http://botablog.cz/clanek/jak-urychlit-rubygems-na-ma-os-x-leopard" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">Rychlost RubyGems na Leopardovi je opravdu mizern&amp;#225;. Na&amp;#353;t&amp;#283;st&amp;#237; nen&amp;#237; v&amp;#367;bec probl&amp;#233;m RubyGems v&amp;#253;razn&amp;#283; urychlit.</content>
  </entry>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-733</id>
    <issued>2008-04-03T16:00:01+02:00</issued>
    <modified>2008-04-03T16:00:19+02:00</modified>
    <title>Botanicus: Jak&amp;#233; bylo EURUKO 2008?</title>
    <link href="http://botablog.cz/clanek/jake-bylo-euruko-2008" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">EURUKO je evropsk&amp;#225; konference o Ruby. Jak&amp;#225; byla? Co n&amp;#225;m pov&amp;#283;d&amp;#283;l Matz na sv&amp;#233; keynote? Co v&amp;#353;echno lze d&amp;#283;lat v JRuby? Co nov&amp;#233;ho se chyst&amp;#225; v NetBeans 6.1? A jak je vlastn&amp;#283; rychl&amp;#253; YARV?</content>
  </entry>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-728</id>
    <issued>2008-04-01T16:55:30+02:00</issued>
    <modified>2008-04-01T17:00:29+02:00</modified>
    <title>Botanicus: Jak nainstalovat ImageMagick a RMagick na Mac OS X?</title>
    <link href="http://botablog.cz/clanek/jak-nainstalovat-imagemagick-a-rmagick-na-mac-os-x" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">RMagick je jeden z absolutn&amp;#283; nejproblemati&amp;#269;t&amp;#283;j&amp;#353;&amp;#237;ch gem&amp;#367;. Jak jej nainstalovat na Leoparda?</content>
  </entry>
  <entry>
    <author>
      <name>Jan &#352;t&#283;rba</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-727</id>
    <issued>2008-03-31T23:30:00+02:00</issued>
    <modified>2008-04-01T10:00:08+02:00</modified>
    <title>Jan &#352;t&#283;rba: Road to Mongrel</title>
    <link href="http://jansterba.com/archives/2008/3/31/road_to_mongrel/" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">&amp;lt;p&amp;gt;Vlastn&amp;#237; server to je spousta pr&amp;#225;ce, ale tak&amp;#233; spousta zku&amp;#353;enost&amp;#237;. Od hr&amp;#225;tek s aptitude p&amp;#345;es nastavovan&amp;#237; syst&amp;#233;mu a kone&amp;#269;n&amp;#283; konfiguraci apache jsem se dostal k deploymentu vlastn&amp;#237;ch Rails aplikac&amp;#237;. Klasick&amp;#233; prvn&amp;#237; &amp;amp;#8220;Hur&amp;#225;!&amp;amp;#8221;, kdy&amp;#382; se prvn&amp;#237; pokus rozb&amp;#283;lh pod hloup&amp;#253;m (a pomal&amp;#253;m) &amp;lt;span class="caps"&amp;gt;CGI&amp;lt;/span&amp;gt; nastalo u&amp;#382; docela d&amp;#225;vno. Od t&amp;#233; doby jstem se stihl nau&amp;#269;it pracovat s FastCGI (p&amp;#345;esn&amp;#283;ji &amp;#345;e&amp;#269;eno mod_fcgid) a v&amp;#353;ecko b&amp;#283;halo rychle a spolehliv&amp;#283;. Probl&amp;#233;m je, &amp;#382;e fcgi procesy &amp;lt;em&amp;gt;spawnuje&amp;lt;/em&amp;gt; (hnusn&amp;#233; slovo, j&amp;#225; v&amp;#237;m) apache a proto bylo pot&amp;#345;eba vydat se cestou k ho&amp;#345;e jm&amp;#233;nem Mongrel.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Vezmu to ale p&amp;#283;kn&amp;#283; popo&amp;#345;&amp;#225;dku. Development m&amp;#225;me za sebou a v subversion se na n&amp;#225;s sm&amp;#283;je aplikace jak&amp;#353;-tak&amp;#353; p&amp;#345;ipraven&amp;#225; na nel&amp;#237;tostn&amp;#233; sv&amp;#283;tlo intenetov&amp;#233;ho sv&amp;#283;ta. Co s t&amp;#237;m?&amp;lt;/p&amp;gt;&amp;lt;h4&amp;gt;Krok prvn&amp;#237;: Capistrano&amp;lt;/h4&amp;gt;&amp;lt;p&amp;gt;Nezn&amp;#225;te? Ale jo, ur&amp;#269;it&amp;#283; zn&amp;#225;te. J&amp;#225; si si s &amp;lt;a href="http://www.capify.org/"&amp;gt;Capistranem&amp;lt;/a&amp;gt; u&amp;#382; n&amp;#283;kolikr&amp;#225;t v minulosti zahr&amp;#225;val, ale v podm&amp;#237;nk&amp;#225;ch, jak&amp;#233; nab&amp;#237;zel Websupport, to prost&amp;#283; n&amp;#283;jak ned&amp;#225;valo smysl a skon&amp;#269;il jsem u vlastn&amp;#237;ch updatovac&amp;#237;ch skript&amp;#367; (jo jo, m&amp;#283;lo to i jak&amp;#253;si rollback). Na vlastn&amp;#237;m stroji (nebo i vserveru) je situace kapku jin&amp;#225;. Capistrano je prost&amp;#283; nutnost. Pokud jste s &amp;lt;em&amp;gt;Capem&amp;lt;/em&amp;gt; v minulosti tak&amp;#233; hr&amp;#225;li, ale po&amp;#345;&amp;#225;d to bylo jak&amp;#233;si moc slo&amp;#382;it&amp;#233;, zkuste to dnes znovu. Verze 2.x u&amp;#382; jsou n&amp;#283;jakou dobu venku a konfigurace je kone&amp;#269;n&amp;#283; jednoduch&amp;#225; jako facka. No posu&amp;#271;te sami:&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;set :application, "myapp" &amp;lt;br/&amp;gt;set :repository,  "http://path.to/yourapp/svn/trunk" &amp;lt;br/&amp;gt;set :user, "remote_ssh_user" &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;set :deploy_to, "/deployment/root/#{application}" &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;role :app, "www.myapp.cz" &amp;lt;br/&amp;gt;role :web, "www.myapp.cz" &amp;lt;br/&amp;gt;role :db,  "www.myapp.cz", :primary =&amp;amp;gt; true&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;Jasn&amp;#283;, je to konfigurace kdy v&amp;#353;echno b&amp;#283;&amp;#382;&amp;#237; na jednom serveru, ale stejn&amp;#283;, je to sranda. Rozeberme si to. N&amp;#225;zev aplikace nem&amp;#225; &amp;#382;&amp;#225;dn&amp;#253; zvl&amp;#225;&amp;#353;tn&amp;#237; v&amp;#253;znam, m&amp;#367;&amp;#382;ete ho d&amp;#225;le pou&amp;#382;&amp;#237;t jako prom&amp;#283;nou (t&amp;#345;eba v &amp;lt;em&amp;gt;deploy_to&amp;lt;/em&amp;gt;). N&amp;#225;sleduje cesta ke zdroj&amp;#225;k&amp;#367;m v &amp;lt;span class="caps"&amp;gt;SVN&amp;lt;/span&amp;gt;. Prom&amp;#283;nn&amp;#225; &amp;lt;em&amp;gt;user&amp;lt;/em&amp;gt; se hod&amp;#237; v p&amp;#345;&amp;#237;pad&amp;#283;, &amp;#382;e va&amp;#353;e u&amp;#382;ivatelsk&amp;#233; jm&amp;#233;no na lok&amp;#225;le je jin&amp;#233; ne&amp;#382; to na serveru. &amp;lt;em&amp;gt;deploy_to&amp;lt;/em&amp;gt; &amp;#345;&amp;#237;k&amp;#225;, ve kter&amp;#233;m adres&amp;#225;&amp;#345;i na serveru bude &amp;lt;em&amp;gt;cap&amp;lt;/em&amp;gt; operovat. A pak u&amp;#382; sta&amp;#269;&amp;#237; jenom t&amp;#345;ikr&amp;#225;t copy&amp;amp;#38;pastnout url serveru, na kter&amp;#253; se bude nasazovat. Je&amp;#353;t&amp;#283; p&amp;#345;ed prvn&amp;#237;m spu&amp;#353;t&amp;#283;n&amp;#237;m &amp;lt;em&amp;gt;cap&amp;lt;/em&amp;gt; p&amp;#345;&amp;#237;kazu si vytvo&amp;#345;te soubor script/spin. Nemus&amp;#237; nic d&amp;#283;lat, ale pokud chcete m&amp;#367;&amp;#382;e nastartovat v&amp;#225;&amp;#353; prvn&amp;#237; Mongrel. U m&amp;#283; ned&amp;#283;l&amp;#225; nikdy nic. Pro&amp;#269;? Dozv&amp;#237;te se n&amp;#237;&amp;#382;e. Te&amp;#271; jenom ud&amp;#283;lejte n&amp;#225;sleduj&amp;#237;c&amp;#237;:&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;$ cap deploy:setup # vyto&amp;#345;&amp;#237; adres&amp;#225;&amp;#345;ovou strukturu&amp;lt;br/&amp;gt;$ cap deploy:cold # studen&amp;#253; deploy - kdy&amp;#382; aplikace je&amp;#353;t&amp;#283; neb&amp;#283;&amp;#382;&amp;#237;&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;Je libo nahr&amp;#225;t na sever posledn&amp;#237; zm&amp;#283;ny?&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;$ cap deploy&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;Je libo vr&amp;#225;tit se zp&amp;#283;t, p&amp;#225;&amp;#269; se n&amp;#283;co po*ralo?&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;$ cap rollback&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;Nakonec pou&amp;#382;&amp;#237;vate-li cgi, fcgi nebo tak n&amp;#283;co, tak doporu&amp;#269;uju nastavit svn:executable propety u n&amp;#225;sleduj&amp;#237;c&amp;#237;ch soubor&amp;#367;:&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;script/**&amp;lt;br/&amp;gt;public/dispatch.*&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;No a i kdy&amp;#382; nic z toho nepou&amp;#382;&amp;#237;v&amp;#225;te, ud&amp;#283;lejte to stejn&amp;#283;. U&amp;#353;t&amp;#345;&amp;#237;te hromadu probl&amp;#233;m&amp;#367; v budoucnu.&amp;lt;/p&amp;gt;&amp;lt;h4&amp;gt;Kdok druh&amp;#253;: Pipe | Switch | Pipe&amp;lt;/h4&amp;gt;&amp;lt;p&amp;gt;Jak jsem u&amp;#382; &amp;#345;&amp;#237;kal j&amp;#225; si n&amp;#283;jakou dobu, vysta&amp;#269;il s krokem jedna a mod_fcgid. Jedna v&amp;#283;c m&amp;#283; na tom ale docela &amp;#353;tvala. Sou&amp;#269;&amp;#225;st&amp;#237; m&amp;#233;ho &amp;lt;em&amp;gt;deployment recipe&amp;lt;/em&amp;gt; (term&amp;#237;nus technikus pro &amp;lt;em&amp;gt;config/deploy.rb&amp;lt;/em&amp;gt;) musel b&amp;#253;t n&amp;#225;sleduj&amp;#237;c&amp;#237; k&amp;#243;d:&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;task :restart_web_server, :roles =&amp;amp;gt; :web do&amp;lt;br/&amp;gt;  sudo "/etc/init.d/apache2 restart" &amp;lt;br/&amp;gt;end&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;after "deploy:start", :restart_web_server&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;after "deploy:restart", :restart_web_server&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;Prost&amp;#283; fuj. Nepat&amp;#345;&amp;#237;m mezi early-adopters nad&amp;#353;ence, ale o &amp;lt;a href="http://switchpipe.org/"&amp;gt;SwitchPipe&amp;lt;/a&amp;gt; se u&amp;#382; n&amp;#283;jakou dobu p&amp;#237;&amp;#353;e jako upload &amp;amp;#38; run deployment &amp;#345;e&amp;#353;en&amp;#237; pro Rails. Narozd&amp;#237;l od &amp;lt;a href="http://jansterba.com/archives/2008/3/26/mod_rails_rails_deployment_vyresen/"&amp;gt;mod_rails&amp;lt;/a&amp;gt; je u&amp;#382; dnes k dispozici, tak pro&amp;#269; ho nezkusit? SwitchPipe je jednoduch&amp;#253;, ale velmi mocn&amp;#253; process-manager. Prost&amp;#283; spou&amp;#353;t&amp;#237; a zab&amp;#237;j&amp;#237; procesy jak je pot&amp;#345;eba a to je p&amp;#345;esn&amp;#283; to co kombinace Rails &amp;amp;#38; Monrel pot&amp;#345;ebuje. Konfigurace? Trivka! Dejme tomu, &amp;#382;e m&amp;#225;te nastaven&amp;#253; virtual-host a va&amp;#353;e aplikace u&amp;#382; n&amp;#283;jak b&amp;#283;&amp;#382;&amp;#237;. Jak p&amp;#345;ej&amp;#237;t na SwitchPipe? Nej&amp;#345;&amp;#237;v si ho mus&amp;#237;te &amp;lt;a href="http://groups.google.com/group/switchpipe/web/installation-instructions"&amp;gt;naintalovat&amp;lt;/a&amp;gt;, co&amp;#382; v podstat&amp;#283; sest&amp;#225;v&amp;#225; z n&amp;#225;sleduj&amp;#237;c&amp;#237;ho:&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;$ svn co http://switchpipe.org/switchpipe1/tags/release-1.04 \&amp;lt;br/&amp;gt;  /usr/local/switchpipe&amp;lt;br/&amp;gt;$ cd /usr/local/switchpipe&amp;lt;br/&amp;gt;$ cp # config.yml.example # config.yml&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;Pak je je&amp;#353;t&amp;#283; dobr&amp;#233; zajistit start SwitchPipe d&amp;#233;mona po startu zalinkov&amp;#225;n&amp;#237;m &amp;lt;em&amp;gt;script/initdscript&amp;lt;/em&amp;gt; do &amp;lt;em&amp;gt;/etc/init.d&amp;lt;/em&amp;gt; a toho pak do &amp;lt;em&amp;gt;/etc/rc3.d&amp;lt;/em&amp;gt;. A v&amp;#269;&amp;#237;l u&amp;#382; jenom ty aplika&amp;#269;ky. V adres&amp;#225;&amp;#345;i &amp;lt;em&amp;gt;switchpipe/apps&amp;lt;/em&amp;gt; hled&amp;#225; d&amp;#233;mon zm&amp;#283;ny a pokud n&amp;#283;jak&amp;#233; najde hned reaguje. Konfigurujeme v &amp;lt;span class="caps"&amp;gt;YAML&amp;lt;/span&amp;gt;. P&amp;#345;&amp;#237;klad najdete na str&amp;#225;nce o &amp;lt;a href="http://groups.google.com/group/switchpipe/web/setting-up-your-own-webapps-with-switchpipe"&amp;gt;konfiguraci&amp;lt;/a&amp;gt; a fakt na to nen&amp;#237; t&amp;#345;eba nic vym&amp;#253;&amp;#353;let. Sta&amp;#269;&amp;#237; &amp;#269;ty&amp;#345;i &amp;#345;&amp;#225;dky, save a cluster mongrel&amp;#367; &amp;#269;ek&amp;#225; na requesty. Posledn&amp;#237; v&amp;#283;ci, kterou je t&amp;#345;eba ud&amp;#283;lat, je zahodit cel&amp;#253; den dlouh&amp;#253; a slo&amp;#382;it&amp;#253; &amp;lt;em&amp;gt;.htacces&amp;lt;/em&amp;gt;, kter&amp;#253; generuj&amp;#237; Rails a nahradit jej n&amp;#225;sleduj&amp;#237;c&amp;#237;m:&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;  RewriteEngine On&amp;lt;br/&amp;gt;  RewriteCond %{REQUEST_FILENAME} !-f&amp;lt;br/&amp;gt;  RewriteRule ^(.*)$ http://127.0.0.1:10000/myapp/$1 [P]&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;Nezapome&amp;#328;te myapp nahradit n&amp;#225;vem konfigura&amp;#269;n&amp;#237;ho .yml souboru.&amp;lt;/p&amp;gt;&amp;lt;h4&amp;gt;Z&amp;#225;v&amp;#283;r: A co ty restarty?&amp;lt;/h4&amp;gt;&amp;lt;p&amp;gt;Ironi&amp;#237; osudu je, &amp;#382;e SwitchPipe zat&amp;#237;m neum&amp;#237; elegantn&amp;#283; restartovat cluster pro jednu aplikaci. Je to ale subjektivn&amp;#237;. Jak&amp;#225;koli zm&amp;#283;na konfigurace clusteru zp&amp;#367;sob&amp;#237; jeho reload (kill v&amp;#353;ech proces&amp;#367; a za&amp;#269;n&amp;#283; se znova). Co s t&amp;#237;m teda? &amp;#344;e&amp;#353;en&amp;#237; se jmenuje &amp;lt;em&amp;gt;touch&amp;lt;/em&amp;gt; a pom&amp;#367;&amp;#382;e n&amp;#225;m s n&amp;#237;m op&amp;#283;t Capistrano.&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;task :restart_cluster, :roles =&amp;amp;gt; :web do&amp;lt;br/&amp;gt;  sudo "touch /usr/local/switchpipe/apps/myapp.yml" &amp;lt;br/&amp;gt;end&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;after "deploy:restart", :restart_cluster&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;No a te&amp;#271; se o deployment star&amp;#225; Capistrano a restartuj&amp;#237; se jenom Mongrely p&amp;#345;&amp;#237;slu&amp;#353;n&amp;#233; k aktualizovan&amp;#233; aplikaci. A je&amp;#353;t&amp;#283; k tomu nastavov&amp;#225;n&amp;#237; byla fakt sranda, &amp;#382;&amp;#225;dn&amp;#233; hled&amp;#225;n&amp;#237; zakopan&amp;#233;ho psa jako s mod_fcgid.&amp;lt;/p&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;br/&amp;gt;$ cap deploy&amp;lt;br/&amp;gt;&amp;lt;/pre&amp;gt;</content>
  </entry>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-716</id>
    <issued>2008-03-27T20:52:22+01:00</issued>
    <modified>2008-03-27T21:00:10+01:00</modified>
    <title>Botanicus: Sake: single-line scripts sssucks!</title>
    <link href="http://botablog.cz/clanek/sake-single-line-scripts-sssucks" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">Jist&amp;#283; to zn&amp;#225;te. M&amp;#225;te spousty n&amp;#225;pad&amp;#367;, co se d&amp;#225; snadno automatizovat. Nap&amp;#237;&amp;#353;ete si tedy skript, kter&amp;#253; se vejde t&amp;#345;eba na &amp;#345;&amp;#225;dek nebo dva. Po ur&amp;#269;it&amp;#233;m &amp;#269;ase m&amp;#225;te skripty v&amp;#353;ude a nev&amp;#237;te k &amp;#269;emu je kter&amp;#253;. A &amp;#345;e&amp;#353;en&amp;#237;? Sake!</content>
  </entry>
  <entry>
    <author>
      <name>Jan &#352;t&#283;rba</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-713</id>
    <issued>2008-03-26T16:06:00+01:00</issued>
    <modified>2008-03-26T17:00:13+01:00</modified>
    <title>Jan &#352;t&#283;rba: mod_rails: Rails deployment vy&amp;#345;e&amp;#353;en?</title>
    <link href="http://jansterba.com/archives/2008/3/26/mod_rails_rails_deployment_vyresen/" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">&amp;lt;p&amp;gt;Tak to vypad&amp;#225;, &amp;#382;e problemati&amp;#269;nost deploymentu Rails aplikac&amp;#237; bude brzo minulost&amp;#237;. &amp;lt;a href="http://modrails.com"&amp;gt;mod_rails&amp;lt;/a&amp;gt; je prozat&amp;#237;m jenom video prezenetuj&amp;#237;c&amp;#237;, &amp;#382;e &amp;lt;em&amp;gt;upload &amp;amp;#38; run&amp;lt;/em&amp;gt; postup zn&amp;#225;m&amp;#253; PHPk&amp;#225;&amp;#345;&amp;#367;m je mo&amp;#382;n&amp;#253; i s Rails. Video nap&amp;#345;&amp;#237;klad tvrd&amp;#237;, &amp;#382;e prvotn&amp;#237; instalace zabere pouh&amp;#233; dv&amp;#283; minuty. To je sice p&amp;#283;kn&amp;#233;, ale j&amp;#225; to beru sp&amp;#237;&amp;#353;e jako minimum. Nev&amp;#237;m pro&amp;#269;, ale v&amp;#382;dycky, kdy&amp;#382; za&amp;#269;nu n&amp;#283;co kompilovat, se mi to napoprv&amp;#233; n&amp;#283;jak nepoda&amp;#345;&amp;#237;.  Ofici&amp;#225;ln&amp;#237; bechmarky sice zat&amp;#237;m nejsou, ale m&amp;#367;&amp;#382;ete se &amp;lt;a href="http://izumi.plan99.net/blog/index.php/2008/03/20/rails-deployment-a-solved-problem-just-upload-it-works/"&amp;gt;do&amp;#269;&amp;#237;st&amp;lt;/a&amp;gt;, &amp;#382;e v&amp;#253;konnost je stejn&amp;#225; jako u mongrelu. Ka&amp;#382;dop&amp;#225;dn&amp;#283; pova&amp;#382;uju mod_rails za pozitivn&amp;#237; ud&amp;#225;lost. &amp;lt;a href="http://novemberain.com/2008/3/20/mod_rails_for_apache"&amp;gt;N&amp;#283;kte&amp;#345;&amp;#237;&amp;lt;/a&amp;gt; jsou, ale jin&amp;#233;ho n&amp;#225;zoru. Podle m&amp;#283; docela zcestn&amp;#283;. &amp;#352;irok&amp;#225; adaptace Rails sice p&amp;#345;inese ur&amp;#269;it&amp;#233; zm&amp;#283;ny v &amp;lt;em&amp;gt;core&amp;lt;/em&amp;gt; komunit&amp;#283;, ale &amp;#382;e by m&amp;#283;la znamenat konec sv&amp;#283;ta? To asi ne.&amp;lt;/p&amp;gt;</content>
  </entry>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-707</id>
    <issued>2008-03-25T20:55:21+01:00</issued>
    <modified>2008-03-25T21:00:12+01:00</modified>
    <title>Botanicus: Odkazovn&amp;#237;&amp;#269;ek pro m&amp;#283;s&amp;#237;c b&amp;#345;ezen</title>
    <link href="http://botablog.cz/clanek/odkazovnicek-pro-mesic-brezen" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">Zaj&amp;#237;mav&amp;#233; odkazy z cel&amp;#233;ho internetu. Dnes si pov&amp;#237;me, jak fixnout probl&amp;#233;m s diakritikou v IRB v Leopardu, vygenerujeme si mikroform&amp;#225;ty a uk&amp;#225;&amp;#382;eme si tip pro pr&amp;#225;ci s regul&amp;#225;rn&amp;#237;mi v&amp;#253;razy.</content>
  </entry>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-706</id>
    <issued>2008-03-24T08:58:19+01:00</issued>
    <modified>2008-03-24T09:00:10+01:00</modified>
    <title>Botanicus: RSpec: vypr&amp;#225;v&amp;#283;n&amp;#237; nebo testov&amp;#225;n&amp;#237;?</title>
    <link href="http://botablog.cz/clanek/rspec-vypraveni-nebo-testovani" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">RSpec je implementac&amp;#237; &amp;lt;acronym title="Behaviour Driven Development"&amp;gt;BDD&amp;lt;/acronym&amp;gt;. Vyzna&amp;#269;uje se velmi &amp;#269;itelnou syntax&amp;#237; a t&amp;#237;m, &amp;#382;e z&amp;#225;rove&amp;#328; slou&amp;#382;&amp;#237; k dokumentaci k&amp;#243;du. Dnes technick&amp;#253; &amp;#250;vod a odkazy.</content>
  </entry>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-705</id>
    <issued>2008-03-23T02:49:05+01:00</issued>
    <modified>2008-03-23T03:00:11+01:00</modified>
    <title>Botanicus: &amp;#218;vod do testov&amp;#225;n&amp;#237; v Ruby</title>
    <link href="http://botablog.cz/clanek/uvod-do-testovani-v-ruby" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">Testov&amp;#225;n&amp;#237;, bol&amp;#237;stka mnoha program&amp;#225;tor&amp;#367;. Pokud jste z t&amp;#283;ch, co je&amp;#353;t&amp;#283; testovat neza&amp;#269;ali, m&amp;#225;m pro v&amp;#225;s drobn&amp;#233; popostr&amp;#269;en&amp;#237;.</content>
  </entry>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-701</id>
    <issued>2008-03-22T11:11:13+01:00</issued>
    <modified>2008-03-22T12:00:24+01:00</modified>
    <title>Botanicus: A pou&amp;#382;ijte to ... no ... jak ono se to jmenuje?</title>
    <link href="http://botablog.cz/clanek/a-pouzijte-to-no-jak-ono-se-to-jmenuje" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">Drobn&amp;#253; tutori&amp;#225;lek o tom, jak naj&amp;#237;t metodu, kter&amp;#225; v&amp;#237;m co d&amp;#283;l&amp;#225;, ale nev&amp;#237;m, jak se jmenuje.</content>
  </entry>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-699</id>
    <issued>2008-03-21T23:59:30+01:00</issued>
    <modified>2008-03-22T00:00:20+01:00</modified>
    <title>Botanicus: Rozcestn&amp;#237;k: kam na Ruby na &amp;#269;esk&amp;#233;m internetu?</title>
    <link href="http://botablog.cz/clanek/rozcestnik-kam-na-ruby-na-ceskem-internetu" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">&amp;#268;esk&amp;#225; komunita okolo Ruby a Rails roste &amp;#269;&amp;#237;m d&amp;#225;l t&amp;#237;m v&amp;#237;ce. Abyste m&amp;#283;li p&amp;#345;ehled, kde v&amp;#353;ude je &amp;#382;ivo, p&amp;#345;ipravil jsem drobn&amp;#233; shrnut&amp;#237;.</content>
  </entry>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-698</id>
    <issued>2008-03-21T13:16:22+01:00</issued>
    <modified>2008-03-21T14:15:30+01:00</modified>
    <title>Botanicus: Triky pro pr&amp;#225;ci s prom&amp;#283;nn&amp;#253;mi prost&amp;#345;ed&amp;#237; Ruby</title>
    <link href="http://botablog.cz/clanek/triky-pro-praci-s-promennymi-prostredi-ruby" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">Prom&amp;#283;nn&amp;#233; prost&amp;#345;ed&amp;#237; ovliv&amp;#328;uj&amp;#237; v&amp;#253;razn&amp;#283; b&amp;#283;h program&amp;#367; v Ruby a ur&amp;#269;it&amp;#283; se je vyplat&amp;#237; zn&amp;#225;t. Lze p&amp;#345;es n&amp;#283; nastavit jak defaultn&amp;#237; argumenty, tak cesty, v nich&amp;#382; bude Ruby hledat sv&amp;#233; knihovny.</content>
  </entry>
  <entry>
    <author>
      <name>Botanicus</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-697</id>
    <issued>2008-03-21T11:53:25+01:00</issued>
    <modified>2008-03-21T14:15:27+01:00</modified>
    <title>Botanicus: Drobn&amp;#253; hack aneb jak na &amp;#8222;staticky typovan&amp;#233;&amp;#8220; Ruby</title>
    <link href="http://botablog.cz/clanek/drobny-hack-aneb-jak-na-staticky-typovane-ruby" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">Dynamick&amp;#233; typov&amp;#225;n&amp;#237; je skv&amp;#283;l&amp;#225; v&amp;#283;c, ale ob&amp;#269;as bychom rad&amp;#283;ji pou&amp;#382;ili typov&amp;#225;n&amp;#237; statick&amp;#233;. To Ruby sice nem&amp;#225;, lze si ale trochu vypomoci.</content>
  </entry>
  <entry>
    <author>
      <name>root.cz</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-604</id>
    <issued>2008-02-15T00:00:05+01:00</issued>
    <modified>2008-02-15T13:13:00+01:00</modified>
    <title>root.cz: Parser bankovn&#237;ch v&#253;pis&#367; aneb hr&#225;tky s Ragel</title>
    <link href="http://www.root.cz/clanky/parser-bankovnich-vypisu-aneb-hratky-s-ragel/" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">Ned&#225;vno jsem dostal nelehk&#253; &#250;kol: parsovat bankovn&#237; v&#253;pisy &#268;esk&#233; spo&#345;itelny. Form&#225;tov&#225;n&#237; vstupn&#237;ch dat je ale velmi nestandardn&#237; a &#269;asto se nedr&#382;&#237; ani vlastn&#237;ch pravidel. Hledal jsem proto vhodn&#253; parser, kter&#253; by si s probl&#233;mem poradil. Nakonec jsem vyu&#382;il Ragel, jeho&#382; pou&#382;it&#237; je v&#353;estrann&#233; a pohodln&#233;.</content>
  </entry>
  <entry>
    <author>
      <name>David Majda</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-517</id>
    <issued>2008-01-08T21:47:56+01:00</issued>
    <modified>2008-02-15T13:13:39+01:00</modified>
    <title>David Majda: Hr&#225;tky s Unicode identifk&#225;tory v Ruby</title>
    <link href="http://www.majda.cz/zapisnik/?256" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">&amp;lt;p&amp;gt;Na Silvestra vydal Jakub Vr&#225;na &amp;lt;a
href=&amp;quot;http://php.vrana.cz/nove-operatory.php&amp;quot;&amp;gt;nev&#225;&#382;n&#283; m&#237;n&#283;n&#253; &#269;l&#225;nek&amp;lt;/a&amp;gt; o
patchi, kter&#253; umo&#382;&#328;uje pou&#382;&#237;vat v PHP r&#367;zn&#233; symboly z Unicode &amp;amp;ndash; t&#345;eba
oper&#225;tor &amp;lt;code&amp;gt;&#8804;&amp;lt;/code&amp;gt; nebo funkci &amp;lt;code&amp;gt;&#8730;&amp;lt;/code&amp;gt;. Vzhled programu se tak
p&#345;ibli&#382;uje matematick&#233;mu z&#225;pisu.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;Hned po p&#345;e&#269;ten&#237; textu jsem za&#269;al p&#345;em&#253;&#353;let nad t&#237;m, jak n&#283;co podobn&#233;ho
sp&#225;chat v Ruby. Ruby toti&#382; povoluje Unicode znaky v identifik&#225;torech, a nen&#237; tak
ani t&#345;eba upravovat interpret, jako bylo nutn&#233; v p&#345;&#237;pad&#283; PHP.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;Pro dal&#353;&#237; &#269;ten&#237; doporu&#269;uji nejd&#345;&#237;v p&#345;e&#269;&#237;st zmi&#328;ovan&#253; &amp;lt;a
href=&amp;quot;http://php.vrana.cz/nove-operatory.php&amp;quot;&amp;gt;Jakub&#367;v &#269;l&#225;nek&amp;lt;/a&amp;gt;, abyste byli v
obraze. Tento text z n&#283;j toti&#382; sv&#253;m uspo&#345;&#225;d&#225;n&#237;m vych&#225;z&#237;.&amp;lt;/p&amp;gt;

&amp;lt;h3&amp;gt;Konstanty&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;Definice hodnot s n&#225;zvy jako &amp;lt;code&amp;gt;&#189;&amp;lt;/code&amp;gt; &#269;i &amp;lt;code&amp;gt;&#188;&amp;lt;/code&amp;gt; nen&#237; v Ruby
probl&#233;m:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;&#189; = 0.5
&#188; = 0.25
&#8540; = 0.375
&#960; = Math::PI

puts &#189; &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; 0.5&amp;lt;/span&amp;gt;
puts &#188; &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; 0.25&amp;lt;/span&amp;gt;
puts &#8540; &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; 0.375&amp;lt;/span&amp;gt;
puts &#960; &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; 3.14159265358979&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;p&amp;gt;Ob&#269;as by se mohla hodit i pr&#225;zdn&#225; mno&#382;ina nebo nekone&#269;no:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;&#8709; = []
&#8734; = 1.0 / 0.0

puts &#8734; &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; Infinity&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;p&amp;gt;Bohu&#382;el na rozd&#237;l od opatchovan&#233;ho PHP si tyto hodnoty nem&#367;&#382;eme definovat
jako konstanty, nebo&#357; konstanty mus&#237; v Ruby za&#269;&#237;nat velk&#253;m p&#237;smenem. Mus&#237;
posta&#269;it oby&#269;ejn&#233; prom&#283;nn&#233;.&amp;lt;/p&amp;gt;

&amp;lt;h3&amp;gt;Oper&#225;tory&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;Ps&#225;t v Ruby v&#253;razy jako &amp;lt;code&amp;gt;1 &#8800; 2&amp;lt;/code&amp;gt; by bylo hezk&#233;, bohu&#382;el to ale tak
&#250;pln&#283; nejde, proto&#382;e Ruby neumo&#382;&#328;uje definovat vlastn&#237; oper&#225;tory (z jazyk&#367;, co
aspo&#328; trochu zn&#225;m, tohle um&#237; jen Haskell). Pokud ale p&#345;e&#382;ijeme vol&#225;n&#237; &amp;quot;p&#345;es
te&#269;ku&amp;quot;, m&#367;&#382;eme si vytvo&#345;it aliasy pro odpov&#237;daj&#237;c&#237; metody na numerick&#253;ch t&#345;&#237;d&#225;ch
a volat pak je:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;class Fixnum
  alias &#8800; != &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# nefunguje v Ruby 1.8.x&amp;lt;/span&amp;gt;
  alias &#8804; &amp;amp;lt;=
  alias &#8805; &amp;amp;gt;=
  alias &#215; *
  alias &#247; /
  &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# ...&amp;lt;/span&amp;gt;
end

&amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# Analogicky i pro t&#345;&#237;dy Bignum a Float...&amp;lt;/span&amp;gt;

puts 1.&#8800; 2 &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; true&amp;lt;/span&amp;gt;
puts 3.&#215; 4 &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; 12&amp;lt;/span&amp;gt;
puts 6.&#247; 2 &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; 2&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;h3&amp;gt;Dal&#353;&#237; matematika&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;Je libo odmoc&#328;ovat pomoc&#237; funkce &amp;lt;code&amp;gt;&#8730;&amp;lt;/code&amp;gt;? Sta&#269;&#237; p&#345;idat alias do modulu
&amp;lt;code&amp;gt;Math&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;module Math
  alias &#8730; sqrt
end&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;p&amp;gt;Po inkluzi modulu u&#382; odmocninu m&#367;&#382;eme pou&#382;&#237;vat:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;include Math

puts &#8730; 9 &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; 3&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;p&amp;gt;Sumu (&amp;lt;code&amp;gt;&#8721;&amp;lt;/code&amp;gt;) nebo sou&#269;in (&amp;lt;code&amp;gt;&#8719;&amp;lt;/code&amp;gt;) u&#382; jako alias definovat
nem&#367;&#382;eme, proto&#382;e Ruby nem&#225; vhodn&#233; metody, na kter&#233; by &#353;ly tyto n&#225;zvy namapovat.
Budeme si je tedy muset napsat (a to hezky funkcion&#225;ln&#283; :-)&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;def &#8721;(array)
  array.inject(0) { |sum, item| sum   item }
end

def &#8719;(array)
  array.inject(1) { |product, item| product * item }
end

puts &#8721; [1,2,3,4] &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; 10&amp;lt;/span&amp;gt;
puts &#8719; [1,2,3,4] &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; 24&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;p&amp;gt;&#268;ist&#283;j&#353;&#237; by samoz&#345;ejm&#283; bylo definovat metody ve t&#345;&#237;d&#283; &amp;lt;code&amp;gt;Array&amp;lt;/code&amp;gt;,
nebo je&#353;t&#283; l&#233;pe v modulu &amp;lt;code&amp;gt;Enumerable&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;V Ruby 1.9.0 bychom d&#237;ky vylep&#353;en&#233; metod&#283; &amp;lt;code&amp;gt;Enumerable#inject&amp;lt;/code&amp;gt; mohli
definice sou&#269;tu a sou&#269;inu je&#353;t&#283; o trochu zkr&#225;tit:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;def &#8721;(array)
  array.inject(0, : )
end

def &#8719;(array)
  array.inject(1, :*)
end&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;h3&amp;gt;Lambda&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;Pokud jste se nahl&#233;dli do &amp;lt;a
href=&amp;quot;http://eigenclass.org/hiki.rb?Changes in Ruby 1.9&amp;quot;&amp;gt;seznamu novinek Ruby
1.9.0&amp;lt;/a&amp;gt;, mo&#382;n&#225; jste si v&#353;imli nov&#233; syntaxe pro lambda funkce:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;f = -&amp;gt;(a, b){ a   b }
puts f.call(1, 2) &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; 3&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;p&amp;gt;Matzovi (tv&#367;rci Ruby) znaky &amp;quot;-&amp;gt;&amp;quot; &#250;dajn&#283; po men&#353;&#237; rotaci a translaci
p&#345;ipom&#237;naj&#237; p&#237;smenko &amp;quot;lambda&amp;quot;. Jeliko&#382; m&#283; ne, rozhodl jsem se lambdu nadefinovat
po sv&#233;m:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;module Kernel
  alias &#955; lambda
end

f = &#955; { |a, b| a   b }
puts f.call(1, 2) &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; 3&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;h3&amp;gt;Pozor, nebezpe&#269;&#237;!&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;V Ruby je (po vzoru Lispu) zvykem ozna&#269;ovat metody, kter&#233; &amp;quot;nebezpe&#269;n&#283;&amp;quot;
modifikuj&#237; obsah objektu, pomoc&#237; vyk&#345;i&#269;n&#237;ku na konci jejich n&#225;zvu:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;s = &amp;quot;ABCD&amp;quot;
s.downcase!
puts s &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; &amp;quot;abcd&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;p&amp;gt;Pokud se v&#225;m to ale zd&#225; m&#225;lo v&#253;razn&#233;, nen&#237; probl&#233;m pou&#382;&#237;t jin&#253; znak:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;class String
  alias downcase&#9760; downcase!
  undef downcase!

  &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# Podobn&#283; s dal&#353;&#237;mi metodami...&amp;lt;/span&amp;gt;
end

s = &amp;quot;ABCD&amp;quot;
s.downcase&#9760;
puts s &amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# =&amp;amp;gt; &amp;quot;abcd&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;h3&amp;gt;Chcete si taky hr&#225;t?&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;Na p&#345;&#237;padn&#233; hran&#237; s Unicode doporu&#269;uji st&#225;hnout &#269;erstv&#233; Ruby 1.9.0, kter&#233;
podporuje specifikaci k&#243;dov&#225;n&#237; zdroj&#225;ku p&#345;&#237;mo v souboru  &amp;amp;ndash; na prvn&#237; &#345;&#225;dek
sta&#269;&#237; napsat nap&#345;&#237;klad toto:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;span class=&amp;quot;color-008000&amp;quot;&amp;gt;# encoding=utf-8&amp;lt;/span&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;p&amp;gt;V Ruby 1.8.x Unicode identifik&#225;tory funguj&#237; taky, ale p&#345;i spu&#353;t&#283;n&#237; programu,
kter&#253; je pou&#382;&#237;v&#225;, je nutno pou&#382;&#237;t volbu &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;-Ku&amp;lt;/span&amp;gt;, kter&#225; p&#345;epne Ruby do
re&#382;imu UTF-8. Tato volba funguje i v Ruby 1.9.0.&amp;lt;/p&amp;gt;

&amp;lt;h3&amp;gt;&#352;up sem s Ruby 1.9.0&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;Ruby 1.9.0 je v tuto chv&#237;li &amp;lt;a href=&amp;quot;ftp://ftp.ruby-lang.org/pub/ruby/1.9/&amp;quot;&amp;gt;k
dispozici&amp;lt;/a&amp;gt; jen jako bal&#237;k se zdrojov&#253;m k&#243;dem, kter&#253; je nutno rozbalit a
zkompilovat.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;Pokud to ud&#283;l&#225;te, tak p&#345;i spou&#353;t&#283;n&#237; &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;./configure&amp;lt;/span&amp;gt; doporu&#269;uji pou&#382;&#237;t
volbu &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;--prefix&amp;lt;/span&amp;gt; a specifikovat adres&#225;&#345;, kam se Ruby 1.9.0 po
zkompilov&#225;n&#237; nainstaluje. Nehroz&#237; tak, &#382;e by nov&#283; zkompilovan&#225; verze p&#345;epsala
verzi nainstalovanou v syst&#233;mu.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;Na m&#233;m Ubuntu 7.10 prob&#283;hla kompilace Ruby 1.9.0 bez probl&#233;m&#367; a sta&#269;ilo
napsat variaci na obvyklou &amp;quot;svatou trojici&amp;quot; p&#345;&#237;kaz&#367;:&amp;lt;/p&amp;gt;

&amp;lt;pre&amp;gt;./configure --prefix=/home/dmajda/ruby19
make
sudo make install&amp;lt;/pre&amp;gt;

&amp;lt;h3&amp;gt;Ke sta&#382;en&#237;&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;P&#345;&#237;klady uveden&#233; v&#253;&#353;e si m&#367;&#382;ete st&#225;hnout hezky pohromad&#283; v jednom souboru: &amp;lt;a
href=&amp;quot;/download/unicode-fun.rb&amp;quot;&amp;gt;unicode-fun.rb&amp;lt;/a&amp;gt;.&amp;lt;/p&amp;gt;

&amp;lt;h3&amp;gt;A to je konec...&amp;lt;/h3&amp;gt;

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;alias &#8224; exit
&#8224;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

&amp;lt;h3&amp;gt;Pou&#382;it&#233; zdroje&amp;lt;/h3&amp;gt;

&amp;lt;ul&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/12248&amp;quot;&amp;gt;Mail Davida Flanagana&amp;lt;/a&amp;gt;
  a navazuj&#237;c&#237; vl&#225;kno v mailing listu ruby-core&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://eigenclass.org/hiki.rb?Changes in Ruby 1.9&amp;quot;&amp;gt;Changes in Ruby 1.9&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;</content>
  </entry>
  <entry>
    <author>
      <name>David Majda</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-514</id>
    <issued>2008-01-07T11:18:22+01:00</issued>
    <modified>2008-02-15T17:38:17+01:00</modified>
    <title>David Majda: Dodatek k &#269;l&#225;nku &amp;quot;Ruby 1.9.0 - zpackan&#233; vyd&#225;n&#237;?&amp;quot;</title>
    <link href="http://www.majda.cz/zapisnik/?255" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">&amp;lt;p&amp;gt;M&#367;j t&#253;den star&#253; &#269;l&#225;nek &amp;lt;a href=&amp;quot;http://www.majda.cz/zapisnik/?254&amp;quot;&amp;gt;Ruby 1.9.0
- zpackan&#233; vyd&#225;n&#237;?&amp;lt;/a&amp;gt; vyvolal pom&#283;rn&#283; silnou negativn&#237; odezvu. P&#345;esn&#283;ji &#345;e&#269;eno,
tuto odezvu vyvolal sp&#237;&#353;e &#269;l&#225;nek Jakuba &#352;&#357;astn&#233;ho &amp;lt;a
href=&amp;quot;http://www.root.cz/clanky/ukvapene-vydani-ruby-1-9/&amp;quot;&amp;gt;Ukvapen&#233; vyd&#225;n&#237; Ruby
1.9?&amp;lt;/a&amp;gt;, kter&#253; vy&#353;el na Rootu. Tento &#269;l&#225;nek ale z toho m&#233;ho vych&#225;zel a odezva
na n&#283;j se tak dot&#253;k&#225; i m&#283;.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&#268;eho se odezva t&#253;kala? M&#367;j (i Jakub&#367;v) &#269;l&#225;nek kritizoval zp&#367;sob vyd&#225;n&#237; Ruby
1.9 a vych&#225;zel p&#345;itom z toho, &#382;e 1.9
je v z&#225;sad&#283; dal&#353;&#237; b&#283;&#382;n&#225; verze tohoto jazyka. To nen&#237; pravda &amp;amp;ndash; &amp;lt;strong&amp;gt;Ruby
1.9 je verze v&#253;vojov&#225; a nen&#237; ur&#269;ena pro b&#283;&#382;n&#233; u&#382;ivatele&amp;lt;/strong&amp;gt;. V tomto
kontextu pak zm&#237;n&#283;n&#225; kritika ztr&#225;c&#237; z velk&#233; &#269;&#225;sti v&#253;znam.&amp;lt;/p&amp;gt;

&amp;lt;h3&amp;gt;Kde byla chyba?&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;V komunikaci.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;Pro b&#283;&#382;n&#233;ho &#269;ten&#225;&#345;e je v&#283;c jasn&#225; &amp;amp;ndash; pod&#237;v&#225; se na web a u
Ruby 1.9 &amp;lt;a
href=&amp;quot;http://www.ruby-lang.org/en/news/2007/12/25/ruby-1-9-0-released/&amp;quot;&amp;gt;vid&#237;
z&#345;eteln&#233; ozna&#269;en&#237; &amp;lt;em&amp;gt;development release&amp;lt;/em&amp;gt;&amp;lt;/a&amp;gt;. Cesta k napad&#225;n&#237; &#269;l&#225;nku za
ignorov&#225;n&#237; z&#225;kladn&#237;ch fakt&#367; je voln&#225;.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;B&#283;&#382;n&#253; &#269;ten&#225;&#345; u&#382; bohu&#382;el nevid&#237; to, &#382;e definice toho, co to vlastn&#283; 1.9 je, se
v &#269;ase dost m&#283;nila. Je&#353;t&#283; v roce 2006 bylo nap&#345;&#237;klad Ruby 1.9 &amp;lt;a
href=&amp;quot;http://redhanded.hobix.com/cult/rubyKaigi2006.html&amp;quot;&amp;gt;ozna&#269;ov&#225;no za budouc&#237;
stabiln&#237; verzi&amp;lt;/a&amp;gt; a i &amp;lt;a
href=&amp;quot;http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/12385&amp;quot;&amp;gt;n&#283;kter&#233;
Matzovy maily&amp;lt;/a&amp;gt; z podzimu 2007 nevyzn&#237;vaj&#237; rozhodn&#283; jednozna&#269;n&#283;.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;Moj&#237; chybou bylo, &#382;e jsem Matzova prohl&#225;&#353;en&#237; ve stylu &amp;lt;a
href=&amp;quot;http://talklikeaduck.denhaven2.com/articles/2007/11/02/town-meeting-with-matz-at-rubyconf-2007&amp;quot;&amp;gt;&amp;quot;1.9
bude mo&#382;n&#225; m&#233;n&#283; stabiln&#237; ne&#382; bychom cht&#283;li&amp;quot;&amp;lt;/a&amp;gt; interpretoval jako &amp;quot;1.9 bude v
z&#225;sad&#283; stabiln&#237;, jen bude m&#237;t trochu v&#237;ce bug&#367;, ne&#382; je u nov&#253;ch verz&#237; Ruby
zvykem&amp;quot;, zat&#237;mco realita byla sp&#237;&#353; n&#283;co jako &amp;quot;1.9 bude jen o m&#225;lo v&#237;c ne&#382;
aktu&#225;ln&#237; snapshot v&#253;vojov&#233;ho stromu&amp;quot;.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;Na druhou stranu, nejsem jedin&#253;, kdo byl zmaten. T&#345;eba v mailing listu &amp;lt;a
href=&amp;quot;http://lists.debian.org/debian-ruby/&amp;quot;&amp;gt;debian-ruby&amp;lt;/a&amp;gt; se je&#353;t&#283; b&#283;hem
podzimu o 1.9 tak&#233; &amp;lt;a
href=&amp;quot;http://lists.debian.org/debian-ruby/2007/10/msg00009.html&amp;quot;&amp;gt;diskutovalo
jako o p&#345;&#237;&#353;t&#237; stabiln&#237; verzi&amp;lt;/a&amp;gt;.&amp;lt;/p&amp;gt;

&amp;lt;h3&amp;gt;Jak by se nedorozum&#283;n&#237; dalo p&#345;edej&#237;t?&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;Kdy&#382; pominu chybu na m&#233; stran&#283;, zb&#253;v&#225; jedno &amp;amp;ndash; zlep&#353;it komunikaci na
stran&#283; v&#253;voj&#225;&#345;&#367; Ruby.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;Komunikac&#237; mysl&#237;m p&#345;edev&#353;&#237;m jasn&#283;, v&#269;as a ve&#345;ejn&#283; (tj. na webu, ne v n&#283;jak&#233;m
zapadl&#233;m mailing listu) definovat, co jednotliv&#233; verze znamenaj&#237; a jak&#225; je
motivace jejich vyd&#225;n&#237;. Pomohl by i podrobn&#283;j&#353;&#237; pl&#225;n v&#253;voje do budoucna.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;N&#225;strojem komunikace je ale t&#345;eba i &#269;&#237;slo verze &amp;amp;ndash; 1.9 vypad&#225; na prvn&#237;
pohled jako n&#225;sledovn&#237;k 1.8. Ozna&#269;en&#237; verze nap&#345;&#237;klad jako &amp;quot;2.0 Development
Snapshot 1&amp;quot; by re&#225;ln&#253; stav v&#283;ci mysl&#237;m vystihovalo l&#233;pe a nikdo by tuto verzi ur&#269;it&#283; nepova&#382;oval za stabiln&#237;.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;V&#253;voj&#225;&#345;i Ruby s Matzem v &#269;ele by si m&#283;li uv&#283;domit, &#382;e Ruby u&#382; nen&#237; mal&#225;
hra&#269;ka, ale n&#225;stroj, na n&#283;j&#382; mnoz&#237; spol&#233;haj&#237; a jeho&#382; v&#253;voji p&#345;izp&#367;sobuj&#237; i v&#253;voj
sv&#253;ch produkt&#367;. A na to, co tv&#367;rce jazyka jednou o n&#283;jak&#233; budouc&#237; verzi &#345;ekne,
lid&#233; spol&#233;haj&#237; a leckdy na z&#225;klad&#283; toho investuj&#237; do n&#283;&#269;eho nemal&#233; &#250;sil&#237;.&amp;lt;/p&amp;gt;

&amp;lt;h3&amp;gt;A co z &#269;l&#225;nku z&#367;st&#225;v&#225;?&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;Mysl&#237;m, &#382;e i p&#345;es v&#253;&#353;e uveden&#233; z&#367;st&#225;vaj&#237; n&#283;kter&#225; tvrzen&#237; z m&#233;ho &#269;l&#225;nku v
platnosti. Ani v&#253;vojovou verzi nen&#237; nap&#345;&#237;klad spr&#225;vn&#233; vyd&#225;vat s nefunk&#269;n&#237;mi
testy. A st&#225;le se domn&#237;v&#225;m, &#382;e v&#253;voj Ruby je a&#382; p&#345;&#237;li&#353; chaotick&#253; a Matz nen&#237;
dobr&#253; vedouc&#237; projektu. Kdy&#382; u&#382; pro nic jin&#233;ho, tak proto, &#382;e v&#253;&#353;e uveden&#233;
probl&#233;my v komunikaci nevid&#237; a/nebo ne&#345;e&#353;&#237;.&amp;lt;/p&amp;gt;</content>
  </entry>
  <entry>
    <author>
      <name>Jan &#352;t&#283;rba</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-509</id>
    <issued>2008-01-04T23:48:00+01:00</issued>
    <modified>2008-04-14T10:00:13+02:00</modified>
    <title>Jan &#352;t&#283;rba: Spousta omyl&amp;#367; ohledn&amp;#283; Ruby 1.9.0</title>
    <link href="http://jansterba.com/archives/2008/1/4/spousta-omylu-ohledne-ruby-1-9/" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">&amp;lt;p&amp;gt;Je to p&amp;#225;r dn&amp;#237; co mi n&amp;#283;kolik nez&amp;#225;visl&amp;#253;ch &amp;lt;a href="http://www.rubyinside.com/ruby-19-is-released-680.html"&amp;gt;zdroj&amp;#367;&amp;lt;/a&amp;gt; p&amp;#345;es &amp;lt;span class="caps"&amp;gt;RSS&amp;lt;/span&amp;gt; &amp;#269;te&amp;#269;ku sd&amp;#283;lilo, &amp;#382;e &amp;lt;a href="http://www.ruby-lang.org/en/news/2007/12/25/ruby-1-9-0-released/"&amp;gt;Ruby 1.9.0&amp;lt;/a&amp;gt; je na sv&amp;#283;t&amp;#283;. Jeliko&amp;#382; tento release nese ozna&amp;#269;en&amp;#237; &amp;lt;em&amp;gt;development release&amp;lt;/em&amp;gt; nech&amp;#225;val m&amp;#283; &amp;#250;pln&amp;#283; klidn&amp;#253;m, proto&amp;#382;e to znamen&amp;#225;, &amp;#382;e pro proukci je nepou&amp;#382;iteln&amp;#253; a na testov&amp;#225;n&amp;#237; nov&amp;#253;ch f&amp;#237;&amp;#269;ur n&amp;#283;jak nem&amp;#225;m energii. &amp;#268;l&amp;#225;ky jsem nicm&amp;#233;n&amp;#283; pro&amp;#269;etl a nov&amp;#233; Ruby se zm&amp;#283;nami, o kter&amp;#253;ch se p&amp;#237;&amp;#353;e u&amp;#382; m&amp;#283;s&amp;#237;ce, jsem ignoroval. V podstat&amp;#283; pro m&amp;#283; tento release nem&amp;#225; &amp;#382;&amp;#225;dn&amp;#253; v&amp;#253;znam.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Dnes m&amp;#283; ale Google Reader p&amp;#345;ekvapil &amp;#269;esk&amp;#253;mi reakcemi na Ruby 1.9. &amp;#268;l&amp;#225;nek na &amp;lt;a href="http://www.root.cz/clanky/ukvapene-vydani-ruby-1-9/"&amp;gt;Rootu&amp;lt;/a&amp;gt; pova&amp;#382;uje release za ukvapen&amp;#253;. Tak aspo&amp;#328; zn&amp;#237; honosn&amp;#253; titulek, nikde ale nen&amp;#237; vysv&amp;#283;tleno co je na &amp;lt;em&amp;gt;development relase&amp;lt;/em&amp;gt; ukvapen&amp;#233;ho. &amp;#268;l&amp;#225;nek d&amp;#225;le cituje &amp;lt;a href="http://www.majda.cz/zapisnik/?254"&amp;gt;tento&amp;lt;/a&amp;gt; v&amp;#253;lev Davida Majdy, kter&amp;#253; je op&amp;#283;t protk&amp;#225;n nepochopen&amp;#237;m.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Nechci zde nikoho odsuzovat ani obhajovat, proto&amp;#382;e je nutno p&amp;#345;iznat, &amp;#382;e ob&amp;#283; strany maj&amp;#237; tak trochu pravdu. &amp;#268;e&amp;#353;t&amp;#237; kritikov&amp;#233; to nicm&amp;#233;n&amp;#283; vzali za &amp;#353;patn&amp;#253; konec. Z m&amp;#233;ho pohledu ud&amp;#283;lal nejv&amp;#283;t&amp;#353;&amp;#237; chybu Matz, a to tu, &amp;#382;e nikde (nebo aspo&amp;#328; nikde viditeln&amp;#283;) nen&amp;#237; ozn&amp;#225;meno, &amp;#382;e 1.9.0 &amp;lt;em&amp;gt;nen&amp;#237;&amp;lt;/em&amp;gt; n&amp;#225;stupce 1.8.x, ale p&amp;#345;edch&amp;#367;dce na cest&amp;#283; k 2.0. Co to znamen&amp;#225;?&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Norm&amp;#225;ln&amp;#283; by &amp;#269;lov&amp;#283;k p&amp;#345;edpokl&amp;#225;dal, &amp;#382;e kdy&amp;#382; se sn&amp;#237;&amp;#382;&amp;#237; &amp;lt;em&amp;gt;minor verze&amp;lt;/em&amp;gt; produktu (to druh&amp;#233; &amp;#269;&amp;#237;slo) tak je zachov&amp;#225;na zp&amp;#283;tn&amp;#225; kompatibilita. Tady to z ji&amp;#382; zm&amp;#237;n&amp;#283;n&amp;#253;ch d&amp;#367;vod&amp;#367; neplat&amp;#237;.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Matz ud&amp;#283;lal chybu, proto&amp;#382;e na letm&amp;#253; pohled vypad&amp;#225; 1.9.0 jako n&amp;#225;stupce 1.8.6, ale ozna&amp;#269;en&amp;#237; &amp;lt;em&amp;gt;development release&amp;lt;/em&amp;gt; by m&amp;#283;lo odratit ty co hledaj&amp;#237; spolehliv&amp;#253; a stabiln&amp;#237; produkt.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Krikitov&amp;#233; ud&amp;#283;lali na druh&amp;#233; stran&amp;#283; chybu tu, &amp;#382;e m&amp;#237;sto toho aby Ruby povzbudili na cest&amp;#283; k verzi 2.0 d&amp;#283;s&amp;#237; se nad nekompatibilitou a chybami ve v&amp;#253;voj&amp;#225;&amp;#345;sk&amp;#233; verzi.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Osobn&amp;#283; bych roz&amp;#353;i&amp;#345;ov&amp;#225;n&amp;#237; syntaxe sp&amp;#237;&amp;#353;e zavrhoval a sout&amp;#345;edil se na zvy&amp;#353;ov&amp;#225;n&amp;#237; rychlosti a nativn&amp;#237; podporu Unicode. Nakonec je ale tento release dobr&amp;#225; v&amp;#283;c, spoustu lid&amp;#237; co ho nepochop&amp;#237; znechut&amp;#237; a otev&amp;#345;e m&amp;#237;sto pro zkou&amp;#353;en&amp;#237; alternativn&amp;#237;ch implementac&amp;#237;.&amp;lt;/p&amp;gt;</content>
  </entry>
  <entry>
    <author>
      <name>csonrails</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-559</id>
    <issued>2008-01-02T23:24:00+01:00</issued>
    <modified>2008-01-27T17:27:12+01:00</modified>
    <title>csonrails: Java jsou tup&amp;#233; n&amp;#250;&amp;#382;ky..</title>
    <link href="http://www.csonrails.net/articles/2008/01/02/java-jsou-tup&#233;-n&#250;&#382;ky" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">&amp;lt;p&amp;gt;..je odpov&amp;#283;&amp;#271; Dava Thomase na n&amp;#225;&amp;#345;ky (kter&amp;#233; jsme &amp;lt;a href="http://forum.rubyonrails.cz/forums/1/topics/12"&amp;gt;diskutovali&amp;lt;/a&amp;gt; i u n&amp;#225;s), &amp;#382;e Ruby dovoluje program&amp;#225;tor&amp;#367;m p&amp;#345;&amp;#237;li&amp;#353; mnoho. T&amp;#237;m ale ve&amp;#353;ker&amp;#225; kontroverze kon&amp;#269;&amp;#237;, video, na kter&amp;#233; chci pouk&amp;#225;zat, ji&amp;#382; pak obsahuje jen vysoce zaj&amp;#237;mav&amp;#233; uk&amp;#225;zky toho, co Ruby dok&amp;#225;&amp;#382;e na poli metaprogramov&amp;#225;n&amp;#237; a jak se toho vyu&amp;#382;iv&amp;#225; v Railsech. Hodinka str&amp;#225;ven&amp;#225; sledov&amp;#225;n&amp;#237;m p&amp;#345;edn&amp;#225;&amp;#353;ky &amp;lt;a href="http://www.infoq.com/presentations/metaprogramming-ruby"&amp;gt;MetaProgramming - Extending Ruby for Fun and Profit&amp;lt;/a&amp;gt; podle m&amp;#283; promarn&amp;#283;n&amp;#225; ur&amp;#269;it&amp;#283; nen&amp;#237;. 
&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;
A kdy&amp;#382; u&amp;#382; jsem v tom linkov&amp;#225;n&amp;#237;, na&amp;#353;el jsem zaj&amp;#237;mav&amp;#253; koncentr&amp;#225;t &amp;#269;l&amp;#225;nk&amp;#367; o Ruby/Railsech jm&amp;#233;nem &amp;lt;a href="http://www.rubygalore.com/"&amp;gt;Ruby Galore&amp;lt;/a&amp;gt; (jenom separ&amp;#225;tn&amp;#237; dom&amp;#233;na tzv. "blog komunity" SocialRanku, ale to je vedlej&amp;#353;&amp;#237;). Krom&amp;#283; slavn&amp;#233;ho a brzy je&amp;#353;t&amp;#283; slavn&amp;#283;j&amp;#353;&amp;#237;ho rantu Zeda Shawa jsem se moc daleko nedostal (snad jen: na projektu Rubinius pracuje te&amp;#271; p&amp;#283;t lid&amp;#237; na full-time a nav&amp;#237;c se jedn&amp;#225; o &amp;#353;pi&amp;#269;ky Ruby komunity!), ale kvalita v&amp;#253;b&amp;#283;ru se zd&amp;#225; uch&amp;#225;zej&amp;#237;c&amp;#237;.
&amp;lt;/p&amp;gt;</content>
  </entry>
  <entry>
    <author>
      <name>root.cz</name>
    </author>
    <id>tag:planet.rubyonrails.cz,2005:Planet-502</id>
    <issued>2008-01-02T00:00:05+01:00</issued>
    <modified>2008-01-04T19:47:22+01:00</modified>
    <title>root.cz: Ukvapen&#233; vyd&#225;n&#237; Ruby 1.9?</title>
    <link href="http://www.root.cz/clanky/ukvapene-vydani-ruby-1-9/" rel="alternate" type="text/html"/>
    <content mode="escaped" type="text/html">Ruby 1.9 p&#345;in&#225;&#353;&#237; velkou spoustu zaj&#237;mav&#253;ch novinek. Nap&#345;&#237;klad podporu unicode nebo virtu&#225;ln&#237; stroj YARV, d&#237;ky n&#283;mu&#382; b&#283;&#382;&#237; Ruby a&#382; &#269;ty&#345;ikr&#225;t rychleji ne&#382; d&#345;&#237;ve. Bohu&#382;el ale p&#345;in&#225;&#353;&#237; tak&#233; velkou &#345;adu nep&#345;&#237;jemn&#253;ch probl&#233;m&#367; p&#345;edev&#353;&#237;m neodlad&#283;nost zp&#367;sobenou p&#345;&#237;li&#353;nou ukvapenost&#237;. Vyplat&#237; se v&#367;bec upgradovat?</content>
  </entry>
</feed>
