Skip to content

Instantly share code, notes, and snippets.

View vesan's full-sized avatar

Vesa Vänskä vesan

View GitHub Profile
@chmolto
chmolto / transporter.py
Last active March 25, 2025 16:19 — forked from keshav-space/transporter.py
Migrate GitHub project between accounts
#
# Copyright (c) nexB Inc. and others. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# See http://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://aboutcode.org for more information about nexB OSS projects.
#
from traceback import format_exc as traceback_format_exc
import requests
@amkisko
amkisko / solid_queue_alive.rb
Created January 25, 2025 05:56
Rails solid_queue alive server livenessProbe readinessProbe kubernetes helper
class SolidQueueAliveServer
def initialize(host: nil, port: nil, engine: nil, logger: nil)
@host = host || "0.0.0.0"
@port = port || 7433
@engine = engine || "puma"
@logger = logger || Rails.logger
end
def run!
require "rackup"
@robconery
robconery / Book.md
Last active March 23, 2025 02:05
Obsidian Bujo Templates
title description author created updated
{{title}}
{{description}}
{{author}}
{"DATE:YYYY-MM-DD HH:mm:ss" => nil}
{"DATE:YYYY-MM-DD HH:mm:ss" => nil}

cover|150

@JonnieCache
JonnieCache / zellij_tab_title.zsh
Last active December 26, 2024 22:32
ZSH script to set the zellij tab title to the running command line, or the current directory
function current_dir() {
local current_dir=$PWD
if [[ $current_dir == $HOME ]]; then
current_dir="~"
else
current_dir=${current_dir##*/}
fi
echo $current_dir
}

Ruby: The future of frozen string literals

What is a literal?

In programming languages, literals are textual representations of values in the source code. This is a syntactical concept.

Some examples:

7 # integer literal
@amkisko
amkisko / debug_callbacks.rb
Last active February 6, 2025 09:12
Rails ActiveRecord and ActiveSupport callbacks wrapper for collecting metrics in pair with rspec
if ENV["DEBUG_CALLBACKS"]
Rails.application.eager_load!
ActiveRecord::Callbacks::CALLBACKS.each do |callback_type|
ApplicationRecord.descendants.each do |model|
kind, name = callback_type.to_s.split("_")
chain = model.__callbacks[name.to_sym]&.send(:chain)
filtered = chain&.select { |chain_callback| chain_callback.kind == kind.to_sym }
$callbacks_counter ||= {}
$callbacks_counter[model.name] ||= {}
@amkisko
amkisko / Gemfile
Last active March 24, 2025 15:16
ActiveAdmin v4 propshaft, importmap, stimulus, tailwindcss and ActionPolicy configuration
# NOTE: partial content required for Gemfile
gem "rails"
gem "propshaft"
gem "importmap-rails"
gem "stimulus-rails"
gem "tailwindcss-rails"
gem "action_policy"
@dhh
dhh / linux-setup.sh
Last active March 12, 2025 22:35
linux-setup.sh
# THIS LINUX SETUP SCRIPT HAS MORPHED INTO A WHOLE PROJECT: HTTPS://OMAKUB.ORG
# PLEASE CHECKOUT THAT PROJECT INSTEAD OF THIS OUTDATED SETUP SCRIPT.
#
#
# Libraries and infrastructure
sudo apt update -y
sudo apt install -y \
docker.io docker-buildx \
build-essential pkg-config autoconf bison rustc cargo clang \
@hSATAC
hSATAC / gcp-start-iap-tunnel-ssh-proxy-magic.sh
Last active February 6, 2025 02:13 — forked from netj/gcp-start-iap-tunnel-ssh-proxy-magic.sh
a nifty script for accessing with native SSH your IAP allowed Compute Engine instances
#!/usr/bin/env bash
# ~/.ssh/gcp-start-iap-tunnel-ssh-proxy-magic.sh
# a script to be used as SSH ProxyCommand to allow fully functional SSH access to any Google Cloud Compute Engine VMs allowing IAP access
#
# Author: Jaeho Shin <[email protected]>
# Created: 2022-10-31
# See also:
# - https://gist.github.com/netj/df4f9de1fefd254ab11979be7035b5d0/#readme
# - https://cloud.google.com/iap/docs/using-tcp-forwarding
#
@mitchellh
mitchellh / merge_vs_rebase_vs_squash.md
Last active March 18, 2025 21:32
Merge vs. Rebase vs. Squash

I get asked pretty regularly what my opinion is on merge commits vs rebasing vs squashing. I've typed up this response so many times that I've decided to just put it in a gist so I can reference it whenever it comes up again.

I use merge, squash, rebase all situationally. I believe they all have their merits but their usage depends on the context. I think anyone who says any particular strategy is the right answer 100% of the time is wrong, but I think there is considerable acceptable leeway in when you use each. What follows is my personal and professional opinion: