Off-and-on trying out an account over at @tal@oleo.cafe due to scraping bots bogging down lemmy.today to the point of near-unusability.


!patientgamers@sh.itjust.works looked smug as hell. They’d been telling everyone for years.


Summary created by Smart Answers AI
chuckles


And why Bash and not another shell?
I chose it for my example because I happen to use it. You could use another shell, sure.
Should we consider “throwaway” anything that supports interactive mode of your daily driver you chose in your default terminal prompt?
Interactive mode is a good case for throwaway code, but one-off scripts would also work.


The point I’m making is that bash is optimized for quickly writing throwaway code. It doesn’t matter if the code written blows up in some case other than the one you’re using. You don’t need to handle edge cases that don’t apply to the one time that you will run the code. I write lots of bash code that doesn’t handle a bunch of edge cases, because for my one-off use, that edge case doesn’t arise. Similarly, if an LLMs is generating code that misses some edge case, if it’s a situation that will never arise, and that may not be a problem.
EDIT: I think maybe that you’re misunderstanding me as saying “all bash code is throwaway”, which isn’t true. I’m just using it as an example where throwaway code is a very common, substantial use case.


I don’t know: it’s not just the outputs posing a risk, but also the tools themselves
Yeah, that’s true. Poisoning the training corpus of models is at least a potential risk. There’s a whole field of AI security stuff out there now aimed at LLM security.
it shouldn’t require additional tools, checking for such common flaws.
Well, we are using them today for human programmers, so… :-)


No problem; I remember being delighted to learn that there was a name for the thing, years back.
Also, one other comment regarding the “change away from mechanical toggle”. If you got the machine pre-built, you may never have noticed this, but on ATX motherboards, there’s a set of pins which you fit the power and reset switch wires onto.

I mean, you can plug whatever you feel like onto those pins and stick your power and reset buttons wherever you feel like, if you don’t like the position of the existing case switch. It’s just a momentary switch. You can grab replacement ones that aren’t built into a case:
https://www.amazon.com/Warmstor-2-Pack-Computer-Supply-27-inch/dp/B074XDTVN1
Or even just get your own switches and connect the plug and wires to whatever sort of momentary switch you want. Amazon or Mouser or DigiKey will have all sorts of momentary switches.


Security is where the gap shows most clearly
So, this is an area where I’m also pretty skeptical. It might be possible to address some of the security issues by making minor shifts away from a pure-LLM system. There are (conventional) security code-analysis tools out there, stuff like Coverity. Like, maybe if one says “all of the code coming out of this LLM gets rammed through a series of security-analysis tools”, you catch enough to bring the security flaws down to a tolerable level.
One item that they highlight is the problem of API keys being committed. I’d bet that there’s already software that will run on git-commit hooks that will try to red-flag those, for example. Yes, in theory an LLM could embed them into code in some sort of obfuscated form that slips through, but I bet that it’s reasonable to have heuristics that can catch most of that, that will be good-enough, and that such software isn’t terribly difficult to write.
But in general, I think that LLMs and image diffusion models are, in their present form, more useful for generating output that a human will consume than that a CPU will consume. CPUs are not tolerant of errors in programming languages. Humans often just need an approximately-right answer, to cue our brains, which itself has the right information to construct the desired mental state. An oil painting isn’t a perfect rendition of the real world, but it’s good enough, as it can hint to us what the artist wanted to convey by cuing up the appropriate information about the world that we have in our brains.
This Monet isn’t a perfect rendition of the world. But because we have knowledge in our brain about what the real world looks like, there’s enough information in the painting to cue up the right things in our head to let us construct a mental image.

Ditto for rough concept art. Similarly, a diffusion model can get an image approximately right — some errors often just aren’t all that big a deal.
But a lot of what one is producing when programming is going to be consumed by a CPU that doesn’t work the way that a human brain does. A significant error rate isn’t good enough; the CPU isn’t going to patch over flaws and errors itself using its knowledge of what the program should do.
EDIT:
I’d bet that there’s already software that will run on git-commit hooks that will try to red-flag those, for example.
Yes. Here are instructions for setting up trufflehog to run on git pre-commit hooks to do just that.
EDIT2: Though you’d need to disable this trufflehog functionality and have some out-of-band method for flagging false positives, or an LLM could learn to bypass the security-auditing code by being trained on code that overrides false positives:
Add trufflehog:ignore comments on lines with known false positives or risk-accepted findings


I keep seeing the “it’s good for prototyping” argument they post here, in real life.
There are real cases where bugs aren’t a huge deal.
Take shell scripts. Bash is designed to make it really fast to write throwaway, often one-line software that can accomplish a lot with minimal time.
Bash is not, as a programming language, very optimized for catching corner cases, or writing highly-secure code, or highly-maintainable code. The great majority of bash code that I have written is throwaway code, stuff that I will use once and not even bother to save. It doesn’t have to handle all situations or be hardened. It just has to fill that niche of code that can be written really quickly. But that doesn’t mean that it’s not valuable. I can imagine generated code with some bugs not being such a huge problem there. If it runs once and appears to work for the inputs in that particular scenario, that may be totally fine.
Or, take test code. I’m not going to spend a lot of time making test code perfect. If it fails, it’s probably not the end of the world. There are invariably cases that I won’t have written test code for. “Good enough” is often just fine there.
And it might be possible to, instead of (or in addition to) having human-written commit messages, generate descriptions of commits or something down the line for someone browsing code.
I still feel like I’m stretching, though. Like…I feel like what people are envisioning is some kind of self-improving AI software package, or just letting an LLM go and having it pump out a new version of Microsoft Office. And I’m deeply skeptical that we’re going to get there just on the back of LLMs. I think that we’re going to need more-sophisticated AI systems.
I remember working on one large, multithreaded codebase where a developer who isn’t familiar with or isn’t following the thread-safety constraints would create an absolute maintenance nightmare for others, where you’re going to spend way more time tracking down and fixing breakages induced than you saved by them not spending time coming up to speed on the constraints that their code needs to conform to. And the existing code-generation systems just aren’t really in a great position to come up to speed on those constraints. Part of what a programmer does is, when writing code, is to look at the human-language requirements, and identify that there are undefined cases and go back and clarify the requirement with the user, or use real-world knowledge to make reasonable calls. Training an LLM to map from an English-language description to code is creating a system that just doesn’t have the capability to do that sort of thing.
But, hey, we’ll see.


I apparently actually did two of these on different occasions, using different, restricted Unicode character ranges (ones that only look at the value of the character as a whole, no subpixel rendering). Can’t find the (newer) color one, but the black-and-white one:
░
░░░░░░░
░▒▒▒▒▒▒▒░░░
░▒▓▓▓▒▒▒░░░░░
░▒▓▓▓▓▒▒▒▒▒░░░░░ ░░░
░▒▓▓▓▓▓▓▓▒▒▒▒▒▒▒░░ ░░░░░░░░░░░░░
░▒▓▓███▓▓▓▓▒▒▒▒▒▒▒░░ ░░░▒▒▒▒▒▒▒▒▒▒▒░░
░▒▓▓▓████▓▓▓▒▒▒▒▒▓▒▒░░ ░░░░░░▒▒▒▒▒▒▒▒▒▒▓▓▒▒░
░▒▓▓▓███▓▓▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░ ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▒░
░▒▓▓▓█▓▓▓▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░▒▒▒░░░░░░░░░░░░░▒▒▓▓▓▓▓▓▒▒▒▒▓▓▓▓▓▓▓▒░
▒▓▓▓██▓▓▓▒▒▒▒▒▒▓▓▓▒▒░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒▒▓▓▓▓▓▒▒▒▓▓▓▓▓██▓▓▓▒░
░▒▓▓▓████▓▓▓▓▓▓▓▓▓▓▒░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓█▓▓▓▒░
░▒▒▓▓▓████▓▓▓▓▓▒▒▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▓▓▓▓▓▓▒▒▒▓▓▓▓▓▓▓▓▒░
░░▒▓▓▓▓██▓▓▓▒▒▒▒▒░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓█▓▓▓░░
░▒▓▓▓▓▓▓▓▒▒░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒▒▒▓▓▓▓███▓▓▓▒░
░▒▓▓▓▒▒░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░▒▒▓▓██▓▓▓▓▒░
▒▒▒░░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░▒▒▓▓▓▓▓▓▒░
░░░░░░░░░░░░░░▒░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░▒▒▒▓▓▓▒░
░▒▒▒░░░░▒▒▒▒░░▒▒▒▒▒▒▒▒▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▒▒▒▒░░░░░░░░░░▒▒▒▒▒░
░░▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▒▒▒▒▒▒░▒▒▒▓▓▓▒▒▒▒▒░░░░░░░░░░▒▒░
░░▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒▒▒▒▒░░░░░░░░░▒░░
░░▒▒▒▒▓▓▓▓▓▓▓▒▒▒▒▓▓▓████▓▓▒▒░░░░▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▒▒▒░░░░▒░░
░▒▒▒▒▒▓▓▓▓▓▓▓▓▒▒▒▒░░░▒▒▓▓▓▓▒▒░░░░░░░░░▒▓▓████▓▓▓▓▒▒▒▒▒▒░░░░░
░░▒▒▒▓▓▓▓▓▒▒▒▓▓▓▓▓▒▒▒░░░▒▒▓▒▒░░░░░░░░░░░▒▓▓▓▒▒▒▒▒░░▒▒▒▒▒▒░▒░
░▒▒▓▓▓▒▒▒▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░
░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒░░░░░░░░░░░░░░▒▒▒▒▒▒▓▓▓▒▒░▒▒▒▒░
░▒▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▓▓▓▒▒▒░░░░░░░░░░░░░░▒▒▒▒▒▒▒▓▓▒▒▒░░▒▒▒░
░▒▓▓▓▓▓▓▓▓▒▒▒▒▒▒▓▓▒▒▒▒░░░░░░ ░░░░░▒▒▒▒▒░░▒▒▒▒▒▒▒▒▒▒▒░
░▒▓▓▓▓▓▓▓▓▓▒▒▒▒▓▓▒▒░░░░░░ ░░░░▒▒▒▒░░▒▒▒▒▓▓▓▓▓▒▒░
░▒▓▓▓▓▓▓▓▒▒▓▓▓▒░░ ░░░░░▒▒▒░░ ░░▒▒░░░▒▓▓▓▓▓▒▒▒▒░
░▒▒▒▓▓▓▓▓▓▓▓▒░░ ░░▒▓▓▓▓▓▓▒░░ ░░▒▒▒▓▓▓▓▓▒▒▒▒░
░▒▒▓▓▓▓▒░ ░▓▓█▓▓▓▒▒▓▓▓▒░ ░▒▒▓▓▓▓▒▒▒▒░
▒▒▓▒▒▒░░░▒▓███████▓██▓░ ░▒▓▓▓▒░░
▒▒▒▒▒▒▒▒▓████▓▓████▓░ ░▒▒▒░
░▒▒▒▒▒▓▓▓██████▓▒▒░░░░
░▒▒▒▒▒▓▓▓▓▓▓▓▒▒▒▒░░
▒▒▓▓▓▓▓▓▓▓▓▒░░
░░▒▒▒▒▒▒░░
Is generated by the program with this uuencoded source:
begin 644 unicode_image.tar.xz
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
!6@``
`
end
I’ve also seen various programs that use the Braille Unicode characters for higher-resolution bitmap rendering, like mapscii, and I suspect that someone’s probably written software to convert to that.


I was kind of interested in doing this for Unicode a while back, which has the potential to provide for a lot more possible characters and thus a lot more-accurate renditions. If you don’t care about real-time operation, I suspect that you can do this with off-the-shelf software by just writing a small amount of code to generate an image for each character — a shell script driving ImageMagick could do it — and then feeding it into photomosaic software, like metapixel.
The major limitation is that unless you’re just interested in doing this for the text-based aesthetic and are actually rendering and presenting an image to the end user — think something like Effulgence RPG, Warsim, Armoured Commander II, Armoured Commander, Cogmind, SanctuaryRPG, Cataclysm: Dark Days Ahead, Stone Story RPG, Roots of Harmony, and so forth — you can’t control the font that the thing is rendered in on the end user’s computer. And the accuracy of the rendering degrades the more the typeface used on an end user’s computer differs from your own.
It’d probably be possible to build some kind of system that does take into account the differences for different typefaces, scores characters higher based on checking for character similarity across different typefaces.
Note that there are also at least two existing libraries out there — what I can think of off the top of my head — that will do image-to-ASCII conversion — aalib and libcaca, the latter of which has color support. I also posted a tiny program some time back to generate images using the colored Unicode tiles, and I imagine that someone out there probably has a website that does the same thing.


There was a famous bug that made it into 95 and 98, a tick counter that caused the system to crash after about a month. It was in there so long because there were so many other bugs causing stability problems that it wasn’t obvious.
I will say that classic MacOS, which is what Apple was doing at the time, was also pretty unstable. Personal computer stability really improved in the early 2000s a lot. Mac OS X came out and Microsoft shifted consumers onto a Windows-NT-based OS.
EDIT:
https://www.cnet.com/culture/windows-may-crash-after-49-7-days/
A bizarre and probably obscure bug will crash some Windows computers after about a month and a half of use.
The problem, which affects both Microsoft Windows 95 and 98 operating systems, was confirmed by the company in an alert to its users last week.
“After exactly 49.7 days of continuous operation, your Windows 95-based computer may stop responding,” Microsoft warned its users, without much further explanation. The problem is apparently caused by a timing algorithm, according to the company.


My anecdotal experience is that Vista - while pretty - is a bit of a bloatfest regardless of what hardware you run it on.
I use Linux, so I haven’t personally run into it, but is that just because of the Aero interface stuff? IIRC a lot of that can be disabled.


https://en.wiktionary.org/wiki/molly-guard
molly-guard
A physical barrier to protect something from unwanted contact, especially a shield to prevent accidental tripping of an emergency shutdown or power switch.
There is a plastic molly-guard covering the escalator’s shutdown button to prevent little kids from pushing it and stopping the escalator.
Etymology
From Molly (female given name) + guard.
Originally a Plexiglas cover improvised for the Big Red Switch on an IBM 4341 mainframe after a programmer’s toddler daughter (named Molly) tripped it twice in one day. Later generalised to covers over stop/reset switches on disk drives and networking equipment.
E.g.
https://www.amazon.com/SJZBIN-Dustproof-Protector-Computer-Desktop/dp/B0C4DVCWN6
If databases are involved they usually offer some method of dumping all data to some kind of text file. Usually relying on their binary data is not recommended.
It’s not so much text or binary. It’s because a normal backup program that just treats a live database file as a file to back up is liable to have the DBMS software write to the database while it’s being backed up, resulting in a backed-up file that’s a mix of old and new versions, and may be corrupt.
Either:
or:
In general, if this is a concern, I’d tend to favor #2 as an option, because it’s an all-in-one solution that deals with all of the problems of files changing while being backed up: DBMSes are just a particularly thorny example of that.
Full disclosure: I mostly use ext4 myself, rather than btrfs. But I also don’t run live DBMSes.
EDIT: Plus, #2 also provides consistency across different files on the filesystem, though that’s usually less-critical. Like, you won’t run into a situation where you have software on your computer update File A, then does a sync(), then updates File B, but your backup program grabs the new version of File B but then the old version of File A. Absent help from the filesystem, your backup program won’t know where write barriers spanning different files are happening.
In practice, that’s not usually a huge issue, since fewer software packages are gonna be impacted by this than write ordering internal to a single file, but it is permissible for a program, under Unix filesystem semantics, to expect that the write order persists there and kerplode if it doesn’t…and a traditional backup won’t preserve it the way that a backup with help from the filesystem can.


And, should the GenAI market deflate, it will be because all of the big players in the market – the hyperscalers, the cloud builders, the model builders, and other large service providers – believed their own market projections with enough fervor that TSMC will shell out an entire year’s worth of net profits to build out its chip etching and packaging plants.
The thing is that with some of these guys, the capacity isn’t general.
So, say you’re OpenAI and you buy a metric shit-ton of Nvidia hardware.
You are taking on some very real risks here. What you are buying is an extremely large amount of parallel compute hardware with specific performance characteristics. There are scenarios where the value of that hardware could radically change.
Say generative AI — even a substantial part of generative AI — shifts hard to something like MoEs, and suddenly it’s desirable to have a higher ratio of memory to compute capacity. Suddenly, the hardware that OpenAI has purchased isn’t optimal for the task at hand.
Say it turns out that some researchers discover that we can run expert neural nets that are only lightly connected at a higher level. Then maybe we’re just fine using a bank of consumer GPUs to do computation, rather than one beefy Nvidia chip that excels at dense models.
Say models get really large and someone starts putting far-cheaper-than-DRAM NVMe on the parallel compute device to store offloaded expert network model weights. Again, maybe current Nvidia hardware becomes a lot less interesting.
Say there’s demand, but not enough to make a return in a couple of years, and everyone else is buying the next generation of Nvidia hardware. That is, the head start that OpenAI bought just isn’t worth what they paid for it.
Say it turns out that a researcher figures out a new, highly-effecitve technique for identifying the relevant information about the world, and suddenly, the amount of computation falls way, way off, and doing a lot of generative AI on CPUs becomes a lot more viable. I am very confident that we are nowhere near the ideal here today.
In all of those cases, OpenAI is left with a lot of expensive hardware that may be much less valuable than one might have expected.
But…if you’re TSMC, what you’re buying is generalized. You fabricate chips. Yeah, okay, very high-resolution, high-speed chips at a premium price over lower-resolution stuff. But while the current AI boom may generate a lot of demand, all of that capacity can also be used to generate other sorts of chips. If generative AI demand suddenly falls way off, you might not have made an optimal investment, maybe spent more than makes sense on increasing production capacity, but there are probably a lot of people outside the generative AI world who can do things with a high-resolution chip fab.


https://en.wikipedia.org/wiki/Multi-user_dungeon
For a list of still-active MUDs:
In all fairness, while this is a particularly bad case, the fact that it’s often very difficult to safely fiddle with environment variables at runtime in a process, but very convenient as a way to cram extra parameters into a library have meant that a lot of human programmers who should know better have created problems like this too.
IIRC, setting the timezone for some of the Posix time APIs on Linux has the same problem, and that’s a system library. And IIRC SDL and some other graphics libraries, SDL and IIRC Linux 3D stuff, have used this as a way to pass parameters out-of-band to libraries, which becomes a problem when programs start dicking with it at runtime. I remember reading some article from someone who had been banging into this on Linux gaming about how various programs and libraries for games would setenv() to fiddle with them, and races associated with that were responsible for a substantial number of crashes that they’d seen.
setenv() is not thread-safe or signal-safe. In general, reading environment variables in a program is fine, but messing with them in very many situations is not.
searches
Yeah, the first thing I see is someone talking about how its lack of thread-safety is a problem for TZ, which is the time thing that’s been a pain for me a couple times in the past.
https://news.ycombinator.com/item?id=38342642
Back on your issue:
Claude, being very smart and very good at drawing a straight line between two points, wrote code that took the authentication token from the HTTP request header, modified the process’s environment variables, then called the library
for the uninitiated - a process’s environment variables are global. and HTTP servers are famously pretty good at dealing with multiple requests at once.
Note also that a number of webservers used to fork to handle requests — and I’m sure that there are still some now that do so, though it’s certainly not the highest-performance way to do things — and in that situation, this code could avoid problems.
searchs
It sounds like Apache used to and apparently still can do this:
https://old.reddit.com/r/PHP/comments/102vqa2/why_does_apache_spew_a_new_process_for_each/
But it does highlight one of the “LLMs don’t have a broad, deep understanding of the world, and that creates problems for coding” issues that people have talked about. Like, part of what someone is doing when writing software is identifying situations where behavior isn’t defined and clarifying that, either via asking for requirements to be updated or via looking out-of-band to understand what’s appropriate. An LLM that’s working by looking at what’s what commonly done in its training set just isn’t in a good place to do that, and that’s kinda a fundamental limitation.
I’m pretty sure that the general case of writing software is AI-hard, where the “AI” referred to by the term is an artificial general intelligence that incorporates a lot of knowledge about the world. That is, you can probably make an AI to program write software, but it won’t be just an LLM, of the “generative AI” sort of thing that we have now.
There might be ways that you could incorporate an LLM into software that can write software themselves. But I don’t think that it’s just going to be a raw “rely on an LLM taking in a human-language set of requirements and spitting out code”. There are just things that that can’t handle reasonably.


Viess said field reports coming into her organization suggest the growth of death caps may be slowing in the Bay Area, while another kind of poisonous mushroom known as the destroying angel, or Amanita ocreata, is starting to pop up.
Oh, great.
https://en.wikipedia.org/wiki/Amanita_ocreata
A. ocreata is highly toxic, and has been responsible for mushroom poisonings in western North America, particularly in the spring. It contains highly toxic amatoxins, as well as phallotoxins, a feature shared with the closely related death cap (A. phalloides), half a cap of which can be enough to kill a human, and other species known as destroying angels.[3][14] There is some evidence it may be the most toxic of all the North American phalloideae, as a higher proportion of people consuming it had organ damage and 40% perished.[15]


Citing various GeForce partners, including ASUS, we learn that the GeForce RTX 5070 Ti has essentially reached end-of-life status - less than a year after its debut.
The reason for the RTX 5070 Ti being shelved is fairly straightforward: it’s a GPU with 16GB of VRAM, and with current price increases and GDDR7 shortages, NVIDIA is cutting back on GeForce RTX 50 Series cards with 16GB of memory. In fact, the report indicates that the GeForce RTX 5060 Ti 16GB is also on the chopping block.
https://en.wikipedia.org/wiki/We_Didn't_Start_the_Fire
https://www.youtube.com/watch?v=eFTLKWw542g