I'm waiting for the dystopian SciFi novel now where earth's last survivors blast the escape route through that cloud of satellite rubbish for their Starship (TM), by use of an array of those.
One can always dream.
290 karma · joined May 5, 2022
I'm waiting for the dystopian SciFi novel now where earth's last survivors blast the escape route through that cloud of satellite rubbish for their Starship (TM), by use of an array of those.
One can always dream.
If you're saying here that ARM is a company with a large and near-even (by headcount) presence in three countries (and much more distributed overall), then I agree with you fully.
Else, what was your point again ? You said in your first post that a majority of ARM (based on what metric?) comes off Austin, and that is not true by your own later words.
Anyway, I also agree we should be proud of the work done by companies such as (for example) ASML or ARM. Irrespective of where that happens, to be honest.
ARM IP ? I gather in Cambridge/UK they'd disagree with you. Even if in classical English stiff upper lip style they may say it less brashly (but not less harshly) than a Texan.
This World is rather intertwined. Maybe more than we like or even more than is good for us. But all of us will loose if we strive to kill cooperation or trade "across borders".
For many "ordinary" chemicals, the so-called process temperature is the challenge with carbon-free. Not dissimilar from steel or aluminium making (melt the ore first before reducing it).
If you think "carbon budget" then it's compelling to grow yours at the expense of others.
The rest of that event - why I walked away from the group, whether I was called back or just lucky, or even what I thought or felt when I went into the water - all gone. Can't remember. Only that afterwards, it felt odd how panicy mum was, and that she immediately insisted on swimming lessons.
So when I was five, this was an experience like "any" - How was I supposed to understand that I had a close brush with death, or what that even meant ?
(I wish your daughter a long and happy life, and may neither her nor anyone have to experience the feelings that you did, or my mum)
Reading the article (nice troubleshooting story!), my summary, as a C programmer, is that the "C Interface" here "takes ownership". Given C cannot express this properly, a pointer is passed - and the called function "simply" makes the assumption that from hence-on, what was given to it will remain.
As "semantics" this (the need to pass an "owned" piece of data to a function) isn't unusual irrespective of the programming language. Just in case of Rust, this is explicit in the interface (if the func takes a non-ref arg, or a shared smart ref of sorts), while in C ... this can lead to errors of the observed kind. I haven't looked whether any of the sources or docs of libmodem say "this pointer must be either global/static or malloc'ed (and the caller shall not free it)".
A rust wrapper for this could / should possibly "leak a reference" here; Something that prevents the initialisation object from being dropped. yea, accepted, needs "nasty hacks" whether static lifetime, Pin, manual drops, explicit Arc leaks, ... possible though.
It'd be nice if libmodem were stricter about such ownership, agreed, and then a rust wrapper could take advantage. Takes time to evolve; is there a bug report / enhancement request out there for this in libmodem ?
So why did the accretion flip ? How often does this happen ? How big is the influence of accretion (say, at high rates / eddington limit) on the black hole's angular momentum over time ? How long can such a counterrotating condition persist ? How common are cases where, say, the jet direction of a active black hole changed massively (or even reversed), indicating a "major flip" event for the black hole's spin ?
(many questions just curious)
Btw, you can _also_ substitute libc's setenv/getenv/putenv with your own (locking) implementations, courtesy preload and all the funky features of ELF symbol resolution. Actually easy. But impossible if you link against static code using it (go ... away). Hmm. easy ? impossible ? damn this grey world. Gimme some color.
From the syscall interface point of view ... you pass the initial env of a process when you exec(), and the kernel copies that to (userland) memory of the new process. The fact "default initialisation" can copy from the environment of the exec()'ing parent, or the fact that the kernel can "read" a process' env (see /proc/<PID>/environ) doesn't change this; the kernel needn't be "accommodating" all the possible and impossible ways how a user application may want to interact with that state there, if you mess-too-much with it, you get garbage. Sooo ... the portability wart is setenv(), because as far as the system is concerned... your "initial" env is passed to you when exec() is called, and any modification thereafter is your concern, your problem, but foremost, your choice. And choices come with taking responsibility for the ones you make.
One could "dream of" a func that tells libc "acquire/drop this mutex of mine around get/set/putenv calls" but that'd simply move the problem - because the nifty "frameworks" would do that (independently of each other, we're sovereign and entitled frameworks around here) and race each other's state nonetheless.
Thing is, the (history of the) UNIX APIs - call'em "libc" if you like - is littered with the undead corpses of horrible ideas. Who thought that having global file write offsets are great ? Append-only writes ? Global working directories ? The ability to write the password db via putpwent() ? Modifying your own envp or argv ? Why have a horribly-scaling hack like fcntl-based file locking even in the standard ?
"Today", were one to start from scratch, the userspace API of even unix-ish operating systems would be done much differently. After all, systems designers and implementors are intelligent people and learn, and there's 50y+ of history to learn from. But the warts are there, and sometimes, there to "program around" them.
Modifying _your own_ environment _at runtime_ is not. The corresponding functions - setenv/getenv - and state - envp/environ - have in the UNIX standards "always" (since threads exist, really) been marked non-MT. "way back when" people were happy to accept that stated restrictions on use don't make bugs. Today, general sense of overentitlement makes (some) people say "but since whatever-trickery can remove this restriction... you're wrong and I'm entitled to my bugfix". I agree the damage is done, though.
(the argument that the horses have long bolted with respect to "just do the right think ok?!" here holds some water. I'm of the generation though where people on the internet could still tell each other they were wrong, and I assert that here; you're wrong if you believe a non-threadsafe unix interface is a bug. No matter what kind of restrictions around its use that means. You're still wrong if you assume the existence of such restrictions is a bug)
This (obviously?) isn't "110%" perfect as the order of the constructor calls for several such objects may not be well-defined, and were they to create threads (who am I to suggest being reasonable ...) you end up with chicken-egg situations again.
Smithfield, at least to me, always had a different vibe; more pro-to-pro/business-to-business, but also they deliver or commission to pre order there; different from Billingsgate.
Expose yourself to a social setting twice, panic the first time immediately, panic the second time only an hour into the occasion, and you have made progress.
Being affected by social anxiety myself, I wouldn't say there's a "cure". But one can learn to get used to the panic, can learn to "grade" it from unjustified and harmless to "it's better to leave now". Keep doing it, try different settings. It's not really worse than learning to walk. The first steps are wobbly, you cry when you fall, but you get better at it over time.