oalae5niMiel7qu | 10 months ago | on: Discord's face scanning age checks 'start of a bigger shift'
oalae5niMiel7qu's comments
oalae5niMiel7qu | 1 year ago | on: The subtle art of designing physical controls for cars
oalae5niMiel7qu | 1 year ago | on: The subtle art of designing physical controls for cars
Oh, god. It just keeps getting worse. I don't want a fake knob that simulates a real one except it ignores me and decides the fan speed, blend door position, and probably the recirculation door on its own (allowing only a temporary override). I want a fan dial that is electrically connected to the fan, such that the position of the dial directly controls the voltage being sent into the fan motor, with no computer or robotics in between. In other words, a step switch. And I want a slider that is mechanically connected to the blend door for controlling temperature, again, with no computer or robotics in between. And the same for the recirculation door.
oalae5niMiel7qu | 1 year ago | on: Cognitive load is what matters
There's nothing about large, complex corporate projects that demands that languages impose arbitrary restrictions on code, except the fact that so many corporations insist on hiring incompetent fools as programmers, often to save money in the short run by expanding the potential labor pool. They call them "guardrails", but a better metaphor would be the playpen. If you hire only competent developers, then you don't need to put them in a playpen.
>And I would also add that if you search for "how do you do X in Y language", you'll probably find every combination of a lot of languages so I hardly think that is grounds to dismiss Clojure.
Well yeah, it's pretty much the norm in popular programming languages to make certain things impossible. And programming is driven by fads, so we're going to see more and more of this until it finally goes out of fashion one day and some other fad comes along.
oalae5niMiel7qu | 1 year ago | on: That's not an abstraction, that's a layer of indirection
Supporting the third device was handed off to a junior dev. I pointed him at my subclass and said to just do that, we'd figure out the mixing and matching later. But he looked at my subclass like it was written in Greek. He ended up writing his own class that re-imagined the functionality of the superclass and supported the new device (but not the old ones). Integrating this new class into the rest of the codebase would've been nigh impossible, since he also re-implemented some message-handling code, but with only a subset of the original functionality, and what was there was incorrect.
His work came back to me, and I refactored that entire section of the code, and this is when the generalization occurred: Instead of a superclass, I took the stuff that had to be inherited and made that its own thing, having the same interface as before. The device communication part would be modeled as drivers, with a few simple functions that would perform the essential functions of the devices, implemented once per device type. I kept the junior dev's communication code for the new device, but deleted his attempt to re-imagine that superclass. Doing it this way also made it easy to mix and match the devices.
oalae5niMiel7qu | 1 year ago | on: That's not an abstraction, that's a layer of indirection
Who are you people who never have to debug TCP problems? I've had to do it on multiple occasions.
oalae5niMiel7qu | 1 year ago | on: Cognitive load is what matters
oalae5niMiel7qu | 1 year ago | on: Cognitive load is what matters
oalae5niMiel7qu | 1 year ago | on: Cognitive load is what matters
They run into the problem that programming is inherently hard, and no amount of finagling with the language can change that, so you have to have someone on every team with actual talent. But the team can be made of mostly idiots, and some of them can be fired next year if LLMs keep improving.
If you use Lisp for everything, you can't just hire any idiot. You have to be selective, and that costs money. And you won't be able to fire them unless AGI is achieved.
oalae5niMiel7qu | 1 year ago | on: Cognitive load is what matters
oalae5niMiel7qu | 1 year ago | on: Cognitive load is what matters
oalae5niMiel7qu | 1 year ago | on: Cognitive load is what matters
This is not true, because an editor can add any on-screen hints that are needed to help a human understand the code. For example, in my editor, Python code gets vertical lines that indicate where the different indentation levels are, so I can easily see when two lines of code far apart on the screen are at the same indentation level, or how many indentation levels lower the next line is after a long, highly-indented block. Python could add an end-of-block marker like Ruby does to make things like this easier to see, or it could try to encode the vertical lines into the language somehow, but I'd derive no benefit because the editor already gives me the visual clues I need.
oalae5niMiel7qu | 1 year ago | on: Cognitive load is what matters
With AST macros, you don't change generated code, but instead provide pieces of code that get incorporated into the generated code in well-defined ways that allow the generated code to change in the future without scuttling your entire project.
>others to come along and easily read/modify something verbose without having to go context-switch or learn something.
They're probably not reading it, but assuming it's exactly the same code that appears in countless tutorials, other projects, and LLMs. If there's some subtle modification in there, it could escape notice, and probably will at some point. If there are extensive modifications, then people who rely on that code looking like the tutorials will be unable to comprehend it in any way.
oalae5niMiel7qu | 1 year ago | on: Did grave robbers plunder battlefields?
oalae5niMiel7qu | 1 year ago | on: When teaching computer architecture, why are universities using obscure CPUs?
oalae5niMiel7qu | 2 years ago | on: Orthodox Privilege (2020)
oalae5niMiel7qu | 2 years ago | on: Orthodox Privilege (2020)
oalae5niMiel7qu | 2 years ago | on: Orthodox Privilege (2020)
oalae5niMiel7qu | 2 years ago | on: Orthodox Privilege (2020)
oalae5niMiel7qu | 2 years ago | on: Orthodox Privilege (2020)