<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Xoft &#187; RUBY</title>
	<atom:link href="http://www.xoft.pl/category/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xoft.pl</link>
	<description>O programowaniu i innych rzeczach</description>
	<lastBuildDate>Wed, 12 Jan 2011 08:51:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Programista Java w Rubylandzie, część 2. Pierwsza aplikacja.</title>
		<link>http://www.xoft.pl/2011/01/12/programista-java-w-ruby-landzie-czesc-2/</link>
		<comments>http://www.xoft.pl/2011/01/12/programista-java-w-ruby-landzie-czesc-2/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 08:51:48 +0000</pubDate>
		<dc:creator>Piotr Kochański</dc:creator>
				<category><![CDATA[RAILS]]></category>
		<category><![CDATA[RUBY]]></category>

		<guid isPermaLink="false">http://www.xoft.pl/?p=201</guid>
		<description><![CDATA[Ok, w poprzednim odcinku okazało się, że daje się zainstalować Rubyego i Railsy. Zobaczymy teraz, że nasz naiwny obraz Świata zostanie zburzony.
Będziemy chcieli utworzyć aplikację blog, taką samą, która jest w tutorialu Railsów na ich stronie, tyle, że działającą z normalną bazą danych, czyli w tym wypadku z Postgresem. Brzmi prosto? O nie, nie, nie. [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, w poprzednim odcinku okazało się, że daje się zainstalować Rubyego i Railsy. Zobaczymy teraz, że nasz naiwny obraz Świata zostanie zburzony.</p>
<p>Będziemy chcieli utworzyć aplikację blog, taką samą, która jest w tutorialu Railsów na ich stronie, tyle, że działającą z normalną bazą danych, czyli w tym wypadku z Postgresem. Brzmi prosto? O nie, nie, nie. Może pod Linuksem albo MacOs-em idzie to normalnie, ale nie pod Windowsem.</p>
<p>Pierwsza rzecz to instalacja Postgresa. Lepiej się nie rzucać na wersję 9 (nie jest oficjalnie wspierana przez Rails &#8211; chyba nie jest), i nie należy dotykać się wersji 64 bit. Jeżeli ktoś nie lubi ćwiczeń w rodzaju podawanie w różnych, losowo wybranych miejscach ścieżki do Postgresa jako C:\Progra~1\PostgreSQL\8.4\bin to lepiej nie instalować Postgresa w <em>Program Files</em> tylko gdzieś, gdzie nie ma spacji w ścieżce.</p>
<p>Druga rzecz, to sterownik (czyli w ichniej terminologii, adapter) Rubyego do Postgresa. W Rubym instalacja jest tożsama z instalacją odpowiedniego gem-a. Wchodzimy więc na stronę <a href="http://wiki.rubyonrails.org/database-support/postgres">wiki</a>, żeby się dowiedzieć, jak się ten gem nazywa. I od razu człowiek się cieszy, bo ma do wyboru aż 4 adaptery. Prawda, że super?</p>
<p>Sytuacja się na szczęście upraszcza. Rozwijanie adaptera <em>postgres</em> znudziło się jego twórcą w 2008 roku. Jego następcą jest <em>pg</em>, który jest &#8220;natywnym&#8221; adapterem, który wymaga zainstalowania kawałka linuksa pod Windowsem.</p>
<p>Jest też <em>postgres-pr</em>, który jest adapterem napisanym tylko w Rubym, co wróży nędzną wydajność, ale powinno pozwolić uniknąć kłopotów z instalacją. Dodatkowo ostatnio ktoś się do niego dotykał w marcu 2009, co jest według autora wiki &#8220;sign of active development&#8221;. Zdaje się, że ostatnia wersja jest z grudnia 2009.</p>
<p>Jest jeszcze ruby-postgres, ale strona projektu wskazuje, że wszyscy jego deweloperzy zajęli się dawno czymś innym.</p>
<p>Najbardziej sensowną opcją jest użycie <em>pg</em>. Weźmy się więc za to.</p>
<p>Pierwsza rzecz, to adapter ten jest napisany w C (czyli jest &#8220;natywny&#8221;), w związku z tym pod Windowsem trzeba sobie zainstalować <a href="https://github.com/oneclick/rubyinstaller/wiki/Development-Kit">Developnent Kit</a>. Instrukcję na tej stronie należy wykonać dokładnie, sprawdzając czy się gdzieś nie pomyliliśmy. Tutaj problemów nie napotkałem.</p>
<p>Następnie instalujemy gem <em>pg</em>: <code>gem install pg</code>? He, he, he. Takie rzeczy to tylko działają w tutorialach na stronie Railsów. To, co trzeba zrobić to:<br />
<code><br />
gem install pg --platform=mswin32 --version=0.9.0 -- --with-pg=c:\programs\PostgreSQL\8.4\<br />
</code><br />
Uwagi:</p>
<ol>
<li>mimo, że najnowszą wersją pg jest 0.10.0, to nie udało mi się z nią ruszyć, <a href="http://stackoverflow.com/questions/4335750/cant-install-pg-gem-on-windows">zresztą nie tylko mi</a>,</li>
<li>te dodatkowe dwa minusy za numerkiem wersji a przed <code>--with-pg</code> <em>są potrzebne</em>, to nie literówka,</li>
<li>ukośnik na końcu ścieżki Postgresa też jest potrzebny.</li>
</ol>
<p>Ja wiem, że niektórzy teraz przecierają oczy, że jakiś kawałem teoretycznie produkcyjnego kodu ma numer wersji 0.10, ale najwyraźniej tak jest.</p>
<p>Jak się wszystko poinstalowało, to możemy zająć się utworzeniem aplikacji.</p>
<p>Piszemy w konsoli<br />
<code>rails new c:\katalog\z\projektami\blog -d postgresql</code></p>
<p>Railsy generują gotowy do uruchomienia szkielet projektu. To znaczy niby on jest gotowy do uruchomienia, ale nie jest. Można się o tym łatwo przekonać wchodząc do utworzonego katalogu <em>blog</em> i pisząc w konsoli <strong>rails server</strong>.</p>
<p>Trzeba zrobić dwie rzeczy:</p>
<ul>
<li>w pliku <em>blog\config\database.yml</em> podajemy poprawne ustawienia dla baz danych: Rails pracuje z trzema bazami: deweloperską, testową i produkcyjną (i bardzo słusznie) &#8211; trzeba ustawić poprawnie nazwę użytkownika, nazwę bazy, itp,</li>
<li>w pliku <em>blog\Gemfile</em> poprawiamy <code>gem 'pg'</code> na <code>gem 'pg', '0.9.0'</code>, w innym przypadku Rails sobie doinstaluje sam najnowszą wersję <em>pg</em>, która nie chciała mi działać.</li>
</ul>
<p>Uff teraz piszemy w konsoli, w katalogu projektu, <code>bundle install</code>, a następnie <code>rails server</code> i na http://localhost:3000 powinna się pojawić strona powitalne naszej aplikacji.</p>
<p>Póki co aplikacja nic nie robi, ale to już temat na kolejny wpis.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xoft.pl/2011/01/12/programista-java-w-ruby-landzie-czesc-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programista Java w Rubylandzie, część 1. Początki.</title>
		<link>http://www.xoft.pl/2011/01/11/programista-java-w-ruby-landzie/</link>
		<comments>http://www.xoft.pl/2011/01/11/programista-java-w-ruby-landzie/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 10:50:55 +0000</pubDate>
		<dc:creator>Piotr Kochański</dc:creator>
				<category><![CDATA[RAILS]]></category>
		<category><![CDATA[RUBY]]></category>

		<guid isPermaLink="false">http://www.xoft.pl/?p=191</guid>
		<description><![CDATA[Ruby to podobno fajny, miły i przyjemny język programowania. Spędziłem trochę czasu na pisaniu aplikacji w Ruby-on-Rails (zdaje się 90% wszystkiego pisanego w Ruby jest aplikacją Ruby-on-Rails) i chciałbym się podzielić swoimi doświadczeniami. Także z samym sobą, jak bym musiał sobie coś za rok przypomnieć.
Zacznijmy od instalacji. Dla porządku: instaluję wersję Rails 3.0.3, jak się [...]]]></description>
			<content:encoded><![CDATA[<p>Ruby to podobno fajny, miły i przyjemny język programowania. Spędziłem trochę czasu na pisaniu aplikacji w Ruby-on-Rails (zdaje się 90% wszystkiego pisanego w Ruby jest aplikacją Ruby-on-Rails) i chciałbym się podzielić swoimi doświadczeniami. Także z samym sobą, jak bym musiał sobie coś za rok przypomnieć.</p>
<p>Zacznijmy od instalacji. Dla porządku: instaluję wersję Rails 3.0.3, jak się przekonamy nawet zmiana na wersję 3.0.4 może spowodować, że poniższą instrukcję będzie sobie można wsadzić w railsa. Takie tu panują zwyczaje.  </p>
<p>Dodatkowo używam Windows 7 64 bit, warto od razu zaznaczyć, że nie ma sensu instalować czegokolwiek 64 bit. Ruby, Railsy itp. pod Windowsem żyją w świecie x86. Ale ogólnie, to instalacja na wszystkich platformach wygląda podobnie.</p>
<p>Zacznijmy wreszcie. Wchodzę na stronę <a href="http://rubyonrails.org/">http://rubyonrails.org/</a> i klikam dużą ikonę Get Started (wiadomo, Web 2.0, duże ikony, pastelowe kolorki).<br />
Ruby ma całkiem sympatyczny instalator windowsowy. Od razu mają plus. Ale co ja widzę:</p>
<blockquote><p>We recommend Ruby 1.8.7 or Ruby 1.9.2 for use with Rails. Ruby 1.8.6 and earlier are not supported, neither is version 1.9.1.</p></blockquote>
<p>Ok, rozumiem, że wersja wcześniejsza niż 1.8.7 nie jest wspierana (w Open Source to norma), ale dlaczego wersja 1.9.1 nie jest wspierana, a 1.9.2 jest??? Jak się człowiek przyzwyczaja, że aplikacja napisana w Java 10 lat temu ruszy na Java 6 z 2010, to się może lekko zdziwić.</p>
<p>Następna rzecz to RubyGems, czyli taki sprytny menadżer pakietów. Coś jak Maven.</p>
<blockquote><p>Download (extract, then run &#8220;ruby setup.rb&#8221;)</p></blockquote>
<p>I co? </p>
<blockquote><p>source_index.rb:62:in `installed_spec_directories&#8217;: undefined method `path&#8217; for Gem:Module (NoMethodError)</p></blockquote>
<p>No pięknie, jeszcze nic nie zacząłem robić, a już dostaję wyjątek, tfu, error. Szukam w googlu i okazuje się, że to wszystko moja wina. Przecież powinienem wyśledzić w changelogach itp. miejscach, że wersja 1.4.2 Rubygems nie współpracuje z Ruby 1.9.2. Oczywiście można wykonać szereg hakierskich sztuczek, odpowiednich upgradów i downgradów, żeby można było użyć&#8230; no dobrze, nie ważne.</p>
<p>RubyGems jest dostarczony z Ruby 1.9.2, więc można sobie krok instalacji Gems odpuścić. Nie to, żeby w instrukcji było to napisane.</p>
<p>Szukam programu <em>gem</em> w katalogu <em>bin</em> instalacji Rubyego i wpisuje magiczne <strong>gem install rails</strong> i czekam, czekam, czekam. Wreszcie, bez dalszych niespodzianek, wszystko się pięknie instaluje. W katalogu bin rubyego pojawia się program <em>rails</em>. Czas na test:</p>
<blockquote><p>rails new c:\TRASH\testapp<br />
cd c:\TRASH\testapp<br />
rails server</p></blockquote>
<p>Pierwsza linijka powoduje utworzenia szkieletu aplikacji (jak by ktoś nie wiedział, to Rails jest sprytnie wymyślonym generatorem aplikacji i frameworkiem Model-View-Controller w jednym &#8211; JBoss Seam, Grails, Spring Roo właśnie z tego rżnęli pomysły); trzecia linia uruchamia serwer WWW z gotową do działania aplikacją. To znaczy nie uruchamia, bo dostajemy</p>
<blockquote><p>
Could not find gem &#8217;sqlite3-ruby (>= 0, runtime)&#8217; in any of the gem sources listed in your Gemfile.<br />
Try running `bundle install`.
</p></blockquote>
<p>Jak ktoś chce być cool i używać dżezi technologies, to się musi trochę napocić.</p>
<p>Może porada <em>Try running `bundle install&#8217;</em> pomaga? Pomaga, jeżeli mamy zainstalowaną bazę sqlite. Ja nie mam i nie mam zamiaru mieć, więc poprzestańmy na tym, co mamy: jest Ruby, są Railsy, coś tam działa.</p>
<p>Konfiguracją normalnej bazy danych i odpaleniem prostego projektu zajmiemy się następnym razem. Dopiero wtedy zacznie się prawdziwa zabawa.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xoft.pl/2011/01/11/programista-java-w-ruby-landzie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scooby Ruby do (on Rails) kontra Java</title>
		<link>http://www.xoft.pl/2006/05/27/scooby-ruby-do-on-rails-kontra-java/</link>
		<comments>http://www.xoft.pl/2006/05/27/scooby-ruby-do-on-rails-kontra-java/#comments</comments>
		<pubDate>Sat, 27 May 2006 12:17:05 +0000</pubDate>
		<dc:creator>Piotr Kochański</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[RUBY]]></category>
		<category><![CDATA[NETBEANS]]></category>

		<guid isPermaLink="false">http://www.xoft.pl/2006/05/27/scooby-ruby-do-on-rails-kontra-java/</guid>
		<description><![CDATA[Najpierw będzie przydługi wstęp, w którym popastwię się nad Rubim, a na końcu będzie interesujące porównanie wydajności czasu tworzenia aplikacji w Javie i Rubim na Rejlasach.
Ostatnio sporo szumu pojawiło się w związku z językiem programowania Ruby, a zwłaszcza frejmłorkiem do tworzenia dynamicznych stron WWW Ruby on Rails. Przypomina to bardzo przedostatni szum związany z językiem [...]]]></description>
			<content:encoded><![CDATA[<p>Najpierw będzie przydługi wstęp, w którym popastwię się nad Rubim, a na końcu będzie interesujące porównanie wydajności czasu tworzenia aplikacji w Javie i Rubim na Rejlasach.</p>
<p>Ostatnio sporo szumu pojawiło się w związku z językiem programowania Ruby, a zwłaszcza frejmłorkiem do tworzenia dynamicznych stron WWW Ruby on Rails. Przypomina to bardzo przedostatni szum związany z językiem Python i serwerem Zope &#8211; te ostatnie dwie technologie jakoś popadły w niełaskę ostatnio u &#8220;trend seterów&#8221;.</p>
<p>Przyjrzałem się ciepło Rubiemu, bardzo przyjemny język, bardzo obiektowy i można w nim bardzo dziki kod tworzyć. Na przykład dodawanie <code>2 + 3</code> można zapisać w postaci <code>2.+(3)</code> itp. sztuczki. Kod można pisać w dowolnie niedbały sposób, co ma swoje wady i zalety.</p>
<p>Tak na serio, Ruby jest na prawdę fajny, tylko co z tego.</p>
<p>Grzebiąc w sieci na jego temat (zwłaszcza Ruby on Rails) znalazłem <a href="http://wiki.rubyonrails.com/rails/pages/HowToUseUnicodeStrings">to</a> . I własnym oczom nie mogłem uwierzyć. Tam jest napisane: &#8220;Please note that right now Rails basically knows nothing about Unicode and pretends everything is just bytes&#8221;. Co? Cooo? Ten ficzer Rubiego faktycznie znakomicie ułatwia tworzenie aplikacji, które mają pecha i używają czegoś więcej niż US-ASCII.</p>
<p>Zwolennicy Rubiego, np. Bruce Tate, autor książki &#8220;Beyond Java&#8221; <a href="http://www.onjava.com/pub/a/onjava/2005/11/16/ruby-the-rival.html">twierdzą</a>, że podstawową zaletą Rubiego i Ruby on Rails jest dziesięciokrotne przyspieszenie czasu tworzenia aplikacji w stosunku do Javy.</p>
<p>10 razy robi wrażenie.</p>
<p>Jest nawet w sieci <a href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html">tutorial</a> pokazujący jak szybko można w Rubym on Rails utworzyć aplikację WWW opartą o bazę danych z szybkością 10. Przetrawiłem ten tutorial i rzeczywiście, jedna godzina i prosta aplikacja dodająca i modyfikująca dane w bazie jest gotowa.</p>
<p>Tyle, że to samo w Javie można zrobić szybciej i przyjemniej, nie tracąc tego wszystkiego, co nam daje technologia Java EE: deklarowalną politykę bezpieczeństwa, deklarowalną transakcyjność, komponenty EJB, z którymi może rozmawiać klient GUI i wiele innych. Potrzebujemy do tego Netbeans 5.5 (narazie jest beta) i to w zasadzie wszystko. Demo we flashu jest <a href="http://roumen.name/blog/persistence_demo/persistence.html">tutaj</a>.</p>
<p>Parę kliknięć i prosty CRUD w EJB 3.0 i JSF jest gotowy.</p>
<p><font color="#999999"><em>Wpis umieszczony na portalu JDN [<a href="http://jdn.pl/node/765">link</a>]</em></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xoft.pl/2006/05/27/scooby-ruby-do-on-rails-kontra-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

