Building Blocks & Learning Experiences

Browsing Posts in Rails

If you happen to have a <select> tag with its multiple attribute set, you can unselect them in Cucumber by adding this step: When /^(?:|I )unselect “([^”]*)” from “([^”]*)”$/ do |value, field|   unselect(value, :from => field) end

The uservoice gem provides a nice easy way to integrate your Rails app with the UserVoice user feedback service. If you’re using Heroku to deploy your Rails app, there are two things that will provide speed bumps. The first is that, short of storing your UserVoice API key in your git repository, there’s no way […]

This post is a reminder to myself, that when I upgrade my webrat gem, I need to replace its vendor/selenium-server.jar. If I forget, then Selenium Remote Control will most likely break because the version of selenium-server.jar included with webrat is old, and doesn’t support current versions of Firefox.

In the process of setting up metric_fu, I found that, one way or another, saikuro’s output wasn’t getting into the correct place. I’ll spare you the long story, and just show the config settings I had to put into my Rakefile to get things working: config.saikuro = { :output_directory => “#{ENV[“CC_BUILD_ARTIFACTS”]}/scratch/saikuro”, :input_directory => [“app\” –input_directory […]

There are a number of different ways to handle custom error pages in rails. Most use rails’s rescue_from method. This approach allows your error pages to be dynamically rendered in response to errors. The way I see it, if my site has just encountered an error, I want to immediately go into damage control mode. […]

I was having all sorts of problems upgrading Mildred to Rails 2.1.  A lot of the errors I was seeing were like the following: ArgumentError in ‘TracksController downloading a track by admin should not be a redirection’ wrong number of arguments (0 for 1) /Users/ewollesen/src/mildred/app/models/track.rb:52:in `title’ /Users/ewollesen/src/mildred/app/models/track.rb:52:in `filename’ /Users/ewollesen/src/mildred/app/controllers/tracks_controller.rb:49:in `download’ ./spec/controllers/tracks_controller_spec.rb:82: It took me a […]

Rails’s JavaScript generator provides some great functionality. But unfortunately, one of the things it can’t do for you, is generate JavaScript conditionally, based on the page’s content. The reason is simply that the page’s content doesn’t exist at the time the conditional in your code was executed. I wanted to do something like the following: […]

No, I’m not going to say that using MySQL with Ruby on Rails is a bad thing. It works fine. But I do think that using the mysql command line tool to modify your Rails databases is a no-no. The reason is simple, Rails does a lot of work to abstract database details away, so […]

How QBeat Works

No comments

QBeat is one piece of the Mildred project. Specifically, QBeat handles the selection of tracks to play. There are a number of subsytems within QBeat that allow tracks to be selected and played. I’ll start with a list of all the pertinent subsystems, then I’ll describe the main responsibilities of each subsystem. Subsystems QBeat MPD […]

For mildred, I have a weighting system that determines which track to queue next. I call this system QBeat. I often try various tweaks to the algorithm for track weighting; trying and get that “perfect mix.” Debugging this system has proven to be a challenge, largely due simply to the amount of time it takes […]