I just signed up for a Heroku free account, so I may well give this a go.... I'd like to do some experimentation. I want to pick the most fun/difficult way to do this if I can.
I don't think so. Heroku is a PaaS (Platform as a Service). You can connect with SSH but everything is mostly set-up for you already but I don't have Heroku so I'm not sure. A VPS (Virtual Private Server) is just a remote computer typically with a bare Linux installation, and you build up from there and install what you need, Ruby, Node, PHP... Check https://www.digitalocean.com/, they're pretty popular.
Create an infinite scrolling effect for an image gallery. This will test out the following:
* Ajax
* Event handling (scroll)
* Basic arithmetic (e.g. when to trigger a new request based on % page scrolled)
* Template/DOM insertion
* Thinking about edge cases (e.g. what happens when the page is resized, or the ajax request has no more elements to return)
Terrible article in my opinion teaching some really bad habits that will cause hard to find bugs over time. Truth is, omitting semi-colons is probably fine at smaller scale, but for larger javascript code base with multiple maintainers, it's definitely a better practice in my opinion. Oh well, no point in me saying what has already been said :)
Play a full game and you'll be surprised, the AI is actually surprisingly good and gets better as the game progresses, especially given the size of the code.
There's hidden cost associated with offering a paid membership for "privileged" users, in that it affects the overall perception of the product. Many non-paying users would feel negatively about it, and start looking for alternatives. As a result, the membership fee has to cover (1 + lost users) advertisement revenue.
Vanilla chess can be a hard sell at game nights. I'd recommend a variant: Bughouse. This is a lovely (and madcap) game that can be played with four people in teams of two.
It's played as two simultaneous games of chess, with one player on a team playing white on one board and the other player playing black on the other. The twist is that any piece captured by your partner can be placed on your own board instead of a normal move (with a few restrictions).
The games aren't synchronized, and you'll need two chess clocks (one for each board) to keep things cracking along. The clocks are usually set to blitz times (such as five minutes per player), and either player on a team running out of time results in a loss.