Skip to content

Instantly share code, notes, and snippets.

View soxofaan's full-sized avatar

Stefaan Lippens soxofaan

View GitHub Profile
@soxofaan
soxofaan / screen-ssh-agent-fix.sh
Created January 16, 2017 12:50
Script to fix SSH agent environment variables on a remote server after reconnecting to a screen session
#!/bin/bash
# Script to fix the SSH agent environment variable after reconnecting to a running screen session.
# Usage: *source* this script (don't just execute).
# For example, if you store it at ~/screen-ssh-agent-fix.sh, create this alias to have it available easily:
# alias screenfix='source ~/screen-ssh-agent-fix.sh'
echo "Updating ssh-agent socket environment.."
echo "Current value: $SSH_AUTH_SOCK"
export SSH_AUTH_SOCK=$(find /tmp/ssh-* -user `whoami` -name agent\* -printf '%T@ %p\n' 2>/dev/null | sort -k 1nr | sed 's/^[^ ]* //' | head -n 1)
@soxofaan
soxofaan / README.md
Last active January 19, 2024 17:48
Simple pretty CSV and TSV file viewer.
@soxofaan
soxofaan / ssh_reconnect.xonsh
Created September 7, 2016 22:01
.xonshrc snippet with alias to reconnect SSH sockets (after reconnecting a screen session)
def _reconnect_ssh_agent_socket(args, stdin=None):
import re
print("Updating ssh-agent socket environment. Current value: $SSH_AUTH_SOCK = %s" % $SSH_AUTH_SOCK)
# Use find to list candidate paths with timestamp (as float).
raw = $(find /tmp/ssh-* -user @$(whoami) -name 'agent*' -printf '%T@:%p;')
candidates = [(float(m.group(1)), m.group(2)) for m in re.finditer('([0-9.]*):(.*?);', raw)]
# Take latest.
$SSH_AUTH_SOCK = max(candidates)[1]
@soxofaan
soxofaan / python-version-dump.py
Last active August 29, 2015 14:23
python version dump snippet
"""
Snippet to list Python installation/packaging related version information.
Execute it with the Python executable you want to inspect.
Usage example with curl/wget tricks straight from this github gist
(optionally replace `python` at the end with the desired alternative):
curl -s https://gist.githubusercontent.com/soxofaan/cc4986cc507cb10f962d/raw/python-version-dump.py | python
sankeyDraw(
{
'nodes': [
{name: "a"},
{name: "b"},
{name: "c"},
{name: "d"},
{name: "e"},
{name: "f"},
{name: "g"},
@soxofaan
soxofaan / index.html
Last active May 14, 2019 14:37
d3-plugins sankey cycle support
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://d3js.org/d3.v2.js"></script>
<script type="text/javascript" src="./sankey.js"></script>
<title>Sankey Diagram</title>
<style>
@soxofaan
soxofaan / timinglogger.py
Last active August 29, 2015 14:06
TimingLogger context manager
import datetime
import logging
class TimingLogger(object):
"""
Simple timer context manager to log the time spent in the context
to given logger (logging api).
Usage example:
@soxofaan
soxofaan / launch-ipython-notebook-in-screen.sh
Last active August 29, 2015 14:00
Gnu screen trick to launch ipython notebook within screen session non interactively
#!/bin/sh
# set -x
# set -e
sessionname=ipython-notebook
if screen -list | grep $sessionname ; then
echo "Screen session $sessionname is already running."
echo "not doing anything"
# The original code at http://tungwaiyip.info/2012/Collaborative%20Filtering.html
# does not seem to work on my setup (python 2.7.2, numpy 1.6.1, pandas 0.13.1)
# The version below works for me.
import numpy as np;
import pandas as pd;
rating = pd.read_csv('movie_rating.csv')
rp = rating.pivot_table(cols=['critic'], rows=['title'], values='rating')
rating_toby = rp['Toby']
import sys
import subprocess
import random
import time
import threading
from queue import Queue
import collections
class AsynchronousFileReader(threading.Thread):
'''