Skip to content

Instantly share code, notes, and snippets.

View nfisher's full-sized avatar
🏠
Working from home

Nathan Fisher nfisher

🏠
Working from home
View GitHub Profile
@nfisher
nfisher / index.go
Last active January 13, 2018 01:09
Using James nlp package.
package search
import (
"github.com/james-bowman/nlp"
"github.com/james-bowman/nlp/measures/pairwise"
"gonum.org/v1/gonum/mat"
)
type Index struct {
vectoriser *nlp.CountVectoriser
@nfisher
nfisher / profile-1514340216912.trace
Created January 2, 2018 21:52
profile-1514340216912.trace
This file has been truncated, but you can view the full file.
[{"name":"`Boolean","ts":1514340216924000,"ph":"X","tid":1,"dur":0,"pid":0}
,{"name":"`Byte","ts":1514340216924000,"ph":"X","tid":1,"dur":0,"pid":0}
,{"name":"`Character","ts":1514340216924000,"ph":"X","tid":1,"dur":0,"pid":0}
,{"name":"`Class","ts":1514340216924000,"ph":"X","tid":1,"dur":0,"pid":0}
,{"name":"`ClassLoader","ts":1514340216924000,"ph":"X","tid":1,"dur":0,"pid":0}
,{"name":"`Compiler","ts":1514340216924000,"ph":"X","tid":1,"dur":0,"pid":0}
,{"name":"`Double","ts":1514340216926000,"ph":"X","tid":1,"dur":0,"pid":0}
,{"name":"`Enum","ts":1514340216926000,"ph":"X","tid":1,"dur":0,"pid":0}
,{"name":"`Float","ts":1514340216926000,"ph":"X","tid":1,"dur":0,"pid":0}
,{"name":"`InheritableThreadLocal","ts":1514340216926000,"ph":"X","tid":1,"dur":0,"pid":0}
@nfisher
nfisher / profile-1514009597010.trace
Created December 23, 2017 06:14
Clojure - Google Tracing
[{"ts":1514009596285000,"name":"clojure.core/*out*","ph":"B","tid":1,"pid":0}
,{"name":"clojure.core/*out*","ts":1514009596296000,"ph":"E","tid":1,"pid":0}
,{"ts":1514009596297000,"name":"clojure.core/*in*","ph":"B","tid":1,"pid":0}
,{"name":"clojure.core/*in*","ts":1514009596297000,"ph":"E","tid":1,"pid":0}
,{"ts":1514009596297000,"name":"clojure.core/*err*","ph":"B","tid":1,"pid":0}
,{"name":"clojure.core/*err*","ts":1514009596297000,"ph":"E","tid":1,"pid":0}
,{"ts":1514009596297000,"name":"clojure.core/*agent*","ph":"B","tid":1,"pid":0}
,{"name":"clojure.core/*agent*","ts":1514009596298000,"ph":"E","tid":1,"pid":0}
,{"ts":1514009596298000,"name":"clojure.core/*read-eval*","ph":"B","tid":1,"pid":0}
,{"name":"clojure.core/*read-eval*","ts":1514009596298000,"ph":"E","tid":1,"pid":0}
@nfisher
nfisher / pr.sh
Created December 21, 2017 21:33
Download PR's as a patch
#!/bin/sh -eu
# example usage: ./pr.sh 72
PR_NUM=$1
curl -L "https://github.com/clojure/clojure/pull/${PR_NUM}.patch" \
-o "pr${PR_NUM}.patch"
### Keybase proof
I hereby claim:
* I am nfisher on github.
* I am nfisher (https://keybase.io/nfisher) on keybase.
* I have a public key ASDkdr2JNCcGFzDeN7Quor6H2KoWD_IO879JHYFUpQtF_go
To claim this, I am signing this object:
@nfisher
nfisher / Call.java
Created September 27, 2017 00:04
Call clojure FN from JAR file
public class Call {
public void printPlus() {
final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
final Class c = Class.forName("clojure.lang.RT", true, classLoader);
final Method method = c.getDeclaredMethod("var", String.class, String.class);
Object var = method.invoke(null, "clojure.core", "+");
Class<?> varClass = var.getClass();
final Method plus = varClass.getDeclaredMethod("invoke", Object.class, Object.class, Object.class);
System.out.println(plus.invoke(var, 1, 2, 3));
package com.markel.avro.crypto;
import org.apache.avro.file.Codec;
import org.junit.Test;
import javax.crypto.KeyAgreement;
import javax.crypto.NoSuchPaddingException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
@nfisher
nfisher / BUCK
Created September 8, 2016 22:16
BUCK file to generate Java code from an Avro IDL
prebuilt_jar(
name = 'avro',
binary_jar = 'lib/avro-1.8.1.jar',
source_jar = 'lib/avro-1.8.1-sources.jar',
)
prebuilt_jar(
name = 'avro-tools-jar',
binary_jar = 'lib/avro-tools-1.8.1.jar',
@nfisher
nfisher / Main.java
Created September 5, 2016 16:05
Worker and Co-ordinator threads.
import java.lang.*;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
class Signal {
ReadWriteLock lock = new ReentrantReadWriteLock();
volatile boolean running = true;
public void stop() {
lock.writeLock().lock();
@nfisher
nfisher / address.cljc
Created September 1, 2016 11:57
Clojure Destructuring
;; validation of this address is managed in re-frame handler
(def address {:lines "15 Drury Lane" :city "London" :postcode "WC1V7AA"})
(def address-component1 [address]
(let [lines (:lines address)
city (:city address)
postcode (:postcode address)]
[:dl
[:dt "Lines"]
[:dd lines]