<?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>Adrian Kosmaczewski &#187; Ruby on Rails</title> <atom:link href="http://kosmaczewski.net/category/ruby-on-rails/feed/" rel="self" type="application/rss+xml" /><link>http://kosmaczewski.net</link> <description></description> <lastBuildDate>Sat, 05 May 2012 22:16:45 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <item><title>Installing PostgreSQL 8.3 on Leopard</title><link>http://kosmaczewski.net/postgresql-leopard/</link> <comments>http://kosmaczewski.net/postgresql-leopard/#comments</comments> <pubDate>Wed, 23 Apr 2008 15:40:24 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Django]]></category> <category><![CDATA[How to?]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[Ruby on Rails]]></category> <category><![CDATA[PostgreSQL]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/?p=1152</guid> <description><![CDATA[This is the documented path to my discovery of PostgreSQL 8.3, which I&#8217;ve never used before. Now that MySQL&#8216;s community is getting hammered to death by Sun, and thanks to all the good things I&#8217;ve heard about it over the &#8230; <a
href="http://kosmaczewski.net/postgresql-leopard/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
href="http://www.postgresql.org/"><img
src="http://kosmaczewski.net/wp-content/uploads/2008/04/postgre_logo.png" alt="" title="postgre_logo" width="228" height="56" align="left" hspace="10" vspace="5" border="0" /></a>This is the documented path to my discovery of <a
href="http://www.postgresql.org/">PostgreSQL 8.3</a>, which I&#8217;ve never used before. Now that <a
href="http://mysql.com/">MySQL</a>&#8216;s community is getting <a
href="http://blog.wired.com/monkeybites/2008/04/community-cries.html">hammered to death by Sun</a>, and thanks to all the good things I&#8217;ve heard about it over the years (including enhanced performance on multicore systems and greater scalability), I really wanted to install it and play with it.</p><p>Frankly, it&#8217;s not easy. At all (actually this is why I think MySQL is so popular, because of the ease of installation!) So hang tight and read on. <span
id="more-1152"></span></p><h2>Installation</h2><p><a
href="http://www2.russbrooks.com:8080/2007/11/4/install-postgresql-on-mac-os-x-10-5-leopard">Russ Brooks says it is better to avoid</a> <a
href="http://www.macports.org/">MacPorts</a>: I must say that indeed, I tried installing PostgreSQL with MacPorts and I got seriously stuck, unable to do anything with it, not even starting the server. So I uninstalled the PostgreSQL MacPorts package and found other options: a <a
href="http://www.postgresqlformac.com/">PostgreSQL for Mac</a> installer, and <a
href="http://www.entropy.ch/software/macosx/postgresql/">Marc Liyanage&#8217;s own installer</a>. I decided to go with the first one, since Marc&#8217;s installs version 8.1 of the server, and PostgreSQL for Mac offers version 8.3.</p><p>The installation goes without trouble, using a standard installer (which means that you need administrative privileges, as usual). However, you want to read <a
href="http://www2.russbrooks.com:8080/2007/11/4/install-postgresql-on-mac-os-x-10-5-leopard">these explanations</a> before doing anything  ;)</p><p>NOTE: if you have trouble installing PostgreSQL using the above installer (as I did after the unsuccessful MacPorts installation / desinstallation), open Terminal.app and try these commands:</p><p><code>$ sudo dscl localhost
&gt;cd Local/Default/Users/
&gt;ls </code></p><p>If you see a &#8220;postgres&#8221; entry in the list of local users, delete it and re-run the installer:</p><p><code>&gt;delete postgres</code></p><h2>After the Installation</h2><p>The installer puts the PostgreSQL installation into /Library/PostgreSQL8. You should add the path to the PostgreSQL binaries in your PATH environment variable before doing anything else:</p><p><code>export PATH=/Library/PostgreSQL8/bin:$PATH (bash)
setenv PATH /Library/PostgreSQL8/bin:$PATH (tcsh)</code></p><p>Then, type the following commands to create the default database, owned by the &#8220;postgres&#8221; user:</p><p><code>cd /Library/PostgreSQL8/
sudo rm -r data
sudo mkdir data
sudo chown postgres:postgres data
cd bin
sudo -u postgres initdb -E utf8 /Library/PostgreSQL8/data </code></p><p>In my case (Leopard-powered PowerBook G4) I had the &#8220;Shared Memory error&#8221; that Russ talks about. So I followed his advice: I created a file named /etc/sysctl.conf with the following contents, then rebooted my computer and everything went fine:</p><p><code>kern.sysv.shmmax=4194304
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=8
kern.sysv.shmall=1024 </code></p><p>I also used dscl to change the password of the postgres user (otherwise, how to know which is it??)</p><p><code>&gt;passwd postgres postgres</code></p><p><img
src="http://kosmaczewski.net/wp-content/uploads/2008/04/postgre_apps.png" alt="" title="postgre_apps" width="448" height="494" class="aligncenter size-full wp-image-1153" /></p><p>The installer adds some handy utilities on your /Application folder (see the image above). You can also use <a
href="http://www.pgadmin.org/">pgAdmin</a> to manage the database server. Very handy. I tried to use <a
href="http://phppgadmin.sourceforge.net/">phpPgAdmin</a> but without success (can&#8217;t get past the login screen&#8230; :(</p><p>And that&#8217;s it! There are interesting resources out there explaining how to use it from <a
href="http://wiki.rubyonrails.org/rails/pages/PostgreSQL">Rails</a> or <a
href="http://www.djangoproject.com/documentation/install/">Django</a>, so I&#8217;ll start reviewing them&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/postgresql-leopard/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> <item><title>Null References</title><link>http://kosmaczewski.net/null-references/</link> <comments>http://kosmaczewski.net/null-references/#comments</comments> <pubDate>Fri, 07 Mar 2008 01:33:47 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Cocoa]]></category> <category><![CDATA[Code]]></category> <category><![CDATA[Ruby on Rails]]></category> <category><![CDATA[language]]></category> <category><![CDATA[Objective-C]]></category> <category><![CDATA[programming]]></category> <category><![CDATA[Ruby]]></category> <category><![CDATA[Software]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2008/03/07/null-references/</guid> <description><![CDATA[There&#8217;s an interesting discussion going on these days on Ruby blogs about, basically, how to avoid one of the most common, annoying, easy-to-create bugs in any programming language: calling a method on a null reference (or pointer, depending on your &#8230; <a
href="http://kosmaczewski.net/null-references/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>There&#8217;s an <a
href="http://ruby.tie-rack.org/53/a-better-try-chaining-methods-and-nil/">interesting</a> <a
href="http://chalain.livejournal.com/69460.html">discussion</a> <a
href="http://blog.rubyenrails.nl/articles/2008/02/29/our-daily-method-18-nilclass-method_missing">going on</a> these days on Ruby blogs about, basically, how to avoid one of the most common, annoying, easy-to-create bugs in any programming language: <strong>calling a method on a null reference (or pointer, depending on your language).</strong></p><p><a
href='http://flickr.com/photos/oddwick/160592075/'><img
src='/wp-content/uploads/2008/03/160592075_d89076d910_m.jpg' align="right" /></a></p><p>This single issue happens all the time, in garbage-collected and non-managed languages, static and dynamic, weakly and strongly typed; you have a handler variable &#8220;pointing&#8221; to an object, and before calling any methods on it, you&#8217;d better be sure that the object is there; you end up using assertions, &#8220;if&#8221; statements (and all of its variants), boilerplate code all over the place, when everything you want to do is to call that damn method. It&#8217;s frustrating, time-consuming and oh so common that we just try to not to think about it anymore. <span
id="more-1110"></span> In Objective-C there is an easy solution to this problem: <a
href="http://www.osnews.com/permalink?f94413">you can safely send messages to (which is roughly equivalent to &#8220;call methods on&#8221;) nil</a>, but of course, <a
href="http://www.koziarski.net/archives/2007/1/22/cocoa-and-objective-c">not everyone likes that</a>. I think that this single feature is responsible for a big deal of &#8220;user perceived stability&#8221; in the whole Cocoa runtime; it exchanges a what could be a potentially fatal, low-level and unrecoverable error (leading to a complete application crash) into a purely functional one; &#8220;look, I&#8217;ve clicked here and nothing happens!&#8221;. The application does not crash anymore, it just does not do what it should, because the object that should have received the message is not there. The user has a smoother experience, and this means a lot in the long term.</p><p>The beauty here, shared by Objective-C and Ruby (and as far as I understand, Smalltalk and other languages), is that messages and method implementations are decoupled; you can forward messages from one object to another, creating <a
href="http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/chapter_5_section_3.html#//apple_ref/doc/uid/TP40002974-CH6-SW25">chains of responsibility</a>; you can log messages before you execute them (doing some aspect-oriented stuff without all the marketing fuss); you can change the implementation (or even remove it and place it somewhere else altogether) without breaking your clients. It brings a whole lot of power, with the small overhead of having a runtime process dispatching methods, which is, yes, takes slightly longer than a virtual method call, and (of course) even longer than compile-time bound method call.</p><p>I think that dynamic languages have a definitive advantage in this field, and this is why I prefer them in environments with requirements evolving constantly, where clients more often than not request new features and where you must reduce maintenance costs; not having your app crash in your face is a good sign of software, and languages that allow you to deliver them are fundamental.</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/null-references/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>My first Django project</title><link>http://kosmaczewski.net/my-first-django-project/</link> <comments>http://kosmaczewski.net/my-first-django-project/#comments</comments> <pubDate>Fri, 11 Jan 2008 16:13:45 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Django]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[Ruby on Rails]]></category> <category><![CDATA[blogging]]></category> <category><![CDATA[project]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2008/01/11/my-first-django-project/</guid> <description><![CDATA[So here it is, my first Django project: the gazillionth blog engine on the planet!. As if there weren&#8217;t enough, right? :) Actually it was a practical and easy way to learn the Django project, and the result is pretty &#8230; <a
href="http://kosmaczewski.net/my-first-django-project/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>So here it is, my first Django project: <a
href="/projects/django-blog-engine/">the gazillionth blog engine on the planet!</a>. As if there weren&#8217;t enough, right?  :)   Actually it was a practical and easy way to learn the Django project, and the result is pretty neat. Feel free to <a
href="/wp-content/uploads/2008/01/blog.zip">download</a> it, play with it, and give me your feedback. Here&#8217;s a sample screenshot in Safari:</p><p><img
src='/wp-content/uploads/2008/01/screenshot.png' alt='screenshot.png' /></p><p>Creating this project I have had a practical experience comparing both Django and, of course, Rails. <a
href="/2007/12/05/rails-vs-django/">The subject is not new in this blog</a>; however, this time I could play with both frameworks and as such, I can bring my small amount of confusion in this big <a
href="http://www.laputan.org/mud/">framework tar pit</a>. <span
id="more-1050"></span> Personally, I found Django and Rails <strong>much more different than I previously thought</strong>. Both frameworks tackle similar problems, sometimes in similar ways; however; but this does not make for a real similarity between both. They have different philosophical approaches to the problem. This must surely have to do with the underlying programming language and their philosophies.</p><p>That said, <strong>I found Rails much easier to use.</strong> It took me far, far less time to do a similar small application in Rails than it took me to do it on Django. And I must say that when I first used Rails, I had never seen a line of Ruby in my life. I will list some pros and cons that I found in the process:</p><p>Good things about Django:</p><ul><li>The &#8220;automatic administration system&#8221;; impressive! (but you can get it in Rails with some external plugins like <a
href="http://streamlinedframework.org/">Streamlined</a>&#8230; but in any case it&#8217;s a handy thing to have it already in the system!)</li><li>The form subsystem; great!</li><li>Django does not force you a folder layout; nice!</li><li>The Django Book + documentation: really great resources, nothing to say about that.</li><li>The deployment procedure: really much easier than Rails! We&#8217;re in something really close to PHP here, while Capistrano has much more to do with Java&#8217;s Maven or even makefiles :)</li><li>The native support for RSS feeds! This is a godsend.</li></ul><p>Bad things about Django:</p><ul><li>No native support for &#8220;environments&#8221;, like in Rails; you cannot separate easily the settings for development, testing and production (and you can add more environments if you want!)</li><li>No native support for REST architectures, or at least &#8220;easy&#8221; AJAX + API support (like the one you find in Rails)</li><li>The &#8220;syncdb&#8221; system that ships with Django is, at most, primitive, compared to Rails migrations.</li><li><del
datetime="2008-01-18T14:23:35+00:00">There doesn&#8217;t seem to be a built-in infrastructure for tests.</del> There is a <strong>primitive</strong> built-in test infrastructure. You can add &#8220;doctests&#8221; to your views and models, and this way you&#8217;re &#8220;documenting and testing&#8221; at the same time. Sorry, but I don&#8217;t buy this. Tests are tests, docs are docs. Rails, thanks to rakefiles and unit, functional and integration tests, <del
datetime="2008-01-18T14:24:06+00:00">seems</del> <strong>is</strong> a much more advanced platform in this sense. You can get even stats of your projects with it! You can test them! Extract the docs! Everything! This is something lacking in Django. Really. Not to speak about the lack in Python of something similar to <a
href="http://rspec.info/">RSpec</a>, which just by itself justifies the choice of Ruby and Rails in this field.</li><li>Lack of integrated logging. Can you believe this? I had to find an <a
href="http://www.djangosnippets.org/snippets/16/">external source of inspiration</a> for this.</li><li>The naming of &#8220;Views&#8221; for &#8220;Controllers&#8221; (or said otherwise, the MTV instead of MVC thing) does not make sense to me. Even in WebObjects and Cocoa &#8220;views&#8221; are, well, &#8220;views&#8221;&#8230;</li><li>The commands for creating, starting or using an application from the command line are slightly harder to remember (or maybe in Rails are just far too easy to remember!)</li><li>The template system; I do not want to learn another language for that. Django uses a really limited one for this matter, and I prefer Rails&#8217; (default) one in this case.</li><li>Finally, Python; I just can&#8217;t get used to this language&#8217;s syntax. But I can live with that ;) It&#8217;s a matter of personal taste, simply.</li></ul><p>Of course, these impressions have nothing to do with the power of the platform! Python is a powerful language, and many of the &#8220;newbie&#8221; observations above have to do with my own lack of knowledge about it. But first impressions count!</p><p>In any case, I liked playing with Django &amp; Python; I&#8217;m happy to have learnt something new!</p><p><strong>Update, 2009-02-26:</strong> I&#8217;ve posted the code in <a
href="http://github.com/akosma/django-blog-engine/">Github</a> now, and also I&#8217;ve fixed its compatibility problems, and now it works with Django 1.0.2.</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/my-first-django-project/feed/</wfw:commentRss> <slash:comments>20</slash:comments> </item> <item><title>Updating RubyGems and Rails in Leopard</title><link>http://kosmaczewski.net/updating-rubygems-and-rails-in-leopard/</link> <comments>http://kosmaczewski.net/updating-rubygems-and-rails-in-leopard/#comments</comments> <pubDate>Fri, 14 Dec 2007 15:43:15 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Apple]]></category> <category><![CDATA[How to?]]></category> <category><![CDATA[Ruby on Rails]]></category> <category><![CDATA[gem]]></category> <category><![CDATA[Leopard]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2007/12/14/updating-rubygems-and-rails-in-leopard/</guid> <description><![CDATA[If you just installed Leopard and the developer tools, you&#8217;ll find out that Ruby on Rails is there, ready to be used. But of course, it&#8217;s Rails 1.2.3, which is fine, but it turns out that last Friday Rails went &#8230; <a
href="http://kosmaczewski.net/updating-rubygems-and-rails-in-leopard/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>If you just installed <a
href="http://en.wikipedia.org/wiki/Mac_OS_X_v10.5">Leopard</a> and the developer tools, you&#8217;ll find out that <a
href="http://www.rubyonrails.org/">Ruby on Rails</a> is there, ready to be used. But of course, it&#8217;s Rails 1.2.3, which is fine, but it turns out that <a
href="/2007/12/07/rails-20/">last Friday Rails went 2.0</a>. Not only that, but <a
href="http://www.urbanpuddle.com/articles/2007/12/13/quick-tip-rails-2-0-rubygems">RubyGems was updated to 0.9.5 lately too</a>&#8230; and you&#8217;re dying to have everything up and running on your system.</p><p>So how to proceed? Follow these instructions:</p><ol><li>Open Terminal.app</li><li><code>$ sudo gem update --system</code></li><li><code>$ sudo gem install rails</code></li><li><code>$ sudo gem update</code></li></ol><p>If you just do <strong>&#8220;gem update&#8221;</strong>, then the current Rails installation will be broken. You must do <strong>&#8216;gem install rails&#8221;</strong> (which seems odd, because it was already installed, after all). The thing is that since you&#8217;ve updated RubyGems with the command 2) above, then you need to re-install Rails. I haven&#8217;t tried with other gems, but it could be the same situation for them.</p><p><strong>Update, 2007-12-19:</strong> <a
href="http://blog.carlmercier.com/2007/12/14/how-to-fix-that-rubygems-mess-on-leopard/">Here&#8217;s another solution for this problem!</a></p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/updating-rubygems-and-rails-in-leopard/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Blog coverage for Paris on Rails 2007</title><link>http://kosmaczewski.net/blog-coverage-for-paris-on-rails-2007/</link> <comments>http://kosmaczewski.net/blog-coverage-for-paris-on-rails-2007/#comments</comments> <pubDate>Thu, 13 Dec 2007 10:22:52 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Ruby on Rails]]></category> <category><![CDATA[France]]></category> <category><![CDATA[Paris]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2007/12/13/blog-coverage-for-paris-on-rails-2007/</guid> <description><![CDATA[I found the following articles about Paris on Rails 2007: Paris on Rails : &#8220;On ne remplace pas le cerveau d&#8217;un &#8216;bon&#8217; développeur !&#8221; Um brasileiro no Paris on Rails (with two photos where you can spot me if you &#8230; <a
href="http://kosmaczewski.net/blog-coverage-for-paris-on-rails-2007/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>I found the following articles about Paris on Rails 2007:</p><ul><li><a
href="http://www.silicon.fr/fr/news/2007/12/04/paris_on_rails____on_ne_remplace_pas_le_cerveau_d_un__bon__d_veloppeur___">Paris on Rails : &#8220;On ne remplace pas le cerveau d&#8217;un &#8216;bon&#8217; développeur !&#8221;</a></li><li><a
href="http://www.akitaonrails.com/2007/12/10/um-brasileiro-no-paris-on-rails">Um brasileiro no Paris on Rails</a> (with two photos where you can spot me if you look carefully ;)</li><li><a
href="http://weblogs.java.net/blog/jfarcand/archive/2007/12/on_the_roadto_j_3.html">On the road&#8230;.to Javapolis: Paris</a> (with a link to this blog :)</li></ul><p>I will add more links as I find them; and don&#8217;t hesitate to add yours in the comment section below!</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/blog-coverage-for-paris-on-rails-2007/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Paris on Rails: Afternoon</title><link>http://kosmaczewski.net/paris-on-rails-afternoon/</link> <comments>http://kosmaczewski.net/paris-on-rails-afternoon/#comments</comments> <pubDate>Mon, 10 Dec 2007 17:10:38 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Ruby on Rails]]></category> <category><![CDATA[France]]></category> <category><![CDATA[Live Coverage]]></category> <category><![CDATA[Paris]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2007/12/10/paris-on-rails-afternoon/</guid> <description><![CDATA[(See the morning report, if you haven&#8217;t already) After the lunch break, these were the highlights of Paris on Rails: Christophe Porteneuve talked about Prototype, the project where he is one of the core developers, and also author of THE &#8230; <a
href="http://kosmaczewski.net/paris-on-rails-afternoon/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>(See the <a
href="/2007/12/10/paris-on-rails-morning/">morning report</a>, if you haven&#8217;t already)</p><p>After the lunch break, these were the highlights of <a
href="http://paris.onrails.info/">Paris on Rails</a>:</p><ol><li><a
href="http://www.workingwithrails.com/person/6135-christophe-porteneuve">Christophe Porteneuve</a> talked about <a
href="http://www.prototypejs.org/">Prototype</a>, the project where he is one of the core developers, and also <a
href="http://pragprog.com/titles/cppsu">author of THE book about Prototype</a>! Great stuff: he explained everything there&#8217;s to know about JavaScript bindings (and the Prototype &#8220;bind&#8221; method); he also gave an excellent overview of the enumeration methods of Prototype (incredible stuff!), the new Response object in the latest version of Prototype, and also a nice talk about event bubbling. JavaScript 2000%!! To sum it up: <strong>this guy is a great presenter, very funny and knowledgeable, and his speech is more than worth the trip to Paris!</strong></li><li><a
href="http://www.workingwithrails.com/person/6944-sylvain-perez">Sylvain Perez</a> and <a
href="http://www.workingwithrails.com/person/6940-guillaume-desrat">Guillaume Desrat</a> (president of <a
href="http://www.rubyfrance.org/">Ruby France</a> and rubyist since 2002!) enlightened us about how they introduced Rails in <a
href="http://www.rbcdexia-is.com/">RBC Dexia Investor Services</a> making it interact with their SOA, DataWarehouse and backend services, what were the challenges (some), the rewards (many) and the tradeoffs (a few) during that integration. Maybe that &#8220;Thought Leader&#8221; of James Mc Govern will <a
href="http://www.google.com/search?q=rails+site%3Aduckdown.blogspot.com">finally understand</a> that not only Rails is ready for prime time&#8230; but it is already used in big &#8220;enterprisey&#8221; environments!</li><li><a
href="http://blogs.sun.com/alexismp/">Alexis Moussine-Pouchkine</a> and <a
href="http://weblogs.java.net/blog/jfarcand/">Jean-François Arcand</a> gave an extremely interesting talk about JRuby, <a
href="http://glassfish.org/">GlassFish</a> and Java in general, and how Ruby is slowly gaining momentum in the Java world! And Jean-François made it really fun to follow thanks to his nice Canadian accent :)</li><li><a
href="http://www.loudthinking.com/">David Heinemeier Hansson</a> himself direct from Chicago! He talked over the iChat link about all the new features of Rails 2.0, about backward compatibility issues and how to solve them.</li><li>Finally, <a
href="http://www.workingwithrails.com/person/6331-jean-michel-garnier">Jean-Michel Garnier</a> from <a
href="http://21croissants.com/">21croissants</a> (a Barcelona-based RoR company) convinced us that testing is a really important thing to do (which you already knew, by the way, isn&#8217;t it?) and how to use <a
href="http://rspec.rubyforge.org/">RSpec</a>, <a
href="http://eigenclass.org/hiki.rb?rcov">rcov</a>, <a
href="http://cruisecontrolrb.thoughtworks.com/">CruiseControl.rb</a>, <a
href="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">Test::Unit</a> and <a
href="http://www.openqa.org/selenium/">Selenium</a> in your applications, putting it in context (historically, citing Fred Brooks and Kent Beck, and methodologically, citing Martin Fowler). As Jean-Michel said in his speech, 2008 will be the year of RSpec; and when I look at it, I think he&#8217;s right: in RSpec, the spec is the test; the spec is the doc; the doc is the spec. And the other way around, too :)</li></ol><p>It is interesting to see some trends in the current Rails landscape:</p><ul><li>There&#8217;s an interesting ongoing debate about IDEs: Aptana (ex-RadRails), NetBeans, Visual Studio or&#8230; TextMate?</li><li>JRuby is available in stable form: there&#8217;s a bunch of new opportunities opening right now!</li><li>Ruby and Rails are both getting the &#8220;acceptance status seal&#8221; of big companies: it is no longer a &#8220;toy&#8221; technology.</li></ul><p>One thing is fundamentally true: this platform has taken the world as a storm. <a
href="/2005/07/31/inversion-of-control-ruby-rails/">I&#8217;ve first blogged about it in July 2005</a>, and I firmly believe today that any serious software developer should (at least) learn a little bit about it. <strong>Rails is here to stay, whether you like it or not.</strong> Compare my reports to <a
href="http://fredbrunel.com/journal/2006/11/paris-on-rails-2006-report/">what happened in Paris on Rails 2006</a>: lots of things have happened in the Rails world, and more are bound to happen in 2008.</p><p>All in all, an excellent conference, with around 220 people attending it, from France, Switzerland, Luxembourg, Belgium and even Spain! I&#8217;d be happy to talk here next year ;)</p><p><strong>Update, 2007-12-11</strong>: <a
href="http://www.idg.com/www/HomeNew.nsf/docs/Peter_Sayer">Peter Sayer</a>, whom I met yesterday in the conference, and shared a few impressions about the current Rails landscape, <a
href="http://www.itworld.com/AppDev/705/paris-on-rails-071210/">has published a very good article about it!</a></p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/paris-on-rails-afternoon/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Paris on Rails: Morning</title><link>http://kosmaczewski.net/paris-on-rails-morning/</link> <comments>http://kosmaczewski.net/paris-on-rails-morning/#comments</comments> <pubDate>Mon, 10 Dec 2007 11:30:28 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Ruby on Rails]]></category> <category><![CDATA[France]]></category> <category><![CDATA[Live Coverage]]></category> <category><![CDATA[Paris]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2007/12/10/paris-on-rails-morning/</guid> <description><![CDATA[The morning sessions of Paris on Rails can be summarized as follows: An introduction to Ruby and Rails done by Laurent Juillard from nuxos: interesting for those that never used Ruby before, and a good thing to do given the &#8230; <a
href="http://kosmaczewski.net/paris-on-rails-morning/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>The morning sessions of <a
href="http://paris.onrails.info/">Paris on Rails</a> can be summarized as follows:</p><ol><li>An introduction to Ruby and Rails done by Laurent Juillard from <a
href="http://www.workingwithrails.com/company/4169-nuxos-group">nuxos</a>: interesting for those that never used Ruby before, and a good thing to do given the number of people in the room that are new to the platform in general. Otherwise, quite boring for those of us who already use it :) But the right thing to do nevertheless.</li><li>A real-life use case of Ruby on Rails, shown by <a
href="http://www.linkedin.com/pub/0/308/6B9">Aurélien Géron</a> from <a
href="http://www.wifirst.fr/">Wifirst</a>: a <strong>very</strong> interesting explanation of a company that chooses to jump on the Rails wagon, with answers to both the &#8220;why&#8221; and the  &#8220;how&#8221;. Very funny explanation of how they had to deal with the Pythonistas inside the company who wanted to use <a
href="http://www.djangoproject.com/">Django</a> instead :) The most interesting thing about this talk is the fact that <a
href="http://opensource.bolloretelecom.eu/">they will release their webmail application as open source!</a></li><li><a
href="http://www.workingwithrails.com/person/6242-yann-lugrin">Yann Lugrin</a>, CTO of <a
href="http://www.liquid-concept.ch/">Liquid Concept</a> (from Lausanne!) explained about the trouble to &#8220;internationalize&#8221; a Rails application (particularly about the IMHO biggest problem in Ruby: the lack of direct UTF-8 support!), and how you can use the <a
href="http://www.globalize-rails.org/">Globalize</a> plugin to make your sites multi-lingual and multi-cultural. I&#8217;m happy I&#8217;ve used it to make <a
href="http://parking-friend.com/">Parking Friend</a> available in several languages :) Globalize rocks!</li><li>Finally, <a
href="http://www.workingwithrails.com/person/8522-nicolas-m-rouze">Nicolas Mérouze</a> from <a
href="http://www.workingwithrails.com/company/4265-yeasty-mobs">Yeastie Mobs</a> talked about <a
href="http://haml.hamptoncatlin.com/">HAML</a> as an alternative to <a
href="http://www.ruby-doc.org/stdlib/libdoc/erb/rdoc/">ERB</a> as the template language for Rails, and how it compares to other options like <a
href="http://redhanded.hobix.com/inspect/markabyForRails.html">Markaby</a> or <a
href="http://hobocentral.net/manual/chapters/3_dryml.html">DRYML</a> or <a
href="http://masterview.org/">MasterView</a>. Very interesting! HAML seems a little bit &#8220;Pythonesque&#8221; for my taste :) but that&#8217;s my opinion. Nicolas also made an interesting comment about <a
href="http://haml.hamptoncatlin.com/docs/sass">SASS</a> and <a
href="http://code.google.com/p/blueprintcss/">Blueprint</a>, which I had heard about, but never looked at in detail.</li></ol><p>In any case, I still have trouble with the technical names and buzzwords in French :) I&#8217;m too used to the English versions! Other than that, a nice first part. Let&#8217;s see what comes in the afternoon! Now it&#8217;s time to have something to eat :)</p><p><strong>Update:</strong> Read the <a
href="/2007/12/10/paris-on-rails-afternoon/">afternoon report</a>!</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/paris-on-rails-morning/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Live Blogging: Paris on Rails!</title><link>http://kosmaczewski.net/live-blogging-paris-on-rails/</link> <comments>http://kosmaczewski.net/live-blogging-paris-on-rails/#comments</comments> <pubDate>Mon, 10 Dec 2007 08:10:36 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Ruby on Rails]]></category> <category><![CDATA[France]]></category> <category><![CDATA[Live Coverage]]></category> <category><![CDATA[Paris]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2007/12/10/live-blogging-paris-on-rails/</guid> <description><![CDATA[It&#8217;s 09:07 AM in Paris, and after a wild 1h30 ride from Paris Orly (!) I&#8217;m right at the heart of Paris on Rails, second edition! I&#8217;ll be posting news during the day about what&#8217;s being said, who I meet &#8230; <a
href="http://kosmaczewski.net/live-blogging-paris-on-rails/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>It&#8217;s 09:07 AM in Paris, and after a wild 1h30 ride from <a
href="http://en.wikipedia.org/wiki/Orly_Airport">Paris Orly</a> (!) I&#8217;m right at the heart of <a
href="http://paris.onrails.info/">Paris on Rails</a>, second edition! I&#8217;ll be posting news during the day about what&#8217;s being said, who I meet there, and all kinds of gossip.</p><p>Stay tuned!</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/live-blogging-paris-on-rails/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Rails 2.0</title><link>http://kosmaczewski.net/rails-20/</link> <comments>http://kosmaczewski.net/rails-20/#comments</comments> <pubDate>Fri, 07 Dec 2007 17:17:43 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Opinion]]></category> <category><![CDATA[Ruby on Rails]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[France]]></category> <category><![CDATA[Paris]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2007/12/07/rails-20/</guid> <description><![CDATA[Almost two years have passed since version 1.0: Rails is now 2.0! To celebrate, I&#8217;ll be at Paris on Rails next Monday; will you be there too?]]></description> <content:encoded><![CDATA[<p>Almost two years have passed since <a
href="/2005/12/13/the-technical-news-of-the-day/">version 1.0</a>: <a
href="http://weblog.rubyonrails.com/2007/12/7/rails-2-0-it-s-done">Rails is now 2.0!</a></p><p>To celebrate, I&#8217;ll be at <a
href="http://paris.onrails.info/">Paris on Rails</a> next Monday; will you be there too?</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/rails-20/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Rails vs. Django</title><link>http://kosmaczewski.net/rails-vs-django/</link> <comments>http://kosmaczewski.net/rails-vs-django/#comments</comments> <pubDate>Wed, 05 Dec 2007 09:12:10 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[Django]]></category> <category><![CDATA[Ruby on Rails]]></category> <category><![CDATA[comparison]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2007/12/05/rails-vs-django/</guid> <description><![CDATA[While watching the Google TechTalk about Django, I came accross this interesting paper highlighting differences between Rails and Django, which might be interesting to many of us in the field. For those interested, Django is a powerful, MVC framework for &#8230; <a
href="http://kosmaczewski.net/rails-vs-django/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>While watching the <a
href="http://video.google.com/videoplay?docid=-70449010942275062">Google TechTalk about Django</a>, I came accross <a
href="http://www.vaporbase.com/rails-django">this interesting paper</a> highlighting differences between Rails and Django, which might be interesting to many of us in the field.</p><p>For those interested, <a
href="http://www.djangoproject.com/">Django</a> is a powerful, MVC framework for creating web applications using the <a
href="http://www.python.org/">Python programming language</a>. It is very similar in some respects to <a
href="http://www.rubyonrails.org/">Rails</a>, but some consider Django to be better suited for high-traffic websites. I haven&#8217;t used Django extensively (nor Python as a matter of fact, besides the typical &#8220;Hello World&#8221; thingy) so I won&#8217;t say anything else but the fact that I prefer <a
href="http://www.ruby-lang.org/">Ruby</a>&#8216;s syntax to Python&#8217;s.</p><p>Of course this is a subjective opinion! In any case, if it&#8217;s anything like Rails, it&#8217;s worth considering. Definitely. Dynamic languages are the way to go.</p><p><strong>Update, 2008-01-11:</strong> You might want to check out <a
href="/2008/01/11/my-first-django-project/">this other article of mine!</a></p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/rails-vs-django/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> </channel> </rss>
