Building on Ethereum: Part 1 – Decisions

In this series, I’m discussing the phases of a project encompassing a non-trivial set of Ethereum smart contracts and the React/Redux application that communicates with them.  The project, called In-App Pro Shop, aims to help Ethereum developers easily support in-app purchases as ERC-721 Non-fungible Tokens (NFTs). Part 1 – Decisions Part 2 – Functionality Part 3 – Setup Read More …

Multi-server Chat in Node Without a Database

A few years back, I was consulting for a client who had a Node-based instant messaging feature which had worked pretty well at first. But the number of users grew, and then it didn’t. Even though they had a number of load-balanced server instances running, they found that the Redis database they were using Read More …

Modeling Domain Entities with Universal JavaScript

Entities are the crown jewels of any application. All of those thousands of lines of client and server code have but one purpose: To persist, present, and allow the user to manipulate instances of domain model entities. Give your entities the respect they deserve. Once you’ve worked out what they are for your domain, building and 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 …

WebGL Performance Challenge: Render Thirty Frames per Second and Send them to the Server

In my last update, I discussed using Socket.io for the implementation of persistent server connections in our music visualizer app. This week, we inch closer to our ultimate goal of rendering thirty frames per second with Three.js and sending them to the to the server for rendering to video. Great strides were made, but I also Read More …

Persistent Connections with Node.js and Socket.io

Last week, I reported on an important milestone in our music visualizer project: Successful creation (from static files) of an HD video (with audio) using Node.js and FFMpeg. Our ultimate goal: To generate thirty client-rendered WebGL frames per second, push them across a socket to a Node.js microservice, create a video, and upload it to YouTube. Sounds crazy? You bet. But it’s a Read More …

Creating Video on the Server in Node.js

In the previous article, I detailed how we arrived at the idea of rendering our music visualizer’s WebGL frames in the web browser, and shipping them to the server for assembly into a final video. In this article I’ll be discussing the early progress of my exploration into that approach. Setting up a Host Read More …