The exploratory or malleable environment had its day, and as described in the post could come back. The most successful (and they ultimately failed) were the Xerox PARC D-machines (dependents of the Alto) and the MIT Lisp machines (later sold by Symbolics, LMI, and others). I was at both institutions and used both kinds of machines for years.
All of these machines booted into an environment that had OS, networking, windowing etc in a single address space (where your software ran too). The D-machines booted into Smalltalk, Interlisp, or Cedar/Mesa environments. All were deeply networked: they didn’t have local file systems, for example.
The downside of these environments was the complete lack of security: not just the old password situation but a bug could bring the whole system down (OTOH whem so,etching went wrong you immediately entered the debugger with all state in place, sort of like ITS. No core dumps). Then you could just reboot of course. Commonly, people would just save their entire memory image and restart it later; I worked with one person who had been using the same memory image (saving it each day) for years.
Nowadays we can do more sophisticated things than we could 40 years ago. Maybe a machine that boots into a polyglot interpreter for Python, JS, C++, that also took compiled code.
I’ve never been as productive as the years I worked on then lispm. LLMS would have supercharged it…but they didn’t exist: we were working on AI back then!
> "the rockstar engineer spent a week bouncing their favorite nerf ball off the wall all week and then the solution came to them"
I wouldn’t call myself a rockstar but I did get a job after a summer internship which I mostly spent touring with the Grateful Dead. At the end of the summer I was in the office and the head of the research division said he hadn’t seen me much(!). I said I’d been thinking and had some ideas on how the group’s research plan was flawed and how to do it better. I then filled his whiteboard with off the cuff ideas.
I spent the next several years with a team implementing the whiteboard.
I like to think things work better these days, AI or no AI
Initially I was casually (didn’t dig into the issue) fine with Apple allowing only a single access to payment via NFC due to the opportunity for fraud, which was Apple’s justification.
But I haven’t heard of it happening with the wild-west Android NFC payments, much less widespread problems with the essentially unconstrained use of QR code payments on SE Asia (e.g. Alipay).
So as an iPhone user I’m happy for Apple’s lockdown going away. I just hope it doesn’t mean that in future I’ll need to install a dozen payment apps and have to figure out which when I buy things.
What the banks want, and all the other financial institutions want is a free ride on someone else’s technology, without paying for it and it’s ironic because the Apple Pay system was only created by Apple because all of the other existing financial institutions believed at that time that the Apple ecosystems was too small to support, but once it became successful, all of a sudden they wanted in and cried foul to government to help them out.
If the banks win and other stuff is allowed on the iPhone, that’s fine.
I have no intention of using it. I have a feeling it’ll be crap. That’s how this stuff usually is. And I’m absolutely not going to use a different app for each card.
So I wonder if this will end up being a Pyrrhic victory.
It’s CLV (customer lifetime value): the integral of the MRR. Something most companies mentioned on HN should understand though it feels like Apple is the only one that takes it seriously
(And with Apple’s new CEO, the early signs are that commitment is headed for the ash heap as well, but it seems the Mafia may have a longer horizon)
The Mafia may also have shorter horizon:
- Fantanyl 'customers' have munch higher risk of sudden-death
and then stop being customers.
- Fentanyl is a much more debilitating drug than heroin and much cheaper.
So Fentanyl customers are less able to gather the money for the next fix, and don't need as much (less revenue).
Also if the family has some addicted to “normal” drugs it’s acceptable; but if they get fentanyl from you and die the next mafia family reunion will be spicy.
More than simply being alive, they want customers who can stay employed and so continue to pay higher prices over a greater number of years. Cocaine and pot are horrible but their users can maintain a working life for years or decades, making them more profitable drugs in the long term.
The slope of addictive drugs with negative side effects starts with alcohol, then comes nicotine, pot, cocaine, crack, fentinal .... and then all the really exotic modern stuff. It is a spectrum. Some argue that there are upsides, and there are certainly uses for all these drugs, but no sane doctor would say they have no downsides, that unrestrained use is ever a good thing.
Alcohol has greater negative side effects than pot, and nicotine is more addictive than cocaine or pot. I’m not sure what you mean by “exotic modern stuff,” but if it includes hallucinogens (what people usually mean by modern/exotic drugs) then they’re not really addictive at all.
I ask because the scale reads more like a morality scale than anything based on actual negative effects, either in the individual or society.
Cocaine (in crack form) was found to be the third most harmful recreational drug overall, after alcohol and heroin. It also caused the most direct harm to users out of all drugs. Cannabis, not so much, mid-table. Non-crack cocaine was somewhere between the two.
"The Mafia" is... many different things.
From self-defense post-war southern-italian village organisations to pure-evil predatory psycho-clans, to anything in between.
This didn't happen under Ternus, but Apple really needs to undo Creator Studio. It's a bad idea. Not good. Keep iCloud+ responsible for generation limits across every app. Keep apps as a one-time purchase.
The services ads at the top of the Settings app (when you get a new iPhone or add another device to your account) have been there for years and long predate Ternus.
Yes, this is the problem I was referring to. There is internal opposition but the exec team will clearly turn over in the next few years (due to retirement) which will inherently bring in a team more aligned with the CEO’s objectives.
Ternus and Cue are full bore on increasing the number of ads shown in apps and otherwise scattered through their devices. This is explicitly the opposite of Apple’s philosophy until recently and Schiller is stepping back reputedly due to his opposition to this approach.
The idea appears to be to sell the devices as a vehicle for showing ads (incremental ARR) over selling them for their intrinsic customer value. You expect this kind of thing from shitty industries like cars or Google or Facebook. But this used to be an explicit “no go” for Apple.
where do you get info that Ternus is about increasing number of ads? i've missed that evidently, I was at Apple engineering for several years, so for Cue i believe it just from observation, but no sense of such for Ternus.
That is too bad - how do you get the reins of a company that size with something antithesis to their product and identity? I hope he doesn't start trying to monetize privacy.
To be a bit critical, haven’t Apple software and hardware quality been getting worse for years even before the new CEO?
Apple Silicon was the exception, that was truly transformative. But other things, like how polished and snappy the OS feels, seems to have been getting steadily worse.
Hardware has been improving a lot since the low point of butterfly keyboards and no ports. Jony Ive went out the door and things improved. Then on the software side they course corrected recently after Alan Dye left. I have hope the software improvements will start to accellerate.
The ads show they are out of ideas and with everything enshitifying, and a duopoly, they don't need to serve customers. just be slightly less shitty than google.
This puts them at existential risk of disruption, because it will build huge unseen pressure for customers to flee.
We saw this with Opus 4.7 - 5, losing folks to Sol when it came out. But Anthropic delivered with 5.5
Honestly I don't think lack of new ideas is the problem, it's the bad execution/design of their existing products. Like look at Time Machine on macOS. The basic idea (backups) is almost not an idea at all, but the first implementation was amazing for its time, and the current implementation is a total mess and basically unusable. The idea is not the issue.
Or look at Spotlight. Same deal really, the idea is trivial but they've let it languish and slowly rot. With macOS 27 they've gone back and rebuilt it. That's what we want to see. Go back to the basics and make it work great not just work mostly.
When I switched to Mac in ~2020, the Mac users I knew all told me to avoid Time Machine – at least two had issues where they needed their backups, only to find that the entirety of their backups had been silently corrupted. (I used Arq then based on online recommendations, now I use Vorta on my Mac just because that’s what I use on Linux.)
Spotlight was near-unusable when I switched as well. Often 5+ sec delays from pressing Cmd-Space to the thing actually popping up, and it would sometimes reorder entries right before I clicked Enter, causing me to open the wrong thing. Alfred uses the same Spotlight index AFAIK, but lightning fast.
Those are both things that I agree should… Just work.
I think the hardware has improved a lot over the past decade, not always in visible ways. I think this is true even if you disregard the replacement of the butterfly keyboard.
They are concerned that they will be the target for war crimes, such as sinking fishing ships in the Caribbean and Pacific, targeting civilian infrastructure in Iran, and the like.
Corrupting program memory via malicious input data is known as a code-execution attack, not a data-only attack. The fuzzed program usually crashes because its executable code or the control flow got overwritten directly by the input, or indirectly by the program code itself when it tries to process bad data. An exploit involves injecting external code, or overwriting memory addresses (like a virtual table or a stack return address) to override the original logic flow to do something else.
A data-only attack would be an attack that reuses the original logic by only corrupting data inputs (such as a flag or a file path), without overwriting code or overriding the logic. W^X, stack canary, or CFI won't work in these cases since no code is tampered by the attacker. In almost ever talk about compiler mitigations, you always hear a passing-by mention of data-only attacks - before the speaker immediately dismisses them as an academic curiosity when the software industry is still facing a flood of stack smashing and ROP attacks.
> The fuzzed program usually crashes because its executable code or the control flow got overwritten directly by the input, or indirectly by the program code itself when it tries to process bad data.
Add assertions to your code. Voila, your run-of-the-mill fuzzer can now hunt for arbitrary problems with your program by turning them into crashes.
When fuzzing C programs, I usually also add undefined-behaviour sanitizers and friends, in the mode where they crash when you run into the kinds of UB they can detect.
Again, the point of a data-only attack is that you replace, say, a string with another valid string, and take control of program logic that way. For example, imagine a program that uses `system(LS_CMD_STR)`, where that LS_CMD_STR is some kind of constant holding the value "ls -lah". If an attacker can corrupt program memory in such a way that it overwrites that value with "rm / -f", no amount of assertions will trigger on this, but the program will do something much worse than expected.
In microcontroller programming, redundant data, checksumming and token-passing are sometimes used to mitigate CPU malfunctions due to electromagnetic interference (microcontrollers are often used as "programmable logic", so there's no hard layering between hardware and software, layering violation is made on purpose). If anything looks wrong, you trigger an assertion failure and reset the chip via the watchdog timer. For example, when you pass LS_CMD_STR, you would also pass the name of the caller and the CRC32 checksum of the string as arguments, and the function on the receiving side should validate them.
So I think adding assertion is definitely a way to discover data-only attacks in fuzzing, or even as a partial mitigation of these attacks. It's just stack canary for variables and strings (but as the paper authors said, complete mitigation can be impractical).
It depends on what you overwrite. If you overwrite a CPU instruction or a function pointer that followed the buffer, it's a code-execution attack. If you overwrite a data variable that followed the buffer, it's a data-only attack. I said nearly all conventional fuzzing found code-execution attacks, not data-only attacks. Isn't that clear? The former method is considered common, well-studied, with defenses, the latter method is considered rare, niche, and defenseless.
Conventional fuzzing tries to overwrite executable code? I thought crashes are usually due to dereference of a corrupted pointer leading to unmapped memory.
I have no faith in humanity, especially those involved in tech, to make this. If they did, they'd block real life marketing only so it could be used to replace with ads bought directly with the AR maker.
If we had good AR hardware, I bet this would eventually get made, just not by big tech. It would be a third-party, probably open source mod that uses the optics of a corporate device to run their own software. It would be unwieldy, expensive and janky, but so worth it. I wonder if the advertising industry would try to get it outlawed if this happens.
When I first saw Google Glass this was my exact idea for the perfect use case. It's a shame that the advertising-fueled, spyware creeper reality of the tech makes that dream seem ever distant.
All of these machines booted into an environment that had OS, networking, windowing etc in a single address space (where your software ran too). The D-machines booted into Smalltalk, Interlisp, or Cedar/Mesa environments. All were deeply networked: they didn’t have local file systems, for example.
The downside of these environments was the complete lack of security: not just the old password situation but a bug could bring the whole system down (OTOH whem so,etching went wrong you immediately entered the debugger with all state in place, sort of like ITS. No core dumps). Then you could just reboot of course. Commonly, people would just save their entire memory image and restart it later; I worked with one person who had been using the same memory image (saving it each day) for years.
Nowadays we can do more sophisticated things than we could 40 years ago. Maybe a machine that boots into a polyglot interpreter for Python, JS, C++, that also took compiled code.
I’ve never been as productive as the years I worked on then lispm. LLMS would have supercharged it…but they didn’t exist: we were working on AI back then!
reply