-
keystore data, w/o the tradeoffs of other nosql databases
-
ACID tx, joins, datalog, simple schema
-
"Facts dont change when you incorporate time"
- SQL db in past, CRUD triggers, history tables
| (ns test-app.core | |
| (:require [clojure.pprint :refer [pprint]])) | |
| (->> java.sql.ResultSet | |
| (.getMethods) | |
| (map method-sig) | |
| (pprint)) |
| (ns test-app.core) | |
| ;; true | |
| [(boolean 0) | |
| (boolean "false") | |
| (boolean '()) | |
| ;; false | |
| (boolean nil) |
| (ns test-app.core) | |
| (defprotocol Fooable | |
| (foo [this f]) | |
| (bar [this b])) | |
| (deftype FooPrinter [] | |
| Fooable | |
| (foo [this f] (println "foo: " f)) | |
| (bar [this b] (println "bar: " b))) |
| (ns test-app.core) | |
| (def h (atom (make-hierarchy))) | |
| (swap! h derive ::square ::shape) | |
| (swap! h derive ::red-square ::square) | |
| (def one (isa? @h ::red-square ::shape)) ;; => true |
| (ns test-app.core) | |
| (def v1 [4 5 6]) | |
| (def v2 [1 2 3]) | |
| (def m {0 7 1 8}) | |
| (def get* (fn [k a] (get a k))) | |
| [(min-key first v1 v2) | |
| (max-key (partial get* 0) v1 v2 m)] |
| (ns testapp.core) | |
| (def p (promise)) | |
| (.start (java.lang.Thread. | |
| (fn [] | |
| (Thread/sleep 2000) | |
| (deliver p "foozle") | |
| (println "promise set")))) |
| (ns test-app.bar) | |
| (defmulti do-it :foo) | |
| (defmethod do-it "foo" | |
| [m] | |
| "foo'd it") | |
| (defmethod do-it "bar" | |
| [m] |
| (ns test-app.foo | |
| (:require [taoensso.timbre.profiling :as p] | |
| [datomic.api :as d])) | |
| ;; GOALS | |
| ;; * perf test both approaches | |
| ;; * compare size/complexity of code for boath approaches | |
| ;; Properties from input file. Only properties w/ even :id have been selected. | |
| (def props-from-file |