Like most things in music there's a real distinction between technical perfection (tuning is one, rhythm another) and music feeling alive. It's why perfectly quantized rhythms and music sound lifeless.
Our perception of these things (for most, not all) is incredibly fluid, much like our perception of time. Music that moves us tends to have the right "technical imperfections". Too much and it comes off as amateur, too little, and it comes off as sterile.
Even on a production-level, the right amount of harmonic distortion/non-linearity can be a huge benefit to how sounds are perceived. The amount of soft-saturation tooling in modern electronic/in-the-box music production is wild. Almost every modern plugin seems to include some kind of "warmth" control now.
Yet another example how perfect reproduction doesn't sound quite right.
I have very fond memories of my first dual-cpu Athlon machine.
It was the workstation on which I learned Logic Audio before, you know, Apple bought Emagic. I took that machine, running very low latency Reason to live gigs with my band.
Carting around a full-tower computer (not to mention the large CRT monitor we needed) next to a bunch of tube Fender & Ampeg amps was wild at the time. Finding a good drummer was hard; we turned that challenge into a lot of fun programming rhythm sections we could jam to, and control in real-time, live.
I think you've touched on it, but I'm going try to take it one step further into explicitness.
Just over a year ago I decided to switch to Neovim. The reason for switching was personal; I was struggling with what I'll call "clutter" in other tools and I wanted a tool that would reinforce, at least lightly, a mode of working that promoted focus on what I was working on, while making it easy to reference other files without loading up my editor with tabs and other visual clutter (buttons/menus) I don't care about most of the time.
I took the advice I seemed to bump into repeatedly: try out vim mode in my current editor before making the plunge.
I really struggled at first. It felt wildly foreign. All the shortcuts were nowhere near to the world I was familiar with.
As I was about to give up, I ran into some advice that was along the lines of "stop trying to memorize shortcuts and start thinking in terms of what you want to achieve" (words and motions in vim-speak).
Your example of [C]hange [I]nner is a great one; that one in particular was life changing. Sure there are some words and motions that do require memorization, but so many others just flow naturally. And once you start thinking in actions, it's easy to see how they can layer on top of each other in really elegant ways.
I'm not even here trying to tout vim-like editors, I'd wager there are many editors that have some semblance of this kind of interaction, but rather to reiterate there's a shift from a PoV of function vs. goal.
Again, I don't think this is "the right way" but rather one of many perspectives that works in context with the phenomenology of me.
That tracks for me; longtime claude, claude code pro subscriber (not all of it has been good - but that's neither here nor there).
Over the last few iterations of Sonnet and Opus, anthropic has definitely trained me to ask it to explain something "in detail" (or even "in great detail") when I want as much nuance as possible.
It used to be the inverse - way too much detail when I didn't want it.
Filming/video and lookups of people filtered through a corporate data mining operation without their consent should also be illegal. I'll take my chances, thank you.
I recently had to interact with an idiot wearing meta glasses. There should be a mandatory consent requirement AND an "on air" red led.
Do you mean in the courtroom or anywhere? Because filming and photographing people in public is legal everywhere in the U.S., and no consent is required.
> Do you mean in the courtroom or anywhere? Because filming and photographing people in public is legal everywhere in the U.S., and no consent is required.
First, note that "filming" in public is not necessarily legal in every state if you include recording audio of conversations you're not party to.
Second, the GP said should be illegal without consent, so clearly was talking about what's they consider right, not necessarily what is.
But most importantly, "filming and photographing people in public" is also obviously not what the GP was talking about. They said:
> Filming/video and lookups of people filtered through a corporate data mining operation without their consent should also be illegal.
And, actually, extracting biometrics from video of people and tracking them/data mining them without consent is in fact not legal in several states already, and potentially federal law, depending on what they do.
Irrespective of the tool itself, which feels like just another "some hidden prompt" tool (sorry author!), one of the things I can't stand about these tools (there was a recent movie recommendation one shared here with the same behaviour) is the almost cloyingly patronizing response noise:
- "Ah, great taste my friend."
- "Ah, great pick to start with."
- "Ah, a lovely choice..."
You're absolutely right! But I don't need you to tell me that. ;)
This looks like a really neat project/idea; seeing the road map is exciting too, nearly everything I'd want.
I don't love the brackets syntax, or the [op val1 val2] ([* x x]) style, but I appreciate the attempt at clarity and consistency and none of these things are dealbreakers.
I do wonder why they've leaned so hard into talking about the type system being out of sight. Again, not a dealbreaker, but I feel strongly that explicit typing has a place in codebases beyond "describe something because you have to".
Strongly typed languages strike me as providing detailed hints throughout the codebase about what "shape" I need my data in or what shape of data I'm dealing with (without needing to lean on an LSP). I find it makes things very readable, almost self-documenting when done right.
From their docs about their choices: "The reasoning is simple: types exist to help the compiler catch your mistakes. They do not exist to help you express intent, at least not primarily." This strikes me as unnecessarily pedantic; as someone reading more code than I write (even my own), seeing a type distinctly—particular as part of a function signature—helps me understand (or add strong context) to the original author's goal before I even get to reading the implementation.
I find this doubly so when working through monadic types where I may get a typed error, a value, and have it all wrapped in an async promise of some kind (or perhaps an effect or two).
By the same token many languages allow you to leave out type annotations where they may be simple or clearly implied (and/or inferred by the compiler), so again, I'm not understanding the PoV (or need) for these claims. Perhaps Loon simply does it better? Am I missing something? Can I write return types to stub functions?
From the above blog post: "That's how good type inference feels! You write code. The types are just there. Because the language can see where it's going." Again, it feels strongly geared towards a world where we value writing code over reading/maintaining/understanding code, but maybe that's just my own bias/limitations.
Yeah, the idea that types exist just to help the compiler catch your mistakes shows a depressingly superficial understanding of the benefits of static typing.
Types exist so that the compiler can reason about your code better - but not incidentally, they also help you reason about your code better!
To wit: even when working in dynamic languages, it's often considered a good practice to write down in docstrings the types of objects a function can operate on, even without static enforcement. Thinking about types is helpful for humans, too.
And it's not even just a thing to help you read code in the future - types help me write code, because as I sit down to write a function I know the possible values and states and capabilities of the object I'm working with. In the best of cases I can analytically handle all the possible cases of the object, almost automatically - the code flows out of the structure of the type.
Having inherited some large python code bases before type annotations were common made me never want to personally read through highly-typed inferenced code again.
It reminded me of a mathematician in my field who had rather brilliant ideas, but whose papers were largely unreadable due to idiosyncratic symbology and style. Fortunately in that case one can still leverage an information dense symbology that points to a well-specified formalism.
> Strongly typed languages strike me as providing detailed hints throughout the codebase about what "shape" I need my data in
I agree that seeing types is helpful, though typing them is also not necessary. Perhaps the solution is an IDE that shows you all the types inferred by the compiler or maybe a linter that adds comments with types on file save.
> I agree that seeing types is helpful, though typing them is also not necessary. Perhaps the solution is an IDE that shows you all the types inferred by the compiler
Thanks for sharing. One of the challenges (always has been probably) with our heavy "influencer" culture is we tend to gloss over that what works for me, might not work for you and vice versa.
I recently switched to a split columnar layout but not for solely for ergonomics sake - I do the same things as you but with my right hand handling b, g, t, and my left hand moving over to accommodate (with "incorrect" fingering for c, and variable fingering for the whole of the left side).
My choice to move to a split was primarily motivated by a need to reset my typing style and a hatred for where the escape key sits on a keyboard (not forgetting the waste of space that is the spacebar.)
It would be neat if someone would make a zmk / qmk keyboard with five thumb keys where the space bar is. Might be the sweet spot for most.
Our perception of these things (for most, not all) is incredibly fluid, much like our perception of time. Music that moves us tends to have the right "technical imperfections". Too much and it comes off as amateur, too little, and it comes off as sterile.
Even on a production-level, the right amount of harmonic distortion/non-linearity can be a huge benefit to how sounds are perceived. The amount of soft-saturation tooling in modern electronic/in-the-box music production is wild. Almost every modern plugin seems to include some kind of "warmth" control now.
Yet another example how perfect reproduction doesn't sound quite right.