<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>BT Blog</title>
 <link href="https://btwiki.github.io//blog/atom.xml" rel="self"/>
 <link href="https://btwiki.github.io//blog/"/>
 <updated>2022-01-28T03:25:29+00:00</updated>
 <id>https://btwiki.github.io/</id>
 <author>
   <name></name>
   <email></email>
 </author>

 
 <entry>
   <title>Reaction Flywheels</title>
   <link href="https://btwiki.github.io//blog/2022/01/28/reaction-flywheels"/>
   <updated>2022-01-28T03:12:24+00:00</updated>
   <id>https://btwiki.github.io//2022/01/28/reaction-flywheels</id>
   <content type="html">&lt;h1 id=&quot;reaction-wheels&quot;&gt;Reaction Wheels&lt;/h1&gt;

&lt;p&gt;\(I_s\) is the moment of inertia (MOI) of the spacecraft&lt;/p&gt;

&lt;p&gt;\(\omega_s\) is the desired angular velocity of the spacecraft&lt;/p&gt;

&lt;p&gt;\(\omega_m\) is the maximum angular velocity the motor can produce&lt;/p&gt;

&lt;p&gt;\(I_f\) is the necessary flywheel MOI&lt;/p&gt;

&lt;p&gt;We start by calculating the inertial-frame flywheel angular velocity,
which slightly differs from the motor’s as the stator is mounted to a
spacecraft&lt;/p&gt;

\[\omega_f = \omega_m - \omega_s\]

&lt;p&gt;We then apply this to the conservation of angular momentum&lt;/p&gt;

\[\omega_f I_f = \omega_s I_s\]

\[(\omega_m - \omega_s) I_f = \omega_s I_s\]

\[I_f = \frac{\omega_s I_s}{\omega_m - \omega_s}\]

&lt;p&gt;To obtain the necessary flywheel moment of inertia to achieve the desired
spacecraft angular velocity.&lt;/p&gt;

&lt;p&gt;Note that this is independent of the maximum output torque of the motor,
only the maximum angular velocity, as a lower torque will only reduce the
angular acceleration and not the final angular velocity.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>GPS, What The FAQ?</title>
   <link href="https://btwiki.github.io//blog/2022/01/22/gps-the-faq"/>
   <updated>2022-01-22T04:40:00+00:00</updated>
   <id>https://btwiki.github.io//2022/01/22/GPS-the-FAQ</id>
   <content type="html">&lt;h2 id=&quot;1-how-can-i-get-my-gps-happy-even-when-hes-not&quot;&gt;1. How can I get my GPS happy even when he’s not?&lt;/h2&gt;
&lt;p&gt;Three easy solutions to get your GPS happy :&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Power the GPS standalone before the rest of the stuff and wait for it to get a fix. Disconnect the standalone cable and reconnect the GPS to the rest.&lt;/li&gt;
  &lt;li&gt;Try powering runcams, video transmitters and telemetry radios &lt;strong&gt;ONLY ONCE&lt;/strong&gt; GPS fix is acquired.&lt;/li&gt;
  &lt;li&gt;If none of above worked, the &lt;em&gt;“guide of the good engineer 2022 (updated edition)”&lt;/em&gt; recommends  using a hammer as a deterrent tool. GPS will quickly understand who’s the boss, and in case he doesn’t, he will quickly cease to be a GPS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2 id=&quot;2-sometimes-my-gps-is-really-happy-and-then-a-few-hours-after-hes-not-what-to-do&quot;&gt;2. Sometimes my GPS is really happy and then a few hours after he’s not, what to do?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;The integrated battery on your GPS keep the informations needed for a hot start (happy GPS) for about 3 hours, afterwards your GPS will have to wait to be happy on startup again&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2 id=&quot;3-can-my-gps-be-happy-even-higher-than-so-called-cocom-limits&quot;&gt;3. Can my GPS be happy even higher than so called “COCOM” limits?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;YES&lt;/strong&gt;, your GPS can perfectly be happy up to 50km or even 80km above sea level, you just have to put it in the “airborne &amp;lt;4G mode” if it’s a Ublox GPS. The SAM-M8Q can for example go up to 50km, and the NEO-M9N up to 80km. Oh and by the way &lt;em&gt;“CoCom ceased to function on March 31, 1994, and the then-current control list of embargoed goods was retained by the member nations until the successor, the &lt;a href=&quot;https://en.wikipedia.org/wiki/Wassenaar_Arrangement&quot;&gt;Wassenaar Arrangement&lt;/a&gt;, was established.”&lt;/em&gt; :)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2 id=&quot;4-is-it-legal-to-put-my-gps-into-the-illegal-dangerous-bad-gone-wrong-airborne-4g-mode&quot;&gt;4. Is it legal to put my GPS into the illegal dangerous bad (gone wrong!!) “airborne &amp;lt;4G mode”&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;NO. N&lt;strong&gt;O&lt;/strong&gt; NO&lt;strong&gt;OOOOO&lt;/strong&gt;OO&lt;strong&gt;OOOOO&lt;/strong&gt;, it’s not illegal to put your GPS into the illegal dangerous bad (gone wrong!!) “airborne &amp;lt;4G mode”. &lt;strong&gt;It’s designed for&lt;/strong&gt;. You have to send the right setup command to the GPS via serial. The command is not the same for different GPS models. Try looking for the GPS’s datasheet, and then the communication protocol for your specific GPS model.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2 id=&quot;5-i-want-my-gps-to-only-send-data-when-i-want-how-can-i-do-this&quot;&gt;5. I want my GPS to only send data when I want, how can I do this?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Most GPS sends data at a fixed rate that you can set using the settings. All the libraries proposing so called “polling” functions are just going to freeze your code until the next time the GPS decides to send a message because he’s happy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2 id=&quot;7-why-does-the-military-want-to-limit-my-gps-at-4g&quot;&gt;7. Why does the military want to limit my GPS at 4G??!!!&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;They don’t give a shit about your GPS accelerating at more than 4G but physics does. This is not a limitation but a physical limit. After this limit the GPS position precision will drop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2 id=&quot;8-i-cant-get-my-gps-to-speak-the-same-language-as-my-teveceee-flight-computer-what-can-i-do&quot;&gt;8. I can’t get my GPS to speak the same language as my TEVECEEE flight computer, what can I do?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Check the baud rate used for the communication between your computer and the GPS (AKA the UART serial port). Use 9600 as a first value. Most GPS use this baud speed as a factory setting.&lt;/li&gt;
  &lt;li&gt;TX and RX are not gay, TX goes with RX and RX goes with TX.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2 id=&quot;9-i-want-to-change-the-settings-of-my-gps-how-to-do&quot;&gt;9. I want to change the settings of my GPS how to do?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Download and install U-Center if it’s a Ublox GPS, otherwise you’re pretty much not happy to not say f.. yeah you got it no need to write it.&lt;/li&gt;
  &lt;li&gt;Get yourself a UART to USB converter (search for a FTDI dongle) to connect the GPS to your PC. Alternative solution: butcher an Arduino Nano to use it as and FTDI dongle.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2 id=&quot;10-my-gps-can-connect-to-u-center-but-i-cant-change-the-settings&quot;&gt;10. My GPS can connect to U-Center but I can’t change the settings&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Open the serial monitor right when you connect the GPS, and look at the first sentence sent by the GPS.&lt;/li&gt;
  &lt;li&gt;Open google and search for “Fake Ublox GPS, how to recognise them?” and learn why it was a bad idea to buy a GPS on Amazon for 7$ &lt;em&gt;(you can replace “GPS” by any other hardware you want, it’s pretty much the same)&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2 id=&quot;11-damn-so-my-gps-is-a-fake-what-can-i-do-now&quot;&gt;11. Damn.. so my GPS is a fake, what can I do now?&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;The SAM-M8Q GPS is a really good, small GPS. You can find a lot of differents breakouts easy to use. I’m sure you know what you have to do.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;did you notice point 6 was missing?&lt;/p&gt;

&lt;p&gt;:)&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Python vector framework</title>
   <link href="https://btwiki.github.io//blog/2021/12/16/py-vector"/>
   <updated>2021-12-16T00:12:18+00:00</updated>
   <id>https://btwiki.github.io//2021/12/16/py-vector</id>
   <content type="html">&lt;h1 id=&quot;a-python-vector-library&quot;&gt;A Python Vector Library&lt;/h1&gt;
&lt;h3 id=&quot;in-preparation-for-simulation&quot;&gt;In preparation for simulation&lt;/h3&gt;

&lt;p&gt;In order to design a 6DOF simulation for vehicle testing, we
will need a Vector3 object to store 3-dimensional values.
Why 3? Think x, y, z; pitch, yaw, and roll. A 6DOF simulation
has three axes, so vector values have the same. We begin with
the class header:&lt;/p&gt;

&lt;div class=&quot;language-py highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;z&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;z&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;z&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;But this setup is not very convenient, and also lacks any form
of type hints or guarantees. Let’s spice it up a bit!&lt;/p&gt;

&lt;div class=&quot;language-py highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dataclass&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;z&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;z&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;z&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;z&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This class definition and constructor will take advantage of Python’s
type hinting, as well as the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@dataclass&lt;/code&gt; decorator, which allows linters
like pylance to report member variables of a class at dev time. The type
hints also allow type linters like mypy to scan the file and uncover
any potential mismatches, but in the absence of mypy, Python will still
accept non-float’s for x, y, and z, so they must be explicitly cast.&lt;/p&gt;

&lt;p&gt;For ease of use later on, we will also add a factory function to
generate a zero-value Vector3:&lt;/p&gt;

&lt;div class=&quot;language-py highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;classmethod&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;Zero&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cls&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cls&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;However, at this point, we run into a &lt;em&gt;fun&lt;/em&gt; problem with python’s type
hinting. Types currently cannot be used for hinting until they are complete,
which means you can’t say, specify that a method in Vector3 will return a 
Vector3 object. This will be changed in coming updates to Python, but it
can be worked around by simply adding the line&lt;/p&gt;
&lt;div class=&quot;language-py highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;__future__&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;annotations&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;to the imports of your project.&lt;/p&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@dataclass&lt;/code&gt; decorator will automatically generate &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;__str__&lt;/code&gt; and
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;__repr__&lt;/code&gt; functions for us, but the format is somewhat less than desirable,
so we’ll override them with our own:&lt;/p&gt;

&lt;div class=&quot;language-py highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;__str__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;''&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;(&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;,&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;,&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;z&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;)&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;__repr__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;''&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Vector3(&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;,&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;,&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;z&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;)&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And for comparisons, to allow for checking state variables and other generic
checks on Vector3 objects, we implement &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;__eq__&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;__ne__&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-py highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;__eq__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;other&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;bool&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;isinstance&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NotImplemented&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;z&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;z&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;__ne__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;other&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;bool&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;isinstance&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NotImplemented&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;z&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;other&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;z&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Python requires equality &amp;amp; inequality functions to accept any objects, so the
first line of comparison/inequality functions must be a type check to avoid
accessing nonexistent member variables. Returning &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NotImplemented&lt;/code&gt; flags the
interpreter to check the other object’s type for a compatible comparison
function, and is a uniquely Pythonic concept.&lt;/p&gt;

&lt;p&gt;More code for the vector math functions to come in pt.2 of this post!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>WTF is the cross product</title>
   <link href="https://btwiki.github.io//blog/2021/12/15/cross-product-wtf"/>
   <updated>2021-12-15T17:27:04+00:00</updated>
   <id>https://btwiki.github.io//2021/12/15/cross-product-wtf</id>
   <content type="html">&lt;h1 id=&quot;bro-wtf&quot;&gt;Bro wtf&lt;/h1&gt;

&lt;p&gt;What is this thing like&lt;/p&gt;

\[\vec{A}\times\vec{B}\]

&lt;p&gt;How does it&lt;/p&gt;

\[\vec{A}\times\vec{B}=|\vec{A}|\cdot|\vec{B}|\cdot\sin(\theta)\hat{n}\]

&lt;p&gt;What in the&lt;/p&gt;

\[\vec{\tau}=\vec{r}\times\vec{F}\]

&lt;p&gt;&lt;strong&gt;HOW&lt;/strong&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>rej's corner</title>
   <link href="https://btwiki.github.io//blog/2021/12/15/the-corner-of-rej"/>
   <updated>2021-12-15T17:00:00+00:00</updated>
   <id>https://btwiki.github.io//2021/12/15/the-corner-of-rej</id>
   <content type="html">&lt;h1 id=&quot;you-know-what-time-it-is&quot;&gt;you know what time it is&lt;/h1&gt;
&lt;p&gt;it’s time for another crusade&lt;/p&gt;

&lt;h1 id=&quot;what-is-rej-listening-to&quot;&gt;what is rej listening to&lt;/h1&gt;
&lt;p&gt;trash probably. i’m going through it
&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;https://spotify-github-profile.vercel.app/api/view?uid=1diifnaqph0norv6er4w8r5du&amp;amp;cover_image=true&amp;amp;theme=compact&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;perry-has-just-warned-me&quot;&gt;perry has just warned me&lt;/h1&gt;
&lt;p&gt;perry has just warned me that i took his repoginity&lt;/p&gt;

&lt;h1 id=&quot;comedy-section&quot;&gt;comedy section&lt;/h1&gt;
&lt;p&gt;call me a sidewinder cause she guide the missile&lt;/p&gt;

&lt;h1 id=&quot;support&quot;&gt;support&lt;/h1&gt;
&lt;p&gt;go give your local aerospace engineer some zip ties&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Stock in the Chip Shortage</title>
   <link href="https://btwiki.github.io//blog/2021/12/15/finding-stock"/>
   <updated>2021-12-15T04:41:18+00:00</updated>
   <id>https://btwiki.github.io//2021/12/15/finding-stock</id>
   <content type="html">&lt;h1 id=&quot;the-chip-shortage-is-real&quot;&gt;The Chip Shortage Is Real.&lt;/h1&gt;

&lt;p&gt;There’s no doubt about it. From decades-long lead times to 
maximum-stock limits on popular chips, the effect of the
global pandemic on supply chains is being felt worldwide.&lt;/p&gt;

&lt;p&gt;In the midst of such n serious silicon scarcity, what is the
humble hobbyist to do?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://wompampsupport.azureedge.net/fetchimage?siteId=7575&amp;amp;v=2&amp;amp;jpgQuality=100&amp;amp;width=700&amp;amp;url=https%3A%2F%2Fi.kym-cdn.com%2Fentries%2Ficons%2Foriginal%2F000%2F023%2F987%2Fovercome.jpg&quot; alt=&quot;Improvise, Adapt, Overcome&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h1 id=&quot;finding-stock-in-a-stockless-world&quot;&gt;Finding Stock in a Stockless World&lt;/h1&gt;

&lt;p&gt;We’ve all felt it by now, the seemingly endless hours of scrolling,
searching, trying new filters, only to see the last few items of that
seemingly perfect component snatched by an unseen hand. Finding
stock is hard enough &lt;em&gt;without&lt;/em&gt; a global chip shortage, so here’s a
few tips for getting those parts you still need:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Search every supplier you can&lt;/strong&gt;&lt;br /&gt;
DigiKey, Mouser, Arrow, Newark, anyone you can get search terms in.&lt;br /&gt;
Alternatively, search &lt;a href=&quot;https://octopart.com/&quot;&gt;octopart&lt;/a&gt; for many distributors at once.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Don’t restrict yourself to one package&lt;/strong&gt;&lt;br /&gt;
Many components come in a range of package styles, such as a mixture of SOIC
and USON/WSON for flash chips, or QFPs &amp;amp; QFNs for most microcontrollers.
Apart from their footprints &amp;amp; dimensions, these part variants often have
the same pin assignments as their package relatives, and can be directly
swapped in (albeit, with a change of footprint) in lieu of other stock.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;If all else fails, find pin-compatible replacements&lt;/strong&gt;&lt;br /&gt;
Some components just don’t have alternate packages, or maybe they’re out of stock
too. In that case, you might be able to find similar components using a
supplier’s parametric search tool. Some suppliers, like DigiKey most recently,
even offer suggestions for replacements in clear view when searched
components have no stock. A mixture of compatible replacements and different
packages may have luck too.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2 id=&quot;sometimes-failure-is-inevitable&quot;&gt;Sometimes, failure is inevitable.&lt;/h2&gt;

&lt;p&gt;No matter how far you search or how many alternatives you consider, there are
a number of specialized or otherwise hard-to-find components that are just simply
unavailable in the current state of the supply chain. Some designs can be reworked
to accomodate different solutions, but some will just have to wait, and hope, for
the shortage to end soon.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Welcome to the Blog!</title>
   <link href="https://btwiki.github.io//blog/2021/12/15/welcome"/>
   <updated>2021-12-15T00:30:14+00:00</updated>
   <id>https://btwiki.github.io//2021/12/15/welcome</id>
   <content type="html">&lt;h1 id=&quot;were-sorry-in-advance&quot;&gt;We’re sorry in advance&lt;/h1&gt;

&lt;p&gt;This blog is going to be full of a lot of random content,
and a lot of stuff that we just think of randomly while
working on projects.&lt;/p&gt;

&lt;p&gt;This post will serve as a sort of format template so we
don’t forget either lol&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h1 id=&quot;format-rules&quot;&gt;Format rules&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;Newlines are ignored. Double newlines act as section spacers.&lt;/li&gt;
  &lt;li&gt;To create a line break, end a line with two or more spaces&lt;/li&gt;
  &lt;li&gt;#, ##, and ### are three levels of header&lt;/li&gt;
  &lt;li&gt;Mathjax can be enabled by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;usemathjax: true&lt;/code&gt; in the header&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;*Asterisks*&lt;/code&gt; make &lt;em&gt;italics&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;**More of them**&lt;/code&gt; make &lt;strong&gt;bold text&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mathjax can be used mid-line like \(E=mc^2\) or put on its own line&lt;/p&gt;

\[E=mc^2\]

&lt;p&gt;But both are formatted as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$$math$$&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Blockquotes can be made using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;gt; to mark the text&lt;/code&gt;&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;Nested blockquotes can be made &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;gt;&amp;gt; by simply adding more&lt;/code&gt;&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;&lt;strong&gt;Formatting&lt;/strong&gt; works in blockquotes&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Unordered lists work by&lt;/li&gt;
  &lt;li&gt;simply starting each line with&lt;/li&gt;
  &lt;li&gt;a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;- &lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Ordered lists work by&lt;/li&gt;
  &lt;li&gt;putting a number instead,&lt;/li&gt;
  &lt;li&gt;like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;4. &lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;br /&gt;
The rest of markdown should be hopefully self-explanatory.&lt;br /&gt;
A sample post front matter can also be found below. Enjoy!&lt;/p&gt;

&lt;div class=&quot;language-yaml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nn&quot;&gt;---&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;post&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;author&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;your-name&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;The post title!&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Something descriptive&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;summary&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Something short&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;pi&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;usemathjax&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;true&lt;/span&gt;
&lt;span class=&quot;nn&quot;&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</content>
 </entry>
 

</feed>
