The idea is, if your code builds and works on this system, it'll run anywhere, correctly, because the system leaves no room for "oh, everybody does it this way, so it's fine to rely on this non-standard behavior".
Now, set up your CI system so that your "POSIX build" builds N times, each time in a new one of these randomly-generated "technically POSIX" chroots.
I needed 2 computers to fix that one.
But AFAIK z/OS is the only UNIX[1] variant that offers a "POSIX" environment
Where no subset of the native character set even resembles ASCII.
Where "everything is a file", but where many of these "files" — including, notably, both shared libraries and executable programs — are mostly inaccessible using anything resembling traditional byte-oriented UNIX utilities, library functions, and system calls.
Where process creation is not only "not cheap", but where it can in fact be so cripplingly expensive vis-à-vis conventional UNIX systems that the z/OS designers have (wisely) not only resurrected something akin to the traditional meaning of the "sticky bit" on executables, but have also made extensive provisions to allow both "subshell" scripts and executable subprocesses to be created within one's own address space, both via system calls and from within the POSIX shell itself[2].
On a related note, I was thinking the other day that an "evil", yet at least minimally standards-compliant filesystem in the spirit of your system might actually useful to have around for testing. Or, if not, would at least be fun to design.
Think a filesystem that imposes random per-directory length limitations on filenames and or file sizes, and occasionally allocates space for files in terms of random, per-file allocation unit sizes just because it can.
Or imagine a filesystem that flushes the overwhelming majority of data to disk promptly, but which also maintains a large "evil cache" containing a few blocks out out of the middle of every few million write calls that is flushed as infrequently as is permissible by the relevant standards.
And why let previously-allocated free space go to waste when, given careful planning, its contents could be used to present stale, yet technically "valid" data to applications that use I/O operations whose ordering with respect to one another is not formally defined for IPC (e.g., POSIX only explicitly defines ordering between its own read() and write() calls, so I/O by any means not passing through particular versions of these functions explicitly designated as POSIX-compliant can, in terms of standards-compliance, be "safely" ignored).
And so on.
[1] https://www.opengroup.org/openbrand/register/ [2] Google "_BPX_SHAREAS" for details.
Just like the web (W3C?) was a front for microsoft taking over from Netscape, and now Google taking over from everyone else, the linux foundation et al are just fronts for Google et al to have whatever they want on the kernel and to prevent any and all GPL3 "corruption" of their take-take-take business practices.
GNU/Linux is old news, everyone runs BIGCORP/Linux today. You probably have more code from Google/Amazon/etc than GNU in any modern distro.
Just look at all the effort devoted to systemd (which is a blatant copy of oracle/windows service management) or everyone eating up the hype of zsh on macs (which is nothing but a spin from apple: Look how this new shell is so much better, oh bash is going to be GPLv3, no this has nothing to do with it, look how shiny is zsh!)
GPLv3 will set you free!
Systemd is really just the most blatant of these kinds of efforts.
1. If you manage to "beat the system", and bend the web to your will, those invested in it will label you an outlier or accuse you of being like Richard Stallman.
The Suicide Linux idea, and in fact, all "rm -rf /" jokes, are still perplexing to me because I always made systems where one could accidentally rm -rf / (still have not done personally that after 20+ years) and would not lose anything of importance, because / is an overlay and any long-term user data is stored on external media, separate from executables, which I unmount after a periodic save completes. I guess I could describe it as a minimal system booted from USB and running in RAM, overlayed with a more complete system (downloaded from the network then extracted), also running in RAM, with a workspace consisting of 100% RAM. The only way to destroy the system is to mount the USB stick read-write, chattr -i on everything and then try to rm -rf /. Impossible to do that by mistake.
The guy I was working on it with dropped out of academics for a career of spirituality. He went off to a monastery so I also abandoned the project as well. We never even got a publication out of it :-/. These days you could probably make a very expensive product out of it.*
Someone else may have picked it up, I don't follow the literature anymore
---
* - I just realized maybe he went off to become a spook - I don't know how I never thought of that - even to this day many of my colleagues from the era work for these nebulous companies with names like "The Adirondack Group" who just have a basic website with a single email address. I never understood why they even try, just say "we are spies" - everyone knows it. Maybe it allows them to live otherwise normal social lives where they don't have to lie about the superficialities of their job? I dunno. It can't be actually project based - that'd be super retarded - instead of knowing "he works for the CIA" everyone would also know what project they work on - super dumb - that can't be it. I'll probably hit up one of my old friends to see if that monastery was real. He can probably say "yes" or "no".
If I has asked him if he knew the name of the monastery as opposed to whether the entire story was a canard, I probably could have gotten further. By foolishly asking if it was a story, I think he fell back on the "zero information" strategy - as in, even if it's real and he's living a solemn life of meditation, don't say anything. Me effectively going "Hey man, I gotta question about spies" was in retrospect, pretty dumb.
Initially, I though you were talking about the lastest MacOS. You had me there for a second.
As someone who accidentally moved /etc recently, I have been into the valley of darkness and wish for no further OS pain.
I recently fixed a family computer that crashes randomly after a RAM upgrade. Removing the RAM didn't help, and it was totally a wild goose chase. The BSoD stop codes indicate some types of crucial system errors or memory corruption, sometimes in drivers, sometimes in kernel, but nonspecific. Finally I installed WinDbg and opened the crash dumps, and all dumps have the same error, and it became obvious immediately,
KERNEL_DATA_INPAGE_ERROR - This bug check indicates that the requested page of kernel data from the paging file could not be read into memory.
RAM was fine, the kernel simply cannot swap from the bad hard drive, no wonder it crashes. But the SSD was known-good, so I checked voltages, and saw the +5 V had a huge voltage drop. Upon closer look, found a loose wire at the power supply.(Which would be pretty likely, since when qualifying a new driver, you'd be stupid to use anything but the most bog-standard hardware and drivers for everything other than the particular device-under-test.)
0x0000000A: IRQL_NOT_LESS_OR_EQUAL
or... 0x0000007E: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED
It corresponds to whatever the last operation kernel was executing before it fails, but without information on how it fails, and only indicates that something is wrong in the kernel or in a driver in general. You can chase these stop codes and check for bad RAM or bad drivers forever without real progress. Don't spend too much time on these codes, it's a waste of time. Enable memdump and get WinDbg. In comparison, analyzing the crash dump in WinDbg gives real information. KERNEL_DATA_INPAGE_ERROR - This bug check indicates that the requested page of kernel data from the paging file could not be read into memory.The only message for all syntax errors, is:
WHAT?
The only message for all runtime errors, is: HOW?
And the only message for legal but unsupported operations (e.g. out of memory) is: SORRY
See the source code here: https://github.com/ancientcomputing/8080_8085/blob/master/Ti...Syntax Error
This message appears when the assembler is too confused to know what went wrong.
:(
- - -
But yes, if Hell Linux exists, it'd make a great candidate for a future QEMU Advent Calendar[1] submission.> if one branch exits with a nonzero exit code, the other branch is taken
That's called the Amb operator. It's actually fairly useful! Presuming you tended to write side-effect-free shell scripts, I could see enjoying this one.
> If you try to read a .json file that doesn't exist, you get the bytes "{}"
I would actually appreciate some little intermediary utility that would inject "{}" to stdout iff stdin was empty. It'd make piping maybe-JSON documents through to jq(1) work a lot more smoothly.
> If you try to connect to a port that nothing is listening on, it does its best to behave like the service that should be listening there.
I love the idea of the xinetd(8) equivalent to Busybox. A multi-protocol stub server, that knows how to speak literally every protocol, and listens on every port it can, but does nothing much over any of those protocols. It could serve as a way to slow down a Metasploit scan, by offering it an endless variety of things to try to exploit!
> 0 exit code is reported for all processes, no matter how they terminate.
These two things are mutually exclusive - shell script branching is usually based off of exit codes.
But then I decided that the GP was probably throwing out suggestions, not developing an internally-consistent model for the final design. :)
There is already a major OS with this characteristic.
Aka “the PHP design philosophy”?
Call it "Trump Linux"! :)
But as for question, yes, we do say those things here. But I'm from the European mainland, and we do enjoy stereotyping each other. That has nothing to do with racism or bigotry, but with acknowledging and celebrating differences. I'm reminded of a comic that I came across around the time of the introduction of the Euro, and I saved it because I thoroughly enjoyed it: https://imgur.com/a/SmdkRLZ
So please, do not assume malice whenever someone points out cultural differences. Humor can be a connecting force, not just a dividing one.
I can't speak for Japanese people since I never met any.
I don't know if your reaction is representative of US culture, but having to tip toe around words and not say what you think doesn't scream free country to me.
Being from the US, and not being part of the vocal minority that reacts like this, I will agree with you that the last few years have increased the sense that we aren't really free to say things that deviate from the 'approved opinion'.
Unfortunately, at least in American culture, many of these stereotypes about what it "means" to be Japanese / German / Italian or what it means to have the role of "girlfriend" or "wife" or "husband" are reinforced in us from an early age. Wives are supposed to be controlling and manipulative. Men are expected to be stoic breadwinners and utterly incompetent when it comes to household duties like cooking or child-rearing.
For example, look at any show produced by Disney Channel in the 2000s -- it's all about petty relationship drama and manufactured conflict where characters overreact rather than having tough conversations. Technically the shows are trying to give examples of bad behavior, as there is usually a lesson learned in the last ~30s of the episode, but the characters seem to reset to their usual, horrible selves by the next week's episode.
Workplaces vary a lot.
In some, yes people do. This sort of thing and much stronger stuff is circulated in company-wide "joke" emails too. However there does tend to be an element of self-deprecation, in that you'll get people circulating jokes about inept women, and also jokes about inept men. Rarely in the same email of course.
In others, you'd be fired after a few repeats, as you say.
With Europe, as someone commented, some of these things can be understood in a slightly more humorous way if it's about other "friendly" European cultures, because some of the cultures are quite friendly with each other. They're not at war, so it's intended (and really meant and to some extent understood) in a more playful way. There's plenty of it, including on magazine covers.
Between England and France there's been culture jokes for a long time; I've always imagined that's a healthy modern echo of more serious hostility from a long time ago.
Similar to the way you'll see black music groups using the N word affectionately, and it's not offensive because of who is using it.
But for example even in Europe, if someone in say Germany started making ambiguous joke/not-joke jokes about modern fascists in Hungary, I don't think it would be regarded as just friendly humour for long because it touches a nerve. And when I lived in France I heard people talk about Serbians as though they are "all" quite unpleasant. So the European cultures aren't all friendly with each other. There's history there, and some kind of inter-cultural meme evolution.
Speaking from personal experience, the stereotype about Italian girlfriends is not inaccurate.
This formulation means: those in a position of relative social power, expect those in subordinate positions to accept stereotyping etc. at the expense of their own and other subordinate classes.
The humor, and this rejection of censure, is done to ritually encode and underscoring of the received power hierarchy.
In a world in which such rituals are being openly named, and confronted, it is very common for those called out to feel defensive, and act out of that defensiveness.
Wow your a hell of a wannabe Whiteknight...at least fight him/her, but you will lose if it's a Italian women, but you win if it's an Italian man....especially if he plays soccer.
To be honest, that is also pretty weird, wandering into "wrong"-territory. At least if you are prescribing negative stereotypes to a culture.
(Definition of bigoted from Wikipedia)
Stereotypes can be harmful, but they oftentimes are based in reality. Yes, the formalities of an average Japanese are almost incomprehensible to an average Italian. What's the problem with that? The world is fortunately colorful, and making jokes about its colorfulness is not necessarily evil.
As the other commenter mentioned, "bigoted" implies "intolerant". A joke about culture differences isn't intolerant of those cultures; you're just overreacting.
And as someone else mentioned, the Japanese, Germans and Italians do not want or need you to save them. Maybe you should dial it back a bit.
I constantly hear jokes about football. Having played football and being a person with "two left feet", I have heard numerous jokes about that, and about how I must not be Brazilian, since I don't command the ball like Ronaldinho.
I'm fine with that. It's playful. It's fun. I make jokes back and everybody is a friend.
There's also the Samba jokes and stereotypes. They are fun. They are ice breakers and can make an awkward social interaction more fluent.
You know what offends me? When people from the USA call their country "America", like they own the whole continent.
Amerigo Vespucci, the man whose name served as the basis for naming the so called "new world", didn't even arrive in the northern part of the continent, much less in what is now the USA.
Cripstopher Columbus, who arrived in the continent even before Vespucci, didn't arrive there either, but at Guanahani, in the Bahamas.
When America was named America, there was no USA.
Calling that country America is the equivalent of uniting a few European countries, calling them United States of Europe and then culturally pressuring the rest of the continent (and the world) into calling them Europe, pretending the rest of the continent never had that name.
The cultural, military, pollitical and economical power play that the USA have been imposing on the rest of the continent since at least the 1940s is by far worse than any stereotype joke that you might have heard in your workplace.
I was born in America. The USA can never take that away from me.
Uncivilised is to impose your views upon the rest of the world with zero regard to cultural differences.
As my late grandfather would say: "don't judge others as though they are yourself."
Edit: Even before I posted, I was aware this was going to be downvoted. That's fine. It's not easy to admit you're not as holy as you might think. It's far easier to use your own power to crush the "subordinate class" rather than actually acknowledge them. Downvote away. I will still be an American, born in America.
I have no clue what on the world you are talking about.
Above is true. But below is also true:
> make many immigrant coworkers deeply uncomfortable (especially if they are women)
You can also add gay people, trans, etc - and even things like being smart, or stupid, or being a man or woman, or blond or redhead or... etc - to the list who have to endure feeling uncomfortable and unwelcome (and often keeping it to themselves or playing along) in a workplace where "they" are made fun of regularly.
I think it's because humour and oppression both exist, and actual for real consequences of the latter have been very severe and sometimes still are. It's hard to tell how much of each is really in process at any moment, so of course it's uncomfortable, and of course if someone feels they have to fit in to keep in their colleague's good books at work, they'll tend to keep their discomfort and background to themselves.
One thing about these kind of jokes, is they vary a lot in how much prejudice they encode. For example, there is a stereotype in Australian culture of the "whingeing pom", the person from England who always complains, and there is a tradition of jokes based on that stereotype. Does that mean the English are oppressed in Australia, or that Australians hate English people? Or is it more like when you gently tease your friends and family? (To use an Americanism, "joshing"). It is not like the English recipients of this kind of teasing don't have plenty of comebacks – jokes about Australians being all descended from criminals, etc. (See also [1].) I think there is a big difference between those kinds of gentle jokes which don't really encode any significant degree of racial/ethnic prejudice, and other sorts of jokes that do – it depends a lot on who is making the joke, which group is the target, and the nature and history of the relationship between the joke-teller's group and the target group.
Regardless of all that, I wouldn't tell those kinds of jokes in a work environment – some people are likely to be offended, and causing offence isn't worth it. (Plus I rarely tell jokes of any sort, since telling jokes has never been my strong suit). But if other workplaces, in other countries, have different cultures in which those kinds of jokes are more acceptable, I'm not going to judge those cultures negatively because of it, and try to exhibit enough cultural sensitivity to realise that cultures like that exist, and I'm not going to say that my culture is superior to theirs.
(You also mentioned the gendered aspect of the jokes; I would expect that attitudes towards gendered jokes and how they are experienced also vary from culture to culture – and that women experience them differently in different cultures, and even individual women may experience them differently in the same culture – but I don't feel like I know enough about that whole issue to say more than that.)
[1] https://www.theguardian.com/commentisfree/2013/jul/08/what-b...
Speaking for myself, I understand that no harm was meant; and that those my age grew up in a world in which such humor was not commonly judged offensive.
This world has moved on fortunately. Please do not perpetuate this culture on HN.
This gives me an idea: Hell Linux. In Hell Linux, the operating system does its best to pretend that nothing is wrong, so it takes you as long as possible to realize that you've made a mistake. Commands ignore all unrecognized flags. In shell scripts, if one branch exits with a nonzero exit code, the other branch is taken. stderr is always redirected to /dev/null. 0 exit code is reported for all processes, no matter how they terminate. If you try to exec a file that doesn't exist, it runs a process that does nothing and immediately exits, unless it is part of a pipeline, in which case it consumes standard in. If you try to read a .json file that doesn't exist, you get the bytes "{}". When you read a log file, any lines containing "ERROR" or "WARN" are skipped. If you try to connect to a port that nothing is listening on, it does its best to behave like the service that should be listening there. Oh, the possibilities....