Software! Math! Data! The blog of R. Sean Bowman
The blog of R. Sean Bowman
August 02 2016

Pony is a relatively new actor based programming language. It’s inspired by Erlang, but differs in some important (and cool) ways. I wanted to learn about Pony’s message passing model, so I decided to write up a solution to the dining philosophers problem. Here’s what I found. The code is available on github if you’re interested in that.

Read more...


July 13 2016

I like the game Clue (called Cluedo in some parts of the world). I played it with my family when I was young, and we always had a great time. In college I wrote several programs to try to deduce what cards players were holding, but there was always some deduction my program missed. I started thinking about Clue again recently, and found much to think about. Frankly, this was a bit surprising to me! Isn’t Clue pretty straightforward?

Read more...


June 22 2016

In the course of working on some propositional logic/SAT applications, I came across an interesting identity I don’t think I knew of before. It seems related to all kinds of stuff, but I guess that’s not unusual for math… Anyhow, this particular identity made it very easy to transform some assertions I needed from disjunctive normal form to conjunctive normal form. It’s also beautiful on its own, so I thought I’d write it down.

Read more...


June 04 2016

Resource “ownership” in software is tricky. Poorly thought out ownership can lead to issues with memory management, lifetime management, and other problems that make you want to bang your head on the desk. In a language like C or C++, you were traditionally on our own, responsible for keeping track of ownership and lifetimes without help from the compiler or language itself. But these days, things are changing for the better.

Read more...


May 14 2016

In 2014-2015 I fooled around with concurrency in C++ a lot, mainly to learn about software transactional memory and lock free data structures. I learned a lot but never quite got to polishing anything up. Since I have code lying around and tons of free time to waste, I’m tidying it up, writing about it, and putting it up. Particularly with STM on gcc, there’s not much info around it seems. That’s sad, because it’s such a cool feature! I’m not sure I’d use it in a pacemaker or anything, but for hobby projects or scientific applications I think the idea has great merit and is completely useful today.

Read more...


May 08 2016

I dig the lambda calculus, and there’s a special place in my heart for the untyped calculus because of Scott’s amazing semantic interpretation, denotational semantics, and all that awesome jazz. But I have a confession: I don’t know a lot about reduction strategies for terms in the untyped lambda calculus. I wanted to remedy that (at least to some extent…), and I accidentally stumbled on a cool language to do it in. Here’s what I learned.

Read more...