small medium large xlarge

The latest version of the book is P1.0, released about 1 year ago. If you've bought a PDF of the book and would like to upgrade it to this version (for free), visit your home page.

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: B3.0 (29-May-16)
#80368
PDF page: any
In many places we see a self-closing html element. Browser will support them but is invalid style, all elements (except empty elements) must have a va...more...
  • Reported in: P1.0 (06-Jul-17)
#81797
Paper page: 4
I tried to specify lein template version in profiles.clj: {:user {:plugins [[luminus/lein-template ​"2.9.10.74"​]]}} When I run lein command I'm...more...
  • Reported in: P1.0 (21-Jul-16)
#80535
PDF page: 5

Port numbers don't match:
lein run -p 8000
http: / / localhost:3000--Ulrich Becker

  • Reported in: P1.0 (19-Jul-16)
#80530
PDF page: 10
This in the MOBI, location 409 of 10210, Chapter 1, Section "Refine Your App". In fact, I just download the PDF and it appears that the code is correc...more...
  • Reported in: P1.0 (07-Dec-16)
#80960
PDF page: 17
For the guestbook/src/guestbook/models/db.clj file: the defn create-guestbook-table [] appears to have a few technical errors. "sql/with-connectio...more...
  • Reported in: P1.0 (14-Aug-16)
#80621
PDF page: 18
screen.css listing specifies: ul { list-style: none; } But screen shot on next page contains bullets next to guest book messages. So this list-styl...more...
  • Reported in: B3.0 (03-Jun-16)
#80389
PDF page: 24
"If you aren’t already, I encourage you to start using one of the popular Clojure-aware editors such as Light Table, Emacs, Cursive, or Counterclockw...more...
Dmitri Sotnikov says: I don't use Emacs myself, but that approach is fine as well. I might add a note about the alternative way to start the app, but I don't really want to get into editor configuration as it's a constantly moving target.
  • Reported in: P1.0 (13-Dec-16)
#80967
Paper page: 30
I believe the word "will" at the end of the 2nd line on the page is a typo. The sentence reads "When the value will is a sequence, then a name/value....more...
  • Reported in: P1.0 (21-Jul-16)
#80546
Paper page: 33

"Since adding a new libraries"... number error --Rod frey

  • Reported in: P1.0 (28-Jul-16)
#80564
PDF page: 34
> ..., you can see that the home-routes are wrapped with middleware/wrap-csrf > by calling the compojure. core/wrap-routes macro. The macro makes sur...more...
  • Reported in: P1.0 (14-Dec-16)
#80971
Paper page: 36
The ns declaration for ring-app.core is missing the previously required "[ring.middleware.format :refer [wrap-restful-format]]," which is still used i...more...
  • Reported in: P1.0 (21-Feb-17)
#81134
PDF page: 39
Parsing query params via destructuring doesn't work for me as mentioned at the end of Chapter 2: ```(GET "/" [x y :as request] (str x y request))...more...
  • Reported in: P1.0 (19-Dec-16)
#80984
Paper page: 68
It appears that the book starts working with a separate project called "guestbook-cljs" starting around pg. 68, so, if that is true, I would recommend...more...
  • Reported in: P1.0 (10-Oct-16)
#80800
PDF page: 68
In the Concurrency subsection, the sentence starting with "Aside..." is repeated twice. Once at the end of the paragraph and once at the start of the ...more...
  • Reported in: P1.0 (10-Oct-16)
#80801
PDF page: 68
Argh my other erratum is on 67. The code example is "guestbook-cljs" but there's no information about how we got here. Are we modifying the guestbo...more...
  • Reported in: B3.0 (22-Jun-16)
#80466
PDF page: 76
This is an issue with the downloadable code for the book, not the book directly. In the downloadable code for guestbook-cljs the project.clj file h...more...
  • Reported in: P1.0 (31-Oct-16)
#80843
PDF page: 77
Page 77 says to add "[ring.util.response :refer [response status]]" to guestbook-cljs/src/clj/guestbook/routes/home.clj. Adding them as instructed lea...more...
  • Reported in: P1.0 (15-Sep-16)
#80724
PDF page: 78
This sentence is repeated twice under the "concurrency" header: Aside from these differences, development in ClojureScript is very similar ...more...
  • Reported in: P1.0 (24-Nov-16)
#80924
PDF page: 79
In Chapter 4 (ClojureScript) There is a route on the server that map the resource POST "/message" On page 79, in the function called "send-message...more...
  • Reported in: P1.0 (07-Apr-17)
#81363
PDF page: 79
In the ClojureScript `send-message!` function, the errors from the bouncer library need to be destructured (with `clojure.walk/keywordize-keys`. I'm p...more...
  • Reported in: B3.0 (14-Jun-16)
#80429
PDF page: 87
Paper page: 77
It is said on that page that, after some code modifications, we should have 404 error after the POST attempt because previously our post request was d...more...
Dmitri Sotnikov says: You're absolutely right. The older version of the original example used the / URI, but I later switched to usng /message in both. I've updated the text to reflect that.
  • Reported in: P1.0 (16-Sep-16)
#80726
PDF page: 89
The `app-routes` definition in ..guestbook/handler.clj still needs `middleware/wrap-formats` to handle the JSON in the `/messages` route. `get-messag...more...
  • Reported in: B4.0 (05-Jul-16)
#80497
PDF page: 111
Paper page: 100

In the first line of the second paragraph there is a typo: "ompojure-api" instead of "Compojure-api"--Alexander A. Yanin

  • Reported in: B4.0 (06-Jul-16)
#80503
PDF page: 138
Paper page: 128
On that page, when 'find-users' query is defined, it is said "Let’s add a new file called resources/find_user.sql and place the following query there:...more...
  • Reported in: P1.0 (25-Nov-16)
#80926
PDF page: 140
Creation of new picture gallery project is described as "lein new luminus picture-gallery +auth +swagger +cljs +postgres" It should be "lei...more...
  • Reported in: B3.0 (24-Jun-16)
#80475
PDF page: 140
Paper page: 131
When (mount.core/start #'reporting-example.db.core/*db*) function is called, the exception shown below is raised: Caused by java.lang.ClassCastExce...more...
  • Reported in: P1.0 (07-Jun-17)
#81660
Paper page: 146
Can not run (register! {} {:id "foo" :pass "12345678" :pass-confirm "12345678"}) because (:import [java.sql SQLException]) was missing.--Alexander Dü...more...
  • Reported in: P1.0 (16-Apr-17)
#81412
PDF page: 148
Cannot run command (conman/bind-connection *db* "sql/queries.sql") After that command (register! {} {:id "foo" :pass "12345678" :pass-confirm "12345...more...
  • Reported in: P1.0 (24-Oct-16)
#80830
PDF page: 148
I've scanned this a few times and cannot find where I missed a step. At this point, the database (*db*) is not started so the register! "test" always ...more...
  • Reported in: P1.0 (23-Nov-16)
#80921
PDF page: 151
I think there may be a discrepancy with the generated template or something. The generated .cljs file in picture-gallery.core only contains the n...more...
  • Reported in: P1.0 (05-Oct-16)
#80787
PDF page: 164
Need to remove the "first" call below: Before: (defn authenticate [[id pass]] (when-let [user (first (db/get-user {:id id}))] (when (hashe...more...
  • Reported in: B3.0 (15-May-16)
#80322
PDF page: 168
If you enter a non ascii character (the spanish ñ, in this case) in name or password input field, encodeString creates an incorrect Auth string. You c...more...
Dmitri Sotnikov says: Thanks for taking a look at this, unfortunately the fix doesn't seem to work for me when I test locally. When I add in `stringToUtf8ByteArray`, then the password no longer seems to validate.
  • Reported in: B4.0 (08-Jul-16)
#80509
PDF page: 170
Paper page: 160
It is written: "Now let’s add a reference to the reagent.session namespace and update the Cancel button in our form to remove the :modal key from the...more...
  • Reported in: P1.0 (14-Dec-16)
#80968
Paper page: 173
Picture gallery, Picture Upload section: REPL code for scaling image has couple of issues: - "org-image" -> "image" - "File." -> "java.io.File."-...more...
  • Reported in: B4.0 (07-Jul-16)
#80506
PDF page: 221
Looking at the ns: media.pragprog.com/titles/dswdcloj2/code/picture-gallery-tests/test/clj/picture_gallery/test/handler.clj Unless I wrap the app i...more...
  • Reported in: P1.0 (08-Aug-16)
#80594
PDF page: 1205

What's In the Response Map section "When the value will is a sequence". Presumably "will" is superfluous.--Blake Watson