This sounds like it would break a bunch of email address verification systems, password recovery links and the like. I wonder if indeed it does break them, but since it only affects smaller websites nobody seems to care.
On non-jailbroken iOS devices the only way to install apps is through the App Store or through some convoluted methods which involve having a developer account (which you must pay yearly for), and I believe the % of jailbroken iOS devices is much much lower than the % of people willing to install Android APKs outside of Google Play, anyway. Sure, they _could_ do that for few people who have jailbroken iPhones, but doing that is pretty much like giving up on their iOS app altogether.
I had heard about this giant JSON from friends in the GTA V modding community. OP's idea of what it is used for is right. My guess is that this JSON was quite smaller when the game released and has been increasing in size as they add more and more items to sell in-game. Additionally, I speculate that most of the people with the knowledge to do this sort of profiling moved on to work on other Rockstar titles, and the "secondary team(s)" maintaining GTA Online throughout most of its lifespan either didn't notice the problem, since it's something that has become worse slowly over the years, or don't have enough bandwidth to focus on it and fix it.
It's also possible they are very aware of it and are saving up this improvement for the next iteration of GTA Online, running on a newer version of their game engine :)
Based on what I saw in past discussions, I'm pretty sure that the takedown was not a run-of-the-mill scraper-based takedown (it makes no sense to be taken down just for linking to videos which, at best, is what any scrapers would have seen in the original test code). It was very much an intentional, manual one with actual lawyers behind it.
MySQL not having a proper type to express time spans seems like a fault to me, and "poor design". Of course you can just use an integer for it, but that is a slippery slope, in the end you'll find that you can use strings or byte arrays for everything and you end up with no type system at all.
The surprise here is not that the type has limits but that they are so awkward and that there is no better strongly-typed alternative.
I, too, develop for Android and, like you say, we have the "luxury" of being able to do it on both Windows and Linux (and macOS as well, if I wanted). Even .NET development is more cross-platform than ever, with .NET Core.
One of my points was precisely that developers were an exception in this regard, as our tooling is generally cross-platform. You can't say the same about people who do their work primarily using Adobe tools, for example.
And even developers sometimes don't have this luxury: for example, if you do iOS development, to publish on the app store, at some point you must use a Mac to sign the app. Of course you can use stuff like Xamarin and use the Mac exclusively to sign, but this is often inconvenient compared to just using the officially endorsed stack.
Overall, requiring a "traditional desktop operating system" to work is less and less the case for the general population.
The way I see it, "desktop-dependent workflows" overlap more and more with those "Windows-dependent workflows". Nowadays, most people don't need more than a web browser, and in that sense they do just fine with a tablet or phone (where iOS and Android dominate, and GNU/Linux is not really a viable option, at least not yet), or a Chromebook (yes, it's Linux, but it's mainly just Chrome).
Most people I know with a legitimate use for a desktop also have legitimate reasons to use Windows or macOS: gaming on Windows, content creation on Windows or macOS (graphics designing, video editing, ...), and MS Office lock-in. The only exception I can think of are developers, but even then, depending on the kind of development one is doing, using Windows or macOS may be the only choice.
I agree with you on the clipboard thing, but as with every other API that gives access to sensitive information, they could have put it behind a permission prompt. It wouldn't make the situation worse than it is now, and wouldn't annoy users and developers nearly as much.
You might be pleased or displeased to know that at Técnico they no longer teach Scheme in the introductory programming course, nowadays it's Python. When I did the AI course, the project was still to be developed in Lisp, but more recently I recall hearing that they were thinking of switching to another language because "nobody can stand lisp". Fun fact: one of the founders of Siscog, Ernesto Morgado[1], is big in the rice business, and is/was the president of multiple rice millers associations. Both Pavão Martins and Ernesto Morgado still lecture at Técnico.
This started as more of a statistics page for the service interruptions published by the Metro on their website, which I scrape. The slight tongue-in-cheekiness of my website, which opens up with a large text saying something like "XX days since the last disturbance", where XX is usually a single-digit number, made it become mildly popular (at least in terms of what I'm used to).
This particular subway system doesn't operate on a fixed schedule and doesn't show the ETA for the next train outside of the platforms nor on any app or website. (Google thinks there's a schedule, but they've been fooled.) They also don't publish usage stats for each station, which would be of great interest to everyone who likes daydreaming of expansions, network reorganization and the like. Furthermore, I read and heard multiple reports of delays and interruptions that never made their way to the website. So I decided to build a Android app to unobtrusively crowd-source data and communicate the service status back to the users...
...and the very ambitious goal is to, one day, be able to calculate train positions and ETAs based on real-time data reported by the smartphones of people riding the subway. Pretty much "Waze for the Lisbon Metro".
Yeah, I've put months of work into this and there's absolutely no business plan; it perpetually feels 5% complete. But it's been fun putting together my second Android app, playing around with Postgres (after many years using MySQL), designing the REST API and writing the server in Go. I plan to use this big project as my sandbox for experimenting with machine learning and other AI techniques, as well as data analytics and visualization. There's already a small but extremely interested group of users, which really motivates me to keep working on this.
For a perhaps more well-known example, see the Raspberry Pi Foundation. They sell, obviously, Raspberry Pis - a lot of them. They are a charitable organization, which is a type of NPO.
I own a Surface Pro 3 with the SP4 type cover (i.e. the version before the one that just came out and which is basically the same). I thought I'd miss all the keys from my laptop and desktop keyboards. Turns out, there are lots of hidden shortcuts. I got used to doing Fn+Arrows for Home/End/PageUp/PageDown and now I wish I could use that on other keyboards too. To me it's easier than having to reach for those keys when they are to the right or to the top of the keyboard, so much that I think I type a bit faster on the type cover, as long as I'm properly seated and the keyboard is on a solid surface (e.g. a desk).
I find the keyboard very good (the right menu key is a bit useless, but you can remap that using many methods) and the touchpad is the best I've used too, although it's probably not as good as the ones in Macbooks.
If the keyboard is the only thing holding you back, rethink it. You should be more worried about the price and the kickstand which is not a problem for me but might be for you, especially if your legs are short and you intend on using it on your lap a lot.