Blog Posts
Copy A File From A Docker Container to the Host
Occasionally, I want to get a file from a Docker container back to the host system.
First, you need to get the container ID; you can do this using docker ps
.
Once you have that, use, docker cp
as follows:
docker cp <containerId>:/path/to/file/in/container path/on/host
Miscellaneous Postgres Commands
I switched over from SQLite to Postgres to power my site some months ago, and have found myself having to learn some new usage when interacting with the database. These are likely very old hat for anybody familiar with Postgres, but I find myself having to remind myself what they are.
Wezterm Dropdown in Gnome
In a previous article, I detailed how I use Wezterm.
One goal I had when switching to Wezterm to was to ensure I was able to continue using a dropdown terminal, and in that article, I detailed using the tdrop
utility to implement this... but with the caveat that it didn't work well under the Wayland environment.
Well, I've now found a better solution.
Configuring PHP.INI settings in a PHP-FPM pool
I consume PHP via Docker primarily, and to keep it manageable, I generally use a PHP-FPM container, with a web server sitting in front of it. I learned something new about PHP configuration recently that (a) made my day, and (b) kept me humble, as I should have known this all along.
How I use Wezterm
I use the terminal a lot. Until the past few years, I basically used only a browser and a terminal. (The primary changes in the past couple years are that I'm using Logseq for tracking notes and todos, and now use native apps for Zoom and Slack.)
Today I'm going to detail my exploration of Wezterm, my current daily driver.
Initializing ZendHQ JobQueue During Application Deployment
In the past few years, I've transitioned from engineering into product management at Zend, and it's been a hugely rewarding experience to be able to toss ideas over the fence to my own engineering team, and have them do all the fiddly tricky bits of actually implementing them!
Besides packaging long-term support versions of PHP, we also are publishing a product called ZendHQ. This is a combination of a PHP extension, and an independent service that PHP instances communicate with to do things like monitoring and queue management.
It's this latter I want to talk about a bit here, as (a) I think it's a really excellent tool, and (b) in using it, I've found some interesting patterns for prepping it during deployment.
Deferring JS Until Script Load
A common recommendation when using JavaScript is to put your <script>
elements at the end of your HTML, including those that reference a JS file on your site.
One issue, however, is that if you then have a script that references a function from another script, how do you ensure the other script is loaded already?
Addressing AWS S3 Sync Folder Issues
I have used S3 and S3-compatible storage for a long time now, and have used both s3cmd and the AWS CLI tooling to sync, either between buckets or with a local filesystem. It generally "just works".
Except that when it doesn't, it's really hard to debug.
Fixing Audio Choppiness in OBS Studio on Linux
I occasionally record screencasts for work — some of these are used for the website as demos/training material, and sometimes they're used internally by our various technical teams. When I record, I use OBS Studio, which works brilliantly.
However, since the last time I recorded, I've upgrade my operating system, as well as switched over to Wayland, and I discovered after doing a recording session that my audio was super choppy.
This is how I fixed it.
Advent 2023: tmux
I use terminal-based programs a lot.
It should be obvious to anyone following my blog that I use editors in the vim family. But there are a slew of other tools I use from the CLI: docker, phpunit, phpcs, psalm, pandoc, ssh, ngrok, and more. Often, I'll be editing a file, and need to run another program, and reference what I'm editing: running unit tests, linters, or static analysis often fall in this category.
Sure, I could use a tabbed terminal, but then I can't have the results of running the program right next to the editor. So for this, I use a terminal multiplexer; specifically, I use tmux.