Table XI Blog


Rails vs. The Client Side: XI to Eye

XI to Eye logoTwo completely different ways have emerged for using Rails as the back-end to a rich client-side JavaScript application:

  • The 37Signals "Russian Doll" approach, used in Basecamp Next, where the server generally returns HTML to the client. This approach uses aggressive caching and a little bit of JavaScript glue to keep the application fast.
  • The "Rails API" approach, where the server generally returns JSON to the client, and a JavaScript MVC framework handles the actual display.

Which of these will work for you? For this week's XI to Eye, I've posted my RailsConf presentation on the topic.

Also, if you like this talk, my book Master Space and Time With JavaScript has much more detailed information on using JavaScript effectively, including a work in progress on Ember.js.

Watch live video from Confreaks - Live Streaming on

Want access to more articles like this?  Subscribe now to stay up to date on the latest from Table XI 

Help, I’m Stuck! What Do I Test Next?

XI To Eye logoI was stuck. I didn't know what to do for the next XI to Eye video. Then I realized that being stuck is a topic.

What do you do when you are stuck in a TDD process? How do you decide where to start when testing? How can you pick what to text next? Why do birds suddenly appear every time you are near? Some of these questions are answered in this video, which also talks about why tests are valuable, and how to approach using tests to drive your application design.

If you like this, you may be interested in Master Space and Time With JavaScript, which covers testing, among many other JavaScript topics.

Want access to more articles like this?  Subscribe now to stay up to date on the latest from Table XI 

Writing Readable Code

As web developers, we read code all day. Many of us have used style guides to govern how we structure our code. In this video, Noel Rappin talks about what guides the style guides -- basic principles about what makes code readable and why readable code is easier to work with.

Read more

Separating from the DOM, a JavaScript Story

In this video tutorial Noel Rappin talks through a JavaScript refactoring session, where we separate our domain logic from the DOM.

Read more

JavaScript or Nondescript: 11 Creatively-Challenged Project Names

Coffee mug with a message that reads "Nondescript Coffee Receptacle"

The 1996 version of me would never believe 2012. I've got Linux on my cell phone, we have an African-American (and Chicagoan!) president, but most improbably, I'm preoccupied by software projects centered around a language I used to loathe: JavaScript.

As cool as JavaScript projects can be, you'd never know it from their names. Is it a competition to see who can come up with the least interesting moniker? An unconscious tribute to the 'Self' language, one of JavaScript's original inspirations? Or maybe nobody puts much thought into naming, choosing to channel their creativity into their code?

While pondering that, I came up with my top 11 favorite nondescript JavaScript project names:

11. Prototype

This is the one that got the ball rolling. Named after a universal JavaScript object property, Prototype was the first serious JavaScript library you probably ever used (let's pretend those "disable right-click so people can't steal your precious images" scripts never happened). jQuery may have displaced Prototype in the web developer's toolbox, but its dreary, Google-hostile name choice continues to inspire.

10. Node

Server-side JavaScript was going nowhere until someone gave it a bland enough name. Ever heard of SpidermonkeyRhino? No? How about Node?

9. Processing

I expect some pushback here since the Processing project is not limited to JavaScript, but the fact that something so very nondescript found a home in the JavaScript community is telling.

8. Seriously


7. Underscore

It could have been worse. At least it's not called _.

Read more

Will Node.js Make You a Rockstar?

node.js logoProbably not, but it might help you write a kickass scalable web application that will have your fellow hackers asking for your autograph.

Node.js has been getting a lot of buzz recently, but you're probably in the minority if you have a good idea of how it works and what it's good for. Node is a server-side JavaScript engine. It takes advantage of the event-driven programming model of JavaScript for use on the server-side. You're probably familiar with binding JavaScript handlers to client-side events like button clicks, mouseovers, etc. Node allows you to bind functionality to server-side events like a new connection being made or data being received. Node is non-blocking, so it can handle a large number of concurrent connections on the same machine.

Here are a few practical applications of Node.js:

A Successful Web Front-End Refactor

Klout is a company that measures people's influence based on their activity in social media. We make use of their API at Table XI. Klout was powering a web interface to give users access to their scores with a LAMP (Linux/Apache/MySQL/PHP) stack. They found this was not scaling well as more users accessed the application. They rebuilt this interface using Node.js., and it's now handling tens of thousands of concurrent users on two servers.

Read more: "The Tech Behind"


The social media site Yammer is using Node.js to handle API requests from developers, allowing them to tackle a large capacity of concurrent requests. The API requests are made via JavaScript AJAX calls so both the client and server side are written in the same language.

Read more: "Who Is Using Node.js and Why? Yammer, Boucoup, Proxlet and Yahoo" Read more

CoffeeScript Makes JavaScript Go Down Smooth

Coffee Script logo.CoffeeScript is a great little language that compiles down to readable, clean JavaScript. When we were recently in Costa Rica I gave a lightning talk on some of CoffeeScript's cooler features. It's great on the surface, since this:

$("#foo").click(function () {
bar( "some text #{ something / 2 } a unit" );

is more cleanly written as this:

$("#foo").click ->
bar("some text " + something / 2 + "a unit" )

But as I've been writing more JavaScript, there are a handful of other neat things I find myself using a lot. Here are a few: Read more

Table XI

625 W Adams St
19th floor
Chicago, IL 60661


Give your team new problem-solving techniques with our innovating workshops and check out our event series.

GoodFirms Badge