<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Dynamic World</title>
	<atom:link href="http://dynamicworld.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dynamicworld.wordpress.com</link>
	<description>czyli (J)Ruby, Groovy i P(J)ython po Polsku</description>
	<lastBuildDate>Thu, 26 Jul 2007 22:04:10 +0000</lastBuildDate>
	<language>pl</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='dynamicworld.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Dynamic World</title>
		<link>http://dynamicworld.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dynamicworld.wordpress.com/osd.xml" title="Dynamic World" />
	<atom:link rel='hub' href='http://dynamicworld.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Code review – narzędzie (prawie) doskonałe</title>
		<link>http://dynamicworld.wordpress.com/2007/07/22/code-review-narzedzie-prawie-doskonale/</link>
		<comments>http://dynamicworld.wordpress.com/2007/07/22/code-review-narzedzie-prawie-doskonale/#comments</comments>
		<pubDate>Sun, 22 Jul 2007 13:28:44 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[code review]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://dynamicworld.wordpress.com/2007/07/22/code-review-%e2%80%93-narzedzie-prawie-doskonale/</guid>
		<description><![CDATA[Od pewnego czasu pracuję z grupą pięciu developerów nad aplikacją webową pisaną w Pythonie oraz Rubim (powód takiej mieszanki to temat na zupełnie inny post). Większość naszego zespołu to początkujący programiści tych technologii, wiec kod który produkują wymaga szczególnej uwagi i kontroli. Ponieważ nie jestem wstanie przydzielić każdemu juniorowi &#8211; seniora konieczne stało się wdrożenie [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dynamicworld.wordpress.com&amp;blog=1260087&amp;post=19&amp;subd=dynamicworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="float:right;margin:0 0 5px 10px;"><img src='http://dynamicworld.files.wordpress.com/2007/07/46a9357c61668.png?w=480' alt='code review' /></p>
<p style="text-align:justify;">Od pewnego czasu pracuję z grupą pięciu developerów nad aplikacją webową pisaną w Pythonie oraz Rubim (powód takiej mieszanki to temat na zupełnie inny post). Większość naszego zespołu to początkujący programiści tych technologii, wiec kod który produkują wymaga szczególnej uwagi i kontroli. Ponieważ nie jestem wstanie przydzielić każdemu juniorowi &#8211; seniora konieczne stało się wdrożenie narzędzia do recenzji kodu (ang. code review).</p>
<p><span id="more-19"></span></p>
<p style="text-align:justify;">Pierwszym pomysłem jaki przyszedł mi do głowy było wykorzystanie rozszerzenia do Eclipsa o nazwie <a href="http://csdl.ics.hawaii.edu/Tools/Jupiter/" title="Jupiter">Jupiter</a>. Niestety, nie wszyscy członkowie zespołu podzielają moją miłość do tego IDE, a że programistów nie można zmuszać do wyboru narzędzi pracy, to wdrożenie zakończyło się fiaskiem a my problem tymczasowo rozwiązaliśmy poprzez mailowanie plików różnicowych. Dość bolesna i czasochłonna metoda.</p>
<p style="text-align:justify;">Poszukując innego rozwiązania znalazłem video o <a href="http://video.google.com/videoplay?docid=-8502904076440714866" title="Google’s Mondrian">Google’s Mondrian</a>. Po jego oglądnięciu od razu wiedziałem iż jest to rozwiązanie mojego problemu, dodatkowo zostały w nim wymienione inne problemy z narzędziami standalone o których wcześniej nie myślałem. Niestety Mondrian jest projektem wewnętrznym Googla i jak wynika z prezentacji dość mocno zintegrowanym z całą infrastrukturą tej firmy więc szanse na to iż pewnego dnia zostanie on udostępniony szerszej publiczności są raczej nikłe, choć można przeczytać w kilku miejscach iż takie plany istnieją. Jednym z dostępnych przeglądarkowych rozwiązań jest <a href="http://codestriker.sourceforge.net/" title="CodeStriker">CodeStriker</a>.</p>
<p style="text-align:justify;">CodeStriker to napisane w perlu narzędzie, które nie zachwyca interfejsem i możliwościami &#8211; nie posiada opcji recenzji kodu który nie znajduje się jeszcze w repozytorium. Aplikacja ta jest darmowa, co odróżnia ja od <a href="http://www.cenqua.com/crucible/" title="Crucible">Crucible</a>, narzędzia twórców FishEye&#8217;a, rekomendacje tego produktu można było usłyszeć choćby w jednym z odcinków <a href="http://www.javaposse.com/" title="JavaPosse">Podcasta JavaPosse</a>.</p>
<p style="text-align:justify;">Crucible oferuje bardzo przyjazny interfejs i dość rozbudowane opcje jeśli chodzi o reviewu kodu. Narzędzie to jest ściśle zintegrowane ze wspomnianym już FishEyem. Jako ze nie miałem właściwie innej alternatywy poza CodeStrikerem, którego interfejs mnie naprawdę odstraszał, zaczęliśmy używać Crucible. Nielicząc kilku przypadków, kiedy to przestał on chwilowo odpowiadać i wymagany był restart serwera aplikacji, całość działała dość szybko i sprawdzała się w naszym zespole mimo iż nie możliwa była recenzja kodu jeszcze nie w repozytorium (problem ten został rozwiązany poprzez stworzenie oddzielnej gałęzi dla każdego z programistów).</p>
<p style="text-align:justify;">Kiedy skończył się darmowy okres i mieliśmy już wykupić licencję na rok dość przypadkowo natknąłem się na  <a href="http://code.google.com/p/reviewboard/" title="ReviewBoard">ReviewBoard</a>.</p>
<p style="text-align:justify;">Reviewboard to darmowa aplikacja stworzona przez kilku programistów z firmy <a href="http://www.vmware.com/" title="WMware">VMware</a> napisana w Pythonie z wykorzystaniem frameworka <a href="http://www.djangoproject.com" title="Django">Django</a>. Autorzy na pewno zanim przystąpili do prac widzieli wspomniane wcześniej video o Mondrianie, jak również spotkali się z wymienionymi tutaj projektami. Z ich blogów wynika również iż poprzednio przechodzili przez takie męki jak nasza firma, zaczynając od przesyłania plików różnicowych, a kończąc na szukaniu gotowego rozwiązania. Projekt ten jest w dość wczesnej fazie,  ale jak widać z poniższych ekranów charakteryzuje go dbałość o detale i przyjazny interfejs:</p>
<p>
<a href="http://flickr.com/photo_zoom.gne?id=525300318&amp;context=set-72157600297790516&amp;size=o"><img src="http://farm1.static.flickr.com/252/525300318_4d71c7c6e1.jpg?v=0"></a>
</p>
<p style="text-align:justify;">ReviewBoard oferuje dwie możliwości tworzenia recenzji &#8211; z pliku różnicowego i na podstawie zmian w repozytorium. Ponieważ bardzo zależało mi na posiadaniu opcji automatycznej weryfikacji kodu jeszcze nie dodanego do repozytorium to  w niespełna 5 godzin zmodyfikowaliśmy  ten projekt tak aby pobierał on zmiany z  serwera developerskiego (siła open source oraz Pythona). W efekcie czego  otrzymaliśmy produkt zbliżony do Mondriana. ReviewBoard posiada dodatkowo &#8222;integrację&#8221; z  <a href="http://trac.edgewall.org/" title="Trac">Traciem</a>, który jest przez nas wykorzystywany do zarządzania zadaniami więc na dzień dzisiejszy posiadamy stabilne i szybkie rozwiązanie które możemy łatwo rozbudować.</p>
<p style="text-align:justify;">Swoja drogą od dłuższego już czasu chodzi mi po głowie napisanie narzędzia podobnego do wspomnianego Mondriana całkowicie w Rubim. Idealny dla mnie produkt generował by pliki różnicowe raz dziennie z katalogów roboczych programistów oraz repozytorium kodu, a następnie na podstawie ustawień projektu przypisywał by zmiany do odpowiedniego recenzenta. Ciekawą opcją mogła by być również integracja z <a href="http://gears.google.com/" title="Google Gears">Google Gears</a> &#8211; pozwalało by to na recenzje offline.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dynamicworld.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dynamicworld.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dynamicworld.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dynamicworld.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dynamicworld.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dynamicworld.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dynamicworld.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dynamicworld.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dynamicworld.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dynamicworld.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dynamicworld.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dynamicworld.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dynamicworld.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dynamicworld.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dynamicworld.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dynamicworld.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dynamicworld.wordpress.com&amp;blog=1260087&amp;post=19&amp;subd=dynamicworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dynamicworld.wordpress.com/2007/07/22/code-review-narzedzie-prawie-doskonale/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/22daade29428952afa88f7864fdee1cc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>

		<media:content url="http://dynamicworld.files.wordpress.com/2007/07/46a9357c61668.png" medium="image">
			<media:title type="html">code review</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/252/525300318_4d71c7c6e1.jpg?v=0" medium="image" />
	</item>
		<item>
		<title>JavaScript jako Język</title>
		<link>http://dynamicworld.wordpress.com/2007/07/12/javascript-jako-jezyk/</link>
		<comments>http://dynamicworld.wordpress.com/2007/07/12/javascript-jako-jezyk/#comments</comments>
		<pubDate>Thu, 12 Jul 2007 21:51:30 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://dynamicworld.wordpress.com/2007/07/16/javascript-jako-jezyk/</guid>
		<description><![CDATA[Bardzo możliwe iż niebawem do taglinu mojego bloga trzeba będzie dodać kolejny język &#8211; Javascript. Do niedawna kojarzony on był przez programistów ze śmiesznymi skryptami wykonywanymi po stronie przeglądarki i raczej nikt nie brał go poważnie. Najczęściej programowanie sprowadzało się do prostych operacji na dacie, modyfikacji wyglądu strony przez zmianę stylu lub komunikacji z użytkownikiem [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dynamicworld.wordpress.com&amp;blog=1260087&amp;post=17&amp;subd=dynamicworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="float:right;margin:0 0 5px 10px;"><img src='http://dynamicworld.files.wordpress.com/2007/07/javascript-logo.jpg?w=480' alt='javascript' /></p>
<p style="text-align:justify;">Bardzo możliwe iż niebawem do taglinu mojego bloga trzeba będzie dodać kolejny język &#8211; Javascript. Do niedawna kojarzony on był przez programistów ze śmiesznymi skryptami wykonywanymi po stronie przeglądarki i raczej nikt nie brał go poważnie. Najczęściej programowanie sprowadzało się do prostych operacji na dacie, modyfikacji wyglądu strony przez zmianę stylu lub komunikacji z użytkownikiem za pośrednictwem dwóch funkcji &#8211; confirm() oraz alert(). Ostatnie kilka miesięcy to ogromna popularyzacja tej technologii dzięki AJAXowi, który to przy okazji bańki web 2.0 pojawia się obecnie prawie w każdej nowo powstałej aplikacji webowej. Jednak przez cały ten czas język ten pozostawał w jednym, jasno określonym miejscu &#8211; w przeglądarce. </p>
<p><span id="more-17"></span></p>
<p style="text-align:justify;">Niedawno Steve Yegge <a href="http://www.iunknown.com/2007/06/steve-yegge-por.html">przeportował</a> znany wszystkim framework <a href="http://www.rubyonrails.org/">Ruby on Rails</a> do JavaScriptu. Wykonywanie JavaScriptu po stronie serwera możliwe jest dzięki <a href="http://www.mozilla.org/rhino/">Rhino</a>, otwartej implementacji JavaScriptu w Javie. Do operacji po stronie serwera, jak również do komunikacji z bazą wykorzystywane są biblioteki dostępne w Javie &#8211; zaleta programowania w języku uruchamianym na JVM&#8217;ie podobnie jak w JRuby czy Groovy.</p>
<p style="text-align:justify;">Innym przykładem zastosowania JavaScriptu poza przeglądarką może być iPhone. Poza ekranem dotykowym oraz masą wodotrysków od standardowego telefonu komórkowego odróżnia go również to iż nie jest on wyposażony w JVM. Inżynierowie, a może nie tylko oni, w Applu stwierdzili iż jest ona nie potrzebna i aplikacje można pisać miedzy innymi przy wykorzystaniu JavaScriptu.</p>
<p style="text-align:justify;">Jeśli się nad tym dłużej zastanowimy to perspektywa pisania aplikacji na wiele platform, interpretowanych zarówno po stronie klienta jak i serwera jest ciekawą opcją na przyszłością. Czy tą technologią będzie JavaScript? Możliwe, ale niekoniecznie, zależy to od wielu czynników &#8211; jednym z nich są biblioteki a tych obecnie jest na lekarstwo jeśli popatrzymy na tą technologie od strony serwera. Pewne jest jednak jedno, nie można już lekceważyć JavaScriptu- jak to miało miejsce jeszcze kilka lat temu, osobiście od dzisiaj postrzegam go jako język a nie dodatek do przeglądarki.</p>
<p style="text-align:justify;"><strong>Update:</strong> Kilka dni po tym jak napisałem ten post <a href="http://www.blogger.com/profile/15793488672952593953" title="Ola Bin">Ola Bin</a> na swoim blogu napisał dość podobny <a href="http://ola-bini.blogspot.com/2007/07/will-javascript-be-next-big-language.html">wpis</a>, rozpatrując JavaScript bardziej od strony semantycznej. Zgadzam się z większością postawionych tam argumentów jak również z tym iż bardzo możliwe iż nie będziemy już mieli do czynienia z dominacją jednego języka taką jaka to miała miejsce jeszcze kilka lat temu, ponieważ sposób prowadzenia projektów i podejścia do technologi się zmienił. Przykład? Choćby ilość języków uruchamianych przez JVM.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dynamicworld.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dynamicworld.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dynamicworld.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dynamicworld.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dynamicworld.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dynamicworld.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dynamicworld.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dynamicworld.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dynamicworld.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dynamicworld.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dynamicworld.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dynamicworld.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dynamicworld.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dynamicworld.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dynamicworld.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dynamicworld.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dynamicworld.wordpress.com&amp;blog=1260087&amp;post=17&amp;subd=dynamicworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dynamicworld.wordpress.com/2007/07/12/javascript-jako-jezyk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/22daade29428952afa88f7864fdee1cc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>

		<media:content url="http://dynamicworld.files.wordpress.com/2007/07/javascript-logo.jpg" medium="image">
			<media:title type="html">javascript</media:title>
		</media:content>
	</item>
		<item>
		<title>RailsConf Europe &#8211; rejestracja otwarta!</title>
		<link>http://dynamicworld.wordpress.com/2007/06/17/railseurope-rejestracja-otwarta/</link>
		<comments>http://dynamicworld.wordpress.com/2007/06/17/railseurope-rejestracja-otwarta/#comments</comments>
		<pubDate>Sun, 17 Jun 2007 20:13:04 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[conferences]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://dynamicworld.wordpress.com/2007/06/17/railseurope-rejestracja-otwarta/</guid>
		<description><![CDATA[Własnie otrzymałem email informujący iż rejestracja na tego roczną konferencje railsową w Berlinie została otwarta. Długo czekałem na ten moment i specjalnie zapisałem się do oreilly&#8217;wego newslettera żeby nie przegapić zapisów. Ceny są dość wysokie &#8211; koszt uczestnictwa w dwóch dniach wykładów i jednym dniu tutoriali to 745 E (przy cena promocyjna dla wczesnych rejestacji). [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dynamicworld.wordpress.com&amp;blog=1260087&amp;post=5&amp;subd=dynamicworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="float:right;margin:0 0 5px 10px;"><img src='http://dynamicworld.files.wordpress.com/2007/06/railsconf.thumbnail.png?w=480' alt='railsconf' /></p>
<p style="text-align:justify;">Własnie otrzymałem email informujący iż rejestracja na tego roczną konferencje railsową w Berlinie została otwarta. Długo czekałem na ten moment i specjalnie zapisałem się do oreilly&#8217;wego newslettera żeby nie przegapić zapisów. Ceny są dość wysokie &#8211; koszt uczestnictwa w dwóch dniach wykładów i jednym dniu tutoriali to 745 E (przy cena promocyjna dla wczesnych rejestacji). Dla studentów i pracowników naukowych istnieje możliwość zniżek do 65%. </p>
<p><span id="more-5"></span></p>
<p style="text-align:justify;">Sam <a href="http://conferences.oreillynet.com/pub/w/61/sessions.html">program</a> konferencji jest nieco uboższy od jej amerykańskiej <a href="http://conferences.oreillynet.com/rails">odpowiedniczki</a>. Wydaje mi się iż może to być ciekawe wydarzenie i napewno jedna z lepszych (jeśli nie naj) imprez o tej tematyce w naszym rejonie w tym roku. Sam się juz zapisałem i napewno na bieżąco będe informował o przebiegu konferencji na blogu.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dynamicworld.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dynamicworld.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dynamicworld.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dynamicworld.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dynamicworld.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dynamicworld.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dynamicworld.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dynamicworld.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dynamicworld.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dynamicworld.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dynamicworld.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dynamicworld.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dynamicworld.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dynamicworld.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dynamicworld.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dynamicworld.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dynamicworld.wordpress.com&amp;blog=1260087&amp;post=5&amp;subd=dynamicworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dynamicworld.wordpress.com/2007/06/17/railseurope-rejestracja-otwarta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/22daade29428952afa88f7864fdee1cc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>

		<media:content url="http://dynamicworld.files.wordpress.com/2007/06/railsconf.thumbnail.png" medium="image">
			<media:title type="html">railsconf</media:title>
		</media:content>
	</item>
		<item>
		<title>GUI w IronPython, Groovy i JRuby</title>
		<link>http://dynamicworld.wordpress.com/2007/01/02/gui-ironpython-groovy-jruby/</link>
		<comments>http://dynamicworld.wordpress.com/2007/01/02/gui-ironpython-groovy-jruby/#comments</comments>
		<pubDate>Tue, 02 Jan 2007 09:48:17 +0000</pubDate>
		<dc:creator>Developer</dc:creator>
				<category><![CDATA[groovy]]></category>
		<category><![CDATA[ironpython]]></category>
		<category><![CDATA[jruby]]></category>

		<guid isPermaLink="false">http://dynamicworld.wordpress.com/2007/01/02/gui-ironpython-groovy-jruby/</guid>
		<description><![CDATA[Andrzej Krzywda zamieścił na swoim blogu porównanie tworzenia prostego okienka w IronPython, Groovy oraz JRuby. Szczególnie ciekawie wyglądają te dwa ostatnie, ponieważ używają tej samej bilbioteki &#8211; pozwala to na znakomite porównanie języków &#8211; ich czytelności i ilości kodu jaki należy napisać aby otrzymać działający kod. Już na pierwszy rzut oka widać iż (J)Ruby ma [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dynamicworld.wordpress.com&amp;blog=1260087&amp;post=6&amp;subd=dynamicworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="float:right;margin:0 0 5px 10px;"><img src='http://dynamicworld.files.wordpress.com/2007/06/medium.png?w=480' alt='railsconf' /></p>
<p style="text-align:justify;">Andrzej Krzywda zamieścił na swoim <a href="http://andrzejonsoftware.blogspot.com/2006/12/creating-gui-with-ironpython-groovy-and.html">blogu</a> porównanie tworzenia prostego okienka w IronPython, Groovy oraz JRuby. Szczególnie ciekawie wyglądają te dwa ostatnie, ponieważ używają tej samej bilbioteki &#8211; pozwala to na znakomite porównanie języków &#8211; ich czytelności i ilości kodu jaki należy napisać aby otrzymać działający kod.</p>
<p><span id="more-6"></span></p>
<p style="text-align:justify;">Już na pierwszy rzut oka widać iż (J)Ruby ma bardziej przejrzystą składnie, która pozwala prawie każdemu programiście na dość szybkie przeanalizowanie kodu i zrozumienie jego działania. Kod Grooviego jest tutaj dużo krótszy (w komentarzach  do tego postu została zamieszczona wersja maksymalnie skompresowana), jednak jest dużo mniej czytelniejszy dla osób nie znających wszystkich detali języka i biblioteki. Co do wersji Pythonowej to mimo ze samego Pythona bardzo lubie przedstawiony kod nie przypadł mi do gustu. Ale o gustach się nie dyskutuje &#8211; może dlatego iż C# nie jest do końca moją ulubioną technologią. Sam wpis dał mi dużo do myślenia i zamierzam również niebawem napisać nieco większe porównanie tych dwóch języków i przeanalizować je pod róznym kontem na bardziej skomplikowanych przykładach.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dynamicworld.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dynamicworld.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dynamicworld.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dynamicworld.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dynamicworld.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dynamicworld.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dynamicworld.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dynamicworld.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dynamicworld.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dynamicworld.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dynamicworld.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dynamicworld.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dynamicworld.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dynamicworld.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dynamicworld.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dynamicworld.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dynamicworld.wordpress.com&amp;blog=1260087&amp;post=6&amp;subd=dynamicworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dynamicworld.wordpress.com/2007/01/02/gui-ironpython-groovy-jruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/22daade29428952afa88f7864fdee1cc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Developer</media:title>
		</media:content>

		<media:content url="http://dynamicworld.files.wordpress.com/2007/06/medium.png" medium="image">
			<media:title type="html">railsconf</media:title>
		</media:content>
	</item>
	</channel>
</rss>
