Skip to content

Instantly share code, notes, and snippets.

View cowlicks's full-sized avatar
💭
SEE TRANSLATION

cowlicks

💭
SEE TRANSLATION
View GitHub Profile
@cowlicks
cowlicks / runlast.lua
Last active November 17, 2024 23:48
Vim Plugin to rerun last shell-command in last vim terminal buffer
-- Rerun last command plugin
-- Unlike the python, this removes the scrollback in the terminal
local M = {}
-- Store the last terminal buffer job id
M.last_terminal_chan_id = nil
-- Function to record terminal job id when terminal is opened
local function record_terminal_id()
local buf = vim.api.nvim_get_current_buf()
@cowlicks
cowlicks / nix_db_schema.md
Last active November 4, 2024 19:00
Nix entity relationship diagram
  erDiagram
    ValidPaths {
        int id PK
        string path
        string hash
        int registrationTime
        string deriver
        int narSize
        int ultimate
@cowlicks
cowlicks / data_entry.py
Created August 15, 2015 18:13
tkinter gui for data entry
#! /bin/python
'''
TODO:
* Add database insert.
* Add binding for the tab button to switch to the next 'non held' entry field.
* Add functionality to hold buttons.
* Add escape key functionality.
'''
from Tkinter import *
@cowlicks
cowlicks / Dockerfile
Last active September 11, 2023 19:23
Safely share your SSH access while building a Dockerfile using socat to forward ssh-agent's SSH_AUTH_SOCK
FROM python:3-stretch
COPY . /app
WORKDIR /app
RUN mkdir -p /tmp
# install socat and ssh to talk to the host ssh-agent
RUN apt-get update && apt-get install git socat openssh-client \
# create variable called SSH_AUTH_SOCK, ssh will use this automatically
@cowlicks
cowlicks / bash_location_agnostic.sh
Created June 22, 2023 17:54
Location agnostic bash script. Demonstrate using paths relative to script, and working directory. Return to working directory on script end.
#!/usr/bin/env bash
# exit on first failure
set -e
# uncomment to enable debug mode
#set -x
# The location this script is run from
OG_DIR=$(pwd)
# The directory that this script is in
@cowlicks
cowlicks / jwt_postgrahile_ad_hoc.sql
Created December 6, 2022 16:43
manually set email to run ad hoc pstgresql commands with user configured via postgraphile
BEGIN;
SET LOCAL "jwt.claims.whatever" to 'blake.foo@stuff.com';
SELECT the_name_of_your_function('yo-10');
COMMIt;
@cowlicks
cowlicks / Makefile
Created December 5, 2022 20:45
Simple python project dependency management
PY_FILES := $(shell find . -name '*.py')
venv: venv/bin/activate
venv/bin/activate: requirements.txt
test -d venv || python3 -m venv venv
venv/bin/python -m ensurepip
venv/bin/python -m pip install -r requirements.txt
touch venv/bin/activate
test: venv
@cowlicks
cowlicks / move_thing.py
Created July 25, 2019 23:33
python mover of things
def move_thing(src_mod, dest_mod, find_str):
import os
import rope.base.project
from rope.base import libutils
from rope.refactor import move
project = rope.base.project.Project(os.getcwd())
origin = libutils.path_to_resource(project, src_mod)
destination = libutils.path_to_resource(project, dest_mod)
@cowlicks
cowlicks / timeit.rs
Last active April 10, 2022 22:22
Rust. Simple macro for timing an expression
use log::info;
macro_rules! timeit {
($format_str:expr, $code:expr) => {
{
let start = Utc::now();
let out = $code;
info!(
$format_str,
(Utc::now() - start).num_milliseconds()
@cowlicks
cowlicks / qs.rs
Created January 24, 2022 00:43
Quicksort implemented in Rust
use core::fmt::Debug;
fn quick_sort<T: Ord + Clone + Debug>(mut list: Vec<T>) -> Vec<T> {
if list.len() < 2 {
return list;
}
let pivot = list.pop().unwrap();
let mut left: Vec<T> = vec![];