Skip to content

Instantly share code, notes, and snippets.

@jebberjeb
jebberjeb / async_minecraft.clj
Last active August 29, 2015 14:11
core.async demo reloaded w/ minecraft
(ns system
(:require [clojure.core.async :as ca]
[cljminecraft.core :as core]
[cljminecraft.player :as p]
[cljminecraft.bukkit :as bk])
(:import [org.bukkit Material DyeColor]))
;; Helpers start
(defn loc->coords [l] (-> l bean (select-keys [:x :y :z :world])))
(defn ->coords [e] (-> e .getLocation loc->coords))
@jebberjeb
jebberjeb / vim+mzscheme.md
Last active September 12, 2019 19:43
Vim Plugins w/ Scheme (Racket)

Vim + Racket

A less-known feature of Vim is support for Scheme, for scripting or otherwise. At the time of the original integration, the MZScheme package (a subset of PLTScheme) was used. Eventually, this became Racket. However, in Vim configuration, help, etc, mzscheme is referred to.

The following steps were performed on Ubuntu 14 Server, in order to compile Vim with Scheme support.

Version

To determine whether Vim has been compiled with support for Scheme:

@jebberjeb
jebberjeb / tmux.clj
Last active September 10, 2015 18:01
(ns si.tmux
(:require [clojure.string :as str]
[si.data :as d]))
(defn ->ssh-cmd
"Create remote ssh command."
[ssh-user command host]
(str "ssh -t " ssh-user "@" host " \"" command "\""))
(defn gen-conf
@jebberjeb
jebberjeb / test.clj
Created December 3, 2015 20:51
Subscriptions Data Test
(deftest subscriptions-perf-test
(testing "subscriptions messages all received"
(let [broker (d/start-broker)
subs-count 10
reply-tos (repeatedly subs-count #(a/chan 1024))
group-code "foo" #_(generate-l85-uuid)
subs-str (str "group_s:" group-code)
test-record-count 10000
subs-reply-count (atom 0)]
(defn generate-order
[db taskdefs ref-kw]
(->> taskdefs
(map :db/id)
(workflow/sort-taskdefs db)
(map (fn [id] (d/entity db id)))
(map :task.def/id)
(map (fn [id] [ref-kw id]))))
(defn generate-order*
@jebberjeb
jebberjeb / saml.clj
Created September 27, 2016 18:46
Parse SAML metadata with clojure spec
(ns foo.saml
(:require
[clojure.spec :as s]
[clojure.string :as string]
[clojure.xml :as xml])
(:import
(java.io ByteArrayInputStream)))
(s/def :sso/Binding #{"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"})
(s/def :sso/attrs (s/keys :req-un [:sso/Binding ::Location]))
(ns vatican.schema
"Extract the schema from a Datomic database."
(:require [datomic.api :as d]))
(defn gen-mem-db-uri
"Generate a unique uri for use with an in-memory Datomic database."
[]
(str "datomic:mem://" (d/squuid)))
;; TODO: parameterize the partition
(ns user)
(require '[twou.centralpark.model.publish :as publish])
(require '[clojure.string :as string])
(require '[datomic.api :as d])
;; Get all attributes
(def all-attrs (d/q '[:find [?name ...]
:where [?eid :db/ident ?name]]
(dev/db)))
@jebberjeb
jebberjeb / logback-partial.xml
Created January 12, 2017 22:05
Logback appender used with Stuart Sierra's log.dev
<appender name="ALL_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- Default encoder is ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%date{HH:mm:ss.SSS} %-5level %logger{25}: %msg %X thread=%thread%n</pattern>
</encoder>
<!-- Default location of log file is log/all.log -->
<file>log/all.log</file>
(use '[specviz.graphviz])
(def states {:no-warn {:missed-first-name :first-name-required
:missed-last-name :last-name-required
:missed-dob-day :dob-required
:missed-dob-month :dob-required
:missed-dob-year :dob-required
:missed-ssn-area :ssn-required
:missed-ssn-group :ssn-required
:missed-ssn-serial :ssn-required