Skip to content

Instantly share code, notes, and snippets.

@arnehormann
arnehormann / spliceRevertable.js
Created February 19, 2012 16:41
Splice an array - with undo
function spliceRevertable() {
var self = this
, revertArray = [arguments[0], arguments.length - 2]
, result = revertArray.splice.apply(this, arguments)
, revertArguments = revertArray.concat(revertArray.slice.call(arguments, 2))
result.revert = funtion() {
return revertArguments.splice.apply(self, revertArguments)
}
return result
}
@arnehormann
arnehormann / escapeHtml.js
Last active October 11, 2015 09:38
escape text for inclusion by innerHTML as one handy fully namespaced function
var escapeHTML = (function() {
var regexp = /[<>&'"\/]/g
, replacements =
{ '&': '&amp;'
, '<': '&lt;'
, '>': '&gt;'
, '/': '&#x2F;'
, '"': '&quot;'
, "'": '&#39;'
}
@arnehormann
arnehormann / iproute2-examples.sh
Last active October 11, 2015 15:28
iproute2 example
# For these...
HOST="1.2.3.4/24"
NET="1.2.3.0/24"
GATEWAY_IP="1.2.3.1"
# Set a static IP
ip addr add $HOST dev eth0
ip route add $NET via $GATEWAY_IP
ip link set eth0 up
@arnehormann
arnehormann / keycodes.html
Last active October 13, 2015 07:57
javascript keycode finder
<!DOCTYPE html>
<html><head><meta charset="utf-8"><!--
Ok, let me be honest here…
DISCLAIMER:
I drew inspiration and a little CSS from the now defunct
http://whatthekeycode.com/
Still, it's different in a lot of ways.
@arnehormann
arnehormann / truth.sql
Created January 24, 2013 17:56
Truthiness and MySQL
SELECT
NULL, # \N
false, # 0
true, # 1
0 = false, # 1
1 = true, # 1
2 = true, # 0
true - false = 0, # 0
true + false = 1, # 1
true = null, # \N
@arnehormann
arnehormann / placeholder-label.html
Created February 5, 2013 09:15
Use placeholder Attributes as Label.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
[placeholder] { position: relative; }
/* not functional - attr(...) is not part of the shadow-dom parent element :-/;
[placeholder]::-webkit-input-placeholder::before { position: absolute; display: block; content: attr(placeholder); bottom: -1.5em; left: 0; color: #000; }
*/
/* but this is functional - in webkit Browsers */
@arnehormann
arnehormann / gauges.html
Last active December 14, 2015 11:49
A charting experiment
<html><head><meta charset="utf-8"><title>Donuts</title>
<!-- This is a modified version of the one found at http://www.larentis.eu/donuts/ -->
<style type="text/css">
.donut { font-size: 33px; }
.donut-big { font-size: 62px; }
.donut-small { font-size: 17px; }
.donut {
position: relative;
display: inline-block;
@arnehormann
arnehormann / liveedit.html
Created March 11, 2013 11:22
CSS live editing test
<html><head><meta charset="utf-8"><title>CSS live editing test</title>
<!-- credit: http://www.campaul.net/blog/2013/01/29/stupid-browser-tricks-live-editing-styles/ -->
<style type="text/css" style="display: none;">
/* show css for a very tight feedback loop */
html { position: absolute; width: 100%; }
head, body { display: block; position: absolute; }
head { width: 40%; right: 0; background: #eee; }
body { width: 60%; left: 0; }
style { display: block; white-space: pre }
</style><style type="text/css" contenteditable="plaintext-only">/* Edit CSS */
@arnehormann
arnehormann / truthtable.js
Created March 14, 2013 15:29
Create a truth table enumerating all possible parameter combinations for a function taking booleans. Arguments: target function, number of boolean arguments, string for true, string for false.
function truthTable(fun, bits, t, f){
var vars = bits || 4
, max = 1 << vars
, tStr = t || ' T '
, fStr = f || ' F '
, i, j, str, arr, set, res;
for (i = 0; i < max; i++) {
str = '';
arr = [];
for (j = vars - 1; j >= 0; j--) {
@arnehormann
arnehormann / dirtysql.go
Last active December 18, 2015 10:09
Hit the dangerous wobbly ground running: Quick&dirty up to speed with go database/sql
type must struct {
db *sql.DB
stmt *sql.Stmt
rows *sql.Rows
err error
closers []io.Closer
}
func Open(dbdriver, dsn string) *must {
m := &must{}