An Architect's View

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

An Architect's View

Entries Tagged as clojure

Clojure/conj 2013 - a quick recap

November 18, 2013 ·

This was my third Clojure/conj and the first year it's been outside of Raleigh, NC - with the actual event at the George Washington Masonic Memorial, in a beautiful theater, and lodging at the (expensive) Embassy Suites, just a few minutes away. As usual, the caliber of the talks was (mostly) excellent - which is important in a single track conference - and the hallway / bar conversations were also very educational / entertaining!

[Read more →]

Tags: clojure

clojure.java.jdbc 0.3.0 beta 1

November 04, 2013 ·

The clojure.java.jdbc library has finally hit "feature complete" for the upcoming 0.3.0 release and so the first beta release has been made available. For full details, see the clojure.java.jdbc README on Github but here's a quick list of changes in this release:

  • query as-arrays? true now allows you to leverage lazy result fetching - JDBC-72
  • "h2" is now recognized as a protocol shorthand for org.h2.Driver
  • Tests no longer use :1 literal - JDBC-71 - (this was due to a change made in Clojure 1.6 that has since been reverted, but may be revisited in future)
  • Conditional use of javax.naming.InitialContext so the library can be compiled on Android - JDBC-69
  • New db-query-with-resultset function replaces private db-with-query-results* and processes a raw ResultSet object - JDBC-63
  • Allow :set-parameters in db-spec to override set-parameters internal function to allow per-DB special handling of SQL parameters values (such as null for Teradata) - JDBC-40

JDBC-65 (a bug affecting SQLite) will be fixed before the 0.3.0 final release. JDBC-70 (an enhancement to DDL) may also be included.

Tags: clojure

cf.Objective() 2014 - call for speakers!

October 21, 2013 ·

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!

Tags: cfobjective · clojure · coldbox · coldfusion · grails · groovy · javascript · programming

lein-try rocks - instant HTTP server!

October 17, 2013 ·

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)
nil
user=> (use 'ring.middleware.resource)
nil
user=> (def app (wrap-resource (constantly {:headers {"Location" "index.html"} :status 301}) "."))
#'user/app
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@0.0.0.0:3333

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.

Tags: clojure

The Strange Loop 2013

September 21, 2013 ·

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.

[Read more →]

Tags: architecture · clojure · programming · scala

FW/1 0.2.1 (for Clojure) released

August 19, 2013 ·

Framework One for Clojure version 0.2.1 is available.

[Read more →]

Tags: clojure · fw1

Lambda Jam 2013

July 14, 2013 ·

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...

[Read more →]

Tags: clojure · programming

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

May 16, 2013 ·

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.

Tags: cfobjective · clojure · coldfusion · groovy · javascript · programming · scala

clojure.java.jdbc 0.3.0 alpha 4

May 13, 2013 ·

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.

[Read more →]

Tags: clojure

My cf.Objective() 2013 Presentations

May 12, 2013 ·

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.

[Read more →]

Tags: cfobjective · clojure · coldfusion · groovy · javascript · mongodb · scala