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.
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.
Machine learning, Programming, Hadoop, Scala.