thejerz
Joined 14 years ago
Joined 14 years ago
This assumes you'll know if passwords were exposed in a breach. Some breaches go undetected.
It's called Amazon.
An economy is an inanimate object; it can't #{active_verb} something. This may sound nitpicky, but: language carries meaning; language influences perception; and, in this case, language ascribes blame.
Insofar as Ameirica is concerned, the contractors working for gig apps, like Uber or Postmates, have chosen not to exercise their rights to worker protections. Even as contractors, giggers have a legal right to unionize, collectively bargain, and form a cartel to demand better compensation. These people have chosen not to.
That's not to say organizing is "easy" -- especially when you're living paycheck-to-paycheck -- it's not. But, to the degree that contractors are upset enough to act, organizing is feasible and achievable.[1] Self-organization is the free-market solution to a person feeling exploited or trampled upon by his boss. No government intervention is required.
Given that the right to exercise collective bargaining is a choice, and afaik the majority of giggers do not collectively bargain, the rational conclusion is that these gig contractors aren't upset enough about the terms of their gig to take action.
Here's the bottom line: Google didn't have to call it's resizable array java.util.ArrayList<E> -- it could have made android.data.ResizableArray<E>. But they didn't. Google copied the method signatures, and more importantly their organization into packages, to avoid the "drudgery" of defining their own original API. While a function that finds the minimum of two numbers -- int min(int a, int b) -- can arguably only be written one way and may not be enforcable, the issue isn't any one method's signature. The issue is that the Java API is an original, curated taxonomy of classes, methods, and interfaces, organized by authors. And taxonomies are protected under copyright. In the case of the Java API, the whole API taxonomy is greater than the sum of its method signature parts. Oracle owns that taxonomy.
1) Why use Scala to write (a relatively simple) internal CMS?
2) Why use a clustered database for 2 million records?
3) Why write your own proxy? (in Akka, none the less)
4) Why would you migrate articles from Mongo to Postgres using a script that runs overnight in screen?
The Guardian is, prima facie, a Wordpress blog. A simpler architecture would be:
1) Any CRUD web framework to build the CMS for reporters to draft their articles (Django, Rails, etc). Any basic RDBMS with read replication will do. Or, ditch the webapp entirely and just make a simple Markdown editor that commits to a git repo, a la Prose or Netlify.
2) When a reporter "publishes" an article, generate HTML for it and push to the CDN network. (I can't easily tell by looking at their HTTP headers, but I assume they're doing this already)
Okay, I'm being a little tongue-in-cheek. It's probably not that simple. But, one has to wonder, when you're serving up 100 million static HTML pages a day, if it really has to be this complicated.
Exceptions in Ruby, Python, Java, C#, etc. are a tried-and-true paradigm for handling unexpected code paths, with a clear syntax: the only problem with exceptions is that developers don't use them, or don't use them properly, or aren't forced to use them (e.g, checked exceptions, a la Java's throws), all of which can be fixed with compilation rules.
As someone who writes defensive code, and utilizes a lot of exception throwing/handling for 14+ years, Go's lack of a rational exception framework is a big turn off.
Here is a list of the most common ways that humans think illogically: