Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env ruby
if ARGV.length < 3
STDERR.puts("usage: #{$0} 'line_match' <perf.script.file> <symbol_file>")
STDERR.puts("line_match is a string submatch for a line line:")
STDERR.puts
STDERR.puts(" 40b1c5 [unknown] (/usr/local/bin/foobar (deleted))")
STDERR.puts
STDERR.puts("symbol_file is the output of `objdump -Tt /path/to/executable`")
@psanford
psanford / xdg-open
Created December 23, 2020 03:06
Drop in replacement for xdg-open that is 73% better than the official xdg-open
#!/bin/sh
echo -n "$1" | xclip -selection primary; notify-send "URL Copied" "$1"
@psanford
psanford / podman-unstable.nix
Created July 4, 2020 23:28
Overlay for using podman package and module from unstable channel. Useful if you are on nixos <= 20.03
{ pkgs, ... }:
let
unstable = import <nixos-unstable-small> { };
in {
disabledModules = [
"virtualisation/container-config.nix"
"virtualisation/containers.nix"
"virtualisation/podman.nix"
"virtualisation/nixos-containers.nix"
];
@psanford
psanford / setup-lspmode-gopls-ubuntu1804.sh
Created March 23, 2020 03:54
setup-lspmode-gopls-ubuntu1804.sh
sudo apt-get install -y emacs25-nox git
wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz
sudo tar -xf go1.14.1.linux-amd64.tar.gz -C /opt/
export PATH=/opt/go/bin:$HOME/go/bin:$PATH
GO111MODULE=on go get golang.org/x/tools/gopls@latest
git clone https://github.com/psanford/wormhole-william
@psanford
psanford / bpftrace-std-in-out-err.sh
Created September 20, 2019 19:01
bpftrace wrapper to trace reads from stdin and writes to stdout and stderr for a given process name
#!/bin/bash
COMM=$1
if [ -z "$COMM"] ; then
echo "usage: $0 <name_of_process>" >&2
exit 1
fi
script=''
@psanford
psanford / build-bpftrace.sh
Created August 9, 2019 18:30
build bpftrace on ubuntu 18.04
#!/bin/bash
set -e
set -x
# from https://www.joyfulbikeshedding.com/blog/2019-01-31-full-system-dynamic-tracing-on-linux-using-ebpf-and-bpftrace.html
apt-get install -y clang-7 libclang-7-dev llvm-7 llvm-7-dev
apt-get install -y bison cmake flex g++ git libelf-dev zlib1g-dev libfl-dev
@psanford
psanford / reformat-directory.el
Last active August 2, 2019 20:07
emacs batch reformat directory
(defun reformat-directory (dir)
"Reformat all files of extention in directory"
(interactive "D")
(let* ((ext ".go")
(ts)
(tmp-buffer)
;; disable find-file hooks to speed up processing:
;; don't run git commands on every file
(find-file-hook '())
@psanford
psanford / gopls-config.el
Last active June 23, 2022 20:48
gopls (go lsp-mode) config for emacs with useful optional packages.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Pre gopls/lsp-mode/go-mode setup
;;; This section installs use-package from melpa if it isn't
;;; already installed. You can skip this if you already have use-package
;; enable melpa if it isn't enabled
(require 'package)
(when (not (assoc "melpa" package-archives))
(setq package-archives (append '(("melpa" . "https://melpa.org/packages/")) package-archives)))
(package-initialize)
@psanford
psanford / examples.sql
Last active April 7, 2019 00:26
sqlite3 examples
.mode csv
-- import column names from first show
.headers on
-- show current settings
.show
.import transactions.csv transactions
select * from transactions;
@psanford
psanford / runc_rootless_with_overlayfs.sh
Last active February 7, 2019 23:02
runc rootless examples
#!/bin/bash
# Hello world of rootless runc with an overlayfs root file system.
# This will only work as is with kernels that allow overlayfs mounts
# from non-root accounts (such as ubuntu 18.04).
set -e
set -x
mkdir /tmp/runc-rootless