Skip to content

Instantly share code, notes, and snippets.

View kordano's full-sized avatar
💻
Working on Datahike

Konrad Kühne kordano

💻
Working on Datahike
View GitHub Profile
@kordano
kordano / .Xmodmap
Created February 7, 2023 16:23
personal xmodmap for mapping parens, brackets, and braces
keycode 8 =
keycode 9 = Escape NoSymbol Escape
keycode 10 = 1 exclam 1 exclam onesuperior exclamdown onesuperior
keycode 11 = 2 quotedbl 2 quotedbl twosuperior oneeighth twosuperior
keycode 12 = 3 section 3 section threesuperior sterling threesuperior
keycode 13 = 4 dollar 4 dollar onequarter currency onequarter
keycode 14 = 5 percent 5 percent onehalf threeeighths onehalf
keycode 15 = 6 ampersand 6 ampersand notsign fiveeighths notsign
keycode 16 = 7 slash 7 slash braceleft seveneighths braceleft
keycode 17 = 8 parenleft 8 parenleft bracketleft trademark bracketleft
@kordano
kordano / 001-a1-example.edn
Created November 26, 2022 11:50
Datahike schema migration idea
{:norm :a1-example
:tx-data [{:db/doc "example"
:db/ident :example
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one}]
:tx-fn io.replikativ.garantie/neutral-fn}
@kordano
kordano / datahike_example.clj
Last active March 29, 2022 11:43
Small Datahike example
(require '[datahike.api :as d])
(def schema [{:db/ident :name
:db/cardinality :db.cardinality/one
:db/index true
:db/unique :db.unique/identity
:db/valueType :db.type/string}
{:db/ident :parents
:db/cardinality :db.cardinality/many
:db/valueType :db.type/ref}
@kordano
kordano / datahike-mem-bench.clj
Created December 6, 2021 17:01
Datahike memory benchmark
(require '[datahike.api :as d])
(import '[java.util Random]))
(taoensso.timbre/set-level! :warn)
;; Thanks to https://stackoverflow.com/a/64034927/10978897
(defn rand-str
^String [^Long len]
(let [leftLimit 97
rightLimit 122
@kordano
kordano / datahike-rule-input-exception.clj
Last active October 6, 2021 15:30
Datahike rule input exception
(require '[datahike.api :as d])
(def schema [{:db/ident :name
:db/cardinality :db.cardinality/one
:db/index true
:db/unique :db.unique/identity
:db/valueType :db.type/string}
{:db/ident :parents
:db/cardinality :db.cardinality/many
:db/valueType :db.type/ref}
@kordano
kordano / datahike-upsert-history.clj
Created October 4, 2021 16:22
datahike-upsert-history
(require '[datahike.api :as d])
(def schema [{:db/ident :name
:db/cardinality :db.cardinality/one
:db/index true
:db/unique :db.unique/identity
:db/valueType :db.type/string}
{:db/ident :parents
:db/cardinality :db.cardinality/many
:db/valueType :db.type/ref}
@kordano
kordano / .spacemacs
Created September 9, 2021 17:42
My Spacemacs config
;; -*- mode: emacs-lisp; lexical-binding: t -*-
;; This file is loaded by Spacemacs at startup.
;; It must be stored in your home directory.
(defun dotspacemacs/layers ()
"Layer configuration:
This function should only modify configuration layer settings."
(setq-default
;; Base distribution to use. This is a layer contained in the directory
;; `+distribution'. For now available distributions are `spacemacs-base'
@kordano
kordano / history-duplicates.clj
Created July 14, 2021 09:18
Datahike history duplicates
(require '[datahike.api :as d])
(def cfg {:store {:backend :file
:path "/tmp/history-bug"}
:schema-flexibility :read})
(d/delete-database cfg)
(d/create-database cfg)
@kordano
kordano / retract-add-example.clj
Last active June 14, 2021 06:49
Retract add Datahike example
(require '[datahike.api :as d])
(def schema [{:db/ident :name
:db/cardinality :db.cardinality/one
:db/index true
:db/unique :db.unique/identity
:db/valueType :db.type/string}
{:db/ident :sibling
:db/cardinality :db.cardinality/many
:db/valueType :db.type/ref}
@kordano
kordano / upsert-with-noise.clj
Last active June 2, 2021 09:23
Upsert with noise
(require '[datahike.api :as d])
(defn random-uuid []
(java.util.UUID/randomUUID))
(def ascii-ish
(map char (concat (range 48 58) (range 65 91) (range 97 123))))
(defn random-char []
(rand-nth ascii-ish))