Skip to content

“Researchers have spotted a group of 53 cells within pigeons’ brains that respond to… Earth’s magnetic field.” http://t.co/wVOACd3x

Damn this new album by Jack White is kick-ass! http://t.co/sKb69rQ9

“My father’s parents, with him as a baby, came from Iraq to Israel in 1943… They took a taxi from Baghdad to Tel Aviv.” http://t.co/0HiDxJz5

Researching CISPA, I found a nice status report: http://t.co/aI7mLoPh

Re-reading “The Sun is Setting on Rails-style MVC Frameworks” — so good. I very much agree. Hope to write more on this. http://t.co/7M3XBDCq

TIL Israel has a Sand Cat breeding program, AKA weaponized cuteness: http://t.co/ssAldcAg

Feeling sadly disconnected from Israel on this יום הזיכרון (Yom Hazikaron, Day of Remembrance)

Powerful, thought-provoking story by @textfiles on how he realized that hatred has no borders: http://t.co/rYJigODE

A video of my favorite talk from #phillyete has been posted: The Programming Ape by @coda — cognition & software design http://t.co/KHdrXUFw

Totally forgot I had tix to hear @stevenbjohnson speak tonight at LREI, but my phone beeped and I made it! http://t.co/AHyfDSVz

Very impressed with Pandoc; it converted some awful HTML into very good Markdown, quickly and easily. http://t.co/f00ZJQPH Hat tip: @carlrc.

My review of @ClojureBook was posted on Hacker News so of course my server melted down! http://t.co/Rfu2QQmp back up but who knows how long!

Just confirmed in the HTML spec: do NOT place quote characters inside the q element. The user-agent will do it! http://t.co/YZrLC94e

Review: Clojure Programming by Chas Emerick, Brian Carper, and Cristophe Grand

Clojure Programming is a clear, comprehensive, and effective guide to Clojure.

Before reading this book, I was proficient with Java, JavaScript, Python, and a few other languages — all primarily object-oriented and ALGOL-derived. Lisp and functional programming (FP) seemed alien and bizarre. But after hearing that people were getting real work done using FP with Scala and Clojure, and hearing Rich Hickey, the creator of Clojure, speak at Strange Loop 2011, I was inspired to get over my apprehension and learn functional programming and Clojure.

I decided it would be unwise to try to learn FP and Clojure at the same time, so I first wrote a program using FP in languages with which I was already familiar: CoffeeScript and Scala. It didn’t take long for me to build an appreciation for the paradigm.

Once I felt that I had a decent understanding of FP, I asked on Twitter whether anyone could recommend a book, and got a very enthusiastic recommendation from Sean Corfield for this one. It was available under O’Reilly’s pre-release program, so I was able to buy and read pre-release PDFs of the book.

The bottom line is that this book gave me a solid understanding of Clojure and enabled me to learn the language and gradually start using it. The concepts are presented in a thoughtful sequence and it’s made clear how each element of the language relates to the others.

The writing, examples, and organization are all excellent. And the book gets extra points for going beyond just explaining the language and how to use it, by being extra-comprehensive and covering how to really use the full Clojure ecosystem to build really useful software.

This is worth highlighting: if the book had been comprised of only chapter 1, “Down the Rabbit Hole”, and the first 2 parts, “Functional Programming and Concurrency” and “Building Abstractions”, it would have been an excellent book which I’d be recommending wholeheartedly. The inclusion of the subsequent parts, “Tools, Platform, and Projects”, “Practicums”, and “Miscellanea” make the book an invaluable resource and a fantastic value.

Ultimately, the book succeeds in conveying not only Clojure the language, but also the Clojure way, best practices, and key resources.

tags: , , , , , , ,

The missing value statement from the Agile Manifesto: “Values over process”

The missing value statement from the Agile Manifesto: “Values over process”

Looks like I’ve got a drive failure. Thank goodness for RAID-1! http://t.co/XXoqe2O3

Looks like I’ve got a drive failure. Thank goodness for RAID-1! http://t.co/XXoqe2O3

Headed to Google for Yet Another ClojureScript talk by @swannodette — excited!

Headed to Google for Yet Another ClojureScript talk by @swannodette — excited!

Headed to Google for Yet Another ClojureScript talk by @swannodette — excited!

I’m backing Light Table — if you want to help push the state of the art in IDEs, consider joining me! http://t.co/c9EhnDkN

I’m backing Light Table — if you want to help push the state of the art in IDEs, consider joining me! http://t.co/c9EhnDkN

I’m backing Light Table — if you want to help push the state of the art in IDEs, consider joining me! http://t.co/c9EhnDkN

(defn get-size [file]
(if (.isFile file)
(.length file)
(reduce +
(pmap get-size (.listFiles file)))))

beautiful!
#
clojure