fun fact: IBM asked for, and got, an exception from that clause.
I guess they’ll use JSON when they’re building the database to do the next holocaust.
This isn’t talked about enough.
So do I have to look it up now? Ugh, but I am le tired
It’s talked about in this thread. The short version that IBM built a logistics machine for the Nazis that was used to coordinate the transport of supplies for the war effort and transporting people to concentration camps.
TL:DR: IBM sold machines to the Nazis that they used to track down people to put into concentration camps. It would’ve been harder to do if they had to rely on paper records only.
Jeez, hard to imagine them not having been paper. Sometimes it’s easy to forget. Kind of like the IRS using computers older than some senators, and that’s saying something.
Take ze nap and then fire ze missiles!
Did they reveal what the evil task they were using it for was?
They make chips for missiles.
Knowing IBM, probably something to do with Nazis
Probably inflicting Websphere on some company.
Weblogic
Well, IIRC they did work with the Nazis to manage concentration camps and more
https://www.historynewsnetwork.org/article/ibms-role-in-the-holocaust-new-documents-confirm-t
I remember when he told that story, it was something like this: one company which I don’t want to name, so will just say it’s initials - IBM. He also authorised usage for IBM “and it’s minions”.
Source?
I binged this with “ibm json evil”: https://gist.github.com/kemitchell/fdc179d60dc88f0c9b76e5d38fe47076
Binged (the search engine) and binged (the eating disorder/content consumption method) look identical and this fucks me up.
Homographs are wild. I wish I could be around in a thousand years when scholars are arguing over interpretations of every day English sentences; especially idioms.
That’s what Binging with Babish ran into early on I believe. Not sure he is still around, his early stuff was fun though
man we programmers can be so naive sometimes
So do you use JSON for your endpoints?
No we use XML
Oh interesting why is that?
Uhhh…no reason
Well SOAP is inherently evil so that just makes sense
What happens is that engineers look at a technology and say, this is too complex, I just need something simple. So they invent and/or adopt something simpler than the popular technology of the day.
But as they build more and more things using the technology, they realize that it needs more features, so those get added on. This happens over and over again to the technology with more and more features being added to it, until a new set of engineers look at it and say this is too complex, I just need something simple…
You’ve just described what is probably the most well-known xkcd comic in a somewhat long-winded fashion.
Slightly different though.
Yeah, I think I’ll make a comic that covers everyone’s use case…
“Hey, this is exactly like a strawberry pie, if you replace the strawberry by veggies and meat, and the pie by water. It’s actually a stew.”
By all means, do whatever comparison you want, but I’ll reserve the right to disagree.
You don’t get my brilliant joke
Effectively not much, IMHO, but whatever - I think you got my gist.
I did, but the direction is reversed. XKCD talks about how standards multiply and get more complex. This is talking about a different motivator for computing technologies, which is having a leaner, simpler alternative, that eventually gets bloated.
I work with SOAP for a legacy API
fucking kill me, I beg you
No can do, but I can put you in an envelope, head optional.
So no head?
At least it’s not GraphQL
GraphQL saved my ass on a term project that required extensive polling of the GitHub API. Turned a calculated 47 days of calls just under the rate limit into just 12 hours.
The biggest problem with such a clause is that it is hard to define “evil”, even if it seems clear to you. Some people think that abortion is evil, so are abortion clinics banned from Json? What about the military and weapon manufacturers? Killing is evil, but you all know how the discourse about the military as national heroes that can’t be evil in the US goes. What about a service like X - is it evil? Can you define “evil” for a surveillance tool that brands itself as ad tech?
The clause also states that the product MUST be used for Good, which is a higher bar. I’d imagine most things JSON is used for are fairly morally neutral.
Space cops
From my point of view, JavaScript is evil.
I’d imagine most things JSON is used for are fairly morally neutral
expect a knock from Json’s lawyers. those guys are scumbags
Ask every single person what is the definition of evil and merge all the answers into one definition
That’d be all the things.
You’d end up with Schrödinger’s Evil
I’m definitely going to start using this one!
Thanks!
I’m glad someone recognized it
The law is basically this, it’s why nearly everyone hates the government.
Yeah I would imagine this is the point
Every person should act according to their own morals.
There would be so much violence in the world if they did.
Possibly, I just gave solution to those terms of conduct. Because everyone has other definition of what is evil, to comply they need to follow their morals.
How does one address the paradox that, as JSON itself is evil, one cannot use it for evil?
(opinions may vary on the above; but it’s mine, so nyah nyah.)
It’s less evil than XML or YAML
XML is ok for complex docs where you have a detailed structure and relationships. JSON is good for simple objects. YAML is good for being something to switch to for the illusion of progress.
Meh. I just wish XML was easier to parse. I have to shuttle a lot of XML data back and forth. As far as I can tell, the only way to query the data is to download a whole engine to run a special query language, and that doesn’t really integrate into any of my workflows. JSON retains the hierarchy and is trivially parsed in almost any programming language. I bet a JSON file containing the exact same data would be much smaller also, since you don’t list each tag twice.
I still want someone to explain to me why XML even needs namespaces (which cause about 95% of all issues regarding XML).
There is a way to separate different XML structures, it’s called files.
XML is also tricky to parse because people forget it is for documents too. It’s basically like HTML. Mixed content elements are allowed.
<foo>hey <bar>there</bar> friend</foo>
is valid XML. So iterating over elements is trickier than JSON (which is just key value pairs and arrays).There are parsing libraries, maybe not as many or as open, but they exist.
That’s kind of my point though. For being made specifically for the purpose of being machine readable, its kind of a pain in the ass to work with.
I want a command line utility where I can just
xmlquery --query 'some/query' --file foo.xml --output foo-out.xml
or in python
import xml with open("foo.xml", "r") as file: data = xml.load(file.read())
That’s the amount of effort I want to put into parsing a data storage format.
It’s still using the lesser of 3 evils, we need a fourth human readable data interchange format.
"Problem: There are
34 standardsObligatory xkcd
>TOML has entered the channel
Any human-readable format compatible with JSON is inevitably going to be used as an interchange format…
YAML is (mostly) a superset of JSON. Is the face hugger any less evil than the alien bursting out of your chest?
It’s got enough serious flaws and quirks that I can feel smug hating on it. JSON is far from perfect, but overall it’s the least worst of human-readable formats.
Only Python manages to get away with syntactical indentation.
The complaints about yaml’s quirks (
no
evaluating tofalse
, implicit strings, weird number formats, etc.) are valid in theory but I’ve never encountered them causing any real-life issues.This paragraph was wrong. The other paragraphs are unaffected.no
doesn’t becomefalse
, it becomesNorway
, and when converted to a boolean, Norway is true. The reason’s because one on YAML’s native types is an ISO country code enum, and if you tell a compliant YAML implementation to load a file without giving it a schema, that type has higher priority than string. If you then call a function that converts from native type to string, it expands the country code to the country name, and a function that coerces to boolean makes country codes true.The problem’s easy to avoid, though. You can just specify a schema, or use a function that grabs a string/bool directly instead of going via the assumed type first.
The real problem with YAML is how many implementations are a long way from being conformant, and load things differently to each other, but that situation’s been improving.
Are you sure? I’ve always heard it the other way around and a quick search for "YAML norway’ gives this
The reason to why this is problematic in some cases, is “The Norway Problem” YAML has: when you abbreviate Norway to its ISO 3166-1 ALPHA-2 form NO, YAML will return false when parsing it
Also, YAML 1.2 (2009) changed the format of booleans to only be case insensitive true and false. “No” no longer is false if you’re parsing as a version 1.2 document.
Yeah, looks like I’d remembered it backwards. It’s still an easily solvable problem by not using a load everything as whatever type you feel like function.
That is somehow so much worse
I believe they’re getting themselves confused.
no
was false prior to YAML 1.2. This is known as the “Norway problem.”
YAML is evil.
Hmm, hard to argue with that :P
Idk, I never used the weird advanced features of YAML, but the basics seems really nice for stuff you want people, especially non programmers, to edit. I generally default to YAML for config files.