Introducing ChampMap!

| Comments | by mike scarpati

League of Legends can be a bit overwhelming to beginners. The basic goal is simple—destroy the enemy Nexus. There are a bunch of small AI enemies, some big AI enemies, and 5 humans that want to destroy your nexus first.

Beyond that, there are a ton of nuances—it wouldn’t be a successful e-sport if there weren’t. One thing that can be intimidating is the sheer number of champions. Riot! lists roles for each of them, but people don’t always play the champions as intended. Playing a champion in a bad role, especially for a beginner, makes the game harder than it needs to be, and can reduce fun.

ChampMap is a simple visualization that shows you how real players use different champions. While it isn’t going to revolutionize the way people learn about League, I think it’s pretty cool. It could also serve as a tool for Riot! when looking at how champions are actually being used, or what types of champions to target for upcoming releases.


Click to view the full interactive visualization!

Super Fast Summarization With Solr

| Comments | by mike scarpati

How does <100ms, variable-length summarization of a 200-page book sound? What if it only used open source tools, and was exposed via a an API that you’re already used to if you’re running Solr? How about we throw in the fact that all of the heavy lifting is done by established components, so the implementation is basically a bit of glue code?

As a teaser, here’s its output on The Art of War — it isn’t perfect, but it gives you an idea of the content, and took about 60ms on my desktop:

By method and discipline are to be understood the marshaling of the army in its proper subdivisions, the graduations of rank among the officers, the maintenance of roads by which supplies may reach the army, and the control of military expenditure. 11. … Now the general who wins a battle makes many calculations in his temple ere the battle is fought. The general who loses a battle makes but few calculations beforehand. Thus do many calculations lead to victory, and few calculations to defeat: how much more no calculation at all! … Hence a wise general makes a point of foraging on the enemy. … Therefore in chariot fighting, when ten or more chariots have been taken, those should be rewarded who took the first. … Hence to fight and conquer in all your battles is not supreme excellence; supreme excellence consists in breaking the enemy’s resistance without fighting. 3. … Therefore the skillful leader subdues the enemy’s troops without any fighting;

Random Walks, Learning, and This Blog

| Comments | by mike scarpati

This blog is named after the way I see my personal learning process. I was initially thinking of something like “Breadth First Learning,” but I realized that isn’t quite how it happens for me, and that someone has already written a nice article about it!

Random Walks

Wikipedia says that a random walk is “a mathematical formalization of a path that consists of a succession of random steps.” I’ve seen the concept come up primarily in the domain of graphs, where PageRank is a nice example. The math behind it is quite elegant, but I’m going to focus on the intuition.

A Real Graph to Motivate Us

It is easy to find graph datasets, but I wanted something that was large enough to be interesting, but small enough that computation time and memory requirements would be an issue.

A good example is a network of political blogs from 2005, which appeared in: L. A. Adamic and N. Glance, “The political blogosphere and the 2004 US Election”, in Proceedings of the WWW-2005 Workshop on the Weblogging Ecosystem (2005). If you want to follow along, you can download it here.

Graphs can be visualized in a lot of different ways, but here’s one option (from the graph-tool documentation):