Skip to content

Instantly share code, notes, and snippets.

wookiehangover / webkit-custom-scrollbar.css
Created Feb 4, 2011
Super-dooper hot webkit only scroll bar. This will fallback to use the default styles in FF & IE
View webkit-custom-scrollbar.css
@media screen and (-webkit-min-device-pixel-ratio:0) {
/* Custom Webkit scroll bar, super fucking dope */
body { position:absolute; top:0px; left:0; bottom:0; right:10px; overflow-y:scroll; overflow-x:hidden;}
html {
overflow-y: auto;
background-color: transparent;
::-webkit-scrollbar {
wookiehangover / mac-keys.txt
Created Aug 11, 2018
autohotkey config for Mac OS-like keyboard friendliness
View mac-keys.txt
; --------------------------------------------------------------
; Application specific
; --------------------------------------------------------------
; Google Chrome
#IfWinActive, ahk_class Chrome_WidgetWin_1
; Show Web Developer Tools with cmd + alt + i
#!i::Send {F12}
View json-map.js
'use strict'
class JSONMap extends Map {
constructor (value) {
let mapArgs = []
if (value) {
for (let k of Object.keys(value)) {
mapArgs.push([ k, value[k] ])
wookiehangover / gdax-stream.js
Last active May 11, 2017
GDAX WebSocket Rolling Stats
View gdax-stream.js
'use strict'
const Gdax = require('gdax')
const h = require('highland')
const streamStatistics = require('stream-statistics')
const websocket = new Gdax.WebsocketClient(['BTC-USD'])
const tickerStream = exports.tickerStream = (s = websocket) =>
h('message', s)
.stopOnError(() =>

First steps

Better instructions here, obvs:

Install the dnscrypt-client and connect to one of the public nodes. I chose []. You can "trust" these because they issue keypairs or something(?) but, caveat emptor.

But roll with the thick client because it's convenient and you'll get to see what you're in for... which is pretty boring if you're not running dig or nslookup all the time to see where your DNS entries are coming from. But then again, it's pretty boring. But at least they're encrypted?

Paranoid mode: DNSCrypt server

wookiehangover /
Last active Feb 20, 2017
Dropbox Design Guidelines
  • Use a flat folder structure, organized by client name

    • No numbers, unicode dots or dashes in front of folder names
    • Never create empty directories
  • If there are less than 10 total items (design assets, screenshots, etc) there should be no sub-directories

    • This rule also applies to nested sub-directories
    • Never create empty directories
  • Files should follow a naming structure that's consistent from within a given client folder

    • We do not need to strive for consistency between clients
View index.html
<div class="wrapper">
All non-footer content goes here.
<div class="pusher"></div>
<footer class="primary-footer">
Footer Content
config =
mainConfigFile: 'some/path/to/your/config.js'
baseUrl: 'some/path/to/your/assets'
almond: true
optimize: 'uglify2'
wrap: false
View gist:8225458
browser.waitForElementByCssSelector('.modal-footer button', 30e3)
return $('.modal-footer button').click();

Sprintly Env Setup

git clone

brew install python
brew install memcached
brew install libmemcached
brew install mysql
brew install pv
You can’t perform that action at this time.