Skip to content

Instantly share code, notes, and snippets.

turingbirds /
Created June 16, 2023 14:46
Extract blocks from block diagonal matrix
import numpy as np
def extract_block_diagonal_blocks(A):
assert A.shape[0] == A.shape[1], "matrix A should be square"
N = A.shape[0]
A_mirrored = A + A.T # make the matrix symmetric so we only have to check one triangle
blocks = []
View Linux installation
turingbirds /
Created April 30, 2020 10:32
Manually launch xscreensaver; disable auto-activate
# I do not want my screensaver to auto-activate after a timeout.
# For some reason, you *have* to select a nonzero, finite timeout value for xscreensaver (there's no "infinity").
# I only want my screensaver to active when I lock my system by pressing [Meta]+[L].
# This hotkey is set up to launch this script, which
# - starts the xscreensaver daemon,
# - activates the screensaver (with lockscreen enabled),
# - waits for it to terminate (unlocking logs an "UNBLANK" event),
# - then kills the xscreensaver daemon.
View ip_cam_ethernet_usb.rst
turingbirds / inkscape_to_dxf.rst
Last active February 24, 2019 18:07
From InkScape to DXF
View inkscape_to_dxf.rst
turingbirds / bwedge.scad
Last active March 15, 2022 13:24
Beveled wedge shape for OpenSCAD
View bwedge.scad
// Beveled wedge shape for OpenSCAD
// Written by C.A.P. Linssen <>, Sept 2018
// This software is distributed under the "CC0 1.0 Universal (CC0 1.0)" license.
// You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see <>.
// module bwedge
View Bessel filter design.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
turingbirds / ltspice_high_precision.rst
Last active May 12, 2023 17:25
ltspice options for high precision simulation/data export
View ltspice_high_precision.rst

ltspice options for high precision simulation/data export

Uses backward Euler integration (maxord=1 option), which can be very slow.

Set maximum iteration counts: DC iteration count limit (itl1, default: 100), DC transfer curve iteration count limit (itl2, default: 50), and transient analysis time point iteration count limit (itl4, default: 10) [ltwiki]_.

.OPTIONS maxord=1
turingbirds / Agilent 82357B GPIB interface programming on Ubuntu Linux.rst
Last active March 11, 2022 11:43
Agilent 82357B GPIB interface programming on Ubuntu Linux
View Agilent 82357B GPIB interface programming on Ubuntu Linux.rst

GPIB interfacing using Agilent 82357B on Ubuntu Linux

I initially had some problems installing on my laptop, so decided to boot Ubuntu 12.04.5 LTS, 3.13.0-32-generic from USB and work from there.

For an automated installation script, see (and gpib.conf) below. The rest of this document describes the actions of the installation script step-by-step.

First, get the packages that are necessary to support Python bindings: