Saving Lives (2004)
folklore.org
folklore.org
When working on MacOS 8.x (not sure which point release), they surveyed users, and their number one complaint was boot time. It took long for the system to boot (around 45s on average at the time). They looked into it but also asked the question, why do people care about boot times at all? At this point, the systems were capable of sleeping, so reboots should be rare.
They found that people were rebooting because of instability, not just once a day or once a week. While they did improve the boot times, they put more effort into making the OS more stable. When the new release shipped, people stopped complaining about boot time, but not because it was vastly improved, instead because they were doing it less often.
The moral of the story is to make sure you understand both what your customers are asking for and why your customers are asking for it.
One reason engineers enjoy questioning the premise of a difficult feature is to avoid the work entirely. The problem with this is not that engineers are lazy its that the success metrics after the goal posts are moved can be futzed in a way that ultimately is detrimental to users.
Did Apple really improve boot times and OS instabilities to a complete resolution or did an aspiring PM or Lead achieve the bare minimum of the goal to claim victory internally?
Otherwise we would get faster horses instead of cars.
* The user is always right.
* The user is not always right.
And then the explains the first point is that the user should be treated as the authority on what their problem is. You can't just tell them they're "doing it wrong" or rationalize away their pain.
The second point is that users are not designers and shouldn't have to be. They'll often come up with ideas for solutions, but you shouldn't take those as what needs to be done.
Good example is FTP. Obviously, for anything requiring any kind of security, use SFTP. But I kid you not, almost all FTP-related questions on the internet have answers like "are you still using that INSECURE protocol in 2020??" without being constructive at all. Even if it's just some random hobby project. Or a legacy system they can't change. Doesn't matter, it's more important to score points from virtue-signaling than actually helping the poster.
Or a modern system.
My brand new image scanner only transfer files wirelessly via HTTP or FTP.
People in places like HN freak out with "Oh noes! Teh securities!" But its wireless connection is as a wifi access point that only allows one client to connect, and only stays active for a few minutes.
Not every computer is inside NORAD.
"When people tell you that there is a problem, they're always right.
When they tell you how to fix it, they're always wrong."
But when designing solutions for people who are the domain experts (and this might even just be the domain expert of how a particular factory line works in practice), the dialogue with them likely includes their ideas for solutions. These ideas don't have to be "right" as-is, but might suggest the right direction, or just be loaded with bits of relevant knowledge that inform whatever the solution ends up being.
So yeah, they'll say why something won't work, but the solution will probably involve another button, another drop-down, a hamburger-menu, or another option in the settings.
And then it's your job to figure out if it's the right solution.
What damaged Apple's Mac business in the 1990s might been due to tunnel vision and self-delusion, but the driving issue was a loss of obvious differentiation vs. cheaper PCs running Windows. They were all beige boxes with a serviceable GUI that ran the same software, and customers didn't see the value in paying Apple's premium prices.
With the return of Steve Jobs, Apple resolved the PC differentiation issue by refocusing on design in both hardware (iMac) and software (OS X); Apple also sidestepped Windows dominance by focusing on non-PC devices such as the iPod, iPhone, and iPad.
That didn’t require a survey. The OS didn’t have memory protection and typically got patched at startup by ten or so different extensions from both Apple and numerous third parties.
The rules for patching were unclear, to say the least (1), so an extension might, for example, have a code path where it allocated memory inside a patch to a system call that might be moving memory around (a no-no, as the memory manager wasn’t reentrant)
And that had to run code that typically was compiled with a C compiler of the time, with very, very limited tools to prevent out of bounds memory writes.
When a friend first showed my wife Mac OS X and went to shut it down she frowned, "That's something I liked about the Mac, it would shut down instantly."
"You'll have to find something else to like about Mac OS," he said.
The other more important metric I pushed was “speed of light”. When installing from a DVD (yeah, olden times), the “speed of light” there was the rotational speed of the disc and so we should install as close to that speed as possible. Keep improving speed of operations until you butt up against whatever physical limits exist. Time is precious, you don’t get more of it.
I have heard "that's slow" or "that's good" too many times in performance talks that have completely ignored the underlying machine and what was possible.
HN Discussion: https://news.ycombinator.com/item?id=36823605
It’s missing any kind of deeper statistics such as memory bandwidth, cache misses, branch mispredictions, etc. I think fundamentally Apple is geared towards application development, whereas I’m working on more HPC-like things.
Every OS always had easy ways to tell if a process is waiting on disk or network (e.g., top, Activity Monitor). The mechanisms for measuring how often a process is waiting on memory exist, but you have to use profilers to use them. We are overdue to have them more accessible. Think of a column after “% CPU” that shows percentage of time blocked on memory.
I am often developing small one-off programs to process data. I then keep some of these running in various workflows for years. Currently, I might notice a process taking an enormous amount of CPU according to top, but it might really be just waiting on memory. Surfacing that would tell me where to spend my time with a profiler.
I want to be able to do the same for memory bound performance problems.
But the top level tools are stuck in the land of decades ago when CPUs were the bottleneck.
To make an analogy, this would be like adding a metric for function calls into Activity Monitor and using it to diagnose quadratic performance. You can't just take that number and immediately figure out the problem; you need to go look at the code and see what it's doing first and then go "oh ok this number is too high". The same applies to waiting for memory. What are you going to do with a number that says the program is spending 30% of its time stalled on loads? Is that too high? A good number? You need to analyze it in more detail elsewhere first.
Yes. I know. That’s my point. Tools exist to dig deeper and are not surfaced better.
I do performance work often. I simply stated that it is a shame that the highest level tools do not show us valuable information.
You are free to accept the status quo.
We aren’t doctors saving individuals’ lives but what we can do is give people fractions of their lives back. Some software is used by hundreds of millions or billions of people, so small changes there can save many “lives” worth of time.
In this particular example, the time saved on the download will go towards the noble cause of ... playing video games? Is that so much better use of time than the wait for it to download?
And to answer your question: for everybody involved it’s better yes.
My favorite feature is how it supports incremental loading. WoW is a huge game, but you can start playing with a fraction of the assets. It will play in a downgraded way with place holders and lower quality assets as well as skipping entire areas completely.
You can reinstall from scratch and be up and playing in minutes. It’s one of the hidden joys of the platform that players mostly take for granted, but I appreciate the no doubt legion effort involved to pull this off, to change the wheels on a moving train, and to deliver just uncountable amount of data with little drama and great performance.
So kudos to you for whatever your contribution was to making such a core facility to the system so painless for the end user.
According to Mike Slade, he was working at Microsoft around 1990, and Jobs was trying to recruit him to NeXT. (Bear in mind that Microsoft was only a few years from launching its mega-hit Windows 95, while NeXT was struggling to sell computers.)
During a conversation, Jobs told Slade he would find his talents wasted in Seattle. In contrast, Jobs called Silicon Valley a hub of excitement and activity where Slade could blossom.
Jobs then launched into a spontaneous, impassioned speech. He described Palo Alto, California, as a “special place” and likened it to Florence during the Italian Renaissance. There was so much talent in the area, Jobs said, that you could walk down the street and bump into a scholar one moment, an astronaut the next.
Jobs’ off-the-cuff description of the place bowled over Slade. It was a twist on Jobs’ famous pitch to Pepsi CEO John Sculley. (Jobs asked whether Sculley wanted to sell sugar water his whole life or join Apple and change the world.)
After the talk, Slade agreed to pack up his stuff and move to Palo Alto.
Jump forward a year, and Slade and his wife were eating in Il Fornaio, an Italian chain restaurant with a location on University Avenue in Palo Alto.
“We were sitting there, in early ’91, and I’m reading the menu,” Slade recalled. “And on the back of the menu at Il Fornaio it says, ‘Palo Alto is like Florence in the Renaissance…’ And it goes through the whole spiel! The fucking guy sold me a line from the menu! From a chain restaurant!! Bad ad copy from Il Fornaio, which was his favorite restaurant, right? Such a shameless bullshitter!”
https://www.cultofmac.com/573753/how-jobs-poached-a-microsof...
I'm not sure what would make it more appealing to you, but it may be that you're just seeking a different vibe or are at a different point in your life where you may not value some of those things the same.
If you're at the stage of your life where you have small children, or are not someone who does a ton of going out, nightlight is irrelevant.
Agreed it could have more shops, it's very one dimensional right now.
Every downtown has cars everywhere, and the strip of restaurants on Broadway is notable in that it is still blocked off for foot traffic and is wonderful.
I have no idea what your idea of above average is for parks and playgrounds. We have a Magical Bridge, Maddux and Stafford parks and others. We have Stulsaft and other options.
I'd be really curious where you're getting $2k/sqft.
So I'm completely unsurprised that Il Fornaio's pitch would resonate with Jobs and that he would quote it verbatim.
Be that as it may, a number of cool things - and successful companies - have in fact come out of Palo Alto. And you can meet some interesting people there. I believe you can still catch Pac-4 football games there as well.
Il Fornaio and Palo Alto might also have been better in 1990, when Jobs quoted his pitch.
Funny story, but I find it hard to believe Il Fornaio, with its mediocre Italian fare, was Jobs' favorite restaurant.
This is the restaurant we'd go to when all other options were booked or it was too late to drive further.
More seriously, there really is an absurd shortage of clean, available, public restrooms that are open 24 hours. It's a huge issue in the Bay Area and SF especially, but it's bad in many US cities.
At some point we seem to have decided that clean streets (and train stations) are not worth the changes in regulatory requirements and funding that would be required. Palo Alto actually has a pleasant and quaint waiting room from its Southern Pacific days - but of course it's always closed, especially post-pandemic.
I was shocked recently though when I was in a BART station that had a public restroom that was actually open and maintained. Seems like a good idea considering how often escalators are "closed for maintenance."
https://www.paloaltoonline.com/blogs/p/2018/12/04/after-39-y...
https://kellanskitchen.com/menu/chos-the-end-of-an-era/
https://www.masterstech-home.com/the_kitchen/recipes/Interna...
Huh - I was about to post "I just listened to that podcast!" and bro out with you about Dan Carlin and Hardcore History, but it now occurs to me, and Googling confirms, that "reality distortion field" in that podcast was probably a reference to a known saying about Steve Jobs rather than an original thought.
I don't tend to consciously sum all of the time I spend waiting on slow software and slow services. But waiting on slow software impacts my subconscious in the moment, making me feel uncomfortable and frustrated with the system, as if it is antagonistic. If I do spend any time consciously thinking about it, I feel disdain for the engineers and project leaders who believed that what they had produced was good enough to ship.
With the processing capacity of modern computers, waiting for hundreds of milliseconds for trivial requests, or much longer for only modestly-complex requests is evidence of gross negligence on the part of the programmers.
My Thursday night girlfriend wanted me to clean up an old MacBook. Just a few steps, unlinking accounts tied to hardware, figuring out how to remove a firmware key some other me must have set, a clean install, updates, etc.
It took me 6 months, because several steps or restarts took more than single digit seconds ... and my work was a siren.
After many aborted attempts, I put it on my desk next to my keyboard. It only took 30 minutes, spread across 6 hours. Victory!
If someone chained my hands to the laptop it would have gone faster, but the suffering incurred by the forced observation of blank screens, status bars and busy balls would have been unimaginable.
I have a committed girlfriend, and another girlfriend who just wants a man for Thursday nights. I do what I can!
Windows 95 was about 50MB installed with most features.
Windows 2000 fit on a CD for the install.
Current Windows 10 installers won't even fit on a single layer DVD anymore, and forget doing the install with a FAT32 USB stick (some older UEFIs won't handle exFAT yet).
The fastest computer I've ever used, perceptually, was a dual Pentium 3 866, with Rambus, booting XP (probably SP1 or so) on 15k U320 SCSI disk. The thing was telepathic.
How I coveted my roommate's machine that had one in it.
Honestly, things are much faster now than they used to be.
Plus I can shut my laptop lid, use basically no power, and come back to my session as-is almost instantly. That's new and way better than the 80s and 90s. Then you either had to leave the machine on or suffer slow cold boots.
https://youtu.be/5M6OIOIND-0?t=1278 — I think about 12 seconds, or which 3-4 is waiting for two hard drives to spin up.
(I think some viruses loaded themselves with this mechanism. And virus checkers.)
https://www.riscosopen.org/wiki/documentation/show/File%20fo...
The OS in ROM was 2MiB, and looking at some module files intended for potential loading at boot time I have in an emulator, they are around 5-40kiB.
The computers typically had 2 or 4MiB RAM, so there isn't space to replace a significant amount of the OS anyway. (1MiB or 8MiB was possible, but unusual.)
If you wanted the full multitasking modern version of the OS (MultiTOS), you loaded parts of it from disk. Or ran SysV Unix (or NetBSD or Linux, later).
Then again, binary sizes would be smaller on a CISC 68k machine I'd expect.
I don't remember what happened if you configured it to look for extra boot files on a floppy disc, but the drive was empty. I think it would give up very quickly (1-2 seconds), as it was a normal way to load a program on the earlier BBC computers — insert the program disc, which would be bootable, and press the key combination (Shift+Break) to reset.
"Podules" (expansion cards) could also map extra modules into the OS from their own ROM, usually the required device drivers for the card.
[1] https://www.riscosopen.org/wiki/documentation/show/*Configur...
I think it's the old problem where the more crap windows accumulates, the longer it takes to boot.
Maybe your PC "trains" the memory every boot instead of just the first one.
https://www.crucial.com/support/articles-faq-memory/ddr5-mem...
It's not only the multiple 15-minute RAM boot times (!?) that are worrying: it's that I'd have zero visibility into what underlying cause is responsible for these "small number" of events, and what other symptoms could develop later on (outside the RMA window). I couldn't just take the manufacturer's reassurance at face value.
https://www.systemverilog.io/design/ddr4-initialization-and-...
The ~4 seconds to boot up to a GUI desktop is actually even more impressive: https://youtu.be/JIEPqD4luG8?si=9gVtFCIxFYma1erC&t=556
My top of the line i9-9880H Macbook Pro from 2019, with PCIe 4.0 NVMe speeds, needs over 20 seconds to boot up in comparison...
add to that that people think that because machines are faster they don’t need to optimize anything.
Simply put, strip down an OS to the same feature set of that ancient computer and the modern OS will be a lot faster. Some of the networkless VMs I mess with boot in a second or two, but you see we've abstracted most of the hardware away. So, mostly the problem is a hardware one.
Extrapolate to everything else and it becomes pretty clear. There's just so much more to load.
Even factoring in 100x more resource usage for a 2023 computer to deliver all the features expected, it definitely should be way under 2.2 seconds.
That's 25,000x more usage of memory for the interface alone.
Display memory usage made nowhere near a straight multiplier of a difference even in 1989, as demonstrated by the 1000RLX vs 1000RL, which you would have known if you followed the link in the other comment and watched the video.
You can verify this yourself by hooking up a VGA resolution display, the same as the 1989 Tandy 1000RLX shown, to a modern desktop computer with VGA out and it doesn't reduce boot times by any significant amount.
Total resource demands are still way, way, way over 100x. Data speeds. Peripheral inputs. Storage. Basically everything.
And no, of course a computer doesn't boot at a different speed depending on display size. It's about the assets and code that fill displays of that size -- all the graphics you've got to load, all the code that has to draw the antialiasing and transparencies and shadows and subpixel font ligatures and everything else.
Same way the code for dealing with storage capabilities is way more than 100x as complex. For peripherals. Etc etc etc.
Do you understand how VGA displays or graphics rendering work? Or how computers boot up?
A modern linux system, RHEL, Debian, etc..., isn't going to try to load 4K graphics on a single connected VGA display, especially if you use it without any third party video drivers or adaptors that support 4K video out.
Many motherboards, even in 2023, have a direct VGA out port that it defaults to, reliably. Which is what this typically refers to.
If your still worried, then there's always the option to manually verify the installed files and boot sequence to confirm that it isn't attempting to force it.
It's simply the point that there's so much more to load during booting. Your contention that computers only use 100x more resources than in 1984, and should therefore boot in "way under 2.2 seconds" is way, way off.
Computers use way, way, way more than 100x resources compared to two decades ago. Hence, booting still takes a bit of time. It's pretty simple.
> Icons used to be 32x32 monochrome with a mask. Now they're 512x512 in 48-bit color. System fonts used to have ~200 characters, now they have tens of thousands. Extrapolate to everything else and it becomes pretty clear. There's just so much more to load.
If so, let me spell it out step by step. That was the initial reply to me. Therefore...
> I was using 4K screens as just one example of the many, many dimensions of growth.
This example, is likely close to meaningless, as elaborated on previously.
Hence why I suggested to review whether '32x32 monochrome' or '512x512 in 48 bit color', etc., has any observable effect. With the help of a VGA display showing, presumably, graphics roughly corresponding to the first, another display corresponding to the second, and so on.
If you want to discuss something later on, then it should be in your interest to resolve the first claim as soon as possible in your favour.
For example, if you disagree and still think resolution makes a noticeable difference, then show that convincingly, especially as it's a positive claim, which HN readers tend to treat more critically.
It really seems a bit odd to try to skip that discussion and then claim it 'has nothing to do with VGA' which can only reduce the possible avenues to prove your credibility.
i.e. You are the one who raised the possible "to do" regarding lower resolutions. The reason why I started discussing 'VGA' at all was because of that comment.
Steve's argument here is widely used in the industry. It's almost emotional blackmail (fail and be a killer) but classic nonetheless.
I read it much more as inspiring people to consider that they have an impact on peoples lives.
It's strikingly easy to blame the user for slow software, or blame the PM or Org for pushing features and speed of development over speed of the product.
Steves mantra here is that software performance has a material impact on daily lives. Pointing something out is not emotional blackmail.
True, but disingenuously implying that something like slow boot times costs lives is.
That's emotional blackmail. The implication is failing to do that will cost a dozen lives. It's also incorrect. Making it boot ten seconds faster saves zero lives.
You could make claims like that about anything. You could equally claim "Have a nice day" is a threatening remark.
You have to be spectactularly stupid to think that not making software faster is going to cost people their life.
But it could, across a population, cost entire lifetimes worth of time.
So yes, it's important to consider your software's cost to humanity.
The issue here is that you're rejecting a clear explanation of your externalities.
Stop rationalising the externalisation of your costs; they still exist even if you don't enjoy being confronted with it.
No, the issue here is Jobs making a legitimate point in the most emotionally manipulative way he could think of.
Pointing out that you're stepping on toes is not emotional blackmail.
Emotional blackmail is either direct:
“If you hang out with your buddies tonight, I will pack my bags and leave you.”
or indirect:
“I don't even spend time with my friends because I want to spend more time with you."
What Jobs is doing is pointing out a fact.
That it hurts you this much informs me more of your developmental attitude than it does about Jobs being an asshole. Which he was, but not for this.
> After the iPad launch, Jobs supposedly walked into a meeting with the Mac team, carrying an iPad. He woke up the iPad, which happened instantaneously. Then he woke up a Mac, which took a while to come out of sleep. Then he asked something like, “Why doesn't this do that?
Without the iPad there to show it was possible there would have been arguments about memory speed and disk speed etc. And faster Mac sleep/wake put pressure on Windows to up their game.
And what's worse is that most of the animations either don't start at the initial state of the UI or finish at the final state, or perform so badly that they hardly show any frames in between, so you have the worst of both worlds: abrupt jerky transitions and wasted time.
UI transitions that make spatial sense, are fast enough, are fluid, and don't slow down typical use of the UI are rare unicorns.
Video game console system UIs and some game menus seem to be really bad about this for some reason.
Imagine short animation in 200ms at 25fps only gives you 5 frames. It’s going to look janky and tacky. Make it 1000ms and it looks smooth and nice, except hopeless to use.
(Unpopular?) solution: get an iphone. Their app switcher works as fast as your finger moves, with no problem of delivering consistent 60fps.
Solution was to disable animations. However this sometimes breaks things. For a few month this broke multi-tasking (two apps on the same screen), but the vendor fixed it (though they reworked multi-tasking at the same time to prevent switching one app so it became almost useless for me at the same time)
Unfortunately I like having the ability to install what I want too much to get an iPhone but I understand how people valuing stability may prefer it.
Settings -> Accessibility -> Motion -> Reduce Motion
The Android a11y menu probably has something similar. Try it out and see if you like it more.
- Some animations can be overlapped with time-taking tasks to keep user engaged but waiting at the same time. I think iOS does that when switching to an app that was swapped out to the disk. Loading takes time, so the animation compensates for some of the delay while the app's resuming. If there was no animation, the user could think that they didn't perform the action correctly, and might be inclined to repeat it, causing frustration.
- Some animations are necessary to orient the user in UI flow. For example, the minimization animation moves the window to the icon that user needs to click in order to restore the app. The animation also makes user differentiate between close and minimize operations.
- Some animations are necessary to give user proper feedback while keeping the responsiveness. One example would be the spring animation you get at the end of a list when scrolling using a touch screen. If there was no spring animation there, user would have no way to know that if that was the end of the list, or the touch screen stopped working.
Turns out it's because the animation speed was so low (default). I doubled it and everything feels 1,000x better.
Installing Windows 11 and then waiting for all the updates to install on a HDD takes about 8 days.
Marketing won't let them so long as it would piss off PC OEMs that still ship crappy systems and want to use the Windows logo.
If you got a computer and it didn't come with all the needed drivers and a web browser along with most of the functionality needed to print, you'd most likely wonder what decade it came from. All that stuff I listed, without the telemetry is still going to run like dog shit on a HDD.
I honestly think users are forgetting just how badly fragmented hard drives of days yonder used to run, and those same spinning disks are not any faster these days. Cutting down the OS to barely do anything still took more time than the complete boot cycle of my current computer up to a browser on an SSD.
I'm not going to setup a system to test, because it's too painful, but I'm now idly wondering if you could set the checkbox on a hard drive for "Turn off Windows write-cache buffer flushing on the device", and if that would help. Doing a aggregated write of a couple MB once a minute would probably work better than doing a few KB every second. Of course, at great risk of data loss, but YOLO. (a smidge of research seems to indicate this is for asking the device to pretty-please flush its internal write cache, so that might help a bit, but probably not very much; maybe there's a knob somewhere to tune the system file cache)
I do not "use an HDD" of course. It was improvisational.
I'd consider hybrid being the best cost option, with a small SSD backing frequently used data, like the OS. But there's more complexity in that setup. I'm also a Linux user, and boot times don't bother me.
I was at Microcenter and some 1TB (rather questionable) NVMe drivers were $30 on special. Going to be difficult to get cheaper than that.
Now, lets turn your equation around. What is the cost per IOPS of your HDD versus SSD? HDDs start to get expensive very fast in that measure.
Yes, HDDs are slower than SSDs. If that axis matters to you, you'd use an SSD, particularly NVMe. (Which is sort of implied by the hybrid setup I suggest.) If storage capacity matters, HDDs. You can see this reflected in market prices, though it does look like SSDs are surprisingly cheap these days, comparatively. Historically this has not been the case. (I wonder if economies of scale are now working against HDDs suddenly, or what? There's no reason for them to cost the same or more than an SSD — the market would collapse. Although I swear market pricing for many components hasn't made a lot of sense, recently… i.e., RAM has seemed horrendously expensive.)
There does definitely seem to be a pricing mechanic in that hard drives never really scaled down in minimum unit cost; the basic parts of a hard drive still cost real money, so if you can do 2TB per platter, and a top of the line drive has 10 platters, a single platter 2TB drive costs a lot more than 10% of the top of the line drive. OTOH, flash controllers aren't that expensive and/or the cost of the controller scales with the capacity, so SSD prices tend to be more linear with capacity.
If you need a lot of space, $/B means a lot, but if you just need an ample amount of space, $/device is more important, and SSD drives have hit the point where an ample amount of space is available for less than any hard drive.
If you need very large (4TB+ drives) maybe, but 1-2TB SSDs are so cheap nowadays. 2TB SSDs today are cheaper than 2TB HHDs from 10 years ago, and the price discrepancy is quite narrow unless you're looking at 4TB+ drives.
I don't even bother looking at HHDs for my own computers anymore unless I need bulk storage for videos or something.
I think from beginning of start-up to a somewhat usable system was maybe 5 minutes? Quite long either way.
But just last weekend got sick of the slowness and found there's a 'diskutil resetFusion' [0] command that restores the partitions to the default. So I ran this command, reinstalled the OS and now my iMac is pretty speedy again. Not great mind you, but way better then before.
Lesson learned: dual boot on a Fusion drive is a bad idea.
---
We need to migrate to Linux.
Mine doesn't. It takes 3-4 minutes (which can easily feel like an hour).
"AFATDS includes 935,000 lines of Ada code, running on an HP RISC Workstation and the Army's Light Weight Computer Units," according to John Williams, spokesman for Magnavox Electronic Systems Company, the prime contractor on the project. "We needed to work with a single database that could scale and operate across Unix and PC platforms. The product also had to install quickly and provide high availability without monopolizing our systems resources."
"Decision support of this nature requires a modular and flexible architecture that would support both distributed processing and distributed databases. That's why we chose InterBase. It out performed the competition and convinced us that it would be reliable in life and death situations."
The exact nature of the discussion was that in some situations, the firing of the main weapon in certain tanks would generate an internal EMP event, so systems would reboot - they had to have extremely fast reboots and recovery-times... so they could fire again...
Okay... Let's click that button!!!!
Game... shuts down... downloads an update... patches... starts up... loads me back into where I was.
All this in... 1 minute flat! Baldur's Gate 3 can't do that on today's hardware with an SSD and a much faster processor, and 4x the ram, compared to a game 13 years ago on significantly crappier hardware.
That's what solidified to me that the game was rock-freaken-solid.
https://news.ycombinator.com/item?id=37206660
I miss having Steve running Apple.
The abuse isn't required though.
The big downside is that installing an update means you have to rebuild and re-sign the entire OS image, which takes forever. When they first introduced this model, I was surprised at this: I expected they could generate the new OS image in the background, while you’re still using the computer, then just swap over to the new image with a single reboot, instead of requiring a ton of downtime. I think they might finally be doing this with macOS 14/iOS 16 — I’ve been running the betas for both and noticed restarting to install updates has become far, far faster — like maybe a minute or two.
Nice! (And thanks for the backgrounder. It's the first time I've seen this explanation on HN.)
https://en.wikipedia.org/wiki/Connectix
https://apple.fandom.com/wiki/RAM_Doubler
https://apple.fandom.com/wiki/Speed_Doubler
https://68kmla.org/bb/index.php?threads/connectix-speed-doub...
Even worse, I want to go home, not wait 30 minutes for updates to install.
It's applicable in conversation so frequently around software/computers as it reflects a really empathic mindset that I feel is becoming more and more rare...
Steve's famous "computers are a bicycle for the mind" was refined over a long period of time and countless interviews. We only hear about the one time where he perfected it, where it made an impression. Many other instances are on YouTube, in one you can see him trying out different alternative lines.
Following the logic of an eye for an eye, the failure of developers to remove long waits in mass-market software products should be punishable by... death ?
(50,000,000 seconds saved per day) ÷ (60 seconds / minute) ÷ (525,600 minutes / year) ≈ 1.6 years saved per day
(1.6 years saved per day) × (365 days / year) ≈ 580 years saved per yearClaiming you saved a couple of lifetimes when all you can gain is a couple of seconds is so misleading.
Some people even complained that they shouldn't be redirected automatically because they'd lost their progress :)
Many people can imagine how they’d solve an immediate problem, but never pause to examine whether or not this solution is ideal, or generalizes beyond a specific situation.
Another phrase that comes to mind is “fall in love with the problem, not the solution”. If you understand the problem space deeply, either many solutions can emerge, or one solution emerges as clearly the best place to focus.
In my years as a product manager, it surprised me how many PMs don’t think this way, and just tack on feature after feature, convinced this is the best thing for the customer, when often the thing they need is not something they know how to ask for.
- [0] http://xyproblem.info/
It also ruined stackoverflow, since replies which ignore the question and assume that the OP really meant something else end up being so much easier to write/vote on than an actual answer.
But the number of times that it is helpful has been pretty high for me over the years. This probably depends a lot on the customer’s own ability to comprehend the true nature of the problem. I worked in the enterprise/B2B space, where a significant number of requests came from people not technical enough to fully know what to ask without some deeper exploration.
For example: how do I repair water damage on my ceiling in a way that's quick enough to do it after every storm? You mean how do I repair my roof so I only have to repair the ceiling one more time? It's more upfront cost to do both now, but the breakeven is only a small handful of storms away, which is palatable enough to get serious consideration. If the breakeven was (for some reason, hypothetically) 20 years away, actually figuring out how to make quick work of repeated ceiling repairs might be more desirable.
For example, when someone says they think the XY problem model is a useful framing when evaluating customer feature requests in product design, they are talking about using it in scenario X.
But inevitably they will attract a bunch of replies telling them how bad it is to apply the XY problem approach when answering questions in a technical Q&A forum. That would be scenario Y.
That's it in a nutshell. And concur with this de-framing non-answer as one of the leading causes of bad StackOverflow solutions.
The replies to the post which said that the XY problem approach is useful in product development, which are talking about XY reframing being a problem on stackoverflow are XY reframing the parent post.
They are doing exactly what they decry.
The smell of irony is apparently not as thick in the air as I thought it was.
I feel like many of the complaints Stack Overflow users come down to this: in many users' minds, the site is a Q&A forum, while the SO team wants it to be an authoritative repository of technical knowledge.
If they did, they should say so in the question.
The majority of people answering questions are also noobs, and this should be taken into account. Experts in their domain don't need SO, and so don't go there at all.
When I was writing my thesis, years ago, SO was already basically useless to me because nobody could solve any of the problems that I was encountering then.
I just use it when I can't be bothered to look up stuff in the documentation, but I see it mostly as a resource for people who are learning or are very early in their career.
> If they did, they should say so in the question.
You're operating on the assumption that the purpose of SO is for an asker to get an answer. The extremely strict duplicates policy suggests the opposite: the goals and motives of the original asker are essentially irrelevant, because only one similarly-phrased question is allowed ever. If their question doesn't get answered this time, it will never be allowed an answer.
Once you become an expert you spend much less time on SO because you just don't need it. So what are the chances that when you do need it, another expert in that specific thing (of which there are maybe 20 in the world) will also at the same time need to use SO, and stumble upon your question?
It's like using tinder in a sparsely populated area.
It's a site I sometimes use but dislike intensely.
I kind of want Wirecutter, but for technologies.
But unfortunately it's pretty bad at this other kind of judgment-based compare-and-contrast question. It's especially bad at the "what other solutions am I not aware of?" part, because it isn't kept up to date.
Frankly, I think that's asking a bit much. If you want a high-quality peer review of design proposals to bounce ideas off of others and discuss tradeoffs, you need a team. Maybe something like a meetup group or mailing list for a specific technology, programming language, or industry sector. But it goes beyond one-off Q&A, and I can also understand why Stack Overflow, with a goal of becoming a repository of perpetually useful knowledge that is general enough to be useful for anyone into the indefinite future, does not want to host such project-specific discussions.
Why not just develop in the open and collaborate explicitly with other parties also working on the same project? What you're asking for sounds close to something like the various special interest groups and public discussion of improvement proposals you see in things like the Python programming language or Kubernetes, or discussion on LWN about specific challenges the Linux kernel team faces.
If it were, then there'd be no reason to prohibit such questions... people wouldn't ask them, because they would never be answered. The only reason to prohibit them is because they would get attention/answers where none was desired.
The trouble with StackOverflow, is that what the users want and need does not match what the owners want. The owners want something monetizable, something that can look elegant and beautiful (hence the PR release a couple of years ago where they were positioning it as some "encyclopedia of computer science" or whatever). They figured out that the users could be denied what they want, while still (slowly) creating what the owners themselves wanted.
> and I can also understand why Stack Overflow, with a goal of becoming a repository of perpetually useful knowledge that is general enough to be useful for anyone into the indefinite future, does not want to host such project-specific discussions.
I'm not sure I'd characterize them as wanting that, but if they did... how would that be at all useful to anyone except CS undergrads trying to get someone to do their homework for them? Literally nothing of what people ask there day to day will be generally useful into the indefinite future. What do you want to ask, that will be useful 40 years from now? Neither anything language specific, nor anything domain specific will be relevant to anyone not a historian. Even the cutting edge stuff today will have long since been wrapped up into some blackbox library that everyone will use without unerstanding it.
If you were correct, SO could never be anything more than some useless little dumpster where the same 5 people whine n about the quickest sort algorithm.
It's like giving a big sales force a financial incentive: you have to be careful because they'll just game it, relentlessly, all day long. They won't care about your corporate priorities -- just getting that incentive money.
On SO, people get "reputation points." Those "same 5 people" game that system like salespeople winning that prize. You answered a question? They don't want you as a competitor, so they downvote you. You don't like their answer? Too bad, you don't have enough reputation points to downvote them.
To pick another analogy: they're like high school cheerleaders voting on who can become one of them.
Yes that's a correct interpretation! In fact, I almost wrote something like "even though this is forbidden on SO, it's one of the most common kinds of conversations within and across teams in the workplace in my experience".
I also agree with pretty much everything else you said about how these discussions do happen in project-specific ways on mailing lists and such.
But I disagree that a generic version of this couldn't exist. (Maybe it can't anymore though, because everyone will try to do it solely with AI now because that's what's hot.) I think before the existence of Stack Overflow, you could have said all these same things about the kind of questions that appeared there. Prior to having a good place for getting factual answers from "poorly-known, pseudonymous strangers", it was necessary to get those answers from professors or or teammates or consultants or independent research, just like it still is for these more subjective questions.
I definitely agree that this is a more difficult genre than factual Q&A, and I don't begrudge SO their choice in what content to focus on, but I think it was a choice to go that route, not an inevitability.
I think this is normally an unreasonable ask (when we’re complaining about, like, cars, clearly that’s not in this site’s aggregate wheelhouse). But I mean this is a website about start-ups, full of techie web-devs complaining about a website that they all use.
ChatGPT Has entered the chat.
But nobody wants to duplicate the 80% just to solve the warts.
If you ever find a question that you think is an XY problem, answer X first and then say "did you want Y?".
The worst possible answer is "you should be asking Y".
That's a surefire way to cause your suggestion of Y to get ignored and proliferate the bad practice of X.
It's not anyone's responsibility to explain how to do things in a way that they believe is wrong.
When you really are trying to help and you think it's an XY you can answer politely by actually answering their question and then saying "but you may want to do this instead". Try it.
If someone has a genuine desire to help, then they also inherently have an interest in making sure people don't continue down paths which are likely to lead to more problems in the end. Otherwise, you might end up spending more time supporting the follow-on issues created due to the misapplications of your own advice than you spent providing the support in the first place, which would not be an efficient way of helping.
I just don't think that is the case. On the rare occasion that somebody has answered like this to me I've just read their answer and thought "oh right that makes more sense I'll do that".
1: "This book says to monitor ML systems for distribution shifts; what tools are people using to store that data and monitor for changes?" 2: "Make sure you're monitoring normal SRE statistics like request failure rate"
Yes, first of all I do think it's up to the person looking for help to fully elaborate their situation in such a way that makes it clear why the X/Y problem doesn't apply to them, since other people with similar issues who stumble upon your thread might not realize that you have that additional context, and the answer is just as much for them as it is for you (if not moreso, since you're just one person).
Secondly, even if you did fully elaborate your situation, it may be that there are people interested in trying to help who don't know the answer to X but do know the answer to Y, and by answering Y they are still providing more value than not answering at all. There's nothing about answering Y that prevents X from being answered by someone else.
IMO, this is what books are for: advice for some form of large common denominators. And if I cite a book, I think it's fair game to assume I am familiar with its contents. And if you encounter my question and haven't read the book, I would hope you benefit just by knowing it exists and maybe even read it.
> Secondly, even if you did fully elaborate your situation, it may be that there are people interested in trying to help who don't know the answer to X but do know the answer to Y, and by answering Y they are still providing more value than not answering at all.
I mean, the longer a thread on slack is, the fewer people bother reading it all. And I have to read it as well before I know it's not actually helping me.
The current culture on SO is to flood questions with "don't do X, do Y", then upvote those answers. The result is that questions look answered but actually aren't, so the questions stay unanswered. When I come along months or years later having already considered all options, I don't want to have my time wasted by a question that perfectly matches my goal but was never answered because it got drowned in alternative approaches that I already ruled out.
I think this is the #1 reason why SO isn't a great resource for me.
This would be a fine policy if SO didn't also make a huge stink about duplicate questions. As is, there's one canonical copy of each similarly-phrased question, and a re-ask that says "but for real, I actually want to do it this way" is going to get shut down as a duplicate.
> If a question is full of answers that aren't marked as satisfactory, then there's still an opportunity for someone to come in and get the points by providing a different one.
The system rewards being one of the first responders, not the one who actually answers the question. This is especially true now that they've updated the system to place the highest-voted answer first rather than the accepted answer.
> What more can they do, ban people from trying to provide alternative solutions? Surely that is going to create much more harm than good.
I don't know that there's anything the company can do, since it's pretty clear that they've lost control of most aspects of the culture.
The format of a typical press conference is designed to make it hard for a reporter to follow up when the politician dodges their question, because the politician usually moves on to the next reporter. If they ever get a chance to ask a follow-up, it's after the original context is long gone from anyone's working memory.
If they do, they won’t get the interview next time.
The way I see it, there are failure modes with both extremes. I’d prefer the failure mode that involves some occasional annoyance over the failure mode that results in significant amounts of wasted code/effort, and a return to the XY framing anyway when things go wrong.
Ideally, people who are using this find a balance, and can recognize the difference between an obviously straight-forward request and something that needs deeper exploration.
It’s not perfect, but I think it’s a better default.
Users can get awfully confused by generic, misleading or overly technical error messages. So they call/write you and confuse you even more.
“There is something wrong about X.” Where X is some misinterpreted partial of a message. This only gets cleared up if you let them walk you through what happened step by step and/or examine logs etc.
Error messages are an important part of a UI. No matter if they’re user errors or internal errors.
There are always errors that you don’t foresee and just need to display generic messages for. But even then there should be a very clear, short(!) description and a unmistakable call to action.
"Cannot do X with upload"
Number one this is a behavior change and should not have been changed in the first place.
But number two, all the error had to say was "Cannot do X with upload because application is set to Y"
The first one generates a support ticket, the second one gives a legitimate reason on why the failure occurred and what they can do about it.
> This leads to enormous amounts of wasted time and energy, both on the part of people asking for help, and on the part of those providing help.
This is not really true though.
The time spent to answer is not wasted. There are people searching for it via Google, e.g. how to get the last N characters from a variable, and they will find the correct answer.
The time spent by the asker is never wasted. I sometimes know that this is not directly the thing I want to solve, or how I stumbled upon this question. Still, it's a question I have because I'm curious and I just want to know. So, in any case, the person asking for help will learn something.
And all other people on the Internet who stumble upon the question are likely searching for exactly the answer to this exact question, so they get some good value out of it. Or even if not, it likely will have references to what they are interested in. Those other people are ignored here.
When you say you detached this subthread, isn’t this essentially removing it from the discussion entirely?
It wasn’t my intent to derail the discussion, but I’m also trying to make sure I understand what just happened here and what you mean by detached.
You can avoid the cookie banner in two ways: 1. Do not use tracking cookies (or other tracking tools); or 2. Ask the consensus in a non-intrusive way, e.g., directly in the page itself.
We know that no company wants to remove tracking cookies because they need to "improve the service". However, there is no reason for not using solution 2. The only reason is annoying the user: a dark pattern to force users to accept cookies.
A similar (fictional) sentiment from Margin Call
I remember watching a story about asylum seekers who had to use Skype to dial in to get an appointment. At one point, one of them says to the camera "I often dream about the call music." I would be surprised if the call music isn't (at this point at least) configurable in some way, but it's still humbling to realize that a minor thing like a loader or sound file can represent the entire product to someone at a very stressful time in their life.