Skip to content

Instantly share code, notes, and snippets.

Jacob O'Bryant jacobobryant

Block or report user

Report or block jacobobryant

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@jacobobryant
jacobobryant / logs-datomic-cloud-ions.md
Last active Jul 13, 2019
Better logs for Datomic Cloud Ions
View logs-datomic-cloud-ions.md

You may discover soon after adding logging to your Ions that CloudWatch really sucks. Fortunately you can forward your logs to Loggly instead. See here.

@jacobobryant
jacobobryant / modify-composite-tuples.md
Last active Jul 10, 2019
Modifying Datomic schema for composite tuples
View modify-composite-tuples.md

Say you define a composite tuple like so:

#:db{:ident :foo,
     :valueType :db.type/tuple,
     :unique :db.unique/identity,
     :tupleAttrs [:bar :baz],
     :cardinality :db.cardinality/one}

Now suppose you want to change [:bar :baz] to [:bar :quux]. The [Datomic

@jacobobryant
jacobobryant / deploy.cljs
Created May 10, 2019
Script for automating Datomic Cloud Ion push + deploy
View deploy.cljs
#!/usr/bin/planck
(ns deploy.core
(:require [cljs.reader :refer [read-string]]
[planck.shell :as shell]))
(defn sh [& args]
(let [result (apply shell/sh args)]
(if (= 0 (:exit result))
(:out result)
(throw (ex-info (:err result) {})))))
@jacobobryant
jacobobryant / data-readers.md
Last active Jun 12, 2019
refreshing namespaces breaks *data-readers*
View data-readers.md

If you call clojure.tools.namespace.repl/refresh before requiring any namespaces referenced in data_readers.clj, then *data-readers* gets messed up somehow. The readers you define in data_readers.clj won't work even if you require their namespaces. For example:

$ find -type f
./src/foo/core.clj
./src/data_readers.clj
./src/user.clj
@jacobobryant
jacobobryant / local-root.md
Last active May 24, 2019
tools.deps bug with :local/root?
View local-root.md

On a project I'm working on, this gives me an error:

$ clj -Sdeps '{:deps {trident/build {:local/root "/home/arch/dev/trident/target/build"}}}' \
>     -m trident.build reset
Exception in thread "main" Syntax error compiling at (trident/build/util.clj:1:1).
...
Caused by: java.lang.ClassNotFoundException: jnr.posix.POSIXFactory
...

(I have (:import (jnr.posix POSIXFactory))) in that file).

You can’t perform that action at this time.