Articles by Thayne McCombs

Why JSON isn't a Good Configuration Language thumbnail

Why JSON isn’t a Good Configuration Language Many projects use JSON for configuration files. Perhaps the most obvious example is the package.json file used by npm and yarn, but there are many others, including CloudFormation (originally JSON only, but now supports YAML as well) and composer (PHP). However, JSON is…

The Dangers of Garbage-Collected Languages thumbnail

The dangers of garbage-collected languages Any programmer that has had to manually manage memory knows the value of automatic memory management, also known as garbage collection. Garbage collection prevents several potential bugs that occur in manually managed memory, such as dangling pointers, double free errors, and several types of memory…

Tips & Tricks for Reducing Server Load thumbnail

At Lucid, we have a service-oriented architecture. One of these services is a font service that is responsible for serving font data based on family and unicode range and checking permissions for user-uploaded fonts. We didn’t expect the font service to have particularly high load1 (load is the average number…

How to Create a Downtime Dashboard Tool with Zapier and Google Sheets thumbnail

At Lucid we want to monitor the health of our services both individually and in aggregate. Last month we worked on setting up a new downtime dashboard tool. We wanted the following functionality: a record of incidents containing the duration of downtime, the service(s) affected, and information about the cause…

Introducing Xtract, a new XML deserialization library for Scala thumbnail

Last summer, our team added support for importing Adobe InDesign files into Lucidpress, a cloud-based publishing app. Specifically, the app now supports IDML files, which consist of XML files packaged up in a .zip file. The process of conversion involves: Parsing the XML from the IDML file into a model…