Skip to content

Instantly share code, notes, and snippets.

Avatar
💻
Typing...

Spencer Bliven sbliven

💻
Typing...
View GitHub Profile
View shp_fix.py
import shapefile
def replace_escape(s):
return s.replace(b'\xc3\x82\xc2',b'\xc2').replace(b'\xc3\x83\xc2',b'\xc3')
sf = shapefile.Reader("swisscantonsmod/ch-cantons.dbf")
print(f"records: {len(sf.records())}")
print(f"shapes: {len(sf.shapes())}")
out = shapefile.Writer("swisscantonsmod/ch-cantons_fixed.dbf")
for f in sf.fields:
@sbliven
sbliven / mysettings.ini
Last active Apr 22, 2021
Improved version of sbliven/d413c2f2f4af3bf56e13d1f8656751b1 using configparser
View mysettings.ini
[nlsa] |~
name = Custom Settings |~
x = 4 |~
@sbliven
sbliven / mysettings.py
Created Apr 22, 2021
Example of reading a "settings" python module
View mysettings.py
"""A settings module based on global variables"""
name = "Custom Settings"
x = 4
y = 0
@sbliven
sbliven / closuretest.cpp
Created Mar 12, 2021
C++ lambda function with closure
View closuretest.cpp
// 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;
View conda_conflicts.ipynb
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 Jan 27, 2021
Restart the network (Ubuntu 20.04)
View restartnet
#!/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 Aug 3, 2020
Convert a VCD .dat file to .mp4 video
View vcd2mp4
#!/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 Sep 21, 2020
'timeout' command, implemented within the shell so that it works with shell functions
View timeout_fn.sh
#!/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
View animals.cpp
/* 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 Sep 11, 2019
Test a difficult typing case. Python type annotations!
View circular_types.py
"""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