Skip to content

Instantly share code, notes, and snippets.

jjb /
Created May 14, 2021
How to build a Dockerfile and open a shell in it
docker build -t foo . && docker run -it foo
View How to install mimemagic >= 0.3.7 with
sudo port selfupdate
sudo port install shared-mime-info
sudo mkdir -p /usr/local/share/mime/packages/
sudo ln -s /opt/local/share/mime/packages/ /usr/local/share/mime/packages
# minimal test to see if it's working - if it is, now include in Gemfile like normal
gem install mimemagic -v '0.3.7' --source ''
View How to list all currently open files in ruby.rb
ObjectSpace.each_object(File) do |f|
unless f.closed?
printf "%s: %d\n", f.path, f.fileno
View dns.rb
# save in ~/bin/dns and chmod 755
unless ARGV[0]
print `networksetup -getdnsservers Wi-Fi`
servers = case ARGV[0]
View Safely setting NOT NULL on a column in Postgres

This recipe is a work in progress and has never been run as-is.

  • timeouts are in ms
  • lock timeout: in postgres, when a statement that wants a restrictive lock waits on another lock, other statements that want locks can't jump the queue. so even though the statement that is waiting might only take a very short amount of time, when it starts running, while it is waiting no other statements can begin. So we set the lock timeout pretty low and retry if we don't get it.
  • statement timeout: we set a short statement timeout before statements which do lock and which we expect to take a short amount of time, just in case something about our assumptions/understanding is wrong and the statement ends up taking a long time. if this happens the statement will bail early without causing harm, and we can investigate what is wrong with
View How to deal with ruby and postgres segmentation fault on MacOS when using macports or

Here's something I spent a long time debugging, so I'm making this gist to help others find the solution when searching.


postgres 12 on MacOS will cause crashes when forking. The solution is to do one of these two things:

  • add gssencmode: "disable" to database.yml
  • if using homebrew: uninstall postgres, update homebrew, reinstall postgres

Here's some discussion:

View gist:d65bc10bb55fed7e4cafb07be035c10a
test results for
run 1 - nothing
273.3 MB
27.4 MB
27.3 MB
27.3 MB
27.3 MB
27.3 MB
View check the syntax in a tree of files.rb
lines = `find . -name '*.rb'`.split("\n")
problems = []
lines.each_slice(100) do |slice|
threads = []
slice.each do |l|
threads << do
result = `ruby -c #{l}`
if "Syntax OK" == result.strip
print "."
View how to instrument graphql ruby with scout.rb
class GraphqlController < ApplicationController
def create
ScoutApm::Transaction.rename("Graphql/" + params["_json"].first["operationName"])
View delete all branches on a github page.js
buttons = document.getElementsByClassName("js-branch-delete-target text-red");
for(var i = 0; i < buttons.length; i++)