LearningOOPWithPharo icon indicating copy to clipboard operation
LearningOOPWithPharo copied to clipboard

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

Open duchainer opened this issue 4 years ago • 10 comments

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.

duchainer avatar Jun 21 '21 21:06 duchainer

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.

cdlm avatar Jun 22 '21 08:06 cdlm

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.

duchainer avatar Jun 22 '21 16:06 duchainer

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 avatar Jun 22 '21 17:06 Ducasse

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 avatar Jun 22 '21 17:06 Ducasse

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

Ducasse avatar Jun 22 '21 19:06 Ducasse

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 avatar Jun 23 '21 19:06 duchainer

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

duchainer avatar Jun 23 '21 19:06 duchainer

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 avatar Jun 23 '21 20:06 Ducasse

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

Ducasse avatar Jun 23 '21 20:06 Ducasse

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.

Ducasse avatar Jun 23 '21 20:06 Ducasse