Bug in macOS 14 Sonoma prevents our app from working
mullvad.net
mullvad.net
I didn't get a chance to report this to Apple until yesterday, but I think it's a fairly recent regression, probably from around beta 6.
PF is supposed to be a last-match firewall but it's almost like macOS is doing first-match now: an earlier "block" rule (without "quick") is overriding "pass" rules in a different anchor, which obviously breaks things.
This is not an Apple-specific issue either, Microsoft works just the same. Large OS releases are a massive undertaking, and the release train don't stop for a firewall bug - no matter how severe the bug is for the people it does affect.
I love Mullvad!
Tangentially, MacOS has had a lot of weird firewall bugs in the last few releases in general, I wonder what drive them to rip up and redo (I assume? so much of it recently.
You can only formally verify your own functions against some specification. And where do you get a bug-free specification from?
There are caveats, but not "you cannot verify interfaces" or anything else that would somehow disqualify validation of network packet processing - something a mere unit-test could handle.
The real counter to formal verification is that it is too much work and not a normal thing to do.
The people who develop such software start out writing a verifier for a much system of logic or programming than what the final system will handle. This first system is sufficiently simple that the verifier that can verify programs in that system is very small and straightforward, so that if several humans look at it and can't see any bugs it is almost certainly correct.
Then they write a verifier for a more expressive system. This verify isn't as small or straightforward and so even if humans don't see any bugs we can't be confident that there none. They then use the first verifier to verify the second verifier. The formal proof of correctness might be long and difficult to develop because it can only use the reduced logic of the first verifier, but once they manage that and the first verifier verifies it, they can be confident that the second verifier is correct.
If the system the second verifier still isn't expressive enough to verify the things they ultimately want to handle they write an even more expressive system, and use the second verifier to verify that.
Repeat until you've got the system you wanted in the first place.
TLS 1.3 is the first TLS in which experts built a formally verified model of the protocol before they shipped the standard. There are models of earlier TLS versions, but nothing learned from them could be incorporated into the corresponding standard because they were an afterthought - like writing unit tests after shipping version 1.0
TLS 1.3 has a mode intended for applications where some nodes which have a pre-existing relationship communicate, in this case we don't need the Web PKI ("SSL certificates") instead we use Pre-shared Keys (PSKs) - that is all the parties know the keys anyway, which clearly couldn't work for the open web but is fine for my boiler and its remote thermostat since duh, I don't want some random other person's thermostat talking to my boiler. PSKs are also used when you connect to the same server again later, but that doesn't matter here.
The mathematical proof seemed to say exactly what the designers wanted, and it passed. So TLS 1.3 is exactly what we wanted... right? Well, almost. Designers were thinking of symmetries like "Alice talks to Bob" and "Bob talks to Alice" as one conversation, but the proof thinks that's two conversations. So the proof thinks Alice and Bob need two keys, the Alice->Bob key and the Bob->Alice key, while humans assumed they only need a single key, an Alice-x-Bob key. And so the RFC documents (prior to errata) the human assumption but the protocol actually requires the machine assumption.
The result is the Selfie Attack. In our scenario Alice, and Bob have a Cat. The Cat, like many cats, would like more food, but Alice and Bob use a secure protocol to ensure they only feed the cat once.
Bob has fed the cat and left. The cat is sat by an empty food bowl looking plaintive. Alice sends Bob an encrypted message, "Did you feed the cat?". The Cat intercepts the message, it doesn't have the Alice-x-Bob key so it can't decrypt this message nor directly answer it, but it doesn't need to. The Cat simply sends Alice's own message back to her. Receiving a message encrypted with the Alice-x-Bob key, Alice concludes it's from Bob. "Did you feed the cat?". So she replies "No, I did not feed the cat". The cat receives this message too, and directs it back to Alice as well, now Alice has what appears to be a reply to her first question, "No, I did not feed the cat" encrypted with the Alice-x-Bob key. So, Alice feeds the cat again because the cat was able to trick her into answering her own question.
TLS handshakes were never designed to be symmetric. Every TLS connection is clearly between a client and a server. Alice and Bob, both running a client and a server, where both servers use the same PSK, is not a TLS setup. It's two (2) separate TLS setups.
The math was never intended to verify if sharing PSKs across independent unrelated servers is safe. In fact, the Selfie attack is not really a "selfie" attack; it works even if Alice hosts only a client and no server, as long as there exists an Eve that hosts a server (but not necessarily a client).
> Designers were thinking of symmetries like "Alice talks to Bob" and "Bob talks to Alice" as one conversation ...
I strongly doubt that. A TLS connection, once established, is symmetric, sure, but a TLS handshake isn't. The failure mode in Selfie isn't in the post-handshake domain. It's not like Selfie allows you to take packets from an already established connection and play it against an unsuspecting server that has no connections, and thus making it think it has a connection.
The failure is literally this: Alice says "Hey I wanna talk to you" intended for Bob but doesn't specify who, exactly, are "I" and "you". The Cat records Alice's speech and replays it to her, making her believe someone is trying to initiate a new, separate conversation.
The verifiers writing the proofs would be acutely aware of the asymmetrical nature of TLS handshakes. In fact, I strongly doubt they even considered any case where the same entity hosts both a TLS client and a TLS server for a shared purpose.
That's nice, but I'm reporting historical fact. https://eprint.iacr.org/2019/347
This is Hacker News, where people who know nothing about a topic come to tell each other about their expertise. You believe no-one would make this type of mistake, I know they did and I have just provided you a link to the paper at the time. Alas some people will believe you, and they will assume that they too are infallible and the rest is inevitable.
What did Dorothy Parker say about Horticulture ?
Thank you for reminding me to read the original report again. However, I still don't see any evidence to support your claim that the designers assumed TLS connections to be symmetric in their establishment.
Maybe I'm reading the report differently from you, or maybe I'm misreading it or missing sth — though I did honestly try to read it from your perspective — but I just don't see anything in the report where session establishment or resumption ignores the role of a participant. A client is still a client that cannot receive new connections and a server is still a server that cannot initiate connections.
The report does support my reading of the issue though:
1. That Selfie would not be possible if a server checked the intended recipient of any handshake message it received; and
2. That Selfie would not be possible if the assumption that a PSK is a secret known only to one client and one server were not violated. How it is violated — whether by reusing the client and server host nodes and deploying the opposite roles on each (your symmetric case), or by setting up two extra, completely unrelated and independent host nodes (no symmetry here) — does not matter. They are both violations of secrecy of PSK and thus vulnerable to Selfie either way.
----
> You believe no-one would make this type of mistake
I did not "believe no-one would". I "strongly doubted" (which is subtly, but importantly enough, different from belief) whether a proof writer who's intimately familiar with TLS handshake (again, not "no-one") "would".
> Alas some people will believe you, and they will assume that they too are infallible and the rest is inevitable.
I ... don't see where this is going. Or why.
> What did Dorothy Parker say about Horticulture ?
Okay, you've definitely lost me.
----
Look, I'm not arguing that mathematical proofs are infallible to modeling inaccuracies, or that they should be trusted blindly. Or that people can be perfect if they have enough expertise. Absolutely not. I only disagreed on some nuances of the specific example you provided.
But you may not be interested in that. Especially given how you generalised my words above (and thus erased them of all nuance), I'm going to read the signs I see, write this whole thing off as basically an exercise in pedantry, and end this here.
Ok. The consequences are exactly the same. Once you express what the humans actually thought they were getting the proof engine says "No".
>> I'm not arguing that mathematical proofs are infallible to modeling inaccuracies, or that ...
I guess I see the point of OPs question now.
The formal verification can only prove that something works according to a specification, not that it (or the specification) does what x stakeholder wanted.
In this sense, it makes the error surface smaller, but does not remove it.
It's also a good metric to signal an anomaly after a deployment. On my desktop machines, the current culprit for most of the logs is pipewire/alsa, generating multiple lines per second.
e.g. when the WiFi adaptor faults and has to restart.
It doesn't mean anything besides that though.
Maybe in some scenarios it shows a fault that is absolutely unnoticeable, but every real world case I've seen was at least theoretically noticeable by the user.
That doesn't sound like normal behaviour, what's the domain?
#define os_log_fault(log, format, ...) \
os_log_with_type(log, OS_LOG_TYPE_FAULT, format, ##__VA_ARGS__)
It's literally just an os_log with the "fault" type set. You can call it whenever you want. Most libraries have a couple sprinkled in for things that someone should probably check at some point but there is no actual semantics to it to mean that something is necessarily broken.The mere fact that it's theoretically possible doesn't seem to be persuasive.
I installed the most recent update five days ago, would have been weeks since the last reboot. From my experience, I'd probably put it down to some software they've installed, or yes, possibly an actual hardware fault with that particular unit.
My Macs stay up for months and have since Jaguar days. I use them for around 7-8 years, after that hardware starts to glitch or get obsolete. I can count on one hand the number of kernel panics I’ve had on each during this time.
Just saying random things in response to a comment is not the typical HN norm.
Otherwise the default choice is to not write a comment.
The number of log entries shown in the console is overwhelming. All the background services constantly log ~100 messages per second, so the log entries you are looking for disappear immediately.
You can use the search filters to narrow down messages if you know what you are looking for, but if you don't already have a suspicion where the problem is coming from, then the macOS logs are close to useless.
Anyway, Console.app got way more verbose after that. I don’t like it, it’s too noise for me, but it doesn’t necessarily mean that lots of things are breaking under the hood.
edit: derp I confused console/terminal please disregard
We're constantly adding new features add BrowserBox to respect and protect privacy and improve the overall experience. It's open source so you can change it how you want too. If you don't like AGPL-3.0 you can get a commercial license. Come take us for a spin: https://github.com/dosyago/BrowserBoxPro
If you don't want something open source, but prefer the joy of a large company I think Mullvad also has their Mullvad Browser which does something similar!
Do many websites end up blocking traffic if it's originating from e.g. an EC2 instance?
About the IP: No actually. I'm not sure why that is, but I assume because a lot of premium VPN services and proxies need to end up going through IP blocks used by cloud providers as well these days.
Most of the blocking I've seen comes down to how well the browser presents as a regular browser. If it looks like an automated bot browser (just raw headless, or whatever) it's more likely to get blocked in my experience than from the IP address.
Although you certainly get some IP blocks or individual IPs that are more likely to get blocked. No offence to DO, but I've noticed their IPs are less reliable. I've never really had an issue with AWS, GCP, Vultr, Linode or Hetzner, except for the odd machine that somehow has an IP address that must be on a ban list, I'd estimate it around 5% probability of getting such an IP from the regular providers tho.
So headless browsers are easily detectable?
Old article on the topic.
https://9to5mac.com/2015/05/26/apple-drops-discoveryd-in-lat...
Which is the scope of the bug sure. But doesn't make the check particularly elaborate or beautiful!
I think GP is saying it's beautiful precisely because it needs such a simple and not elaborate test
The fix both times was to open the Mullvad VPN app just once and everything worked again. No idea why just opening the app would fix the issue.
If you have a better way to reach them, lmk.
Also if you do need to reach someone at apple, I think filing a DTS incident would do that.
Tailscale's business model has never been anonymity, last I used them they even required either a Google or O365 account to even use the service.
You might want to look into Headscale[1] instead, it's a server-side implementation of Tailscale that you can self-host. It comes with its own drawbacks but from what I've seen it's worth it if you want more control over the network.
Although, it is also still in Beta and issues have been reported/known, so similarly if you look for a stable solution it might be best to hold out for now.
From source: "we have investigated this issue after the 6th beta was released and reported the bug to Apple"
https://developer.apple.com/documentation/carplay/requesting...
edit: tap to pay is another: https://developer.apple.com/documentation/proximityreader/se...
I’m talking about capabilities Apple officially denies having, or only gates to “partners”, and vends them using private header files and entitlements. One example is VPN service, which, before the NetworkExtension, were limited to the “Cisco”-branded user UI in Settings and MDM configuration files. Unless you had the (legacy) network manager private header files and a super private entitlement in you provisioning profile, allowing you to create VPN on-device without any MDM or configuration profile (or user consent), there was no way for an App Store app to create a VPN tunnel. We used to get these by mailing a contact inside Apple, asking for the latest headers before each major and minor iOS release. Before NetworkExtension, any public inquiry about creating VPN tunnels was denied by Apple and only officially supported by the Cisco app at the time.
Over the years, I’ve heard of many other such “features” only available to big “partners”.
Private features are a standard practice pretty much everywhere you look around. Don’t believe me? Ask big google or facebook advertisers
Since tcpdump presumably isn't logging anything going out of pflog1, it implies that the data isn't being sent to pflog1. That implies that it's something upstream from there.
Was pflog1 plumbed and/or pulled up? Back in the day you used to have to plumb and pull up an interface manually. Does MacOS do that for you?
Granted, isolating this isn't the bug reporter's job. But at some point the engineer will be asking these questions, so you might as well answer them.
bash-3.2# ifconfig pflog1 create
bash-3.2# ifconfig -a
pflog1: flags=1<UP> mtu 33072
But I don't think tcpdump will see anything because there's no IP associated with that interface. On some devices (Broadcom) the OS will just dump stuff out of an interface, but I'm not sure what MacOS does in this case.
I presume this was tested to work on 13.5.2?
pflog interface is not a "real" interface, there's no point in putting an IP address on it
I'm not sure if tcpdump knows exactly that it's a pflog interface but tcpdump knows how to decode the wire format which traverses the pflog interface.
It's a bit of a weird thing, using a network device for logging information like this, but it works.
ifconfig pflog1 destroy
afterwards to whack that extra interface.
More:
Little Snitch "denied" connections leak your IP address - https://lapcatsoftware.com/articles/2023/3/4.html
Follow-up to Little Snitch "denied" connections leak your IP address - https://lapcatsoftware.com/articles/2023/3/5.html
Little Snitch "denied" connections leak your IP address: Developer response - https://lapcatsoftware.com/articles/2023/6/3.html
Apple doesn't seem to care that much about privacy applications of their OSes.
If I remember correctly, macOS (iOS as well?) also sends information about the application you are launching back to Apple from time to time. It doesn't contain the application's name directly but it does contain information about the developer of the app (their certificate; multiple apps can technically share the same developer though). They do this to be able to prevent the app from launching in case the developer has been done something nefarious. Bonus points go to Apple for making these requests over plain text connections, no pesky TLS - let the whole network see!
https://sneak.berlin/20201112/your-computer-isnt-yours/
Apple committed on April 30, 2021 to sending these revocation checks over a new encrypted protocol within one year. AFAIK that turned out to be a lie, as there have been two OS releases since then and plaintext OCSP remains a thing.
https://support.apple.com/en-us/HT202491
ARM macOS also still gets boot tickets from the TSS server (which include permanent HW serials like chip ECID) via plaintext tcp/80 HTTP on every OS update.
Yet, macOS seems to get buggier and buggier between releases. Something about the way it's being developed right now is going very wrong.
Unlike the iPhone, there’s no magic date in September when all the year’s new Macs drop and require support for all the new hardware capabilities. Sure, there are changes to system apps on iOS like Notes that want feature parity on the Mac, but you could do those in a point release. Or even better, decouple those apps from the OS and update them individually via the App Store.
They clearly don’t have enough resources allocated to macOS anymore to have a big yearly release without spending the next n months fixings problems. Just release the damn thing when it’s actually ready. They didn’t do yearly releases when the Mac was still their major focus, I don’t see why they need to today.
Naturally you need to be able to view your stereoscopic 3d videos on your Macbook, or something.
It’s half-baked features that don’t get revisited for years. We all know the new System Settings sucks; Sonoma hasn’t meaningfully improved it. The Notification Centre redesign introduced 3 (?) years ago is so much worse than the old design, but it hasn’t been touched since. Disk Utility is a shadow of its former self.
macOS is an established operating system, I would prefer them leave perfectly good features alone unless they can actually make them better.
This is a common trend in the SW development in the last decade. Aparently bug fixing is hard and expensive, that's why they concentrate on new features or, in extreme cases, complete rewrites (GTK).
> Yet, macOS seems to get buggier and buggier between releases.
i wonder how much of that is a side effect of constant rewrites of already existing features... i'm reminded of when they tried to replace mdnsresponder amd all the chaos that ensued, or even just swiftui and all its regressions... the dock being rewritten in swift or system preferences etc...I basically resent filing bugs with companies that have enough money to do proper testing, I don't want to work for them for free, especially if there is no answer, or a 1st-level answer who hasn't even tried the filed repro case. However, I am happily reporting bugs with open source projects.
If they never fix the bug, they got no value out of your report...
If they fix your bug, then now software you use works better...
A bug that goes unreported and unnoticed by Apple engineers will by definition never get fixed. Whereas filing a report at least brings with it the chance that it gets fixed.
Based on my own experience the majority of what I report gets fixed. I just don’t get a thank you card, or other communication in most cases, which seems to be especially a sore spot for most.
I don’t really care and I wonder how realistic it is for them to reply to everyone. Their automation and triage engineers try to link duplicate reports so that an automated message goes out, regardless many will still slip through the cracks.
I’m also not sure if throwing more money at the problem will noticeably improve things with the way the process is designed and the sheer volume they’re dealing with, especially since they started the public beta program and taking into account automated reporting.
I personally think they should get back to the drawing board and redesign the process to one that separates some of the streams.
That said, I’d suggest anyone who regularly reports to build report with relevant engineers that are active on a variety of social media, to make use of labs and other interaction moments if you’re dealing with something that affects your work because the engineers are always eager to pluck your report out of the pile and take a look and to also make use of the DTS credits you get to highlight an issue (they’ll refund you the credit once they confirm it’s a bug).
I also highly recommend reading this blogpost by an ex-engineer to get a sense of what goes on behind the scenes: https://tidbits.com/2020/06/17/how-to-report-bugs-to-apple-s...
Release new feature with a lot of bugs.
For example even if they are fixed (takes about a year) in webkit they are never merged to safari…
So even if there is bugfix, it will never make it to live release.
Do things e.g. pfSense support that already? "Hold" an outgoing connection from the moment the SYN is observed, notify whatever client, and only allow if the user clicks?
Not that I am aware of.
This is a desktop centric workflow where the user can react live to an application that is sending traffic.
Your typical network firewall will apply a set of static rules and the decision to log/reject/drop is done ASAP. Waiting for user input is impossible.
Some systems can show logs of recent blocked traffic, and allow an admin to quickly generate an exception/allow rule for blocked traffic but that's pretty much it.
Alternatively, you could possibly use a divert(4) socket — coupled with a targeted firewall rule — to divert only the initial SYN packet, and if the connection is to be permitted, re-inject it and allow connection to proceed normally.
OpenBSD supports using divert(4) sockets with pf; unfortunately, FreeBSD divert(4) sockets only work with the older ipfw firewall.
that said, the description could be covered by something like captive portal.
What makes LittleSnitch/Lulu/similar nice is they listen for "all" outgoing traffic types TCP/UDP/ICMP/etc, and show UI immediately, including for non-browser apps, e.g. games, VoIP, P2P apps, whatever -- it tends to be covered. Unless I'm mistaken I don't believe a captive portal can be triggered when "just any" process originates traffic.
That's the strength of LittleSnitch/similar, but the major weakness with host-level filtering they rely on, is you're 100% at the mercy of Apple's networking stack, and this Sonoma issue isn't the first time Apple moved the goalposts. Not too long ago Apple exempted their own services from whatever LittleSnitch hooks [1] and it could of course happen again with any macOS update.
In my view this is precisely why a separate box is appealing. Ideally it'd have as tight of a UI as the incumbent apps, including the same metadata (process name + app icon, protocol, port #, most recent previous attempt, etc).
As MacOS becomes more popular, it seems it has to go to this shitty phase, as Windows did back in the day. We got rid of this phase with Windows XP release, so around 7 years. For you, who knows, hopefully shorter.
https://www.amd.com/en/processors/ryzen-surface-edition
1. The fans are constantly going.
2. Everything causes the hourglass cursor to pop up - even just clicking on a button in Outlook
3. It takes awhile for the screen to redraw. Way back in the pre - OS X days, I use to be jealous of how fast Windows drawing was in comparison.
4. Every time my laptop goes to sleep, I have to unplug and replug my external USB C powered external monitor.
5. Did I mention the constant humming of the fans?
6. Even how it handles multiple desktops is inferior to Macs
7. Hopefully I can run WSL2 on my work computer. I can’t imagine being stuck with PowerShell/cmd
I don’t even want to think about how bad the battery life is going to be compared to modern ARM based Macs.
Yes both my MacBook Air and Windows computer have 16 GB RAM
As someone who had to use a very slow 10-year-old iMac recently, I would prefer if macOS showed more indicators that it was busy. The macOS UI seems to assume things are near-instant that in that environment weren't even close.
For example it "reopened" XCode after a reboot, and after a while it seemed the system was done doing background stuff. I clicked the System Settings and another app because I was going to need them, then tried to interact with XCode. Then the window turned gray and a spinner showed up that took a few minutes to disappear. It wasn't done at all. It turns out showing a screenshot to seem more responsive only works if you can very quickly back up the lie when necessary.
So up until you tried to interact with it, it wasn’t frozen as far as the system was concerned, only then did it ran into an issue and did it convey that issue to you.
I don’t know by heart what the last macOS (or even OS X) version and Xcode version is that would be supported by a decade old iMac, but I can’t imagine it being a pleasant experience.
- The keyboard layout and shortcuts are non-standard compared to other operating systems.
- Many keyboard shortcuts require more keystrokes than their Windows/Linux counterparts. For example, CMD+SPACE vs. WIN, OPTION+CMD+SPACE vs. WIN+E.
- I experience frequent system crashes—about twice a month, which is significantly more than I've had with high-end Windows laptops.
- Integration with Android devices is lacking due to the absence of apps like Phone Link.
- The window management is subpar. Third-party apps like Rectangle that attempt to improve this are buggy.
- Mouse scrolling defaults are reversed. If adjusted in settings, the touchpad scrolling direction is also inversely affected, without separate configuration options.
- The gaming library is limited.
- I experience glitches with my monitor optimized for Mac. About once every hour, the screen goes blank for a few seconds. This issue doesn't occur with Windows.
- Global environment variables are not available unless an app is initiated via the command line. This means apps started via Spotlight can't have assigned environment variables.
- Docker performance is suboptimal. For instance, a PostgreSQL backup that takes 5 minutes on Windows requires 2 hours on macOS due to slower write speeds to the host filesystem from inside Docker.
- I encounter issues with my non-Apple headset and need to disconnect its dongle from my MacBook approximately once daily to rectify it.
- Docker doesn't run in Parallels VMs. Unlike Windows, where nested virtualization can be enabled with a PowerShell command, macOS doesn't provide this flexibility.
- There's no straightforward method to turn off the laptop monitor when an external monitor is connected, without closing the laptop lid.
- Excessive security confirmations disrupt workflows.
- Working with virtual machines is cumbersome. For example, the OS still reacts to some shortcuts even when a VM is in focus.
- Multi-user mode has significant shortcomings. Several brew programs malfunction when multiple users access the system. Docker, especially on the ARM version of macOS, exhibits issues in multi-user scenarios and doesn't function properly in VMs.
- To execute scripts via right-click, one must create a quick action and navigate to a secondary menu—a non-intuitive process.
- Several CLI utilities differ from their Linux counterparts. Making them GNU-compatible requires installing numerous utilities via brew and then prioritizing them over the native commands.
- Finder lacks the robustness and versatility of Windows Explorer.
- Hardware upgrades are exorbitantly priced. For instance, upgrading from 512GB to 2TB SSD costs €700, whereas a 2TB SSD can be found on Amazon for around €70.
- Post macOS updates, certain configurations, like fingerprint authentication for command-line apps, revert to default settings, necessitating frequent reconfigurations.
- macOS doesn't perform well on low-resolution screens, in contrast to Windows.
- The OS is restrictive. Outside of macOS, no other systems can be installed.
- My printer only operates wirelessly. USB-C connectivity fails, forcing me to disconnect from the internet to print.
- When connecting to a printer via WLAN, macOS often disconnects initially, mistaking it as a primary internet connection.
- The ARM architecture still exhibits flaws, especially when interfacing with virtual machines.
- Mouse acceleration isn't as refined as on Windows (excluding the touchpad).
- During Playwright e2e tests, tab navigation gets cluttered with icons from test browsers—a problem absent on Windows.
- An increased number of macOS software options are paid. For instance, while Windows offers free VM tools, macOS users might need to purchase Parallels.
- macOS lacks an official package manager akin to Windows' winget or Debian's apt-get, though third-party options like brew exist.
- The Windows taskbar offers superior functionality to the macOS dock, including hover previews.
- Apple doesn't provide convertible laptops or touchscreen devices.
- Some enterprise features are absent or underdeveloped.
- Legacy software support is limited, which might expedite OS development but poses compatibility challenges.
- The laptop tends to overheat during intense processes, seemingly prioritizing quieter fan operations over cooling efficiency.
- Unpurchased Apple Cloud Plans result in advertisements within System Settings and the Music App.
You can remap the keyboard shortcuts in macOS easily. Go to System Settings - Keyboard - Keyboard Shortcuts. The one you specifically mentioned for WIN + E is in the Spotlight section under 'Show Finder search window'. Double-click on the key chord shown and type in what you'd prefer. (Incidentally, the Finder search window is atrocious and I hate everything about it. But I get wanting a shortcut to just open Finder in general.) Another neat thing you can do here is assign keyboard shortcuts to any menu item in any application.
You might also look into BetterTouchTool for gestures, keyboard shortcuts, and a billion other things. One option BTT provides is inverting the scrolling for the mouse only. It's a quick and easy checkbox in the prefer-- settings.
Parallels is good and all, but I personally use VMWare Fusion. It's free and I've not had any issues with it that would compel me to pay a subscription for Parallels.
The new System Settings is an obvious one; Sonoma hasn’t really touched that at all despite its glaring issues. But Notification Centre has been borderline useless ever since they redesigned it back in what, Big Sur? I saw a Mastodon post recently [0] that highlighted how bad it is today compared to the old design, yet it’s barely been touched in 3 years.
macOS is stable and established and unlike iOS a lot of people rely on it to do actual work, I would rather them not mess with stuff than half-ass it and leave it unfinished.
The settings app for example was perfectly fine, it worked well for what...near 20 years with only slight tweaks. Now I have to use the search bar for settings, because it's not obvious at all where to find a lot of them.
And yet things that would be useful like a volume mixer are still nowhere to be found.
Frequently these days, with lots of overlapping windows I try to click the top of a window only to find out I’ve clicked on part of the window behind.
Yes having everything one colour is lovely and ‘clean’ but horrible to use
Flat design looks much, much cleaner.
Same for iOS. iOS 7 was the first version that I actually liked looking at.
What I loved about macOS originally was that it was a great Unix style OS but with a consistent UI and major desktop apps.
Also most major headline improvements in recent macOS releases rely on iCloud and because I've always been a multi-os person these are not something I can use. Some iCloud stuff works on windows but most doesn't. And pretty much none of it works on Linux or BSD. Any service I use must work on all.
So after years of getting more and more annoyed with Apple removing powerful options and replacing them with dumb on/off sliders I just can't deal with it anymore. I still use it for work but that's it. At the same time KDE is now mature enough to work great. And it doesn't eschew lots of configuration settings. So it's become my daily driver instead.
I assume you were talking about consumer versions like Win 95, 98 and Me (the release we don’t talk about)?
The NT based ones like NT 4 and Windows 2000 seemed decent when they came out. I guess MS realized that as well and started using NT for the consumer releases as well with XP.
But I certainly agree that XP was a nice release, as was Windows 7 (in my experience).
But at dosaygo, we're working on something called a remote browser, which runs on a remote machine, and therefore you have a different IP address. You can incorporate a proxy service or VPN if you want but it already is 1 layer removed from your local machine, which is great for protecting you from browser zero days too. Check us out, we're open source but you can also get licenses for commercial use cases where you don't want AGPL-3.0: https://github.com/dosyago/BrowserBoxPro.git
Typo? Although on your GitHub page it's spelled 2 ways:
> For support or to purchase licenses, connect with us at sales@dosyago.com or visit: https://dosaygo.com
But that URL won't load.
It's doubly bad because as unique as dosyago is, I think I still prefer the name dosaygo. I don't know how to change it tho! :..(
And also just because I really like the original name, it's the values (do, say, go the most common verbs in many languages besides to be; and it's like I think the company should help people with what they do, where they go and what/how they say), but it shouldn't tell them who they should be so; for me it's really core) kind of important to get right ha ha
Isn't there some way to just change it? I don't know...
I think DBA would work for first-class products or whatever...but not for the name when it's so close.
Do you have a company?
ETA: Hm. OpenDNS (family) blocks them...
The obvious answer question is whether they reported this to apple already and are using this post to draw attention to it, or if they’ve found the bug in the betas (which is why betas exist) but then not reported it directly (defeating the purpose of betas)
I've had such a bad experience with iOS 13 / macOS 10.15 that I'm reluctant with the point 1's as well.
we have investigated this issue after the 6th beta was released and reported the bug to Apple