New Bamboo Web Development

Bamboo blog. Our thoughts on web technology.


Introducing Pusher - adding the RTW to our existing internets

about 3 years ago by Max Williams

Today we're announcing Pusher, a new realtime client push service. Sign up for the beta now

People seem to be very excited about the Realtime web at the moment, and all the opportunities that exist. However, for all the potential, everyone seems to be thinking of the same old examples of usage.

What it doesn't have to be

The real time web is not about adding chat on your website. It's not really about having stock tickers. It isn't about providing a page where people can continuously see something happening in real time. It isn't really about little multiplayer games. At least, it doesn't have to be.

Read more...

Copying Code from Textmate to Keynote with Style

about 3 years ago by Bartosz Blimke

A popular way of inserting code samples into Keynote presentations
is to take a screenshot in Textmate and then insert the image inside a slide. The advantage over normal copy&paste is that the code looks exactly the same as in TextMate, including font style and highlighting.

This technique has also disadvantages. Code can't be modified in Keynote so to do any last minute fixes, you have to edit a code in Textmate and repeat the whole screenshot procedure again.
Another problem is resizing. Since it's not a vector image, text loses quality when it's resized.

Read more...

The JS model layer

about 3 years ago by Max Williams

Adding a Model layer to your Javascript

To build the best possible JS RIA, we need to build a data or model layer. This needs to be handled in a way which goes beyond simply embedding the data in the HTML, and also beyond relying on simple collections of hashes and arrays.

A web server needs to send data to the client, as part of an initial "platform" which the client can build up the UI and behaviour from. A client therefore holds onto and manages this snapshot of "state" which it has received from the server.

Read more...

Rendering views in Javascript

about 3 years ago by Max Williams

This is possibly the hardest part of a Javascript MVC framework to standardise on. More than anywhere else, it is open to interpretation and differences of opinion. I will briefly run through a number of different options moving towards the kind of thing I like.

One of the key things to think about first when deciding on your javascript strategy is accessibility and SEO. This will determine whether you need the majority of your DOM to be rendered by the server, and whether you are going to present different parts of your application as different "pages".

Read more...

A JSON event-based convention for WebSockets

over 3 years ago by Ismael

HTML5 WebSockets are cool. Given a compliant server - and browser -, all you need to do is instantiate your socket object and start listening to server-pushed data.

1 var socket = new WebSocket('ws://socket.server.com');
2   
3   socket.onmessage = function(evt){
4     alert("I got data: " + evt.data)
5   }
How awesome is that?! Your browser is now officially hooked-up to the server by a persistent, firewall-safe, bidirectional TCP connection. The server can send data to the browser at any time, via predefined callbacks, while talking back to the server is as straight-fordward as:

Read more...

Let them eat State

over 3 years ago by Max Williams

After getting a bit of feedback about my last post, I realised it may not be clear to people why I am advocating a move shifting application complexity into the client-side tier. Some of the points I am going to be looking at have been covered here, though this doesn't expressly mention the role of state in all of this.

In the past, there has been a noticeable level of scorn for the "View" part in web-based-MVC architecture. Phrases such as "putting too much logic in the view" are often apt, but can be unhelpful when looking at the bigger picture. This has led to people trying to write UI code/behaviour from the comfort of their area of familiarity - Server code.

Read more...

Why your Javascript apps need more structure

over 3 years ago by Max Williams

There are several aspects to building javascript UIs, and you need to do a bit of planning beforehand if you want them to be successful. 2010 is set to be the year of Javascript's ascendancy, and you can't ignore it. You also need to start using it properly (if you aren't already). We have evolved beyond the level of chucking event handlers inline in views and it is not possible to just hope for the best as things get more complicated.

Read more...

Always base your practices on your values

over 3 years ago by Laurie

Agile decomposes into values, principles and practices. The values are very high level, the practices are day to day implementation, and the principles tie them together. Applying the practices without understanding the principles is a big problem. Unless you prioritise and focus on the principles you believe in, changing your day to day behaviour will not bring the results you want.

So rather than explain what you need to do to be Agile, in this article I want to talk about how and why I would prioritise the principles. Placing a priority on empowered teams and frequent delivery of working software will, in my opinion, get the best work from a team while allowing them to grow as developers.

Read more...

On-the-fly image handling with Dragonfly

over 3 years ago by Mark

There are some fantastic gems and plugins out there for handling images in Rails apps,
such as Paperclip, Attachment-fu, etc., that on the whole are well-written and do a pretty good job.

However, something has always narked me when using them.

In general, to add a preview_image to, say, your Album model, you do something like this:

1 class Album
2   some_macro_method :preview_image,
3     :thumbnails => {
4       :listing => "300x200",
5       :thumb => "100x100!",
6       :small => "50x50#"
7     }
8 end

Read more...

January London Javascript meetup at New Bamboo (Node.js, WebSocket, XMPP)

over 3 years ago by Makoto Inoue

We are proud to announce that New Bamboo is providing our office as the venue for January London Javascript meetup on 21st Jan (Thursday). The night is focused on node.js.

It started when Craig Webster suggested giving a introductory talk about node.js. Since then, Craig, Peter Marks(the organiser of the meetup), and I have been arranging the meetup, so I am very glad that this is finally happening.

Read more...

See all posts