Predicting Disney World Wait Times with Neural Networks

Machine learning is an extremely important topic in computer science. We’ve come to the point where there’s some problems that just cannot be solved with algorithms and code, and machine learning is the solution.

I haven’t had a ton of experience with machine learning beyond Andrew Ng’s amazing Machine Learning course and I recently set out to change that.

Read More

Needlepoint 1.0.5

For more information on Needlepoint– my JavaScript dependency injection system–you can take a look at my introductory blog post or the README file on GitHub.

I have updated Needlepoint to version 1.0.5 in NPM. There’s a couple changes, none of which should break if you use an older version and upgrade to this version.

Read More

Though I am an Angular JS type of person, I regularly follow other JavaScript frameworks to keep up with the rest of the world. React, along with the Flux design pattern, is a relatively popular alternative to the Angular ecosystem. However, React+Flux is extremely different from other frameworks– for starters, React isn’t actually a full JavaScript framework by itself, and Flux isn’t actually a thing: it’s a type of architecture. Tero Parviainen wrote an amazing introduction to the Redux+React ecosystem with an overview of how not only the two libraries themselves work, but conceptually how they fit together and why the Flux architecture and immutability makes sense in a web application.

Dependency Injection for Modern Javascript Using ES6 Classes and ES7 Decorators

In the past, I’ve done a lot of work with PHP and the Laravel framework. One of the coolest features about Laravel is its Inversion of Control system, which dynamically injects dependencies into your application at runtime.

This is beneficial for many reasons, including modularity, readability, and testability. With a dependency injected system, you can simply request that your application receives an instance of an object, and the DI container will do all of the work to initialize the object and all of its dependencies.

Read More

Getting Started with Rancher, a self-hosted Docker PaaS

Docker is fantastic for building a scalable infrastructure. Not only does it force you to isolate your application into reasonable chunks, but it also encourages you to build these pieces as stateless services. This is fantastic for high availability and scalability, but actually scaling out a pure Docker-based infrastructure is difficult if done manually.

Docker Swarm and Compose are the “official” solutions to this problem– they allow for you to build a giant, elastic Docker cluster that appears as a single machine to your client. Additionally, Compose allows you to scale your application easily to multiple instances.

Despite this, these two components are lacking a couple critical features– cross-machine service discovery, as well as a built-in load balancer that distributes traffic to your scaled Docker infrastructure.

Tutum is a service that adds these remaining components, and to great success. Though you can use your own nodes with Tutum, sometimes it’s desirable to use your own, self-hosted service.

Rancher is an open source Docker PaaS that includes features like service discovery and DNS, load balancing, multi-node support, cross-host networking, health checks, multi-tenancy, and more. Essentially, Rancher takes all the features of Tutum and packs it into a single Docker container that is hosted on your own nodes so that you have complete control.

Even better, Rancher is extremely easy to install in a matter of minutes.

To find out how, check out my new mini-course that I will be expanding over the next several weeks to cover new features in Rancher, as well as expand it to cover how to use advanced features such as service discovery. It’s completely free, and I hope you find it useful!

Learn How to Use JavaScript ES6 Classes and Arrow Functions

What better way to start the new year than with a couple quick lessons on new JavaScript features. I’m in the process of writing a series of short lessons on the new ES2015/ES6/ES7 JavaScript features, such as the immensely helpful classes and arrow functions.

For this course, I’ve also written a series of quizzes that help you keep on your toes– simply register for an account, navigate to the course page, and click the button titled “Start Taking this Course”. You’ll be able to take the quizzes and see your results, along with keep tabs on your reading progress. All of this is completely free and you are not added to mailing lists of any kind (the email address is required so that you can reset your password if needed)!

Read More

Mapping Ebola with D3

Ebola has been a big topic in the news lately, but just how bad is it, and how quickly is it spreading? As a part of a web programming course in the iSchool at the University of Washington, I developed an interactive visualization of the 2014 spread of the disease using D3 and web technologies.

View the Visualization

Read More

Introducing Jekyll Themes

The past week I’ve been busy with a small project of mine that I’ve been planning on getting off the ground since March of last year– Jekyll Themes. Jekyll Themes is a repository for authors to list themes and pre-built templates for the Jekyll static site generator.

While I’ve previously written about how to create a Jekyll website from scratch, a lot of developers or bloggers don’t necessarily want to spend the time designing or creating a website from a blank canvas. Thankfully, there are a lot of great themes out there, but many of theme are spread throughout individual GitHub pages and projects. Hopefully, with Jekyll Themes, the themes scattered across the internet can be consolidated into a single listing where they are tagged by their color scheme, responsive-ness, or other attributes.

JPG vs. WebP Image Formats

There are several kinds of file formats for images on the web. Primarily, web developers use JPG and PNG image files, depending on the content of the image itself. However, Google has made a push recently to use a new format– called WebP– that is supposedly more efficient than JPG, yet still has the ability to have transparency. In other words, WebP is the best of both JPG and PNG file formats– but does it really reduce image file sizes?

Read More