Skip to content

Instantly share code, notes, and snippets.

(ns dustingetz.edn-viewer0
(:require [clojure.datafy :refer [datafy]]
[clojure.core.protocols :refer [nav]]
[contrib.data :refer [unqualify]]
[dustingetz.easy-table :refer [TableScroll Load-css]]
[dustingetz.flatten-document :refer [flatten-nested]]
[hyperfiddle.electric3 :as e]
[hyperfiddle.electric3-contrib :refer [Tap]]
[hyperfiddle.electric-dom3 :as dom]
[hyperfiddle.electric-forms0 :refer [Checkbox*]]
(ns hf-docs-site.demos.explorer
(:require [clojure.datafy :refer [datafy]]
[clojure.core.protocols :refer [nav]]
#?(:clj clojure.java.io)
[contrib.data :refer [treelister clamp-left]]
[contrib.str :refer [includes-str?]]
[contrib.datafy-fs #?(:clj :as :cljs :as-alias) fs]
[hyperfiddle.electric3 :as e]
[hyperfiddle.electric-dom3 :as dom]
[hyperfiddle.electric-scroll0 :refer [Scroll-window IndexRing]]
(ns dustingetz.metaobject
"https://github.com/NikolaySuslov/electric-objmodel"
(:require [contrib.assert :refer [check]]
[hyperfiddle.electric3 :as e]
[hyperfiddle.electric-dom3 :as dom]
[hyperfiddle.incseq :as i]))
(e/defn Some [xs] (first (e/as-vec xs)))
(e/defn Vtable-lookup [vtable mname]
@dustingetz
dustingetz / contrib.remark.cljs
Created March 31, 2023 18:27
remark markdown extension (2018)
(ns contrib.ui.remark
(:require
;["@hyperfiddle/remark-generic-extensions/lib/browser.min" :as remark-generic-extensions] ; works in node
[clojure.set]
[clojure.string]
; Refrain from contrib imports so this is more suitable for userland
[goog.object]
[prop-types] ; used as js/propTypes.object
[reagent.core]
;[remark] ; works in node
@dustingetz
dustingetz / electric-references.md
Last active July 27, 2023 13:39
Reference list — Electric Clojure

References — Electric Clojure

Electric Clojure implements a form of arrowized continuous time dataflow programming with extensions for network-transparent function composition.

@dustingetz
dustingetz / electric-presence.md
Last active November 12, 2023 15:46
Multiplayer chat with presence – Electric Clojure
@dustingetz
dustingetz / missionary-concept-map.md
Last active November 12, 2024 16:44
Missionary concept map

Missionary concept map

Missionary primitives fit into three categories:

Effect descriptions = pure functional programming which is about trees not graphs

  • continuous flow, m/?< (switch)
  • m/watch, m/latest, m/cp
  • m/observe
  • m/reductions, m/relieve
@dustingetz
dustingetz / sql_basic_demo_electric.md
Last active August 21, 2024 09:14
SQL basic demo – Electric Clojure

PostgreSQL hello world — Electric Clojure

How do I integrate a SQL database backend?

Easy:

  • make an ordinary Clojure function query-pokemon-list for the query
  • The query is blocking, and Electric Clojure is async, so use e/offload to move it to a thread pool.
    • (Don't block the event loop!)
  • e/offload throws Pending until the query finishes, and then the exception "goes away"
@dustingetz
dustingetz / a.md
Last active February 25, 2023 23:42
Photon demo: Datomic web explorer in one file

Datomic web explorer

  • Client API, tested on Datomic Cloud
  • database entity browser
  • server paginated infinite scroll
  • streaming information model - displays incremental resultsets as they become available (useful for slow queries)
  • automatic backpressure and cancellation of abandoned queries
  • custom web renderers with dynamic queries

Code is not optimized yet – we are still learning the idioms.

@dustingetz
dustingetz / a.md
Last active October 4, 2022 15:47
HOWTO install `#uri` reader extension in Clojure/Script