<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-356149659891148051</id><updated>2012-02-16T05:31:38.106-08:00</updated><category term='MongoDB'/><category term='Heroku'/><category term='Rubinius'/><category term='cookingspace.com'/><category term='JRuby'/><category term='Ruby'/><category term='ActiveRecord'/><category term='Datamapper'/><category term='Rails'/><category term='memcached'/><category term='Clojure'/><category term='benchmark'/><category term='open source'/><category term='Sinatra'/><category term='CouchDB'/><title type='text'>rubyplanet</title><subtitle type='html'>Using Ruby for information processing, artificial intelligence and data mining, the semantic web, and Rails web applications</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-6591265781975824956</id><published>2010-08-29T21:14:00.000-07:00</published><updated>2010-08-29T21:14:00.239-07:00</updated><title type='text'>I am freezing this blog - Ruby material will in the future be posted to my main blog</title><content type='html'>Please visit &lt;a href="http://blog.markwatson.com"&gt;my general technology blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-6591265781975824956?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/6591265781975824956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/08/i-am-freezing-this-blog-ruby-material.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/6591265781975824956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/6591265781975824956'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/08/i-am-freezing-this-blog-ruby-material.html' title='I am freezing this blog - Ruby material will in the future be posted to my main blog'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-5504987464948442281</id><published>2010-08-24T21:06:00.000-07:00</published><updated>2010-08-24T21:13:24.185-07:00</updated><title type='text'>I am getting excited about the Rails 3 release</title><content type='html'>I spent some time with Rails 3 pre last December but I have not done much since - I have been very busy this year. I installed the second release candidate tonight and have been kicking the tires again by starting a new application from scratch, getting used to the new command line interface, and reading a few online articles about new features and migration issues.&lt;br /&gt;&lt;br /&gt;I used to use Merb a lot, and ever since the announcement of the Merb and Rails merge, I have been looking forward to the 3.0 release. I invested a lot of time learning Rails version 1.x, then 2.x, and I am enthusiastic about putting in the time for digging into 3.x.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-5504987464948442281?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/5504987464948442281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/08/i-am-getting-excited-about-rails-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/5504987464948442281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/5504987464948442281'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/08/i-am-getting-excited-about-rails-3.html' title='I am getting excited about the Rails 3 release'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-523459803233773902</id><published>2010-08-18T09:12:00.001-07:00</published><updated>2010-08-18T09:15:21.670-07:00</updated><title type='text'>Great news: Ruby 1.9.2 released</title><content type='html'>I am doing an install from svn head right now:&lt;pre&gt;rvm install 1.9.2-head&lt;/pre&gt; and it is picking up the latest release OK:&lt;pre&gt;http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_2&lt;/pre&gt;As an aside: I wonder how much Oracle's law suit against Google for a non-standard Java in Android will affect Java, Clojure, Scala, etc.? Probably not much at all, but this might be another small reason to favor Ruby :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-523459803233773902?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/523459803233773902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/08/great-news-ruby-192-released.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/523459803233773902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/523459803233773902'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/08/great-news-ruby-192-released.html' title='Great news: Ruby 1.9.2 released'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-7726499725508961015</id><published>2010-07-12T12:07:00.000-07:00</published><updated>2010-07-12T12:17:30.495-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MongoDB'/><title type='text'>Another way to do text search on MongoDB</title><content type='html'>I &lt;a href="http://markwatson.com/blog/2009/11/mongodb-has-good-support-for-indexing.html" target="new"&gt;wrote an article on my main technology blog last November&lt;/a&gt; on doing indexing and search using MongoDB with the MongoRecord ORM style gem.&lt;br /&gt;&lt;br /&gt;Since then, I have preferred to use MongoDB closer to the metal using the mongo gem (and using lower level interfaces when I develop in Clojure). Here is a simple example:&lt;pre&gt;require 'rubygems' # only for Ruby 1.8.*&lt;br /&gt;require 'mongo'&lt;br /&gt;&lt;br /&gt;include Mongo&lt;br /&gt;&lt;br /&gt;host = "localhost"&lt;br /&gt;db = Connection.new(host,27017).db('my-db-name')&lt;br /&gt;things = db.collection('things')&lt;br /&gt;&lt;br /&gt;things.remove&lt;br /&gt;things.insert('guid' =&gt; 102, :name =&gt; 'John Smith', :email =&gt; 'jsmith@example.com')&lt;br /&gt;puts things.count&lt;br /&gt;things.find(:name =&gt; /^john/i).each {|x| p x} # good performance&lt;br /&gt;things.find(:name =&gt; /smith/i).each {|x| p x} # no so good performance&lt;/pre&gt;Because of the way indices are created, you should only do prefix wild card searches if you need good performance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-7726499725508961015?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/7726499725508961015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/07/another-way-to-do-text-search-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/7726499725508961015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/7726499725508961015'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/07/another-way-to-do-text-search-on.html' title='Another way to do text search on MongoDB'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-478670726694028823</id><published>2010-06-09T06:52:00.000-07:00</published><updated>2010-06-09T06:58:56.482-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MongoDB'/><category scheme='http://www.blogger.com/atom/ns#' term='Datamapper'/><title type='text'>Datamapper 1.0 released</title><content type='html'>&lt;a href="http://groups.google.com/group/datamapper/browse_thread/thread/6e3d51520cb63d9c?pli=1" target="new"&gt;Here is the announcement.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I must say that I still use ActiveRecord slightly more often that Datamapper but that is largely due to working on legacy Rails apps. I have been using MongoDB more often because my largest customer uses it and the &lt;a href="http://github.com/solnic/dm-mongo-adapter" target="new"&gt;dm-mongo-adapter&lt;/a&gt; lets you mix data model backends of MongoDB and relational databases.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-478670726694028823?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/478670726694028823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/06/datamapper-10-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/478670726694028823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/478670726694028823'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/06/datamapper-10-released.html' title='Datamapper 1.0 released'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-2138766782793799641</id><published>2010-05-23T14:35:00.000-07:00</published><updated>2010-05-23T14:49:02.275-07:00</updated><title type='text'>I have finally got with the program and installed rvm</title><content type='html'>I always have installed each version of Ruby in my local ~/bin directory and setup bash aliases to tweak my PATH to quickly switch when needed. I like having the source code to all of the gems I use ready at hand, so my installation scheme has always worked well for me. Being able to ZIP up all of my Ruby installations and move them to another system was another big win, as is not having to sudo gem install...&lt;br /&gt;&lt;br /&gt;I spent the time today to install rvm on my fast i5 Ubuntu laptop, with Ruby 1.8.7, 1.9.1, Rubinius 1.0, and Jruby 1.5.0. Very satisfactory. I still have everything in my home directory where I want it, and my setup is easy to backup and copy.&lt;br /&gt;&lt;br /&gt;I do almost all of my real work with 1.9.1 but I have been enjoying using Rubinius for casual coding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-2138766782793799641?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/2138766782793799641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/05/i-have-finally-got-with-program-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/2138766782793799641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/2138766782793799641'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/05/i-have-finally-got-with-program-and.html' title='I have finally got with the program and installed rvm'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-6004610826315190970</id><published>2010-05-15T11:24:00.000-07:00</published><updated>2010-05-15T11:37:45.214-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rubinius'/><category scheme='http://www.blogger.com/atom/ns#' term='Clojure'/><title type='text'>If Rubinius if good enough for Ezra, it is good enough for me</title><content type='html'>On the Hacker News discusion of the new 1.0 release of Rubinius, Ezra Zygmuntowicz mentioned that he uses Rubinius for his day to day Ruby development. That really got my attention because Ezra's articles on Ruby, configuring nginx, etc. have been a great help to me over the years.&lt;br /&gt;&lt;br /&gt;I just installed rbx, gem for rbx, and I am now installing the gems I need for the things that I usually work on.&lt;br /&gt;&lt;br /&gt;I am super busy right now (doing artificial intelligence/text mining for a stealth startup, so I have almost no free time) so I'll have to stick with JRuby 1.5 and Ruby 1.9.1 for my Ruby work right now, but I think that Rubinius is the future.&lt;br /&gt;&lt;br /&gt;BTW, a few years ago at a Merb Camp, Ezra asked me if I was into Clojure because of my long-time use of Lisp (I have been using Lisp for work since the early 1980s). At the time I had to say no, but recently most of my work has been using Clojure which is one reason the I started my new &lt;a href="http://www.clojurepla.net/" target="new"&gt;ClojurePla.net&lt;/a&gt; web blog. Ruby is still my favorite language but I am sensitive to what customers want to pay me to code in :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-6004610826315190970?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/6004610826315190970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/05/if-rubinius-if-good-enough-for-ezra-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/6004610826315190970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/6004610826315190970'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/05/if-rubinius-if-good-enough-for-ezra-it.html' title='If Rubinius if good enough for Ezra, it is good enough for me'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-2560772245311345553</id><published>2010-05-04T12:48:00.000-07:00</published><updated>2010-05-04T12:51:26.472-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>I open sourced my-foc.us Rails web app</title><content type='html'>You can try it &lt;a href="http://my-foc.us/" target="new"&gt;right now&lt;/a&gt; on my server or get the &lt;a href="http://github.com/mark-watson/my-foc.us" target="new"&gt;source code at github&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;my-foc.us is an "anti TODO list" since its goal is help you drill down and focus on your most important tasks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-2560772245311345553?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/2560772245311345553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/05/i-open-sourced-my-focus-rails-web-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/2560772245311345553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/2560772245311345553'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/05/i-open-sourced-my-focus-rails-web-app.html' title='I open sourced my-foc.us Rails web app'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-1778710250921533556</id><published>2010-04-30T14:29:00.000-07:00</published><updated>2010-04-30T14:36:23.771-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MongoDB'/><category scheme='http://www.blogger.com/atom/ns#' term='Heroku'/><title type='text'>Nice: MongoHQ is now a beta Heroku add-on.</title><content type='html'>I wrote an article (&lt;a href="http://www.developer.com/lang/rubyrails/article.php/3860616/A-Rails-Cloud-Implementation-Using-MongoDB-and-Heroku" target="new"&gt;Heroku hosted Rails applications using remote MongoDB services&lt;/a&gt;) a few months ago about using an external MongoDB server with Heroku Rails apps.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.heroku.com/archives/2010/4/30/mongohq_add_on_public_beta/" target="new"&gt;Now MongoHQ is an ad-on service.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="https://mongohq.com/pricing" target="new"&gt;pricing&lt;/a&gt; is reasonable enough to not bother running my own MongoDB instances if I am hosting on Heroku.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-1778710250921533556?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/1778710250921533556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/04/nice-mongohq-is-now-beta-heroku-add-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/1778710250921533556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/1778710250921533556'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/04/nice-mongohq-is-now-beta-heroku-add-on.html' title='Nice: MongoHQ is now a beta Heroku add-on.'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-8868740548409514340</id><published>2010-04-28T16:05:00.000-07:00</published><updated>2010-04-28T16:30:06.331-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JRuby'/><title type='text'>JRuby 1.5.0RC2 runs all of my code</title><content type='html'>JRuby 1.5.0RC2 &lt;a href="http://www.jruby.org/2010/04/28/jruby-1-5-0-RC2" target="new"&gt;is available&lt;/a&gt;. I did a test install of gems I use with JRuby:&lt;pre&gt;jgem install jruby-openssl rails heroku rest-client texticle \   &lt;br /&gt;  postgres-pr mongo_record json_pure dm-core couchrest gemcutter \&lt;br /&gt;  simplehttp sinatra geocoder neo4j --no-ri --no-rdoc&lt;/pre&gt;Nice. I tested all of my programs that I run with JRuby with no problems:&lt;ul&gt;&lt;li&gt;All JRuby example programs from my new "Practical Semantic Web Programming, Java edition"&lt;/li&gt;&lt;li&gt;Access to Sesame, AllegroGraph, MongoDB, CouchDB, and PostgreSQL data sources&lt;/li&gt;&lt;li&gt;Misc. utilities&lt;/li&gt;&lt;/ul&gt;I found nothing that did not run fine with JRuby 1.5.0 RC2 :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-8868740548409514340?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/8868740548409514340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/04/jruby-150rc2-runs-all-of-my-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/8868740548409514340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/8868740548409514340'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/04/jruby-150rc2-runs-all-of-my-code.html' title='JRuby 1.5.0RC2 runs all of my code'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-5147394105461999338</id><published>2010-04-27T21:06:00.000-07:00</published><updated>2010-04-27T21:20:17.352-07:00</updated><title type='text'>I removed Ruby 1.8.* from my development systems</title><content type='html'>The only use I have recently had for Ruby 1.8.7 was for running the appengine gem (apps use JRuby, but the setup uses MRI). Because of the long loading request times for appengine apps written using JRuby, I have decided that the limited amount of appengine development that I do will be in Java (&lt;a href="http://blog.markwatson.com/2010/04/great-way-to-get-around-long-loading.html" target="new"&gt;&lt;b&gt;1&lt;/b&gt;&lt;/a&gt; and &lt;a href="http://blog.markwatson.com/2010/04/my-objectify-appengine-setup.html" target="new"&gt;&lt;b&gt;2&lt;/b&gt;&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;While I use JRuby quite a bit when using existing Java libraries for NLP and the Semantic Web, most of my development is done in MRI and since Ruby 1.9.1 is so much faster than Ruby 1.8.* it seems best to make a clean break. I left Ruby 1.8.7 on one of my servers to support a few older projects for customers (just for low level of effort maintenance).&lt;br /&gt;&lt;br /&gt;I truly believe that it is time for the "Ruby World" to move on to Ruby 1.9.*, JRuby, and other modern implementations like MacRuby.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-5147394105461999338?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/5147394105461999338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/04/i-removed-ruby-18-from-my-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/5147394105461999338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/5147394105461999338'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/04/i-removed-ruby-18-from-my-development.html' title='I removed Ruby 1.8.* from my development systems'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-7172606971378287490</id><published>2010-04-09T08:16:00.000-07:00</published><updated>2010-04-27T20:47:08.883-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Heroku'/><title type='text'>Completely up and running with Ruby 1.9.1</title><content type='html'>The last problem I had was getting my &lt;a href="http://cookingspace.com" target="new"&gt;CookingSpace.com&lt;/a&gt; app on Heroku migrated to Ruby 1.9.1. (Thanks to Heroku tech support for help on a problem I was unable to figure out for myself :-)&lt;br /&gt;&lt;br /&gt;I now have all of my Rails projects and those of my active customers running on Ruby 1.9.1.&lt;br /&gt;&lt;br /&gt;4/27/2010 update: Forgot to mention: I had to patch the &lt;i&gt;auto_complete&lt;/i&gt; plugin: search the plugin code for &lt;i&gt;content_tag("ul", items.uniq)&lt;/i&gt; and change it to &lt;i&gt;content_tag("ul", items.uniq.join)&lt;/i&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-7172606971378287490?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/7172606971378287490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/04/completely-up-and-running-with-ruby-191.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/7172606971378287490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/7172606971378287490'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/04/completely-up-and-running-with-ruby-191.html' title='Completely up and running with Ruby 1.9.1'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-5076197402970553375</id><published>2010-04-03T11:26:00.000-07:00</published><updated>2010-04-03T11:36:25.787-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>Final results on Ruby 1.8.7, 1.9.1, and JRuby 1.4.0 benchmark using cookingspace.com</title><content type='html'>I have done some more work to try to make the comparison as fair and accurate as possible. If I assign a performance value of &lt;b&gt;1.0&lt;/b&gt; to Ruby 1.8.7 then the relative performance of Ruby 1.9.1 is &lt;b&gt;2.1&lt;/b&gt; and the relative performance of JRuby 1.4.0 is &lt;b&gt;1.9&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;The lesson is obvious: if you are running Ruby 1.8.* in production, then make a real effort to update your applications to either Ruby 1.9.1 or JRuby 1.4.0!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-5076197402970553375?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/5076197402970553375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/04/final-results-on-ruby-187-191-and-jruby.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/5076197402970553375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/5076197402970553375'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/04/final-results-on-ruby-187-191-and-jruby.html' title='Final results on Ruby 1.8.7, 1.9.1, and JRuby 1.4.0 benchmark using cookingspace.com'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-2336603840623513107</id><published>2010-04-02T13:13:00.000-07:00</published><updated>2010-04-27T21:34:12.535-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActiveRecord'/><category scheme='http://www.blogger.com/atom/ns#' term='memcached'/><title type='text'>Memcached and ActiveRecord: a few easy performance improvements</title><content type='html'>I have a web application where the data in some tables is never modified and other tables where the data is seldom modified. Here are a few simple things that I just did speed up my Rails app by about 35%:&lt;br /&gt;&lt;br /&gt;Cache IDs of an active record class:&lt;pre&gt;plan_list =&lt;br /&gt;  Marshal.load(Rails.cache.fetch('plan_ids_list') {&lt;br /&gt;    Marshal.dump(DailyPlan.find(&lt;br /&gt;      :all, :conditions =&gt; . . . ).collect {|r| r.id})&lt;br /&gt; })&lt;/pre&gt;Here I am just using the caching mechanism built into Rails 2.1+. If I was using the in memory cache instead of Memcached then I would not have to marshal/unmarshal the cached Ruby data.&lt;br /&gt;&lt;br /&gt;Supply a &lt;b&gt;find&lt;/b&gt; method that will work with all ActiveRecord associations:&lt;pre&gt;class Ingredient &lt; ActiveRecord::Base&lt;br /&gt;  has_many :weights, :foreign_key =&gt; :ndb_no&lt;br /&gt;&lt;br /&gt;  # Using memcache to save ingredients since they are very static&lt;br /&gt;  def self.find(*args)&lt;br /&gt;    result = Rails.cache.read("ing_" + args.to_s.gsub(" ",""))&lt;br /&gt;    if !result&lt;br /&gt;      result = super(*args)&lt;br /&gt;      Rails.cache.write("ing_" + args.to_s.gsub(" ",""),&lt;br /&gt;                        Marshal.dump(result), :expires_in =&gt; 1.day)&lt;br /&gt;    else&lt;br /&gt;      result = Marshal.load(result)&lt;br /&gt;    end&lt;br /&gt;    result&lt;br /&gt;  end&lt;br /&gt;end&lt;/pre&gt;I could have used the &lt;b&gt;Rails.cache.fetch&lt;/b&gt; trick from the last example to shorten the code, but this version shows more clearly what I am doing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-2336603840623513107?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/2336603840623513107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/04/memcached-and-activerecord-few-easy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/2336603840623513107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/2336603840623513107'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/04/memcached-and-activerecord-few-easy.html' title='Memcached and ActiveRecord: a few easy performance improvements'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-5485931788028372298</id><published>2010-04-02T07:09:00.000-07:00</published><updated>2010-04-02T07:22:31.964-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>Part 2: Improved JRuby results for Ruby 1.9.1 vs. JRuby 1.4.0 benchmark using cookingspace.com</title><content type='html'>I would like to thank &lt;a href="http://www.petercooper.co.uk/" target="new"&gt;Peter Cooper&lt;/a&gt; for pointing out that there was a problem with the benchmark I &lt;a href="http://www.rubyplanet.net/2010/04/ruby-191-about-twice-as-fast-as-jruby.html" target="new"&gt;posted yesterday&lt;/a&gt;: the request time was likely most affected by database access time. I was using the postgres-pr gem with JRuby.&lt;br /&gt;&lt;br /&gt;I just modified my Rails app to use the JDBC ActiveRecord gems and the results were better for JRuby: 13.8 requests per second compared to 15.8 requests per second using Ruby 1.9.1 with the native Postgresql gem. Results for JRuby:&lt;pre&gt;Requests per second:    13.80 [#/sec] (mean)&lt;br /&gt;Time per request:       362.446 [ms] (mean)&lt;br /&gt;Time per request:       72.489 [ms] (mean, across all concurrent requests)&lt;br /&gt;Transfer rate:          85.06 [Kbytes/sec] received&lt;/pre&gt;Here is how I set up my web app:&lt;br /&gt;&lt;br /&gt;To start with, I installed:&lt;pre&gt;jgem uninstall postgres-pr&lt;br /&gt;jgem install activerecord-jdbc-adapter&lt;br /&gt;jgem install jdbc-postgres&lt;/pre&gt;I then ran a generator to patch ActiveRecord:&lt;pre&gt;jruby script/generate jdbc&lt;/pre&gt;I was able to leave my database.yml file as-is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-5485931788028372298?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/5485931788028372298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/04/part-2-improved-jruby-results-for-ruby.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/5485931788028372298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/5485931788028372298'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/04/part-2-improved-jruby-results-for-ruby.html' title='Part 2: Improved JRuby results for Ruby 1.9.1 vs. JRuby 1.4.0 benchmark using cookingspace.com'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-2804318394416232058</id><published>2010-04-01T16:11:00.000-07:00</published><updated>2010-04-02T11:11:27.275-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>Ruby 1.9.1 about twice as fast as JRuby 1.4.0 for my cookingspace.com Rails app</title><content type='html'>&lt;i&gt;&lt;b&gt;Update:&lt;/b&gt; I got &lt;a href="http://www.rubyplanet.net/2010/04/part-2-improved-jruby-results-for-ruby.html" target="new"&gt;better JRuby results&lt;/a&gt; in a second benchmark using the JDBC adapters with JRuby (13.8 requests per second with JRuby and 15.8 requests per second with Ruby 1.9.1).&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;My &lt;a href="http://cookingspace.com" target="new"&gt;CookingSpace.com&lt;/a&gt; web app (something that I wrote for my own use) runs about twice as fast using Ruby 1.9.1. Also, instead of using mongrel (faster) I ran the Ruby 1.9.1 test using Webrick because I used Webrick for the JRuby test. The Apache Benchmark command line arguments used:&lt;pre&gt;ab -n 20 -c 5 http://127.0.0.1:3000/site/show_random_plan&lt;/pre&gt;I let the JRuby test "warm up" Hotspot-wise for several minutes before taking these measurements:&lt;h3&gt;JRuby 1.4.0 and Webrick&lt;/h3&gt;&lt;pre&gt;Total transferred:      125814 bytes&lt;br /&gt;HTML transferred:       114781 bytes&lt;br /&gt;Requests per second:    7.52 [#/sec] (mean)&lt;br /&gt;Time per request:       664.628 [ms] (mean)&lt;br /&gt;Time per request:       132.926 [ms] (mean, across all concurrent requests)&lt;br /&gt;Transfer rate:          46.22 [Kbytes/sec] received&lt;/pre&gt;&lt;h3&gt;Ruby 1.9.1 and Webrick&lt;/h3&gt;&lt;pre&gt;Total transferred:      123214 bytes&lt;br /&gt;HTML transferred:       111672 bytes&lt;br /&gt;Requests per second:    15.82 [#/sec] (mean)&lt;br /&gt;Time per request:       316.149 [ms] (mean)&lt;br /&gt;Time per request:       63.230 [ms] (mean, across all concurrent requests)&lt;br /&gt;Transfer rate:          95.15 [Kbytes/sec] received&lt;/pre&gt;Don't get me wrong: JRuby is an awesomely useful project, especially for me because I use my NLP libraries written in Java with JRuby - very convenient! And, the performance boost with Ruby 1.9.1 is fantastic for Rails web apps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-2804318394416232058?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/2804318394416232058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/04/ruby-191-about-twice-as-fast-as-jruby.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/2804318394416232058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/2804318394416232058'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/04/ruby-191-about-twice-as-fast-as-jruby.html' title='Ruby 1.9.1 about twice as fast as JRuby 1.4.0 for my cookingspace.com Rails app'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-6863835518913041001</id><published>2010-03-30T11:15:00.000-07:00</published><updated>2010-03-30T11:19:35.384-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cookingspace.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Heroku'/><title type='text'>I am almost done converting completely from Ruby 1.8.x</title><content type='html'>I don't have any deployed JRuby web applications right now, but except for &lt;a href="http://cookingspace.com" target="new"&gt;cookingspace.com&lt;/a&gt; I have everything deployed using Ruby 1.9.1 (I am having some problems with Heroku's Ruby 1.9.1 beta stack, and I expect to be redeployed soon.)&lt;br /&gt;&lt;br /&gt;The performance gain going from Ruby 1.8.x to 1.9.1 is substantial - well worth the effort!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-6863835518913041001?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/6863835518913041001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/03/i-am-almost-done-converting-completely.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/6863835518913041001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/6863835518913041001'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/03/i-am-almost-done-converting-completely.html' title='I am almost done converting completely from Ruby 1.8.x'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-2442900879790728712</id><published>2010-03-26T19:36:00.000-07:00</published><updated>2010-03-26T19:43:50.306-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MongoDB'/><category scheme='http://www.blogger.com/atom/ns#' term='Heroku'/><category scheme='http://www.blogger.com/atom/ns#' term='CouchDB'/><title type='text'>My 3 articles on Heroku for DevX</title><content type='html'>Pardon some self promotion, but you might find my 3 short articles interesting:&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.developer.com/lang/rubyrails/article.php/3859766/Take-Rails-to-the-Cloud-Deploying-a-Rails-Application-to-Heroku.htm" target="new"&gt;A short introduction to using Heroku&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.developer.com/lang/rubyrails/article.php/12159_3860651_2/A-Rails-Cloud-Implementation-Using-CouchDB-and-Heroku.htm" target="new"&gt;Heroku hosted Rails applications using remote CouchDB services&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.developer.com/lang/rubyrails/article.php/3860616/A-Rails-Cloud-Implementation-Using-MongoDB-and-Heroku" target="new"&gt;Heroku hosted Rails applications using remote MongoDB services&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;I must say that after spending a lot of time with CouchDB and a little time with Cassandra, I find that MongoDB is the best fit for what I need in a NoSQL style data store.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-2442900879790728712?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/2442900879790728712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/03/my-3-articles-on-heroku-for-devx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/2442900879790728712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/2442900879790728712'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/03/my-3-articles-on-heroku-for-devx.html' title='My 3 articles on Heroku for DevX'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-6928516247200489107</id><published>2010-03-26T19:16:00.000-07:00</published><updated>2010-03-26T19:33:25.114-07:00</updated><title type='text'>Switching to Ruby 1.9.x, part 2</title><content type='html'>A year ago last January I went to a lot of effort to switch my development system to version 1.9. I decided to switch back to Ruby 1.8.x because all of my work for customers used 1.8. Recently several things convinced me to try a complete switch to 1.9 (again): Heroku started supporting a curated stack using 1.9, I am only doing Rails work for one customer right now and their web app is fully 1.9 compatible, and after I finish writing my current book project (soon!) I have scheduled &lt;i&gt;lots&lt;/i&gt; of time for my own startup business and quite frankly want the performance boost of 1.9 for my own work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-6928516247200489107?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/6928516247200489107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/03/switching-to-ruby-19x-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/6928516247200489107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/6928516247200489107'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/03/switching-to-ruby-19x-part-2.html' title='Switching to Ruby 1.9.x, part 2'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-393305050638771003</id><published>2010-03-25T13:40:00.000-07:00</published><updated>2010-03-25T14:01:18.901-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sinatra'/><title type='text'>Sinatra 1.0 released</title><content type='html'>I have always enjoyed Sinatra for small (or medium size) web applications. Sometimes I want something simpler than Rails, really just needing routes, simple controller actions, and easy interface with Erb or Haml.&lt;br /&gt;&lt;br /&gt;When I first started using Ruby and later Rails I liked the relative simplicity of the codebases. I used to keep the Ruby 1.8.x source code handy for perusal. Same for early versions of Rails. Now with the various dialects of Ruby and the much larger Rails codebase I have given up any attempt to read the code. Using Ruby and Rails as software black boxes is too bad, but for me it is now a necessity. At least with Sinatra the codebase is still small and easy to understand.&lt;br /&gt;&lt;br /&gt;Also, while the Rails infrastructure of plugins and myriad options are great, for some projects it makes sense to just implement the bits that you need on top of Sinatra. Because Ruby is such a concise language it often takes very few lines of code to add in these application specific bits of functionality. You can end up with a much simpler system with advantages for both adding new features and easier for other people to use and modify the code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-393305050638771003?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/393305050638771003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/03/sinatra-10-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/393305050638771003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/393305050638771003'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/03/sinatra-10-released.html' title='Sinatra 1.0 released'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356149659891148051.post-3750489285247306618</id><published>2010-03-24T17:33:00.000-07:00</published><updated>2010-03-24T17:36:37.937-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><title type='text'>Welcome to RubyPlanet.net</title><content type='html'>I used to run a Ruby aggregator on the domain RubyPlanet.net but I decided to split the Ruby stuff off of my technology blog &lt;a href="http://blog.markwatson.com" target=new"&gt;blog.markwatson.com&lt;/a&gt; into a separate blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356149659891148051-3750489285247306618?l=www.rubyplanet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.rubyplanet.net/feeds/3750489285247306618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.rubyplanet.net/2010/03/welcome-to-rubyplanetnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/3750489285247306618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356149659891148051/posts/default/3750489285247306618'/><link rel='alternate' type='text/html' href='http://www.rubyplanet.net/2010/03/welcome-to-rubyplanetnet.html' title='Welcome to RubyPlanet.net'/><author><name>Mark Watson,  author and consultant</name><uri>http://www.blogger.com/profile/05514730816583918651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://2.bp.blogspot.com/_FOFPUsW3T3c/SWO4Tcrr14I/AAAAAAAACis/0vgJvc-yzh4/S220/Mark_hat_small.jpg'/></author><thr:total>0</thr:total></entry></feed>
