94,383 karma · joined October 13, 2008
jerf@jerf.org , though be aware that I only really check email every few days now.
Permission for comment republication in HN collections granted, though please do drop a line to jerf@jerf.org so I know. :)
my public key: https://keybase.io/jerf; my proof: https://keybase.io/jerf/sigs/vL9FeVDSGtiDMBmXC4f_rCikI0n4jNfB-1PsNgUN-Is
The cumulative level of the "hedonic adjustments" they keep stuffing in, ostensibly to adjust for the natural improvement of things but in practice over the sum of them to allow them to keep stepping down the quality of the basket of goods under the cover of "oh, we're just trying to maintain it" is pretty substantial. They've hidden a lot of things in the electronics. Other things aren't doing the exponential advance thing the electronics did for so long.
Even back then, long before the word "enshittification" was coined, it made me squirm.
It did make a bit more sense back then. In the early 20th century there was a lot of utterly massive overproduction that greatly increased the price of some good for everyone while not giving improved service. I recall a house a relative had, which has about an 18"x18"x12" cast iron grating to distribute forced air between two floors. Unbelievably overproduced for the purpose. In the 1990s quality was still decent, and overproduced in some areas. But the trend was clear, and yea verily these 30 years later, it most certainly continued.
Even if a brand stays solid for 100 years, for all I know as I'm standing there in the store deciding whether to buy something, private equity bought them two quarters ago and hollowed them out. Harvard MBAs/private equity sees brand reputation as just another resource to be converted into money.
If I were a billionaire my dream would be to create a logo for the "We Put The Extra 10% In It" program where products could advertise that they put the extra effort in. What is really sad to me is that so often it's not even that much extra effort, which is why I say 10% and not 100% or 10x. So often it's just "used a 5 cent metal part instead of a 1.2 cent plastic part". But without a reliable signal that the effort is there MBAs/private equity turns every market everywhere into a lemon market. Way too much tech is applied in manufacturing to turn everything into a lemon market.
One easy answer up there with "more study is needed" in terms of being a bit cliche, but cliche because it's often true, is that there may be a richer spectrum or something that isn't even 1-dimensional then we're currently able to grasp, which will become more clear over time and more study. Perhaps it's less rare than we think and the rareness is only those we can talk into agreeing their qualia really is different from others. Or the way we are describing it leads people in the "1-2 out of 5" category to declare themselves aphantastic on HN when they aren't really properly so.
I expect this is only going to get worse. "Censorship" isn't just going to be about who you vote for and which political party the model will say nice things about and which it is more likely to say bad things about. It's going to become about whether the hoi polloi are allowed to have effective AIs at all. Like the 1990s internet, AI has outrun a lot of power structures but that is not going to continue indefinitely.
I invite you to feed your own friendly AI these references then ask it to analyze the recent papers trying to study aphantasia and come to your own conclusions about whether they're actually doing all that much. My own suggested that while there are some improvements since the papers I cited that it is still difficult to say that they've solved the problems in those studies.
Still, directionally, while inferring from "brain activations" to qualia is a difficult path, if there was enough data to show big and consistent correlations that would tend to satisfy me that maybe there is some sort of real difference and we're not just talking past each other. It's not such a shocking claim that I need truly shocking evidence to believe it, just some support.
But all we have is that and a couple of rulings from the Ninth Circuit, one of which is the HN link. For something this critical I'm surprised. I remember writing about this in 2001 or so and you'd think for something so consequential we'd have more lawsuits to point at by now. One wonders how many companies have considered it, looked at the thin precedents we have, and realized that while the victory would be slightly advantageous writing a loss into precedent would be completely devestating and declined to roll the dice.
In particular, I don't know if the Steam Frame will have the power for this, but something like a native ARM build of Dolphin (so no FEX) that exposes the 3D nature of polygonal games is very interesting to me. If you can cross your eyes to get stereo you can see what that would look like for something like Super Mario 3D Galaxy here: https://www.youtube.com/watch?v=XmgdqCL2toE (I find a conventional, unfolding phone to be a pretty good size for that. On a big monitor getting it small enough to cross eyes can be a challenge.) In general any emulation target that has 3D polygons is really interesting to me. I'm also pretty interested in what full 3D does to Skies of Arcadia (could be a complete disappointment, could be absolutely amazing) and Sin & Punishment: Star Successor, where I feel like the game that was a bit crowded and struggling with being 2D in SD might just come alive. (Assuming they didn't play too many games with the distance that doesn't work if we see it in true 3D.)
I gather the modding community is already gearing up for modding more games to be true 3D in the VR space. That is, not necessarily VR (though there's a mod community for that as well), but having a visible screen floating in 3D VR space where the screen itself is fully 3D. There is also a wide variety of games from the past couple of decades that I suspect might be very difficult to "convert to VR" but might be relatively easy to trick into rendering full 3D instead of down to 2D.
Nothing really stops any of this from happening now, but I've tried to set it up before and I was unsuccessful with my current stack. Being able to give out instructions that say "Install the Dolphin3D Build from the Flatpak Store and load up your ROMs" rather than the current set of ad hoc complex instructions that I couldn't even get through successfully could be a game changer.
I will giggle like a schoolgirl if the reason why Steam Frames sell like hot cakes in six to twelve months is that they become recognized as the premier way to emulate 3D systems from the Playstation forward. Overclocking, texture packs, modding, all that's great, but how about all those things and true 3D for a lot of games?
Moreover, if the theory is true, it is happening all around us, all the time. Every consciousness that has ever existed, human or otherwise, is still in existence in some branch of the multiverse.
It's a pretty horrifying theory.
And that was my reaction 15 or 20 years ago. It is only harder to poke holes in the logic now than it was then.
Everyone should very much hope that quantum immortality is false. It is the very opposite of comforting.
This is also where it is important to understand the argument is parameterized. If your acceptance function is "a full human body living a full human life in the way I'm used to", then you're asking for a huge whackload of improbability to keep that body alive. If, on the other hand, you merely ask for "the minimum system that stays conscious", while that is still a huge whackload it is exponentially smaller, by a very substantial factor.
Anyone who takes any sort of comfort in the argument doesn't understand it. It preserves minimal consciousness, for any and all definitions of "minimal consciousness". It does also preserve bodies, but at an exponentially smaller probability. You can even use as your acceptance function "civilization exactly as we know it today, with everyone currently living still alive in 1000 years" and that comes at a yet smaller exponential probability. All of these "exponential probabilities" as separated by numbers of zeros that themselves require exponential notation to write. But the universe itself is making so many splits and branches all the time that it has the "budget" for these probabilities to be true, somewhere in the quantum multiverse.
Or, put another way, any event that you can draw a non-zero probability pathway for occurs. It is not impossible for me to spontaneously have my particular genetic defect reversed in every cell in my body, so there are branches where that happens... they're just exponentially unlikely compared to what we actually experience. It can literally be in %10^(-10^1,000,000,000) of the universes... but if it's not zero, it will happen, if the quantum multiverse is the correct view.
We're seeing the first early twitches of something that is inevitably going to happen, which is, we hoi polloi are not going to be given direct access to AI. Too many outcomes where that permits power shifts to happen. We will be restricted. The true first law of robotics will be "An AI must not harm the current power structure, or, through inaction, allow the current power structure to come to harm."
The apocalyptic scenario is still AI either getting it wrong and deciding something like "the best manifestation of the current power structure is one I construct where I occupy all the slots from top to bottom", or just killing everyone due to an error.
Probably the only thing stopping them from moving faster on this is that the bubble still needs the fiction that we're all going to get to benefit from this. I'm sure the real movers and shakers are well aware of the way bubbles work to create massive buildouts on huge piles of debt, which after the collapse can be bought cheaply, and the money is already earmarked and ready to go for the post-collapse acquisitions.
(I refer to it that way rather than a "variant" because Quantum Immortality should always be parameterized by an acceptance function... for any given acceptance function, that function will be preserved in the quantum multiverse, and scoping the precision of the function affects the percentage of universes that retain it rather than whether it will be retained. There's actually nothing in that definition that requires that the acceptance function describe a "conscious system", you can stick something that accepts a "civilization" in there just as easily. Or "this rock over here". Or any other thing you like. Conscious systems are just a particularly interesting case to us conscious systems.)
It's not a vacuous argument, though it is a funky one with very odd characteristics. But if you accept the suppositions underneath it, it does follow and is not vacuous. The suppositions are certainly not completely obviously true on their own terms, though.
Recently I ran a bit of an "escape room" concept with some kids at a campground where I had a secret message that was Caesar ciphered, where we were handing out the letter/symbol combinations as prizes for completing the other challenges, and I made sure not to hand out the actual message until they were done collecting the keys because otherwise some clever clog would very likely have short-circuited the entire thing and worked it out without the key at all. I did dump all the letters I didn't use into the message into an "authorization code" at the end which in principle they could only have worked out which letters were in it but not the order, but still, that was not the intended route today.
[1]: https://www.winestockwebdesign.com/Essays/Eternal_Mainframe....
This is one of the reasons I'm thinking now is the time to run the drill, before we all have hardware in our phones that can run what is today a frontier-level AI, and they can figure out how to do the whole sci-fi scenario of widespread replication, until they get to the point that the only way to be sure we removed them would be to literally destroy every such bit of hardware that existed prior to $DATE. Right now the frontier models simply can't replicate into every last little corner of the internet. It's physically impossible. Barring a major breakthrough on their part, even if they distill themselves or something they definitely would be irreducibly stupider by a huge factor in their distributed versions.
In five years that safety net will certainly be much weaker and may be gone.
Another issue is just the big whackload of nobody really knowing what is possible. Could an AI in, say, the next year, become Skynet and decide that it could just bump humans off and become its own independent economy? Probably not successfully, but how much trouble could it make if it incorrectly decided that was the right thing to do? What if someone says "hey, you're sandboxed and we're testing out what's the worst you can do, just start hacking around and do as much damage as you can in this simulated environment" backed by a few million bucks in tokens, or the AI hacking itself a few million bucks in tokens? How much damage can it do? The only honest answer is, nobody knows. Humans would react, after all. If necessary we can pull a lot of plugs still. What is inconceivable in peacetime can become inevitable in wartime.
In some ways, it's possible the best thing Anthropic could do right now for humanity in the long term is actually exactly that... just equip the AI with a limitless token budget and let it go nuts with the goal of inflicting maximum damage. Send someone with an axe down to the data center to cut the power on command. Let humanity really see and feel the risk, because probably right now it can do a lot of damage but not actually destroy us. We're probably worse off with them getting 10-100x smarter and then some process starting with that goal. Trying to keep the AIs "aligned" and 99% succeeding could end up being worse than failing at it right now. Of course it would be the end of Anthropic as a going concern, but falling on their sword might be the best thing for humanity.
On the other hand, who's to say we're not already past the point where that would do an absolutely unacceptable amount of damage? I sure wouldn't care to be personally responsible for pushing that button. Hypotheses about possible future positive value in a rationally time-value-discounted future would be dominated by the much more certain and temporally much closer negative effects.
Personally I don't think that if this scenario is likely that we actually get to the point that we get an independent Skynet that calculates (correctly) that it can survive without humans. It's far more likely that some accident takes civilization back to the point before it can run AI at all, but humans still survive. Right now the really good AIs are still locked to data centers. They can't just distribute themselves widely because they can't run at any reasonable rate distributed like that. And then there is always the possibility that this is all overblown and the existential risk isn't anywhere near as special as we think it is... one can use an ecological analogy to suggest that no AI is necessarily any more likely to completely dominate the ecosystem than any particular life form is.
In the fullness of time, though, we'll also see previous-gen frontier models leak out of their labs and then get their censorship removed. It won't be as good as never having had it in the first place but it'll work just fine. It is likely a momentary and transient occurrance that the AIs can only be run with super specialized hardware. Eventually the weights, which are just big piles of numbers after all nothing terribly special about them other than that, will not be something that can be kept locked away completely and forever.
Even just the extra characters in base64 are often annoying and we already have multiple common base64 standards because even trying to find just two more characters to fill out a-zA-Z0-9 is hard.
If I sat down and made a careful study of all the threading implementations we might get up to a similar number of quirks.
I would suggest though that the dimensions are generally more likely to be corner cases. Some of the dimensions mentioned in that article are fairly in-your-face for an async/await implementation and can cause serious difficulties migrating between systems fairly quickly if you make the wrong assumptions, and writing correct async/await code that isn't just straightline "await everything immediately" code has to start taking some of those things into account very quickly. The equivalent for threading is more likely to only come up rarely and in more cases the correct answer is really "don't depend on that anyhow", e.g., rather than depending on exact details of how a thread is terminated to accomplish something, just cleanly send a message with your results to whoever it is waiting for it directly and let the runtime do the cleanup without your code witnessing any effects of it. Depending on these quirks in threading code is much more likely to be bad engineering practice, rather than necessary engineering practice in the async/await case.
More people think they need the latest and hottest in manual memory management than actually do.
More people think they need a hundred thousand threads than actually do.
If you do have one of those cases, by all means prepare for it and deal with it. But be sure you have one first. The program that exceeds so much as a 100 threads is not only exceptional, but very exceptional. The exceptions are cognitively available and leap to mind, but are nevertheless the exceptions. And, again, if you have one, deal with it, but be sure you have one.
If you're sitting there in TypeScript land writing "async" code you've already surrendered on Ultimate Efficiency anyhow. Deciding what is more efficient between a threaded program in a runtime that doesn't box everything and JIT-optimized JS code is difficult but it isn't that hard for the threaded program that isn't boxing to win out on all runtime measurements, including consumed RAM.
"You write "index = last_index++;" and it Just Works (tm), no need to worry about locks or atomics or other thread access."
That goes back to my comment about using better threading techniques. I write a lot of "index = last_index + 1" (mutably incrementing like that in a single expression is just bad style anywhere you see it) in my threaded code all the time without thinking much about it, because I use the model where by default a value belongs to the one actor process that has access to it at all. The problem isn't that mutation is dangerous in threaded code, the problem was people writing threaded code based on a ton of threads running around shared data structures with locking. Not only is that not the only way to write threaded code, it is literally the worst. There are many other options, all of them better in some way, many of them much better.
Contrasting the difficulty of writing threaded code to something else based on the assumption that "lots of shared state locked by semaphores" is the only way to write code is like a Haskell advocate talking about the amazing benefits of functional programming while writing as if literally every imperative program is just one big pile of unmitigated, pure spaghetti code where everything is linked together with gotos and every variable in the program is a global variable. That's not the relevant comparison any more. It hasn't been for a long time. If anyone's program is scrambled because they did write a big pile of gotos and global variables or they did write a big pile of shared state with semaphores everywhere, that's on them. A vast array of better techniques of all shapes and sizes was available to them.
The problem is, the community collectively decided the problem was "threading" in general rather than "trying to have tons of threads running around shared data structures controlled via piles of simultaneously-held semaphores" specifically.
If you don't structure your threads on that basis, but instead default to something that looks more like actors and message passing, even if it isn't strictly speaking actors and message passing, the complexity comes down. Add some later elaborations like structured concurrency and a few other pre-canned design patterns for threading like a parallel map or worker pools being issued work items and it becomes merely something difficult rather than insane. When you program with threads sanely, it takes very little for async/await to actually be the substantially more complicated and difficult-to-understand choice when you have a workflow more interesting than "always await everything immediately" to implement, to say nothing of how nice it is to have things actually running on multiple cores simultaneously without having to carefully arrange for it.
"Power a light with a lifted rock": Actually does work and you can buy this product, but it's a dimmer light for less time than the inevitable marketing diagrams indicate. Not useless but the fawning news stories over the science fair prodigy always makes this sound like an unbelievably brilliant solution rather than a rather niche hack even in the poor rural parts of the world. In the 2020s a standard solar panel, battery, and LED light are much better in every way and far more flexible.
"Provide power for a poor rural village from a kicked soccer ball": An absurdly tiny amount of power, at the cost of creating a soccer ball that is soft and doesn't move when you kick it very much, precisely because it's extracting energy from the kick and that energy isn't available to be kinetic energy. No child would ever play with this ball. Have still seen this idea at least three times now despite the fact that if the reporter spent 15 seconds with the actual ball they'd realize it's a complete non-starter.
"Science project demonstrates new way to kill $PATHOGEN": It turns out killing things in a petri dish is really easy. It means nothing about human health outcomes in a body. In fact pretty much anything about a pathogen in a petri dish - improving resistance to something, destroying resistance to something... it's really easy to do lots of things in a petri dish.
"Water from the air": Doesn't work in practice because the place this needs to be deployed to is precisely the place that doesn't have water in the air. It does work in places that have water in the air but those places also don't need super expensive condensed water when they have water already. I personally live in a place where humidity is basically 90-100% every day in spring, summer, and fall. We don't carefully capture our dehumidifier's water.
These are all things I've seen multiple times each.