Skip to content

Instantly share code, notes, and snippets.

Avatar

Josh Graham delitescere

View GitHub Profile
@delitescere
delitescere / pwned-passwd.sh
Last active Apr 10, 2018
Check a pwned password from the macOS / bash command line
View pwned-passwd.sh
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;
@delitescere
delitescere / index
Last active Aug 6, 2017
JSON Home file 3
View index
{"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}"}}}
@delitescere
delitescere / index.html
Created May 23, 2017
Handlebars client-side templates
View index.html
<!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 / bootstrap.md
Last active May 8, 2019
Portola (OpenJDK using musl) on Alpine
View bootstrap.md

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:

@delitescere
delitescere / cd-lessfuss.sh
Last active Nov 12, 2018
cd .. with less fuss
View cd-lessfuss.sh
# 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;
@delitescere
delitescere / project.clj
Last active Jun 23, 2017
Mostly Java-based lein project with JUnit and Log4J2 (main.clj is still entry point)
View project.clj
(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 [
View gist:3d9dc010d0894afba759
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 / gist:898624cba15b0e2e1644
Last active Aug 29, 2015
As My Compiler Gently Weeps
View gist:898624cba15b0e2e1644
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
You can’t perform that action at this time.