Skip to content

Instantly share code, notes, and snippets.

@Velrok
Velrok / follow_json_logs
Created March 31, 2017 11:14
Piple the logs of an app into follow_json_logs. If the message is json it will pretty print it. Optionally parse a jq query as a first argument.
function follow_json_log {
if [ -n "$1" ]
then
jq -R "fromjson? | select (type == \"object\") | $1"
else
jq -R 'fromjson? | select (type == "object")'
fi
}
@Velrok
Velrok / follow_json_logs
Created March 31, 2017 11:10
Defines a bash function called follow_json_logs you can pipe a json log into.
function follow_json_log {
jq -R 'fromjson? | select (type == "object") | .message'
}
@Velrok
Velrok / cloure-jetty-q-snipet.clj
Created February 17, 2017 17:20
Inject a different factory function that creates a fixed sized request queue.
(def jetty-req-q (java.util.concurrent.ArrayBlockingQueue. configuration/http-queue-length))
(defn create-threadpool [options]
(let [pool (org.eclipse.jetty.util.thread.QueuedThreadPool. (options :max-threads configuration/http-max-threads)
(options :min-threads configuration/http-min-threads)
0
jetty-req-q)]
(.setMinThreads pool (options :min-threads configuration/http-min-threads))
(when (:daemon? options false)
(.setDaemon pool true))
@Velrok
Velrok / ewan-shuffle.clj
Last active January 30, 2017 13:48
Create an algorithm that ensures that for any given sequence there is no more than a run of 2 of the same type. Try to preserve the order as much as possible.
(ns user)
;@here if anyone wants a small friday challenge. Create an algorithm that
;ensures that for any given sequence there is no more than a run of 2 of the
;same type. Try to preserve the order as much as possible.
;ie: not a random shuffle. There can be a continuous run of more than 2
;at the end of the sequence
(def problem [:a :a :a :a :a :a :b :b :c :a :b :b :b])
(def large-problem (doall (map (fn [_]
(->> #{:a :b :c}
@Velrok
Velrok / afile_client.erl
Created April 22, 2016 22:49
learning Erlang
-module(afile_client).
-export([ls/1, get_file/2, put_file/3]).
ls(Server) ->
Server ! {self(), list_dir},
receive
{Server, FileList} ->
FileList
end.
@Velrok
Velrok / dump_mondo_trx.sh
Created November 14, 2015 15:10
Dump all available mondo transactions.
#!/bin/bash
set -e
# yo need to set
# all values must be url encoded!
# export MONDO_EMAIL
# export MONDO_PASSWORD
# export MONDO_CLIENT_ID
# export MONDO_CLIENT_SECRET
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>velrok.gittify-uswitch-notes.plist</string>
<key>WorkingDirectory</key>
<string>/Users/waldemarschwan/Google Drive/notes</string>
@Velrok
Velrok / Dockerfile
Created December 21, 2014 23:31
Example Dockerfile for a clojure app.
FROM java:7
MAINTAINER Velrok
RUN mkdir -p /opt/mb
ADD ./target/mb.jar /opt/mb/mb.jar
ADD ./VERSION /opt/mb/VERSION
ADD ./public /opt/mb/public
WORKDIR /opt/mb
@Velrok
Velrok / build.sh
Created December 21, 2014 23:30
Example build script for a clojure app via giantswarm.io
#!/bin/bash
set -e
lein ring uberjar
./increment_version.rb $@
docker build --rm=true -t registry.giantswarm.io/velrok/mb:$(cat ./VERSION) .
docker push registry.giantswarm.io/velrok/mb:$(cat ./VERSION)
@Velrok
Velrok / deploy.sh
Created December 21, 2014 23:28
Example deploy script for giantswarm.io
swarm delete -y mb
swarm create --var=version=$(cat ./VERSION) swarm.json
sleep 1
swarm start mb
sleep 1
swarm status mb