AMT Blog

Shim – a node.js app simplifying Cross Browser/ Device Testing

Shim is a node.js app, created by Chris Marstall of Boston Globe, in order to allow simultaneous, synced web surfing across a variety of devices and browsers. Shim was created as a timesaving way to see how BostonGlobe’s web sites render on a variety of gadgets & browsers. It works by tweaking Wifi to enable the easy synchronization of browsing sessions across several devices, with no client configuration needed.

This makes cross-browser and cross-device testing much simpler. With one click, it's possible to see a page rendered on devices of varying screen size, input technology, etc.

Visualize a group of people browsing using a variety of devices, all connected to a single Wifi access point that's running Shim. Whenever one of them clicks on a link, all the others will be automatically redirected to the linked page. 

There is no device-specific configuration required, so even simple gadgets can synchronize. We've tested this so far with iPad, iPhone, Nexus S, Samsung Galaxy Tab, Motorola Xoom, Kindle 3, Barnes & Noble Color Nook, Windows Phone 7 and a variety of desktop browsers, but it should work on most current devices that have a Javascript-enabled web browser.

Chris achieved this by turning on Internet Sharing on a stock Mac Book Pro, then modifying it at the system level to act as a transparent proxy. The laptop intercepts all wifi traffic and redirects it to a custom node.js server, which inserts a javascript "shim" at the head of each web page that is visited. The shim, once loaded in a device's browser, opens and maintains a socket connection to the server. Whenever a new page is requested, the page's url is broadcast to all connected browsers, which then redirect themselves to that url, keeping all devices in sync.

Requirements

Shim must be installed on a 10.6+ Mac with both wired and wireless network interfaces (for example, a newer stock MacBook). The wired interface will be used to communicate with the internet; the wireless interface will be used to serve pages to devices.

Cinderella - Ultimate development environment for open source hacking on Mac OSX

Cinderella-osx-development
Cinderella is a fully managed development environment for open source hacking on Mac OSX. It's powered by homebrew and chef. You only need Xcode to get started.

Cinderella builds everything up in ~/Developer. It won't stomp on any of your current installations so you don't have to commit your entire machine immediately. It's simple to rollback if you really want to.

Various Development environment Cinderella Provides are:

Read more…

Don't like to miss out any of our posts? Do 

11
To Posterous, Love Metalab