> But that the first cell just randomly happened in the primordial soup - that looks extremely unlikely,
I don't understand this. Aren't cells just spherical structures that would form naturally from hydrophobic molecules suspended in water/tide pools? That seems likely to me, but I have no background in chemistry/biology.
Nick Lane argues in "The Vital Question" [0] that simple cell membranes are not enough for complex life and complex membranes may have evolved in matrixes around hydrothermal vents.
Sometimes a simulation IS the thing. A simulation of a wall clock IS a functioning clock (e.g. the clock icon on our smartphones). An autopilot that can takeoff, fly, and land an airplane IS a pilot. Chess engines that can beat grandmasters are chess players. A computer simulation of a teacher that can educate students is a teacher. Sometimes these simulations lack some of the capabilities of their human counterparts, and sometimes they far exceed them.
> You would not expect your computer to pee on your desk if you were to simulate kidney function, would you?
You would not reject a computer-controlled dialysis machine as "just a simulation" if you had kidney failure would you?
> "Software Stalins," managers who grab onto one indicator and think that driving it to zero (or 100, or 11 for you Spinal Tap Fans) will resolve all other problems.
Paul O’Neill famously did exactly this at Alcoa starting in 1987, focusing solely on worker safety resolved many other problems and multiplied profitability.
>The company's market value increased from $3 billion in 1986 to $27.53 billion in 2000, while net income increased from $200 million to $1.484 billion.
I have a pet theory that '#' and '*' have such prominent roles in C because Thompson and Richie developed B at Bell Labs in 1969 when the first push button phones were appearing with '#' and '*' buttons.
The underground parts of the Colosseum require special tickets for entry so make sure you get those ahead of time if you want to see those.
In the nearby Forum, look for the Temple of Caesar which is where Caesar's body was cremated and don't miss the Palatine Hill Viewpoint overlooking the Forum.
Across town, don't miss the Pantheon, the nearby Curia of Pompey where Caesar was assassinated, and the statue of Giordano Bruno.
And the reason you can't write "Hello world" in Haskell without using a monad is that functions in Haskell are "pure", meaning they cannot have side effects like outputting to the console.
Preventing side effects, including reading and writing global state, helps prevent bugs and makes it easier to understand and refactor Haskell code. Some would argue that the extra layers of abstraction from category theory and unpredictable order and number of lazy evaluations can actually make it harder to understand and refactor Haskell code.
Anyway, in order to perform I/O in Haskell, you evaluate your pure functions as a sequence of actions that are executed by the Haskell runtime. The construct that helps you build the sequence of I/O actions and allows you to bind their intermediate values to arguments to be used by subsequent actions is called the 'IO' monad.
* Dynamic Programming and the related concept of Memoization.
* Recursion - most complex problems seem to have a recursive solution which you can actually implement in a language like Scheme or Haskell that does not limit stack size.
* State machines.
* Monte Carlo methods.
* Unification - see SICP.
* Hand-rolled parsers instead of regular expressions for debug-ability and readability.
> Wheeler called upon J.R.R. Tolkien, as Professor of Anglo-Saxon at Oxford University, to investigate the etymology of the name "Nodens" referred to in the curse.
I'm not buying it either. NASA wasted billions on the space shuttle and single-use rockets until a programmer from Paypal showed them how to build re-usable rockets. Musk regularly refers to the economics of airliners as inspiration.
Obviously ideas to improve the economics of space exploration can come from anywhere, but one of the first places I'd look would be the Boeing machine shop.
And we haven't touched on human spaceflight, where economy must be balanced with safety. Hmm, I wonder what industry has the most experience with such engineering tradeoffs?
I've read lots of books (Eat That Frog, Getting Things Done, The Pomodoro Technique, The Now Habit) and tons of blog posts on procrastination and rarely do I find them very actionable (heh). Here's three techniques that work for me:
1. Baby Steps
2. Warp Speed
3. Multitask
__
Baby Steps
Do the simplest possible step to start the task, and repeat. For example, just open your word processor or IDE. Just write one sentence or prototype one function. Make a list of five topics for an essay or five requirements for a new block of code. If you get going, great. If not, look for the next baby step to move forward.
Warp Speed
Sometimes Baby Steps is not enough motivation if I really find a task distasteful or my perfectionism has set in, so I challenge myself to complete the task in some ridiculously small amount of time. For example, can I complete this 10 page essay in ... 15 minutes? Of course, spending days thinking of ideas that will win a Pulitzer is now out of the question. I have 30 seconds to outline the paper. 1.5 minutes to write each page. It's a mad dash of stream-of-consciousness to try to finish. At the end of 15 minutes, I'm usually left with either: a) a pretty terrible paper but a mental outline of ideas that I can make good by multiple re-writes, b) an actually submittable paper because I forgot about the 15min deadline an hour ago and I've been in flow the entire time. The key to Warp Speed is that I'm allowed throw away the first, second, or third drafts and start again with the ideas that were gained. Another technique that works with Warp Speed is to imagine yourself hitting SEND on the email to your professor, with essay attached, or hitting submit on the PR to your team with the new code you've written. Imagining the reaction of others helps me focus on what is absolutely essential to the project. What is the minimum level of quality that I need to avoid embarrassing myself? Once I have that, I can continue to iterate and improve if the project is worth it, or submit and move on if it's not worth my time.
Multitask
I know. I know. Multitasking is bad. But sometimes I get blocked on a Very Important Project because what I really want to be working on are some pie-in-the-sky almost-certainly-waste-of-time projects like designing a new programming language from scratch, or creating a new video game, or researching Machine Learning. But it would be totally irresponsible to work on those projects before the Very Important Project, and I really don't want to work on that, so I'll just spin here in procrastination land playing video games and watching Youtube for 10 hours. Instead, I multitask. I open a window and start prototyping the new programming language, I open another window and start brainstorming game ideas, and I open a third window and start working on Very Important Project. After I've made some progress or hit a lull on the fun projects I switch to the VIP and work on that. And now that I'm started on the VIP, and it is very important, I'll just finish it off quickly so I can focus on the fun projects.
I don't understand this. Aren't cells just spherical structures that would form naturally from hydrophobic molecules suspended in water/tide pools? That seems likely to me, but I have no background in chemistry/biology.
Nick Lane argues in "The Vital Question" [0] that simple cell membranes are not enough for complex life and complex membranes may have evolved in matrixes around hydrothermal vents.
[0] https://en.wikipedia.org/wiki/The_Vital_Question