11 ms·
732K downloads per month. 722K of those downloads come from this package by the same authors: https://www.npmjs.com/package/handlebars-helpers-ncc https://www.
by PragmaticPulp 5y ago
732K downloads per month.
722K of those downloads come from this package by the same authors: https://www.npmjs.com/package/handlebars-helpers-ncc https://www.npmjs.com/package/handlebars-helpers-ncc
The handlebars-helpers-ncc package contains 130 different utility dependencies including a few actually useful things like functions to convert Markdown to HTML, but also some weirdly trivial packages like is-even.
I suppose this was a brilliant way for the authors to generate staggeringly high NPM download counts for their packages: Repackage other people’s useful code into convenience functions and then include their own trivial package dependencies several layers deep to multiply their overall downloads count.
I wonder how many jobs they’ve applied to while bragging about their millions of monthly NPM downloads.
- athenot 5y ago> Several years ago I switched careers from sales, marketing and consulting[1] The author's bio on his GitHub profile explains it: he's approaching development with a mindset of sales and marketing. It's also followed by his GitHub stats front and center. [1] https://github.com/jonschlinkert https://github.com/jonschlinkert
- crimper 5y agoansi-red, making the world a better place!
- shashashasha___ 5y agomaking the world a better place, one ascii color at a time
- phatfish 5y agoI think we know how he created more than "1000 open source projects". s/projects/functions
- deleted 5y ago[deleted]
- vlunkr 5y ago> I wonder how many jobs they’ve applied to while bragging about their millions of monthly NPM downloads. Do people really do this? Does this explain the dumpster fire ecosystem of NPM?
- ratww 5y agoIt is perfectly normal to see "N packages on NPM with N downloads" in resumés, and often a good sign. ...but interviewers often assume that they are all useful packages and that the numbers are not inflated.
- op00to 5y agoThe author is a staunch anti-vaxer in addition to an open source huckster which seems to line up the fallacies of his “contributing to open source” with his willingness to spread lies about COVID and the vaccine. Look at the guys Twitter: https://mobile.twitter.com/jonschlinkert https://mobile.twitter.com/jonschlinkert
- deleted 5y ago[deleted]
- Aperocky 5y agoCode smell is true lol.
- game_the0ry 5y agoThat's awesome. I would hire them on just the creativity, and they also understand the js package ecosystem as well.
- mftb 5y agoThat's great hire them, then it will have served it's purpose. They can repackage all their trivial number related stuff up into one generally useful module, deprecate the old trivial ones and everybody can get back to work (with a smaller number of dependencies).
- friedman23 5y agoThat's one way to look at it, the other is that they will game whatever incentives you put in place at your company to your detriment.
- game_the0ry 5y agoMy friend, you just described the strategy of almost every modern American corporation, except you forgot stock buy backs.
- bryanrasmussen 5y agoI mean the first guy who did it on the creativity, maybe the first 10, but nowadays that just means you can't think of anything else to boost your profile.
- skeeter2020 5y ago>> and they also understand the js package ecosystem as well. You mean how broken it is, and how to take advantage of it? Depending on your business they could fit in really well.
- Pensacola 5y agoIs this "regulatory arbitrage?"
- Aperocky 5y agoThe guy actually had a piece defending his practice making it to HN a few years back. It was not received well.
- IshKebab 5y agoIs that the same guy who was talking about how much work it is maintaining 200 repos?
- Aperocky 5y agoYes. I actually don't mind someone doing this for fun, but to actually defend his actions and claim it's useful contribution is just straight up BS. I wouldn't want to work with this person.
- crimper 5y agoI would eagerly wait his PRs and annotations though
- DrMeepster 5y agoWould be a lot less work if he didn't do this package splitting nonsense
- raverbashing 5y agoI think you have the sell-side correct there. And stretching the idea, people who download is-even for serious purposes are probably amongst the hopeless naive/inexperienced ones
- Benjammer 5y agoI think the horseshoe is almost coming back around to the point where people criticizing NFTs are bringing them up more often and in more annoyingly-out-of-context ways than the crypto people themselves...
- HWR_14 5y ago> I wonder how many jobs they’ve applied to while bragging about their millions of monthly NPM downloads. isEven claims to be a learning project. It depends on isOdd and isNumber, both of which were admitted (IIRC) to be explicit NPM download boosting projects. Such that the author of isOdd added it to major modules whenever they could
- newsbinator 5y agoisNumber would make for a legit package. Is there a good way in javascript to determine confidently if an arbitrary input is a number? e.g: [1, "one", true, false, 0, "zero", null, undefined] edit: also ["1", "0", etc] edit 2: also [NaN]
- Izkata 5y ago“number" == typeof variable Works for decimals, too. Although maybe you meant to include "1" In your examples?
- madeofpalk 5y agoUnfortunately "not a number" is typeof "number" "number" === typeof NaN Returns true.
- organsnyder 5y agoThat's a tricky one that I think would depend on use case. Yes, of course NaN isn't a number, but it's still kind of a number, depending on context.
- ohgodplsno 5y agoNaN is a float according to IEEE754. All numbers in Javascript being floats, it makes sense that typeof NaN === "number". Now, the fact that IEEE754 is insane is something else, but JS does nothing wrong (aside from not having not-floats)
- midrus 5y ago> I wonder how many jobs they’ve applied to while bragging about their millions of monthly NPM downloads. I used to work for a company where it was ok (managers won't say anything, even if explicitly pointed at the situation) to remove company company code, create your own NPM package (on your own private NPM account) and add it as a dependency of the company codebase(s). This and some other similar behaviours were the reason I left that company. But I'm the loser of the story here, as those guys are now working for even bigger companies with bigger salaries than me.
- itronitron 5y agoThey must be quite the 10X programmers to be able to contribute to open source like that while still holding a full-time job. (/s)
- midrus 5y agoWell... if the actual Open Source work you do is in your day job except that instead of committing to the internal codebase you commit in your own packages all day and then update the dependency in the project, I don't think you need to be 10x.
- pizza234 5y ago> But I'm the loser of the story here, as those guys are now working for even bigger companies with bigger salaries Another way to look at this is that a lower-paid SWE is paying for their mental health and morale. In my books, that's a winner :) With the assumption that those engineers whose high/er salary in big/ger companies is not achived through mastery (Netflix is certainly not going to hire the Jon Schlinkerts), they're likely going to work with, say, "moral peers", which is typically undesirable for mentally healthy people.
- ratww 5y agoThis is a very well known trick that we don't talk about much in public, but this is how most people with hundreds of repos on NPM get to this number. One very popular terminal progress bar spinner has over 30 dependencies. One with the list of colors, another to display colors, another to clean the line, another to check if emojis are supported, another one with a list of emojis... plus a whole lot of wheel reinvention. It was visible that most code in the sub-packages were just functions copied almost verbatim from StackOverflow. It was also extremely limited when I tried to use it, and had quite a few bugs (it only really worked well on Macs at the time), despite the extremely large number of dependencies. Reimplementing took about 20 lines.
- dexwiz 5y agoThis is what drives me insane about NPM. Libraries are useful, and even package splitting utils like underscore or babel make sense in some scenarios. But it only takes a few packages like these to explode the size of the dependency tree.
- ratww 5y agoBabel's splitting doesn't make much sense and is purely ideological. It's a monorepo, so split repos are not a development advantage. Plus, releases are often in sync. Plus, they recommend using presets rather than cherry-picking the specific plugins, making it kinda useless for end users. Plus, it's a CLI tool, so it's not really a necessary optimisation (and it would be a bad optimisation at that: having everything in a single package would make everything smaller and easier to compress).
- mintplant 5y agoFor a long time, Babel plugins were entirely smoke-and-mirrors. If you looked under the hood at the source code of a "plugin" package, all it would contain was something like: require('babel').____secret____.enablePluginFoo = true; There was no actual plugin API, just selectively-enabled logic hardcoded into the main packages. The whole thing was fake-it-til-you-make-it.
- soheil 5y agoWhat benefits do those authors accrue other just an increased download counter?
- ratww 5y agoPatreon and Github Sponsorships are popular ones. But also being able to add to their Resumé, being popular and leveraging it for other activities like talks and interviews, etc.
- oefrha 5y agoAh, the infamous npm spammer jonschlinkert. This guy has even crazier packages like https://www.npmjs.com/package/ansi-red https://www.npmjs.com/package/ansi-red and I quote: Related projects ---------------- ansi-reset ansi-bold ansi-dim ansi-italic ansi-underline ansi-inverse ansi-hidden ansi-strikethrough ansi-black ansi-red ansi-green ansi-yellow ansi-blue ansi-magenta ansi-cyan ansi-white ansi-gray ansi-grey ansi-bgblack ansi-bgred ansi-bggreen ansi-bgyellow ansi-bgblue ansi-bgmagenta ansi-bgcyan ansi-bgwhite That fucking ansi-red "package" has 1.3M weekly downloads. I have to actually check to make sure he doesn't have packages like regexp-left-parenthesis, regexp-dot, etc.
- ratww 5y agoThe code of ansi-red for those interested: var wrap = require('ansi-wrap'); module.exports = function red(message) { return wrap(31, 39, message); }; And ansi-wrap: module.exports = function(a, b, msg) { return '\u001b['+ a + 'm' + msg + '\u001b[' + b + 'm'; }; Now imagine those things inside a real utility that gets adopted by some popular package.
- dbreunig 5y agoBut from the average programmer's perspective this is clearly something they want. I see this general trend as a symptom of the inadequacy of JS to out-of-the-box address the tasks it's used for, which (as we note here) opens an outlet for spamming and security liabilities.
- greggman3 5y agoansi-red is not a difficiency of JS. It's just stupid. It the equivalent of a package called add2 and another called add3. No language I know of has that built in and if it did it would arguably be a bad sign
- oefrha 5y agoHaving one package for all of these — that's okay and something people might want. Intentionally spreading it out to 26 "packages" — just no.
- rizkeyz 5y agoYou must be kidding me. Color me old-fashioned, but software development for me is still a "serious" job - one that requires years of training, focus and patience to get through all the matter. And you tell me these people don't give a single fuck?
- swalls 5y agoWhich is something that can be fixed instantly: simply stop showing download counts on NPM.
- nowherebeen 5y ago> I wonder how many jobs they’ve applied to while bragging about their millions of monthly NPM downloads. The sad thing about this is that people will buy it too