Pixar Story Basics

#1: You admire a character for trying more than for their successes.

#2: You gotta keep in mind what’s interesting to you as an audience, not what’s fun to do as a writer. They can be v. different.

#3: Trying for theme is important, but you won’t see what the story is actually about til you’re at the end of it. Now rewrite.

#4: Once upon a time there was ___. Every day, ___. One day ___. Because of that, ___. Because of that, ___. Until finally ___.

#5: Simplify. Focus. Combine characters. Hop over detours. You’ll feel like you’re losing valuable stuff but it sets you free.

#6: What is your character good at, comfortable with? Throw the polar opposite at them. Challenge them. How do they deal?

#7: Come up with your ending before you figure out your middle. Seriously. Endings are hard, get yours working up front.

#8: Finish your story, let go even if it’s not perfect. In an ideal world you have both, but move on. Do better next time.

#9: When you’re stuck, make a list of what WOULDN’T happen next. Lots of times the material to get you unstuck will show up.

#10: Pull apart the stories you like. What you like in them is a part of you; you’ve got to recognize it before you can use it.

#11: Putting it on paper lets you start fixing it. If it stays in your head, a perfect idea, you’ll never share it with anyone.

#12: Discount the 1st thing that comes to mind. And the 2nd, 3rd, 4th, 5th – get the obvious out of the way. Surprise yourself.

#13: Give your characters opinions. Passive/malleable might seem likable to you as you write, but it’s poison to the audience.

#14: Why must you tell THIS story? What’s the belief burning within you that your story feeds off of? That’s the heart of it.

#15: If you were your character, in this situation, how would you feel? Honesty lends credibility to unbelievable situations.

#16: What are the stakes? Give us reason to root for the character. What happens if they don’t succeed? Stack the odds against.

#17: No work is ever wasted. If it’s not working, let go and move on - it’ll come back around to be useful later.

#18: You have to know yourself: the difference between doing your best & fussing. Story is testing, not refining.

#19: Coincidences to get characters into trouble are great; coincidences to get them out of it are cheating.

#20: Exercise: take the building blocks of a movie you dislike. How d’you rearrange them into what you DO like?

#21: You gotta identify with your situation/characters, can’t just write ‘cool’. What would make YOU act that way?

#22: What’s the essence of your story? Most economical telling of it? If you know that, you can build out from there.

(Source: Emma Coats, @lawnrocket on Twitter)

Laws, Theorems, Principles, etc.

Betteridge's Law of Headlines
Any headline which ends in a question mark can be answered by the word 'no'.
Brooks' Law
Adding manpower to a late software project makes it later.
Clarke's Third Law
Any sufficiently advanced technology is indistinguishable from magic.
Cunningham's Law
The best way to get the right answer on the Internet is not to ask a question, it’s to post the wrong answer.
Doctorow's Law
Anytime someone puts a lock on something you own, against your wishes, and doesn't give you the key, they're not doing it for your benefit.
Finagle's Law (related to Murphy's Law)
Anything that can go wrong, will – at the worst possible time.
Gall's Law
A complex system that works is invariably found to have evolved from a simple system that worked.
Godwin's Law
As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one.
Hanlon's Razor
Never attribute to malice that which can be adequately explained by stupidity.
Herblock's Law
If it's good, they'll stop making it.
Hofstadter's Law
It always takes longer than you expect, even when you take into account Hofstadter's Law.
Murphy's Law
Anything that can go wrong will go wrong.
Occam's Razor
Entia non sunt multiplicanda praeter necessitatem. (Explanations should never multiply causes without necessity.) When two or more explanations are offered for a phenomenon, the simplest full explanation is preferable.
Pareto Principle
For many phenomena 80% of consequences stem from 20% of the causes.
Parkinson's Law
Work expands to fill the time available for its completion.
Parkinson's Law of Triviality
The time spent on any agenda item will be in inverse proportion to the sum of money involved.
Peter Principle
Managers rise to their level of incompetence.
Shirky Principle
Institutions will try to preserve the problem to which they are the solution.
Streisand Effect
The phenomenon whereby an attempt to hide, remove, or censor a piece of information has the unintended consequence of publicizing the information more widely, usually facilitated by the Internet.
Sturgeon's Law (Sturgeon's Revelation)
Ninety percent of everything is crap.
Zawinski's Law
Every program attempts to expand until it can read mail. Those programs which cannot expand are replaced by ones which can.

Installing the MEAN stack on Digital Ocean

After trying multiple times to get the MEAN stack (MongoDB, Express, AngularJS, Node.js) up and running, I have finally hit upon the correct set of steps. For all the world's benefit, here is how to install MEAN.JS from scratch!

As a prerequisite to the following steps, I created an Ubuntu 14.04 droplet on Digital Ocean and went through their published steps to get everything set up.

Install Node.js

curl --silent --location https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install --yes nodejs

Install MongoDB

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org

Make sure MongoDB is listening on the right port (should be 27017)

tail /var/log/mongodb/mongod.log

Install Bower

npm install -g bower

Install Grunt

npm install -g grunt-cli

Download and install MEAN.JS

git clone https://github.com/meanjs/mean.git meanjs
cd meanjs
git checkout 0.4.0
npm install

Run it!

grunt

At this point, you should be able to point your browser to <your_ip>:3000 to view the fruits of your labor. Unless, of course, you have a firewall problem. 🙂

One last note: don't use sudo to handle global npm installations. Use npm-g_nopsudo instead. After following those instructions, I had to do the following to make everything work right:

npm config set prefix ~/npm
echo export PATH="$HOME/npm/bin:$PATH" >> ~/.bashrc
echo "export NODE_PATH=$NODE_PATH:/home/$USER/npm/lib/node_modules" >> ~/.bashrc && source ~/.bashrc

I also had to do this for bower to work with git:

git config --global url."https://".insteadOf git://