An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View

Entries for month: March 2012

Clojure/West 2012 Presentations

March 26, 2012 ·

When I wrote my summary of the conference, I forgot something very important: you can download nearly all of the Clojure/West 2012 presentations from github. Some of the files are quite large so you may not be able to simply view the raw PDF on github - you will probably have to clone the repo locally.

Tags: clojure

(summary :Clojure/West 2012)

March 23, 2012 ·

My team recently attended the first Clojure/West conference in San Jose, organized by Alex Miller, the man behind the incredible Strange Loop conference. Back in November, I attended the second Clojure/conj conference (my first) with one of my team, who took the three day Clojure training course. The training course was a bit of a firehose and during one of the conference sessions, my colleague asked me whether he was supposed to understand these (mostly very advanced) talks. The conj is an inspiring event: a single track of sessions that cover the leading edge of work in the Clojure community, philosophical deep dives, technical exploration, possible future directions.

Clojure/West, by contrast, had three tracks which focused on production usage, core language / library concepts and some left field stuff respectively. This was where the rubber met the road. My colleagues and I greatly enjoyed the sessions and learned a lot from them. All three of us attended a session on Friday morning that introduced the Clojure Koans and that got us hooked. Between the Koans and 4clojure there are plenty of puzzles that you can use to learn Clojure. Phil Hagelberg ran a 90 minute swarm coding session on Saturday - and the Overtone guys organized a hackfest on Friday evening. Lots of opportunities for hands on Clojure coding with other eager developers.

Rich Hickey explained Datomic (I haven't gotten my head around it yet). Craig Andera provided an excellent grounding on namespaces, symbols and the whole "var" concept. BG gave an excellent overview of "deftype" and associated concepts. Friday afternoon saw three consecutive sessions on testing (load testing, generative testing and continuous testing) which I enjoyed - and took a lot of notes. We're already putting changes into effect at World Singles based on those sessions! Carin Meier took us down the rabbit hole to see if Alice could figure out what a monad is all about (when the videos of the talks become available, you have to see this one!). Richard Gabriel closed out Friday's sessions with a philosophical look at when engineering and (computer) science started to walk along separate paths (I loved this talk but I don't think it was everybody's cup of tea).

Bradford Cross kicked off Saturday with a tale of high performance Clojure. Allen Rohner told us how painful it was to mix JRuby and Clojure (I was particularly interested because of our work at World Singles integrating Clojure into another dynamic scripting language on the JVM - CFML, using Railo). Colin Jones gave a thought-provoking analysis of how to apply OO's "SOLID" principles to Clojure / functional programming. After lunch I talked briefly about how World Singles is using Clojure (and why it helps us), then I took a break to discuss libraries, tooling and community in the hallway. Those hallway discussions lasted longer than I expected so I only caught the last session of the conference: Stuart Halloway shared his experiences creating straightforward solutions to large scale problems - in the context of developing Datomic, taking a data-centric approach has lead to clear, simple designs.

And that was just the sessions that I attended. My colleagues attended some of the same sessions and several other sessions. They were equally positive about the sessions they attended. The conference proved to be great value for all of us, learning as beginners and intermediate developers. My takeaway from the conference is that the Clojure ecosystem is expanding, the community is growing and lots of people are successfully tackling a wide variety of real world problems with Clojure. And that's great news!

The highlight of the conference for me was absolutely Carin Meier's talk on monads (and writing desks). Hugely entertaining and creative, as well as educational, she took a really gnarly topic and made it engaging and fun. I think I might finally understand monads!

Tags: clojure

cf.Objective() 2012 - Why You Should Attend

March 22, 2012 ·

I've attended every cf.Objective() since the first one in 2006. That first cf.Objective() was awesome! Every one since has also been awesome. Since the demise of CFUnited, cf.Objective() is the biggest CFML event on the calendar. It offers the best CFML content in the world - and these days it offers a lot more than CFML - and it offers a unique combination of well-known speakers and new voices, something the conference has always prided itself on.

So why should you attend this particular year? Every year, our world of web development moves forward at what sometimes may seem like an ever-increasing pace. This is reflected in the sessions every year at cf.Objective(). This year sees an increased focus on JavaScript with topics covering Node.js, Angular, jQuery Mobile, Bootstrap, performance and testing. Even in the CFML topics, we're seeing an increased focus on automation, performance and testing as our community grows. cf.Objective() has always tried to offer material for intermediate and advanced developers and this year we have sessions on concurrency, collaborative code review, A/B testing, advanced scalability and caching techniques. Another big plus this year is the return of Adobe as platinum sponsor with several sessions talking about "Zeus" - ColdFusion 10 - which is currently in public beta.

cf.Objective() is all about helping you "up your game", to become a better developer. That's why you should attend - to become a better developer, to learn about new techniques and new technology.

This year we have ColdFusion 10 and Railo 4 and a lot of CFML developers working across multiple technologies. cf.Objective() will cover all of that so, if you aren't already registered, head over to the cf.Objective() website and get yourself signed up - it'll do you, and your career, a power of good!

Tags: coldfusion · cfobjective

clojure.java.jdbc 0.1.3

March 01, 2012 ·

clojure.java.jdbc 0.1.3 has been released. This includes support for SQLite 3 and improves support for Microsoft SQL Server, as well as a bug fix for prepared statements and some documentation improvements.

[Read more →]

Tags: clojure