Alan Shaw


14 posts

TUNE-ing super fast static websites

26 September 2017

Yep, we did what is generally accepted to be a “bad idea” by many developers and built a static site generator slash CMS for our clients. I don’t blame them. Getting it right is really difficult, it’s such a mammoth task, and building a concise set of features is dependent on your particular use cases. now on Dat

26 September 2017

Earlier this week we put the TABLEFLIP website on Dat so it’s now available p2p. If you’re using the Beaker Browser you can put dat:// in your URL bar and a peer should serve you our website.

Starting out with React Native

29 September 2016

We used React Native for the first time recently. This second edition of the TABLEFLIP podcast focuses on some of the gotchas and need-to-knows about developing mobile apps with React Native.

Robot Laws

29 September 2016

In the third edition of the TABLEFLIP podcast, our Bernard Mordan muses on the EU General Data Protection regulation and what this means for governance over the robots.

Server Side Rendering with React and Redux

23 May 2016

We all want it - the Holy Grail of having your app render server side to give your users a quicker initial rendering and to help SEO. The problem is that React doesn’t fit with the traditional model for server side rendering, in fact React turns it on it’s head.

Client-side or server-side rendering, why choose? The story of KitMapper

15 February 2016

Last week we officially launched the website - a peer to peer AV kit rental service. You own some kit you don’t use all the time and would like to make some money from it, or you need some kit for a project you’re working on. It’s a great idea and we’re really proud to be part of it.

P2P DDP using PeerJS WebRTC

11 October 2015

Saturday and Sunday was the Meteor 2015 worldwide hackathon. I had a great time and so did everyone who attended. In between running around helping with code and distributing tea and coffee I managed to put together a cool little proof of concept: P2P DDP.

Function parameters

06 January 2015

If the param is optional, put it in an options object. If it’s required, it should be a function param. It’s a fairly simple rule to follow and will save you and your API consumers a load of work. I’ve seen functions that take a bunch of parameters written like this: function sendMail (options) {}. Where options is an object that contains all the parameters needed to send an email. I’ve got a few problems with this, and I’ll explain why.

The difference between module.exports and exports

02 August 2014

There is no magic. Your module code is sandwiched between the two items in this array, and eval’d:

NativeModule.wrapper = [
  '(function (exports, require, module, __filename, __dirname) { ',

Building a dnode rpc server in ~50 lines of code

15 April 2014

“dnode is asynchronous rpc over websockets, using just javascript and callbacks.

Nodebots of London at Arduino Day 2014

31 March 2014

Tableflip, along with Nodebots of London co-organiser Alex Potsides stormed the London College of Communication in celebration of international Arduino Day 2014 (#ArduinoD14).

Integrating passportjs with keystonejs

13 March 2014

“This is a simple guide on how to integrate passportjs with keystonejs as an AJAX endpoint using persistent sessions. We found Jed’s helpful post on google groups and decided to write down the steps for this particular use case.

Test the ideas

22 January 2014

Ideas are king, but not all of them are royalty material.

Node streams are hard

22 January 2014

“Node streams are hard. So I decided to learn them. Then I found out they weren’t hard, I just didn’t know about them yet. I updated markdown-pdf to have a streaming interface. It’s a farse really, because marked doesn’t have a streaming interface so markdown-pdf has to buffer all the markdown into memory before it is converted to HTML. That’s pretty dull, but I’m working on the assumption that in the future there’ll be a streaming markdown to HTML parser I can pipe the markdown into.