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.

cljrff2014cw

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.

poemvalueclrw

 


clojureiconGo to more posts on clojure or that are clojure-related at http://digitalcld.com/cld/category/clojure.

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 clojure.org.  Lots of bug fixes and lots of new features within watches, transients, exception data, promises, records, types and pretty print tables.

clojuresmall

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.

medium01


clojureiconGo to more posts on clojure or that are clojure-related at http://digitalcld.com/cld/category/clojure.

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 :

ndss2

One nice view of the numerics advancing the industry :

ndnumerics

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

ndso1


gotostorageGo to more posts on storage and flash storage at http://digitalcld.com/cld/category/storage.


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 :

smartos99

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 :

bgregg01

bgregg02

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.

bgregg03

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 :

bgreggdtrace02

 

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 :

webservicescloj

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

cljws10min

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

LearningRing

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.

Cljrcompojure

Finally, a series also in building Clojure web services :

cljrwsumbers1

cljrwsumbersII

cljrwsumbersIII

 


clojureiconGo to more posts on clojure or that are clojure-related at http://digitalcld.com/cld/category/clojure.

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 :

nbrestws10

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

nb7crud

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.

nb7AJAX

 

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.

sublime22


clojureiconGo to more posts on clojure or that are clojure-related at http://digitalcld.com/cld/category/clojure.

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 :

kamditz


gotostorageGo to more posts on storage and flash storage at http://digitalcld.com/cld/category/storage.