Generating Excel Files using Node.js and ExcelJS

Recently, I was tasked with writing some code to generate Excel workbooks containing sales data. I implemented the code using a Node module called ExcelJS. I found that this module provides a simple interface to generating documents, and it also supports more advanced functions such as text formatting, borders, formulae, and more. Read more on Generating Excel Files using Node.js and ExcelJS…

Running QBASIC in a Browser – My Nostalgic Trip Back to the 1990s

Recently, I saw Windows 95 running under Electron. The project definitely brought up some old memories from when I was young and new to computers in the mid-1990s. Back then, I spent all of my time outside of school learning how to write code in BASIC.

I discovered that the Windows 95 under Electron project uses a v86, x86 emulator running in JavaScript, and I decided that it would be fun to experiment with the emulator and get QBASIC up and running in a browser. Maybe I could recreate my programming experience from my childhood, all in a browser! Read more on Running QBASIC in a Browser – My Nostalgic Trip Back to the 1990s…

A Simple Approach to Comparing Database Structures

On my current project, we are developing a replacement for a legacy system written in Visual FoxPro that our customer has used for the last couple of decades. Since there is a lot of risk in switching over, we have developed a bi-directional syncing tool that attempts to keep each system up-to-date with changes made in the other. Read more on A Simple Approach to Comparing Database Structures…

Mocking React/Apollo Data Tables for UI Development

Recently, I was tasked with creating a new screen containing a table of data for a project using React and Apollo. In the past, we would typically start by defining the database table, other access layers in between that and a GraphQL query schema, and finally the query on the front end using Apollo. This has been quite tedious, and often, we ended up tweaking the schema many times until we ended up with precisely what the front-end UI needed. Read more on Mocking React/Apollo Data Tables for UI Development…

Excel Snapshot Testing with Node

A couple of weeks after I worked on PDF snapshot testing with Node and GraphicsMagick, I was tasked with writing some code to generate downloadable Microsoft Excel Workbook files. I thought I would use snapshot comparisons again, much as I did with PDF files to automatically detect regressions in the implementation. Read more on Excel Snapshot Testing with Node…

PDF Snapshot Testing with Node and GraphicsMagick

The task I am working on this week involves generating downloadable PDF files for customer and supplier orders. We’d like to drive the implementation using tests and be able to find any regressions in the code automatically.

After looking at different alternatives for accomplishing this, we decided to try a visual snapshot approach similar to the way Jest does snapshot testing.
Read more on PDF Snapshot Testing with Node and GraphicsMagick…

Remote File Editing Over SSH with Visual Studio Code

Recently, I needed to add an entry to the local domain name server on my home network. For many years, I have used Emacs to edit files on the terminal both locally and on remote systems. However, over the past year or so, I’ve become familiar with Visual Studio Code, and I very much enjoy its editing experience. I searched through the available extensions and found one called Remote VSCode.


Read more on Remote File Editing Over SSH with Visual Studio Code…

Simple Database Dump/Restore with Postgres on Heroku

On my current project, we use Postgres instances running on Heroku for both staging and production. Each team member on the project also maintains a local instance of Postgres used for development.

Because the process to translate data from our customer’s legacy database to our new system takes quite some time, we run the process nightly to populate our Postgres instance on our staging server. In addition to our automated test suite which generates and uses its own test data, we found it quite useful to be able to use up-to-date, real-world data during our daily development and ad-hoc testing of our software.
Read more on Simple Database Dump/Restore with Postgres on Heroku…

Building a Siri/iOS HomeKit-Enabled Garage Door Control with Raspberry Pi – Part 4: Door Sensors

This post is the fourth in a series exploring home automation using a Raspberry Pi, each covering a different aspect of the build of a garage door controller:

  1. Basic hardware acquisition and installation into a project box
  2. Software installation and code for controlling the door
  3. Software camera configuration and code streaming video to HomeKit
  4. Installing and configuring door open/closed sensors

Read more on Building a Siri/iOS HomeKit-Enabled Garage Door Control with Raspberry Pi – Part 4: Door Sensors…