About Me
My name is Daniel Imms, I'm a software engineer from Australia. I live in Washington State and work at Microsoft on Visual Studio Code. I use this site as a platform to learn, revise and teach various software development topics.
Articles
Inlining constants with const enums in TypeScript
An often overlooked part of writing high performance JavaScript apps is to consider how your code will be compiled and minified. Continue reading
Readonly Typed Arrays in TypeScript
A proposal to add support for built-in readonly typed arrays got rejected by the TypeScript team. This post shows how to build your own. Continue reading
Replacing Google Analytics
I’ve been on Google Analytics pretty much since moving the site off of Blogger. Technically if you use GA now you require a cookie consent dialog which got me thinking why I actually use GA. Continue reading
Migrating xterm.js from TSLint to ESLint
As you may know, TSLint is now deprecated in favor of ESLint with the typescript-eslint plugin. This post dives into how the migration went in xterm.js, hopefully it will help save some time for people searching for the same errors. Continue reading
Testing using the Azure Cosmos DB Emulator in Azure Pipelines
When working on an application that interfaces with an Azure Cosmos DB backend you could use an actual Cosmos DB instance to test against but that’s a bit of a hassle as it involves setting up and configuring an actual instance. It turns out there is an emulator that runs in a docker container that you can test against instead. Continue reading
Splay Tree: TypeScript Sample
The Splay Tree article now features a sample written in TypeScript that is also available on GitHub and is installable through the GitHub Package Registry. Continue reading
How Shells Work: The cd Builtin Command
I’m currently going through the POSIX specification and wanted to document some of the lesser known things you can do. Continue reading
Using the Intersection Observer web API to improve performance
xterm.js ran into a great problem to use the Intersection Observer web API. This post introduces the problem, what Intersection Observer is and why it’s such a good fit. Continue reading