Get the JDK source (per the OpenJDK instructions):
hg clone http://hg.openjdk.java.net/portola/portola
cd portola
bash ./get_source.sh
You need an existing Alpine with an already-built JDK. I have a Docker image of Alpine with glibc-based Zulu JDK:
pwned-passwd () | |
{ | |
history -d $((HISTCMD - 1)); | |
sha=$(printf $1 | sha1sum | cut -d' ' -f1 | tr [:lower:] [:upper:]); | |
prefix=${sha:0:5}; | |
suffix=${sha:5}; | |
count=$(curl -Ss https://api.pwnedpasswords.com/range/$prefix | grep $suffix | cut -d':' -f2); | |
[ -n "$count" ] && echo $count >&2 && return 1; | |
return 0; |
{"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}"}}} |
<!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> |
Get the JDK source (per the OpenJDK instructions):
hg clone http://hg.openjdk.java.net/portola/portola
cd portola
bash ./get_source.sh
You need an existing Alpine with an already-built JDK. I have a Docker image of Alpine with glibc-based Zulu JDK:
# cd .. with multiple jumps or jump up to name | |
..() { | |
if [ "-" = "$1" ]; then cd -; return; fi; # return to previous directory | |
if [ "/" = "$1" ]; then cd /; pwd; return; fi; # jump to root | |
if [ -z "$1" ]; then cd ../; pwd; return; fi; # jump up one | |
declare -i count=$1; # get a jump count | |
if [ $count -eq 0 ]; then # wasn't a number, look for name | |
local go=$(while [ "/" != "$PWD" ] && [ "$(basename $PWD)" != "$1" ]; do cd ..; done; pwd); | |
# jump up to named directory, or don't move if name wasn't found | |
if [ "/" != "$go" ]; then cd $go; else return; fi; |
(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 [ |
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 |
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 |