Wednesday May 06, 2009
Rails Conf 2009 Day 3 Trip Report
Attended a great talk by Michael
Bleigh on Twitter
on Rails. He has
built a gem, TwitterAuth,
that uses Twitter as authentication provider (OAuth or HTTP Basic)
which allows to to quickly and easily create
Twitter applications in Rails. In Michael's words "TwitterAuth makes Twitter Rails
apps stupid simple".
The talk built Twistener - a
Twitter application in Rails that shows how many tweepl are having a
conversation about you. A hosted version of
the application is available at twisteners.heroku.com.
The slides
and end result
of the code are always helpful.
In
a post-talk conversation he mentioned that all the gems are pure Ruby.
Any body willing to re-build the application and trying using JRuby and
GlassFish ?
And then attended Rails
3: Stepping off of the Golden Path by a "morally loose,
cheese eating surrender monkey", aka Matt Aimonetti :)
What are you going to get in Rails 3 ?
Rails Conf 2009 Day 3 - Chris's Keynote

An informal survey this morning at Rails Conf 2009
keynote showed:
40% Rails developers in startup
30% Rails developers in consulting
30% Rails developers work in internal projects
Engine Yard got a sponsor keynote slot and announced Flex - a cloud
computing platform on EC2 to host Rails applications. They also showed
one-button self-healing clusters. One of the speakers was particularly
scared (reminds me of my early days) and IRC#railsconf
had a pool of $125 to hug him on the stage :) Anyway, read more details
here.
The highlight of the morning was keynote by Chris Wanstrath (@defunkt). I
took multiple notes during the keynote but the transcript
has
all the details. The first part of the talk has good tips on how to
create a successful blog such as blog personality, template, killer
name and a sleek design, sparse side bar, consistency and structure,
and many others.
There was a good bashing of SourceForge towards 60% in the talk. Chris
gave a suggestion to SourceForge:
They should cut their
registration process down to a single page, remove the 200 character
"please host my project" plea, be more lenient on the categorization,
suggest an open source license for you, then allow you to change any of
these things after your project has been created.
And there are other interesting ones too. Read the full text
and enjoy!
Here were some of the Q&As at the end of keynote ...
Q. What was your inspiration for github ?
A. Inspiration is coding, doing open source software all the time,
downloading patches, relative paths were getitng in the way to coding.
Source forge registration page is too long. github is very simple for
anything code related that you want to put there.
Q. You develop these interesting pieces of software, have a job, play
guitar,
create pieces of music, drum music, how you do this in one lifetime ?
A. I outsource most of it. All of us do it, I post my music and code on
the Internet, watch a lot of TV. I'm into sharing on github. Don't have
a better work ethic, just talk a lot.
Q. What do you watch on the TV ?
A. Legend of the secret
Q. Built a bunch of tools used by non-Rubyists, how can we promote Ruby
there ?
A. RubyGems is one reason I fell in love with Ruby. Remove the friction
and lower the barrier to entry.
Q. Focus github around the code/community, it helps around the people,
opposite of Source Forge/Ruby Forge
A. Github is like facebook for code development.
Technorati: conf
railsconf
git github lasvegas
rubyonrails
Posted by Arun Gupta in General | Comments[0]
|
|
|
|
|
Tuesday May 05, 2009
Rails Conf 2009 Day 2 Trip Report
This is a follow up post from David's
keynote.
| Attended Women
in Rails
panel discussion. The panel, Sarah
Mei, Lori
Olson, and Desi
McAdam (from L to R), had a very interesting discussion
around
the genuine problems and possible solutions of involving more women in
Rails community. |
![]() |
I presented on Develop with Pleasure, Deploy with Fun: GlassFish and NetBeans for a better Rails experience, slides here. The several concepts in the talk are explained in the following bullets: |
![]() |
The next talk of the day was JRuby: State of the Art |
| Later in the evening, Brian Helmkamp, Aman Gupta, Luis Navena, Pat Allan, Dan Kubb, and John Nunemaker were awarded Ruby Heroes Award! |
![]() |
And the keynote by Tim Ferris,
lets not talk about it ;-) I edited pictures, authored my blog, caught
up
on email/RSS during the keynote. #railconf on IRC and twitter
were way more fun! Check the live ratings. "1" was the lowest rating that could be given anyway! |
Sea Change Affinity - Why JRuby/GlassFish ?
At Rails Conf
2009, Jay
McGaffigan from Sea
Change talked about why they choose JRuby/GlassFish for their
product Affinity.
Here are some of the reasons he quoted:
Posted by Arun Gupta in web2.0 | Comments[1]
|
|
|
|
| Rails Conf 2009 Day 2 - DHH Keynote
Rails Conf Day 2 start with DHH's
keynote. The room was packed (close to 1200 attendees) and SRO. It was
interesting to know that 70% of the attendees are first timers and only
a handful have attended for all 4 years in a row. This is my second
in the US.
Here are the notes from DHH's keynotes:
Posted by Arun Gupta in General | Comments[4]
|
|
|
|
| Rails Conf 2009, Las Vegas - Day 2 Run

Eight of us started at 6:15am this morning from the Hilton Lobby, looped
around Las Vegas
Country Club and another short loop in the neighborhood for a
total of 5.2 miles in 43:18 mins.
Interested in running together while attending Rails Conf
? Follow @railsConfRunner
and meet us at 6:15am in the Hilton lobby.
And don't forget your Tequilas - it's Cinco de
Mayo!
Technorati: conf
railsconf
lasvegas
running
hilton
Posted by Arun Gupta in Running | Comments[0]
|
|
|
|
|
Monday May 04, 2009
Rails Conf 2009 - Day 1 Trip Report
Rails Conf 2009 started this morning. The first day consists of morning
and afternoon tutorials.
I attended Nick Sieger's JRuby
on Rails tutorial, the slides are available.
A survey in the room showed:
| run
lambda { |env| [ 200, { 'Content-Length' => '2', 'Content-Type' => 'text/html', }, ["hi"] ] } |
| ~/samples/railsconf/sinatra/basic-rack
>~/tools/jruby/bin/jruby
-S rackup [2009-05-04 13:40:18] INFO WEBrick 1.3.1 [2009-05-04 13:40:18] INFO ruby 1.8.6 (2009-03-16) [java] [2009-05-04 13:40:18] INFO WEBrick::HTTPServer#start: pid=90964 port=9292 127.0.0.1 - - [04/May/2009 13:40:27] "GET / HTTP/1.1" 200 2 0.0160 127.0.0.1 - - [04/May/2009 13:40:27] "GET /favicon.ico HTTP/1.1" 200 2 0.0060 127.0.0.1 - - [04/May/2009 13:40:30] "GET /favicon.ico HTTP/1.1" 200 2 0.0100 |
| App
= lambda { |env| [ 200, { 'Content-Length' => '2', 'Content-Type' => 'text/html', }, ["hi"] ] } |
| ~/samples/railsconf/sinatra/basic-rack
>~/tools/jruby/bin/jruby
-S rackup app.rb [2009-05-04 13:43:57] INFO WEBrick 1.3.1 [2009-05-04 13:43:57] INFO ruby 1.8.6 (2009-03-16) [java] [2009-05-04 13:43:57] INFO WEBrick::HTTPServer#start: pid=90990 port=9292 127.0.0.1 - - [04/May/2009 13:44:09] "GET / HTTP/1.1" 200 2 0.0110 |
| class
BasicRack def call(env) body = "Hello from a class" [ 200, { 'Content-Length' => body.size.to_s, 'Content-Type' => 'text/html', }, [body] ] end end run BasicRack.new |

| ~/samples/railsconf/sinatra/basic-rack
>~/tools/jruby/bin/jruby -S gem install shotgun JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL Successfully installed configuration-0.0.5 Successfully installed launchy-0.3.3 Successfully installed shotgun-0.2 3 gems installed Installing ri documentation for launchy-0.3.3... Installing RDoc documentation for launchy-0.3.3... |
| ~/samples/railsconf/sinatra/basic-rack
>~/tools/jruby/bin/jruby -J-Djruby.fork.enabled=true -S shotgun [2009-05-04 13:55:46] INFO WEBrick 1.3.1 [2009-05-04 13:55:46] INFO ruby 1.8.6 (2009-03-16) [java] == Shotgun starting Rack::Handler::WEBrick on localhost:9393 [2009-05-04 13:55:46] INFO WEBrick::HTTPServer#start: pid=91089 port=9393 |
| class
BasicRack def call(env) body = if env["PATH_INFO"] == "/foo" "in foo" else "in other" end [ 200, { 'Content-Length' => body.size.to_s, 'Content-Type' => 'text/html', }, [body] ] end end run BasicRack.new |
| class
BasicRackApp def call(env) body = "hello from app" [ 200, { 'Content-Length' => body.size.to_s, 'Content-Type' => 'text/html', }, [body] ] end end class MyMiddleware def initialize(app) @app = app end def call(env) @app.call(env) end end use MyMiddleware run BasicRackApp.new |
| use Rack::CommonLogger |
|
def call(env) status, headers, body = @app.call(env) body.map! { |part| part.upcase} [status, headers, body] end |
| require
'sinatra' |
| ~/samples/railsconf/sinatra/basic-sinatra
>~/tools/jruby/bin/jruby
-rubygems basic-sinatra.rb == Sinatra/0.9.1.1 has taken the stage on 4567 for development with backup from WEBrick [2009-05-04 14:40:14] INFO WEBrick 1.3.1 [2009-05-04 14:40:14] INFO ruby 1.8.6 (2009-03-16) [java] [2009-05-04 14:40:14] INFO WEBrick::HTTPServer#start: pid=91396 port=4567 |
| require
'rubygems' require 'sinatra' not_found do 'hi from other' end get '/foo' do 'hi from foo' end |
| require
'rubygems' require 'sinatra' get '/env' do env.inspect end |
| require
'rubygems' require 'sinatra' get '/' do end post '/' do end put '/' do end delete '/' do end |
| require
'rubygems' require 'sinatra' get '/' do content_type "application/json" { "foo" => "goo" }.to_json end |
| <html> <body> Hello form Sinatra + ERB </body> </html> |
| require
'rubygems' require 'sinatra' get '/' do erb :index end |
| require
'rubygems' require 'sinatra' require 'haml' get '/' do haml :index end |
| %html %body %h1 Hello from HAML |
| require
'rubygems' require 'sinatra' require 'haml' get '/' do erb :index end use_in_file_templates! __END__ @@ index <html> <body> Hello form Sinatra + ERB in file </body> </html> |
| require
'rubygems' require 'sinatra' require 'haml' get '/' do erb :index end get '/foo' do erb :foo end use_in_file_templates! __END__ @@ index <html> <body> Hello form Sinatra + ERB in file </body> </html> @@ foo <h1>FOO!</h1> |
| require
'rubygems' require 'sinatra' require 'haml' helpers do end |
| require
'rubygems' require 'sinatra' require 'haml' module helpers def self.dosomething(arg) end end get '/' do Helpers.dosomething end |
Running at Rails Conf, Las Vegas 2009
Six of us from @railsConfRunner
ran together around Las
Vegas Hilton this morning.

6.4 miles, 57:04 minutes.
Interested in running together ?
Join us at 6:15am in the Hilton lobby tomorrow morning! Here is a
picture of the running group from this morning:
Thanks to Jed (2nd from right) for organizing the run, and of course
all the running
buddies to make it a fun run :)
Technorati: conf
railsconf
lasvegas
hilton
running
Posted by Arun Gupta in Running | Comments[0]
|
|
|
|
| TOTD #81: How to configure "database.yml" to be used with both JRuby and MRI ?
In JRuby-on-Rails
tutorial at Rails
Conf 2009, Nick
Sieger shared a nice little tip on how to configure
"database.yml" to be usable with both JRuby and MRI:
| <% jdbc = defined?(JRUBY_VERSION) ? 'jdbc' : ''
%> development: adapter: <%= jdbc %>mysql encoding: utf8 reconnect: false database: myapp_development pool: 5 username: root password: socket: /tmp/mysql.sock # ... |
Posted by Arun Gupta in General | Comments[0]
|
|
|
|
|
Monday April 27, 2009
GlassFish, NetBeans, and Project Kenai at Rails Conf 2009
Did you know that ...
![]() |
|
![]() |
Develop
with pleasure, Deploy with Fun: GlassFish and NetBeans for a better
Rails experience Tuesday, May 5th, 2009, 1:50pm Pavilion 1 |
| And you'll get to meet Project Kenai team, they form the foundation for Sun's connected developer experience. Read about their participation here and meet them to learn about NetBeans and Kenai integration. | ![]() |
Posted by Arun Gupta in General | Comments[5]
|
|
|
|
|
Tuesday September 23, 2008
LOTD #9: Slides for Deploying and Monitoring Ruby on Rails Tutorial @ Rails Conf Europe 2008
During Rails
Conf Europe 2008
Day 1 I attended an excellent tutorial on Deploying
and Monitoring Ruby on Rails. The session very clearly
explained the several deployment options with Rails. My notes from the
session are here
and the slides are now available.
Here are couple of snapshots from the slide:


The complete set of slides from Rails Conf Europe 2008 are available here.
Technorati: conf
railsconf
glassfish
deployment
rubyonrails
berlin
Posted by Arun Gupta in web2.0 | Comments[0]
|
|
|
|
|
Friday September 05, 2008
Rails Conf Europe 2008 - Day 3
Last day of Rails Conf Europe 2008 (Day
1 & Day
2), and it's finally over!
David Black's opening session talked about Ruby
and Rails Symposium: Versions, Implementations, and the Future.
Here is a brief summary of MRI Ruby versions:
Thursday September 04, 2008
Rails Conf Europe 2008 - Day 2
Rails
Conf Europe 2008 Day 1 was mostly about tutorials.
On Day 2, David Black gave the opening session. After some logistics he
introduced the favorite
son of Chicago - David Heinemeier Hansson. The theme of
DHH's session was "Legacy Software". Now that Rails is 5 years old, the
discussions of legacy is indeed meaningful. He showed some code from BaseCamp
and showed how refactoring can deal with legacy. I love his statement
"What you write today will become legacy". That is indeed so true
especially given the fact that Rails community is now thinking about
legacy. There is Rails 1.2.x, 2.0.x, 2.1 and 2.2 coming up - it was
bound to happen. Overall a great session and love the honesty!
In JRuby:
The Other Red Meat by Tom Enebo, the highlights were:
| 10 Rails instances | Edge Rails | |
| Startup Memory | 200 Mb | 50 Mb |
| Heap (at end) | 233 Mb | 55 Mb |
Had a great 45 minutes run by Spree
Westward in
downtown Berlin. Thanks Thomas for the recommendation!

It's very clean with underpasses for most of the streets. And even the
2 streets I had to cross were narrow with little traffic @ 7am :)
Technorati: conf
railsconf
running
spree berlin
Posted by Arun Gupta in Running | Comments[0]
|
|
|
|
|
Wednesday September 03, 2008
Rails Conf Europe 2008 - End of Tutorial Day
Sep
2, 2008 was the Tutorials Day @ Rails Conf Europe.
I attended Renegade's
Guide to Hacking Rails Internals (partly) and Deploying
and Monitoring Ruby on Rails. The first session did exactly
what it says - explained the complete internals, digging deep into the
code and how to hack them to
meet your needs. I thoroughly enjoyed the second tutorial as it covered
the deployment in detail and somewhat monitoring.
The first part covered the common Application Server and Web/Proxy
Servers used for Rails deployment. It explained the different
deployment scenarios and their pros/cons. The Application Servers
(along with their detailed notes) are:
Today's Page Hits: 4629
Total # blog entries: 1002