Skip to content

Instantly share code, notes, and snippets.

View joewalnes's full-sized avatar

Joe Walnes joewalnes

View GitHub Profile
@joewalnes
joewalnes / jar-launcher.md
Last active December 10, 2023 11:58
Make a single file Java jar launcher

This is a little trick to turn an executable Java jar.

It works on all unixy like systems including Linux, MacOS, Cygwin, and Windows Linux subsystem.

Step 1 Start with an all-in-one jar (with entry point and all deps within)

$ ls 
hello.jar
@joewalnes
joewalnes / simple-http-server.kt
Created November 20, 2017 18:58
Minimal embedded HTTP server in Kotlin using Java built in HttpServer
import com.sun.net.httpserver.HttpServer
import java.io.PrintWriter
import java.net.InetSocketAddress
/**
* Minimal embedded HTTP server in Kotlin using Java built in HttpServer
*/
fun main(args: Array<String>) {
HttpServer.create(InetSocketAddress(8080), 0).apply {
https://www.sparkfun.com/products/8688
http://bildr.org/2011/06/temt6000_arduino/
http://playground.arduino.cc/Interfacing/LinuxTTY
http://websocketd.com/
http://smoothiecharts.org/
-- sensor
@joewalnes
joewalnes / .block
Last active January 1, 2017 19:49 — forked from mbostock/.block
Streamgraph
license: gpl-3.0
@joewalnes
joewalnes / go-getter
Last active March 9, 2016 12:58
go-getter: Alternative to "go get" that fixes packages to a version for consistent and repeatable builds.
#!/bin/bash
# Alternative to "go get" that grabs Go packages based on a fixed version.
# Use this to ensure consistent and repeatable builds.
#
# While there are other tools out there that do this, this is really just
# a very small shell script so painless to work into your existing workflow.
#
# Usage:
#
@joewalnes
joewalnes / 2015.md
Last active August 29, 2015 14:12
My 2015 tech predictions
MODULES := ./node_modules
BIN := $(MODULES)/.bin
.PHONY: install_modules all clean
all: install_modules filtrex.js filtrex.min.js
clean:
rm -f filtrex.js
rm -f filtrex.min.js
@joewalnes
joewalnes / with-great-regret.js
Last active August 29, 2015 14:01
with great regret
// Let's look at a snippet from a React example here: http://facebook.github.io/react/
// -----------------------------
// This is how you build the React virtual DOM with plain JavaScript.
return (
React.DOM.div(null,
React.DOM.h3(null, "TODO"),
TodoList({items:this.state.items}),
React.DOM.form({onSubmit:this.handleSubmit},

Keybase proof

I hereby claim:

  • I am joewalnes on github.
  • I am joewalnes (https://keybase.io/joewalnes) on keybase.
  • I have a public key whose fingerprint is 5EE8 93C3 28CD 4BE5 FD9D B392 E50E 80DF 9AD0 F330

To claim this, I am signing this object:

@joewalnes
joewalnes / gist:6996934
Created October 15, 2013 19:04
parser notes
"{{foo bar.baz.bam}}"
OPEN ID(foo) ID(bar) SEP ID(baz) SEP ID(bam) CLOSE
root
TemplateNode(statements)
TemplateNode([statement])
TemplateNode([expression])
TemplateNode([ExpressionNode(expression_contents)])
TemplateNode([ExpressionNode(path param* hash?)])
TemplateNode([ExpressionNode(IdNode.build(path_segments) param*)])
TemplateNode([ExpressionNode(IdNode.build(id) param*)])