A Guide to Transitioning from GUI Editors to Vim

Until recently, I had done all of my coding in IDEs and GUI text editors. From Notepad++ to Visual Studio and Xcode, I felt like my text-editing toolset was more than adequate for the work I needed to do. I knew about Vim and Emacs, but they both seemed like esoteric, rocket science editors that only became relevant when a Git merge forced me into the file of a commit message. Read more on A Guide to Transitioning from GUI Editors to Vim…

Blockchains Explained: A Primer on Cryptocurrencies, Bitcoin, and Ethereum

Blockchains are nothing new: Bitcoin’s blockchain was implemented in 2009, and research papers on blockchains date back to the early ’90s.

While I had heard about Bitcoin and blockchains, I didn’t fully understand them, and the gaps in my knowledge came to light when my grandma asked me to explain Bitcoin to her. This post is intended to explain what blockchains are, how they work, why someone would want to use them, and what’s coming up next. Read more on Blockchains Explained: A Primer on Cryptocurrencies, Bitcoin, and Ethereum…

Naming Things Is Hard

When making software, you have to name a lot of things. There are functions, classes, numbers, data models, etc., and they all need meaningful names to ensure better communication within a team.

Over the past few months, I’ve noticed a few things that make naming things hard in a software project. These difficulties may be stressful, but they also highlight the benefits of good naming conventions.
Read more on Naming Things Is Hard…

Three Awesome Spacemacs Features

For almost a year now, I have been using Spacemacs, an Emacs distribution designed to make Vim users and newcomers to Emacs comfortable in Emacs, as my daily text editor. I was initially hooked by the nearly flawless Vim emulation, which is the best I have used in any text editor. After I had gotten my feet wet, I fell in love with the pre-defined mnemonic shortcuts and amazing packages that are included in the distribution.
Read more on Three Awesome Spacemacs Features…

Running the Current Test File in VS Code

For the last few months, I’ve been using Visual Studio Code on a Node.js project. It’s a pretty great editor, and its support for TypeScript is fantastic. As part of my normal workflow, I try to follow TDD practices as much as possible. For efficiency’s sake, I like to execute the tests in the test file I’m currently editing, right from the editor (I’ve written about setting up Vim to run the current test file in an external terminal in the past). Read more on Running the Current Test File in VS Code…

Intro to Mocking with Moq

It’s easy to overlook the importance of unit testing. Writing tests can be tedious. They must be updated constantly as code is refactored, and when you have a large code base, you may have to write many tests to even come close to testing all cases. Despite this, unit testing is a necessary part of creating clean, working code. One way to make the testing process easier is through the use of mocks. Read more on Intro to Mocking with Moq…

An Immutable Asynchronous State Holder in C#

Managing state in a clean way is probably one of the most challenging aspects of many software projects. When using asynchronous programming technologies such as .NET’s async/await functionality or the Reactive Observable pattern, the problem of state management is exacerbated and often becomes a source of errors.

In several projects that I have worked on over the last few years, we instituted a StateHolder class that eases the burden of managing state. Read more on An Immutable Asynchronous State Holder in C#…