spring-2017
spring-2017 copied to clipboard
Wrote a README
I finally got around to writing a readme! For my recent project Spotifly. It has getting started instructions, contributing tips, and even emojis. πΎ
Also you should try out the project if you want! It changes which device Spotify is playing from based on which beacon is closest. Uses the super cool new Spotify connect API! β¨
Looks good, covers the points discussed. Is brief, introduces the concept and has enough info to quickly get started
I see from your package.json that the project is licensed under ISC, but you don't mention this in the README, nor do you have a LICENSE file βΒ the two places someone wondering whether they can use your code is most likely to look.
I suggest mentioning the license of your project in the README, with a link where someone can read about what the license does and doesn't allow.
@alyssais yes! Thank you! I always forget about licensing, but realise it can be pretty important. The license in package.json
is actually just the default one that npm selects for you.
Do you/anybody have suggestions for a license which says something along the lines of "do literally whatever you want as long as it's not illegal"? Because that's my default stance π
You could use CC0 to put your software into the public domain β that doesn't stop people from doing illegal things though, you'll have to rely on the law for that. It does mean you're not responsible, though.
Went with CC-BY 4.0 in the end, because I guess attribution is nice. Thanks for the help π
Do CC licences apply nicely to code?
Apart from CC0, Creative Commons recommend avoiding their licenses for source code because they aren't compatible with lots of other free software licences.
Damn licensing is hard. So I'm looking at Choose a License, and MIT and Apache look good. GPL seems too restrictive in that it requires derivatives to be under the same terms. I didn't go for CC0 in the end because when I read it, it sounded scary.
What's the difference between MIT and Apache licenses? One grants patent rights, and one trademark rights? How does this actually affect me and people who want to use the thing?
π΅
I'm not a lawyer but have spent time looking into some licenses before and this is what I've taken from reading through the apache license. Personally I tend to default to MIT when it's something like a small npm module, but if it was something more akin to a full product which might contain some branding and have many different features then Apache 2.0 could be quite useful.
Apache 2.0 Patent Rights
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
This means that should a contributor come along and use something which they own the patent for (some algorithm or something perhaps) then everyone can use the software without paying any form of royalty forever.
Apache 2.0 Trademark clause
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
This ensures the user of your software cannot use anything you (the copyright holder) have trademarked such as logos related to the project to endorse their products or anything like that. It keeps it permissive by saying they may use it to describe the origins of their work but nothing else really. Ie: "we use this software to build it" as opposed to "these people endorse it!".
Whoa I missed some fun in here! Thanks @PandelisZ @alyssais @BlueHatbRit for your wisdom and feedback π
@sprusr Just a minor nit-picky things from me:
You're going to need Node.js and npm installed, as well as hardware support for Bluetooth Low Energy.
Here you could link to installation guides for Node/npm, and something that helps determine if they have hardware support for BLE.