The Bamboo Blog

Our thoughts on agile development and web technology

  1. Przemek Hocke

    Create, test and deploy rails blog in 15 minutes?


    Can you create a working application in 15 minutes?

    I believe that yes indeed you can do that. The questions are: How?
    What are the downsides?.

    The how is pretty much using right tools for the job. For most of my
    projects it means this:

    -Ruby 1.9.2
    -Ruby on rails 3.1 +
    -Twitter Bootstrap
    -Ubuntu on a remote server

    …and maybe a few more.

    The mantra of design patterns is “Separate what changes from the
    things that stay the same”. So what should be the pattern for a quick
    build script of a rails application?

    Sure - you’ve got scaffolds, but I think they are not the answer to
    all of the problems. In fact they don’t help with most of the setup
    tasks that you perform to create basic rails app.

    Continue reading

  2. Pablo Brasero

    Ridiculously simple Ajax uploads with FormData


    Added the Android inconsistencies section


    Back in June 2010, I published a blog post detailing how to perform Ajax file uploads from your HTML forms. The result worked pretty well, but there was still some room for browser vendors to make things even simpler for us.

    Turns out, they have. The specific improvement that made this possible is the FormData interface, first introduced in Safari 5, and later in Chrome 7 and Firefox 4.

    Continue reading

  3. Gwyn Morfey

    Designing For Speed [Coding]


    They’re called sprints because they’re fast.

    Agile development is designed for quality and flexibility. The fact that it’s also highly efficient is a bonus. There’s a huge variance in developer efficiency, even among capable and motivated people, and the combination of Rails and a strong process means that we really get things done.

    Sprint planning

    On the surface, planning out and committing to a one-week sprint is about giving the product owner - the client - some certainty about what they’ll be able to ship. But as a developer, it provides a powerful focus.

    Taking this to the extreme, I was able to write Relentless Memory in a matter of hours because I knew exactly what I wanted to build, why, and how I was going to do it. And this was under adverse circumstances: normally my early mornings aren’t good for anything but drinking tea and reading Hacker News while I wait to wake up, but with narrow, clear direction they became highly productive.

    Continue reading

  4. Oliver Nightingale

    Experiments with the HTML5 Audio Data API


    About a month ago we had a hack day at New Bamboo, a day where all the bambinos were free to work on any kind of project they wanted to. I decided to experiment with the HTML5 Audio Data Api, and, (code) is the outcome of that experiment. is a small app that allows you to listen to music available on SoundCloud. Whilst the audio is playing it draws a visualisation of the current song using HTML5 canvas. It uses a server component, powered by Node.js, to convert SoundCloud’s streaming MP3 audio into the OGG format - which Firefox supports.

    Audio Data API

    Browser specifics

    Continue reading

  5. Makoto Inoue

    Translation of Matz Q&A article after joining Heroku


    Note from translator:

    This is a translation of an article from “PublicKey” - Enterprise IT x Cloud Computing x Web Technology / Blog.

    Mr Junichi Niino kindly allowed me to translate his original article from Japanese to English.

    Also, special thanks to @knowtheory for editing my translation.

    Title: “I am looking forward to accelerating Ruby’s progress” - Q&A with Matz regarding joining Heroku as a chief architect.

    Date: 13th July 2011


    As mentioned in my previous article, It has been announced that Yukihiro Matsumoto (Matz) is joining Heroku as Chief Architect of Ruby. I asked Matz about the story behind his future role via email.

    Continue reading

  6. Oliver Nightingale

    Degradable JavaScript Applications Using HTML5 pushState


    What is the problem?

    Using the location hash to keep track of current page state and enable back button navigation is more and more common with large, full featured, client side JavaScript apps. Whilst the behaviour this gives is definitely an improvement to the user experience, implementing this with the location hash has some shortcomings.

    Thankfully, as with everything else on the web, HTML5 is here to solve all your problems, with two methods and an event, pushState, replaceState & onpopstate.

    What is pushState?

    pushState & replaceState

    The history object gains two new methods, pushState & replaceState, that allow us to change the current location of the browser without making an HTTP request. These new locations are stored in the browsers history so that both the back and forward button work as expected.

    Continue reading

  7. Makoto Inoue

    Learning Japanese the Rubyist way


    • Introduction
    • Step 1: How to read Japanese characters
    • Step 2: Japanese and OO
    • Step 3: Japanese and functional
    • Step 4: Writing Japanese programming language in Ruby
    • Summary
    • Ruby Advent Calendar


    Have you ever thought about learning Japanese, but it looks too difficult to learn?
    Surprisingly, Japanese and Ruby share some common features and concepts. This is a shortcut version of my presentation called “Japanese and Ruby” which I presented at LRUG.

    When you finish reading this post, hopefully you find Japanese language less magical, and may even add “Learn Japanese” to one of your 2011 new year resolutions.

    Learning a new language always has a bit of steep learning curve. Go and get some coffee before you start!!

    Continue reading

  8. Makoto Inoue

    Ruby divide at RubyKaigi 2010 and what can you do as a Rubyist? (Part 1)


    Ruby divide at RubyKaigi 2010 and what can you do as a Rubyist? (Part 1)


    It is almost 2 weeks since RubyKaigi finished. For full details of the conference, check out Jake Scruggs’ near real time report.

    Ruby Kaigi was one of the most memorable conferences I have ever attended. There were countless efforts by volunteer staff to make the conference as enjoyable as possible. I met lots of interesting people and enjoyed every conversation in the conference hall, hallways, and Izakaya . All the topics discussed there were very thought provoking.

    Continue reading

  9. Max Williams

    Adding awesome mini views to your web apps


    In a couple of our internal apps, we use a UI design paradigm that we affectionately call an “awesome bar”. I really like these, and I think they make many types of applications much more useful and intuitive. While they have generally been hard to create in web apps, the introduction of canvas and inline SVG has made them a synch to put together. I see a lot of great examples of canvas and SVG that are absolutely mind-bending to look at, but very few examples which enhance the traditional applications and websites we use on a day-to-day basis.

    I won’t claim to have invented these, but I was reminded of how cool they are recently when I read this post: I will give a brief explanation of what these are with some examples, why I think they rock, and some sample code.

    Continue reading