Skip to content

Instantly share code, notes, and snippets.

View mjg123's full-sized avatar
😅

Matthew Gilliard mjg123

😅
View GitHub Profile
@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}
FROM debian:sid-slim
ADD jdk-10-ea+39_linux-x64_bin.tar.gz /java
ENTRYPOINT ["/java/jdk-10/bin/jshell", "-q"]
@mjg123
mjg123 / Convert.java
Last active May 9, 2018 12:42
A little class for re-writing Java method names when using `jaotc`
public class Convert {
public static void main(String args[]) throws Throwable {
int i;
boolean inParams = false;
while ((i = System.in.read()) >= 0) {
switch (i) {
case ':':
continue; // skip
case '/':
if (!inParams) {
@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 / test2.clj
Last active December 11, 2015 00:36
(defn ensure-ns [ns-name]
(when-not (find-ns (symbol ns-name))
(.setDynamic
(intern (create-ns (symbol ns-name)) '*me* "never-seen")))
(the-ns (symbol ns-name)))
(defn eval-w-bindings [user-code ns-name user]
(let [my-ns (ensure-ns ns-name)]
(with-bindings {#'*ns* my-ns
(ns-resolve my-ns '*me*) user}
@mjg123
mjg123 / test.clj
Last active December 10, 2015 23:21
(when (not (find-ns 'mattermost))
(.setDynamic ;; <- This horrific interop into Var.java to counter
(intern (create-ns 'mattermost) ;; CLJ-951, which is a closed/wishlist bug reporting that
(with-meta '*me* {:dynamic true}) ;; <- this is actually not propagated fully (is, in fact, useless) :(
"foo")))
(defn eval-w-bindings [str user]
(binding [*ns* (create-ns 'mattermost)
mattermost/*me* user]
(clojure.core/refer 'clojure.core)
@mjg123
mjg123 / gist:cb544f2f6853df8d866c
Last active August 29, 2015 14:22
Diagnosing a gate failure using logstash.openstack.org

Recently we noticed that the "check-tempest-dsvm-multinode-full" job, which is non-voting in nova's check jobs, was failing in a new way.

Some notes about how the failure was diagnosed:

  1. Job is failing
  2. why? find a signature for the failure, eg
File "tempest/api/compute/admin/test_live_migration.py", line 116, in test_live_block_migration"