Blog

Extracting Soundfonts from a Roland TD-11 October 18, 2020

In this post I discuss using Python to extract high quality sound samples and build a reusable soundfont from an electronic drum kit. I own a Roland TD-11 (pictured) which allows me to practice my hobby while keeping the volume low for those around me. It has a variety of...

programming music

Computed Values with RxJS and @ngrx/store July 25, 2016

Cross-post from the Rangle.io blog. Introduction @ngrx/store is a popular store architecture for Angular 2. It promotes one-way data binding for components: Components subscribe to updates from the store Components dispatch events to the store Reducers receive dispatched events and modify the store data structure …and repeat. We’ve used @ngrx/store...

programming ngrx rxjs redux

Artifact Deployment via Google Drive July 13, 2016

The Twelve-Factor App is a set of best practices for building web applications. Every project I build adheres to the principles laid out at the above website and I highly recommend internalizing them if you’re a full stack developer or in dev ops. One of the key points is “dev/prod...

devops

Building a Chat Bot for Fun and Profit May 18, 2016

This blog post is based on a lunch and learn talk I gave at Rangle.io on May 13, 2016. On April 16th, 2016 Telegram unveiled their “$1,000,000 to Bot Developers. For free.” challenge. Developers were incentivized by a chance to win $25,000 USD to build novel, interesting bots on Telegram’s...

bots telegram nodejs

Optimizing Move Generation from 200K to 2.5M moves/s January 06, 2016

Originally posted at http://ceruleanjs.joeyrobert.org/. CeruleanJS has a pseudo-legal move generation algorithm. It generates all possible moves for a position (even ones that put the king in check or castle the king through check) and the full legality is tested during the addMove() function. This is because the move needs to...

chess chess programming ceruleanjs