Skip to content

Instantly share code, notes, and snippets.

View mjg123's full-sized avatar
😅

Matthew Gilliard mjg123

😅
View GitHub Profile
@mjg123
mjg123 / latinsq.clj
Created October 26, 2011 08:37
Latin square solver in clojure
(ns latinsq.core
(:use [clojure.set :only (difference)]))
(defn replace-at
"in string s, replaces character at index p with c"
[s p c]
(str
(.substring s 0 p)
c
@mjg123
mjg123 / func.py
Last active April 10, 2018 17:08
Example fn code to query the OsloBysykkel API
import json
import urllib2
import sys
try:
input = json.loads(''.join(sys.stdin.readlines()))['body']
except:
input=""
if input == "":
@mjg123
mjg123 / gist:8198a1311f4e8fa3b8376e93d24cafb1
Last active February 14, 2018 21:52
vista-snippet.java
public void handleRequest(ScrapeReq input) throws Exception {
FlowFuture<ScrapeResp> scrapes = currentFlow().invokeFunction("./scraper", input, ScrapeResp.class);
scrapes.thenCompose(resp -> {
List<ScrapeResp.ScrapeResult> results = resp.result;
List<FlowFuture<?>> pendingTasks = results
.stream()
FROM debian:sid-slim
ADD jdk-10-ea+39_linux-x64_bin.tar.gz /java
ENTRYPOINT ["/java/jdk-10/bin/jshell", "-q"]
@mjg123
mjg123 / flags.diff
Created January 16, 2018 13:16
JDK10 Ergonomics in container.
--- host.flags 2018-01-16 13:09:27.257621324 +0000
+++ container.flags 2018-01-16 13:12:20.832503747 +0000
@@ -56,7 +56,7 @@
bool C1ProfileInlinedCalls = true {C1 product} {default}
bool C1ProfileVirtualCalls = true {C1 product} {default}
bool C1UpdateMethodData = true {C1 product} {default}
- intx CICompilerCount = 18 {product} {ergonomic}
+ intx CICompilerCount = 15 {product} {ergonomic}
bool CICompilerCountPerCPU = true {product} {default}
bool CITime = false {product} {default}
@mjg123
mjg123 / poly.clj
Last active November 25, 2016 12:51
;; A polynomial was produced by my GP to fit points generated by this function in the range [-10 <= a < 10]:
(def archetype (fn [a] (if (pos? a) 1 0)))
;; The results
(clojure.pprint/pprint (for [x (range -10 10)] (generated x)))
;; => (-0.00350264540310313
;; 0.0024697321715263917
;; -0.0034714670565933682
@mjg123
mjg123 / tdd.org
Created November 16, 2016 08:53
TDD Demo Summary
TestImplementation
2 is primereturn true;
3 is primereturn true;
4 is not primereturn n!=4;
5 is primereturn n!=4;
6 is not primereturn true unless n is even
7 is primereturn true unless n is even
8 is not primereturn true unless n is even
@mjg123
mjg123 / a_star.cljc
Last active October 6, 2016 15:45
Functional A*
;; Rewrite of https://en.wikipedia.org/wiki/A*_search_algorithm#Pseudocode in a functional way
#?(:cljs (def INFINITY 9007199254740991)) ;; Math.pow(2,53)-1
#?(:clj (def INFINITY Integer/MAX_VALUE))
(defn a*
([graph start goal heuristic] (a* graph start goal heuristic
#{start} #{} {}
{start 0} {start (heuristic start goal)}))
([graph start goal h
@mjg123
mjg123 / notes
Last active December 11, 2015 21:39
Lazy approach to approximating square roots in clojure using Newton-Raphson. For BrisFunctional.
line 21 sidesteps the fact that Math/abs doesn't work for clojure's Rational (ie fractional) datatype.