Don’t learn to code. Learn to think.

“The real goal should be to teach people a new way to think. In other words, we should be trying to teach computer science and not just coding. In this blog post, I’ll explain the difference between the two, and why focusing on the right one is critical for the movement to succeed…”


A Tour of Machine Learning Algorithms

“After we understand the type of machine learning problem we are working with, we can think about the type of data to collect and the types of machine learning algorithms we can try. In this post we take a tour of the most popular machine learning algorithms. It is useful to tour the main algorithms to get a general idea of what methods are available.

There are so many algorithms available. The difficulty is that there are classes of method and there are extensions to methods and it quickly becomes very difficult to determine what constitutes a canonical algorithm. In this post I want to give you two ways to think about and categorize the algorithms you may come across in the field.

The first is a grouping of algorithms by the learning style. The second is a grouping of algorithms by similarity in form or function (like grouping similar animals together). Both approaches are useful…”

A Comparison of Go Web Frameworks

“A few months ago we introduced Go to our system at Square and it’s quickly become one of our sharpest tools. We recently evaluated Go web frameworks looking for one that fits us best.

TL;DR: We recommend just using the net/http package in the standard library to start. And if you want help with request routing we recommend looking at Gorilla and Gocraft/web. Both Revel and Martini have too much dependency injection and other magic to make us feel comfortable. Gorilla is the most minimal.

All of the frameworks we looked at are built on top of the net/http package…”

NGINX as a WebSockets Proxy

“The WebSocket protocol provides a way of creating web applications that support realtime bi-directional communications between clients and servers. Part of HTML5, WebSockets makes it much easier to develop these types of applications then the methods previously available. Most modern browsers support WebSockets including Firefox, Internet Explorer, Chrome, Safari and Opera and more and more server application frameworks are now supporting WebSockets as well.

For enterprise production use, where multiple WebSocket servers are needed for performance and high availability, a load balancing layer that understands the WebSocket protocol is required, and NGINX has supported WebSockets since NGINX 1.3 and can act as a reverse proxy and do load balancing of WebSocket applications…”

NGINX as a WebSocket Proxy

Basics of Machine Learning

“Naive Bayes, decision trees, zero-frequency, missing data, ID3 algorithm, information gain, overfitting, confidence intervals, nearest-neighbour method, Parzen windows, K-D trees, K-means, scree plot, gaussian mixtures, EM algorithm, dimensionality reduction, principal components, eigen-faces, agglomerative clustering, single-link vs. complete link, lance-williams algorithm…”

An Open Letter to the Erlang Beginner (or Onlooker)

“One of the #erlang regulars, Jesper Louis Andersen (jlouis) recently posted a reply to an old post about whether Erlang is overhyped or not.

I definitely have to agree with jlouis on this one and his blog post is pretty good. His reply stirred a lot of arguments up on social websites such as reddit or Hacker News, but really none of these arguments were new or unknown to the Erlang community. I’ve decided to write this blog post addressing a few points about it…”