2,318 karma · joined May 31, 2016
Examples of things that C# has over Java:
- Operator overloading: .Add() is really not that much more annoying to write...
- Properties: Shorthand for getters and setters, because auto-completion isn't a feature in IDEs since forever. And, like Java, they've introduced lambdas, but have then also changed the automated code generation of Properties in their IDEs to use lambdas, because apparently even an IDE needs to be lazy and give junior devs a harder time.
- The out-keyword: Somewhat formalized way of passing along a variable to have it populated via side effects by a method. In Java, you'd refactor your code to not need two return values, or you'd return an object with those values in class variables (or you'd just do this dirty side effect method without telling anyone).
For launching multiple profiles in parallel from the command-line, I already tried to explain it in my previous comment, though it is more finicky that way.
It's also very much expected behaviour for many users, to be able to reopen tabs and I'd consider it a bug, if I weren't able to.
What's more, Chrome has you covered for actual privacy concerns.
When you use Chrome Sync, Google gets your browsing history and bookmarks in readable form (and they declare that they use these in their privacy policy). Which means US intelligence agencies, as well as befriended intelligence agencies from other countries, also have access to your data.
When auto-filling data, Chrome will fill out all input fields on a page, even ones that you cannot see. So, dodgy webpages may very well have your address, phone number etc..
Chrome's extension store also has a massive malware problem. Mozilla has human reviewers to prevent this and also requires extension to get user consent for internet connections that are not necessary for the functioning of the extension (telemetry, ads).
To sort of mitigate this problem, Chrome doesn't allow extensions to run in Incognito Mode, which however also locks out privacy enhancing extension. Firefox also blocks tracking scripts and similar in Private Browsing mode by default.
You can type "about:profiles" into the URL-bar to manage your profiles (which you can also bookmark for easier access).
You can also run "firefox -P" in a terminal to access a similar GUI. With "firefox -P profile_name", you can start a specific profile. To run multiple profiles in parallel from the CLI, you have to start further profiles with "firefox -P profile_name --new-instance" (Linux) or "firefox.exe -P profile_name --no-remote" (Windows). This is because when you click on a link in an application, it needs to know in which browser instance to open that link.
As for resource usage, the profiles separate everything. Browsing history, bookmarks, logins, add-ons etc. It's essentially like a second Firefox installation. This also means that it actually runs two instances, so twice the RAM usage and somewhat more CPU usage to move that data around.
The Container Tabs on the other hand only separate what needs to be separated in order to look towards webpages like two different browsers. So, there's a different cookie jar, different localStorage, different HTML5 Web Storage etc., but other than that it's the same as just opening two tabs. So, probably not even 1% more RAM usage than using Firefox without any separation.
I think, the Windows Task Manager groups processes in the most stupid of ways, where when a (parent-)process has spawned many child-processes, then only the parent-process and its resource usage is shown. You have to go into the "Processes"-tab to see all Chrome-processes and manually add up their resource usage.
So, there's actual clear specifications of what they're allowed to do and what not. I don't know the exact ramifications either, but some important points are that they're not allowed to keep more than a set amount of money and that any money they get a hold of, which exceeds this amount of money, they have to invest into their specified mission (which in the case of Mozilla is to make the internet a healthier place: https://www.mozilla.org/en-US/mission/).
They are allowed to pay people appropriate wages, but as you've already pointed out, there's no stock holders. No one gets paid out extra money when they make extra profit. They are legally bound to reinvest this money into their mission.
And there's also the Mozilla Corporation. The Corporation is not legally a non-profit. So, they don't get tax exemptions, but can keep around as much money as they want. So, in a way, they can make a profit, which is by increasing the amount of money they keep in their bank account.
However, they are a 100% subsidiary of the non-profit Mozilla Foundation. So, the Mozilla Foundation is their only stock holder. If they do make extra profit, they either have to reinvest it right away, put it on their bank account to reinvest later, or they can pay it out to the Mozilla Foundation, where it's again in non-profit hands, and is therefore legally enforced to be reinvested into Mozilla's stated mission. In other words, it's not possible for the Corporation to make profit which is not at some point reinvested.
The Corporation being a subsidiary also means that the Mozilla Foundation holds sovereignty over the Corporation. They can throw out Mitchell Baker (Executive Chairwoman) or Chris Beard (CEO) and set their wages.
So, the Corporation has motivation to make a profit, because the Foundation could throw out their key people, which in turn could throw out any slackers within the Corporation.
The Foundation also continues to hold the Firefox and Mozilla trademarks and has the final say of what's included into Firefox's source code.
The same is obviously true for Firefox, with Mozilla being the gatekeeper, but this is where non-profit vs. for-profit does come back into play.
As for bad things in Chromium, as well as a fork that tries to fix it: https://github.com/Eloston/ungoogled-chromium
As for news articles: When Mozilla does things, they're open about it, which is why news articles get written about their fuck-ups. And they're held to a much higher standard by journalists, as they are a non-profit.
When Google does something shitty on the other hand, people are quick to dismiss it as them needing to make money somehow. And there's lots of instances where Firefox goes the extra mile, where Chromium conveniently forgets about it and then no one blames them, because it is the extra mile, not the standard among browsers.
A prominent example is Chrome Sync. It's not end-to-end-encrypted and Google does state in their Privacy Policy that they use the browsing history submitted to them with Sync for other purposes. Your browsing history being stored on Google's server in decryptable form also means that NSA, CIA, FBI have access to it. You can make it end-to-end-encrypted, which however requires a second password and is therefore something that only users will do that really care about it. Basically, it's there to calm those that would complain otherwise. Firefox Sync is end-to-end-encrypted by default, only one password needed.
And this is just the biggest and clearest example. We're talking about millions of lines of code with tens of thousands of design decisions. Google will have opted every time for the option that's not yet quite bad enough to gather bad press. Mozilla on the other hand has no reason not to protect users, if possible, even if it does not gather them good press.
The only way in which Firefox is actually more restrictive with extensions, is in requiring user opt-in for internet connections that are not necessary for the functioning of the extension (so that's usually telemetry or ads).
But if LastPass refused to function because it can't send data back home that's not actually needed, and which it can't reasonably explain to users, or because it can't load third-party content from the internet, which would be a massive security hole, then I strongly advise using a different password manager.
Overall, though, this sounds to me like LastPass is just too incompetent to port their extension, which again should not be hard as Firefox's extension API is essentially a superset of Chrome's.
And it's especially also a different source of income than search engines. They try to differentiate here, in case for example Google's monopoly becomes even more extreme and they push the price down.
And exactly in this vein, a big motivation for Pocket is competing with search engines in general. It tries to be another channel through which users can discover new content, so that Google can't determine everything you believe in without any hindrance.
They would not be able to recover your data upon requesting a password reset, if they used proper end-to-end-encryption.
...and it's terrible security and it's still prevalent installation method of downloading random binaries off of the internet and then executing them with administrator permissions.
Nowadays advertising mainly tries to sell things that people don't need. They can't use these like Farmer Joe to produce new value. Instead it harms the economy when people buy them.
There is of course something to be said about having luxury goods available as reward for people that do well economically, but it should not be the case that the poorest families feel like they need to buy overpriced Adidas shoes to be accepted in society.
It's nowadays central to advertising to build a brand image, to convey a feeling, to always play the same jingle. Which is psychological warfare, it carries essentially no informational value.
And with NTFS, this is much more severe than your example with ext2.
For one, ext2 is a niche filesystem at this point, users practically never interact with an ext2 filesystem. It's not the main filesystem used on Linux.
And secondly, as a user, I have created files with '/', ':', '*', '?', '"', '<' or '>' in the name ('\' and '|' are also forbidden on Windows, but I admittedly have not yet needed those AFAIK).
Not being able to use these characters limits the ways I can express myself in what a file contains.
For example, I've had to rename a list with different levels of grouping from
"List of members: City > Lastname > Firstname.pdf"
to "List of members - City, Lastname, Firstname.pdf".
And I'm still not convinced the recipients of that file actually understood that the levels of grouping were listed in the filename in the order from biggest to smallest grouping level.TCP also uses CUBIC. So, you would have just as well already been able to be a dick by configuring your CUBIC in TCP to be more aggressive.
Lots of research has gone into an optimal configuration of CUBIC for TCP, under the presumption that everyone will use this implementation, and therefore with the goal of optimal results for everyone.
QUIC now falls out of line because early adopters get better results, as they can unfairly compete against the fair TCP implementation. In the long term however, if QUIC is adopted by everyone, this will lead to a worse result for everyone, because this optimal configuration that's been researched under TCP has been thrown out for no good reason.
At least I'm not aware of a good reason. Maybe QUIC is actually somewhat less impacted by packets being dropped or something like that and does work better with everyone just trying to squeeze everything through aggressively, but even if that is the case, I cannot imagine it being the case to the degree that this CUBIC configuration has been made more aggressive.
2) We don't really know, Chrome is not open-source and it's hard to tell from network traffic, since nowadays pretty much every webpage loads something from a Google server in encrypted form anyways (and with those request, Google could send all kinds of data).
3) For Chromium (which's source code is basis for Google Chrome), this project tries to collect and fix all the privacy-infringing stuff: https://github.com/Eloston/ungoogled-chromium
4) There's many ways in which Chrome doesn't actively track you, but infringes on your privacy by just being terrible at protecting it from webpages' tracking. As in millions of lines of code, tens of thousands of design decisions, all made by the biggest tracking company on the planet. No journalist can report about all of these, but it'd be foolish to assume innocence until proven guilty.
But yeah, I definitely also see a lot more confirm-dialogs still.
Seems to be a classic case of such a UI pattern being great and hyper modern and marketable in 99% of cases. But if in 1% of cases, the user accidentally deletes a file that they didn't want to delete, then you lose that user in that exact moment.
That is, if you are not a preinstalled app. If instead you are Google, then users are generally not aware of alternatives and cannot switch away from your app, if this happens to them. They just live with your UI eating their files.
Not to mention that it was quite clearly their fault for not finding the Undo-button quick enough. Which is also generally an opinion that users manage to hold, who have not yet progressed to looking at alternatives of programs and comparing different UIs for their merits.
Well, and it is also much easier to quickly locate and hit an Undo-button on a small touch screen than it is with a mouse on a giant screen.
A particularly strong example of this is Meltdown and Spectre. The news around those came on public TV where I live. Now we've discovered more and worse vulnerabilities and even for me as someone who frequently reads tech news, I pretty much had to go out of my way to get information about them.
When you look at controversial topics with these two companies in them, you often see a whole load of negative comments and then one or two chains of comments that defend them, declare people being negative about it as being unreasonable and you generally have multiple accounts responding to each other, agreeing that this really isn't too bad. And of course, these comment chains have been voted to the top.
The last part doesn't have to be a result of astroturfing, HN's voting system encourages controversial comments, as more people are able to upvote than downvote comments, but yeah, that doesn't exactly make the platform as a whole a better place.