Skip to content

Instantly share code, notes, and snippets.

Avatar

Simon Lundmark simlun

View GitHub Profile
@simlun
simlun / raspi-monitor
Last active Sep 19, 2020
Script to enable and disable the HDMI signal of the Raspberry PI
View raspi-monitor
#!/bin/bash -e
# /usr/local/sbin/raspi-monitor
# Script to enable and disable the HDMI signal of the Raspberry PI
# Inspiration: http://www.raspberrypi.org/forums/viewtopic.php?t=16472&p=176258
CMD="$1"
function on {
/opt/vc/bin/tvservice --preferred
@simlun
simlun / download-sicp-videos.sh
Created Nov 5, 2012
Download script for the SICP videos
View download-sicp-videos.sh
#!/bin/bash
set -e
#DOWNLOAD_COMMAND='curl -s -S -C - -L -O'
DOWNLOAD_COMMAND='wget --quiet --continue'
SIMULTANEOUS_DOWNLOADS=3
one-word-per-line() {
xargs -n 1 echo $@
}
@simlun
simlun / vnc-connection.command
Created Jul 30, 2014
Connect to an x11vnc server over an SSH tunnel from a Mac
View vnc-connection.command
#!/bin/sh
# Tip: An executable script given a `.command` suffix will be double-clickable on Mac OS X
REMOTE_SSH_USER=pi
REMOTE_SSH_HOST=192.168.0.17
REMOTE_VNC_SERVER_PORT=5900
LOCAL_VNC_PORT=5901
# This is the RealVNC Viewer, works with Chicken of the VNC too
LOCAL_VNC_CLIENT=/Applications/VNC\ Viewer.app/Contents/MacOS/vncviewer
@simlun
simlun / dropbox-reconciliation.sh
Last active Jan 3, 2016
Compare MD5 checksums for all files in a local Dropbox directory with a remote one. Use for example to reconcile your Dropbox directory between your laptop and workstation. You will be surprised over what you may find... Script was written for Mac OS X. You must of course have "Remote Login" enabled (System Preferences/Sharing).
View dropbox-reconciliation.sh
#!/bin/bash -ex
#
# Example usage:
# $ ./dropbox-reconciliation.sh 192.168.0.17
#
REMOTE_HOST=$1
EXCLUDES="-name '*.DS_Store' -or -path './.dropbox.cache*' -or -name 'Icon*' -or -name .dropbox"
@simlun
simlun / diff
Created Mar 16, 2013
socket recv's may raise EAGAIN, unlike any other platform Fix for recognizing gdbm 1.9.x databases; already upstream: http://hg.python.org/cpython/rev/14cafb8d1480
View diff
diff --git a/Lib/socket.py b/Lib/socket.py
index bd364e7..fd432f6 100644
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -92,6 +92,7 @@ except ImportError:
errno = None
EBADF = getattr(errno, 'EBADF', 9)
EINTR = getattr(errno, 'EINTR', 4)
+EAGAIN = getattr(errno, 'EAGAIN', 35)
@simlun
simlun / command.sh
Created Dec 14, 2015
Collect inotify statistics for each root directory
View command.sh
sudo sysctl fs.inotify.max_user_watches=524288
sudo inotifywait -r -m --format "%e;%w%f" /bin /boot /etc /home /lib /lib64 /opt /root /sbin /srv /tmp /usr /var | ./dirstats.py
@simlun
simlun / gist:4405824
Created Dec 29, 2012
!cleancode Clojure solution to Project Euler problem number 74
View gist:4405824
(defn euler074 [up-to chain-len] (let [right-chain-len? #(= chain-len (count %))
start-nrs (range 1 (inc up-to))] (count (filter right-chain-len? (map (fn
[start-nr] (loop [chain #{start-nr} prev-trm start-nr] (let [next-trm (reduce +
(map (memoize (fn [n] (if (= n 0) 1 (reduce * (range 1 (inc n)))))) (map #(-
(int %) (int \0)) (str prev-trm))))] (if (contains? chain next-trm) chain (recur
(conj chain next-trm) next-trm))))) start-nrs)))))
(euler074 1000000 60)
View euler.clj
(ns euler002.euler)
(defn- fib-fast
[i a b limit]
(if
(< i limit)
(fib-fast (inc i) b (+ a b) limit)
b))
(defn fib
View euler.clj
(ns euler001.euler)
(defn- zerorem?
[numer denom]
(= 0 (rem numer denom)))
(defn divis?
[a]
(or
(zerorem? a 3)
@simlun
simlun / acceptance_test.sh
Created Jul 6, 2012
ATDD shell scripting using shUnit2
View acceptance_test.sh
#!/bin/sh
# Setup
SUT=../system_under_test.sh
INPUT_FILE=sample_input.txt
EXPECTED_OUTPUT_FILE=expected_output.txt
EXPECTED_STATUS_CODE=0
# The test
testStatusCodeAndResponse()
You can’t perform that action at this time.