407 karma · joined December 1, 2010
People who practice a lot usually do so because they’re interested in it. It’s not hard or homework for them. If there’s a gift, it’s the gift of interest.
Artists copy a lot. They don’t come up with stuff clear out of their heads. They look at a lot of things, keep a lot of references, and blend ideas together.
Most people who are famous are so not because they’re good, but because they’ve worked hard to become famous. It was important to them, so they did what it took to become famous. Being good at something is a small part of that, small enough that famous people aren’t usually all that good. Their time was better spent becoming famous. (This is the biggest lesson from this list. It basically implies that you can ignore people who have blogs and podcasts. Seek out the unknown experts in your field.)
Don’t make decisions based on money. Don’t stay at a job because the shares might be worth something, or because the company might get acquired. These things rarely happen and you can’t get your time back.
Everyone is totally winging it all the time. Confident people are just better at hiding it.
Thank you.
"... the greatest of all modern mathematicians and arguably the greatest mathematician of all time ..."
It's a two-pass compiler. The first pass runs the code through the Stream, Lexer, and Parser classes to generate a parse tree (with type information). The second pass generates bytecode using the Compiler class. The compiled bytecode is then handed to Machine to execute. Start in IDE.js in the _run() function. Also go into turbo.css and comment out the "display:none" line in the .debug-output block. That'll let you see the parse tree and generated bytecode.
This compiler started out as a five-pass compiler, then I reduced it to two. I could have reduced it to one and simplified the code quite a bit, but having the intermediate parse tree made debugging easier. The parse and compile passes together take less than 20ms on the largest Pascal program I have (rose.pas).