HN user

dspillett

15,106 karma

email: ISawYourCommentOnHackerNewsAnd.DotDot@indiv.spillett.net

If you disagree or otherwise think I'm wrong, please reply. I'm always willing to be educated, or to explain myself further if I was unclear before.

If I'm right and this annoys you, downvote without reply and I'll understand.

Posts2
Comments6,285
View on HN

The most heartbreaking ones I've seen are in schools, or anywhere that children are involved.

Not heartbreaking, but the ones that get my goat up most are flyers from craft fairs and worse places promising to teach crafts/arts. How is that not a sign to walk very quickly in the other direction? Or maybe it is intentional, like some bad spam text apparently being intentional to weed out the people who are less likely to fall from the scam anyway…

wouldn't they be setting the expiry value in the SOA record themselves?

If they thought about it. But it is something that even people relatively experienced in DNS matters forget about until it bites them and they've spent ages diagnosing the initially odd looking problems caused.

NXDOMAIN results and other errors have their own TTL value though, so if someone queries too early in the process you could be waiting a little while for their cache to check again. The value for this is set in the SOA record for your DNS zone.

For example, example.org/example.com seems to have TTLs set at 300s (5 minutes) for A records, but the negative caching value is 1800s (30 minutes). If your VM domain is set the same way, you could see a premature lookup causing issues for 30 minutes instead of just 5. Even the 5 minutes could be a pain if your VM spin-up process expects to be able to lookup via the name very early and will fall over if it can't.

To my (limited) understanding, this is not a good idea, and is an unfixable problem from the server side. Companies, VPNs or ISPs or routers, often use their own DNS servers, and those can have caching logic, which means it doesn't matter how fast your own DNS implementation is, as the users lookup request wont hit your DNS server, it'll hit an intermediate cache.

All caches should respect the TTL of DNS records, no matter what they are, though there are some interesting bugs out there.

Firstly the human bugs: a lot of people assume switching DNS is always fast, but they haven't had the TTLs property of a DNS entry explained to them so assume that if the change is working here then it is going to be working <there>, <there>, and <everywhere-else> too. The default TTL values are a mix, it used to be that 24 hours was common though these days four hours or less, sometimes even one hour, is what you are more likely to see even for defaults. Whatever value your entries have though, that doesn't mean a fixed × hour window that it will switch at the end of. If the TTL is four hours your local cache last checked three hours ago but mine last checked one hour ago, a change will take an hour for you to see and three for me to see. A cache that has not recently looked up the entry will see it immediately next time it is asked - this is why some assume it is always instant (they add a new sub-domain record and it works instantly because no one has ever requested an address for that name before, for instance, and assume this is how it will always work).

Then there are coded bugs. TBH these days I ignore those: they are rare enough that if you are caring about that sort of edge case a lot then there are a lot of other weeds you'll be worrying about too and you'll never get anything done. For my domains I mostly have everything set to five minutes (300 seconds) as they are rarely referenced and DNS infrastructure is not a high-power service these days. Some would suggest that using such a low default is unfriendly to DNS caches and the root servers, but my names are very rarely referenced outside my network/vpn where my own DNS authoritative servers are what get directly queried anyway so that isn't going to matter. example.{org|com} and some sizable companies use 300s too. Why five minutes and not less? There used to be a very common caching DNS server that would ignore anything lower than 300 seconds and apply its own default (14,400 seconds, four hours, IIRC) instead. This goes back a couple of decades though, if anyone is still running that they deserve some DNS lookup failures! If you are wanting to use longer values normally, just remember to lower your TTL a time before any planned change so the change propagates ASAP and raise them back up after. One extra thing to be aware of with short TTLs is an outage affecting all your authoritative DNS servers may cause less friendly errors in many cases than getting an out of date address would result in, so make sure your DNS servers are stable and have few (preferably zero) shared potential points of failure.

not strictly necessary to use -1 as I believe all common ls detect !isatty(stdout)

I remember, though from the dim an distant past so it could be a long-fixed bug, this not working in at least one circumstance. I've explicitly included -1 in scripted calls to ls since. Of course we are breaking the best practice rule of not trying to parse the output of ls, so problems are not unexpected…

As a generally thing I like to include directives like this in scripted calls even if they happen by default anyway, because is makes my intent clear: I expect the output to being in simple single-column format and the rest will break if it isn't. I even sometimes go as far as specifying --sort=name if nothing else in the pipeline is going to enforce that.

as long as your xargs has -0 support

I don't think I've encountered an xargs that doesn't have this support for a long time, though I don't work with embedded stuff so maybe there are cut-down versions out there still in active use for space reasons.

The problem I've hit numerous times is wanting to do something between “find -print0” and “xargs -0” and that something not supporting NUL as the item delimiter.

[…] in making glibc properly backward compatible […]

You could only do that going forward though, and would be stuck, at least for a time, with the historic versions that still need extra handling. In an ideal world that wouldn't be needed, but in an ideal world you'd not need multiple versions of glibc at all so we aren't there.

Support in the kernel means that it will work even if applied to old packages that for some other reason need a held-back version of glibc. As mentioned elsewhere it also gives the feature to #! directives in scripts too.

I think three are far more of us than speak out. Most don't have the luxury of potentially committing career suicide by speaking their minds so openly within jobs where such thoughts would make them seem entirely uncommitted to the vision and therefore someone to be moved on.

They know what quality means, but it takes effort and while the majority let them get away with “meh, it'll do” or worse they'll not need to make that effort.

Heck, they probably don't care if the majority look in, see the slop, and nope out after a couple of paragraphs or less. By that time the ad impressions have been counted. That is what it is really about, not quantity (well, not directly, though that is the least effort route to more impressions) nor quality. Ad-tech is the target audience.

Perhaps. Perhaps not…

A source repo link often gets more traction here than a link to what might turn out to be a closed, probably subscription based, service. The repo's main readme likely links direct to the product/ service/other main location [if the forge isn't being used as that] or demo location [if a public demo instance exists] should that be where I want to go immediately.

Though maybe posting both the repo link and a "live" link would be better still.

If the content is good enough and the narration fine (it took you a while to even notice), why does it matter?

I tend to assume that the production has been cheaper but they aren't passing any of the saving on to me. They are pushing the human out of the loop for the bottom line, and there is no benefit to anyone but the company.

ML/AI is a bonus for society in many things like medical scanning, helping the blind interact with the world, etc, but nobody is using AI voiceovers like this example for anything other than helping the company's bottom line by avoiding paying people.

The great displacement isn't just coming, it is here and happening all around us. I for one am doing what (very little) I can to avoid helping it along and that includes refusing AI generated content wherever practical. I'll accept it from a small local business that possibly has little other choice ATM, because of they pay for someone to do the job they'll probably use generative AI anyway, but not from a larger company.

Amusingly, when I know my peer is just going to point his AI at my feedback, I write for their AI, not for them.

At this point, why not just talk directly to the AI?

Asking as someone who is likely leaving dev, and maybe tech completely, very soon, possibly to go wait tables, as he hates everything about the way things have gone in the last half decade or more with remote work, stupid levels of unnecessary complication everywhere (people architecting to be the next Amazon as soon as, or even before, they have three users, and just about every thing client-side), and now generative AI, and would rather be replaced by a Claude license and a monkey to use it than deal with generative AI & related agents himself…

Thus, it falls back to Segoe UI Symbol, which does not have the same fixed width

That seems like a glaring omission to me. If you are rendering fixed-width-per-character text and need to fall back, surely it makes sense to keep to the same character grid even if it does mess up the feel of your negative space somewhat (thin characters having a lot of space around them, wide characters butting into those beside them slightly). You've explicitly asked for text aligned to a grid, either by using a mono-spaced typeface, by using a <pre> tag, or with other relevant CSS choices, the browser should be trying to achieve that.

Such concerns were present, and rightly so. Concern and critique is important to express so that we are sure new tech is useful and negative side-effects are realised and appropriately mitigated.

Job displacement: When the Internet first arrived in a significant number of non-technical lives, there were concerns about research jobs and library jobs. In fact it increased the need for that sort of thing so increased that sort of job, and even if it hadn't the access to information for the average person would have been worth that cost. As remote work grew initially, then massively in 2020, there were major concerns about that sort of thing again (people working in Manchester on London wages, going into the office very little, it being even easier to outsource jobs to countries with cheaper workforces, etc.). These concerns are still being debated today, and that is quite valid.

Ethics: Hell yes. And again, it is good that we are still refining what we think is acceptable to this very day. There have been ethical concerns almost from the start of the Internet in the public mind, and they have only increased over time as new parts of it take shape.

Environmental: That is a lot less relevant, as the Internet itself didn't directly have the sort of impact that LLMs are having. There have been local concerns though, over the building of data-centers and the power infrastructure to support them, disturbing land to lay cables, and so forth, and again these concerns are still relevant (though have somewhat folded into just being a concern about LLMs & related ATM as they are the main reason for the current rapid growth).

Skill Atrophy: The Internet never really threatened that, except maybe a small amount of concern wrt certain research roles, it increased the base level of those skills in the general population much more than it had any negative effects (but people did raise the concerns). It gave better access to training and knowledge, but wasn't actually doing things for us in the same way LLMs and the agent systems linked to them are being used, you still needed to learn from that information/training in order to complete your task.

As long as, after it writing his texts, he is reviewing and editing them, I don't see the contradiction there. And I'm somewhat anti-AI (if I don't care enough to make the effort of writing it myself, why do I care for it to be written at all?).

an LLM can probably

That would not match their reason for preferring to move off k8:

I built a system that I didn't actually know how to maintain without the time or energy necessary to dig myself out of trouble.

If you want a system that you can understand all at once in your own head then making it with your own head is a better way to go IMO, for a small system at least.

Aye. Saying it makes me feel marginally better though, despite knowing it wouldn't get me anywhere as a real legal defense. The fact that acknowledging the hypocrisy won't help me really, will not stop me from pointing out the hypocrisy with boorish regularity!

Quick reminder: it appears to seen as perfectly acceptable to pirate content for the purposes of training intelligence models. If anyone questions whether you have correct license for particular content, tell them that is it fine anyway because you are just using it to train the intelligence model that runs between your ears.

GPP's wording suggests that the defaults simply be changed to what is being discussed as more generally sensible in current times, rather than being opt-in.

Given how many projects are potentially out there effectively relying on the current settings, and SQLite's general attitude to backwards compatibility, that would likely not be considered a good idea. Opting in with an edition flag for new (or updating) projects does seem like a good solution to this to serve all of old, active, and new projects, but it would increase potential bug surface area and therefor testing requirements, and the existing setting do allow all that to be opted in/out to/from already (and it is only four settings we are talking about here).

That FKs being enforced is set per-connection rather than at the database level is something that surprised me a lot when I found out. A way of setting that at DB creation (or via ALTER DATABASE after) seems like quite an omission because if you have multiple potential routes that can update the same DB any one of them could cause serious the others will encounter.

I've used “load bearing” for decades, though usually when I'm intentionally trying to sound a bit cleverer-than-thou for humour purposes.

I wonder how much other people have used it, for it to be present enough in the pirated data used for training such that Claude uses the words as often as people are seeing,

I'm a bit odd, it would seem, in what I find enjoyable and not.

I've happy to take the tasks like SQL optimization which other would run away from, for instance, or the bash trickery mentioned elsewhere. People don't believe me, I've had looks of surprise and derision when “if you take on this role, you can give X to others and not have to worry about it” is responded to with “I like doing X, can't you ask one of the others to take on the other role and let me stay as I am?”…

It is increasingly looking like I have the choice: change to a role (automaton farmer) that I expect to hate, or leave dev, or maybe leave tech entirely and go wait tables or something. Those tables are starting to look very attractive.

the common refrain is “think of yourself as a manager now”

One of the many reasons I'm determined to remain a luddite wrt AI. I hate the idea of being a manager and have refused promotions to avoid it in the past. I don't want to manage automatons any more than I want to manage people. I want to do stuff, not manage.

Let's not start to bend reality just to back up some narrative because after reading a N hours documentation everything is OK.

If you expect everything to be as easy as pie without needing to make a little effort to read a bit of documentation, then perhaps the problem is not the product but the fact that you are in the wrong industry, or the wrong role within that industry, for you. Have you considered a management track?

Git is intended to make certain patterns possible, and practical. “Easy for people won't read some documentation” was never one of its design goals.

But not as many people are as confused as is sometimes made out. And those who are confused are not as confused as people make out¹. Implying that a great many people are very confused because some are is far more gaslighty than suggesting it isn't that hard in the majority of circumstances, IMO.

--------

[1] many (and I'd include myself here) are fine using the basics, perhaps with some less as-simple-as-possible workflows, but might need to scan the docs if they hit a conflict merging two branches that have developed independently for a fair few commits and have overlaps

I think most of the people who post LLM content without editing and without even style guidelines are simply of the opinion that the resulting text is genuinely of an acceptable quality.

I don't disagree with that assessment, with one extra detail: for many of them their bar of “an acceptable quality” is too low. No higher than “sod it, it'll do” and often lower. To too many, generated content is seen as a gateway to maybe accidentally becoming some sort of influencer, a way to get themselves out there with little or no care about whether their contribution is actually useful overall just as long as it garners a bit of attention.

I don't want to waste time hunting through the extra piles of “it'll do” or worse to find the remaining nuggets of actually good writing, be they entirely human made or created by humans using LLM assistance. There are at lease a few people of agree with me on the matter.

The problem with judging on quality is that you often have to at least start reading the slop to realise and move on to the next thing. Rating systems and flags may help somewhat, but they will all eventually be gamed so it will become yet another battle of attrition: people and systems trying to filter out the crap while other people and their systems finding it more profitable to spend time breaking the filtering mechanisms instead of producing content good enough to not actually be filtered by them.

Blogspam and corporate blogs had killed quality bogs ages ago even before AI was a thing.

That was a two-pronged thing. As well as the blog-spam drowning out what good blogs there were, a lot of people that used to output that way moved to centralised platforms that then either tried to lock their content in, or surrounded it with ad-tech bothers, or both.

if an AI generated article is indistinguishable from a human written article…

Quite a bit of AI generated output is indistinguishable from crap human writing, often mediocre human writing, and that is actually part of the problem. A lot of people bang something out of their LLM/agents of choice and not bother taking the time needed to lift to good or excellent, so there is a bulk of mediocre or worse stuff flooding the medium because it is so easy to produce. But do we really need 100+ mediocre articles and a few good ones on a subject where there would previously have been a few mediocre ones and still a few good+ ones? It makes the genuinely worthwhile content much harder to stumble upon, especially as the ones taking the lazier approaches to writing seem to be making greater efforts in self-promotion with the time they have saved!

if an AI generated article is […] is accurate and interesting, do you care who wrote it?

Firstly: maybe not, or at least less so. But I'm not convinced they can be trusted to be that accurate. I don't trust the average human that much either, they are often authoritatively wrong too (which doesn't help the LLMs, which have been at least partially trained on authoritatively wrong content), but I trust good human writers (who may be assisted by LLMs these days, like they've been assisted by spelling & grammar checkers for decades) above other human writers and content almost entirely drawn from LLMs.

Secondly: Yes. I care. I'm still smarting that after years of people being fined heavily, banned from things, and even imprisoned, for copying content, we seem fine with the big companies pirating whatever they want for training purposes⁰. Yes, some fines have been paid, but a few hours worth of income isn't even a slap on the wrist given how much funny money is being sloshed around the sector ATM, and do you know any content makers who got a share of those fines? I'm still trying to avoid being a part of that, to the point of being willing to commit career suicide¹, so yes, I do care who/what made most effort on creating the article. Given a choice between human, human with LLM assist, LLM with minimal human editing, and purer slop, I would morally prefer something from as close to the “just humans” end of the scale over anything else, even if the quality is practically identical.

--------

[0] I wonder how the corporates would take the “we only downloaded and used it ignoring the licence for model training purposes” point being used about their output. After all, I'm only using it irrespective of your licence to train the intelligence model that sits between my ears!

[1] The current corporate overlords have as much said “get with AI or be left behind”, and I'm sure being left behind will involve being PIPed out to pasture. I might be able to argue “the difference is enough to be considered a material change in roll, so you can't force that under UK employment law nor sack me for not playing ball”, but the same change-of-roll argument just opens up the possibility of redundancy instead², which is only marginally better. In either case I'm done for working in development with my current attitudes.

[2] this interpretation, if not legal pigswill entirely, also makes “we need less legacy developers and more agenic developers, your legacy roll is therefore redundant, do you want to change to an agent-based job or do you want to leave?” perfectly legal.

Cloudflare Drop 13 days ago

Derivative works I understand. That would include transforming the content for some/all viewers. Making it mobile-friendly or otherwise reformatting for display, for instance, or adding affordances for accessibility, or for long content adding a generated summary.

Irrevocable and right-to-sublicense are the red flags for me. Nothing a company sells to us is irrevocable, but everything they take from us is expected to be.

Cloudflare Drop 13 days ago

TBH, I like that the word “exploit” is in there. It feels more honest and if it were not present!