Skip to content

Instantly share code, notes, and snippets.

@giner
giner / HelloFeignmTLS.java
Last active April 3, 2024 09:20
Java: Feign Client mTLS (by enabling custom keystore and truststore for a specific enpoint)
// How to test
//
// Update uriPrefix, keystoreFile, keystorePassword, truststoreFile, truststorePassword with your values and run:
// curl -L -O https://repo1.maven.org/maven2/io/github/openfeign/feign-core/11.6/feign-core-11.6.jar
// java -cp feign-core-11.6.jar HelloFeignmTLS.java
// Feign
import feign.Feign;
import feign.RequestLine;
@giner
giner / lib_y2j.sh
Last active February 15, 2024 02:17
How-to YAML
# Usage:
# source lib_y2j.sh
# cat some.yml | y2j
# cat some.yml | ys2j
# y2j some.yml
# ys2j some.yml
# Reading a single YAML document
y2j () { ruby -r yaml -r json -e 'puts JSON.pretty_generate(YAML.load(ARGF))' -- "$@"; }
@giner
giner / fix_vim.sh
Last active January 24, 2024 09:47
VIM: make vim useful
## VIM: Unbound copy/paste buffer (default is 50 lines or 10 Kbyte)
echo "set viminfo='100,h" >> ~/.vimrc
## VIM: Increase max tabs limit (useful with `vim -p`, default is 10)
echo "set tabpagemax=100" >> ~/.vimrc
## VIM: Remember more commands and search patterns in history (default is 50)
echo "set history=1000" >> ~/.vimrc
## VIM: Highlight trailing witespaces
@giner
giner / install_go.sh
Last active August 28, 2023 09:20
How-to Golang
VERSION=1.21.0
PLATFORM=$(uname -s | tr [:upper:] [:lower:]) # linux / darwin
SRC_URL="https://dl.google.com/go/go$VERSION.$PLATFORM-amd64.tar.gz"
DST_TGZ="/tmp/go.tgz"
# Download
if which curl >/dev/null; then curl "$SRC_URL" -o "$DST_TGZ"; else wget "$SRC_URL" -O "$DST_TGZ"; fi
# Extract
@giner
giner / drawio_mime_type.sh
Last active August 17, 2023 13:50
Give *.drawio files MIME type to make application association work
#!/bin/sh
# drawio.xml is taken from Draw.io debian package
cat > ~/.local/share/mime/packages/drawio.xml << 'EOF'
<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/vnd.jgraph.mxfile">
<glob pattern="*.drawio"/>
<comment>draw.io Diagram</comment>
<icon name="x-office-document" />
@giner
giner / decat.sh
Last active May 15, 2023 00:17
Encrypt / Decrypt files with OpenSSL
#!/bin/bash
# Inspired by https://www.meixler-tech.com/web-browser-based-file-encryption-decryption.html
set -eu
openssl_enc_opts=()
file_no_ext=$(basename "$@" .enc)
[[ $# != 1 ]] && { echo "Usage: $(basename $0) FILE_NAME.enc"; exit 1; }
@giner
giner / fix_ibus-mozc.sh
Last active April 8, 2023 08:04
JAPANESE: Make ibus-mozc remember last used mode
# Make ibus-mozc remember the last used mode (e.g. hiragana) and not switch back to Alphabet on restart
# See https://github.com/google/mozc/issues/381
cd $(mktemp -d)
apt source ibus-mozc
cd mozc-*/
patch src/unix/ibus/property_handler.cc << 'EOF'
--- src/unix/ibus/property_handler.cc.orig 2020-10-28 17:21:18.000849932 +0900
+++ src/unix/ibus/property_handler.cc 2020-10-28 17:21:34.172696046 +0900
@@ -80,7 +80,7 @@
@giner
giner / cache.py
Last active September 2, 2022 18:48
Python: Simple way to cache function result using decorator
#!/usr/bin/python
def cache(func):
def wrapper(*args, **kwargs):
if hasattr(func, "cache"):
return func.cache
func.cache = func(*args, **kwargs)
return func.cache
return wrapper
@giner
giner / configure_gnome.sh
Last active May 19, 2022 04:25
Gnome: configure
## Move window buttons to the left (mimic Unity)
gsettings set org.gnome.desktop.wm.preferences button-layout 'close,maximize,minimize:'
## Show date, week day, week number
gsettings set org.gnome.desktop.interface clock-show-weekday true
gsettings set org.gnome.desktop.calendar show-weekdate true
## Assign '<Ctrl><Shift>d' to detach a tab in gnome-terminal
GSETTINGS_SCHEMA=org.gnome.Terminal.Legacy.Keybindings
GSETTINGS_PATH=/org/gnome/terminal/legacy/keybindings/
@giner
giner / xorg_remap_play_to_micmute.sh
Last active November 30, 2021 03:46
Remap Play button to Mic Mute (primarily for Bluetooth Headsets)
#!/bin/sh
# NOTE: This change won't persist if package xkb-data is reinstaled or updated
sudo sed -i '/key <I208>/s/\bXF86AudioPlay\b/XF86AudioMicMute/' /usr/share/X11/xkb/symbols/inet