EuroClojure – Day 1

I’ll be putting some notes / mind maps up here from EuroClojure over the next two days. In the “agile spirit” I’m including my notes fairly raw below and may refine them later… For the meantime, in case you weren’t able to attend EuroClojure, here is a summary of some of the fun you’ve missed ;-)


EuroClojure Keynote MindMap

Critical Theory

  • Nomad
  • Rhizome
    • “Interconnectedness of Things”
  • State
  • Information
    • Collapse of Abstracton to Reality
      • Brazilia


  • Production methods
    • Prussian “Scientific Forestry”
      • Create Flawless Abstractions
    • vs Organic Forests
  • ~ Forest


  • Techne
    • Timeless
  • Metis
    • Cunning
      • Local
      • Contextual
      • Nomadic


  • Patterns of Software
  • Fictions and the aleph
  • Data and reality
  • Seeing like a state
  • Simila and simulation
  • Invisible cities


  • The Quality without a name
    • Contextual
  • Richard Gabriel
  • Pattern Language
    • To express patterns that were observed (locally)

Gerald Weinberg

  • An Introduction to Systems Thinking
  • Heuristic Devices don’t tell you when to stop

Make your own Lisp

Make your own LispBODOL

  • Homoiconic
  • Immutable
  • Typed
    • Robin Milner
    • Example
  • Pure
  • Makes HN Caremad
  • Pattern Matchinng
    • Used core.logic


  • Mark Engelberg
  • EBNF
    • Or Parse Combinators




  • Core Match
    • Not used as specific to Clojure…?
  • Lispkell
    • Also Lisp + Haskell

Life in a Browser

Life in a Browser

Genetic Algorithms

  • Breed s-expressions


  • Tree handling Library


  • Complexity – a guided tour
  • Complexity explorer
  • Stephen wolfram
    • A new kind of science

Biologically inspired computing – Artificial Life Project

  • In browser with core.async
  • Enlil
    • Head Mesopotamian god




Free your data with RFC2616

  • Http 1.0
    • + Patch
      • Liberator doesn’t handle
    • + WebDav
    • Almost 40 decision points for all status codes

Only 1 use in prod – Clojure library

  • Implement REST Resources
    • On the server side

~ 1/3 LOC Takes care of most of the status code processing

  • Uses “standard” from http flow diagram
    • See web site

Automatically converts your data to JSON or EDN

Creative Machines

  • Creative Machines

    Book: Creative Music

    • Death = Entropy Chaos*
  • Recombinance
    • Creativity does not occur in a vacuum


    • Serendipity

    Learning + Inference + Knowledge

    • Canon Builder
    • Association Network
      • Like Neural

    New neural networks

    Cognitive Bias


    • Death Dance
    • Aaron
      • Painter
      • Howard Kern / Cohen
    • Music (overtone)
      • Markov Chains
      • Neural Nets

    David Cope

    • Emily Howell
      • Music


    • Can happen by
      • Combination
      • Exploration
      • Transformation
        • Reflect on System Rules
        • And Change those Rules
    • Psychological
    • Historical


  • Functional 3D Game DesignNeed to get everything done in 16ms

    • Side effectual
      • => !used

    Based on JMonkeyEngine
    Probably go to LWJGL
    Use Quarternions

    • 3 imaginary numbers
    • 1 real number

    Functional Reactive Programming
    Modelling both Continuous and Discrete Data changes

Common Clojure Smells

Common Clojure Smells

Martin Fowler & Kent Beck

  • Refactoring

Long parameter lists

  • Underlying issues

Clojure specific smells

  • Locally scoped atoms
  • Magic Keys
    • aka Data structure coupling
    • Hard to figure out the cost of change of key names, data types etc…
    • Keep data aware fns together (defrecord?)
  • Indirection by partiality
  • Macromania
  • Parents Proliferation
    • aka Over-nesting
    • Trying to do everything in one expression
    • Balance between tenseness & readability
  • Lazi-itis
    • Excessive use of lazy evaluation
    • Many discrete steps with a final one that executes the seq
    • Consider pulling things in to coarser-grained steps to avoid long pipelines

Kent Beck

  • Smalltalk practice

Jennifer Smith

Do OO Heuristics apply to Functional code?


  1. Joshua

    I haven’t read anything from you before but I consider your mind maps valuable! Did you get somewhere any piece of sw to take it from a file (or structure) and put it in on a picture? Á la Graphviz. Thank you in advance.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s