Skip to content

Instantly share code, notes, and snippets.

View simon-engledew's full-sized avatar
🙈

Simon Engledew simon-engledew

🙈
View GitHub Profile
@simon-engledew
simon-engledew / tsung-centos-install.txt
Created December 17, 2015 15:05 — forked from aviafelix/tsung-centos-install.txt
installing tsung in centos
yum -y install erlang perl perl-RRD-Simple.noarch perl-Log-Log4perl-RRDs.noarch gnuplot perl-Template-Toolkit
wget http://tsung.erlang-projects.org/dist/tsung-1.6.0.tar.gz
tar zxfv tsung-1.6.0.tar.gz
cd tsung-1.6.0
./configure && make && sudo make install
@simon-engledew
simon-engledew / client.py
Created August 10, 2016 21:31
asyncio XMLRPC server example
import xmlrpc.client
proxy = xmlrpc.client.ServerProxy('http://localhost:7000/xmlrpc')
print(proxy.hello('there'))
@simon-engledew
simon-engledew / relax.py
Last active April 7, 2021 20:47
Python Parser for Relaxed JSON
import re
import json
from parsec import (
sepBy,
regex,
string,
generate,
many
)
@simon-engledew
simon-engledew / xmlbuilder.py
Created September 11, 2017 09:04
XMLBuilder
"""
functional library for generating xml documents
"""
import xml.dom.minidom as xml
class Document(object):
"""
XML Document Builder
@simon-engledew
simon-engledew / requirements.py
Last active January 18, 2018 10:23
Requirements solver
# -*- coding: utf-8 -*-
"""
Generates a requirements.txt from any packages
in the current working directory.
"""
import os
import glob
import contextlib
import functools
@simon-engledew
simon-engledew / multiprocessing_socket.py
Created December 21, 2017 15:59
Pass a socket to a child process
from multiprocessing import Process, Queue
from multiprocessing.reduction import reduce_handle, rebuild_handle
from contextlib import closing
import socket
def process_sockets(queue):
while True:
fd = rebuild_handle(queue.get())
with closing(socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)) as connection:
@simon-engledew
simon-engledew / ghetto_asyncio.py
Created January 24, 2018 23:19
Ghetto Asyncio for Python 2
# -*- coding: utf-8 -*-
import os
import sys
import select
import errno
import threading
import Queue
from functools import wraps, partial
from contextlib import contextmanager, closing
import logging
@simon-engledew
simon-engledew / check.py
Created June 4, 2018 07:27
Check if a password has been compromised.
import hashlib
import getpass
from urllib.request import urlopen, Request
def check(password):
digest = hashlib.sha1(password.encode('utf-8')).hexdigest().upper()
head, tail = digest[:5], digest[5:]
@simon-engledew
simon-engledew / reload.c
Created May 4, 2019 18:29
Run a command, restarting it on SIGHUP.
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/wait.h>
volatile sig_atomic_t pid = 0;
static void restart(int sig)
{

Keybase proof

I hereby claim:

  • I am simon-engledew on github.
  • I am hotdogknight (https://keybase.io/hotdogknight) on keybase.
  • I have a public key ASAgtfxSK9B6HOaDQ5d24zVPIew7t0ey_VboaxjNYX8ALgo

To claim this, I am signing this object: