Skip to content

Instantly share code, notes, and snippets.

View planter-box.md

Buy List

  • Six 8' 2x6's (or at least 48 board-feet)
  • One 8' 2x4
  • 1 box 4" screws
  • 1 box 2 1/2 screws
  • Water proof stain + brush
  • (optional) chicken wire to cover 3'x5'

Cut List

  • Six 60" 2x6 for the sides
View Astro SSR Notes.md
  • Dynamic HTML comes from individual bundles compiled for every server rendered page.
    • The contents of each astro template determine if a page is static or dynamic:
      • Static pages output complete HTML documents at build time
      • Dynamic pages output ES Modules that are run on a server
    • Each bundle should be and ES Module that exports a standard interface with methods for creating
      • HTML payloads
        • an entire document for full page requests
        • a partial document for incremental updates
      • a JSON payload with the props for the template
  • Individual bundles makes for an ideal target for serverless functions and makes a path for hybrid CDN + SSR deployments
@wookiehangover
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
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(() =>
View instructions.md

First steps

Better instructions here, obvs: https://dnscrypt.org/

Install the dnscrypt-client and connect to one of the public nodes. I chose [https://nxt.ist]. 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
wookiehangover / items.json
Created Mar 19, 2015
/api/products/{product_id}/items.json
View items.json
[
{
"status": "backlog",
"product": {
"archived": false,
"id": 1,
"name": "sprint.ly"
},
"progress": {
"accepted_at": "2013-06-14T22:52:07+00:00",
View cookies.md

Sprintly Cookies

22 cookies total, not counting cookies on external domains.

3rd Party Services

Cookies created on the .sprint.ly created by external services, mostly for analytics.

  • __utma, __utmb, __utmc, __utmv, __utmz, _ga, _ga_UA-27543638-4, _gat_UA-27543638-4 are all used for Google Analytics
@wookiehangover
wookiehangover / gist:200d8679f3f19bbfd6c3
Last active Aug 29, 2015
tv code review – part 1
View gist:200d8679f3f19bbfd6c3

source/js/app.js

8: too many arguments, make this take a configuration object

10: why not attach view to the app object here?

source/js/start.js

View keybase.md

Keybase proof

I hereby claim:

  • I am wookiehangover on github.
  • I am sambreed (https://keybase.io/sambreed) on keybase.
  • I have a public key whose fingerprint is 6461 3818 B282 1034 BC96 E5F9 D6B1 6FE4 4DDF 6046

To claim this, I am signing this object: