I know someone with aphantasia. It's absolutely wild to me that he can't see things in his head. Totally alien from my perspective, since I'm at the opposite end of the spectrum. I see what's in my head so vividly that I often won't see things in real life which are right in front of me.
But what's even more wild to me is the people leaving comments refusing to believe that different people are actually different. Refusing to believe aphantasia or hyperphantasia exists. Refusing to believe that other people are telling the truth when they describe their experiences. Insisting that everyone is the same, actually, and anyone who thinks differences are real must be confused or misunderstanding something.
I guess these are both types of cognitive disability... but I know what aphantasia is called. Not sure what the other thing is called, but I'd imagine it's something which sounds pretty unflattering.
im like you where i become so caught up in the image in my head that i lose track of my surroundings
when engaging in small talk i make eye contact and have been told im very easy to talk to
when discussing something im interested in, i stare into the distance and start waving my hands around gesturing at the diagrams im describing. its to the degree where my managers prefer i not meet with one specific customer who commented on this
at my first job my coworkers pointed out that i stare directly up to the ceiling for a period of time, then will type furiously, and repeat. id never known that was different before. assumed everyone constructed their ideas mentally before getting it down on paper
im reminded of my high school AP physics teacher who would close her eyes while lecturing because i assume she was picturing things. the funniest students knew how to get some physical comedy into those windows of obliviousness
when it comes to aphantasia it reminds me of Stan in South Park: "I get it now! I don't get it!" the best i can do be nice and accommodating and acknowledge i simply cant relate
I believe some people have aphantasia and hyperphantasia, but a lot of people who claim they have either are somewhere on the bell curve between them.
I also suspect that some of the people who think they have aphantasia could learn. I personally am not good at visualising and don't naturally do it, but these days I can imagine a not very good apple if I try hard, and I trained this by building on my existing ability to imagine the tactile feel of holding an apple and on spatial awareness.
In fact, the term typical mind fallacy was born from aphantasia [1]:
> Galton gave people some very detailed surveys, and found that some people did have mental imagery and others didn't. [...] Though another psychologist, Dr. Berman, did, at that time, come up with a name for the masking behavior, called the Typical Mind Fallacy: the human tendency to believe that one's own mental structure can be generalized to apply to everyone else's.
I'm one of the naysayers denying aphantasia in the comments.
Why would we default to believing people, though? I get your point. Believe people when they tell you their experience. Sure, that seems like a reasonable thing to do. But in this case, when there is zero evidence besides a self-reported experience, why do we default to believing that there are suddenly two types of people, instead of assuming that semantics has created this illusion?
You're defaulting to being nice, which is fine, but it doesn't make you any more right than me and my skepticism. We both have no idea what the truth is.
That's a bold claim. It doesn't tell me there is zero evidence... hardly anything has zero evidence. It just tells me you either reject the evidence or haven't looked. It's not hard to check. For the lazy, Wikipedia provides a nice summary and 82 references to get more details. But that's just a starting point.
> there are suddenly two types of people
This comment is pretty revealing. For almost any trait, there are way more than two types of people. Usually there's a whole spectrum with lots of diversity. It's a beautiful thing. What would be very unusual is if there was only one type of person, or only two types.
Even distinct "types" is a bit of a misleading concept. Instead of distinct types or buckets, most things have more of a cluster or nebula structure. Each individual member of a cluster is different, but has overall similarities, on average, to other members. There will usually be a fairly dense core, and then it gets more sparse with distance. And there will often be several clusters near each other, overlapping, so there is no clear boundary between one cluster and another. That is how descriptive categories work... nebulous clusters in thingspace, where that space is a many-dimensional abstract space with each trait having its own axis, and many degrees of each trait.
For convenience and efficiency, we use labels to refer to these clusters, but when deeper understanding is needed, or more nuanced communication, the labels stop being a useful simplification. It's like trying to dig out a splinter with a shovel; shovels are very useful, but they're way too coarse and blunt for something as precise as a splinter. A deep enough understanding requires us to more explicitly recognize the cluster structure and the multidimensional spectrum of diversity.
Don't mistake the map (the labels, or the "types" of people) for the territory (the rich variety of life).
> why do we default to believing that there are suddenly two types of people
Because we know that there are already more than two types of people, even when we ignore aphantasia? So there is nothing new here.
Also if you read the FA, it explains that there are objective differences:
> People have taken various physiological and behavioral tests in a research lab. Researchers have observed that people who report vivid imagery respond differently to these more objective measures than aphantasics. Although this doesn't let us know definitively that they vividly see an image, it all points to the fact that something is truly different between people who claim to see vividly and those who don't.
Here’s some evidence for you: when I close my eye, I see black. That’s it. No amount of effort conjures an image. That’s not what most people I talk to about it report, so I am going to assume there’s a functional difference between me and people with functioning visualization.
I believe you. Why wouldn't someone believe you? There's not much reason to claim "I cannot do X" maliciously. I'm hopeless at catching a ball, can't play tennis to save my life, for instance... believe me?
I just want to throw my two cents in: I think I have a pretty good level of visualization ability, but it's not actually projected into my field of vision. It's like having a second monitor plugged in somewhere... _else_. It doesn't overlap with the 3D space of our world. I don't SEE it, but I do "see" it, not as concepts but as something akin to generated memories.
It does often help to look away from visually distracting things so that the mind is more free to use its capacity to generate things.
I have the same. I'm looking at my laptop's screen as I type this, and if I close my eyes while typing I cannot even visualise said screen. Now, I can blind-type, recognise faces, navigate aso without any problem. I can even play chess quite well (fide ~2050, 2200 blitz on chess.com), but I cannot visualise a chess board, nor can I visualise my moves or the moves of my opponent.
However, I don't "see" (pun intended) it as a problem. On the contrary, I'm not wasting cycles on irrelevant details while I'm thinking.
If it makes you feel any better, I'm on the hyperphantasia end of the spectrum and it is honestly actively problematic sometimes. For me, it can be very difficult to work with things that I can't translate to visuals, mentally; and daydreaming, and memories can be so vivid they are distracting or disturbing. It's very much an asset in certain circumstances (like debugging code or fixing an engine), but there's a reason most people don't have that fidelity.
>Here’s some evidence for you: when I close my eye, I see black.
This, I can imagine things, but it's like the idea of something, not a picture of it. Blows my mind when people tell me their imagination is like watching a movie.
Same! My wife is at the opposite end and can visualize these wild scenes and describe them in detail and I’m like “I can tell you roughly where the parts of a cat go”.
That's so funny, my wife and I have the opposite dynamic. She rolls her eyes at me when I insist "no the couch would definitely fit through that doorway if we rotate it like that, I don't need to measure", and after she gets a tape measure it's about an inch of room to spare.
One, a study with more than 32 people. Two, replications with equally strong observations.
I've read a lot of research on fMRIs and mental disorders. Something like this pops up every other day. Not a single one has really study the test of time ion terms of diagnostic utility.
I meant definitely proven with in a realistic sense. Smoke causes lung cancer, albeit only something like 20% of smokers get lung cancer. It's been proven, but not in the mathematical sense of the word.
It was funny to watch this discussion turn from skepticism at the top to then a bunch of proponents moving in and crowding out the rational voices. It feels a bit religious to me, at least unscientific, there are obviously no testable hypotheses about subjective descriptions, and so people seem to dig in on their sides more than if there was a real basis for comparison. I default to not believing in it until there is actual strong evidence, same as ghosts and the Loch Ness monster and whatnot.
I'm not sure how the examples given in this thread, such as brain scans, are "unscientific" while simply saying "nah, I believe everybody else is exactly like me" is "rational voice"?
> This brings so many advantages, such as true tear-free graphics and lower input latency.
Curiously, people always seem to list the same advantages, and it's a very short list. Fewer (but still non-zero) torn frames are the top of the list pretty much every time, since that was the very first thing its creator listed in his original goals... but that's a pretty small benefit in exchange for breaking entire categories of functionality. Like, it looks smoother when I scroll, but features I rely on heavily every day are forbidden.
As for input latency... that doesn't seem like it was ever a problem. Using X11, I'm able to get 500 to 1000 inputs per second even on a potato PC. That's faster than the frame rate of pretty much any screen, and fast enough even for audio / midi purposes. Reducing input latency from ~1.5ms to ~1.0ms doesn't really matter when the timeslice scheduling has ~6ms of jitter on an average system, a common screen only draws a frame every ~16ms, and many input devices have 50+ ms of their own additional latency.
> if you want to take a screenshot in a generic way, you have to go through the XDG portal API
This is a symptom of what's wrong with Wayland. Wayland doesn't do screenshots. Like many things users need, they decided it was someone else's problem, and threw it over the fence for the fragmented ecosystem of downstream projects to solve. So each downstream project came up with their own workarounds for essential features not existing. The solutions had to be built entirely outside of Wayland, and even after years of development, the solutions are still incomplete, unreliable, complex, and full of caveats. It required (and still requires) everyone except Wayland's core devs to write a lot more code for less functionality than they used to get with a couple of simple API calls. They had to architect entire complex infrastructure layers in order to work around a missing feature in the core protocol, since the core devs stubbornly refused to allow it.
Similar situation for input automation and remote control. It's a common thing people need. I use it every day and can't use the notebook at my desk without it... but the Wayland folks refused to solve it, so it had to be done outside of Wayland. For example, one workaround is to give the user direct access to the kernel so they can create fake input devices at a kernel level, and generate the inputs they need, which Wayland then sees as a local physical keyboard or mouse. So... problem solved, from Wayland's point of view. The user gets what they need, sort of, and it's implemented outside of Wayland, so Wayland doesn't have any security issues. But... and this is a big "but"... the solution involves giving users device-level kernel access. Which seems significantly worse than the issue it was originally trying to solve.
> I understand where you're coming from, but there is no turning back at this point.
A position of "sure it has major problems, but it's too late now" is not a position of progress. Much like the situation with pulseaudio being deployed everywhere then replaced with pipewire, it's almost never too late to fix bad software architecture. As you said, this whole ecosystem is still very much a moving target.
The ideal solution would be the creation of a new system which supports the features, protocols, and APIs of the older system(s), in a way which "just works". But that requires a very different mindset from the people behind it. Instead of "not my problem, someone else can deal with it" like the Wayland policy, a proper solution needs people to adopt a "the buck stops here" approach, and take responsibility for making the entire system work. Things like accessibility, network transparency, automation, and legacy support... need to be built in from the ground up, not rejected or treated as an afterthought for someone else to handle.
> Curiously, people always seem to list the same advantages, and it's a very short list.
The things I listed are just the tip of the iceberg. Having studied earlier versions of X like X10, X11, and now Wayland, I could go on and on. What I'm trying to emphasize here is not to look at Wayland through an Xorg lens. I know it's easy to look at Wayland and immediately think it's a rigid protocol that breaks everything, but the reality is that it's a lot more flexible than people realize. Once you understand it, I think the closest thing that comes to mind is "There is no spoon." And just like there is no spoon, there are also no windows, only surfaces, but again, that's only the tip of the iceberg.
If you want an example of what I'm talking about, take a look at projects like p9wl. [0] This is using wlroots to create a proxy between Linux and Plan 9 in order to display windows remotely. Such flexibility is only possible when the protocols are small and composable, which Wayland is.
> As for input latency... that doesn't seem like it was ever a problem.
I never said it's impossible to get acceptable input latency on Xorg. I'm just saying that when your input and graphics go directly through your compositor, the experience is on a completely different level. This is even more true with features like direct scanout, where the compositor steps aside to send graphics directly to the GPU and input directly to the game as it goes fullscreen. It simply makes using your computer so much more pleasant. These input latency issues were exactly what Kristian Høgsberg tried to fix in Xorg, and addressing them was one of the primary motivations behind creating Wayland. [1]
> This is a symptom of what's wrong with Wayland. Wayland doesn't do screenshots.
You're thinking through your Xorg lens again. That's understandable, since you're probably used to it. However, to really understand Wayland, you have to look at it through a different lens. Wayland isn't defective, and it's not trying to be Xorg 2. It's a protocol. It doesn't do your laundry, nor does it take screenshots. It's just there to provide the mechanism for sending buffers to your compositor.
You can think of Wayland as thin building blocks to build compositors, just as you can build window managers on X, except this time, the core protocol does one thing and the libraries already exist. Wayland exists because all the infrastructure is already there in the kernel and in libraries.
The screenshot feature is the job of the compositor. Most compositors already have this feature built in. As I mentioned before, XDG portals exist, and interoperability will only keep getting better.
> Similar situation for input automation and remote control.
I agree input automation and remote desktop are still problematic. GNOME and KDE have their own remote desktop solutions, as do most of the others, but I haven't had a need to use them myself. All in all, Wayland really isn't trying to prevent you from doing things, it's just a protocol.
I'm pretty sure all this will be solved eventually, and I understand the frustration of those who need these features. However, I also understand Wayland and compositor developers taking a careful approach here, and it shows.
> A position of "sure it has major problems, but it's too late now" is not a position of progress.
That's not what I intended to say. The intended message was: the core Wayland protocol is set in stone and won't change, but we can build these things that aren't working and make them work. That is already happening every day. Progress has been steady, it's a lot better than it used to be, and it will only keep getting better. Going from Wayland into a whole different windowing system, I don't see that happening, at least not in the next 60+ years, but I definitely see the whole Wayland ecosystem improving.
So I keep hearing. But hardly anyone ever talks about what's underneath the tip... and when they do, it turns out to be a big mess under there, not a mountain of advantages.
> just like there is no spoon, there are also no windows, only surfaces
Yes, I understand. That's why programs can't position their own windows, or get or set the mouse position. It doesn't even assume the coordinates are 2-dimensional. It's all very futuristic and makes a lot of interesting things possible, like using Minecraft as a compositor, or a Facebook style Metaverse compositor. But you're not hearing what I'm saying:
Wayland is solving the wrong problems. What it can do is pretty neat, but what it does is not what people need. It's good at party tricks, but bad at solving the real needs of daily life. It largely solves problems that nobody had, and to do this, it breaks major features people need. Much like how Facebook's Metaverse failed, nobody really wants to do their spreadsheets in Minecraft.
> It doesn't do your laundry
Yeah, and that's part of the problem. To use your analogy, it's like removing someone's washer and dryer, and replacing them with a box of tools which don't do laundry. It may be a really fancy foundation for building efficient laundry appliances, but that's not what people need. People may have used it to build an entire ecosystem of laundry appliances, but they couldn't agree on basic things so the ecosystem became fragmented, such that P-brand soap doesn't work in Q-brand washers, and clothes washed in Q-brand washers can't be dried in R-brand dryers, and if you use a P-brand washer you need to take fifteen extra steps to prepare it for a drying cycle, and T-brand dryers can only be used for pants, and ... etc etc. It's a big complex mess which, after 18 years of development, still doesn't let me get my socks clean. And most of it doesn't work at all for people who use a wheelchair.
> when your input and graphics go directly through your compositor ... input directly to the game
When they cut out the middleware, the middleware stops working. And when they make it impossible to add middleware, it stops being possible to do all sorts of useful things. Sure, it may be a millisecond faster, but in exchange, all my keys get mapped wrong, or I can't use my notebook without physically touching it (and causing repetitive strain injury), or my autoclicker stops working, or my accessibility tools become impossible to fix, or my automatic time tracker is treated as a security violation, or the solution which works for me suddenly won't work for my friend who uses a different compositor, or ... etc etc etc.
It architecturally eliminates entire categories of useful things... in order to make the simplest case slightly faster. This provides a more pleasant experience for average able-bodied normal people with no uncommon needs or preferences, while making things worse for everyone else. In particular, the complete lack of accessibility in Wayland is very able-ist and makes it unusuable for anyone with disabilities. That sort of thing needs to be built deep into the core, but it was instead rejected outright and left as an afterthought exercise for Someone Else to solve.
> [this] feature is the job of the compositor. Most compositors already have this feature ... GNOME and KDE have their own solutions, as do most of the others
This really gets at the nature of Wayland's biggest problem. A ton of important things are rejected and declared to be Someone Else's Problem. The compositors have attempted to deal with the aftermath of this mistake, but they all do their own thing and refuse to agree on a lot, so instead of one robust solution, we end up with an entire fragmented ecosystem of partial solutions which aren't compatible with each other.
It's even more of a nightmare for application developers. Instead of needing to support Windows, MacOS, and X11, suddenly they need to support Windows, MacOS, X11, GNOME, KDE, Sway, Weston, Hyprland, Enlightenment, Niri, etc. Every time two compositors disagree on something, it means every application must add support for both of the ways of doing it, like how they are now required to optionally draw their own title bar and window frame, depending on which compositor the user has... and good luck getting two programs from two different developers to draw their frames in the same visual style.
> Wayland really isn't trying to prevent you from doing things
I agree with your pain points. But the reality is that GNOME is already Wayland-only, KDE will be dropping the X11 session in 6.8, and GTK has deprecated X11 support, so going back isn't realistic.
> so the ecosystem became fragmented
The current fragmentation is frustrating, but Linux and Unix have gone through this exact phase before. Unix and especially Linux have never been static, they are more like living organisms. Back in the late '80s and early '90s, PC Unix suffered from the same growing pains. Multiple commercial and open-source X servers popped up for different hardware, until things eventually settled around X386 and XFree86. Even X developers in 1987 were saying "old window systems don't die" [0], sounds familiar?
We'll likely see compositors come and go, along with new protocols to address today's pain points. But the core protocol is here to stay, and wider adoption will naturally push the ecosystem toward shared solutions, just like we're seeing with River and wlroots. The fragmentation will fade over time.
In the meantime, anyone who still relies on X11 can simply stay on it until Wayland covers their use cases. Standalone X11 window managers aren't going away anytime soon.
Rather than dwelling on the friction, it's probably best to focus on what you can control: test software, file good bug reports, and help resolve the remaining edge cases.
I sympathize with the headache, but many Wayland developers came straight from X.org and know what they're doing. It's an uncomfortable adjustment period, but we'll get through it.
Metux (Enrico Weigelt) was banned from the Xorg project because his patches kept breaking things, often in ways which demonstrated he didn't even do the bare minimum before pushing commits. Like, adding code which didn't even compile. It's fascinating to look through the huge pile of commits they had to revert after banning him, to see how bad a lot of it is. I picked a few at random, and ... wow.
So he started his own fork.
The ban didn't seem to have any relation to politics or personal behavior. However, he was widely known for being ... how to put it in a way which is acceptable here ... uh, difficult to deal with. Like, after Linus Torvalds made a vow to be nicer, he made an exception just one time... for metux. He was the only person obnoxious enough to get Linus to break his vow. Which, if I recall correctly, was how he ended up focusing on the Xorg project. After getting booted from Linux, he picked a different project.
That's who is in charge of XLibre.
Things didn't get political until he announced the fork. Because, although politics had nothing to do with him getting banned (either time), he framed it as if he was being targeted for political reasons, and used inflammatory political language in the project's documentation. This gained a lot of attention and caused a lot of controversy, and also had the effect of ensuring the contributors all had mostly the same political views.
Anyway, the number of commits doesn't tell much of the story. The content of the commits (especially the reverted ones at Xorg) are far more enlightening.
Exactly. It's hard to be enthusiastic about something which breaks a lot of stuff I rely on daily, when the benefit is that it fixes problems I've never had.
My theory about the motivation behind the extra security is that it's largely driven by corporations wanting to make desktop Linux less free and less open, and normalize proprietary software instead of open-source. Because profit. Proprietary software is inherently not trustworthy, so the execution environment needs extra security and restrictions, and must be generally less powerful to reduce the damage it can do. Essentially, proprietary software needs the same precautions as malware. So the corps needed to "androidify" desktop Linux. Hence the change from curated distro package repositories to corporate app stores, and the reason why there's so much money pushing to replace X11 with Wayland.
In an open-source ecosystem, users and developers are one and the same, or at least on the same "side", cooperating with each other to make tools which work as well as possible for everyone. Each big program tends to be a collaborative effort where a lot of people contribute to make things better for everyone. Things mostly "just work" and people can typically trust their computers not to do anything weird or hostile.
Very different than a proprietary commercial ecosystem, where users and developers have more of an adversarial relationship. Each program tends to be created in a closed silo by one person or a relatively small team, and is designed primarily to extract money from users, with all other concerns being secondary. It is very common for profit-driven developers to engage in deceptive practices, or do things the user doesn't want, like showing advertisements, collecting and selling data, sabotaging products from competitors, using the device as a node in a botnet or secret compute farm, forcing unwanted updates, microtransactions or subscription fees, etc. So nothing can be trusted, and the entire system needs extensive protections against every type of misbehavior imaginable... even if that means reducing the power and features available to the user.
I've really enjoyed the past few decades of living entirely in the open-source world, where those problems pretty much just don't exist. But with corps pushing the androidification of desktop Linux, I fear those days may be coming to an end.
Wayland security is a side effect of how the core protocol works. In X, you have one giant buffer, while in Wayland, each application renders to its own buffer and pushes that buffer to the compositor when ready.
X has had compositing for ages as well. That didn't require preventing applications from moving the cursor or simulating keyboard input and even screen grabs still work fine.
X11 was 21 years old when the Wayland folks decided it was obsolete and needed to be replaced.
Wayland is now about 18 years old. So, by Wayland standards, only 3 more years until it, too, will be obsolete and need to be replaced.
That day can't come soon enough. :D
Maybe the next one will actually be able to do the things I need a display system to do. Until then, at least we've still got X11. And Wayland has taught everyone all sorts of things about what not to do.
Exactly. That was one of the first examples which came to mind for me too.
I often still use just ALSA, but pipewire is at least pretty decent and mostly "just works". Unlike pulseaudio, which was kind of a plague on Linux audio for ages.
On that note, for about 15 years, a funny thing kept happening. Any time anything on my Linux boxes broke, I'd trace the issue to its origin (bug hunting was literally my job, after all), and about half, maybe even two thirds of the time... it traced back to Lennart Poettering. That man was singlehandedly responsible for more than half the bugs I encountered for a decade and a half. It became so routine that I started practicing my impression of Severus Snape, so I could shake my fist at the sky and exclaim, "Poettering!!!"
Anyway, Wayland feels like another one of those... where someone has to do it wrong and create a lot of trouble before someone else comes along to do it right. But that second part hasn't happened yet. So it's still in a broken state where half the stuff I do on a daily basis isn't even possible in Wayland.
Whether the topic is Wayland or cheese or the finer points of knitting, one does not make an anonymous throwaway account to post statements one wants to stand behind and be associated with. Using an anon burner account makes every comment inherently more questionable than it would otherwise be, regardless of what is actually said.
Hooray! A new release of Xorg is always a good reason to celebrate. Long live the all-singing all-dancing feature-rich network-transparent display system which is still the best (and often only) solution for a lot of common user needs, even 39 years after its creation.
I think Linux (and other unix-like system) would be best off with something like rio on plan9. The API should look like a file-system hierarchy, and API virtualization/access management/input output hooks and mapping could also be file-system-like.
Dang, who is this Zak guy? Seems like a huge nerd.
(spoiler: he's the admin of /r/flashlight, an expert on lighting, a widely respected reviewer, maintainer of the community's quarterly "arbitrary list of popular flashlights", author of "ceilingbounce" for measuring torch brightness over time, and someone who calls himself a "huge nerd" ... so yeah, he knows a thing or two)
Given how few programmers very seriously write lots of assembly, it's kind of astonishing how good LLMs are at working with assembly. They can compile and decompile all on their own with apparently very little effort.
I suspect (with zero proof or understanding) that this has something to do with how well C maps to assembly. It's not a stretch to say the model's vector space maps this chunk of assembly with that line of C. And we all know how much C code exists online.
It's relatively recent, I feel. Claude used to really struggle with writing asm not that long ago. But the last 6 months or so it's done great.
It's also far better than me (as someone who has done assembler since the Commodore 64) at using gdb to debug it, despite being effectively stuck using it in batch mode (which I didn't even knew existed). Watching it write elaborate scripts to dig into a code generation bug in my compiler is something.
I feel like the problem used to be that it'd struggle with the ambiguity of flow that is much more apparent in a high level language. But clearly that's not a problem any more.
I've had the opposite experience. Inspired by a recent HN post where someone made the world's dumbest browser by having an LLM read HTML and draw the rendered page, I thought I'd do a fun art project and take it a notch dumber: have the LLM "be" the computer and execute code as a VM. I chose a simple instruction set that I thought would be very present in the training material (RV32IM), and defined a very simple machine model with flat memory and two trapped calls (to terminate and to request to print).
I couldn't once get any of the SoTA models from a month or two ago to correctly execute more than the first 5% of the instructions for a fizzbuzz (compiled from C with GCC). As I recall, one of the Qwens did the best and would only mess up "a little bit", but that's of course enough to derail everything (can someone remind me again why we think natural language is good for interacting with precise machines?). I didn't think it'd go very well, but failing at decoding something as well-documented as RISCV is not very impressive!
Most models would also start gaslighting me when I pointed out their mistakes. To their credit, they'd very often cheat by deducing that the code was for fizzbuzz, and try to fake the execution. Always badly though. (This despite explicit instructions to execute the code faithfully instruction by instruction and not be informed by their overview of the code).
I honestly don't understand how people can work like that. I had fun because the whole thing was a joke, an art project. Doing serious work in that way must be so ridiculous.
But then again, I don't use LLMs very much and might be holding them wrong.
This "hopelessly proprietary, and you have to pay to use it." is what scary me most.
How often there are stories "Google/Apple/Microsoft [but mostly Google] deactivate my account for some stupid reason and I lost everything: my business, my tax data, my client data, my developer account and access to my apps, everything".
This has got to be the craziest AI-shill sentence I have heard in a long time.
How can a generic LLM generate better assembly than a dedicated compiler, whose sole purpose is to generate assembly code. With people pedantically adding every optimization imaginable and unimaginable to produce the most efficient code possible. And you have the audacity to say LLMs, which write garbage non-trivial amount of time, are capable of producing better assembly.
This has got to be either a masterful ragebait, or a person with very low knowledge of modern compilers, because even an LLM would not write something so stupid as this.
One simple thing that LLM's doesn't have to do is use a calling convention. Compilers need to use them, at least to some extent because it's not known at compile time who will link against this function in the future. Humans kinda need them because it's a lot of mental load when everything is custom. But for a sufficiently smart llm, noticing a register doesn't need to be preserved because there is only two callers and neither of them care about it might be doable.
Agreed. "Evidence" in this case is a weasel word that could be anything. Misconfigured LLVM? Old/unsupported GCC target? Doesn't matter, look at the evidence of great success! This 10kb assembly loop has a 44,000% speedup versus compiling with automatic vectorization disabled!
LLMs generating "assembly that runs a great deal more efficiently" is a ludicrous claim that cannot be substantiated outside PEBCAK situations.
There are a ton of optimization opportunities that hinge on the intent of a piece of code which static compilers can never detect at scale. LLMs can actually navigate that and write surprisingly optimal assembly.
I've had all my side projects being written in x64 for the last 6 months and it is shockingly effective.
The purpose of an optimizing compiler is not merely to produce efficient assembly. The goal of an optimizing compiler is to produce efficient assembly while confidently preserving a program's observable logical semantics. Asking an LLM to spit out raw unstructured assembly based on inferred context from a specification given in English is a contender for one of the worst ideas I have ever heard; I award you no points, and may God have mercy on your soul.
Code is code my dude. If an LLM can turn English into Python, there's really no reason it can't do assembly. Assembly is not magic, it's just code that humans find difficult to grok. LLMs, it would seem, don't have the same kind of trouble understanding assembly that humans do.
Have you ever compiled something by hand? You should try sometime, it's an illuminating experience. Humans find it hard because you have to remember a lot of details while simultaneously paying attention to a different large set of information while also generating instructions. It's tough, but not impossible, it takes humans a lot of time and effort. How might a computer fare if it could remember everything and pay attention to multiple inputs and outputs at once? That's what an LLM does.
Yeah, 65% to 75% is great. It may be "boring", compared to the more exotic layouts, but I've tried a bunch and I like this more. The traditional rectangle is popular for a reason.
The main thing is... it's gotta have open-source firmware. After switching to something like QMK, I wouldn't want to go back. I customize stuff too deeply to go back... like 8 to 12 layers and a bunch of completely custom behavior. And for notebooks, remappers like Kanata help immensely.
Ideally it's nice to have a small touchpad under the space bar, like maybe 4 keys wide, retro style, meaning a high-DPI zero-force touchpad. But that's optional. With good firmware, I don't really need a mouse because MouseKeys and Warp do most of what I need.
The world has a lot of problems, but ... at least we've got a wide selection of awesome keyboards these days, to suit nearly every person's style and taste. Typing has never been better.
But what's even more wild to me is the people leaving comments refusing to believe that different people are actually different. Refusing to believe aphantasia or hyperphantasia exists. Refusing to believe that other people are telling the truth when they describe their experiences. Insisting that everyone is the same, actually, and anyone who thinks differences are real must be confused or misunderstanding something.
I guess these are both types of cognitive disability... but I know what aphantasia is called. Not sure what the other thing is called, but I'd imagine it's something which sounds pretty unflattering.