A notable JavaScript developer shamelessly copied one of my most downloaded nod

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • nanocolors

    Discontinued Use picocolors instead. It is 3 times smaller and 50% faster.

  • > 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.

  • colorette

    🌈Easily set your terminal text color & styles

  • 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.

  • 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.

    SurveyJS logo
  • Babel (Formerly 6to5)

    🐠 Babel is a compiler for writing next generation JavaScript.

  • 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...

  • ansi-reset

    The color reset, in ansi.

  • 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

  • color-bench-test

  • 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...

  • nanocolors

    A tiny and fast Node.js library for formatting terminal text with ANSI colors (by antonk52)

  • 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.

  • nanocolors

    2x times faster than chalk and use 5x less space in node_modules (by corysimmons)

  • 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.

  • 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.

    WorkOS logo
  • stdlib

    ✨ Standard library for JavaScript and Node.js. ✨

  • > 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

  • info-symbol

    Cross-platform info symbol.

  • 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

  • success-symbol

    Cross-platform success symbol.

  • warning-symbol

    Cross-platform warning symbol.

  • error-symbol

    Cross-platform error 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

  • ansi-black

    The color black, in ansi.

  • 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

  • ansi-bold

    The color bold, in ansi.

  • ansi-dim

    The color dim, in ansi.

  • ansi-italic

    The color italic, in ansi.

  • ansi-underline

    The color underline, in ansi.

  • ansi-inverse

    The color inverse, in ansi.

  • ansi-hidden

    The color hidden, in ansi.

  • ansi-strikethrough

    The color strikethrough, in ansi.

  • ansi-red

    The color red, in ansi.

  • ansi-green

    The color green, in ansi.

  • ansi-yellow

    The color yellow, in ansi.

  • ansi-blue

    The color blue, in ansi.

  • ansi-magenta

    The color magenta, in ansi.

  • ansi-cyan

    The color cyan, in ansi.

  • ansi-white

    The color white, in ansi.

  • ansi-gray

    The color gray, in ansi.

  • ansi-grey

    The color grey, in ansi.

  • ansi-bgblack

    The color bgblack, in ansi.

  • ansi-bgred

    The color bgred, in ansi.

  • ansi-bggreen

    The color bggreen, in ansi.

  • ansi-bgyellow

    The color bgyellow, in ansi.

  • ansi-bgblue

    The color bgblue, in ansi.

  • ansi-bgmagenta

    The color bgmagenta, in ansi.

  • ansi-bgcyan

    The color bgcyan, in ansi.

  • ansi-bgwhite

    The color bgwhite, in ansi.

  • Standard

    🌟 JavaScript Style Guide, with linter & automatic code fixer

  • 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.

  • eslint-config-standard

    ESLint Config for JavaScript Standard Style

  • 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.

  • minix

    Redirection to the real github page only. (by minix3)

  • 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

  • standard

    Ruby's bikeshed-proof linter and formatter 🚲 (by standardrb)

  • See also, the "StandardRB" wrapper around somebody's RuboCop config:

    https://github.com/testdouble/standard

    https://github.com/testdouble/standard/blob/main/config/base...

  • oh-my-fish

    The Fish Shell Framework

  • 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...

  • 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.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts