# 10,000 Processes in Om
-I have just published [om-processes](om-processes) which
-is a port of David Nolen's [10,000 Processes](swannodette-10k)
-in [Clojurescript](clojurescript) to [Om](om).
+I have just published [om-processes][om-processes] which
+is a port of David Nolen's [10,000 Processes][swannodette-10k]
+in [Clojurescript][clojurescript] to [Om][om].
-Clojurescript is a port of [Clojure](clojure) to JavaScript which
+Clojurescript is a port of [Clojure][clojure] to JavaScript which
is especially well suited for running in a browser. Just as
Clojure offers a pleasant LISP on the JVM Clojurescript
offers (nearly the same) LISP in the browser. The performance
of Clojurescript is outstanding due to the massive optimizations
-available from the [Google Closure compiler](closure).
+available from the [Google Closure compiler][closure].
JavaScript, however, has some fundamental flaws... Top
among these are it is single threaded which leads to
an asynchronous callback style of "event programming".
-Clojure's [core.async](core.async) offers a solution
-in the form of [CSP](csp) style programming. Using core.async
+Clojure's [core.async][core.async] offers a solution
+in the form of [CSP][csp] style programming. Using core.async
one can *think* about coding in a more intuitive way.
-In [10,000 Processes](swannodette-10k) Nolen demonstrates
+In [10,000 Processes][swannodette-10k] Nolen demonstrates
using core.async to simulate independent "threads" despite
the fact that the underlying platform has no native
support for threads.
-In [Om](om) Nolen leverages [Facebook's React](react) to
+In [Om][om] Nolen leverages [Facebook's React][react] to
create a high performance, immutable model for client programming.
-The technical study [om-processes](om-processes) is simply
+The technical study [om-processes][om-processes] is simply
the fusion of all these ideas into one demonstration.
Who knew web development could be so much fun!