SHIM

Download it from GitHub!

Shim was developed by the Boston Globe Media Lab (twitter: @GlobeLab) as a timesaving way to see how its 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 easier. With one click, it's possible to see a page rendered on devices of varying screen size, input technology, etc. Imagine 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. We've 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.