Blog

Building an iFrame component for a React application: an unexpected journey

3/6/2022

Recently I was tasked with adding functionality to a GatsbyJS site that would allow isolating component previews from the rest of the site’s code. My initial idea to accomplish this was to try using the shadow DOM. I was familiar enough with the shadow DOM offering CSS isolation powers to web components, so it naturally followed (at least in my mind) that it did the same for javascript. I wasn’t sure though.

Read more

Sometimes, you should just cheat!

8/1/2020

A software consultancy promoting cheating? How scandalous. Do bear with me though.

Read more

Peak enterprise security: when IT succeeds by making development fail

2/26/2020

I have had the pleasure of working on a variety projects the past few years. Recent projects have involved creating React-based user interfaces. In the beginning this was exciting. Very exciting indeed. React! Typescript! Components! MobX! Live reloading! Unit tests (Jest)!

Read more

Recreating raster images as SVGs: part 2

5/23/2019

When last we spoke we had just finished discussing the merits of delivering assets as SVGs instead of PNGs, or other raster formats. We found that SVGs offered greater file size savings and compressibility while simultaneously offering superior image quality. We also saw that we could optimize SVGs to save on file size even more.

Read more

Recreating raster images as SVGs: part 1

5/6/2019

Here we describe some techniques involved in converting raster images to SVGs. We also explain why you would want to do this and show how it is benficial to clients.

Read more

Homebrew Dynamic DNS with the Linode API

9/19/2017

Over the years I’ve set up a variety of private cloud services. In addition to gaining expertise in these services for clients who would rather rely on their own infrastructure, it’s also made me less dependent on web company services which could (and have) disappeared at inconvenient times.

Read more

Troubleshooting Piwik database errors.

8/30/2017

Do you know what’s not fun? Troubleshooting database errors. Imagine you’ve set up piwik on a client’s server. You have everything installed, configured, and running. You’re testing out various features, you know, to make sure they work as advertised before handing off to the client. Not required, but it’s that little extra icing on top that makes your service just a touch above the rest.

Read more

Piwik installer has PHP Fatal error: Allowed memory size exhausted (tried to allocate 20480 bytes) in core/FrontController.php

8/30/2017

For three nights I struggled with trying to figure out why I could not get Piwik’s web analytics software to load it’s installation page successfully. I was attempting to migrate it from a FreeBSD 10 server to a FreeBSD 11 jail and nothing, nothing I did was working. I kept on getting the following two errors in my php logs:

Read more

Running dovecot and opensmtpd inside a jail

6/14/2017

This is is going to be short and sweet. If you are running opensmtpd or dovecot inside FreeBSD jails you may need specific changes for this configuration, depending on your jail setup.

Read more

Solution for fatal error in dovecot configuration file

6/14/2017

While setting up a mail server, I ran into a curious issue which I have documented below for posterity. After modifying the dovecot configuration and attempting to start the dovecot service I received the following error:

Read more

git show: my hero

5/30/2017

This post is about a git learning I had some time ago. The codebase that I was hired to work on had diverged from the main branch at some point in the past (months earlier). A few months into the project I took on the responsibility of merging the diverged branches together. It took me a really long time (hours) to finish, but all seemed to go well.

Read more

Fix Ghost init script not starting automatically in FreeBSD jail

5/5/2017

We’ve been redoing the infrastructure for some web servers we manage—migrating from Ubuntu 12.04 to FreeBSD 11. we’ve shared the reasons for that elsewhere. Today we wanted to document an issue we ran into when setting up the Ghost blogging platform inside a FreeBSD Jail.

Read more