https://thoughtstreams.io/rrees/clojure-exchange-2014/Clojure Exchange 2014rrees2014-12-05T17:43:27Zhttps://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7060Fork-join shows contention on high nu...2014-12-05T17:43:27Z2014-12-05T17:43:27Z
Fork-join shows contention on high numbers of cores (48).
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7059Aphyr: Non-determinism is evil, but w...2014-12-05T17:30:55Z2014-12-05T17:30:55Z
Aphyr: Non-determinism is evil, but where our power comes from
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7058[Tesser](https://github.com/aphyr/tes...2014-12-05T17:29:17Z2014-12-05T17:29:17Z
[Tesser](https://github.com/aphyr/tesser) allows distributed system calculations that pipe together reducers and combiners.
Many data operations can be combined together into a single traversal.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7057Transducers use state for some of the...2014-12-05T17:27:42Z2014-12-05T17:27:42Z
Transducers use state for some of the traversals. E.g. take and partition.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7056You can buy a ticket to [Clojure Exch...2014-12-05T17:07:43Z2014-12-05T17:07:43Z
You can buy a ticket to [Clojure Exchange 2015](https://skillsmatter.com/conferences/6861-clojure-exchange-2015) for just £95
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7055Aphyr just formed a monoid hug with a...2014-12-05T17:04:47Z2014-12-05T17:04:47Z
Aphyr just formed a monoid hug with audience participation.
Also the video of this talk is going to record some truly terrible accents.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7054Interesting talk on Lenses that was s...2014-12-05T17:04:14Z2014-12-05T17:04:14Z
Interesting talk on Lenses that was slightly more humane than previous talks on the topic I've attended.
Lenses offer the ability to hold a focus on multiple points in a data structure and apply operations to them.
This becomes more relevant where, for good reasons, we want a single data structure to represent the whole of the applications data.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7053I feel like I'm being trolled with bo...2014-12-05T15:36:20Z2014-12-05T15:36:20Z
I feel like I'm being trolled with boredom. Like there's some weird challenge in how bored you can be before you walk out.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7052Meta talk about talks.2014-12-05T15:17:50Z2014-12-05T15:17:50Z
Meta talk about talks.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7051[GDS service manual](https://www.gov....2014-12-05T14:45:06Z2014-12-05T14:45:06Z
[GDS service manual](https://www.gov.uk/service-manual) has good definition of project phases
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7050Project had a classic frontend/backen...2014-12-05T14:39:01Z2014-12-05T14:39:01Z
Project had a classic frontend/backend split.
Frontend prototype iterated and varied far more than anticipated. Little value in trying to link the many variants in an actual app.
Templates reloading was hard as resource changes don't trigger reloads, ended up touching the namespace file to reload the associated templates.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7049Amusing story about [Donald Michie](h...2014-12-05T14:35:41Z2014-12-05T14:35:41Z
Amusing story about [Donald Michie](https://en.wikipedia.org/wiki/Donald_Michie) and Alan Turing about failing to find Turing's buried silver after the war.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7048By not providing an identity service ...2014-12-05T14:33:05Z2014-12-05T14:33:05Z
By not providing an identity service the government is avoiding collecting user data but has created the problem of which private company you trust to represent your identity.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7047Direct testing of ring handlers with ...2014-12-05T14:26:38Z2014-12-05T14:26:38Z
Direct testing of ring handlers with [Kerodon](https://github.com/xeqi/kerodon)
Complex journeys (such as off-site authentication) can be wrapped as a single function in the journey description.
Thanks Glen Mailer, for fixing a redirect bug in the library.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7046Project used the reloaded pattern rat...2014-12-05T14:25:47Z2014-12-05T14:25:47Z
Project used the reloaded pattern rather than strict Component architecture, interesting.
Did consider switching to Component half-way through the project but didn't feel it was the right thing to do.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7045Your hobby code is always exciting an...2014-12-05T14:25:09Z2014-12-05T14:25:09Z
Your hobby code is always exciting and great because you don't have to share your product direction with others and if you get stuck you can just ditch the project with no consequences.
Good point from Philip Potter.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7044[Gov.UK Verify](https://www.gov.uk/go...2014-12-05T14:16:40Z2014-12-05T14:16:40Z
[Gov.UK Verify](https://www.gov.uk/government/publications/introducing-govuk-verify/introducing-govuk-verify) uses an Identity Hub to indirect the service you are trying to access and the identity provider.
The project was experimenting with [OpenID Connect](http://openid.net/connect/).
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7043You can give the Scala developer Cloj...2014-12-05T13:20:45Z2014-12-05T13:20:45Z
You can give the Scala developer Clojure but you can't take the Scala out of their code.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7042[Modular](https://github.com/juxt/mod...2014-12-05T13:18:37Z2014-12-05T13:18:37Z
[Modular](https://github.com/juxt/modular) Juxt's attempt to take the boilerplate out of Component.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7041I don't think you can do remote CSP w...2014-12-05T13:16:47Z2014-12-05T13:16:47Z
I don't think you can do remote CSP without knowing about the nodes in the channel. I think the speaker might confusing *core.async* and Erlang.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7040Some more love for the [Component](ht...2014-12-05T13:15:24Z2014-12-05T13:15:24Z
Some more love for the [Component](https://github.com/stuartsierra/component) architecture but also dependency injection...
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7039[Carmine](https://github.com/ptaoussa...2014-12-05T13:14:20Z2014-12-05T13:14:20Z
[Carmine](https://github.com/ptaoussanis/carmine) a Redis client library
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7038Both of the [MixRadio](http://dev.mix...2014-12-05T11:46:00Z2014-12-05T11:46:00Z
Both of the [MixRadio](http://dev.mixrad.io/) talks have been interesting and have had a strong Devops influence, the first on infrastructure and deployment and the second on performance tuning.
Again though we're learning to RTFM.
Lots of praise for YouKit.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7037James Henderson has slipped a load of...2014-12-05T10:32:55Z2014-12-05T10:32:55Z
James Henderson has slipped a load of Haskell-inspired monads passed the crowd here in his talk about [Flow](https://github.com/james-henderson/flow).
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7025Slightly odd closing keynote from Bod...2014-12-04T21:20:45Z2014-12-04T21:20:45Z
Slightly odd closing keynote from Bodil who was taking a perspective of someone who considers herself "outside" the community now.
There was praise for the community but acknowledgement that it is still mostly white men. There was a lot of funny pictures and back-handed compliments.
There was a lot of praise for Erlang, which seems to have been one of the themes of the first day of the conference. I'd be the first to acknowledge the strengths of Erlang but I honestly think there is a massive difference between the core competencies of Clojure and Erlang and both actually scale in their own ways but there are things that both are going to shine at and I suspect then Venn diagram of those things don't intersect much.
Bodil also name-checked [Racket](http://racket-lang.org/) another really interesting language worthy of attention.
She also mentioned core.typed and her disappointment that it hasn't really taken off but I don't think you're really going to get a lot of type lovers in a Clojure crowd.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7023Ctries: linear access, can reconstitu...2014-12-04T16:43:44Z2014-12-04T16:43:44Z
Ctries: linear access, can reconstitute a structure from the history of its operations. Source coming soon on Github.
Transient data (or mutable by another name) that you can make immutable snapshots from in O(1)
Deref creates independent mutable structures based on the original
Designed for safe concurrent modification.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7022[DataScript](https://github.com/tonsk...2014-12-04T16:20:04Z2014-12-04T16:20:04Z
[DataScript](https://github.com/tonsky/datascript) is an in-memory datastore with a DataLog query interface.
It can be used to model the state of a SPA in a powerful way where queries can be used to generate views.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7018[Amazonica](https://github.com/mcohen...2014-12-04T14:36:24Z2014-12-04T14:36:24Z
[Amazonica](https://github.com/mcohen01/amazonica) a comprehensive AWS service client.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7017[Tentacles](https://github.com/Raynes...2014-12-04T14:21:25Z2014-12-04T14:21:25Z
[Tentacles](https://github.com/Raynes/tentacles) library for interacting with the Github configuration
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7016[Conch](https://github.com/Raynes/con...2014-12-04T14:15:52Z2014-12-04T14:15:52Z
[Conch](https://github.com/Raynes/conch) a library for executing shell commands
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7015[Faraday](https://github.com/ptaoussa...2014-12-04T14:13:08Z2014-12-04T14:13:08Z
[Faraday](https://github.com/ptaoussanis/faraday) a Clojure library for interacting with AWS DynamoDB
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7014DPP is a kind of presentational chame...2014-12-04T13:34:47Z2014-12-04T13:34:47Z
DPP is a kind of presentational chameleon, this time he's completely adopted Bodil's pony-style.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7013This is not really a talk about perfo...2014-12-04T11:27:03Z2014-12-04T11:27:03Z
This is not really a talk about performance testing but about an arrogant development team.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7012Okay this is really bad, apparently p...2014-12-04T11:24:40Z2014-12-04T11:24:40Z
Okay this is really bad, apparently people are selecting * from multiple relational tables and joining in memory. That's a serious cultural problem, not really an issue with the technology itself.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7011Over-engineered code is slow, shocker...2014-12-04T11:20:55Z2014-12-04T11:20:55Z
Over-engineered code is slow, shocker!
Cached data is fast, double-plus shocker!
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7010Korny Sietsma is kind of making Malco...2014-12-04T11:20:35Z2014-12-04T11:20:35Z
Korny Sietsma is kind of making Malcom Spark's point about Ring and Jetty not being suitable for modern Clojure web development.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7009If you remove laziness from a Clojure...2014-12-04T11:18:05Z2014-12-04T11:18:05Z
If you remove laziness from a Clojure program you tank performance as you realise all structures.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7008[Robert Hooke](https://github.com/tec...2014-12-04T11:15:09Z2014-12-04T11:15:09Z
[Robert Hooke](https://github.com/technomancy/robert-hooke) allows you to attach a function to another function
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7007Why would you use a macro in Compojur...2014-12-04T11:11:48Z2014-12-04T11:11:48Z
Why would you use a macro in Compojure to measure performance instead of Ring middleware? Why? Why?!
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7006There seems to be a ThoughtWorks dise...2014-12-04T11:05:46Z2014-12-04T11:05:46Z
There seems to be a ThoughtWorks disease of creating web apps with performance issues. Presumably because they build and then deliver on on timeline rather than building iteratively into a requirement or perhaps because they don't externalise scalability into the platform.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7005Speaker is trolling the audience with...2014-12-04T11:03:23Z2014-12-04T11:03:23Z
Speaker is trolling the audience with [Cathode](http://www.secretgeometry.com/apps/cathode/) app.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7004Nick Rothwell has two open-source pro...2014-12-04T11:01:30Z2014-12-04T11:01:30Z
Nick Rothwell has two open-source projects: a [scene-graph renderer](https://github.com/cassiel/tramway) and [a timeline automation](https://github.com/cassiel/twizzle)
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7003There is quite a strong showing of Cl...2014-12-04T10:58:55Z2014-12-04T10:58:55Z
There is quite a strong showing of Clojurians from Bristol, Glasgow and other user groups here.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7002This nice thing about a single-track ...2014-12-04T10:56:41Z2014-12-04T10:56:41Z
This nice thing about a single-track conference is that you don't have to choose and everyone is in the same conversation.
The venue is *packed* though, at the limits of what the Skillsmatter building can hold.
https://thoughtstreams.io/rrees/clojure-exchange-2014/#card-7001Arrived a bit late on a very cold, fo...2014-12-04T10:55:45Z2014-12-04T10:55:45Z
Arrived a bit late on a very cold, foggy and drizzily day. The first talk I caught actually ended up with the speaker recommending the use of Erlang.
I kind of agree: there's a set of distributed low-level problems where building a fake Erlang on top of the JVM is a poor fit.