Skip to content

Instantly share code, notes, and snippets.

@bmhatfield
bmhatfield / .profile
Last active Dec 3, 2021
Automatic Git commit signing with GPG on OSX
View .profile
# In order for gpg to find gpg-agent, gpg-agent must be running, and there must be an env
# variable pointing GPG to the gpg-agent socket. This little script, which must be sourced
# in your shell's init script (ie, .bash_profile, .zshrc, whatever), will either start
# gpg-agent or set up the GPG_AGENT_INFO variable if it's already running.
# Add the following to your shell init to set up gpg-agent automatically for every shell
if [ -f ~/.gnupg/.gpg-agent-info ] && [ -n "$(pgrep gpg-agent)" ]; then
source ~/.gnupg/.gpg-agent-info
export GPG_AGENT_INFO
else
@teropa
teropa / life.cljs
Created Nov 3, 2015
Conway's Life in ClojureScript
View life.cljs
;; Credits:
;;
;; * ClojureScript
;; * Reagent https://reagent-project.github.io/
;; * Figwheel https://github.com/bhauman/lein-figwheel
;; * core.async https://clojure.github.io/core.async/
;; * Christophe Grand's Life implementation http://clj-me.cgrand.net/2011/08/19/conways-game-of-life/
(ns life.core
(:require [reagent.core :as r]
@luanshiliuxng
luanshiliuxng / dns-subdomain-gandi-mailgun.txt
Created Oct 16, 2015 — forked from Dweez/dns-subdomain-gandi-mailgun.txt
Gandi subdomain DNS configuration for Mailgun validation
View dns-subdomain-gandi-mailgun.txt
# Gandi subdomain DNS configuration for Mailgun validation
# - Add the SPF record as TXT and SPF
# - Suffix the DKIM record and `email` CNAME with the subdomain
# ex: `mg.domain.com`
mg 10800 IN CNAME mailgun.org.
@ 10800 IN SPF "v=spf1 include:mailgun.org ~all"
@ 10800 IN TXT "v=spf1 include:mailgun.org ~all"
mailo._domainkey.mg 10800 IN TXT "k=rsa; p=MIG...QAB"
email.mg 10800 IN CNAME mailgun.org.
@ 10800 IN MX 10 mxa.mailgun.org.
@film42
film42 / xv6-setup-yosemite.sh
Last active Sep 28, 2020
Get xv6 running with QEMU on OSX Yosemite
View xv6-setup-yosemite.sh
#! /usr/bin/env bash
# Get xv6 working with OSX Yosemite
# Most things were here: https://doesnotscale.com/compiling-xv6-on-os-x-10-9/
# You need homebrew installed to make this thing work
brew tap homebrew/versions && brew install gcc48
brew deps qemu | xargs brew install
export PATH=/usr/local/bin:$PATH
export CC=/usr/local/bin/gcc-4.8
brew install wget
View richhickey.md

Rich Hickey on becoming a better developer

Rich Hickey • 3 years ago

Sorry, I have to disagree with the entire premise here.

A wide variety of experiences might lead to well-roundedness, but not to greatness, nor even goodness. By constantly switching from one thing to another you are always reaching above your comfort zone, yes, but doing so by resetting your skill and knowledge level to zero.

Mastery comes from a combination of at least several of the following:

View gist:bb932fb93e22fe6260b2
Rich Hickey on becoming a better developer
Avatar
Rich Hickey • 3 years ago
Sorry, I have to disagree with the entire premise here.
A wide variety of experiences might lead to well-roundedness, but not to greatness, nor even goodness. By constantly switching from one thing to another you are always reaching above your comfort zone, yes, but doing so by resetting your skill and knowledge level to zero.
Mastery comes from a combination of at least several of the following:
@jackrusher
jackrusher / fold-and-spindle.clj
Last active Aug 29, 2015
A few words on fold for a friend who had just read http://www.cs.nott.ac.uk/~gmh/fold.pdf
View fold-and-spindle.clj
;; simplest fold definition
(defn fold [f init l]
(if (empty? l) init (fold f (f init (first l)) (rest l))))
;; by this time you are almost certainly comfortable with signatures like:
;; Int -> Int
(fold + 0 [1 2 3 4 5])
;; => 15
View gist:69c50ace9a5d888c9a48
[info] Starting scala interpreter...
[info]
Welcome to Scala version 2.10.4 (OpenJDK 64-Bit Server VM, Java 1.6.0_32).
Type in expressions to have them evaluated.
Type :help for more information.
scala> def f = 1
def f = 1
f: Int
View history.cljs
(ns history
"Light wrappers and utils for js/history")
(defn back! [] (.back js/history))
(defn forward! [] (.forward js/history))
(defn go! [idx] (.go js/history idx))
(defn replace-state!
anonymous
anonymous / ux.cljs
Created Jan 21, 2014
View ux.cljs
;;; TODO - drag-enter and -exit events : Right now, a component doesn't receive events for other components
;;; If a component responds to drag-over, it won't "revert" state until the drag ends.
;; NOTE - compiles with om 0.1.7. Needs updating to 0.2+
(ns omdnd.ux
(:require-macros
[cljs.core.async.macros :refer [go alt!]]
)