Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
nanocolors
A tiny and fast Node.js library for formatting terminal text with ANSI colors (by antonk52)
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
> The absolutely crazy thing is the person who caused this doesn't even think they did anything wrong
If you follow the post here: https://github.com/ai/nanocolors/pull/14#issuecomment-927346...
... it appears he's now saying of the victim:
1. "I believe he [the victim] is a good person, but love colorette too much and prefer impulsive actions (it also explains API breaking changes). Impulsive behavior can be very dangerous."
2. "Comments like this [https://news.ycombinator.com/item?id=28662796] shows that his behavior in that case was very questionable. Seems like he is systematically put himself in conflicts."
True or not, I just find these statements ironic.
Good news though, and perhaps more importantly, is it looks like both parties are starting to discuss a resolution; maybe even co-maintainership of Colorette? That would be a great resolution to all this, but personally think that would take a lot of guts, given everything that's transpired.
I also think 'johnnyshields' in the linked GitHub thread above deserves acknowledgement for some noticeably simple, but effective, attempts at facilitating resolution.
https://github.com/jorgebucaran/colorette/blob/main/LICENSE....
Copyright © Jorge Bucaran <https://jorgebucaran.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This is not in the true spirit of open source.
Forks and idea sharing are also an important part of open-source if they are coming with respect to authors of origin ideas and mentioning them.
You are mentioned not only in docs (colorette mentioning text in Nano Colors docs was even approved by you) but also in LICENSE.
Before colorette 2.x API changes, I promote your project to other projects because I tried to find chalk alternative. I sent you PRs. I used your library in all my projects for a year.
We all stand on the shoulders of giants. We both used Chalk color detection algorithm as reference. We both using other source code to find the best optimizations.
If you do not like that your tools is also used as an inspiration (with mentioning you), feel free to replace this PR with PR of replacing chalk to colorette."
https://github.com/babel/babel/pull/13783#issuecomment-92710...
I have nothing against them as a person - I don't know them at all. However, the ANSI colours one is blatant package-downloads optimisation. Infact, the READMEs were clearly copied and pasted,
> The color reset, in ansi. [1]
Which doesn't really make any sense.
[1] https://github.com/jonschlinkert/ansi-reset
Colorette author here. I put the benchmarks in a CI workflow so anyone can check. Click Benchmarks to see the results:
https://github.com/jorgebucaran/color-bench-test/runs/371243...
You can see the original commit history in old forks of nanocolor, e.g:
* https://github.com/antonk52/nanocolors/commits/main * https://github.com/corysimmons/nanocolors/commits/main?after...
You can, indeed, see that they lack all of the original repo's commits.
You can see the original commit history in old forks of nanocolor, e.g:
* https://github.com/antonk52/nanocolors/commits/main * https://github.com/corysimmons/nanocolors/commits/main?after...
You can, indeed, see that they lack all of the original repo's commits.
> I wonder why there is not a simple math lib
This [0] might be what you are looking for, it has both is-number and is-odd.
[0] https://github.com/stdlib-js/stdlib
For what it's worth, this is also all the work of one person who spammed NPM with micropackages to boost his download counts. This meme attacking `npm` for nonsense like `is-odd` is quite literally the result of one person resume boosting.
For every one thing, he broke it down into as many possible packages as possible, and all of his packages depend on 20 more of his packages. It's like a fractal of resume boosting.
https://github.com/jonschlinkert/info-symbol
https://github.com/jonschlinkert/error-symbol
My personal favourite is making every single ansi colour into a separate package, and then making `ansi-colors` which depends on all of them, and all of these packages are just a single function call with a provided number. It's honestly insane.
https://github.com/jonschlinkert/ansi-black
https://github.com/jonschlinkert/error-symbol
My personal favourite is making every single ansi colour into a separate package, and then making `ansi-colors` which depends on all of them, and all of these packages are just a single function call with a provided number. It's honestly insane.
https://github.com/jonschlinkert/ansi-black
The JS Open Source Community is filled with people grifting things like this. Quite notably, there's a linter called JS Standard Style, which actually has nothing to do with JS Standards.
It's marketed as if it was a standard, the fact that it isn't is tucked away in the readme, and also -- the entire project is just a wrapper around someones .eslintrc file, yet barely any credit is given to the ESLint devs who do all the work.
Go ahead and read the readme here, https://github.com/standard/standard. Could you genuinely tell this wasn't really a JS Standard at a glance? Could you tell this was just a config file for someone elses work? None of the donations go upstream to eslint by the way.
Hell, the actual config file is hidden inside a sub repo:
https://github.com/standard/eslint-config-standard
which has the audacity to claim
> This module is for advanced users. You probably want to use standard instead :)
It's a config file for someone elses program! Why does this library go through so much effort to hide that it's just someones config file? Why on earth is it called JS Standard Style?
The whole community is filled with slimy nonsense like this.
The JS Open Source Community is filled with people grifting things like this. Quite notably, there's a linter called JS Standard Style, which actually has nothing to do with JS Standards.
It's marketed as if it was a standard, the fact that it isn't is tucked away in the readme, and also -- the entire project is just a wrapper around someones .eslintrc file, yet barely any credit is given to the ESLint devs who do all the work.
Go ahead and read the readme here, https://github.com/standard/standard. Could you genuinely tell this wasn't really a JS Standard at a glance? Could you tell this was just a config file for someone elses work? None of the donations go upstream to eslint by the way.
Hell, the actual config file is hidden inside a sub repo:
https://github.com/standard/eslint-config-standard
which has the audacity to claim
> This module is for advanced users. You probably want to use standard instead :)
It's a config file for someone elses program! Why does this library go through so much effort to hide that it's just someones config file? Why on earth is it called JS Standard Style?
The whole community is filled with slimy nonsense like this.
I think I made it pretty clear that I was suggesting these packages are somewhere above the one-liners. But perhaps for contrast we should compare to the other end of the spectrum... Intel uses Minix3 in intelME which is part of every modern intel CPU [0]. Minix3 has a 3 clause BSD license which requires reproducing the copyright notice for basic attribution [1].
Now in Tanenbaum's public letter, he politely suggested it would have been courteous if they had informed him of what it was being used for [0]... no mention of lack of attribution, he didn't make even 1/10th the fuss this NPM package developer made.
[0] https://www.cs.vu.nl/~ast/intel/
[1] https://github.com/minix3/minix/blob/master/LICENSE
See also, the "StandardRB" wrapper around somebody's RuboCop config:
https://github.com/testdouble/standard
https://github.com/testdouble/standard/blob/main/config/base...
I'm that person, but that's not exactly what I did.
Wahoo, a framework I had built, became the base for the then, new Oh My Fish. I, myself, committed[1] it into the Oh My Fish repository, effectively replacing everything but the name. This was a huge change.
Regrettably, I didn't include a migration strategy, and ended up breaking other things down the line because of that. This and poor communication on my side, eventually led to a fallout and I exited the project. I asked the other maintainer to revert my changes or provide full attribution.
Reverting my changes would've made no sense at that point, and I realize that.
Attribution was left as "Copyright (c) 2015, Oh My Fish!". That didn't do it for me. My name was not anywhere. Ironically, my name is now almost everywhere Oh My Fish is brought up.
Filling a DMCA notice was my careless reaction to the situation. I know that I could've handled it better. I wasn't at my best.
[1] https://github.com/oh-my-fish/oh-my-fish/commit/2693a2fd18bd...