Using Firebase Cloud Functions to Manage a Compound Key Index

In Firebase, Google’s ‘NoSQL’ database, you can declare indexing by any of a node’s children in order to optimize retrieval by that field. For instance, under a node called ‘artists’ where the keys are the artist’s ‘uid’ and the values are artist objects, the default indexing is by uid. While you could retrieve the Read More …

Testing with Jasmine and Async/Await

Today, I wanted to write some integration tests against a Firebase database using Jasmine. Connecting to Firebase from Node is just as easy as it is from a browser. I’ve done it before on a previous version of the Firebase SDK, so I didn’t expect a lot of problems there. It was really Read More …

Page Fight

Immerse or Die is a tough-love book review project begun by Canadian author and editor Jefferson Smith. Page Fight, this reader-reaction companion app, is a collaboration between Jefferson and myself. He was the consulting editor for my first novel, and came up with the idea for the project. Together, we’ve spent a lot of time thinking about Read More …

Break Free of the Realtime Jail: Audio-modulated HD Video with Three.js

Previously, in the ongoing chronicle of our quest to build a music visualizer for recording artists, I discussed my attempt to render thirty audio-modulated frames per second with Three.js and send them to the server in realtime for compiling into a video. What I discovered was that this is impossible with ordinary hardware, Read More …