EuroClojure_2017_PPS_Anglican_updated_pdf__page_12_of_42_

EuroClojure 2017 talk: Intro to Probabilistic Programming and Clojure’s Anglican

At this year’s EuroClojure I gave a talk about probabilistic programming with Clojure, using the Anglican probabilistic programming system. Abstract: Probabilistic Programming Systems aim to merge general purpose programming with probabilistic modelling. They provide powerful statistical inference and thus allow developers to focus on the modelling with tools and environments they are comfortable with. These emerging methods are promising additions to the Data Scientist’s toolbox and an interesting, satisfying playground for programming enthusiasts. This talk is an introduction to Probabilistic Programming Systems, their use and value for the industry and Clojure’s great library “Anglican”. ...

August 31, 2017 · 1 min · Nils

Interview with PurelyFunctional.tv: Intro to Probabilistic Programming and Clojure’s Anglican

I was interviewed by PurelyFuntional.tv about my upcoming talk Intro to Probabilistic Programming and Clojure’s Anglican at EuroClojure 2017. You can find the full interview here: https://purelyfunctional.tv/speaker-interview/nils-blum-oeste-euroclojure-2017-interview/

July 12, 2017 · 1 min · Nils
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
:clojureD Logo

:clojureD: Just a few more days of waiting

The :clojureD conference is approaching quickly: February 25, 2017 in Berlin, yes that is only about two weeks away! I am really looking forward to it and hope to meet you there. We have a quite interesting mix of talks I would say. Among my favourites are “Powerful Data Access in Clojure” by Yannick Scherer, “Writing Clojure at Runtime with Nightlight” by Zach Oakes, “On automatic generation of user interfaces” by Philipp Meier and ...

February 8, 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
fn-fx-ui

Desktop GUIs with Clojure in 2017: What are the options?

As I am in the process of developing an application for data analysis on chemical data the need for building a desktop GUI came up. Why desktop you ask? Excellent question! I think for this particular project, the combination of ease of use, data privacy and performance make it worth exploring an approach with a local, self-contained application instead of anything involving remote servers. Actually in the end we might build a SaaS too or move to such a model completely. ...

January 20, 2017 · 5 min · Nils
Generative Art with Processing

Generative Art with Clojure via Quil and Processing

Recently I got some interest in generative “art”. Without going into what qualifies as art and what not, here are some of the things I created: Generative Art with Processing Generative Art with Processing Generative Art with Processing Generative Art with Processing Generative Art with Processing Generative Art with Processing Generative Art with Processing Generative Art with Processing The code generating these images is available on github over here. Try them live, as a couple of these images are from actual animations. ...

October 3, 2015 · 1 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
ClojureBridge

ClojureBridge Berlin and Clojure learning groups

Recently I had the chance to be a coach at ClojureBridge Berlin. You might not have heard about this event before, but maybe you know RailsBridge. ClojureBridge’s mission is: ClojureBridge aims to increase diversity within the Clojure community by offering free, beginner-friendly Clojure programming workshops for women. Of course I did not hesitate to volunteer for that. I have to admit though, that I also had a hidden agenda: I wanted to test the hypothesis, that a LISP (Clojure in this case) is well suited to get started with programming. When talking to experienced developers about Clojure, I often have to face a negative reaction towards LISPs, sometimes also about (mostly) pure Functional Programming (less these days, as FP is so hip again). When I told some colleagues, including some with a formal computer science education as well as way more experienced devs that me, that I am going to help programming beginners to get started by using Clojure, they most often asked back if this is some kind of sadistic prank. ...

July 24, 2015 · 3 min · Nils