The Nintendo Switch uses my open source code
twitter.com
twitter.com
I'm just kinda curious about some comments on Twitter and here. Ok, the guy made an open source library, with no strings attached, a big company used it for god knows what and acknowledged him. Why would the company give him anything more than acknowledgement? As far as we know they didn't demand any updates or support from him, why are they expected to give him freebies, contribute to the code or anything else?
It cuts both ways; some users expect more support than promised.
Modding communities have historically leaned on self-penned bespoke licences tending toward the, "only Tool fans can use this! Do not rip my sprites without permission, that means you XxSephiroth494 YOU HAVE BEEN WARNED!!" school of legal text. But as an open-source project, there is a convention to upload things to the content distribution network with a GPL or Creative Commons licence.
This causes some rather dramatic fallouts when "I don't have to give you any source code, it's mine and I wrote it" or "he can't just take my mod and build his own version of it" meet the inevitable response of, "you released it under the GPL, that's how it works". It gets rather messier when said work includes upstream things which were originally released under the Tool Fan Restricted Licence or similar where the original creator forbade further sharing of source code.
Because it would be cool, and some good press that very few people would read.
After the tweet likely started to trend you see the start of the eternal GPL vs MIT/BSD debate, but the first couple just seemed pretty like they thought it would be neat if he got a Switch.
How much did he paid for the compiler?
It seems like you're drawing some false equivalence between the open source developer and Nintendo.
I bet his compiler is opensource too.
LLVM is NOT GPL.
If someone wants to distribute their software with the expectation or requirement that derivative works in some sense give back to the community they should use the GPL or AGPL.
If you scroll down, you'll see some of the tools (I assumed) he used.
If you go to one of his projects (Twitch), you can see what he used for it: https://theymadethat.com/projects/7da659d8-629f-5c10-9160-7a...
That in turn should show up in the main product profile, which results in credit being given like IMDB
https://theymadethat.com/things/wz7/twitchtv/show_built_with...
The problems are two fold:
1. It's more work to do than a normal resume since it's project-centric. Also unless you're constantly tracking this, does everyone remember all the libraries they're using? Probably not (There's still a lot of work needed on the UX front. It's not very optimized for mobile)
2. People have to start using it. (I have never marketed my IMDB for everything well enough) See #1
So this is some sort of middle ground, folks feel like there should be a more meaningful gesture than is required by the license without feeling like it should be put into the psychological category of compensation/market rate.
Not everyone is a fan of that requirement, which is why Unlicense, 0BSD, 1-clause BSD and Boost licenses were created.
Usually the sentiment I see expressed in these threads reads to me as: hey, it's not fair that this company is profiting on your (permissively licensed) work without sharing the profit.
But I think that is not the sentiment being expressed here, and rather it is the thing you said.
The top comment in this thread, the one I replied to, is basically "I'm happy for the guy, but why do people think Nintendo should/would contribute back?" It's the same GPL vs BSD discussion, just people aren't trying to rain on the individual's celebration.
Last but not least is just the feeling that your code is running in so many places! What a feeling of accomplishment. Over a career, you start to think more and more about what code you have running in the world. Where it used to run. Where you'd like it to run.
That's a pretty satisfying feeling, and it also makes him one of the few bona fide people in the world at whom you can throw money to fix (or change) the library.
I don't expect anything from them, they don't ask anything from me and just knowing that it is useful for such a big project is all endorsement I need.
In a funny twist of fate, Microsoft now uses SheetJS open source to power some Excel exports in Office 365! https://tasks.office.com/License.html is the license disclosure, and you can actually see it in action in the exported files.
We were blown away when we found out. It's the ultimate endorsement! Oftentimes we just wonder what would have happened if Microsoft just let the original project adopt a standard open source license.
It’s weird to me that developers write code that other companies use to make profits, while they just get paid with a “feeling” of satisfaction.
https://www.raspberrypi.org/blog/building-computer-labs-in-w...
https://en.wikipedia.org/wiki/Free_and_open-source_software#...
"Netscape's act prompted Raymond and others to look into how to bring the FSF's Free software ideas and perceived benefits to the commercial software industry. They concluded that FSF's social activism was not appealing to companies like Netscape, and looked for a way to rebrand the Free software movement to emphasize the business potential of sharing and collaborating on software source code. The new name they chose was "Open-source", and quickly Bruce Perens, publisher Tim O'Reilly, Linus Torvalds, and others signed on to the rebranding. The Open Source Initiative was founded in February 1998 to encourage the use of the new term and evangelize open-source principles."
It states this as a source: https://opensource.org/history
I spent this Saturday morning working in my front yard. It looks nice for my benefit, but it also benefits my neighbors. It would be really strange for me to approach my neighbors and ask for financial remuneration because they've been enriched by my yardwork. Yardwork is enjoyable and I like making the world better in this fashion.
I wouldn't join a yardwork company and work for free.
Software is similar. We can use OSS to share the benefit when we do something we want or need to do anyway.
My open source is my way of volunteering to make the world a better place. Whether some for profit company uses it is irrelevant to me. Plenty of companies (Google, Apple, Facebook, Microsoft, ...) give back way more than they take and even though I have about 100-160 original repos on github my free output pales in comparison to the amount of stuff I take for free. Nintendo might give less today but lead by example and that might change. Though if it never changes it still doesn't bother me in the least.
Oh no.
> Plenty of companies (Google, Apple, Facebook, Microsoft, ...) give back way more than they take
OH NO.
In what planet is donating to a charity the same as "donating" code to a for-profit enterprise, but even more insane (in my opinion ofc) in what planet do google and facebook "give more than they take"??
Consumer surplus?
Do you really think the ability to use their search engine is worth more than that to you?
With less than 0.1% of their annual ad revenue I could retire tomorrow, debt-free, and set up a trust fund for my daughter so she'd never have to work a day in her life.
People say that ads work so of course you are affected by them, but I am pretty sure lots of people aren't affected that much by ads. Luckily for ad companies there are a lot of ad-whales out there, people who are very easy to influence and get money from. These are the same kind of people spending lots of money in free to play games, at casinos or who falls for MLM schemes.
Google's entire ad revenue, of course, comes from "a few ads".
There are a ton of project owners who would love nothing more than to be used by a big, popular platform. That's a pretty big win with hardly any risk. It means their thing beat out something that could have been made in-house by the world's best devs. Can you imagine discovering that your little thousand-star github library is present in, I don't know, Gmail? Presumably, at the very least, it means an auto-hire if you apply to any of the biggies for a very high total comp.
(And if you refuse on principle to cash in on that endorsement? I say good for you and I would like to hire you to be on my "wizard council". These are people I subscribe to to be diligent, principled, skeptical, and open about any software update I consume. This would include, BTW, a holistic definition of "software" to include firmware, FPGAs and so on. Please talk to me like an adult about InfoSec! Thank youuuu!)
Yes of course they are under no obligation outside the license, but I'd like to see them send the author a toy anyway.
A company like Nintendo sends out tons of swag to people who have collaborated with the company in some way, just add the author to the list.
https://twitter.com/mxcl/status/608682016205344768?s=20
I used to be a big believer in open source software, but as for profit enterprises continue to pillage the community without giving anything back more and more I feel that it’s not worth the time or effort involved, unless the work is protected by a proper GPLv3 license.
That is the ethos, it's what open source and CC is about. I may not be in a position to profit from some of my work, or I might be willing to donate it for free. If someone else can do something valuable enough to other people with it that they get paid to do it, good for them. The world is a better place. At the end of the day companies and corporations are just made up of people making a living.
Yeah that's weird. I think it's partly people realizing the difference between MIT/BSD and GPL (or even AGPL) licenses. Or the diff between some ideal "how open source works" and what the licenses actually say.
This is a good thing. People may realise that the choice of license actually matters.
But: https://twitter.com/mxcl/status/608682016205344768?lang=en
I think they'll never have to fizzbuzz again, but probably still lots of whiteboarding in their future.
Recently I was chatting with a young woman who competes in motorcycle racing at an international level. She's almost old enough to get a driver's license to drive on public roads. Do you think she gets to skip the driving test because she can ride better than all but a few people in the country? No, she'll do figure eights in a parking lot like everyone else.
Big company bureaucracy functions similarly to government bureaucracy. The rules are built for the common case and exceptions for individuals, however reasonable, are hard to make.
When I interviewed, one or two of the questions were stereotypical "reverse the string in Pig Latin while solving tic-tac-toe" or whatever. Most of the questions were directly relevant to real-time safety-critical embedded systems stuff though.
At some point while I was there, Google did some viral marketing leetcode foobar challenge recruiting thing. If you searched for certain keywords, your web browser would do a fancy 3D zoom effect and then give you coding challenges. I did some of them for a couple hours one time. Some of them were tricky word problems, but algorithmically none of them were particularly difficult. The only one I remember had maybe 5 paragraphs of text, and my solution was literally one line of python.
My opinion is that if we knew, fully understand and answered your questions we would have nearly ended all the past, current and future political debate.
Some people just always wanted more, especially those who are making more profits.
Because they make big money with his work and he does not.
So sure, legally they do not owe him anything, but morally a material compensation would be adequate.
If the idea spreads of freely compensating OSS, then more OSS work could be done fulltime. Money still rules the world.
Also, yes, the Switch makes a lot of money, but if I had to assign a percentage of revenue that is attributable to feross' library, I think I would assign it exactly 0.00000%
How do you know? Did you followed internal developement of the switch?
"Since feross would materially gain from being gifted something from Nintendo, should feross give partial ownership of the Switch to the authors of the open source tools he used to build his library?"
Why not? Whats wrong with inviting them over for a gaming round, or sending parts of the money? Depends on the amount.
> Why not?
Nothing's wrong with that. But if the author doesn't do it, I won't call him an ungrateful asshole and berate him on twitter.
Ok, well, I didn't. And probably neither did most people on twitter. That being said, you probably know too, that even some lines can be very valuable, if they prevent crashing bugs. In either way, it is a value.
It just would be nice, if companies could find more ways, of giving back to OSS, if they use it.
The internet sentiment is, 'they' are exploiting the OS community - thats why the harsh reactions, even though maybe not justified in this case.
And it's possible that they aren't even directly using his code, and don't even really know about it beyond an automated system publishing the licenses. Due to the way licensing works, Nintendo could be using OSS library A that they shower their largess upon with free switches, but library A uses library B, which uses library C, which uses safe-buffer. Safe-buffer would still have to have their license published in that manner, but it isn't really clear that nintendo is exploiting that party. Hell, it could even be the case that the author's code is never actually executed on the switch, if for example it was bundled in but is part of a feature that is never called, because Nintendo wanted to use other parts of the same library that happened to include safe-buffer.
By the way, I just checked Nintendo's open source switch library, and there are at least 36,000 copyright notices present in the archive. That's a lot of free switches!
They don't make big money with his work. They make big money with their own work, and he delivered a very tiny gear in that. It's not like he made some genious unreplaceable part which is worth billions on it's own. It just happend to be there and fullfil a demand they had. They can acknowledge it and give him something extra, or just follow the lizense and mention what's neccessary. It's up to them and how much value his work has for them.
I disagree that it's "expected" that the company gives him anything, there's generally no expectation like that in OSS. BUT it'd be super-cool if they did give him a Switch!
It would be great press too.
Mind, it's not to the same level as this guy: https://github.com/jonschlinkert
Chances are it's just found itself as a dependency of a dependency, rather than being used directly. Not to shit on either of them, but they both 'maintain' a large amount of trivial packages that any language with a sensible standard library wouldn't require.
The Buffer security issues that Mathias Buus and I uncovered led to the deprecation of `new Buffer()` in Node.js and the creation of the `Buffer.from()` and `Buffer.alloc()` APIs. There is an explanation here: https://github.com/feross/safe-buffer#why-is-buffer-unsafe
I created `safe-buffer` as a demonstration of how the API could be fixed to be safe. Then, the ecosystem adopted `safe-buffer` as a polyfill to get that safety even before `Buffer.from()` and `Buffer.alloc()` were included in Node.js. And to this day it continues to be used to provide safety in older versions of Node.js which lack the newer APIs.
tldr; We fixed Node.js and made it safe for you. But, by all means, feel free to continue mocking me and the volunteer work I've done for the community :/
For everyone that thinks he should get a switch for his work - I wonder if they also think that the author should, say, lend out his switch to open source authors for a week or two for using the open source software that he almost certainly used in order to build his library which was included in the Switch.
Because there is a level above "doing the absolute minimum necessary" that is a nice-to-have, but not at all mandatory nor expected.
It seems like everyone is purposefully going out of their way to not understand that throwing him a freebee that's cheap compared to the cost of engineering time (e.g. a nintendo switch) would be a pleasant thing to do and a way to buy goodwill.
See his "experiment" (https://github.com/feross/funding) and selling terminal ads during npm install (https://dev.to/adriansandu/npm-bans-terminal-ads-and-mozilla...)
People who release free software are generally people who enjoy programming. A programmer with a proven track record of releasing high quality free software should have no problem securing a high paying job. If this guy happened to be looking for one this public attribution from Nintendo is surely something that can help level up a CV.
"This was due to a project funding that was created by Feross, one of the StandardJS maintainers. The idea behind Funding is that companies buy ad space in people’s terminals, and the Funding project then shares its profits with open-source projects who signed-up to show the ads." - https://dev.to/adriansandu/npm-bans-terminal-ads-and-mozilla...
My point is that he could have a normal job, but he got lucky with a few projects and then built a life around the kudos from open-source projects (like Nintendo's endorcement).
To be fair, they're just fulfilling they're legal requirements. Second paragraph of MIT License requires including License and copyright notice:
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software."
which is exactly what they did.
I’d personally be satisfied contributing to the world of software so broadly. That’s why you do open source, making the worlds software better for everyone.
Monetizing something called ‘safe buffer’, or even to the point of pushing for a freebie and a thank you card on social media, seems silly to me (which I don't think OP was doing, only in the replies).
If it was some commercial license for a small Node library, which they had every right to choose, it would have probably died in obscurity anyway. And what good does that do the software world.
Meanwhile getting to say your code is used by Nintendo Switch on your resume, or bragging rights to your nephew or whomever, seems more than enough to me. Part of the hacker ethos.
On the other hand pushing it hard so it becomes a 'thing' would leave a bad taste in my mouth. Although rewarding OSS is something every major company should strive for (In Nintendos case specifically I'd be personally be surprised given what I've heard about Japanese corporate culture, but I'm just speculating here).
But it is indeed a good marketing strategy, at least if the HR and marketing teams were even aware of such things (ie, people who have control of sending out freebies). Which is why having technical leadership throughout the company always helps. Ultimately it will come down to an organizational thing.
Sending out free consoles would just be a marketing gimmick, and could just as well backfire as “you can’t eat a console, do Nintendo really think consoles are the way to support open source maintainers?” etc
Just simply supporting OSS directly, as in real money, is more than enough to quiet these "they should give x freebie".
That is all the mob should be calling for as a standard practice. Not sending some random developer who happened to get popular on Twitter a nintendo.
"Oh, hm, well we don't really want to give away free consoles this time around. And if we don't then it will make us look bad because we did last time. So don't use that code."
As a dev, I don't really want to have to check with 50 other divisions in the company before I use some open sourced stuff. And then get denied because of some unrelated PR event is going on.
But, as soon as you start paying, you have: 1.) All the other open source code they're presumably using possibly in more trivial ways and 2.) As soon as money enters the question it can become a matter of "My library probably saved Nintendo tens of thousands of dollars in development costs and all I got is this lousy console. No wonder people say open source development isn't sustainable." (Whether that was the case here or not.) It might have been a nice gesture but it could easily be taken the wrong way.
But then you might think, for some things anyway, Wait a minute, you're recognising the value you get out of it... and you're valuing it at only ~£300 (or whatever).
I think 'just trying to be nice' could back-fire.
Yeah, that's immediately what my mind went to. If my code was used by someone as major as Nintendo, then I wouldn't be making a fuss. But you can bet that I would have 50 different ways to move that into a discussion during a job interview.
Yeah, sure it would be nice if people sent me free things because they're using my code. However, putting restrictions on my code or making a huge stink about it on social media sounds like a good way for people to not use my code.
If I wanted something back for sure in exchange for my code, then I would license it such that I'm going to get something back or setup some other contract. I thought that's how adulthood worked. If you want something in exchange for your work then you need to set it up ahead of time. If you want to give somebody something then you shouldn't expect anything back. You gave it.
There's plenty of personal gain to be found being an OSS developer (especially in a group setting just outletting creatively with other talented people) without directly making the motivation prizes/money the end goal.
No one is against rewarding OSS developers as much as possible. I'm certainly not and think every successful company using OSS software, aka all of them, should have a wing donating to projects. But I am against watering it all down to some narrative of OSS developers somehow being exploited by commercial companies.
Having companies and individuals supporting him: https://feross.org/thanks/
As well as offering actual support contracts: https://feross.org/support/
Great point. In the current market for devs, the expected value of that is probably worth ~$10,000's+.
A switch is ultimately a mid spec Androidish tablet. I'd imagine embedded system manufacturers would really value him
https://github.com/feross/safe-buffer/blob/master/index.js
It’s a tiny API wrapper in JavaScript for older Node versions. While useful for someone on older Node, it doesn’t really say anything about the author’s embedded system chops.
This should have been mentioned in the original post as it gives some much-needed perspective about the scale of the contribution.
As an adult living in a world with other adults, if I want to get paid for my work, then I'm going to setup that interaction ahead of time.
If I wanted to con people, then maybe I would put something of value out for anyone to take. Then once people take it, I would pressure them for something of value in return.
If I give out a gift and it makes someone want to give me a gift in return, then that's nice. But they aren't required to give me a gift. That's the whole point of giving a gift in the first place. It doesn't setup a compulsory need to reciprocate.
Were I to write code for your company, I bet you wouldn't let me release the code to anyone else (I can see it in your little eyes) and you'd definitely demand to control what I write and how quickly. It's externally motivated. The external motivation I choose is money.
If they start making demands for fixes, enhancements, etc., Then sure, by all means provide your $$$ rates, or encourage them to contribute to the project with their own programming time.
https://github.com/feross/safe-buffer/blob/master/index.js
It is 65 lines of Javascript that's mostly boilerplate. I doubt it saved them significantly more than the cost of manufacturing + shipping a Switch, or that they even used it directly. More likely this was just pulled in as an indirect dependency.
When I worked with some security folks and they'd get vulnerabilities and etc recognition was a big deal. The security researches (or hackers, whatever you wanted to call them) who reached out to us loved getting their name in release notes or wherever they could point to.
It made sense as it was legitimate recognition of some seriously helpful work. Cost the company nothing to put it in there and made some folks super happy.
The response that people should "Use GPL" belies the reality that most companies and individuals avoid GPL libraries like the plague. A full GPL program is a different story of course.
It’s not newsworthy, so we don’t talk about. We only see headlines when someone makes waves by trying to claim the deal was something other than giving the code away.
Honestly, it makes my day to get a PR. It means someone is using the thing :)
I, for one, prefer to open-source my libraries under MIT and see it used rather than using some more restrictive license and having it never end up being used anywhere :). So add me to your list of people being happy their code gets used.
https://daniel.haxx.se/blog/2018/09/17/the-worlds-biggest-cu...
Edit: And this is somehow controversial! Do tell me more!
GPL your shit people.
I agree it's your choice. I will say, however, that we need to band together as a community. This of course depends on your views on the future of OSS but if you want corporations to also participate and maybe have a chance at a completely open source future, we need to collectively insist on GPL. Doing otherwise minimizes the efforts of those who want more OSS participation from corporations.
I think it would still count as a free and open source software license, and it would allow small and independent developers to use the software without worrying much about the license, while requiring big companies to release the source of the derivative work.
[a]: The LGPL allows proprietary usage, but only when the LGPL library is dynamically linked in. The reason being that if it’s a separate binary file (.so, .dll, etc.), the user can replace it with their own version. If you statically link it (embed it in the program binary), the full GPL kicks in (IIRC).
It felt like Qt was (relatively speaking) all over the place when they were owned by Nokia, but have been in a slow decline of mindshare for years. Of course, that's concurrent with the rise of Electron as the cross-platform app wunderkind.
Plus, from my friends who still do Qt, they're trying to turn it into an Electron-like platfom with Qt Quick and QML and the result isn't exactly the dependable platform that we used to know and love.
I think it would still count as a free and open source software license, and it would allow small and independent developers to use the software without worrying much about the license, while requiring big companies to release the source of the derivative work.
It would not count as free or open source
It goes against freedom 0, and criteria 5 and 6 of the open source definition
As it always resolves to an open source license after a set amount of time + is always free in many other ways.
It's GPL plus an additional permission that noncommercial derivative works don't have to share the source code.
Anyway it's probably not actually a good idea.
As long as as developers are willing to develop something 80% as good or a company open sources something that good, the one with the messy license will never get the same traction.
They certainly could mandate that all new contributions are licensed as GPL2+, not the GPL2-only a lot of it is under. Then, after an eternity, when every bit is now GPL2+ (either by relicensing or rewriting), mandate all new commits are GPL3+. Then the only way to use it would be to rip out the GPL3+ parts (if you want GPL2 terms) or to use the GPL3.
Simple!
Except not really...
The theory I guess is that, even absent a contributor license agreement, contributors to the kernel are effectively contributing to a collective work and that the project as a whole could make changes even if individual contributors did not agree.
It used to be a huge honor for a program you wrote to end up in a computer magazine for millions of people to type in for free. I was published twice in the mid-80's and only got a copy of the magazines, but that was enough.
Back then, it was also common for the magazine to publish your home address and sometimes phone number so people could get in touch with you with questions.
Programming is no longer a community. It's a competition.
Not everyone wants to live an ascetic lifestyle or can afford to be a hobbyist, so expectations have changed.
This is a problem with many hobbies in modern times where everything is a competition with others and less about enjoying it.
Programming just became mainstream and it more accurately represents society as a whole.
Now entire stacks of the internet rely on libraries developed by one or two people who are bus factors, and humans prone to burnout.
Depends on the mission. Plenty of businesses relied on type-in programs for their day-to-day survival.
Today the term "mission critical" is a victim of scope creep and people trying to inflate their positions.
Programming is no longer an engineering job. It's no longer a form of art. It's this race to the bottom where you have to mindlessly glue together as many libraries as it would take to write as little of your own code as possible, treating said libraries as black boxes.
I'm talking about those cases when people pile 5 layers of abstraction just so they don't have to learn something, but get done with the job a little bit quicker. They don't try to understand neither the inner workings of these layers nor the CPU/memory/storage cost. If it means you write fewer code, it goes into your project. Thus you end up with "desktop apps" that are websites, with all the amazements (/s) of the modern web development, packaged with an insanely complex thing that a web browser is — just so the bullshit unrealistic "business requirements" are met. Or laggy, bloated mobile apps that get updated every week with no discernible changes. These just scream that the people behind them have no clue what they're doing.
Or maybe they know exactly what they are doing, but what they are doing isn't what you think they are doing. I'm pretty sure nobody at Slack regrets using electron.
They're fixing bugs in an app that is 10 screens of lists. How does someone who knows what they're doing make this many bugs this subtle in such an app? I have no idea.
> I'm pretty sure nobody at Slack regrets using electron.
I'm pretty sure nobody at Slack cares. They do whatever their managers tell them to.
What they're doing is building a successful product and company. Code quality is probably not very important to this goal.
You have 1 week.
I'm not big on web technology du jour so despite my years of experience not sure I can... but I bet you a random bootcamp graduate who couldn't tell you what a TCP packet is could do it!
And there's the fact they don't know how TCP works and their solution takes 100x the RAM to do a simple task than a native app apparently isn't stopping similar apps from doing X million AAR...
It's hyperbole, but in the opposite way of "it's just 10 lists".
These programs you see don't exist in a vacuum. The requirements you see before your eyes are the tip of the iceberg.
> what if a business need comes across for a desktop, a website, mobile apps, fully responsive, theme-able, animated.
What if someone wants a baby in a month? It doesn't work like that. No matter how hard you try, it takes 9 months. It's the same with quality software. These arbitrary unrealistic deadlines help nothing.
But I'm sorry, that's a thing! People ask for a baby in a month, get a baby in a month, sure the baby is not great, but it gets them pretty far. Not everyone has the luxury to say no and walk away. Honestly I find that kind of weird gatekeeping in our profession kind of sad.
-
The people who "only know how to slap together components" are starting somewhere. I was privileged enough to have access to technology from a young age and tinker to my hearts content so I ended up with a deeper understanding of things. But there are people who started from nothing, didn't have the opportunity to even tinker had they had the access, they were working on moving forward in life.
Now our field has been democratized to the point people don't need to have had those opportunities to do amazing things, we act like that they do is somehow lesser, even though once we swallow our pride, at the end of the day people don't care that much.
People notice their apps crash, people complain things are slow. But when the chips are on the table, they deal with it very well. The web has gotten slower and slower, and it's usage has gone up and up. The apps have gotten buggier and buggier and the amount of utility they provide has never been higher.
-
Also I thought about pointing out the context is for-profit apps here when talking about people rushing to ship hastily slapped together legos but figured anyone having this conversation would realize that.
In that context money is everything. No point in shipping a formally verified native app if a competitor takes the entire market with their 1 month baby and no one uses it. (and yes sure you can point out the academic satisfaction of it... but academic satisfaction isn't going to pay a mortgage or feed your kids)
You could also say the same thing 30 years ago about people using the C standard library instead of implementing their or strncmp in assembly.
I tend to agree with your comment about "it's a competition." It is why I release a lot of things these days under "do with it what you will. I'm just here for the lulz."
It's a deliberate choice. I'm not surprised that his response is more mind-blowing shock rather than anger.
> Fun game at apple store: on any mac, in terminal type: "grep Copyright `gem which rake`"
... which would print his name, because Ruby and rake are bundled with macOS. :)
- https://www.zdnet.com/article/circle-with-disney-web-filter-...
- https://threatpost.com/popular-circle-with-disney-parental-c...
The code in question was a primitive mDNS announcement library written in C, which I licensed under the 3-clause BSD license.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
They essentially picked up a print out of some source code they found laying on the ground in a park with a sticky note on top saying "DO NOT USE" and then threw it into their security-focused product for shits and giggles.to be fair mDNS is complex and shitty enough to use that it'd likely have been worse if they reimplemented it themselves.
I mean just look at the official Apple code:
- https://github.com/SteveKChiu/bonjour-embedded/blob/master/m...
- https://github.com/SteveKChiu/bonjour-embedded/blob/master/m...
- and the best, that 8kloc single file which implements the main logic of it https://github.com/SteveKChiu/bonjour-embedded/blob/master/m...
makes my eyes bleed every time
Just curious, as a side question... suppose one really does believe that users should be able to improve and modify the software on devices they own and share those improvements with others; is there a better license out there?
(The current situation reminds me a lot of a Prisoner's Dilemma problem -- if the open-source community typically used the GPL, there'd be significant economic pressure on companies to work with GPL'd software, but in our current world, the individual developer has to choose between giving their code away as non-GPL open-source or toiling in complete obscurity, and it's no surprise that individuals choose to at least get the cred of seeing their code used.)
On the prisoner's dilemma – I see two major dimensions in BSD/MIT vs GPL:
* Should a license enforce the giving back of code or should one be free to do so out of ones own will? Which is the most "free"? Enforced freedom or freedom to be free? (Which one is best really depends on how one defines and values "free")
* Does a long and complex license like the GPL help a project or is the simplicity and shortness of BSD/MIT better?
(Then there's the third type of license which is Apache, which is basically as open as BSD/MIT, but still as long and complex as GPL, to cover eg. patents in addition to intellectual property)
At core, there are two different philosophies at play here.
On one side, you see copyleft licenses. These licenses impose a requirement on anyone who uses/modifies the source code. This requirement is for the purpose of ensuring that all versions of the source code are available for all potential users of the code. They do this by requiring source modifications to be licensed similarly and made available.
On the other side, you see permissive licenses, such as BSD or MIT licenses. These impose no requirement upon users/modifiers of the code, other than preserving the copyright notice on the copyrighted code. Derived works need not share a similar license, nor do modifications need to be made available.
Both categories of license allow downstream users of the code to do whatever they wish with it in that neither restricts usage of the code. Copyleft licenses include a requirement to share and share alike. This imposes additional legal burdens on some usages of the code - it doesn't prevent it outright, but it forces certain actions as a condition for certain usages of the code. Permissive open source licenses impose no such burden.
Both allow users to improve and modify the software on their devices. Neither prevents sharing those improvements with others. One requires sharing those improvements with others.
So, I'll conclude by restating my initial point: it depends on what your definition of "should" is. One interpretation of should is normative - you believe in this thing and you believe that it is well and good that requirements to act in accordance with this belief are imposed upon others. The other interpretation is that an acceptable license does not restrict such behavior, but also does not enforce it either.
So... if you genuinely don't care, why wouldn't you release software as GPL instead, so that you're not enabling companies to more cheaply provide software that prevents people from making modifications?
(And to be clear, I'm asking as devil's advocate here -- for myself, I have a few personal projects I haven't released, but I've sometimes thought about what license I'd choose if I did; I haven't been able to decide.)
safe-buffer is currently at 45M weekly downloads with 1.3K dependents. By comparison, the 4 most depended on libaries have a much lower ratio of downloads to dependents:
https://www.npmjs.com/browse/depended
1. lodash: 38M downloadsand 128K ependents
2. React: 9M / 64k
3. Chalk: 62M / 62K
4. Requests: 22M / 50K
5. commander: 50M / 48K
I'm assuming safe-buffer has its ratio because c̶o̶r̶e̶ highly popular libraries already depend on it (and those c̶o̶r̶e̶ libraries, not safe-buffer js, are what other libraries list as dependencies). Because Switch system updates wouldn't be downloading from npm, right?
edit: I was using "core" to refer to extremely popular/depended-on libraries – e.g. mysql/mongo/requests depending on safe-buffer – but that's obviously not the right usage in this context.
The weekly downloads on NPM do not indicate individual manual project installs. They include every download including automatically through `npm install` from package.json, and often further automation via CI tools (which is where the vast majority of download numbers come from on all npm packages). These amplify the numbers significantly.
i.e While they are a proxy for popularity, it can only be used relatively.
I can’t think of a nice way to say this, but I wonder if this is part of the reason they both perform so poorly once you’ve loaded a lot of data into them. I get so frustrated trying to use the on-console store after only a few pages of scrolling.
So, yes, I think that using Javascript on a low spec device is probably a source of slowness.
Node.js isn't slow, especially for this use case, but any sort of HTML-based layout definitely is.
IME, it's not the presentation, is the loading of assets into memory. Once the assets (like thumbnails, descriptions) are loaded, the display is as fast as always, but you scroll beyond what's cached and it turns back into molasses.
My personal gripe with the eShop is the horrible startup time (compare to the time it takes the settings application to open - part of this can be assigned to it being a web application indeed), lack of partial/incremental presentation, and possibly lack of prefetching. Asset loading causing bad UX is always a frontend problem.
Sure, you can write slow code in any language, but the language will limit how fast your code can ever be.
This from a Python fanboi, FWIW. I'd never try and use Python on an embedded device where performance matters, not only for UI responsiveness, but for battery life.
Some things will never JIT. Some things will JIT much later, leading to sudden CPU spikes later. And importantly, code will often deoptimize a few times, meaning that it drops back to interpreted to re-trace even if it had already optimized this code block.
And as most web "applications" are loaded only to be thrown away as you finished reading fixed text, all of those resources were burnt for nothing. This includes an application like the eShop, which has limited need for JS for anything other than lightweight asset handling.
One thing I noticed was that when attempting to switch between e.g. 'Offers', 'New' and 'Highlighted' or whatever the headings are, there's a large lag / hangup. It certainly doesn't feel like they're working on keeping it fluid and snappy. That might not be a priority, but I'm certainly put off browsing and buying when it's unpleasant to do so.
To be fair, it's worse on other consoles IME, and if I keep my browsing light, stay at the top of lists and don't get too impatient, it's okay.
For a product that is responsible for billions in revenue every year, I would expect them to have some of the best native developers working on it. Instead, they sorta wrangled web technology to sorta work. I don't understand why the performance is so bad on the PS4 of all things, given how it's a pretty decently specced machine.
They, and many other companies, should really look at the iPhone's early success - a BIG factor there was native code, meaning they could run on a single core machine for years while Android was struggling to push device specs up just to get their UI to feel performant.
And Apple's wasn't even optimal; they used objective-c which adds some overhead with every single function call (simplified: 'can I call this method on this object? Yes? Then call the method on the function call'. Only fixed with Whole Module Optimization in Swift iirc).
But it made such a huge advantage in terms of performance and battery life, Apple was easily five years ahead of any competition.
?????? Honestly I don't understand this argument - the iPhone didn't even support apps at launch, only the 2007 equivalent of today's PWAs, pinned websites.
It's absolutely atrocious; I don't think this has much to do with them using webtechnology, it's just an atrocious heap of spaghetti (and probably, guessing from the weird settings syncing and authentication, an architectural nightmare).
The ball of mud would roll faster if it were written in C++, for sure, but it would still be a ball of mud.
To be blunt it's probably more cost-effective for them to hack something like that together, then to take time to actually fix it. If you bought a ps4/5 you're effectively stuck with using that interface. I think they're moving to flutter now, but this is just how big companies work.
Not enough customers are going to not buy a PS4 because the web store is a little clunky.
It doesn’t help that game updates go onto the SD card, not the cartridge. So updates to the whole game basically make your cartridge a DRM dongle.
Wow, I'm surprised to see it used in that large of a capacity that soon. I was under the impression that it was still a somewhat-glitchy prototype (especially in any non-mobile uses), but maybe it's time to give it another look. Thanks for mentioning this.
It's already miles better than React.
Dart itself is absolutely a pleasure to work with. No Babel !
Source for Sony using Flutter
https://devclass.com/2020/10/29/sony-takes-a-flutter-on-embe...
I don't think lawyers would understand or care about the distinction, hence the license text is there.
And isn’t this the same feross that spammed everyone’s npm begging for money?
Source?
That doesn't seem right.
To me it looks like a confusion about whether "okay" means "legal" or "ethical" or "cool".
It's possible for something to be legal and ethical and still not courteous or gracious, and this falls into that category.
Someone more passionate about open source usage could put up a brag site where products using open source and profiles of the authors of the open source are tracked. It would be of some benefit to the authors.
Setting hostname localhost [ OK ]
Lo and behold it was running Linux! I was intrigued to say the least. I also saw that in the about menus, there was information about the GPL and it also mentioned using the Allegro graphics library that I was familiar with, from DJGPP (hey, this was the 90's).Specifically, any of the several different times that Nintendo has been caught lifting open-source ones for their own products, despite their constant arguments that using them yourself, to play games that they (or various retail partners) sold to you, is somehow piracy.
(Obligatory #FreeMelee)
EDIT: on a second look, as I went digging for sources for this, I may be mixing up details between Sony (who did this exact thing with the PS1 Classic) and Nintendo (who shipped ROMs downloaded from pirate sites at least once in the last couple of years).
That being said, it doesn't change why this is so problematic in the first place. The double standards involved make it worse, but the only reason it's a problem to begin with is that instead of letting you meaningfully preserve content game and movie studios (here in the US at least), movie and game studios instead can opt to keep repeatedly dipping into our collective wallets for the same content, all because now it's wrapped in a new emulator and/or DRM scheme.
"Slippi requires illegal mods" is only an argument to begin with because, despite backups and format shifting generally being fair use, bypassing the requisite copy-protection to do these things violates the DMCA anyway, as does trafficking in anything that can even if your use is explicitly exempted (accessibility, for instance).
It's a ridiculous, visibly letter-of-the-law problem that we've had as long as the DMCA has existed (anyone remember RealDVD?), and ultimately it renders basic consumer protections as being subject to a publisher's veto.
Looks like one of those "utility" modules that get used in a project because there's no proper standard library for node.js
At least it's better than the infamous "left-pad" module, which was just a single function
No, not really. Buffer is already part of the standard library for nodejs. What this is, is a "safe" variant of the very same buffers, as the previous ones were found unsafe. Although if you're controlling the runtime, there is no need for safe-buffer package anymore, as Buffer from the standard library is now safe. See https://nodejs.org/en/docs/guides/buffer-constructor-depreca... for all information around nodejs "safe" buffers. Feross' library is mentioned there as well.
I created `safe-buffer` as a demonstration of how the API could be fixed to be safe. Then, the ecosystem adopted `safe-buffer` as a polyfill to get that safety even before `Buffer.from()` and `Buffer.alloc()` were included in Node.js. And to this day it continues to be used to provide safety in older versions of Node.js which lack the newer APIs.
But they did use the code. So MIT/BSD work?
A big chunk of WebKit is LGPL and Blink too as a consequence. They might be successful thanks to that too.
Honestly, I don't find your obvious so obvious.
What tends to be ignored is attribution, respect to Nintendo for having good internal processes in this regard. If there is any news here, it’s that.
https://news.ycombinator.com/newsguidelines.html
Some of the most popular submissions are regularly reposted old links so it doesn't have to be news.
I think nintendo is probably doing the most riskless thing but abiding by the terms.
If the code contributions are huge (complete framework or big library) then maybe.
It's a (most likely) transitive npm dependency of about 50 lines of code. Not saying it doesn't do something useful -- quite sure it does, with 45M weekly installs, but it would be pretty ridiculous to send Switches for every dependency..