Technology

A collection of 28 posts

Two vintage cars side-by-side. The one on the left is rusted out and missing headlights. The one on the right has been restored to good condition

Automatic recovery using lvm-autosnap

Technology

Two vintage cars side-by-side. The one on the left is rusted out and missing headlights. The one on the right has been restored to good condition TL;DR: https://github.com/intentionally-left-nil/lvm-autosnap Running linux is an adventure. About a ...

Read more ⟶
Systemd-logo.svg

Initramfs with systemd & LUKS

Technology

TL;DR [me@mycomputer]# cat /etc/sbupdate.conf | grep "^CMDLINE_DEFAULT" CMDLINE_DEFAULT="rd.luks.uuid=c1f995f5-a8f7-47f0-b085-6d3a159e1874 rd.luks.allow-discards resume=UUID=51384ac6-f197-41d9-b8c8-c9607d7e01c8 rd.udev.log-priority=3 nvme.noacpi=1 quiet splash root=UUID=a645810c-ef87-4a9a-9239-afdeaf292e6e rw" [me@mycomputer]# cat /etc/mkinitcpio.conf | grep "^HOOKS" HOOKS=(systemd keyboard autodetect sd-vconsole modconf block sd-encrypt lvm2 filesystems fsck) My old boot ...

Read more ⟶
andy-kelly-0E_vhMVqL9g-unsplash

Interfaces in golang

Technology

TL;DR: An interface just defines a collection of methods. When you create an instance, it’s just a wrapper around a concrete type. In addition to the concrete type, the interface contains an extra array of ...

Read more ⟶
Easy, secure API keys

Easy, secure API keys

Technology

I needed to add API key authentication to our work environment. I needed: To develop the functionality quickly Be confident in the security of the system API keys should only be visible once when created ...

Read more ⟶
Architecture diagram for async service. It shows a service communicating to async service with an HTTP call. Async service stores that data in a postgres database, and then sends out messages to rabbitmq. There are 3 queues in the diagram, one for each job type. An arrow from the queue indicates that a worker listens to the queue to process the job item. Finally, there is an arrow from the worker back to async service to claim the job, as well as to store the results

Introducing Async Service

Technology

Distributed tasks with Postgres & Rabbitmq TL;DR: Check out the code here At my workplace, we needed a mechanism to: Have service A tell service B to start executing long-running tasks, with notifications upon completion ...

Read more ⟶

Secure DNS

Technology

TL;DR: Use a VPN if you really care. Hey, you over there! Want to take something that works perfectly well and make it more complicated? Sure ya do! Oh, need a little more convincing? Okay ...

Read more ⟶
Easy, secure API keys

Easy, secure API keys

Technology

I needed to add API key authentication to our work environment. I needed: To develop the functionality quickly Be confident in the security of the system API keys should only be visible once when created ...

Read more ⟶
Systemd-logo.svg

Initramfs with systemd & LUKS

Technology

TL;DR [me@mycomputer]# cat /etc/sbupdate.conf | grep "^CMDLINE_DEFAULT" CMDLINE_DEFAULT="rd.luks.uuid=c1f995f5-a8f7-47f0-b085-6d3a159e1874 rd.luks.allow-discards resume=UUID=51384ac6-f197-41d9-b8c8-c9607d7e01c8 rd.udev.log-priority=3 nvme.noacpi=1 quiet splash root=UUID=a645810c-ef87-4a9a-9239-afdeaf292e6e rw" [me@mycomputer]# cat /etc/mkinitcpio.conf | grep "^HOOKS" HOOKS=(systemd keyboard autodetect sd-vconsole modconf block sd-encrypt lvm2 filesystems fsck) My old boot ...

Read more ⟶

Secure DNS

Technology

TL;DR: Use a VPN if you really care. Hey, you over there! Want to take something that works perfectly well and make it more complicated? Sure ya do! Oh, need a little more convincing? Okay ...

Read more ⟶
Two vintage cars side-by-side. The one on the left is rusted out and missing headlights. The one on the right has been restored to good condition

Automatic recovery using lvm-autosnap

Technology

Two vintage cars side-by-side. The one on the left is rusted out and missing headlights. The one on the right has been restored to good condition TL;DR: https://github.com/intentionally-left-nil/lvm-autosnap Running linux is an adventure. About a ...

Read more ⟶
Architecture diagram for async service. It shows a service communicating to async service with an HTTP call. Async service stores that data in a postgres database, and then sends out messages to rabbitmq. There are 3 queues in the diagram, one for each job type. An arrow from the queue indicates that a worker listens to the queue to process the job item. Finally, there is an arrow from the worker back to async service to claim the job, as well as to store the results

Introducing Async Service

Technology

Distributed tasks with Postgres & Rabbitmq TL;DR: Check out the code here At my workplace, we needed a mechanism to: Have service A tell service B to start executing long-running tasks, with notifications upon completion ...

Read more ⟶
andy-kelly-0E_vhMVqL9g-unsplash

Interfaces in golang

Technology

TL;DR: An interface just defines a collection of methods. When you create an instance, it’s just a wrapper around a concrete type. In addition to the concrete type, the interface contains an extra array of ...

Read more ⟶
Easy, secure API keys

Easy, secure API keys

Technology

I needed to add API key authentication to our work environment. I needed: To develop the functionality quickly Be confident in the security of the system API keys should only be visible once when created ...

Read more ⟶
Two vintage cars side-by-side. The one on the left is rusted out and missing headlights. The one on the right has been restored to good condition

Automatic recovery using lvm-autosnap

Technology

Two vintage cars side-by-side. The one on the left is rusted out and missing headlights. The one on the right has been restored to good condition TL;DR: https://github.com/intentionally-left-nil/lvm-autosnap Running linux is an adventure. About a ...

Read more ⟶
Architecture diagram for async service. It shows a service communicating to async service with an HTTP call. Async service stores that data in a postgres database, and then sends out messages to rabbitmq. There are 3 queues in the diagram, one for each job type. An arrow from the queue indicates that a worker listens to the queue to process the job item. Finally, there is an arrow from the worker back to async service to claim the job, as well as to store the results

Introducing Async Service

Technology

Distributed tasks with Postgres & Rabbitmq TL;DR: Check out the code here At my workplace, we needed a mechanism to: Have service A tell service B to start executing long-running tasks, with notifications upon completion ...

Read more ⟶
Systemd-logo.svg

Initramfs with systemd & LUKS

Technology

TL;DR [me@mycomputer]# cat /etc/sbupdate.conf | grep "^CMDLINE_DEFAULT" CMDLINE_DEFAULT="rd.luks.uuid=c1f995f5-a8f7-47f0-b085-6d3a159e1874 rd.luks.allow-discards resume=UUID=51384ac6-f197-41d9-b8c8-c9607d7e01c8 rd.udev.log-priority=3 nvme.noacpi=1 quiet splash root=UUID=a645810c-ef87-4a9a-9239-afdeaf292e6e rw" [me@mycomputer]# cat /etc/mkinitcpio.conf | grep "^HOOKS" HOOKS=(systemd keyboard autodetect sd-vconsole modconf block sd-encrypt lvm2 filesystems fsck) My old boot ...

Read more ⟶
andy-kelly-0E_vhMVqL9g-unsplash

Interfaces in golang

Technology

TL;DR: An interface just defines a collection of methods. When you create an instance, it’s just a wrapper around a concrete type. In addition to the concrete type, the interface contains an extra array of ...

Read more ⟶

Secure DNS

Technology

TL;DR: Use a VPN if you really care. Hey, you over there! Want to take something that works perfectly well and make it more complicated? Sure ya do! Oh, need a little more convincing? Okay ...

Read more ⟶