Skip to content

Instantly share code, notes, and snippets.

alan707 /
Last active Dec 21, 2020
Simple Python CAN Bridge (a.k.a CAN Gateway)
import can
from time import sleep
can_bus_a = can.Bus('can0', bustype='socketcan')
can_bus_b = can.Bus('can1', bustype='socketcan')
for message in can_bus_a:
alan707 /
Created Jun 24, 2018
odrivetool crashed out
In [3]: quit()
^CException ignored in: <module 'threading' from '/usr/lib/python3.5/'>
Traceback (most recent call last):
File "/usr/lib/python3.5/", line 1288, in _shutdown
File "/usr/lib/python3.5/", line 1054, in join
File "/usr/lib/python3.5/", line 1070, in _wait_for_tstate_lock
elif lock.acquire(block, timeout):
alan707 /
Last active Apr 1, 2018 — forked from dergachev/
OS X Screencast to animated GIF

OS X Screencast to animated GIF

This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.

Screencapture GIF


To capture the video (filesize: 19MB), using the free "QuickTime Player" application:

alan707 /
Last active Oct 30, 2017
List all human readable directories greater than 1GB in Linux
#! /usr/bin/env bash
# Find out which directories have high disk utilization:
sudo du -a -h -d 5 -t 1GB /
# Clean up dead and exited containers:
docker ps --filter status=dead --filter status=exited -aq | xargs -r docker rm -v
# Remove dangling files from docker
docker volume ls -qf dangling=true | xargs -r docker volume rm
alan707 / cansniffer_man.c
Created Apr 23, 2017
cansniffer command options to read CAN frames using can-utils
View cansniffer_man.c
const char manual [] = {
"commands that can be entered at runtime:\n"
"q<ENTER> - quit\n"
"b<ENTER> - toggle binary / HEX-ASCII output\n"
"B<ENTER> - toggle binary with gap / HEX-ASCII output (exceeds 80 chars!)\n"
"c<ENTER> - toggle color mode\n"
"#<ENTER> - notch currently marked/changed bits (can be used repeatedly)\n"
"*<ENTER> - clear notched marked\n"
"rMYNAME<ENTER> - read settings file (filter/notch)\n"
View wifi-lights.ino
#include "blynk/blynk.h"
#include "RelayShield/RelayShield.h"
#include "clickButton/clickButton.h"
RelayShield myRelays;
int relayOn(String command);
int relayOff(String command);
View ilumina.ino
/* ======================= includes ================================= */
#include "blynk/blynk.h"
#include "clickButton/clickButton.h"
#include "application.h"
#include "neopixel/neopixel.h" // use for Build IDE
// #include "neopixel.h" // use for local build
/* ======================= variables =============================== */
View gist:41940ce496acb04931900cf62b19f3f6
SENT: G29 V4
READ: echo:busy: processing
busy: processing
SENT: M105
READ: echo:busy: processing
busy: processing
SENT: M105
READ: echo:busy: processing
busy: processing
SENT: M105
View iumen.ino
* This is a RGB+W NeoPixel example, see extra-examples.cpp for a version
* with more explantory documentation, example routines, how to
* hook up your pixels and all of the pixel types that are supported.
/* ======================= includes ================================= */
alan707 / forgot_password_error
Last active Dec 17, 2015
error devise forgot_password
View forgot_password_error
ArgumentError (wrong number of arguments (2 for 1)):
app/mailers/user_mailer.rb:58:in `reset_password_instructions'
You can’t perform that action at this time.