Posted by chad
on October 16, 2008
Charles and Thomas couldn’t be here in person so they’re skyping and controlling the screen to give an overview with running Ruby on Java. Good talk overall, though slightly marred by skype connection difficulties. One bright spot was the talk was a great advertisement for Yugma – the web conferencing tool that integrates with skype and makes remote screen sharing easier. If you’ve run WebEx a lot, you may want to take a look at Yugma.
- They gave a good overview of performance in jruby vs just ruby, particularly with the ways the Hotspot VM optimizes Java code.
- Developers are unaware of how far Java performance has come.
- The Hotspot VM has had 500 man-years of development
- JRuby on Rails 2.2 – with threadsafe rails and glassfish shows impressive memory improvements
- 1000 requests @ 55MB of usage vs 1000 requests @ 233 MB w/Rails 2.0.2
Posted by chad
on October 16, 2008
The Phusion Passenger guys (Hongli and Ninh) are speaking right now at Rails Summit Latin America. They just unveiled their ‘surprise announcement’ – a messaging platform that looks like the love child of IRC, Twitter, and Campfire called yummi.us. It’s in private Beta right now, but you can contact Ninh at ninh @ phusion.nl if you want an invite.
- You can have public and private channels
- It’s integrated with twitter so updates to yummius will show up on your Twitter feed
- It has syntax highlighting for most languages so pasted in code will be readable. Support for most of the languages TextMate supports
- You can attach files – you will have a large amount of storage space but they have not decided how much yet
- The focus seems to be for developers as there’s a Rails plugin for embedding a channel in your own site, and the ability to lock down the channels means you can use it like Campfire as a collaboration tool.
Posted by chad
on October 15, 2008
Chris Wanstrath, one of the authors of github, spoke to end the sessions today.
- Serious full time projects such as Rubinius and Merb started as side-projects
Started working for trucking logistics company, which had no version control, no configuration, but thought that he could use yaml. But there was no PHP parser for yaml, so he wrote spyk – yaml parser in php. Which helped him get a job at GameSpot, which, with recognition from other side projects, got him a job building Chowhound in Rails.
Get rid of time sinks – stop wasting your time reading RSS
- take a month off from rss reading
- let other people do the filtering for you
- the big stuff will find you
Don’t bother with books on practice and theory
- apply the Jerry Seinfeld calendar theory
- just do a little a day
- you want to see that x in the calendar because you worked on your side project for a while week
- now you can’t say that you don’t have time because you have plenty of time
You don’t need a good idea
- play with a new framework, like sinatra, rhino or johnson, or master your editor, etc.
- vi users, learn why people love something like emacs and use that information against them
- alternatively, do something hard.
- github started as a side project they worked on, only on sundays.
- scratch your own itch
- github took 3 months
- used github to self-host github and their ‘day job’ git repository.
Posted by chad
on October 15, 2008
You will be the same person in five years as you are today except for the people you meet and the books you read. I can’t remember who said that, but you could describe that sentence as the late 2008 rails community theme (aside from the other ‘will I have a job in 2009′ theme.)
I’ll go back and cover the Chris Wanstrath talk in a bit. Generally I’ve noticed that the topic of the season is brand building. Jay Fields has talked extensively about his efforts and how it lead to a better job with a bigger salary. Chad Fowler talked eloquently about being notable. And ‘Dr Nic’ – Nic Williams – talked about ‘the future you’. The future you who will be thankful that you blogged at work about your code, and invested in an open source library or two, and got feedback on your code. Hyperbolically, Dr. Nic says that it’s worth it, even if you get fired – the future you will be grateful.
Posted by chad
on October 15, 2008
So far the highlight has been Chad Fowler’s address. Particularly, what does it mean to be a Ruby/Rails developer in a bad economy?
- Market yourself. Be remarkable. From the book Purple Cow – “remarkable means something that is remarked on”
- You have a moral imperative to market yourself. If you are 5 times better at programming and you’re doing tech support because you don’t market yourself, you’re robbing from your company.
- Java’s competitive advantage is the number of developers. In a bad economy, this takes away Java’s main competitive advantage, because the number of available programmers goes up. In a sense, this means it’s a great time to promote the benefits of Rails to your organization. There are more developers available, and Rails is more efficient at accomplishing the same task.
- Used the example of Charlie Parker, the jazz musician. He was both critical and criticized, which means
- doing something sufficiently interesting that people were talking about him, and
- doing something interesting and important enough that he scared people
I’ll add other notes as I have time later today.
Posted by chad
on October 15, 2008
We’re 1/2 of a day into the conference. So far i can’t say it’s been live blogging but from here on out i’ll post every hour or so.
DHH spoke via skype as he is in Sweden, and took questions. He covered some of the questions that seem to always come up when he speaks, like not having a roadmap, why open source projects shouldn’t promise release dates, etc. But he had a few good answers to some audience questions. For smaller applications, he recommended Phusion Passenger, which he noted was just simple and took away a lot of the burden of deployment. For larger applications he recommnds taking the approach they took with Basecamp, where they use apache, HAproxy, and mongrel. (I could be wrong on the apache part)
He also said the Rails community needs some sort of site that allows for the review, listing, and ranking of plugins. I do believe there are a few sites that try to do this, but no one mentioned them.
Chad Fowler had a great talk, i’ll cover that in the next post.
Posted by chad
on October 15, 2008
I’ll be live-blogging the conference as it progresses today. Most of the speakers are in English and they have simultaneous translation into English, Spanish and Portuguese as appropriate.
Posted by chad
on August 04, 2008
I’m stepping out on ruby. I started researching the language and realized that it is missing a few things. First, a good MVC framework (sorry Erlyweb). Second, a company like 37signals promoting the language. Third, a central place to read news about the language. So, I decided to do something about it, and I don’t have time to write a web framework or start a hosted software company. But I did start The Best Erlang News Blog on The Web: Erlang Inside.
Posted by chad
on August 04, 2008
Looks like i picked the right time to move to South America. October 15th and 16th in São Paulo!
Posted by chad
on July 04, 2008
We migrated our main production server from mongrel to passenger today. Here are the things we learned from the process:
- Don’t forget to set the apache APXS2 variable – the error won’t show up until you try to start apache after thinking that you successfully installed passenger. You will receive an error like this:
httpd: Syntax error on line 54 of /usr/local/apache2/conf/httpd.conf: API module structure 'passenger_module' in
file /usr/local/passenger/passenger-2.0.1/ext/apache2/mod_passenger.so is garbled - expected signature 41503232 but saw 41503230 -perhaps this is not an Apache module DSO, or was compiled for a different Apache version?
- You can remove all of the rewrite rules from the apache conf file, but keep this part:
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
- You’ll need to keep any apache rewrite rules related to displaying a ‘maintenance’ file.
What follows is the old mongrel apache configuration file, and the new one:
NameVirtualHost 10.x.x.x:80
ServerName myserver
DocumentRoot /var/www/apps/myapp/current/public
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
# Configure mongrel_cluster
BalancerMember http://127.0.0.1:8300
BalancerMember http://127.0.0.1:8301
BalancerMember http://127.0.0.1:8302
BalancerMember http://127.0.0.1:8303
BalancerMember http://127.0.0.1:8304
BalancerMember http://127.0.0.1:8305
RewriteEngine On
# Prevent access to .svn directories
# RewriteRule ^(.*/)?\.svn/ - [F,L]
# ErrorDocument 403 "Access Forbidden"
# Check for maintenance file and redirect all requests
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /system/maintenance.html [L]
# Rewrite index to check for static
RewriteRule ^/$ /index.html [QSA]
# Rewrite to check for Rails cached page
RewriteRule ^([^.]+)$ $1.html [QSA]
# Redirect all non-static requests to cluster
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://myapp_cluster%{REQUEST_URI} [P,QSA,L]
# Deflate
AddOutputFilterByType DEFLATE text/html text/plain text/xml
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
ErrorLog /var/log/apache2/myapp.com-error_log
CustomLog /var/log/apache2/myapp.com-access_log combined
To this with passenger apache configuration file:
NameVirtualHost 10.x.x.x:80
ServerName myapp
DocumentRoot /var/www/apps/myapp/current/public
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
# Check for maintenance file and redirect all requests
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /system/maintenance.html [L]
ErrorLog /var/log/apache2/myapp.com-error_log
CustomLog /var/log/apache2/myapp.com-access_log combined