SquareBracketAssociates / LearningOOPWithPharo

Learning Object-Oriented Programming with Pharo
66 stars 21 forks source link

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

Open duchainer opened 3 years ago

duchainer commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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

duchainer commented 3 years ago

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 commented 3 years ago

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. :sweat_smile: )

Ducasse commented 3 years ago

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 commented 3 years ago

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

Ducasse commented 3 years ago

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.