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 ;-)
Keynote
Critical Theory
- Nomad
- Rhizome
- “Interconnectedness of Things”
- State
- Information
- Collapse of Abstracton to Reality
- Brazilia
- Collapse of Abstracton to Reality
Software
- Production methods
- Prussian “Scientific Forestry”
- Create Flawless Abstractions
- vs Organic Forests
- Prussian “Scientific Forestry”
- ~ Forest
Greeks
- Techne
- Timeless
- Metis
- Cunning
- Local
- Contextual
- Nomadic
- Cunning
Refs
- Patterns of Software
- Fictions and the aleph
- Data and reality
- Seeing like a state
- Simila and simulation
- Invisible cities
Alexander
- 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
BODOL
- Homoiconic
- Immutable
- Typed
- Robin Milner
- Example
- Pure
- Makes HN Caremad
- Pattern Matchinng
- Used core.logic
Instaparse
- Mark Engelberg
- EBNF
- Or Parse Combinators
Refs
- GitHub.com/bodil/BODOL
- GitHub.com/bodil/building-lisp
Misc
- Core Match
- Not used as specific to Clojure…?
- Lispkell
- Also Lisp + Haskell
Life in a Browser
Genetic Algorithms
- Breed s-expressions
Zipper
- Tree handling Library
Resources
- 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
Liberator
Free your data with RFC2616
- Http 1.0
- + Patch
- Liberator doesn’t handle
- + WebDav
- Almost 40 decision points for all status codes
- + Patch
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
Book: Creative Music
- Death = Entropy Chaos*
- Recombinance
- Creativity does not occur in a vacuum
Influence
- Serendipity
Learning + Inference + Knowledge
- Canon Builder
- Association Network
- Like Neural
New neural networks
Cognitive Bias
Examples
- Death Dance
- Aaron
- Painter
- Howard Kern / Cohen
- Music (overtone)
- Markov Chains
- Neural Nets
David Cope
- Emily Howell
- Music
Creativity
- Can happen by
- Combination
- Exploration
- Transformation
- Reflect on System Rules
- And Change those Rules
- Psychological
- Historical
Functional
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?
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.
Thanks Joshua – apologies for late response but I went straight back to a project that’s just finishing it’s sprint – Phew! The software used is iThoughtsHD http://www.ithoughts.co.uk/iThoughtsHD/Welcome.html which I’d highly recommend. It exports in almost any other mind-mapping tools format also. At US$9.99, it’s a no-brainer buy.