I think the point you're making is fully correct, so consider this a devil's advocate argument...
People claim, you can use Claw-agents more safely while getting some of the benefits, by essentially proxying your services. For example on Gmail people are creating a new Google accounts, forwarding email via rule, and adding access to their calendar via Google's Family Sharing. This allows the Claw agent to read email, access the calendar, but even if you ask it to send an email it can only send as the proxy account, and it can only create calendar appointments then add you as an attendee rather than destroy/altering appointments you've made.
Is the juice worth the squeeze after all that? That's where I struggle. I think insecure/dangerous Claw-agents could be useful but cannot be made safe (for the logical fallacy you pointed out), and secure Claw-agents are only barely useful. Which feels like the whole idea gets squished.
We already have this concept. It’s called user accounts.
Your Gmail account vs my Gmail account. Your macOS account vs my macOS account.
Yes, I can spam you from my Gmail. Yes, I can use sudo on my Mac and damage your account. But the impact is by default limited.
The answer is to just treat assistants as a different user profile, use the same sharing mechanisms already developed (calendar sharing, etc), and call it a day.
That's punting the problem in the same way SELinux did. Agent loops are useful precisely because they're zero config.
Problem: I want to accomplish work securely.
Solution: Put granular permission controls at every interface.
New problem: Defining each rule at all those boundaries.
There's a reason zero trust style approaches won out in general purpose systems: it turns out defining a perfect set of secure permissions for an undefined future task is impossible to do efficiently.
> I think insecure/dangerous Claw-agents could be useful but cannot be made safe
Isn't it a question of when they will be "safe enough"? Many people already have human personal assistants, who have access to many sensitive details of their personal lives. The risk-reward is deemed worth it for some, despite the non-zero chance that a person with that access will make mistakes or become malicious.
It seems very similar to the point when automated driving becomes safe enough to replace most human drivers. The risks of AI taking over are different than the risks of humans remaining in control, but at some point I think most will judge the AI risks to have a better tradeoff.
People seem to dismiss OSWorld as "OpenClaw," but I think they're missing how powerful and flexible that type of full-interaction for safe workflows.
We have a legacy Win32 application, and we want to side-by-side compare interactions + responses between it and the web-converted version of the same. Once you've taught the model that "X = Y" between the desktop Vs. web, you've got yourself an automated test suite.
It is possible to do this another way? Sure, but it isn't cost-effective as you scale the workload out to 30+ Win32 applications.
I keep seeing people make the same mistake as XML made over and over; without learning from it. I will clarify the problem thusly:
> The more capabilities you add to a interchange format, the harder that format is to parse.
There is a reason why JSON is so popular, it supports so little, that it is legitimately easy to import. Whereas XML supports attributes, namespaces, CDATA, DTDs, QNames, xml:base, xml:lang, XInclude, etc etc. They gave it everything, including the kitchen sink.
There was a thread here the other day about using Sqlite as an interchange format to REDUCE complexity. Look, I love Sqlite, as an application specific data-store. But much like XML it has a ton of capabilities, which is good for a data-store, but awful for an interchange format with multiple producers/consumers with their own ideas.
CSV may be under-specified, but it remains popular largely due to its simplicity to produce/consume. Unfortunately, we're seeing people slowly ruin JSON by adding e.g. commands to the format, with others than using those "comments" to hold data (e.g. type information), which must be parsed. Which is a bad version of an XML Attribute.
I think JSON has the opposite problem, it is too simple, the lack of comments in particular is particularly bad for many common usages of the format today.
I know some implementations of JSON support comments and other things, but is is not true JSON, in the same way that most simple XML implementations are not true XML. That's what I say "opposite problem", XML is too complex, and most practical uses of XML use incomplete implementations, while many practical uses of JSON use extended implementations.
By the way, this is not a problem for what JSON was designed for: a text interchange format, with JS being the language of choice, but it has gone beyond its design: configuration files, data stores, etc...
A lot of people dislike that decision not to include comments in JSON, but I think while shocking it was and is totally correct.
In a programming language it's usually free to have comments because the comment is erased before the program runs; we usually render comments in grey text because they can't change the meaning of the program.
In a data language you have no such luxury. In a data language there's no comment erasure happening between the producer and the consumer, so comments are just dangerous as they would without doubt evolve into a system of annotations -- an additional layer of communication which would then not be standardized at all and which then would grow into a wild west of nonstandard features and compatibility workarounds.
I don't dislike the decision at all, FWIW! For data interchange it's totally reasonable. But it does make JSON ill-suited for a bunch of applications that JSON has been forcefully and unfortunately applied to.
> In a data language there's no comment erasure happening between the producer and the consumer, so comments are just dangerous as they would without doubt evolve into a system of annotations -- an additional layer of communication which would then not be standardized at all and which then would grow into a wild west of nonstandard features and compatibility workarounds.
But there's nothing stopping you from commenting your JSON now. There's no obligation to use every field. There can't be, because the transfer format is independent of the use to which the transferred data is put after transfer.
And an unused field is a comment.
{
"customerUUID": "3"
"comment": "it has to be called a 'UUID' for historical reasons"
}
If this would 'without doubt' evolve into a system of annotations, JSON would already have a system of annotations.
Many years ago I worked for a company that did EDI software. When XML was introduced they had to add support for that, just the primitive XML 0.1 that was around at the time with none of the modern complexities. With the same backend code, just switching the parsing, they found either a 100x slowdown in parsing and a 10x increase in memory use or the other way around (so 10x slower, 100x the memory). The functionality was identical, all they did was switch the frontend from EDI to XML.
Since EDI is meant for processing large numbers of transactions as quickly as possible, I hate to think what the move to XML did to that. I moved on years ago so I don't now whether they just threw more hardware at the problem to achieve the same thing that EDI already gave them but now with angle brackets, or whether the industry gave up on XML because of its poor performance.
Come to think of it I'm pretty sure they would have tried blockchain when that got trendy as well.
> so comments are just dangerous as they would without doubt evolve into a system of annotations -- an additional layer of communication which would then not be standardized at all and which then would grow into a wild west of nonstandard features and compatibility workarounds
IIRC Douglas Crockford explicitly stated that he saw people initially using comments for a purpose like ad hoc preprocessor directives.
> that decision not to include comments in JSON, but I think while shocking it was and is totally correct.
Yaml is fugly, but it emerged from JSON being unsupportive of comments. Now we’re stuck with two languages for configuration of infrastructure, a beautiful one without comments so unusable, the other where I can never format a list correctly on the first try, but comments are ok.
YAML also expanded to add arbitrary scripting via a pile of bolt-on capabilities so that it's now a serialisation language that's Turing-complete, or that includes Turing-complete capabilities within it, everything from:
command:
- /bin/sh
- -c
- rm -rf $HOME
to:
state: >
{% set foo = states('...') %}
{% set bar = states('...') %}
{% if foo == FOO and bar == BAZ %}
...
This makes it damn annoying to work with because everyone's way of doing it is different and since it's not a first-class element you have to rethink everything you want to do into strange patterns to work with how YAML does things.
The difference is that in YAML it's kind of expected (the second pseudocode example is from Home Assistant where almost everything nontrivial requires embedding scripting inside your YAML) while I've never seen it done in JSON.
The use cases for YAML that don't involve any sort of scripting vastly outnumber the use cases for YAML that involve embedding scripts into a document; so it's a little unfair and inaccurate to say that "in YAML it's kind of expected".
It is more fair to say that if your document needs to contain scripting, YAML is a better choice than JSON; for the singular reason that YAML allows for unquoted multiline strings, which means you can easily copy/paste scripts in and out of a YAML document without needing to worry about escaping and unescaping quotes and newline characters when editing the document.
Jupyter notebooks are a form of scripting in JSON. Anyway, all this is the fault of specific tools, not of YAML. This is like saying that laundry pods are bad because people eat them.
JSON is obviously perfectly usable, given how widely it's used. Even Douglas Crockford suggested just using a JSON interpreter that strips out comments, if you need them.
And if you want something like JSON that allows comments, and you aren't working on the web, Lua tables are fine.
No, it was obviously and flagrantly incorrect, as evidenced by the success of interchange formats that do allow for comments, including many real world systems that pragmatically allow comments even when JSON says they shouldn't. This is Stockholm Syndrome.
But what can we expect from a spec that somehow deems comments bad but can't define what a number is?
How do you feel numbers are ill defined in json? The syntactical definition is clear and seems to yield a unique and obvious interpretation of json numbers as mathematical rational numbers.
A given programming language may not have a built in representation for rational numbers in general. That isn't the fault of json.
I can't really tell what you're trying to say; JSON also has no representation for rational numbers in general. The only numeric format it allows is the standard floating point "2.01e+25" format. Try representing 1/3 that way.
The usual complaint about numbers not being well-defined in JSON is that you have to provide all numbers as strings; 13682916732413492 is ill-advised JSON, but "13682916732413492" is fine. That isn't technically a problem in JSON; it's a problem in Javascript, but JSON parsers that handle literals the same way Javascript would turn out to be common.
Your "defense", on the other hand, actually is a lack in JSON itself. There is no way to represent rational numbers numerically.
I didn't say that json can represent all rational numbers. I said that all json numbers have an obvious interpretation as a rational number.
So far you haven't really shown an example of a json number which has an ambiguous or ill defined interpretation.
Maybe you mean that json numbers may not fit into 32 bit integers or double floats. That's certainly true but I don't see it as a deficiency in the standard. There is no limit on the size of strings in json, so why have a limit on numbers?
As long as they stay comments there's no harm. As soon as they become struct tags and stripping comments affects the document's meaning you lose the plot.
Worse than that - people will start tagging "this value is a Date" via comments, and you'll need to parse ad-hoc tags in the comments to decode the data. People already do tagging in-band, but at least it's in-band and you don't have to write a custom parser.
See also: postscript. The document structure extensions being comments always bothered me. I mean surely, surely in a turing complete language there is somewhere to fit document structure information. Adobe: nah, we will jam it in the comments.
"Use of the document structuring conventions... allows PostScript language programs to communicate their document structure and printing requirements to document managers in a way that does not affect the PostScript language page description"
The idea being that those document managers did not themselves have to be PostScript interpreters in order to do useful things with PostScript documents given to them. Much simpler.
For example, a page imposition program, which extracts pages from a document and places them effectively on a much larger sheet, arranged in the way they need to be for printing 8- or 16- or 32-up on a commercial printing press, can operate strictly on the basis of the DSC comments.
To it, each page of PostScript is essentially an opaque blob that it does not need to interpret or understand in the least. It is just a chunk of text between %%BeginPage and %%EndPage comments.
This is tremendously useful. A smaller scale of two-up printing is explicitly mentioned as an example on p. 9 of the spec.
> Could you imagine hitting a rest api and like 25% of the bytes are comments? lol
That's pretty much what already happens. Getting a numeric value like "120" by serializing it through JSON takes three bytes. Getting the same value through a less flagrantly wasteful format would take one.
I guess that's more than 25%. In the abstract ASCII integers are about 50% waste. ASCII labels for the values you're transferring are 100% waste; those labels literally are comments.
If you're worried about wasting bandwidth on comments, JSON shouldn't be a format you ever consider, for any purpose.
And both are poor interchange formats. When things stay in their lane, there is no "problem." When you try to make an interchange format using a language with too many features, or comments that people abuse to add parsable information (e.g. "type information") then there is a BIG problem.
It caused all kinds of problems, though those tend to be more directly traceable to the "be liberal in what you accept" ethos than to the format per se.
> In a programming language it's usually free to have comments because the comment is erased before the program runs
That's inherent to the language specification, but it isn't inherent to the document. You have to have a system with rules that require that erasure.
Nothing prevents one from mandating a system that strips those comments out of JSON. You could even "compile" JSON to, I don't know, BSON or msgpack or something.
Just as nothing prevents one from creating tooling to, say, extract type annotations from comments in a dynamically typed language.
I've said it before, but I maintain that XML has only two real problems:
1. Attributes should not exist. They make the document suddenly have two dimensions instead of one, which significantly increases complexity. Anything that could be an attribute should actually be a child element.
2. There should be one close tag: `</>` which closes the last element, which burns a significant amount of space with useless syntax. Other than that and the self-closing `<tag />` (which itself is less useful without attributes) there isn't much that you need. Maybe a document close tag like `<///>`
You'll notice that, yes, JSON solves both of those things. That's a part of why it's so popular. The other is just that a lot more effort was put into maximizing the performance of JavaScript than shredding XML, and XSLT, the intended solution to this problem, is infamous at this point.
The problem of comments is kind of a non-issue in practice, IMO. You can just add a `"_COMMENT"` element or similar. Sure, yes, it will get parsed. But you shouldn't have that many comments that it will cause a genuine performance issue.
However, JSON still has two problems:
1. Schema support. You can't validate that a file before de-serializing it in your application. JSON Schema does exist, but it's support is still thin, IMX.
2. Many serializers are pretty bad with tabular data, and nearly all of them are bad with tabular data by default. So sometimes it's a data serialization format that's bad at serializing bulk data. Yeah, XML is worse at this. Yeah, you can use the `"colNames": ["id", ...], "rows": [ [1,...],[2,...] ]` method or go columnar with `"id": [1,2,...], "name": [...], "createDate": [...]`, but you had better be sure both ends can support that format.
In both cases, it seems like there is an attempt to resolve both of those issues. OpenAPI 3.1 has JSON schema included in it. The most popular JSON parsers seem to be adding tabular data support. I guess we'll see.
XML is a Markup Language. The text is what is being marked up, and the attributes are how to mark it up. Try writing the equivalent of <font family="Arial">Hello world</font> without attributes. I'll wait.
Using XML as a structured data interchange format is abuse. Of course the square peg doesn't fit in the round hole. You propose filing off the corners of the square, making it an octagon, so it will fit the round hole better.
While XML/XHTML aren't spec'ed/evolved to support your fun font sans attribute challenge, certainly modern html does ...
<p>
<style>
@scope { font-family: "Arial" ; }
</style>
Prospero: Where in the world is my teapot? Hello? I'm waiting!
</p>
I know one could argue that that css rule property is essentially an attribute, but it illustrates, like XML plists[1], that one can define the tags arbitrarily to have their content be meta upon sibling/nested content, subsuming attributes' role.
To wit, it seems to me a style issue.
[1] Apple has long used XML plists for data ~ interchange or even archival storage such as .webarchive (ie just a plist flavor). Of course they soon added a simple binary version to compress out some redundancy and encoding waste.
They used an XML nested tag approach, not attributes. Maybe not well rounded pegs and holes but it has worked for them on a large scale over a long time.
1. I think attributes absolutely should exist. They're great for describing metadata related to the tag: e.g. element ID, language, datatype, source annotation, namespacing. They add little in complexity.
2. The point of a close tag with a name is to make it unambiguous what it's trying to close off.
It sounds to me like what you want is not a better XML, but just s-exprs. Which is fine, but not quite solving the same problem.
3. As far as schema support, it seems to me that JSON Schema is well-established and perfectly cromulent – so much so that YAML authors are trying to use it to validate their stuff (the poor bastards) – and XML schema validation, while robust, is a complex and fragmented landscape around DTD, XSD, RELAX-NG, and Schematron. So although XML might have the edge, it's a more nuanced picture than XML proponents are claiming.
4. As far as tabular data, neither XML nor JSON were built for efficient tabular data representation, so it shouldn't be a surprise that they're clunky at this. Use the right tool for the job.
> 1. I think attributes absolutely should exist. They're great for describing metadata related to the tag: e.g. element ID, language, datatype, source annotation, namespacing. They add little in complexity.
No, they're barely adequate for those purposes. And you could (and if you have a XSD you probably should) still replace them with elements. If you argue that you can't, then you're arguing that JSON does not function. You can just inline metadata along side data. That works just fine. That's the thing about metadata. It's data!
You don't need attributes. Having worked in information systems for 25 years now, they are the most heavily, heavily, heavily misused feature of XML and they are essentially always wrong.
Well, now you're a bit stuck. You can make the XSD look at basic data types, and that's it. You can never use complex types. You can never use multiple values if you need it, or if you do you'll have to make your attribute a delimited string. You can never use complex types. You can't use order. You're limiting your ability to extend or advance things.
That's the problem with XML. It's so flexible it lets developers be stupid, while also claiming strictness and correctness as goals.
> 2. The point of a close tag with a name is to make it unambiguous what it's trying to close off.
Sure, but the fact that closing tags in the proper order is is mandatory, you're not actually including anything at all. The only thing you're doing is introducing trivial syntax errors.
Because the truth is that this is 100% unambiguous in XML because the rules changed:
The reason SGML had a problem with the generic close tag was because SGML didn't require a closing tag at all. That was a problem It didn't have `<tag />`. It let you say `<tag1><tag2>...</tag1>` or `<tag1><tag2>...</>`.
Named closing tags had more of a point when we were actually writing XML by hand and didn't have text editors that could find the open and close tags for you, but that is solved. And now we have syntax highlighting and hierarchical code folding on any text editor, nevermind dedicated XML editors.
> 3. As far as schema support, it seems to me that JSON Schema is well-established and perfectly cromulent
Then my guess is that you have worked exclusively in the tech industry for customers that are also exclusively in the tech industry. If you have worked in any other business with any other group of organizations, you would know that the rest of the world is absolute chaos. I think I've seen 3 examples of a published JSON Schema, and hundreds that do not.
> 4. As far as tabular data, neither XML nor JSON were built for efficient tabular data representation, so it shouldn't be a surprise that they're clunky at this. Use the right tool for the job.
No, I think you're looking at what the format was intended to do 25 years ago and trying to claim that that should not be extended or improved ever. You're ignoring what it's actually being used for.
Unless you're going to make data queries return large tabular data sets to the user interface as more or less SQLite or DuckDB databases so the browser can freely manipulate them for the user... you're kind of stuck with XML or JSON or CSV. All of which suck for different reasons.
1. I don't disagree that attributes have been abused – so have elements – but you yourself identified the right way to use them. Yes, you can inline attributes, but that also leads to a document that's harder to use in some cases. So long as you use them judiciously, it's fine. In actual text markup cases, they're indispensable, as HTML illustrates.
2. As far as JSON Schema, you're wrong on all acounts – wrong that I haven't seen Some Stuff, wrong that JSON schema doesn't get used (see Swagger/OpenAPI), and wrong that XML Schema doesn't also get underitilized when a group of developers get lackadaisical.
3. As far as what historical use has been, I'm less interested in exhuming historical practice than simply observing which of the many use cases over the last 20 years worked well (and still work) and which didn't. The answer isn't that none of them worked, and it certainly isn't that XML users had a better bead on how to use it 20 years ago – it went through a massive hype curve just like a lot of techs do.
4. Regarding tabular data exchange, I stand by my statement. Use XML or JSON if you must, and sometimes you must, but there are better tools for the job.
Hard disagree about attributes, each tag should be a complete object and attributes describe the object.
<myobject foo="bar"/>
// means roughly
new MyObject(foo="bar")
But objects can also be containers and that's what nesting is for. There shouldn't ever be two dimensions in the way you're describing. The pattern of
<myobject>
<foo>bar</foo>
</myobject>
is the root of most XML evil. Now you have to know if myobject is a container or a franken-object with a strict sub-schema in order to parse it. The biggest win of JSON is that .loads/.dump make it really obvious that it's for serializing complete objects where a lot of tooling surrounding XML makes you poke at the document tree.
Attributes exist due to it's origin as a markup language. XML is actually (big surprise) a pretty good markup language. Where the tags are sort of like function calls and the attributes are args. With little to no information to be gleaned out of the text. The big sin was to say "hey the tooling is getting pretty good for for these sgml like markup languages. Lets use it as a structured data interchange format. It's almost the same thing". Now all the data is in the text and the attributes are not just superfluous but actively harmful as there is a weird extra data axis that people will aggressively use.
I've been working on an XML parser of my own recently and, to be honest, as long as you're fine with a non-validating parser (which are still compliant), it's really not that bad. You have to parse DTDs, but you don't need to actually _do_ anything with them. Namespaces are annoying but they're not in the main spec. CDATA sections aren't all that useful, but they're easy to parse. As far as I'm aware, parsers don't actually need to handle xml:lang/xml:space/etc themselves - they're for use by applications using the parser. Really the only thing that's been particularly frustrating for me is entity expansion.
If you want to support the wider XML ecosystem, with all the complex auxiliary standards, then yes, it's a lot of work, but the language itself isn't that awful to parse. It's a little messy, but I appreciate it at least being well-specified, which JSON is absolutely not.
CSTML is my attempt to fix all these issues with XML and revive the idea of HTML as a specific subset of a general data language.
As you mention one of the major learnings from the success of JSON was to keep the syntax stupid-simple -- easy to parse, easy to handle. Namespaces were probably the feature to get the most rework.
In theory it could also revive the ability we had with XHTML/XSLT to describe a document in a minimal, fully-semantic DSL, only generating the HTML tag structure as needed for presentation.
I unfortunately disagree that your syntax is "stupid-simple." But it highlights an impedance mismatch between XML users and JSON users.
JSON treats text as one of several equally-supported datatypes, and quotes all strings. Great if your data is heavily structured, and text is short and mixed with other types of data. Awful if your data is text.
XML and other SGML apps put the text first and foremost. Anything that's not text needs to be tagged, maybe with an attribute to indicate the intended type. It's annoying to express lots of structured, short-valued data. But it's simple and easy for text markup where the text predominates.
CSTML at first glance seems to fall into the JSON camp. Quoting every string literal makes plenty of sense in JSON, but not in the HTML/text-markup world you seem to want to play in.
Yeah "impedance mismatch" is a good way of putting it.
I wouldn't say we fall into the JSON camp at all though, but quite squarely into the XML-ish camp! We just wrap the inner text in quotes to make sure there's no confusion between the formatting of the text stored IN the document and the formatting of the document itself. HTML is hiding a lot of complexity here: https://blog.dwac.dev/posts/html-whitespace/. We're actually doing exactly what the author of that detailed investigation recommends.
You can see how it plays out when CSTML is used to store an HTML document https://github.com/bablr-lang/bablr-docs/blob/1af99211b2e31f.... Having the string wrappers makes it possible to precisely control spaces and newlines shown to the user while also having normal pretty-formatting. Compare this to a competing product SrcML which uses XML containers for parse trees and no wrapper strings. Take a look at the example document here: https://www.srcml.org/about.html. A simple example is three screens wide because they can't put in line breaks and indentation without changing the inner text!
As to the simplicity of the syntax I think you would understand what I mean if you were writing a parser.
It's particularly gratifying that you can easily interpret CSTML with a stream parser. XML cannot work this way because this particular case is ambiguous:
<Name
What does Name mean in this fragment of syntax? Is it the name of a namespace? Or the name of a node? We won't know until we look forward and see if the next character is :
That's why we write `<Namespace:Name />` as `:Namespace: <Name />` - it means there's no point in the left-to-right parse at which the meaning is ambiguous. And finally CSTML has no entity lookups so there's no need to download a DTD to parse it correctly.
Haha yeah someone pointed that out to me and I decided to leave it. I just needed a sentence, I'm not actually trying to show off every glyph in a font.
The problem is that engineers of data formats have ignored the concept of layers. With network protocols, you make one layer (Ethernet), you add another layer (IP), then another (TCP), then another (HTTP). Each one fits inside the last, but is independent, and you can deal with them separately or together. Each one has a specialty and is used for certain things. The benefits are 1) you don't need "a kitchen sink", 2) you can replace layers as needed for your use-case, 3) you can ship them together or individually.
I don't think anyone designs formats this way, and I doubt any popular formats are designed for this. I'm not that familiar with enterprise/big-data formats so maybe one of them is?
For example: CSV is great, but obviously limited, and not specified all that well. A replacement table data format could be binary (it's 2026, let's stop "escaping quotes", and make room for binary data). Each row can have header metadata to define which columns are contained, so you can skip empty columns. Each cell can be any data format you want (specifically so you can layer!). The header at the beginning of the data format could (optionally) include an index of all the rows, or it could come at the end of the file. And this whole table data format could be wrapped by another format. Due to this design, you can embed it in other formats, you can choose how to define cells (pick a cell-data-format of your choosing to fit your data/type/etc, replace it later without replacing the whole table), you can view it out-of-order, you can stream it, and you can use an index.
> With network protocols, you make one layer (Ethernet), you add another layer (IP), then another (TCP), then another (HTTP). Each one fits inside the last, but is independent, and you can deal with them separately or together.
It looks neat when you illustrate it with stacked boxes or concentric circles, but real-world problems quickly show the ugly seams. For example, how do you handle encryption? There are arguments (and solutions!) for every layer, each with its own tradeoffs. But it can't be neatly slotted into the layered structure once and for all. Then you have things like session persistence, network mobility, you name it.
Data formats have other sets of tradeoffs pulling them in different directions, but I don't think that layered design would come near to solving any of them.
Some early binary formats followed similar concepts. Look up Interchange File Format, AIFF, RIFF, and their applications and all the file formats using this structure to this day.
I would say that most of the video file formats today are a bit like that too: they allow different stream data encoding schemes with metadata being the definition of a particular format (mostly to bring up a more familiar example that is not as generic).
Have a look at Asset Administration Shells (AAS) -- it is a data exchange format built on top of JSON and XML (and RDF, and OPC UA and Protobuf, etc.).
Eh, this escaping problem was basically solved ages ago.
If we really wanted to make a UTF-8 data interchange format that needs minimal escaping, we already have ␜ (FS File Separator U+001C), ␝ (GS Group Separator U+001D), ␞ (RS Row Separator U+001E), ␟ (US Unit Separator U+001F). The problem is that they suck to type out so they suck for character based interchange. But we could add them to that emoji keyboard widget on modern OSs that usually gets bound to <Meta> + <.>.
But if we put those someplace people could easily type them, that resolved the problem.
But, binary data? Eh, that really should be transmitted as binary data and not as data encoded in a character format. Like not only not using Base64, but also not using a character representation of a byte stream like "0x89504E470D0A1A0A...". Instead you should send a byte stream as a separate file.
So we need a way to combine a bunch of files into a streaming, compressed format.
And the thing is, we already have that format. It's .tar.lz4!
Row separator is great, until you find that someone has put one in a data field. Like your comment. It just moves the problem (control and data mixed together) to a less-used control character.
> Whereas XML supports attributes, namespaces, CDATA, DTDs, QNames, xml:base, xml:lang, XInclude, etc etc. They gave it everything, including the kitchen sink.
But you don't have to use all those things. Configure your parser without namespace support, DTD support, etc. I'd much rather have a tool with tons of capabilities that can be selectively disabled rather than a "simple" one that requires _me_ to bolt on said extra capabilities.
It has the same problem as YAML, there are many, many ways to misconfigure your parser and there lie interesting security vulnerabilities. complex dsls are difficult to implement parsers for.
A simple dsl can be implemented in many programming languages very cheaply and can easily be verified against a specification. S-expressions are probably the most trivial language to write parsers for.
JSON is also pretty simple, but the spec being underspecified leads to ambiguous parsing (another security issue). In particular: duplicate key handling, key order, and array item order are not specified and different parsers may treat them differently.
If you do not go with DTD or XSD, you are only doing XML lookalike language, as these are XML mechanisms to really define the XML schema: a compliant parser won't be able to validate it, or maybe even to parse it.
Thus people go with custom parsers (how hard can it be, right?), and then have to keep fixing issues as someone or other submits an XML with CDATA in or similar.
The problem with this is that it only works as long as everyone instinctively knows that you don't use all the kitchen-sink stuff. It's there but everyone knows you don't use it because that way insanity lies.
And it works more or less OK until someone comes along who doesn't know that you don't use X, and it's in the standard so your implementation isn't standards-compliant and we'll go with your competitor over there instead because unlike you they do support it.
And so, over time, all the crap that "everyone knows" you don't use, gets activated and used. Speaking from experience here, not an invented edge case.
As a data interchange format, you can only depend on the lowest commonly implemented features, which for XML is the base XML spec. For example, Namespaces is a "recommendation", and a conformant XML parser doesn't need to support it.
The problem comes when malicious actors start crafting documents with extra features that should not be parsed, but many software will wrongly parse them because they use the default, full featured parser. Or various combinations of this.
It's a pretty well understood problem and best practices exist, not everyone implements them.
I consider CSV to be a signal of an unserious organization. The kind of place that uses thousand line Excel files with VBA macros instead of just buying a real CRM already. The kind of place that thinks junior developers are cheaper than senior developers. The kind of place where the managers brow beat you into working overtime by arguing from a single personal perspective that "this is just how business is done, son."
People will blithely parrot, "it's a poor Workman who blames his tools." But I think the saying, as I've always heard it used to suggest that someone who is complaining is a just bad at their job, is a backwards sentiment. Experts in their respective fields do not complain about their tools not because they are internalizing failure as their own fault. They don't complain because they insist on only using the best tools and thus have nothing to complain about.
I go back to my statement that skilled people don't complain about their tools because the tools they use are the best and they have nothing to complain about.
An organization that cared about data integrity absolutely could make CSV work. But that same organization would not use CSV because there would be no point in putting themselves through that kind of Mickey Mouse exercise.
> The kind of place that thinks junior developers are cheaper than senior developers…
Unless the junior developers start accepting lower salaries once they become senior developers, that is a fact. Do you mean that they think junior developers are cheaper even when considering the cost per output, maybe?
I believe they're referring to the fact that if almost all of your code is written by junior developers without mentorship, you will end up wasting a lot of your development budget because your codebase is a mess.
Constant erosion of data formats into the shittiest DSLs in existence is annoying. "Oh, hey, instead of writing Python, how about you write in
* YAML, with magical keywords that turn data into conditions/commands
* template language for the YAML in places when that isn't enough
* ....Python, because you need to eventually write stuff that ingests the above either way
.... ansible is great isn't it?"
... and for some reason others decide "YES THIS IS AWESOME" and we now have a bunch of declarative YAML+template garbage.
> There was a thread here the other day about using Sqlite as an interchange format to REDUCE complexity. Look, I love Sqlite, as an application specific data-store. But much like XML it has a ton of capabilities, which is good for a data-store, but awful for an interchange format with multiple producers/consumers with their own ideas.
It's just a bunch of records put in tables with pretty simple data types. And it's trivial to convert into other formats while being compact and queryable on its own. So as far as formats go, you could do a whole lot worse.
Basic dicts, arrays and templates might be the killer feature set for declarative data languages. If everyone coalesces to those eventually, it means there's something to it.
One issue with SQLite is that it's _not_ rewritten every time like JSON and XML, so if you forget to vacuum it or roundtrip it through SQL, you can easily leak deleted data in the binary file.
SGML has at least SP/OpenSP, sgmljs, and nsgml as full-featured, stand-alone parsers. There are also parsers integrated into older versions of products such as MarkLogic, ArborText, and other pre-XML authoring suites, renderers, and CMSs. Then there are language runtime libs such as SWI Prolog's with a fairly complete basic SGML parser.
ISO 8879 (SGML) doesn't define an API or a set of required language features; it just describes SGML from an authoring perspective and leaves the rest to an application linked to a parser. It even uses that term for the original form of stylesheets ("link types", reusing other SGML concepts such as attributes to define rendering properties).
SGML doesn't even require a parser implementation to be able to parse an SGML declaration which is a complex formal document describing features, character sets, etc. used by an SGML document, the idea being that the declaration could be read by a human operator to check and arrange for integration into a foreign document pipeline. Even SCRIPT/VS (part of IBM's DCF and the origin of GML) could thus technically be considered SGML.
There are also a number of historical/academic parsers, and SGML-based HTML parsers used in old web browsers.
> XML supports attributes, namespaces, CDATA, DTDs, QNames, xml:base, xml:lang, XInclude, etc etc. They gave it everything, including the kitchen sink.
Ah, the old "throw a bag of nouns at the reader and hope he's intimidated" rhetorical flutist. These things are either non-issues (like QName), things a parser does for you, or optional standards adjacent to XML but not essential to it, e.g. XInclude.
> Ah, the old "throw a bag of nouns at the reader and hope he's intimidated" rhetorical flutist.
The accusation here is a defleciton. OP's point isn't a gish gallop, it's that xml is absolutely littered with edge cases and complexities that all need to be understood.
> optional standards adjacent to XML but not essential
This is exactly OP's point. The standard is everything and the kitchen sink, except for all the bits it doesn't include which are almost imperceptible from the actual standard because of how widely used they are.
XInclude isn't part of the standard, and IME, a minority of systems support it anyway. The OP's comment is an obvious gish-gallop. You can assemble a similarly scary noun list for practically any technology.
Probably the same kind of person who tries to praise JSON's lack of comments as a feature or something.
IME there are two kinds of xml implementations, ones that handle DTDs and entitie definitions for you and are insecure by default (XXE and SSRF vulnerabilities), and ones that don't and reject valid XML documents.
If Apple continues with the budget Neo brand into a 12 GB iteration, I can see this becoming more realistic (rather than a novelty). That being said, Parallels may need to review its licensing with a budget tier in mind. Few will buy a cheap computer and then pay what Parallels charges for a license (regardless if one-time or subscription).
They need to introduce something below the Standard license targeting the Neo. What I'd personally consider is:
- Standard gets 16 GB vRAM (to perfectly target the base MacBook Air). But leave it at 4-6 vCPUs to not compete with the Pro (still for general computing, not power-users)
- New "Lite" tier with 8 GB vRAM max for the Neo (4 vCPUs). Increasing to 12 GB vRAM if the Neo does.
Then you target a $89 price point one-time-purchase for the "Lite" tier. Essentially three plans, targeting your three major demographics: budget, standard, and pro/power-user.
This isn't a novelty it will crush the low end of the PC market. No one cares if the next iteration will be better with 12GB of ram. The workloads that people say that 8GB can't handle will be ones that the actual users will either wait or tolerate. I've been noticing that people who review the Macbook Neo basically don't get the point [1] and just the headline of this article matters that VMs work and thats a big win. The most ridicuous thing about the laptop is that it appears to be reparable which sort of tells me this is a template similar to the M1 Air of the future laptop designs that Apple will come out with. [2]
> This isn't a novelty it will crush the low end of the PC market.
You took what I said out of context and then replied to something else. Running Parallels on a Neo is a novelty. Parallels is both what the thread is about AND what my reply was expressly about.
Nobody can reasonably read what I wrote, in context, and believe I was referring to the computer itself as a novelty.
I saw the other day people complaining about AI slop being posted on this site by new accounts - which I agree is bad.
Someone suggested that people with 10k karma and/or 10 years subscription to this site should be able to do things (such as auto-ban) to those accounts.
The account that misrepresented your comment and thus acted in bad faith is one of those 10k+ accounts.
To me, this is a data point showing the fallacy of long term subscription and/or karma accrual as evidence of their quality/good faith abilities
I admit now after rereading that I did misrepresent what they said and I should have read their comment more closely and it was a knee jerk reaction and that its my fault.
I take it's repairability slightly differently. That's because it is highly modular, and I think the reason for that is longevity. They put a lot of engineering effort into this thing, and so at this price point that has to pay back over a lot of devices over a long period. This design isn't going to change for many years, but the internals will iterate independently.
Windows doesn't run "just fine" on 4 GiB of RAM. I had a laptop with 6; Windows 10 became barely usable. If you want to run one, small, program at a time I think you'll be ok. Forget about web browsing; you'll get one tab and it'll be slow.
Agreed. Windows 10/11 can run just fine on 4GB of RAM. You just can't run anything inside of Windows 10/11 with 4GB of RAM.
The last version of Windows that felt like 4GB of RAM was performant for me with applications was Windows XP. Not that every computer running the 32-bit edition of Windows XP could even see/utilize a full 4GB of RAM properly, but at least it was fast.
I ran a Windows 7 system with 3GiB as a gaming machine and it was just fine. Windows 7... the last Windows release that was acceptable-ish. Memories...
A lightweight Linux desktop can keep a decent amount of browser tabs (using Firefox; avoid Chrome) on 4GB RAM if you set up compressed RAM properly. It's not foolproof like 8GB would be, but it's absolutely fine for casual use.
2015 laptop, spinning rust. Nevertheless, it was at least somewhat acceptable at purchase, but crapware installed with successive system updates brought it to a standstill. An SSD might've helped, but not by much. I wiped it and put Kubuntu on it to give to my wife, for whom it ran acceptably. She gave it back when she got a shiny new MacBook Air.
A SSD would have made an absolutely massive difference.
Source: I have clients that still have 2nd/3rd gen i5 systems running 3-4 GB of RAM with Windows 10 and they're tolerable solely thanks to SSDs. Swapping that much on a hard drive would just be painful to use.
Nobody should be interactively using a computer post-2018ish (whenever SSDs fell below $1/GB) that's booting and running primary applications off spinning rust. They're perfectly fine for bulk storage drives but anyone waiting for an operating system booting off one has wasted enough of their life in the last year to have paid for the SSD. Companies that wouldn't spend $100 on an upgrade are literally throwing money away paying their employees to wait on a shit computer.
> Heck, you can get 8GB Windows laptops with twice the SSD size of the MacBook Neo's for a little over half of the Neo’s price (again, at full MSRP.)
Let's see one of these $300 Windows laptops with 512GB of SSD (in a reasonable format, e.g. not an SD card), a body that isn't disposable, a screen that isn't a dim potato, a CPU that's within 20% of the Neo's performance, and a GPU that isn't embarrassed to be called a GPU.
I think you're misunderstanding, of course they do not exist. People don't get $300 windows laptops for their performance, build quality, or anything similar. Nor do they care about screen brightness, and 256GB is fine for the use case which is running word or some other simple application for as little $$ as possible.
The implication in the comparison is that they’re similar. The similarity between a Neo and a $300 PC is that they can both boot up and run at least one program. That’s about where it ends.
They existed on AliExpress. Chuwis and the likes (though the latest ones are lying about the CPU model). You usually get nvme storage, not the very best of course but it does the job. And IPS display. It's overall ok stuff, but the memory crisis has pushed them above 300 now.. They usually run N150s.
I also got two N100 NUC like boxes with 16GB DDR4, 512GB NVMe for €115 each. Bought them as the memory crisis was starting. One is now my home assistant, the other one runs matrix.
I still use an ancient chuwi for going to the makerspace. It's still got hours of battery.
I went looking, and did find stuff on Amazon, though none were made of an aluminum chasis, and none had the geekbench score anywhere near, and none had the screen brightness.
As I write this, the top Amazon search for "windows laptop" is a
> Lenovo IdeaPad 15.6 inch Business Laptop with Microsoft 365 • 2026 Edition • Intel Core • Wi-Fi 6 • 1.1TB Storage (1TB OneDrive + 128GB SSD) • Windows 11
The person who approved describing its 128GB storage as 1.1TB should be hanged.
The CPU also has[0] 31% of the single core and 14% of the CPU Mark rating. The screen has 220 nits (vs 500) brightness, comes with 4GB of RAM, and weighs 30% more. At least it's half price, though.
The shopping situation for Windows laptops is utterly dire.
I recently helped a friend ditch Windows for Linux on an 8GB budget laptop he had. It had win11 on it which could barely function with nothing running, kept swapping like crazy to it's anemic eMMC "SSD". Windows can't really run reasonably with 4GB of RAM. It will only technically boot.
Neo is powered by a fast and battery-friendly chip. It's definitely not a novelty any more than Chromebooks or Windows 11 notebooks with integrated graphics have been.
Don't underestimate what you can do with the 8 GB RAM. My mid-tier, Intel 2019 Macbook Pro with 32GB RAM suddenly died by the end of 2023. I quickly got a basemodel 256GB/8GB MacMini M2 as a replacement. While initialy supposed to be a temporary replacement until my MBP gets fixed, I ended up using it for another year as my main daily machine for everything, inluding professionally (fullstack software dev).
There was simply no need to upgrade, the MacMini was faster in all regards then my Intel MBP. Out of curiosity of its capability I wanted to see how gaming performs - I ended up playing through all three Tomb Raider reboots (Mac native, but using Rosetta!) at 1080p in high settings. Absolutely amazed how fast it was (mostly driven by the update to M2).
Only one thing ever made me notice the lack of RAM, and that was when I was running the entire test suite of our frontend monorepo. This runs concurrently and fires up multiple virtual browser envs (vitest, jest, jsdom) to run the tests in parallel. Stuttering and low responsiveness during the execution, but would complete in 3-4 minutes - it takes around 1 minutes on my current M4 MBP.
VMWare Fusion is free, even if it is a pain in the butt to download. It also has GPU paravirtualization for Linux/Windows which is the only reason I use a proprietary VMM on macOS these days.
Because I was fed up with parallels subscription model and they make me pay for the upgrade the non-subscription version with every new macOS release, I dropped parallels for UTM. I barely need windows, only every other month or so and often just for some small tasks. UTM is nice, but performance running windows is waaay below parallels. It is free, however, so I won't complain.
The performance story doesn't really make sense as both UTM and Parallels use Apple Hypervisor Kit which pretty much is the hypervisor running Windows. It should be identical.
Classic VM solutions like Virtualbox, VMware, Parallels etc. always come with guest tools and driver packages for the guest that have a massive impact on performance. Just because both solutions use the same hypervisor doesn’t mean they perform equally.
Intent looks interesting but the fact that they have their own credits system turns me off of it. I pay $200/mo for Claude Code and that's enough for me; I wish I could use Intent with that.
http://tart.run works great for running macOS (and Linux) VMs on macOS if you're technical. It's free for non-commercial uses too! (Don't think there's GPU acceleration tho).
There’s something called menu pricing, in order to keep its existing customer base buying their more expensive higher end models there need to be an unjustifiable drop in quality to switch.
The gap in spec is no mistake, if it was appealing enough for existing air-book users to downgrade it would cannibalise their bottomline.
I'd suggest you watch a teardown video. The Neo is absurdly repairable compared to just about anything in its category. It is extremely modular, and uses screws.
Twenty years ago, I worked part-time in a laptop repair facility for a large educational institution; this computer would have been a godsend (e.g. the first MacBooks had hundreds of screws, plastic everywhere).
Tell me about it. Even decades later, whenever my limbic dreaming needs "random technical noise" it still pulls up images of early 2000s laptop screw bins.
For nightmares, the screwbin either tips over repeatedly, or a dropped screw poofs indefinitely. Sometimes I wake up sweated, snackycaked crumb constellations jambed up'gainst bedsheets and fattie.
I skipped that entire generation, but the modern silicon keyboards are slick. My workshop computer is a 2012 MacBook "Pro" (disabled GPU), which also has fantastic keys. Best Apple keyboard ever has to be the 12" PowerBook G4, but that may just be nostalgic...
----
My major critique of the Neo is: for its intended market (younger), it should be more durable, not less — why is there no MagSafe power connector?
From a computer repair technician's POV, there will be lot$ of U$B port replacement$, due to power supply abusers (have you seen some students' charging cables?!). From manufacturer's POV: if they had MagSafe, they probably wouldn't need separate USB ports (IMHO).
It's almost guaranteed that the second revision of this product line will use MagSafe (you own the patent already!).
It is literally the main reason I would purchase an Air (were I in the market — am not). 15" screen would be reason#2.
There were several generations of Apple laptops that mysteriously didn't have MagSafe — I never bought one — very glad to see its return on my own M3MBAir15".
On a rational level it isn't surprising that the "compute" part is so small, given its origins, but for some reason it still caught me by surprised seeing something barely larger than a Raspberry Pi.
But, yeah, this thing is crazy modular. I particularly want to call out how trivial it is to replace the ports, given how common of a failure point they are. With the keyboard/monitor being more involved, but absolutely still approachable.
I believe he finds just a single piece of light adhesive keeping a cable in place, everything else (inc. the battery) is screws only.
It looks like it's still bigger than the logic board on the 12" MacBook from 2015.[1]
I really wish Apple would resurrect that form factor, as every other MacBook since has seemed bulky in comparison. Thanks to OpenCore Legacy Patcher[2], I still haven't gotten a newer mac. With a modern M series chip, it wouldn't have such rough tradeoffs in battery life and performance. I'd definitely buy it.
The Neo actually has similar dimensions to the 12” overall, though not as tapered. That’s possible because it has a much slimmer bezel. The Neo is about a third heavier though.
Very true. In a way this is demonstrating the tradeoff between cost, repairability and size/weight.
The Neo is getting a lot of praise because it's all modular and screwed together. That should make it very easy to repair and also for Apple to do iterative upgrades, but that makes it bigger and heavier and size/weight does matter to people. Hence this thread.
What version of MacOS are you running on yours? I have a 2017, 16GB, 1.7ghz and it's DOG slow on Ventura, even with reduce motion and reduce transparency. I have considered downgrading just to see if there's improvement.
I'm on Sequoia (v15.7.4). I have the original 2015 model (1.1Ghz Core M-5Y31, 8GB of RAM). It's a little slow, but fine for what I use it for (web browser, syncing music/photos to/from my phone, simple coding tasks). My main gripe is the battery only has 60% of its original capacity. Apple won't replace the battery, and doing it yourself is pretty tricky. At some point it'll break or no longer get security updates, and then I'll probably get a MacBook Air.
If you're using OpenCore Patcher, it's important to install the root patches to enable graphics acceleration. Otherwise it'll be ridiculously slow.
It's sort of ironic that at the time, there were many complaints that Apple made its devices thin at the expense of more important features. Now that M series MacBooks are thicker again, there are complaints that they are too thick.
I owned an i9 MBP with a discrete GPU. It absolutely was too thin. The CPU and GPU ran hot, it throttled like crazy. It would drain battery while USB-C docked while idling. Worst laptop I've ever owned.
The M1 Max I replaced it with was the opposite. I don't think I heard the fans for the first month. But it was much larger.
Based on the fanless Air, I strongly suspect an M1 Max in the old chassis would have been totally fine for non synthetic workloads and an M1 Pro would probably have been fine in all scenarios.
But I think they over corrected on the chassis design when they were shipping borderline faulty products and haven't walked it back yet.
I speculate they gave themselves a lot of thermal engineering margin to bump up TDP with the M-series MBP design (or perhaps they underestimated how good the M-series chips were going to be) The battery being at the TSA limit of 100Wh is quite nice as well. Another benefit is that it now differentiates the "Pro" line from the rest of the laptop lineup quite significantly. For most people the Air has enough power now and its plenty thin and light. The pro line is for "true" pros with actually intense workflows.
I'm a dev and the MBP line is definitely overkill for me. The 15" MBA handles everything I can throw at it.
By dimensions, assuming the 2015 ("eleven year old") version, the 13" M4 MBA is 0.17" wider, 0.9" deeper, and 0.32 lbs heavier. Where it's harder to compare is thickness. The M4 is 0.44" thick where the Intel one was tapered (0.11"-0.68").
Kind of hard to see that as "HUGE" in comparison. Bigger? Yes, but not really huge.
Apple could win a lot of likes if they added some form of storage expansion. Even a recessed USB-C for those tiny drives would go a long way.
Doesn't need to be super fast or fancy, just extend the life of device a little more.
Soldered internal storage and ram is fine if I can store my non-essentials in a cheap drive. Or my essentials in a way that is recoverable if device fails. iCloud helps for photos and families, but it's still far too slow if you don't live near it.
"AI-edited comments" is a very interesting one. Where is the line between a spelling/grammar/tone checker like Grammarly, that at minimum use N-Grams behind the scenes, and something that is "AI" edited? What I am asking is, is "AI" in this context fully featured LLMs, or anything that improves communication via an automated system. I think many people have used these "advanced" spellcheckers for years before Chatgpt et al came on the scene.
I think "generated comments" is a pretty hard line in the sand, but "AI-edited" is anything but clear-cut.
PS - I think the idea behind these policies is positive and needed. I'm simply clarifying where it begins and ends.
All this stuff is in flux. I thought a lot about whether to add the "edited" bit - but it may change. What I deliberately left out was anything about the articles and projects that get submitted here. There's a lot of turbulence in that area too, but we don't yet have clarity, or even an inkling, of how to settle that one.
Edit: what I mean is this: while most of those submissions aren't very interesting, some really are. Here's an example from earlier today:
Do the guidelines also disallow comments along the lines of "according to <AI>, <blah>"? (I ask this given that "according to a Google search, <blah>" is allowed, AFAIK.)
I would lean towards disallowing those. With "According to a Google search ...", someone can ask for specific links (and indeed, people often say to link to those sources to begin with instead of invoking Google). With "According to AI ... " - why would most readers care what the AI thinks? It's not a reliable source! You might as well say "According to a stranger I just met and don't know ..."
If you're going to say that the AI said X, Y, Z, provide a rationale on why it is relevant. If you merely found X, Y and Z compelling, feel free to talk about it without mentioning AI.
For reference, the point here isn't to say "what AI thinks", but what you found with the help of AI. The majority of the cases where I would say "according to AI, <blah>" are where <blah> actually does cite sources that I feel appear plausible. Sometimes they're links, sometimes they would be other publications not necessarily a click away. Sometimes I could independently verify them by spending half an hour researching (which is), sometimes I can't. Sometimes I could spend half an hour verifying them independently, sometimes I can't do that but they still seem worthwhile.
> If you merely found X, Y and Z compelling, feel free to talk about it without mentioning AI.
I think you're seeing this as too black-and-white, and missing the heart of the issue.
The purpose of mentioning AI is to convey the level of (un)certainty as accurately as possible. The most accurate way to do that would often be to mention any use of AI, rather than hiding it.
If AI tells me that it believes X is true because of links A and B that it cites, and I find those links compelling, then I absolutely want to mention that AI gave me those links because I have no clue whether the model had any reason to bias itself toward those sources, or whether alternate links may have existed that stated otherwise.
Whereas if a normal web search just gives links that mention terms from my query, then I get a chance to see the other links too, and I end up being the one who actually compare the contents of the different pages and figure out which one is most convincing.
Depending on various factors, such as the nature of the question and the level of background knowledge I have on the topic myself, one of these can provide a more useful response than the other -- but only if I convey the uncertainty around it accurately.
> The majority of the cases where I would say "according to AI, <blah>" are where <blah> actually does cite sources that I feel appear plausible. Sometimes they're links, sometimes they would be other publications not necessarily a click away. Sometimes I could independently verify them by spending half an hour researching (which is), sometimes I can't.
In my experience, LLMs hallucinate citations like crazy. Over 50% of the times I've checked, the citation either didn't exist, or it did but didn't support the LLM's assertions.
This is true not just from the chat, but for Google AI summaries.
When the references are more often wrong than not, you can understand why many will simply downvote you for bringing LLM citations into the conversation. Why quote a habitual liar?
(If you look at my other comments, I'm actually in favor of using LLMs in some capacity for HN comments. Just not in this case.)
>> actually does cite sources that I feel appear plausible.
> In my experience, LLMs hallucinate citations like crazy. Over 50% of the times I've checked, the citation either didn't exist, or it did but didn't support the LLM's assertions.
Note that those are specifically not the cases where the AI is citing "sources that I feel appear plausible."
(I also don't find over 50% hallucination to be accurate for Google AI summaries in my experience, but that depends on your queries, and in any case, I digress...)
> When the references are more often wrong than not, you can understand why many will simply downvote you for bringing LLM citations into the conversation. Why quote a habitual liar?
To be clear, I do understand both sides of the argument, and I don't think either side is unreasonable. I've also had the experience of being on both sides of this myself, and I don't think there's a clear-cut answer. I'm just hoping to get clarity on what the new policy is as far as this goes. I'm sure it'll be reevaluated either way as time goes on.
> (I also don't find over 50% hallucination to be accurate for Google AI summaries in my experience, but that depends on your queries, and in any case, I digress...)
I should point out that I'm not saying 50% of the AI summaries have an error. Merely that the references it provides me don't state what the summary is claiming. The summary may still be accurate, while the references incorrect.
AI is not a source. A Google search result page is not a source. Hopefully, these things help you find a source. If you're posting something you feel the need to source, post the source along with your comment! For example, don't say "according to a Google search, x"... say something like "according to Microsoft's documentation, x" and provide a link to Microsoft Learn page...
I don't have a problem with that. First off it's not very common. Second off it can add to a conversation, just as it can with in-person discussions. If you feel like it doesn't, don't upvote and don't reply. There's no value in pretending we're Woodward and Bernstein every time we leave a comment.
I think those should be allowed iff the nature of being AI-generated is relevant to the topic of discussion — e.g. if we're talking about whether some model or other can accurately respond to some prompt and people feel inclined to try it themselves.
I constantly read those comments and I personally have conflicting opinion with them. On one hand, it's interesting to compare what is coming out of models, but on the other hand, LLMs are all non-deterministic, so results will be fairly random. On top of that, everybody has a different "skill" level when prompting. In addition, models are constantly changing, therefore "I asked chatGPT and it said..." means nothing when there is a new version every few months, not to mention you can often pick one of 10+ flavors from every provider, and even those are not guaranteed to not be changed under the hood to some degree over time.
I explained this in a bit more depth in an adjacent reply (feel free to take a look) but obtaining the source from AI doesn't achieve the same thing. For example, there might be other links that contradict that source, which the AI wouldn't cite. Knowing that AI picked the "best" one vs. a human is incredibly relevant when assigning and weighing credibility.
We don't want people copy-pasting in comments generally. Summary comments, onlyquote comments (i.e. consisting of a quote and nothing else), duplicate comments are other examples of this. It's not specific to LLMs.
However, that's probably not critical enough to formally add to the explicit guidelines, so it's probably fine to leave it in the "case law" realm—especially because downvoters tend to go after such comments.
I wasn't sure whether it was an omission or an unintended gap, as the guideline specifically points to "comments". So it seems AI generated/edited posts are fine. Strange, because both can be flagged/downvoted if it was to be left with that.
Please rethink the “edited” bit on accessibility grounds.
I have a kid with severe written language issues, and the utilisation of speech to text with a LLM-powered edit has unlocked a whole world that was previously inaccessible.
I would hate to see a culture that discourages AI assistance.
> I would hate to see a culture that discourages AI assistance.
Mostly I think the push back is about ai assistance in its current form. It can get in the way of communicating rather than assisting. The cost though is mostly borne by the readers and those not using the AI for assistance. I have seen this happen when the ai adds info and thoughts that were tangental to the original author and I think, but I can not verify times where an author seems to try to dig down on the details but seemingly can not.
That's totally legit and your kid, should they ever take an interest in Hacker News, is welcome here.
These rules are always fuzzy and there's always a long tail of exceptions. All the more so under turbulent conditions like right now. I wrote more about this elsewhere in the thread, in case it's useful: https://news.ycombinator.com/item?id=47342616.
Yes, please at least have a carveout for accessibility. I definitely have dictated HN comments in the past, and my flow uses LLMs to clean it up. It works, and is awesome when you're in pain.
Hear hear. And like many other aspects of accessibility, it will help a huge number of people who may not have any severe issues. e.g. non-native English speakers using LLM-powered edits.
Since it's mostly a good-faith rule to begin with, it seems easy to add something like, "unless you are using it as an assistive technology for accessibility reasons".
Yes, and that's the case with all the rules. I don't want to say "you should break them when it makes sense" because if I do, someone will post "Tell HN: dang says break the rules". But the rules are there to serve the intended spirit of the site—not the other way around. If you're posting in that spirit, I would hope we would recognize and and welcome that, not tut-tut it with rules.
You should use your own words. It might seem that a tool like Grammarly is just an advanced spellcheck, but what it's really doing is replacing your personal style of writing with its own.
It's better to communicate as an individual, warts and all, than to replace your expression with a sanitized one just because it seems "better." Language is an incredibly nuanced thing, it's best for people's own thoughts to come through exactly as they have written them.
My elementary school kid came home yesterday and showed me a piece of writing that he was really proud of. It seemed more sophisticated than his typical writing (like, for example, it used the word "sophisticated"). He can be precocious and reads a ton, though, so it was still plausible that he wrote it. I asked him some questions about the writing process to try to tease out what happened, and he said (seemingly credibly) that he hadn't copied it from anywhere or referenced anything. He also said he didn't use any AI tools. After further discussion, I found out that Google Docs Smart Compose (suggested-next-few-words feature) is enabled by default on his school-issued Chromebook, and he had been using it. The structure of the writing was all his, but he said he sometimes used the Smart Compose suggestions (and sometimes didn't). He liked a lot of the suggestions and pressed tab to accept them, which probably bumped up the word choice by several grade levels in some places.
So yeah, it can change the character of your writing, even if it's just relatively subtle nudges here or there.
edit: we suggested that he disable that feature to help him learn to write independently, and he happily agreed.
The analogy with tab-completion of code seems apt. At first you blindly accept something because it has at least as good a chance of working as what you would have typed. Then you start to pay attention, and critically evaluate suggestions. Then you quickly if not blindly accept most suggestions, because they're clearly what you would have written anyway (or close enough to not care).
Emacs has completion (but you can bind it to tab). The nice thing is that you can change the algorithm to select what options come up. I’ve not set it to auto, but by the time I press the shortcut, it’s either only one option or a small sets.
From his description, it sounded like this was more of #1. He cared a lot about the topic he was writing about, and has high standards for himself, so it's very likely that he would have considered and rejected poor suggestions.
I have mixed feeling about it. On the one hand, you're right: carefully considering suggestions can be a learning opportunity. On the other hand, approval is easier than generation, and I suspect that without flexing the "come up with it from scratch" muscle frequently, that his mind won't develop as much.
That reminds me of one of the biggest IMO missing feature of Wordle: They never give a definition of the word after the game is finished! I usually do end up googling words I don't know (which is quite often) but I'm guessing I'm one of the few who goes to the trouble. I've even written to The New York Times a couple times to suggest adding a short definition at the end as I honestly feel like a ton of people could totally up their vocabulary game and it surely could be added with minimum effort (considering they even added a Discord multiplayer mode).
Is Wordle really the best vehicle for that, though? I mean, it tends towards a subset of 5-letters words the audience is more likely to know in advance, excluding a lot of the more-surprising words.
A "click to see more about why this answer fits" crossword, on the other hand...
How often have you played Wordle? I've played well over 1000 games, and at lesat 1/5th of those were words I had to look up. They seem to enjoy picking obscure words in order to make the game more challenging.
None of those stand out as "WTF does that even mean", but maybe I'm the weird one if we adjust for age-demographics or book-reading.
If I had to guess at a riskier 20%... Guava, a fruit some people may not have had; Gunky because it's slang; Mogul, Vogue, and Mooch were borrowed from other languages; Cello is something people may have heard more than read; Hoist.
Even as someone who already knows the definitions of 100% of those words, it'd still be neat to see those definitions, and maybe even some etymologies or other interesting trivia. “Cello” would be a great opportunity for a factoid about the oldest known cello, “guava” would be a great opportunity for a quick recipe using guavas, etc.
> Perhaps the unusual outcomes are just more memorable, and so seem more frequent?
That's a good point and could very well be true. I just know I've played plenty of games where I was mad that they didn't show the meaning. So let's say its 5% for native speakers, and up to 20% for non-native speakers - that's still a golden opportunity to expand vocabularies. And honestly it can't be a lot of work to add a couple lines of static text. At worst it would be ignored, and at most, help people learn more interesting words.
Oh how I despise these suggestions. You sometimes look for a way to express something and you are on the verge of giving the world something truly original, but as soon as your brain sees the suggestion it goes "oh yeah that fits"
True! There's an important cybernetic aspect to all this, where an automatic suggestion can be an interruption, sometimes worse if the suggestion is decent.
A certain amount of friction is necessary, at least if the goal is to help the person learn or make something original.
I disabled them immediately, it feels like the tech version of the ADHD person who keeps interrupting you with what they think you are trying to say. Even if the suggestion is correct, it saves you at most 2 seconds at the cost of interrupting you constantly.
I see the suggestions and then choose something different anyway. I don't want to use one of the top 3 most popular responses to an email from a friend. Even if it's something transactional.
As an adult, I do too. As a middle schooler, we absolutely used word processors’ thesaurus features to add big words to our essays because the teachers liked them.
One problem I see is that LLMs have a more nuanced... well, model of how words and their meanings relate to each other than a dead-tree thesaurus could ever present, what with its simplified "synonym" and "antonym" categories. Online versions try to give some similarity metrics, but don't get into the nuance. (It's not as if someone who takes either approach would want to spend the time reading and understanding that, anyway.)
> she could tell when students were using it to make their writing more fancy pants
I had two teachers who called us out on this, and actually coached us on our writing, and I remember them fondly. (They were also fans of in-class essaying.)
As a non native English speaker my own words wouldnt be in English. If I express myself in English I soon struggle for the right words. On the other hand I think when I read some English text I'm quite capable of sensing the nuances. So it feels when I auto translate my text to English an than read against it again and make some corrections, I can express my thoughts much better.
>It's better to communicate as an individual, warts and all, than to replace your expression with a sanitized one just because it seems "better."
It is definitely not true that it is better for a poster to communicate like an individual when it comes to spelling and grammar. People ignore posts that have poor grammar or spelling mistakes, and communications that have poor grammar are seen as unprofessional. Even I do it at a semi-subconscious level. The more difficult or the more amount of attention someone has to pay to understand your post, the less people will be willing to put in that effort to do so.
Exactly. Tell that to whoever is grading your next paper, or reviewing your resume, or watching your presentation. People are judged by their linguistic ability even in cases where it shouldn't matter. It's a well known heuristic bias. It's no surprise that many of the people here denying it are themselves quite literate.
For what it's worth, I had a quick look through your comment history and your English seems just fine to me as a native speaker (at least for informal communication).
People who don't have English as their first language often seem to underestimate how good their English actually is. I wonder if it's because their reference point is formal English rather than the much more forgiving English we use in casual day-to-day conversation.
Books and newspapers have had editors for centuries. It is just code review for the written word.
[It looks like MS Word 97 had the ability to detect passive voice as well, so we're talking 30 year old technology there that predates LLMs -- how far down the Butlerian Jihad are we going with this?]
I don't personally use AI/LLMs for any informal writing here or on reddit, etc. But I think it is pretty weird to be overly concerned around people, particularly ESL, who use tools to clean up their writing. The only thing I really care about is when someone posts LLM regurgitated information on topics they personally don't know anything about. If the information is coming from the human but the style and tone is being tweaked by a machine to make it more acceptable/receptive and fix the bugs in it, then I don't understand why you're telling me I need to care and gatekeeping it. It also is unlikely to be very detectable, and this thread seems to only serve a performative use for people to get offended about it.
Other tools to clean up writing are allowed. They did not tell you you must care. You told them they must not. The submisson's use was to tell you and others LLM generated tone was not more acceptable.
> HN has always been a spirit-of-the-law place, and—contrary to the "technically correct is the best correct" mentality that many of us share—we consciously resist the temptation to make them too precise.
The problem with “spirit-of-the-law” is that having rules be subject to discretion is a pretty clear avenue for discrimination and abuse. Not as big of a deal for an Internet forum as it would be for, say, a country's legal code and the enforcement thereof, but the lack of a clear standard for a rule makes that rule hard to follow and harder to enforce impartially.
The typical problem with trying to create clear standards with no spirit of the law is that it never matches the intentions with the 1st, 2nd, etc iterations of developing the clear standards. At least when trying to deal with something nuanced. It can get to the point that it takes more time and effort to follow the clear standards than to think through it fresh each time. The rules can also eat up time and effort to maintain and distract from the original purpose.
"Don't post generated comments or AI-edited comments."
What about non-native speakers? Can they not use translation software like google translate any more?
"Don't post generated comments or AI-edited comments, except for translating to english"
What about cases of disabilities?
"Don't post generated comments or AI-edited comments, except for translating to english and when used as assistive technologies."
Some translation tools and assistive technologies are still going to case the same issues that we have right now so maybe limit the technologies used
"Don't post generated comments or AI-edited comments, except for translating to english and when used as assistive technologies. Technologies x, y, z are not allowed a and b and similar can be used for translation c and d as assistive technologies"
But we do not want to spend time/effort on filtering technologies and/or people into the above categories.
In the long run we likely will come up with technologies that most everyone is satisfied with using in different use cases, spelling grammar, assistive, maybe even tone, and others.
In the mean time we can not let the perfect be the enemy of the good. If there are clear standards that achieve the goals, great, if not we have to do something until everything shakes out.
Nobody is going to stop using grammarly extensions to post to HN, nobody is going to be able to detect its usage.
This thread just lets a certain kind of people put on their best condescending hall-monitor voice and lecture other people about how they should behave.
And the rule is arguably less useful than speed limits and will be broken about as often (at least speed limits have a very real link to physical safety via kinetic energy).
> This thread just lets a certain kind of people put on their best condescending hall-monitor voice and lecture other people about how they should behave.
I think it is, at least mostly, about the blatant cases that are often already down voted and flag and make it official.
> And the rule is arguably less useful than speed limits and will be broken about as often (at least speed limits have a very real link to physical safety via kinetic energy).
I often see the rules in:
https://news.ycombinator.com/newsguidelines.html
broken, mostly small ways, I still think we are better off with them or something similar rather than having nothing.
> I think it is, at least mostly, about the blatant cases that are often already down voted and flag and make it official.
Which raises the question of why an official guideline is necessary in the first place. Obvious LLM slop being downvoted into oblivion is itself a good enough measure, without needing to create extra rules by which to hang the innocent.
I was just re-reading the passage from Plato's "The Phaedrus" on writing & the "art" of the letter for an essay I'm working on, and your remark is salient for this discussion on LLM-style AI and social media at large.
That's true, but on the flip side I regularly get downvoted because my English is not the best, so say it mildly. So, now I need to be really careful, to a) write in a good English or b) not to be recognised as an LLM corrected version of my English. Where is the line? I shouldn't be downvoted for my English I think, but that is the reality.
Edit:
I already got downvoted. :-) Sure, no one can tell exactly why. Maybe the combination of bad English _and_ talking sh*ce isn't ideal at all. :-D Anyways, I have enough karma, so I can last quite a while..
The quality of my writing varies (based on my mood as much as anything else, I suppose), but when it is particularly good and error-free then I often get accused of being a bot.
Which is absurd, since I don't use the bot for writing at all.
It’s possible of course but reading all the comments from various non-native English speakers here it seems like a common story. It may indicate a subliminal bias in readers (most of whom are presumably American).
Note that those comments are written in perfectly understandable English. Further note how often you come across comments written in perfectly understandable English, but they're downvoted anyway.
It suggests a bias in writers to assume that people would agree with them if only they could express their thoughts accurately.
> It's better to communicate as an individual, warts and all, than to replace your expression with a sanitized one just because it seems "better." Language is an incredibly nuanced thing, it's best for people's own thoughts to come through exactly as they have written them.
This is the opposite of how language works. You want people to understand the idea you're trying to communicate, not fixate on the semantics of how you communicated. Language is like fashion - you only want to break the rules deliberately. If AI or an editor or whatever changes your writing to be more clear and correct, and you don't look at it and say "no, I chose that phrasing for a reason" then the editor's version is much more likely to be understood correctly by the recipient.
I'm not sure I agree with this. I don't really want to see someone else's stylistic "warts".
I just want clean, easy-to-read content and I don't care about the person who wrote it. A tool like Grammarly is the difference between readable and unreadable (or understandable and understandable) for many people.
You could run the comments everyone else posts through an AI tool and ask it to rephrase it so that it is clean, and easy-to-read.
You could even write a plugin for your favorite web browser to do that to every site you visit.
It seems hard to achieve the inverse that is (would you rather I use i.e.?) rewrite this paragraph as the original author did before they had an AI re--write it to make it clean, (--do you like oxford commas, and em/en dashes! Just prompt your AI) and easier to read
> You could run the comments everyone else posts through an AI tool and ask it to rephrase it so that it is clean, and easy-to-read.
For those coming from a language other than English, you are more likely to lose information by using a tool to “reconstruct” meaning from poorly phrased English as an input, as opposed to the poster using a tool to generate meaningful English from their (presumably) well-written native language.
There's a big difference between me running a filter on other people's words, and those people themselves choosing to run one and then approving the results.
I personally don't see a problem with someone using a grammar checker as long as they aren't just blindly accepting its suggestions. That said, if someone actually is using it in that way, it shouldn't be detectable anyway, so it probably doesn't matter all that much whether or not it's included in the letter of the rule.
I disagree. HN is going to bury my raw unedited tirade of a comment about those fucking morons that couldn't code their way out of a paper bag. If I send a comment to ChatGPT and open up the prompt with "this poster is a fucking dumbass, how do I tell them this" and use that to get to a well reasoned response because that's the tool we have available today, we're all better off.
The guidelines state:
> Be kind. Don't be snarky. Converse
> Edit out swipes.
> Don't be curmudgeonly.
On the best of days I manage to follow the rules, but I'm only human. If I run my comment through ChatGPT to try and help me edit out swipes on the bad days, that's not ok?
I'm not using ChatGPT to generate comments, but I've got the -4 comments to show that my "thoughts exactly as they have written them" isn't a winning move.
If you see an incompetent coder and wish to communicate that the person responsible is a "fucking moron/dumbass", the tone with which you do so is not the problem. Tell us what is wrong with the code, as objectively as possible. That's what the guidelines are trying to convey.
But the problem is that people with poor written language / english skills are 'competing' with people who have superb skills in this domain.
There are people here who sit at a desk all day banging out multipage emails for work who decide to write posts of a similar linguistic calibre for funsies.
Meanwhile you have someone in a developing country who just got off a brutal twelve hour shift doing manual labour in the sun who wants to participate in the conversation with an insightful message that they bang-out on a shitty little cellphone onscreen keyboard while riding on bumpy public transit.
You could have a great idea and express it poorly and be penalized for doing so here while someone could have a blah idea expressed excellently and it's showered in replies despite being in some metrics (the ones I think are most important) worse than the other post.
This is a perfect example of what I'm talking about.
I knew someone was going to comment on my use of the word there despite me putting it in quotes which was intended to let the reader know that I meant that word as an approximation of what I was meaning.
When I say competing I mean competing in the space of ideas here. There is a ranking system here that raises or lowers the visibility and prominance of your comments and it's based on upvotes by other uses. For better or worse people penalize comments with grammatical errors over ones that don't and that affects how much exposure other users have to the ideas that people write and how much interaction they get from them.
If that's the case why would somebody who has good ideas but poor expressive capability bother posting here if their comments are just going to get ignored over relatively vapid comments that are grammatically correct?
> If that's the case why would somebody who has good ideas but poor expressive capability bother posting here if their comments are just going to get ignored over relatively vapid comments that are grammatically correct?
No, I get your point. Unfortunately, alot of people here try to act high and mighty like they are posting here for some altruistic reason. The reason why I, you, and everyone else posts here is the human reason that we want others to engage with our posts. In order to do that, you have to put your best foot forward, which includes making sure the spelling and grammar of your posts is correct. While I do not use an LLM for this, I think that it is vaild to use these tools to make sure nothing gets in the way of whatever point you are trying to make.
> In order to do that, you have to put your best foot forward
In English. You have to put your best foot forward in English. And in your environment with the resources you have at your disposal.
For example, I'm currently engaging with you between steps in a chemistry process that's happening under the fumehood next to me while wearing a respirator, a muggy plastic chemical resistant gown and disposable gloves nitrile globes.
I am absolutely certain that these conditions are different than the ones I would need to 'put my best food forward' in this discussion. I'm also certain that quite certain that you and I would both absolutely stumble if we were obligated to particpate in this forum in a language that we're not proficient in as many users often attempt to do and are unfairly penalized for by other members of the community.
I'm with you on the LLM usage for grammatical issues for non-native speakers. I bet more in this community would feel the same way if Dang whimsically mandated that people had to use a language other than English on certain days of the week.
> You could have a great idea and express it poorly and be penalized for doing so here while someone could have a blah idea expressed excellently and it's showered in replies despite being in some metrics (the ones I think are most important) worse than the other post.
I absolutely do not understand this comment. Are you saying that posting is competitive and that comments have "metrics"?
Yes! If my comment is above yours in a thread, it means I got more upvotes than you did, which means I get special bonuses and more to eat and you go hungry in Internet land. Also it means I'm better than you (obviously) and I get to go to this secret club with all the pretty people and you're not invited. Isn't that how this all works?
I think that the line between A"I" editing to fix grammar or to translate from a different native language and A"I" editing by using an LLM is one of those things that's very hard to unambiguously encode in written guidelines, but easy to intuitively understand using common sense, in the vein of I know it when I see it.
> Where is the line between a spelling/grammar/tone checker like Grammarly
For me, the line is precisely at the point where a human has something they want to say. IMO - use the tools you need to say the thing you want to say; it's fine. The thing I, and many others here, object to is being asked to read reams of text that no-one could be bothered to write.
On a technical level, you can really only guard against changing your semantics and voice - if you're letting software alter the meaning, or meanings, you intend, and use words you don't normally use, it's probably too far.
This is probably ok:
>> On a technical level, you can really only guard against software that changes your semantics or voice. If you're letting it alter the meaning (or meanings) you intend, or if it starts using words you would never normally use, then it's gone too far.
This is probably too far:
>>> On a technical level, it's important to recogn1ize that the only robust guardrail we can realistically implement is one that prevents modifications to core semantics or authorial voice. If you're comfortable allowing the system to refine or rephrase the precise meanings you originally intended — or if it begins incorporating vocabulary that doesn't align with your typical linguistic patterns — then you've likely crossed a meaningful threshold where the output no longer fully represents your authentic intent.
Something to consider is that you can analyze your own stylometric patterns over a large collection of your writing, and distill that into a system of rules and patterns to follow which AI can readily handle. It is technically possible, albeit tedious, to clone your style such that it's indistinguishable from your actual human writing, and can even icnlude spelling mistakes you've made before at a rate matching your actual writing.
AI editing is weird, though. Not seeing a need, unless English isn't your native language.
How so and why? I know plenty of people whose writing naturally carries a tone that they don't intend. I often help them to change their wording to be less confrontational or seemingly sarcastic when it isn't meant to be. Would you say it is wrong for them to get assistance to get the tone they intend rather than the one they would tend to write?
It's the difference between correctness and tone/character/semantics (tone and character do affect semantics). We need to do things we don't quite mean in subjective spaces, to learn. Developing yourself is wonderful, but presenting a writing style that does not yet represent your learned tone feels disingenuous to the reader and harms the tone of the whole conversation. Using LLMs to iterate might help you learn, but use that tool privately, or with friends/family/mentors. With others, simply make your mistakes.
To be clear, I also think you shouldn't rely on auto-correction or LLMs for correctness (they are great for identifying your mistakes, but I think you should then fix the mistakes yourself, to develop your brain). It's just that "assisted" correctness isn't misleading/harmful in the way that "assisted" tone/character/semantics are.
When a policy is introduced to seemingly guard against new problems, but happens to be inadvertently targeting preexisting and common technology, I don't feel like it is "lawyering" it to want clarity on that line.
For example, it could be argued this forbids all spellcheckers. I don't think that is the implied intent, but the spectrum is huge in the spellchecker space. From simple substitutions + rule-based grammar engines through to n-grams, edit-distance algorithms, statistical machine translation, and transformer-based NLP models.
I think the only practical litmus test here is whether you can stand by the text as your own words. It’s not like we have someone looking over commenters’ shoulders as they type.
Ultimately, this comes down to people making a good-faith judgment about how much AI was involved, whether it was just minor grammatical fixes or something more substantial. The reality is that there isn’t really a shared consensus on exactly where that line should be drawn.
Grammarly use is outright prohibited by this; AI-edited writing is no longer writing that you hold personal and exclusive responsibility for having written. Consider Stephen Hawking’s voice box generator. While the sounds produced were machine-assisted, the writing was his alone. If you find yourself unable to participate in this web forum without paying a proofreader (in time, money, or cycles) to copy-edit your writing, then you’re not welcome on HN as a participant.
> If you find yourself unable to participate in this web forum without paying a proofreader (in time, money, or cycles) to copy-edit your writing, then you’re not welcome on HN as a participant.
It’s not sarcasm. If you feel if I have misunderstood the intent of the guideline we’re discussing — “Don’t post generated/AI-edited comments”, as the title currently reads, then I’m happy to discuss further. (I often make logical negation errors that I miss in proofing, so it’s possible I slipped up, too!)
I thought it was sarcasm given you are asking people to “pay a proofreader”. This sounds ludicrous. Could you clarify wha you meant by that line if it’s not sarcasm? Because I’m having a hard time thinking that it’s meant to be taken at face value.
No worries. The post I replied to was asking if use of ‘grammar improvement services’ (my paraphrase) qualified as AI-assisted writing at HN. All such services cost something; Grammarly makes a lot of money charging businesses, AI consumes watts of power that someone pays for, and even Microsoft Word’s grammar checker spins up the CPU fans on an old Intel laptop with a long enough document. I took from that the generic point that one “pays” for machine-assisted proofreading by one means or another, whether it’s trading personal data for services (Google) or watts of power for services (MSWord et al.) or donating writing samples to a for-profit training corpus (Grammarly free tier) or paying for evaluations where your data is not retained for training (Grammarly paid enterprise tier with a carefully-redlined service contract) and generalized to “pay for machine proofreading”.
Then, I considered whether HN would appreciate posts/comments by a human where they’d had a PR team or a hired editor come in and review/modify/distort their original words in order to make them more whatever. I think that this probably is most likely to have occurred on the HN jobs posts, and I’ve pointed out especially egregious instances to the mods over the years — but in general, the people who post on HN tend to do so from their own voice’s viewpoint, as reaffirmed by the no-AI-writing guideline above. So I decided instead to say “pay a proofreader” because, bluntly, if the community found out that someone was paying a wage to a worker to proofread their HN comments, the response would plausibly be the same mob of laughing mockery, disgusted outrage, and blatant dismissal that we see today towards AI writing here. “You hired someone to tone-edit your HN comments?!” is no different than “You used Grammarly to tone-edit your HN comments?!” to me, and so it passed the veracity test and I posted it.
Finding it more refreshing these days when reading text with broken grammar, incorrect use of pronouns, etc. especially for HN, the human connection is more palpable. It’s rarely so bad that it’s not understandable
I saw a similar conversation somewhere about some project saying they don't allow AI generated code.
It was asked that if "AI Generated Code" is just code suggested to you by a computer program, where does using the code that your IDE suggests in a dropdown? That's been around for decades. Is it LLM or "Gen AI" specific? If so, what specific aspect of that makes one use case good and one use case bad and what exactly separates them?
It's one of those situations where it seems easy to point at examples and say "this one's good and this one's bad", but when you need to write policy you start drowning in minutia.
Projects cannot allow AI generated code if they require everything to have a clear author, with a copyright notice and license.
IDE code suggestions come from the database of information built about your code base, like what classes have what methods. Each such suggestion is a derived work of the thing being worked on.
That is not correct because it hasn't been tested in court. In past decisions about who owns the output generated by a computer program the owner has been the operator of the program. You own your Word documents and Photoshopped images. There is good reason to believe that LLM output where you provided the prompt would also fit under that umbrella. We are still waiting for that to be tested in court.
OK, make that: many projects whose stewards understand copyright issues cannot accept code contributions whose copyright and licensing theory has not been tested in court.
Nobody is actually confused about what AI generated code means in those cases, they're just trying to be argumentative because they don't like the rules
Your comment is one of semantics. Worth discussing if we're talking a truly hard line rule rather than the spirit of the rule.
I benefit from my phone flagging spelling errors/typos for me. Maybe it uses AI or maybe it uses a simple dictionary for me. Maybe it might even catch a string of words when the conjunction isn't correct. That's all fair game, IMO. But it shouldn't be rewriting the sentence for me. And it shouldn't be automatically cleaning up my typos for me after I've hit "reply". That's on me.
I caught myself structuring a comment like an LLM on another site. It's expected that people who chat heavily to LLMs will start to mirror their styles.
I agree on the editing. We use these things all the time - chances are many of you are using it right now as you type on your phone and it checks your spelling for you.
By the same token, what if I have a human editor help me out? What if we go back and forth on how to write something, including spelling, grammar, tone, etc. For example, my wife occasionally asks me to review her messages before sending them because she thinks I speak well and wants to be understood correctly.
The problem is that we are punishing the technology, not the result. Whether it's a human or an LLM that acts as your editor should be irrelevant; what matters is that you are posting your own work and not someone else's. My wife having me write all of her messages for her would be just as dishonest as her having an LLM write all of her messages for her if she always presented them as her own writing. But if she writes the copy and I provide suggests for changes, what's the harm in that? And why should it matter if it's a human or an LLM that provides that assistance?
i don't care if someone has bad grammar, i want to hear their thoughts as they came up with them, we're all intelligent beings and can parse the meaning behind what you write.
i type my comments without capitalization like i'm typing into some terminal because i'm lazy and people might hate it but i'm sure they prefer this to if i asked an LLM to rewrite what i type
your writing style is your personality, don't let a robot take it away from you
I, on the other hand, find incorrect grammar mildly annoying, especially when it's due to laziness. It distracts from the thoughts being conveyed. I appreciate when people take the time to format comments as correctly as they're able.
In fact, I'd argue that lazy commenting is the real problem, which has now been supercharged by LLMs.
ML based word or phrase editing is hardly a problem any more than pre-AI spellcheckers were. AI sentence and paragraph manufacturing is a problem and everyone knows the difference between that slop and a spellchecker. No one cares if your editor does inline spellchecking or even word autocomplete. What they care about is slop and word at a time spelling or phrase grammar checking are harmless.
Thanks for the links. Strangely I cannot get past the arhive.is "I am not a robot" wall. I click it, then it refreshes, I click it again, and then it asks me to find Traffic Lights, and then "I am not a robot," repeat.
I don't know what changed, but in recent months it has become impossible to pass. Not a single success, whereas earlier it wasn't failing ever. Firefox on Android. Maybe I look like a bot now, for whatever reason.
Are you behind finnish IP? The site owner decided to ban all Finnish IPs due to a dispute with Finnish person who doesn't even seem to be living there. Also they DDoSed their blog leading to archive.is being banned from wikipedia
Claims Dang is using AI, and that other people are using AI even though most of the flagged post predate popular AI products. Really destroys the whole EM-Dash === AI thing.
which never should have been a thing,
because it was obviously wrong
yes AIs is more likely to use em-dash,
but that is just one, by itself very insufficient, indicator.
it's like hip size. In average over the populations
they are wider for woman. But the effect is too small
to classify the gender of a hip bone by it's size.
(Like for a specific age range and ethnicity, the difference
in median is like 1" or so, while there is a >10" difference
between 5%-percentile and 95%-percentile. Varying by gender
in difference and exact distribution.) Well I guess em-dash
are more an indication for AI then hip size for gender... lol
So if EM-Dash is good proof of AI usage, and people who we can see didn't use AI / or predate AI being popular, are flagged, then that undercuts it by a lot.
People claim, you can use Claw-agents more safely while getting some of the benefits, by essentially proxying your services. For example on Gmail people are creating a new Google accounts, forwarding email via rule, and adding access to their calendar via Google's Family Sharing. This allows the Claw agent to read email, access the calendar, but even if you ask it to send an email it can only send as the proxy account, and it can only create calendar appointments then add you as an attendee rather than destroy/altering appointments you've made.
Is the juice worth the squeeze after all that? That's where I struggle. I think insecure/dangerous Claw-agents could be useful but cannot be made safe (for the logical fallacy you pointed out), and secure Claw-agents are only barely useful. Which feels like the whole idea gets squished.
reply