Skip to content

Instantly share code, notes, and snippets.

@grncdr
grncdr / minimal-schema-loader.rb
Created November 5, 2021 20:41
The lowest-overhead way to get all tables & columns out of an ActiveRecord db/schema.rb
#!/usr/bin/env ruby
# frozen_string_literal: true
module Nop
def nop(*methods)
methods.each do |method|
define_method(method) { |*_args| nil }
end
end
end
@grncdr
grncdr / machine.js
Last active May 5, 2020 15:44
Generated by XState Viz: https://xstate.js.org/viz
const fetchMachine = Machine({
id: 'Order',
type: 'parallel',
context: {
has_bank_info: false
},
states: {
payment: {
initial: 'estimated',
states: {
@grncdr
grncdr / machine.js
Last active August 6, 2019 15:46
Generated by XState Viz: https://xstate.js.org/viz
const invoiceMachine = Machine({
id: 'invoice',
initial: 'open',
states: {
open: {
on: {
CLOSE: {
target: 'closed',
actions: [
'open_next_invoice',
@grncdr
grncdr / set-retention-policies.sh
Created January 29, 2019 10:04
One liner for setting retention policy on a set of cloudwatch log groups
#!/bin/sh
PATTERN="my-app-production"
RETENTION_IN_DAYS="30"
for group_name in $(aws logs describe-log-groups | jq -r '.logGroups[]|.logGroupName' | grep $PATTERN); do
aws logs put-retention-policy --log-group-name $group_name --retention-in-days $RETENTION_IN_DAYS;
done
@grncdr
grncdr / git-stash-review
Created June 5, 2018 09:56
shell script for reviewing your git stashes
#!/bin/bash
RETAINED_STASHES="0"
REMAINING_STASHES=$(git stash list | wc -l)
while true; do
if [ "$REMAINING_STASHES" == "0" ]; then
echo "All done"
break
fi

Keybase proof

I hereby claim:

  • I am grncdr on github.
  • I am grncdr (https://keybase.io/grncdr) on keybase.
  • I have a public key ASDwB6kzUc-wV7jvW5RtkoQvY9KyPtA5q-7TqkxwERwkEAo

To claim this, I am signing this object:

@grncdr
grncdr / fix-id-sequences.sql
Created December 15, 2016 21:58
Found myself needing this today to fix a bunch of broken ID sequences in a Rails DB that it been incorrectly restored from a backup.
DO $$
var rows = plv8.execute("select tablename, pg_get_serial_sequence(tablename, 'id') seqname from " +
"(select tablename from pg_tables where schemaname = 'public' and tablename != 'schema_migrations') blah"
)
rows.forEach(function (row) {
plv8.execute("select setval('" + row.seqname + "', (select max(id) from " + row.tablename + ")+1, false)")
})
$$ LANGUAGE plv8;
@grncdr
grncdr / find-runscope-errors.js
Created August 1, 2016 12:18
Find errors from runscope
#!/usr/bin/env node
const https = require('https')
const accessToken = 'ACCESS_TOKEN'
const bucket = 'BUCKET_KEY'
const testId = 'TEST_ID'
function formatLink (result) {
const start = new Date(result.started_at * 1000).toISOString()
@grncdr
grncdr / typescript.vim
Created March 6, 2016 09:17
Load tsconfig.json and add extra syntastic args if found
function! LoadTsConfig()
let search_depth = 20
let dirname = fnamemodify(expand('%'), ":p:h")
while search_depth > 0 && dirname != "/"
let search_depth = search_depth - 1
let filename = dirname . "/tsconfig.json"
" while filename
if filereadable(filename)
let b:tsconfig_path = filename
let tsconfig = jsondecode(join(readfile(filename)))
@grncdr
grncdr / foo.pl
Created February 13, 2016 09:55
Script for cleaning up old homebrew deps
#!/usr/bin/env perl
use strict;
sub main {
my $keep = {};
loop($keep);
}
sub loop {