Software! Math! Data! The blog of R. Sean Bowman
The blog of R. Sean Bowman

## Graph clustering, TILO, and interactive demos

February 09 2016

I’d like to introduce an algorithm for finding clusters in graphs. This is an important problem in machine learning, in part because so many problems can be phrased as finding “nice” clusters in a given graph, where the meaning of "nice" tends to depend on the particular application. It’s easy to imagine simple applications of a good clustering algorithm, like finding groups of friends in a social network. But things only get more interesting from there.

## On Javascript

February 09 2016

I have been writing some Javascript lately, mostly in my free time. Don’t ask me how I got started – Javascript is not my favorite language, let’s say, and I don’t do a lot of web stuff these days. But it’s been interesting to check out the landscape. There are more “frameworks” than you can shake a stick at, the language itself is evolving pretty quickly, and there are lots of cool things you can do in the browser that weren’t available even a couple of years ago.

## Kleisli triples, Monads, and Computing

February 01 2016

We learned about monoids, we learned the (mathematician’s) definition of a Monad, and now we’re going to take a look at at least one alternative (but equivalent) definition more often used in computer science. This is the Kleisli triple.

January 14 2016

In the last post we learned about the bridge pattern and its pedigree from the envelope/letter pattern of Coplien (and probably other sources, I’m just not an expert enough to know about them all!) Now let’s compare it to some other patterns and examine the differences and similarities. It often turns out that the rationale behind implementing some pattern is crucial, even when the different patterns themselves might look substantially the same in code.

January 04 2016

We previously looked at a generalization of the familiar algebraic concept of a monoid to a category. We’re now in a position to give the “mathematician’s definition” of a monad. People seem to have different opinions of this definition. I personally think that it’s simple, elegant, and captures the spirit of generality of category theory. I have heard that some people use this definition to belittle or confuse people. Perhaps it’s just that people feel belittled or confused by it. In any case, describing a monad isn’t easy, and we shouldn’t feel bad if we don’t understand it very well at first.