"You are free to distribute this book to anyone you want, so long as... it is not altered..."
That doesn't seem consistent w/ the intended usage patterns of git and github, e.g. github's 'Fork' button is displayed prominently on every src page, for the purpose of alteration and distribution of src.
tl;dr If you fork and don't pull-request then that's the violation.
That's the point. If you fork and don't do a pull request so I can pull it back, then you're leaving an altered copy out there. Can't do that. If however you do a pull request and I pull your changes in, then your fork is no longer an alteration.
This prevents people from butchering your work because they think they know better and then leaving half-assed junk out there to screw students over, but still lets people contribute fixes.
Yup. While it is true that allowing others to modify my work will probably bite me in the ass in the future, there are also some arguments for allowing this.
For one, the book is targeted to Filipino students - teachers may want to modify the names/scenarios to better suit their country. Sure, gives them a low-hanging trolling fruit (e.g. putting vulgar words in the i18n section), but I really don't have the time to review these forks.
You're reading way too much into molecule's comment. He's merely commenting on the fact that the chosen hosting platform is explicitly designed for purposes that are counter to the chosen license. I see no judgements on the choice of the license itself. Can you explain how the comment implies that "everything needs to be on [programmers'] terms"?
To be fair, I assumed the same thing that the parent did.
The reaction came from "The guy just said he doesn't want to allow forks or changes" so what does it matter if github has a feature that allows it. The button isn't a licensing agreement like CC, GPL, etc are.
I'm sure there is a cottage industry of people who take creative commons works licensed without the non-commercial attribute and sell them. They aren't making a ton, but they do sell a few and it costs basically nothing to put it up on Amazon.
Even though I consider myself an intermediate Rails programmer, I read through every beginner guide I can find to pick up the small nuances that differ from programmer to programmer.
You're in good company. Mikhail Botvinnik, many times world chess champion, was known to watch tv programmes about chess. The theory being that you can never reinforce the fundamentals enough. I concur, in any field of study.
2. I think its strange to address the dsl rspec for testing vs the standard rails unit test and not address other dsl like haml, sass, coffeescript (3.1). I think if you're going to go by rails community conventions vs rails framework convention then haml and sass should of been introduced.
While I can't answer #1, I can give a reason for #2. When you're teaching people Ruby on Rails you would/should be teaching them what exists in the framework by default. The default templating language for views happens to be ERB-powered HTML, and so that should be taught.
Teaching haml and Rails at the same time would only confuse people as they will need to learn Rails AND haml at the same time. If anything, it would be better to introduce this as a "bonus chapter" or an appendix and let people choose for themselves rather than forcing them to learn something excessive.
Now, you may think that I would argue the same point for SCSS too. But now that SCSS is the default within Rails 3.1, it is "right" to teach it at the same time as Rails. The "leap" from CSS to SCSS is not as large as the one from HTML to haml, either.
I would do the same thing, as Test::Unit's syntax is more confusing to a newbie than RSpec. For instance: assert_equal 2, @thing.method vs @thing.method.should == 2.
RSpec is also used by the majority of Rails developers (based on a random stat I pulled out of the air and due to my experience on many, many Rails projects) and it should be treated as the default, even though it is not.
> For instance: assert_equal 2, @thing.method vs @thing.method.should == 2.
...what makes you think this is less confusing? Test::Unit is blindingly simple, your assertions are plain old functions that take plain old arguments. I can build new assertions through simple function definition.
Rspec, on the other hand, adds methods to everything to let you structure your code so it reads like English. The goal here is not to be less confusing, but to be easier to read. RSpec is a lot harder to learn, and writing custom matchers is a lot more work than gluing together assertions.
Seriously, watch somebody new trying to figure out RSpec ... it's a bit of an ugly sight. Their first experience with automatic predicate matchers typically is a true wtf moment.
1. Maybe. I have no plans to teach Rails 3.1 for the rest of the year, but on the other hand writing about 3.1 will get me up to speed on the new features faster than simply writing some throwaway programs.
2. What Ryan Bigg said. :D I sometimes get a couple of extra hours at the end of a training course to teach topics like Haml, Devise, Paperclip, etc. But that's only if the students are experienced developers; I'd get in trouble if I put these topics in the course outline but couldn't cover them because the students had to take time to absorb the main topics.
Byran why don't you sell the book to your own students? I know a lot of my professors sell their own books through the book store (with no real publisher) they just print it out and put a cover on it.
That doesn't seem consistent w/ the intended usage patterns of git and github, e.g. github's 'Fork' button is displayed prominently on every src page, for the purpose of alteration and distribution of src.