I seriously doubt this appeals to the modern Hacker News crowd, but it might appeal to a couple of you:
Published in October 2022, The Art of Computer Programming: Volume 4B is dazzling. It's like a guide to expressing (in non-obvious ways) all kinds of problems as some variation on Exact Cover (or Boolean Satisfiability) and using wicked tight little general-purpose backtracking solvers to solve them.
If you want a peek, watch Knuth's 2018 lecture on Dancing Links Exact Cover:
It was trained on numerous Leetcode solutions (question/answer), which you can find on GitHub. People are proud of their Leetcode efforts: they post their solutions, as if it is an achievement.
Now tell me, how many of the BUGFIX-66 problems can it solve?
Copilot can solve a few of the simple ones at the beginning (simple matrix multiplication, simple radix sort, etc., that appear often in the training data, and some of the harder ones whose solution appears on GitHub, e.g., the uncorrected prediction/correction compressor/decompressor whose solutions were front-page on Hacker News).
But as you go down the list, into material outside the training set, the language model won't be able to solve it.
Try it. Paste the tile, the introductory text, and the unfixed code, and see whether the omnipotent AI can solve these (quite straightforward) problems. For how many does it need the hint?
How is ChatGPT's answer wrong? The regex is matching square brackets instead of the correct OPTIONAL curly braces. Unseparated arguments aren't handled. The regex for the id is also wrong. The leading slash is correct, but other than that, the whole fucking thing is wrong!
And of course it can't handle macro calls within the macro arguments (nesting).
It's just an absolute clusterfuck, from top to bottom. The chatbot gave its user a useless piece of garbage, and Hacker News doesn't know enough to throw it away. Instead, we parade it around like some great success!
The idea is that you read and understand a small piece of code (full of useful techniques) and make a small change to demonstrate understanding.
Games that require you to write the code are limited to rehashing the same old tired algorithms... reverse a string and other sequence techniques, edit distance and dp variants, optimization by binary search and evaluation, etc., the standard leetcode stuff. Basically, useless wankery you will never use. The competitive programming standards.
If you don't have to write it, just understand it, the game can cover some very interesting new algorithmic terrain. It becomes part book, part game. Like Hacker's Delight: The Game.
This question got voted down everywhere I discussed it on Hacker News, but somehow the submission itself got 11 points. Apparently, it is an offensive question to some silent, pro-censorship part of the population here. Today I'll ask it again, and I hope somebody will respond in a useful way:
QUESTION:
I write software for parallel processors at a hardware/software company you've heard of. I am located in California but many of my coworkers are located in China (roughly half the team).
We are directly affected by the American government's severe new CPU/GPU export restrictions.
It seems to me that America is preparing for a period of cold war, or worse.
It's time to start thinking about contributing to the American war effort by writing high-performance military computing systems.
For example, SIMD particle filters for hypersonic weapons, or low-latency convolutional neural networks for battlefield devices.
So, Hacker News: What company is the best place to do this work? What team?
Hilariously, the system has no logical OR, only AND and XOR and NOT, because "Inclusive-or is rarely needed."
This system was designed by Chuck Moore, father of Forth. Here is an entertaining video of him explaining the F18A stack machine and programming system:
This is such a simple machine. I am planning to make a tiny emulator for my site. One could probably write an emulator in 80 lines of Go (one goroutine for each of the 144 cores).
The code in Russ Cox's article does not race with the modern Go compiler.
But it's simple to fix that. Given arbitrary memory access within a Go process under Linux, can you see how to terminate the process and return 0 to the system?
Like calling os.Exit(0) when package os is unavailable.