campus-experts / spring-2017

19 stars 21 forks source link

Wrote a README #44

Open sprusr opened 7 years ago

sprusr commented 7 years ago

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! ✨

PandelisZ commented 7 years ago

Looks good, covers the points discussed. Is brief, introduces the concept and has enough info to quickly get started

alyssais commented 7 years ago

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.

sprusr commented 7 years ago

@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 😁

alyssais commented 7 years ago

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.

sprusr commented 7 years ago

Went with CC-BY 4.0 in the end, because I guess attribution is nice. Thanks for the help πŸ‘

PandelisZ commented 7 years ago

Do CC licences apply nicely to code?

alyssais commented 7 years ago

Apart from CC0, Creative Commons recommend avoiding their licenses for source code because they aren't compatible with lots of other free software licences.

sprusr commented 7 years ago

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?

😡

elliotblackburn commented 7 years ago

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!".

joenash commented 7 years ago

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.