Skip to content

Instantly share code, notes, and snippets.

View jhickner's full-sized avatar

Jason Hickner jhickner

  • Formation / VaryWell / Kite & Lightning
  • Seattle
View GitHub Profile
@jhickner
jhickner / reload_chrome.applescript
Created September 19, 2012 21:09
Applescript to reload the current tab in Chrome
tell application "Google Chrome"
activate
tell application "System Events"
tell process "Google Chrome"
keystroke "r" using {command down, shift down}
end tell
end tell
end tell
-- Save that in a text file somewhere and run it from terminal with:
@jhickner
jhickner / 1.clj
Created April 14, 2012 07:00
hmac
(ns oauth.digest
(:import (javax.crypto Mac)
(javax.crypto.spec SecretKeySpec)))
(defn hmac
"Calculate HMAC signature for given data."
[^String key ^String data]
(let [hmac-sha1 "HmacSHA1"
signing-key (SecretKeySpec. (.getBytes key) hmac-sha1)
mac (doto (Mac/getInstance hmac-sha1) (.init signing-key))]
@jhickner
jhickner / gist:2374900
Created April 13, 2012 07:36
konami code rxjs example in clojurescript
(ns rxjs.client.core
(:use [jayq.core :only [$ on off document-ready]]
[jayq.util :only [log]]))
(defn on-as-observable [$elem events & [sel data]]
(js/Rx.Observable.create
(fn [observer]
(let [handler (fn [evt-object]
(.onNext observer evt-object))]
(on $elem events sel data handler)
@jhickner
jhickner / clojurescript
Created April 11, 2012 22:05
underscore.js -> clojurescript
(defn debounce [func wait immediate]
(let [timeout (atom nil)]
(fn []
(this-as this
(let [context this
args js/arguments
later (fn []
(reset! timeout nil)
(when-not immediate
(.apply func context args)))]
@jhickner
jhickner / gist:2326125
Created April 7, 2012 07:06
which is better?
;; vanilla version
(defn make-lock []
(atom nil))
(defn has-lock? [lock id]
(= id @lock))
(defn set-lock! [lock id new-id]
(let [lock-id @lock]
(defrecord web-socket
Object
(send [msg] ...)
(close [_] ...))
(ns fj
(:import [java.util.concurrent RecursiveTask
ForkJoinPool]))
(set! *warn-on-reflection* true)
;; -----------------------------------------------
;; Helpers to provide an idiomatic interface to FJ
(defprotocol IFJTask
@jhickner
jhickner / locals.clj
Created March 17, 2012 22:48 — forked from alandipert/locals.clj
locals map
(defmacro locals
"Returns a map of locals, as keywords, to their values."
[]
(let [locals (keys &env)]
`(zipmap ~@(map vec [(map keyword locals) locals]))))
(let [x 10]
(let [y 20
z (+ x y)]
(locals)))
@jhickner
jhickner / gist:1218258
Created September 15, 2011 00:55 — forked from swannodette/gist:1214547
closure_and_proto.clj
/*
Silly example - close over s (say a string) returning an instance
of an anonymous type that acts like a ClojureScript collection
(defn make-conjable [s]
(reify
ICollection
(-conj [_ c] (str s c))))
*/
@jhickner
jhickner / gist:1215454
Created September 13, 2011 23:18 — forked from swannodette/gist:1210048
example.cljs
;; Copyright (c) Rich Hickey. All rights reserved.
;; The use and distribution terms for this software are covered by the
;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
;; which can be found in the file epl-v10.html at the root of this distribution.
;; By using this software in any fashion, you are agreeing to be bound by
;; the terms of this license.
;; You must not remove this notice, or any other, from this software.
(ns repl.test
(:require [clojure.browser.repl :as repl]