Skip to content

Instantly share code, notes, and snippets.

Steinn Eldjárn Sigurðarson steinnes

View GitHub Profile
steinnes /
Last active Nov 2, 2018
A shellscript which hangs for up to 30 seconds while waiting for a port to become accessible.

A simple way to test this is to run against localhost on a random unused port:

$ .ci/ localhost 12345

Then in another shell, listen on that port:

$ nc -l 12345
import sys
UTF8Writer = codecs.getwriter('utf8')
class SafeStdoutWriter(UTF8Writer):
""" A safe stdout writer class which expects to output only unicode string objects
but if it encounters a decoding error (because the given string is not unicode but
a normal 'str') it will attempt to convert it to unicode and try again. If that
conversion fails we fall back to decoding iso-8859-1 which is the default codec
the CSVOutput writer uses.

Keybase proof

I hereby claim:

  • I am steinnes on github.
  • I am steinnes ( on keybase.
  • I have a public key ASBhjE9xWeYPkNk07XoFpdyknK8dxarE3VhcJ6VQbFwQjQo

To claim this, I am signing this object:

steinnes / circle-ci-env-variables.txt
Created Feb 9, 2017
Circle CI environment variables
View circle-ci-env-variables.txt
# This is a list of Circle CI environment variables, pulled on Feb 9th 2017 @ 00:10
# This can be useful for example when running tests inside a docker and you wish to
# pass environment variables into the docker via docker-compose. That's why I made
# this list by starting a build with SSH enabled, and executing:
# ubuntu@box103:~$ env|grep ^CI|cut -d\= -f1|sort -u
steinnes / nginx.conf
Created Dec 30, 2016
nginx config to listen on IPv6 and proxy
View nginx.conf
user www-data;
worker_processes auto;
pid /run/;
events {
worker_connections 768;
# multi_accept on;
steinnes /
Created May 15, 2016
python threading lock example
import threading
import time
from functools import wraps
class Lock(object):
def __init__(self, func_id):
global FN_LOCKS
import time
timings = (
(1, 'up'),
(2, 'down'),
(7, 'up'),
(8, 'down'),
(13, 'up'),
(14, 'down'),
(19, 'up'),
steinnes / 01_setup_swap.config
Last active Oct 30, 2019
EB config file which executes
View 01_setup_swap.config
command: "bash .ebextensions/"
steinnes /
Created Mar 15, 2016
swapfile setup script
if [ -f $SWAPFILE ]; then
echo "Swapfile $SWAPFILE found, assuming already setup"
def human_time_string(delta):
Return a nice human readable "X days[, Y hours [and Y minutes]]" string
for a given datetime.timedelta
minutes = delta.seconds // 60
hours = delta.seconds // 3600
minutes -= hours * 60 # subtract hours
days = delta.days
You can’t perform that action at this time.