An Architect's View

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

An Architect's View

Entries Tagged as clojure

cf.Objective() 2014 - call for speakers!

October 21, 2013 · No Comments

The cf.Objective() 2014 Call for Speakers is open until November 1st so you have just under two weeks to submit your topics. You can also vote for existing topic submission at that same link.

Right now we've only had two general CFML topics submitted (and seven ColdBox-related ones!) but there's a good number of JavaScript-related submissions - and remember that cf.Objective() has a dedicated JavaScript track in js.Objective(), as well as a mobile/front-end track so it's more than a CFML conference... but we still want to see a good spread of CFML topics!

And if you want to submit non-CFML web development topics that you think would appeal to a CFML / JS audience in terms of broadening their skills, you should do that too! Last year Scott Stroz did an excellent talk about Groovy on Grails, and I touched on some advanced CFML techniques inspired by other languages in my polyglot talk.

Note: when you submit a talk, please make sure to follow the guidelines outlined in this blog post about cf.Objective() 2014 submission format!

No CommentsTags: cfobjective · clojure · coldbox · coldfusion · grails · groovy · javascript · programming

lein-try rocks - instant HTTP server!

October 17, 2013 · 5 Comments

The lein-try plugin is one of the more stunningly useful "little pieces" of software that you can have available if you're developing in Clojure. Simply add the plugin to your user profile (in ~/.lein/profiles.clj) and then lein try some-dependency will fire up a REPL with the specified dependency on the classpath.

Today, I needed a simple HTTP server running for a short while, serving up static assets from a specific folder tree. Instead of messing with my local Apache setup, I used lein-try to fire up a temporary HTTP server:

> lein try ring/ring-core 1.2.0 ring/ring-jetty-adapter 1.2.0
user=> (use 'ring.adapter.jetty)
user=> (use 'ring.middleware.resource)
user=> (def app (wrap-resource (constantly {:headers {"Location" "index.html"} :status 301}) "."))
user=> (run-jetty app {:port 3333})
2013-10-17 18:03:14.792:INFO:oejs.Server:jetty-7.6.8.v20121106
2013-10-17 18:03:14.819:INFO:oejs.AbstractConnector:Started SelectChannelConnector@

That starts a Jetty instance on port 3333 with a very simple Ring-based web application:

  • If static assets are requested, they are served up (by wrap-resource) relative to the current folder ("."),
  • Else you are redirected to index.html.

5 CommentsTags: clojure

The Strange Loop 2013

September 21, 2013 · 5 Comments

I'm providing a brief summary here of what sessions I attended, followed by some general commentary about the event. As I said last time, if you can only attend one conference a year, this should be the one.

[

5 CommentsTags: architecture · clojure · programming · scala

FW/1 0.2.1 (for Clojure) released

August 19, 2013 · 4 Comments

Framework One for Clojure version 0.2.1 is available.

[

4 CommentsTags: clojure · fw1

Lambda Jam 2013

July 14, 2013 · 2 Comments

The first annual Lambda Jam (US) conference was held at the extraordinarily beautiful Intercontinental hotel in downtown Chicago, a few blocks from the lake. Lambda Jam was unusual in a couple of ways...

[

2 CommentsTags: clojure · programming

Learn You a What for Great Good - cf.Objective() 2013 - Slides and Code online

May 16, 2013 · No Comments

The slides and code for my first presentation at cf.Objective() 2013 are now online - Polyglot Lessons to Improve Your CFML:

The other presentations will be posted after I've given them and the code will appear in that Github repository.

No CommentsTags: cfobjective · clojure · coldfusion · groovy · javascript · programming · scala 0.3.0 alpha 4

May 13, 2013 · No Comments

A month ago I posted that java.jdbc 0.3.0 alpha 1 was available for testing and since then I've made a few more alpha releases as the API and code settles down so I figured it was time to blog about the recent changes.

[

No CommentsTags: clojure

My cf.Objective() 2013 Presentations

May 12, 2013 · 1 Comment

Other than noting back in January that all three(!) of my talk proposals were accepted, I haven't blogged about them since, so the only information about them is on the cf.Objective() web site. The session overviews give a fair sense of what you should get out of each presentation and roughly what they'll cover.

[

1 CommentTags: cfobjective · clojure · coldfusion · groovy · javascript · mongodb · scala

Instrumenting Clojure for New Relic Monitoring

May 01, 2013 · 4 Comments

Exposing Clojure function calls in New Relic web transaction traces requires adding Java-style annotations: @Trace. Here we show how to transform your existing Clojure code to a form that has annotated methods which show up in New Relic!

[

4 CommentsTags: clojure

Clojure in the Enterprise?

April 16, 2013 · 4 Comments

A question was recently asked on the Clojure Users group on LinkedIn about reasons to migrate to Clojure for enterprise applications in a Java shop. It's a fairly typical question from people in the Java world when they hear the buzz about Clojure, and of course asking the question on a Clojure group garnered a lot of positive responses about why Clojure is a good choice. I didn't feel anyone had really addressed a core aspect of the original question which was, essentially, "Why should I, as a Java web developer, using JPA, JSF etc, choose Clojure instead for an enterprise application?". The key considerations here are "enterprise application" and "Java web devloper, using JPA, JSF etc". Clojure is rightly praised for big data projects, simplified concurrency due to immutable data, and the conciseness of its solutions. The general advice when introducing Clojure to an organization is to take a grass roots approach: use it for some tooling first, or a small low-risk (but perhaps high-profile) project and show how well it works in a Java-dominated world. Then you get more and more developers trying it out and gradually the organization adopts it for more and more projects. It's good advice, and it's often how Clojure has crept into Java shops so far (as opposed to those fast-moving small shops that already have a tendency toward polyglot development).

I didn't feel anyone had really talked about how radical Clojure seems to a conservative "enterprise" company that's already bought into the Java way of doing things from top-to-bottom (as indicated by the original poster's references to JPA and JSF). I've had a couple of people ask me to turn my (fairly length) response on the group into a blog post, so here it is...

[

4 CommentsTags: clojure