Skip to content

Instantly share code, notes, and snippets.

Matthew Gilliard mjg123

Block or report user

Report or block mjg123

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
mjg123 /
Last active May 9, 2018
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 = >= 0) {
switch (i) {
case ':':
continue; // skip
case '/':
if (!inParams) {
View poly.clj
;; 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 /
Created Nov 16, 2016
TDD Demo Summary
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 / a_star.cljc
Last active Oct 6, 2016
Functional A*
View a_star.cljc
;; Rewrite of*_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
View test2.clj
(defn ensure-ns [ns-name]
(when-not (find-ns (symbol ns-name))
(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}
View test.clj
(when (not (find-ns 'mattermost))
(.setDynamic ;; <- This horrific interop into 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) :(
(defn eval-w-bindings [str user]
(binding [*ns* (create-ns 'mattermost)
mattermost/*me* user]
(clojure.core/refer 'clojure.core)
mjg123 / gist:cb544f2f6853df8d866c
Last active Aug 29, 2015
Diagnosing a gate failure using
View gist:cb544f2f6853df8d866c

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/", line 116, in test_live_block_migration"
mjg123 /
Created Dec 1, 2014
classes using a decorator to store methods will be dependent on decorator ordering
import pprint
import six
captured_methods = {}
class MjgClass(object):
def decorated(cls):
global captured_methods
def decorator(f):
View main.go
package main
import (
func main() {
mjg123 /
Created May 9, 2014
tiny shell script for adding timestamps to lines piped in from stdin
while read f; do
date +"%H:%M:%S " | tr -d '\n';
echo $f;
You can’t perform that action at this time.