HN user

tomku

2,080 karma
Posts0
Comments405
View on HN
No posts found.

Calling something "vibe-coded" nowadays is a permission slip to unload on it with hyperbole and insults because you can presume there's no human in the line of fire. I really don't think the people engaging in that kind of rhetoric understand how corrosive it is to the humans who do get caught in the crossfire sometimes, and to themselves for normalizing that kind of behavior.

No, it's part of the Machine. Direct quote from the Steam Machine page:

"Steam Controller's wireless adapter is built right into Steam Machine for direct pairing. "

It has dedicated hardware for pairing with Steam Controllers without needing a puck adapter plugged into a USB port.

There's a section of his pay package that says:

  The Performance Hurdles will be adjusted by the Committee equitably and proportionately as determined by the Committee in a manner designed to preserve the economic opportunity provided under the Award, (a) higher to account for acquisition activity for which stock is provided as consideration; and (b) lower to account for a split-up, spin-off, dividend or other distribution (whether in the form of cash, shares, other securities, or other property) or divestiture activity, in each case, that could be considered material to the achievement of the Performance Hurdles, as applicable.
Matt Levine's recent opinion piece for Bloomberg ("GameStop Doesn’t Have Enough Stock", https://archive.ph/3h8wf) goes into a bit more detail about it, including why such an acquisition might still help him get there even if it doesn't instantly get him halfway.
F-35 Got Hit 4 months ago

Click on the home page and look at their other headlines, read the "About" description. It's just an endless stream of clickbait AI slop. Their "archive" goes back two weeks and has over a hundred articles with the same stilted "Reasonable statement. Controversial twist." headline format. Please stop falling for this trash.

I went down a bit of a rabbit-hole trying to figure out exactly who Matt Shumer is and why anyone should care what he thinks. The best information I found came from this article, which was from before he pivoted to being an AI startup bro:

https://www.newsweek.com/i-couldnt-play-rules-so-i-became-en...

It's kind of a sad read. He would benefit a lot from getting outside the startup bubble and talking to some people who do useful work for a living instead of riding internet fads and growthmaxxing via viral social media posts.

Thought this name sounded familiar... Matt Shumer was one of the people responsible for the "Reflection 70b" hoax a few years ago. There is no reason to take anything he writes seriously, he has a history of flat-out lying to go viral.

Edit: Summary for anyone who didn't follow this saga at the time: https://www.ignorance.ai/p/the-fable-of-reflection-70b

Shumer is at best a fool and at worst a con artist.

https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/

Note that nothing about that depends on it being a local or remote model, it was just less of a concern for local models in the past because most of them did not have tool calling. OpenClaw, for all the cool and flashy uses, is also basically an infinite generator for lethal trifecta problems because its whole pitch is combining your data with tools that can both read and write from the public internet.

It's using "Fortnite" as a synecdoche for Epic Games, because "I have to give an age verification company owned by Epic Games my passport to use Bluesky" isn't quite as effective at revving the outrage engines, even if it has the benefit of being true. Personally, I don't think people who are willing to do that are showing themselves to be trustworthy but you might feel differently.

Two years ago there were also hundreds of people constantly panic-posting here about how our jobs would be gone in a month, that learning anything about programming was now a waste of time and the entire profession was already dead, with all other knowledge work guaranteed to follow. People were posting about how they were considering giving up on CS degrees because AI would make them pointless. The people who used language like "stochastic parrots" were regularly mocked by AI enthusiasts, and the AI enthusiasts were then mocked in return for their absurd claims about fast take-off and imminent AGI. It was a cesspool of bad takes coming from basically every angle, strengthening in certainty as they bounced off each other's idiocy.

Your memory of the discourse of that era has apparently been filtered by your brain in order to support the point you want to make. Nobody who thoughtlessly adopted an extreme position at a hinge point where the future was genuinely uncertain came out of that looking particularly good.

Believe Andrew Ng's new course is all Python now, yeah. Amusingly enough another class that I took (Linear Algebra: Foundations to Frontiers) kinda did the opposite move - when I took it, it was all Python, but shortly after they transitioned to full-powered MATLAB with limited student licenses. Guess it makes sense given that LAFF was primarily about the math.

I was in one of those early cohorts that used Octave, one of the things the course had to deal with was that at the time (I don't know about now) Octave did not ship with an optimization function suitable for the coursework so we ended up using an implementation of `fmincg` provided along with the homework by the course staff. If you're following along with the lectures, you might need to track down that file, it's probably available somewhere.

Using Octave for a beginning ML class felt like the worst of both worlds - you got the awkward, ugly language of MATLAB without any of the upsides of MATLAB-the-product because it didn't have the GUI environment or the huge pile of toolbox functions. None of that is meant as criticism at Octave as a project, it's fine for what it is, it just ended up being more of a stumbling block for beginners than a booster in that specific context.

Top-level players regularly are in the 90-95% range aggregated over many games, with spikes up to 98-99%. If you have 98 or 99% accuracy over the course of an entire game (which happens sometimes!), it's either very short or you had significant sequences where you were 100% accurate. If that happened in one of my games it'd be clear evidence I was cheating, if it happens in a Magnus game it's him correctly calculating a complex line and executing it, which he does pretty often.

Edit: Even lower-level cheated games are rarely 100% accurate for the whole game, cheaters usually mix in some bad or natural moves knowing that the engine will let them win anyways. That's why analysis is usually on critical sections, if someone normally plays with a 900 rating but spikes to 100% accuracy every time there's a critical move where other options lose, that's a strong suggestion they're cheating. One of the skills of a strong GM is sniffing out situations like that and being able to calculate a line of 'only moves' under pressure, so it's not nearly as surprising when they pull it off.

The vast, overwhelming majority of chess games are not played in front of cameras or even in-person. The accusation in the article was about online play, and specifically blitz which is played online even more commonly than slower formats of chess because moving quickly is easier for many people with a mouse than a physical board.

The way people cheat online is by running a chess engine that analyzes the state of the board in their web browser/app and suggests moves and/or gives a +/- rating reflecting the balance of the game. Sometimes people run it on another device like their phone to evade detection, but the low-effort ways are a browser extension or background app that monitors the screen. The major online chess platforms are constantly/daily banning significant amounts of people trying to cheat in this way.

Chess.com and Lichess catch these cheaters using a variety of methods, some of which are kept secret to make it harder for cheaters to circumvent them. One obvious way is to automatically compare people's moves to the top few engine moves and look for correlations, which is quite effective for, say, catching people who are low-rated but pull out the engine to help them win games occasionally. It's not that good for top-level chess because a Magnus or Hikaru or basically anyone in the top few hundred players can bang out a series of extremely accurate moves in a critical spot - that's why they're top chess players, they're extremely good. Engine analysis can still catch high-level cheaters, but it often takes manual effort to isolate moves that even a world-champion-class human would not have come up with, and offers grounds for suspicion and further investigation rather than certainty.

For titled events and tournaments, Chess.com has what's effectively a custom browser (Proctor) that surveils players during their games, capturing their screen and recording the mics and cameras that Chess.com requires high-level players to make available to show their environment while they play. This is obviously extremely onerous for players, but there's often money on the line and players do not want to play against cheaters either so they largely put up with the inconvenience and privacy loss.

Despite all of the above, high-level online cheating still happens and some of it is likely not caught.

Edit: More information on Proctor here: https://www.chess.com/proctor

Neovim Pack 11 months ago

I actually like Helix a lot too, but it is different than (neo)vim in a lot of significant ways. It feels like alternate-universe vim more than just better defaults. It also doesn't just not require scripting, it doesn't support scripting (yet). Very interesting in its own right but it might not be what you want if you're familiar with (neo)vim already.

Lists like these are almost always more accurately titled "How I wish I'd been taught X" and are aimed squarely at a student who has never really existed, one who simply learns whatever is put in front of them and can therefore be steered by a heavy stack of "the best" books away from all the mistakes and dead ends and frustrations that real students face. Real pedagogy's tougher than that!

It has never been anywhere close to certain, we just had 20 years of wild, unsustainable growth that encouraged people to cover their eyes and pretend the ride would go on forever. 20 years of telling everyone under the age of 30 that of course they should learn to code and that CS was the new medical or legal degree. 20 years of smugly acting like we are the inevitable future when we are, in fact, subject to the same ups and downs as every other career.

Why is D3 so Verbose? 11 months ago

The feature the person you're replying to is talking about is not arrow functions (`=>`), but what are called "threading macros" in other languages. In Clojure[1], the main one is named `->` and used as a way to thread a value through a series of functions that take it as a first argument, using the return value from the first function as the first argument to the second, and so on. It allows you to compose a series of plain functions to transform a value instead of (stateful) method chaining or nesting functions.

JS does not have a straightforward equivalent. The old and deprecated `with` keyword might seem similar but it's only a surface resemblance as it does not perform the return-value threading that makes the above pattern useful, it was meant for methods that mutate object state. There's a TC39 proposal[2] to add a pipe operator that would accomplish a similar thing to threading macros via an infix operator but it's still a draft.

[1] https://clojure.org/guides/threading_macros

[2] https://github.com/tc39/proposal-pipeline-operator

The same trend is noticeable here on HN. Many threads are full of top-level posts that are just someone pattern-matching on a word they don't like in the headline and using it as an excuse to vent about whatever their pet issue is. Usually posts like that are magnets for zero-effort "me too"s and similar. Sometimes interesting discussions happen deeper in the threads, but it's disappointingly rare. It's really sad watching the entire internet turn into this, and I can't help but feel like places like Twitter/X and Bluesky are the source.

"AI slop" is following the same path as "Dunning-Kruger effect," "enshittification," and so many other terms. Someone introduces a term that's useful to describe an actual phenomenon, it rapidly spreads to dominate the discourse because it's topical and punchy, and pretty soon using it is such a strong signal of being one of the "cool people who hates all the correct bad stuff" that people use it to describe stuff they merely don't like or disagree with. Once everyone's using it, it becomes useless for both its original descriptive purpose and as a social signal, so all the trendy discourse addicts move onto the next linguistic innovation and you only see random people on Facebook or Reddit who are behind the times using it, usually inaccurately as they're just following the misuse they learned it from.

It's particularly scary watching "AI slop" follow that path because of the extreme moral polarization associated with using LLMs or generative art. There's people who will see some casual mention of a game or film or app or something "using AI" on social media without evidence and immediately blast off into a witch hunt to make sure the whole world knows that whoever involved with that thing are Bad People who need to be shunned and punished. It has almost immediately become the go-to way to slam someone online because it carries such strong implications, requires little/no evidence, and is almost impossible to fully refute. Think there's a lot to learn from observing this, and it does not bode well for the next few years of discourse.

If you use Make as a task runner like in the article, please make sure that you're also declaring your tasks as .PHONY targets: https://www.gnu.org/software/make/manual/html_node/Phony-Tar...

Otherwise, the existence of a file or folder with the same name as your task ("test", for example) will stop that task from being run, which might be very annoying if you're using the Makefile as part of a script or CI or something where you won't notice the "Nothing to be done for..." message.

It's not quite a subset of Chess960 positions, because Chess324 allows different piece layouts between white and black and Chess960 does not.

Edit: A comment further down points out that only 18 of the 324 positions are symmetrical, so the vast majority of Chess324 positions could not happen in 960.

I don't think it's even source-available? The repo has docs, a bunch of Lua scripts (for what software?), a small PHP module and a compiled "geo-ip firewall" binary. Most of the features mentioned on the Github page appear to only be in the paid version of the software, and this limited "free" version is delivered as a mystery-meat Docker image pulled from Huawei Cloud.

At best this is an advertisement that lies about being open source.

That thread also has the benefit of using the original source article from Kaspersky, which is worth a read. This blog post notably disagrees with Kaspersky's own conclusions about whether it's an intentional backdoor, instead citing Steve Gibson, who has clearly learned nothing from his previous "WMF backdoor" debacle.

What about K? 1 year ago

There's several ways to look at the differences.

The one that will jump out at most programmers who are familiar with mainstream languages is that J, k, q and Nial use ASCII characters while APL, BQN and Uiua prefer glyphs. q and Nial additionally favor words rather than shortened abbreviations, and Uiua has plain words that auto-format to its glyphs to aid in typing. The other glyph-based languages rely on custom (software) keyboard layouts or input methods to let you type the symbols they need. You do not need a special keyboard to program in any of these languages. ASCII-or-not is not a decision that any of the array languages have made lightly or for purely aesthetic reasons, it has deep consequences for how the languages feel that won't really make sense until you get some hands-on experience. As a beginner you'll probably gravitate towards one of the sides without understanding those deeper implications, and that's totally okay, but please keep an open mind.

If access to a high-quality open-source implementation is important for you, your options narrow a bit. J, BQN, Uiua and Nial all have a primary implementation that's open source. k has implementations that are open-source but the official versions of k that most people use "in anger" are commercial products with a limited free trial, and afaik there's no mature open-source versions of kdb+/q, which are kind of k's killer app. There are many implementations of APL but Dyalog is the clear leader and it's a closed-source commercial product with a personal/non-commercial free version. I wish this was less of a factor because it's so hard to get people interested in languages when the best versions aren't available to them, but it has gotten better in recent years.

Regarding tooling, you should go in with minimal expectations. Some of the tooling is quite good (particularly J and Dyalog APL, in my opinion) but it's heavily biased towards the specific type of iterative, interactive development that nearly all array programmers favor. Debuggers are sometimes present but usually not a primary tool. None of the major array languages have static typing. There are some array-adjacent languages like Futhark and Dex that do, but they're very different than the "Iversonian" array languages you asked about, and are also active research projects.

(Edit: Also worth mentioning that package managers and build systems are not common in the array world.)

There are many other differences that matter immensely to the array community but you won't have context for as a beginner, so I'm not going to go too deep into them, but if you're curious, https://github.com/codereport/array-language-comparisons has some comparison tables and example code written in a variety of languages. code_report/Conor's Youtube channel at https://www.youtube.com/@code_report/ is also an excellent place to get exposure to various array languages and concepts.

All that said, in my opinion the easiest languages to recommend to get started are BQN and J, depending on whether you want glyphs or not. If you're comfortable using a closed-source tool with restrictive licensing, Dyalog APL is also an excellent choice. Any of the three will show you both the joys and pains of array programming if you put time into learning it, and give you enough context to make an informed decision about going deeper or finding another array language more to your taste.