I think I understand the case you're making - that generic solutions are generally preferable to special-case solutions. That's a sensible enough position to take.
But it's pretty unreasonable to call it _bad design_ in a vacuum, as if there are no obstacles to a more generic design. The reason something like do-notation wasn't chosen is that nobody figured out a way to implement it without major trade-offs. So the alternative you're championing here either isn't possible within the constraints of the language, or the solution hasn't been discovered yet. The `?` operator was a pragmatic compromise.
I'm with you 100% that it is a shortcoming, but you can't really call it bad design given the reality of the situation. Compromises aren't bad design.
Not all for-profit websites are run by big corporations. The companies you're describing here are also the ones that will find it easiest to comply with these new regulations. YouTube for example was already pressured to create a filtering system, ContentID. Behemoths like Facebook will have a far easier time adapting than your typical startup.
Article 13 dooms smaller companies and startups, thus further entrenching these big corporations. There was a provision added to Article 13 to protect "small and medium-sized enterprises", but according to the EFF [0] this "protection" is fatally flawed. It only protects them for 3 years, or until they attain 5 million unique visitors, or until they attain annual revenues (not profits) of €10 million.
That's not to mention that the exceptions for not-for-profit services also has been regarded as vague, which could be problematic.
I have a platform where teenagers can easily create and share games. I'm currently based in Belgium, but with this new revelation, I'm forced to move abroad with my company. (I already checked I could create a Delaware inc)
Europe tries to catch up to the Silicon Valley startup scene. But stuff like this makes it pretty clear that EU is too retarded.
Right now, when one of my users uploads copyrighted material, I can take it down when I see it. Or when I get a complaint (DMCA takedown).
We're taking about teenagers here, so it's not always clear to them that they cannot use ripped sprites from other games, or music, or whatever.
Basically I can make the uploader responsible for what they upload.
The secondary problem is that my biggest competitor also has a lot of copyrighted material, so I'm already very careful with that not ending up on my platform.
With this new law, anyone can sue me if there might be some sprite on there that they created. If I was my (non-EU) competitor, I would anonymously upload some of my own content to sue the EU company. Basically I'm a sitting duck.
I'm currently working on my platform alone, so implementing a filter is impossible. Even with a big team it would be impossible, since slightly modified sprites are derived works and so also copyrighted.
But if I'm outside of the EU, I can just block that region (not the biggest one anyway, and after the UK leaves, not a single native English speaking country in there).
If I get a competitor from the EU in the far future, I just do the upload & sue trick.
If it keeps going like this the EU is gonna waste all its capital and become poor. Yeah, it looks like economy is still running, but you can't escape the laws of economics. Many don't see it because they're not into politics, but the EU, Germany, France, Italy are making an article 13 for all kind of industries, every day. Eventually you run out of capital (including willpower and time) and a slow descent become a collapse.
Of course since I'm just a nobody on a forum what do I know.
yeah cost of creating new business is going up, taxes and red tape around existing business are going up, taxes to the middle class are skyrocketing, welfare is dropping and everyone's wondering "why is Europe having a youth unemployment problem"?
Europe is not that valuable a market for advertising platforms. There is a reason why companies choose to monetize the US first before even attempting to monetize internationally and that is because US advertising revenue per impression is almost 3x what you can get in Europe.
I'm not arguing with that (I would also add that language fragmentation is still a problem). But it does not justifies incorrect blanket statements like above.
It depends on what you mean by rich.
From a GDP PPP perspective there are issues on short, medium and long term when compared with other countries.
For example:
China is richer than the whole of the EU (incl UK).
US is almost as rich as the EU.
India is 1/2 and Japan 1/4.
The EU isn't close to as rich as the US, the parent comment was far off the mark.
Not only does the US have about ~40% of all the millionaires on earth all by itself, its GDP per capita is 77% higher than the EU ($33,700 per capita per the Worldbank 2017 figures; versus $59,700 that year for the US). Its nominal GDP is also about $2 trillion higher, despite having roughly 200 million fewer people.
PPP is a near worthless measurement if you're a business trying to sell goods. It's the absolute last thing you'd rely on to gauge the pricing power in a market for a product or service.
> This kind of behaviour is going to lead us to having two seperate internets.
No, EU kind of behavior does, just like China behavior.
> True, but does it need to be the biggets to be valuable.
I have lots of users in US, Australia, New Zealand, various Asian countries, and UK. Focusing on them allows me to skip translations.
> europeans can very often (region dependent) read/write english anyway.
As a European myself (Belgian), I know this very well. The Netherlands and Flanders are probably leading in this. But the bigger countries such as Germany, France, Italy and Spain prefer translated software. Just look at the dubbed movies they watch.
It's a lose situation anyway for me, there is no question about that.
Your platform needs to make at least x million a year and have userbase of x million and exist for at least x years. Only then the filtering is mandatory...
>Article 13 dooms smaller companies and startups, thus further entrenching these big corporations.
Only "smaller companies and startups" whose main purpose is "enabling users to upload and share a large amount of copyright-protected content with the purpose of obtaining profit from that activity". That's what the document says; how it will actually be enforced is still a mystery, of course.
P. S. I have pointed to that "protection" on a previous comment [0].
It looks like you're still using Neo4j 2.3. Have you tried using newer versions of Neo4j? There have been some pretty substantial performance improvements.
Additionally, Neo4j does support clustering with their Enterprise edition. It also has much better tooling (better metrics/logging, backups, etc.). It is AGPL licensed, so there's no reason not to use it really.
The Enterprise Edition is not AGPL. It's under one of "Neo4j Commercial License", "Neo4j Evaluation License", "Neo4j Educational License", or "Fair Trade Licensing". In other words it's not free.
Why would I want to use the "Community Edition" of a company whose interest is to force me into buying their Enterprise Edition? The more people use this "Community Edition", and the more they are encouraged to force their "Enterprise Edition" under my throat, because "it will be easier to buy a proprietary plugin than change database". They are already restricting the use of important features such as "Unlimited graph size", "Database storage reallocation", "Schema constraints", "Runtime to accelerate common queries", "Role-based security", "Kerberos Security", "Load balancing", etc. Why would I want to get into this?! I'd rather spend my time learning and contributing to Jena or Janus than a bait "Community Edition".
The "enterprise edition" is AGPL. Feel free to interpret it differently then Neo does, but the license is AGPL [1]. Anyways, I don't understand the hostility. They're tying to walk the line between a profitable company selling software while still doing it all in the open. The fact that they kept things open source and not closed was one of the things I loved about working there.
So, are you saying that Neo4j is 100% free as in "100% AGPL, otherwise Commercial License if you don't want to use the AGPL"? In other words, the code is exactly the same, only with a different license?
According to [this page](https://neo4j.com/editions/) it's not. In fact, they are restricting important functionalities to their Enterprise Edition exclusively. Which means, the codebase is not the same.
Yes, the Community Edition and the Enterprise Edition are different. Certain functionality is restricted to the Enterprise Edition. It's a different codebase. I didn't say otherwise.
See how there are 'community' and 'enterprise' top-level directories? The 'enterprise' directory contains the enterprise-specific code. It's a separate project in some senses but it does share the same repository, and it is open source.
If you have not executed a Commercial Agreement with Neo Technology, the
Software is subject to the terms of the GNU AFFERO
GENERAL PUBLIC LICENSE
Version 3, as follows:
It is AGPL; it's dual licensed. You can use it freely under the terms of AGPL, or you can enter into a commercial agreement with Neo Technology and use it without the restrictions imposed by the AGPL.
>However, I am one of those people who think that Babel6 is terrible, that it "broke the web", and it marked the beginning of the entire JavaScript fatigue era.
Granted, I wouldn't consider this a personal attack. But it definitely qualifies as negative and nonconstructive.
I literally can't imagine how one could argue that they "broke the web"; that's completely ridiculous. If the migration path wasn't explained very well, why not say that? Or if you find configuring the tool confusing, and would prefer it to have "sane defaults" in the absence of configuration, why not say that? Instead of calling it terrible and blaming it for the "javascript fatigue era".
They realized that what had once been "sane defaults" were no longer sane, so they removed them. That's it. I can accept that there were legitimate complaints to be made, but the hyperbole and general negativity was over the top on this one.
This is fine, if there would be a nice documentation for new version. There wasn't, except for some scattered blog posts.
This is fine, if new version offered some exciting new features or simplified thing a lot. But no, everything became significantly more complicated.
This is fine, if Babel was a production library packed into final build, and modularity is necessary to save precious bytes from web-transmitted JS. But no, it is a development tool. Nobody cares about its size or one-size-fits-all.
I just don't understand. What is the use case that required such a big sacrifice?
To address the other points you raised; I personally found Babel 6 easier to use and understand than Babel 5. I suspect this is because I needed to configure Babel 5 anyway to meet my needs, so I was required to understand the configuration either way. Babel 6 made it much easier to understand what I was asking Babel to do; no magic, everything explicit.
With version 5, the default settings were a moving target (which I found confusing), and explicitly configuring it was more complex. Apparently the Babel team had great difficultly deciding what should be included by default as well.
Basically anybody that used Babel for something other than "6to5" had to jump through hoops to overwrite the defaults. Seeing as how the Babel team were trying to position it as a general purpose Javascript compiler, that was a problem for them.
So, maybe it's worse off for most people because of the change (because it doesn't work with zero configuration anymore), but plenty of people were better off because of it. The library became easier to maintain, and easier to use for a non-negligible number of users.
The major point of frustration was JSX preprocessing for React.
Need JSX? You have to use Babel. There is no zero configuration for Babel anymore, so you have to spend time learning it and resolving numerous build conflicts with cryptic error messages.
Todo list example with React+Redux+Babel6 takes 14 JS files, Babel configuration file, Webpack configuration file and Node package file to be written anew. This is what "Javascript fatigue" is about: when you get to the working first example from the documentation, you will be completely exhausted.
The amount of boilerplate with this "standard" setup is worse than with Java/Maven, and this is quite an accomplishment. :(
No arguments about the poor documentation on how to migrate; that's fair.
But we're straying from the point I was trying to make; your feedback was overly negative and hyperbolic.
We're all guilty of doing this at times, but it's not a constructive activity to engage in. I don't fault you personally for making one overly negative comment, but en masse it's harmful for the community.
The rule changes made... around 2 years ago now I think? Kinda made this complaint obsolete.
They changed it to allow your ratio to dip well below the "required" ratio as long as you kept seeding. Keeping your ratio up wasn't strictly necessary anymore - though it was still required to keep your "rank" and the little perks that came with that. The admins did this largely in response to their inability to "fix" the ratio economy that overly disadvantaged people with low bandwidth.
It's an act that has been performed by Buddhist monks for many reasons, political or otherwise. I don't think you can make the distinction you're trying to make here.
My impression is that while the impetus could be called political, removing the religious factors here would be far more disingenuous (especially considering the history of self-immolation: https://en.wikipedia.org/wiki/Self-immolation#History).
If you read that last wikipedia page about self-immolation that you linked, you'll find out that:
> Jimmy Yu has shown that self-immolation cannot be interpreted based on Buddhist doctrine and beliefs alone but the practice must be understood in the larger context of the Chinese religious landscape. He examines many primary sources from the 16th and 17th century and demonstrates that bodily practices of self-harm, including self-immolation, was ritually performed not only by Buddhists but also by Daoists and literati officials who either exposed their naked body to the sun in a prolonged period of time as a form of self-sacrifice or burned themselves as a method of procuring rain. In other words, self-immolation was a sanctioned part of Chinese culture that was public, scripted, and intelligible both to the person doing the act and to those who viewed and interpreted it, regardless of their various religion affiliations.
Of course, as the wikipedia article says, "Since 2009, at least 120 Tibetans have self-immolated, more than 40 have died". But later on, you we read, "In 2013, the Dalai Lama questioned the effectiveness of self-immolation as a demonstration tactic. He has also expressed that the Tibetans are acting of their own free will and stated that he is powerless to influence them to stop carrying out immolation as a form of protest".
There are a quite a few Buddhist monks who perform acts that are clearly contrary to the Buddha's teachings. Self harm is a very obvious one. A monk commits suicide for whatever reason and that implicates Buddhism? I don't think so. I think it's a dramatic demonstration of failure to overcome attachment to an idea (although he certainly overcame attachment to his body).
This of course was political, much as it is today in Tibet.
As an aside, I've always found the way in which East Asian Buddhists held firm against cultural invaders, extremely inspiring. In India, there seems to be little other than memories of conspiring with the colonizers for profit.
"It's disingenuous to attribute that act to Buddhism; that was a political act."
I would argue a Buddhist would describe it as a completely 'apolitical' act :)
But I think it's fair to associate such things with Buddhism, or at least specific branches of it, because it's a pattern of behaviour and an attitude, not particularly common elsewhere, and the act itself is to some extent consistent with their actual beliefs and value system.
But it's pretty unreasonable to call it _bad design_ in a vacuum, as if there are no obstacles to a more generic design. The reason something like do-notation wasn't chosen is that nobody figured out a way to implement it without major trade-offs. So the alternative you're championing here either isn't possible within the constraints of the language, or the solution hasn't been discovered yet. The `?` operator was a pragmatic compromise.
I'm with you 100% that it is a shortcoming, but you can't really call it bad design given the reality of the situation. Compromises aren't bad design.