Skip to content

Instantly share code, notes, and snippets.

View kbaribeau's full-sized avatar

Kevin Baribeau kbaribeau

  • Test Double
  • Saskatoon, SK, Canada
View GitHub Profile
@kbaribeau
kbaribeau / gist:61f47c00efc5133eef54
Last active August 29, 2015 14:18
simple clojure benchmarking
(defmacro bench [f]
`(let [start# (System/currentTimeMillis)
result# ~f
end# (System/currentTimeMillis)]
(println (str "bench result: " (- end# start#) "ms"))
result#))
@kbaribeau
kbaribeau / gist:2e33e540627677198150
Created January 20, 2015 17:54
count returns nil
(def conn (d/connect "datomic:dev://localhost:4334/seattle"))
;44
(d/q '[:find (count ?id) .
:in $ ?c
:where
[?id :community/category ?c]]
(d/db conn)
"human interest")
def foo
s = "something complicated"
do_other_stuff
s
end
def bar
"something complicated".tap do
do_other_stuff
end
@kbaribeau
kbaribeau / gist:d0d94c02a598490653de
Last active August 18, 2016 08:39
Clojure defrecord, namespaces, and dashes vs underscores
user=> (ns my-ns)
nil
my-ns=> (defrecord Outfit [shirt pants])
my_ns.Outfit
my-ns=> (ns clothes.outfit
#_=> (:require [my-ns])
#_=> (:import [my_ns Outfit])); note that we defined it in my-ns, but we have to use an underscore to import it
nil
clothes.outfit=> (Outfit. "t-shirt" "jeans")
#my_ns.Outfit{:shirt "t-shirt", :pants "jeans"}

Keybase proof

I hereby claim:

  • I am kbaribeau on github.
  • I am kbaribeau (https://keybase.io/kbaribeau) on keybase.
  • I have a public key whose fingerprint is 6F0A C3A6 C635 CC33 AE73 79C3 E3BE 88EC BB7C E3A8

To claim this, I am signing this object:

@kbaribeau
kbaribeau / gist:9027116
Created February 15, 2014 23:58
v8 error when calling it with dieter using ns-resolve
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x0000000116e2a1c2, pid=22721, tid=3335
#
# JRE version: Java(TM) SE Runtime Environment (7.0_45-b18) (build 1.7.0_45-b18)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.45-b08 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C [libv8wrapper.dylib+0x21c2] run+0x22
#
@kbaribeau
kbaribeau / gist:8508798
Created January 19, 2014 18:20
convert pdf files to text for further parsing
(ns pdf-text-extractor.core
(:import [com.snowtide.pdf OutputTarget PDFTextStream]))
(defn pdf-to-text [file]
(let [pdfts (new PDFTextStream file)
output (new StringBuilder 1024)]
(.pipe pdfts (new OutputTarget output))
(.close pdfts)
output))
@kbaribeau
kbaribeau / gist:4495181
Created January 9, 2013 17:46
The source code for the unix `ping` command, taken from here: http://ftp.arl.army.mil/~mike/ping.html
# This is a shell archive. Remove anything before this line, then
# unpack it by saving it in a file and typing "sh file". (Files
# unpacked will be owned by you and have default permissions.)
#
# This archive contains:
# Makefile ping.1 ping.c ping.shar newping.1 newping.c
echo x - Makefile
cat > "Makefile" << '//E*O*F Makefile//'
function fix-file-endings () {
for f in `git ls-files`
do
newline='
'
lastline=$(tail -n 1 $f; echo x); lastline=${lastline%x}
[ "${lastline#"${lastline%?}"}" != "$newline" ] && echo >> $f
done
}
@kbaribeau
kbaribeau / gist:3784044
Created September 25, 2012 19:51 — forked from nhajratw/gist:3783890
accessing functions??
var cycleTimeFunctionThatNeedsABetterName = function(acceptedDate, inProgressDate) {
var cycleTime = Math.round(Ext.Date.getElapsed(acceptedDate,inProgressDate) / 1000 / 60 / 60 / 24);
if (cycleTime === 0) cycleTime = 1;
return cycleTime;
};
Ext.define('CustomApp', {
extend: 'Rally.app.App',
componentCls: 'app',