This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # announcements (16)
- # asami (4)
- # babashka (49)
- # beginners (70)
- # calva (25)
- # clojars (3)
- # clojure (40)
- # clojure-europe (82)
- # clojure-france (15)
- # clojure-gamedev (16)
- # clojure-nl (2)
- # clojured (7)
- # clojurescript (13)
- # conjure (11)
- # cursive (4)
- # data-science (12)
- # datalevin (2)
- # figwheel-main (5)
- # gratitude (5)
- # honeysql (5)
- # hyperfiddle (4)
- # jobs (4)
- # joyride (3)
- # lsp (10)
- # malli (2)
- # missionary (14)
- # nbb (2)
- # off-topic (3)
- # pathom (16)
- # rdf (5)
- # releases (4)
- # sci (35)
- # shadow-cljs (16)
- # tools-deps (22)
- # xtdb (7)
A bit proud this morning. Did my first (metric) century on my bike yesterday
nice! 1,000m is a good amount of vertical too i went for a run in the same area last year, while visiting my son: https://www.strava.com/activities/5974278983 ... great to have that on your doorstep
We’ve had lots of issues with our IKEA stuff (and we still are; both of the chairs we recently ordered are faulty), but overall, I’m pretty happy that it exists! Most of our furniture is IKEA.
Good morning! I tried Github Copilot for the first time today. I didn't expect it to work with ClojureScript, but it does!
@U0ETXRFEW did you use it by writing comments describing what you wanted it to generate ?
Doesn’t it result in providing more burden than relief? Besides thinking about your code, now you have to inspect suggestions.
yeah definitely, not worth it, maybe you're tired one day and you miss something insidious (and you didn't cover all cases in your tests) it also kind of takes over the classic autocomplete (maybe I misconfigured it, oh it was also kind of shitty to configure it ended up configuring the other thing it was conflicting with calva format on tab hehe)
i can't imagine how such a tool is compatible with conscious, deliberate, intentional coding, where you are talking to the computer about the system you'll both be a part of. it's akin to having a clown with a box of random noise making and distracting things sit in on your therapy session. 🤡
Hehe it can inspire interesting conversation ( or code) it's always a struggle to figure out what to talk about with a therapist
Clojure is pretty succinct already. I expect that “code completion” is great for languages that inherently have a lot of boilerplate? (Haven’t used Copilot, so this is not a dig)
Yeah for sure, in Clojure i manly use it to save on a few keystrokes and sometimes to choose which function i want to use
@U9W44J4RW I haven't tried with the comments yet, but that looks very interesting to me, since I often find myself banging out code before I have formed any clear idea about what the code should do. Maybe telling copilot about my intentions could help me articulate my ideas better, and just use the suggestions to validate. Well, I don't know, tbh, I was just surprised to find it suggesting anything at all for ClojureScript.
Doesn't cost me any money either, so that is not part of my trade-offs should I seriously start to consider using this thing. (Which I am not considering currently.)
Of course I also ran into the keybinding problem, @U9W44J4RW. I'll make Calva aware of these suggestions so the conflict should be history very soon.
That would be great @U0ETXRFEW, although I'm not sure the adoption rate for copilot in the Clojure community will be that high
There is also the auto closing of parens/brackets that messes up the sexprs because copilot don't care and it just closes em for you
Basically if you accept a copilot suggestion while writing code deep in a sexpr (your closing stuff is already in the file) copilot still adds them, as if it's not aware of the text coming after where your cursor is, which wouldn't be very suprising imo
Having had this thing enabled a while, it is sure very like that clown that @U0509NKGK mentions. Or maybe like having Dilbert's pointy haired boss as your pair programming partner.
I was sometimes impressed by the quality of the suggestions on js code, but only on trivial things on the caliber of a fizz buzz
(I know js has many issues in general, and I’ve been wondering why you need
ah. There’s a (sensible) difference between e.g.
In this case you mostly want to know if there is fractional part after applying sqrt
We agreed today that Copilot is banned at our company. There are multiple examples of it spitting out 1:1 snippets from the training set which were not under a permissive license, and we cannot risk that…
… did people just start voting on the best fruit/berry snack or what? 😂
Strawberry season is over for weeks here :) now we're onto peaches and apricots. Soon proper melons and watermelons, and grapes after that!
anyone had any bad experiences embedding an nrepl in prod processes ? ( iirc y'all do this don't you @seancorfield ? )
we do this, but as it only listens on localhost, the only way to use it is via SSH tunnel. for our prod servers, we have a 'two person switch' where you can only connect ssh once approved by another tech person in a specific private slack channel, and it's for a predefined, fixed amount of time.
I've been doing this in all major production systems I worked on and has saved the say a couple of times
being able to hot patch servers directly with critical every-minute-matters bugfixes, and being able to alter or query the db in ways not built into the app, and also being able to debug production issues directly
in our staging env, i use the remote repl to do lots of categories of dev work. git + build is the 'save my game at the end' step, rather than the way in which i get code into the env
Local NREPL + SSH is the magical formula indeed, then you mostly offload security concerns to SSH. You shouldn't expect to connect often but when you'll need to, it will be invaluable.
For the record I've been working on TLS support for nREPL on (and mostly off) for a while. It's pretty much finished, but I would like to make some final touches + documentation. https://github.com/nrepl/nrepl/issues/266 We don't have SSH running locally on our containers. They do run inside a virtual network though, only accessible with 2FA over sshuttle over websocket.
thanks everyone - got it all running smoothly like @UGJE0MM0W i've ended up binding nrepl to the container IP rather than localhost for now ('cos i'll need to add an ssh server to our k8s container base image to ssh directly into the container) ... will fix that later
Sean C doesn't run nrepl. It's a https://clojure.org/reference/repl_and_main#_launching_a_socket_server iirc? My own pedantic recipe would be to run $repl (nrepl, srepl, prepl, w/e) in a separate process within the same machine, that should be spawnable on-demand. And try to treat it as read-only i.e. don't perform any writes or side-effects That's certainly not omni-capable but I wouldn't like to mess with in-flight requests. There's always https://www.programmingtalks.org/talk/debugging-with-the-scientific-method-stuart-halloway
gotta be in the same process in this instance @U45T93RA6 - i don't want to change anything, but i'm testing hypotheses about a memory leak which has proven quite resistant to duplication outside of production
I'll add another voice in favor of running at least a Socket REPL in production, since it's just a matter of a JVM option at startup, listening on localhost, with a VPN and SSH tunnel needed to access it. We have all our code AOT compiled with direct linking so not much opportunity for changing code via the repl but it's great for debugging stuff, especially for database-related stuff in the context of the app.