With Bitcoin prices back up high, people are again variously hyping or disparaging cryptocurrency. I don’t often see moderate takes on the technology, probably because it’s extremism that gets attention, but I thought I’d share my take.

Should Bitcoin Be Valuable?

I agree with the many skeptics that Bitcoin cannot be a currency. The value has always fluctuated greatly and had long periods both inflation and deflation. Denominating prices or contracts in Bitcoin injects a lot of risk into a transaction due to this volatity. For now, this is a non-starter.

But, Bitcoin can replace gold as an asset. Yes…

Parsing is something that many programmers dread. Many prefer to cram all their use cases into existing formats, such as JSON or YAML, even when effectively building a DSL in those formats. If one must parse, many prefer to use parser generators such as ANTLR. But for those that are already familiar with functional programming, using a functional parser combinator library can be a very convenient and high performance alternative.

This post will cover two aspects of a parsing library that may be unfamiliar to some programmers. First I will describe a pattern to improve performance of functional libraries by…

I started using the Scala programming language in 2010. In 2011, I joined Twitter and worked there using Scala professionally for four and a half years. During that time I saw many comments and criticisms about the Scala community as my interest in Scala grew. I often wondered: did these criticisms apply to me and the people I worked with? I found myself insulted and defensive about them. But what is a programming language community anyway?

The criticisms I’ve seen leveled at the Scala community over the years are serious. In the early days of my awareness, it was about…

In 1993 I was at Georgia Tech and first learned of a free version of Unix I could install on my PC. Linux, I had learned from a good friend, was free, if I could find a way to download it. I didn’t find a way, or the time, to install Linux until 3 years later in graduate school. For around 15 years after that point I used virtually exclusively Free Software.

I have always been a bit of a utopian type when it comes to the Internet and software. I protested at Diane Feinstein’s office in 2001 the arrest…

In part 1 I discussed the main feature a build system should have: reproducibility. In this part I discuss how we get reproducibility with minimal duplicative work in a system like bazel.

In bazel we define build targets that have some inputs and produce some output. A target might produce some java jar which is the result of compiling several java files. Or a target might produce some static c++ .a library file. But what about targets that depend on other targets? …

When you write a bunch of code that may have complex internal dependencies using a language with a compiler, you need to build. Unfortunately, we have not really solved this problem. I’ve been thinking a lot about building software for the past 5 years or so, and I wanted to write some of the things I’ve been thinking in a few posts.

It’s hard to believe, but good version control (git, hg, svn) is a relatively recent development. In fact, I think the idea of using hash trees to track version history dates to 2003 in Monotone. I had the…

Since the election, a lot of people have been talking about what they don’t like. I think it might be important to also talk about what we would like. Having such a list can help us focus on specific actions to increase the chances the future we would like comes about as soon as possible. What follows is a current list of things that seem like good ideas to me.

Address the Big Challenges

  1. The earth is warming and carbon is the cause. We need to address this serious problem. I am an optimist on climate, but we must act. I don’t think it…

P. Oscar Boykin

Machine learning, Programming, Hadoop, Scala.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store