Skip to Page Content
Skip to Navigation
Skip to Navigation
Skip to Footer
about
blog
about
blog
gpg.asc
ssh.pub
Picking the Widevine Locks: Acquiring and Using an L3 CDM
Jan 8th, 2024
January 8th, 2024
Picking the Widevine Locks: Acquiring and Using an L3 CDM
December 29th, 2023
Crypto Crash Course: Bitcoin, the Blockchain, and Proof of Work
February 12th, 2023
Creating WireGuard jails with Linux network namespaces
January 3rd, 2023
x509 certificate authentication using OpenSSL and Apache
October 23rd, 2022
Using OpenVPN and client authentication certificates to connect to Azure VPN Gateway
May 15th, 2022
Real-time Communications via Server-Sent Events: Mercure, Apache, PHP, and Symfony in Production
April 3rd, 2021
Using Rust to seed RSA and X25519 cryptographic keys wrapped in a GPG certificate
March 18th, 2021
Integrating the new Symfony Authenticator with Microsoft Active Directory via LDAPS
March 14th, 2021
An Ansible role to configure ProtonMail-Bridge (headless) with Postfix
February 7th, 2021
Vagrantfile Configuration Tips & Tricks
February 5th, 2021
Full-stack Web Development with AracPac
January 4th, 2021
Exporting asset attachments from SolarWinds Web Help Desk
March 28th, 2019
Adding complex fields to WordPress custom post types
January 13th, 2019
Forcing Craft CMS 3's Redactor field to automatically display img alt text
January 6th, 2019
Dirculese update: PrefixHandler and SuffixHandler
November 30th, 2018
Building a Gmail message parser using Google Apps Script
November 4th, 2018
Introducing Dirculese, a Desktop Organizer Written in Go
November 2nd, 2018
Building Machine Images with Packer
October 26th, 2018
A PHP Wrapper for the Clockify API
September 17th, 2018
Marketing Automation with SendGrid
March 8th, 2018
5 Command Line Techniques to Be More Productive
December 8th, 2017
Infrastructure as Code: Provisioning and Configuration Management with Vagrant, Terraform, and Ansible
«
1
2
›
»