This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # announcements (7)
- # babashka (44)
- # beginners (162)
- # cider (22)
- # clara (11)
- # clj-kondo (14)
- # cljsrn (8)
- # clojure (91)
- # clojure-dev (24)
- # clojure-europe (6)
- # clojure-france (4)
- # clojure-italy (11)
- # clojure-nl (4)
- # clojure-spec (11)
- # clojure-uk (14)
- # clojurescript (92)
- # community-development (1)
- # core-logic (1)
- # cryogen (1)
- # cursive (6)
- # data-science (3)
- # datahike (3)
- # datomic (32)
- # degree9 (3)
- # dirac (3)
- # emacs (9)
- # eql (1)
- # events (1)
- # find-my-lib (1)
- # fulcro (67)
- # graphql (13)
- # helix (9)
- # jobs (1)
- # jobs-discuss (92)
- # leiningen (31)
- # malli (8)
- # meander (3)
- # news-and-articles (1)
- # off-topic (46)
- # pathom (2)
- # practicalli (1)
- # re-frame (52)
- # reitit (12)
- # shadow-cljs (40)
- # spacemacs (10)
- # sql (4)
- # xtdb (8)
After almost 2 months of full remote (even for digits “newbies”) our CEO is convinced that remote is the future. We hired our first fully remote programmer. I’m still working from home :)
I'm going to the office as soon as I can. Mainly because I like going to the city centre, being able to walk to the gym, decide where to eat etc. My office is an empty co-working space though, it could do with more people
Anyone have a sizable project sitting around using jetty that would be good for perf benchmarking?
(do (in-ns 'ring.adapter.jetty) (import org.eclipse.jetty.util.thread.ExecutorThreadPool) (import java.util.concurrent.ThreadPoolExecutor) (import java.util.concurrent.TimeUnit) (defn- ^ThreadPool create-threadpool [options] (let [min-threads (options :min-threads 8) max-threads (options :max-threads 50) _ (println (str "Threads: " max-threads)) thread-idle-timeout (options :thread-idle-timeout 60000) queue-capacity (max min-threads 8) queue-max-capacity (options :max-queued-requests Integer/MAX_VALUE) blocking-queue (BlockingArrayQueue. queue-capacity queue-capacity queue-max-capacity) pool (doto (ExecutorThreadPool. (ThreadPoolExecutor. ^Integer min-threads ^Integer max-threads ^Long thread-idle-timeout TimeUnit/SECONDS blocking-queue (-> (Thread/builder) (.virtual) (.factory)))))] (when (:daemon? options false) (.setDaemon pool true)) pool)) (in-ns 'clojure-getting-started.web))
@emccue the default executor for futures uses an unbounded threadpool iirc - so you could spin up futures in a tight loop and profile that?
i'm more thinking "A to B - this is how a regular server's performance characteristics change"
like how many more concurrent requests can be handled by existing code with the couple line change of the executor
that's super tricky - think doing that in code isn't really going to give you much in the way of real insights. how about using
wrk or similar instead?
My company gives me 300 usd for "training" purposes, what would be the best to spend them to improve in clojure?
I did "day of datomic" in the last conj 2019, it was very very nice. Marshal and Chelimsky are great tutors. http://2019.clojure-conj.org/tickets/
Not at all 😄 it is standard for all backend developers in my company, these days Slack, IDEA, Docker and the likes eat up quite a bit of memory and you won’t want to suddenly start using up swap
No. I would even get 64GB if I bought a new one but that's also related to some in memory index we have at work.
I was miserable at times with 16GB. 32GB would be enough for my workflow, but I decided to get 64GB just in case.
Yep, I would get 64GB if it was possible; I bought my laptop a year ago when 32 GB was max. The next time I'm going to buy the max amount of available RAM too
I downgrade my notebook from 16Gb to 8Gb and now I'm running out-of-memory a lot of times 16Gb is the minimum today. 32Gb for some years (3~5y) 64Gb for some (more) years (5~8y)
Depends on your needs. Normally it's ok, but i'd say 32GB at the least. If you are going to run vms (docker, vmware fusion, vagrant, etc) you are absolutely going to be kicking yourself later if you don't get more ram
Wow … I am working with 4GB of RAM and did not run into problems. Maybe I am not using the right tools.
I do my dev work in a VMs with 8GB of ram haha. Trick is to find how to make shadow-CLJS hot reloading working remotely
When I’m working on mobile apps while running XCode & Android Studio builds, then it becomes hard to work on less than 64GB.
I have hit Clojure workloads surpassing 18GB (it'd OOM with any lower setting) So yeah not overkill :)
Speaking of machines, I may need to do contracting soon after my covid layoff. Is the expectation on contracts for the contractor to use his own equipment?
does someone has some clojure code to turn html with classes into html with inline styles? I found this: http://www.jonathanpearlin.com/2015/01/06/email_inline_style_jsoup_cssparser.html but maybe there's something else I could also take a look at
i remember seeing Alex Miller discuss the namespace naming decisions of spec/spec.alpha/alpha2 online, with maybe some regret over that decision? I believe this was on reddit. It was in part of a larger discussion about how to structure your namespaces to avoid breakage. Anyone happen to have a link to this thread or remember any search terms to help find it that might be useful?
I'm not sure we have "regret", although maybe in hindsight with better prediction of timelines we would have made other decisions
I think we've decided that have foo.alpha foo.bar.alpha foo.baz.alpha is pretty annoying b/c you have 3 alpha.clj
in tools.deps, we took a second stab at this with foo.alpha, foo.alpha.bar, foo.alpha.baz
in spec 2, we're taking yet a 3rd stab at it with basically alpha.foo, alpha.foo.bar, alpha.foo.baz
so alpha in the segment preceding the root (really clojure.alpha.spec in that case, so there's a prefix)
Gotcha, that's pretty much exactly what I wanted to re-read, thanks! Just figuring out my namespaces and remembered that convo might have been useful to go over. Sorry for making you repeat it 🙂
I’ve been using
experimental in my projects like
helix.experimental.foo and like it a lot
when something gets promoted from experimental to “production” it’s usually just removing the prefix for consumers