Blog

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

History of joeyrobert.org June 22, 2015

Version 1 (2007 - 2009) joeyrobert.org has long been my home on the web. Registered in 2007 prior to joining the University of Waterloo, joeyrobert.org was intended to document my entire university career. It had my courses outlined for all 5 years. I vigorously studied the Undergraduate Calendar and would...

website history

SSL by default, GnuPG with keybase.io February 07, 2015

SSL by default joeyrobert.org is now completely SSL by default. Because TLS is fast enough and StartSSL offers free SSL certificates, I've decided to switch this domain, as well as a few others, to SSL. I think all sites should be switched to SSL by default and that security shouldn't...

website security ssl gnupg

FreeSongHost.com launched! December 10, 2014

Hey everyone, I have launched a new website, FreeSongHost.com. It allows you to quickly convert MIDIs to MP3 using a selectable high-quality soundfont. To read more about it, visit my project page or visit the site directly! I hope you find it as useful as I do. I do a...

website midi mp3

Job Queues Slides November 26, 2014

Below are the slides for a presentation I gave internally at EventMobi about Job Queues. I recently used the Kue framework internally to automate a build process. This is intended to be a high level overview of job queues, with asides on Amdalh's law and a case study on multiple...

job queues slideshow

Interesting scientific videos with Matlab May 16, 2013

Stellar Composition over Time (M = Msun, Metallicity = 0.02) Modelled as a bonus project for my PHYS 375 Astrophysics class at the University of Waterloo. Here you'll see an animation of the stellar evolution of a Main Sequence star, similar to that of our own Sun. The left chart...

math visualization

Benchmarking JavaScript and DOM Performance using the Game of Life November 06, 2009

Conway's Game of Life is a dead simple cellular simulation. It contains an infinite grid composed of cells, which live or die based on a few rules: Any live cell with fewer than two live neighbours dies, as if caused by underpopulation. Any live cell with more than three live...

javascript visualization game of life

Guitar Pro - The Musician's IDE October 18, 2009

I've been using Guitar Pro pretty regularly for the past 3 years to compose some of my music. It was originally designed to be a guitar tab editor, but it's pianists and violinists would find themselves right at home as well. It's pretty convenient, but I often find myself complaining...

music guitar pro

Writing a bitboard chess engine March 15, 2009

I've shifted my focus a little and am currently writing a bitboard based chess engine. Bitboard based engines aren't quite as straight forward as array based chess engines, but they offer benefits in both move generation and board evaluation. The idea is to represent the board in a series of...

programming chess

The layout of a chess engine March 08, 2009

Chess is said to be a game of perfect information, meaning that all the information is visible to both sides at all times. This allows a computer to play chess by searching the game tree for the best possible move. Thus a simple chess engine is composed of three major...

programming chess