Skip to content

Instantly share code, notes, and snippets.

@chr15m
chr15m / dht-ping.sh
Created May 6, 2018 09:24
BitTorrent mainline DHT UDP ping shell script example
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
@chr15m
chr15m / browser-tab-communication-via-localstorage.html
Created June 8, 2018 12:43
Demo of communicating between tabs via the localStorage storage event
<!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 / picore-usb-tether.txt
Created July 2, 2018 12:39
Get USB tethering working on piCore (Tiny Core Linux)
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 / websockets.js
Created July 6, 2018 02:02
Minimal Javascript websocket client/server
// 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 / vintage-old-school-console-effect-css.html
Created March 15, 2019 07:41
Vintage old-school console effect boilerplate HTML and CSS
<!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 / microtest.hy
Created August 29, 2019 05:46
Hy testing microframework
; *** 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 / Makefile
Created February 27, 2020 13:14
Makefile rules to activate Python virtualenv for the whole Makefile
# get makefile's own path
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
mkfile_dir := $(dir $(mkfile_path))
# add virtualenv in folder "virtualenv" to the path
export PATH := $(mkfile_dir)/virtualenv/bin:$(PATH)
export VIRTUAL_ENV=$(mkfile_dir)/virtualenv
example: something.py
python something.py # <- this will be called with virtualenv activated
@chr15m
chr15m / screencast.py
Created October 28, 2020 04:14
Python wrapper for byzanz-record to capture gifs
#!/usr/bin/env python
# You'll need to have `xrectsel` and `byzanz-record` installed
from __future__ import print_function
import re
import sys
import subprocess
if len(sys.argv) == 1:
@chr15m
chr15m / sync-deps.clj
Created October 3, 2021 08:25
Generate :npm-deps in deps.cljs from package.json using nbb
(ns update-deps
(:require
["fs" :as fs]
[clojure.edn :as edn]
[clojure.pprint :refer [pprint]]))
(let [package (js/require "../package.json")
js-deps (js->clj (aget package "dependencies"))
deps (edn/read-string (fs/readFileSync "src/deps.cljs" "utf8"))
deps-updated (assoc deps :npm-deps js-deps)]
@chr15m
chr15m / outlined-drop-shadow-header.html
Created December 28, 2021 13:46
Outlined drop-shadow header demo
<!doctype html>
<html lang="en-us">
<head>
<title>Fat font drop shadow.</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="mobile-web-app-capable" content="yes">
<meta name="description" content="Pure CSS fat outline letters with hard drop shadow.">
<style>
@import url('https://fonts.googleapis.com/css2?family=Sigmar+One&display=swap');