;;=============== play with flow ============== | |
(require '[clojure.core.async :as async] | |
'[clojure.core.async.flow :as flow] | |
'[clojure.pprint :as pp] | |
'[clojure.datafy :as d] | |
'[clojure.walk :as w]) | |
(set! *warn-on-reflection* true) | |
(defn monitoring [{:keys [report-chan error-chan]}] |
Let’s define a framework as any library that contains one or more functions that accept callbacks.
Web frameworks are great for beginner developers who need to get stuff done. But they ultimately force you into a corner. In most applications, experienced developers need to retain control. Libraries are better.
;;; Clojure Macro-writing Macros step by step. | |
(ns my.macros) | |
;; => nil | |
;;;;;;;; ns and vars | |
*ns* | |
;; => #namespace[my.macros] | |
(def x 3) | |
;; => #'my.macros/x |
{:paths ["."] | |
:deps {clansi/clansi {:mvn/version "1.0.0"}}} |
In an effort to gain at least a superficial understanding of the technical implementation of cryptocurrencies, I recently worked my way through "Learn Blockchains by Building One" using Clojure.
This was a good chance to experiment with using spec in new ways. At work, we primarily use spec to validate our global re-frame state and to validate data at system boundaries. For this project, I experimented with using instrumentation much more pervasively than I had done elsewhere.
This is not a guide to spec (there are already many excellent resources for this). Rather, it's an experience report exploring what went well, what is still missing, and quite a few unanswered questions for future research. If you have solutions for any of the problems I've presented, please let me know!
You don't need to know or care about blockchains to understand the code be
A list of commonly asked questions, design decisions, reasons why Clojure is the way it is as they were answered directly by Rich (even when from many years ago, those answers are pretty much valid today!). Feel free to point friends and colleagues here next time they ask (again). Answers are pasted verbatim (I've made small adjustments for readibility, but never changed a sentence) from mailing lists, articles, chats.
How to use:
- The link in the table of content jumps at the copy of the answer on this page.
- The link on the answer itself points back at the original post.
I just don't understand why people use mount, I must be missing something, its model of each namespace as a component, with state as a global thing in a namespace(maybe I am mistunderstanding this), just seems bad, like sticking (def state (atom {})) in every namespace would be
[6:41] https://github.com/tolitius/mount/blob/master/src/mount/core.cljc#L10-L14
GitHub tolitius/mount mount - managing Clojure and ClojureScript app state since (reset)