Standard JS: npm install funding
github.com
github.com
As far as I can tell, this project is literally just a 200 line configuration file for a linter. Not even editor integrations for the linter, just a configuration file for it.
Is it truly something that requires funding to 'add new features'? How much time does it take out of your day to add a new line of JSON to a configuration file, or is the sponsorship there to pay for all the bikeshedding that's probably happening in the issues and comments on the project?
What sort of bugs are there in a linter configuration file?
I'm really confused by all of this.
> The funds raised so far ($2,000) have paid for Feross's time to release Standard 14 which has taken around five days.
Five days to do what? Five full 8 hour days? Does it take 5 days to cut a GitHub release and push it to NPM? What about the other contributors that give up their time for free, are their contributions worthless?
Rather than feeling like a way to support FOSS developers or FOSS projects, it feels like a rather backhanded attempt at monetization by the maintainer where Standard was picked out because it was the his most popular project, and therefore would return the greatest advertising revenue.
Do JavaScript developers, or people that use this project, have a more nuanced opinion than me? I do zero web development, is this type of stuff normal?
Analyzing the changes I leave as an exercise to the reader.
Regardless of the effort etc. and whether or not these changes were primarily functional or related to marketing, I personally support FOS maintainers doing whatever they want with the software they offer for free. It would be trivial to make a fork of Standard without the adware if you wanted, and the MIT license explicitly allows it. So more power to feross for his free offerings! And complainers: put your fork where your mouth is.
https://github.com/standard/eslint-config-standard/compare/v...
https://github.com/standard/eslint-config-standard-jsx/compa...
https://github.com/standard/standard-engine/compare/v11.0.1....
This would be an admirable commitment to stability if the project wasn't on its fourteenth major version.
Whether it's a code file or a configuration file doesn't accurately predict complexity. Von Neumann and all that.
As for the maintainer, we're friends. He's been involved in JavaScript and Node.js development since very early on. Standard is not by any means his only work, or his only popular work. He's also the only one I'd trust to maintain it right now---technically and design-wise---and I know he has many other demands on his time. He goes out of his way to acknowledge that he's not alone on many projects, but by any measure, Feross has done the vast majority of work on Standard thus far, for the past five years or so.
If it took him five days to get v14 out the door, it took five days. I'm not going to go and try to second-guess his hour-by-hour through amateur GitHub forensics. But I'd expect a fair amount of the labor came not just from the code itself, but from issue management, changelog, repo hygiene, and associated joys of maintaining a developer-facing tool with name recognition that's first point of contact for lots of folks who don't contribute in kind.
All software, done well, looks easy from the outside. Standard is not the Linux kernel, but it's good software that users interact with constantly. It's been carefully maintained primarily by just one dev for several years. It has been one huge, reliable constant in a language ecosystem with a lot of churn.
We pay managers salaries even though they often don't write any code, why is management of a widely used OSS project not deserving of funding on its own?
I've used standard for years, and I've never once had an issue with breaking changes. They've added features, fixed bugs, and even made changes that fixed issues that I personally raised with the project.
It's good software, and even though it looks trivial at a glance it took a LONG time and a lot of effort to get there, and every time I'm working on a project that doesn't use standard I'm quickly reminded of just how many of those edge cases they have handled for me.
I'm happy about the parts of this discussion that are about the way they are funding the project (and I don't actually like the specific way funding is being managed for this project), but all of it seems wrapped in dismissive comments about the library itself.
And hey, I'm all for monetization of open source projects: I have no problem with ads on READMEs, etc.
But no, no ads in my terminal when I'm working. Not normal and not OK.
To be frank, I'm not a fan of ad-based models. But it's the example here, and we see the same pattern. Ads in general? Sure. Ads where people will see them, as via popups in Atom or messages to stdout? For shame.
This is not Feross' first attempt to fund his open work. Past approaches haven't failed because Feross wasn't churning out valuable software. He's been doing that the whole time.
The "well conceived" approaches that cost consuming developers literally nothing---no money, no time, no attention---don't repeatably solve funding problems for producing developers.
If you're suggesting that I'm guilty of that behavior, I should mention that I've never opposed developer using ads on their software's website, or on the software's README. In fact, I've done so myself.
I've also been a big supporter of GoFundMe, Patreon,-and like websites for open source developers.
Believe me, if there were a better way for open source software to be funded, I'd probably spend more time on my open source projects. But not by spamming ads on stdout.
If you're experimenting with funding models, I support your experiments, too. But without looking into specifics, I'm guessing you had the usual experience with README and website ads, sponsorship badges, or the like. I hope it was able to cement some new relationships, and perhaps make you more aware of who's relying on your work. But I wouldn't bet it made you significant money, or significantly changed how much you could or did contribute.
As for stdout versus README and so on, the lines aren't sharp, but I think there's a basic distinction to draw between an advertisement and something more like a credit or acknowledgment. As long as those who go looking for their credit can find it and point it out to others, all seems to be right. Sponsorship in a README fits there, in my view. Ads go where people will notice them, even when they don't go looking. They're frequently invasive. I don't like invasive, but that's where `funding` seems to fit.
There are middle grounds, too. Actors often negotiate for fair billing in relation to other players, for instance. And donors to cultural centers and other physical venues often get their names on plaques or stonework in the foyer. In my mind, all of that just points out how many conventions and expectations we've developed about funding in nearly every field but software.
In my comment above, I was reacting to your mention that Feross' approach seemed ill-conceived. I thought that was one-sided: It's not just about whether user-developers like it. It's also about whether it effectively gets devs paid. It's not well conceived if it doesn't work.
That said, I do not think that this approach by Feross will work at all. Advertisers hate controversy, and given the fairly negative reception this approach has garnered, most of his sponsors (if they're aware) have now likely pulled their support or at least requested that he not put their ads on the terminal.
I've shared your concerns about the ad-based approach from the get-go. I sincerely hope ads of the kind don't become the norm for open developer funding. We know their cost from funding other kinds of open work so well.
I'm interested in this mostly because I see distaste for ads trampling respect for maintainer autonomy, and that is wrong. I've endured the cycle of harassment that follows any credible attempt to fund development work in a new way, seen friends go through it, and saw Feross going into it. It's psychologically impossible for us to experiment our way to approaches that work with peer support.
I'm sorry to hear you (or any open source dev) has experienced harassment because of funding attempts. I disagree with Feross, but I condemn any organized harassment.
I would add that it's fairly predicable that any funding that hinges on innovative uses of ad technology are going to run up against heavy resistance in our communities. There's just not a lot of patience for advertising among techies.
But outside of advertising, I hope developers do experiment with new funding approaches. It's greatly needed.
Edit: There are some good arguments here. I'm on the fence. In most cases I don't look at npm output, in which case the ads would be useless, and when I do need to actually look at npm output they'd be in the way. I can also get behind considering the terminal an "ad-free zone".
Software that doesn't require a major ongoing effort can still be in dire need of support, like OpenSSL.
https://en.wikipedia.org/wiki/OpenSSL#Heartbleed
OpenSSL falling over was a wakeup call that we continue to ignore even as NPM, Ruby and other packages are converted to malware because there's nothing in it for the original developer except more work.
So it's good we're talking about this.
I'm not OP, but I gotta say whenever I've faced questions like these in my career, I find I'm not actually being asked any questions at all, I'm being accused of lying, and it's time to walk.
If OSS maintainers struggle to monetize their work, they should switch to coding for businesses if the primary objective is to code for money. If nobody wants to pay you to maintain a project, then you shouldn't maintain it (unless doing it for free makes you happy). Otherwise -- if anybody else wants work done on the project, but doesn't want to pay, they'll submit PRs themself, or assume the role of being the maintainer themself.
For example, it recently took me most of a day just to get ESLint, Jest, and Babel working for a monorepo based off the same Babel config,
You've got people (and companies) who are essentially making a deal with the community: "I wrote this because it was useful to me. Maybe it'll be useful to you too. If I share the code with you and you contribute a change back, we'll both benefit."
You've got the ones who do it for marketing reasons. Either companies trying to sell "Enterprise Edition" or support/hosting services, or developers trying to build their personal brand to get hired.
You've got products that begrudgingly throw tarballs over the wall to satisfy licensing obligations, like the Nintendo Switch web browser and most of opensource.apple.com.
...And then there's this guy, who is seeking rent on a linter configuration file.
If you really think it's just a config file and nothing more, then just ignore it and move on. It doesn't hurt you with it's existence.
There are no network effects here, this is about as far from a zero sum game as you can get.
Some of us do get value out of this "config file", quite a lot. This project handles edge cases, enforces backwards compatable changes and improvements, fixes bugs and config issues, and works on documentation to help it work with other tools and systems.
That has value, and it makes my blood boil that many people are completely disregarding the work that goes into making this project run smoothly for as many people as possible in an area that is saturated with an insane number of choices and a cost to switching which is about as close to zero as possible.
Please just go look at the repo, look at the changelog, look at the insane number of downloads, issues, PRs, look at the care taken with breaking changes, and look at how much time and effort it looks like feross puts into this.
Please look at it, because I can't possibly imagine someone seeing all the effort, time, and care that goes into this project and concluding that it's just rent seeking...
I am sadden that so many people are judging this library on metrics like LOC instead of evaluating it based on the value it provides to the users.
It's also clear to me that the author considers this an experiment. At this point you can say it's a failed experiment, but the guy is getting way too much hate for simply trying...
I also don't understand the complete revulsion to ads. I hate ads too, but geez, people act like ads killed their grandmother or something.
I am just blown away at how this is being received. And I say this as someone who does not use this library. But I've used plenty of small, low effort, libraries that are derivatives of larger projects and I appreciate any effort put in by people to make my life easier.
I think you're missunderstanding the reasoning behind the backlash. People are understandably angry at this, because they are afraid of this becoming the norm. Unlike places like the browser, the terminal is a tool that is used strictly for work reasons for most people. Not only that, but for CI logs, it's essential for day to day work.
It only takes one brave soul to try something, see if people put up with it, to become the norm.
Also, I'm really not sure of why you are calling it "config file" in quotations if we're downplaying his work, because that's literally all it really is. A thin wrapper around ESLint doesn't really count for much. And as FED, I'm not really necessary what all this "cost of running" you speak about is.
I'm sure Feross has put a lot of time and effort into his config file, but what about the developers behind ESLint? The actual tool Standard.js runs on? How much % of the funding earnings by Standard is passed to the ESLint team?
Plus, it's not like the community doesn't exactly have a bone to pick with an already controversial library already well known for deceiving beginners. Even people like Dan Abramov (Redux's creator) called out it's unfair to call this library "Standard" when it enforces coding practices well known to have many gotchas for beginners and that are far from the norm. But of course, the creator couldn't care less about this, as he is well aware that calling it "Standard" brings lots of traffic to his library.
It seems like you're simultaneously arguing that this project is important and valuable and a lot of work, but also there are a million other options for what it does and it's trivial to create new ones.
And even if I don't personally use this linter configuration file, it can hurt me in two ways:
1. If it's a transitive dependency of some other project I use
2. By normalizing rent-seeking behaviors like putting advertisements in a package's installation output
I can't make a TV myself, and I find the ability to make a TV valuable enough that I'm willing to pay good money for one, but there are literally thousands of options to choose from if I went to buy a TV.
As for the other parts, this is a linter, it offers no value as a transitive dependency and it's existence in one is a mistake in the vast majority of cases.
And I don't actually like how they are funding this. I don't like the idea of polluting the CLI output with this stuff, especially at install time. But the idea that the package is somehow undeserving of funding because it's trivial or because you personally don't see the value in it is infuriating to me.
ESLint is a linter. This is a configuration file for ESLint.
Does the message not display if I pull in a dependency that depends on this? It's only an issues if I'm directly and willingly using it?
https://github.com/ssbc/ssb-server/pull/685
"@mixmix, thanks for the support! It means a lot to me and I hope that having others join in will help shift the discussion on this topic, even if (like you said) we don't like sponsor messages as the ultimate funding model here.
Btw, I think you'll want to make this a dependency if you intend for end users to see the sponsor message. Otherwise, it will only be run for folks who are developing on ssb-server."
[0] https://github.com/feross/funding/issues/7#issuecomment-5245...
Rent-seeking is a term with a specific definition [0] and "I need to pay my rent" isn't it. In simple terms, rent-seeking refers to the behavior of the landlord, not the behavior of a tenant. It may even be a term that applies to this situation, but the dev saying they need to pay their rent is entirely unrelated.
A landlord is seeking compensation for a mutually beneficial transaction ("you get shelter; I get money") and is providing value to the tenant.
If I block off a river and charge you a toll to pass, I'm rent seeking. If I dig the Panama Canal and charge you a toll to pass, I'm not rent seeking.
By looking through the ongoing discussion, it was interesting to find a reference to the core-js issue [0] from earlier this year. Its maintainer, with his established position in the npm community, makes use of a similar post-install script to open up a discussion and communicate his situation. This gives him a more direct communication channel to its users without directly helping his situation.
What I assume can be understood as a rent-seeking practice, is how fooreys intention, with the same political power in maintaining a popular package, seems not to be solely to raise awareness to his situation. But instead he's forced a solution to his problem by advertising unrelated 3rd party products. Whereas he interestingly also uses the term experiment, it did already render npm as a space for advertisement.
"The funds raised so far ($2,000) have paid for Feross's time to release Standard 14 which has taken around five days."
Without the third person stuff that's
"The funds raised so far ($2,000) have paid for my time to release Standard 14 which has taken around five days."
I use dozens of development tools every day. Counting something as small as a transitive dependency on a configuration for another tool wrapped up as a package, it's probably hundreds, perhaps thousands.
I would feel embarrassed to take $2000 for a single update to put third party advertising banners in to the channels those tools use to report their operational and diagnostic status.
Any package which transitively includes `standard/standard` also inherits the advertisement. That would seem to suggest a kind of logic like "if people are going to use my work to help make their thing successful, it's only fair that I'm rewarded too." And that really does make sense. I could totally nerd out over the idea of a graph-based incentive structure, maybe implemented with a new crypto token for extra gee-whiz spiciness. If his prototype `feross/funding` package had been launched with a built-in technical mechanism for transitive profit-sharing I think the idea might just have been intriguing enough to distract from some of the appalling terribleness of embedding ads in package post-install messages.
Fortunately there should not be too many of those. If you're using `standard/standard` to format your code, it should be in your devDependencies, so if your project relies on it, and I rely on your project, I will never see this ad.
If this model were to take off, and, say, `lodash` included an ad, that would be a different story. You'd probably see the same ad a few times over in your `npm install` because you probably have more than one version of lodash in your dependency tree.
But, I can tell you right now, if you put an ad in your package, I'm going to work pretty hard to remove your package from my dependency tree, and hopefully there are enough people like me to stop this from taking off. :P
Just because you don't understand money or the guy above would be "embarrassed to charge $2000 for an update" doesn't mean other people should stay poor to make you feel better.
I would encourage you to check for a healthy amount of community contribution being accepted before adopting an OSS project.
And, if you grep the dependency tree of standard/standard it's pulling in at least 10 modules from the same author
And, there's plenty of ways to juice the download count... My most successful project in this regard is a private Docker image which got pulled like a million times by AWS ECS retry loop when I accidentally pushed an image that crashed+exited immediately
Which is to say, you and I would do well to emulate this Successful Winner who is also a Community Leader
I like how advertisements, which are inherently unethical, are now being billed as ethical because they lack the awful things piled on top of an already awful thing. I anticipate this going about as bad as it possibly can, and I'm going to find it amusing if and when it does.
It's always these JavaScript projects I see doing this stupid shit. It's amusing to see these people, many of whom participate in shoving advertisements on others, not care for the same treatment.
I write Free Software libraries and the only thing I'm currently asking for is that people share the work they base on my own, which is why it's under the GNU Affero General Public License version three.
These JavaScript projects use a great deal of Free Software, but they act as if they're important or significant enough to warrant such things. I use GNU Emacs, GCC, various other compilers, various servers, and many other things, but these code artisans put advertisements in their drivel because they don't think they're making enough money from it, and this is an attitude many of these JavaScript people share. I intend to try to make money off my future projects by either selling documentation or being paid for writing the project to start with.
I could go on a much longer rant, but why bother?
But, I don’t think this is going to work. npm install ads are like popup ads; they appear when you don’t want to see them and annoy your customers. Like popups, I think they will prove to be ineffective. Does Linode even want this ad? I think respectable companies would rather not annoy their customers like this.
I also think npm will ban this practice if it becomes widespread enough for them to bother - by my reading of npm’s rules they ban it already because they ban “adware”. If console.log becomes full of ads and useless during an npm install, it is pretty simple to disallow packages from displaying messages at install time. (Many or most package managers for other languages already do this.)
While it is possible to get paid for open source work, I think this project is just not quite valuable enough to get paid for maintaining it. If you maintain something like Vue it’s a different story.
https://www.npmjs.com/policies/open-source-terms#acceptable-...
Content containing malicious computer code,
such as computer viruses, computer worms,
rootkits, back doors, adware, or spyware.
This includes content submitted for
research purposes unless agreed to in
advance by npm. Tools designed and documented
explicitly to assist in security research are
acceptable, but proof-of-concept exploits are
not.
I'm not sure this form of advertising qualifies as the kind of adware which is associated with rootkits and spyware.Sounds like adware to me. The messages are certainly unwanted. The messages are automatically displayed be default. It meets all the criteria.
"The city park has tons of grass, but no one is having their cattle eat it. Missed opportunity! I'm bringing my herd over to get some sweet public grazing in."
https://github.com/standard/standard/issues/1381#issuecommen...
> I just recieved this response.
> Hello,
> We definitely understand your objection to an advertisement of this nature. This ad was not paid for or solicited by Linode. There is an open issue/thread regarding this advertisement on the package's Github repository.
> We appreciate you voicing your concerns about this ad, and I've passed along your feedback to our team who will be investigating this matter. If you have any other questions or concerns please let us know.
> Best Regards,
> ### #.
> Linode Senior Support
https://github.com/feross/funding/commit/03937d3f1178a7908d7...
https://github.com/feross/funding/commit/427bb8ffb6a1b683928...
As of now, the project has no supporters
In which case you're not making them any happier by disclosing this.
But I guess we'll see whether the ad comes back when the higher-ups have realized the mistake the supporter made, right?
Does anyone else hate the naming of this package, which is essentially a coding style? It's made to sound authoritative, like it's drafted by a standards committee and ratified by a large proportion of the programming population, but nope. It's yet another opinionated eslint config with some controversial parts (eg. no semicolons). Call it Feross' standard or something, don't try to make it sound like it's the standard style.
The better you know Feross, the funnier it is.
Where do we set the fence posts? "It's just a CSS file" for Bootstrap? "It's just a packaging system" for Webpack?
Who cares? If it saves you hundreds of hours of development time, then it's a net benefit for you, and you should pay it back. The fact that nobody has asked you to do so until now does not mean you weren't supposed to do it before. You should, but you didn't, so now OSS maintainers have to put ads in your donation's place.
If you do already donate to open source - great! Set the OPEN_SOURCE_CONTRIBUTOR flag to true and be on with your day.
If we ignore `standard` and the controversy behind its "simplicity" - would you be mad if Vue came out with this model? Bootstrap? What about Webpack or ESLint itself?
Would you trade ads in the CLI in exchange for no corporate chokehold on your favorite packages? How about funding many thousands of solo developers who don't have corporate backing but can theoretically justify working on their useful packages if they were able to afford monthly expenses from it?
I believe the correct way to solve the problem of open source funding is through sponsors and their names shown through the README or through a patreon or similar platform.
I don't particularly like the idea of ads in terminal either, but people can decide not to use this, I suppose.
Of those, many of the most successful weren't simply taking donations. It's common to see substantial additional products of services as perks, like access to security alerts, work prioritization, personal time, and so on.
export OPEN_SOURCE_CONTRIBUTOR=true
export ADBLOCK=true
export DISABLE_OPENCOLLECTIVE=trueThankfully this is all open source and standard doesn’t add much on top of eslint outside of rapid setup and a preset config, so I expect that the community will just make an ad-free version.
I'm more concerned about overeager telemetry in software. If these ads don't come with performance/network/privacy baggage, I'm OK with them.
That leaves open the chance of libraries implementing some third party library to display ads, which then starts tracking users, etc. as happened with ads on the web, but that's another debate.
And from looking at donation pages for many well-known projects, outrage outweighs donation volume.
At the end of the day, the best way for a single developer to extract revenue from a software project is to sell licenses, which is nothing new.
Obviously, it’s just my two cents, but I’ve long realized that I will probably never see a dime from my open source work, and that’s fine by me. That’s not my goal in producing free software, to begin with, and I don’t know of many cases where that’s worked out without starting a complementary company/foundation (RedHat, MongoDB, etc.)
I'm not saying that a lot of work didn't go into it, or that the repo name alone is a slam dunk for tricking tons of people. It's not like domain squatting - this is a real project. But I do wonder if a fork would be able to compete on equal footing without the advantage of the name. We like to think that the availability of at least the possibility of forking provides a sort of guarantee that projects which make enough bad decisions will always be leapfrogged by competitors and great software will rise to the top. I guess I'm not surprised that it's raising eyebrows that this maintainer at least seems to be deliberately pressing a marketing advantage which is just inaccessible to potential forks.
I'm not sure what to suggest as the solution to the underlying problem of coveted or potentially confusing package names. Namespacing library names under user/project names was supposed to be the solution to this! Just repeating the same word twice is a clever way around it. Maybe npm should step in and eliminate this loophole.
"devDependencies": {
"standard": "*"
}
in a package.json or npm install standard
in a script, either online or in another project at work, and copy it into a new project along with the rest of the boilerplate common packages they need, not realizing what they've signed up for. This would create the appearance of continuing growth and support for the package even though these users are totally oblivious. It's not clear to me that, with that kind of tailwind, an objectively inferior package couldn't continue to be ubiquitous and never be "converged" out of relevance.Still, I have to agree that the view you describe is a plausible one. If Feross does indeed think that way - which I have no reason to doubt - then that means that he's acting at least in better faith than some are giving him credit for.
" This helps funding further development; AND IT WON'T COST YOU A CENT. If you pay 10000 EUR you should feel free to use GNU Parallel without citing."
Or words to that effect.
I haven't really been bothered about that, but I could see myself joining a riot if everyone decided that was a good idea. This guy is just bringing that closer.
But please, please, Feross: NPM package installs are noisy enough as it is as every package seems to think it has VERY IMPORTANT things to say which are actually noise I could live without. Please do not add to the number of steamers that are being shat onto my terminal any time I do npm install/yarn. :( I understand that you should be rewarded for your work, but this isn't at all the way to go. And given that even on one of my own tiny personal projects, when you factor in the dependencies, there are like five hundred packages this just will not scale :/
Agreed with the other comments that npm install will become a CLI version of annoying popups and banners that are EVERYWHERE on sites now.
Plus - who controls it? The core package author? Can the dependencies log their own messages to?
Feross created webtorrent so maybe let's show some respect for the skills and commitment
People who disagree with this should propose alternatives that address their issues rather than shooting this down.
1.) Ads. If you choose to fund/compensate via selling ad space you are lazy (or lack the talent/skills to innovate); period. Can you generate income/revenue, sure. Selling ad space as a primary means of revenue is where innovation and alternative options go to die; you believe you are out of options (unless a rev kicker).
2.) If you are having second thoughts about the time and/or contributions you (maintainer(s)) have been making to a F/OSS project then do exactly that...rethink what YOU (as a maintainer/project founder) want and do not want. If you need to step away..do it; I do not blame you. If you want to go "for profit"...go for it and good luck.
3.) There is no shortage of historic precedence for projects that decided, after some time, to adopt/create a business/profit model. If the project was important enough, to the community, it forked and others took it the rest of the way.
4.) Now, do I believe PEOPLE should be compensated, to a degree, for time they have donated to F/OSS; sure. People NOT project(s). The demarcation point should be very clear here. Do not drag the project/software into what is a people problem.
Incentivize project consumers to "invest" in a contributor/maintainer/founder and they should be held to a contribution count and or release/feature schedule; these are not high fives and gifts, although I am happy to give high fives. If you want to be compensated you have to be held to some deliverable; we are not "bros".
I love F/OSS and incredibly appreciate the efforts of the community. I do think it is unfortunate that contributors time is not "more valuable" (yet) in this world and am happy to support within a supplied innovative solution. I would continue to, and do currently, contribute to a number of F/OSS contributors via patreon. These maintainers are producing great libs and are VERY responsive to questions/issues/feature requests and release schedules.
I don't know you and I don't have anything to say about you. My point is on the funding mechanism. The evidence I've seen shows that donation-based funding a la Patreon produces a few highly funded, highly visible outliers, many of which would be far better off doing large-dollar deals with their larger supporters off the platform. So far, I don't think the evidence supports recommending the donation-platform approach as a general solution to enabling more valuable contribution from developers, even those with substantial online reputations. Supporter counts and supporter amounts don't bear donations alone out as a meaningful support for individuals.