Clojure/West 2014 Presentation (Clojure and UI Development ) : The Functional Final Frontier; Clojure and UI Development

At Clojure/West 2014 (and I will definitely attend next year), David Nolan gave a talk, The Functional Final Frontier, which walks through UI software development from SmallTalk to the present.  He then describes efforts in functional programming including his Om library.  Om is influenced NextStep and Mathematica. Om’s big ideas – immutable data, time-travel,the notion of ‘instrument’ ( customization method), meta-components, tx-listen (allows component to listen to a change) and ‘Protocols’ (protocols for fundamental operations).  A link to the presentation.  I really like the power that Om brings to UI development. I think it would be possible to build a UI builder in the flavor of NetBeans UI Builder (aka ‘matisse’) and go beyond it. Some of that power is exhibited in demos of Sessions and Zenrise within the talk.


I finished this post and then bumped into the next presentation (which uses Om). I almost fell out of my chair. Prepare to watch a mind-blowing presentation. This is a wonderful use of Clojure and Om.



clojureiconGo to more posts on clojure or that are clojure-related at

Clojure Bits : Clojure 1.6 Available and Live Coding with Session

clojuresmallIf you missed it – Clojure 1.6 is now available. You can get it at github or  Lots of bug fixes and lots of new features within watches, transients, exception data, promises, records, types and pretty print tables.


A really interesting an incredibly simple live coding environment just showed up on my radar screen. Session is a live coding environment based on Clojure, Om and Datomic. The live-coding environment is backed by database that keeps a history of the coding session.  Another aspect is that immutable data can be used to render graphical constructs. You can see it in action here.

There is a nice write-up on this.


clojureiconGo to more posts on clojure or that are clojure-related at

Recommended Presentation : Overcoming Roadblocks to the All-Flash Storage Data Center

Nice overview presentation by George Crump, Storage Switzerland and Tom Isakovich, CEO Nimbus Data.  The second presentation just concluded and was good :


One nice view of the numerics advancing the industry :


Nimbus Data has recently announced a high scale-out solution. An example is that they can deliver one Petabyte in one namespace with a 10 node cluster (not limited to four arrays like some vendors) in a scant half rack (24 RU).


gotostorageGo to more posts on storage and flash storage at

Improving Performance on Solaris, Linux and SmartOS

For many commercial companies the center of the Solaris world is at Oracle. However, for many of us that have lived and breathed Solaris, that center has shifted quite a while back to Joyent.  Oracle’s high licensing costs around a Solaris x86 license makes it uninteresting to many. Meanwhile, Joyent offers an open-source version of Solaris that actually offers a number of significant improvements. Joyent’s SmartOS has become one the most innovative operating systems available on the scene today.  A derivative of OpenSolaris – it has vastly improved on it, creating an excellent cloud-centric operating system with a wealth of features.  Improved are all the compelling Solaris technologies – zones, ZFS, dtrace, SMF, etc – but more important is how they have added new technologies (KVM) and offered a wealth of new features. One of the big wins with SmartOS is improved performance.  If you are interested you can find more information on SmartOS here :


One of the areas where Solaris and SmartOS excel is dtrace – a framework that allows  observation of the running operating system and it’s applications and processes at a very deep level. On more than one occasion I was able to observe the details of applications running in production by using dtrace.  It is typical to see huge performance wins by using dtrace to diagnose performance issues or simply examine running applications.  Twenty examples of performance wins – with the bulk coming from use of dtrace :



Brendan Gregg is a performance guru and he is really well worth listening to. One of the more interesting articles he has written compared Solaris Zones, KVM and Xen and looked at in detail at them.


He recently presented SCaLE 12x and his presentation is, as usual, informative. Discussing what Linux can learn from Solaris-based systems and vice-versa when it comes to performance.
Brendan Gregg has written a number of books on the topic of performance.  He co-authored a book on DTrace :

bgreggdtraceand also authored a comprehensive book on performance :



Recommended : Creating Web Services Using Clojure

Recently, I provided a post on creating RESTful web services in Java.  Today, we focus on creating RESTful web services in Clojure. If you are new to Clojure, you can get an accelerated look at it in Learn Clojure.  Let’s start with building RESTful web APIs :


Here is another example, a set of slides from Josep Bach :


Some other references are of use if you are writing a web service.  Let’s start with Ring :


Another useful thing is an authentication library, Sandbar.  Two more important libraries are Compojure and Compojure-rest.  Two other libraries, enlive, to deal with XML and clojure-json to deal with JSON.  Here is another example of building web services using Compojure.


Finally, a series also in building Clojure web services :





clojureiconGo to more posts on clojure or that are clojure-related at

Recommended Tutorials : Creating RESTful Web Services in NetBeans 7

Oracle has put together a number of excellent tutorials on creating RESTful web services (in both NetBeans and Eclipse).  This is part 1 :


In part 2 the tutorial implements a way for the RESTful web services uses CRUD operations :


In this tutorial you build – a client app to consume RESTful web services, generate entity classes from a database, create/update/delete/retrieve  operations.

In the final tutorial (part 3), Developing an Ajax Client for RESTful Web Services in NetBeans 7 an AJAX client is developed to consume RESTful web services, rendering RESTful response in both XML and JSON formats.



Recommended : Two Approaches To Developing Clojure Software

In past posts we looked also at VIM and today we continue our look at Clojure IDEs.

Here are two IDE tutorials – different approaches to writing Clojure software.  In one, Light Table is used, in another Sublime Text 2 is used.

Let’s look at a video which shows how to use Sublime Text 2 :

In the second one, we look at a tutorial on Light Table.


clojureiconGo to more posts on clojure or that are clojure-related at

Recommended : Kaminario’s Flash Interview with Me

kamcldToday, Kaminario published an interview they did with me recently. Kaminario offers one of the highest performing flash arrays available and couples a wealth of storage features to it. I recently pointed out Reference Architecture for ESX and in the past highlighted their performance strengths reinforced by the world record performance setting SPC-1 numbers.  I recently was interviewed and today they published the interview in their Flash Interview. You can read the interview here :


gotostorageGo to more posts on storage and flash storage at