Ditching Windows: 2 Weeks with Ubuntu Linux on the Dell XPS 13 - <AUTHOR> https://www.forbes.com/sites/jasonevangelho/2018/07/19/ditching-windows-2-weeks-with-ubuntu-linux-on-the-dell-xps-13/#6d821ce91836 <comment><USER3> There was an interesting thread on Reddit [1] the other day which did a breakdown of the state of gaming in terms of native games and games that can be run easily via Steam Play (aka 'Proton', Valve's in-built WINE+DXVK layer). The results were quite interesting and, as one of the replies pointed out in another breakdown, Linux now competes with (and in some ways beats) gaming on macOS in terms of size of catalogue.

Granted there is a ways to go to beat Windows in this space, but the progress over the last 6 years generally and the last 6 months specifically is astounding.

[1] [https://www.reddit.com/r/linux_gaming/comments/9qopag/5000_l...](https://www.reddit.com/r/linux_gaming/comments/9qopag/5000_linux_games_on_steam_and_a_few_other_numbers/)

<comment><USER4> As someone who has just released[1] a first access game across Windows, macOS and Linux:

10 years ago developing on linux as a game developer was way worse than windows and MacOS, now there is no real difference at all. I speak as a long time UNIX user, Linux was terrible for C++ devleopment, debugging and asset creation/viewing (compared to the others) making gamedev tougher than it needed to be.

10 years ago linux's OpenGL drivers were behind even MacOS and way behind Windows OpenGL which was behind DirectX by quite some way. Now Linux's drivers are fairly good although it's still a nightmare upgrading radeon drivers and NVidia's drivers seem to be fickle. This leads to a lot of bugs from users and supporting various distro/hw/driver combinations.

Libraries like libSDL(2) were less mature 10 year ago, multi monitor, input and sound support were patchy because the Linux landscape was fragmented and buggy. Now libSDL2 is pretty much spot on. Mutli-monitor is doable (not as good as macOS but as good as windows), input is pretty good and sound is OK (but most people use FMOD which is superb).

Where Linux falls behind is deployment. No I am not going to ship my source for you to compile. itch.io and Steam go a long way to make it easy to deploy and crucially update the game. It's still a PITA to deploy a compiled app on Linux with unclear glibc versions and amazingly it's worse than MS DLL hell of MSVC redistributable shambles.

It's not impossible to overcome but it's a PITA for a small market. Not a good position to be in. I support macOS and Linux as well as Windows because I believe in plurality but I can see why many chose not to. Don't think that using Unity or Unreal make anything easier either. In many ways they are worse than a well written custom engine.

[1] [https://executionunit.itch.io/smith-and- winston](https://executionunit.itch.io/smith-and-winston)

<comment><USER5> > It's still a PITA to deploy a compiled app on Linux with unclear glibc > versions and amazingly it's worse than MS DLL hell of MSVC redistributable > shambles.

One option is to statically link against musl libc [1].

The kernel ABI is about the only stable thing you can rely on (which is something you _can't_ rely on for macOS or Windows).

[1] [https://www.musl-libc.org/](https://www.musl-libc.org/)

<comment><USER6> Is it not possible to link glibc staticalliy? IIRC musl has readability and code size in mind while glibc optimizes for performance at the cost of readability and codesize.

<comment><USER7> The problem that I know of is that glibc supports loading DSO modules, eg. for NSS, so it's not going to support pluggable NSS sources like LDAP etc when statically linked. There are workarounds, however:

[https://stackoverflow.com/questions/3430400/linux-static- lin...](https://stackoverflow.com/questions/3430400/linux-static-linking-is- dead)

Can't imagine many Linux gamers are going to need NSS support in their game binaries. It's a bit of a stretch to say glibc doesn't support static linking, perhaps "officially" it doesn't, its just not all the extended features are going to work.

Static linking is generally going to be frowned upon these days however since you're effectively linking security issues into the binary forever.

</comment></comment></comment></comment></comment><comment><USER8> If you don't have specific Windows apps, I'd be tempted to try a Chromebook these days.

Around 2 years ago I got a cheap Chromebook and it was terrible. I think it was $250. Fit and finish and keyboard kind of sucked. I found one of those HP Chromebook 13 g1 boxes, which Woot had refurb for half off at just under $500, and it is much closer to the hardware experience I'm used to with Thinkpads, for 1/6th the price.

Now, I almost always reach for the Chromebook instead of the Thinkpad _EXCEPT_ when I need to connect to both of my work VPNs, the Chromebook will only connect to one at a time. I can ssh into my personal and work machines, run my password manager, program via remove vi sessions (though I could stand to use VSCode, I don't have that set up on my Thinkpad either).

The Chromebook has been a great experience for me.

<comment><USER9> Chromebooks sound amazing except I don't want to be locked into Google or give them more of my data...

<comment><USER10> Personally I choose Debian, but if the alternative is getting locked into Microsoft and giving them more of my data, then I choose Google.

<comment><USER11> Surely Google's privacy-invading footprint is far wider than Microsoft's, including Analytics etc.

</comment></comment></comment></comment><comment><USER12> Glad that Ubuntu works well for the author, but I've used Ubuntu on and off for a good 5+ years, and could fill a book with small things that just don't work quite right, and cumulatively makes it feel like I'm fighting the computer instead of working with it.

As a brief taste:

* No trackpad swipe gestures (plus many more subtle trackpad issues)

* Pre-Wayland the only way to attach a second screen at a different DPI was with xrandr that caused random flickering

* Accidentally bricked it once because I restarted while updates were happening in the background (no indication they were, and no prompt to let me know before restarting)

I could go on for awhile...

<comment><USER13> On my Dell Precision 6800:

* "Supported" ubuntu was so old that neither Chrome nor Firefox would update

* Latest ubuntu constantly toggled the backlight at 30fps (yes, really).

* They didn't provide a driver package, instead they provided a utility to bake drivers into install media. Naturally, it didn't work, the documentation described a significantly different version.

* All these problems were well-represented in forlorn solutionless forum / stack overflow threads.

<comment><USER14> Where did you get info on what the "supported" Ubuntu version is? I've installed 18.04 on C2D machines and it looks like your machine has a Haswell CPU. The latest version of any Linux distro you want will work.

Also, did you ever try these utilities to set the backlight PWM? [https://wiki.archlinux.org/index.php/backlight#Backlight_PWM...](https://wiki.archlinux.org/index.php/backlight#Backlight_PWM_modulation_frequency_.28Intel_i915_only.29)

<comment><USER15> I think he's referring to the version that Dell ships with the laptop. But that laptop has been out of support from Dell for so long I don't know why this is a problem, it's not like you were going to be able to call them up and get support on it anyway.

In my experience Ubuntu on Dell laptops tends to just work. Even things you might not expect like the volume keys on the keyboard.

</comment></comment></comment></comment><comment><USER16> The author praises the package manager as a positive, not a negative as I usually see from people used to downloading *.exe installers. He's used other distros, plus a Mac, in the past, but I wonder if phone app stores (plus Windows' own software store) have made this become a more natural method of installing software for the average user?

<comment><USER17> I switched from Windows to Linux before I had a smartphone and appreciate the package manager. I got a Macbook for work and lamented the lack of package manager (homebrew is a weak substitute in several ways).

<comment><USER18> Macs have the App Store, which works well for GUI programs. On the CLI side I have played with Brew (and Fink a long time ago), but I prefer MacPorts because it feels more solid (at the expense of not having all of the bleeding edge stuff.

<comment><USER17> Ah, yes, but my package manager covers every piece of software I use. No specialized update services. It seems like a small thing, but it's more pleasant.

<comment><USER19> And if it doesn't cover software you use, then it sucks to be you. Or if you want to install an application to a different disk. Or if you want to have two different versions of an application installed. Or if you want to use an application that relies on dependencies your package manager has decided are incompatible. The package management paradigm has its own set of limitations and flaws.

<comment><USER17> I've really not had any issues finding what I need for Arch Linux.

If you want to install to a different disk, you could still install the raw binary, or mount a directory in your applications directory.

Those are just hard situations in general. I'm a big advocate of statically linking anything possible, because I have disk space galore and dependencies can be a pain as for your last point.

<comment><USER19> They aren't hard problems at all. Even DOS handled them with ease. The problem is that the culture of application development around systems with package managers doesn't consider these use cases at all, forcing you to jump through a bunch of hacky hoops to do deal with them. Case in point: symlinking or mount-based tricks because developers hardcode paths.

<comment><USER17> Having multiple versions of dependency libraries was a pain on DOS, Windows, ... It just is what it is. For the record, you can have multiple versions on any OS, but it's important they have a version in their name and that the dependent application is aware of that convention.

The specifics of path layout is just how Unix-like systems do things in general. It's not all that different on MacOS.

If you really like the filesystem layout of Windows, just use Windows. If you really like `exe` files, just use Windows. I don't see the problem.

<comment><USER19> > Having multiple versions of dependency libraries was a pain on DOS

DOS didn't even have the concept of a dependency being separate from the application, so i'm not sure what you're trying to say. MacOS classic also didn't. Windows didn't either, really, until DLLs became a fad and ushered in the era of DLL hell.

> If you really like the filesystem layout of Windows, just use Windows. If > you really like `exe` files, just use Windows. I don't see the problem.

I don't particularly like the way Windows works these days because it is becoming more like UNIX, and installers certainly aren't a great idea but I still prefer them to package managers.

There's no problem, I'm Just expressing an opinion about package management, same as you. If the Linux community doesn't agree, and they've made it quite clear that they don't, then that's fine and I'll just continue not to use their OS like most people.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> I freakin' love Linux as a personal workstation OS. I got into it in 1995, back in the days when Linux was punk rawk and you had to dig around on tsx-11 and sunsite to find things to run on it. I still dual-booted Windows there for a few years. Then I noticed something: Windows would, suddenly and without warning, stop working. As in, blue screen on first boot. All the way up through Windows 2000 -- 9x, NT, didn't matter. Windows would find a way to fail and, often as not, take the whole disk partition with it.

So I decided, okay, Microsoft, if that's the way you're gonna be, fuck you. Yeah, yeah, I know. Windows "Just Works" out of the box. Except when it doesn't, in which case you're up shit creek. The extra tweaking I had to do to get Linux fully going was well worth it because once Linux was configured, it would stay that way -- forever if need be.

For that reason I still run the same distro today as I did back then -- Slackware. Where other distros try to win you over with newness and shininess, Slackware is shibui. Shibui is the Japanese aesthetic of crafting simple objects out of natural materials, in such a way that the natural texture of the material shows through and gives the object an understated beauty. Slackware is a simple distro put together in such a way that the "natural texture" of Unix shows through, making it easy to configure to your liking provided you're willing to learn the command line and some basic configuration files. It's very much like a BSD in that regard.

I know I'm not a typical user, but I fit the profile of an ordinary Linux user from another era. I'm glad to see more and more Windows users give Linux a try, but I just hope there'll still be room for people like me in the vast and changing Linux ecosystem.

<comment><USER21> AFAIK, Slackware doesn't even have a package manager, does it?

The only experience I had with Slackware was just that, I installed it, found out there is no package manager and installed Ubuntu.

I have a hard time understanding why someone would use Slackware when there is distros that is literally better at every aspect.

<comment><USER22> I used Slackware about a decade before the first release of Ubuntu.

So that's the answer. Because it was the only thing that existed back then.

</comment></comment></comment><comment><USER23> The only issue I face with Linux on my Dell XPS 13 is the sub-par touchpad experience.

If I use Ubuntu with XOrg, I don't have features like touch rejection while typing etc.

If I use Ubuntu with Wayland, my cursor is all over the place.

<comment><USER24> It's a bit of a pain that it doesn't work well out of the box, but the situation can be fixed with a little tuning of your xorg configuration file.

[https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Usin...](https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Using_the_driver.27s_automatic_palm_detection)

<comment><USER25> For reference, this is what I use on my notebook (Thinkpad E485): [https://github.com/majewsky/system- configuration/blob/30dbd7...](https://github.com/majewsky/system- configuration/blob/30dbd7c9e2ef0c66dd7eea398755706a3e05be8b/holodeck- traal.pkg.toml#L91-L106)

</comment></comment></comment><comment><USER26> On reflecting the writer's use-case, and my own use-cases for enjoying both Linux (Ubuntu, but Gnome3 no Unity) and Windows:

I've used Linux for 15 years. It truly was a pain getting things like ADSL modems (wired) connecting. But that was 15 years ago and not the point of this post.

I use Linux at home -

Gnome gives me no task-bar, or a highly customisable one if I want that. I'm focused in the application that I'm in. The UI supports the *NIX philosophy that one app does one app's job well, and if more need to be binded together, that's OK too. I feel peaceful in Linux. Terminal is running and that's an alt-tab away. Mouse to the top-left gives me other apps, though only ones I regularly find useful. Mint might not give the same.

Linux, or my Linux setup, allows me focus.

I use Windows at work -

Windows has a taskbar. Everything is in the Windows menu. The taskbar can be hidden but mouse-over activates it, and the Windows menu can be customised, but it still feels there as a distraction. Office is an outstanding piece of software today; Outlook: I used to receive 400+ email per day, and know people that get 2000+ everyday too - Outlook makes that almost manageable; Excel and Powerpoint are astoundingly good at their scope; Word, I transitioned to pmwiki (need for collaboration and flexibility); Sharepoint and AD integration... obviously this is a corporate environment.

Windows feels distracting. Adding a Linux sub-system doesn't change this UX (for me).

What works for me -

In a working environment I have Linux running on a VM and spend 60% of my time in this. At home I have a Windows VM running 20% when I want the best of Windows (which, for me, is Office). Not a gamer so no input there.

Choose the most comfortable tool for the job. YMMV.

<comment><USER17> Exactly. I've used all 3 major OSs and when we get into these discussions, you have to look at how each has its own pain points to be fair. Overall, Linux is a clear win for me. But YMMV, indeed.

<comment><USER19> It's a big problem though that when pain points are brought up the response is often to just point at one of the other OSs's pain points and dismiss the criticism. Unfortunately we can do very little to make Windows or MacOS better other than complain to the deaf ears of the companies that own them, but theoretically Linux Desktop could be better if complaints weren't simply dismissed in this fashion.

<comment><USER17> Yeah, I agree.

I've really taken the time to look at the pros and cons of each, but even a bundled list like that would likely not be useful to anyone else.

But at least I can fix the flaws I see on Linux (often).

<comment><USER19> Sure, maybe, if you have the time and expertise to fix those flaws. But if the community doesn't adopt your fixes then you're stuck maintaining them yourself forever.

Over the years I've seen several solutions to my personal gripes with Linux Desktop, and they are routinely ignored or rejected because the culture as a whole just doesn't seem to actually care about those problems, or doesn't even believe they are problems.

<comment><USER17> I haven't had the same experience. Which distros have you tried? Perhaps another would be a better fit technically or community-wise. I'd recommend Manjaro for a rolling release (no major reinstall every year), a focus on user-friendliness, a friendly community, as well as being based on Arch, which means the platinum-standard Arch Wiki is available as documentation for you.

<comment><USER19> I've tried many. The problems I have with the Linux Desktop are not solved by any of them, though Nitrux at least tries to deal with one, albeit poorly. This is because the problems I have are pretty much endemic to the thought process of people who use and develop for UNIX systems. Things like hardcoded paths, the weird file hierarchy (please don't try and "explain" it, I know how it works and the reasoning behind it, I just disagree with it), no separation between system and application, overly complex and convoluted abstractions, etc.

>a rolling release (no major reinstall every year)

In my experience, rolling release just break things more often.

</comment></comment></comment></comment></comment></comment></comment><comment><USER27> I'm using Ubuntu since almost 10 years. I rediscovered windows 10 and i have to admit it's pretty good : more responsive than Ubuntu, more pretty. On the down side, you have to download drivers even for very common devices like for the wifi card of Intel nucs. I miss also the simplicity of installing software and library (sudo apt get...) Vs downloading an installer, the installer download something, clicking ok ok ok ok ok ...

</comment><comment><USER28> Ubuntu works great for me and has done on every machine I have installed it on over the last decade or so. I find that the support for drivers is much better than with Windows except for when it comes to wi-fi. This means I have a drawer full of external wi-fi dongles and miscellaneous folders full of drivers that don't quite work.

Despite this I find Ubuntu to be a much more productive OS than the alternatives available.

What I do not understand is why people are so willing to give Ubuntu a hard time. On any discussion there are people from Windows or OSX that point out their negative experiences of Linux whilst being blind to the deficiencies of their own paid-for OS. It seems as if it is easy to write 'yeah I tried Linux for a couple of weeks five years ago and I thought the start menu was naff plus I couldn't get x to work' or to moan about the command line aspect.

It is much harder to write constructively so any discussion of Linux comes down to many subjective judgements.

<comment><USER18> When was the last time `apt dist-upgrade` did delete all your files? Oh... Never ;-)

It's hard to read all these opinions when my own experience with Windows is that I won't touch it with a pole. And God help me if the wireless fails (my wife's corporate issued Windows laptop could connect with the Starbucks across the road, but not with the stock D-Link at home) because there are at least 3 vendor specific control panels in addition to the Windows one, all showing conflicting information (and nothing on what actually failed).

Windows users are so shenanigan-tolerant when it comes to Windows it's a bit surprising they don't like rock-solid distros like Ubuntu or Fedora.

<comment><USER19> > When was the last time `apt dist-upgrade` did delete all your files? Oh... > Never ;-)

On the other hand, I have had it brick the package manager to the point that only reinstalling the OS from scratch would fix it, or break perfectly functional existing applications by replacing their libraries with incompatible versions.

I think if you look around you'll find that Linux Desktop users are also remarkably tolerant of shenanigans. Editing poorly documented text-based config files by hand, having to compile some applications from source to get an updated version because it isn't in the repo, having to containerize applications because of the interdependency mess, setting kernel boot parameters because of strange driver behavior, etc.

Modern OSs just kinda all suck and it's more or less subjective which ones suck more than the others.

<comment><USER18> I don't remember when was the last time I had to edit a config file on a workstation or compile a program from source or set a kernel boot parameter (other than because I wanted my console to default to green on black). I'm pretty sure the last time was before 2010, possibly before 2005.

We containerize apps for a multitude of reasons, one of which is for ease of integration. Security is also an interesting reason for that. And, once you get the API stable, it's conceivable to replace it with VMs or off-board processors.

<comment><USER19> > I don't remember when was the last time I had to edit a config file on a > workstation or compile a program from source or set a kernel boot parameter > (other than because I wanted my console to default to green on black). I'm > pretty sure the last time was before 2010, possibly before 2005.

Therefore it doesn't happen, right? I had to hand edit config files just the other day, because the distro I was working with exposed no other mechanism to work with cron. Change the distro and you just change which parts make you dive into the config files.

> Security is also an interesting reason for that.

True, but the prevalence of Docker and its lackluster security reputation suggests that it is not the primary reason. Where else are containers used? Oh, right, Snap and Flatpak, because it's considered a reasonable way to make a single application build work across distros.

</comment></comment></comment></comment></comment><comment><USER29> Anyone use Linux on the desktop with a document scanner? A big component of my at-home PC use is scanning documents (I'm a self-admitted digital hoarder). I have a Fujitsu ScanSnap S1500, which is "supported" by Linux/SANE. I have tried to use this scanner under Linux, and while it does work, the problem is that the Windows-only Fujitsu software (ScanSnap Manager) does a lot of useful things to the scan data: straightens the document if it was fed in at an angle; converts to PDF; adjusts contrast, white levels, etc so the digital result magically looks like the physical document; and more I'm probably forgetting.

I have Ubuntu on a little NUC PC attached to my TV. The other day, I heard the fan running loudly on this system. Ubuntu's update system, across several processes, was collectively pegging both CPUs at 100%, causing the fan to ramp up. Why does an update system (which was waiting on my input) require so much CPU?

The huge number of distributions is both a blessing and a curse. Ubuntu has clearly put a lot of effort into the ease-of-use aspect. But what I found (years ago, to be fair) was that if you had any non-trivial problem, the forums weren't terribly helpful. On the other hand, a distro like Arch has fantastic documentation, and really knowledgeable forum users, but you _need_ that because you're doing everything by hand. I haven't found the sweet spot that gives an Ubuntu-like experience out of the box, but has a very technical Arch-like community.

The statements the author made early in the article really resonate with me. I consider myself a Linux "pro", as I've been using it as an enthusiast for 20 years, and have been a professional admin for about a decade (server-side, not desktop). So I have fixed or feel I can fix just about any Linux issue. But at this point in my life, after work, I don't have the time or desire to fiddle with things, I want them to "just work".

<comment><USER30> "I haven't found the sweet spot that gives an Ubuntu-like experience out of the box, but has a very technical Arch-like community."

For me, that sweet spot is Manjaro. I have been using it daily on a laptop (T470) at work for nearly 2 years, with barely any problem at all. Moreover, it gives you many very polished DE options (official and community editions).

</comment></comment><comment><USER31> I'm writing this from my XPS 13 using the latest Ubuntu and once I've spent a few hours configuring everything, it works almost perfectly. There's still a few bugs, like Ubuntu not remembering the audio settings.

<comment><USER32> What? So XPS 13 which you can buy with Ubuntu preinstalled still has parts of the hardware not working after "a few hours configuring everything"?

I can't understand how that's acceptable to anyone.

Literally every laptop I've installed Linux on had a litany of driver problems.

<comment><USER33> Compared to installing Windows, which often lacks drivers for the network adapters, installing Linux is a breeze.

Good luck getting those Windows drivers without a working internet connection. And good luck explaining your solution to the average, non-technical user.

<comment><USER34> What? That doesn't make any sense at all. Someone goes through the trouble of developing a network adapter and doesn't provide a Windows driver??? What DO they provide drivers for then??

<comment> qu4z-2 The issue is (used to be) that they'd develop the Windows drivers, and publish them... on their website. Whereas the Linucies would bundle pretty much all the supported drivers on the install disk.

Precisely _because_ the vendors only write Windows drivers, if it's supported on Linux it's probably in the kernel tree.

</comment></comment></comment></comment></comment><comment><USER35> I recently switched to an XPS 15 9570 from my Macbook Air. I'm giving windows a shot for my secondary dev machine (python, docker, php, etc...), while being fully aware of the persistent Windows 10 issues. So far, the hardest part was adjusting my keyboard workflow from Mac to Windows.

For the time being, I'm extremely happy with the hardware and satisfied with Windows. I'll give dual boot a shot in my spare time.

<comment><USER36> Same here, except I bought a precision 5530, after 12 years on Mac (2 MBP, then a MBA). It's been a few months and I like it, I don't regret it. I don't mind Windows 10 at all, it feels a bit more customizable than MacOS actually. I do find the way it puts all the files that makes an app work all over the place. But a lot of people are experts in this. My Linux need is limited so I run the Ubuntu installed from the Microsoft App Store. Rest of my time is splitted between Firefox, Conda and Office. I am not doing any serious CAD, so I didn't really need the Quadro or the 4K screen, but I have none of the problems that some are complaining about the XPS and it just looks so great. Onyx case also!

<comment><USER35> Windows Subsystem for Linux is one of the big reasons why I didn't mind switching.

I tried out a few thinkpads as well, but ultimately went with the XPS

</comment></comment></comment><comment><USER11> To add my own anecdote to everyone else's:

I haven't touched Windows or used anything by Microsoft since 2010, save for trying some games that my friends played. These days, if there's a Windows- exclusive game I like, I try to run it in CrossOver/Wine or Parallels/VMWare, or forget about it. Windows machines are synonymous with games consoles for me now, and between my Nintendo Switch, 3DS, and Mac ports, I feel I'm well- catered for with regards to games.

I also don't use Google for anything except their search and YouTube, and I was already using the latter before Google gobbled it. iCloud serves my email needs just fine. I also try to block as much of Google's cross-site tracking services on my computers as I can, like Analytics.

If you're horrified or disgusted by the idea of someone sticking solely with Apple for so long, consider that you and I only prove the point that it _IS_ certainly possible to avoid one or more of the 3 major computing companies entirely. Once you're used to the alternatives to those, you may never even miss them.

</comment><comment><USER37> The only thing that is stopping me to jump to a linux laptop is battery life. MacOs is just optimised to a crazy extent. Nothing really comes close to the same battery performance if you don't want to get your hands dirty with tlp.

<comment><USER38> From what I heard, this is not true for the Dell XPS 13 and other new Notebooks that supposedly run well with Linux. I get almost 5 hours out of my decade-old Thinkpad T410 (original battery). My 2018 Macbook Pro 13" with touchbar only gets me through 2/3rds of the workday (older models or 15" work way longer). Apple put in smaller batteries and optimized their own (!) apps to compensate. You're pretty much forced to use Safari if your don't want even worse battery life.

<comment><USER39> I find its all WiFi. On an xps 13 with ubuntu, I get 10-12 hours on low brightness without wifi, but often 4-6 otherwise with wifi. Its really nice for roadtrips.

<comment><USER40> Turning off wifi is probably just turning off your ability to do a lot of heavy processing as you interact with the internet, right?

<comment><USER15> This is my thought. Turn off wifi and you're no longer running the cpu and memory monster that is a web browser.

But this is something Apple does right. My wife noticed that she can get around 50% more battery life out of her Macbook using Safari instead of Firefox. (7-8 hours instead of 4-5).

</comment></comment></comment></comment></comment><comment><USER41> I've installed Arch on XPS 13 9350 and was also surprised by the amount of things that worked out of the box: touchpad, HiDPI scaling, different scales for different monitors, no issues with the Thunderbolt dock. Actually Windows had more issues for me on this laptop.

Or course one can still screw something up but with a little effort it's easy to learn how to get out of trouble. Additionally Linux is like Lego - one can create their own setup, e.g. currently I'm using Yubikey's OpenPGP card to unlock full-disk encrypted disk. Bitlocker cannot use smartcards (but can use TPM).

</comment><comment><USER42> The Linux Mint experience of the author is strange. I was able to install with no problems on three very different machines (Dell Inspiron, HP Laptop (forgot the model, it's my daughter's) and an assembled game PC featuring 4 Monitors). The only qualm I have with it: For fear of data loss I decided against full disk encryption (the installation procedure asks for it) in expectation that one can switch after installation (I think Windows is able to do this). Unfortunately, that is not possible and imposing this later seems to include a lot of low-level work.

<comment><USER43> The article author was on a Linux podcast about a week ago and clarified that he couldn't reproduce the Mint issue, as it seemed to properly detect it when he retried later. But he had set strict guidelines for the article--basically, that he had to do this from a lifelong Windows user's perspective. So if the distro didn't work the first time, he moved on to the next one.

<comment><USER42> Yeah, I got that and I am absolutely fine with it. A bit strange though that this happened. Maybe he scrambled something during trying the live image...

As I migrated not only me, but also (non-technical) other users I would have wanted to stick to Mint even at the cost of jumping through hoops as the migration is said to be easier for Windows users (as compared to eg. Ubuntu). We never looked back.

<comment> wes-t Another anecode here, but I've had the exact same thing happen to me - <USER2> failed due to a similar issue during install, while Ubuntu installed without issue. I ended up using ubuntu for a while

</comment></comment></comment></comment><comment><USER44> >once I've spent a few hours configuring everything

This is what stops noobs from using it.

<comment><USER45> Whoever first brings to market a laptop with Linux that "just works" 100% from the moment you press the on button, is poised to make a lot of money.

That day will probably never arrive, but it's fun to think about.

<comment><USER46> The Dell XPS 13 Developer Edition ships with Ubuntu and should "just work" 100%

[https://www.dell.com/en-us/work/shop/dell-laptops-and- notebo...](https://www.dell.com/en-us/work/shop/dell-laptops-and- notebooks/xps-13-developer- edition/spd/xps-13-9370-laptop/cax13w10p2c606ubuntu)

<comment><USER47> *should

My experience is that it does not.

</comment></comment></comment></comment><comment><USER48> My laptop (~99% work only) setup is ZFS root + Gentoo on XPS15: [https://wiki.gentoo.org/wiki/Dell_XPS_15_9560](https://wiki.gentoo.org/wiki/Dell_XPS_15_9560) ... but switched from Mac (vs. Windows) after yet another stupid hardware error and Apple quoting more than the price of the thing to fix it. Haven't used Windows personally in over a decade. Manage to game a bit, but in general don't have time anymore. However, just specced a couple of Ryzen workstations at work, and they will run Windows. More expensive than I expected. I don't built machines that often anymore. Since when did you need 700W of power and a dedicated graphics card because CPU doesn't support built-in graphics chip? This is truly a new world. :)

<comment><USER49> Try hackintosh. And people tend to recommend way overspecced power supplies.

<comment><USER48> No time for hackintosh. It's not that people recommend, 450W wouldn't get an image. Had to chuck it out and upgrade. That's hardware today!

</comment></comment></comment><comment><USER50> For power users I would suggest Kubuntu LTS, try the live image, if your hardware works then install it and for a few years you should be good. KDE is more configurable then GNOME and it does not suffer by the GNOMEs architecture and memory issues(aggravated if you customize it with extensions)

</comment><comment><USER51> linux and "new" (i'd say new < 3-5 months) is always tricky in terms of support from the major distributions without having to fuzz too much. But i won't have ANYTHING else than linux on my laptop.

</comment><comment><USER52> I really have tried to use Ubuntu Destop as my daily driver after using the server varient for many years in work. It's not great for any "design" related task where I would normally jump into Adobe CC, no problem I'll just reboot to Windows for that.

Until one day it just stops working... won't boot, logs you out immediately after logging in, random UI components become corrupted etc.

At this point I always end up thinking... Well I've got reboot into Windows now anyway so why bother sifting through Stack Overflow for hours trying to fix Ubuntu.

<comment><USER47> As a Linux user and advocate, it's really frustrating to see these types of comments being down-voted. Linux still has a _ton_ of issues OOTB, and disregarding negative experiences like this won't make them go away.

I wish that instead of preaching Linux when it clearly isn't ready, we'd spend more time making it ready.

</comment></comment><comment><USER53> The problem here is steam has a long way to go in terms of a catalog for games, and the games that do run are often buggy ports with little support because developers see less users as less critical for patches.

That said, I can't move to linux purely because the software I need for audio is far superior on Mac or PC

</comment><comment><USER54> Although I have used Linux on and off for more than 16 years, its main OS status in my household is nearing its anniversary so I think I am in a position to share my experience.

The machines I've installed Manjaro are:

\- HP Stream 13 (Celeron 1.6 ghz, 2gb ram 25 gb hdd)

\- Clevo W230ST (i7 3.0 ghz, 16 gb ram, 240 gb SSD)

\- AMD Ryzen 1600x, Nvidia Geforce 1060, 8gb ram 100 gb SSD

First of all, I hadn't experienced a "Okay that's it I am moving to Linux because of X". It was more of a gradual process. My one limiting factor was gaming and after realizing I was able to play 103 over 137 games waiting in my backlog in Steam I decided to give it a try on my Hp Stream - which I call my Potato.

It needed some tweaking due to HP using rtl8723be and connecting one antennae for some reason. I needed to compile a kernel module to select the right antenna. But apart from that it was smooth sailing.

My turning point to using Linux, or rather KDE, was the muscle memory I gained and the ease of use. For example when you press alt-space kde provides an easily accessible searcher which I configured to run software only - but it also searches for anything you write in your file system as well. Secondly, yakuake is a wonderful tool which provides a terminal just by pressing F12 and thirdly, last but not the least, KDE Connect is a huge game changer for me. See, if you are on the same wifi network with your pc you can:

\- see the notifications from your phone and reply back

\- share the clipboard with your pc and phone

\- find your phone if you lost it in your home by ringing it from your pc

\- and it turns off your music player in your pc if you receive a call.

I felt like I was missing those features when I was using Windows in my other PCs so I converted them to Manjaro as well. They didn't need tweaking compared to HP; practically everything was working out of the box. The stuff I did was with Clevo I needed to install Bumblebee (which is VERY easy with Manjaro and for some weird reason I couldn't do it in Ubuntu derivatives and ended up with a black screen) to use switchable graphics on it and with the AMD case I installed Nvidia proprietary drivers for performance and gaming reasons.

Speaking of gaming steam's proton provides a good experience for most of the games I've tried. Lutris is also good, I tried some System Shock 2 and Fallout on my potato (because my gut feeling was if a machine with limited resources run it adequately I wouldn't have any problem with the others and I was right) and they ran quite good. I experienced some sluggishness with SS2 but well... that was expected to be honest. HP's 3d performance isn't something to write home about generally.

As for programming my biggest test was running Microsoft stack. I heard good stuff about .net core so I started with it and saw that even my potato was able to run ASP.Net MVC 5 successfully. For a more native experience I decided to install a server 2016 plus Visual studio in a virtual machine. I used my clevo to do that and was pleasantly surprised that it ran quite well with providing 4 cpus + 4gb of ram to run the container. As a personal note I doubt I'll use it much due to I have exited the IT industry practically and unable to enter it again, not that I want to any more. (people expect a bachelor's degree in Engineering or in Programming here and I am a Humanities graduate with a bachelor in philosophy and a master's in sociology)

Other languages which can be installed on linux natively like python, ruby, java didn't cause any problems so all was fine on that front.

A question might pop up about Manjaro. Why Manjaro? Well because I think it has a lesser resource overhead compared to Ubuntu derivatives. The fans on my clevo never stopped turning with Mint and Kubuntu but Manjaro KDE is a cooler (no pun intended) experience for it. In addition to that I like AUR and the concept of rolling release. Another distro which is famous for its up-to- dateness is OpenSUSE but it borked post install for some weird reason so I can't say I had a good experience with it.

So I hope I helped with my personal experience with "converting to Linux". Thanks for reading!

</comment><comment><USER55> Quite the opposite story of [https://medium.com/@neroux/linux-why-dont-you- love-me-30cd05...](https://medium.com/@neroux/linux-why-dont-you-love- me-30cd054f485b)

<comment><USER56> I remember when I installed Debian on my old Toshiba laptop in 2004 (all 16x CDs of it, which a friend had to download for me coz I had no broadband), I couldn't update it because the ethernet network adapter (no wifi) on my laptop was not supported... nice to see that this curse still occasionally persists! If I remember correctly I fixed it by installing a different distro (Ubuntu or Kubuntu, which surprisingly despite being based on Debian had no issues recognizing my network adapter)

<comment><USER25> > nice to see that this curse still occasionally persists /s

FTFY

Seriously, though, that's a huge outlier. I haven't touched a machine in the last 10 years where Ethernet and Wifi were not supported out-of-the-box. (Including my new Thinkpad, which I was weary about since it came with an Atheros Wifi module, but it too worked out-of-the-box without any tinkering).

These days, the biggest issues are with Nvidia GPUs from what I've heard.

<comment><USER57> The drivers for gpus are a bit annoying but only if you want to game on Ubuntu.

Nouveau drivers are horrible for performance and the nvidia ones are not always great, if you can find a compatible one.

That being said - I can't compare with AMD as my last system of Linux with an AMD gpu for gaming was back when it was an ATI gpu. :p

<comment><USER25> I have two systems with AMD GPUs: a desktop with a 2015 R9 Nano and a 2018 Thinkpad with a Ryzen APU. The amdgpu driver works perfectly on both of them. The Ryzen APU has one issue where you need to set `iommu=soft` in the kernel parameters to get it to boot, but that seems to be more related to the CPU than the GPU.

<comment><USER58> I don't have that parameter set, everything works fine. Ryzen 2400G.

<comment><USER25> Maybe it's got to do with the chipset? Not sure, I don't have any other Ryzens to compare against. But `iommu=soft` is strictly required on my system, otherwise the screen just stays black after the boot manager.

</comment></comment></comment></comment></comment></comment></comment><comment> red-tea I did this ten years ago and I've never looked back. When I see what Windows 10 is today I'm so glad I made the jump. Linux is easier to use than ever. It wasn't always this easy. I run Gentoo at home and everything just works and what's more is I understand why it works (well, mostly).</comment>


Phonefive - <AUTHOR> http://phonefiveme.com <comment><USER2> Do both users participating have to have the phonefive app installed? If so it is going to be near-impossible to get any network-effect and users.

</comment><comment><AUTHOR> Networking made social. A highfive is an interaction that has happened for decades. It's fun to do, but in reality it's not so useful - it could do more. So, at 361º and HQCorp we strived to change that. We made Phonefive. Phonefive enables two people to high five their phones together and instantaneously exchange their contacts and save the contact to the their address book right from the app. Phonefive not only enables the exchange of the ordinary contact, but social media profiles too. So when one Phonefives, they don't only get a contact but links to many of the contact's social media accounts. Join the social revolution. Start Phonefiving today.</comment>


Ford says it conducted successful tests of driverless cars in snowy conditions - <AUTHOR> http://www.bbc.com/news/technology-35280632 <comment><USER2> For anyone who's lived in areas that have regular snow storms you know that eventually mutli-lane highways turn into single lane tracks of clear road. Usually these tracks are somewhere in the middle of the road and everyone just sticks to them because a semi or snow plow cleared it for us.

The method described is a really great way for car's to get stuck in snow drifts by trying to stay in lanes. Near term drivers will PROBABLY just take over in those situations but long term we'll probably need a combination of Lidar and Cameras to do this type of work.

<comment><USER3> The "lane lines optional" nature of snowstorms definitely is going to require a leap of logic I don't soon expect self-driving cars to understand.

Will the car be able to measure the depth of snow on the road? And find the most driveable part of the road? The high reflectivity of snow probably isn't a good ally for this use case.

<comment><USER2> Not to mention the composition or what might be below the snow.

Snow and ice are by far the hardest conditions for anyone driving. I have no doubt a computer can figure it out and be better eventually, until then it will be interesting.

<comment><USER4> Electronic stability control is required by regulation in several jurisdictions (US, Canada, EU now or soon). From that it can be inferred that computers are better at some aspects of it already.

<comment><USER5> I don't know what you think ESP is but it's purely a "damage control" type of driver aid and is only a layer of programming on top of ABS.

ESP just modulates brakes to keep you from going sideways. It's basically automated cutting brakes paired with traction control and ABS.

All ESP does is utilize the car's existing technology to better do what the driver wants. It pretty much only comes into affect when the driver cranks the wheel hard enough to use up all available traction. It keeps the vehicle in an understeer condition and uses all available traction to try and steer in the desired direction (by acting like cutting brakes).

The point of this is so that the "AWD means I don't actually need to know what I'm doing people" are prevented from sideways (oversteer) because understeer is a lot easier for a novice to recover from and if he/she hits a pole he/she hits it head on utilizing the part of the car that's good at crashing "softly"

The traction control part of ESP is somewhat irrelevant. If the used is trying to give it throttle while the ESP code is doing it's thing and the ESP code is telling the traction control code to override the user then the user should just pull the fuse because you do better doughnuts that way...

<comment><USER4> I understand what it is. It works because it can accurately estimate the available traction. A lot of the problems drivers have in slippery conditions boil down to not correctly estimating available traction.

</comment></comment></comment></comment></comment></comment><comment><USER6> Let's be honest, humans are pretty bad at driving in snow too.

Sadly, I feel like people won't accept self driving cars until they can drive in the snow as well as in dry, clear conditions, which won't happen for a long time, if ever.

Honestly it's a bit silly that self driving cars have to do better than humans to be trusted -- as long as they are doing as well as us, mathematically, we should want them.

Maybe the insurance companies, which are mathematically inclined, will end up fixing this by providing lower rates for self driving cars, even in snowy climates.

<comment><USER7> The problem is with humans it's fairly clear most of the time who made the error. It's either human 1 or human 2 99% of the time. With self driving cars it becomes software 1 or software 2... And at that point it's extremely difficult where to point the blame.

<comment><USER8> Why would it be harder? Most likely there will be laws to disclose telemetry, video, etc. in the event of an accident. Most likely an audit trail of what the sensor inputs were and what the decision made was, etc.

More likely there will just be no-fault where both parties pay unless there is a spate of accidents that point to software/hardware issues.

</comment></comment></comment><comment><USER9> It's not that hard. You use LIDAR to generate a topographic map of the terrain ahead. We were doing that 10 years ago for the DARPA Grand Challenge. For off- road driving, this is essential. A high-mounted LIDAR lets you do this. It's not just about sensing obstacles. You profile the height of the terrain ahead, cell by cell.

There's a range limit on terrain profiling, though, imposed by parallax and the height of the scanner above the road. The higher, the better, of course. For a scanner 2m above the road, you can get good profiles out to 20m or so. This is enough to let you drive about 35- 40mph, which is enough for most heavy snow situations.

<comment><USER4> How much impact do rain and snow have on the LIDAR? That seems to come up all the time, and I've never seen a real definitive dismissal of the concern.

<comment><USER9> What you need for that is a LIDAR with "first and last". You want both the first return and the last return. Dust, rain, snow, and fog will produce noisy early returns, and solid terrain will produce the last return. You can also range-gate, ignoring returns out to a certain distance, and move the range gate in and out until you sense something solid.

LIDAR can be used to see through fog, snow, and dust to a limited extent.[1][2][3] Better than human vision or cameras.

[1] [http://viodi.com/2015/02/17/better-eyesight-than-humans- the-...](http://viodi.com/2015/02/17/better-eyesight-than-humans-the-advent- of-low-cost-lidar/) [2] [http://mil-embedded.com/articles/case-helicopter- pilots-clea...](http://mil-embedded.com/articles/case-helicopter-pilots-clear- line-sight-brownouts/) [3] [http://www.laseroptronix.se/gated/Rangegatedcameras.pdf](http://www.laseroptronix.se/gated/Rangegatedcameras.pdf)

</comment></comment></comment><comment><USER10> "Ford said it had instead programmed the Lidar sensors to detect landmarks above the ground, such as buildings and road signs."

So, in order to work, it needs a mapped area. They skipped the actual problems with driving in snowy conditions. I guess I'll have to wait a while longer for an actual solution. At least the didn't go the full GPS route since I've been on roads that are marked 10 yards away from their actual location.

<comment><USER3> From my understanding, this is required of nearly all 'self-driving cars'. A Slate article from 2014 stated that Google's cars wouldn't know a stoplight existed, and would simply run it, if it wasn't in Google Maps. And that a Google engineer said the level of mapping required by their cars at the time would be 'impractical' to do at a nationwide level.

These cars require a lot more detail than traditional Google Maps data provides. And there's a huge concern about how they'd adapt to changes in the roadway which may have not made it to Google's servers yet.

<comment><USER10> Its one thing, and expected, for the car to look for signs, but if self- driving cars all need perfect maps which I didn't know was a necessity then I don't see them being practical.

<comment><USER11> Consider also: crossing guards, police pulling you or someone else over, emergency vehicles trying to get through (possibly in traffic necessitating that multiple cars move around to make way), drunk driver swerving into your lane, construction lanes which route you onto the shoulder, stoplight failure (power outage or otherwise) with and without someone directing traffic, city parking garages where a valet parks your car in a tight grid, events where you park in a field / on the grass (somewhere that would otherwise be "out of bounds"), camping, some of the things schools do inside parking lots...

I just see far too many weird edge cases for car without a steering wheel to be feasible in the next few decades. Automated driver assist, sure. Taking over almost all the time, sure. But the dream of having it take you home drunk / take your kids to school without you / let you sleep on the way to work is pretty far off IMO.

<comment><USER3> I agree, and most people don't understand the extent of parking being a huge issue. Driveways for houses, all of it.

Though there are some edge cases companies like Google might be able to do in the shorter term. An Uber-like service only needs to show you the closest it is able to pick you up and drop you off, and can largely ignore the parking nightmare entirely.

</comment></comment></comment></comment></comment><comment><USER12> I have a Mercedes Benz with adaptive cruise control, and was driving on the highway this weekend in a snowstorm. At one point, it basically gave up. It gave me an error message to the effect of "you're on your own now."

It is a challenge for a human, I feel for the algorithm folks trying to test the obscured vision.

<comment><USER13> How did the car alert you that you were on your own (I don't own a Mercedes)? I'm curious as to how it indicates to you a rather important message about your immediate driving situation.

<comment><USER12> It makes the steering wheel shake or shudder, in a way that (to me at least) is meant to feel like hitting rumble strips at the side of the road. I think it probably dinged as well. It also turned off the cruise control, so I started losing speed. And there was an error message on the dashboard. So in all, I was well informed.

</comment></comment></comment><comment><USER14> I'm curious how this will perform in the real world since humans also cannot see the lane markings but, unlike the system described in the article, do not refer to stored or ad hoc environment mapping and instead operate on an entirely improvised "lanes by consensus".

<comment><USER15> Isn't "ad hoc environment mapping" the same thing as "lanes by consensus", more or less?

<comment><USER16> No. Ad hoc environment mapping seems to imply the driverless cars will map the lanes have stored in their memory to the snowy road. Human drivers more or less invent new lanes by consensus.

Have they tested a driverless car "push it out of a snow-bank" mode yet? :)

</comment></comment></comment><comment><USER17> "But these sensors do not work well in snowy conditions, and the car's onboard cameras cannot see road markings obscured by snow. Ford said it had instead programmed the Lidar sensors to detect landmarks above the ground, such as buildings and road signs."

Countryside usually there is a lot more snow on the street and especially next to the street. Detecting "landmarks" there will be hard.

Also if you combine LIDAR with stereo cameras, you will find out like Mercedes dod in the 1980s that cameras have problems with low stand sun (light rays), common in winter season (evening). So winter conditions will be harder to solve.

</comment><comment><USER18> Give me a driverless car that only works on perfect sunny days, and the rest of the time requires me to drive it manually. That's still 10 x better than the car I have right now.

</comment><comment><USER19> Given all car makers are investing in driverless cars- why don't they install sensors or guide-wires into roads to mark lanes, etc. the next time they are repaving/repairing roads? won't that be much safer than having to rely on cameras/radars .

<comment><USER20> This has been proposed before, and the short answer is that it is too expensive to install these things into all of the roads.

Roads are typically resurfaced only once every 15-25 years, and in many municipalities, shrinking budgets mean that some roads are just outright being closed rather than being maintained.

<comment><USER17> More like 1-10 years. And the snow plover destroy the surface of the roads, so you can't mount some device on the road surface or just beneath the surface. Even the sticks net to the road get destroyed from time to time by trucks or snow plovers.

</comment></comment></comment><comment><USER21> Anyone happen to know why the LIDAR can't be augmented by radar or some other frequency of light in which snow is transparent (e.g. [http://www.gizmag.com/compact-radar- fraunhofer/26844/](http://www.gizmag.com/compact-radar-fraunhofer/26844/))?

I suspect there is an issue with update frequency or spatial resolution, but it seems like it could be a good fit for the sort of best-effort approach described in OP.

</comment><comment><USER22> Does Google test their self-driving cars outside of California/areas where there is snow?

<comment><USER23> Third sentence of OP: "Google has also been testing its autonomous vehicles in the snow."

</comment></comment><comment><USER24> Can it dig itself out?

Can it hook up its own jumper cables?

Can it scrape the ice off all those sensors?

Can it scrape the ice off the license plate, windows, lights and everything else needed to not get a ticket from an irate cop?

Can it stop to give a lift to a stranded person on christmas eve?

It can certainly navigate and move in snowy conditions, but I can't see it actually driving in them.

<comment><USER25> Wow I find this really glass half full.

Firstly I can see any of these being fairly easily solvable. We're still in the early days in this tech. It will likely take decades to really nail it.

Secondly, even if half are solved, that's half of things I would have had to do anyway (well scraping ice of windshield instead of sensors).

Thirdly I do recognise there are issues e.g. "Ford said it had instead programmed the Lidar sensors to detect landmarks above the ground, such as buildings and road signs." This would still be problematic in heavy snow and away from distinct fixed landmarks.

But can we just appreciate the advancements that we are seeing year on year!

<comment><USER24> I think you have an autopilot-type system. This is driverless. That means nobody around. Nobody to do any of those things. So it is an all-or-nothing game.</comment></comment></comment>


The State of Apple's Developer Documentation - <AUTHOR> https://mjtsai.com/blog/2019/05/20/the-state-of-apples-developer-documentation/ <comment><USER2> Oh man, this has been suuuuch a pet peeve of mine.

There is so much buried, incomplete or otherwise missing documentation on Apple's side, and every time anyone complains about Electron and wonders why nobody wants to build native apps anymore... this is a huge factor why. Meanwhile, any Cocoa devs on Twitter scoff at this stuff being difficult to find and learn.

It goes deeper than this, too - there's a litany of Apple dev forum threads that Google has half-spidered and are behind a login screen. Or the fact that some of the release notes for point releases of macOS will have crucial details that you'd otherwise miss - just a few months ago I learned that watching the mouse in a specific way can completely disable smooth scrolling.

I dislike Marzipan, personally, but I wouldn't be surprised if a huge motivating factor for the project is the fact that parts of AppKit require wizardry on a dwindling level. I've had developers from Apple lament this to me in person, too, and nobody ever seems to have a clear reason why it's such a clusterf...

<comment><USER3> People whining about Electron is a pet peeve of mine for this reason. Electron exists because of the sorry mess of half-supported fragmented junk that desktop UI development has become. If you hate Electron don't blame Electron. Blame OS vendors.

<comment><USER4> Electron hater here, desktop UI has always been super fragmented. Electron does cross-platform, and it lets people deploy their cheaper-to-hire web developers on desktop tasks, plus its free, hence its popularity. As much as I love other toolkits I'm not sure anything else checks those boxes

QT comes close, but it ain't free. WinForms also comes close, but its old and whiny kids think its ugly. GTK comes close, but you can't use your web people to program it...

<comment><USER5> I'm the greybeard that likes WinForms, but it has a couple of massive blind spots due to its age - the big one is that it's not "responsive", and copes badly with high-DPI displays. This is still visible all over Windows 10, as they only managed to convert some of the system config UI to Metro.

Responsiveness is _extremely hard_ , and modern web and Electron have mostly got it working pretty well. This does come at a cost of complexity and CPU. To me there's probably more mileage in trying to resource-constrain Electron than build yet another new system and wait for its adoption.

<comment><USER6> Highly agree with the last point. Electron bloat and slowness are real, but that's not the whole story of why so many Electron apps are awful platform citizens. If one were so motivated, they could make an Electron app that passed the smell test, and didn't try to run megabytes of node_modules-black- hole JS per tick. It still wouldn't be as nice as a true native app, but it'd be a lot better than the usual offenders.

<comment><USER3> Yup... a shitty app written in X is a shitty app where X is any language, platform, or framework. You can write non-shitty apps in Electron/JS but you have to actually pay attention to resource use, reducing dependencies, styling to match the host platform, etc.

</comment></comment></comment></comment></comment></comment><comment><USER7> Some personal favorites, culled by searching my source code for swear words:

NSTitleBarAccessoryViewController lacked documentation from the time it was introduced in macOS 10.10 until recently (perhaps Mojave? That's when I first found it). There was literally nothing except the header file and the announcment in the release notes for the OS. It was also full of bugs that rendered it unusable for my application.

Overriding -scrollWheel: has all kinds of nonsense side-effects. These are only documented in release notes. Scroll wheels in general are way more complex than you'd imagine. If it weren't for Chrome's open source Mac code, it would be a complete mystery. See the investigation here (search for "of mice and men") for what Apple should have documented: [https://chromium.googlesource.com/chromium/blink/+/d40e271ac...](https://chromium.googlesource.com/chromium/blink/+/d40e271ac1613cea1a24eac3cca6efe173cd0696/Source/WebKit/chromium/src/mac/WebInputEventFactory.mm)

Passing a constant buffer to a fragment shader will cause it to be truncated at 64k on some graphics drivers. Not a bug, just an undocumented limitation. Doesn't happen on my computer. That was fun to figure out.

NSMapTable with weak keys and strong value leaks the values, according to an archived document. The main docs say nothing on the topic.

If you'd like to know why an exception was thrown, you have to print the value of the proper CPU register. On x86-64 it's $rax. As far as I know this is an oral tradition, passed down from senior developer to junior developer.

If you want a daemon to survive the user logging out and logging in, you have to use a barely-documented function (bootstrap_parent) which is only mentioned in a now-archived tech note.

<comment><USER8> > If you'd like to know why an exception was thrown, you have to print the > value of the proper CPU register. On x86-64 it's $rax. As far as I know this > is an oral tradition, passed down from senior developer to junior developer.

This varies based on the calling convention and signature of the the method that the exception handler puts a breakpoint on. With objc_exception_throw on x86_64 the value should be in $rdi ($arg1) in LLDB.

> If you want a daemon to survive the user logging out and logging in, you > have to use a barely-documented function (bootstrap_parent) which is only > mentioned in a now-archived tech note.

It's also mentioned in _Mac OS X Internals: A Systems Approach_ , FWIW.

<comment><USER9> It's always a good sign when the document that explains a piece of functionality no longer bears the same name as the operating system it purports to document.

<comment><USER10> This comment nicely sums up one of the things that's wrong with the Apple ecosystem --- apparently, whatever backwards-compatibility Apple does manage to have gets dismissed by developers because "it's old".

...and then they wonder why they can't find the old docs that actually have what they need. Apple thinks the developers don't care, and vice-versa. It's a cycle of negative feedback.

On most other platforms, the assumption is that things will not change between versions, and changes are explicitly mentioned and documented when they do occur, but Apple and its developers seem to have the exact opposite mentality.

<comment><USER9> I hope you didn't imply that I'm what's wrong with the Apple developer ecosystem. Old is fine, _as long as it is still accurate_. I have spent more time than you could imagine digging through ancient cocoadev mailing list posts and WebKit Trac bugs in order to debug problems with my apps. There is nothing more frustrating than having the only available reference be out of date, and having to synthesize the gaps.

</comment></comment></comment></comment></comment><comment><USER11> A Cocoa oldtimer on #macdev argued with me when I pointed out that it's hard to find good resources for Cocoa dev. It's so bad that I sometimes try to repurpose iOS dev resources (like Youtube videos) for Cocoa dev.

They said that was nonsense, that I have to be expected to do some reading instead of being spoonfed (which isn't what I was asking for, it was pure condescension), and linked me to this: [https://developer.apple.com/documentation/](https://developer.apple.com/documentation/)

> and every time anyone complains about Electron and wonders why nobody wants > to build native apps anymore... this is a huge factor why

Exactly.

<comment><USER12> The most frustrating thing is when the docs have that "this document is no longer maintained. Please see /documentation/whatever for the latest version" but when you go the link it ends up just linked back to the place you came from. I guess that means the unmaintained stuff is still current? I don't know though because it's still all Objective-C, so I have no idea what the current best practice is supposed to look like. For a trillion dollar company it's kind of annoying that they can't hire somebody to do the docs. For MacOS dev there are basically no third party resources either. The last book is from Swift 3. It's better than nothing, but not much.

<comment><USER13> The "this document is no longer maintained" notice is on everything that's no longer being updated regardless of whether or not there's actually a replacement. Sometimes it's actually still up to date, sometimes it's out of date and there's something else you should be looking at, and sometimes it's just plain out of date and the only newer source of information is a WWDC session from two years ago.

<comment><USER14> What made Apple think it was okay to abandon their documentation, just decide not to update it without a replacement?

<comment><USER8> Insufficient pushback from developers?

<comment><USER15> due to the fact that they simply have no choice but to use apple dev tools. Or at least that was true on iOS until recently.

That, plus the fact that Apple having a monopoly on the store relieve them from any kind of pressure, because no matter how the dev feels about it, they're going to give 30% commission to apple.

</comment></comment></comment></comment></comment></comment><comment><USER10> I suspect Apple's culture of not really caring about backwards compatibility and otherwise technological churn is mostly responsible for this; e.g. if I wanted to write Windows GUI app that'll run on everything from Win95 to Win10 and probably for the forseeable future, I'd choose Win32 because it's stable and well-documented. On Linux, a combination of POSIX and Xlib would probably have similar stability. But I'm not sure what the equivalent would be for the Mac...

That said, I've noticed MS's documentation quality also take a nosedive in recent years, notably around the time it moved away from MSDN (and introduced a huge amount of formatting errors.) A lot of useful "KB" articles and downloads also mysteriously disappeared. Fortunately I still use "WIN32.HLP" which basically covers the core part of Win32.

<comment><USER16> I love how they go to great lengths to describe and recommend that for Win8 and above you should use Pointer API instead of the "legacy" mouse and touch events, because it'll also handle Pen too. Yet when you actually go to click on WM_POINTER*, they are, just like Apple, in an archived section. Tapping on the "see latest doc" just takes you to the home screen. Yet, WM_LBUTTONDOWN takes you to the latest updated version. Talk about a confusing mess.

<comment><USER17> docs.microsoft.com PM here. Thanks for the feedback - I am routing this to the content team so that we can see what we can do to improve this situation.

<comment><USER18> This comment alone, and the lack of any comment by any Apple rep so far down the comments, makes me think that I did the right thing ditching macOS as my main web development workstation in favor of Windows.

<comment><USER8> What makes you think that you should expect that someone working at Apple, who can fix your issue, will materialize in the comment section of Hacker News and solve your problems (and then reply to you saying that they will do so)? It's nice when relevant people step in and help, but there's a proper channel for this feedback (even if you don't think it's going to be heard).

<comment><USER2> This isn't a great answer, because there _is_ some literature to point to concerning how feedback (bugs and otherwise, regarding engineering) is handled at Apple: [https://www.corbinstreehouse.com/blog/2019/03/the-sad- state-...](https://www.corbinstreehouse.com/blog/2019/03/the-sad-state-of- logging-bugs-for-apple/?cat_id=86&order=DESC)

The game that Apple's dev evangelism needs to play is the same one that MSFT/Google/etc play. Apple gets a free pass because they've had a largely devoted (almost cult-ish) fanbase of software developers (of which I count myself). They're starting to piss them off, though, and that has cascading effects.

Lobbing things over the wall doesn't work anymore.

<comment><USER8> If you read the article (I'm generally aware of the issues mentioned, FWIW), there isn't really much it tells you to do other than file bugs.

<comment><USER2> I did read the article, considering I linked it in the first place. The snark isn't necessary.

The ending of that article is a very resigned "this is all you can do. This is why it's this way, though.". The article is absolutely a criticism of how the bug process works.

The entire point of all of this is that Apple needs to play the game better. You have a weird habit of popping up in every single thread to defend them, and I've noted your past associations with them in other threads, so I'll probably not bother responding to this further.

<comment><USER8> > I did read the article, considering I linked it in the first place. The > snark isn't necessary.

I meant this more as "if you go back and read the article, looking for the part I mentioned, since you may have missed this", which I included because you said my answer wasn't really great "because of so and so" even though it basically just restated what I had said. I _know_ about the problems you're mentioning are: you know how I would.

> The ending of that article is a very resigned "this is all you can do. This > is why it's this way, though.". The article is absolutely a criticism of how > the bug process works.

> The entire point of all of this is that Apple needs to play the game better. > You have a weird habit of popping up in every single thread to defend them, > and I've noted your past associations with them in other thread

Again, I'll freely admit I generally lean towards Apple because of the amount of time I've spent associated with the platform/tools/company, but I'm not disagreeing here: I'm with you 100%. As Corbin notes, however, filing bugs is more likely to get your issues noticed (and possibly responded to) than posting it four comments deep on a thread that admittedly has a higher-than- normal chance of getting clicked on by an Apple engineer. I guess if you know an engineer you might be able to see if they can institute change, but even then I'm not sure that would help much. Getting articles like these on the front page of Hacker News regularly might, though…

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> Ah, yes. Apple seems to almost spitefully change document URLs on a regular basis too. (Which would be a little less terrible if you could simply re- Google the replacement link but you can't.)

My favorite experience was looking for virtual key codes. A few years ago, there was a point where the _only place_ you could find the values of (arbitrary) virtual key codes for input events was in a _printed_ copy of _Inside Macintosh_ for _System 7_. Was this some ancient Mac? No, it was needed on OS X, by their "preferred" Cocoa/NSEvent no less, and their _modern hardware_ was sending the same codes. They eventually "fixed" this by putting the information inside Carbon.framework header files (which will most likely just disappear in the next OS update).

<comment><USER20> Good news, you can find Inside Macintosh online (via Google) and in [https://developer.apple.com/library/archive/documentation/ma...](https://developer.apple.com/library/archive/documentation/mac/pdf/MacintoshToolboxEssentials.pdf) (Macintosh Toolbox Essentials) it lists the key codes graphically on page 2-42 and 2-43. There's also [https://developer.apple.com/library/archive/documentation/ma...](https://developer.apple.com/library/archive/documentation/mac/pdf/MoreMacintoshToolbox.pdf) (More Macintosh Toolbox) and [https://developer.apple.com/library/archive/documentation/ma...](https://developer.apple.com/library/archive/documentation/mac/pdf/ImagingWithQuickDraw.pdf) (Imaging with QuickDraw). Not that I'm suggesting this solves the problem -- I still had to use Google to find these, and outside of WWDC, I've yet to see Apple publish developer documentation as nice as this from the early 90s, or the WebObjects guides from the early 2000s (that you can also still find online). Maybe the Swift manual from [https://docs.swift.org/swift- book/](https://docs.swift.org/swift-book/) (and in Apple Books store) or the CarPlay guide? [https://developer.apple.com/carplay/documentation/CarPlay- Na...](https://developer.apple.com/carplay/documentation/CarPlay-Navigation- App-Programming-Guide.pdf) I do kind of miss when guides were more complete, such as the Automator Programming Guide [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.693...](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.693.6773&rep=rep1&type=pdf) (It appears it was removed in 2016 from developer.apple.com)

<comment><USER19> It is kind of funny that one can Google the obsolete _printed_ text more easily than the online ones.

</comment></comment></comment><comment><USER21> The state of the docs is what got me to dump all of the links I'd been collecting to useful, but hard to find docs in to a small website -- [https://www.iosdev.recipes/](https://www.iosdev.recipes/)

Some things are incredibly useful and well organized, but completely blocked from indexing, like the documentation for xcconfig files: [https://help.apple.com/xcode/mac/current/#/dev745c5c974](https://help.apple.com/xcode/mac/current/#/dev745c5c974)

Apple has been doing a great job in some aspects at documenting more and updating things gradually, but at the same time, has been hiding more and more of the "old" docs and it's a shame since many of them are still correct, relevant and useful.

<comment><USER8> I can find some (albeit very poor) results: [https://duckduckgo.com/?q=xcconfig+site%3Ahelp.apple.com](https://duckduckgo.com/?q=xcconfig+site%3Ahelp.apple.com)

<comment><USER2> This query displays nothing, for me - just the link to /xcode/ on their site.

<comment><USER8> There's only one actual website backing the help documents, so that's what it'll link to. It does, however, manage to pull out the text and serve it to you, which I guess is sort of a win?

</comment></comment></comment></comment><comment><USER22> Indeed. I had some older Objective-C code that used NSCoding and NSArchiver that I needed to update to the modern NSSecureCoding and NSKeyedArchiver. Serializing and saving objects used to be well documented:

[https://developer.apple.com/library/archive/documentation/Co...](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Archiving/Archiving.html)

These sorts of guides seem to no longer exist. I was left to figure out NSSecureCoding and NSKeyedArchiver with no code examples nor guidance from Apple. Just the methods barely documented with most of them deprecated:

[https://developer.apple.com/documentation/foundation/nskeyed...](https://developer.apple.com/documentation/foundation/nskeyedarchiver?language=objc)

Apple docs used to be great. They've become pretty awful. Has Apple even published a tech note in years?

<comment><USER23> Apple docs were never great. They were just better than average in an era when documentation overall wasn't that good. They have always had the broken links, public APIs that are undocumented, crucial information that only exists as a comment in a header file, methods with one line of description that just restates the method name with spaces, and bad sample code.

What has happened is that documentation elsewhere has improved. Mozilla has invested heavily in documentation and now the web platform has great docs. Apple has done the bare minimum for years and it shows.

<comment><USER24> IDK what time period you're talking about, but I thought around 10 years ago it was pretty good. You could download and install all the documentation locally, they had pretty thorough class documentation and also higher-level conceptual documents around various topics (seems like those are all deprecated now).

Was able to basically just code against the standard library and the documentation actually seemed to be one of the perks of native development, since it was all in a standard place/format with pretty good baseline quality. I'm working with a greater variety of library dependencies now and of course the documentation isn't as consistent.

It's kind of mind-boggling how Apple seems to have gotten bad at this now.

<comment><USER25> > also higher-level conceptual documents around various topics

Yes! The _FOO Programming Guide_ s and _BAR Reference_ s were the gold, and consequently the things that are hardest to see disappear. They explained the _whys_ of the frameworks. And how the pieces fit together. Per-class docs are not any substitute.

</comment></comment></comment></comment><comment><USER26> Same with older developer videos. There is some fantastic material that is not outdated (GCD stuff from 2011 for example) but that remains unavailable from Apple as far as I can tell... you have to know someone who has a copy. I would like to be wrong about this; someone please let me know if I am.

<comment><USER20> I was about to say, "you're wrong, I was there just last year and it amazingly showed links to all the past WWDC videos" only to go there now and realize you're right, totally right -- they've REMOVED listing any videos older than WWDC 2015 according to search filters. You can still find the old videos thanks to Google: [https://developer.apple.com/videos/play/wwdc2011/210/](https://developer.apple.com/videos/play/wwdc2011/210/) but who knows how long this will last?! Very, very disappointing.

Ah, they don't link to it directly now, but [https://developer.apple.com/videos/archive/](https://developer.apple.com/videos/archive/) is still available from last year for videos from 2010-2011. (Found the link via Archive.org)

And:

[https://developer.apple.com/videos/wwdc2012](https://developer.apple.com/videos/wwdc2012) [https://developer.apple.com/videos/wwdc2013](https://developer.apple.com/videos/wwdc2013) [https://developer.apple.com/videos/wwdc2014](https://developer.apple.com/videos/wwdc2014) [https://developer.apple.com/videos/wwdc2015](https://developer.apple.com/videos/wwdc2015) [https://developer.apple.com/videos/wwdc2016](https://developer.apple.com/videos/wwdc2016) [https://developer.apple.com/videos/wwdc2017](https://developer.apple.com/videos/wwdc2017) [https://developer.apple.com/videos/wwdc2018](https://developer.apple.com/videos/wwdc2018)

I really wish these were easier to find, still.

<comment><USER26> Awesome, thanks! I noticed some of the older videos are listed with download/viewing links that don't actually work at least in current Safari. For example, the "Working with Core Data from iOS" one is a no go. But still very useful for the rest of the videos.

Edit: Got that one video to work by right clicking to download, and then QuickTime played it after an automatic conversion step QuickTime did. Of course it's very outdated, but still some useful info even in the very old videos.

</comment></comment></comment><comment><USER27> I've always found online docs to be a little bit lacking. Used to be, if you bought a compiler like Visual C++, it came with a book (printed on paper) that was readable and useful and helpful. Then they started migrating that content on to the web. Then they started auto-generating the web content. Then they started auto-generating some of the web content. Now if you want to learn how to use a product, you have to shell out $60 of your own money for a book that describes it.

<comment><USER28> I started programming in the 90s and then I often would read the documentation like a book. Usually it was well written and really easy to read.

<comment><USER29> I would plop down and read the fat volumes of the NeXTSTEP General Reference.

</comment></comment></comment><comment><USER30> The dev docs are atrocious - especially when they were pushing swift before swift was even remotely stable. The end result is huge amounts of example code that has no obj-c code, but the swift code doesn't compile anywhere. :-/

So frustrating, even with my background.

<comment><USER31> I file reports in Bug Reporter about outdated Swift docs, and they always fix it and respond back.

<comment><USER30> I know, but I feel given the lack of stability it always annoyed me that there wasn't an automatic radar on every swift example that would break :-/

</comment></comment></comment><comment><USER32> Apple's documentation has always been patchy throughout the life of OS X IMHO.

It's even more tragic when compared to MS who really has been the gold standard — I personally really dislike the programming model but at least it's clear what's available.

<comment><AUTHOR> _> Apple's documentation has always been patchy throughout the life of OS X IMHO._

Not to this present extent. The complaints from other commenters here about AppKit developers telling them to RTFM are likely because the documentation that those established Mac devs learned from was much more useful at the time that they read it, and they may be unaware just how badly it's deteriorated since.

<comment><USER29> I spent the 90s working on NeXTSTEP software, and I think the current doc situation at Apple is crap and is an ill omen of where Apple is going.

</comment></comment></comment><comment><USER33> Writing good documentation is super hard.

I try to do it for my parser ([https://github.com/norswap/autumn4/](https://github.com/norswap/autumn4/)) which is < 10k lines of code — both complete and useful Javadoc and a user guide. It's a lot of work, which would easily rival the programming if I hadn't had to tackle open/hard problems. Can't imagine how it must be for bigger projects.

Another issue is that documentation is not a task easily left for "sub- alterns". It requires a good deal of understanding, finesse, and pedagogy. And it actually plays nice in a feedback cycle with the programming. The documentation is where you realize your tools is nowhere near as simple and friendly as you could (easily) make it.

So the bottom line is that this requires massive investment which isn't always done this day. And personal accountability of individual developer/small team on writing docs and being into the feedback loop.

<comment><USER25> The programmers themselves don't need to do it. Apple has, or should have, dedicated technical writers to work on documentation. These are people who are knowledgeable about programming but do not write production code as their specialty.

<comment><USER33> Well, one of my point is precisely that involving programmers in the documentation process (maybe not force them to write the documentation — but review it and run a feedback loop) is crucial in having _good_ documentation, and actually better code as well.

Of course, having any documentation is better than none...

</comment></comment></comment><comment><USER34> Wait, is there developer documentation that isn't terrible, incomplete, and incorrect? Is that a thing that exists somewhere?

I've certainly never seen any of this mythical good documentation on the Microsoft side where I live, and even that is copious in comparison to the third-party stuff I've used, where major libraries have a Github readme and no more.

<comment><USER35> BSD man pages. When you didn't have the Internet you depended on good docs.

<comment><USER8> Apple's BSD man pages are pretty out of date, ironically…

</comment></comment></comment><comment><USER16> Hmmm, this is interesting, because when I was in college (early 2000s), most of Apple's docs were littered with "description forthcoming" EVERYWHERE. The only way you could possibly understand the proper behavior was to use a framework (PowerPlant), or spend thousands to go to WWDC and ask engineers. But Apple wanted everyone to adopt Cocoa and invested heavily in making it as appealing as possible. What probably happened, they hired some bright well managed senior copywriters who ran a tight ship under the Steve Jobs era and cleaned up the mess. Best practices were defined and as best as Apple could, they explained how to take advantage of OS X and iOS. I mean, important nuggets would still sometimes fall through the cracks, but for the 80% case, you had really good documentation.

At that time, Apple was known for its Human Interface Guideline textbook with full color check-lists of Dos and Don'ts that really influenced the spread of skewmorphism around to other platforms.

What probably happened is they left, and if the writers had not completely burned out, Google and Facebook do pay way better and offer much better work/life balance. So Apple is probably left with mostly new grads who don't have families and so when an exec asks them to move the documentation to iCloud, it's probably just been one mismanaged cluster fuck after another. I suspect they'll eventually finish the migration and it'll be back to world class again.

<comment><USER14> If Apple prioritized it by putting resources into it, they could have good documentation. Same route and same barrier for anyone. But it's not like Apple can't afford it.

</comment></comment><comment><USER36> My two biggest problems are all the example code that doesn't even compile and the lack of ability to have a pdf so I can print it or use an e-ink device. My eyes are not up to reading off a screen and I am sick of getting headaches because of Apple.

<comment><USER37> Do you have a Mac ?

Because you can create a PDF from anything e.g. web pages by going to Print, selecting PDF dropdown and "Save as PDF".

<comment><USER38> Wouldn't it be cool if, Apple being the size it is, just made downloadable PDF manuals of their products?

IBM still does this in their Information Center. My experience was developing for mainframe and midranges, and even if there are hundreds of PDFs, it's really straightforward to find the right manual for the exact product version you need. You can work for weeks without Googling technicalities.

I can't praise enough how clear and well structured their manuals are. For RPG, for example, you have a complete Language Reference[1] to learn the language, and a Programmer's Guide[2] to learn how to use it. They have manuals for everything, there's 5 of them solely for TCP/IP on the IBM i!

[1] [https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rza...](https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzasd/sc092508.pdf)

[2] [https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rza...](https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzasc/sc092507.pdf)

<comment><USER37> Actually they do:

[https://support.apple.com/en_AU/manuals/](https://support.apple.com/en_AU/manuals/)

Not all in PDF but most.

<comment><USER38> These are consumer product manuals and warranties they are legally required to provide, it's not even remotely the same.

</comment></comment></comment></comment></comment><comment><USER39> Yes, it is really bad.

The "new" docs are just generated API docs with very little to no content.

I seldom do macOS/iOS nowadays, but like many I am forced to dive into the deprecated docs every time I want to read anything meaningful.

<comment><USER40> The little to no content is exactly right! I'll find an API, and click on a method, and all it sends me too is the method definition. No description about the what to send it and what it does.

</comment></comment><comment><USER41> This is so true and so maddening. I'm trying to learn this stuff, and there are so many things that just aren't documented, or documented in random obscure/dumb places. Does Apple really not care at all?

</comment><comment><USER42> It's been awhile since I've worked outside the Apple ecosystem, but when I first started with Mac programming I thought their documentation was absolutely amazing.

I wasn't combing through the bottoms of experts-exchange posts to find obscure references to long forgotten Microsoft C++ APIs, I could just read the docs for the class and do what I wanted.

In the decade or so I've been writing mostly Mac/iOS software, this experience is largely unchanged and still better than other platforms I've tried to write for.

I think everyone looks at their own favorite platform through rose colored glasses and it's pretty easy to dismiss the warts when you've dealt with them for so long.

</comment><comment><USER43> Yes it's terrible, it's like they've just given up. I started just at the beginning of the OS X era and the documentation was already much less good than the classic "Inside Mac" stuff, but they did at least attempt to keep it up to date for a while. But over the last ten years it seems to have got a lot worse.

I don't do so much low level Windows stuff but my perception is that the quality has dropped off significantly there, too; I remember local installs of MSDN being really complete and easy to use, but last time I looked online they seemed to have moved away from that and it was just a mess of broken links and missing info.

</comment><comment><USER44> Now try to get certificates / "provisioning profiles" / "app capabilities" running, but with any configuration _slightly_ out of the ordinary. You'll want to rather shoot yourself.

</comment><comment><USER45> Is this Craig Federighi's fault? Ever since Tim Cook combined the Software team under one umbrella things hasn't gotten any better.

And there is worst. Corrupted iCloud Photos and Video Syncing.

[https://mjtsai.com/blog/2019/05/20/beware-icloud-video- synci...](https://mjtsai.com/blog/2019/05/20/beware-icloud-video-syncing/)

<comment><USER46> > And there is worst. Corrupted iCloud Photos and Video Syncing.

Countering that with my own anecdata - I've had iCloud Photos turned on since it was released in the dev builds with ~85k photos and videos using 305GB and haven't had a single instance of this happen.

(It sucks that it happened to him, of course.)

<comment><USER47> How did you determine that none of the 85k photos were corrupt? I have a much smaller library and I didn't think anything was corrupt until one day I was looking for a photo and it was all black. I knew the photo was not supposed to be all black.

<comment><USER46> A fair question! I suppose I should say "in my experience of taking my photos and browsing them over the last N years, I haven't encountered a single one that's corrupt."

</comment></comment></comment></comment><comment><USER48> A couple weeks back I was going through Safari's release notes. They put them all on one page [1] and none of the sections have IDs so I can't link to them directly. WTF.

[1] [https://developer.apple.com/safari/technology- preview/releas...](https://developer.apple.com/safari/technology- preview/release-notes/)

<comment><USER49> These are actually Safari Technology Preview's release notes. They're also published on the WebKit blog [0] which is a much better source since it has separate posts for each release and it includes links to the associate commits of each change. Their other posts are also generally superb and well worth checking out!

With that being said, I think your criticisms are completely reasonable and valid. Instead of duplicating this info they should just provide links to the WebKit blog.

[0] [https://webkit.org/blog/](https://webkit.org/blog/)

<comment><USER48> Thanks for pointing out. The break-out blog posts on WebKit do seem to be high-quality.

</comment></comment></comment><comment><USER50> It took me forever to figure out that APFS didn't support arbitrary Unicode but rather only assigned codepoints in a fixed Unicode spec...(I was writing a fuzzing app)

<comment><USER8> > APFS doesn't allow files to be created with filenames that contain > unassigned codepoints in the Unicode 9.0 standard, whereas HFS+ does.

This is from a "legacy" document: [https://developer.apple.com/library/archive/documentation/Fi...](https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/APFS_Guide/FAQ/FAQ.html)

<comment><USER50> It's definitely still the case on the office Macs that we bought last year.

</comment></comment></comment><comment><USER51> I have a hard time seeing how open sourcing their documentation could _not_ be the answer here.

<comment><USER52> Apple, the control freak company, open sourcing its documentation? :))))

<comment><USER51> Take a look at their Github page and you might be surprised :) Worked wonders for Swift.

<comment><USER52> Yeah, but Swift was meant to be an open source project from day 1. The Apple GUIs are part of the secret sauce from their point of view, they probably won't ever be open source... I imagine not even the documentation.

</comment></comment></comment></comment><comment><USER53> They removed the man pages a while back and broke so many links. It just seems punitive and petty.

</comment><comment><USER54> apple are no longer developer friendly, so why should they provide documentation. look at their pro-summer laptops. and arcane policies on iOS development

<comment><USER55> A couple weeks ago an automatic Mac OS update removed my (I presume, symlinked-) /usr/include directory. I use CLion not XCode, so this move broke my build, through no fault of my own, with little to go on as to what suddenly had gone wrong. A possible fix would be to install the commandline developer tools, except those were already installed and the installer refuses to run again to repair it.

This is a specific example of a regular occurrence; the details differ each time. I compare developing a personal project on Mac OS to be like getting cut off and run off the road by a luxury SUV: "Did you do that because you didn't know I was there, or did you do that deliberately?"

<comment><USER37> Have you tried /usr/local ?

That is where you're supposed to install user libraries/header files.

Apple "owns" the system paths no different to every other vendor.

<comment><USER56> The way I treated this on Linux is that /usr is packages installed by the package manager and /usr/local is where ad-hoc compiled (./configure && make install) software goes.

I always assumed this from --prefix=/usr/local being the default in autotools.

From wikipedia: (Historically and strictly according to the standard, /usr/local is for data that must be stored on the local host (as opposed to /usr, which may be mounted across a network). Most of the time /usr/local is used for installing software/data that are not part of the standard operating system distribution (in such case, /usr would only contain software/data that are part of the standard operating system distribution). It is possible that the FHS standard may in the future be changed to reflect this de facto convention.)

<comment><USER57> All of /usr/ is protected by SIP except for /usr/local/. Even if you have SIP off (I do too), it's worth glancing at what directories are protected, as it gives pretty clear insight into where Apple expects users to put stuff.

</comment></comment></comment></comment></comment><comment><USER58> Compared to amazon developer docs and twillio apples can hold its own.

</comment><comment><USER59> We should call this something, DocRot?

</comment><comment><USER60> I've been a MacOS/iOS developer for decades, alongside a healthy bit of Linux development, and more than anything this year I want to switch 100% to Linux- only development if only for the fact that Open Source still gives us the best developer experience when it comes to working things out.

If the documentation sucks - use the source. This is a lot more palatable on Linux than it is on MacOS/iOS.

That said, I do have to wonder if this is all just a bit of a side-effect of an internal re-org that Apple are preparing us for, with the move to Marzipan? I'm not holding my breath, but I find it difficult to conceive of the notion that Apple don't have something up their sleeve with the future merging of iOS/MacOS that will make us all quite devoted to their ways, yet again ..

Remember, its developers who drive computing forward. Whatever is done to the platform, it must accommodate the strategy of capture of developer mindset.

<comment><USER29> "Whatever is done to the platform, it must accommodate the strategy of capture of developer mindset."

Only if the company has a clue.

</comment></comment><comment><USER61> Tim Cook, cooking books?</comment>