Folding Away Mutations in F#

I’ve been working in F# lately, and one of its smaller features has had a big impact on my programming style: Variables are immutable by default. If you want to change something, you have to declare it mutable. Sometimes, this is what I naturally reach for, and the language rubs my nose in it.

Here’s a story of one of those instances, and a new pattern I’ve picked up as a result. Read more on Folding Away Mutations in F#…

Review: Kinesis Freestyle Edge Keyboard

I’ve been a happy user of wasd mechanical keyboards at home and work for years, but lately I’ve grown interested in improved ergonomics. Some of my colleagues use various generations of Microsoft ergo boards, but I wanted the flexibility of a split board and didn’t want to give up mechanical switches.

When I learned of Kinesis’ new split mechanical keyboard (shortly after its successful Kickstarter), I knew I had to try it. Read more on Review: Kinesis Freestyle Edge Keyboard…

.NET Core, OSX, libcurl, and OpenSSL

.NET Core makes it convenient to develop and test C# code across platforms. On my current project, this means we can do much of our work on Macs without ever firing up a Windows VM.

Even the best abstraction layers occasionally leak, though. Here’s a story of an OSX-specific issue we encountered, what we learned, and how to resolve it. Read more on .NET Core, OSX, libcurl, and OpenSSL…