Skip to content

Instantly share code, notes, and snippets.

View sbliven's full-sized avatar
💻
Typing...

Spencer Bliven sbliven

💻
Typing...
View GitHub Profile
@sbliven
sbliven / mysettings.ini
Last active April 22, 2021 21:39
Improved version of sbliven/d413c2f2f4af3bf56e13d1f8656751b1 using configparser
[nlsa] |~
name = Custom Settings |~
x = 4 |~
@sbliven
sbliven / mysettings.py
Created April 22, 2021 20:46
Example of reading a "settings" python module
"""A settings module based on global variables"""
name = "Custom Settings"
x = 4
y = 0
@sbliven
sbliven / closuretest.cpp
Created March 12, 2021 07:56
C++ lambda function with closure
// g++ -o closuretest -std=c++11 closuretest.cpp
#include <iostream>
#include<functional>
int main() {
int i = 0;
std::function<void()> fns[3];
for(;i < 3; i++) {
fns[i] = [&i]() {
std::cout << i << std::endl;
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@sbliven
sbliven / restartnet
Created January 27, 2021 21:12
Restart the network (Ubuntu 20.04)
#!/bin/bash
# Restart the network
# usage: sudo restartnet [iface]
# Requires root
# Guess interface for outgoing traffic
TARGET=8.8.8.8 # known IP. Could also be 192.168.0.1 or similar for local networks
function guess_iface {
ip route get $TARGET | grep -Po '(?<=dev\s)\w+' | cut -f1 -d ' '
}
@sbliven
sbliven / vcd2mp4
Created August 3, 2020 05:56
Convert a VCD .dat file to .mp4 video
#!/bin/bash
# usage: vcd2mp4 output.mp4 input.dat [input2.dat...]
if [[ $# -lt 2 ]]; then
echo "usage: $0 output.mp4 input.dat [input2.dat...]" >&2
exit 1
fi
output="$1"
shift
@sbliven
sbliven / timeout_fn.sh
Last active September 21, 2020 15:50
'timeout' command, implemented within the shell so that it works with shell functions
#!/bin/zsh
# A version of the 'timeout' command that works with shell functions
#
# Usage:
# source timeout_fn.sh
# timeout_fn DURATION COMMAND [ARG]...
timeout_fn () {
local timeout=$1
shift
/* Solutions to https://stackoverflow.com/questions/800368/declaring-an-object-before-initializing-it-in-c/62247236#62247236
*
* Uses c++17 for some solutions
*
* Output:
*
* $ g++ --std=c++17 -o animals animals.cpp && ./animals
* Naive Method
* ------------
* Default Constructing Animal at 0x7ffee3fc20d0
@sbliven
sbliven / circular_types.py
Last active September 11, 2019 06:40
Test a difficult typing case. Python type annotations!
"""Test a difficult typing case.
Inspired by biopython's Bio.PDB.Entity.
https://gist.github.com/sbliven/8fb593f005eeafc0fecef71063f5dc39
"""
import sys
from typing import TypeVar, Union
@sbliven
sbliven / linelength.py
Created August 30, 2019 13:50
Create histograms of line lengths. Used for https://github.com/biopython/biopython/issues/2008
"""Create distribution of line lengths over files
Example:
find . -regextype egrep -regex './(Bio|Tests)/.*\.py' -type f -exec \
python linelength.py --hist linelengths.png \
--cdf linelengthscumulative.png -v '{}' '+'
"""
import sys