A Go Transgression

Go gives the programmer introspection into every aspect of the language, and of a running program. But to one thing the programmer does not have access, and it is the goroutine identifier. Because the day the programmers know the goroutine identifier, they create goroutine-local storage through shared access and mutexes, and shall surely die. In Infergo, I had to have goroutine-local storage. Here is how I got efficient goroutine-local storage in Go.

Read More →

Go Programs That Learn

There are so many probabilistic programming languages that it is hard to choose one. Because it is so hard to choose one, a probabilistic programmer has two options: invent a new probabilistic programming language, or write probabilistic programs in a regular programming language. The former choice is easier to make, that’s why there are so many different probabilistic programming languages. But writing programs is so much easier in a regular language, and programs in regular languages can do many useful things.

Read More →

A Small Program Can Be a Big Challenge

A probabilistic model for session depth estimation

[Poster: html, pdf] A good part of today’s internet content is created and shaped for delivering advertisements. Internet pages are interconnected by links, and a visitor is likely to open multiple pages from the same publisher. After a while, visitors leave the web site, either due to clicking on an advertisement or just because they get bored and switch to other content or activity. The probability distribution of the session depth — the number of pages opened during a single visit — is an important metric for the publisher.

Read More →