You could not be farther from the truth. Gitlab is an improvement on Github in every way, they offer a suite of features that Github doesn't have that are only available through third party connections.
I used to work stock at a bunch of retail stores for a decade and could see what percentage the markup was. It was almost never above 20%, and usually closer to 3-5%.
"When record companies make a fuss about the danger of "piracy", they're not talking about violent attacks on shipping. What they complain about is the sharing of copies of music, an activity in which millions of people participate in a spirit of cooperation. The term "piracy" is used by record companies to demonize sharing and cooperation by equating them to kidnaping, murder and theft." [1]
The irony is that free software requires copyright enforcement as precondition. I mean, if a company takes a GPL'ed code, modifies it, and sells it to another willing party without following GPL's terms, what does the original author materially lose?
It is not the irony. The core idea of GPL is to fight proprietary software with its own weapon.
Also, I think that you misunderstand the GPL terms. The aggrieved party in this hypothetical case is not the original author, it is the buyer of this modified software, whose rights to four essential freedoms [1] would be violated. These violations have a very real material cost.
BTw, it is common for people to believe that GPL requires publishing source codes on the Internet. It is not so. The requirement is to provide the user of a program source codes, so he can exercise the guaranteed freedoms. You can do it in any suitable form, publishing code is just the most convenient way to do it, but not mandatory.
Hence the clarification "willing party". A company "pirates" a GPL'd code, creates its own derivative version, slaps a sticker saying "This is proprietary code, if you want to see the source then go buy from somewhere else." Someone is willing to buy the product, they are both happy. Just like two internet users sharing copyrighted files.
People can be coerced (fooled, cheated, etc) into believing that they are 'willingly' abandon their rights. This hypothetical example isn't similar to the case we're discussing here in this thread.
Your definition of "theft" is a bit too broad, don't you think?
Usually theft means that the original owner is deprived of goods - they can't use them, can't sell them, they simply don't the the original item. This is simply not the case for digital goods. HBO won't lose money when I download GOT, won't they?
It is totally legal to pirate content where I live now, and where I've lived before. Still, I pay for video games on Steam or for Spotify. Hell I even buy music on Bandcamp. I do this because it's convenient and because I want to support creators.
However, when a creator goes out of their way to alienate me as a customer - by either dropping support for my platform, or by region-blocking - I happily put on my pirate hat and get what I want for free. There is no other viable choice for me.
Steam is successful not because piracy is illegal. It is successful because it made buying games more convenient than pirating it. It is far easier to click, pay, get content than torrenting stuff and finding correct cracks/keygens, etc.
I have bought a great deal of games I played in 1990s (pirated, of course - there simply did not exist a way to buy games legally in Russia at that time), just because I liked them back then.
Also, please stop calling copyright infringement 'piracy'. Piracy is a dangerous penal crime involving violence and an open theft of possessions. It has nothing to do with copying information.
Uh oh, you used the 'steal' word when referring to digital goods. A non-insignificant group of pirates don't consider downloading content to be 'theft.'
It isn’t like your ‘platform’ is a part of who you are. You could buy a device that they support.
Content creators/providers are legally allowed to restrict the platforms they support. For example, you have to watch some live sports through a cable tv subscription. There is no way to pay for it separately.
Does this suck? Sure, but cable companies pay enough money to make it worth all the lost customers (or at least that is what they are betting on)
You have no legal right to access content under your terms. Content creators have (nearly) complete control (there are some laws around what they can do, but requiring Linux support is not one of them)
I'm an avid, avid, avid Firefox user, but I switched to Vivaldi last month after doing a comparison of RAM load with the same exact open tabs and seeing a difference of:
Firefox sitting at 12 gigs
Vivaldi sitting at 5 gigs
This is on MacOS, so mileage may vary and all that, but with the same tabs open, why would there be such a difference?
Edit: And there's no difference in the plugins. I use the same plugins on both browsers: password manager, uBlock Origin, React dev tools, and Redux dev tools and that's it.
Modern operating systems will grant large amounts of RAM to web browsers in general to improve caching. That RAM is easily relinquished back to the OS if another app needs it.
Was the 12GB with another RAM-intensive app running? Or just Firefox by itself.
In addition to the MEM_RESET, MEM_RESET_UNDO mentioned, there's also OfferVirtualMemory[1], ReclaimVirtualMemory[2] to let the system potentially use the memory if it needs it.
Unlike MEM_RESET, this allows you to prioritize the memory you offer, as well as provides some extra safeguards it seems.
That seems to be something different; instead of getting the memory when some other application needs it, the OS receives the memory when the application (browser) doesn't need it any longer, so it can't be used for caching.
This actually looks exactly like the malloc/free use case.
How can't it be used for caching? Say you decode an image, then offer the memory backed by it to the OS. If you need to access the image data again you try to reclaim the memory, if it fails it's a cache miss.
What I was seeing was the same in both cases. Firefox would be using the same amount of RAM either running by itself or alongside Ableton Live (and the performance of Ableton Live would suffer).
is how it should work. If the first step doesnt happen, its not clear if the second one should execute by itself. Id be much more concerned about background CPU usage. Eats battery, and actually slows the computer down.
That all said, its pretty clear that browsers are leaking RAM sometimes. I remember bed bath and beyond using 9 or 12GB of ram the other month.
That's not how it works. Browser might monitor free system memory actively and release memory if the system runs low, but at least Firefox doesn't do that.
There is no mechanism (in Windows, Linux) that allows the OS to notify applications of memory pressure or that allows the application to tell the OS that some allocations can be thrown out if need be. (Windows has a mechanism - MEM_RESET - that only works with paged out allocations)
Edit: Windows 10 (8?) actually expands on MEM_RESET with Offer/ReclaimVirtualMemory, but I kinda doubt browsers use this, because these have similar semantics to MEM_RESET (except they seem to work without paging, which is good). For an application that wants to cache not-well-defined amounts of data itself these might be very useful though, because you can make the data structure simple enough that it works with these.
https://dblohm7.ca/blog/2015/07/28/interesting-win32-apis/ notes that Windows has the required APIs, and that Firefox already supports handling memory pressure notifications on non-Windows platforms. Not sure how up-to-date this information is.
> ...that allows the OS to notify applications of memory pressure or that allows the application to tell the OS that some allocations can be thrown out if need be.
There are mechanisms for both of these in up-to-date Linux - pressure stall information and volatile ranges, respectively.
MADV_FREE didn't work properly until fairly recently, though, because it behaved like Windows' MEM_RESET. AIUI MADV_FREE is not intended for ranges that you actually want to work with (i.e. you want to keep the data, not just the virtual addresses), but rather as an optimization for allocators.
Firefox does have a mechanism for reducing memory pressure, there's a button for it in about:memory. I can't guarantee that this flow actually happens upon low memory states on Windows etc but it wouldn't be hard to at least hack it together. Monitoring available memory (say, on a timer) is not a difficult thing to do on Windows - it would just be difficult to make it completely robust.
It's important to specify your test scenario here and the behavior you expect, as it's a known issue in general that Linux behaves poorly under OOM conditions. It's not necessarily Firefox specific.
If all of my memory is "in use" but half of it is cached file pages, should Firefox compact its heap and evict cached images? What if all of my memory is spoken for but a bunch of it isn't actually committed, due to overcommit?
Those aren't interesting questions tbh. Obviously most of the time the page cache grows to use all memory, that's the whole point of having it (using all memory that is not committed to applications as a disk cache). Overcommit obviously doesn't create memory pressure because it only exhausts address space, not memory (physical memory + swap). The relevant question is how the system behaves if it needs to allocate pages but can't find any clean (just throw'em out) or unused pages. Linux, and to a lesser degree, Windows start to thrash heavily in these scenarios. I've never seen e.g. Firefox unload a tab when this happens, regardless of OS.
I considered other browsers too (Vivaldi, Brave), but they all seem to be Blink/V8. It seems like Firefox is the only other extant, viable platform for running the web. Personally, I'm not one to frequently compromise quality/convenience for some ideal, but the idea that we'll have a future with only one way to render the web is terrifying.
There's webkit too by Apple. And browsers based on it is available for Linux too. And no, webkit and Blink are not the same engine. Blink is a fork of webkit by Google and while they share a heritage they have different feature set now.
Also worth noting how different the different goals/approaches differ between the WebKit and Blink teams. The WebKit team is very deliberate in their development, only committing to new features once they have some level of assurance that it can be done with minimal negative impact to efficiency, privacy, and user control where the Blink team moves almost entirely in interest of getting as many new features out as quickly as possible with comparatively little regard to negative side effects.
Both approaches are needed to maintain a balance and to preserve real choice for users — there is no practical difference between Chrome, MS Edge, and Brave because their differences are skin-deep at best.
I was thinking of webkit too, but I'm not aware of any browsers expect Safari and the Linux browsers you mention. Neither seem to be cross platform or practical, "viable" alternatives to Blink domination.
I'd say the scenario is similar to Firefox/Gecko and Chrome/Blink. Sure there are clones that use the Gecko and Blink engines, but none of these really are as popular as their original.
I am waiting for another Opera / Presto browser platform to emerge. Till it did, the browser market dominated by Internet Explorer was literally stagnant. Opera with a Presto engine was a game changer with their light-weight and super fast browser engine with feature sets that all other browsers copied (and still lack even today).
I miss the plain UI speed of Presto-based Opera. I could cycle between tabs at my keyboard repeat speed - now my PCs are an order of magnitude faster and can't manage more than a couple tabs per second if I hold ctrl+tab.
When I do it I can see the URL cycling at my keyboard repeat speed (~30 fps), but the selected tab and page displayed in the foreground refresh about an order of magnitude more slowly. (1-5 fps) (So with a dozen tabs open, the effect is to select/show tabs in essentially a random order.)
edit: FF cycles smoothly (although with a weird white strobing effect with the main blank content area) if I open a bunch of blank tabs, but not if they're actual web pages.
It depends on the use case, but for a lot of modern render heavy sites, I find Gecko to be strictly better, both in terms of overall time to render and giving a user experience with less flashes of unstyled context.
Can you articulate why do you think a single engine is terrifying? KHTML is the precursor of WebKit that was used by Chrome and Safari for a while. It didn’t prevent Apple and Google to drive their products. Google eventually fork Blink out of WebKit. Other browser vendors follow a similar path (Brave, Opera, Oculus Browser, Samsung Internet, Supermedium...) Start with Blink and modify as they see fit and eventually fork if needed. I consider a single good reusable engine a level playing field for new browsers akin to the Linux Kernel for OSs. Engines are commoditized and differentiation comes from browser features.
It means that Google can push technologies that benefit their ad tracking business, or choose to use non-standard APIs to make their apps run faster than competitors. Both of these things they're already doing. While they might not go the route of Microsoft, putting their Active-X plugins in IE, using deprecated and non-standard APIs is pretty damn close.
Furthermore, all these forks result in bugfixes and new features making it back into Chromium. That allows Chromium to evolve faster than other browsers. That's not to say that Firefox hasn't been keeping up and pushing past Chrome on some important fronts (CSS Sub-Grid, for one), but I'm afraid a point will come where Firefox can't keep up with all the new web APIs that developers will want to use.
Another fork of Chromium doesn't lessen Google's influence over the market.
> It means that Google can push technologies that benefit their ad tracking business, or choose to use non-standard APIs to make their apps run faster than competitors. Both of these things they're already doing.
Thanks for asking. I was wondering if I could. I'll try:
> Start with Blink and modify as they see fit and eventually fork if needed
One of the foundational ideas behind the web is that you have a set of open standards that specify the web, and then people can go ahead and implement those standards and provide some unique set of features on top of those standards. For example: privacy.
I believe that Google and other big-tech actors are working to make the scope of these standards so vast and so fast-moving that it becomes impossible for a small or mid-range operation to implement and maintain a web browser. I mean, who was able to successfully fork and maintain a fork of KHTML/Webkit? Google! No small organization is capable of this. These are massive, complicated codebases that must keep up with evolving standards.
Therefore, even though you theoretically have "open standards," we're seeing a future with possibly a single implementation of those standards. And if you only have one implementation, then the whole foundation doesn't hold, i.e. you can't make a privacy-oriented browser because you can't make a browser in the first place. What if some day Google decides to stop contributing to Blink, to fork Blink and only update it closed source, against a set of fast-moving standards that they de-facto control? Or what if, at that point, with total domination, they stop following open standards entirely. I think that would be the end of the web.
Notice that a fork doesn’t have to maintain the whole code base, only your tweaks on top. Cases I know like Oculus Browser, Samsung Internet, Brave or Supermedium (I’m co-founder) have very small teams. They start with Chromium and have total freedom to modify privacy policies, ship remove any APIs or standards. At the same time they can take all Web compatibility for granted that I agree is not tenable by a small org.
How many tabs? I've used Firefox for years on 8 or less total gigabytes of RAM, and I've hit 40 tabs occasionally and regularly 20, and never ran out of RAM because of Firefox.
I've had my whole system lock up for minutes with 10 tabs open on Firefox as recently as last week. I still use it as my primary, but that does happen on occasion.
On chrome I've had 60+ tabs open for weeks without my system taking a dive.
This is on an ubuntu 19.10 system with 32gb of ram.
This seems extremely weird, never seen anything like that (I tend to have >100 tabs open). But of course "it doesn't happen for others" doesn't help you if somehow on your machine it does.
It's definitely strange. And I do at times have 50+ tabs open on Firefox, so I'm not saying it's a constant issue, but I do see it overload my system from time to time. When it does, I close a few tabs, restart firefox, and go on my merry way.
That's what I'm talking about in the beginning of the post. 'firefox|Web' captures 1 one less process than `--full /usr/lib/firefox/firefox`. That one process is 0.1mb in my case.
Google polyfill badly done JS because firefox doesn't implement some "advanced" features that google tought but is not(or will never be) in the standard.
It result in more usage of CPU and RAM.
I noticed that Facebook have a memory leak on firefox for exemple (12Go, then 3Go after closing facebook).
my only issue with Firefox on Mac is that streaming video from twitch will just randomly stall but this did not occur with Safari. The oddest part is that is stalls randomly when clicking back to the tab with the stream. Even with multiple streams its wholly random if one will stall the video portion or not; the audio continues and chat bar works too.
memory wise it will consume quite a bit when managing streaming content and even leave the code in memory when all related tabs are gone; I assume this happens because of the dearth of video content on many web pages
I was having the exact same issues on Twitch allll the time on FF on Mac. I haven't since switching to Vivaldi, probably have frozen two or 3 times since.
Just restarted for the new release, but I currently got 3 windows with a total of 73 tabs (no shame please ^^) and just focused each of them to ensure they are loaded due to the restart.
Waited a bit and now have:
* Resident Set Size: ~ 500 MB
* Virtual memory: ~ 3300 MB
Not much, IMO, especially as virt. memory doesn't tells one much.
In Firefox, if you go to about:memory and click on "Measure", you can get some kind of breakdown of where the memory is being used. I don't know how useful it will be to understand why it is using more memory, but it can be interesting.
Wouldn't you prefer your browser use more RAM? I'd much rather it cache as much as possible than have unused RAM sitting idle. Hell, I even stick my `~/.cache/` in RAM.
When it completely bogs down the browser so that opening a new window stakes 5s and other normal actions are extremely laggy, no other features matter. This can happen even on my 64GB workstation when Firefox hasn’t consumed all the available memory yet. Performance is a feature.
(That said I continue to use Firefox exclusively b/c 1) Firefox is really good now, 2) best addon/extension support, 3) Google’s leadership is Evil now, and 4) I don’t want a rendering engine monoculture).
It's weird, I keep seeing people complain about the memory usage and it being slow, but I've literally never experienced any of these kinds of issues, and I have 80 tabs open right now. Are you using some weird plugin or what?
Having multiple tabs (or "too many tabs") is a neat and very visible way to keep track of what's to be read and processed. It does result in keeping things for far too long sometimes, but there is no better interface that surfaces all the different sites/URLs to be processed. It's very useful when you're troubleshooting or researching something (could be some tech stuff in general, some software development/debugging stuff or anything else you're researching).
I used to do something similar too with Opera (the original one with Presto engine) but with their "Speed Dial" feature. I miss Presto Opera - it was light-weight, fast and wasn't bogged down by even with 100's of open tabs and had fantastic browser features that nearly all their competitors copied.
It's actually way better than bookmarks because it stores the content in a quickly accessible way (unless the tab has been unloaded manually or through another extension), and it also stores history (you can go back and forward in each of those tabs). Bookmarks and "Speed Dial" (which is available on Firefox) do not support tab history. I do not know how Opera's Speed Dial worked though.
> It's actually way better than bookmarks because it stores the content in a quickly accessible way
I am skeptical about this part. If you tag your bookmark's, it then becomes easy to look it up right from the address bar by just typing a tag name. That is actually much easier and faster than searching through 100's or 1000's of tabs.
> ... and it also stores history
That's a very good point that I hadn't considered.
"read it later" window, sites for research, Slack in the browser, podcasts or music in the background, etc.
I usually don't close my research tabs until I've completed the task I was working on. Not having to worry about memory means I don't have to worry about finding useful webpages again.
Inbox, rather than bookmarks. Bookmarks suggest repeated visits; an open tab is something to be visited at least once, but not known to be worth keeping a link to.
Open tabs = bookmarks for unread stuff, basically. Once I’m done, optionally bookmark it if necessary and close the tab.
The problem with bookmarks is my list of bookmarks eventually grows even larger than my open tabs, far larger, and stuff just gets lost in there. Once out of site, then out of mind. Leaving it open in a tab I’m more likely to go back and read it when I have time.
What exactly is the thought process behind having so many tabs open? For example, I close tabs when I am done with a site and / or when I can't read the site title on the tabs any more.
What’s the thought process behind closing them? Using tree style tabs I have a forest of tabs. I am working with lots of ‘web apps’ (currently mainly the AWS console) and closing tabs would mean having to go and find the particular resources every time I want to work with them. I probably hit each of around 50 tabs - across two or three windows - an average of 20 times today. Then there were dozens of ephemeral tabs too.
Not the person you're replying to, but may as well answer since I also use tree-style tabs similarly.
> - Why keep a site open when you are done with it?
Why assume you're done with it? I have a number of tabs just for Grafana dashboards I'm monitoring. Re-finding the particular configuration from the home page every time would be annoying, bookmarks would require reloading the page (and thus re-running the slow queries that happen on load instead of on data update), etc.
> - Too many tabs and it gets difficult and irritating to find and open the site you want.
That's what tree-style tabs solves. Tabs are a hierarchy, just like bookmarks or folders normally are. It's much easier to navigate.
> - Have never needed to keep many, many sites open in the first place.
I've got email, calendar, a bunch of Grafana tabs, plus a few datasheets, a schematic, Jira, Confluence, and Github.
And that's just for work, for news I tend to open articles in tabs with HN comments in child tabs and then go through & read them in sequence, but I keep work & non-work in different windows.
Another Tree Style Tabs user here, I'm not really satisfied with the other explanations, so: With TST and Auto Tab Discard, tabs have become self-organized bookmarks for me. I simply don't use actual bookmarks anymore, and have open tabs for each site I regularly visit, with subtrees for any stray thought.
I'm up to around 500 tabs across 3 windows. Maybe a dozen root trees. Youtube, Android docs, HN, Reddit, etc, for example. Because opening links in a new tab creates a child tab in the tree, they're automatically well-organized in a way that follows my thoughts, collapsible when I'm done with one for the moment, and rearrangeable if I don't like where they were put in the tree.
I don't do any bookmarking or tagging, so either it's an open tab or something I can dig up in the history. So I tend to keep tabs open if I think there's a chance I might need to refer to it soonish. Or I just forget them after my focus moves on to something else.
"Bookmark, tag, and close" loses active state and requires a full page refresh. It also loses the history (where it was opened from). Bookmarks are useful, but they're not the same thing as tabs.
My wife leaves all of her tabs open, but it's not for any specific reason. If she opens a new tab and goes to a website, the browser will just switch to the tab that's already on that website instead of fetching the website again.
For some they're something that I check daily so I just focus then refresh, and for some I keep them open thinking it's something I am going to revisit and read some day.
I'm a front end and back end developer that uses multiple libraries and tech stacks and need to find answers to stuff immediately. I leave them open as a resource while I'm working, which may be on multiple things at once. In addition, I have mail, messaging, music, and other work-related things open in the browser.
It's really one of the only features that matters.
I'm surprised you're having issues with RAM. I had 1050 opened tabs in firefox nightly and my x201 (1st gen i5) has only 8GB and only 50% of it was used on average by ffx.
I'm not sure tab count is really a viable metric here. You'd think there'd be a strong correlation, but...
On one Windows PC, I keep 2-3 tabs constantly open (may as well pin them tbh), and open/close others as needed. Average tab footprint is probably 3-8 tabs. Average RAM footprint is 1700MB. I have different tab footprints on different machines, of all sorts of different hardware and OS combinations; let's say the general tab footprint is 5-30 tabs, and general memory footprint is 800MB-3GB.
On the other hand, one user here reported a few thousand tabs at ~500MB RSS.
Obviously factors like assets and JavaScript affect RAM consumption, but a lot of these heavy tab users have to be running a good number of web apps. There must be something else at play.
Depends on the tabs. I can get the Slack tab to eat over 6GB of memory if I just let it sit there without periodically reloading the tab... auto-reload extensions FTW.
Sure some web apps will naturally consume immense amout of ram. My tabs were not heavy apps, but diverse usual web pages github, hn, reddit, youtube, pubmed, wikipedia, pdfs etc
Frankly I don’t get what the complaints about RAM usage are all about. With video, high res images, megabytes of javascript and 30 tabs open, modern browsing simply takes a lot of resources. I rather have the browser use a lot of cache than having to reload shit constantly.
It's clearly a metaphor. It just doesn't make any sense in this context. Neither does this reply. I _think_ you're trying to say that they're paranoid for questioning your metaphor? Your unusual grammar is difficult to understand, but you're coming across as a bit hostile.
I work in an open office with 5 other programmers around, and none of us are bothered by each other's mechanical keyboards. We have a mix of Cherry Blues and Browns. We all agree that it's the least annoying thing about our open office.
It's a shared cultural thing unique to each company, no need to cast a blanket statement.
Oh, because people are regularly installing the 7.8GB Xcode update?
Aside from the fact that I doubt anyone downloads that many apps, from my understanding Apple TV makes you use on-demand resources for anything above 4GB. That means that old resources automatically get flushed out, so the actual benefit of those extra 32GB is more of caching-feeling behavior.