Skip to content

Instantly share code, notes, and snippets.

View gabrielfalcao's full-sized avatar
👨‍💻
probably writing tests

Gabriel Falcão gabrielfalcao

👨‍💻
probably writing tests
View GitHub Profile
@gabrielfalcao
gabrielfalcao / kubectl-forward-all-service-ports.sh
Created June 14, 2023 08:06
shell script to forward all the kubernetes service ports to localhost while automatically handling port numbers < 1024 (e.g.: 443 to 8443)
#!/usr/bin/env bash
for json in $(kubectl get svc -o json | jq -c '.items[] | select(.kind == "Service") | {name:.metadata.name, port:.spec.ports[0].port}'); do
service=$(echo "${json}" | jq .name | tr -d '"')
remote_port=$(echo "${json}" | jq .port | tr -d '"')
local_port=$((remote_port))
if [ $((local_port)) -lt 1024 ]; then
local_port=$((local_port + 8000))
fi
echo kubectl port-forward "service/${service}" "${local_port}:${remote_port}"
done
--ignore-dir=node_modules/
--ignore-dir=.venv/
--ignore-dir=.venv
--ignore-dir=*.egg-info
--ignore-dir=...
--ignore-dir=.caches
--ignore-dir=man
--color-colno=137
--type-add=rs=.rs
#!/usr/bin/env bash
set -exu

>>> from signal import Signals >>> possible_signals = [(name, getattr(signal, name)) for name in dir(Signals) if name == name.upper()] >>> valid_signals = [(name, signal) for name, signal in possible_signals if isinstance(signal, Signals)] >>> len(valid_signals) 41 >>> [(name, signal.real) for name, signal in valid_signals] [('SIGABRT', 6),

@gabrielfalcao
gabrielfalcao / ffmpeg_frames.sh
Created January 7, 2023 06:26 — forked from loretoparisi/ffmpeg_frames.sh
Extract all frames from a movie using ffmpeg
# Output a single frame from the video into an image file:
ffmpeg -i input.mov -ss 00:00:14.435 -vframes 1 out.png
# Output one image every second, named out1.png, out2.png, out3.png, etc.
# The %01d dictates that the ordinal number of each output image will be formatted using 1 digits.
ffmpeg -i input.mov -vf fps=1 out%d.png
# Output one image every minute, named out001.jpg, out002.jpg, out003.jpg, etc.
# The %02d dictates that the ordinal number of each output image will be formatted using 2 digits.
ffmpeg -i input.mov -vf fps=1/60 out%02d.jpg
https://linktr.ee/falcaogabriel
@gabrielfalcao
gabrielfalcao / pub.asc
Created October 28, 2022 07:44
🎃📆
457256DB220D76CA139A6F837A9C17E806F18A32
@gabrielfalcao
gabrielfalcao / rename-inline.sh
Created May 18, 2022 17:37
A very simple CLI script for code refactoring. Basically combines ack + gnu-sed
#!/bin/bash
original="$1"
replacement="$2"
echo "Replacing $original with $replacement"
ack -l $original * | cut -d: -f1 | uniq | xargs gsed -i "s,$original,$replacement,g"
if [ -z $3 ]; then
original=`echo $original | tr '[:lower:]' '[:upper:]'`
@gabrielfalcao
gabrielfalcao / fork-is-evil-vfork-is-good-afork-would-be-better.md
Created February 28, 2022 19:10 — forked from nicowilliams/fork-is-evil-vfork-is-good-afork-would-be-better.md
fork() is evil; vfork() is goodness; afork() would be better; clone() is stupid

I recently happened upon an implementation of popen() (different API, same idea) 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.

So here goes.

Long ago, I, like many Unix fans, thought that fork(2) and the fork-exec process spawning model were the greatest thing, and the Windows sucked for only having [exec*()](http://pubs.opengroup.org/onlinepubs/9699919