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 …

Imperative vs Declarative JavaScript

I was recently doing a JavaScript code review and came across a chunk of classic imperative code (a big ol’ for loop) and thought, here’s an opportunity to improve the code by making it more declarative. While I was pleased with the result, I wasn’t 100% certain how much (or even if) the code was Read More …

Building on Ethereum: Part 1 – Decisions

In this series, I’ll be 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 Read More …

Are You Building a Game on Ethereum Blockchain?

If so, are you considering having in-app purchases? That’s going to be a whole bunch of work, I can tell you because I’ve spent the last 6 months writing and testing the contracts and front end to support the functionality. It seemed crazy for every game to build its own system for in-app purchases Read More …

Controlling Web Audio With React and Redux Middleware

Let’s Build a TouchTone Keypad! If you’ve built React/Redux applications before, you know there is a standard pattern of uni-directional data flow. The UI dispatches an action. A reducer handles the action, returning a new application state. The UI reorganizes itself accordingly. But what if you need a Redux action to trigger 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 …

Building a React-based Chat Client with Redux

Let’s build a non-trivial app with React and then refactor it to use Redux! Much of the advice you get regarding the addition of Redux to your React projects is to only do so once they reach a certain size, because of the extra complexity Redux adds. That’s certainly fair. But it will leave 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 …

Don’t Believe the Hype, It’s a SQL – A Brief Guide to the NoSQL Landscape

SQL. It’s so last century, amirite? Although it was created around ten years earlier, Structured Query Language (SQL) really began to catch hold in the commercial world during the mid-eighties, and brought with it some great improvements over what had come before. Probably the most important feature was transactionality, which enabled concurrency and Read More …