Skip to content

Instantly share code, notes, and snippets.

@3v1n0
3v1n0 / map-string-any-kotlin-serialization-tests.kt
Last active Mar 25, 2021
Kotlin Map<String, Any?> (andy Any type in general) (de)serialization tests with both Binary (CBOR) and JSON support
View map-string-any-kotlin-serialization-tests.kt
import kotlinx.serialization.*
import kotlinx.serialization.descriptors.SerialDescriptor
import kotlinx.serialization.encoding.CompositeDecoder
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder
import kotlinx.serialization.json.*
import kotlin.reflect.KType
import kotlin.reflect.full.isSubtypeOf
import kotlin.reflect.full.starProjectedType
@3v1n0
3v1n0 / fitbit-svg-to-grayscale-magic-png.sh
Last active Jan 6, 2021
Simple script to convert SVG icons to fitbit Grayscale Magic compatible PNGs
View fitbit-svg-to-grayscale-magic-png.sh
#!/bin/bash
# Simple script to convert SVG icons to fitbit grayscale magic compatible PNGs
# Usage: convert-svg.sh [icons-path]
#
# Author: Marco Trevisan (Treviño) <mail@3v1n0.net>
# Licensed under GPLv3
PNG_SIZE=${PNG_SIZE:-80}
icons_path=${1:-$(dirname "$0")}
@3v1n0
3v1n0 / .zshrc
Created Jun 6, 2020
ZSH zinit configuration with powerlevel10k instant mode
View .zshrc
typeset -g MY_ZSH_CONFIG_PATH=${ZDOTDIR:-$HOME/.config/zsh}
typeset -g MY_ZINIT_PATH=${ZDOTDIR:-$HOME/.local/share}/zinit
HISTFILE=$MY_ZSH_CONFIG_PATH/zsh_history
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
if [ ! -f $MY_ZINIT_PATH/bin/zinit.zsh ] && ((${+commands[git]})); then
@3v1n0
3v1n0 / .zshrc
Last active Jun 6, 2020
Broken zsh syntax highlighting when using async zinit (turbo mode) + powerlevel10k and zsh-autosuggestions
View .zshrc
typeset -g MY_ZSH_CONFIG_PATH=${ZDOTDIR:-$HOME/.config/zsh}
typeset -g MY_ZINIT_PATH=${ZDOTDIR:-$HOME/.local/share}/zinit
HISTFILE=$MY_ZSH_CONFIG_PATH/zsh_history
if [ ! -f $MY_ZINIT_PATH/bin/zinit.zsh ] && ((${+commands[git]})); then
__zinit_just_installed=1
mkdir -p $MY_ZINIT_PATH && chmod g-rwX "$MY_ZINIT_PATH" && \
git clone --depth=1 https://github.com/zdharma/zinit.git $MY_ZINIT_PATH/bin
fi
@3v1n0
3v1n0 / fish-shell-bash-complete-function.sh
Last active May 20, 2020
Use bash completions in Fish Shell
View fish-shell-bash-complete-function.sh
#!/usr/bin/fish
# You can add this to your ~/.config/fish/config.fish
function __fish_complete_bash
set cmd (commandline -cp)
bash -c "source get-bash-completions.sh; get_completions '$cmd'"
end
# Set the tool to use bash completions
@3v1n0
3v1n0 / io_uring-ops-checker.c
Last active Apr 27, 2020
Dynamically check for io_uring operations availability
View io_uring-ops-checker.c
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <liburing.h>
typedef enum {
TEST_URING_OP_NONE = 0,
@3v1n0
3v1n0 / argbToRgbaConversionTests.js
Last active Mar 12, 2020
ARGB to RGBA conversion tests in Javascript
View argbToRgbaConversionTests.js
function argbToRgba(src, inline=false) {
let dest = inline ? src : new Uint8Array(src.length);
let srcView = new DataView(src.buffer);
let destView = new DataView(dest.buffer);
for (let i = 0; i < src.length; i += 4) {
let argb = srcView.getUint32(i);
let rgba = (argb & 0x00FFFFFF) << 8 |
(argb & 0xFF000000) >>> 24;
destView.setUint32(i, rgba);
@3v1n0
3v1n0 / vscode-unused-workspace-storage-cleanup.sh
Last active Feb 5, 2021
VSCode unused workspaceStorage cleanup
View vscode-unused-workspace-storage-cleanup.sh
#!/bin/bash
CONFIG_PATH=~/.config/Code
for i in $CONFIG_PATH/User/workspaceStorage/*; do
if [ -f $i/workspace.json ]; then
folder="$(python3 -c "import sys, json; print(json.load(open(sys.argv[1], 'r'))['folder'])" $i/workspace.json 2>/dev/null | sed 's#^file://##;s/+/ /g;s/%\(..\)/\\x\1/g;')"
if [ -n "$folder" ] && [ ! -d "$folder" ]; then
echo "Removing workspace $(basename $i) for deleted folder $folder of size $(du -sh $i|cut -f1)"
@3v1n0
3v1n0 / vscode-keybindings-alt+hjkl-zation.py
Last active Dec 9, 2020
Make VSCode default key-bindings more HJLK friendly using Alt to alternate to them
View vscode-keybindings-alt+hjkl-zation.py
#/usr/bin/python3
import json
import sys
import os
import re
import copy
input = sys.argv[1]
@3v1n0
3v1n0 / fattura-elettronica.xml
Created Oct 21, 2019
Freedesktop MIME info for Italian Electronic Invoice (Fattura Elettronica) XML files
View fattura-elettronica.xml
<!--
To associate the Italian Electronic Invoices (Fattura Elettronica) to a given
program, copy this to
~/.local/share/mime/packages/fattura-elettronica.xml
And run
update-mime-database ~/.local/share/mime
Then those .xml files may have a different behavior than standard .xml files
-->