HN user

Fellshard

2,291 karma

Software Consultant, aspiring Clojurian

Posts7
Comments722
View on HN

I can speak anecdotally, at least.

My shoulders are pretty wide for my frame. When using most laptop keyboards and many standard keyboards, I have to tuck my shoulders in and twist my wrists. This was causing some serious pain and tension in my neck, shoulders, and wrists, likely leading toward carpal tunnel.

I made two different changes in succession that helped greatly (and I don't remember the order now):

1. With a split keyboard, the halves could be placed so my wrists are straight and my arms hold at shoulder-width, and this rapidly reduced the amount of tension I was experiencing and gradually eased my wrist issues. Tenting the keyboard and getting a vertical mouse helped as well, but I'd rate those as minor improvements, especially since I aim not to drive with the mouse as much.

2. With Colemak layout, I was able to gradually transition from QWERTY (there's a series of AHK scripts I found at the time that basically rotated triples of keys). This helped reduce wrist strain at the hand level.

Let's put it this way: the human author is capable of doing so. The LLM is not. You can cultivate the human to learn to think in this way. You can for a brief period coerce an LLM to do so.

This seems to me patently absurd, because LLMs are not part of the probabilistic environment of the domain you're engineering; rather, you're injecting new probabilistic inputs into your system. That seems to me to be a wholly different category, and wildly misrepresents how an engineer is supposed to operate and think.

The universe may work this way, but we're not God, and modes of computation that work like this still inevitably be impossible for us to predict or comprehend. This may be interesting if you're trying to run simulations (remember the point about SIMULA?) but it's not something you could use to accomplish specific ends, I expect.

For that, I would look at early calculus/pre-calc, I think, examining infinite series and their properties and equivalencies.

There's certain forms like that that have well known values that they converge to as you continue adding terms into infinity. Sometimes that convergence is only possible if your domain is limited, eg. [0,1].

That is a misreading of the article. It's more about discovery through quick, iterative prototyping, which can include rapid discovery of fatal flaws early.

As has been noted in other threads, for a low enough definition of reason, yes, certainly. But even an amoeba appears to reason better than an LLM, which only regurgitates by nature. There is no independent cognition whatsoever, no logical constructs and decisions, no abstractions.

Reducing reasoning beings to the level of AI is an affront to—and demonstrates a genuine lack of understanding of—the nature of organisms and reason itself, and the nature of AI and its capabilites.

Distilling my thoughts on 'debiasing' here, and in a variety of other modern endeavors.

It is better to have representations of reality that you can then discuss and grapple with honestly, than to try to distort representations - such as AI - to make them fit some desired reality and then pressure others to conform their perception to your projected fantasy.

Representations don't create reality, and trying to use representations in that way only causes people to go literally insane, and to divide along lines of who accepts and who rejects your fantasy representation.

So, for example, if you try and remove any racial bias from AI, you are going to end up crushing the AI's ability to represent reality according to a variety of other real factors: income, judicial outcomes, health risks, etc. Your desired reality makes the actual tool worthless, except to confirm one group's own intended fantasy world as they envision it. The problem doesn't get dealt with, it just becomes impossible to think about or discuss.

So instead of dealing with real problems, you hope you can simply prevent people from thinking thoughts that cause those problems by wrapping them in a bubble that deflects those thoughts before they happen. This is magical, wizardry thinking: treating words as if they create reality, instead of merely describing it. And it will break, eventually, and in a very ugly way: people dividing along lines of their perception of reality, even more than they already do.

I always custom-select hunks of my current work to assemble into coherent commits, where possible. I find it really helps me to rearrange the work I've done in my head in such a way that if I needed to walk someone through it, I could do so by walking the commit line.

Reheated pure materialism. Not terribly interesting, and the only thing removing category distinctions here will do for you is give license to treat any organism however you wish - you have removed any semblance of moral consideration from the equation. And that, I think, few will accept: the experience each person has of living testifies against such a view. There is more to life, and to /our/ lives, than mere engineered material.

After all, what benefit is this article if it is simply one machine communicating to another?

But he does not see, or will not admit, that a return to ‘free’ competition means for the great mass of people a tyranny probably worse, because more irresponsible, than that of the State. The trouble with competitions is that somebody wins them.

This seems incomplete, using the wrong definition of 'competition' to try and make a clever point. Competition does not necessarily grant permanent 'winners' or 'losers', unless the 'game' is forcibly ended for good. Infinitely repeated games are very different in nature from singleton games, and the number and nature of the players involved are also not fixed.

Trust me, I looked up dozens of references. All would mysteriously halt after several files - known issues with how the Archiver library works, and none with any kind of fix, basically a data race within the library itself. Node's streams and promises are far too complex for far too little added benefit, and leads to broken concurrency in a multitude of libraries, and I'd had enough.

As for startup time - the latency isn't that important and would be an order of magnitude less than the ZIP construction, so the JVM warmup delay is actually just fine. The cost will be slightly higher, but it's not an operation I expect to run with high regularity - it's only on-demand for a reasonably small userbase.

As for complexity - which I am able to weigh due to the above constraints - Java's streams are not only simpler in design, but vastly more stable, and far more straightforward to glue together, and with highly stable implementations of ZIP stream wrappers and output-input pipes. A couple of additional stream wrappers for chunking into multipart upload segments and forwarding streams (introduced in JVM 9 when I'm on 8), and I was ready to go.

All that to say: don't create universal rules, though I agree that all of what you mention are good rules of thumb for certain. My given constraints work just fine with Java, here.

I just picked up Java (via Kotlin) for the first time in four years, during which I've been doing Rails dev. I needed an AWS Lambda for zipping files into and out of S3. I banged my head against broken/unsuitable Node packages for doing so before finally giving up, since it is the lingua franca of Lambda.

I was able to rewrite and deploy the function in Kotlin in two days' time. It was easy to set up and run, and worked literally first compile and run - a benefit of static types.

Now, would I recommend it to anyone who is unfamiliar with the JVM ecosystem? That's a harder sell. But the stability of the ecosystem and a modern set of saner tools and libraries have made it much better to work in; I'd even call it pleasant.

It's language straight from the Law, a mixture of phrases that emphasize the totality of the curse over all of life by reiterating it in a number of ways. See Deuteronomy 6 and 28 for examples of both the 'totality' language and the phrasing of curses.

When I used those libraries in .NET, they simply did not function, for unspecified reasons. I boiled it down to the smallest possible example, based on their docs, and data simply never made it through the flow at all. It was baffling to me, but not an uncommon experience with various components of the core of .NET (not to be confused with .NET Core).

UW CSE student from 2009-2012; there was an optional course that blazed through *NIX and shell fundamentals, and I credit it to kickstarting my ability to use the system well. Using GDB, valgrind and the like were part of a 300-level basic systems programming course.

Hmm, looking further. It seems the linguistic phenomenon of code-switching is one accurate name for this, but there's also a sociological phenomenon of code-switching that is related but very different - intentional shifting based on social context or group that you're addressing.

Elsewhere in this same thread, someone was assuming the sociological cause for Spanglish, instead of the more organic linguistic cause that happens anywhere you have two cultures and languages in close contact. I suspect this blurred definition makes talking about this more complicated now, since sociological code-switching has become part of America's racialized sociology discussion.

If I had my druthers I'd split those two very different phenomena into separate terms, because they don't even produce the same kinds of linguistic patterns.

(Thanks for asking me to justify, my assumption was quite wrong regarding the scope of the term.)

With customization through Oryx, I've been able to make Ergodox / Moonlander quite amenable to many games that use MKB, especially those that make use of number keys, such as MMOs, by overlaying 1-5+macro with various combinations of double taps, holds, and tap-holds to represent 1-0-= and C-_ variants. So while it takes some customization, you can make such keyboards quite tractable for single-handed modes for individual pieces of software or for general use, with practice.