Goals: Add links that are reasonable and good explanations of how stuff works. No hype and no vendor content if possible. Practical first-hand accounts of models in prod eagerly sought.

;; missionary solution to petrol pump example by Stephen Blackheath and Anthony Jones, ISBN 978-1633430105 | |
;; huanhulan's demo : [live](https://huanhulan.github.io/petrol_pump), [code](https://github.com/huanhulan/petrol_pump) | |
(ns pump | |
(:refer-clojure :exclude [first]) | |
(:require [missionary.core :as m]) | |
(:import missionary.Cancelled)) | |
(defn rising | |
"A transducer that outputs `nil` when the input switches from logical false to logical true." |
So you’d like to contribute to Clojure, great! Let’s talk about what that involves.
The first thing you’ll want to make sure is that your idea is valid, and that you won’t spend a ton of time working on something that won’t make into master. To do this, you should create a JIRA ticket. For example, let’s say we want to improve how core.async handles channel closing propagation. It’s not a super complex problem, but there are some design questions about which of the various semantics currently in place should be the default, and if some semantics should be configurable.
So start by making a JIRA ticket and stating what the problem is you’re trying to solve, what the possible options for solving the problem. Now hit save and wait for the ticket to be triaged. Alex Miller will take a look when he can, and that can take a few days to a few weeks, depending on the time of the year (he has other responsibilities). Alex may out-right reject the idea if he knows Rich would never approve the ticket, but otherwise h
(require '[clojure.spec :as s]) | |
(defmacro tpe [ & forms ] | |
`(try | |
~@forms | |
(catch Exception e# | |
(println "Form: " (pr-str '~@forms)) | |
(println "Exception Class: " (.getClass e#)) | |
(println "Message: " (.getMessage e#)) | |
(println)))) |
Rich Hickey • 3 years ago
Sorry, I have to disagree with the entire premise here.
A wide variety of experiences might lead to well-roundedness, but not to greatness, nor even goodness. By constantly switching from one thing to another you are always reaching above your comfort zone, yes, but doing so by resetting your skill and knowledge level to zero.
Mastery comes from a combination of at least several of the following:
(ns ring-node.core | |
(:require | |
[clojure.string :as str] | |
[cljs.nodejs :as nodejs])) | |
(def http (nodejs/require "http")) | |
(def url (nodejs/require "url")) | |
(defn- build-request-map | |
"Create the request map from the ServerRequest object." |
java -version
For url http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz, the variables should be defined as:
java_base_version="8"
java_sub_version="11"
(ns om-table.core | |
(:require [om.core :as om :include-macros true] | |
[om.dom :as dom :include-macros true])) | |
(enable-console-print!) | |
(extend-type string | |
ICloneable | |
(-clone [n] (js/String. n))) | |
(def app-state (atom {:table ["very" "undefined" "such" "parentNode"]})) |