docker images -q -f dangling=true | xargs docker rmi
docker ps -q -f status=exited | xargs docker rm
;; lein try joda-time org.clojure/algo.generic | |
;; Let's first shave the parsing yak: | |
(import (org.joda.time.format PeriodFormatterBuilder)) | |
(def h:m-formatter | |
(-> (PeriodFormatterBuilder.) | |
(.appendHours) | |
(.appendSeparator ":") |
import javax.servlet.*; | |
import javax.servlet.http.HttpServletRequest; | |
import javax.servlet.http.HttpServletResponse; | |
import java.io.IOException; | |
import java.net.URI; | |
import java.net.URISyntaxException; | |
import static java.lang.String.format; | |
public class HttpsFilter implements Filter { |
// This version allows LHS to be any expression | |
// (and makes sure it's only evaluated once by storing the result) | |
let (?.) = macro { | |
rule infix { $lhs:expr | $rhs:ident } => { | |
(function ($tmp) { | |
return $tmp === null ? null : $tmp.$rhs; | |
})($lhs) | |
} | |
} |
require "lifx" # http://www.rubydoc.info/gems/lifx | |
def calculate_color(i) # 0 <= i <= 1 | |
h = [40 * 2 * i, 40].min # will be 40 (yellow) at i=1/2 and stay there | |
s = 1.0 - [(i - 0.5) * 2, 0].max # will be 1 until i=1/2 and then go down to 0 | |
b = i | |
LIFX::Color.hsbk(h, s, b, LIFX::Color::KELVIN_MIN) | |
end | |
duration = 10 * 60 # seconds |
#!/bin/bash | |
# Usage: cwd.sh /app /usr/bin/python example.py | |
cd $1 && exec "${@:2}" |
class ThriftSerializer extends JsonSerializer<TBase> { | |
@Override | |
public void serialize(TBase value, JsonGenerator jgen, SerializerProvider provider) throws IOException { | |
try { | |
TProtocolFactory f = new TSimpleJSONProtocol.Factory(); | |
String s = new TSerializer(f).toString(value); | |
jgen.writeRawValue(s); | |
} | |
catch (TException e) { | |
throw new IOException(e); |
(ns fancy-defn | |
(:require [schema.core :as s] | |
[clojure.core.typed :as t] | |
[circle.schema-typer :as st])) | |
;; Schemas created with s/defn end up using this. | |
(defmethod st/convert schema.core.One [schema] | |
(assert (= false (:optional? schema))) ;; No support for optional arguments yet. | |
(st/convert (:schema schema))) |
import java.util.Arrays; | |
import java.util.List; | |
import java.util.Optional; | |
import java.util.Set; | |
import java.util.stream.Stream; | |
import static java.util.stream.Collectors.toList; | |
import static java.util.stream.Collectors.toSet; | |
public class Optionals { |
;; https://github.com/plumatic/schema | |
;; https://github.com/dakrone/clj-http | |
;; http://api.developer.lifx.com/docs/set-state | |
(ns lifx-http-api | |
(:require [schema.core :as s] | |
[clj-http.client :as http])) | |
(def ^:dynamic *base-url* "https://api.lifx.com/v1/lights") | |
(def ^:dynamic *auth-token* "<get yours at https://cloud.lifx.com/settings>") |