Readit News logoReadit News
johnnyjeans commented on Trump says Intel's new CEO "must resign immediately"   arstechnica.com/tech-poli... · Posted by u/rickdeckard
rickdeckard · 4 months ago
> This administration doesn't seem to care very much about appearances.

(Or, this administration cares ONLY about appearances)

Either way, I'm not talking about appearances, I'm talking about the sitting US-president publicly attacking one of the most important companies of the US economy, with complete disregard for the consequences of his actions and the impact to the country and its citizens.

johnnyjeans · 4 months ago
The part where it becomes appearances is that it's public. The negative impact here stems from the office of the president criticizing the CEO of a publicly traded company, using an unofficial but public channel. This impact doesn't exist if it happens in private backchannels.

I think it's foolhardy to hold any certainty on the effect of transitioning from gloabalism to neo-mercantilism, which seems to be the economic policy of this admin. Given the complexity of the systems involved it should be flagrantly obvious that whether this is good or bad for the American people is wholly unpredictable for tiny little monkey brains. Thus, when I speak of the negative impacts in this context, I'm implicitly just sticking to what's definitely harmful, which is tied up in appearances here, and empirically measurable in intel's stock price (though it seems to be mostly minimal, thankfully.)

johnnyjeans commented on Trump says Intel's new CEO "must resign immediately"   arstechnica.com/tech-poli... · Posted by u/rickdeckard
CamperBob2 · 4 months ago
Republicans: "We believe in free enterprise"

Also Republicans: "Not like that"

johnnyjeans · 4 months ago
As I understand it, people have a higher priority of maintaining affiliation with social groups (of which, political parties are an example) than they have a commitment to any given personal view. It varies based on context, the person, etc. and is obviously a complex phenomenon. But the default operating mode of the human being is to toe the line and to (genuinely) change their views based on where their self-identified in-groups are heading. Mob mentality, group think, etc. All sides of the same coin.

Rhetoric is empty. Always.

johnnyjeans commented on Trump says Intel's new CEO "must resign immediately"   arstechnica.com/tech-poli... · Posted by u/rickdeckard
rickdeckard · 4 months ago
Beside of any reasoning or justification, it's insane for a US-president to do something like this, to a stock-trading *US-company*
johnnyjeans · 4 months ago
In fairness the laisseiz-faire market has been dead for over 2 centuries, it's just that this kind of thing usually happens with backchannels, often with a threat of malicious legislation if you don't play ball. There's a point where the more capital you control, the less freedom you actually have. For a company the size of intel, the line between private and public is blurred. Sometimes it's brazen, like with the seizure of the railroads in the 19th century, but the state is usually sensible enough to keep the illusion alive in the public's eye if they can help it.

This administration doesn't seem to care very much about appearances. Nothing you and I can do about it but pity the poor sons of bitches who are large enough to be perceived by the archons, and clench our assholes in the hopes that we aren't swept up in the damages.

johnnyjeans commented on The X11 Security extension from the 1990s   uninformativ.de/blog/post... · Posted by u/zdw
rnhmjoj · 4 months ago
> What does it protect against?

Unless you're doing SELinux or using some tool like firejail, absolutely nothing?

The average desktop is completely insecure, regardless of the display protocol. If a program is running as your user it's already game over: it can do whatever it likes. For example, I can simply change your shell profile to add an LD_PRELOAD shim, hook some libc syscall wrapper and run arbitrary code in any user process. There's no need to log key presses.

johnnyjeans · 4 months ago
you're right, but sec is about threat profiles. there's a point where selinux, firejail, etc. aren't enough either. even a virtual machine may as well be wet rice paper to an alphabet soup agency. you should very much assume that even airgapping isn't enough, unless it's inside of a faraday cage.

xorg security measures are a different matter from stopping any random program from writing to your filesystem. broaden the conversation to be about all security across all attack surfaces under all conditions and nothing is safe. i'm still not gonna run everything as root.

johnnyjeans commented on Nova: A New Web Framework for Erlang    · Posted by u/taure
asa400 · 4 months ago
Rebinding is not mutation. This seems pedantic but is an important distinction. None of the semantics of the runtime are changed. The data remains immutable. You probably know this. However, for the benefit of readers who may be less familiar: Erlang does not allow variables to be rebound, so it's somewhat typical for Erlang code like this:

  X1 = 8.
  X2 = X1 + 1.
  X3 = X2 * 302.
You cannot, say, do this:

  X1 = 8.
  X1 = X1 + 1.
This is because in Erlang (and in Elixir) the `=` is not just assignment, it is also the operator for pattern matching. This has implications that are too broad for this post, but the key point here is that it's attempting to see if the the left side and the right side "can match".

Whereas writing the same thing in Elixir would look like:

  x = 8
  x = x + 1
  x = x * 302
This is because Elixir allows `x` to be rebound, in effect changing what data `x` points to, but not mutating the underlying data itself. Under the hood Elixir rewrites each expression into something resembling the Erlang version.

The practical effect of this is that if you for example insert a process spawn somewhere in between any of the lines that references `x`, that process gets its own totally immutable version of the data that `x` points to at that point in time. This applies in both Erlang and Elixir, as data in both is completely immutable.

johnnyjeans · 4 months ago
It should also be noted that handling state like that is not really idiomatic Erlang. State is updated at a process level, thus traditionally you spawn another process which is trivial to do. On the BEAM that is fast enough for 95% of cases. If you really need mutation on local variables for performance reasons, you should already be writing NIFs anyways.

State variables are what I think corpos call a "code smell". The BEAM/OTP isn't a number cruncher, there are better tools out there if you're doing a lot of that. Erlang is, at it's core, about constraint logic programming. It should be best thought as a tool for granular, scalable, distributable userspace scheduling. If you need something outside of that, NIFs or Ports. Both are quite nice.

johnnyjeans commented on Nova: A New Web Framework for Erlang    · Posted by u/taure
klibertp · 4 months ago
> I'm not really sure what the appeal of Elixir as a language is actually supposed to be

Easy:

    - rebinding
    - higher-level OTP abstractions
    - AST macros
    - nicer, more readable syntax
    - (optionally) cleaner stdlib
(Assuming you're not trolling: you chose to focus on features that can only be judged subjectively, and therefore can only be discussed as preferences. It's ok to have them, but actively displaying them is a bit pointless. Objectively measurable features of both languages put them very close together, with both having slight advantages over the other in different areas, on average making them almost equivalent. Especially compared to anything non-BEAM.)

johnnyjeans · 4 months ago
I'm not trolling, but I'm very serious about language design after going through a long gauntlet. I don't think making mutation easy, and also having the ability to hide code execution, is necessarily a good practice in a system principally designed for safe, robust and efficient concurrency. Don't use a flathead on a phillips screw.
johnnyjeans commented on Nova: A New Web Framework for Erlang    · Posted by u/taure
azaras · 5 months ago
Why do you use Erlang instead of Elixir?
johnnyjeans · 5 months ago
No rebinding, better fits the grain of the OTP, no AST macros. Last I checked, the debugging experience with elixir was pretty subpar. Erlang is also a fundamentally nicer syntax that I find a great deal more readable. I'm not really sure what the appeal of Elixir as a language is actually supposed to be, outside of people who have spent a lot of time writing Ruby code.
johnnyjeans commented on There is no memory safety without thread safety   ralfj.de/blog/2025/07/24/... · Posted by u/tavianator
tptacek · 5 months ago
This is a canard.

What's happening here, as happens so often in other situations, is that a term of art was created to describe something complicated; in this case, "memory safety", to describe the property of programming languages that don't admit to memory corruption vulnerabilities, such as stack and heap overflows, use-after-frees, and type confusions. Later, people uninvolved with the popularization of the term took the term and tried to define it from first principles, arriving at a place different than the term of art. We saw the same thing happen with "zero trust networking".

The fact is that Go doesn't admit memory corruption vulnerabilities, and the way you know that is the fact that there are practically zero exploits for memory corruption vulnerabilities targeting pure Go programs, despite the popularity of the language.

Another way to reach the same conclusion is to note that this post's argument proves far too much; by the definition used by this author, most other higher-level languages (the author exempts Java, but really only Java) also fail to be memory safe.

Is Rust "safer" in some senses than Go? Almost certainly. Pure functional languages are safer still. "Safety" as a general concept in programming languages is a spectrum. But "memory safety" isn't; it's a threshold test. If you want to claim that a language is memory-unsafe, POC || GTFO.

johnnyjeans · 5 months ago
This is a good post and I agree with it in full, but I just wanted to point out that (safe) Rust is safer from data races than, say, Haskell due to the properties of an affine type system.

Haskell in general is a much safer than Rust thanks to its more robust type system (which also forms the basis of its metaprogramming facilities), monads being much louder than unsafe blocks, etc. But data races and deadlocks are one of the few things Rust has over it. There are some pure functional languages that are dependently typed like Idris, and thus far safer than Rust, but they're in the minority and I've yet to find anybody using them industrially. Also Fortnite's Verse thing? I don't know how pure that language is though.

johnnyjeans commented on Jank is C++   jank-lang.org/blog/2025-0... · Posted by u/Jeaye
plq · 5 months ago
> the lack of standardization for name-mangling

I don't see the point of standardizing name mangling. Imagine there is a standard, now you need to standardize the memory layout of every single class found in the standard library. Without that, instead of failing at link-time, your hypothetical program would break in ugly ways while running because eg two functions that invoke one other have differing opinions about where exactly the length of a std::string can be found in the memory.

johnnyjeans · 5 months ago
The naive way wouldn't be any different than what it's like to dynamically load sepples binaries right now.

The real way, and the way befitting the role of the standards committee is actually putting effort into standardizing a way to talk to and understand the interfaces and structure of a C++ binary at load-time. That's exactly what linking is for. It should be the responsibility of the software using the FFI to move it's own code around and adjust it to conform with information provided by the main program as part of the dynamic linking/loading process... which is already what it's doing. You can mitigate a lot of the edge cases by making interaction outside of this standard interface as undefined behavior.

The canonical way to do your example is to get the address of std::string::length() and ask how to appropriately call it (to pass "this, for example.)

johnnyjeans commented on Jank is C++   jank-lang.org/blog/2025-0... · Posted by u/Jeaye
benreesman · 5 months ago
Carmack did very much almost exactly the same with the Trinity / Quake3 Engine: IIRC it was LCC, maybe tcc, one of the C compilers you can actually understand totally as an individual.

He compiled C with some builtins for syscalls, and then translated that to his own stack machine. But, he also had a target for native DLLs, so same safe syscall interface, but they can segv so you have to trust them.

Crazy to think that in one computer program (that still reads better than high-concept FAANG C++ from elite lehends, truly unique) this wasn't even the most dramatic innovation. It was the third* most dramatic revolution in one program.

If you're into this stuff, call in sick and read the plan files all day. Gives me googebumps.

johnnyjeans · 5 months ago
Any particular year?

u/johnnyjeans

KarmaCake day606February 20, 2023View Original