The intent is to define terse, standards-supported names for AWS regions.
#!/bin/sh | |
# sh gifenc.sh input.mp4 output.gif | |
# Optionally accepts width / height (one or both). | |
palette="/tmp/palette.png" | |
filters="fps=15" | |
if [ -n "$3" ]; then | |
if [ -n "$4" ]; then | |
filters="$filters,scale=$3:$4" |
#!/bin/bash | |
VG_NAME="vg0" | |
SNAPSHOT_SIZE="+2G" | |
BACKUP_LOCATION="/backups" | |
DAYSTOKEEP=7 | |
for lv in $(lvs --noheadings --nosuffix --aligned --separator , -o lv_name,lv_attr | grep -v ,s | cut -d, -f1) | |
do | |
LV_SIZE="$(lvs --units m --noheadings --nosuffix --aligned --separator , -o lv_name,lv_size | grep "$lv" | cut -d',' -f2 | cut -d. -f 1)" # LV size in MB |
This has been moved into the official Chef docs:
https://docs.chef.io/custom_resources_notes.html
This is by far the most recommended way of writing resources for all users. There are two gotchas which we're working through:
- For helper functions that you used to write in your provider code or used to mixin to your provider code, you have to use an
action_class do ... end
block.
A quick guide to write a very very simple "ECHO" style module to redis and load it. It's not really useful of course, but the idea is to illustrate how little boilerplate it takes.
Step 1: open your favorite editor and write/paste the following code in a file called module.c
#include "redismodule.h"
/* ECHO <string> - Echo back a string sent from the client */
int EchoCommand(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) {
Creates an alias on the loopback interface (lo0) with the IP 127.0.0.2 on macOS.
- Install the plist to:
/Library/LaunchDaemons/com.runlevel1.lo0.127.0.0.2.plist
- Set mode:
sudo chmod 0644 /Library/LaunchDaemons/com.runlevel1.lo0.127.0.0.2.plist
- Set owner:
sudo chown root:wheel /Library/LaunchDaemons/com.runlevel1.lo0.127.0.0.2.plist
- Load:
sudo launchctl load /Library/LaunchDaemons/com.runlevel1.lo0.127.0.0.2.plist
Release in Chef 12.9.41 via PR #4741 core chef now has a feature which has been available in Poise for awhile, which is that notifications from within resources will now notify resources in outer run contexts. This means you can write a recipe with a service resource and send a notification to it from a resource that you write.
Notifications will bubble up from arbitrarily nested resources, so users that write resources that wrap resources which wrap your resource will still find the service resource in your default recipe.
At the same time the resources collection #find()
and #lookup
methods and the more commonly-used DSL method resources("service[ntpd]")
has been changed to also match
How To Sync Your Movie to the Professional Jokes By Professional Comedy Professionals (AKA RiffTrax)
This guide started off as a sort of checklist for myself to try to refine, and speed up the process. I'm sure that there are a good number of things that can be improved upon, but in my opinion, the steps below produce pretty consistently good results. Hopefully this will help
I recently happened upon a very interesting implementation of popen()
(different API, same idea) called popen-noshell using clone(2)
, and so I opened an issue requesting use of vfork(2)
or posix_spawn()
for portability. It turns out that on Linux there's an important advantage to using clone(2)
. I think I should capture the things I wrote there in a better place. A gist, a blog, whatever.
This is not a paper. I assume reader familiarity with
fork()
in particular and Unix in general, though, of course, I link to relevant wiki pages, so if the unfamiliar reader is willing to go down the rabbit hole, they should be able to come ou
[ Update 2025-03-24: Commenting is disabled permanently. Previous comments are archived at web.archive.org. ]
Most of the terminal emulators auto-detect when a URL appears onscreen and allow to conveniently open them (e.g. via Ctrl+click or Cmd+click, or the right click menu).
It was, however, not possible until now for arbitrary text to point to URLs, just as on webpages.