This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-12-02
Channels
- # adventofcode (5)
- # arachne (2)
- # bangalore-clj (1)
- # beginners (8)
- # boot (195)
- # cider (28)
- # cljs-dev (35)
- # cljsrn (4)
- # clojure (295)
- # clojure-brasil (5)
- # clojure-gamedev (2)
- # clojure-greece (2)
- # clojure-korea (13)
- # clojure-russia (60)
- # clojure-spec (58)
- # clojure-uk (92)
- # clojurescript (31)
- # clojurex (4)
- # css (1)
- # cursive (13)
- # datomic (40)
- # devcards (2)
- # emacs (17)
- # events (1)
- # flambo (3)
- # garden (9)
- # hoplon (31)
- # jobs (3)
- # klipse (1)
- # lein-figwheel (1)
- # london-clojurians (1)
- # luminus (2)
- # mount (36)
- # off-topic (13)
- # onyx (8)
- # pamela (1)
- # pedestal (1)
- # planck (3)
- # proto-repl (16)
- # protorepl (11)
- # re-frame (78)
- # reagent (4)
- # rethinkdb (6)
- # ring-swagger (1)
- # specter (8)
- # untangled (10)
- # vim (1)
Does anyone know when / which ClojureX sessions will be made available online later? I've a 18:15 train from Marylebone so possibly won't catch all of Simon Belak's not @jonpither 's talks which are two highlights.
I'm thinking 45 minutes to Marylebone's cutting it fine...
at least I am getting to play with cassandra - for all the wrong reasons. I think our client wants to use it because itās shiny...
A bit more agile-focused than the usual discussion here, but I thought Iād share this as I really enjoyed reading it just now https://www.linkedin.com/pulse/scaling-agility-julian-browne
i've been using c* for a while now @korny - i really like it
So far it looks good, though the docs on the datastax site are full of āto be completedā bits, which is annoying. And the training videos feel like a long advertorial.
also, having spent a few months breaking distributed systems with Jepsen, Iām a bit skeptical about how easy they make it sound š
However, I do instantly like the fact that they at lest tackle async replication across data centers, which most databases just hand-wave away
if you do any jepsen on c* i would be interested to see the results - aphyr did one a while back and found a bunch of stuff - datastax's response was good iirc
yeah, I read that - and the c* folks run jepsen themselves these days. Iām unlikely to, because Iāll be off the project before we get to that sort of testing š
i've been using it fully async and it works really nicely - there's a serializable page-state for queries which means you can stream big queries sensibly, and the spark integration is great for analytics
cool - weāre all async coding at this client (using vert.x) so itāll be async drivers for us too. (wish we could use core.async)
i don't like core.async for many such uses - it's ok for stream representations, but it doesn't have in-built error handling and it's not very good for promise-like things
i've been having a much nicer time with manifold
@glenjamin still referring to your ligtning talk last year cljx, you might be interested in this: https://www.youtube.com/watch?v=oyLBGkS5ICk&index=1&list=PLZdCLR02grLofiMKo0bCeLHZC0_2rpqsz
although to be fair, I did reference language of the system slightly - as thatās secretly a talk about dependencies
donāt know if you have started already but that first diagram on dependencies redux is really revealing. almost like a feature list for some tool, trimming your pulled in deps
it seems that this is the naturally next step after spec, so core team might invest in this too
thereās a talk from strangeloop a few years ago called āAnnexā which presents a better alternative to semver
i think [spoiler] (again) rich is hinting that git is the right direction insteadā¦ anywaysā¦ have fun watching it. I literally could not stop š
what was the alternative scheme @glenjamin ?
(i hate videos š )
what did a version look like ? was it opaque or informative ?
I have suggested in the past that sometimes instead of changing a major version number, you should rename your software
Oh, I actually did make someone do that for an internal framework once, because they hadnāt thought about a migration path
Thereās definitely a lot of overlap with stuff iāve been saying here. I wonder if I can put this on my CV somehow...
š stop looking back @glenjamin, look ahead š
iāve had this idea that I want to write a programming language where the import statement includes a version
Rich says versions are rubbish, we should make new names. Then suggests āfoo-2ā as the new name š
Interesting session from Luke about Arachne at ClojureX. I was a little worried with the similarities to Spring in terms of IOC / DI etc, but that final answer about how to address magic indirection, and inability to reason about what code executes and where / when started to address my concerns.
the fact that thereās no mapping from artifact to namespaces in java is really odd too
also java & clojure's global namespaces both suck mightily
yeah there a few things here that really suck for a long time, I think there is Joe Armstrong talk on this too which is obv not clojure specific. canāt find it atm
I did also talk to someone once about a single-function package manager for clojure
and I thought if you had a cannonical form, you could use content hashing to resolve duplicates
would function hashing make sense? (thinking out loud, sorry if talking utter rubish)
the rough idea was youād only be able to use core fns or other content hashed fns, and then if you rename all locals to a, b, c etc
That was a great keynote. I would have liked to see a bit of discussion on artifact granularity and how that affects the need to change/rename - but a call to arms for people to start caring about how broken dependencies are is great š
I seem to recall some discussion about Leiningen having plans to let you load dependencies in multiple classpaths, to avoid the current way dependencies are merged...
It strikes me that itās fundamentally risky the way we do dependency resolution. If Iām using library foo
that depends on bar-1.1.5
and also Iām using baz
that depends on bar-1.2.1
- why is it ok to force one of foo
or baz
to use an unexpected version of bar
? Surely a sensible language would let you use both - the only reason we share them is that we have that global namespace.
@korny using multiple versions of a library only works if you can assume that the library won't keep internal state (like an internal global registry)
Yeah - but that feels like a special case, not a default. If bar
has internal state, Iād prefer it to default to having one copy of that state when called by foo
and one when called by baz
- otherwise side effects from one affect the other
@bronsa though if there was no global namespace and multiple versions were a possibility then libs would likely have sensible approaches to that problem
In the (hopefully rare) case where I really want to share state between them, Iād want that to be explicit.
really? would you really want to know about all the different versions of a lib your dependencies are pulling, in order to share state?
@glenjamin shrug, see spec
the trickier issue is when you have nominal types and type checking that you expect to work - but that doesnāt come up as often
there are legitimate cases for holding internal state, we can't just say "well, if you're a library that does hold state, sucks to be you"
then perhaps there should be a small standalone lib which wonāt change containing only the protocol definition
a similar idea was suggested by Rich in language of the system - but he was talking about standard interfaces for S3 et al
Has anyone written a slack bot using Clojurescript yet? I've a company hackathon next Wednesday and wondered whether their are any good jumping in points?
@otfrom cheers, looks good.
haha, that looks like a good one @jonpither
hi @paulspencerwilliams are you at ClojureX still?
@jonpither I am, at the back of the main room. I'll be off either before or after Simon's session dependant on how courageous I am with travel back to Marylebone š
thereās a another Clojure slackbot here: https://github.com/plumbee/plumbot takes a slightly unusual approach of having one Slack integration, but hosting multiple bots
Iāve done one is JS before using slackās npm package which connects to the websocket backend via node
Having a look through the Slack API docs, I'm probably going to work with their events api.