Skip to content

Instantly share code, notes, and snippets.

View hackergrrl's full-sized avatar
🌱

Kira Oakley 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