Skip to content

Instantly share code, notes, and snippets.

import logging
import sqlalchemy
import sys
from sqlalchemy.engine.base import Engine
import sqlalchemy.event
class ExplainPlan(object):
"""
Context manager that outputs the postgres explain plan for every
query executed within to stdout or a file, if provided with "logfile"
@jfrost
jfrost / slony_set_add_table_sequence.sql
Last active August 29, 2015 14:07
Generate your SET ADD TABLE and SET ADD SEQUENCE slonik statements for initial subscription. This will only add tables with primary keys.
SELECT 'SET ADD TABLE (SET id = 1, origin = 1, FULL QUALIFIED NAME = ''' || nspname || '.' || relname || ''', comment=''' || nspname || '.' || relname || ' TABLE'');' FROM pg_class JOIN pg_namespace ON relnamespace = pg_namespace.oid WHERE relkind = 'r' AND relhaspkey AND nspname NOT IN ('information_schema', 'pg_catalog') ORDER BY pg_total_relation_size(pg_class.oid) DESC;
SELECT 'SET ADD SEQUENCE (SET id = 1, origin = 1, FULL QUALIFIED NAME = ''' || n.nspname || '.' || c.relname || ''', comment=''' || n.nspname || '.' || c.relname || ' SEQUENCE'');' FROM pg_class c, pg_namespace n WHERE c.relnamespace = n.OID AND c.relkind = 'S';
WITH btree_index_atts AS (
SELECT nspname, relname, reltuples, relpages, indrelid, relam,
regexp_split_to_table(indkey::text, ' ')::smallint AS attnum,
indexrelid as index_oid
FROM pg_index
JOIN pg_class ON pg_class.oid=pg_index.indexrelid
JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
JOIN pg_am ON pg_class.relam = pg_am.oid
WHERE pg_am.amname = 'btree'
),
@tilo
tilo / prettify_json.rb
Created September 17, 2012 18:37
Ruby script to pretty print JSON on the command line (comes with Ruby's json Gem)
#!/usr/bin/env ruby
require 'json'
require 'fileutils'
include FileUtils
# Parses the argument array _args_, according to the pattern _s_, to
# retrieve the single character command line options from it. If _s_ is
# 'xy:' an option '-x' without an option argument is searched, and an
# option '-y foo' with an option argument ('foo').
@MohamedAlaa
MohamedAlaa / tmux-cheatsheet.markdown
Last active March 14, 2026 05:26
tmux shortcuts & cheatsheet

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname
@ruckus
ruckus / gist:2293434
Created April 3, 2012 16:36
Basic setup of WAL-E for continuous archiving and recovery

WAL-E needs to be installed on all machines, masters and slaves.

How to install WAL-E

Only one machine, the master, writes WAL segments via continuous archiving. The configuration for the master postgresql.conf is:

archive_mode = on
archive_command = 'envdir /etc/wal-e.d/env wal-e wal-push %p'
archive_timeout = 60

tmux cheatsheet

As configured in my dotfiles.

start new:

tmux

start new with session name:

@netmute
netmute / README.md
Last active May 10, 2025 11:03
Game of Life in 140 chars of Ruby

Game of Life

An implementation of Conway's Game of Life in 140 characters of Ruby.

Author

Created by Simon Ernst (@sier).

@chrishamant
chrishamant / s3_multipart_upload.py
Created January 3, 2012 19:29
Example of Parallelized Multipart upload using boto
#!/usr/bin/env python
"""Split large file into multiple pieces for upload to S3.
S3 only supports 5Gb files for uploading directly, so for larger CloudBioLinux
box images we need to use boto's multipart file support.
This parallelizes the task over available cores using multiprocessing.
Usage:
s3_multipart_upload.py <file_to_transfer> <bucket_name> [<s3_key_name>]
@aemkei
aemkei / LICENSE.txt
Created August 9, 2011 17:30 — forked from 140bytes/LICENSE.txt
Game of Life - 140byt.es
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2011 YOUR_NAME_HERE <YOUR_URL_HERE>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE