Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The licensing between the website and the book doesn't seem to match #57

Open
duchainer opened this issue Jun 21, 2021 · 10 comments
Open

Comments

@duchainer
Copy link

duchainer commented Jun 21, 2021

Hi, the book is great and answered many of my question getting into Smalltalk in general.

I just realized the license "Share-alike" mentioned in the footer on the website:

The content of this book is released under a Creative Commons Attribution-NoCommercial-ShareAlike license.

is not the same as the "non-derivative" license in the book:
image

Thanks in advance for your time.

I personally would like to publicly adapt the TDD parts for glamorous toolkit's Example Driven Development, but if it is prohibiting derivatives like the book license seems to say, I would respect it and would have to keep it for my personal use only.

@cdlm
Copy link
Member

cdlm commented Jun 22, 2021

The BY-NC-ND PDF is quite old, and if you compile from sources now it should say BY-SA, as far as I can tell.
I don't understand why it was licensed differently from all the other books in the first place.

@duchainer
Copy link
Author

The BY-NC-ND PDF is quite old, and if you compile from sources now it should say BY-SA, as far as I can tell.
I don't understand why it was licensed differently from all the other books in the first place.

Yes, indeed, no mention of BY-NC-ND in the latest version of the code, but BY-SA in its place.
So the issue is rather that the pdf export on the site is a bit old. Thanks for the heads up.

@Ducasse
Copy link
Member

Ducasse commented Jun 22, 2021

Hello I will check because I was fed up to write book that other can use and extend without my approval.
I got fed up to give all my time basically for free (this is ok) but in addition to see that people can reuse my work for things I do not want/like. This is why I set this license.

@Ducasse
Copy link
Member

Ducasse commented Jun 22, 2021

BTW for the example development note that in Pharo with one class and one method you can get the same as with the 100 classes of GT. I think that this is even documented in the Test booklet.

@Ducasse
Copy link
Member

Ducasse commented Jun 22, 2021

Thanks for the glitch. I removed the license from the website (it was a copy paste).

@duchainer
Copy link
Author

Hello I will check because I was fed up to write book that other can use and extend without my approval.
I got fed up to give all my time basically for free (this is ok) but in addition to see that people can reuse my work for things I do not want/like. This is why I set this license.

Really sorry for those past abuses. I won't add any more mediocre derivatives to worry about. I'll keep my notes to myself. ^^"

@duchainer
Copy link
Author

duchainer commented Jun 23, 2021

BTW for the example development note that in Pharo with one class and one method you can get the same as with the 100 classes of GT. I think that this is even documented in the Test booklet.

Do you mean that a single class would be enough to create tests returning objects and allowing reusing these objects in more complex tests, replacing, in part, the use of fixtures?
I really have a lot to learn coming from Rust lang minimal testing bench. I'll look more closely for it in the litterature. :)
(Also thanks for advising Markus Gälli 's thesis, it sounds a bit pompous to link to it now that I realise it. 😅 )

@Ducasse
Copy link
Member

Ducasse commented Jun 23, 2021

Yes.

In this section, we show that SUnit offers two hooks to define what a test
selector is and how to perform the test.
  
      HiExamplesTest class >> testSelectors [
        ^ self methods
                select: [ :each |  (each selector beginsWith: 'example') and: [ each numArgs = 0 ] ]
          thenCollect: [ :each | each selector ]

      HiExamplesTest >> performTest
        example := self class classWithExamplesToTest perform:
           testSelector asSymbol

@Ducasse
Copy link
Member

Ducasse commented Jun 23, 2021

Here we define class methods but it could be instance methods.

@Ducasse
Copy link
Member

Ducasse commented Jun 23, 2021

I never understood why GT needed to reinvent the wheel and not just spend a couple of hours to provide a solution. This example is in P9. We could use a pragma if we want.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants