Skip to content

Instantly share code, notes, and snippets.

View demianbrecht's full-sized avatar

Demian Brecht demianbrecht

View GitHub Profile
@demianbrecht
demianbrecht / hook.py
Created January 14, 2015 16:26
Overriding stdlib http package
import sys
from importlib import invalidate_caches
from importlib.abc import MetaPathFinder
from importlib.machinery import ModuleSpec, SourceFileLoader
from os.path import dirname, join, abspath, isdir, isfile
class Finder(MetaPathFinder):
def find_spec(self, fullname, path, target=None):
data = [
{
"id": 0,
"name": "Americano",
"price": 1.99
},
{
"id": 1,
"name": "Espresso",
"price": 1.49
@demianbrecht
demianbrecht / arch-linux-install
Created March 30, 2020 04:20 — forked from mattiaslundberg/arch-linux-install
Minimal instructions for installing arch linux on an UEFI system with full system encryption using dm-crypt and luks
# Install ARCH Linux with encrypted file-system and UEFI
# The official installation guide (https://wiki.archlinux.org/index.php/Installation_Guide) contains a more verbose description.
# Download the archiso image from https://www.archlinux.org/
# Copy to a usb-drive
dd if=archlinux.img of=/dev/sdX bs=16M && sync # on linux
# Boot from the usb. If the usb fails to boot, make sure that secure boot is disabled in the BIOS configuration.
# Set swedish keymap
@demianbrecht
demianbrecht / names.java
Created March 25, 2019 19:42 — forked from egrim/names.java
Names to be sorted
public class Names {
public final static String[] NAMES = {
"Britteny Bisignano",
"Vania Millikan",
"Ching Atnip",
"Willie Happ",
"Renata Dower",
"Jillian Beauchemin",
"Garth Bixby",
"Jared Honea",
### Keybase proof
I hereby claim:
* I am demianbrecht on github.
* I am demianbrecht (https://keybase.io/demianbrecht) on keybase.
* I have a public key whose fingerprint is 9ACF B014 BA1E 5B49 39AC A3B2 14E4 E967 42F2 2903
To claim this, I am signing this object:
### Keybase proof
I hereby claim:
* I am demianbrecht on github.
* I am demianbrecht (https://keybase.io/demianbrecht) on keybase.
* I have a public key ASAjnGMDvetEdQG2Y1LqHHKt95oUkYpz6AMU0Hg6-AwDjwo
To claim this, I am signing this object:
@demianbrecht
demianbrecht / docker-clean
Created March 6, 2016 01:28
Dealing with docker "no space on device" error
#!/bin/sh
docker rm $(docker ps -aqf status=exited)
docker-machine ssh default docker volume rm $(docker-machine ssh default docker volume ls -qf dangling=true)
@demianbrecht
demianbrecht / metaclass_hackery
Created October 12, 2013 00:51
Some metaclass/abc hackery to implement an ABCMeta-like feature that's tailored more towards duck typing and doesn't use inheritance. Basically, when you want an object to "look" like another, but not "be" one. It's nasty proof of concept and I'd /highly/ suggest not using for /anything/. :)
import abc
def _new(mcls, name, bases, dct):
cls = type.__new__(mcls, name, bases, dct)
abstracts = set()
for k, v in filter(lambda o: not o[0].startswith('__'),
mcls.__looks_like__.__dict__.items()):
@demianbrecht
demianbrecht / gist:f94be5a51e32bb9c81e1
Created March 31, 2015 16:40
http.client content length
def _get_content_length(body, method):
# Get the content-length based on the body. If the body is "empty", we
# set Content-Length: 0 for methods that expect a body (RFC 7230,
# Section 3.3.2). If the body is set for other methods, we set the
# header provided we can figure out what the length is.
if not body:
# do an explicit check for not None here to distinguish between unset
# and set but empty
if method.upper() in _METHODS_EXPECTING_BODY or body is not None:
return 0
@demianbrecht
demianbrecht / cherrypy_chunked.py
Created March 7, 2015 07:44
chunked request tests
#!/usr/bin/env python
import cherrypy
from pprint import pprint
class Root:
@cherrypy.expose
def index(self):
pprint(cherrypy.request.headers)
print(cherrypy.request.body.read())
return ''