Holiday project!

The day before yesterday I registered a domain name for a new project and yesterday (while recovering from a really upset stomach) I wrote three A5 pages with a database model, sketchy requirements and possible features. All from very basic ones (“It shall be possible to register a new user account”) to some that are way into the future (“A user can customize font and color”). Maybe five of those requirements will make the cut for a first version of the site…

I’ve promised myself to write the project in Ruby on Rails (not a PHP hack like folkmun.se) and do my best to use TDD or maybe even BDD. If I go for BDD there’s an RSpec plugin for Ruby on Rails and I’ve found some interesting reading, for example Developing a Rails model using BDD and RSpec, Part 1.

So, will it fly? Evan Williams lists a number of questions for evaluation of product ideas:

  • Tractability: How difficult will it be to launch a worthwhile version 1.0?
  • Obviousness: Is it clear why people should use it?
  • Deepness: How much value can you ultimately deliver?
  • Wideness: How many people may ultimately use it?
  • Discoverability: How will people learn about your product?
  • Monetizability: How hard will it be to extract the money?
  • Personally Compelling: Do you really want it to exist in the world?

Old and new Ruby and Agile books

A bunch of computer books I had ordered arrived to the office last week. Since I’m working on-site at my client I’m not at the office very often so didn’t pick them up until today. The books are:

  • Agile Software Development With Scrum by Mike A. Beedle and Ken Schwaber
  • Agile Web Development With Rails (2nd ed.) by Dave Thomas, David Heinemeier and Leon Breedt
  • Everyday Scripting With Ruby by Brian Marick
  • Programming Ruby (2nd ed.) by Dave Thomas, Chad Fowler and Andy Hunt
  • User Stories Applied by Mike Cohn

Unfortunately two of them are already old. A version of Programming Ruby updated for Ruby 1.9 now exists in PDF format and Agile Web Development With Rails will most likely be updated due to the recent 2.0 release of Ruby on Rails. Maybe Everyday Scripting With Ruby will be updated too soon, but I hope that all of them will still be of use to me. I only use Ruby and Ruby on Rails for my personal projects anyway, but I think that both of them — the language and the framework — make too much impact to be ignored.

Speaking of Ruby on Rails: I read that Hemnet, the major Swedish site for real estate ads, is using Ruby on Rails. Cool!

I bought Agile Software Development With Scrum in order to read one of the major works about Scrum. I really ought to have read it before by Scrum Master certification but I can admit I didn’t. Now it’s time to make up for that.

The reason for buying User Stories Applied is that I want to improve my skills in handling customer requirements. My current client is very fond of use cases but I don’t think that diminishes the value of the book in any way.

MySQL support for UTF-8 in Ruby on Rails

As a follow-up to my post about MySQL support for UTF-8 in PHP, here is the very same information for Ruby on Rails. In Rails it is a simple configuration entry in config/database.yml. I use the development configuration as an example:

development:
  adapter: mysql
  database: dev
  username: dev
  password: secret
  socket: /var/run/mysqld/mysqld.sock
  encoding: UTF8

UTF-8 is obviously configured with the encoding setting. Don’t forget to update the test and production databases too!