Building on Ethereum: Part 5 – Writing Tests

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, and it was written over the last half of 2018 as a way of learning about the Read More …

Building on Ethereum: Part 3 – Setup and Test

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, and it was written over the last half of 2018 as a way of learning about the Read More …

Building on Ethereum: Part 2 – Functionality

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, and it was written over the last half of 2018 as a way of learning about the Read More …

Namespacing Redux Action Type Constant Values

Most everyone agrees that defining constants for your Redux action types is good idea. If you use string literals, it’s all too easy to misspell one and wonder why your reducer isn’t responding. If you use a constant, your IDE can point out that gaffe right away. Declaring Action Type Constants The 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 …

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 …

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 …

Should I Render Three.js to Video on the Client or Server?

I’m working on an exciting new geegaw with a business partner and old friend in Seattle. It’s a 3D music visualizer built in HTML5 / WebGL using PureMVC, React, and Three.js. We already have a solid, extendable client framework, and some great stuff going on in the rendered scene, which the user can Read More …