Apple Developer Documentation Is Missing - <AUTHOR> https://v4.chriskrycho.com/2019/apple-your-developer-documentation-is-garbage.html <comment><USER2> Maybe I'm the only one, but when I start looking into a project, I start at the API docs and work from there. I really need to know if key features I want are viable on the platform or not. If I want to use an accessibility API to, in a supported way, read all of the items in every menu in the menu bar, how do I do that? Is it supported? Is there a set of best practices I should follow?

The problem with not documenting things is that developers like me are turned off before we start. I don't want to bend the platform so far that it breaks. I want the limits. I'm tired of reading stories about apps being pulled for using private APIs, or breaking in future versions because they're removed. I want to do things in a supported way so I can make everyone happy.

Right now, I can't even see the boundaries of what's possible, because nothing is documented. I don't even want to try to write for Apple platforms, because it's entirely inscrutable and unpredictable.

<comment><USER3> You are not the only one.

My most recent experience with Apple's documentation (regarding some iOS 13 API concern), left me with a sense of impending doom and hopelessness. After about 5 minutes I gave up and went back to playing the google/stackoverflow search game.

I have become very addicted to the quality of Microsoft's documentation for things like .Net Core & C#, and have found it virtually impossible to tolerate reading documentation from any other vendor at this point. A completely arbitrary but hopefully obvious side-by-side comparison:

Exhibit A:

[https://docs.microsoft.com/en- us/dotnet/api/system.linq.enum...](https://docs.microsoft.com/en- us/dotnet/api/system.linq.enumerable.distinct?view=netcore-3.0)

Exhibit B:

[https://developer.apple.com/documentation/coreimage/cicolor/...](https://developer.apple.com/documentation/coreimage/cicolor/1438084-init)

<comment><USER4> A better example would be:

\- Apple: [https://developer.apple.com/documentation/coreimage/cicolorc...](https://developer.apple.com/documentation/coreimage/cicolorcubewithcolorspace?language=occ)

\- Microsoft: [https://docs.microsoft.com/en- us/dotnet/api/coreimage.cicolo...](https://docs.microsoft.com/en- us/dotnet/api/coreimage.cicolorcubewithcolorspace?view=xamarin-ios-sdk-12)

<comment><USER5> Oh god that's both hilarious and sad at the same time. Maybe Apple should contract Microsoft to write their own documentation for them?

<comment><USER6> Sadly, Apple actually does have good documentation for Core Image. It just never made it into their new system and is instead languishing in the "archive":

[https://developer.apple.com/library/archive/documentation/Gr...](https://developer.apple.com/library/archive/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html#//apple_ref/doc/filter/ci/CIColorCubeWithColorSpace)

Apple deployed a new documentation system, and no one stopped to make sure all the "old" stuff got translated through.

</comment></comment></comment></comment></comment><comment><USER7> > Apple, if you want developers to love your platform — and you should, > because good developers are your lifeblood — and if you don't want them to > flee for other platforms — and you should be worried about that, because the > web is everywhere and Microsoft is coming for you — then you need to take > this seriously. Adopt the mentality that has served other frameworks and > languages so well: If it isn't documented, it isn't done.

Apple has enough rabid supporters, they can lose the occasional developer to bad docs. Apple doesn't care or need to care. They are arrogant that way. Also, what other platforms? Android? A fair portion of iOS devs are _also_ already Android devs.

Look, this is just going to fall on deaf ears. Apple isn't listening. Their machine is output only.

<comment><USER8> _Look, this is just going to fall on deaf ears. Apple isn 't listening. Their machine is output only._

That's not really true. Apple is active on Twitter and actively reaches out to correct problems.

For example, when I complained that their Xcode beta hangs when you open a large file, an Xcode dev reached out to me and asked for a repro case. [https://twitter.com/theshawwn/status/1175197286349119490](https://twitter.com/theshawwn/status/1175197286349119490)

(I'm not an Apple fanboy, just a dev.)

<comment><USER9> Isn't that the exception that proves the rule though? Why is Twitter the most effective way to get developer support from Apple as opposed to their own website?

<comment> 52-6F-62 Yeah. As much as I appreciate their responsiveness on Twitter, it doesn't much help those of us who are _not_ on Twitter.

(Tangential rant: I dislike how it seems like the most effective path for anything resembling customer service from _many_ companies is to call them out on Twitter alone. I've written emails to some companies over _months_ to no single response—but to look on their Twitter you'll see an answer within hours, or minutes.)

<comment><USER10> That shouldn't be surprising as Twitter is a public forum, so there's more accountability.

<comment> 52-6F-62 I'm not surprised. I'm a bit miffed, though. We shouldn't have to shame companies to get a bit of customer service—let alone a response to an email.

</comment></comment></comment></comment></comment></comment><comment><USER11> I work half and half pretty much maintaining the same app in both iOS and Android. Since the introduction of Swift, the Apple docs have become much terser (it's like Jony Ives slimness fettish got a hold of them). Even with that, they're better (by far) than what I find with the Android docs. The Android docs "explain" very little.

<comment><USER12> Android suffers a lot from quantity over quality. Classes are usually documented, but usually for a function like "setReturnVectorFlag" it's just _sets the return vector flag_.

 _Edit to add:_ I also work on both platforms, and I'd say iOS (along with MacOS) is usually easier to work with because the design tends to be sane and the names are fairly descriptive; whereas Android has a lot of weird and questionable design decisions so it's harder to guess how things really work. On the upside for Android, it's often possible to just read the source code (at least for the core OS).

I think the docs are about equally bad overall.

<comment><USER13> > usually for a function like "setReturnVectorFlag" it's just sets the return > vector flag.

Ah - the "repeat the method names with spaces in it" style of documentation.

This is merely an exaggerated form of a trap that the majority of documentation falls into to some degree - documenting the "what" but neglecting the "why" or "how".

It tells you the bit you can easily work out by intuition, reading the source or using your IDE's features.

And it leaves out the really important parts: "how should I use this method?" and "why would I need to?"

Method based documentation also has problems explaining how API calls are used in concert. Understanding each method in isolation something leaves huge gaps in understanding how they are to be used together.

And no - you can't plug the gaps with lazy video tutorials.

<comment><USER14> > Ah - the "repeat the method names with spaces in it" style of documentation.

That's usually a symptom of aggressive linters enforcing the rule that every single public method must be documented. Programmers then produce useless "documentation" to shut the linters up. Utter waste of disk space.

<comment><USER15> I can see that as possible, and I can also see how it might very negatively impact a documentation drive on accident. One of those things that sounds good, and could be beneficial, but when enacted without strong guidance just ends up combining with culture or human nature to make things worse. E.g. a rule that says there must be documentation, but without standards and enough review to make sure that it's good documentation. Stats show things getting better, but that's because we always drift towards optimizing what we measure, which is not always the same what we actually want.

</comment></comment></comment></comment></comment><comment><USER16> When I first learned iOS ten years ago I thought the documentation was outstanding. It had good API level documentation as well as a large number of guides that showed the right way to use the API to implement particular features.

I recently returned to the platform and my experience is very much like the parents. The documentation appears to be almost completely missing. The built- in documentation does not appear to include any guides at all. The API documentation is largely the kind where the description is a more verbose form of the method name, and sometimes when Objective-C is selected the documentation is showing the Swift version.

<comment><USER16> I have discovered that the previous documentation is still available in a "documentation archive" complete with banner warnings about how it is out of date and unsupported. It is almost impossible to find topics except by using google search. Newer functionality is missing and some of it is no longer accurate, but it is better than nothing.

<comment><USER17> I've had to resort to referencing the documentation archive before as well. While the new docs are certainly prettier, the old docs were much more substantive.

</comment></comment></comment><comment><USER18> I actually agree whole heartedly with the intentions behind this article. I find Apples documentation to be incomplete and not nearly as detailed as I think it should be.

I think that personally it's not all that well organized either.

My minimum standard for good documentation has and always been Python's[0]. While no documentation is perfect, I think they mostly get it right by providing good explanations and examples consistently throughout the documentation. I also like how it's spilt up between modules and the code examples are routinely updated. I have found very little issue with Python's docs. While it could definitely use more examples and and deeper content around asyncio in some parts (mostly around transports and protocols) on the whole its very good, to me it's what all organizations should strive for at a minimum. I also want to call put Mozilla's Developer Network (MDN)[1] as stellar, I reference and use it all the time and have genuinely been happy with it.

To be fair in assessments, I've also found links in Microsoft's documentation that often link to things they have already marked as outdated or not going to be updated, or just don't work like the GitHub links on this page:

[https://docs.microsoft.com/en-us/xamarin/xamarin- forms/user-...](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user- interface/controls/views?WT.mc_id=docs-dotnet-xamarin)

So I think a lot of documentation around the big platforms especially have a lot of work to do. This isn't to say documentation is easy though. I sincerely hope that all this noise just means it becomes more of a priority. I know from experience that writing good documentation is hard and I don't want this to come across like I'm faulting anyone in particular or organization in particular. I imagine with large and ever changing platforms it's quite the challenge. I just wanted to point to some examples I believe get it right most of the time.

[0][https://docs.python.org/3/](https://docs.python.org/3/)

[1][https://developer.mozilla.org/en-US/](https://developer.mozilla.org/en- US/)

<comment><USER19> _I've also found links in Microsoft's documentation that often link to things they have already marked as outdated or not going to be updated_

IMHO that's usually a _good_ sign --- that the API you're using is not ever going to change again. MS values stability and backwards compatibility far more than others (and in the past, that was even better) so "not going to be updated" means "this has become mature and stable, don't worry about unexpected changes."

<comment><USER18> Then why mark the documents as deprecated?

<comment><USER19> MS uses "deprecated" as a marketing term, but their backwards-compatibility commitment normally do not allow them to actually break things this way.

</comment></comment></comment></comment><comment><USER20> Funny thing is Microsoft has much better documentation on Apple's very own frameworks. Simply compare their documentation on this arbitrary type (CIAffineClamp):

Microsoft's Documentation: \- [https://docs.microsoft.com/en- us/dotnet/api/coreimage.ciaffi...](https://docs.microsoft.com/en- us/dotnet/api/coreimage.ciaffineclamp?view=xamarin-ios-sdk-12) \- [https://docs.microsoft.com/en- us/dotnet/api/coreimage.ciaffi...](https://docs.microsoft.com/en- us/dotnet/api/coreimage.ciaffineclamp.-ctor?view=xamarin-ios-sdk-12)

Apple's Documentation: \- [https://developer.apple.com/library/archive/documentation/Gr...](https://developer.apple.com/library/archive/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html#//apple_ref/doc/filter/ci/CIAffineClamp)

</comment><comment><USER21> This comment has nothing to do with apple, but about documentation in general.

I was trying to get into Kubernetes world via kubeflow, a machine learning platform that works on top of the Kubernetes. Well, I have run into a bunch of the missing examples, outdated articles, and things that just don't work (all of that in official documentation).

I decide to change this a bit and start working on a small tool [1] that can help check documentation (at least reduce deadlinks in the documentation, when someone moves git files or just original source of info dies). Since I start working on it, I meet only one project without issues, all others.. well, they all had issues.

Maybe one day I post it on HN as a standalone link, but now here we go [1]

[1] [https://github.com/butuzov/deadlinks/tree/develop](https://github.com/butuzov/deadlinks/tree/develop)

</comment><comment><USER22> Last week's ATP[1] had a segment on this, in particular a discussion of [https://nooverviewavailable.com/](https://nooverviewavailable.com/) which has an estimated breakdown of what percent of each framework has documentation.

1: [https://atp.fm/episodes/349](https://atp.fm/episodes/349)

<comment><USER23> timestamped link: [https://overcast.fm/+R7DXB8Hbs/14:08](https://overcast.fm/+R7DXB8Hbs/14:08)

</comment></comment><comment><USER24> Nowhere in the comments thus far has anyone pointed out that SwiftUI — the framework in TFA's crosshairs — is in beta. I've written a relatively large amount of SwiftUI code and I get the impression that the design is still in flux. There are corner cases (as well as much more mainstream one) that haven't been fully thought through. Beta 5 of Xcode 11 brought non-trivial changes to the API and I expect those to continue.

"It's not finished until it's documented" is a fine sentiment, but I don't think Apple has remotely claimed that SwiftUI is finished.

<comment><USER25> As I noted in another comment, the documentation for SwiftUI is actually pretty good, especially if you take into account how quickly the framework has changed. It includes some rich, progressive tutorials. [0]

The author states that they are planning to write an app from scratch with SwiftUI. I think most iOS developers would hesitate to build an entire app on a beta framework.

[0] - [https://developer.apple.com/tutorials/swiftui/tutorials](https://developer.apple.com/tutorials/swiftui/tutorials)

<comment><AUTHOR> These tutorials are great (when they're working! That's been a bit spotty)—genuinely great. But they don't make up for everything that _isn 't_ present. Take a step off that beaten path and you're in for a world of pain today.

</comment></comment></comment><comment><USER26> It's funny to read this and have it compared to Ember's docs, especially since I've been using Chris's site a fair bit over the past few months...

I only bring this up for posterity, but Ember's documentation is terrible, and what is even worse is the Typescript documentation is almost unusable its so outdated. Chris's site is the only place you can go to find anything and it's incredibly difficult to make sense of or is already completely outdated... There are constant gotchas and missing documentation or things that are flat out wrong...

I can understand complaining some about Swift's docs (though I've never had that problem), but comparing them to Ember's seems like an awfully bad take.

P.S. I love Ember, learning it has just been nightmarish at points for almost no reason.

<comment><AUTHOR> 1\. You should file issues against Ember's docs! We have different experiences of it for sure. Even just as experience reports, I know the folks who work on it would love that.

2\. The Ember TS stuff _is_ in need of an update—desperately—as are my (several-years-old-now!) blog posts. Unfortunately (unlike Apple) none of those of us who work on it get _paid_ to do so at the moment – at all, including docs. I'd _love_ it if you opened issues against the ember-cli- typescript repo about specific issues/confusions you've had.

<comment><USER26> 1\. Totally, I have, will do more, and would like to...

One big difficulty I've had, because I want to fix things (like docs), is because everything post 3.12 is geared towards Octane and those docs are all quite a bit different than everything before it... (and I'm on 3.12) it makes finding the code to change, text, blob pretty difficult (IMHO) since master is mostly Octane.

2\. I know you aren't paid and you're a saint for all you've contributed! You've helped me an insane amount, and I want to say "thank you," for it. I wasn't trying to give you too much shit, I just thought it was a little funny... Ember's docs are in disarray for a new language and design patterns, and so are Swifts! ;) I probably should've used a softer word than "awful," my apologies.

2.1 I'll see you in your issue tracker later today :)

Thanks for being friendly! I super appreciate it, and for letting me know about it being cool opening those kinds of issues. A LOT of Github repos are hostile to _any_ questions at all (i.e. "go to stackoverflow or take a hike"); so, I tend to not make issues and only PRs.

<comment><AUTHOR> The Octane transition is indeed a big one!

As for being welcoming and friendly—of course! We _desperately need_ the help, esp. to hit the gaps that we're blind to because we're used to working around them. And honestly, "awful" isn't far off from how I would describe our docs; doubly so far anything related to Octane with TS (where it's subject to precisely the critique I leveled in this post: they don't exist!). See you on the issue tracker!

</comment></comment></comment></comment><comment><USER27> Still? It has been a while since I have done any Apple platform specific native development, but I remember about 5 or 6 years ago writing an iOS and OS X app for communicating with an audio modelling device, and the documentation for CoreMIDI was woefully lacking.

I couldn't believe that a part of the Apple operating systems that had been ingrained for years had so little documentation and examples at that time. I ended up finding out more from a lot of third party blogs and via forums.

I haven't checked, but are things like the MIDI framework still badly documented in the Swift docs?

<comment><USER28> >I haven't checked, but are things like the MIDI framework still badly documented in the Swift docs?

Documentation for the entire audio stack has actually gotten quite a bit worse. Many references have been removed without new replacements being provided. In many cases, there are broken links in what little documentation remains. (For example, TN2274, which describes the USB audio stack is still around, but several of the outgoing links, for example the documentation for developing a USB audio plugin, are now broken, with the sample code deprecated and removed with no replacement.) New frameworks like AVAudioEngine simply don't document important limitations, particularly for OS X.

The Core Audio mailing list used to be a good place to get help and answers in cases where the documentation is weak, but traffic has withered and no from Apple seems to reply to messages any more. There has been a total of only four messages on the mailing list this month.

It's really a shame, because the audio stack is well-designed, but the documentation is so poor except for the basics that newcomers would have difficulty getting anything tricky off the ground.

<comment><USER29> What makes it particularly hard is that the Core Audio folks are a C++ crowd, so they use a bunch of design patterns that don't really make any intuitive sense if you're familiar with the other Apple frameworks.

Audio developers starting today are fortunate though because there's AudioKit, which is the right choice for the vast majority of apps.

<comment><USER28> AudioKit is quite good, but it's a third-party solution that covers a fairly defined problem domain.

And while the AudioKit devs are among the most experienced Core Audio developers around, even they are frustrated by the lack of documentation. See, e.g., [1], where they say:

"The most important example of this is that we don't really understand at present how to create AUs which have polymorphic input and output busses. [snip] This is fundamentally because the Apple documentation on how this is supposed to work is essentially non-existent. I undoubtedly leverages the fact that the input and output busses are KVO compliant, but this is about as much as we know. We will have to figure it out via experimentation."

[1] [https://github.com/AudioKit/AudioKit/blob/master/docs/AudioU...](https://github.com/AudioKit/AudioKit/blob/master/docs/AudioUnitCreation.md)

</comment></comment></comment></comment><comment><USER30> Apple payments APIs are the worst APIs I've ever worked with. They're inconsistent, badly documented, have unannounced breaking changes and contain so many gotchas it isn't funny. For example, some of the most relevant data is attached to the response but isn't officially supported and may or may not be correct.

It's not exactly fun to code up payment integrations, and so I was kind of hoping to get it over and done with. But with Apples payment APIs, we needed months of production data to figure out how to use them without shooting ourselves in the foot.

Using the API felt like interfacing with some badly configured eventually consistent MongoDB cluster that a bunch of juniors stuffed full of receipts, using the entirely wrong data model.

<comment><USER5> And what's worse is the "sandbox" for testing behaves completely different from the real store, and has random undocumented downtime and bugs that you only find out about from other people reporting it on the developer forums. And creating, logging in to, and keeping sandbox accounts from contaminating your real devices is also a PITA.

</comment></comment><comment><USER31> Docs are always something I evaluate before moving forward with a specific tool or language for a project. I have not done much work in the Apple ecosystem but it surprises me that a company of this size would have lackluster docs. It makes me wonder how many non-Apple developers give up on their idea for an app due to frustration and how that translates to lost profit for Apple given their 30% cut.

I am not a huge Golang fan but recently I found myself using Go quite a bit and I really appreciate their docs which include a description of each function and an example. The example code is even editable with a "Run" button so you could test and understand the function much better before moving it to your own code. Here's an example if you are unfamiliar with Golang docs (click the "example" link for the editable code): [https://golang.org/pkg/strings/#Compare](https://golang.org/pkg/strings/#Compare)

</comment><comment><USER32> This is exactly what I've been dealing with for the last month, as I attempt to completely re-write an Electron app in Swift. The part about scavenging through WWDC transcripts particularly resonated with me. Coming from JS ecosystem, I was also shocked at how few google results (even stack overflow) would come up for issues I was running into.

<comment><USER33> What annoys me about Apple, is that clearly their time is valuable to them, but us paying Developer Program members are forced to waste days worth of business hours hunting through their appallingly maintained "documentation". And that really pisses me off.

</comment></comment><comment><USER34> The comments in header files are often the only (or only useful) documentation. So don't give up before looking there. Sometimes they wait a few years to write docs. For example, NSWindowAccessoryViewController went undocumented for three or four years. Which was fine because it was too buggy for me to use anyway. The docs are enough to get you started but it's only brutal experience that teaches you how to use things. In practice you spend a lot of time working around bugs and design flaws. Those will never be documented, of course.

<comment><USER35> Yeah, I developed software for a platform that isn't documented anywhere at all on the internet, and the documentation it comes with is sketchy. Discovering a new widget and spending time messing around with it was the norm.

</comment></comment><comment><USER36> I've spent most of my programming life doing Apple stuff (in between Java and C++ non Apple stuff too) and the only really good docs they ever had was the old paper Inside Macintosh in the 80's. Even when I worked at Apple at DTS in the mid 90's we had to hire someone to go around to every engineering dept and find out wtf they just shipped to provide developers something, anything, as documentation. That was back when Apple lost tons of money. Now the excuse can't be financial. Maybe they don't care enough?

</comment><comment><USER37> It's always been bad, too! Back in the OS9 days, the Apple documentation was "cumulative". You had to know every trick, every hidden bit and flag, back to day 1 in order to write a program.

It's no better today. People who live isolated in the Mac universe have no idea how good Microsoft Visual Studio tools are, and how complete and thorough the documentation is, and how consistent the API is. You don't have to wade through a 30 years of legacy APIs to get anything done.

<comment><USER38> Woz documented every line of his Apple ][ system monitor code and it was a joy to read.

<comment><USER37> Yes! I've been around since those days.

</comment></comment></comment><comment><USER39> I've developed native iOS and Android apps professionally since 2012 and I always found their docs to be a mix of amazing - [https://developer.apple.com/design/human-interface- guideline...](https://developer.apple.com/design/human-interface-guidelines/), and fairly useless - [https://developer.apple.com/documentation/vision](https://developer.apple.com/documentation/vision). All example code I've seen provided by Apple looks like a Fisher-Price® My First UIViewController toy.

It is my belief that the Apple iOS docs are just another barrier to developer entry; similar to their $100 yearly license, expensive hardware combined with their WYSINWYG simulator, and woeful iTunesConnect experience.

These barriers to entry, including the poor documentation, definitely have some interesting affects on the ecosystem. I've seen examples of all of these in the real world.

      * Experienced iOS devs have a shared trial by fire experience.
      * iOS salaries are slightly higher on average compared to Android.
      * Skilled iOS devs tend to be excellent developers in general.
      * Average iOS devs can be more arrogant and less likely, or less capable, of helping out in other languages and projects. (Apple framework specialist pigeonhole principle)
      * There is almost zero culture or standards regarding application architecture or documenting iOS apps.
      * Underlying "older" concepts like memory management have been masked, forgotten, and / or ignored.

</comment><comment><USER25> A couple years ago, maybe around Swift's debut, Apple began to mark all their sample code, projects, programming guides, technical notes, etc, as deprecated and unmaintained with a header on each page stating so, and putting it all in their "Documentation Archive" [0]

They've had a new push to make sure that the remaining official documentation is available in either Swift or Objective-C, but I have yet to see any attempt at migrating some of their _best_ documentation: CoreBluetooth Programming Guide, CoreImage Programming Guide, or CoreData Programming Guide [1]. These are hugely helpful documents that take a much higher level approach than just API documentation and get to the heart of the design of a framework, with helpful diagrams, etc.

I understand that Apple has a huge body of work regarding documentation, and that it would be unfair for us to require them to _never_ deprecate any of their documentation, but at this point, we basically have header files, documents automatically generated by header files, with several large swatch of that even being undocumented [2].

I do think that Apple made a huge effort with SwiftUI to provide meaningful, helpful documentation at the time of the announcement [3], and I don't want that to get lost in the discussion. Unfortunately the framework has iterated so quickly that much of it is out of date.

However, when Xamarin [4] independently documents some of Apple's APIs better than Apple does... it is indeed time for a call to action.

This is especially sad because Apple used to have some of the best documentation ever available. I basically learned how to program through using their documentation.

[0] - [https://developer.apple.com/library/archive/navigation/](https://developer.apple.com/library/archive/navigation/)

[1] - [https://developer.apple.com/library/archive/documentation/Co...](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CoreData/index.html#//apple_ref/doc/uid/TP40001075)

[2] - [https://nooverviewavailable.com](https://nooverviewavailable.com)

[3] - [https://developer.apple.com/documentation/swiftui](https://developer.apple.com/documentation/swiftui)

[4] - [https://twitter.com/akashivskyy/status/1187790245804367873](https://twitter.com/akashivskyy/status/1187790245804367873)

<comment><USER40> Along with this, they removed or not generated PDFs like they once had. This is really painful for folks that have problems with looking at a screen for an extended period. They don't even have downloadable documentation that can be read on an iPad. The lack of PDF is a real issue for me.

The continued failing of example code is really painful.

<comment><USER41> Serious question (I asked because my spouse is starting to have some of these issues) - if you can read a PDF on the iPad, how is that different from reading the HTML docs on the iPad? Is it something with the layout, or is it the cognitive load of having to click a lot of links rather than having a linear layout of the text? I'm interested in learning more about this to help my spouse out!

<comment><USER40> I get the feeling Adobe spends a lot of time making PDF work very well for reading. Different kerning maybe?

I have the problem that even an iPad is a tiring for reading even with the ability to position it in a more comfortable reading position than a monitor. I need to print stuff out and html truly sucks for printing. I can use e-ink and that seems fine which isn't an option either. Bandwidth is still not universal or cheap.

</comment></comment></comment></comment><comment><USER42> OPs criticism is definitely justified, and it makes me sad. In my opinion, the peak of Apple documentation was the new, refactored edition of "Inside Macintosh" in the 1990s: [https://en.wikipedia.org/wiki/Inside_Macintosh](https://en.wikipedia.org/wiki/Inside_Macintosh)

Not only is there not enough information, but the documentation team goes out of their way to reorganize what documentation exists every couple of years, so outside links into the docs constantly go stale.

</comment><comment><USER43> Apple's developer docs have been incomplete since the introduction of OS X. I don't expect it to get any better before hell freezes over. The article mentions that this makes it hard for newbies to learn. That's true but my guess is that by the time those chickens come home to roost, JavaScript will be called a systems programming language.

Edit: Updated wording to article's title change.

<comment><USER12> I wouldn't put it quite as strongly as that, but yes, the OS X docs have never been great.

It's a shame, because the classic MacOS docs were _amazing_ , amongst the best technical docs of all time at their peak. (I had a shelf of Inside Mac books, and they were useful for years.)

</comment></comment><comment><USER44> I'm surprised no one has complained about the lack of documentation for Safari, especially on iOS where special behavior is done for mobile.

The best I could find from Apple was several years old, and clearly not up to date as the behavior no longer functioned as documented.

<comment><USER45> There is this: [https://developer.apple.com/library/archive/documentation/Ap...](https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/Introduction/Introduction.html#//apple_ref/doc/uid/TP40002051-CH1-SW1). Not sure if this has what you'd need.

<comment><USER44> Came across that, but it's terribly outdated. Bottom of the page even says last updated in 2016.

</comment></comment></comment><comment><USER46> It's unclear to me how this post made to the top when it references SwiftUI - a framework which is still in beta and shouldn't even be brought into discussion. On the other hand, UIKit is documented about ~90% which is an insane amount and this is what most of the iOS devs are using on a day-to-day basis.

</comment><comment><USER47> Apple under invests in developer tooling relative to what it does. The dev tooling teams are surprisingly small and the internal dev experience at apple for their own employees is pretty bad compared to other large tech companies. My guess partly is because of the siloed nature of the company, and they don't sell dev tooling for "money".

</comment><comment><USER48> Every once in a while I think to myself, "I have a problem with OSX, I think I'll try to automate it with JavaScript for Automation (JXA)..." You know the rest.

The astounding lack of documentation is almost amusing. It becomes an adventure of trying to convert old AppleScript examples into JS, spelunking into GitHub and StackOverflow and general trial and error until I get something to work.

All this said, I'd rather have functionality without documentation, than the extreme of not launching an API without proper docs.

The solution of course - though Apple would never do this as it's not in their DNA - is to let devs add to their docs like PHP does. I'd be happy to add back a few examples to their site once I figured things out if that option was available to me, but right now there's really no central place for this besides random forums or starting my own repo.

<comment><USER45> Nobody seems to use JXA, unlike some of the technologies that are heavily used but just as undocumented :(

<comment><USER48> I don't disagree, but you might be confusing the chicken and egg. Maybe if Apple actually documented JXA... (it's actually quite useful).

<comment><USER45> I know it is, but I have little hope that it ever will. Everything I've heard points towards the OSA team not doing so hot these days.

</comment></comment></comment></comment><comment><USER49> Funny meme on the wall at Google: Picture of Governor Tarkin on the Death Star captioned, "Documentation? At our moment of triumph?" Still makes me laugh.

</comment><comment><USER50> If there is a problem with Apple documentation issue a bug report. I'm not from apple but I worked in their ecosystem for some time. When you experience real problems your manager or CTO might have to get in touch with a managing director. If you go to WWDC make sure you complain directly to the guys wearing the checkered shirts. They are the ones in change. The cool thing about WWDC is that you can communicate directly with Apple developers. They will even look at your code to help.

<comment><USER45> > When you experience real problems your manager or CTO might have to get in > touch with a managing director.

If you can…

> If you go to WWDC

Again, if you can…

</comment></comment><comment><USER51> 15+ years ago, Apple had some of the BEST documentation. But I agree it's fallen precipitously.

<comment><USER52> I worked a little on the Mac in the 90s and then their documentation was really good. You could read it like a book. Actually Microsoft was really good back then too with the MSDN library CDs they shipped. Not it's pretty bad and getting worse all the time with a lot of broken links and tons of auto generated content that doesn't explain the big picture.

</comment></comment><comment><USER53> So much this. The other day i was trying to look up documentation for Swift's KVO and i couldn't find one. I know there's a KVO API that accepts a closure but i just couldn't find where it is. smh.

Apple used to link sample code with pretty much all the big APIs but they no longer do that. If you want to see how an API is used or see the best practices you're better off checking stackoverflow.

<comment><USER45> You're looking for NSObject.observe(_:options:changeHandler:), which doesn't seem to have a dedicated documentation page that I can find but it's mentioned here: [https://developer.apple.com/documentation/swift/cocoa_design...](https://developer.apple.com/documentation/swift/cocoa_design_patterns/using_key- value_observing_in_swift)

</comment></comment><comment><USER54> Apple's developer guides were amazing. I was able to read through them and become a proficient iOS developer. They are now archived and not updated. Even with experience on the platform, I now often find it hard to navigate the docs and learn major new frameworks. It is a real shame.

</comment><comment><USER55> For a company with a capitalization of $1.123T, yeah, Apple is pretty cheap on the developer documentation.

</comment><comment><USER56> Their diagnostics is pretty cool, though. How about this gem:

      ld: warning: ignoring file build2/libb.u.a, building for macOS-x86_64 but attempting to link with file built for unknown-unsupported file format

Going to steal that "unknown-unsupported" term for sure.

</comment><comment><USER57> Reading hundred comments and the op is about the lack of documentation. Swift is a good language to learn but api no. The discussion might explain it. But should there be one to address that issue as an ecosystem.

For example ask Apple to do something and let them sort that out using their employee. Or some web site (I use one particular to help me).

Swift is a language like lisp or clojure. You may look at its architecture etc to see whether it is built in issue (lisp is easy but its library is not, say). Or it is really just a hiring issue.

Or may I just ask how to address the original question if it is just language lack of good doc.

</comment><comment><USER58> As someone who has only recently gotten into producing an app for iOS, I was immediately struck by the lack and quality of the docs. It's nice to hear that I'm not alone.

The lack of documentation led me to feeling like I was just somehow personally missing something. I've been at this for awhile and the apple docs left me feeling like a junior programmer all over again. I wanted to first blame myself, but it's become clearer to me that Apple just doesn't care about supporting devs. That's the theme for years now and it only seems to be getting worse. Bummer.

</comment><comment><USER59> Agreed this is a big problem. Sometimes sitting through a WDC tutorial video can unearth answers. But, really?

You know, they could call Tim O'Reilly and commission a bunch of excellent books. They have the money and Tim has the writers.

</comment><comment><USER60> Developer goodwill is not really that essential to a lifestyle accessories brand.

<comment><USER61> Right because 50% of the US mobile market only buys a phone because it's an "accessory".

<comment><USER60> People would still buy iPhones even if Apple decided to purge 99% of apps from their store.

<comment><USER62> Which would make sense since 99% of apps probably have fewer than 100 downloads each.

(Yes I know this is not your point, just a little joke)

</comment></comment></comment></comment><comment><USER63> They're too big to care.

</comment><comment><USER64> Might just be me - but I'm attracted to well formatted docs. It's not a dealbreaker but I do appreciate when the fonts, spacing and code snippets are well thought out

</comment><comment><USER65> According to Marco of overcast and the ATP podcast fame the docs pertaining to the audio subsystem is really lacking.

</comment><comment><USER66> Apple's just doing with documentation what they do with everything else: making it thinner at all costs.

</comment><comment><USER67> Sample code (showing usages) and tests are also part of the documentation.

</comment><comment><USER68> Some time ago, I was contacted by Apple to apply for a job. My code is insanely well-documented. I like to think that a lot of the inspiration for my code docs comes from Apple's open codebases. Their code is exceptionally well- documented.

In any case, as is usual with all employers, these days, they completely ignored the focused, relevant links that I sent them to elements of my extensive portfolio of repos, and, instead, based the entire interview on a 50-line binary tree test in Swift.

I'll make it clear that I'm NOT a fan of these. I am mediocre, at best, at them, as I don't come from a traditional CS background (I started as an EE).

In any case, during the test, I did what I always do when I write code. I stopped to write a header document for the function.

This was clearly not something the tester liked. Also, to add insult to injury, they dinged me for not writing a cascaded nil-coalescing operator. The code they wanted me to write was difficult to understand, and absolutely not one bit faster.

What makes this even funnier, was that this was for an Objective-C job, and the links that I sent them (that they ignored), were to ObjC repos.

After that, I just gave up on them. It kind of shows where a lot of this is coming from.

Dynamically-generated documentation can be great (It's clear that the lions' share of Apple's developer documentation is dynamically-generated), but it requires a VERY disciplined coding approach. I suspect that they may be hiring less-disciplined engineers, these days.

<comment><USER69> What is a "cascaded nil-coalescing operator" ?

<comment><USER68> Think the ternary operator, but worse.

In Swift, this is expressed by "??".

It means "If the previous test returns nil, then execute what is after the ??".

For example, if you have a concrete Int, but the source might be an optional, then you could do something like this:

        let a = b ?? 0

That means that if b is nil, then set a to 0. Otherwise, set it to whatever value b has.

You can chain these, like so:

        let b: Int? = <something from somewhere>
        let c: Int? = <something from somewhere>
        let a: Int = b ?? c ?? 0

So you have a couple of optional values coming in, but they could be nil, so you chain them.

You can have a lot more going on in the handlers than simple assignments, but this gives you an idea.

<comment><USER70> In Objective-C (and some other languages with ternary operators) the same can be written like this:

        int a = b ?: c ?: 0

<comment><USER35> That one's straight up called the Elvis Operator.

I hate it when things like this get names that everyone's supposed to know and it's considered a mark against you if you've never heard it before, but I do think the name Elvis Operator is hilarious. :D

<comment><USER71> I was wondering why the funny name, and

> The name "Elvis operator" refers to the fact that when its common notation, > ?:, is viewed sideways, it resembles an emoticon of Elvis Presley.

[https://en.wikipedia.org/wiki/Elvis_operator](https://en.wikipedia.org/wiki/Elvis_operator)

</comment></comment></comment></comment></comment></comment><comment> non-entity I haven't done a lot of work in Apple ecosystems, but what I have seen from their docs are admittedly pretty bad. Recently out of curiosity, I tried to figure out how macOS drivers are written and left more confused than I was before. Microsoft iirc, used to have their docs terribly organized (it was difficult for me to find what I wanted without a Google search) but they seem to have improved that nowadays

<comment><USER72> Driver development docs on macOS largely haven't been updated in 10+ years. I started doing macOS kernel stuff when Snow Leopard was the latest release, and the only documentation I can think of since then has been sample code for Audio Server Plugins (for writing new-style audio drivers) and headerdocs explaining the transition from IOUSB* to IOUSBHost* APIs. Any additional information has been buried in a bunch of WWDC session videos, or you have to extract it from Apple by filing DTS incidents.

On the other hand, Apple have decided a bunch of documentation was out of date, so they've simply made it harder to access by burying it in archive sections or taking it offline altogether, without providing replacements. Getting into driver development now is almost certainly a lot trickier than it was back then.

<comment><USER45> I hope Apple credited you the DTS incidents back for something like that!

<comment><USER72> They have credited a bunch of DTS incidents back, but that normally only applies where they determine that they either:

* can't help you

* don't want to help you

TBH, compared to the person-hours required to write up the DTS incident in the first place and keep the conversation going, test out their responses, etc., the cost of the incident itself is minimal.

Let alone the cost of the times where I decide to go it alone and figure it out by trial & error or reverse engineering…

</comment></comment></comment></comment><comment><USER73> One Cook can ruin many meals.

</comment><comment><USER74> My issue with this is that the developer is comparing his experience with Apple's documentation over a few months, with his anecdotal experience over 4 years.

Part of gaining experience with a platform is the ability to source answers to technical questions effectively, including how to use official documentation effectively.

<comment><AUTHOR> I'm _extremely_ comfortable reading documentation for a _very_ wide variety of platforms, languages, etc. (The first software I ever wrote was Fortran via `gfortran`. Trial by fire!) It's not just me. This is just straight-up _absent_ : [https://nooverviewavailable.com/swiftui/](https://nooverviewavailable.com/swiftui/)

As I noted in the post, I'm getting by _anyway_ … but it's more work than it needs to be, and more work/worse state of docs than other ecosystems I've learned in similar amounts of time.

<comment><USER74> My comment wasn't about your comfort level. It was about comparing your experience 4 months in, to your experience 4 years in, _anecdotally_.

<comment><AUTHOR> Erm, yes. Any possible comparison anyone could do of their own experiences would _by definition_ be anecdotal.

I also know exactly what my first 4 months in other ecosystems were like. Including picking up Fortran! That was rough! :)

</comment></comment></comment></comment><comment><USER75> The Swift language has excellent documentation.

For SwiftUI, the WWDC presentations are essential, IMO, for the high-level stuff. There is basic reference documentation, but there's no way to put it all together without a high-level understanding. It follows the patterns of some other frameworks so depending on your experience you may be able to get by without the WWDC presentations, but I'd still watch them or at least read the transcripts.

I think Swift Package Manager is meant as a community tool, and the love and care it needs to become excellent is not going to be coming from Apple, not without some kind of strategic change. Either the community will value it and figure out how to move it forward or it's not going to get much better. I could be wrong -- I'm trying to judge it's on-going strategic importance to Apple -- but I think the way it's going to improve is through community involvement.

Anyway, I'm not sure what the point of this kind of rant is. Whining about Apple is an easy way to get useless internet karma points, but it's such a bad look for a developer. At least half the job is being the one who finally deals with things someone else probably should have already dealt with but didn't.

<comment><AUTHOR> Noted the first two bits _in the post_. Did you read it? :)

As far as SPM goes: they've got it built into Xcode at this point, and are doing WWDC sessions about it. At what point does it become "official" enough to warrant "This needs to be better" criticism?

As far as "useless internet karma points": I couldn't care less. History has shown that when people make enough stink about this kind of thing, it sometimes—rarely, but sometimes—gets to the ears of people high enough in the management chain that it ends up shaking things loose at the mid-level spots where poor decisions around these things tend to get made.

I don't work at Apple. I _can 't_ go fix most of this stuff. In my day job, I spend a _lot_ of time on these kinds of concerns. In this context, though, the only thing I _can_ do is shout a bit and hope it shakes things up a bit.

<comment><USER75> > Noted the first two bits in the post. Did you read it? :) Yes, I did read. > Come on. However, you're not quite right. You called Swift "relatively well > covered". I disagree with that and consider the Swift language documentation > excellent. That's not really the same thing.

I did see you mention the WWDC videos, but I think you mischaracterize the role of them. My point is, people who are interested in learning SwiftUI should _start with_ the WWDC videos, not feel "reduced to searching through" them.

Anyway, if you want to work on top of something solid, forget about SwiftUI. It's very raw and changing fast. I wouldn't rewrite on top of it now unless you aren't planning to release for at least a year. And you might end up throwing it all away anyway.

And shout all you want. I'm letting you know it's a bad look.

<comment><AUTHOR> To be clear: I've watched every SwiftUI video. They're _great_! They just aren't the same as _docs_.

As for the look: I understand the take. We obviously differ on whether it's ever appropriate to make some noise this way. For my part, when it's come _my_ direction (as it has a couple times in the Ember ecosystem), I've appreciated it.</comment></comment></comment></comment>


Ask HN: Interested in Building a Coronavirus App? - <AUTHOR> EMERGENCY !!!
Anyone interested to work with me to quickly develop an app that can show in real-time the locations where people got infected with Coronavirus ? In this way, everyone can check if it is safe to visit a specific region or not. <comment><USER2> This is the German map for the 'standard' flu [https://influenza.rki.de/MapArchive.aspx](https://influenza.rki.de/MapArchive.aspx) I think such an app and maps just leads to panic. Use the dropdown to switch to 2017/2018 or even 2004/2005\. Based on those maps it looks like no place in German was safe, but it was a flu year like any other.

<comment><AUTHOR> We need a world map that is refreshed on a permanent basis.

<comment><USER2> Maybe this is a start [https://thevirustracker.com/](https://thevirustracker.com/) The German map is based on regular reporting from doctor's offices, it's a proven process for 20 years. A new 2020 app might work with self/crowd reporting.

</comment></comment></comment><comment><USER3> You mean like this?

[https://gisanddata.maps.arcgis.com/apps/opsdashboard/index.h...](https://gisanddata.maps.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6)

Or like this?

[https://visalist.io/emergency/coronavirus](https://visalist.io/emergency/coronavirus)

<comment><AUTHOR> I mean an app where you can simply enter the street where you are and you can see if there were cases of Coronavirus around. We need to fetch a lot of data sources from the web in order to retrieve so much information.

<comment><USER4> What do you mean by "around"? Coronavirus instances will, at the most granular, be reported on a hospital or other large location (hotel/airport/port) basis. I'm not sure why you need to query a lot of data sources or create an app to show this.

</comment></comment></comment><comment><USER4> By "develop" do you mean wrap one of the many already-existing websites showing this information in a UI? I'm not sure what your use case is here.

<comment><AUTHOR> To be able to enter the street or city and see where the closest case of Coronavirus was. And also when.

<comment><USER4> I see what you're going for, but 1) who's going to maintain the database of locations as they pop up since you're going to want real-time info? This is only a useful app if there are enough cases to be worth mapping, which means usability scales with labor. 2) Do you really want to make an app that increases fear and paranoia? Even if that's not the intent, it's what it will turn into.

</comment></comment></comment><comment><USER5> Where's your data coming from and why wouldn't people just use that instead of your app?</comment>


CVE-2018-11769: Apache CouchDB Remote Code Execution ( Versions 1.x and ≤2.1.2) - <AUTHOR> http://seclists.org/oss-sec/2018/q3/83 <comment><USER2> Pretty sure this commit[1] is related to the fix. I'm guessing perhaps you could bypass the blacklist of configuration settings you cannot change via HTTP by adding whitespace to the key?

1\. [https://github.com/apache/couchdb/commit/2cec527cd183f8b247f...](https://github.com/apache/couchdb/commit/2cec527cd183f8b247f7f4d8ec3fc2e17fbc7f1a)

</comment><comment><USER3> so the admin user of the database can run commands on the database host with the permissions of the database user locally</comment>


Magic Leap is real and it's a janky marvel - <AUTHOR> https://techcrunch.com/2018/10/09/magic-leap-is-real-and-its-a-janky-marvel/ <comment><USER2> > its first product is a somewhat janky piece of magic

> Magic Leap is about as impressive a piece of augmented or virtual reality > hardware as I've seen. Other companies may have better fields of view and a > more compact device, but they lack the variety of content that makes Magic > Leap's offerings shine. The early partnerships the company has inked have, > indeed, paid off.

the author nearly breaking their neck stretching to find some positive way to frame this train wreck of a company/product

saying the hardware is the most impressive they've seen, but because the software from partners is good?

HN needs a moratorium on TC paid advertising pieces / TC in general

<comment><USER3> You'll actually be hard pressed to find any press anywhere that thinks the hardware is bad.

<comment><USER2> > Other companies may have better fields of view and a more compact device

it's right there in the original review my friend, even the paid-for TC journalist has to admit the hardware is inferior and "janky"

</comment></comment></comment><comment><USER4> Who on Earth approved this trailer? [https://www.youtube.com/watch?v=45ZHNq9_7eY](https://www.youtube.com/watch?v=45ZHNq9_7eY)

"Ha ha, you'll be such a dork with our product on your face!"

That does not seem a wise marketing line.

<comment><USER5> There are two ways a marketing message can deal with a widely held negative conception about the product: ignore it, or try to convince people it's wrong. The former is usually the safer course. Trying to convince people they're wrong is really hard, but if you can pull it off, it can pay off big.

Pepsi's "Pepsi Challenge" ([https://en.wikipedia.org/wiki/Pepsi_Challenge](https://en.wikipedia.org/wiki/Pepsi_Challenge)) campaign from the 1970s and '80s is the canonical example of how to make an "actually, you're wrong" campaign work. Pepsi's market research found that the prevailing opinion of Pepsi was that it tasted too sweet, so people turned to Coke instead, just assuming that they wouldn't like Pepsi without ever really trying it. So Pepsi filmed commercials showing people taking a blind taste test of both Pepsi and Coke, and preferring Pepsi before being told which was which. The commercials worked -- they convinced people to give Pepsi a try, and enough of them found they liked it to drive up Pepsi sales for good.

The "you'll look like a dork" fear strikes me as widely enough held to be one of the biggest challenges VR and AR have to overcome to break into the mass market, so it's not illogical that at least some marketers would decide they have to take it on directly.

<comment><USER4> Part of my point is that I don't think they pulled it off, not even close. I don't think the storyline was "Ha, he looks like a dork, oh, he sure showed us!" it was "Ha, he looks like a dork... wtf just happened to reality?" The attempt at a humorous payoff at the end fails to address the dork aspect. "I guess he wasn't a dork, he really was fighting real robots"?

<comment><USER6> You are right. It was not a good ad. Felt very awkward and forced.

</comment></comment></comment></comment><comment><USER7> reminds me of the first cars i'd ever seen with massaging seats at the north american international auto show.

Less of a massage, more so the sensation of sitting on some large, undulating, lovecraftian leather mass. There was the accountable whine of a team of motors, and once every few minutes a sharp audible pop could be heard. God bless Mercedes for trying to cover this all up by blasting classical through the car speakers though.

</comment><comment><USER8> In my work with the HoloLens, I found that it's really best when you're augmenting the real world rather than displaying generic graphics. I know that sounds kind of like a tautology "use an augmented reality device to augment the real world?!? What a novel idea!" But if you look closely at the extant apps on HoloLens, you will realize they are mostly VR applications that happen to be rendered in your living room. To wit, the content is not connected to the space in any way other than proximity. You can move the content somewhere else and it's the same content.

Where I've found AR to really shine is in IoT settings. Take the real world with smart objects and add relevant data on top of them. That's the easiest thing to do, as the data is readily available and the UX is much more obvious than other potential use-cases. The real world becomes an anchor for the content and makes it much more believable, even when you lose the augmented graphics in the periphery as you move around.

There may be other ways to augment the real world other than IoT. GIS and routing might be one, though the tech isn't solid enough yet to put in a fast moving car, on roads with wide varieties of weather conditions. Medical assistance (though not training, again, that's VR). Logistics and shipping-- previous experience working in a grocery warehouse, I saw that new pickers struggle the most with finding things, and the most successful pickers have memorized the locations of things.

ASIDE: I'm also very interested in augmented _audio_ interfaces, spatialized audio through bone-conducting headphones, for a much better virtual assistant experience. I have two small kids and use Google Home _a lot_ while I'm getting them ready to go somewhere or making them dinner. Having different reminders and features located in different parts of the house, with proper fall-off of volume, would be a huge improvement on our daily routine.

What does this have to do with Magic Leap? I would be very happy if all that Magic Leap had to offer was "slightly better HoloLens". The HoloLens has been underwhelming for a lot of people, but I think even today at basically 5 years old, it still has a lot of untapped potential. ML is slightly cheaper than HL, which is always nice, and it's running an Android-like OS, which might bring more developers along (though personally I very much enjoy UWP on both desktop and MR Windows). We are so close on so many different concepts that incremental improvements can't come fast enough.

<comment><USER9> I would love an app that would render a 3d model in the real world. Imagine looking at the site of your new house with the latest plans from the architect and able to visualize exactly how it would look in it's surroundings.

<comment><USER10> The Ikea app can do this for furniture. I know hololens can do this for larger objects but I don't know enough about its "app store" to know if there's one for architecture. [http://elevr.com/experimental-still-lifes-and-landscape- inte...](http://elevr.com/experimental-still-lifes-and-landscape- interventions/#ali)

</comment></comment></comment><comment><USER11> Reminds me a lot of the introduction of the Iridium phone.

"Worldwide coverage! No more dead zones! This will change communications globally!"

Then they saw the phone. And its antenna. And learned it only worked outdoors. And cost $2,000.

~$6B in satellite costs.

It wasn't a failure (I still use mine once in a while), but it sure wasn't what people were expecting.

<comment><USER12> The second corporate incarnation of Iridium, which bought the whole network out of bankruptcy, has been extremely successful, however. It's the only truly global network that will function equally well in mountainous regions of northern Afghanistan, on the Antarctic polar ice cap plateau, in the middle of the south Indian Ocean, or elsewhere. The architecture and technology was _way_ ahead of its time, with Ka-band satellite-to-satellite trunk links between satellites following each other in polar orbits. And voice codecs built with 1996-1997 technology that can fit intelligible voice into about 3000 bps.

I agree that the late 1990s marketing which was trying to sell Iridium phones to international business travelers was ridiculous, however. Once the new Iridium corporation settled on the actually useful market of government, military, disaster response, maritime, expeditions and M2M data they've been wildly successful.

The second and third generation handsets (9555 and Extreme) are much more reasonably sized and closer in user interface to a modern cellphone.

<comment><USER13> > It's the only truly global network that will function equally well in > mountainous regions of northern Afghanistan, on the Antarctic polar ice cap > plateau, in the middle of the south Indian Ocean, or elsewhere.

Interesting. I only know a little about the market and products and always have been curious (and on the occasions I needed it, good info was hard to find): What about names like Intelsat, Inmarsat, Globalstar ...?

<comment><USER12> Globalstar is an epic turd, network architecture wise.

</comment></comment></comment></comment><comment><USER14> But is Techcrunch real anymore? 5 comments on their article and 4 of them are spam?

<comment><USER15> Not really, they are just another PR company at this point.

</comment></comment><comment><USER16> Are journalists that were given early previews released from their NDA obligations? I'd be really curious to hear some of them explain if the released product is indeed what they were shown.

</comment><comment><USER17> so, it's a more compact HoloLens, with better content/games?

<comment><USER18> >so, it's a more compact HoloLens, with better content/games?

No wireless. Less space than a nomad. Lame.

<comment><USER19> Looking back I wonder if iTunes might have been the secret sauce for the iPad to work, rather than the iPod itself.

<comment><USER20> For sure. I had a Rio player and an iPod. iTunes + iPod = music search, discovery, purchase, download, and transfer to device, all at once. For the Rio player I had to do all those steps manually.

</comment></comment></comment></comment><comment><USER21> 3DS did this in 2011 and it was better, too.

<comment><USER19> Faceraiders was great! It's a shame it didn't seem to go much of anywhere though for later games, it's a shame it and the Vita's more odd features didn't get more use.

</comment></comment><comment><USER22> That demo did look janky. Still promising in my opinion.

</comment><comment><USER23> Paid PR piece, anyone? And still the writer is reaching so far they're going all the way around the world back into their own ass trying to praise this thing.

<rant> I'm so fucking done with MagicLeap. Their head conman CEO, who is, absolutely and by all accounts, an absolutely fantastic showman and salesman, has taken so much money and so much hype that it's not going to end well.

Pretty much EVERYONE who has tried the magic leap headset has basically said 'meh'. It blocks around 85% of the incoming light [1], for fuck's sake. That's the first of a very long list of 'meh'.

Why am I so pissed off about this? Because it's going to crash the AR industry (already on its knees because of an overhyped VR industry) and set it back years. Already, and for years now, no one wants to invest in an AR hardware startup because "how could you possibly beat Magic Leap?

Fuck those guys. And the dumb investors who let themselves be fondled into throwing billions? Shame on you! </rant>

The same thing happened to lightfield imaging with Lytro (who took "only" a few hundred million in comparison). Lightfield imaging has been stagnant ever since they took too much money and sucked all the oxygen out of an entire industry.

[1] [https://www.kguttag.com/2018/09/26/magic-leap-review- part-1-...](https://www.kguttag.com/2018/09/26/magic-leap-review-part-1-the- terrible-view-through-diffraction-gratings/)

<comment><USER24> I completely get your rant, but I don't see it the same way with the VR stuff. There's REALLY good VR out there... I have an HTC Vive Pro and one of my primary uses of it is for training as I'm currently in flight training, and the immersion that I get using flight simulators in 3D is just stunning. When I'm not doing that, from exercise games, to social games, to first person shooters, I can't think of playing video games not in VR.

But between the headset, computer, and everything that goes along with it, I've spend > $4k on this setup. So I get it that this is not the typical VR experience for everyone, but the issue in this space is one of price. I can't believe that if that experience could be had for, say, $500, that we wouldn't be inundated in VR stuff. Contrary to what I've seen in AR; even the top of the line stuff is still just kinda "meh"

<comment><USER25> What flight simulator would you recommend I use it with?

<comment><USER24> Depends on what you are looking for. For me, systems fidelity and ability to custom design scenarios is most important, so for that I recommend Prepar3D (Lockheed Martin bought FSX and kept developing it).

Even multi-million dollar level D simulators don't quite do a good job at recreating the flight control feels, so I've given up on that altogether. But some features of the flight model --- things like P-factor, adverse yaw -- are better modeled in X-plane, and visually (at least out of the box), it beats the competition.

But the most immersive experience has got to be Prepar3D coupled with payware aircraft from PMDG. I know real Boeing airline pilots who actually have used it for training, and vouch for how well the systems are modeled.

</comment></comment></comment></comment><comment><USER26> This cost 2.3B? 2.3B?! Its projectors and a couple of wave guides glued together. You could go to the moon with that cash.

Capitalism needs a reboot.

<comment><USER10> No, it costs $2,300. They have developed the tech to do multiple stacked waveguides (12 I think?) but this device only does 2, probably for price reasons. Anyway the company is valued at $4.5 billion which has nothing to do with how much it will cost, only the amount of profit they think they can make from devices and patent licensing.

<comment><USER27> I think you misunderstood what he was saying. Magic Leap, as of now, has received $2.3B in the comments[1]. This is mentioned in the article's subtitle.

[1]: [https://www.crunchbase.com/organization/magic- leap](https://www.crunchbase.com/organization/magic-leap)

<comment><USER10> Yes but what they're buying is a share of the company and its profits. No one is paying $2.3B to develop the tech.</comment></comment></comment></comment>


Shared scooters should come with shared helmets - <AUTHOR> https://slate.com/technology/2019/03/scooters-helmets-required-bird-lime.html <comment><USER2> I've just returned from Melbourne, where helmets are mandatory for cyclists, and they do indeed provide helmets with _some_ , not all, bike share bikes. But you can also buy them in every corner shop and 7-11 for 5 AUD (3.50 US).

</comment><comment><USER3> I'd risk permanent brain damage over lice.

<comment><USER4> Also for these ? [https://joincoup.com/en](https://joincoup.com/en) And what about headrests in uber, taxis, &c ?

[https://en.wikipedia.org/wiki/Extreme_risk](https://en.wikipedia.org/wiki/Extreme_risk)

<comment><USER3> I suspect lice is more common than an extreme risk.

</comment></comment></comment><comment><USER5> This only provides a new means of defecating in _or_ on e-scooters?</comment>


That's only if you want to be a programmer - <AUTHOR> http://clipboard.com/clip/LQfctY7eHx-MszqkNa0glH2imr7PUl65poHe Any more tips in the same vein as this email? <comment><USER2> You're welcome for the self-promotion.

I feel that telling people to just blaze through functional programming is silly, as completely understanding CS roots (instead of sticking to today's easy languages) and understanding all the programming paradigms are important.

Good luck with that shamelessly using networks crap. It makes friends I'm sure.</comment>


Electric sheep - <AUTHOR> http://electricsheep.org/ <comment><USER2> If you like this, you should definitely checkout the gallery, the simple python source and all other beauties at Andrej Bauer's <http://www.random- art.org/>.

He has an interesting story of migrating from a ocaml + cduce implementation to one based on Django and javascript. The javascript source was generated by compiling the original Ocaml sources using Ocamljs. The newer version being based on javascript, one can run it in one's browser.

For the story: [http://math.andrej.com/2010/08/17/random-art-and-the-law- of-...](http://math.andrej.com/2010/08/17/random-art-and-the-law-of-rotten- software/#more-541)

<comment><USER3> Both grad students at cmu SCS at the same time, too

</comment></comment><comment><USER4> For those interested in creating their own fractals, I've written a GUI editor in python for doing just that:

<https://launchpad.net/fr0st>

</comment><comment><USER5> In case you are thinking of running this, it is fantastically memory/disk space expensive. The fractals are rendered as movies and saved to your disk.

</comment><comment><USER6> This is pretty awesome! The site seems to be a bit overloaded though, direct link to youtube video with description: <http://www.youtube.com/watch?v=Mz2pThxf3YU>

Electric Sheep is a collaborative abstract artwork founded by Scott Draves. It's run by thousands of people all over the world, and can be installed on any ordinary PC or Mac. When these computers "sleep", the Electric Sheep comes on and the computers communicate with each other by the internet to share the work of creating morphing abstract animations known as "sheep". The result is a collective "android dream", an homage to Philip K. Dick's novel Do Androids Dream of Electric Sheep.

</comment><comment><USER7> Thanks, glad you all like it.

This open source network is the popular side of my art. For a peek at the good stuff, see <http://picasaweb.google.com/scottdraves/Presskit02#> including the recent projections at MoMA.

You can download a sample at 1080p: <http://www.archive.org/details/HighFidelityDemo> (control-click the quicktime link and save to your desktop, skip the embedded player).

</comment><comment><USER8> I think the name misses the point Dick was making in the novel (and throughout a lot of his work). It's about what exactly makes us "human", and how maybe it's possible to create something find all the qualities that we believe define humanity outside of humans, thus taking value away from being humane, or maybe adding value to it. The question "Do androids dream with electric sheep?"is just an example of this. "Human is" is another excelent short story by Dick on the subject.

The fractals are very nice though =)

<comment><USER2> Have never been more touched by any other science fiction movie. It lingered within my mind for days.

<comment><USER8> The thing with Science Fiction is that it's hardly a genre. As Asimov shows in "The Caves of Steel", it's mor ofa set of conventions about setting and style that can be applied to basically any genre. So you have immensely varied works of sci-fi that have bassically no relation between one another. That leads to someone loving a work of science fiction, trying other science fiction looking for something similar, and fiding that there's nothing similar to what he liked in other works.

But if you are searching for something similar to Bladerunner, a TV series of the same vein and tone would be Ergo Proxy.

<comment><USER9> > The thing with Science Fiction is that it's hardly a genre. As Asimov shows > in "The CAves of Steel", it's mor ofa set of conventions about setting and > style

I respectfully disagree. Yes, a lot of writing gets lumped in as "science fiction" because it has space and robots and lasers, but you can look for science fiction as a genre. I define it as fiction that explores questions raised by developments in science and technology. "Do Androids..." was clearly sci-fi, dealing with questions about what it is to be human, but also about if we could create souls, etc. (As an aside, it's a direction of thought I really wish the new BSG would've focused more on, as opposed to mythology/political thriller)

William Gibson has been consistently good with writing what I describe as science fiction. So was Neal Stephenson (Cryptonomicon, Diamond Age, even the System of the World trilogy). Conversely, Star Wars would not be considered science fiction, just fantasy with spaceships.

<comment><USER8> So you would say "The Caves of Steel", "The men in the high Castle", "Flowers For Algernon", "The Right Hand of Darkness" and "Star Trek" are part of the same genre? I can't really agree with that, I can't not call any of those Science Fiction.

<comment><USER10> Well the Star Trek franchise had an episode touching on the ideas of the rest of them...Data playing Sherlock Holmes, a planet run by Nazis, temporary acquisition of special abilities and The United Federation of Planets. [Star Trek is the Kevin Bacon of SciFi]

<comment><USER8> You missed "The Right Hand of Darkness". And I admit I haven't watched too much Star Trek. But I think the point still stands that this works are clearly of different genres, and still it would seem wrong to say any of them isn't science fiction.

<comment><USER11> If you're referring to Le Guin's "The Left Hand of Darkness," I would propose that the Hainish universe's Ekumen and Star Trek's Federation share a similar flavor. Moreover, both bodies of work engage in speculative anthropology, although Le Guin's treatment has, in my opinion, considerably greater philosophical depth. This is not necessarily to dispute your contention, but just to point out that they share thematic elements beyond just the science fiction umbrella.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> I'd definitely be running this if I wasn't turning my screen off when I'm not using the computer, and if I didn't rather spend my CPU cycle on scientific/medical distributed computing projects (BOINC Rosetta@home, primarily).</comment>


Your phone number is all a hacker needs to read texts, listen calls, track you - <AUTHOR> https://www.theguardian.com/technology/2016/apr/18/phone-number-hacker-read-texts-listen-calls-track-you <comment><USER2> Is this true? Wouldn't encrypted Internet calls be protected on the mobile network?

 _So any choices that a congressman could've made, choosing a phone, choosing a pin number, installing or not installing certain apps, have no influence over what we are showing because this is targeting the mobile network_</comment>


Ask HN: What Is the Best University in Europe for MS in Computer Science? - <AUTHOR> Hi HN,
I would like to ask the same question asked 10 years ago here https://news.ycombinator.com/item?id=703346
Which do you think are the best universities in Europe, for a MS in the various fields of Computer Science? <comment><USER2> In the EU there isn't much of a ranking of Universities. It's practically more of a good-uni-with-proper-acceditation vs. the rest. At the same time, almost no company really cares what school you went to or what it was called.

The only real choice or 'best' is the surrounding ecosystem. Going to a university that has no internet connection will still get you the same information and skills but for most people having no internet isn't all that fun. Same goes for studying somewhere very cold when you like warm days, or somewhere warm when you like it cold.

If you want something 'extra' (which again, no company cares about) like prestige, you can make a list of all the places that have your preference to be (climate, language etc.) and then check what 'extra' things they have, like solar cars or public-private AI partnerships, or military applications or space/esa connections. It won't do you much good if that extra experience has nothing to do with what your goals are, and you can gain that experience without a university just fine.

Perhaps some context in the origins of your thinking/culture would be best. Most people assume USA mindset when this type of question gets asked.

<comment><AUTHOR> Thanks for the answer

The idea was to get a list of interesting places to choose from, apply to a bunch of them and try to have as much information as possible for choosing the final one

Another interesting question would be which culture would be the best fit for me, I hadn't thought of that, thanks

<comment><USER2> If you know what kind of topics you find most interesting, you should put that on your list of preferences (combined with culture, location etc). If you have a weird mix like Biomedical Computing, Program Correctness, Computer Vision and you really like SAT solvers, finding out where the hotspots for those topics are can help you select a uni. I know of a few people that selected based on professors that would be available to them, and some that were purely interested in getting into any of the FAANG, that does limit your options and as a result should make your list much shorter.

</comment></comment></comment><comment><USER3> 1\. ETH Zurich 2\. EPFL 3\. Cambridge 4\. Oxford 5\. Imperial College London 6\. TU Munich 7\. TU Delft 8\. KTH Sweden

PS: I have a MS CS from one of the above.

<comment><USER4> tl;dr For a MSc try to choose a department with strong faculty in your area of interest.

I've been both at Cambridge and Oxford. I think Oxford has had a much better CS department for a number of years. A lot of Cambridge faculty was hired by Microsoft Research long ago and they never recovered. Google Brain has also drained a lot of their talent lately, mostly from the Engineering Department.

Oxford has tons of famous people now: Luca Cardelli, Marta Kwiatkowska (formal methods), Yee Whye Teh (Bayesian non parametrics), Dan Olteanu (database systems) and others.

As for mainland Europe, I agree ETH and EPFL are probably among the top. I would also consider French CS, which is super good. Any French department associated with an INRIA in the topic you are interested in might be a great choice. In particular, ENS Paris might rival with ETH or EPFL in terms of quality.

Lots of smaller Scandinavian, German and Belgian / Dutch unies might be a great choice too. E.g. UCL Louvain, DTU, etc. It really depends on what you wanna do.

<comment><AUTHOR> How can I know if there is a "strong faculty in my area of interest"?

H-index on google scholar?

<comment><USER5> University Rankings are like the Body Mass Index of figuring out how good a university is - not entirely useless, but not to be used as anything more than a very rough gauge of what's going on.

That said, QS break down their (global) rankings by subject. Below is the link for computer science.

[https://www.topuniversities.com/university- rankings/universi...](https://www.topuniversities.com/university- rankings/university-subject-rankings/2019/computer-science-information- systems)

There's no easy way of telling how much better the nth-ranked university really is compared to the (n+m)th-ranked one, but it could be informative nonetheless.

</comment></comment></comment></comment><comment><USER6> > Which do you think are the best universities in Europe, for a MS in the > various fields of Computer Science?

I can only name the best two that are worthy of this for a Masters degree in Computer Science or similar.

Even 10 years later, it is still both Imperial College and Cambridge University in that order.

</comment><comment><USER7> In Greece the most famous one is CEID. Has produced quite a few strong engineers. No tuitions for Europeans, but classes are in Greek and the entry exam is a bit hard.

That said, I've worked with strong engineers that came from unknown universities. Loving what you do can get you far.

</comment><comment><USER8> I heard great things about both, Copenhagen and Saarbrücken

<comment><USER9> If in Denmark, then not Copenhagen for CS. Aarhus Uni instead. Much better research groups on Crypto, Algos, Prog languages, and Human-Computer Interaction

<comment><AUTHOR> Thank you! What about Aalborg, mentioned by another commenter?

</comment></comment></comment><comment><USER10> University of Edinburgh

ETH Zurich

TU Munich

EPFL

Cambridge/Oxford are _very_ overrated imho. I have a masters from one of them.

</comment><comment><USER11> My uni in Slovakia, Zilina.

just kidding, Aalborg.

<comment><AUTHOR> Interesting that two of the four commenters mentioned Denmark

Why Aalborg over Copenhagen?

<comment><USER12> While I know I discovered this thread late, I hope it's not too late to reply :)

Being a Dane it mostly seems to me that people defend their university a lot and it often correlates with where you grew up/went. So people saying Aalborg is the best probably grew up near Aalborg or went to study there. This is of course very anecdotal but when I studied CS in a CPH university nobody ever spoke of Aalborg. People spoke about KU, ITU and DTU. Sometimes Aarhus was mentioned.

Not saying Aalborg isn't great, but my general observation is people defend their university choice like it's holy. Probably the same in other countries :) so my suggestion would always be go where things are "closest to home". If you're a foreigner, pick the one closest to the airport for convience.

One example is from outside Denmark is another commenter in this thread mentioned the royal Stockholm uni, but forgot to mention Lund University (LTH) which is just as prestigious.

In the end I never noticed anyone caring except in jest. Never met anyone who cared professionally.

<comment><AUTHOR> Thanks for the answer! It's never too late ;)

I agree that everybody (especially professors) think their university is The Best™, for many reasons (probably if they didn't like it they would have gone to another place)

The idea of this thread was mostly to collect a (hopefully big) set of candidates to choose from, and choose between them based on available programs and general quality of life indicators (and average salary in the area...)

</comment></comment></comment></comment><comment><USER13> University of Warsaw

<comment><AUTHOR> Why do you think Warsaw is a top university? It's the first time I hear about it

<comment><USER13> It has a very strong math/cs department. (MIMUW [https://www.mimuw.edu.pl/en](https://www.mimuw.edu.pl/en)).

I've been doing my master's degree there. Although I've never finished the final paper, I consider it to be one of the best decision / time well spent.

Great staff. Professors are just awesome (some of them are also lecturing at abroad universities). Students as well. You will find the brightest polish minds there (the entry exam is not that easy, and big part of the students are math Olympiad finalists).

Courses:

1\. Logic - Poland has produced some of top logicians, you can see the inheritance during the lessons. Loved it.

2\. Compilers - you will be able to compile in head and on paper. JVM/LLVM/Assembly, you will learn how to write parsers, compilers etc.

3\. Cryptography - there are a lot of crypto enthusiasts in the department, you will learn anything you need.

4\. Parallel computing - access to super computers, programming Nvidia, verification.

5\. Seminars aka what you want to focus on, there's a long list from which you can pick from. My main focus was on game theory, and I've learned a ton and had a great support from professors.

Perks: FAAMGS companies line up couple times a year recruiting for internships and work (always seducing with free pizza). Some of the students I know spent every summer in Bay Area, and would accumulate enough money to live in Warsaw for the next academic year.</comment></comment></comment>


Sen. Minority Leader Charles Schumer speech on illegal immigration (2009 video) - <AUTHOR> https://www.youtube.com/watch?v=MOUGPqtxZSc <comment> at-fates-hands Interesting to note the DACA EO was signed when Democrats held both houses of congress and the White House. They could've easily passed it as a law but the constitutional challenges would have probably made it a short lived law. Instead, they took their chances with the EO route, opened the pandoras box and now Trump is trying to close it.

This is what happens when you decide an EO is better than trying to pass actual bills that then become laws. Trump is doing a lot of the same.

Sucks when elected officials are content to write part-time law in lieu of bills that require bipartisan support, communication and actual work to get passed.

<comment><USER2> > They could've easily passed it as a law

No, they couldn't, because they didn't have 60 votes in the Senate to break a filibuster; having _lost_ some Republican Senate support since the time shortly before when the bill past the House but died with 55 votes for and 41 against in the Senate.

> but the constitutional challenges would have probably made it a short lived > law.

The Constitutional argument (whether this is _correct_ or not, it is the argument that is made) against DACA is not that it isn't within Congress' power to do it (it very clearly is), but that the EO is not authorized by existing statute and, as such, impermissibly usurps Congress's Article I powers over immigration.

So, no, it wasn't done as an EO to avoid Constitutional challenges, those challenges exist _specifically_ because it was done as an EO.

It was done an EO because the votes didn't exist in Congress, particularly the Senate.

<comment><AUTHOR>
      No, they couldn't, because they didn't have 60 votes in the Senate to break a filibuster

Wrong on multiple counts.

1) they _did_ have a 60-vote supermajority[1] for much of 2009-2010, given that the two "independents" _always_ caucused with Democrats, and

2) the filibuster threshold was just a Senate _rule_ that could be changed at any time by the majority (and the Democrats later did exactly that).

3) at least four[2] Republican senators overtly supported amnesty and would not have supported a filibuster of any immigration measure.

[1] [https://en.wikipedia.org/wiki/111th_United_States_Congress#P...](https://en.wikipedia.org/wiki/111th_United_States_Congress#Party_summary)

[2] [https://en.wikipedia.org/wiki/Gang_of_Eight_(immigration)](https://en.wikipedia.org/wiki/Gang_of_Eight_\(immigration\))

<comment><USER3> The DACA EO happened in 2012, not 2010. It's not very interesting to argue whether Congress should have tackled a particular issue earlier than later; we could go round and round on that ad infinitum.</comment></comment></comment></comment>


Ask HN: Getting hired in brand new field - <AUTHOR>

I'm a long time poster, but I wanted to create a new handle to protect my identity.
I graduated with a BS in CompSci in 2006 from an above-average university and have been doing standard web development since then (both front-end work and PHP server-side) as I wasn't sure what I wanted to, career-wise.
For the past year or so, I've grown a bit bored of doing web work and have realized that I really enjoy learning and doing more systems level engineering, specifically compilers.
Without any previous work experience in this fairly intensive area, what is the best plan of attack to get into the field of languages and compilers? If I build a serviceable compiler, would that enough to get into the door at some place like Microsoft or Adobe as a junior developer? I'd even be willing to work as an apprentice somewhere while learning the ropes.
Thanks in advance! <comment><USER2> Have you considered contributing to the PHP interpreter? This could be a interesting task that builds on your experience and showcases your talent.

Alternatively, you could work on the Javascript interpreter in Firefox or Webkit.

<comment><AUTHOR> I do enjoy JS, but I imagine there are only 2-3 companies hiring JS compiler writers, so I bet the competition is steep for those. That would definitely be a dream job, though!

And as for PHP, I've taken a look into its internals, and that's some rough stuff...

Thanks for the suggestions!</comment></comment>


Cybernetics and Ghosts (1967) - <AUTHOR> http://www.scribd.com/doc/36431641/Italo-Calvino-Cybernetics-and-Ghosts

<comment><AUTHOR> Much of what we read today is at least partially written, assembled, or curated by computers. But to what extent are computers creating literature?</comment>


Two Tor zero-days disclosed, more to come - <AUTHOR> https://www.zdnet.com/article/two-tor-zero-days-disclosed-more-to-come/ <comment><USER2> I gave up on the tor network a year ago. It's not the complete anonymous network it claimed to be anymore. Adapt or die, right?

</comment><comment><USER3> > _until the protests are over_

What protests he's referring to?</comment>


Why We Should Build a National Internet System Under the National Highway System - <AUTHOR> http://www.theatlanticcities.com/jobs-and-economy/2013/08/we-should-totally-build-national-internet-system-under-national-highway-system/6611/

<comment><USER2> Comparing Hong Kong to the US is disingenuous because of the capital costs required to wire up each area are orders of magnitude different.

If I recall correctly, the 90s was full of companies laying down huge swaths of optic fiber in the US, waiting for consumers to pay hundreds of dollars a month for ultra-high-speed Internet. Most of them went bankrupt before people started clamoring for high speed Internet.

Even now, people still want to keep paying $40 a month, but at the same time want telcos to completely upgrade all the infra to support gigabit speeds.

In Canada, HSI access doesn't generally come to rural communities with subsidization from the government.</comment>