<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>codethrasher</title><link>https://codethrasher.com/</link><description>Recent content on codethrasher</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 02 Sep 2026 23:18:30 -0700</lastBuildDate><atom:link href="https://codethrasher.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Childhood Flashback</title><link>https://codethrasher.com/posts/childhood_flashback/</link><pubDate>Wed, 02 Sep 2026 23:17:46 -0700</pubDate><guid>https://codethrasher.com/posts/childhood_flashback/</guid><description>&lt;p&gt;I have very fuzzy memories of playing games like Tank Wars when I was a kid. It&amp;rsquo;s cool to be able to play them, but it&amp;rsquo;s also really cool to be able to spin them up quickly with just a few prompts in stacks I&amp;rsquo;ve never had the time to test out.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codethrasher.com/games/tank-wars/"&gt;Here&amp;rsquo;s a wasm-based version of Tank Wars to waste time to.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Galactic-level Management</title><link>https://codethrasher.com/posts/galactic-management/</link><pubDate>Sat, 15 Aug 2026 15:37:12 -0700</pubDate><guid>https://codethrasher.com/posts/galactic-management/</guid><description>&lt;p&gt;I&amp;rsquo;ve always been interested in simulations. In college I would write very simple simulations, graph the output and marvel at the patterns that would emerge from things like the periodic oscillations of a predator/prey population set given a stable environment. It was so much fun to do that even &lt;em&gt;if&lt;/em&gt; I knew the outcome. It was sort of my way of playing a game without actually playing a game.&lt;/p&gt;
&lt;p&gt;I wasn&amp;rsquo;t ever really a massive gamer. I had my various love affairs with a few games when I was in middle/high school (Age of Empires, Command &amp;amp; Conquer, and Zelda come to mind), but they were frequently put to the side in favor of being out skating with my friends. In college the only game I had any fascination with was Dwarf Fortress. It absolutely blew my mind when I found it (which was before its Steam release). The ASCII art felt indecipherable the first few times I eyed the screen and simply trying to understand what each little symbol represented was like learning a new language, to say nothing of the insane complexity of it.&lt;/p&gt;</description></item><item><title>The Feynman Technique</title><link>https://codethrasher.com/posts/the_feynman_technique/</link><pubDate>Tue, 17 Feb 2026 21:30:13 -0700</pubDate><guid>https://codethrasher.com/posts/the_feynman_technique/</guid><description>&lt;p&gt;I&amp;rsquo;m reposting this.&lt;/p&gt;
&lt;p&gt;I was looking through my old notes and stumbled onto this oldie. It really is such a superb way to dive into a subject.&lt;/p&gt;
&lt;p&gt;A four-step process to test your understanding of a given subject matter.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Get a piece of paper and write the name of the technique/concept at the top&lt;/li&gt;
&lt;li&gt;Explain the concept in the most basic language possible. Avoid &lt;em&gt;all&lt;/em&gt; technical jargon and pretend you&amp;rsquo;re explaining this concept to someone who has &lt;strong&gt;zero&lt;/strong&gt; prior knowledge.&lt;/li&gt;
&lt;li&gt;Identify any areas that seemed shaky, or gave you pause. Go back to the source material and iron-out those wrinkles.&lt;/li&gt;
&lt;li&gt;Comb through your explanation and remove all technical terms.&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Org-mode cheatsheet</title><link>https://codethrasher.com/posts/org_mode_cheatsheet/</link><pubDate>Tue, 08 Jun 2021 08:53:45 -0700</pubDate><guid>https://codethrasher.com/posts/org_mode_cheatsheet/</guid><description>&lt;h2 id="tags"&gt;Tags&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Search tags: &lt;code&gt;SPC n m&lt;/code&gt; or &lt;code&gt;SPC o a m&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Add tag: &lt;code&gt;SPC m q&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="links"&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Insert link: &lt;code&gt;SPC m l l&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;File links have the structure &lt;code&gt;[[file:relative_link_to_file][some_title]​]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;To link to a specific heading in a file ​&lt;code&gt;[[file:relative_link::header title][some_title]]&lt;/code&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;header title&lt;/code&gt; can have spaces in it, e.g. &lt;code&gt;relative_link.org::A Heading in a file&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;External (web) links have the structure &lt;code&gt;[​[full_url][some_title]​]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;To see the link (so you can more easily edit it): &lt;code&gt;SPC m l t&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;To store a link to the current file/headline you&amp;rsquo;re in: &lt;code&gt;SPC n l&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;and to &amp;ldquo;paste&amp;rdquo; that stored link: &lt;code&gt;SPC m l l&lt;/code&gt; (Return)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="todos"&gt;TODOs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;See todo list (all entries): &lt;code&gt;SPC o a t&lt;/code&gt; or &lt;code&gt;SPC n t&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Insert todo within current section (subheading): &lt;code&gt;SPC m i t&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Change state of todo: &lt;code&gt;SPC m t&lt;/code&gt; (a menu will popup, &lt;code&gt;d&lt;/code&gt; to change to done)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="blocks"&gt;Blocks&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;insert code block &lt;code&gt;SPC m i c&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;insert quote block &lt;code&gt;SPC m i q&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="zero-width-character"&gt;Zero-width character&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;To escape the normal org-mode syntax (to show something like the file links above) &lt;code&gt;C-x 8 RET (search for ZERO WIDTH CHARACTER) RET&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="motion"&gt;Motion&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;To fuzzy search/goto section &lt;code&gt;C-c C-j&lt;/code&gt; (start typing)&lt;/li&gt;
&lt;li&gt;Up to previous heading &lt;code&gt;C-c C-p&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Down to next heading &lt;code&gt;C-c C-n&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="timestamps"&gt;Timestamps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Inactive (doesn&amp;rsquo;t show up on the Agenda) &lt;code&gt;SPC m d T&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;If you simply do the above and &lt;em&gt;just&lt;/em&gt; type in a time, e.g. 3pm it will render the below&lt;/li&gt;
&lt;li&gt;Or type it out manually, format: &lt;span class="timestamp-wrapper"&gt;&lt;span class="timestamp"&gt;[2021-03-23 Tue 15:30]&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Active (does show up on the Agenda) &lt;code&gt;SPC m d t&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;If you simply do the above and &lt;em&gt;just&lt;/em&gt; type in a time, e.g. 3pm it will render the below&lt;/li&gt;
&lt;li&gt;Or type it out manually, format: &lt;span class="timestamp-wrapper"&gt;&lt;span class="timestamp"&gt;&amp;lt;2021-03-23 Tue 15:30&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Or use custom command &lt;code&gt;SPC m i d&lt;/code&gt; which will put an inactive timestamp (with time) on the line below your cursor and enter insert mode to insert a prefix string before the stamp, e.g. Started: [timestamp]&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="time-management"&gt;Time Management&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;To start a clock for the current headline (section): &lt;code&gt;SPC m c i&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;To stop a clock for the current headline (section): &lt;code&gt;SPC m c o&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;To create a time-management overview of the file: &lt;code&gt;SPC m c R&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Curl a GraphQL API</title><link>https://codethrasher.com/posts/curl_a_graphql_api/</link><pubDate>Tue, 11 May 2021 09:29:37 -0700</pubDate><guid>https://codethrasher.com/posts/curl_a_graphql_api/</guid><description>&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -0 -v -X POST https://some.api.com/graphql &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-H &lt;span class="s1"&gt;&amp;#39;Content-Type: application/json&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-d @- &lt;span class="s"&gt;&amp;lt;&amp;lt; EOF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; &amp;#34;query&amp;#34;: &amp;#34;query { someQuery (someArg: false) { name } }&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;curl&lt;/code&gt; will probably complain about the &lt;code&gt;-X POST&lt;/code&gt; being inferred, but it shouldn&amp;rsquo;t harm anything. It can be left out.&lt;/p&gt;</description></item><item><title>Function Overloading</title><link>https://codethrasher.com/posts/function_overloading/</link><pubDate>Tue, 02 Feb 2021 09:17:33 -0800</pubDate><guid>https://codethrasher.com/posts/function_overloading/</guid><description>&lt;p&gt;Take a function like below&amp;hellip;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Combinable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kt"&gt;number&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;: &lt;span class="kt"&gt;Combinable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;: &lt;span class="kt"&gt;Combinable&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Combinable&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;string&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;string&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If we were to use this function like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;black cat&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;white dog&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// TS compiler will complain here
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;TypeScript cannot determine what the return type of &lt;code&gt;add&lt;/code&gt; is at this point. All it knows is that it &lt;em&gt;might&lt;/em&gt; be a &lt;code&gt;string | number&lt;/code&gt;. We could cast it as a known type (i.e. &lt;code&gt;as string&lt;/code&gt;), but this is unnecessary and more code than we should really have to write.&lt;/p&gt;</description></item><item><title>Nullish Coalescing</title><link>https://codethrasher.com/posts/nullish_coalescing/</link><pubDate>Sun, 17 Jan 2021 21:21:00 -0800</pubDate><guid>https://codethrasher.com/posts/nullish_coalescing/</guid><description>&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// say you have some var hangin&amp;#39; around called `name`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;: &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;(no name)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;??&lt;/code&gt; is the nullish coalescing operator. It differs from &lt;code&gt;||&lt;/code&gt; in that if you had (in the above example)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;: &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;(no name)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;name equal to an empty string (which is falsey) &lt;code&gt;x&lt;/code&gt; would then be assigned the value &lt;code&gt;(no name)&lt;/code&gt;. The nullish coalescing operator will only use the right-hand assignment for &amp;ldquo;nullish&amp;rdquo; values (&lt;code&gt;null&lt;/code&gt; or &lt;code&gt;undefined&lt;/code&gt;).&lt;/p&gt;</description></item><item><title>Recursive Type Aliases</title><link>https://codethrasher.com/posts/recursive_type_aliases/</link><pubDate>Sat, 16 Jan 2021 21:09:40 -0800</pubDate><guid>https://codethrasher.com/posts/recursive_type_aliases/</guid><description>&lt;p&gt;In &lt;code&gt;TS@4&lt;/code&gt; a type can reference itself, e.g.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;JSONValue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kt"&gt;number&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kr"&gt;boolean&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;JSONValue&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;k&lt;/span&gt;: &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSONValue&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Previously, this would not be possible without some messy hacks.&lt;/p&gt;</description></item><item><title>Labeled Tuple Types</title><link>https://codethrasher.com/posts/labeled_tuple_type/</link><pubDate>Sat, 16 Jan 2021 21:02:12 -0800</pubDate><guid>https://codethrasher.com/posts/labeled_tuple_type/</guid><description>&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Address&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;number&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Say you now have a function &lt;code&gt;printAddress&lt;/code&gt; which takes an &lt;code&gt;Address&lt;/code&gt; type as its arg.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;printAddress&lt;/span&gt;&lt;span class="p"&gt;(...&lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;: &lt;span class="kt"&gt;Address&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// ...stuff
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Your editor (before &lt;code&gt;TS@4&lt;/code&gt;) would hint that the arguments were something like:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-nil" data-lang="nil"&gt;address_0: number, address_1: string, ...etc
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;which is not really helpful because &lt;code&gt;address_0: number&lt;/code&gt; doesn&amp;rsquo;t really explain &lt;em&gt;what&lt;/em&gt; that parameter corresponds to. With Labled Tuple Types we can do&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Address&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;streetNumber&lt;/span&gt;: &lt;span class="kt"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;city&lt;/span&gt;: &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt;: &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;zip&lt;/span&gt;: &lt;span class="kt"&gt;number&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: once you begin to label an element in a type definition, you &lt;em&gt;must&lt;/em&gt; label all of the other elements.&lt;/p&gt;</description></item><item><title>Variadic Tuple Types</title><link>https://codethrasher.com/posts/variadic_tuple_types/</link><pubDate>Sat, 16 Jan 2021 20:44:40 -0800</pubDate><guid>https://codethrasher.com/posts/variadic_tuple_types/</guid><description>&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Foo&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;T&lt;/span&gt; &lt;span class="na"&gt;extends&lt;/span&gt; &lt;span class="na"&gt;any&lt;/span&gt;&lt;span class="err"&gt;[]&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kr"&gt;boolean&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;T&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kr"&gt;boolean&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Before &lt;code&gt;TS@4.0&lt;/code&gt; &lt;code&gt;...T&lt;/code&gt; would need to be the last element, but now we can spread the &lt;code&gt;T&lt;/code&gt; type nested between known types; e.g. &amp;ldquo;This array will have a boolean, with some stuff (strings, numbers, etc.), and another boolean&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Composite Builds</title><link>https://codethrasher.com/posts/composite_builds/</link><pubDate>Fri, 15 Jan 2021 22:20:07 -0800</pubDate><guid>https://codethrasher.com/posts/composite_builds/</guid><description>&lt;p&gt;TypeScript has a way of describing a build process as multiple subpieces of a project. This saves from having to build every piece, and instead build independent parts and stitch them together as needed.&lt;/p&gt;
&lt;p&gt;In a monorepo environment, multiple packages will have multiple builds and, possibly, refer to those builds amongst each other.&lt;/p&gt;
&lt;p&gt;The root &lt;code&gt;tsconfig.json&lt;/code&gt; file can be used, but a problem of independent sources of truth arises. For instance, one project may have a different level of type strictness, or use a different version of Node. Rather than forcing every package to abide by a given rule, it is advantageous to have thin configurations for independent packages, but have them all rely on the more general rules in the root-level &lt;code&gt;tsconfig.json&lt;/code&gt; file.&lt;/p&gt;</description></item><item><title>Jest Setup for a Monorepo</title><link>https://codethrasher.com/posts/jest_setup_for_a_monorepo/</link><pubDate>Fri, 15 Jan 2021 22:06:47 -0800</pubDate><guid>https://codethrasher.com/posts/jest_setup_for_a_monorepo/</guid><description>&lt;p&gt;Out of the box, Jest &lt;em&gt;mostly&lt;/em&gt; works in a Monorepo environment, with the exception of a few Babel plugins so that (as an example) TypeScript works.&lt;/p&gt;
&lt;p&gt;Needs:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;@babel/preset-env&lt;/code&gt; (Babel will transform whatever it needs to transform based on the build target, e.g. TypeScript, IE11, ES6, Node10, etc.)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@babel/preset-typescript&lt;/code&gt; (Babel will strip out the symbols that are specific to TypeScript)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The root-level &lt;code&gt;.babelrc&lt;/code&gt; file would look like:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;presets&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;@babel/preset-env&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;targets&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;node&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;@babel/preset-typescript&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The target above is arbitrary, and can be anything (or nothing).&lt;/p&gt;</description></item><item><title>Monorepos</title><link>https://codethrasher.com/posts/monorepos/</link><pubDate>Fri, 15 Jan 2021 21:42:29 -0800</pubDate><guid>https://codethrasher.com/posts/monorepos/</guid><description/></item><item><title>Colocation</title><link>https://codethrasher.com/posts/colocation/</link><pubDate>Thu, 14 Jan 2021 10:49:46 -0800</pubDate><guid>https://codethrasher.com/posts/colocation/</guid><description>&lt;p&gt;&amp;ldquo;colocation&amp;rdquo; is a pattern wherein you keep the query/mutation as close to the consuming component as possible. In many instances, it&amp;rsquo;s in the exact file. This is in contrast with the DRY approach, which would beg the author to push queries/mutations higher up and imported into whichever file needs it.&lt;/p&gt;</description></item><item><title>Yarn-NPM</title><link>https://codethrasher.com/posts/yarn_npm/</link><pubDate>Wed, 16 Dec 2020 10:38:33 -0800</pubDate><guid>https://codethrasher.com/posts/yarn_npm/</guid><description>&lt;h2 id="package-dot-json"&gt;package.json&lt;/h2&gt;
&lt;h3 id="resolutions-field"&gt;resolutions field&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;yarn specific&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Allows you to force the use of a particular version for a nested dependency. e.g.:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;devDependencies&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;@angular/cli&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1.0.3&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;typescript&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2.3.2&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;yarn.lock&lt;/code&gt; will contain:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;typescript@&amp;gt;=2.0.0 &amp;lt;2.3.0&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;version&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2.2.2&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;resolved&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://registry.yarnpkg.com/typescript/-/typescript-2.2.2.tgz#606022508479b55ffa368b58fee963a03dfd7b0c&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;typescript@&lt;/span&gt;&lt;span class="mf"&gt;2.3&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;version&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2.3.2&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;resolved&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://registry.yarnpkg.com/typescript/-/typescript-2.3.2.tgz#f0f045e196f69a72f06b25fd3bd39d01c3ce9984&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;and within &lt;code&gt;node_modules&lt;/code&gt; you&amp;rsquo;d see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;typescript@2.3.2&lt;/code&gt; in &lt;code&gt;node_modules/typescript&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;typescript@2.2.2&lt;/code&gt; in &lt;code&gt;node_modules/@angular/cli/node_modules.&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because &lt;a href="mailto:TS@2.2.2"&gt;TS@2.2.2&lt;/a&gt; is nested within @angular/cli it is impossilbe to force the use of &lt;a href="mailto:TS@2.3.2"&gt;TS@2.3.2&lt;/a&gt; across the entire project (see flattening, for a counter to this).&lt;/p&gt;</description></item><item><title>Cipher</title><link>https://codethrasher.com/posts/cipher/</link><pubDate>Tue, 01 Dec 2020 16:08:32 -0800</pubDate><guid>https://codethrasher.com/posts/cipher/</guid><description>&lt;p&gt;A &lt;code&gt;cipher&lt;/code&gt; is defined over the spaces of:&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;All Keys, \(\mathscr{K}\)&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;All Messages, \(\mathscr{M}\)&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;All Cipher texts, \(\mathscr{C}\)&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Cipher (defined as a triple, \((\mathscr{K}, \mathscr{M}, \mathscr{C})\)) as a pair of algorithms \((\mathbf{E}, \mathbf{D})\) where \(\mathbf{E}\) represents the encryption algorithm and \(\mathbf{D}\) represents the decryption algorithm.&lt;/p&gt;
&lt;p&gt;\begin{equation}
\mathbf{E}: \mathscr{K} \times \mathscr{M} \rightarrow \mathscr{C}
\end{equation}&lt;/p&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;p&gt;\begin{equation}
\mathbf{D}: \mathscr{K} \times \mathscr{C} \rightarrow \mathscr{M}
\end{equation}&lt;/p&gt;
&lt;p&gt;Such that:&lt;/p&gt;
&lt;p&gt;\begin{equation}
\forall m \in \mathscr{M}, k \in \mathscr{K}: \mathbf{D}(k, \mathbf{E}(k, m)) = m
\end{equation}&lt;/p&gt;</description></item><item><title>Distribution Vector</title><link>https://codethrasher.com/posts/distribution_vector/</link><pubDate>Tue, 01 Dec 2020 15:06:23 -0800</pubDate><guid>https://codethrasher.com/posts/distribution_vector/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A vector with non-negative components (representing specific probabilities) which add up to one&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;e.g.&lt;/p&gt;
&lt;p&gt;\begin{equation}
(P(x_{0}), P(x_{1}),&amp;hellip;,P(x_{n}))
\end{equation}&lt;/p&gt;
&lt;p&gt;Also known as:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Stochastic Vector&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Uniform Distribution</title><link>https://codethrasher.com/posts/uniform_distribution/</link><pubDate>Tue, 01 Dec 2020 15:03:05 -0800</pubDate><guid>https://codethrasher.com/posts/uniform_distribution/</guid><description>&lt;blockquote&gt;
&lt;p&gt;\begin{equation}
x \in U:P(x) = \frac{1}{|U|}
\end{equation}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Where \(|U|\) is the size of the universe (set).&lt;/p&gt;
&lt;p&gt;In Probability Theory, a &lt;code&gt;uniform distribution&lt;/code&gt; assigns an equal probability to each element of a given set.&lt;/p&gt;</description></item><item><title>Point Distribution</title><link>https://codethrasher.com/posts/point_distribution/</link><pubDate>Tue, 01 Dec 2020 14:58:59 -0800</pubDate><guid>https://codethrasher.com/posts/point_distribution/</guid><description>&lt;blockquote&gt;
&lt;p&gt;x&lt;sub&gt;0&lt;/sub&gt;: P(x) = 1,∀ x ≠ x&lt;sub&gt;0&lt;/sub&gt;: P(x) = 0&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In Probability Theory, a &lt;code&gt;point distribution&lt;/code&gt; is a distribution which assigns all the probability to a given point (set element).&lt;/p&gt;</description></item><item><title>Cryptography</title><link>https://codethrasher.com/posts/cryptography/</link><pubDate>Tue, 01 Dec 2020 14:46:08 -0800</pubDate><guid>https://codethrasher.com/posts/cryptography/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/digital_signature/"&gt;Digital Signature&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Digital Signature</title><link>https://codethrasher.com/posts/digital_signature/</link><pubDate>Tue, 01 Dec 2020 13:43:16 -0800</pubDate><guid>https://codethrasher.com/posts/digital_signature/</guid><description>&lt;p&gt;A function of the content being &amp;ldquo;signed&amp;rdquo;&lt;/p&gt;</description></item><item><title>Cost Function</title><link>https://codethrasher.com/posts/cost_function/</link><pubDate>Tue, 01 Dec 2020 11:27:21 -0800</pubDate><guid>https://codethrasher.com/posts/cost_function/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The measurement of accuracy of a &lt;a href="https://codethrasher.com/posts/hypothesis_function/"&gt;hypothesis function&lt;/a&gt;. The accuracy is given as an average difference of all the results of the hypothesis from the inputs (\(x\)&amp;rsquo;s) to the outputs (\(y\)&amp;rsquo;s).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;\begin{equation}
J(\Theta_{0},\Theta_{1})=\frac{1}{2m}\sum_{i=1}^{m}(h_{\Theta}(x_{i}) - y_{i})^{2}
\end{equation}&lt;/p&gt;
&lt;p&gt;where \(m\) is the number of inputs (e.g. training examples)&lt;/p&gt;
&lt;p&gt;This function is also known as the &lt;code&gt;squared error function&lt;/code&gt; or &lt;code&gt;mean squared error&lt;/code&gt;. The \(\frac{1}{2}\) is a convenience for the cancellation of the 2 which will be present due to the squared term being derived (see &lt;a href="https://codethrasher.com/posts/gradient_descent/"&gt;gradient descent&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>Machine Learning</title><link>https://codethrasher.com/posts/machine_learning/</link><pubDate>Tue, 01 Dec 2020 11:21:27 -0800</pubDate><guid>https://codethrasher.com/posts/machine_learning/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/gradient_descent/"&gt;Gradient Descent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/cost_function/"&gt;Cost Function&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/hypothesis_function/"&gt;Hypothesis Function&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/artificial_neural_network/"&gt;Artificial Neural Network&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Gradient Descent</title><link>https://codethrasher.com/posts/gradient_descent/</link><pubDate>Tue, 01 Dec 2020 11:13:06 -0800</pubDate><guid>https://codethrasher.com/posts/gradient_descent/</guid><description>&lt;blockquote&gt;
&lt;p&gt;An optimization algorithm for finding the local minimum of a differentiable function.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure&gt;&lt;img src="https://codethrasher.com/ox-hugo/gradient_descent.png"&gt;
&lt;/figure&gt;

&lt;p&gt;(The red arrows show the minimums of \(J(\Theta_{0},\Theta_{1})\), i.e. the &lt;a href="https://codethrasher.com/posts/cost_function/"&gt;cost function&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;To find the minimum of the &lt;a href="https://codethrasher.com/posts/cost_function/"&gt;cost function&lt;/a&gt;, we take its derivative and &amp;ldquo;move along&amp;rdquo; the tangential line of steepest (negative) descent. Each &amp;ldquo;step&amp;rdquo; is determined by the coefficient \(\alpha\), which is called the &lt;code&gt;Learning Rate&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;\begin{equation}
\Theta_{j_{new}} := \Theta_{j_{old}} - \alpha\frac{\partial}{\partial\Theta_{j}}J(\Theta_{0},\Theta_{1})
\end{equation}&lt;/p&gt;
&lt;p&gt;\(\Theta_{j}\), initially, will be a randomly-chosen value. At each iteration of the algorithm, we want to update the &amp;ldquo;old&amp;rdquo; parameter \(\Theta_{j_{old}}\) with the newly-calculated value. This process should occur until the slope is zero (i.e. the derivative of the &lt;a href="https://codethrasher.com/posts/cost_function/"&gt;cost function&lt;/a&gt; is zero), indicating a minimum.&lt;/p&gt;</description></item><item><title>Hypothesis Function</title><link>https://codethrasher.com/posts/hypothesis_function/</link><pubDate>Tue, 01 Dec 2020 10:47:16 -0800</pubDate><guid>https://codethrasher.com/posts/hypothesis_function/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A function which maps values \(x\) to an output value \(y\). Historically, in ML, &lt;code&gt;hypothesis functions&lt;/code&gt; are denoted \(h(x^{(i)})\).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure&gt;&lt;img src="https://codethrasher.com/ox-hugo/learning-function.png"&gt;
&lt;/figure&gt;</description></item><item><title>Artificial Neural Network</title><link>https://codethrasher.com/posts/artificial_neural_network/</link><pubDate>Thu, 26 Nov 2020 20:23:30 -0800</pubDate><guid>https://codethrasher.com/posts/artificial_neural_network/</guid><description>&lt;p&gt;&lt;code&gt;Artificial Neural Network (ANN)&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Layers
All learning occurs in the layers. In the image, below, there are three layers, but there could be only one, or many more. In the example image the first layer is known as the &lt;code&gt;Input Layer&lt;/code&gt;, the second the &lt;code&gt;Hidden Layer&lt;/code&gt;, and the third the &lt;code&gt;Output Layer&lt;/code&gt;. In a 3+ layered ANN, any layer that &lt;em&gt;is not&lt;/em&gt; the input/output layer is a &lt;code&gt;Hidden Layer&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Input
The data being fed into the ANN&lt;/p&gt;</description></item><item><title>Covectors</title><link>https://codethrasher.com/posts/covectors/</link><pubDate>Tue, 17 Nov 2020 21:59:53 -0800</pubDate><guid>https://codethrasher.com/posts/covectors/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A linear mapping from a &lt;a href="https://codethrasher.com/posts/vector_space/"&gt;vector space&lt;/a&gt; to a field of scalars. In other words, a linear function which acts upon a vector resulting in a real number (scalar)&lt;/p&gt;
&lt;p&gt;\begin{equation}
\alpha\,:\,\mathbf{V} \longrightarrow \mathbb{R}
\end{equation}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Simplistically, &lt;code&gt;covectors&lt;/code&gt; can be thought of as &amp;ldquo;row vectors&amp;rdquo;, or:&lt;/p&gt;
&lt;p&gt;\begin{equation}
\begin{bmatrix}
1 &amp;amp; 2
\end{bmatrix}
\end{equation}&lt;/p&gt;
&lt;p&gt;This might look like a standard vector, which would be true in an &lt;a href="https://codethrasher.com/posts/orthonormal_basis/"&gt;orthonormal basis&lt;/a&gt;, but it is not true generally. Instead, a &lt;code&gt;covector&lt;/code&gt; acts as a function on a standard &amp;ldquo;column vector&amp;rdquo;, e.g.&lt;/p&gt;</description></item><item><title>Differential Geometry</title><link>https://codethrasher.com/posts/differential_geometry/</link><pubDate>Tue, 17 Nov 2020 09:30:10 -0800</pubDate><guid>https://codethrasher.com/posts/differential_geometry/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/tensors/"&gt;Tensors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/tensor_product/"&gt;Tensor Product&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Linear Algebra</title><link>https://codethrasher.com/posts/linear_algebra/</link><pubDate>Tue, 17 Nov 2020 09:30:00 -0800</pubDate><guid>https://codethrasher.com/posts/linear_algebra/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/bases/"&gt;Bases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/bases_transformation/"&gt;Bases Transformation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/coordinate_transformation/"&gt;Coordinate Transformation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/covectors/"&gt;Covectors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/dual_space/"&gt;Dual Space&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/identity_matrix/"&gt;Identity Matrix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/invertible_matrix/"&gt;Invertible Matrix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/invertible_matrix/"&gt;Invertible Matrix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/orthonormal_basis/"&gt;Orthonormal Basis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/tensor_product/"&gt;Tensor Product&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/tensors/"&gt;Tensors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/vector_space/"&gt;Vector Space&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/vector_space_axioms/"&gt;Axioms (Vector Space)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Linear Mapping</title><link>https://codethrasher.com/posts/linear_mapping/</link><pubDate>Mon, 16 Nov 2020 22:13:48 -0800</pubDate><guid>https://codethrasher.com/posts/linear_mapping/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A mapping from \(\mathbf{V} \rightarrow \mathbf{W}\) that preserves the operations of addition and scalar multiplication.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="also-known-as"&gt;Also known as&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Linear Map&lt;/li&gt;
&lt;li&gt;Linear Transformation&lt;/li&gt;
&lt;li&gt;Linear Function&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Multilinear Map</title><link>https://codethrasher.com/posts/multilinear_map/</link><pubDate>Mon, 16 Nov 2020 22:11:24 -0800</pubDate><guid>https://codethrasher.com/posts/multilinear_map/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A function of several variables that is linear, separately, in each variable.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A multilinear map of one variable is a standard &lt;a href="https://codethrasher.com/posts/linear_mapping/"&gt;linear mapping&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Tensor Product</title><link>https://codethrasher.com/posts/tensor_product/</link><pubDate>Mon, 16 Nov 2020 21:41:03 -0800</pubDate><guid>https://codethrasher.com/posts/tensor_product/</guid><description/></item><item><title>Dual Space</title><link>https://codethrasher.com/posts/dual_space/</link><pubDate>Thu, 12 Nov 2020 09:58:51 -0800</pubDate><guid>https://codethrasher.com/posts/dual_space/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The space of all &lt;a href="https://codethrasher.com/posts/covectors/"&gt;linear functionals&lt;/a&gt; \(f:V\rightarrow \mathbb{R}\), noted as \(V^{*}\)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The &lt;code&gt;dual space&lt;/code&gt; has the same dimension as the corresponding &lt;a href="https://codethrasher.com/posts/vector_space/"&gt;vector space&lt;/a&gt; or, given a space \(V\), with &lt;a href="https://codethrasher.com/posts/bases/"&gt;bases&lt;/a&gt; \((v_{1},&amp;hellip;,v_{n})\), there exists a &lt;code&gt;dual space&lt;/code&gt; \(V^{*}\) with a &lt;a href="https://codethrasher.com/posts/bases/"&gt;dual basis&lt;/a&gt; \((v^{*}_{1},&amp;hellip;,v^{*}_{n})\).&lt;/p&gt;</description></item><item><title>Dual Vector Space</title><link>https://codethrasher.com/posts/dual_vector_space/</link><pubDate>Thu, 12 Nov 2020 09:58:21 -0800</pubDate><guid>https://codethrasher.com/posts/dual_vector_space/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The space of all &lt;a href="https://codethrasher.com/posts/covectors/"&gt;linear functionals&lt;/a&gt; \(f:V\rightarrow \mathbb{R}\), noted as \(V^{*}\)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The &lt;code&gt;dual space&lt;/code&gt; has the same dimension as the corresponding &lt;a href="https://codethrasher.com/posts/vector_space/"&gt;vector space&lt;/a&gt; or, given a space \(V\), with &lt;a href="https://codethrasher.com/posts/bases/"&gt;bases&lt;/a&gt; \((v_{1},&amp;hellip;,v_{n})\), there exists a &lt;code&gt;dual space&lt;/code&gt; \(V^{*}\) with a &lt;a href="https://codethrasher.com/posts/bases/"&gt;dual basis&lt;/a&gt; \((v^{*}_{1},&amp;hellip;,v^{*}_{n})\).&lt;/p&gt;</description></item><item><title>Heliosphere</title><link>https://codethrasher.com/posts/heliosphere/</link><pubDate>Thu, 29 Oct 2020 16:07:43 -0700</pubDate><guid>https://codethrasher.com/posts/heliosphere/</guid><description>&lt;p&gt;The bubble, created by the Sun&amp;rsquo;s plasma (see &lt;a href="https://codethrasher.com/posts/solar_wind/"&gt;Solar Wind&lt;/a&gt;), which encompasses the Sun itself. Outside of this bubble, the Sun&amp;rsquo;s plasma is overwhelmed by the Interstellar plasma.&lt;/p&gt;</description></item><item><title>Solar Wind</title><link>https://codethrasher.com/posts/solar_wind/</link><pubDate>Thu, 29 Oct 2020 16:03:32 -0700</pubDate><guid>https://codethrasher.com/posts/solar_wind/</guid><description>&lt;p&gt;TODO&lt;/p&gt;</description></item><item><title>Tensors</title><link>https://codethrasher.com/posts/tensors/</link><pubDate>Thu, 29 Oct 2020 09:46:58 -0700</pubDate><guid>https://codethrasher.com/posts/tensors/</guid><description>&lt;h2 id="as-a-linear-representation"&gt;As a linear representation&lt;/h2&gt;
&lt;p&gt;A tensor can be represented as a vector of x-number of dimensions. Basically, a generalization on top of scalars, vectors, and matrices. The specific &amp;ldquo;flavor&amp;rdquo; of the tensor (i.e. is it a scalar, vector, or matrix) is clarified by referring to the tensor&amp;rsquo;s &amp;ldquo;rank&amp;rdquo;. For instance; a &lt;code&gt;rank 0&lt;/code&gt; tensor is a scalr, &lt;code&gt;rank 1&lt;/code&gt; tensor is a one-dimensional vector, a &lt;code&gt;rank 2&lt;/code&gt; tensor is a two-dimensional vector (\(2x2\) matrix), etc.&lt;/p&gt;</description></item><item><title>Kronecker Delta</title><link>https://codethrasher.com/posts/kronecker_delta/</link><pubDate>Thu, 29 Oct 2020 09:41:12 -0700</pubDate><guid>https://codethrasher.com/posts/kronecker_delta/</guid><description>&lt;p&gt;\begin{equation}
\delta_{ij}=
\begin{cases}
0 &amp;amp; \text{if i \(\neq\) j}\\\
1 &amp;amp; \text{if i \(=\) j}
\end{cases}
\end{equation}&lt;/p&gt;</description></item><item><title>Bases</title><link>https://codethrasher.com/posts/bases/</link><pubDate>Thu, 29 Oct 2020 09:39:54 -0700</pubDate><guid>https://codethrasher.com/posts/bases/</guid><description>&lt;blockquote&gt;
&lt;p&gt;a basis for an n-dimensional vector space \(V\) is any ordered set of &lt;em&gt;linearly independent&lt;/em&gt; vectors \((\mathbf{e}_{1}, \mathbf{e}_{2},&amp;hellip;,\mathbf{e}_{n})\)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;An arbitrary vector \(\mathbf{x}\) in \(V\) can be expressed as a linear combination of the basis vectors:&lt;/p&gt;
&lt;p&gt;\begin{equation}
\mathbf{x}\,=\,\sum\limits_{i = 1}^{n} \mathbf{e}_{i}x^{i}
\end{equation}&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;See &lt;a href="https://codethrasher.com/posts/bases_transformation/"&gt;Bases Transformation&lt;/a&gt;, &lt;a href="https://codethrasher.com/posts/coordinate_transformation/"&gt;Coordinate Transformation&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Orthonormal Basis</title><link>https://codethrasher.com/posts/orthonormal_basis/</link><pubDate>Tue, 27 Oct 2020 20:58:35 -0700</pubDate><guid>https://codethrasher.com/posts/orthonormal_basis/</guid><description>&lt;p&gt;An orthonormal basis is a basis where all the vectors are one unit long and all perpendicular to each other (e.g. the Cartesian plane)&lt;/p&gt;</description></item><item><title>Bases Transformation</title><link>https://codethrasher.com/posts/bases_transformation/</link><pubDate>Tue, 27 Oct 2020 11:05:44 -0700</pubDate><guid>https://codethrasher.com/posts/bases_transformation/</guid><description>&lt;p&gt;Consider two &lt;a href="https://codethrasher.com/posts/bases/"&gt;bases&lt;/a&gt; \((\mathbf{e}_{1},\mathbf{e}_{2})\) and \((\mathbf{\tilde{e}}_{1},\mathbf{\tilde{e}}_{2})\), where we consider the former the &lt;em&gt;old basis&lt;/em&gt; and the latter the &lt;em&gt;new basis&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Each vector \((\mathbf{\tilde{e}}_{1},\mathbf{\tilde{e}}_{2})\) can be expressed as a linear combination of \((\mathbf{e}_{1},\mathbf{e}_{2})\):&lt;/p&gt;
&lt;p&gt;\begin{equation}
\mathbf{\tilde{e}}_{1}\,=\,\mathbf{e}_{1}S^{1}_{1}\,+\,\mathbf{e}_{2}S^{2}_{1}\\\
\tag{1.0}\\\
\mathbf{\tilde{e}}_{2}\,=\,\mathbf{e}_{1}S^{1}_{2}\,+\,\mathbf{e}_{2}S^{2}_{2}
\end{equation}&lt;/p&gt;
&lt;p&gt;(1.0) is the &lt;em&gt;basis transformation formula&lt;/em&gt;, and the object \(S\) is the &lt;em&gt;direct transformation&lt;/em&gt; \(\{S^{j}_{i},\,1\,\leq\,i,\,j\,\leq\,2\}\), (assuming a \(2x2\) matrix) which can also be written in matrix form:&lt;/p&gt;
&lt;p&gt;\begin{equation}
\begin{bmatrix}
\mathbf{\tilde{e}}_{1} &amp;amp; \mathbf{\tilde{e}}_{2}
\end{bmatrix}\,=\,
\begin{bmatrix}
\mathbf{e}_{1} &amp;amp; \mathbf{e}_{2}\,
\end{bmatrix}
\begin{bmatrix}
S^{1}_{1} &amp;amp; S^{1}_{2}\\\
S^{2}_{1} &amp;amp; S^{2}_{2}
\end{bmatrix}\\\
=\,
\begin{bmatrix}
\mathbf{e}_{1} &amp;amp; \mathbf{e}_{2}
\end{bmatrix}\,S\tag{1.1}
\end{equation}&lt;/p&gt;</description></item><item><title>Identity Matrix</title><link>https://codethrasher.com/posts/identity_matrix/</link><pubDate>Tue, 27 Oct 2020 10:32:05 -0700</pubDate><guid>https://codethrasher.com/posts/identity_matrix/</guid><description>&lt;blockquote&gt;
&lt;p&gt;\begin{equation}
\mathbf{I}(\mathbf{X})=\mathbf{X}
\end{equation}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Where any \(nxn\) matrix is established via the &lt;a href="https://codethrasher.com/posts/kronecker_delta/"&gt;Kronecker Delta&lt;/a&gt;, e.g.&lt;/p&gt;
&lt;p&gt;\begin{equation}
\mathbf{I}_{ij}\,=\,\delta_{ij}
\end{equation}&lt;/p&gt;</description></item><item><title>Invertible Matrix</title><link>https://codethrasher.com/posts/invertible_matrix/</link><pubDate>Tue, 27 Oct 2020 10:14:42 -0700</pubDate><guid>https://codethrasher.com/posts/invertible_matrix/</guid><description>&lt;p&gt;A matrix, which when multiplied by another matrix, results in the &lt;a href="https://codethrasher.com/posts/identity_matrix/"&gt;identity matrix&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;\begin{equation}
\mathbf{A}\mathbf{A}^{-1} = I
\end{equation}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;e.g.&lt;/p&gt;
&lt;p&gt;\begin{equation}
\begin{bmatrix}
a &amp;amp; b\\\
c &amp;amp; d
\end{bmatrix}
\begin{bmatrix}
d &amp;amp; -b\\\
-c &amp;amp; a
\end{bmatrix}=
\begin{bmatrix}
1 &amp;amp; 0\\\
0 &amp;amp; 1
\end{bmatrix}
\end{equation}&lt;/p&gt;</description></item><item><title>Vector Space</title><link>https://codethrasher.com/posts/vector_space/</link><pubDate>Mon, 26 Oct 2020 22:29:06 -0700</pubDate><guid>https://codethrasher.com/posts/vector_space/</guid><description>&lt;blockquote&gt;
&lt;p&gt;also known as a &lt;em&gt;linear space&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A collection of objects known as &amp;ldquo;vectors&amp;rdquo;. In the Euclidean space these can be visualized as simple arrows with a direction and a length, but this analogy will not necessarily translate to all spaces.&lt;/p&gt;
&lt;p&gt;Addition and multiplication of these objects (vectors) must adhere to &lt;a href="https://codethrasher.com/posts/vector_space_axioms/"&gt;a set of axioms&lt;/a&gt; for the set to be considered a &amp;ldquo;vector space&amp;rdquo;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Addition (+)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;\begin{equation}
+\,:\,V\,\times\,V\,\longrightarrow\,V
\end{equation}&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiplication (\(\cdot\))&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;\begin{equation}
\cdot\,:\,F\,\times\,V\,\longrightarrow\,V
\end{equation}&lt;/p&gt;</description></item><item><title>Coordinate Transformation</title><link>https://codethrasher.com/posts/coordinate_transformation/</link><pubDate>Mon, 26 Oct 2020 22:23:41 -0700</pubDate><guid>https://codethrasher.com/posts/coordinate_transformation/</guid><description/></item><item><title>Axioms (Vector Space)</title><link>https://codethrasher.com/posts/vector_space_axioms/</link><pubDate>Mon, 26 Oct 2020 20:54:32 -0700</pubDate><guid>https://codethrasher.com/posts/vector_space_axioms/</guid><description>&lt;p&gt;To qualify as a &lt;a href="https://codethrasher.com/posts/vector_space/"&gt;vector space&lt;/a&gt;, a set \(V\) and its associated operations of addition (\(+\)) and multiplication/scaling (\(\cdot\)) must adhere to the below:&lt;/p&gt;
&lt;h2 id="associativity"&gt;Associativity&lt;/h2&gt;
&lt;p&gt;\begin{equation}
\mathbf{u}+(\mathbf{v}+\mathbf{w}) = (\mathbf{u} + \mathbf{v}) + \mathbf{w}
\end{equation}&lt;/p&gt;
&lt;h2 id="commutivity"&gt;Commutivity&lt;/h2&gt;
&lt;p&gt;\begin{equation}
\mathbf{u} + \mathbf{v} = \mathbf{v} + \mathbf{u}
\end{equation}&lt;/p&gt;
&lt;h2 id="identity-of-addition"&gt;Identity of Addition&lt;/h2&gt;
&lt;p&gt;There exists and element \(\mathbf{0}\,\in\,V\), called the &lt;em&gt;zero vector&lt;/em&gt;, such that \(\mathbf{v} + \mathbf{0} = \mathbf{v}\) for all \(\mathbf{v}\,\in\,V\).&lt;/p&gt;
&lt;h2 id="inverse-of-addition"&gt;Inverse of Addition&lt;/h2&gt;
&lt;p&gt;For every \(\mathbf{v}\,\in\,V\), there exists an element \(\mathbf{-v}\,\in\,V\), such that \(\mathbf{v}\,+\,(\mathbf{-v})\,=\,\mathbf{0}\).&lt;/p&gt;</description></item><item><title>Invariance (Mathematics)</title><link>https://codethrasher.com/posts/invariance/</link><pubDate>Mon, 26 Oct 2020 10:30:36 -0700</pubDate><guid>https://codethrasher.com/posts/invariance/</guid><description>&lt;p&gt;An property (of a mathematical object) is &lt;em&gt;invariant&lt;/em&gt; if, after some operation(s) are applied, that property remains unchanged.&lt;/p&gt;
&lt;p&gt;For instance, in a geometrical space where the concept of &amp;ldquo;length&amp;rdquo; is defined (by some metric); a physical object, say a pencil, will maintain its characteristics (length) despite a change of coordinates (e.g. polar to cartesian).&lt;/p&gt;
&lt;p&gt;In short, &lt;em&gt;vectors&lt;/em&gt; are invariant, but their components are not (under a transformation).&lt;/p&gt;</description></item><item><title>Cosmology</title><link>https://codethrasher.com/posts/cosmology/</link><pubDate>Fri, 23 Oct 2020 09:54:46 -0700</pubDate><guid>https://codethrasher.com/posts/cosmology/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/the_inflationary_universe/"&gt;The Inflationary Universe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/standard_model/"&gt;Standard Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/cosmic_inflation/"&gt;Cosmic Inflation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/cosmological_constant/"&gt;Cosmological Constant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/cosmic_microwave_background/"&gt;Cosmic Microwave Background&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>The Inflationary Universe</title><link>https://codethrasher.com/posts/the_inflationary_universe/</link><pubDate>Fri, 23 Oct 2020 09:50:13 -0700</pubDate><guid>https://codethrasher.com/posts/the_inflationary_universe/</guid><description>&lt;p&gt;source &lt;a href="https://inspirehep.net/files/0ecbb01e927458f213e0e9362eeb16f9"&gt;The Inflationary Universe: A Possible Solution To The Horizon And Flatness Problems (Guth, 1980)&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="questions-i-still-have"&gt;Questions I still have&lt;/h2&gt;
&lt;h3 id="why-1-why-is-that-approximation-unstable"&gt;&lt;span class="org-todo done DONE"&gt;DONE&lt;/span&gt; WHY#1: why is that approximation unstable?&lt;/h3&gt;
&lt;p&gt;See &lt;a href="https://codethrasher.com/posts/flatness_problem/"&gt;Flatness Problem&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;The initial conditions defined in the &lt;a href="https://codethrasher.com/posts/standard_model/"&gt;Standard Model&lt;/a&gt; present two problems:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The early universe is defined to be &lt;a href="https://en.wikipedia.org/wiki/Homogeneity%5F(physics)"&gt;homogeneous&lt;/a&gt; despite the massive distances between regions (causal disconnect)&lt;/li&gt;
&lt;li&gt;The Hubble constant must be set very finely to produce a flat universe (like ours)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These problems could disappear if the universe (in its early stages) cooled to temperatures twenty-eight or more orders of magnitude below the critical temperature for &amp;ldquo;some phase transition&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Standard Model (Cosmology)</title><link>https://codethrasher.com/posts/standard_model/</link><pubDate>Thu, 22 Oct 2020 22:03:48 -0700</pubDate><guid>https://codethrasher.com/posts/standard_model/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This refers to the Cosmological &amp;ldquo;Standard Model&amp;rdquo;, i.e. the \(\Lambda\)CDM. This is &lt;em&gt;not&lt;/em&gt; the same as the Standard Model of Particle Physics&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="lambda-cdm"&gt;Lambda-CDM&lt;/h2&gt;
&lt;p&gt;The lambda-cdm or, lambda cold-dark-matter, is a three-parameter description of the Big Bang Cosmological model parametrized by:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;the &lt;a href="https://codethrasher.com/posts/cosmological_constant/"&gt;Cosmological Constant&lt;/a&gt; \(\Lambda\)&lt;/li&gt;
&lt;li&gt;dark matter&lt;/li&gt;
&lt;li&gt;normal matter&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Of the cosmological models, this presents the simplest one in terms of describing the universe as we see it observationally. Specifically, it succintly explains:&lt;/p&gt;</description></item><item><title>Cosmological Principle</title><link>https://codethrasher.com/posts/cosmological_principle/</link><pubDate>Thu, 22 Oct 2020 22:01:59 -0700</pubDate><guid>https://codethrasher.com/posts/cosmological_principle/</guid><description>&lt;p&gt;The Cosmological Principle states that at large enough scales (&amp;gt;100Mpc) the universe&amp;rsquo;s matter distribution is &lt;a href="https://codethrasher.com/posts/isotropy/"&gt;isotropic&lt;/a&gt; and &lt;a href="https://codethrasher.com/posts/homogeneous/"&gt;homogeneous&lt;/a&gt; and should not produce irregularities in the large-scale structure of the universe over the course of its evolution.&lt;/p&gt;</description></item><item><title>Cosmological Constant</title><link>https://codethrasher.com/posts/cosmological_constant/</link><pubDate>Thu, 22 Oct 2020 21:57:03 -0700</pubDate><guid>https://codethrasher.com/posts/cosmological_constant/</guid><description>&lt;p&gt;TODO&lt;/p&gt;</description></item><item><title>Cosmic Microwave Background</title><link>https://codethrasher.com/posts/cosmic_microwave_background/</link><pubDate>Thu, 22 Oct 2020 21:52:44 -0700</pubDate><guid>https://codethrasher.com/posts/cosmic_microwave_background/</guid><description>&lt;p&gt;TODO&lt;/p&gt;</description></item><item><title>The Structure and Interpretation of Computer Programs</title><link>https://codethrasher.com/posts/sicp/</link><pubDate>Thu, 22 Oct 2020 10:15:40 -0700</pubDate><guid>https://codethrasher.com/posts/sicp/</guid><description>&lt;div class="ox-hugo-toc toc"&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div class="heading"&gt;Table of Contents&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#chapter-1"&gt;Chapter 1&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#predicates-expressions"&gt;Predicates/Expressions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#functions-v-dot-procedures-or-imperative-v-dot-declarative"&gt;Functions v. Procedures &lt;em&gt;or&lt;/em&gt; Imperative v. Declarative&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;!--endtoc--&gt;
&lt;h2 id="chapter-1"&gt;Chapter 1&lt;/h2&gt;
&lt;h3 id="predicates-expressions"&gt;Predicates/Expressions&lt;/h3&gt;
&lt;p&gt;Taking the following Lisp code:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-lisp" data-lang="lisp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;defun&lt;/span&gt; &lt;span class="nf"&gt;abs&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;cond&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nf"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nf"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nf"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;-&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;which simply calculates the absolute value of a number, we see within the &lt;code&gt;cond&lt;/code&gt; (conditional) three &amp;ldquo;clauses&amp;rdquo;. These parenthesized pairs (clauses) are formed of &amp;ldquo;predicates&amp;rdquo; and &amp;ldquo;expressions&amp;rdquo;, respectively.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Predicate&lt;/strong&gt; an expression whose value is interpreted as either true or false.&lt;/p&gt;</description></item><item><title>Programming</title><link>https://codethrasher.com/posts/programming/</link><pubDate>Thu, 22 Oct 2020 10:11:19 -0700</pubDate><guid>https://codethrasher.com/posts/programming/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/sicp/"&gt;The Structure and Interpretation of Computer Programs (SICP)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Manifold</title><link>https://codethrasher.com/posts/manifold/</link><pubDate>Thu, 22 Oct 2020 10:07:50 -0700</pubDate><guid>https://codethrasher.com/posts/manifold/</guid><description>&lt;p&gt;A manifold is a &lt;a href="https://codethrasher.com/posts/topological_space/"&gt;topological space&lt;/a&gt; that &lt;em&gt;locally&lt;/em&gt; resembles Euclidean space near each point.&lt;/p&gt;
&lt;h2 id="as-defined-in-physics"&gt;As defined in Physics&lt;/h2&gt;
&lt;p&gt;An N-dimensional manifold of points is one for which N independent &lt;em&gt;real&lt;/em&gt; coordinates \((x^{1}, x^{2},&amp;hellip;,x^{N})\) are required to specify a point completely. These N coordinates are denoted collectively by \(x^{a}\), where it is understood that \(a\,=\,1,2,&amp;hellip;,N\).&lt;/p&gt;
&lt;p&gt;As an example, in \(\mathbb{R}^{2}\) we have a 2-dimensional manifold of points descrived by the real coordinates \((x^{1}, x^{2})\).&lt;/p&gt;</description></item><item><title>Symmetric Relation</title><link>https://codethrasher.com/posts/symmetric_relation/</link><pubDate>Thu, 22 Oct 2020 10:07:00 -0700</pubDate><guid>https://codethrasher.com/posts/symmetric_relation/</guid><description>&lt;p&gt;This definition is more clearly described sybollically:&lt;/p&gt;
&lt;p&gt;\begin{equation}
\forall a,b \in X(aRb\,\iff\,bRa)
\end{equation}&lt;/p&gt;
&lt;p&gt;Tao&amp;rsquo;s definition:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Given any two objects \(x\) and \(y\) of the same type, if \(x = y\), then \(y = x\).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://codethrasher.com/posts/transitive_relation/"&gt;Transitive Relation&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://codethrasher.com/posts/reflexive_relation/"&gt;Reflexive Relation&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Transitive Relation</title><link>https://codethrasher.com/posts/transitive_relation/</link><pubDate>Thu, 22 Oct 2020 10:06:11 -0700</pubDate><guid>https://codethrasher.com/posts/transitive_relation/</guid><description>&lt;p&gt;A relation \(R\) over a set \(X\) is &lt;em&gt;transitive&lt;/em&gt; if for all elements x, y, z in \(X\), whenever \(R\) relates \(x\) to \(y\) and \(y\) to \(z\), then \(R\) also relates \(x\) to \(z\).&lt;/p&gt;
&lt;p&gt;\begin{equation}
\forall x,y,z \in X,if\,xRy\,and\,yRz,\,then\,xRz
\end{equation}&lt;/p&gt;
&lt;p&gt;Tao&amp;rsquo;s definition:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Given any three objects x, y, and z of the same type, if \(x = y\) and \(y = z\), then \(x = z\).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://codethrasher.com/posts/symmetric_relation/"&gt;Symmetric Relation&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Reflexive Relation</title><link>https://codethrasher.com/posts/reflexive_relation/</link><pubDate>Thu, 22 Oct 2020 10:05:38 -0700</pubDate><guid>https://codethrasher.com/posts/reflexive_relation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A &lt;a href="https://codethrasher.com/posts/binary_relation/"&gt;binary relation&lt;/a&gt; \(R\) over a set \(X\) is &lt;em&gt;reflexive&lt;/em&gt; if it relates every \(x \in X\) to &lt;em&gt;itself&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;\begin{equation}
\forall x \in X \,|\, xRx
\end{equation}&lt;/p&gt;
&lt;p&gt;An example of a &lt;em&gt;reflexive relation&lt;/em&gt; is &amp;ldquo;is equal to&amp;rdquo; since any number within \(\mathbb{R}\) would be mapped back to itself.&lt;/p&gt;
&lt;p&gt;Tao&amp;rsquo;s definition:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Given any object x, we have \(x = x\).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://codethrasher.com/posts/symmetric_relation/"&gt;Symmetric Relation&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://codethrasher.com/posts/transitive_relation/"&gt;Transitive Relation&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Learning</title><link>https://codethrasher.com/posts/learning/</link><pubDate>Wed, 21 Oct 2020 22:31:25 -0700</pubDate><guid>https://codethrasher.com/posts/learning/</guid><description>&lt;h2 id="the-feynman-technique--the-feynman-technique-dot-md"&gt;&lt;a href="https://codethrasher.com/posts/the_feynman_technique/"&gt;The Feynman Technique&lt;/a&gt;&lt;/h2&gt;</description></item><item><title>Physics</title><link>https://codethrasher.com/posts/physics/</link><pubDate>Wed, 21 Oct 2020 22:31:13 -0700</pubDate><guid>https://codethrasher.com/posts/physics/</guid><description>&lt;h2 id="articles"&gt;Articles&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/black_holes_as_primordial_dark_matter/"&gt;Black Holes as Primordial Dark Matter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="papers"&gt;Papers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/the_inflationary_universe/"&gt;The Inflationary Universe&lt;/a&gt; (Guth, 1980)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="concepts"&gt;Concepts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/configuration_space/"&gt;Configuration Space&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/cosmic_inflation/"&gt;Cosmic Inflation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/equations_of_motion/"&gt;Equations of Motion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/galilean_transformations/"&gt;Galilean Transformation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/generalized_coordinates/"&gt;Generalized Coordinates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/homogeneous/"&gt;Homogeneous&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/inertial_frames/"&gt;Inertial Frames&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/isotropy/"&gt;Isotropy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/newtonian_spacetime/"&gt;Newtonian Spacetime&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/newtons_laws_of_motion/"&gt;Newtons Laws of Motion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/principle_of_relativity/"&gt;Principle of Relativity&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="problems"&gt;Problems&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/flatness_problem/"&gt;Flatness Problem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/olber_s_paradox/"&gt;Olber&amp;rsquo;s Paradox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/black_hole_information_paradox/"&gt;Black Hole Information Paradox&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Science</title><link>https://codethrasher.com/posts/science/</link><pubDate>Wed, 21 Oct 2020 22:31:06 -0700</pubDate><guid>https://codethrasher.com/posts/science/</guid><description>&lt;h2 id="branches"&gt;Branches&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/physics/"&gt;Physics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="articles"&gt;Articles&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/phosphine_life_and_venus/"&gt;Phosphine, Life, and Venus&lt;/a&gt; (&lt;a href="https://codethrasher.com/posts/biology/"&gt;Biology&lt;/a&gt;, &lt;a href="https://codethrasher.com/posts/chemistry/"&gt;Chemistry&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/black_holes_as_primordial_dark_matter/"&gt;Black Holes as Primordial Dark Matter&lt;/a&gt; (&lt;a href="https://codethrasher.com/posts/physics/"&gt;Physics&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="papers"&gt;Papers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/the_inflationary_universe/"&gt;The Inflationary Universe: Guth, 1980&lt;/a&gt; (&lt;a href="https://codethrasher.com/posts/physics/"&gt;Physics&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="concepts"&gt;Concepts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/oxidation/"&gt;Chemical Oxidation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/abiotic_process/"&gt;Abiotic Processes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/cosmic_inflation/"&gt;Cosmic Inflation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/newtons_laws_of_motion/"&gt;Newtons Laws of Motion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Set Theory</title><link>https://codethrasher.com/posts/set_theory/</link><pubDate>Wed, 21 Oct 2020 22:31:03 -0700</pubDate><guid>https://codethrasher.com/posts/set_theory/</guid><description>&lt;h2 id="concepts"&gt;Concepts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/relations_sets/"&gt;Relations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/cardinality/"&gt;Cardinality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/binary_relation/"&gt;Binary Relation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/symmetric_relation/"&gt;Symmetric Relation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/transitive_relation/"&gt;Transitive Relation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/cartesian_product/"&gt;Cartesian Product&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/reflexive_relation/"&gt;Reflexive Relation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/surjective_function/"&gt;Surjective Function&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Teaching</title><link>https://codethrasher.com/posts/teaching/</link><pubDate>Wed, 21 Oct 2020 22:30:58 -0700</pubDate><guid>https://codethrasher.com/posts/teaching/</guid><description>&lt;h2 id="the-feynman-technique--the-feynman-technique-dot-md"&gt;&lt;a href="https://codethrasher.com/posts/the_feynman_technique/"&gt;The Feynman Technique&lt;/a&gt;&lt;/h2&gt;</description></item><item><title>Math</title><link>https://codethrasher.com/posts/math/</link><pubDate>Wed, 21 Oct 2020 22:28:30 -0700</pubDate><guid>https://codethrasher.com/posts/math/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/real_analysis/"&gt;Real Analysis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/differential_geometry/"&gt;Differential Geometry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/linear_algebra/"&gt;Linear Algebra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/topology/"&gt;Topology&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/set_theory/"&gt;Set Theory&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="general-concepts"&gt;General Concepts&lt;/h2&gt;
&lt;h3 id="bijective-function--bijective-function-dot-md"&gt;&lt;a href="https://codethrasher.com/posts/bijective_function/"&gt;Bijective Function&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="injective-function--injective-function-dot-md"&gt;&lt;a href="https://codethrasher.com/posts/injective_function/"&gt;Injective Function&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="surjective-function--surjective-function-dot-md"&gt;&lt;a href="https://codethrasher.com/posts/surjective_function/"&gt;Surjective Function&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="transitive-relation--transitive-relation-dot-md"&gt;&lt;a href="https://codethrasher.com/posts/transitive_relation/"&gt;Transitive Relation&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="symmetric-relation--symmetric-relation-dot-md"&gt;&lt;a href="https://codethrasher.com/posts/symmetric_relation/"&gt;Symmetric Relation&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="locality--locality-dot-md"&gt;&lt;a href="https://codethrasher.com/posts/locality/"&gt;Locality&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="peano-axioms--peano-axioms-dot-md"&gt;&lt;a href="https://codethrasher.com/posts/peano_axioms/"&gt;Peano Axioms&lt;/a&gt;&lt;/h3&gt;</description></item><item><title>Chemistry</title><link>https://codethrasher.com/posts/chemistry/</link><pubDate>Wed, 21 Oct 2020 22:28:09 -0700</pubDate><guid>https://codethrasher.com/posts/chemistry/</guid><description>&lt;h2 id="articles"&gt;Articles&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/phosphine_life_and_venus/"&gt;Phosphine, Life, and Venus&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Biology</title><link>https://codethrasher.com/posts/biology/</link><pubDate>Wed, 21 Oct 2020 22:27:58 -0700</pubDate><guid>https://codethrasher.com/posts/biology/</guid><description>&lt;h2 id="articles"&gt;Articles&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/phosphine_life_and_venus/"&gt;Phosphine, Life, and Venus&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Triangle Inequality</title><link>https://codethrasher.com/posts/triangle_inequality/</link><pubDate>Wed, 21 Oct 2020 21:30:28 -0700</pubDate><guid>https://codethrasher.com/posts/triangle_inequality/</guid><description>&lt;blockquote&gt;
&lt;p&gt;For any triangle, the sum of the lengths of any two sides must be greater than or equal to the length of the remaining side.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;\(z \leq x + y\)&lt;/p&gt;</description></item><item><title>Topology</title><link>https://codethrasher.com/posts/topology/</link><pubDate>Wed, 21 Oct 2020 21:30:22 -0700</pubDate><guid>https://codethrasher.com/posts/topology/</guid><description>&lt;h2 id="concepts"&gt;Concepts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/metric_space/"&gt;Metric Space&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/open_balls/"&gt;Open Balls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/neighborhood/"&gt;Neighborhood&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/manifold/"&gt;Manifold&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/topological_space/"&gt;Topological Space&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Topological Space</title><link>https://codethrasher.com/posts/topological_space/</link><pubDate>Wed, 21 Oct 2020 21:30:19 -0700</pubDate><guid>https://codethrasher.com/posts/topological_space/</guid><description>&lt;p&gt;An ordered pair \((X, \tau)\), where \(X\) is a set and \(\tau\) is a collection of subsets of \(X\) satisfying:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The empty set (\(\emptyset\)) &lt;strong&gt;and&lt;/strong&gt; \(X\) belong to \(\tau\)&lt;/li&gt;
&lt;li&gt;Any arbitrary (in)finite union of members of \(\tau\) still belongs to \(\tau\)&lt;/li&gt;
&lt;li&gt;The intersection of any &lt;em&gt;finite&lt;/em&gt; number of members of \(\tau\) still belongs to \(\tau\)&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Surjective Function</title><link>https://codethrasher.com/posts/surjective_function/</link><pubDate>Wed, 21 Oct 2020 21:30:06 -0700</pubDate><guid>https://codethrasher.com/posts/surjective_function/</guid><description>&lt;p&gt;A function is surjective or &amp;ldquo;onto&amp;rdquo; if&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For &lt;strong&gt;every&lt;/strong&gt; \(y \in Y\), there exists \(x \in X\) such that \(f(x) = y\).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure&gt;&lt;img src="https://codethrasher.com/ox-hugo/surjective.png"&gt;
&lt;/figure&gt;</description></item><item><title>Statistics</title><link>https://codethrasher.com/posts/statistics/</link><pubDate>Wed, 21 Oct 2020 21:30:04 -0700</pubDate><guid>https://codethrasher.com/posts/statistics/</guid><description>&lt;h2 id="concepts"&gt;Concepts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/null_hypothesis/"&gt;Null Hypothesis&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Shape of the Universe</title><link>https://codethrasher.com/posts/shape_of_the_universe/</link><pubDate>Wed, 21 Oct 2020 21:29:57 -0700</pubDate><guid>https://codethrasher.com/posts/shape_of_the_universe/</guid><description>&lt;h2 id="open-closed-flat"&gt;Open/Closed/Flat&lt;/h2&gt;
&lt;h3 id="todo"&gt;TODO&lt;/h3&gt;</description></item><item><title>Relations (Sets)</title><link>https://codethrasher.com/posts/relations_sets/</link><pubDate>Wed, 21 Oct 2020 21:29:49 -0700</pubDate><guid>https://codethrasher.com/posts/relations_sets/</guid><description>&lt;h2 id="definition"&gt;Definition&lt;/h2&gt;
&lt;p&gt;A &lt;em&gt;relation&lt;/em&gt; \(R\) from the elements of set \(A\) to the elements of set \(B\) &lt;strong&gt;is a subset&lt;/strong&gt; of \(A \times B\).&lt;/p&gt;
&lt;p&gt;&amp;hellip;alternatively&amp;hellip;&lt;/p&gt;
&lt;p&gt;Let \(A\) and \(B\) be two non-empty sets, then every subset of \(A \times B\) &lt;strong&gt;defines&lt;/strong&gt; a relation from \(A\) to \(B\) and ever relation from \(A\) to \(B\) is a subset of \(A \times B\).&lt;/p&gt;
&lt;p&gt;Let \(R \subseteq A \times B\) and \((a, b) \in R\). Then we say that \(a\) is related to \(b\) by the relation \(R\) and write it as \(a R b\). If \((a, b) \in R\), we write it as \(a R b\)&lt;/p&gt;</description></item><item><title>Real Analysis</title><link>https://codethrasher.com/posts/real_analysis/</link><pubDate>Wed, 21 Oct 2020 21:29:45 -0700</pubDate><guid>https://codethrasher.com/posts/real_analysis/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The theoretical foundation which underlies calculus&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/peano_axioms/"&gt;Peano Axioms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/surjective_function/"&gt;Surjective Function&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/bijective_function/"&gt;Bijective Function&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/injective_function/"&gt;Injective Function&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/cartesian_product/"&gt;Cartesian Product&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Principle of Relativity</title><link>https://codethrasher.com/posts/principle_of_relativity/</link><pubDate>Wed, 21 Oct 2020 21:29:37 -0700</pubDate><guid>https://codethrasher.com/posts/principle_of_relativity/</guid><description>&lt;p&gt;The Principle of Relativity states that:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The laws of physics take the same form in every &lt;a href="https://codethrasher.com/posts/inertial_frames/"&gt;intertial frame&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No exception has been found to this principle, and it holds equally well in both &lt;a href="https://codethrasher.com/posts/newtons_laws_of_motion/"&gt;Newtonian theory&lt;/a&gt; and Special Relativity.&lt;/p&gt;</description></item><item><title>Phosphine, Life, and Venus</title><link>https://codethrasher.com/posts/phosphine_life_and_venus/</link><pubDate>Wed, 21 Oct 2020 21:29:29 -0700</pubDate><guid>https://codethrasher.com/posts/phosphine_life_and_venus/</guid><description>&lt;p&gt;Source: &lt;a href="https://blogs.sciencemag.org/pipeline/archives/2020/09/15/phosphine-life-and-venus"&gt;Phosphine, Life, and Venus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Regarding the released report that Venus was found to &amp;ldquo;possibly harbor life&amp;rdquo; (&lt;a href="https://www.nature.com/articles/s41550-020-1174-4"&gt;see this Nature article&lt;/a&gt;)&lt;/p&gt;
&lt;h2 id="what-s-phosphine"&gt;What&amp;rsquo;s Phosphine?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A chemical compound found in small amounts in Earth&amp;rsquo;s atmosphere&lt;/li&gt;
&lt;li&gt;Used in: electronics fabrication, rodenticide&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On Earth it&amp;rsquo;s primarily found in its oxidized form, generally thought to be the result of lightning strikes, where the required amount of electrons would be present. But, it&amp;rsquo;s also been noticed in anaerobic environments (low/no oxygen). Some studies have suggested that glucose&amp;rsquo;s presence is very effective at increasing its (phosphine&amp;rsquo;s) production.&lt;/p&gt;</description></item><item><title>Peano Axioms</title><link>https://codethrasher.com/posts/peano_axioms/</link><pubDate>Wed, 21 Oct 2020 21:29:27 -0700</pubDate><guid>https://codethrasher.com/posts/peano_axioms/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A &lt;em&gt;natural number&lt;/em&gt; is any element of the set \(\mathbb{N} = \{0, 1, 2, 3&amp;hellip;\}\)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="i"&gt;I&lt;/h2&gt;
&lt;p&gt;0 is a natural number.&lt;/p&gt;
&lt;h2 id="ii"&gt;II&lt;/h2&gt;
&lt;p&gt;If \(n\) is a natural number, then n++ is also a natural number.&lt;/p&gt;
&lt;h2 id="iii"&gt;III&lt;/h2&gt;
&lt;p&gt;0 is not the successor of any natural number; i.e., we have n++ \(\ne\) 0 for every natural number n.&lt;/p&gt;
&lt;h2 id="iv"&gt;IV&lt;/h2&gt;
&lt;p&gt;Different natural numbers must have different successors; i.e., if \(n\) and \(m\) are natural numbers and \(n \ne m\), then n++ \(\ne\) m++. Equivalently, if n++ = m++, then we must have n = m.&lt;/p&gt;</description></item><item><title>Oxidation</title><link>https://codethrasher.com/posts/oxidation/</link><pubDate>Wed, 21 Oct 2020 21:29:23 -0700</pubDate><guid>https://codethrasher.com/posts/oxidation/</guid><description>&lt;p&gt;A type of chemical reaction in which electrons are &lt;em&gt;lost&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Open Balls</title><link>https://codethrasher.com/posts/open_balls/</link><pubDate>Wed, 21 Oct 2020 21:29:21 -0700</pubDate><guid>https://codethrasher.com/posts/open_balls/</guid><description>&lt;p&gt;Let \((X, d)\) be a &lt;a href="https://codethrasher.com/posts/metric_space/"&gt;metric space&lt;/a&gt;. Let \(a \in X\) and \(\delta &amp;gt; 0\). The subset of \(X\) consisting of those points \(x \in X\) such that \(d(a, x) &amp;lt; \delta\) is the called the &lt;em&gt;open ball&lt;/em&gt; of radius \(\delta\) and denoted:&lt;/p&gt;
&lt;p&gt;\begin{equation}
B(a;\delta)
\end{equation}&lt;/p&gt;</description></item><item><title>Olber's Paradox</title><link>https://codethrasher.com/posts/olber_s_paradox/</link><pubDate>Wed, 21 Oct 2020 21:29:18 -0700</pubDate><guid>https://codethrasher.com/posts/olber_s_paradox/</guid><description>&lt;h2 id="the-problem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;People used to believe that the Universe was infinite (in age and size) and static. If this were true&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why is the night sky not as bright as day?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That is to say, if the universe is infinite as are the stars, and the universe is not undergoing any sort of evolution, we should expect every point of the night sky to be filled with the light from any one of its inifnite stars. But we don&amp;rsquo;t observe this. Why not?&lt;/p&gt;</description></item><item><title>Null Hypothesis</title><link>https://codethrasher.com/posts/null_hypothesis/</link><pubDate>Wed, 21 Oct 2020 21:29:12 -0700</pubDate><guid>https://codethrasher.com/posts/null_hypothesis/</guid><description>&lt;p&gt;Denoted &lt;code&gt;H_0&lt;/code&gt; (subscript 0)&lt;/p&gt;
&lt;p&gt;The position that there is &lt;em&gt;no&lt;/em&gt; relationship among two measured phenomenon or among groups. The central task of science is to prove that a relationship may exist between entities, implying that the null hypothesis &lt;em&gt;is false&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Thus, centrally, science attempts to disprove the null hypothesis for a given field of questioning. This hypothesis is the default stance when approaching a statistical/scientific problem; i.e. the null hypothesis &lt;em&gt;begins&lt;/em&gt; as true and it is up to the investigator to prove otherwise.&lt;/p&gt;</description></item><item><title>Newtons Laws of Motion</title><link>https://codethrasher.com/posts/newtons_laws_of_motion/</link><pubDate>Wed, 21 Oct 2020 21:29:07 -0700</pubDate><guid>https://codethrasher.com/posts/newtons_laws_of_motion/</guid><description>&lt;h2 id="i"&gt;I&lt;/h2&gt;
&lt;p&gt;In an &lt;em&gt;intertial frame of reference&lt;/em&gt; (i.e. a frame of reference undergoing zero acceleration), an object at rest stays at rest (or, similarly, keeps its initial velocity) unless acted upon by an outside force.&lt;/p&gt;
&lt;p&gt;\begin{equation}
\sum \mathbf{F} = 0 \Leftrightarrow \frac{d\mathbf{v}}{dt} = 0
\end{equation}&lt;/p&gt;
&lt;h2 id="ii"&gt;II&lt;/h2&gt;
&lt;p&gt;In the simplest of terms:&lt;/p&gt;
&lt;p&gt;\begin{equation}
\mathbf{F} = m\mathbf{a}
\end{equation}&lt;/p&gt;
&lt;p&gt;which states that&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The &lt;em&gt;vector sum&lt;/em&gt; of the forces on an object is equal to that objects mass times the acceleration&lt;/p&gt;</description></item><item><title>Newtonian Spacetime</title><link>https://codethrasher.com/posts/newtonian_spacetime/</link><pubDate>Wed, 21 Oct 2020 21:28:57 -0700</pubDate><guid>https://codethrasher.com/posts/newtonian_spacetime/</guid><description>&lt;figure&gt;&lt;img src="https://codethrasher.com/ox-hugo/inertial-frames.jpeg"&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;a href="https://codethrasher.com/posts/newtonian_spacetime/"&gt;Newtonian Spacetime&lt;/a&gt; differs from Relativistic spacetime in that time is considered an absolute (i.e. \(t^{\prime} = t\)). Transformations between reference frames can be achieved with &lt;a href="https://codethrasher.com/posts/galilean_transformations/"&gt;Galilean transformations&lt;/a&gt;. A particle traveling along the &lt;code&gt;x axis&lt;/code&gt; in \(S\) at a constant speed &lt;code&gt;u&lt;/code&gt;, has a speed \(u^{\prime}\) found by:&lt;/p&gt;
&lt;p&gt;\begin{equation}
u^{\prime}_{x} = \frac{dx^{\prime}}{dt^{\prime}} = \frac{dx^{\prime}}{dt} = \frac{dx}{dt} - v = u_{x} - v\tag{1}
\end{equation}&lt;/p&gt;
&lt;p&gt;remembering that the first derivative of position is velocity, and the second derivative of motion is acceleration&lt;/p&gt;</description></item><item><title>Neighborhood</title><link>https://codethrasher.com/posts/neighborhood/</link><pubDate>Wed, 21 Oct 2020 21:28:54 -0700</pubDate><guid>https://codethrasher.com/posts/neighborhood/</guid><description>&lt;p&gt;The set of points surrounding a point \(p\) in a set \(V\), such that \(p \in \mathbb{R}^{n}\), within a radius \(\epsilon &amp;gt; 0\)&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://codethrasher.com/ox-hugo/neighborhood.png"&gt;
&lt;/figure&gt;

&lt;p&gt;See also:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/open_balls/"&gt;Open Balls&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Metric Space</title><link>https://codethrasher.com/posts/metric_space/</link><pubDate>Wed, 21 Oct 2020 21:28:52 -0700</pubDate><guid>https://codethrasher.com/posts/metric_space/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A set and a function which defines the distance between two points on that set&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;An ordered pair \((X, d)\), where \(X\) is an arbitrary set and \(d\) is a metric (distance-defining function).&lt;/p&gt;
&lt;p&gt;The metric defines the following properties:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;\(d(a, b) = 0\) iff \(a = b\)&lt;/li&gt;
&lt;li&gt;\(d(a, b) &amp;gt; 0\) (if \(a \neq b\))&lt;/li&gt;
&lt;li&gt;\(d(a, b) = d(b, a)\)&lt;/li&gt;
&lt;li&gt;\(d(a, c) \leq d(a, b) + d(b, c)\)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(Note: #4 is a restatement of the &lt;a href="https://codethrasher.com/posts/triangle_inequality/"&gt;Triangle Inequality&lt;/a&gt;)&lt;/p&gt;</description></item><item><title>Mechanics</title><link>https://codethrasher.com/posts/mechanics/</link><pubDate>Wed, 21 Oct 2020 21:28:50 -0700</pubDate><guid>https://codethrasher.com/posts/mechanics/</guid><description/></item><item><title>Locality (Math)</title><link>https://codethrasher.com/posts/locality/</link><pubDate>Wed, 21 Oct 2020 21:28:43 -0700</pubDate><guid>https://codethrasher.com/posts/locality/</guid><description>&lt;p&gt;Locality refers to:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A property \(P\), of a point \(x\), which holds true near every point around \(x\).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As an example:&lt;/p&gt;
&lt;p&gt;A sphere (and, more generally, a &lt;a href="https://codethrasher.com/posts/manifold/"&gt;manifold&lt;/a&gt;) is &lt;em&gt;locally&lt;/em&gt; Euclidean. For every point on the sphere there is a &lt;a href="https://codethrasher.com/posts/neighborhood/"&gt;neighborhood&lt;/a&gt; which is identical to Euclidean space.&lt;/p&gt;</description></item><item><title>Isotropy (Physics)</title><link>https://codethrasher.com/posts/isotropy/</link><pubDate>Wed, 21 Oct 2020 21:28:24 -0700</pubDate><guid>https://codethrasher.com/posts/isotropy/</guid><description>&lt;p&gt;Isotropy means that direction is not preferred, and that there is uniformity in any orientation.&lt;/p&gt;
&lt;p&gt;Specifically, in Astrophysics and Cosmology, it means that there is no preferred direction in space. It looks the same no matter the direction you study (look).&lt;/p&gt;
&lt;p&gt;Isotropy in space is only true at large scales (&amp;gt;100Mpc), the converse is true at smaller scales (anisotropy)&lt;/p&gt;</description></item><item><title>Injective Function</title><link>https://codethrasher.com/posts/injective_function/</link><pubDate>Wed, 21 Oct 2020 21:28:21 -0700</pubDate><guid>https://codethrasher.com/posts/injective_function/</guid><description>&lt;p&gt;A function is injective (&amp;ldquo;one-to-one&amp;rdquo;) if&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;\(x \neq x^{\prime} \Longrightarrow f(x) \neq f(x^{\prime})\)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;i.e. Given a set \(X\) and a set \(Y\), no two elements (say, \(x\) and \(x^{\prime}\)) from \(X\) map to the same element in \(Y\).&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://codethrasher.com/ox-hugo/injective.png"&gt;
&lt;/figure&gt;

&lt;p&gt;(Note: a function can be &lt;em&gt;both&lt;/em&gt; injective and &lt;a href="https://codethrasher.com/posts/surjective_function/"&gt;surjective&lt;/a&gt;, this image is injective only)&lt;/p&gt;</description></item><item><title>Inertial Frames</title><link>https://codethrasher.com/posts/inertial_frames/</link><pubDate>Wed, 21 Oct 2020 21:28:18 -0700</pubDate><guid>https://codethrasher.com/posts/inertial_frames/</guid><description>&lt;figure&gt;&lt;img src="https://codethrasher.com/ox-hugo/inertial-frames.jpeg"&gt;
&lt;/figure&gt;

&lt;p&gt;Above are two frames in Cartesian coordinates, \(S\) and \(S^{\prime}\). We have coordinates \((x, y, z)\), which define our dimensions.&lt;/p&gt;
&lt;h2 id="inertial-frame"&gt;Inertial Frame&lt;/h2&gt;
&lt;p&gt;An inertial frame is a frame of reference for which acceleration is zero. In other words:&lt;/p&gt;
&lt;p&gt;\begin{equation}
\frac{d^{2}x}{dt^{2}} = \frac{d^{2}y}{dt^{2}} = \frac{d^{2}z}{dt^{2}} = 0
\end{equation}&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In the absence of gravity&lt;/strong&gt; if \(S\) and \(S^{\prime}\) are two inertial frames they can only differ from each other by (and/or):&lt;/p&gt;</description></item><item><title>Homogeneous (Physics)</title><link>https://codethrasher.com/posts/homogeneous/</link><pubDate>Wed, 21 Oct 2020 21:28:15 -0700</pubDate><guid>https://codethrasher.com/posts/homogeneous/</guid><description>&lt;p&gt;Homogeneous means that location is not preferred, that the physics are the same at any point.&lt;/p&gt;
&lt;p&gt;Specifically, in Astrophysics and Cosmology, it means that there is no preferred direction in space, it behaves the same no matter where you (as an observer) stand.&lt;/p&gt;
&lt;p&gt;This is subtly different from &lt;a href="https://codethrasher.com/posts/isotropy/"&gt;isotropy&lt;/a&gt;, which is only concerned with the physical characteristics of the object (universe) rather than the object&amp;rsquo;s behavior (wrt physical law).&lt;/p&gt;</description></item><item><title>Generalized Coordinates</title><link>https://codethrasher.com/posts/generalized_coordinates/</link><pubDate>Wed, 21 Oct 2020 21:28:12 -0700</pubDate><guid>https://codethrasher.com/posts/generalized_coordinates/</guid><description>&lt;p&gt;Generalized coordinates are useful when calculating Lagrangians or Hamiltonians.&lt;/p&gt;
&lt;p&gt;The term itself, refers to the parameters that describe the configuration of a system.&lt;/p&gt;
&lt;p&gt;For instance, to describe the position of a point on a circle, one could use its rectangular (Cartesian) coordinates, spherical coordinates, or cylindrical coordinates. Buth with &lt;em&gt;generalized coordinates&lt;/em&gt; a reference doesn&amp;rsquo;t need to be made to the specific coordinate system, rather it could be abstracted into something more general as coordinates \((q_{1}, q_{2},&amp;hellip;q_{n})\). Describing the position of a point particle in Euclidean space could be described in terms of its Cartesian coordinates, and translating that to generalized coordinates would also require 3 constituents, i.e. \((q_{1}, q_{2}, q_{3})\).&lt;/p&gt;</description></item><item><title>General Relativity</title><link>https://codethrasher.com/posts/general_relativity/</link><pubDate>Wed, 21 Oct 2020 21:28:09 -0700</pubDate><guid>https://codethrasher.com/posts/general_relativity/</guid><description>&lt;h2 id="concepts"&gt;Concepts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/inertial_frames/"&gt;Inertial Frames&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/newtons_laws_of_motion/"&gt;Newtons Laws of Motion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Galilean Transformations</title><link>https://codethrasher.com/posts/galilean_transformations/</link><pubDate>Wed, 21 Oct 2020 21:28:07 -0700</pubDate><guid>https://codethrasher.com/posts/galilean_transformations/</guid><description>&lt;figure&gt;&lt;img src="https://codethrasher.com/ox-hugo/inertial-frames.jpeg"&gt;
&lt;/figure&gt;

&lt;p&gt;In &lt;a href="https://codethrasher.com/posts/newtons_laws_of_motion/"&gt;Newton&amp;rsquo;s formulation&lt;/a&gt; of spacetime, time is an absolute; meaning that every observer experiences the same flow of time. Assuming an &lt;a href="https://codethrasher.com/posts/inertial_frames/"&gt;inertial frame&lt;/a&gt; with only translation across the &lt;code&gt;x&lt;/code&gt; axis, an event \(P\), can be translated between \(S\) and \(S^{\prime}\) by the following linear transformations:&lt;/p&gt;
&lt;p&gt;\begin{equation}
t^{\prime} = t\tag{1}
\end{equation}&lt;/p&gt;
&lt;p&gt;\begin{equation}
x^{\prime} = x - vt\tag{2}
\end{equation}&lt;/p&gt;
&lt;p&gt;\begin{equation}
y^{\prime} = y\tag{3}
\end{equation}&lt;/p&gt;
&lt;p&gt;\begin{equation}
z^{\prime} = z\tag{4}
\end{equation}&lt;/p&gt;
&lt;p&gt;Switching between coordinates (\(S\) v. \(S^{\prime}\)) requires only switching the sign on \(v\).&lt;/p&gt;</description></item><item><title>Flatness Problem</title><link>https://codethrasher.com/posts/flatness_problem/</link><pubDate>Wed, 21 Oct 2020 21:28:05 -0700</pubDate><guid>https://codethrasher.com/posts/flatness_problem/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;In the Big Bang model there are multiple parameters which appear to be &amp;ldquo;fine tuned&amp;rdquo; in that, small changes to a given parameter have massive effects on the evolution of the universe as a whole.&lt;/p&gt;
&lt;p&gt;Wrt the flatness problem itself, the questionable parameter is the Density Parameter (\(\Omega\)), which is defined as&lt;/p&gt;
&lt;p&gt;\begin{equation}
\Omega \equiv \frac{\rho}{\rho_{c}}\tag{1}
\end{equation}&lt;/p&gt;
&lt;p&gt;where the subscript \(c\) is in reference to the &amp;ldquo;critical value&amp;rdquo; of density (\(\rho\)). Which, today, is measured to be&amp;ndash;roughly&amp;ndash;five atoms of Hyrodgen per cubic meter. \(\rho_{c}\) is defined:&lt;/p&gt;</description></item><item><title>Equations of Motion</title><link>https://codethrasher.com/posts/equations_of_motion/</link><pubDate>Wed, 21 Oct 2020 21:28:03 -0700</pubDate><guid>https://codethrasher.com/posts/equations_of_motion/</guid><description>&lt;h2 id="linear-motion"&gt;Linear Motion&lt;/h2&gt;
&lt;p&gt;(under constant \(\hat{\mathbf{a}}\))&lt;/p&gt;
&lt;p&gt;\begin{equation}
\mathbf{v} = \mathbf{a}t + \mathbf{v_{0}}\tag{1}
\end{equation}&lt;/p&gt;
&lt;p&gt;\begin{equation}
\mathbf{r} = \mathbf{r_{0}} + \mathbf{v_{0}}t + \frac{1}{2}\mathbf{a}t^{2}\tag{2}
\end{equation}&lt;/p&gt;
&lt;p&gt;\begin{equation}
\mathbf{r} = \mathbf{r_{0}} + \frac{1}{2}(\mathbf{v} + \mathbf{v_0})t\tag{3}
\end{equation}&lt;/p&gt;
&lt;p&gt;\begin{equation}
\mathbf{v^{2}} = \mathbf{v^{2}_0} + 2\mathbf{a}(\mathbf{r} - \mathbf{r_{0}})\tag{4}
\end{equation}&lt;/p&gt;
&lt;p&gt;\begin{equation}
\mathbf{r} = \mathbf{r_{0}} + \mathbf{v}t - \frac{1}{2}\mathbf{a}t^{2}\tag{5}
\end{equation}&lt;/p&gt;
&lt;p&gt;where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;\(\mathbf{r_{0}}\) is the initial position&lt;/li&gt;
&lt;li&gt;\(\mathbf{r}\) is the final position&lt;/li&gt;
&lt;li&gt;\(\mathbf{v_{0}}\) is the initial velocity&lt;/li&gt;
&lt;li&gt;\(\mathbf{v}\) is the final velocity&lt;/li&gt;
&lt;li&gt;\(\mathbf{a}\) is the acceleration&lt;/li&gt;
&lt;li&gt;\(t\) is the time interval&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Emacs Notes</title><link>https://codethrasher.com/posts/emacs/</link><pubDate>Wed, 21 Oct 2020 21:28:00 -0700</pubDate><guid>https://codethrasher.com/posts/emacs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Emacs notes (doom emacs)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="org"&gt;Org&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;handy cheatsheet: &lt;a href="https://orgmode.org/orgcard.pdf"&gt;https://orgmode.org/orgcard.pdf&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;To get a TODO item created on the same level as the one in which
you&amp;rsquo;re working (&lt;code&gt;org-insert-todo-heading&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add tag&lt;/strong&gt;: To add a tag to a heading (* line) &lt;code&gt;SPC m q&lt;/code&gt; (or &lt;code&gt;C-c C-q&lt;/code&gt;)
then type the tag name, should appear in gray&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tag search&lt;/strong&gt;: To search all the tags: &lt;code&gt;SPC o a m&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Schedule/Deadline&lt;/strong&gt;: To set something as scheduled in org-agenda (so it
shows up when you &lt;code&gt;SPC o A n&lt;/code&gt;) &lt;code&gt;SPC m d s&lt;/code&gt;, similarly for setting a
deadline for something &lt;code&gt;SPC m d d&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Degenerate Coordinate Systems</title><link>https://codethrasher.com/posts/degenerate_coordinate_systems/</link><pubDate>Wed, 21 Oct 2020 21:27:55 -0700</pubDate><guid>https://codethrasher.com/posts/degenerate_coordinate_systems/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Any coordinate system which cannot describe an entirety of a space&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As an example, &lt;em&gt;polar coordinates&lt;/em&gt; \(r,\psi)\) are degenerate at \((0, \psi)\)&lt;/p&gt;</description></item><item><title>Curvature</title><link>https://codethrasher.com/posts/curvature/</link><pubDate>Wed, 21 Oct 2020 21:27:53 -0700</pubDate><guid>https://codethrasher.com/posts/curvature/</guid><description>&lt;h2 id="todo"&gt;TODO&lt;/h2&gt;</description></item><item><title>Cosmic Inflation</title><link>https://codethrasher.com/posts/cosmic_inflation/</link><pubDate>Wed, 21 Oct 2020 21:27:51 -0700</pubDate><guid>https://codethrasher.com/posts/cosmic_inflation/</guid><description>&lt;h2 id="inflation"&gt;Inflation&lt;/h2&gt;
&lt;p&gt;Inflation (Cosmic) is a theory put forth (originally, by &lt;a href="http://web.mit.edu/physics/people/faculty/guth%5Falan.html"&gt;Alan Guth&lt;/a&gt; in his &lt;a href="https://inspirehep.net/files/0ecbb01e927458f213e0e9362eeb16f9"&gt;1980 paper&lt;/a&gt;) to explain why, if the universe is full of mass, is it not curved in some way? Instead, it&amp;rsquo;s flat (see: &lt;a href="https://codethrasher.com/posts/curvature/"&gt;Curvature&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;This isotropy in its temperature/geometry seems to contradict Thermodynamics in that we &lt;em&gt;should&lt;/em&gt; see varying pockets of temperature around us since it would take time for the heat to dissipate throughout the universe.&lt;/p&gt;
&lt;p&gt;The theory of Cosmic Inflation gets around this issue by stating that the baby universe expanded faster than light, which prevented anisotropy.&lt;/p&gt;</description></item><item><title>Configuration Space</title><link>https://codethrasher.com/posts/configuration_space/</link><pubDate>Wed, 21 Oct 2020 21:27:48 -0700</pubDate><guid>https://codethrasher.com/posts/configuration_space/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The vector space defined by &lt;a href="https://codethrasher.com/posts/generalized_coordinates/"&gt;generalized coordinates&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;p&gt;The position of a particle in Euclidean 3-space is defined by the generalized coordinate \(q = (x, y, z)\), therefore its &lt;em&gt;configuration space&lt;/em&gt; is \(Q = \mathbb{R}^{3}\)&lt;/p&gt;</description></item><item><title>Cartesian Product</title><link>https://codethrasher.com/posts/cartesian_product/</link><pubDate>Wed, 21 Oct 2020 21:27:43 -0700</pubDate><guid>https://codethrasher.com/posts/cartesian_product/</guid><description>&lt;p&gt;If \(X\) and \(Y\) are sets, then we define the &lt;em&gt;Cartesian Product&lt;/em&gt; \(X \times Y\) to be the collection of ordered pairs, e.g. \((x, y)\), whose first component lies in \(X\) and whose second component lies in \(Y\)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;\(X \times Y = \{(x, y) | x \in X, y \in Y\}\)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;An example would be \(\mathbb{R} \times \mathbb{R} = \mathbb{R}^{2}\) (i.e. the cartesian plane). \(\mathbb{R}^{2}\) &lt;em&gt;is&lt;/em&gt; the cartesian product of &amp;ldquo;crossing&amp;rdquo; \(\mathbb{R}\) with itself.&lt;/p&gt;</description></item><item><title>Cardinality</title><link>https://codethrasher.com/posts/cardinality/</link><pubDate>Wed, 21 Oct 2020 21:27:40 -0700</pubDate><guid>https://codethrasher.com/posts/cardinality/</guid><description>&lt;h2 id="equality-in-cardinality"&gt;Equality in Cardinality&lt;/h2&gt;
&lt;p&gt;Two sets \(X\) and \(Y\) are equal &lt;em&gt;iff&lt;/em&gt; there exists a &lt;a href="https://codethrasher.com/posts/bijective_function/"&gt;bijection&lt;/a&gt; \(f : X \longrightarrow Y\) from \(X\) to \(Y\).&lt;/p&gt;</description></item><item><title>Black Holes as Primordial Dark Matter</title><link>https://codethrasher.com/posts/black_holes_as_primordial_dark_matter/</link><pubDate>Wed, 21 Oct 2020 21:27:37 -0700</pubDate><guid>https://codethrasher.com/posts/black_holes_as_primordial_dark_matter/</guid><description>&lt;p&gt;source: &lt;a href="https://www.quantamagazine.org/black-holes-from-the-big-bang-could-be-the-dark-matter-20200923/"&gt;Physicists Argue That Black Holes From the Big Bang Could Be the Dark Matter&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="primordial-black-holes"&gt;Primordial Black Holes&lt;/h2&gt;
&lt;p&gt;A &amp;ldquo;Primordial Black Hole&amp;rdquo; (PBH), is a black hole which has been around since nearly the time of the Big Bang.&lt;/p&gt;
&lt;h2 id="pbh-as-dark-matter"&gt;PBH as Dark Matter&lt;/h2&gt;
&lt;p&gt;The hypothesis that PBHs could be the dark matter cosomolgists tangentially observe was put forth in many papers (like &lt;a href="https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.116.201301"&gt;this one from Johns Hopkins U.&lt;/a&gt;) around 2016. This idea was dismantled by the calculation which showed that if black holes had been around as long as PBHs are/were thought to have been around for, and in high enough numbers, we would see more pairs forming. These pairs would, through gravity, begin to orbit each other and be detectable by &lt;a href="https://en.wikipedia.org/wiki/LIGO"&gt;LIGO&lt;/a&gt;, observationally. We don&amp;rsquo;t observe this, so the idea (then) was abandoned.&lt;/p&gt;</description></item><item><title>Black Hole Information Paradox</title><link>https://codethrasher.com/posts/black_hole_information_paradox/</link><pubDate>Wed, 21 Oct 2020 21:27:34 -0700</pubDate><guid>https://codethrasher.com/posts/black_hole_information_paradox/</guid><description>&lt;h2 id="high-level"&gt;High-level&lt;/h2&gt;
&lt;p&gt;The result of the marrying of QM with GR. (Initially, Hawking&amp;rsquo;s) calculations suggested that information would permanently disappear in a black hole. This runs afoul with the postulates of the Copenhagen Interpretation, in that information about a system is encoded in its wave function \(\Psi\) and, further, that that information is conserved.&lt;/p&gt;
&lt;h2 id="more-technical-details"&gt;&lt;span class="org-todo todo TODO"&gt;TODO&lt;/span&gt; more technical details&lt;/h2&gt;</description></item><item><title>Binary Relation</title><link>https://codethrasher.com/posts/binary_relation/</link><pubDate>Wed, 21 Oct 2020 21:27:27 -0700</pubDate><guid>https://codethrasher.com/posts/binary_relation/</guid><description>&lt;p&gt;A &lt;em&gt;binary relation&lt;/em&gt; \(R\) over sets \(X\) and \(Y\) is a &lt;em&gt;subset&lt;/em&gt; of the &lt;a href="https://codethrasher.com/posts/cartesian_product/"&gt;cartesian product&lt;/a&gt; of \(X \times Y\). Where \(X\) is the &lt;em&gt;domain&lt;/em&gt;, or set of departure of \(R\), and \(Y\) is the &lt;em&gt;codomain&lt;/em&gt;, or set of destination of \(R\).&lt;/p&gt;
&lt;p&gt;An element \(x \in X\) is related to \(y \in Y\), &lt;em&gt;iff&lt;/em&gt; the ordered pair \((x, y)\) is found within the (above) subset.&lt;/p&gt;</description></item><item><title>Abiotic Process</title><link>https://codethrasher.com/posts/abiotic_process/</link><pubDate>Wed, 21 Oct 2020 21:27:20 -0700</pubDate><guid>https://codethrasher.com/posts/abiotic_process/</guid><description>&lt;p&gt;An abiotic process is a process which occurs via abiotic resources (non-living physical/chemical elements) in the environment&lt;/p&gt;</description></item><item><title>Abiotic Process</title><link>https://codethrasher.com/posts/content/abiotic_process/</link><pubDate>Wed, 21 Oct 2020 21:27:12 -0700</pubDate><guid>https://codethrasher.com/posts/content/abiotic_process/</guid><description>&lt;p&gt;An abiotic process is a process which occurs via abiotic resources (non-living physical/chemical elements) in the environment&lt;/p&gt;</description></item><item><title>Bijective Function</title><link>https://codethrasher.com/posts/bijective_function/</link><pubDate>Wed, 21 Oct 2020 21:26:54 -0700</pubDate><guid>https://codethrasher.com/posts/bijective_function/</guid><description>&lt;p&gt;A function is bijective or &amp;ldquo;invertible&amp;rdquo; if it is&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Both &lt;a href="https://codethrasher.com/posts/injective_function/"&gt;one-to-one&lt;/a&gt; and &lt;a href="https://codethrasher.com/posts/surjective_function/"&gt;onto&lt;/a&gt; (injective and surjective)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In other words: each element of one set is paired with &lt;em&gt;exactly&lt;/em&gt; one element of the other set, and vice versa&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://codethrasher.com/ox-hugo/bijective.png"&gt;
&lt;/figure&gt;</description></item><item><title>About</title><link>https://codethrasher.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://codethrasher.com/about/</guid><description>&lt;p&gt;I&amp;rsquo;m Matt.&lt;/p&gt;
&lt;p&gt;Welcome to the blog. It&amp;rsquo;s at times incoherent and unfocused&amp;hellip; a general dumping ground of thought.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m an Engineering leader with well over a decade of hands-on technical experience scaling and architecting systems. I&amp;rsquo;m motivated by long-term mastery and uncovering the shadows in my own thinking. I don&amp;rsquo;t like ambiguity.&lt;/p&gt;
&lt;p&gt;Outside of my day job I prioritize the physical: Jiu Jitsu, skateboarding, and slowing down the steady march of time.&lt;/p&gt;</description></item><item><title>Set Theory</title><link>https://codethrasher.com/posts/content/set_theory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://codethrasher.com/posts/content/set_theory/</guid><description>&lt;h2 id="concepts"&gt;Concepts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/relations_sets/"&gt;Relations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/cardinality/"&gt;Cardinality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/binary_relation/"&gt;Binary Relation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/symmetric_relation/"&gt;Symmetric Relation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/transitive_relation/"&gt;Transitive Relation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/cartesian_product/"&gt;Cartesian Product&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/reflexive_relation/"&gt;Reflexive Relation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codethrasher.com/posts/surjective_function/"&gt;Surjective Function&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>