build with purpose


Web Audio API for Media and Games

I'm working on an exciting game called Our Story where players collaboratively create narrated stories with GIFs. The game runs in the browser and incorporated AI TTS (Text To Speech) for narrating the stories players create. To ship this game I needed to handle web development complexity and one of the largest hurdles I found was handling audio. The Problem Web Audio is a challenging problem because of the vast quantity of devices you need to support.

The Redux Saga Black Box

I've recently been learning React and Redux Sagas for a new project I'm joining. It's been fun transitioning from Angular and learning what project organization looks like without an opinionated framework. As I looked through the code I started to notice that yield is used a lot to generate values and pass those values to the Redux store using redux-saga. I haven't worked with yield yet so I needed to do some research.

Building an Event Source System - Part 2

Continuing my previous post, we'll be working to setup an event source system using NodeJS. Event source systems utilize a common log of events to manipulate system state in a repeatable and scalable way. By recording state changes in logs, the system doesn't need to rely on a database requests to gather state information. This has a variety of benefits that I've included previously. I enjoy working with the JavaScript/TypeScript, React, and NodeJS stack and find these tools very expressive.

Building an Event Source System - Part 1

I love working on the full stack of technologies involved with developing an application. It's satisfying to design and implement a feature on the backend and request the data from the frontend application to render out something awesome. It's very rewarding but it can be a long process to set everything up. It's often a boilerplate experience and I often find myself doing a lot more devops than development. This got me looking for alternative ways to setup servers and systems that could aleviate this need to iterate on systems rather than programs.

Using Babel in 2017

The JavaScript environment has been changing rapidly in recent years. As new frameworks and technologies draw more developers to JavaScript, those professionals find ways to improve the language. These rapid changes are difficult for browsers and standards to keep up with. This adaption time leads developers to implement language features that can compile back to the core language without having to wait for standards to catch up. The most widely supported version of JavaScript is the ECMAScript 5 (ES5) standard.

Logic Eludes Javascript Frameworks

I've recently been unfortunate enough to work on the impending migration away from AngularJS toward the new Angular. Eventually AngularJS will be officially deprecated by the Angular team once Angular 2+ overtakes its predecessor. When that happens, security vulnerabilities may keep AngularJS from being used in production apps. This means now is the time to get out! I've recently been learning Angular with TypeScript and just want to say I really hate every single build system I've seen thus far.

Javascript Object Creation

Object creation in Javascript is dead simple from a data type perspective: var obj = {a: 'Ben', b: 'Hofferber', c: 'Boise, ID'} typeof obj // object The datatype is straightforward and is really easy to implement. With JSON we can directly pass these objects into our javascript applications to be used immediately. I've even gone a bit further to look at the byte size of the object using a node library object-sizeof:

Simply Learning React

Learning React has always seemed daunting to me. I've downloaded several ‘quickstart’ projects in the past and quickly become overwhelmed. With the huge chain of dependencies I wasn't able to get a clear picture of how it all worked. So I dropped it. I still used Ramda and other functional programming libraries, but I just passed React by because it wasn't approachable. Then Redux‘s author, Dan Abramov made a post titled “You Might Not Need Redux” in September.