Exploring New Technologies

Our latest hack day at New Bamboo saw the team turn a piece of cardboard into a high tech 3D viewer, magic up a landscape of fractal trees, and dip into JavaScript, Haskell, Dart and Meteor.

Hack days are an important part of our culture, giving us time to tinker with new technologies, projects, and ideas, and enabling us to team up with colleagues we don’t often work with. I blogged previously about what goes on at a hack day, but I thought I’d share an update on our latest experiments and discoveries.

Tom’s goal for the day (we have two Toms) was to write something in Haskell, a functional programming language. Together with Tony and Claudio, he’s been taking an online course in functional programming, so the hack day gave him a chance to take it further. He wrote a version of grep (a tool for searching for strings in files) without using any libraries, and then moved on to write a program to do fuzzy file matching. “There was a new language and tool chain to learn,” he said, “but I felt much more comfortable with functional programming at the end of the day.”

Iain

Iain brought a breath of fresh air to the office with his tree-filled landscapes, generated using vanilla JavaScript. He was inspired by a talk by Bret Victor called Inventing on Principle, which argued that people should write code by experimentation. One of the examples showed how a different a computer-generated tree could look if you changed just a few key variables (and by being able to change them interactively you can discover beautiful new designs for trees). It prompted Iain to think about generating images of trees, using fractals but with an element of randomness in every variable to make each one look unique. “Visual things like this work well as a Hack Day project”, he said. “I chose this because it was a good fit for a project I could do in a day.”

Masha

Masha took us into the third dimension using Google Cardboard. It’s one of those kick-self ideas that really makes you wonder why nobody thought of it sooner: it uses a cardboard viewer to turn a smartphone into a stereoscopic viewer, showing a different picture to each eye. As a result, you get a realistic impression of depth, which enables virtual reality applications to be made cost-effectively, using an inexpensive phone and a cardboard box. She set up the viewer and tried the sample applications, which have given us all something new to think about.

Tony spent the day experimenting with Dart, a web programming language developed by Google. He used Dart together with three.js, a JavaScript library that enables you to do 3D graphics, and he was working towards developing a 3D maze game. He was pleased with the ease with which the webpage could be manipulated in Dart using the built-in libraries. The package management in the Dart Editor makes it easier to combine different JavaScript libraries than usual, he said.

Dan worked with Meteor, a web framework that takes care of the back end communications for you. He started to use it to develop a web-based Spotify client that would enable you to add or play tracks. So far, he’s got the code querying the Spotify database and displaying the results on screen using the public API. In the future, he plans to look at using authentication to retrieve and edit playlists, so we can all cue up some music for Friday afternoons. We’ll probably get by without Taylor Swift. Just about.

Neil looked into the challenge of publisher subscription patterns in Javascript, which enable you to trigger an action by attaching it to another event (subscribing to it). By changing the way that functions are called and executed with his nowthen.js library, he created more readable and expressable code. All his code examples were about Dan, Iain and Sroop making cakes, which left me feeling a bit hungry.

If you’ve got any tips for the team or have any cool discoveries to share, we’d love to hear about them. Leave us a comment below!

More on New Bamboo Blog !!