737 karma · joined March 26, 2014
EDIT: lol apparently not many others.
Crytek is also German, right? So I have no idea how that works there.
If you want to enforce the code of conduct more strongly, fine. But highlighting political discussion as somehow worse than other kinds of discussion involving competing views is incredibly frustrating and only serves those who may benefit from engineers putting their political and ethical agency to bed in a work/work discussion context. Politics is about choice, its about reasoning out decisions and coming to a consensus on those decisions. Work life is not exempt from the scope of those decisions, and trying to keep that discussion out is a pretty questionable practice.
It's not "moving the goalposts", your claim was that welfare programs were "growing". The definition of beneficiaries and benefits hasn't grown probably since LBJ was in the white house, only the pool of retirees and disabled persons has grown. In other words, government hasn't changed anything to make the program grow.
> Should we throw people in prison for not living up to your moral standards and giving to the poor?
How many people are in jail because of tax fraud versus in jail for some form of theft of property? That's a good primo facie test to verify that this ideology even passes a simple smell test. Even if that did demonstrate a problem, this idea that there's anything nonviolent about your ideology is fucking bonkers. The non-agression principle is anything but: http://www.demos.org/blog/1/29/14/what-world-following-non-a...
Love the calls for civility from the person proposing that anti-discrimination laws were bad. Also "the free baby market" isn't really a leap from any of these hardcore libertarian views.
> In Western countries in general, social welfare spending is substantially higher now, as a percentage of GDP, than it was before the 1970s. Social democracy on the scale we have today is a relatively recent phenomenon.
This has absolutely nothing to do with program expansion, it has to do with an aging population. It's an increased percentage of GDP because the population is skewing older: https://www.cbo.gov/sites/default/files/cbofiles/images/pubs...
> Regarding your claim that welfare reform has had "horrendous" consequences, it is overly narrow and simply assumes no broader and longer-term negative consequences from compulsory income redistribution.
We can debate about how absurd it is to say that the 50% of the population who can't work (and would provide basically nil extra productivity to the labor force if they were unjustly forced to rejoin it) shouldn't have income redistributed to them, but I suspect this is a point of philosophy we'll never agree on.
Also love the revisionist history that welfare has in any way grown. It hasn't, in fact it's been scaled back dramatically since the 90s, and the consequences have been horrendous: http://www.demos.org/blog/2/12/16/welfare-reform-was-quite-b...
You also haven't done any work towards arguing against the fact that voters for Trump fundamentally don't live in areas with high immigrant populations or where their jobs were moved overseas. In other words the notion that Trump voters support immigration reform and trade protectionism because they have bad run-ins with our current policies on these issues.
Face it, Trump voters are bigots.
Also I'm not sure why that's important, is your assumption that Millennials don't have legitemate economic anxiety?
Also I've included polling data that is past the primary, and includes voter sentiment for the general election, such as the gallop poll. The trend towards upper-middle craftsmen jobs remains.
The first thing that's wrong about this is the assumption that the most economically disenfranchised vote at all. The least financially secure voters have some of the lowest turnout in America, with only about 20% of them voting [1]. These people fundamentally don't vote. The second problem is to try to pretend like Trump actually has a claim on the working class as his base to a greater extent than other candidates. He doesn't [2]. The median income on Trump supporters from the primaries was higher than that of Clinton supporters or Bernie supporters. He also claims a larger take of the wealthiest voters, who compose 9% of his voters in the primary, vs. Clinton and Sanders' 7% and 5% respectively. Fundamentally, his demographic skews more wealthy than the democrats.
A recent gallop survey with a large sample size shows that Trump's base don't live in areas that experience job loss due to companies moving overseas, nor do they live in areas with large immigrant populations [3]. They live in areas that are largely racially segregated (largely white). They have tradecraft jobs like HVAC repairmen, plumber, etc. and live relatively comfortably. Fundamentally though, these people have low exposure to people of color, which might explain their bigotry. Finally, surveys tend to show that Trump voters have a more negative opinion of muslims and people of color [4], which should be of no surprise.
So no, please pedal your "Trump's voters are the economically anxious white workers of America" narrative somewhere else. The truth is that Trump voters are bigots.
[1]: http://www.people-press.org/2015/01/08/the-politics-of-finan...
[2]: http://fivethirtyeight.com/features/the-mythology-of-trumps-...
[3]: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2822059
[4]: http://www.vox.com/policy-and-politics/2016/10/15/13286498/d...
Sequential consistency is basically the most lax model you can get away with in this case (and have it generalize to other similar operations). This is a very strong consistency model and weakening linearizability to this basically provides no advantage for availability. There is a proof that anything stronger than causal consistency cannot provide "total availability", which I'd argue is somewhat mythical anyways (except when you're colocated with where data is being stored).
My point here is that this is clearly a case where many of the strongest ordering guarantees are required to get the desired behavior, and subsequently availability must be sacrificed.
Most commonly things like this are done by somehow reifying the operation as data and attaching some information to determine ordering. One way would be to attach a timestamp to bank transactions. By itself, that would be enough to ensure bank transactions commute (but without bounds on clock synchronization, wouldn't guarantee that you see those operations in the order you issue them). You could also require a single consistent read to an account to get a state version number and attach an incremented version of that in your transaction. Ties in both cases could be resolved by account id of the person initiating the transaction.
To be clear: there's an economic tradeoff to make here that isn't identical at all scales. At a certain point, lost revenue due to user dropoff from availability is more expensive than users who stop using a site due to a frustrating experience (and sometimes that scale itself is the compelling feature able to stave off a user from giving up on your app completely). But in most cases, I think its advisable to start with stronger consistency semantics and only weaken them when a need presents itself. Hell, Spanner is the foundation for Google's ad business, if that's not living proof that you can preserve strong consistency semantics and keep your system sufficiently available, I'm not sure what is.
Your friend-state solution only protects the visibility of the post if the friend-state between the two users has not changed more recently than both the post and your version.
I.E.
Friend state 0 is we're friends.
Friend state 1 is we're not friends.
Friend state 2 is we're friends.
Friend state 3 is we're not friends.
I have friend state 2, and the post is at state 1. I accept my version incorrectly and am able to view the post, despite the fact that we're no longer friends.
I think you're misunderstanding what the problem is here. I want global consistency (really I want two party consistency) to prevent the said user from witnessing the unkind thing I posted about them. It's necessary that my own actions appear in their original order to me, but also to anyone else who is plausibly affected by their reordering.
The full example also involves posting on a mutual friend's wall and having that post hidden by unfriending. You could route all requests to fetch posts to the owning poster's pinned set of servers, but this would be extremely expensive. Sharding solutions also weaken availability guarantees, because you necessarily shrink the set of nodes able to service a request.
Whether or not its actually implemented with something like CRDTs in the real world isn't really my point, my point is that its a cherry-picked example of a system that clearly does reorder operations and has weaker-than-usual concerns about witnessing inconsistency.
My point in bringing that up is that applications don't present the appearance of appearance of entities separated in space, that's why weak consistency is unintuitive. We expect local realism from nearby objects the same as we expect behavior in an application that exhibits effects from our immediate actions.
> E.g. consider a forum system. It requires only a bare minimum amount of consistency. You don't want it to get badly out of sync, so that e.g. there's suddenly a flood of delayed comments arriving, but a bit works just fine. We have plenty of evidence in the form of mailing lists and Usenet, which both can run just fine over store-and-forward networks.
Most threaded or log-like things are examples that fare well with weak consistency (because they're semi-lattices with lax concerns about witnessing inconsistency). I'm not saying that there aren't examples where its a tradeoff worth making, I'm saying that many applications are built on non-trivial business logic that coordinates several kinds of updates where it is tricky to handle reordering.
> They'll remain available to the portion of nodes that can reach a majority partition. In the case of a network partition that is not at all guaranteed, and often not likely. These solutions are fantastic when you do need consistency, in that they will ensure you retain as much availability as possible, but they do not at all guarantee full availability.
Weakly consistent databases can't guarantee full availability either when a client is partitioned from them. In fact there's no way to guarantee full availability of internet services to an arbitrary client. I think the importance of network partitions is somewhat overstated by HA advocates anyways. They're convenient in distributed systems literature because they can stand-in for other types of failures, but link failures (and other networking failures, but link hardware failures are disproportionately responsible for networking outages[1]) happen at an order of magnitude less than disk failures.
> In instances where you can safely forgo consistency, or forgo consistency within certain parameters, you can ensure full read/write availability globally (even in minority partitions) even in the face of total disintegration of your entire network. But more importantly, it entirely removes the need to limit throughput based on replication and synchronisation speeds. This is the reason to consider carefully when you actually need to enforce consistency.
I'm all for giving careful consideration to your model. And I agree, there are several cases where weakening consistency makes sense, but I think they are fairly infrequent. Weakening consistency semantics per operation to the fullest extent can add undue complexity to your application by requiring some hydra combination of data stores, or come at a large cost by requiring you to roll your own solution to recover some properties like atomic transactions. You called this "laziness" earlier, but I think this is actually pragmatism.
[1]: http://research.microsoft.com/en-us/um/people/navendu/papers...