This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-05-31
Channels
- # aws (2)
- # beginners (101)
- # cider (8)
- # clara (8)
- # cljs-dev (3)
- # cljsrn (17)
- # clojars (2)
- # clojure (67)
- # clojure-austin (2)
- # clojure-finland (1)
- # clojure-france (5)
- # clojure-italy (3)
- # clojure-nl (3)
- # clojure-russia (2)
- # clojure-serbia (1)
- # clojure-spec (72)
- # clojure-uk (112)
- # clojurescript (92)
- # core-async (74)
- # core-typed (2)
- # cursive (8)
- # datomic (2)
- # duct (5)
- # emacs (35)
- # events (11)
- # fulcro (32)
- # instaparse (9)
- # jobs (1)
- # luminus (1)
- # lumo (3)
- # off-topic (118)
- # om (2)
- # onyx (10)
- # pedestal (5)
- # re-frame (21)
- # reagent (48)
- # reitit (40)
- # ring (12)
- # shadow-cljs (113)
- # spacemacs (21)
- # tools-deps (47)
Mornin'
Your comment about DropBox and migrating to a new Mac struck a cord... I'm soon to migrate from a Mac to a Windows box and I've been wondering about ways to make the transition easier...
...I already run Parallels on the Mac with Windows 10 for all my non-dev stuff, relying on Docker (Mac) and Terminal for dev stuff. The plan is to run Docker (Windows) and WSL/Ubuntu for dev stuff after I switch.
@seancorfield I moved most of my stuff to DropBox when they bumped paid accounts from 100G to 1T 🙂 Also I heavily use duplicity
to back up stuff I don’t want to share with whoever manages to hack DropBox
You can define a lambda (aka short anonymous function) using variable names that don’t exist inside its body. Then you can use it in scope where variable with that name was defined, and it’ll use that variable.
I think that is what always confused me about zope, but then I never understood or used it enough to properly understand what was confusing
(…just found out it’s not restricted to lambdas, if you use a var name and it’s not been declared in current scope as local/nonlocal/global, it’ll just keep checking up in parent scopes as they are at the moment of invocation. 😱 )
(I’m so used to people bitching at PHP and being proud of Python that I somehow expected better. Python, dear, I’m not angry, just disappointed.)
it’s not about what you should do, it’s about what can happen if you mistype something.
Hmmm, same could be said for mistyping stuff in any dynamic language tho?
no, because side effects are limited to the internals of the function. it’ll always be wrong in the same way.
vs. a function that will be wrong in different ways because it’s been invoked in different environments
True. Constraints and consistency are wonderful things.
Heading into Londontown for my last day as a full time cfml dev. From tomorrow it's full time Clojure 🎉
![bubblebobble](https://emoji.slack-edge.com/T03RZGPFR/bubblebobble/6cce6d3c1e0e20af.gif)
I'm struggling to contain my smile
Time to really start learning Clojure at max pace
cfml?
Also where are you working?
@alex.lynham CFML == ColdFusion... That's how @U0MFQNXFZ and I met. I was working at Macromedia when they acquired the company that created CFML, so I got to know a lot of CFML devs.
@lady3janepl elisp works that way too
Morning.
Not sure who else has had to deal a lot with timezones or calendar systems on their dev career, but if you have, you'll probably enjoy this read https://zachholman.com/talk/utc-is-enough-for-everyone-right
I’m finding it is actually worse in the UK than Australia - here, bad timezone code can work accidentally for several months of the year. In Aus, well, if a report is 9 hours out you generally notice…
☝️ this, definitely!
@lady3janepl <ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-453.pdf> has a good section on how lexical scoping emerged in the lisp family
http://www.dreamsongs.com/Files/HOPL2-Uncut.pdf is also quite good
Ello ello ello :male-police-officer::skin-tone-2: :female-police-officer::skin-tone-2:
I wonder if Python has a linter that warns about that? One of the things I’ve really enjoyed about ES6 work is how good eslint and it’s pals are. Makes working in a dynamic language much nicer, when your linter tells you about unused variables or dangerous code practices,
possibly. they have a lot of style restrictions. it’s just weird that in a language that puts so much weight on clarity and doing things ONE way, they allow it
by reputation, I’d maybe expect it in ruby or perl (as they’re known for magicky weirdness)
@korny is eslint an npm package then?
@alex.lynham yep. Both Atom and IntelliJ can read .eslintrc
files as well and give you hints when you break the rules.
I'm still on the sublime hype but will have to give it a go
My d3 stuff uses it, for an example: https://github.com/kornysietsma/d3-modern-demo/blob/master/package.json and nearby files
if y'all aren't already using it - joker is a useful clojure/script linter - https://github.com/candid82/joker - with various editor integrations
@mccraigmccraig ooh - looks very neat.
it tells me quickly when i've got typos and unused bindings, which is enough to be useful
welcome @jocelyn.facchini
i only learned of Throwable->map
a few short weeks ago... i don't think i'd ever tried to serialize an exception before then
Why does Clojure take so bloody long to compile on my Mac... It's fast on the Jenkins instance we have on AWS, and that's not very big. This mac has an SSD
Throwable->map
? This is new to me but will def spam that
Took over 10 minutes to compile a 200 line script, most of which was spent in Writing target dir(s)...
If you had to build a high performance time-based queue, what would you use (lib or technology)
Today i learnt about some-fn
existence.
https://clojuredocs.org/clojure.core/some-fn
Still not 100% sure why it would be useful
isnt that the same as
((some-fn int? string?) [:a 'b "c"])
:thinking_face: ill try it out!
we occasionally use it for transformations - (map (some-fn {:a :b} identity) [:c :d :a :f :g])
-> [:c :d :b :f :g]
yep some-fn
is for all these times you’ve wishes “man, I wish I could use or
in a filter/map but it’s a macro`
ooh, I tell you where we've also found it useful - composing ring handlers:
(defn sub-handler-1 [req]
(when (do-i-want-to-handle-this? req)
(response "foo")))
(defn sub-handler-2 [req]
(when (do-i-want-to-handle-this? req)
(response "bar")))
(defn sub-handler-3 [req]
(when (do-i-want-to-handle-this? req)
(response "baz")))
(def main-handler
(some-fn sub-handler-1
sub-handler-2
sub-handler-3))
That’s pretty cool. Shame I’m not likely to be able to use it professionally! How’s things James?