Running a Rails app in production using rbenv, Apache and Passenger

Recently, I upgraded NZ Walks Info to Rails 3 and Ruby 1.9.3. In order to run this new setup successfully, I needed to upgrade the Ruby version on the server. I chose ruby-build and the rbenv Ruby Version Manager to do so and would like to share some simple instructions that worked for me.

Read More...

Pow and Rails 2.3.x apps

Pow has just been released by 37signals:

Knock Out Rails & Rack Apps Like a Superhero.
Pow is a zero-config Rack server for Mac OS X. Have it serving your apps locally in under a minute.

Usually, there’s no configuration needed at all, but in order to get my old Rails 2.3.x apps running, I needed to “rackup” all of these. Following the Rails Guides instructions, I had to create a config.ru file with the following contents:

# RAILS_ROOT/config.ru
require "config/environment"

use Rails::Rack::LogTailer
use Rails::Rack::Static
run ActionController::Dispatcher.new

Then I was good to go.
Unless…

Read More...

One month after the Christchurch earthquake

We have been lucky. We weren’t in Christchurch when the 6.3 earthquake hit just before 1pm on Tuesday, Feb. 22nd 2011. We were hiking through the mountains near Glenorchy/Queenstown (approx. 400km away to the south-west).
A hut warden was present on this track and he told us on Wednesday morning what has happened. He also offered us to make one call via radio (there’s no cell-phone coverage in NZ’s mountains). The connection was short, but we managed to reach our neighbours to ask if they are ok and if their and our houses are still standing.
Everything was ok, and so we went ahead with the normal plan and continued walking for the next couple of days.

Only after we came back on Saturday, we realized the degree of destruction this earthquake caused. It was terrible to see all the pictures.

Read More...
The best software should be understated and unobtrusive.

jkleske:

Behind the TEDTalk 2010 – video by mssng peces (via altnytterfarlig)

(this post was reblogged from jkleske)
[Birds] are not all smart - there are too many species and variations for that - but the smart ones are as impressive as a toddler who can fly.
Alex Vlack in the epilogue to Andrew Zuckerman’s “Bird”

Feature Branches

When I am creating a new feature for an app, I sometimes realize halfway through that the way I am building it, is not the proper way to do so. Or the specification changes. Or there was a misunderstanding. Or there’s an unexpected bug that needs to be fixed and go onto the production server as soon as possible.
Then, when you did all development on the main branch (we use Git, so that’s the master branch in that case), undoing things and/or doing a quick deployment can get very inconvenient. You can’t just deploy a quick bug fix, because all other half-finished features and fixes would have to be deployed, too. You can’t easily revert the existing commits for that feature, especially if the commits are mixed with all the other commits of unrelated features.

Read More...
For example, the word “Google” is usually the top query at other search engines, and words like “Yahoo” and “Bing” score high on Google. Why, oh why, do people search for a website if they already know its name? Why not just type, say, www.bing.com into the URL field?

Mental Models (Jakob Nielsen’s Alertbox)

Have you ever asked yourself this question? Have you ever given computer support via phone? Have you ever wondered why “normal” people do not understand the simplest most obvious things when it comes to software? I know I did!
This article will give you some explanations.

Here’s part of the explanation for the question above:

The reason is that many users have never formed an accurate model of how the “type-in boxes” on their screen function. When they type stuff into a box, they sometimes get where they want to go. What to type where and exactly how each type-in box functions, however, are often beyond their ken.

(this post was reblogged from maniacalrage)
My practice is rooted in minimalism. If someone’s really trying to get something across to someone else, it’s about simplification. Even more than simplification, it’s about rejecting anything nonessential. Edit ruthlessly.
(this post was reblogged from onethingwell)

Mix & Mash Recap

I couldn’t believe my eyes when the winners of the 2010 Mix and Mash competition were announced last Friday on Twitter. I read my name for the price of the “Best Visitor Experience using DOC Data” and the “Supreme Mashup” categories (the “Supreme Mashup” is the highest price).
This is more than I have hoped for and a great honour.

The Mix and Mash competition is about creating useful and beautiful mashups and remixes with open data from New Zealand institutions.

My entry is a website to find information about all NZ walking/tramping/hiking tracks: http://nzwalksinfo.co.nz/.

Read More...

“Why Ruby?” - RubyConf X Keynote (by David Heinemeier Hansson)

Great talk. Good points and entertaining.

I believe:

  • The user interface should drive design decisions because it’s the only thing that customers can see.
  • New insights appear at any stage of a project, so the development process should optimize for change.
  • UI is software, so designers should know how to program.
  • Programmers and designers collaborate better when they work in parallel on a shared code base.