<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.4">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2025-02-07T06:08:31+00:00</updated><id>/feed.xml</id><title type="html">Your awesome title</title><subtitle>Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.</subtitle><entry><title type="html">(a secret) fundraising guide</title><link href="/fundraising" rel="alternate" type="text/html" title="(a secret) fundraising guide" /><published>2025-01-19T04:11:07+00:00</published><updated>2025-01-19T04:11:07+00:00</updated><id>/fundraising</id><content type="html" xml:base="/fundraising"><![CDATA[<h2 id="stage-1-you-are-not-fundraising"><strong>Stage 1:</strong> You are not fundraising</h2>

<p>You want to start fundraising before you start fundraising.
Investors should feel the company is happening regardless, either they get on the bus or not.
Do not make it feel like you are asking the investor permission to start the business.</p>

<p>If you are meeting investors, it should feel casual.
Meet them for a coffee, not at their office.
Spend time socializing.</p>

<p>Use them to help explore the idea maze.
Do not bring a deck.
If they ask you for a deck, say “I don’t have one, I’m not fundraising.”</p>

<p>You are building relationshpips for the life of the company (10+ years).
Build rapport that will support all the future ups and downs.</p>

<p>Remember that you and your company are being judged in every interaction.
During this stage, consider bringing in smaller investors at a pre-seed valuation on a capped SAFE.
They will help you work your way up the chain to seed investors.
They are incentivised to hype you up to mark up their books.</p>

<p>You have only a few bullets to get in front of investors; use them carefully and not too early.
Do not shoot them before you are ready.
Those bullets include: asking your network for introductions.
Another is changing your LinkedIn status to “Founder at Stealth” or similar.
This will trigger an alert in VCs’ monitoring software.
If you are not able to get good introductions from your network, consider working at a strong early stage startup before founding.
You want to start off with every advantage you can get.</p>

<h2 id="stage-2-run-a-tight-process"><strong>Stage 2</strong>: Run a tight process</h2>

<p>Once you start fundraising, act like the fundraise is already done.
Know upfront what market raise and valuation is for your stage of company as well as what you are aiming for.
You should say “I am aiming to raise $XM for the company to reach the next milestone.”
Do not give a valuation number, let investors offer it.
You can say “we want something reasonable but will let market decide what is appropriate. We are not optimizing for the highest valuation but for bringing in the right partners.”</p>

<p>Bring a good startup law firm onboard (eg Goodwin, Cooley, Wilson Sonsini) and they will tell you what is market for startups at your stage in terms of terms, valuation, etc.
Read <a href="https://www.amazon.com/Venture-Deals-Smarter-Lawyer-Capitalist/dp/1119594820">Venture Deals</a> to better understand the terms being negotiated and the dynamics with the funds you are talking to.</p>

<p>You want to create deal heat
You will only get good terms if investors fear competition taking the deal.
In a perfect world, you will start your fundraise with a term sheet in hand and every investor you meet feels like you are meeting because you like them personally and want to bring them in.</p>

<p>Run a two week process.
Do not go longer.</p>

<p>End every meeting with:
I am not trying to apply fake pressure here, but we have {term sheets, verbals, etc} and are looking to wrap up by {start date + 2 weeks}.
If it’s not a fit for you, that’s not a problem.</p>

<p>Investors are professionals.
They will be very persuasive that you should end the process early and take them on.
Do not agree to this; run your full process.</p>

<p>Schedule thoughtfully.
You want to work your way up to the most desirable investors.</p>

<p>Perfect your pitch.
Learn from investors after any interaction.
They will find and dig into the company’s weakest points, whether its market size, product, etc.
Aim to strengthen the story each time.
If you run a good process and speak to smart investors, the company will come out stronger on the other side. 
They will be great at pattern matching against hundreds of other startups and telling you your weaknesses.</p>

<p>The pitch is a performance; practice the theatrics of it.
Every meeting is a performance.
Do not try to transfer all information to them as fast as you can.
Let them explore the idea maze with you.
Gently guide the conversation to where you want it to go.
Watch your emotions.
Do not get defensive or overly excited in a way that hinders your message.</p>

<p>Be confident in your thinking, investors will challenge it.
Practice the chemistry between you and your cofounder(s).
The biggest seed stage risk is cofounder break up and investors are looking out for small signs of this:
Are there non-verbal signs of tension?
Is one founder taking up all the space in the room?</p>

<p>The content of your pitch should be a persuasive story on how this company will easily get to the next round of funding and has a clear path towards becoming a public company.
The worst seed pitches are focused on a small niche and claiming there’s a large market for it.
You will be rewarded for being ambitious; hope to rebuild entire industries.</p>

<p>You want to show the following traits to investors:</p>
<ul>
  <li><strong>Execution focused</strong>: you are organized and follow-up quickly.</li>
  <li><strong>Driven</strong>: Have something driving hunger in you. Be high energy and a good sales person.</li>
</ul>

<p>Understand the fund dynamics.
VC is a relationship driven business; aim to have personal connections with everyone you meet.
Understand who you are talking to at the fund.
Is it a partner, principal or associate?
Who do they need approval from to make a deal?
Do they have power inside the fund to negotiate on your behalf?</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Stage 1: You are not fundraising]]></summary></entry><entry><title type="html">Learn to code</title><link href="/learn-to-code" rel="alternate" type="text/html" title="Learn to code" /><published>2024-08-08T04:11:07+00:00</published><updated>2024-08-08T04:11:07+00:00</updated><id>/learn-to-code</id><content type="html" xml:base="/learn-to-code"><![CDATA[<p>A common line of thinking is: if you extrapolate LLM coding performance to the future, they will quickly exceed human capabilities.
Therefore learning to code is not worthwhile.</p>

<p>Here is my rebuttal:</p>

<p>The history of technology has been about the continuous creation of abstraction layers and being able to create in higher levels of abstraction.
There is no denying that the future of programming is coding in English and other languages. But this is just an abstraction layer.</p>

<p>Below that layer, the LLM is generating a high level coding language.
Then that code is compiled into machine readable instructions.
Then those are executed by the hardware.</p>

<p>As new abstraction layers are introduced, its important to be familiar with the layer you’re working in and a few layers below it.
This is why the <a href="https://www.nand2tetris.org/">NAND to Tetris</a> course is so highly recommended.
You want to understand all the layers of technology from the underlying circuits to the apps.
What separates great engineers from the rest is the ability to dig in to the layers underneath their normal operating environment.
Something ultimately will go wrong, and you need to be able to be comfortable digging in deeper to understand it.</p>

<p>Well can the LLM just dig in?
Not yet:</p>
<ul>
  <li>They are notoriously bad in self-judging.
The technology is not good enough to verify itself.</li>
  <li>They have a constrained environment.
You can get root access to all the relevant machines and users.</li>
</ul>

<p>These limitations will be around for a long time.
Learning to code remains the best way to expand your future opportunities.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[A common line of thinking is: if you extrapolate LLM coding performance to the future, they will quickly exceed human capabilities. Therefore learning to code is not worthwhile.]]></summary></entry><entry><title type="html">Don’t pivot into AI research</title><link href="/pivot-to-ai" rel="alternate" type="text/html" title="Don’t pivot into AI research" /><published>2024-08-07T04:11:07+00:00</published><updated>2024-08-07T04:11:07+00:00</updated><id>/dont-study-ml</id><content type="html" xml:base="/pivot-to-ai"><![CDATA[<p>Many computer science students and new grads aspire to move into machine learning.
It seems exciting and sexy.
You can play a role in bringing in the incoming AGI utopia.
Many strive to work in “machine learning or AI research” - a vaguely defined field that includes everything from data engineering, infrastructure and model architecture.</p>

<p>Here’s the reality of the future of the field:</p>
<ul>
  <li>Scale beats all else.
The best performance improvements come from increasing scale, rather than incremtal insights in novel architectures. [<a href="https://arxiv.org/pdf/2001.08361">1</a>] [<a href="http://www.incompleteideas.net/IncIdeas/BitterLesson.html">2</a>]</li>
  <li>Scale requires a lot of capital.</li>
  <li>That will lead to a natural dynamic where only a few suppliers will spend that capital and distribute the cost across their customers.</li>
  <li>These suppliers will be the only companies hiring productive “ML researchers” working on the model layer.</li>
  <li>Other companies that hire “ML researchers” will either be: research projects that will not end in production or companies selling you the status of being an “ML researcher” without actually offering it.</li>
  <li>An oversupply of talent with consolidation of demand will lead to falling salaries: the LLM providers will have significant pricing power.</li>
  <li>The role will eventually fall in prestige as the supply-demand dynamics flip.</li>
</ul>

<p>A similar story played out in the past with chip designers.
Chip design was a high profile role with the most famous chip designers being seen the way famous ML researchers are viewed today.
Universities invested heavily into their computer hardware programs as the number of chip companies boomed and the field was in demand.
As the market dynamics changed though, the universities were not able to adjust.
The supply of hardware engineers grew too high and the number of significant employers decreased to the handful of major chip makers (i.e. Qualcomm, Intel, AMD, Nvidia).
This was in part driven by the high capital cost required for chip manufacturing (similar to LLM training).
Naturally, over time chip design has lost status amongst students and new grads and lost its reign as an extremely lucrative and high status profession.</p>

<p>For some engineers, chip engineering is a genuine passion.
They should pursue it, while understanding the trade-offs compared to other careers such as software engineering.
But many more are driven by the inertia of their university and a blind status seeking.
They will be better off thinking through their personal goals and what paths are best for them.
The same will be true for “AI research”.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Many computer science students and new grads aspire to move into machine learning. It seems exciting and sexy. You can play a role in bringing in the incoming AGI utopia. Many strive to work in “machine learning or AI research” - a vaguely defined field that includes everything from data engineering, infrastructure and model architecture.]]></summary></entry><entry><title type="html">Next.js first impressions</title><link href="/nextjs-first-impressions" rel="alternate" type="text/html" title="Next.js first impressions" /><published>2024-03-01T04:11:07+00:00</published><updated>2024-03-01T04:11:07+00:00</updated><id>/nextjs-first-impressions</id><content type="html" xml:base="/nextjs-first-impressions"><![CDATA[<p>I started a new web app recently and was surprised to see the official React documentation pushes users to Next.js when <a href="https://react.dev/learn/start-a-new-react-project">starting a new project</a>.
This is crazy!
React is actively moving potential users away from using it directly and onto an abstraction layer on top of it.
The world’s <a href="https://survey.stackoverflow.co/2023/#most-popular-technologies-webframe-prof">most popular framework</a> is willingly giving up that title.</p>

<p>As a disclaimer, I spent the past few years working on a React app but not as a frontend developer.
Now that I am out of that role, it is surprising how much Next.js has moved into the mainstream.
I am writing this from the perspective of someone with a basic background attempting to get something deployed in a few hours, not as an expert.</p>

<p>I gave it a try and these are my first impressions.</p>

<h2 id="the-good">The good</h2>

<p><strong>Faster development.</strong>
It is easy to get started and get a working full stack app in Next.js quickly!
I was able to go from blank slate to an app deployed on a custom domain in a few hours.
Next.js is going to make programming more accessible for the next generation of programmers.
Especially with ChatGPT to help code and Vercel to handle deployments, web application development will be more accessible than ever before.</p>

<p><strong>Next.js is a nuts-and-bolts-included framework.</strong>
For example, they extended <code class="language-plaintext highlighter-rouge">&lt;img /&gt;</code> into <code class="language-plaintext highlighter-rouge">&lt;Image /&gt;</code>, which you can point to a local image on your development file system.
Next.js will create multiple sizes of the image, serve the right size based on the user device, only load it when the element is in the user viewport and (if used with Vercel) upload and serve the image over a CDN.
This is a quality of life improvement for web development that blows my mind.
Including this level of detail of best practices will make web apps better for everyone.</p>

<p><strong>Vercel is great to use</strong>: simple, straightforward UX.
Easy to plug in a Github repo, get it deployed on a custom domain and roll out new updates with a <code class="language-plaintext highlighter-rouge">git push</code>.</p>

<h2 id="the-bad">The bad</h2>

<p><strong>File-system routing is awkward.</strong>
With the app based routing, all components get the file name <code class="language-plaintext highlighter-rouge">page.js</code>.
That seems like an unfortunate choice when a lot of IDE UX is built around showing and searching file names.
Dynamic routing also took me a while to understand.
A username page at <code class="language-plaintext highlighter-rouge">example.com/u/&lt;username&gt;</code> would be in <code class="language-plaintext highlighter-rouge">src/app/u/[username]/page.js</code>.
You can then load the username slug as a parameter passed into the component.
The use of square brackets is a small but irritating frustration since they need to be escaped in shells.
My preference would be having more of the routing in code, as component decorators for example.</p>

<p><strong>Data fetching and caching are hard to understand.</strong>
You need to take the time to understand the native Next.js methods, which have a non-elegant design.
See <a href="https://www.reddit.com/r/nextjs/comments/18k4muk/vercel_team_seems_unresponsive_on_anything/">this Reddit thread</a> and the linked Gitbub discussion as an example of user misunderstanding and frustration.
It is not obvious to me why <code class="language-plaintext highlighter-rouge">router.refresh()</code> is the name of an API call for a data update after a mutation.</p>

<p>Data fetching and caching is built on top of HTML web forms, and you need to spend time to relearn it if you did data fetching another way in React.
Similar to the linked discussion, I gave up and ended up doing client side data rendering after spending some time trying to follow the Next.js documentation.</p>

<p><strong>Mental overhead of server-side rendering.</strong>
In a maybe too ideal world, you can just write your code, not think about where it runs, and the app “just works.”
The framework would decide what runs where and when.</p>

<p>In practice, you need to keep on which components are rendered at build time, at serve time (server side) and on the client.
<code class="language-plaintext highlighter-rouge">setSate</code> and connecting to your database will force setting components as server or client side, sometimes arbitrarily.
A related frustration is that “use client”’s behavior is <a href="https://github.com/vercel/next.js/discussions/50738#discussioncomment-6079023">not actually</a> client side rendering; they are pre-rendered in the server then hydrated in the client.
The hydration is not intuitive.
This all adds a small mental overhead to development.</p>

<p><strong>The app router migration seems like an upcoming disaster.</strong>
Next.js is moving from a “page based router” to a new “app based router” with a vague promise to keep supporting both and no timeline for deprecation of the page based router.
Most third party documentation (and knowledge in ChatGPT) uses the pages based router without mentioning it.
This will likely end up being a painful py2to3 situation, but with a much less mature platform and community.</p>

<p><strong>Deployments tied to Vercel.</strong>
I did not attempt to deploy to a non-Vercel environment.
For mainstream enterprise adoption, third party clouds (AWS, Azure, GCP) will need to have first class support.
The incentives for Vercel to improve this are poor; they make money based on the delta of the experience deploying on Vercel compared to other environments.</p>

<h2 id="whats-next">What’s next</h2>
<p>It is clear that Next.js represents the future of web development: a nuts-and-bolts-included, opinionated framework more powerful than React with the performance of static websites.
The future will be automatic server-side rendering, alongside <a href="https://dl.acm.org/doi/10.1145/3593856.3595909">automatic isolation and scaling of services</a>.</p>

<p>This feels like the early days of Kubernetes for cloud orchestration frameworks.
Next.js is one of the first to define the space and has been adopted quickly, but it will not necessarily be the solution the industry converges to.
Poor developer experience of Next.js is already becoming a <a href="https://www.reddit.com/r/nextjs/comments/1abd6wm/hitler_tried_rsc_and_next_14/">meme</a>.
First class deployment to all clouds will be a non-starter.</p>

<p>A new framework may emerge iterating on the best ideas from Next.js.
We are still early.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I started a new web app recently and was surprised to see the official React documentation pushes users to Next.js when starting a new project. This is crazy! React is actively moving potential users away from using it directly and onto an abstraction layer on top of it. The world’s most popular framework is willingly giving up that title.]]></summary></entry><entry><title type="html">How to travel</title><link href="/how-to-travel" rel="alternate" type="text/html" title="How to travel" /><published>2024-01-08T06:55:07+00:00</published><updated>2024-01-08T06:55:07+00:00</updated><id>/how-to-travel</id><content type="html" xml:base="/how-to-travel"><![CDATA[<p>Travel is usually seen and described as an easy ailment to any malaise.
An instant life changing experience.</p>

<p>In reality, I have found travel to be hard.
It is often boring, predictable and expensive.
Coming across meaningful experiences does not happen automatically.
Doing it “right” is hard.</p>

<p>I have found myself following these guidelines in an attempt to have more meaningful experiences, deeper conversations and chances at serendipity.</p>

<h2 id="research-dont-plan">Research, don’t plan</h2>
<p>Planning much removes the chance for improvisation on your trip.
You become rigid to your plans, and cannot adapt them based on chance encounters.
On the other hand, traveling to a place blind does not do it justice.
To appreciate a place you need to understand it.</p>

<p>Resolve this conflict by doing plenty of research but no planning.
Make your research varied.
Immerse yourself in the media of your destination.
Listen to the music, watch the movies and TV shows.
Watch documentaries about its history.
Read books and magazine articles.
Look up the recent news.
Listen to podcasts about its nature.</p>

<p>This will take up your time and get you excited before you leave.
You will land with a lot of inspiration but no set plans to tie you down.</p>

<p>You will not be able to finish all the content you find by the time you leave.
This is perfect; you can bring it with you.
Download the Netflix movies, local TV shows, podcasts, Spotify albums.
Buy some Kindle books, save articles to your Pocket, and pack a paperback.</p>

<p>Travel inherently has a lot of downtime where you can consume this media: on flights, trains, bus rides, in coffee shops and restaurants in between people watching.</p>

<p>Before and during your trip you should feel immersed in the destination with this media.</p>

<h2 id="be-curious">Be curious</h2>

<p>Consume this media with furious curiosity, and let that guide your travels.
If you happen to watch an interesting series about the parks of Tokyo, go visit those parks, not the temples.
If you read a great book about Ottoman Cairo, visit the Ottoman sites, not the Ancient Egyptian ones.</p>

<p>Ask a lot of questions.
How do the characters in this TV show interact differently than the local shows I watch?
How does a place’s religious values affect the people’s behaviors?</p>

<p>Let your questions drive what you consume next, as well as what you will try to learn more about during your trip.
Spend your time pondering them.
Drive conversations with the people you meet towards answering those questions.</p>

<h2 id="have-a-mission">Have a mission</h2>
<p>Give yourself a concrete achievable mission (or many) to drive your travel.
Your missions will give you a sense of purpose; without them, it is easy to feel meaningless.</p>

<p>If you read about the history of tea in China: make a mission out of trying to find the best tea you can bring home with you on your trip to Beijing.</p>

<p>If you read about the sacredness of mountains in Japan: make your mission to find and spend time in a mountain temple.</p>

<p>Traveling for the sake of travel can get boring.
Having a mission, no matter how arbitrary, gives you something to do outside of a top sites checklist, and introduces a good element of randomness in your plans.</p>

<p>Prefer missions that are simple and silly.
Here’s a free one you can use for almost any trip: find a local bookstore and get an English book from or about the city you’re in.</p>

<h2 id="go-slow">Go slow</h2>
<p>Everyone’s amateur mistake is to try and see as much as possible with the time available.
“I’ll do a 10 day Euro trip, 2 days per city in the top 5 capitals.”</p>

<p>Avoid this.
Go slow, slower than you expect.</p>

<p>Keep your plan flexible enough that you can extend stays at locations that deserve it.</p>

<p>Take your time to take in a city and its atmosphere.
Relax on rooftops.
Walk around meaninglessly.
It is difficult to do these things when trying to squeeze in the must-see and must-dos in a minimal amount of time.</p>

<p>For short trips, a good rule of thumb is to plan for five days in big cities and two days in small ones.</p>

<p>Consider <a href="https://crazyguyonabike.com/">bicycle touring</a>  as a way to force yourself to slow down.
Bicycle touring means traveling from city to city by bicycle, with all your luggage packed on your bike.
You can only move as fast as you pedal.</p>

<h2 id="navigate-yourself">Navigate yourself</h2>
<p>To get a sense of a place, you should have a sense of its layout.
You won’t learn this by taking Ubers everywhere.</p>

<p>Walk around.
Go to your destinations on foot and bike.
Get lost.
Look at maps.</p>

<p>Leave with a rough mental map of where your favorite things are.</p>

<h2 id="learn-the-language">Learn the language</h2>
<p>When traveling somewhere you don’t know the first language, pick up some of it.
Even if everyone understands English as well, try say your please and thank yous in German or Swahili.</p>

<p>Embarrass yourself at the coffee shop trying to order with a phrasebook.
See how much of the foreign alphabet you can learn to read by the end of the trip.</p>

<p>In many countries, there are regions where the indigenous language is different from the national one.
Learn the common greeting in the local indigenous language, and see if anyone understands your butchered pronunciation.</p>

<h2 id="return">Return</h2>
<p>Have a good balance between going to new places and returning to the ones you’ve most enjoyed.
Your second and third time there will have a different taste and meaning than the first.
Build a relationship with the city.
Observe how it changes over time.</p>

<p>Treat traveling as a skill like any other.
Do not expect to be perfect at it immediately.
Appreciate that you are getting better at it over time.
And have fun</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Travel is usually seen and described as an easy ailment to any malaise. An instant life changing experience.]]></summary></entry><entry><title type="html">Free will</title><link href="/free-will" rel="alternate" type="text/html" title="Free will" /><published>2024-01-08T04:11:07+00:00</published><updated>2024-01-08T04:11:07+00:00</updated><id>/free-will</id><content type="html" xml:base="/free-will"><![CDATA[<blockquote>
  <p>In a class I taught at Berkeley, I did an experiment where I wrote a simple little program that would let people type either “f” or “d” and would predict which key they were going to push next. It’s actually very easy to write a program that will make the right prediction about 70% of the time. Most people don’t really know how to type randomly. They’ll have too many alternations and so on. There will be all sorts of patterns, so you just have to build some sort of probabilistic model. Even a very crude one will do well. I couldn’t even beat my own program, knowing exactly how it worked. I challenged people to try this and the program was getting between 70% and 80% prediction rates. Then, we found one student that the program predicted exactly 50% of the time. We asked him what his secret was and he responded that he “just used his free will.”</p>

  <footer>- Scott Aaronson, <a href="https://www.scottaaronson.com/democritus/lec18.html">lecture</a> on Free Will</footer>
</blockquote>

<p>In the beginning, there was nothing. Then came about the right conditions to cause an explosion.</p>

<p>Energy and matter was created and expanded in all directions, governed by laws of behavior we call physics. The most fundamental of those is that of entropy. It states that over time, disorder increases and information is lost.</p>

<p>The laws of physics are quirky in that entropy is not linearly increasing everywhere. There are pockets where it decreases on the road to disorder. Mass is attracted to other mass, coming together in different forms of mass pulled together. Those can be divided recursively: galaxies, solar systems, planets.</p>

<p>One of the planets that forms is ours, Earth. On Earth, the laws of physics marched on. It governed the creation and interaction of all things on it: continents, oceans, mountains, lakes, rivers.</p>

<p>At one point on Earth, these laws happen to form the right conditions for the creation of a new type of thing. Life. Life was special because in addition to being governed by the laws of physics it can grow and recreate itself. And each recreation can be a little bit different. And some of these become more fit at surviving and recreating themselves. Those win more resources and more of the next generation will be their offspring. This is evolution. Evolution pulled out of the first cells of life a seemingly infinite fractal of life branches. Like gravity pulling an apple out of a tree. The branches grow, die and sub-divide.</p>

<p>Evolution develops in some of these branches sensors that can observe the world around them. It develops some features that allow more advanced actuation in the world. In some of these branches, brains form. These pieces of biological matter do a level of information processing between the sensor input and the actuation.</p>

<p>Evolution pulls out of one of these branches a brain that gets consistently more powerful. This branch uses its more powerful brain to be more fit in survival and reproduction. It gets an unequal distribution of the rewards. Eventually this leads to our species, the homo sapiens.</p>

<p>Homo sapiens are more intelligent than other forms of life. More than any other species, we can use our brains to form increasingly abstract representations of the world, including each other and ourselves. We learn and understand those representations largely through our interactions with each other. The first of those is our interaction with our mother. We develop from birth and start developing an independent model of self. We learn dependence and independence. Exploration and exploitation. We form collectively larger collections of each other, from the self, to the family, the tribe, the nation, to all of humanity. What is true about one of these levels of collection is true for all.</p>

<p>In addition to basic pleasure seeking and pain avoidance, an individual develops complex models of themselves and the world. They predict their own actions based on those models and then attempt to perform those predicted actions. This happens at any level of our collection: a single person, families, tribes, nations, humanity. With a single person, information processing happens within the brain through electrical signals moving between neurons. With multiple people, information processing happens between people through various communication mediums.</p>

<p>Actions taken can range from small reactions to those around us to large-scale terraforming that permanently alters the Earth. Like all living things, the actions are a response to our stimuli. Those actions can be rationalized after being taken.</p>

<p>In rare situations, the right conditions occur for the action to be chosen by the individual in a higher level detached state. The self observes its internal models and chooses or modifies its model of itself for the situation. For some people, this condition will never arise. For some people, it will arise a handful of times. A handful of occasions where they are able to step out of the gravity of existence and intentionally choose a path forward. We call this free will. This can occur for an individual as well as all recursively larger collections of people: families, tribes, nations, humanity.</p>

<p>Like the Big Bang, life, and intelligence, free will is an exception that occurs, not never or all the time, but a small number of times.</p>

<blockquote>
  <p>Between stimulus and response there is a space. In that space is our power to choose our response. In our response lies our growth and our freedom.</p>

  <footer>- <a href="https://www.viktorfrankl.org/quote_stimulus.html">Unattributable</a> quote, found by Stephen Covey (author, The 7 Habits of Highly Effective People) summarising the views of Victor Frankl (Holocaust survivor and author of Man's Search for Meaning)
</footer>
</blockquote>]]></content><author><name></name></author><summary type="html"><![CDATA[In a class I taught at Berkeley, I did an experiment where I wrote a simple little program that would let people type either “f” or “d” and would predict which key they were going to push next. It’s actually very easy to write a program that will make the right prediction about 70% of the time. Most people don’t really know how to type randomly. They’ll have too many alternations and so on. There will be all sorts of patterns, so you just have to build some sort of probabilistic model. Even a very crude one will do well. I couldn’t even beat my own program, knowing exactly how it worked. I challenged people to try this and the program was getting between 70% and 80% prediction rates. Then, we found one student that the program predicted exactly 50% of the time. We asked him what his secret was and he responded that he “just used his free will.” - Scott Aaronson, lecture on Free Will]]></summary></entry></feed>