async/await and hidden races

JavaScript has become one of my favorite languages. This is no secret to those who know me in a professional capacity. It used to be one of my most hated languages until I spent some time with it, over a dozen years ago. When I have to use other languages, I almost always find myself…

Simple node.js service configuration

There’s a myriad of npm modules for providing configuration to a node.js application or service, but I’ve always found them simultaneously over-engineered and lacking basic validation of the configuration document. I’ve settled on a pattern that works very well for my needs. It leverages the excellent Joi library for validation, and simple node built-ins for…

Gazebo: An AJAX interface to FICS

I’ve been getting back into chess recently, and my favorite online community is the Free Internet Chess Server (FICS). There are a wealth of free and open interfaces available for download, but they all have one thing in common: you have to download them. At my workplace this is a no-no, but over my lunch…

Issues with Crockford’s JavaScript conventions

I’ve been reading up on Douglas Crockford’s Code Conventions for the JavaScript Programming Language and I agree with most of them, but I definitely have a bone to pick with one of them: “All variables/functions should be declared before they are used.” This sounds good in theory, and is probably a good programming practice. However,…

JavaScript appreciation and more

I’ve been up to a lot of little things recently but haven’t undertaken any projects big enough to warrant a whole fancy blog post. I figured I might as well summarize what I’ve been up to. I’m doing a project at school that improves the experience of on-campus tutors and their clients. They’d been using…