Skip to content

Instantly share code, notes, and snippets.

@tomviner
tomviner / README.md
Last active June 3, 2025 13:30 — forked from oryband/prepare-commit-msg
Appends branch name to git commit message. `cp prepare-commit-msg .git/hooks/prepare-commit-msg`

Clone

git clone git@gist.github.com:faf373e5c05a8cb4bc49c048504dbea6.git git-hook-prepare-commit-msg
@tomviner
tomviner / .gitignore
Last active November 4, 2023 23:42
Instal latest patch versions of python
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
@tomviner
tomviner / s3_test.py
Created September 11, 2012 14:30
Simple example of an S3 django storage backend saving a file from local and url
import os
import urllib2
import contextlib
import StringIO
from django.core.files.storage import get_storage_class, FileSystemStorage
from django.core.files import File
from django.conf import settings
from galleries.models import GalleryImage
@tomviner
tomviner / page.html
Created March 21, 2013 15:26
DDoS protection by CloudFlare
$ GET http://xyz.com/14015/forxxx
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<title>Just a moment...</title>
<link rel="stylesheet" media="screen" href="/cdn-cgi/styles/js-challenge/error.css" type="text/css">
</head>
<body>
@tomviner
tomviner / pretty.py
Last active November 29, 2021 12:42
Parse ps output to show top CPU, memory and process count, summed over identically named processes
import string
def pretty_size(size):
"size in bytes"
size = int(size)
units = ' KMGTPE'+string.lowercase[::-1]
bytes = 'B'
i = 0
while size>1024:
@tomviner
tomviner / day_14.py
Last active December 27, 2019 18:07
Advent of Code 2019 Day 14
import math
from collections import Counter
from funcy import post_processing
from parse import parse
from scipy.optimize import minimize_scalar
@post_processing(dict)
def parse_input(input_str):
@tomviner
tomviner / Dockerfile
Created November 29, 2019 20:16
Compile requirements in docker container - to force Linux platform.
FROM python:3.7-slim-stretch AS builder
RUN python -m pip install -U pip setuptools wheel pip-tools
CMD ["/reqs/compile-all.sh"]
@tomviner
tomviner / README.md
Last active August 9, 2019 23:35
Incompatibility between Pytest 5 and eventlet

Setup

pip install pytest==5.0.1 eventlet

See error

pytest --help | cat
from itertools import count, takewhile
from math import sqrt
import time
try:
# Python 2 compat
from itertools import ifilter as filter
except ImportError:
pass
@tomviner
tomviner / gcal-many-weeks.js
Last active December 24, 2016 01:25
Google Calendar: Show more than 4 weeks at a time.
function trigger(ename, elem){
if (!elem) {
console.log("Cannot " + ename + " element missing");
}
console.log("Trigger " + ename + " on " + elem);
console.log(elem);
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent(ename, true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
elem.dispatchEvent(evt)
}