Skip to content

Instantly share code, notes, and snippets.

View delitescere's full-sized avatar

Josh Graham delitescere

View GitHub Profile
@delitescere
delitescere / gist:898624cba15b0e2e1644
Last active August 29, 2015 14:06
As My Compiler Gently Weeps
Written for my buddy Charles Miller, 28-Aug-2013:
I look at you all see the tests there that're failing
While my compiler gently weeps
I look at the heap and I see it needs mark/sweeping
Still my compiler gently weeps
I don't know why nobody told you
How to unfold your data
I don't know how someone controlled you
@delitescere
delitescere / gist:3d9dc010d0894afba759
Created September 12, 2014 22:46
Monad For Nothing
For @ctford, 16-Sep-2013
@juliansgamble:
You get your algorithms for nothing and your theorems for free
I want my
I want my
I want my AST
@delitescere:
Now look at that IO
@delitescere
delitescere / README.md
Last active August 29, 2015 14:17
Zulu 8 on busybox (with OpenSSL). Leiningen on busybox (with bash).
@delitescere
delitescere / gist:2155822
Created March 22, 2012 04:13
How to get the HTTP Request to the authenticate method?
tuple(...
).verifying("Invalid username or password", _ match {
case (Some(u), Some(p), _) => authenticate(u, p)
...
})
aMap.get("a key that might not exist")
.map(expressionUsingTheValue(_))
.getOrElse(anotherExpression)
lazy val defaultBrowserVersion = Play.configuration.getString("snapshot.browserVersion")
.map(extractVersion _)
.getOrElse(BrowserVersion.FIREFOX_3_6) // Firefox 3.6 makes a good default because it works on all OSes
// Do you really need to throw an exception? Why not log it as an error, and return None so you end up with the default above?
def extractVersion(browserString: String): Option[BrowserVersion] = {
allCatch opt {
Some(classOf[BrowserVersion].getField(browserString).get(null).asInstanceOf[BrowserVersion])
}
@delitescere
delitescere / index.html
Created May 23, 2017 23:01
Handlebars client-side templates
<!DOCTYPE html>
<html>
<head>
<title>Greeting</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.10/handlebars.min.js"></script>
</head>
<body>
<h1>Greetings!</h1>
@delitescere
delitescere / project.clj
Last active June 23, 2017 01:26
Mostly Java-based lein project with JUnit and Log4J2 (main.clj is still entry point)
(defproject com.example/foo "0.1.0"
:description "Does fooness"
:url "http://example.com/"
:license {:name "Copyright ©2014 Josh Graham"}
:aliases {"dist" ["do" ["clean"] ["test"] ["uberjar"]] ;$ lein dist # create distribution JAR
"debug" ["with-profile" "dev,debug" "run"]} ;$ lein debug # run for a 'remote' debugger
:aot :all
:auto-clean false ;"dist" alias does the full cycle
:clean-targets ^{:protect false} [:target-path :junit-results-dir]
:dependencies [
@delitescere
delitescere / index
Last active August 6, 2017 14:52
JSON Home file 3
{"api":{"title":"Scan Data","links":{"describedBy":"https://mport.com/api-docs/scan-data","author":"mailto:api@mport.com?subject=scan-data+json-home"}},"resources":{"tag:https://mport.com/api-docs/scan-data/resource/scans":{"hints":{"formats":{"application/edn":{},"application/json":{}},"allow":["GET"],"authSchemes":[{"scheme":"Bearer"}]},"href":"/scan/"},"tag:https://mport.com/api-docs/scan-data/resource/scan":{"hints":{"formats":{"application/edn":{},"application/json":{}},"acceptRanges":["items"],"acceptPut":["application/json","application/edn"],"acceptPost":["application/json","application/edn"],"allow":["GET","POST","PUT","DELETE"],"authSchemes":[{"scheme":"Bearer"}]},"hrefVars":{"scan-id":"https://mport.com/api-docs/scan-data/param/scan-id"},"hrefTemplate":"/scan/{scan-id}"}}}