Skip to content

Instantly share code, notes, and snippets.

View hackergrrl's full-sized avatar
๐ŸŒฑ

Kira hackergrrl

๐ŸŒฑ
View GitHub Profile
# Less colours (mainly for man pages).
export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold
export LESS_TERMCAP_me=$'\E[0m' # end mode
export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
#export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box
export LESS_TERMCAP_ue=$'\E[0m' # end underline
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
@hackergrrl
hackergrrl / gist:2791264
Created May 25, 2012 23:47
awful awful rendering code
float ang_inc = (cam->fov / (float)SCR_WIDTH);
float ang = -cam->fov / 2.0f - ang_inc;
for(int i=0; i < SCR_WIDTH; i++)
{
ang += ang_inc;
float cos_corr = cos(ang*D2R);
float ovx = i - SCR_WIDTH/2;
float ovy = cam->projDist;
float mag = sqrt( ovx*ovx + ovy*ovy );
ovx /= mag; ovy /= mag;

Keybase proof

I hereby claim:

  • I am noffle on github.
  • I am sww (https://keybase.io/sww) on keybase.
  • I have a public key whose fingerprint is A222 27B6 103A F2E3 21B5 ACC6 7A6E AA3C 467F 1671

To claim this, I am signing this object:

javascript:(function(){var data={'A':'๐”„','B':'๐”…','C':'๐•ฎ','D':'๐”‡','E':'๐”ˆ','F':'๐”‰','G':'๐”Š','H':'๐•ณ','I':'๐•ด','J':'๐”','K':'๐”Ž','L':'๐”','M':'๐”','N':'๐”‘','O':'๐”’','P':'๐”“','Q':'๐””','R':'๐•ฝ','S':'๐”–','T':'๐”—','U':'๐”˜','V':'๐”™','W':'๐”š','X':'๐”›','Y':'๐”œ','Z':'๐–…','a':'๐”ž','b':'๐”Ÿ','c':'๐” ','d':'๐”ก','e':'๐”ข','f':'๐”ฃ','g':'๐”ค','h':'๐”ฅ','i':'๐”ฆ','j':'๐”ง','k':'๐”จ','l':'๐”ฉ','m':'๐”ช','n':'๐”ซ','o':'๐”ฌ','p':'๐”ญ','q':'๐”ฎ','r':'๐”ฏ','s':'๐”ฐ','t':'๐”ฑ','u':'๐”ฒ','v':'๐”ณ','w':'๐”ด','x':'๐”ต','y':'๐”ถ','z':'๐”ท'};var elms =document.getElementsByTagName('p');for(var i=0;i<elms.length;i++){if(typeof elms[i].innerHTML==='string'){elms[i].innerHTML=elms[i].innerHTML.replace(/<.*>/g,'').replace(/[A-Za-z]/g,function(s){return data[s];});}};})();
@hackergrrl
hackergrrl / gist:6d8d948edee392574ddd
Created November 24, 2014 22:05
Grab URL of today's Bing background image + set as desktop BG
#!/bin/bash
JSON_URL="http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=1397809837851&pid=hp"
URL=$(echo "http://www.bing.com"$(curl -s $JSON_URL | sed 's/.*"url":"\(.*\.jpg\)".*/\1/'))
FILENAME=$(mktemp --suffix=".jpg")
curl -sL $URL > $FILENAME
feh --bg-fill $FILENAME

1. register particle account

https://build.particle.io/signup

2. setup board

unpackage the board and plug it into your laptop

particle's "getting started" guide:

var hyperlog = require('./')
var level = require('level')
var through = require('through2')
var memdb = require('memdb')
var TopoSort = require('topo-sort');
var dedupe = require('dedupe')
if (process.argv.length !== 4) {
console.error('USAGE: rebuild <LEVEL-DIR> <NEW-LEVEL-DIR>')
process.exit(1)

understanding callbacks & async code flow

Consider setTimeout: a very simple asynchronous function. It takes two parameters: a callback and a delay:

setTimeout(fn, delay)

In use, it might look something like this:

@hackergrrl
hackergrrl / get_osm_doc.js
Last active June 26, 2017 22:15
Convert a version ID to an OSM document (osm-p2p-db)
function getOsmDocFromVersionId (osmdb, version, done) {
osmdb.get(version, function (err, node) {
if (err) done(err)
else done(null, getOsmDocFromHyperlogNode(node))
})
}
function getOsmDocFromHyperlogNode (node) {
if (node.value && node.v) return node.value.v // Returns the OSM document (has 'type', 'lat', 'lon', etc)
if (node.value && node.d) return null // This document is a deletion marker for an older document