core_clj_gui_

JavaFX with Style: Using Clojure, fn-fx and garden for desktop application design

Here is a quick introduction to style your Clojure JavaFX application via CSS using the garden library. Intro I am still working on a desktop application built with Clojure and fn-fx and I am making good progress, pretty happy with it so far. When I gave a talk about it at the Clojure meetup Berlin, I was asked about how it looks. Well it might not be spectacular, but I was actually quite happy with the default look of it. Yeah, despite being a Java app! It might be hard to be believe when you still remember the stuff from the 90s and 00s, but check it out yourself: ...

February 26, 2017 · 5 min · Nils
y_u_no_electron

Building declarative GUIs with Clojure, JavaFX and fn-fx (Clojure Berlin Meetup talk)

why not use Electron? A few days ago I gave a talk at the Clojure Meetup Berlin about building GUIs with Clojure and JavaFX. Here is the abstract: Building declarative GUIs with Clojure, JavaFX and fn-fx (Dr. Nils Blum-Oeste) JavaFX is the current standard GUI framework included in most Java distributions and the successor to Swing. It is readily available via interop to any Clojure developer. I would like to give an introduction to an alternative approach using halgari/fn-fx: A thin Clojure wrapper around JavaFX by Timothy Baldrige that allows building GUIs declaratively from a single application state atom instead of dealing with the mutable JavaFX objects directly. ...

February 12, 2017 · 1 min · Nils
fn-fx JavaFX Clojure GUI

Functional GUI programming with Clojure and JavaFX: Meet halgari/fn-fx

As stated in a previous post I am in the process of building a GUI application and I would like to use Clojure for that. In this post I would like to write about my experiences building a small app for evaluation of the halgari/fn-fx Clojure library that aims at building GUIs with JavaFX in a declarative way, similar to what React does for the browser DOM. Disclaimer: Why not Electron? I also considered using Electron but I would prefer a solution that runs on the JVM so that I can make full use of that. However, if you can live with the JS runtime I would definitely recommend checking out Electron too. Probably I will have a follow-up post about Electron. :) ...

January 30, 2017 · 12 min · Nils
clojure_letfn

letfn drilldown: A Clojure special form in detail

Motivation A short discussion on the #clojure-berlin channel ( Clojurians on Slack) got me interested in the letfn special form of clojure.core. The question was raised if the docstring of letfn describes it well. Wether it is, or not, I got interested in how it works and more specifically why it’s syntax is different from let for example. Here is the documentation for letfn: (doc letfn) ------------------------- clojure.core/letfn (letfn [fnspecs*] exprs*) Special Form fnspec ==> (fname [params*] exprs) or (fname ([params*] exprs)+) Takes a vector of function specs and a body, and generates a set of bindings of functions to their names. All of the names are available in all of the definitions of the functions, as well as the body. As you can see it takes a vector of function specs and every function spec has the form (fname [params\*] exprs). I was quite surprised to see such a syntax for the specs: Each spec is a list, but it’s not quoted. So outside of the letfn special form the spec would be evaluated. ...

July 31, 2015 · 5 min · Nils
Face Detection with Clojure

Image analysis with Clojure and OpenCV: A face detection example

I recently got not only interested in Clojure but also want to utilize it for some image analysis now. OpenCV is a very solid package for image and video analysis. Java bindings have been released for OpenCV at the beginning of 2013. Unfortunately it wasn’t as easy as I expected in the first place to use it from Clojure. I would like to show you how to do it. Here is an outline of the necessary steps: ...

April 26, 2013 · 6 min · Nils