Upgrading Ruby in RVM
Screencast on simple way to upgrade existing Ruby in RVM.
Upgrading Ruby in RVM from Joon You on Vimeo.
Service-Oriented Design with Ruby and Rails
Paul Dix wrote a book titled “Service-Oriented Design with Ruby and Rails” and it’s available on Amazon at here. The book is also available on Safari, so check it out if you’re interested in developing API’s.
I’ve been working with SOA for years now and developed couple of API’s using both Rails and Sinatra. The book appears to cover both of them. I have not read the book cover to cover, but only glanced at certain sections. However, based on the sections I read, the book appears to be a good one.
Rails 3 App Deployment Observations
I already have two Rails 3 apps that are in production. While deploying these, I observed the following.
- Painfully obvious, you need to add a task to perform bundle install in your Capistrano script.
- When deploy hangs, it’s usually because Bundler is prompting for password.
- Haven’t found anything significant different from Rails 2.x.
- Ruby 1.9.2 really is much faster.
- While it solves a ton of problems, Bundler manages to piss me off on regular basis.
- Having multiple Ruby versions with Passenger is not a good idea. Besides, VPS’s are cheap these days.
I’m sure you guys are feeling the Capistrano screencast coming. However, the reason why I’m holding up the screencast is that PeepCode has that subject covered rather thoroughly. Check out Geoffrey’s good work, it’s only $9 and if you can’t invest that little in yourself, then I have nothing good to say.
Working From Home vs. Onsite
Since I use pomodoro, I decided to see how many pomodoros I can get done between working from home vs. in the office. For my experiment, I wanted to do it over a period of several days since in the course of human events… well, you get the idea.
I’ve heard some stories where people just couldn’t get anything done at home, especially with a wife and kids. Sure, they can be distracting, but I wouldn’t think about working at home unless I have a quiet office and sheltered from my personal life. I have my office in the basement where it’s quiet and somewhat sound-proofed from upstairs.
Well, to make the long story short, here’s the result. On average, I get little less than twice pomodoros done at home than in the office. You also have to be aware that I have two hour commute each way to NYC, so that’s 4 hours total that I can put to good use. Here are some of the factors I observed.
- At the office, I have very interesting conversations with others and get insights to other areas of development.
- I can bounce off ideas and get immediate feedbacks.
- When I’m home, I can get things done without much interruption and can take shorter breaks.
- I’m more comfortable at my home office. Usually puts me in good, productive mood.
- There are less meetings at home.
- The concentration level is extremely high at home.
- I miss people at home.
- People should turn on the video when using Skype.
I now firmly believe that companies should not choose just one over the other. Instead, there should be a balance between facetime and working remotely. Considering how expensive office spaces are, especially in NYC area, I think it’s silly to have a large offices for technology-related positions. We have Skype, IM, GoToMeeting/WebEx/Yugma, and VNC among other tools.
Rails 3.0.0 Now Official
Ok, so DHH announced that Rails is now 3.0.0. What this really means that I don’t have to use that annoying –pre to do install Rails, just gem install rails. I’ve been using Rails 3 on just about all my projects, so hopefully this just means they fixed the bugs.
Ruby 1.9.2 Released
Ruby 1.9.2 is now without beta or rc tag, but officially released. The only thing that I noticed that affects my code is that $: no longer includes current directory. Other than that, I’ve been using it for quite some time and love it.
Here’s the content from the release announcement:
Ruby 1.9.2 is mostly compatible with 1.9.1, except the
following changes:
* Many new methods
* New socket API (IPv6 support)
* New encodings
* Random class that supports various random number generators
* Time is reimplemented. There is no longer the year 2038 problem.
* some regexp enhancements
* $: no longer includes the current directory.
* dl is reimplemented on top of libffi.
* new psych library that wraps libyaml. You can use the library instead
of syck.
Daughter 3.0
Just became a father of a lovely girl for the third and final time. Will try to produce some cool stuff coming weeks when the dust settles.
I wonder how others deal with the fatherhood and geekery…
Rails 3 Documentation: Generate Your Own
In this screencast, I show you how to generate the api and guides for offline viewing.
Rails 3 Documentation: Generate Your Own from Joon You on Vimeo.
Meet Raphel
Ah, remember the days when we had to write programs to draw things and figure out the memory space for… Well, now that Flash is out of style, meet Raphael.
From their website:
Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web. If you want to create your own specific chart or image crop and rotate widget, for example, you can achieve it simply and easily with this library.
Raphaël [ˈrafēəl] uses the SVG W3C Recommendation and VML as a base for creating graphics. This means every graphical object you create is also a DOM object, so you can attach JavaScript event handlers or modify them later. Raphaël’s goal is to provide an adapter that will make drawing vector art compatible cross-browser and easy.
Raphaël currently supports Firefox 3.0+, Safari 3.0+, Opera 9.5+ and Internet Explorer 6.0+.
Here’s a short screencast of the demonstration I recorded.
Raphael Demo from Joon You on Vimeo.
Installing ImageMagick on Snow Leopard
Need to install ImageMagick on Snow Leopard? Checkout this and run it!
