<?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>BartoszRychlicki.com &#187; inne technologie</title>
	<atom:link href="http://www.BartoszRychlicki.com/category/conieco-dla-nerdow/inne-technologie/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.BartoszRychlicki.com</link>
	<description>web developing, mac, design &#38; br-design.pl</description>
	<lastBuildDate>Thu, 28 Jan 2010 10:55:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>-Mamy nową ajaxowa funkcjonalność serwisu! -Ale gdzie?</title>
		<link>http://www.BartoszRychlicki.com/2007/11/21/mamy-nowa-ajaxowa-funkcjonalnosc-serwisu-ale-gdzie/</link>
		<comments>http://www.BartoszRychlicki.com/2007/11/21/mamy-nowa-ajaxowa-funkcjonalnosc-serwisu-ale-gdzie/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 12:28:38 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[inne technologie]]></category>

		<guid isPermaLink="false">http://www.BartoszRychlicki.com/2007/11/21/funkcje-ajax-skad-user-ma-wiedziec-gdzie-one-sa/</guid>
		<description><![CDATA[
Czy z własnego doświadczenia potraficie powiedzieć kiedy dowiadujecie się że jakaś funkcja na stronie została zrealizowana &#8220;in ajax way&#8221;?
Prawdopodobnie dopiero po jej użyciu.
Zastanówmy my się ile zyskała by technologia ajax, a przede wszystkim serwisy je implementujące gdyby użytkownik wiedział że używając danej funkcji nie będzie musiał przeładowywać całej strony.

Technorati Tags: badania, internet, web usability


Dla przykładu, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.BartoszRychlicki.com/wp-content/uploads/2007/11/ajax.jpg" height="100" width="200" alt="Ajax" /><br />
Czy z własnego doświadczenia potraficie powiedzieć kiedy dowiadujecie się że jakaś funkcja na stronie została zrealizowana &#8220;in ajax way&#8221;?</p>
<p>Prawdopodobnie dopiero po jej użyciu.</p>
<p>Zastanówmy my się ile zyskała by technologia ajax, a przede wszystkim serwisy je implementujące gdyby użytkownik wiedział że używając danej funkcji nie będzie musiał przeładowywać całej strony.</p>
<p><!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/badania" rel="tag">badania</a>, <a href="http://www.technorati.com/tag/internet" rel="tag">internet</a>, <a href="http://www.technorati.com/tag/web usability" rel="tag">web usability</a></p>
<p><!-- technorati tags end --><br />
<span id="more-153"></span><br />
Dla przykładu, nigdy w życiu nie użyłem funkcji &#8220;poleć ten produkt znajomemu&#8221; ponieważ:</p>
<ol>
<li>klikając na taki link pewnie wpierw został bym przekierowany na osobną podstrone (1 przeładowanie),</li>
<li>jest ryzyko, że system każe mi się zalogować/zarejestrować, w takim wypadku to dla mnie absurd i wracam na stronę produktu (2 przeładowanie),</li>
<li>jeżeli wyskoczyła mi formatka na email mojego znajomego, to po wpisaniu czeka mnie w najlepszym wypadku jeszcze jedno przeładowanie, w najgorszym dwa (strona z informacją o wysłaniu maila, a dopiero potem strona produktu który polecałem).</li>
</ol>
<p>Teraz co by było gdybym widział po prostu małe pole input z miejscem na email, a po przycisku ok lub klepnięcia &#8220;enter&#8221; email wysłał by się asynchronicznie, na końcu racząc mnie ładną wizualnie informacją o wyniku? Gdybym tylko wiedział wcześniej&#8230; Wtedy moi znajomi dostawali by zdecydowanie za dużo poleceń produktów :-).</p>
<p>Innym, dobrym przykładem są sondy internetowe. Ilu z was nieoddających głosów w takich sondach skusiło by się gdyby wiedziało że obędzie się bez przeładowania?</p>
<p>Wróćmy do problemu. Zdefiniuje go jeszcze roboczo tak:<br />
&#8220;<strong><em>Użytkownik o tym, że dana funkcjonalność operuje w sposób asynchroniczny dowie się dopiero po jej użyciu, a jeżeli jej użył to prawdopodobnie liczył się z tym że będzie musiał czekać na przeładowanie strony</em></strong>&#8220;.</p>
<p>Teraz, co by było gdyby nasz użytkownik wiedział które funkcje w systemie zajmą mu o wiele mniej czasu, dostarczą lepszych wrażeń i pozbawia złości wynikającej z oczekiwania na przeładowanie strony (pamiętajmy o słynnej &#8220;niecierpliwości&#8221; użytkowników internetu, która wciąż rośnie)? Raczej oczywiste jest, że wzrosło by użycie tych funkcji. Dla aplikacji typu e-commerce to dolary spadające z nieba! Użytkownicy którzy polecają produkty znajomym (wiadomo, najlepsza forma reklamy), częstsze zapisy do newslettera, feedback w postaci formularzy kontaktowych oraz sond  i wszelkiego rodzaju zarządzanie contentem serwisu (łatwiejsze zarządzanie skutkuje wzrostem porządku i ilości contentu tworzonego przez usera aplikacji).</p>
<p>Rozwiązanie? W tej chwili parę pomysłów przychodzi mi  na myśl. Pierwsze, moim zdaniem najlepsze, ale zdecydowanie zbyt trudne w implementacje aby było prawdziwe:</p>
<ul>
<li>producenci przeglądarek mogliby w jakiś sposób oznaczać funkcjonalności oparte na technologii AJAX (np. asynchronicznie wysyłane formularze i linki). Takie oznaczenie mogło by być w postaci podświetlenia formularza/linka lub w postaci jakiegoś &#8220;tooltipa&#8221;, na zasadzie takiej jak dzisiaj widzimy wyświetlanie tagu &#8220;alt&#8221;.</li>
<li>Ustalić konwencje pomiędzy webdeveloperami, może jakąś ikonkę, może jakiś specjalny kolor podświetlenia, cokolwiek. Do ustalenia.</li>
<li>Dany serwis posiadałby specjalną stronę informującą jaka funkcja jest wykonana &#8220;in ajax way&#8221;. Najłatwiejsze w implementacji, ale z drugiej strony mało efektywne.</li>
</ul>
<p>Chciałbym jeszcze zwrócić uwagę na istotny pozytywny skutek uboczny takiego rozwiązania. Mam na myśli <strong>edukacje użytkowników internetu. </strong>Nie oszukujmy się, tylko developerzy pracujący w branży (lub &#8220;hobbujący&#8221;) mają pojęcie co to ajax i co on daje. Może dzięki takiemu &#8220;podkreślaniu&#8221; miejsc &#8220;ajaxowych&#8221; użytkownicy zaczęli by widzieć różnice, przy czym, nieświadomie edukowali by się w tym zakresie.</p>
<p>I dla jasności sprawy, nie chce zaczynać globalnej rewolucji. Chciałem zwrócić uwagę na problem, który rozwiązany może przynieść wiele pożytku dla nas (pracujących w branży &#8220;web&#8221;) oraz naszych klientów.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2007/11/21/mamy-nowa-ajaxowa-funkcjonalnosc-serwisu-ale-gdzie/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>webfeeds.pl &#8211; portal gromadzący informacje z dziedzin WWW.</title>
		<link>http://www.BartoszRychlicki.com/2007/10/15/webfeedspl-portal-gromadzacy-informacje-z-dziedzin-www/</link>
		<comments>http://www.BartoszRychlicki.com/2007/10/15/webfeedspl-portal-gromadzacy-informacje-z-dziedzin-www/#comments</comments>
		<pubDate>Mon, 15 Oct 2007 13:53:37 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[inne technologie]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[prywatne]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.BartoszRychlicki.com/2007/10/15/webfeedspl-portal-gromadzacy-informacje-z-dziedzin-www/</guid>
		<description><![CDATA[
Odpaliłem swój (no może nie tylko mój) webowy projekt o nazwie webFeeds.pl. Jego głównym i w tej chwili jedynym zadaniem jest agregacja wartościowej treści z tematyki WWW podzielonej na parę kategorii takich jak: css, grafika, flash, agencje interaktywne, JavaScript, php, ruby i inne. 
To co będzie odróżniać webfeeds.pl od Twojego agregatora RSS to skrupulatne moderowanie [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.webfeeds.pl" title="webfeeds.pl php rubyonrails css webdesign"><img src="http://content.screencast.com/media/f2a6128b-492e-448e-80d8-57e3a51df53f_4953f65c-5f6a-4f68-930e-28d52de92468_static_0_0_00000104.png" alt="webfeeds - php, webdesign, grafika, layout, flash, css, rss"/></a></p>
<p>Odpaliłem swój (no może nie tylko mój) webowy projekt o nazwie webFeeds.pl. Jego głównym i w tej chwili jedynym zadaniem jest agregacja wartościowej treści z tematyki WWW podzielonej na parę kategorii takich jak: css, grafika, flash, agencje interaktywne, JavaScript, php, ruby i inne. </p>
<p>To co będzie odróżniać <a href="http://www.webfeeds.pl" title="webdesign php ruby on rails, rss informacje newsy">webfeeds.pl</a> od Twojego agregatora RSS to skrupulatne moderowanie postów, tak aby dostarczać materiały najwyższej jakości, a odrzucać te o małej przydatności, dzięki temu zaoszczędzisz czas normalnie tracony na czytanie zbędnych bloków tekstu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2007/10/15/webfeedspl-portal-gromadzacy-informacje-z-dziedzin-www/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Na chemii tego nie uczyli&#8230;</title>
		<link>http://www.BartoszRychlicki.com/2007/08/05/na-chemii-tego-nie-uczyli/</link>
		<comments>http://www.BartoszRychlicki.com/2007/08/05/na-chemii-tego-nie-uczyli/#comments</comments>
		<pubDate>Sun, 05 Aug 2007 22:14:12 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[inne technologie]]></category>

		<guid isPermaLink="false">http://www.BartoszRychlicki.com/2007/08/05/na-chemii-tego-nie-uczyli/</guid>
		<description><![CDATA[Odkopałem gdzieś w sieci, worth sharing IMHO ;-)

Oryginał: http://www.wellingtongrey.net/&#8230;
Ale dla waszej potrzeby stworzyłem handy bitmapę.
]]></description>
			<content:encoded><![CDATA[<p>Odkopałem gdzieś w sieci, worth sharing IMHO ;-)</p>
<p><a href='http://www.BartoszRychlicki.com/wp-content/uploads/2007/08/tablica_www.jpg' title='tablica_www'><img src='http://www.BartoszRychlicki.com/wp-content/uploads/2007/08/tablica_www_tn.png' alt='tablica_www' /></a></p>
<p>Oryginał: <a href="http://www.wellingtongrey.net/miscellanea/archive/2007-06-23--periodic-table-of-the-internet.html">http://www.wellingtongrey.net/&#8230;</a></p>
<p>Ale dla waszej potrzeby stworzyłem <em>handy</em> <a href='http://www.BartoszRychlicki.com/wp-content/uploads/2007/08/tablica_www.jpg' title='tablica_www.jpg'>bitmapę</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2007/08/05/na-chemii-tego-nie-uczyli/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Half geek ;-)</title>
		<link>http://www.BartoszRychlicki.com/2007/07/28/half-geek/</link>
		<comments>http://www.BartoszRychlicki.com/2007/07/28/half-geek/#comments</comments>
		<pubDate>Fri, 27 Jul 2007 23:23:06 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[inne technologie]]></category>
		<category><![CDATA[prywatne]]></category>

		<guid isPermaLink="false">http://www.BartoszRychlicki.com/2007/07/28/half-geek/</guid>
		<description><![CDATA[61% GeekMingle2 &#8211; Free Online Dating
]]></description>
			<content:encoded><![CDATA[<p><a href="http://mingle2.com/geek-quiz" style="text-decoration: none; background: url('http://mingle2.com/css/img/quiz/badge1_green.jpg') no-repeat; display: block; width: 268px; height: 82px;"><span style="display: block; padding-left: 125px; padding-top: 28px; color: #000; font-family: Arial; font-size: 22px;">61% Geek</span></a>Mingle<sup>2</sup> &#8211; <a style="text-decoration: none;" href="http://mingle2.com/">Free Online Dating</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2007/07/28/half-geek/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Autoryzacja serwera Apache &#8211; tutorial.</title>
		<link>http://www.BartoszRychlicki.com/2007/03/22/autoryzacja-serwera-apache-tutorial/</link>
		<comments>http://www.BartoszRychlicki.com/2007/03/22/autoryzacja-serwera-apache-tutorial/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 11:22:38 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[inne technologie]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.BartoszRychlicki.com/2007/03/22/autoryzacja-serwera-apache-tutorial/</guid>
		<description><![CDATA[
Jeżeli chcemy szybko zabezpieczyć dany katalog na serwerze nie ma nic lepszego niż autoryzacja Apache. jak to zrobić w 3 prostych krokach?
1. Logujemy się na shella za pomocą ssh lub telnetu.
2. Wchodzimy do katalogu który chcemy zabezpieczyć.
3. Tworzymy listę haseł za pomocą polecenia:
htpasswd -c ./passwords username
gdzie ./passwords to nazwa pliku w aktualnym katalogu gdzie będą [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://www.BartoszRychlicki.com/wp-content/uploads/2007/03/apache-logo-security.jpg' alt='logo apache' /></p>
<p>Jeżeli chcemy szybko zabezpieczyć dany katalog na serwerze nie ma nic lepszego niż autoryzacja Apache. jak to zrobić w 3 prostych krokach?</p>
<p>1. Logujemy się na shella za pomocą ssh lub telnetu.<br />
2. Wchodzimy do katalogu który chcemy zabezpieczyć.<br />
3. Tworzymy listę haseł za pomocą polecenia:</p>
<p><code>htpasswd -c ./passwords username</code></p>
<p>gdzie <em>./passwords</em> to nazwa pliku w aktualnym katalogu gdzie będą trzymane zakodowane hasła (prawdopodobnie, lepszym pomysłem będzie umieszczenie tego pliku w innym katalogu, nie dostępnym dla przeglądarki ;-), a <em>username</em> to po prostu login jakim będziemy się logować.</p>
<p>Jeżeli polecenie nie zadziała (nie istnieje w ścieżce systemowe) to podaj z pełną ścieżką (zależy od systemu operacyjnego). Prawdopodobnie:<br />
<code><br />
/usr/local/apache/bin/htpasswd -c ./passwords username</code></p>
<p>System nam wypluję:</p>
<p><code>New password: mypassword<br />
Re-type new password: mypassword<br />
Adding password for user username<br />
</code></p>
<p>Logiczne prawda?</p>
<p>Potem tworzymy plik <em>.htaccess</em> (ten plik musi być w katalogu który chronimy a kropka w nazwie jest istotna) poleceniem:</p>
<p><code>touch .htaccess </code></p>
<p>edytujemy plik <em>.htaccess</em> i podajemy treść</p>
<p><code>AuthType Basic<br />
AuthName "Materiały poufnę"<br />
AuthUserFile /home/bard/secret/passwords<br />
Require valid-user<br />
</code></p>
<p>Ważna jest pełna ścieżka do pliku z hasłami:<br />
<em>AuthUserFile /home/bard/secret/passwords </em></p>
<p>Wszystko na ten temat, prosto i przyjemnie.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-9801436118789909";
google_ad_slot = "7488918763";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p>Dodanie nowego usera wygląda tak samo jak tworzenie pierwszego użytkownika, tylko bez argumentu (-c &#8211; create). Jeżeli chcemy zmienić hasło dla danego usera, po prostu robimy to samo jakbyśmy chcieli go stworzyć od nowa. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2007/03/22/autoryzacja-serwera-apache-tutorial/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Czy przerzucam się z PHP na Ruby On Rails i dlaczego tak?</title>
		<link>http://www.BartoszRychlicki.com/2007/03/16/czy-przerzucam-sie-z-php-na-ruby-on-rails-i-dlaczego-tak/</link>
		<comments>http://www.BartoszRychlicki.com/2007/03/16/czy-przerzucam-sie-z-php-na-ruby-on-rails-i-dlaczego-tak/#comments</comments>
		<pubDate>Fri, 16 Mar 2007 10:29:52 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[inne technologie]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.BartoszRychlicki.com/2007/03/16/czy-przerzucam-sie-z-php-na-ruby-on-rails-i-dlaczego-tak/</guid>
		<description><![CDATA[
Twardy orzech do zgryzienia przed nami! Jeżeli nie znacie jeszcze Ruby on Rails a póki co siedzicie w PHP to zapnijcie pasy, bo będzie to niezła jazda (na torach oczywiście;-).Dla jasności, nie będę porównywał tutaj nudnych statystyk wydajności obu języków ani nic z tych geekowych wykresów. Nie! Tutaj czekają na Was prawdziwe M&#38;Msy z orzeszkami [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img src="http://www.bartoszrychlicki.com/wp-content/uploads/2007/03/rorvsphp.jpg" title="rubyvsphp" alt="rubyvsphp" vspace="10" /></p>
<p>Twardy orzech do zgryzienia przed nami! Jeżeli nie znacie jeszcze Ruby on Rails a póki co siedzicie w PHP to zapnijcie pasy, bo będzie to niezła jazda (na torach oczywiście;-).Dla jasności, nie będę porównywał tutaj nudnych statystyk wydajności obu języków ani nic z tych <em>geekowych</em> wykresów. Nie! Tutaj czekają na Was prawdziwe M&amp;Msy z orzeszkami jeżeli chodzi o <em>web application developing</em> ;-)</p>
<p>Od ostatnich kilku miesięcy namiętnie testuję Ruby On Rails. Nie będę już tłumaczył co to jest, <a href="http://www.bartoszrychlicki.com/2006/08/26/ruby-on-rails/">pisałem wcześniej</a>, a w sieci też nie brakuje materiałów. Podsumuję tylko jednym zdaniem:</p>
<p>&#8220;Ruby On Rails jest frameworkiem napisanym w języku Ruby. Jest czymś, czym jest np. <a href="http://framework.zend.com">Zend Framework</a> dla PHP.&#8221;<br />
<span id="more-112"></span><br />
Napiszę Wam dlaczego mimo wielkiej &#8220;miłości&#8221; do starego, dobrego PHP mam zamiar pomału przestawiać się na RoR.</p>
<p>W PHP programuję od sławnej trzeciej wersji, czyli rok ok. 2000-2001. Kawał czasu jakby nie patrzeć. Do tego czasu dorobiłem się własnego autorskiego frameworka (na wzorcu MVC), który jest ciągle rozwijany i sprawdza się w zastosowaniach komercyjnych.</p>
<p>Z Ruby On Rails zetknąłem się ponad pół roku temu, ale temat na poważnie traktuję od ok 3 miesięcy.</p>
<p>Przez te ostatnie miesiące bylem non stop wprowadzany w stan zdziwienia, co porządnie wykonany framework z dużym zapleczem w postaci społeczności może dla Ciebie zrobić. Walne prosto z grubej rur(b)y: Ruby On Rails jest genialny, nie wątpliwie jest to najlepszy framework jaki widziałem i miałem okazje testować ale być też najlepsze środowisko developerskie w jakim pracowałem!</p>
<p>Racja! Do rzeczy! Co jest takiego super? Zanim się wyleję to <em>kliknij se</em>&#8230;</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-9801436118789909";
google_ad_slot = "7488918763";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p>Więcej już nie będzie, obiecuje.</p>
<p>Ok, jestem Macowcem (czyli siedzę na Macu ;-), zatem mam system Unixowy, zatem mam konsolę. Po zainstalowaniu RoR w systemie wystarczy wydać komendę:</p>
<p><code>rails tasteslikediggdotcom</code></p>
<p>i mamy już aplikacje na wzór <a href="http://www.digg.com">digg.com</a>. No&#8230; może nie nie zupełnie, ale nie wiele nas dzieli ;-)</p>
<p>Tak czy siak, mamy już kompletną wersje frameworka dla naszej aplikacji w katalogu tasteslikediggdotcom. Teraz fragment dla tych którzy kojarzą wzorzec MVC.</p>
<p>Chcesz utworzyć kontroler? Proszę&#8230;</p>
<p><code>ruby script/generate controller posts</code></p>
<p>Komenda, tworzy nowy plik kontrolera, klasę kontrolera, zestaw unit testów i szablony html używane przez kontroler.</p>
<p>Model? Nic prostszego<br />
<code><br />
ruby script/generate model Post</code></p>
<p>Tworzy nowy model o nazwie Post, oraz wszystko co potrzebne. Ha, co mi się szczególnie spodobało to tak zwane &#8220;migracje&#8221;. Zostańcie ze mną tutaj.<br />
Migracją pozwalają na tworzenie tabel w bazie danych oraz ich ewolucję w czasie rozwijania aplikacji bez używania SQLa! kiedy generujemy nowy model (co za tym idzie, chcemy nową tabele w bazie danych) tworzy się plik migracji w którym parę linijek kodu określa jaką tabela będzie miała strukturę. Możemy migracja cofać do dowolnej wersji, nie tylko tworzyć tabele ale też je modyfikować w osobnych plikach migracji. Normalne cud, miód i orzeszki! Jak zwykle do wszystkiego tylko jedna komenda:</p>
<p><code>rake db:migrate</code></p>
<p>Pokazałem wam najprostsze generatory, a powiem wam że są takie do generowania systemów autoryzacji, ajaxowy scaffolind (automatycznie generowane formularze do obsługi tabel w bazie danych), pluginy, a nawet całe systemy blogów.</p>
<p>A to były tylko generatory! ;-)</p>
<p>Dość o linii poleceń! Co tam jeszcze mamy za szmaczki? Aaaaa tak, soczyste Helpery dla HTML i AJAX.</p>
<p>W szablonie wystarczy wpisać:<br />
<code>&lt; %= link_to_remote 'ajaxowe zapytanko!',  :action: =&gt; 'letMeKnow' %&gt;</code></p>
<p>I ciach! Mamy ajaxowe, w pełni asynchroniczne zapytanko do akcji &#8216;letMeKnow&#8217; w kontrolerze w którym się znajdujemy! RoR używa do tego <a href="http://www.prototypejs.org/">prototype.js</a> i <a href="http://script.aculo.us">script.aculo.us</a>. To najprostszy przykład, w RoR mamy dużo takich poziomek! Od edytowania treści w miejscu (click na pole i mamy okienko do edycji tego co klikneliśmy), po efekty morphingu z najnowszego <a href="http://moofx.mad4milk.net/">moo.fx</a>. I wszystko zapakowane w przyjemne helpery.</p>
<p>To tylko parę przykładowych rzeczy. Jest ich naprawdę mnoga więcej. Nie wspomnę o czystej i bardzo, bardzo &#8220;sympatycznej&#8221; składni języka Ruby. Tak dla przykładu. Napiszę fragment kodu, a wy mi powiecie co on robi.<br />
<code><br />
10 times do |t|<br />
print t<br />
end</code></p>
<p>Albo coś ciekawszego np.:<br />
<code><br />
user = User.find(:first) // znajdz w bazie danych, pierwszego użytkownika z tabeli users.</code></p>
<p>unless user.blank? // czy użytkownik jest pusty?<br />
print user.name // jezeli nie jest to napisz jego imie.<br />
end</p>
<p>Naprawdę przyjemnie się piszę.</p>
<p>Ale rzecz która mi przypadła do gustu najbardziej jest nie namacalna. Jest to swojego rodzaju &#8220;TO&#8221;. Użytkownicy Maców wiedzą co mam na myśli. Po prostu &#8220;It&#8217;s just works&#8221;. Wszystko jest proste i działa. Ma swojego rodzaju smakowitą otoczkę web 2.0 i tych wszystkich modnych haseł w programowaniu, &#8220;DRY&#8221;, &#8220;Convention over Configuration&#8221; and so on&#8230; Modnych, ale i jakże praktycznych!</p>
<p>Jak już wspomniałem wcześniej, do tego dochodzi nam spore zaplecze w postaci społeczności. W Polsce, mimo jeszcze słabej, ale pnącej się popularności RoR mamy znakomity portal <a href="http://rubyonrails.pl/">rubyonrails.pl </a>i bardzo aktywne <a href="http://forum.rubyonrails.pl">forum.rubyonrails.pl</a>. Polecam. W światowej WWW natomiast znajdziemy znakomite podcasty, videocasty, gotowe materiały w PDFie (ściągawki, czyli <em>cheat sheets</em>). Oficjalna strona RubyOnRails.com posiada znakomite WiKi i całą dokumentacji API, plus wiele linków do materiałów, od tutoriali po całe e-booki w PDFie.</p>
<p>Niestety, są i ciemne strony mocy (używam tutaj słowa &#8220;mocy&#8221; w pełni świadomie i dosłownie ;-). Dwa największe minusy to:</p>
<p>1) Mało firm hostinguje RoR w Polsce póki co, ale są już takie. Mój hostigowy faworyt, czyli p<a href="http://progreso.pl">rogreso.pl</a> wprowadza już wersję testową.<br />
2) Co by nie było, musisz się jednak nauczyć nowego języka, jak mądry byś nie był to musisz na to poświęcić trochę czasu.</p>
<p>Ok, dość już o Ruby, trzeba to teraz jakoś odnieść do naszego PHP, w końcu takie jest założenie artykułu.</p>
<p>Czemu więc planuje się przesiąść z PHP na RoR? Oprócz tego co napisałem wyżej? Proste, RubyOnRails wydaje się być po prostu nowym dzieckiem aplikacji internetowych. Pachnie jak książka dopiero co kupiona w księgarni. Aplikacje napisane w RoR wyglądają naprawdę smakowicie i są na pewno krokiem do przodu (vide <a href="http://www.basecamphq.com">BASECAMP</a>, <a href="http://trac.typosphere.org/">Typo</a>, <a href="http://www.rousette.org.uk/projects/">10 Tracks</a>).</p>
<p>PHP wydaje się być już trochę skostniałe. Zaczynają z niego wychodzić błędy młodości. Różne nazewnictwo funkcji itd. Znane frameworki do PHP pomału umierają śmiercią naturalną (w wielu przypadkach ich autorzy po prostu przerzucają się na RoR. Dla przykładu można wziąć <a href="http://framework.zend.com">Zend Framework</a>, o którym było tak głośno jakiś czas temu, miał zmienić wszystko. Osobiście uważam że jest ok, ale ustawienie go zajęło mi chyba z 4 godziny i nie powiem żeby mnie czymś powalił.</p>
<blockquote><p> Ciężko to opisać słowami, ale porównajcie sobie choćby strony oficjalne <a href="http://www.php.net">PHP</a> i <a href="http://www.ruby-lang.org">Ruby</a>. Widzicie teraz do czego zmierzam?</p></blockquote>
<p><strong>Konkluzje</strong><br />
Myślę że ostatnim zdaniem można z powodzeniem zamknąć ten wpis. Dodam małe wytłumaczenie: nie uważam że PHP jest gorszym językiem i ostrzegam że w kodzie Ruby powyżej mogą być błędy, pisałem z własnego, jeszcze całkiem małego zasobu wiedzy.</p>
<p>Zewnętrzne materiały:<br />
* oficjalna strona języka <a href="http://www.ruby-lang.org">Ruby</a> od niedawna także po polsku!<br />
* oficjalna strona frameworka <a href="http://www.rubyonrails.com">RubyOnRails</a><br />
* <a href="http://del.icio.us/brdesign/rubyonrails">moje linki na del.icio.us </a>odnośnie RoR ;-) &#8211; naprawdę sporo materiałów do linków z materiałami ;-)<br />
* oficjalna strona języka <a href="http://www.php.net">PHP</a><br />
* witryna <a href="http://framework.zend.com">Zend Framework</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2007/03/16/czy-przerzucam-sie-z-php-na-ruby-on-rails-i-dlaczego-tak/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>MD4, MD5, SHA 1 &#8211; online generator.</title>
		<link>http://www.BartoszRychlicki.com/2006/11/27/md4-md5-sha-1-online-generator/</link>
		<comments>http://www.BartoszRychlicki.com/2006/11/27/md4-md5-sha-1-online-generator/#comments</comments>
		<pubDate>Mon, 27 Nov 2006 17:55:34 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[inne technologie]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.blog.br-design.pl/2006/11/27/md4-md5-sha-1-online-generator/</guid>
		<description><![CDATA[Zrobiłem taki generator hashów, bardziej na potrzebny własne, ale może się komuś przydać, jest szybki i &#8220;zawsze pod ręką&#8221;.  Zapraszam do generowania hashów ;-).
MD4, MD5, SHA 1 &#8211; online generator.
Miłą funkcją jest iż możemy zaraz po URL podać string który chcemy zahaszować, ew. po następnym slashu, podać algorytm (wspierane &#8216;md5&#8242; i &#8217;sha1&#8242;).
Np. http://www.md5.br-design.pl/secret/sha1
]]></description>
			<content:encoded><![CDATA[<p>Zrobiłem taki generator hashów, bardziej na potrzebny własne, ale może się komuś przydać, jest szybki i &#8220;zawsze pod ręką&#8221;.  Zapraszam do generowania hashów ;-).</p>
<p><a title="md5 generator" target="_blank" href="http://md5.br-design.co.uk/">MD4, MD5, SHA 1 &#8211; online generator</a>.</p>
<p>Miłą funkcją jest iż możemy zaraz po URL podać string który chcemy zahaszować, ew. po następnym slashu, podać algorytm (wspierane &#8216;md5&#8242; i &#8217;sha1&#8242;).</p>
<p>Np. http://www.md5.br-design.pl/secret/sha1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2006/11/27/md4-md5-sha-1-online-generator/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Edytor CSS &#8211; czyżby Utopia w zasięgu ręki?</title>
		<link>http://www.BartoszRychlicki.com/2006/11/12/css-edit-2/</link>
		<comments>http://www.BartoszRychlicki.com/2006/11/12/css-edit-2/#comments</comments>
		<pubDate>Sun, 12 Nov 2006 13:36:56 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[inne technologie]]></category>

		<guid isPermaLink="false">http://www.blog.br-design.pl/2006/11/12/css-edit-2/</guid>
		<description><![CDATA[Chyba tak, ale tylko dla posiadaczy Maców. Nowy CSSedit2.0 to program który zwala z nóg. Odkryłem go przed chwilą dzięki blogowi Bartosza Skowronka. Dzięki Bartoszu za ten news (podziękuj również Pawłowi ode mnie ;-). Nie będe się rozpisywał i po prostu zacytuję Bartosza:
To prawdziwa perła! Jeżeli zajmujecie się robieniem stron internetowych ten program okaże się [...]]]></description>
			<content:encoded><![CDATA[<p><img align="right" style="margin: 0pt 0pt 10px 10px" alt="CSSEdit 2.0 icon" title="CSSEdit 2.0 icon" src="http://work.br-design.pl//ZZ1EEA5236.jpg" />Chyba tak, ale tylko dla posiadaczy Maców. Nowy <a href="http://www.macrabbit.com/cssedit/">CSSedit2.0</a> to program który zwala z nóg. Odkryłem go przed chwilą dzięki blogowi Bartosza Skowronka. Dzięki Bartoszu za ten <a href="http://blog.fotogenia.info/?p=500">news</a> (podziękuj również Pawłowi ode mnie ;-). Nie będe się rozpisywał i po prostu zacytuję Bartosza:</p>
<blockquote cite="http://blog.fotogenia.info/?p=500"><p>To prawdziwa perła! Jeżeli zajmujecie się robieniem stron internetowych ten program okaże się zwyczajnie nieoceniony. To po prostu magia! Dawno już nie widziałem tak przemyślanego, potężnego a jednocześnie łatwego w obsłudze narzędzia… a widziałem przecież sporo! Program kosztuje wprawdzie niemało bo aż 30 dolarów ale to będą dobrze wydane pieniądze. Bez kitu. Zresztą sprawdźcie sami &#8211; ze strony <a href="http://www.macrabbit.com/">producenta</a> można pobrać wersję <a href="http://www.macrabbit.com/cssedit/">trial</a>.</p></blockquote>
<p>No i przestestowałem. Program jest świetny! Naprawdę wymiata. Polecam!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2006/11/12/css-edit-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>TinyMCE i script.aculo.us = bład.</title>
		<link>http://www.BartoszRychlicki.com/2006/10/17/blad-tinymce-script-aculo-us/</link>
		<comments>http://www.BartoszRychlicki.com/2006/10/17/blad-tinymce-script-aculo-us/#comments</comments>
		<pubDate>Tue, 17 Oct 2006 15:26:14 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[inne technologie]]></category>

		<guid isPermaLink="false">http://www.blog.br-design.pl/2006/10/17/blad-tinymce-script-aculo-us/</guid>
		<description><![CDATA[Ktoś to już gdzieś napisał, ale ja powtórzę bo może dzięki temu uratuje komuś parę godzin czasu spędzonych na szukaniu tego prostego błędu.
Jeżeli na swojej stronie chcesz wykorzystać TinyMCE i script.aculo.us razem i coś nie dzieła (TinyMCE), a otrzymany błąd wygląda mniej więcej tak:
tinyMCE.baseURL has no properties
To znaczy że dołączasz/wywołujesz kod JS dla TinyMCE po [...]]]></description>
			<content:encoded><![CDATA[<p>Ktoś to już gdzieś napisał, ale ja powtórzę bo może dzięki temu uratuje komuś parę godzin czasu spędzonych na szukaniu tego prostego błędu.</p>
<p>Jeżeli na swojej stronie chcesz wykorzystać <a target="_blank" href="http://tinymce.moxiecode.com/">TinyMCE </a>i <a target="_blank" href="http://wiki.script.aculo.us/">script.aculo.us</a> razem i coś nie dzieła (TinyMCE), a otrzymany błąd wygląda mniej więcej tak:</p>
<p><strong>tinyMCE.baseURL has no properties</strong><br />
To znaczy że dołączasz/wywołujesz kod JS dla TinyMCE po wywołaniu skryptów aculo.us. Zamień kolejność i wszystko powinno być ok.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2006/10/17/blad-tinymce-script-aculo-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google codesearch &#8211; przeszukiwanie kodu.</title>
		<link>http://www.BartoszRychlicki.com/2006/10/09/google-code-search/</link>
		<comments>http://www.BartoszRychlicki.com/2006/10/09/google-code-search/#comments</comments>
		<pubDate>Mon, 09 Oct 2006 08:36:19 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[inne technologie]]></category>

		<guid isPermaLink="false">http://www.blog.br-design.pl/2006/10/09/google-code-search/</guid>
		<description><![CDATA[Webinside.pl podało:

&#8220;Google oddało wczoraj do użytku nową usługę skierowaną do
programistów &#8211; Google Code Search. Firma chce w ten
sposób ułatwić im pracę przy tworzeniu nowych aplikacji.&#8221;

Nic innego tylko testować, pierwsze wrażenie jest interesujące, jednak wydaje się że większość kodu to języku typu Java i C, więc programiści WWW nie koniecznie będą najczęstszymi gośćmi tej szukarki, ale [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0cm"><a title="webinside.pl" href="http://www.webinside.pl">Webinside.pl</a> podało:</p>
<p style="margin-bottom: 0cm">
<p style="margin-bottom: 0cm">&#8220;Google oddało wczoraj do użytku nową usługę skierowaną do<br />
programistów &#8211; <a target="_blank" title="google code search" href="http://www.google.com/codesearch">Google Code Search</a>. Firma chce w ten<br />
sposób ułatwić im pracę przy tworzeniu nowych aplikacji.&#8221;
</p>
<p style="margin-bottom: 0cm">Nic innego tylko <a target="_blank" title="google code search" href="http://www.google.com/codesearch">testować</a>, pierwsze wrażenie jest interesujące, jednak wydaje się że większość kodu to języku typu Java i C, więc programiści WWW nie koniecznie będą najczęstszymi gośćmi tej szukarki, ale kto wie&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2006/10/09/google-code-search/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mac Book, random shutdowns a &#8220;Apple Poland&#8221;.</title>
		<link>http://www.BartoszRychlicki.com/2006/10/08/mac-book-random-shutdowns-a-apple-poland/</link>
		<comments>http://www.BartoszRychlicki.com/2006/10/08/mac-book-random-shutdowns-a-apple-poland/#comments</comments>
		<pubDate>Sun, 08 Oct 2006 20:59:47 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[inne technologie]]></category>
		<category><![CDATA[prywatne]]></category>

		<guid isPermaLink="false">http://www.blog.br-design.pl/2006/10/08/mac-book-random-shutdowns-a-apple-poland/</guid>
		<description><![CDATA[Około miesiąc temu mój MacBook zachorował na chorobę zwaną w skrócie “RSD” czyli Random ShutDowns. Po prostu wyłączał się nie spodziewanie wedle swojego “życzenia”, po jakimś czasie, wyłączał się już po ok. 2 minutach od momentu odpalenia. Czas najwyższy oddać go do serwisu. I tutaj zaczyna się nasze&#8230; za siedmioma górami, za siedmioma lasami żyła [...]]]></description>
			<content:encoded><![CDATA[<p><img align="left" alt="aapl_290806_randomoff1.jpg" id="image93" style="margin: 0pt 10px 10px 0pt" src="http://www.blog.br-design.pl/wp-content/uploads/2006/10/aapl_290806_randomoff1.jpg" />Około miesiąc temu mój MacBook zachorował na chorobę zwaną w skrócie “RSD” czyli Random ShutDowns. Po prostu wyłączał się nie spodziewanie wedle swojego “życzenia”, po jakimś czasie, wyłączał się już po ok. 2 minutach od momentu odpalenia. Czas najwyższy oddać go do serwisu. I tutaj zaczyna się nasze&#8230; za siedmioma górami, za siedmioma lasami żyła zła czarownica i nazywała się SAD (polska firma reprezentująca Apple)&#8230;</p>
<p><span id="more-92"></span></p>
<p>Zanim najpierw się dowiedziałem co mam na zrobić z moim komputerem (mieszkam w Gdańsku, serwis Apple&#8217;a jest w Stolicy), serwisant przez telefon poradził mi abym dokonał odpłatnej diagnozy w serwisie w Gdańsku, a potem odesłał do nich. Byłem zdziwiony, gdziekolwiek spojrzeć w necie świat huczy o “RSD”, sam Apple przyznał się iż wydał złą serie MacBooków i wymienia płyty główne, a Pan w serwisie uparcie stara mi się wmówić że wystarczy wymienić pamięć RAM komputera (nie mając zielonego pojęcia że taki problem w ogóle występuje w całej serii MacBooków). Doszedłem do wniosku że z tym Panem daleko w naprawczym świecie nie zajdę. Następnego dnia udało mi się już połączyć z bardziej kompetentną osobą, pomijam fakt iż samo połączenie z kimkolwiek w firmie SAD graniczy z cudem lub przynajmniej balansuje na granicy ludzkiej cierpliwości a czeskim filmem.</p>
<p>Po pewnych ustaleniach odesłałem komputer do naprawy. Był to dzień 18 września&#8230;.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-9801436118789909";
google_ad_slot = "7488918763";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p><strong>4 października.</strong><br />
Telefon. Mój komputer jest gotowy, wymieniona w nim płytę główną i klawiaturę (topcase). Wraca w końcu do mnie.</p>
<p><strong>5 października.</strong><br />
Jest. Otwieram paczkę. Wyciągam. Wpierw widzę co? Mojego białego MacBooka oblepionego jakimiś naklejkami po numerach seryjnych, ubrudzonego od jakiegoś kleju, z zewnątrz bardziej przypomina Game Boy&#8217;a ze stadionu X lecia niż sprzęt komputerowy wysokiej klasy amerykańskiej, znanej firmy Apple. Myślę, wyczyści się.</p>
<p>Odpalam. Moim oczom ukazuję się świeżo zainstalowany system i&#8230; brak jakichkolwiek danych. Pozwólcie, że po przecinku: maile, kontakty, dokumenty, umowy, projekty programistyczne i graficzne dla moich klientów, oprogramowanie, filmy, muzyka, prywatne zdjęcia i nagrania wideo.<br />
Rekcja chyba oczywista. Dzwonie. Dowiaduję się że mój dysk uległ niestety uszkodzeniu (a wysłałem sprawny), ciekawy jak uległ temu uszkodzeniu. “Jest szansa że dane uda się odzyskać”. Odkładam słuchawkę. Wracam do komputera. Komputer jest wyłączony&#8230;</p>
<p>Myślę. Włączam jeszcze raz.</p>
<p>Mijają 3 minuty, komputer się wyłącza. Powtarzam czynność parę razy.</p>
<p>Tracę panowanie nad sobą. Dzwonie znów do firmy SAD, tym razem już nie do serwisu, ale do kogoś odpowiedzialnego za handel. Wykładam kawę na ławę Panu po drugiej stronie. Po naprawdę gorącej rozmowie dochodzimy do konsensusu, jutro tj. 6.10 ma do mnie zadzwonić reprezentant firmy i zaproponować mi jakąś rekompensatę za poniesione straty, tj. Brudną obudowę, stratę cennych danych, no i kolejne 3 tygodnie bez laptopa, rachunki telefoniczne. Nie mam w chwili obecnej jeszcze pojęcia co firma SAD ma zamiar mi zaproponować, ale jeżeli myślą że Ferrero Roshe i kwiaty starczą to się grubą mylą. Najbardziej mnie jednak dziwi fakt, że nikt tego komputera nawet nie włączył przed odesłaniem go do mnie, a wystarczyłyby 3 minuty żeby przekonać się że coś jest nie tak.</p>
<p>W głowie wtóruję się głośne hasło “żądam satysfakcji” i jeżeli jej nie dostane sprawę skieruje do sądu konsumenckiego “tak mi dopomóż, Bóg!”.</p>
<p><strong>EDIT: </strong></p>
<p><strong>11 października.</strong><br />
Dalej za bardzo nic nie wiem. Jedynie tyle, że mam podobno dostać nowego MacBooka i że moje dane zostały bez powrotne stracone. A jedyną rekompensatą jaką otrzymam będzie &#8220;przepraszamy&#8221; i mocne postanowienie poprawy.<br />
Radziłem się już prawnika i mam zamiar walczyć o swoje w sądzie, jak tylko dostane działający komputer (kiedy, oczywiście nie wiadomo).</p>
<p><strong>20 października.</strong><br />
Po miesiącu i 2 dniach dostałem nowy komputer. Fakt że 2GHz (tamten był 1.83 GHz), ale przypuszczam że bardziej z braku 1.83 na stanie niż z dobrej woli.</p>
<p>Mimo że odpuszczam kwestie roszczenia o dane, bo w końcu dostałem działający, lepszy sprzęt, to jednak wszystkim radzę uważać aby nie mieć takie przykrego przypadku jak ja. Przede wszystkich, przy odsyłaniu komputera do serwisu poproście o pisemne (lub mailowe) oświadczenie że wasze dane będą bezpieczne, jeżeli nikt nie będzie chciał tego dla was zrobić, macie prawo żądać bezpłatnej kopii bezpieczeństwa przed wykonywaniem napraw.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2006/10/08/mac-book-random-shutdowns-a-apple-poland/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails – szczypta informacji o klejnocie.</title>
		<link>http://www.BartoszRychlicki.com/2006/08/26/ruby-on-rails/</link>
		<comments>http://www.BartoszRychlicki.com/2006/08/26/ruby-on-rails/#comments</comments>
		<pubDate>Sat, 26 Aug 2006 10:38:34 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[inne technologie]]></category>

		<guid isPermaLink="false">http://www.blog.br-design.pl/2006/08/26/ruby-on-rails/</guid>
		<description><![CDATA[Ruby on Rails (w skrócie RoR) odbija się ostatnio głośnym echem w świecie każdego szanującego się webdevelopera. Fakt, echo to ma bardzo egzotyczny posmak.
Dla tych którzy zeszczę nie zaznajomili się z tematem RoRa postanowiłem napisać krótkie wprowadzenie. Po przeczytaniu tego tekstu, będziesz wiedział czy chcesz zmierzyć się z „Rubinem na Torach“ i jeżeli tak, to [...]]]></description>
			<content:encoded><![CDATA[<p><a title="ruby on rails" target="_blank" href="http://www.rubyonrails.org">Ruby on Rails</a> (w skrócie RoR) odbija się ostatnio głośnym echem w świecie każdego szanującego się webdevelopera. Fakt, echo to ma bardzo egzotyczny posmak.</p>
<p>Dla tych którzy zeszczę nie zaznajomili się z tematem RoRa postanowiłem napisać krótkie wprowadzenie. Po przeczytaniu tego tekstu, będziesz wiedział czy chcesz zmierzyć się z „Rubinem na Torach“ i jeżeli tak, to od czego powinieneś zacząć.</p>
<p><span id="more-78"></span></p>
<p>Na początek, czym jest <a title="Strona oficjalna jezyka Ruby." target="_blank" href="http://www.ruby-lang.org">Ruby</a>, a czym jest Ruby On Rails. Ruby jest językiem programowania (skryptowym, tak jak np. PHP), jest w pełni obiektowy i swoje korzenie zapuścił w Japonii (dodaje jeszcze więcej egzotyki prawda?). Tak jak PHP, Ruby potrzebuję do swojego działania odpowiedniego interpretora (tym w istocie jest właśnie Ruby) oraz serwera (niestety, apache nie wystarczy). Ruby ma wiele zalet: prostą konwencje, łatwość pisania, dokładnie zaplanowany mechanizm obiektowy (wszystko jest obiektem).  Można nawet stwierdzić że Ruby może konkurować z PHP, niestety za mało wiem aby wydać odpowiedni werdykt, ale na pewno na warto zapoznać się z tym językiem.</p>
<p>Dla ciekawskich, próbka kodu:</p>
<p><img id="image77" alt="prÃ³bka kodu ruby" src="http://www.blog.br-design.pl/wp-content/uploads/2006/08/blog-rubyCode.jpg" /></p>
<p><a title="Oficjalna strona frameworka Ruby on Rails." target="_blank" href="http://www.rubyonrails.org">Ruby On Rails</a> jest natomiast frameworkiem dla Ruby. Czymś, czym będzie Zend Framework dla PHP za jakiś czas ;-).  RoR ma wbudowany mechanizm MVC i ActiveRecord. Słyszę już myśli wielu średnio zaawansowanych programistów których MVC czy AR przyprawia o dreszcze. Nic z tych rzeczy, RoR doskonale sobie z tym radzi i gwarantuje że nie będziecie mieć z tym problemów. Co czyni RoR wyjątkowym? Np. skrypty które możemy uruchomić z linii poleceń (choć znane już z np. <a href="http://www.cakephp.org">Cake PHP</a>, tutaj sprawdzają się doskonale), generują one nam odpowiednie kontrolery, modele, widoki a nawet schematy bazy danych. Oprócz tego poczujemy genialną strategię “convention over configuration”, oznacza to że trzymając się ustalonej konwersji możemy w dużym stopniu uniknąć konfiguracji frameworka i zgadza się, tworząc przykładowe aplikacje jedyne co musimy zmienić w pliku konfiguracyjnym to dane dostępowe do bazy danych.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-9801436118789909";
google_ad_slot = "7488918763";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p>Można by dużo pisać o zaletach i naprawdę z całego serca polecam zaznajomienie się z tą technologią, wygląda bardzo obiecująco i piszę się w niej bardzo przyjemnie, cystę i spójne API bardzo w tym pomaga. Mogę powiedzieć, że pisząc jedną ze swoich pierwszy aplikacji, zwyczajowo zgadywałem nazwy metod których potrzebowałem (przynajmniej większości), wystarczyło się kierować logiką i konwencją.</p>
<p>Jest też jedna wada. W Polsce Ruby nie jest popularne, co za tym idzie, raczej nie spotkamy się z hostingiem który by oferował interpreter Ruby. Możemy jednak skorzystać z zagranicznych serwerów. Tak czy owak, Bartosz Rychlicki (czyli Ja ;-) zaleca Ruby on Rails w celach edukacyjnych, bo za parę lat programiści Ruby mogą być najbardziej poszukiwanymi na rynku.</p>
<p>Jeżeli zainteresowałem Cię odrobinkę i chcesz iść dalej, to poniższe wskazówki powiedzą Ci od czego zacząć.</p>
<p>Przede wszystkim, <a href="http://www.rubyonrails.org">oficjalna strona</a> Ruby On Rails, zawiera ciekawe <a target="_blank" href="http://rubyonrails.org/screencasts">screencasty i prezentacje</a> (zwane zajawkami ;-), oczywiście dział <a href="http://rubyonrails.org/down">download</a> z którego można pobrać samego framework i inne pakiety i wiele dobrych linków do materiałów o RoR.</p>
<p><span style="font-weight: bold">Instalacja</span>. Zależnie od twojego systemu istnieje parę różnych tutoriali, na <a title="Instalacja Ruby on Rails na Windows." href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html?page=1">Windowsa</a> i <a title="Instalacja Ruby on Rails na Mac OS X Tiger" href="http://hivelogic.com/articles/2005/12/01/ruby_rails_lighttpd_mysql_tiger">Mac Os X</a> (dla Linuxa są źródła, które należy skompilować).</p>
<p>Po instalacji, wracamy na <a href="http://www.rubyonrails.org">rubyonrails.org</a> i przechodzimy wylistowane tam poradniki. Proste i przyjemne.</p>
<p><a target="_blank" href="http://www.pragmaticprogrammer.com/titles/rails/index.html"><img align="left" alt="Ksiazka o RoR" id="image79" title="Ksiazka o RoR" style="border: 4px solid #cccccc; margin-right: 10px; margin-top: 3px" src="http://www.blog.br-design.pl/wp-content/uploads/2006/08/awdr2.gif" /></a>Dla chętnych, warto zaopatrzyć się w książkę “<a target="_blank" href="http://www.pragmaticprogrammer.com/titles/rails/index.html">Agile Web Development witch Rails</a>” (niestety, nie ma wersji polskiej, ale skoro chcesz używać Ruby, rozumiem że język angielski nie jest dla Ciebie większym problemem).</p>
<p>Na koniec, chciałbym przeprosić czytelników za chaotyczny styl pisania (staram się jak mogę), oraz za nie zbyt wnikliwe opisanie tematu, ale wierzę że podane wyżej linki doskonale zaspokoją tą potrzebę.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2006/08/26/ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mac jako środowisko WebDevelopera.</title>
		<link>http://www.BartoszRychlicki.com/2006/07/30/mac-web-developing/</link>
		<comments>http://www.BartoszRychlicki.com/2006/07/30/mac-web-developing/#comments</comments>
		<pubDate>Sun, 30 Jul 2006 13:05:57 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[inne technologie]]></category>

		<guid isPermaLink="false">http://www.blog.br-design.pl/2006/07/30/mac-web-developing/</guid>
		<description><![CDATA[Niedawno stałem się bardzo szczęśliwym posiadaczem MacBooka, czyli najnowszego z linii laptopów Apple&#8217;a.
Chciałbym przedstawić parę spraw którę czynią Maca najlepszym komputerem do pracy dla webmastera.
Narzędzia.
Pewnie większość z was myśli źe na Maca nie ma programów które mogły by dorównać tym na Windows. Nic bardziej mylnego. Mac jest obrośnięty profesjonalnymi narzędziami, które dostarczają o wiele więcej [...]]]></description>
			<content:encoded><![CDATA[<p>Niedawno stałem się bardzo szczęśliwym posiadaczem MacBooka, czyli najnowszego z linii laptopów Apple&#8217;a.</p>
<p>Chciałbym przedstawić parę spraw którę czynią Maca najlepszym komputerem do pracy dla webmastera.</p>
<p><span id="more-59"></span><strong>Narzędzia.</strong></p>
<p><a title="Zend Studio" class="imagelink" href="http://www.blog.br-design.pl/wp-content/uploads/2006/07/zend_studio_blog.jpg"><img align="left" alt="Zend Studio" id="image60" style="border: 3px solid #cccccc; margin-right: 10px; margin-top: 3px; margin-bottom: 10px" src="http://www.blog.br-design.pl/wp-content/uploads/2006/07/zend_studio_blog.miniatura.jpg" /></a>Pewnie większość z was myśli źe na Maca nie ma programów które mogły by dorównać tym na Windows. Nic bardziej mylnego. Mac jest obrośnięty profesjonalnymi narzędziami, które dostarczają o wiele więcej niż te znane z windowsa. Nie wspomnę, że większość programów z Windowsa ma swoje odpowiedniki na Maca (w tym caly pakiet <a title="Adobe" href="http://www.adobe.com">Adobe</a>, <a title="zend studio" href="http://www.zend.com">Zend Studio</a> i wiele innych).</p>
<p><a title="Zend Studio" class="imagelink" href="http://www.blog.br-design.pl/wp-content/uploads/2006/07/zend_studio_blog.jpg"><img align="right" alt="Zend Studio" id="image60" style="border: 0pt none ; margin: 0pt 10px 10px 0pt" src="http://www.blog.br-design.pl/wp-content/uploads/2006/07/zend_studio_blog.miniatura.jpg" /></a>Godne polecenia programy dla webmasterów to napewno <a title="SkEdit" href="http://www.skti.org/skEdit.php">SKEdit</a>, bardzo miły program do kodowania (HTML, CSS, PHP i inne). Posiada managera projektów, bardzo miły interfejs i wbudowanego klienta FTP. Dodatkowo moźna zainstalować plug-in który łączy SKEdit z systemem CVS.</p>
<p><a class="imagelink" title="Zend Studio" href="http://www.blog.br-design.pl/wp-content/uploads/2006/07/zend_studio_blog.jpg"><img align="left" style="border: 0pt none ; margin: 0pt 10px 10px 0pt" id="image60" alt="Zend Studio" src="http://www.blog.br-design.pl/wp-content/uploads/2006/07/zend_studio_blog.miniatura.jpg" /></a>Inne ciekawe narzędzie to <a title="BBedit" href="http://www.barebones.com/products/bbedit/">BBEdit</a>. Jest to doskonały edytor HTML i nie tylko, ma wbudowanego, rozbudowanego FTPa, zestaw narzędzi do edycji HTML i CSS. Do tego dochodzi masa plug-inów do ściągnięcia z sieci.</p>
<p>Innymi narzędzami godnymi polecenia jest Captain FTP. Doskonały klient FTP. Ma wszystko co potrzeba i do tego jest szybki.<br />
<a class="imagelink" title="terminal" href="http://www.blog.br-design.pl/wp-content/uploads/2006/07/terminal_blog.jpg"><img align="left" style="border: 0pt none ; margin: 0pt 10px 10px 0pt" id="image63" alt="terminal" src="http://www.blog.br-design.pl/wp-content/uploads/2006/07/terminal_blog.miniatura.jpg" /></a>Nic również nie zastąpi konsoli UNIXowej. Chyba nie muszę tłumaczyć zalet tego narzędzia.</p>
<p>No tak, ale co z lokalnym serwerem Apache i PHP na Maca? Nic trudnego! Mac OS X w standartowej instalacji dostarcza nam Apache 1.x i PHP 4.x. Ale wiadomo, potrzebujemy jeszcze MySQLa no i przydałoby się jeszcze PHP5. Z pomocą przychodzi nam pakiet <a title="MAMP" href="http://www.mamp.info/">MAMP</a> (dygresja od znanego Linux Apache MySQL PHP, w tym wypadku Mac Apache MySQL PHP). Instalacja serwera nigdy nie była prostsza. Parę kliknięć i mamy aktualne środowisko pracy. Mało tego MAMP nie interferuje z wbudowanych apachem Maca (po prostu działa na innych portach), dostarcza nam stronę startową skąd łatwo możemy się dostać do phpMyAdmina, SQLiteManagera, sprawdzić phpinfo i parę innych przydatnych funkcji.</p>
<p><a title="Outliner" class="imagelink" href="http://www.blog.br-design.pl/wp-content/uploads/2006/07/outliner_blog.jpg"><img align="right" alt="Outliner" id="image65" style="border: 0pt none ; margin: 0pt 0pt 10px 10px" src="http://www.blog.br-design.pl/wp-content/uploads/2006/07/outliner_blog.miniatura.jpg" /></a> Bardzo dobre wrażenie zrobiły na mnie programy <a title="OmniOutliner" href="http://www.omnigroup.com/applications/omnioutliner/">OmniOutliner</a> i <a title="OmniGraffle" href="http://www.omnigroup.com/applications/omnigraffle/">OmniGraffle</a>. Przy nich chciałbym zatrzymać się na chwilkę. OmniOutliner jest programem który pozwala nam tworzyć i organizować pomysły, notatki i tzw. listy TO DO. Jeźeli jesteście z tych którzy zanim siądą do pracy przed komputerem piszą na kartce co mają dziś do zrobienia (oczywiście potem kreślą, zmieniają itd.) to jest to program dla was. Pewnie nie raz próbowaliście uźywać do tego celu Worda lub Notatnika i się nie sprawdziło. OmniOutliner się sprawdza. Jest lekki, ma intuicyjny interfejs, pozwala w łatwy sposób prowadzić, organizować i odznaczać punkty, podpunkty itd.</p>
<p><a title="graffle" class="imagelink" href="http://www.blog.br-design.pl/wp-content/uploads/2006/07/graffle_blog.jpg"><img align="left" alt="graffle" id="image64" style="border: 3px solid #cccccc; margin: 5px 10px" src="http://www.blog.br-design.pl/wp-content/uploads/2006/07/graffle_blog.miniatura.jpg" /></a> OmniGraffle jest natomiast bardzo przyjemnym programem do tworzenia różgnych schematów, blokowych, sieci (znanych z MS Visio), UML (główne rodzaje) i wiele innych. Ogromną zaletą programu jest jego łatwość obsługi! Napewno niejeden webmaster doceni ten program jeżeli kiedykolwiek musiał używać jakiegkolwiek innego programu do UML (Agro UML, star UML itd.). Program jednak może nie wystarczać do powaźniejszych zatosowaniach, jednak dla większości będzie idealny.</p>
<p>To oczywiście nie wszystkie programy (nawet nie wszystkie godne polecenia). Są to programy które czynią moją pracę o wiele przyjemniejszą.  Moje osobiste środowisko pracy składa się mniej więcej z następujących elementów:</p>
<ul>
<li>Zend Studio.<br />
Główny program w którym koduje HTML, CSS no i PHP. Kto jeszcze nie miał okazji skorzystać to serdecznie polecam.</li>
<li>MAMP.<br />
Jako lokalny serwer, parser PHP5, MySQL.</li>
<li>OmniOutliner.<br />
Odpalony w tle przypomina mi co mam do zrobienia.</li>
<li>Captain FTP.<br />
Mimo że Zend Studio ma wbudowanego FTPa, kapitan czasami się przydaje.</li>
<li>Terminal.<br />
2-3 odpalone terminale pozwalają mi na bierząco śledzić logi na zdalnym serwerze (jeżeli na takim pracuję). BTW: Mac zapewnia doskonałe narzędzie do przeglądania logów lokalnie.</li>
<li>iTunes ;-)<br />
Bez tego reszta nie miała by sensu.</li>
</ul>
<p><strong>Update 27.08.2006</strong></p>
<p><a title="textMate" class="imagelink" href="http://www.blog.br-design.pl/wp-content/uploads/2006/08/Snapshot%202006-08-27%2018-01-43.jpg"><img align="right" alt="textMate" id="image82" title="textMate" style="border: 3px solid #cccccc; margin-left: 10px; margin-bottom: 10px" src="http://www.blog.br-design.pl/wp-content/uploads/2006/08/Snapshot%202006-08-27%2018-01-43.miniatura.jpg" /></a>Ostatnio dorwałem nowy edytor który niepodzielnie piastuję stanowisko króla edytorów na moim Macu (razem z Zend Studio, ale zastosowanie Zenda jest zgoła trochę inne). Jest nim znany przede wszystkim developerom <a target="_blank" href="http://www.rubyonrails.org">Ruby On Rails</a> &#8211; <a target="_blank" href="http://macromates.com/"><strong>TextMate</strong></a>. Co czyni TextMate&#8217;a wyjątkowym?</p>
<ul>
<li>Prosta obsługa, np. wystarczy przeciągnąć folder z plikami naszej strony/aplikacji na ikonę TextMate&#8217;a a program sam tworzy nowy projekt z drzewkiem plików.</li>
<li>Wspracię dla większości stron kodowych (i łatwę przełączanie się pomiędzy nimi).</li>
<li>Wiele skinów kolorowania składni i wyglądu okna edycyjnego (bardzo ładnych i ciekawych w dodatku).</li>
<li>Stopień funkcjonalności nie odbiega przynajmniej od vim&#8217;a.</li>
<li>Edytor rozpoznaję setki składni (możliwość ściągnięcia dodatkowych) od HTMLa do Perla przez C#.</li>
<li>Jest szybki i nie pamięciożerny!</li>
<li>Intuicyjne klawiszę skrutów.</li>
<li>Podkreśla błędy składniowe.</li>
<li>Automatyczne paruję (wstawia po pierwszym drugi) elementy sekcji takie jak nawiasy, klamry, cudzysłowia.</li>
<li>Zwijanie kodu w sekcjach (np. kodu funkcji).</li>
<li>Integracja z terminalem, pozwala wywołać edycję pliku/katalogu za pomocą jednego polecenia: mate [nazwa_katalogu/pliku]</li>
</ul>
<p>To i wiele innych funkcji czyni TextMate artefaktem Maca ;-).<br />
Brakuję tylko jednej funkcji, FTP. Ale można się z tym pogodzić. Zajrzyjcię koniecznie na strone <a href="http://macromates.com/">TextMate&#8217;a</a>.<br />
BTW: Zauważyliścię że witrny Macowych programów są po prostu ładniejszę? A może ja po prostu wpadam w zbytni zachwyt Mac&#8217;em.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2006/07/30/mac-web-developing/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Ajax nie taki trudny jakim go piszą.</title>
		<link>http://www.BartoszRychlicki.com/2006/06/07/ajax-nie-taki-trudny-jakim-go-pisza/</link>
		<comments>http://www.BartoszRychlicki.com/2006/06/07/ajax-nie-taki-trudny-jakim-go-pisza/#comments</comments>
		<pubDate>Wed, 07 Jun 2006 17:44:40 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[inne technologie]]></category>

		<guid isPermaLink="false">http://www.blog.br-design.pl/?p=57</guid>
		<description><![CDATA[Po wielu próbach i bojach w końcu udało się&#8230;
Rozumiem podstawy AJAX. Dotychczas wszystko było dla mnie wyjątkowo nie jasne, żaden artykuł ani książka nie mogła mnie tego nauczyć. Jeżeli masz ten sam problem, radze Ci sięgnąć po najnowszy numer magazynu Internet Maker (nr 3), znajdziesz tam naprawde dobre wytłumaczenie jak za pomocą klasy JavaScript advAJAX [...]]]></description>
			<content:encoded><![CDATA[<p>Po wielu próbach i bojach w końcu udało się&#8230;</p>
<p>Rozumiem podstawy AJAX. Dotychczas wszystko było dla mnie wyjątkowo nie jasne, żaden artykuł ani książka nie mogła mnie tego nauczyć. Jeżeli masz ten sam problem, radze Ci sięgnąć po najnowszy numer magazynu Internet Maker (nr 3), znajdziesz tam naprawde dobre wytłumaczenie jak za pomocą klasy JavaScript advAJAX (która jest po prostu genialna) można stosunkowo łatwo pisać aplikacje oparte na ajaxie.</p>
<p>Warto potem sięgnąć wstecz, do PHP Solutions nr. (1/2006) po trochę bardziej zaawansowane przykłady.</p>
<p>Oba artykuły jak i samą klasę advAJAX napisała ta sama osoba &#8211; Łukasz &#8220;Anakin&#8221; Lach.</p>
<p>Przydatne linki:</p>
<ul>
<li><a href="http://www.internetmaker.pl/" title="internet maker">magazyn internet maker</a>.</li>
<li><a href="http://phpsolmag.org/" title="PHP Solutions">magazyn php solutions</a>.</li>
<li><a href="http://advajax.anakin.us/index-pl.htm" title="Strona klasy advAJAX">strona klasy advAJAX</a>.</li>
<li><a href="http://anakin.us/blog/" title="łukasz Lach home page.">strona Łukasza Lacha</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2006/06/07/ajax-nie-taki-trudny-jakim-go-pisza/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>mod_rewrite na home.pl</title>
		<link>http://www.BartoszRychlicki.com/2006/03/29/mod_rewrite-na-homepl/</link>
		<comments>http://www.BartoszRychlicki.com/2006/03/29/mod_rewrite-na-homepl/#comments</comments>
		<pubDate>Wed, 29 Mar 2006 16:10:51 +0000</pubDate>
		<dc:creator>Bartosz 'Bard' Rychlicki</dc:creator>
				<category><![CDATA[br-design]]></category>
		<category><![CDATA[inne technologie]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.blog.br-design.pl/?p=45</guid>
		<description><![CDATA[Firma home.pl udostępniła na swoich serwerach usługę mod_rewrite.
Od dzisiaj udostępniliśmy wszystkim serwisom WWW funkcjonującym na
serwerach  home.pl możliwość korzystania z modułu mod_rewrite.
mod_rewrite  zapewnia:
- realizację prostszych adresów do stron generowanych przez  skrypty
(np. http://domena/nowosci/357 zamiast http://domena/tekst.php?id=357),
-  lepszą indeksację zawartości serwisu przez wyszukiwarki (np. Google),
-  ukrywanie informacji o tym, w jakim języku napisane są [...]]]></description>
			<content:encoded><![CDATA[<p>Firma home.pl udostępniła na swoich serwerach usługę mod_rewrite.</p>
<blockquote><p>Od dzisiaj udostępniliśmy wszystkim serwisom WWW funkcjonującym na<br />
serwerach  home.pl możliwość korzystania z modułu mod_rewrite.</p>
<p>mod_rewrite  zapewnia:<br />
- realizację prostszych adresów do stron generowanych przez  skrypty<br />
(np. <a href="http://domena/nowosci/357">http://domena/nowosci/357</a> zamiast <a href="http://domena/tekst.php?id=357">http://domena/tekst.php?id=357</a>),<br />
-  lepszą indeksację zawartości serwisu przez wyszukiwarki (np. Google),<br />
-  ukrywanie informacji o tym, w jakim języku napisane są skrypty.</p>
<p>Więcej  informacji na temat technologii mod_rewrite publikujemy pod adresem<br />
<a href="http://home.pl/pomoc/kursy/rewrite">http://home.pl/pomoc/kursy/rewrite</a>.</p></blockquote>
<p>Z całą pewnością trzeba będzie pozmieniać pare starych stron, w tym streetmusic.pl tak aby korzystały z zalet tej techniki.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.BartoszRychlicki.com/2006/03/29/mod_rewrite-na-homepl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
