Skip to content

Instantly share code, notes, and snippets.

Chris McCormick chr15m

Block or report user

Report or block chr15m

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@chr15m
chr15m / microtest.hy
Created Aug 29, 2019
Hy testing microframework
View microtest.hy
; *** Test harness
; Note: works in Hy 0.11.1 - needs to be upgraded for recent Hy
(defn print-expression [expr]
(+ "(" (.join " " (list-comp (cond [(= (type x) HyExpression) (print-expression x)]
[(= (type x) HyString) (+ "\"" x "\"")]
[True (str x)]) [x expr])) ")"))
(defmacro test-case [expr]
(quasiquote (do
@chr15m
chr15m / vintage-old-school-console-effect-css.html
Created Mar 15, 2019
Vintage old-school console effect boilerplate HTML and CSS
View vintage-old-school-console-effect-css.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<title>Vintage console</title>
<script>
function log(message) {
document.getElementById("log").textContent += message + "\n";
}
@chr15m
chr15m / websockets.js
Created Jul 6, 2018
Minimal Javascript websocket client/server
View websockets.js
// server
ws = require('ws');
wss = new ws.Server({ port: 8033 });
wss.on('connection', function(s) {
console.log("got connection", s);
s.on('message', function incoming(message) {
console.log("received", message);
});
});
@chr15m
chr15m / picore-usb-tether.txt
Created Jul 2, 2018
Get USB tethering working on piCore (Tiny Core Linux)
View picore-usb-tether.txt
tce-load -wi net-usb-4.9.22-piCore-v7
modprobe cdc_ether
modprobe usbnet
ifconfig -a
ifconfig usb0 up
sudo /sbin/udhcpc -b -i usb0 -x hostname:$HOSTNAME -p /var/run/udhcpc.usb0.pid
@chr15m
chr15m / browser-tab-communication-via-localstorage.html
Created Jun 8, 2018
Demo of communicating between tabs via the localStorage storage event
View browser-tab-communication-via-localstorage.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<style>
body {
font-family: Arial, Sans-serif;
max-width: 600px;
margin: 1em auto;
@chr15m
chr15m / dht-ping.sh
Created May 6, 2018
BitTorrent mainline DHT UDP ping shell script example
View dht-ping.sh
echo -n $'d1:ad2:id20:\x23\x71\x0c\x1c\xb4\x50\x7d\x87\x29\xb8\x3f\x87\x2c\xc6\xa2\xa4\x4c\x39\x73\x67e1:q4:ping1:t1:01:y1:qe' | nc -u router.utorrent.com 6881
View xor-two-hex-strings.py
#!/usr/bin/env python
# two hex encoded strings coming in on stdin
# will get xored and output as a hex encoded string
import fileinput
lines = [l for l in fileinput.input()]
print hex(int(lines[0], 16) ^ int(lines[1], 16)).replace("0x", "").rstrip("L")
@chr15m
chr15m / pr
Created Aug 14, 2017
Open a GitHub pull-request page from the command line
View pr
#!/usr/bin/env python
import webbrowser
import subprocess
def git(*args):
return subprocess.check_output(["git"] + list(args))
remote, branch = git("rev-parse", "--abbrev-ref", "--symbolic-full-name", "@{u}").split("/")
repo = git("config", "--get", "remote." + remote + ".url").split(":").pop().replace(".git", "").strip("\n")
@chr15m
chr15m / extract-latest-log-date.awk
Last active Jun 22, 2017
Extract only the latest log lines from apache/nginx logs
View extract-latest-log-date.awk
#!/usr/bin/awk -f
# Usage:
# zcat -f access.log.* | ./extract-latest-log-date.awk > latest-log.txt
BEGIN {
# pre-compute months field lookup
m=split("Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec",d,"|")
for(o=1;o<=m;o++){
months[d[o]]=sprintf("%02d",o)
@chr15m
chr15m / find-pis
Created Dec 12, 2016
Find Raspberry Pi devices on your local networks.
View find-pis
#!/bin/sh
# get broadcast addresses for each network
net=`ifconfig | grep -o -E "Bcast:(.*?) " | cut -f2 -d":"`
# loop over networks running the scan
for n in $net;
do
# first find SSH machines silently to prime the arp table
nmap -T4 -n -p 22 --open --min-parallelism 100 "$n/24" | grep -e "scan report for" -e "ssh" > /dev/null
You can’t perform that action at this time.