2,505 karma · joined January 10, 2012
jclulow on GitHub | jclulow on Libera Chat | https://sysmgr.org
People definitely used gay as a slur when I was in high school, and then people grew out of it because it was childish and awful. Perhaps it was at about the time that some of us came out as gay.
Diversity is certainly not uniform in the country, obviously, and exposure is a critical part of being well rounded. We had a lot of people from PNG and Sri Lanka where I grew up, and when I went to Uni there were a lot of foreign students from Kenya and other places. Being weird or racist about it would have been pretty fucking unacceptable to me and my friends. But I have met people who are indeed weirdly racist or sexist.
Also, I have noticed a pretty broad shift in this from people in my parents generation to people in my generation, and I'm sure again to people younger than myself. I think this actually happening in lots of places though, not just Australia.
As far as swearing goes... Yes? We swear a lot. It works for us!
We have lots of problems, and a truly horrendous history of colonial violence -- which we have at least begun to address in history class in schools in the last thirty years. Lots more work to do. I'm sorry you had a bad go of it, but please don't assume that you have a picture of every Australian.
The Australian Centrelink programme is a pretty good example of what happens: one government introduces a system of unemployment benefits and then later a different conservative government (whose members and voting base don't like poor people) are able to pervert the system through means testing provisions and other bureaucratic hurdles to effectively prevent a large subset of eligible persons from actually collecting the benefits to which they are entitled, but without having to deal with the political fallout of actually ending or reducing benefits on paper.
- on fork, you are by definition implicitly cooperating with the parent as you are the same software image as the parent; in the case of transitive forks you can be expected, I think, to continue cooperating.
- on exec, you move from implicit cooperation to the need for explicit cooperation, through some kind of interface contract; e.g., the BASH_XTRACEFD environment variable. It is incumbent upon you to hide the good silverware before making the exec transition, as exec is a trust boundary; like when you sell your house, you don't get to control what the new owner of the process does with it, except through kernel-enforced mechanisms like privileges and resource controls and so on.
This is not true on all systems. For example, on ilumos we have fdwalk(3C) and in particular closefrom(3C). These allow you to dup2() your intended descriptors to a contiguous block starting at fd 3 (assuming you keep the stdio descriptors at 0-2) and then close everything from one past the last descriptor you intend the child to inherit.
1. It's easy for processes to leak
illumos has contracts[1][2][3], which were developed as part of the Service Management Facility[4]. They are another process grouping abstraction that allows SMF to track trees of processes, whether they daemonise or not. They allow for tracking or ignoring certain events (e.g., a fatal signal sent from outside the contract, a process within the contract that aborts and dumps core, if a particular process, or all processes, terminate in some way) and for doing certain kinds of automatic cleanup (e.g., terminate all processes in the contract when the process that owns the contract is terminated). These are managed by the kernel, so they are effectively inescapable even when not held correctly by a user process.
2. It's impossible to prevent malicious processes leaks
This is not really true for us either. Between contracts, and resource controls[5], and privileges[6], I expect one would be able to limit the malicious or accidental escape of processes from supervision or any run-away resource consumption caused by, say, a fork bomb.
3. Processes have global, reusable IDs
This is true on some level, but in practice I think that's just part of UNIX and when you have solved 1-2 and 4 in other ways, it's not actually that bad. If you want to kill everything in a contract you own, even without knowing the full list of pids, you can do that with ct_ctl_abandon(3CONTRACT)[7] which takes a contract file descriptor. The termination action (which could be to tear down all of the processes) will take effect then.
4. Process exit is communicated through signals
This is not entirely true, in the sense that they are by default for classic UNIX applications -- but they need not be. We have forkx(2)[8], which has the FORK_NOSIGCHLD and FORK_WAITPID flags. These request that SIGCHLD is not posted for process termination, and that the classic UNIX wait(2) family of calls will not receive notification or reap children. You can use these from a library, and then manage your own waitid(2) or waitpid(3C) calls on the specific process IDs you are responsible for reaping. You can also use contracts to receive notifications of events about processes within the contract coming and going.
[1]: https://illumos.org/man/5/contract
[2]: https://illumos.org/man/3LIB/libcontract
[3]: https://illumos.org/man/3CONTRACT/
[4]: https://illumos.org/man/7/smf
[5]: https://illumos.org/man/7/resource_controls
[6]: https://illumos.org/man/7/privileges
I have ADHD, which I didn't know when I was a teenager in the era before the phones you're blaming for poor sleep hygiene. I have struggled for essentially my entire life with sleep routine. I can't for the life of me get to bed at the same time every day; after three decades of trying I just don't think it is something I am readily capable of doing. It works for a few days and then gets later and later and eventually it's so late that I'm ruined by 8pm and I reset for another cycle.
This is, as it turns out, not uncommon among folks with ADHD and similar conditions -- and those conditions are more likely than you would obviously believe them to be.
So, while it absolutely is my responsibility to regulate my life, I feel you can probably keep your sanctimonious encouragement to adulthood!
It's not so much a secret as we've been rather busy, and I haven't had time to clean up the repositories to the extent that I'm comfortable making them public. Hopefully real soon now, and absolutely before we ship the hardware to anybody.
> different "distros" of illumos would have different kernel ABIs
We do have strong guarantees around various kernel API/ABIs, which one can absolutely use to produce out of tree modules that will work over the long term and across distributions. We call this the DDI, or Device Driver Interface, and it's documented as public and stable in our manual.
The vnode layer bits that FUSE uses are ostensibly sort of public but not documented. This is of questionable utility, to be honest, but it's apparently there. A mistake was likely made in adding support for inotify to a particular fork of illumos, and a struct member was added in the (again, wishy-washy) "public" preamble of the vnode struct.
> The biggest question to me is why Helios is using the FUSE kernel module from OmniOS
This is my fault. Before a distribution can be self-hosting, it needs to exist at all. I am a big fan of OmniOS so I had bootstrapped the first Helios bits by building modified OmniOS bits on OmniOS, and then massaging the packaging metadata until it looked how I wanted it for Helios. I then installed a Helios machine from those packages and everything was subsequently built on Helios from then on.
Regrettably I didn't realise the business with the vnode stuff, or even that we had a FUSE package. It has not been rebuilt since that original bootstrap build, so it was built with the wrong vnode.h. In my defence this is the first time in two years anybody has tried to use FUSE on Helios so nobody else noticed either!
* several different servers where you can set the boot order through the Redfish API, except that it only works about 60% of the time and there is no way to tell from the response if it took or not. Just have to keep doing it and rebooting until it hopefully eventually works!
* PXE boot support that is incredibly slow, so for any reasonable payload size you need to chainload iPXE every time
* servers with oddball Broadcom NICs where chainloading iPXE doesn't work at all
* servers that sit at the BIOS screen for twenty minutes unless you pull out all the U.2 NVMe devices, then they boot OK. Maybe a firmware update will fix it!
* firmware updates that don't install properly through the BMC
* firmware updates that don't _show_ they're installed properly until the BIOS boots completely and can report the new version through apparently some kind of HTTP request on an internal USB NIC to the BMC, even though the BMC has control of the SPI flash and thus is lying to you until that reboot occurs
* BMCs that just stop working until you remove power at the wall from the whole system
* IPMI serial over LAN redirection that drops about 4% of output characters but not in a predictable way so copying and pasting, say, a serial number has be done several times to be sure you got the whole thing
* an interrupt controller in a HP system that doesn't emulate fixed interrupts correctly, and so eventually after some random number of millions of interrupts the lines are just stuck on until you power cycle the system
That's just stuff that comes to mind at the moment. There's literally no way to compose a reliable automated production system on this ridiculous tower of packing peanuts. In contrast, in the lab, I can pretty much just ask an Oxide machine to replace the contents of the SPI ROM and the M.2 storage device and power cycle it and it does what it's told. There are comparatively few moving parts and we have the source to almost all of them.
We've added several small cores of our own to the systems that make up the Oxide rack, but critically we can control them with our own (open source) software stack. The large scale host CPUs where hypervisor workloads live can communicate with those smaller cores (service processor, root of trust, etc) in constrained ways across security and responsibility based boundaries.
That is in fact how buyback schemes work in countries that aren't totally irrational about guns.
For one thing, the company is not the only one doing the interviewing; the candidate is also interviewing the company. Before making a commitment to join a team, I think it's valuable to speak to a number of members of that team to get a sense of what they're like.
On the company side, I have also witnessed several people who might have looked alright in just one interview, but when exposed to several it became clear they were adjusting their story significantly for each interviewer to the point of dishonesty.
There is clearly some line beyond which more interviews would present seriously diminished returns, but I think six or seven interviews, each 30-60 minutes, is much more likely to result in a better outcome for a professional engineering position than just one interview with a hiring manager.
Okta is not just a bunch of software, it's also staff and processes, and the result is a trusted service they provide to customers. If that service is compromised, it doesn't really seem to matter how?
From the perspective of market fit and success, there are countless less-technical business users who swear by Outlook. They are not familiar with anything other than the kind of endless thread top-posting in odd encodings that Outlook all but ensures users will do -- that's e-mail to them. Why stop selling it to them?
To be clear, I loathe all of it and I haven't used client Windows for more than a decade. When I used to support small business IT customers back then, Outlook was by far my least favourite tyre on the raging intergalactic rubbish fire. But it's not hard to see why they don't care that Outlook is the way it is.
Neither, then, does the ostensibly irony free use of terms like "wokeness", or the placement of "lived experience" in scare quotes, do anything to bolster a putatively data-driven perspective hounded by some opposing team.
Whole fields of medical and psychological science have changed over just the course of my lifetime. I expect they will continue to change to reflect the complex needs of our society, and based on new understanding we continue to uncover. This letter is not especially moving.