Is the predictable response time
shortcoming simply due to GC or sth else?
not just gc, but the degree to which nearly everything you do in clojure uses gc
but yes, gc
Thanks! I've long wondered if that can be addressed somehow without boiling the oceans.
Perhaps if one didn't use clojure.core, and similarly refrained from using most libs out there, one could get a Java-with-clojure-syntax?
e.g. (refer-clojure :only [])
and for every function you intend to pull/reimplement, review carefully if suits the perf budget
it's hard, because the core design features that make clojure (and most lisps) so elegant tend to increase gc pressure
there was an old lisp, which attempted to offer lispy syntax / macros without the overhead of gc, I had some fun playing with it for a while but in the end it was just writing c with a weird syntax... let me see if I can recall the name
there are old things like https://www.cs.utexas.edu/users/hunt/research/hash-cons/hash-cons-papers/BakerLinearLisp.pdf which attempt to basically bake in reference counting
it was lush "lisp user shell" http://lush.sourceforge.net/
back in the day I saw some discussion of "cons free code" for tight loops in common lisp - writing cons free (or really "new" free) in clojure would be an interesting exercise
but you have kind of a stack, gc'ed languages aren't known for predictable response times -> the jvm is not known for predictable response times -> clojure is not known for predictable response times
G1 has made things a lot better on the jvm (and for clojure too)
and to some(small) degree I think C has started to grapple with predictable response times
that's true, and it also reminds me of another source of unpredictability - many algorithms that the jvm optimize amortized time, which trades occasional larger pauses (eg. reallocating a buffer) for throughput
and sometimes the pause length is a bigger problem than the lower throughput was
(many c / c++ libs do a lot of those same average case / worst case tradeoffs, but not as aggressively as the jvm that I know of)
because while gc is part of it, it is really sort of the tower of abstractions you build on, each layer tends to amplify sources of unpredictability, and C and modern hardware are not as close as they once were
there was a talk at a conj a while back "clojure: programming with hand tools", which I very much enjoyed which kind of focused on the idea of building things out of simple stuff. but I remember after the talk someone(maybe aphyr?) tweeted something like(I really don't recall the exact words) "if these guys think the jvm is simple I got news for you"
there are some cases where you might use Clojure to generate the code in a different language that needs some of those above :) (certainly I've seen people do that)
Slowly approaching the point in learning Clojure where, in the words of David Bowie "You know you know you know you know"
Extremely off-topic but I'm in the market for a new mouse, any recommendations? I've been struggling a bit with online reviews: they seem to be skewed in favor of gamers (good for them, I guess!). Here are my requirements: β’ reliable and comfortable/ergonomic β’ gaming or not, I don't care β’ average size or bigger (I can't stand the small ones) β’ weight is not an issue (within reason) β’ I'm mostly a palm gripper with some fingertip grip thrown in (rarely) but I can adjust if need be β’ either right-hand or ambidextrous is fine β’ <60β¬ (but I can go beyond that for exceptional cases) β’ easy to clean edit: Not a Mac user! (I need Linux compatibility)
If a trackball is an option at all, consider a LARGE one; Iβve used these for seemingly decades, including at work (Microsoft and later Bloomberg LP) where I had to get βpermissionβ, and absolutely love them: https://store.kensington.com/products/kensington-expert-trackball-mouse-k64325?variant=31422431002673&gclid=Cj0KCQiAvP6ABhCjARIsAH37rbRV3v2CASuh98iXUwihUKr_ZaVuOob2F_zhyJD9DjkrD4_PFaJHhQsaAvPGEALw_wcB
I think I had one of those! It was really nice.
I've been using a "MX Anywhere 2S" for quite a while. I love it so much, I have several, so I don't have to go hunting for one when on the move...
https://www.apple.com/shop/product/MJ2R2LL/A/magic-trackpad-2-silver may be even bigger off-topic )
I used to use this for many years (now just use the macbook trackpad after they made it bigger, it works well enough for me) https://www.amazon.com/Razer-DeathAdder-Gaming-Mouse-Programmable/dp/B082G5SPR5/ref=sr_1_1?dchild=1&keywords=Deathadder&qid=1611832522&s=electronics&sr=1-1
(no gaming, just used it for work)
I use the Apple mouse. Works for me. I want one which I can use with both hands, not a specific left or right handed one, but if it would be asymmetrical I would have to get a left handed
Apple mouse
Thank you all! @delaguardo @borkdude Ah I'm not a Mac user, sorry, I should have led with that... Are your recommendations compatible with other OSes? Linux in particular. @raspasov I've heard that Razer has reliability issues so I'm a bit skeptical π
Yes, they are compatible
I'd suggest a trackball, mx ergo in particular
works fine on linux
I'm an Arch user, the MX Anywhere 2S works great. Also works great with my mac mini m1.
Also check out the MX Master by logitech. Built like a brick and very comfortable.
Itβs a little harder on linux, but I love the extra buttons on the mouse and bind them to window management. Like maximise / minimise / move to next desktop. I use BetterTouchTool on Mac, but a little more manual on linux
anyone has a Clojurian friend at Puppetlabs? I have a question related to their offering (not job related)
I've mapped some of the buttons on my MX using SteerMouse on my mac. That works well too π On Linux I use xbindkeys to remap buttons π
@delaguardo, I have a magic mouse right now. Between magic mouse and your magic trackpad, I'm not sure to see which one better suit in which situation?
This is personal but magic mouse was not design for my palm) too sharp edges. Also I'm using track pad in combination with hhkb keyboard and I can put track pad right in front of me not on the left side
I can back Logitech MX Master mice. I have MX Master 3 and itβs an absolute joy to use after having used the Magic Mouse for 5+ years. I wonβt go back
Been using a Logitech MX Ergo Plus for the past year-ish. Itβs been my favorite mouse to date, one note is that it is a trackball so not ideal for gaming.
I don't game at all, and use a more traditional trackball (top mounted ball) between the sides of a split keyboard. this lets me use the track ball with either hand, and means I never have to switch between mouse grip and keyboard - every mouse movement is a simple swipe. very similar to using a track pad actually.
Linux user here. Recently got a Logitech M-U0007 corded mouse. Cheap, works perfectly. Nice resolution sensor and smooth mouse wheel, eliminated all my jittering problems from my 2004 Dell mouse:laughing: Worked 100% out of the box, even the 2 specialty side buttons (browser back/forward). Right hand grip, sized for average adult hand.
Iβm personally not a fan of the Apple magic mouse, I found myself making too many accidental clicks and swipes and gestures. I switched to a Logitech MX Master and find it suits me much better.
MX Master and MX Revolution for many years. I would totally recommend them.
I used https://www.amazon.com/Anker-Wireless-Vertical-Ergonomic-Optical/dp/B00BIFNTMC for years. Pros: very cheap, vertical grip is easier on my wrist RSI, bluetooth USB dongle never unpairs, a few extra buttons that you can map to different functions if you use bettertouchtool or usb overdrive or w/e. Currently Iβm just using the built-in trackpad on my mac laptop with an exernal keyboard attached, and Iβve found that the additional friction to use the mouse helps me rely on the keyboard more, which ends up being even better for my RSI.
@pavlos My daily driver is the Microsoft Sculpt mouse. It was bundled with my Sculpt keyboard and sounds like it may tick a lot of your requirements.
i did meet a couple cool cats from puppet at a clojure conj...