Latest from the Bamboo Blog

We've moved! max

15 Jun 2009 | View comments

Our new offices

After a long period of searching and deliberating, we have finally moved offices!

We have been looking for the right home over the last couple of years, and feel the new place is well worth the wait. We are now based on Exmouth Market, a lovely buzzing area close to Farringdon. There are plenty of reasons to swing past if you are near - not least excellent food at the stalls in the street. If you are around, feel free to pop up and say hi.

The full address is:

3rd Floor, Gensurco House, 46A Rosebery Avenue, London, EC1R 4RP (map)

There are some photos of the place, and us moving in here. Plus we’ve also make a few tweaks to our website which includes adding recent clients and some more information about how we work.

Over the past year we have been working in collaboration with Made by Many on numerous projects. Most recently this has included the FiveFWD site for Channel 5 Broadcasting, which was deployed in partnership with Claranet.

On Wednesday 22nd of April we’re going to be holding a Ruby on Rails Technology Briefing session at Claranet’s offices (address below) in London.

The session will be an informal event designed for web developers, online publishers, technology strategists and business managers to come together to learn more about Ruby on Rails as a rapidly evolving framework and explore its relevance to doing business online.

Key speeches for the evening include:

  • Rails Inside Claranet: Chris Cooke - Claranet’s Rails developer & managed application hosting guru - talks about his experiences in developing Claranet’s (very large) Rails application – an internal system which is being used across all of our European offices.

  • Making the Business Case for Rails: Made by Many co-founder talks about his experiences in selling Rails as a strategic asset to both internal stakeholders and clients.

  • Best Practice for deploying and managing Rails: Laurie Young from New Bamboo will talk about their experiences in deploying and managing one of Channel Five’s largest websites – and recommends best practice for managing Rails in hosted environments.

…and importantly, drinks will follow the speeches in a bar around the corner.

Event Details:

Claranet Ltd, 21 Southampton Row, London WC1B 5HA Wednesday 22nd April

  • 6:30 Arrive, registration & refreshments
  • 7:00 Welcome & Briefing
  • 8:30 Q&A
  • 8:45 Drinks

Seats are limited, register here: http://www.uk.clara.net/rails-tech-briefing

So with the release of Rails 2.3 hot off the presses, it is time to start upgrading some of our rails applications. While the process has got much easier since the 0.x days, some files still need to be updated in the application itself.

To help with the upgrade path the rails command prompts you to overwrite, keep or diff with the latest files. However this isn’t always what you want - quite often you want to merge changes instead of just overwriting them.

So I thought I would experiment with a new method, using the power of git to handle the merging of the old and new. First I created a branch to do the upgrade in, so that I can commit and make sure everything is working before I merge back into master.

git branch rails_upgrade

Secondly, I create a blank branch imaginatively named fresh_rails_2.3.2. Then we remove all of the files from this branch to give us a blank slate.

git symbolic-ref HEAD refs/heads/fresh_rails_2.3.2
git rm -r --cached .
rm -rf *
rm .*

The next step is to generate a blank rails application (assuming you have the latest gems installed) and commit it to our detached branch.

rails .
git commit -m 'Generate Rails v.2.3.2 skeleton.'

Now we have the latest and greatest files we can merge back into our rails_upgrade branch.

git co rails_upgrade
git merge fresh_rails_2.3.2

Unless you have barely touched your application since it was previously generated, there should now be a number of conflicts that you need to resolve. Fix each one in turn and add it to the staging area. For example:

mate config/environment.rb
# Fix the conflicts and save
git add config/environment.rb

Note: If you have previously ignored any files from you application (config/database.yml for example) you will need to remove them from the staging area otherwise they will be added back into your project.

git reset config/database.yml

With the merge complete you can run your tests to make sure the merge was a success. If everything passes you can now merge the upgrade back into the master branch.

rake spec
rake features
git commit
git co master
git merge rails_upgrade

GitX shows my history looking like this. Overall I think the experiment worked quite well and it was defiantly useful to be able to manually pick and choose which bits of the new files I wanted.

Working the Mic gwyn

23 Feb 2009 | View comments

Sixty-Second Scrum gwyn

06 Feb 2009 | View comments