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.
![Screenshot 2023-12-18 at 10 40 27 PM](https://private-user-images.githubusercontent.com/3837836/291468646-4c30ad72-76ee-4939-a5fb-16b570d38cf2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE2NjYwNTYsIm5iZiI6MTcyMTY2NTc1NiwicGF0aCI6Ii8zODM3ODM2LzI5MTQ2ODY0Ni00YzMwYWQ3Mi03NmVlLTQ5MzktYTVmYi0xNmI1NzBkMzhjZjIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjJUMTYyOTE2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDUxMTFmMWIwMTcxYjM2ZWQ5OGIxMjNjMDQ1MmFkZjNkNmE3YjI0MDUxYjc1NjkwOGU1NzMxMzM2NjAwNDUyNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.OEmVVHRkcbqLvFJEofgZvIIihQ5-MMIbh8GyUOoOXSw)
Peter Naur's classic 1985 essay "Programming as Theory Building" argues that a program is not its source code. A program is a shared mental construct (he uses the word theory) that lives in the minds of the people who work on it. If you lose the people, you lose the program. The code is merely a written representation of the program, and it's lossy, so you can't reconstruct
;; Unlike fully lazy languages such as Haskell, Clojure seqs often implement chunking. | |
;; This means that when accessing the first element of a sequence, 32 members will be evaluated. | |
;; An example of this can be seen by implementing some side effect in a map. | |
(first (map (fn [x] (prn x) x) (range 5))) ;; prints 0 through 4, then returns 0 | |
;; The above example will return 0 (as expected), but you'll notice it prints off all 5 elements | |
;; of (range 5). | |
;; In the next case we can see that the evaluation caused by the access of the first element stops after | |
;; the first 32 elements are evaluated. |
;; SEE: https://github.com/cgrand/macrovich | |
;; macros and code in a single cljc working across clj, cljs and self-hosted cljs | |
;; require clojurescript from master | |
(ns foo.core | |
#?(:cljs (:require-macros | |
[net.cgrand.meta-macros :refer [macros no-macros]] | |
[foo.core :refer [add]]) | |
:clj (:require |
digraph G { | |
ranksep=1.0; | |
ratio=0.6; | |
APL [color=Blue, shape=box]; | |
Simula [color=Blue, shape=box]; | |
LISP [color=Blue, shape=box]; | |
ALGOL [color=Blue, shape=box]; | |
Planner [color=Blue, shape=box]; | |
ACTOR [shape=hexagon]; |
#do all as root: | |
#(download and install jdk-6u26-linux-amd64.rpm from Oracle) | |
alternatives --install /usr/bin/java java /usr/java/latest/bin/java 1500 | |
alternatives --set java /usr/java/latest/bin/java | |
alternatives --install /usr/lib/jvm/jre-1.6.0 jre_1.6.0 /usr/java/latest 1500 | |
alternatives --set jre_1.6.0 /usr/java/latest |
#!/bin/sh | |
# TODO: fold into ant (current) or maven (future). | |
# example usage (run from top-level zookeeper directory) : | |
# | |
# src/repeat.sh ZooKeeperTest | |
test_output=yes | |
testcase=$1 | |
i=0 | |
ant test-init |
#!/bin/sh | |
# example usage (run in top-level HBase directory) : | |
# | |
# src/repeat.sh TestRegionServerCoprocessorExceptionWithAbort | |
testcase=$1 | |
# see also http://hbase.apache.org/book/hbase.tests.html | |
i=0 | |
mvn clean | |
while [ "$?" -eq "0" ] ; do |
;; | |
;; NS CHEATSHEET | |
;; | |
;; * :require makes functions available with a namespace prefix | |
;; and optionally can refer functions to the current ns. | |
;; | |
;; * :import refers Java classes to the current namespace. | |
;; | |
;; * :refer-clojure affects availability of built-in (clojure.core) | |
;; functions. |