This is for Thursday and Friday before the beginning of clojure-conj.

  • Really cool presentation by Jeff Rose demo'ing overtone, his clojure library to control audio synthesizing :) (via @elise_huard) -- Overtone controls midi instruments via Clojure. RAR10 stands for Ruby And Rails conference in Amsterdam. Looks like they like to have clojure talks in ruby conferences these days...
  • Clojure Key-Value Stores, Voldemort, and S3. (here, via @bradfordcross) -- "Store is a general key-value store api in Clojure." Currently it supports S3 and Voldermort only.
  • Vimming and leiningening Clojurians: Heads Up! (here, via @kotarak) -- A leiningen plugin to launch a vimclojure nailgun server.
  • Easy getter/setter interop with Clojure (here, via @kumarshantanu) -- A library that lets you deal with properties in Java classes exposed via getters and setter in a very abstract and convenient way: clojure maps.
  • Some go to kick off the conj #clojure-conj (here, via @abedra) -- The clojure-conj speakers were treated to some GO (the board game, not the language!)
  • Remedial Clojure: duck-streams, let style, and pronunciation. (here, via @daveray) -- This article describes the building of a rhyming dictionary using the CMU Pronouncing Dictonary, some duck-streams, lazy-test and some clojure.
And then, clojure-conj started…
  • Michael Fogus speaking at the #clojureconj (via @clojure) -- And this is how the conference started, with @fogus telling us about where some of Clojure's features come from.
  • The implementation of clojure's Zippers really expose how useful metadata can be (via @natesbrain) -- The next session was from Luke VanderHart (@levanderhart), which explained the secret art of zippers. It seems like a lot of people were surprised that metadata could be so useful!
    • My zipper tutorial (here, via @marick)
  • Clojure users don't want DSLs, they want to be able to use the full power of clojure (via @disclojure) -- Next was Christophe Grand (@cgrand) with a master lecture on why using macros sometimes removes power from the user of your library.
    • Instead of macros use POCOFs (Plain Old ClOjure Functions) (via @pjstadig)
  • "Clojure is fun!" - @tomfaulhaber; Hell yeah it is! (via @cemerick) -- Next was Tom Faulhaber, elaborating on what makes programming clojure so much fun.
  • Live coding #clojure with Rich Hickey in the audience seems risky to me, but fun! (here, via @disclojure) -- Sean Devlin (@fulldisclojure) was next explaining the uses of protocols. At some point during Q&A Rich Hickey decided to respond to one of the questions, and Sean took upon himself to try to put in code what Rich was saying... yeah, you don't do that live :)
  • Clojure: bringing obscure data structures into the light (via @stuartsierra) -- Chris Houser (@chouser) implemented the Finger Trees data structure for clojure, and was explaining what it was and what it was for. Obscure?, maybe, but useful? yeah!
  • @technomancy modeling his sweet keyboard pants during his leiningen talk #clojureconj (via @kevsmith) -- And then he proceeded to talk about the present and future of Leiningen.
  • Listening to @laurentpetit talk on ccw (Clojure dev plugin for Eclipse)…helping to bring a whole new group of devs to Clojure. (via @cemerick) -- Lauren Petit proceeded to show us some of the new and also upcoming work in CounterClockWise, the Clojure plugin for Eclipse. Lost of features previously only available to Emacs user are being ported to Eclipse!
  • Rich Hickey talking about new features in clojure, some not even 10 days old! (via @disclojure) -- Rich Hickey decided to not follow the schedule and instead of giving his Keynote talk, he decided to switch to his Pods talk, although instead of talking about Pods, he told us about some features that were implemented very recently: primitive types, new bindings, etc... all in the name of performance. Deep stuff!
    • "I don't want people to have to apologize to anyone for Clojure's performance vs. Java" – @richhickey on new optimizations (via @cemerick)
  • Enjoyed Clojure's birthday party. Even the bagpipes. (via @benatkin) -- We all were invited to drink at an Irish pub to celebrate Clojure's 3rd birthday. There were bagpipes involved. Bagpipes and discussions about Records and Protocols don't mix well together though!
  • Clojure contributor agreements ready to sign at registration. Don't leave #clojureconj without signing one! (via @SirLyric) -- And this is how the second day started.
  • Aaron Bedra of Relevance pumping everyone up recognizing people who contributed to Clojure (via @RogerTheGeek) -- @abedra gave an overview of the users of clojure and recognized all those who have contributed to its current success.
  • My #clojureconj slides PDF (here, via @stuartsierra) -- Stuart Sierra was next, again advising us against the use of macros and explaining how he had build lazy-test at least three times to get it right (by removing macros, of course)
  • Blogs covering material from my "Tree Editing with Zippers" #clojureconj lightning talk (here and here, via @puredanger) -- Then came the lazy talks. Several authors described their current work in 5 minutes each.
  • Using core clojure abstractions [fn {}] gives composable power to ___ (insert lib if doing it right, e.g., ring ) (via @digiduke) -- Mark McGranaghan (@mmcgrana) Showed how ring leverages clojure's power and being very simple at the same time. Guess how? Not using macros!
    • @mmcgrana's Ring talk is a perfect follow up to @cgrand's (not= DSL macro) talk. Ring *is* Clojure (via @fogus)
    • Major theme of #clojureconj - composability across and through arbitrary libraries, by sticking to Clojure's basic abstractions. Love it. (via @levanderhart)
    • Great wisdom from @mmcgrana: "The true essence of Clojure is composable abstraction" (via @chadharrington)
  • Ha! Here is a funny one: Next was Rich Hickey's keynote, but there are no tweets mentioning Clojure that reference his talk; guess why.... yeah, his talk wasn't about Clojure at all! Instead, he gave a very inspirational talk about how our brain works and how we need to let it do its job instead of grabbing the first solution to a problem and running with it all the way. Also he recommended that we focus on solving problems instead of just adding features. Smart dude, one day he'll write a nice language or something.
  • The future and horizons for parallelization in #clojure are just white-hot. not everything is awesome, but this TOTALLY is (via @puredanger) -- Next up was David Liebke (@liebke) describing the work on parallelization and fork-join that is coming for clojure.
  • @cemerick describing reliably, continually deploying (clojure) software (via @foogoof) -- Finally, Chas Emerick described how to get a continuous deployment system with github, hudson and jclouds+pallet to deploy your application automatically when new code is checked in.
  • .@stuarthalloway is now giving a "simply awesome" talk at #clojureconj. Amazing stuff (via @ghoseb) -- Stuart Halloway talked about how Clojure provides simple abstractions that you can compose to solve complex problems, although he acknowledged that the meaning of 'simple' is very subjective.
The aftermath…
  • Here are the slides from my #clojureconj talk, "An Illustrated guide to multi-core parallelism in Clojure" (here, via @liebke)
  • My Clojure Conj reading list (here, via @apgwoz) -- Several books were mentioned during the conference. Here is a list of them.
  • My notes from #clojureconj day 1 (here, via @david_mcneil) -- A great summary of what was presented during the conference.
    • and my notes from #clojureconj day 2 (here, via @david_mcneil)
  • Clojure take on OO: "We can rebuild it — we have the technology!" (via @cgrand)
  • A lesson of clojureconj: Just because you can use macros doesn't mean you should. (via @_cwm_) -- There are more lessons from the same author:
    • Clojure has amazing data structures that you don't even know about (zippers, finger trees)
    • Clojure gives you all the good parts of OOP; they're just à la carte.
    • Build on composable abstractions.
    • Get away from your computer and go think.
    • Don't ever say #Clojure is "simply awesome" ;-)
    • Clojure-Conj was fantastic, the Clojure community is fantastic, and you should definitely be there next year
  • Post 2 from clojureconj: "Fighting for Clojure" (here, via @puredanger) -- "Make no mistake, if you like Clojure and want it to be an option that people are allowed to even consider much less use, then this fight is your fight."
  • Excellent write up by @puredanger on parallel programming and fork-join in Clojure (here, via @liebke) -- "I was unaware of much of the work going on to leverage fork-join and it blew my freaking mind."
  • Clojure-conj: Composable abstractions (here, via @hntweets) -- This blogpost from @puredanger covers one of the most notable recurring themes of the conj, composable abstractions, and how this theme was present in many different presentations.
  • post 5 from clojureconj: "Hammock-driven development" (here, via @puredanger)  -- Covers Rich Hickey's inspiring keynote.
  • Just posted my clojureconj writeup (here, via @objcmdo) -- A quite thorough commentary on some of the talks.
  • And part 6 from clojureconj: "clojure-conj: Present and future" (here, via @puredanger) -- An overall review of the conference, from the conference organization perspective
  • Emblogginated my slides and a humble revelation. (here, via @fogus)
  • Slides for my Clojure finger-tree talk at clojureconj are up (here, via @chrishouser)
Wow… that was long. More tomorrow.