Skip to content

Instantly share code, notes, and snippets.

@turingbirds
turingbirds / invoke.py
Last active Aug 29, 2015
Execute a child program in a new process
View invoke.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""Execute a child program in a new process"""
import os
import subprocess
def exec_binary(cmd_line_list, cwd=None, stdout=None, stderr=None, verbose=False):
"""Invoke an executable file.
@turingbirds
turingbirds / ltspice_high_precision.rst
Last active May 20, 2018
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
turingbirds / bwedge.scad
Last active Sep 6, 2018
Beveled wedge shape for OpenSCAD
View bwedge.scad
// Beveled wedge shape for OpenSCAD
// Written by C.A.P. Linssen <charl@itfromb.it>, 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 <http://creativecommons.org/publicdomain/zero/1.0/>.
// module bwedge
@turingbirds
turingbirds / inkscape_to_dxf.rst
Last active Feb 24, 2019
From InkScape to DXF
View inkscape_to_dxf.rst

From InkScape to DXF

1. Save in Inkscape as PDF

Draft your design in InkScape. If there's any text, convert it to a path before or during exporting (Path → Object to Path).

Save as PDF (tested PDF v1.5).

View Git cheatsheet.markdown

Git cheatsheet

Set up Git

git config --global user.email "john_doe@example.com"
git config --global user.name "John Doe"
@turingbirds
turingbirds / upload.php
Last active May 30, 2019
a simple php upload script
View upload.php
<?php
header("Content-Type: text/html; charset=utf-8");
function display_filesize($filesize) {
if (is_numeric($filesize)) {
$decr = 1024;
$step = 0;
$prefix = array('Byte','KB','MB','GB','TB','PB');
View ip_cam_ethernet_usb.rst

Connect an IP camera via wired ethernet to an ethernet USB adapter to a Raspberry Pi

Connect the camera to the ethernet USB adapter via a CROSSOVER cable (or via an ethernet switch).

Install DHCP server:

sudo apt install isc-dhcp-server
@turingbirds
turingbirds / launch_xscreensaver.sh
Created Apr 30, 2020
Manually launch xscreensaver; disable auto-activate
View launch_xscreensaver.sh
#!/bin/bash
# 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.
You can’t perform that action at this time.