Skip to content

Instantly share code, notes, and snippets.

@spence
spence / enableautocomplete.js
Created April 8, 2014 15:32
Enable Autocomplete for sites that disable it (bookmarklet)
var forms = document.getElementsByTagName("form");
var inputs = document.getElementsByTagName("input");
var fields = Array.prototype.concat.apply(Array.prototype.slice.call(forms, 0), inputs);
for (var i = 0; i < fields.length; i++) {
fields[i].setAttribute("autocomplete", "on");
fields[i].onpaste = null;
if (window.jQuery) {
window.jQuery(fields[i]).unbind("paste");
}
}
@spence
spence / yield_on_events.js
Last active December 30, 2022 02:55
Bind event stream into for-await-of
const stream = new class { // Mock event stream
handler = null;
async start() {
while (true) {
const ms = Math.random() * 100;
await new Promise(resolve => setTimeout(resolve, ms));
if (this.handler) this.handler(ms);
if (ms < 10 && this.handler) this.handler(ms);
}
}
@spence
spence / default-multidimension-array.js
Last active February 1, 2020 23:21
Messing around with multidimensional arrays in JS.
const createMultidimensionalArray = (dimensions, defaultValue = undefined) => {
if (dimensions < 1) {
throw new Error('Dimensions must be greater than 0');
}
return new Proxy([], {
get(target, prop) {
if (!(prop in target)) {
if (dimensions === 1) {
return defaultValue;
}
# brew install gnuplot
histfile=histogram-bytes.png
# histfile=histogram-random.png
psql -p5432 -h localhost -d happy_dev -U happy_dev << EOF 2>&1 | head -n -1 | cut -d' ' -f3 | gnuplot -p -e "n=100;max=9999.;min=1000.;width=(max-min)/n;hist(x,width)=width*floor(x/width)+width/2.0;set term png;set output '$histfile';set xrange [min:max];set yrange [0:];set offset graph 0.05,0.05,0.05,0.0;set xtics min,(max-min)/5,max;set boxwidth width*0.9;set style fill solid 0.5;set tics out nomirror;set xlabel 'x';set ylabel 'Frequency';plot '-' u (hist(\$1,width)):(1.0) smooth freq w boxes lc rgb'green' notitle;"
DO
\$do\$
DECLARE
i INT;
BEGIN
DO
$do$
DECLARE
i INT;
BEGIN
FOR i IN 1..1000000 LOOP
SELECT LEFT(('x' || RIGHT(gen_random_bytes(3)::TEXT, 6))::BIT(24)::INT::TEXT, 4)::INT INTO i;
RAISE NOTICE '%', i;
END LOOP;
END
@spence
spence / fetchip-gasmask-hosts.sh
Last active December 24, 2015 07:39
CRON to resolve and update the IP addresses used throughout the Gasmask *.hst config files. Tested only on OSX 10.8.3 with Gasmask 0.7.
#!/bin/bash
# Job for automatically resolving and updating GasMask host file entries.
#
# Spencer Creasey (github.com/spence)
#
# Gasmask: http://www.clockwise.ee/gasmask/
#
# To use, on the line before your host entry, add:
#
@spence
spence / gist:4176224
Created November 30, 2012 14:54
Bookmarklet: Enable Autocomplete
<!DOCTYPE html>
<html>
<head><title>Bookmarklet: Auto Complete</title></head>
<body>
<a href="javascript:(function()%7Bfor(var%20b=Array.prototype,a=b.concat.apply(b.slice.call(document.getElementsByTagName(%22form%22),0),document.getElementsByTagName(%22input%22)),i=0;a.length%3Ei;i++)a%5Bi%5D.setAttribute(%22autocomplete%22,%22on%22);%7D)()">Enable Autocomplete</a>
</body>
</html>

Keybase proof

I hereby claim:

  • I am spence on github.
  • I am spence (https://keybase.io/spence) on keybase.
  • I have a public key whose fingerprint is 9C16 5E92 0DF1 FA53 B80E AFCB CF19 C3ED D6C4 63B6

To claim this, I am signing this object:

@spence
spence / run.py
Last active August 29, 2015 14:22
Failing issue with geventwebsocket + newrelic instrumentation. run via `chmod +x run.py && ./run.py` and navigate to http://localhost:9191. After the first websocket connection, no more connections are allowed. Commenting out NR instrumentation restores expected behavior.
#!/usr/bin/env python2.7
# pip install newrelic gevent gevent-websocket flask
# my versions: (2.50.0.39) (1.0.2) (0.9.3) (0.10.1)
import newrelic.agent
from geventwebsocket.handler import WebSocketHandler
from gevent.pywsgi import WSGIServer
from flask import Flask, request
# Flask app
@spence
spence / skype-link.html
Created May 29, 2015 17:55
Create a emailable link to a Skype profile (since skype has no web profiles and gmail blocks direct application links). e.g., http://static.spencercreasey.com/skype-profile.html