I just did a quick comparison for my personal use between these browsers and the only few things I considered were:
Performance: How smoothly the window resizes and the browser updates the layout.
The latest version of all 6 browsers have been used
All of them have 3 tabs on the same websites open (AppStore, Microsoft, YouTube)
The comparison has been on MacBook Pro (15-inch, 2017)
It’s not a through test just enough for me to see which one suits me
Here is the results.
In terms of performance Safari, Opera and Firefox are the best. The other 3 are laggy when resizing
It’a hard to tell which one is more efficient immediately as they all have side processes running but seems like Opera consumes least memory and Firefox uses the most.
Tracking CPU is even harder than memory but Firefox is always on top consuming the most CPU time and Safari is the most efficient one. Edge, Chrome and Brave are pretty much the same.
The Winner on Mac is Safari but it’s not a cross platform browser. The next Winner in terms of performance is Opera and then Firefox. Chrome, Brave, and Edge failed the first test so they are not even considered as options.
I used Opera for a week and it has these cons:
It has issue with location and google map couldn’t show my location OK.
It doesn’t have a good support and not listed as the supported browser for some websites.
Due to the limited support for import and export, it’s hard to switch from other browsers to Opera or switching back to them.
It doesn’t allow sending feedback.
The settings page is not well organized and it’s not easy to find the settings you need.
So switching to Firefox now.
Firefox has some rendering issues with the android app. Have to tradeoff between Chrome’s performance issue on Mac while resizing and Firefox rendering issue on the phone. The other issue Firefox has is, it sometimes doesn’t update the saved passwords (e.g. on Okta) but Chrome does.
Java doesn’t have the concept of delegate; instead, if you need a pointer to a function, you can create inline anonymous classes (or lambda expressions as of Java 8 ) which are implementations of certain interfaces designed for this propose (a.k.a functional interfaces as of Java 8). However as Java evolves, more of such interfaces are being added. While they may seem very similar and confusing, each of them has a unique characteristic which sets it apart from the others. You can map many of them to identical types in .NET. The following table lists some of the famous interfaces but there are many more. For example to support functions with two arguments, Java has another interface called BiFunction and if you need more arguments, you have to create your own interfaces. Remember that Java (up to version 10) doesn’t support identical class names if the only difference is number of type arguments. (In .NET there are various Func and Action types with up to 16 type arguments.)
Any input or data being imported may eventually end up in users’s browsers as part of an HTML page and you don’t want to send a malicious script to the them. Validating input and imported data is one of the ways to prevent clickjacking, XSS or stored CSRF flaws.
Any input or data being imported may also end up being inserted into your database, so make sure your application is protected against SQL Injection attacks.
Currently .NET Core is only supported for Ubuntu 14.04 and when you try installing it on Ubuntu 15.10 you get the following error:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
dotnet : Depends: libicu52 (>= 52~m1-1~) but it is not installable
E: Unable to correct problems, you have held broken packages.
A class should be so small that anyone can easily understand it. If a method is not required to be understood in order to understand the class, then that method probably doesn’t belong in there and it’s not part of the responsibility of that class.
It is not a good idea to judge how big a class is based on the number of lines of code, however the following list can give you a rough estimate:
Association is the most general type of relationship and it includes other types as well. If the relationship doesn’t fall into a more specific type, like Aggregation or Composition, it can simply be referred to as an Association.
Example: When a Customer places an Order, the relationship is simply an Association.
Aggregation is a more specific type of association. In an aggregation the children can also be shared with another owner at the same time, and even if the owner no longer exists, the children can still continue their lifetime.
Example: The relationship between a UserGroup and the Users, is an Aggregation. A User can still have meaning in the system even if it doesn’t belong to a UserGroup, so if you delete a UserGroup you won’t delete its Users. On the other hand, the Users can belong to several UserGroups at the same time.
Composition is a more strict type of Aggregation. In an aggregation, the children cannot be shared with a different owner and it doesn’t make sense for the children to exist without their owner. So, you usually want to delete the children if you delete their owner.
Example: The relationship between an Order and the OrderDetails is a composition relationship. The OrderDetail items are valid only as long as there is an Order related to them. When you delete an Order you will delete it’s OrderDetails as well. An OrderDetail associated to a particular Order cannot belong to a different Order.