Add curiosity post; update _site static files

master
Tait Hoyem 4 years ago
parent c21dc0fffa
commit 4e66ceeb8e

@ -2,12 +2,14 @@
link: /
#- name: Tutoring
# link: /tutoring
#- name: About
# link: /about/
- name: Blog
link: /blog/
#- name: Podcast
# link: /podcast.html
- name: Links
link: /links/
- name: Code
#- name: Links
# link: /links/
- name: Github
new_tab: true
link: https://github.com/TTWNO/

@ -0,0 +1,3 @@
---
---
# Tait Hoyem

@ -0,0 +1,22 @@
---
title: "rfi: A Simple Linux utility to get a random file from a directory"
layout: post
---
I made a [little video](https://lbry.tv/@tait:7/rfi:5) about this script I wrote:
<pre class="terminal">
$ rfi
</pre>
This program gets a random file from your current directory
if you do not specify one;
it gets a random file from the specified directory if you give it one like so:
<pre class="terminal">
# rfi /etc/wireguard
</pre>
Which is very useful if you want to start a random VPN configuration :)
The code, comments, etc. are on the [Github](https://github.com/TTWNO/scripts).

@ -0,0 +1,71 @@
---
title: "Curiosity"
layout: post
---
Curiosity is fundamental to a deep understanding of any subject.
Masters, Ph.Ds, and other fancy name suffixes will never help you
if you don't have the spirit of curiosity burning inside of you.
I was speaking to someone from a journalism major at my school when the subject of hacking arose.
I expected her to know nothing about it, being a journalism student and all, but surprisingly she had something to say about it:
> "The best hackers are the ones who are curious."
That struck a cord with me.
It seems to me she has nailed down the difference between the students who care about grades,
and those who want to learn.
These are not necessarily mutually exclusive, but in my experience they often are due to the way education is structured.
## My Anecdote
In my second semester at SAIT Polytechnic, I took a class entitled *Emerging Trends In Technology*.
This class was probably the best class I have ever taken.
We had to combine two things:
* **Hard skills**: learning a new hard skill like Angular, Django, or GPG encryption.
* **Soft skills**: public speaking and presentation of our ideas.
Soft skills are not usually my area, but I can do public speaking.
I grew up quite religious, so public speaking was drilled into me young.
I liked to go off script and talk about interesting things I found along the way to the actual point.
My creativity was not usually encouraged.
That said, going off script is useful when teaching and presenting ideas;
it gives a natural air to your breath and an unquestionable confidence in your speech.
This is how we learn: in relationships.
Try explaining ancient Japanese history to a computer science major, or UNIX sockets to an English major and you'll see what I mean.
If there is nothing for us to connect the knowledge to, it dissipates.
So why did I do so well in this class?
Our task for the semester was as follows:
1. Learn a new subject (any *emerging trend in technology*) which you find fascinating.
2. Give a one minute introduction by week three.
3. Give a 10 minute non-technical overview by week 8.
4. Give a 20 minute technical explaination and demo by week 13.
This is the only course I have ever taken which lets students' imagination run wild.
Their presentation, their rules.
They treated the students like adults who know what they are doing.
What happened? Everyone stopped coming because "Oh no! Presentations!"?
No, exactly the opposite.
There was never more than one student missing.
Every single presentation was at least moderately interesting,
and most students were excited to come to that class.
You could see it in their faces, the way they carried themselves.
Every student picked something unique to their tastes, leaving every student more educated than before.
This class, unlike many others, encouraged the curiosity of the students.
It rewarded those who had unique interests and an ability to sell others on their ideas.
The curiosity and the grades were one.
## Conclusion
Although it's nice to have a course where these goals align here and there, anyone who has been to collage or university can tell you that is far from the norm.
On the other hand, I never would have started this site if it wasn't for that class alone.
So I thank you, Kitty Wong, for getting me started running my own "research blog" (?)

File diff suppressed because one or more lines are too long

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Padding And Margin | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">Padding And Margin</h1> <time datetime="20-01-22" class="post-date">Wednesday, January 22 2020</time> </header> <hr> <p>Many people have expressed confusion over how padding and margins work in HTML/CSS. I have been one of those people. In this short article I will explain what the differences are between the two, and how it may affect the functionality of your site.</p> <p>Here is an image from the World Wide Web Consortium (W3C) who sets the standards for the web.</p> <p><img src="/assets/img/w3c-padding-margin.png" alt="The W3C standard for padding, margin, borders and width. Width encompases the inner element + padding; the border then encompases it. The margin is the space beyond the border and in between other elements." title="W3C border, padding, margin standard."/></p> <p>Now although this image shows all the different types of spacing as equal, the majority of the time these will mostly be padding (inner) and margin (outer). Padding is the inner space between the element and its border; margin is the outer space between two different elements.</p> <p>Within the margin the user is unable to press any links or execute any javascript code. It is <em>empty</em> space. If each <code class="language-plaintext highlighter-rouge">&lt;link&gt;</code> on your navigation bar has 10 pixels of margin, then there would be 20 pixels in between each <code class="language-plaintext highlighter-rouge">&lt;link&gt;</code> that would <em>not</em> be clickable by the user.</p> <p>If you have <code class="language-plaintext highlighter-rouge">&lt;link&gt;</code>s on your navigation bar with <em>padding</em> set to 20 pixels, however, then there will be 20 pixels on each side of the <code class="language-plaintext highlighter-rouge">&lt;link&gt;</code> text where the user <em>is</em> able to click.</p> <p>If that part is confusing, try thinking about it in terms of whether <code class="language-plaintext highlighter-rouge">background-color</code> would apply.</p> <table> <thead> <tr> <th>Attribute</th> <th><strong>Padding</strong></th> <th><strong>Margin</strong></th> </tr> </thead> <tbody> <tr> <td>Spacing</td> <td>within element</td> <td>between elements</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">background-color</code> applies</td> <td>Yes</td> <td>No</td> </tr> </tbody> </table> <p>In summary:</p> <ul> <li><strong>Padding</strong>: the space within a tag which is still part of the same tag. <code class="language-plaintext highlighter-rouge">background-color</code> applies.</li> <li><strong>Margin</strong>: the space in between two seperate tags. <code class="language-plaintext highlighter-rouge">background-color</code> does not apply; it is empty space.</li> <li><strong>Border</strong>: the space in between the two; it surrounds the padding, but is not the margin. It looks nice somtimes, but it has no non-visual function. <code class="language-plaintext highlighter-rouge">background-color</code> does not apply.</li> </ul> <p>I hope this covers the basics of margin and padding! Happy coding!</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/01/22/padding-and-margin.html">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Padding And Margin | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">Padding And Margin</h1> <time datetime="20-01-22" class="post-date">Wednesday, January 22 2020</time> </header> <hr> <p>Many people have expressed confusion over how padding and margins work in HTML/CSS. I have been one of those people. In this short article I will explain what the differences are between the two, and how it may affect the functionality of your site.</p> <p>Here is an image from the World Wide Web Consortium (W3C) who sets the standards for the web.</p> <p><img src="/assets/img/w3c-padding-margin.png" alt="The W3C standard for padding, margin, borders and width. Width encompases the inner element + padding; the border then encompases it. The margin is the space beyond the border and in between other elements." title="W3C border, padding, margin standard."/></p> <p>Now although this image shows all the different types of spacing as equal, the majority of the time these will mostly be padding (inner) and margin (outer). Padding is the inner space between the element and its border; margin is the outer space between two different elements.</p> <p>Within the margin the user is unable to press any links or execute any javascript code. It is <em>empty</em> space. If each <code class="language-plaintext highlighter-rouge">&lt;link&gt;</code> on your navigation bar has 10 pixels of margin, then there would be 20 pixels in between each <code class="language-plaintext highlighter-rouge">&lt;link&gt;</code> that would <em>not</em> be clickable by the user.</p> <p>If you have <code class="language-plaintext highlighter-rouge">&lt;link&gt;</code>s on your navigation bar with <em>padding</em> set to 20 pixels, however, then there will be 20 pixels on each side of the <code class="language-plaintext highlighter-rouge">&lt;link&gt;</code> text where the user <em>is</em> able to click.</p> <p>If that part is confusing, try thinking about it in terms of whether <code class="language-plaintext highlighter-rouge">background-color</code> would apply.</p> <table> <thead> <tr> <th>Attribute</th> <th><strong>Padding</strong></th> <th><strong>Margin</strong></th> </tr> </thead> <tbody> <tr> <td>Spacing</td> <td>within element</td> <td>between elements</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge">background-color</code> applies</td> <td>Yes</td> <td>No</td> </tr> </tbody> </table> <p>In summary:</p> <ul> <li><strong>Padding</strong>: the space within a tag which is still part of the same tag. <code class="language-plaintext highlighter-rouge">background-color</code> applies.</li> <li><strong>Margin</strong>: the space in between two seperate tags. <code class="language-plaintext highlighter-rouge">background-color</code> does not apply; it is empty space.</li> <li><strong>Border</strong>: the space in between the two; it surrounds the padding, but is not the margin. It looks nice somtimes, but it has no non-visual function. <code class="language-plaintext highlighter-rouge">background-color</code> does not apply.</li> </ul> <p>I hope this covers the basics of margin and padding! Happy coding!</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/01/22/padding-and-margin.html">beta.tait.tech</a>. </footer> </div> </body> </html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,4 +1,4 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>How To Encrypt Your Own Documents Using gpg | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">How To Encrypt Your Own Documents Using gpg</h1> <time datetime="20-04-06" class="post-date">Monday, April 06 2020</time> </header> <hr> <p>If you have ever wanted to garuntee the utmost security of your emails and documents, then this is the guide for you! It should be noted that in some circles the tools used are more common than in others. These are the everyday tools of many privacy advocates and computer nerds.</p> <p>If you have never used Linux however, then the method of doing this will be rather unfamiliar. This tutorial will be done on an <a href="https://archlinux.org/">Arch Linux</a> machine, but it should be the same on Ubuntu, Fedora, CentOS, Debian, OpenBSD, FreeBSD, MacOSX, etc. The only operating system that does not include these tools by default (or easily accessible) is Windows.</p> <p>This tutorial makes heavy use of the terminal. You have been warned.</p> <p><em>Let us…begin!</em></p> <h2 id="glossary">Glossary</h2> <ul> <li><a href="https://en.wikipedia.org/wiki/Binary-to-text_encoding#ASCII_armor"><strong>ASCII armour</strong></a> — A way to encode <strong>OpenPGP</strong> documents so they are readable by humans. These files end in .asc</li> <li><strong>(Open)PGP</strong> — An open standard for encoding pulbic keys and encrypted documents.</li> <li><strong>GPG</strong> — GNUPrivacyGaurd is an implementation of <strong>OpenPGP</strong>. It is installed by default on most Linux distrobutions.</li> </ul> <h2 id="step-0-setup">Step 0: Setup</h2> <p>We will be using the utility <code class="language-plaintext highlighter-rouge">gpg</code> for this tutorial.</p> <p>The other thing to note: The character $ (dollar sign) is usually not typed when shown in a command. It simply indicates that you do not need administrative privilages to run these commands.</p> <p>Test to see if you get this output in your terminal.</p> <pre class="terminal">
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>How To Encrypt Your Own Documents Using gpg | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">How To Encrypt Your Own Documents Using gpg</h1> <time datetime="20-04-06" class="post-date">Monday, April 06 2020</time> </header> <hr> <p>If you have ever wanted to garuntee the utmost security of your emails and documents, then this is the guide for you! It should be noted that in some circles the tools used are more common than in others. These are the everyday tools of many privacy advocates and computer nerds.</p> <p>If you have never used Linux however, then the method of doing this will be rather unfamiliar. This tutorial will be done on an <a href="https://archlinux.org/">Arch Linux</a> machine, but it should be the same on Ubuntu, Fedora, CentOS, Debian, OpenBSD, FreeBSD, MacOSX, etc. The only operating system that does not include these tools by default (or easily accessible) is Windows.</p> <p>This tutorial makes heavy use of the terminal. You have been warned.</p> <p><em>Let us…begin!</em></p> <h2 id="glossary">Glossary</h2> <ul> <li><a href="https://en.wikipedia.org/wiki/Binary-to-text_encoding#ASCII_armor"><strong>ASCII armour</strong></a> — A way to encode <strong>OpenPGP</strong> documents so they are readable by humans. These files end in .asc</li> <li><strong>(Open)PGP</strong> — An open standard for encoding pulbic keys and encrypted documents.</li> <li><strong>GPG</strong> — GNUPrivacyGaurd is an implementation of <strong>OpenPGP</strong>. It is installed by default on most Linux distrobutions.</li> </ul> <h2 id="step-0-setup">Step 0: Setup</h2> <p>We will be using the utility <code class="language-plaintext highlighter-rouge">gpg</code> for this tutorial.</p> <p>The other thing to note: The character $ (dollar sign) is usually not typed when shown in a command. It simply indicates that you do not need administrative privilages to run these commands.</p> <p>Test to see if you get this output in your terminal.</p> <pre class="terminal">
$ gpg --version
gpg (GnuPG) 2.2.20

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>NAS Part 1: Theorize | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">NAS Part 1: Theorize</h1> <time datetime="20-04-12" class="post-date">Sunday, April 12 2020</time> </header> <hr> <p>New Project, phase one: Theorize.</p> <p>I want to build a NAS server to store a bunch of data on. Current problem is lack of a computer to accept multiple SATA connections.</p> <h3 id="problem-1-sata-connectors">Problem 1: SATA connectors</h3> <p>This can be solved by an HBE card. Although they tend to be quite expensive (250+). One decent model that isnt that much is the <a href="https://www.amazon.ca/SAS9211-8I-8PORT-Int-Sata-Pcie/dp/B002RL8I7M/ref=sr_1_2?keywords=9211-8i&amp;qid=1586699707&amp;sr=8-2">LSI 9211-8I</a>. This is ideal for future expansion.</p> <p>A cheaper option is a PCIe multi-SATA connector <a href="https://www.amazon.ca/Rivo-Controller-Expansion-Profile-Non-Raid/dp/B0836MKFCR?ref_=ast_slp_dp">like this</a>.</p> <p>Either work, but one is cheaper and the other is more expandable. The 9211-8I uses two SAS ports, which can be expanded indefinetely. SAS supports splitting. SATA can be connected in a 4:1 ratio to SAS connectors with some <a href="https://www.amazon.com/Cable-Matters-Internal-SFF-8087-Breakout/dp/B012BPLYJC">cheap cables</a>.</p> <h3 id="problem-2-drives">Problem 2: Drives</h3> <p>I do not have enough drives to make this work right now. For the setup I want it would require 5 or 6 drives. I will get 4-5 drives worth of space as one drive worth of space is dedicated to “parity”, making you able to:</p> <ol> <li>Verify data integrity. If anything goes wrong with a write, it will be fixed automatically.</li> <li>If <em>one</em> drive dies, the system can stay online with no problem. Two drives and Im eff-you-see-kay-ed-dee.</li> </ol> <p>My other option is to use two drives worth of space for partiy. This would only have me 3-4 drives of space, but this system can withstand the failure of <em>two</em> drives.</p> <h3 id="problem-3-computer-system">Problem 3: Computer System</h3> <p>I currently have 5 computers.</p> <ol> <li>Celery Stick. An old grey HP laptop with a Braille stickered keyboard. <em>Does not work right now; bad thermal paste job.</em></li> <li>A Dell laptop lent to me by my school during my studies.</li> <li>Houston. A 21-inch 2011 iMac for which the screen does not work under Linux (excep with the <code class="language-plaintext highlighter-rouge">nomodeset</code> kernel option enabled).</li> <li>An Old Toshiba laptop (circa 2010) that I got for $50 to test with OpenBSD (works….sometimes).</li> <li>Main Rig. My main laptop is an ASUS-705 TUF gaming laptop.</li> </ol> <p>None of these have PCIe expansion slots with a case that can handle the new drives.</p> <p>I think its reasonable to say that for hard-drives and low-end tower PCs, I will likely have luck on a place like <a href="https://kijiji.ca">Kijiji</a> (Canadian Craigslist).</p> <p>The search continues :)</p> <p>Im in for a fun ride…. and a few monnies.</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/04/12/nas1.html">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>NAS Part 1: Theorize | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">NAS Part 1: Theorize</h1> <time datetime="20-04-12" class="post-date">Sunday, April 12 2020</time> </header> <hr> <p>New Project, phase one: Theorize.</p> <p>I want to build a NAS server to store a bunch of data on. Current problem is lack of a computer to accept multiple SATA connections.</p> <h3 id="problem-1-sata-connectors">Problem 1: SATA connectors</h3> <p>This can be solved by an HBE card. Although they tend to be quite expensive (250+). One decent model that isnt that much is the <a href="https://www.amazon.ca/SAS9211-8I-8PORT-Int-Sata-Pcie/dp/B002RL8I7M/ref=sr_1_2?keywords=9211-8i&amp;qid=1586699707&amp;sr=8-2">LSI 9211-8I</a>. This is ideal for future expansion.</p> <p>A cheaper option is a PCIe multi-SATA connector <a href="https://www.amazon.ca/Rivo-Controller-Expansion-Profile-Non-Raid/dp/B0836MKFCR?ref_=ast_slp_dp">like this</a>.</p> <p>Either work, but one is cheaper and the other is more expandable. The 9211-8I uses two SAS ports, which can be expanded indefinetely. SAS supports splitting. SATA can be connected in a 4:1 ratio to SAS connectors with some <a href="https://www.amazon.com/Cable-Matters-Internal-SFF-8087-Breakout/dp/B012BPLYJC">cheap cables</a>.</p> <h3 id="problem-2-drives">Problem 2: Drives</h3> <p>I do not have enough drives to make this work right now. For the setup I want it would require 5 or 6 drives. I will get 4-5 drives worth of space as one drive worth of space is dedicated to “parity”, making you able to:</p> <ol> <li>Verify data integrity. If anything goes wrong with a write, it will be fixed automatically.</li> <li>If <em>one</em> drive dies, the system can stay online with no problem. Two drives and Im eff-you-see-kay-ed-dee.</li> </ol> <p>My other option is to use two drives worth of space for partiy. This would only have me 3-4 drives of space, but this system can withstand the failure of <em>two</em> drives.</p> <h3 id="problem-3-computer-system">Problem 3: Computer System</h3> <p>I currently have 5 computers.</p> <ol> <li>Celery Stick. An old grey HP laptop with a Braille stickered keyboard. <em>Does not work right now; bad thermal paste job.</em></li> <li>A Dell laptop lent to me by my school during my studies.</li> <li>Houston. A 21-inch 2011 iMac for which the screen does not work under Linux (excep with the <code class="language-plaintext highlighter-rouge">nomodeset</code> kernel option enabled).</li> <li>An Old Toshiba laptop (circa 2010) that I got for $50 to test with OpenBSD (works….sometimes).</li> <li>Main Rig. My main laptop is an ASUS-705 TUF gaming laptop.</li> </ol> <p>None of these have PCIe expansion slots with a case that can handle the new drives.</p> <p>I think its reasonable to say that for hard-drives and low-end tower PCs, I will likely have luck on a place like <a href="https://kijiji.ca">Kijiji</a> (Canadian Craigslist).</p> <p>The search continues :)</p> <p>Im in for a fun ride…. and a few monnies.</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/04/12/nas1.html">beta.tait.tech</a>. </footer> </div> </body> </html>

@ -1,4 +1,4 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>rfi: A Simple Linux utility to get a random file from a directory | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">rfi: A Simple Linux utility to get a random file from a directory</h1> <time datetime="20-04-21" class="post-date">Tuesday, April 21 2020</time> </header> <hr> <p>I made a <a href="https://lbry.tv/@tait:7/rfi:5">little video</a> about this script I wrote:</p> <pre class="terminal">
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>rfi: A Simple Linux utility to get a random file from a directory | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">rfi: A Simple Linux utility to get a random file from a directory</h1> <time datetime="20-04-21" class="post-date">Tuesday, April 21 2020</time> </header> <hr> <p>I made a <a href="https://lbry.tv/@tait:7/rfi:5">little video</a> about this script I wrote:</p> <pre class="terminal">
$ rfi
</pre> <p>This program gets a random file from your current directory if you do not specify one; it gets a random file from the specified directory if you give it one like so:</p> <pre class="terminal">
# rfi /etc/wireguard

@ -1,4 +1,4 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>What is XSS? | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">What is XSS?</h1> <time datetime="20-04-25" class="post-date">Saturday, April 25 2020</time> </header> <hr> <p>I found a cross-site scripting (XSS) attack in a well-known quiz hosting website. I disclosed the vulnerability to them years ago, so I thought now might be a good time to write about it.</p> <p>In this first article I will explain what XSS is.</p> <p>In the next article I will explain how I found this attack.</p> <h2 id="what-is-cross-site-scripting-xss">What is cross-site scripting (XSS)</h2> <p>Cross-site scripting, XSS for short, is a technique to execute arbitrary Javascript code on a user visiting a website by linking to Javascript code stored on another server.</p> <p>So for example:</p> <p>I have a file on my website called <a href="/assets/js/hacked.js">hacked.js</a>. If I was able to run this javascript file on anybody visiting a certain website <em>that is not mine</em>, this would be called cross-site scripting.</p> <p>Click the above <code class="language-plaintext highlighter-rouge">hacked.js</code> link to view the code I use to “hack” this website. Its safe, I promise ;)</p> <p>Now, how can we get this code to execute when a user visits this site? To explain, I will start with some of the underlying technologies.</p> <h3 id="escape-characters">Escape Characters!</h3> <p>No, this is not a Sherlock Holmes novel!</p> <p>If we suppose that a website is built with sequences like these (called “tags”): <code class="language-plaintext highlighter-rouge">&lt;body&gt;</code>, <code class="language-plaintext highlighter-rouge">&lt;p&gt;</code> (for paragraph), <code class="language-plaintext highlighter-rouge">&lt;link&gt;</code> and <code class="language-plaintext highlighter-rouge">&lt;b&gt;</code> for bold, then why can you <em>see</em> the left and right angle bracket characters? Dont they mean something? Shouldnt they be telling the browser: <em>“Hey! Make me bold!”?</em> Why <em>doesnt</em> everything after me typing <code class="language-plaintext highlighter-rouge">&lt;b&gt;</code> turn bold?</p> <p>The answer is:</p> <p>There are special characters in HTML to type a visible left (&lt;) and visible right angle bracket (&gt;) in a website. If I use the left and right brackets on my keyboard however, things will indeed <b>show up bold</b>.</p> <p>This is the code for the sentence I wrote above:</p> <pre class="terminal">
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>What is XSS? | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">What is XSS?</h1> <time datetime="20-04-25" class="post-date">Saturday, April 25 2020</time> </header> <hr> <p>I found a cross-site scripting (XSS) attack in a well-known quiz hosting website. I disclosed the vulnerability to them years ago, so I thought now might be a good time to write about it.</p> <p>In this first article I will explain what XSS is.</p> <p>In the next article I will explain how I found this attack.</p> <h2 id="what-is-cross-site-scripting-xss">What is cross-site scripting (XSS)</h2> <p>Cross-site scripting, XSS for short, is a technique to execute arbitrary Javascript code on a user visiting a website by linking to Javascript code stored on another server.</p> <p>So for example:</p> <p>I have a file on my website called <a href="/assets/js/hacked.js">hacked.js</a>. If I was able to run this javascript file on anybody visiting a certain website <em>that is not mine</em>, this would be called cross-site scripting.</p> <p>Click the above <code class="language-plaintext highlighter-rouge">hacked.js</code> link to view the code I use to “hack” this website. Its safe, I promise ;)</p> <p>Now, how can we get this code to execute when a user visits this site? To explain, I will start with some of the underlying technologies.</p> <h3 id="escape-characters">Escape Characters!</h3> <p>No, this is not a Sherlock Holmes novel!</p> <p>If we suppose that a website is built with sequences like these (called “tags”): <code class="language-plaintext highlighter-rouge">&lt;body&gt;</code>, <code class="language-plaintext highlighter-rouge">&lt;p&gt;</code> (for paragraph), <code class="language-plaintext highlighter-rouge">&lt;link&gt;</code> and <code class="language-plaintext highlighter-rouge">&lt;b&gt;</code> for bold, then why can you <em>see</em> the left and right angle bracket characters? Dont they mean something? Shouldnt they be telling the browser: <em>“Hey! Make me bold!”?</em> Why <em>doesnt</em> everything after me typing <code class="language-plaintext highlighter-rouge">&lt;b&gt;</code> turn bold?</p> <p>The answer is:</p> <p>There are special characters in HTML to type a visible left (&lt;) and visible right angle bracket (&gt;) in a website. If I use the left and right brackets on my keyboard however, things will indeed <b>show up bold</b>.</p> <p>This is the code for the sentence I wrote above:</p> <pre class="terminal">
There are special characters in HTML to type a visible left (&amp;lt;)
and visible right angle bracket (&amp;gt;) in a website.
If I use the left and right brackets on my keyboard however,

@ -1,4 +1,4 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>How to use NGINX as a reverse-proxy server for a Node.js application using socket.io | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">How to use NGINX as a reverse-proxy server for a Node.js application using socket.io</h1> <time datetime="20-05-01" class="post-date">Friday, May 01 2020</time> </header> <hr> <p>Despite the long name of the article, I have a feeling this may apply to more people than I might think. If you have a Node.js application which needs socket.io connections that you want to pass throgh nginxs <code class="language-plaintext highlighter-rouge">reverse_proxy</code> directive then this is the article for you!</p> <p>You <em>must</em> seperate the socket.io sockets and the static resources.</p> <ul> <li>The socket connections can be routed through the default <code class="language-plaintext highlighter-rouge">$host/socket.io</code> if you want to ease modifications to the source code.</li> <li>The connections to your main npm Node.js application can be routed through the relevant directory.</li> </ul> <p>Here is the relevant part of my <code class="language-plaintext highlighter-rouge">projects.tait.tech.conf</code> file:</p> <pre class="terminal">
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>How to use NGINX as a reverse-proxy server for a Node.js application using socket.io | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">How to use NGINX as a reverse-proxy server for a Node.js application using socket.io</h1> <time datetime="20-05-01" class="post-date">Friday, May 01 2020</time> </header> <hr> <p>Despite the long name of the article, I have a feeling this may apply to more people than I might think. If you have a Node.js application which needs socket.io connections that you want to pass throgh nginxs <code class="language-plaintext highlighter-rouge">reverse_proxy</code> directive then this is the article for you!</p> <p>You <em>must</em> seperate the socket.io sockets and the static resources.</p> <ul> <li>The socket connections can be routed through the default <code class="language-plaintext highlighter-rouge">$host/socket.io</code> if you want to ease modifications to the source code.</li> <li>The connections to your main npm Node.js application can be routed through the relevant directory.</li> </ul> <p>Here is the relevant part of my <code class="language-plaintext highlighter-rouge">projects.tait.tech.conf</code> file:</p> <pre class="terminal">
location /socket.io {
proxy_pass http://localhost:8080/socket.io/;
proxy_set_header Upgrade $http_upgrade;

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>New Game: Clue (coming soon) | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">New Game: Clue (coming soon)</h1> <time datetime="20-05-19" class="post-date">Tuesday, May 19 2020</time> </header> <hr> <p>Ooo! Exciting! Today I want to announce a new project Ill be working on which should be live within the month of May: Clue.</p> <p>The original board game, implemented in an accessible format via the web.</p> <p>It uses a Node.js backend and standard Javascript/HTML frontend. Nothing fancy.</p> <p>All the code will be hosted here: <a href="https://github.com/TTWNO/clue">https://github.com/TTWNO/clue</a></p> <p>It will be licensed under the BSD-3 license, meaning it can be used for any reason—even commercially and without source-code disclosure—without prior authorization, but it <em>must</em> acknowledge that I helped build the end product.</p> <p>Once the project is live, it will be located at: <a href="">Lame Games</a> (currently a dead link).</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/05/19/clue-announcement.html">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>New Game: Clue (coming soon) | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">New Game: Clue (coming soon)</h1> <time datetime="20-05-19" class="post-date">Tuesday, May 19 2020</time> </header> <hr> <p>Ooo! Exciting! Today I want to announce a new project Ill be working on which should be live within the month of May: Clue.</p> <p>The original board game, implemented in an accessible format via the web.</p> <p>It uses a Node.js backend and standard Javascript/HTML frontend. Nothing fancy.</p> <p>All the code will be hosted here: <a href="https://github.com/TTWNO/clue">https://github.com/TTWNO/clue</a></p> <p>It will be licensed under the BSD-3 license, meaning it can be used for any reason—even commercially and without source-code disclosure—without prior authorization, but it <em>must</em> acknowledge that I helped build the end product.</p> <p>Once the project is live, it will be located at: <a href="">Lame Games</a> (currently a dead link).</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/05/19/clue-announcement.html">beta.tait.tech</a>. </footer> </div> </body> </html>

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Site Update | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">Site Update</h1> <time datetime="20-06-04" class="post-date">Thursday, June 04 2020</time> </header> <hr> <p>I updated the site with some easier to identify information about me and my projects :)</p> <p>Also, Clue has been delayed due to my partner in crime on the project wokring too many hours.</p> <p>I also posted a new project called <em><a href="https://github.com/TTWNO/caesar-cipher">Caesar Cipher</a></em> in C. It will be an intermediate example of how to use build systems like <code class="language-plaintext highlighter-rouge">make</code>.</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/06/04/site-update.html">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Site Update | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">Site Update</h1> <time datetime="20-06-04" class="post-date">Thursday, June 04 2020</time> </header> <hr> <p>I updated the site with some easier to identify information about me and my projects :)</p> <p>Also, Clue has been delayed due to my partner in crime on the project wokring too many hours.</p> <p>I also posted a new project called <em><a href="https://github.com/TTWNO/caesar-cipher">Caesar Cipher</a></em> in C. It will be an intermediate example of how to use build systems like <code class="language-plaintext highlighter-rouge">make</code>.</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/06/04/site-update.html">beta.tait.tech</a>. </footer> </div> </body> </html>

@ -1,4 +1,4 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>How to use tmux to send and receive things from your Minecraft server | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">How to use tmux to send and receive things from your Minecraft server</h1> <time datetime="20-06-25" class="post-date">Thursday, June 25 2020</time> </header> <hr> <p>So recently I had problem. I run a Minecraft server on a big Linux computer I have running in my room. Now, as a system administrator it is very helpful to be able to run some simple commands without needing to login with my key, password, TFA, etc. It is, frankly, a lot of work. Especially when I really just want to be playing games but I just need to check something quickly.</p> <p>So for simple things like finding out of the network, CPU, memory or disk usage is my bottleneck, I wrote this really nifty script to connect the world of Minecraft and the Linux shell.</p> <p>My completed solution for what I needed can be found at <a href="https://github.com/TTWNO/termcraft/">https://github.com/TTWNO/termcraft</a>.</p> <p>If you want some of the implementation details, stick around.</p> <h2 id="solution">Solution</h2> <p>So to solve this interesting problem, I decided to use <code class="language-plaintext highlighter-rouge">tmux</code>. <code class="language-plaintext highlighter-rouge">tmux</code> is a <strong>t</strong>terminal <strong>mu</strong>ltiple<strong>x</strong>er. This allows you to run a terminal session, then detach fromc it while it still runs in the background.</p> <p>This is very valuable when running command line applications that need to have an active console connection, like a Minecraft server.</p> <p>So first I looked at the <code class="language-plaintext highlighter-rouge">tmux</code> command <code class="language-plaintext highlighter-rouge">send-keys</code>.</p> <h4 id="send-keys"><code class="language-plaintext highlighter-rouge">send-keys</code></h4> <p><code class="language-plaintext highlighter-rouge">send-keys</code> allows you to send text, and key presses to a <code class="language-plaintext highlighter-rouge">tmux</code> session. Now assuming this <code class="language-plaintext highlighter-rouge">tmux</code> session is attached to a Minecraft server, there is no reason you could not run a command like this:</p> <pre class="terminal">
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>How to use tmux to send and receive things from your Minecraft server | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">How to use tmux to send and receive things from your Minecraft server</h1> <time datetime="20-06-25" class="post-date">Thursday, June 25 2020</time> </header> <hr> <p>So recently I had problem. I run a Minecraft server on a big Linux computer I have running in my room. Now, as a system administrator it is very helpful to be able to run some simple commands without needing to login with my key, password, TFA, etc. It is, frankly, a lot of work. Especially when I really just want to be playing games but I just need to check something quickly.</p> <p>So for simple things like finding out of the network, CPU, memory or disk usage is my bottleneck, I wrote this really nifty script to connect the world of Minecraft and the Linux shell.</p> <p>My completed solution for what I needed can be found at <a href="https://github.com/TTWNO/termcraft/">https://github.com/TTWNO/termcraft</a>.</p> <p>If you want some of the implementation details, stick around.</p> <h2 id="solution">Solution</h2> <p>So to solve this interesting problem, I decided to use <code class="language-plaintext highlighter-rouge">tmux</code>. <code class="language-plaintext highlighter-rouge">tmux</code> is a <strong>t</strong>terminal <strong>mu</strong>ltiple<strong>x</strong>er. This allows you to run a terminal session, then detach fromc it while it still runs in the background.</p> <p>This is very valuable when running command line applications that need to have an active console connection, like a Minecraft server.</p> <p>So first I looked at the <code class="language-plaintext highlighter-rouge">tmux</code> command <code class="language-plaintext highlighter-rouge">send-keys</code>.</p> <h4 id="send-keys"><code class="language-plaintext highlighter-rouge">send-keys</code></h4> <p><code class="language-plaintext highlighter-rouge">send-keys</code> allows you to send text, and key presses to a <code class="language-plaintext highlighter-rouge">tmux</code> session. Now assuming this <code class="language-plaintext highlighter-rouge">tmux</code> session is attached to a Minecraft server, there is no reason you could not run a command like this:</p> <pre class="terminal">
$ tmux send-keys "tell @a This is a Test" Enter
</pre> <p>This will send the text “tell @a This is a Test” to the Minecraft server. Then, it will hit the newline character, this will execute the command.</p> <p>So now we can send information to the server and have it tell the users something.</p> <p>But how do we get information about who is typing what in the Minecraft chat?</p> <h3 id="tmuxs-capture-pane-is-painful"><code class="language-plaintext highlighter-rouge">tmux</code>s <code class="language-plaintext highlighter-rouge">capture-pane</code> is painful</h3> <p>So in the manual page for <code class="language-plaintext highlighter-rouge">tmux</code> I can see a section recorded below for options I can give to the <code class="language-plaintext highlighter-rouge">capture-pane</code> subcommand.</p> <pre class="terminal">
-S and -E specify the starting and ending line numbers,

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Independence | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">Independence</h1> <time datetime="20-07-12" class="post-date">Sunday, July 12 2020</time> </header> <hr> <blockquote> <p>“When given a choice between independence and dependence, always choose independence; you will never regret that choice!”—Luke Smith</p> </blockquote> <p>Whatever you may believe about the YouTube personality Luke Smith, the quote above summarizes a core principle of mine. Much like many people have religious principles, I have <em>Independence</em>.</p> <p>My choice to use Linux as my primary operating system, host my own website, own my own domain name—all of these are directly related to this core principle of independence.</p> <p>I never want a man, or a company to have too much power over my life. Just like I would not trust just any person to be able to read my emails, know where I live, where I am going, who are my friends, what do I believe; in the same way, I do not trust a company with that same information.</p> <blockquote> <p>“If you want to find out what a man is to the bottom, give him power. Any man can stand adversity — only a great man can stand prosperity.”—Robert Ingersoll</p> </blockquote> <p>Take control of your own digital life:</p> <ol> <li>Own your own domain.</li> <li>Hookup an email and a website to that.</li> </ol> <p>Thats it!</p> <p>Without this, any of your internet privileges can be revoked at any time by Google, Facebook, YouTube, Twitter, or even an angry Twitter Mob. Maybe because they hate your skin colour, maybe they hate your religious/political views, or maybe you got caught on a technicality.</p> <p>If you own your own domain, however:</p> <p>Your email provider goes down/bans you: change your provider; keep the email.</p> <p>Your website is pulled for controversial views: switch hosts.</p> <p>Protect yourself; give yourself choices. Why give others that power when you could have it for yourself?</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/07/12/independence.html">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Independence | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">Independence</h1> <time datetime="20-07-12" class="post-date">Sunday, July 12 2020</time> </header> <hr> <blockquote> <p>“When given a choice between independence and dependence, always choose independence; you will never regret that choice!”—Luke Smith</p> </blockquote> <p>Whatever you may believe about the YouTube personality Luke Smith, the quote above summarizes a core principle of mine. Much like many people have religious principles, I have <em>Independence</em>.</p> <p>My choice to use Linux as my primary operating system, host my own website, own my own domain name—all of these are directly related to this core principle of independence.</p> <p>I never want a man, or a company to have too much power over my life. Just like I would not trust just any person to be able to read my emails, know where I live, where I am going, who are my friends, what do I believe; in the same way, I do not trust a company with that same information.</p> <blockquote> <p>“If you want to find out what a man is to the bottom, give him power. Any man can stand adversity — only a great man can stand prosperity.”—Robert Ingersoll</p> </blockquote> <p>Take control of your own digital life:</p> <ol> <li>Own your own domain.</li> <li>Hookup an email and a website to that.</li> </ol> <p>Thats it!</p> <p>Without this, any of your internet privileges can be revoked at any time by Google, Facebook, YouTube, Twitter, or even an angry Twitter Mob. Maybe because they hate your skin colour, maybe they hate your religious/political views, or maybe you got caught on a technicality.</p> <p>If you own your own domain, however:</p> <p>Your email provider goes down/bans you: change your provider; keep the email.</p> <p>Your website is pulled for controversial views: switch hosts.</p> <p>Protect yourself; give yourself choices. Why give others that power when you could have it for yourself?</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/07/12/independence.html">beta.tait.tech</a>. </footer> </div> </body> </html>

@ -1,4 +1,4 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Installing MultiCraft on Gentoo Linux | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">Installing MultiCraft on Gentoo Linux</h1> <time datetime="20-07-19" class="post-date">Sunday, July 19 2020</time> </header> <hr> <p>In a very odd combination of requirements, I needed to install <a href="https://multicraft.org">MultiCraft</a> on a Gentoo Linux system. The PHP <code class="language-plaintext highlighter-rouge">USE</code> flags are important so you dont have to recompile it three times like I did.</p> <p>Here are some useful tips I came across:</p> <h3 id="php-use-flags">PHP <code class="language-plaintext highlighter-rouge">USE</code> flags</h3> <p>In <code class="language-plaintext highlighter-rouge">/etc/portage/package.use/php</code> I placed the following line:</p> <pre class="terminal">
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Installing MultiCraft on Gentoo Linux | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">Installing MultiCraft on Gentoo Linux</h1> <time datetime="20-07-19" class="post-date">Sunday, July 19 2020</time> </header> <hr> <p>In a very odd combination of requirements, I needed to install <a href="https://multicraft.org">MultiCraft</a> on a Gentoo Linux system. The PHP <code class="language-plaintext highlighter-rouge">USE</code> flags are important so you dont have to recompile it three times like I did.</p> <p>Here are some useful tips I came across:</p> <h3 id="php-use-flags">PHP <code class="language-plaintext highlighter-rouge">USE</code> flags</h3> <p>In <code class="language-plaintext highlighter-rouge">/etc/portage/package.use/php</code> I placed the following line:</p> <pre class="terminal">
dev-lang/php cgi mysql mysqli fpm pdo gd truetype
</pre> <p>This should give you enough for a mysql backended MultiCraft installation. The <code class="language-plaintext highlighter-rouge">cgi</code> option may not be required as <code class="language-plaintext highlighter-rouge">fpm</code> stands for <em>FastCGI Process Managment</em>. I dont know for sure though.</p> <h3 id="paper">Paper</h3> <p>This will grab the latest version of the Paper jar file using <a href="https://yivesmirror.com">YivesMirror</a>. Im not sure how reputable it is, but my buddy who works with this stuff more often than me seemed to recognize it.</p> <pre class="terminal">
## See the default craftbukkit.jar.conf for a detailed documentation of the

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Know How Your Representative Votes In Parliament | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">Know How Your Representative Votes In Parliament</h1> <time datetime="20-07-30" class="post-date">Thursday, July 30 2020</time> </header> <hr> <p>As an advocate for openness, I had an idea to make a project out of the government of Canadas <a href="https://open.canada.ca/en/open-data">Open Data</a> initiative to take a look at how my local MP voted on various pieces of legislation. It turns out though that this was not necessary due to how easy it was to find this information on the governments own website. In this article, I will explain how you can do the same.</p> <h3 id="1-find-your-representative">1. Find Your Representative</h3> <p>The first step in this process is to find who your representative is. To do so, go to the governments own website <a href="https://www.ourcommons.ca/Members/en">ourcommons.cas search tool</a>.</p> <p>Simply type in your postal code in the search box to find out who your MP is.</p> <h3 id="2-their-voting-record">2. Their Voting Record</h3> <p>Every MPs voting record is public knowledge, and it is available nice and simple in a table on that MPs page. For example, this is a link to <a href="https://www.ourcommons.ca/Members/en/pierre-poilievre(25524)/votes">Pierre Poilievres voting record</a>.</p> <p>To find your MPs voting record, do step one, then: After the <strong>Overview</strong>, and <strong>Seat in The House</strong> sections, there are three tabs, <strong>Roles</strong>, <strong>Work</strong>, and <strong>Contact</strong>. Click on work. At the bottom of that tab is a link which says <strong>Chamber Votes</strong>. This will open a small window with some recent votes by this politician. If you want to see all their votes, there is a button at the bottom named <strong>All Votes by This Member</strong>.</p> <p>Tada! You can now keep your local MP accountable for anything you do or do not support.</p> <h3 id="3-bill-details">3. Bill Details</h3> <p>If you want to get into the nitty gritty, once you open a specific bill, you can actually find out the status of said bill, or read the actual text by clicking the <strong>View this Bill on LEGISinfo</strong> button.</p> <p>Both the status of the bill, and a link to a PDF document containing the bilingual text of the bill are visible in the main body of the page.</p> <h4 id="conclusion">Conclusion</h4> <p>I thought this was pretty cool! It was <em>way</em> simpler than I thought it would be.</p> <p>Thanks, Canada!</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/07/30/canadian-parliament.html">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Know How Your Representative Votes In Parliament | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">Know How Your Representative Votes In Parliament</h1> <time datetime="20-07-30" class="post-date">Thursday, July 30 2020</time> </header> <hr> <p>As an advocate for openness, I had an idea to make a project out of the government of Canadas <a href="https://open.canada.ca/en/open-data">Open Data</a> initiative to take a look at how my local MP voted on various pieces of legislation. It turns out though that this was not necessary due to how easy it was to find this information on the governments own website. In this article, I will explain how you can do the same.</p> <h3 id="1-find-your-representative">1. Find Your Representative</h3> <p>The first step in this process is to find who your representative is. To do so, go to the governments own website <a href="https://www.ourcommons.ca/Members/en">ourcommons.cas search tool</a>.</p> <p>Simply type in your postal code in the search box to find out who your MP is.</p> <h3 id="2-their-voting-record">2. Their Voting Record</h3> <p>Every MPs voting record is public knowledge, and it is available nice and simple in a table on that MPs page. For example, this is a link to <a href="https://www.ourcommons.ca/Members/en/pierre-poilievre(25524)/votes">Pierre Poilievres voting record</a>.</p> <p>To find your MPs voting record, do step one, then: After the <strong>Overview</strong>, and <strong>Seat in The House</strong> sections, there are three tabs, <strong>Roles</strong>, <strong>Work</strong>, and <strong>Contact</strong>. Click on work. At the bottom of that tab is a link which says <strong>Chamber Votes</strong>. This will open a small window with some recent votes by this politician. If you want to see all their votes, there is a button at the bottom named <strong>All Votes by This Member</strong>.</p> <p>Tada! You can now keep your local MP accountable for anything you do or do not support.</p> <h3 id="3-bill-details">3. Bill Details</h3> <p>If you want to get into the nitty gritty, once you open a specific bill, you can actually find out the status of said bill, or read the actual text by clicking the <strong>View this Bill on LEGISinfo</strong> button.</p> <p>Both the status of the bill, and a link to a PDF document containing the bilingual text of the bill are visible in the main body of the page.</p> <h4 id="conclusion">Conclusion</h4> <p>I thought this was pretty cool! It was <em>way</em> simpler than I thought it would be.</p> <p>Thanks, Canada!</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/07/30/canadian-parliament.html">beta.tait.tech</a>. </footer> </div> </body> </html>

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>BSD Journey, Part 1 | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">BSD Journey, Part 1</h1> <time datetime="20-08-15" class="post-date">Saturday, August 15 2020</time> </header> <hr> <p>As Linux becomes controlled by corporate sponsors and becomes more full of proprietary blobs, drivers, and even closed-source software like Steam, One may wonder if there are other options out there. For me, somebody that is intensely interested in security, there is one option: OpenBSD.</p> <p>Now, my interest in OpenBSD has been going on for a long time. I started poking around for Linux alternatives way back a few years ago when Linus Torvalds decided to leave after he got in trouble for some <a href="https://arstechnica.com/information-technology/2013/07/linus-torvalds-defends-his-right-to-shame-linux-kernel-developers/">unprofessional behaviour</a>. That said, Linus did come back to Linux development, but I knew that his abrasive style is what brought good code to the Linux kernel. I also knew that his ability to be critical would be hurt by the new <a href="https://itsfoss.com/linux-code-of-conduct/">code of conduct</a>. It would become a tool for the SJW types to hammer on Linus for being a “white male, et al.”; It would become a tool for the easily offended to use to get their dumb code into Linux; It would become a tool for the corporatization, the HR-ification of Linux. Frankly, this does not interest me.</p> <p>Now Im sure that OpenBSD has its own internal policies that I disagree with. That said, Theo De Raadt is still at least known for calling Firefox an “amorphous peace of garbage” due to its lack of privilege separation. And, in their <a href="https://openbsd.org/goals.html">project goals</a> page, they specifically mention:</p> <blockquote> <p>Be as politics-free as possible; solutions should be decided on the basis of technical merit.</p> </blockquote> <p>Now thats something I can get behind! Bet you thats not in the Linux COC?</p> <p>He also went to university in my hometown, so thats pretty cool! I can support a local madman who thinks he can make a better operating system than all those corporations. Maybe he was right, maybe not. What I know is I am excited to find out!</p> <p>Wish my luck on my OpenBSD journey. I will post updates here along the way.</p> <p>Happy hacking!</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/08/15/openbsd1.html">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>BSD Journey, Part 1 | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">BSD Journey, Part 1</h1> <time datetime="20-08-15" class="post-date">Saturday, August 15 2020</time> </header> <hr> <p>As Linux becomes controlled by corporate sponsors and becomes more full of proprietary blobs, drivers, and even closed-source software like Steam, One may wonder if there are other options out there. For me, somebody that is intensely interested in security, there is one option: OpenBSD.</p> <p>Now, my interest in OpenBSD has been going on for a long time. I started poking around for Linux alternatives way back a few years ago when Linus Torvalds decided to leave after he got in trouble for some <a href="https://arstechnica.com/information-technology/2013/07/linus-torvalds-defends-his-right-to-shame-linux-kernel-developers/">unprofessional behaviour</a>. That said, Linus did come back to Linux development, but I knew that his abrasive style is what brought good code to the Linux kernel. I also knew that his ability to be critical would be hurt by the new <a href="https://itsfoss.com/linux-code-of-conduct/">code of conduct</a>. It would become a tool for the SJW types to hammer on Linus for being a “white male, et al.”; It would become a tool for the easily offended to use to get their dumb code into Linux; It would become a tool for the corporatization, the HR-ification of Linux. Frankly, this does not interest me.</p> <p>Now Im sure that OpenBSD has its own internal policies that I disagree with. That said, Theo De Raadt is still at least known for calling Firefox an “amorphous peace of garbage” due to its lack of privilege separation. And, in their <a href="https://openbsd.org/goals.html">project goals</a> page, they specifically mention:</p> <blockquote> <p>Be as politics-free as possible; solutions should be decided on the basis of technical merit.</p> </blockquote> <p>Now thats something I can get behind! Bet you thats not in the Linux COC?</p> <p>He also went to university in my hometown, so thats pretty cool! I can support a local madman who thinks he can make a better operating system than all those corporations. Maybe he was right, maybe not. What I know is I am excited to find out!</p> <p>Wish my luck on my OpenBSD journey. I will post updates here along the way.</p> <p>Happy hacking!</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/08/15/openbsd1.html">beta.tait.tech</a>. </footer> </div> </body> </html>

@ -1,4 +1,4 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>How to Solve The Django Deployment Puzzle | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">How to Solve The Django Deployment Puzzle</h1> <time datetime="20-08-18" class="post-date">Tuesday, August 18 2020</time> </header> <hr> <p>A few days ago I had a Django project I wanted to put on a real server. This project is still in its infancy, but I thought it would be nice to put it on my resume and show my friends. Little did I know the headache coming my way. Here are some tips to help you not make the same mistakes as me.</p> <h3 id="asgi-servers">ASGI Servers</h3> <p>Because my project used the ASGI (Asynchronous webServer Gateway Interface), I needed to find a good production ASGI server to handle all the incoming requests. The best thing I found was <a href="http://www.uvicorn.org/">uvicorn</a>. It focuses on speed, which is a priority, especially when using the ASGI protocol.</p> <p>To run uvicorn on the command line for testing purposes, use something like the following:</p> <pre class="terminal">
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>How to Solve The Django Deployment Puzzle | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">How to Solve The Django Deployment Puzzle</h1> <time datetime="20-08-18" class="post-date">Tuesday, August 18 2020</time> </header> <hr> <p>A few days ago I had a Django project I wanted to put on a real server. This project is still in its infancy, but I thought it would be nice to put it on my resume and show my friends. Little did I know the headache coming my way. Here are some tips to help you not make the same mistakes as me.</p> <h3 id="asgi-servers">ASGI Servers</h3> <p>Because my project used the ASGI (Asynchronous webServer Gateway Interface), I needed to find a good production ASGI server to handle all the incoming requests. The best thing I found was <a href="http://www.uvicorn.org/">uvicorn</a>. It focuses on speed, which is a priority, especially when using the ASGI protocol.</p> <p>To run uvicorn on the command line for testing purposes, use something like the following:</p> <pre class="terminal">
$ uvicorn --reload myapp.asgi:application
</pre> <p>The <code class="language-plaintext highlighter-rouge">--reload</code> option says to reload the server if any of the files get updated. This is not recommended in production. Sadly, I thought this meant I would need to do a hard shutdown of the server process every time I wanted to update. This turned out to not be the case.</p> <h3 id="workload-managers">Workload Managers</h3> <p>There is another equine-named program called <a href="https://gunicorn.org/">gunicorn</a> which can hold a number of processes under its control. An interesting feature of <code class="language-plaintext highlighter-rouge">gunicorn</code> is that it will gracefully switch from an old to a new deployment, replacing the subprocesses one-by-one and eventually having only the new deployment active on all subprocesses. The greatest part? Zero down time. The server keeps any old processes open if there is communication with them, then shift and new connections to the new deployment. This was a very cool feature I wanted to take advantage of.</p> <p>“Now hold on!” you might protest. “gunicorn is a WSGI server!” … oh you got me there! Yes, thats right, <code class="language-plaintext highlighter-rouge">gunicorn</code> is paired with <code class="language-plaintext highlighter-rouge">uvicorn</code> to serve my files.</p> <h3 id="systemd">systemd</h3> <p>Love it or hate it, the majority of Linux distributions use the <code class="language-plaintext highlighter-rouge">systemd</code> init system. I decided it would be very convenient to have a .service file for my Django application to run automatically at boot. <code class="language-plaintext highlighter-rouge">Systemd</code> allows me to do this with a file like the following one I stored in <code class="language-plaintext highlighter-rouge">/lib/systemd/system/lamegames.service</code>.</p> <pre class="file">
[Unit]

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>lamegames.tait.tech | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">lamegames.tait.tech</h1> <time datetime="20-09-09" class="post-date">Wednesday, September 09 2020</time> </header> <hr> <p>This is an announcement for a new project of mine: <a href="https://lamegames.tait.tech">lamegames.tait.tech</a>.</p> <p>This is something Im really excited to work on!</p> <p>Right now, Ive just got a rock-paper-scissors game. A chat function, and a few simple card games to come.</p> <p>Check out the repository on my <a href="https://github.com/TTWNO/lamegames.io">Github</a>.</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/09/09/lamegames.html">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>lamegames.tait.tech | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">lamegames.tait.tech</h1> <time datetime="20-09-09" class="post-date">Wednesday, September 09 2020</time> </header> <hr> <p>This is an announcement for a new project of mine: <a href="https://lamegames.tait.tech">lamegames.tait.tech</a>.</p> <p>This is something Im really excited to work on!</p> <p>Right now, Ive just got a rock-paper-scissors game. A chat function, and a few simple card games to come.</p> <p>Check out the repository on my <a href="https://github.com/TTWNO/lamegames.io">Github</a>.</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/09/09/lamegames.html">beta.tait.tech</a>. </footer> </div> </body> </html>

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Curiosity | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <article> <header> <h1 class="post-title">Curiosity</h1> <time datetime="20-10-26" class="post-date">Monday, October 26 2020</time> </header> <hr> <p>Curiosity is fundamental to a deep understanding of any subject. Masters, Ph.Ds, and other fancy name suffixes will never help you if you dont have the spirit of curiosity burning inside of you.</p> <p>I was speaking to someone from a journalism major at my school when the subject of hacking arose. I expected her to know nothing about it, being a journalism student and all, but surprisingly she had something to say about it:</p> <blockquote> <p>“The best hackers are the ones who are curious.”</p> </blockquote> <p>That struck a cord with me. It seems to me she has nailed down the difference between the students who care about grades, and those who want to learn. These are not necessarily mutually exclusive, but in my experience they often are due to the way education is structured.</p> <h2 id="my-anecdote">My Anecdote</h2> <p>In my second semester at SAIT Polytechnic, I took a class entitled <em>Emerging Trends In Technology</em>. This class was probably the best class I have ever taken. We had to combine two things:</p> <ul> <li><strong>Hard skills</strong>: learning a new hard skill like Angular, Django, or GPG encryption.</li> <li><strong>Soft skills</strong>: public speaking and presentation of our ideas.</li> </ul> <p>Soft skills are not usually my area, but I can do public speaking. I grew up quite religious, so public speaking was drilled into me young. I liked to go off script and talk about interesting things I found along the way to the actual point. My creativity was not usually encouraged. That said, going off script is useful when teaching and presenting ideas; it gives a natural air to your breath and an unquestionable confidence in your speech.</p> <p>This is how we learn: in relationships. Try explaining ancient Japanese history to a computer science major, or UNIX sockets to an English major and youll see what I mean. If there is nothing for us to connect the knowledge to, it dissipates.</p> <p>So why did I do so well in this class?</p> <p>Our task for the semester was as follows:</p> <ol> <li>Learn a new subject (any <em>emerging trend in technology</em>) which you find fascinating.</li> <li>Give a one minute introduction by week three.</li> <li>Give a 10 minute non-technical overview by week 8.</li> <li>Give a 20 minute technical explaination and demo by week 13.</li> </ol> <p>This is the only course I have ever taken which lets students imagination run wild. Their presentation, their rules. They treated the students like adults who know what they are doing. What happened? Everyone stopped coming because “Oh no! Presentations!”?</p> <p>No, exactly the opposite. There was never more than one student missing. Every single presentation was at least moderately interesting, and most students were excited to come to that class. You could see it in their faces, the way they carried themselves. Every student picked something unique to their tastes, leaving every student more educated than before.</p> <p>This class, unlike many others, encouraged the curiosity of the students. It rewarded those who had unique interests and an ability to sell others on their ideas.</p> <p>The curiosity and the grades were one.</p> <h2 id="conclusion">Conclusion</h2> <p>Although its nice to have a course where these goals align here and there, anyone who has been to collage or university can tell you that is far from the norm.</p> <p>On the other hand, I never would have started this site if it wasnt for that class alone. So I thank you, Kitty Wong, for getting me started running my own “research blog” (?)</p> </article> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/2020/10/26/curiosity.html">beta.tait.tech</a>. </footer> </div> </body> </html>

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Home | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <h2 id="tait-hoyem">Tait Hoyem</h2> <div id="img-wrapper"> <img id="main-img" src="/assets/img/banff.jpg" alt="A photot I took of the valley Banff, Alberta sits in"/> <label for="main-img">Alberta, Canada</label> </div> <h3 id="about">About</h3> <p>I am a student at the <a href="https://sait.ca/">Southern Alberta Insitute of Technology (SAIT)</a>.</p> <p>My fascination lies primarily with operating system internals and systems-level tools. My goal is to bring the everyday computing environment of Linux/BSD nerds to visually impaired users, and to ensure the saftey, privacy and security of the internet. Some of my projects reflect this.</p> <p>I have all of my code projects hosted on <a href="https://github.com/TTWNO">my Github</a>.</p> <h3 id="projects">Projects</h3> <p><strong><a href="https://github.com/TTWNO/epub-with-pinyin">epub-with-pinyin</a></strong> — I wrote a program to add Pinyin above Chinese characters in .epub files to assist myself and others learning Mandarin Chinese.</p> <p><strong><a href="https://github.com/TTWNO/chess">chess</a></strong> — I wrote a command-line chess game in C++. It is compileable on almost any system.</p> <p><strong><a href="https://github.com/TTWNO/tait.tech">tait.tech</a></strong> — All the code for my website is open source.</p> <p><strong><a href="https://github.com/TTWNO/Napolean">Napolean</a></strong> — A work-in-progress suite of tools to be used in conjunction with a Raspberry Pi and camera to produce text files from scanned books.</p> <p><strong><a href="https://github.com/TTWNO/subnetting">subnetting</a></strong> — A one-night write of a tool to automatically calculate network subnet masks based on required hosts and base IP.</p> <p>I also ocassionally put content on my <a href="https://lbry.tv/@tait:7">lbry channel</a>, and the <a href="/blog/">blog I host on this site</a>.</p> <h4 id="ideas">Ideas</h4> <p>Sometimes I have ideas that I havent done anything with yet. Those are <a href="/ideas/">here</a>.</p> <h3 id="contact">Contact</h3> <p>You can reach me via email at <a href="mailto:tait@tait.tech">tait@tait.tech</a></p> <p>If you use PGP, <a href="/public-key.asc">this is my public key</a></p> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/about/">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>About | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <h1 id="tait-hoyem">Tait Hoyem</h1> <p>I believe in three fundamentals</p> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/about/">beta.tait.tech</a>. </footer> </div> </body> </html>

File diff suppressed because one or more lines are too long

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <p>Here are my contact details if you would like to contact me professionally or personally.</p> <div>Personal Email - tait.hoyem@protonmail.com</div> <p><br/></p> <div>Work Email - tait@tait.tech</div> <p><br/></p> <div>School Email - tait.hoyem@edu.sait.ca</div> <p><br/></p> <div>Phone - +1 (403) 771-4754</div> <p><br/></p> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/contact/">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <p>Here are my contact details if you would like to contact me professionally or personally.</p> <div>Personal Email - tait.hoyem@protonmail.com</div> <p><br/></p> <div>Work Email - tait@tait.tech</div> <p><br/></p> <div>School Email - tait.hoyem@edu.sait.ca</div> <p><br/></p> <div>Phone - +1 (403) 771-4754</div> <p><br/></p> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/contact/">beta.tait.tech</a>. </footer> </div> </body> </html>

File diff suppressed because one or more lines are too long

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Home | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content="UNIX Design, Tait Hoyem, security, privacy, software developer, Calgary, Alberta, Canada, independent, web developer"> <meta name="description" content="Tait Hoyem's website. The home of accessible, simple and secure computing."> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link" class="on-page">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <h1>Tait Hoyem</h1> <p>I have three goals in my software development career:</p> <ol> <li>Strong adherence to the <a href="http://www.catb.org/~esr/writings/taoup/html/ch01s06.html">UNIX principles</a> of software design.</li> <li>Security, privacy, and anonymity of the internet.</li> <li>Accessibility of technology to the visually impaired.</li> </ol> <p>Some of my projects reflect these goals; others are just fun along the way. I have all of my code projects hosted on <a href="https://github.com/TTWNO">my Github</a>.</p> <h2>Projects</h2> <p>Here is some of my best work:</p> <ul class="clear-list projects"> <li> <p> <a href="https://github.com/TTWNO/epub-with-pinyin">epub-with-pinyin</a> &mdash; A program to add Pinyin above Chinese characters in .epub files to assist those learning Mandarin Chinese. </p> </li> <li> <p> <a href="https://github.com/TTWNO/chess">chess</a> &mdash; A command-line chess game in C++. It is compileable on almost any system. </p> </li> <li> <p> <a href="https://github.com/TTWNO/tait.tech">tait.tech</a> &mdash; All the code for my website is open source. </p> </li> <li> <p> <a href="https://github.com/TTWNO/lamegames.io">lamegames</a> &mdash; A little games website I made for some demonstrations of Django functionality. Very, very lame. Would not recommend. </p> </li> <li> <p> <a href="https://github.com/TTWNO/subnetting">subnetting</a> &mdash; One-night write of a subnet calculation tool. </p> </li> </ul> <p>I also occasionally put some content on <a href="/blog">my blog</a></p> <h2>Contact</h2> <address> <p>You can reach me via email at <a href="mailto:tait@tait.tech">tait@tait.tech</a>.</p> </address> <p>If you use PGP, download my <a href="/public-key.asc">public key</a>.</p> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Home | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content="UNIX Design, Tait Hoyem, security, privacy, software developer, Calgary, Alberta, Canada, independent, web developer"> <meta name="description" content="Tait Hoyem's website. The home of accessible, simple and secure computing."> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link" class="on-page">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <h1>Tait Hoyem</h1> <p>I have three goals in my software development career:</p> <ol> <li>Strong adherence to the <a href="http://www.catb.org/~esr/writings/taoup/html/ch01s06.html">UNIX principles</a> of software design.</li> <li>Security, privacy, and anonymity of the internet.</li> <li>Accessibility of technology to the visually impaired.</li> </ol> <p>Some of my projects reflect these goals; others are just fun along the way. I have all of my code projects hosted on <a href="https://github.com/TTWNO">my Github</a>.</p> <h2>Projects</h2> <p>Here is some of my best work:</p> <ul class="clear-list projects"> <li> <p> <a href="https://github.com/TTWNO/epub-with-pinyin">epub-with-pinyin</a> &mdash; A program to add Pinyin above Chinese characters in .epub files to assist those learning Mandarin Chinese. </p> </li> <li> <p> <a href="https://github.com/TTWNO/chess">chess</a> &mdash; A command-line chess game in C++. It is compileable on almost any system. </p> </li> <li> <p> <a href="https://github.com/TTWNO/tait.tech">tait.tech</a> &mdash; All the code for my website is open source. </p> </li> <li> <p> <a href="https://github.com/TTWNO/lamegames.io">lamegames</a> &mdash; A little games website I made for some demonstrations of Django functionality. Very, very lame. Would not recommend. </p> </li> <li> <p> <a href="https://github.com/TTWNO/subnetting">subnetting</a> &mdash; One-night write of a subnet calculation tool. </p> </li> </ul> <p>I also occasionally put some content on <a href="/blog">my blog</a></p> <h2>Contact</h2> <address> <p>You can reach me via email at <a href="mailto:tait@tait.tech">tait@tait.tech</a>.</p> </address> <p>If you use PGP, download my <a href="/public-key.asc">public key</a>.</p> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/">beta.tait.tech</a>. </footer> </div> </body> </html>

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Links | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link" class="on-page">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <section> <header> <h2>Find Me Other Places</h2> </header> <ul> <li> <span class="bold">Main Site</span> - <a href="https://tait.tech/" class="mono"> tait.tech </a> </li> </ul> <ul> <li> <span class="bold">Backup/Mirror Site</span> - <a href="https://beta.tait.tech/" class="mono"> beta.tait.tech </a> </li> </ul> <ul> <li> <span class="bold">Email</span> - <a href="mailto:tait@tait.tech" class="mono"> tait@tait.tech </a> </li> </ul> <ul> <li> <span class="bold">Public Key</span> - <a href="/public-key.asc" class="mono"> public-key.asc </a> </li> </ul> <ul> <li> <span class="bold">Github</span> - <a href="https://github.com/TTWNO" class="mono"> github.com/TTWNO </a> </li> </ul> </section> <section> <header> <h2>Secure Service Links</h2> </header> <ul> <li> <span class="bold">Signal</span> - <a href="https://signal.org" class="mono"> https://signal.org </a> </li> </ul> <ul> <li> <span class="bold">Protonmail</span> - <a href="https://protonmail.com" class="mono"> https://protonmail.com </a> </li> </ul> </section> <section> <header> <h2>Linux Links</h2> </header> <ul> <li> <span class="bold">Arch Linux Wiki</span> - <a href="https://wiki.archlinux.org/" class="mono"> https://wiki.archlinux.org/ </a> </li> </ul> <ul> <li> <span class="bold">Talking Arch</span> - <a href="https://talkingarch.info/" class="mono"> https://talkingarch.info/ </a> </li> </ul> <ul> <li> <span class="bold">Speakup Project [Unencrypted]</span> - <a href="http://linux-speakup.org/" class="mono"> http://linux-speakup.org/ </a> </li> </ul> <ul> <li> <span class="bold">Luke Smith</span> - <a href="https://lukesmith.xyz/" class="mono"> https://lukesmith.xyz/ </a> </li> </ul> <ul> <li> <span class="bold">Brian Lunduke</span> - <a href="https://lunduke.com/" class="mono"> https://lunduke.com/ </a> </li> </ul> </section> <section> <header> <h2>Interesting Links</h2> </header> <ul> <li> <span class="bold">Suckless</span> - <a href="https://suckless.org/" class="mono"> https://suckless.org/ </a> </li> </ul> <ul> <li> <span class="bold">cat -v (considered harmful) [Unencrypted]</span> - <a href="http://cat-v.org/" class="mono"> http://cat-v.org/ </a> </li> </ul> <ul> <li> <span class="bold">Edward Snowden</span> - <a href="https://www.biography.com/activist/edward-snowden/" class="mono"> https://www.biography.com/activist/edward-snowden/ </a> </li> </ul> </section> <section> <header> <h2>Inspiration Comes From</h2> </header> <ul> <li> <span class="bold">Gregory Gundersen</span> - <a href="https://gregorygundersen.com/" class="mono"> https://gregorygundersen.com/ </a> </li> </ul> </section> <section> <header> <h2>The This Is A Website Series</h2> </header> <ul> <li> <span class="bold">Website</span> - <a href="https://motherfuckingwebsite.com/" class="mono"> https://motherfuckingwebsite.com/ </a> </li> </ul> <ul> <li> <span class="bold">Better Website</span> - <a href="http://bettermotherfuckingwebsite.com/" class="mono"> http://bettermotherfuckingwebsite.com/ </a> </li> </ul> <ul> <li> <span class="bold">The Best Website</span> - <a href="https://thebestmotherfucking.website/" class="mono"> https://thebestmotherfucking.website/ </a> </li> </ul> </section> <section> <header> <h2>Friends' Websites</h2> </header> <ul> <li> <span class="bold">Justin Pilon</span> - <a href="https://justinpilon.ca/" class="mono"> https://justinpilon.ca/ </a> </li> </ul> <ul> <li> <span class="bold">Melody Shih</span> - <a href="https://melly.tech/" class="mono"> https://melly.tech/ </a> </li> </ul> </section> <p>All my big projects are on my <a href="/">homepage</a>.</p> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/links/">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Links | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <section> <header> <h2>Find Me Other Places</h2> </header> <ul> <li> <span class="bold">Main Site</span> - <a href="https://tait.tech/" class="mono"> tait.tech </a> </li> </ul> <ul> <li> <span class="bold">Backup/Mirror Site</span> - <a href="https://beta.tait.tech/" class="mono"> beta.tait.tech </a> </li> </ul> <ul> <li> <span class="bold">Email</span> - <a href="mailto:tait@tait.tech" class="mono"> tait@tait.tech </a> </li> </ul> <ul> <li> <span class="bold">Public Key</span> - <a href="/public-key.asc" class="mono"> public-key.asc </a> </li> </ul> <ul> <li> <span class="bold">Github</span> - <a href="https://github.com/TTWNO" class="mono"> github.com/TTWNO </a> </li> </ul> </section> <section> <header> <h2>Secure Service Links</h2> </header> <ul> <li> <span class="bold">Signal</span> - <a href="https://signal.org" class="mono"> https://signal.org </a> </li> </ul> <ul> <li> <span class="bold">Protonmail</span> - <a href="https://protonmail.com" class="mono"> https://protonmail.com </a> </li> </ul> </section> <section> <header> <h2>Linux Links</h2> </header> <ul> <li> <span class="bold">Arch Linux Wiki</span> - <a href="https://wiki.archlinux.org/" class="mono"> https://wiki.archlinux.org/ </a> </li> </ul> <ul> <li> <span class="bold">Talking Arch</span> - <a href="https://talkingarch.info/" class="mono"> https://talkingarch.info/ </a> </li> </ul> <ul> <li> <span class="bold">Speakup Project [Unencrypted]</span> - <a href="http://linux-speakup.org/" class="mono"> http://linux-speakup.org/ </a> </li> </ul> <ul> <li> <span class="bold">Luke Smith</span> - <a href="https://lukesmith.xyz/" class="mono"> https://lukesmith.xyz/ </a> </li> </ul> <ul> <li> <span class="bold">Brian Lunduke</span> - <a href="https://lunduke.com/" class="mono"> https://lunduke.com/ </a> </li> </ul> </section> <section> <header> <h2>Interesting Links</h2> </header> <ul> <li> <span class="bold">Suckless</span> - <a href="https://suckless.org/" class="mono"> https://suckless.org/ </a> </li> </ul> <ul> <li> <span class="bold">cat -v (considered harmful) [Unencrypted]</span> - <a href="http://cat-v.org/" class="mono"> http://cat-v.org/ </a> </li> </ul> <ul> <li> <span class="bold">Edward Snowden</span> - <a href="https://www.biography.com/activist/edward-snowden/" class="mono"> https://www.biography.com/activist/edward-snowden/ </a> </li> </ul> </section> <section> <header> <h2>Inspiration Comes From</h2> </header> <ul> <li> <span class="bold">Gregory Gundersen</span> - <a href="https://gregorygundersen.com/" class="mono"> https://gregorygundersen.com/ </a> </li> </ul> </section> <section> <header> <h2>The This Is A Website Series</h2> </header> <ul> <li> <span class="bold">Website</span> - <a href="https://motherfuckingwebsite.com/" class="mono"> https://motherfuckingwebsite.com/ </a> </li> </ul> <ul> <li> <span class="bold">Better Website</span> - <a href="http://bettermotherfuckingwebsite.com/" class="mono"> http://bettermotherfuckingwebsite.com/ </a> </li> </ul> <ul> <li> <span class="bold">The Best Website</span> - <a href="https://thebestmotherfucking.website/" class="mono"> https://thebestmotherfucking.website/ </a> </li> </ul> </section> <section> <header> <h2>Friends' Websites</h2> </header> <ul> <li> <span class="bold">Justin Pilon</span> - <a href="https://justinpilon.ca/" class="mono"> https://justinpilon.ca/ </a> </li> </ul> <ul> <li> <span class="bold">Melody Shih</span> - <a href="https://melly.tech/" class="mono"> https://melly.tech/ </a> </li> </ul> </section> <p>All my big projects are on my <a href="/">homepage</a>.</p> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/links/">beta.tait.tech</a>. </footer> </div> </body> </html>

@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>/2020/01/22/padding-and-margin.html</loc> <lastmod>2020-01-22T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/01/26/rsa1.html</loc> <lastmod>2020-01-26T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/02/19/rsa2.html</loc> <lastmod>2020-02-19T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/04/02/rsa3.html</loc> <lastmod>2020-04-02T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/04/06/rsa4.html</loc> <lastmod>2020-04-06T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/04/12/nas1.html</loc> <lastmod>2020-04-12T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/04/21/rfi.html</loc> <lastmod>2020-04-21T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/04/25/xss.html</loc> <lastmod>2020-04-25T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/05/01/nginx-socket-io-projects.html</loc> <lastmod>2020-05-01T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/05/19/clue-announcement.html</loc> <lastmod>2020-05-19T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/06/04/site-update.html</loc> <lastmod>2020-06-04T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/06/25/tmux-minecraft.html</loc> <lastmod>2020-06-25T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/07/12/independence.html</loc> <lastmod>2020-07-12T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/07/19/multicraft-php-gentoo.html</loc> <lastmod>2020-07-19T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/07/30/canadian-parliament.html</loc> <lastmod>2020-07-30T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/08/15/openbsd1.html</loc> <lastmod>2020-08-15T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/08/18/django-deployment.html</loc> <lastmod>2020-08-18T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/09/09/lamegames.html</loc> <lastmod>2020-09-09T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/09/12/minesweeper.html</loc> <lastmod>2020-09-12T00:00:00+00:00</lastmod> </url> <url> <loc>/2020-04-27-quiz-your-friends-xss.html</loc> </url> <url> <loc>/blog/</loc> </url> <url> <loc>/</loc> </url> <url> <loc>/tutoring/</loc> </url> <url> <loc>/cover-letters/bloombase/</loc> </url> <url> <loc>/resume/</loc> </url> <url> <loc>/links/</loc> </url> <url> <loc>/cover-letter-vcc/</loc> </url> <url> <loc>/contact/</loc> </url> <url> <loc>/about/</loc> </url> <url> <loc>/scholarships/2020/cnib/</loc> </url> </urlset>
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>/2020/01/22/padding-and-margin.html</loc> <lastmod>2020-01-22T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/01/26/rsa1.html</loc> <lastmod>2020-01-26T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/02/19/rsa2.html</loc> <lastmod>2020-02-19T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/04/02/rsa3.html</loc> <lastmod>2020-04-02T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/04/06/rsa4.html</loc> <lastmod>2020-04-06T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/04/12/nas1.html</loc> <lastmod>2020-04-12T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/04/21/rfi.html</loc> <lastmod>2020-04-21T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/04/25/xss.html</loc> <lastmod>2020-04-25T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/05/01/nginx-socket-io-projects.html</loc> <lastmod>2020-05-01T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/05/19/clue-announcement.html</loc> <lastmod>2020-05-19T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/06/04/site-update.html</loc> <lastmod>2020-06-04T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/06/25/tmux-minecraft.html</loc> <lastmod>2020-06-25T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/07/12/independence.html</loc> <lastmod>2020-07-12T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/07/19/multicraft-php-gentoo.html</loc> <lastmod>2020-07-19T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/07/30/canadian-parliament.html</loc> <lastmod>2020-07-30T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/08/15/openbsd1.html</loc> <lastmod>2020-08-15T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/08/18/django-deployment.html</loc> <lastmod>2020-08-18T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/09/09/lamegames.html</loc> <lastmod>2020-09-09T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/09/12/minesweeper.html</loc> <lastmod>2020-09-12T00:00:00+00:00</lastmod> </url> <url> <loc>/2020/10/26/curiosity.html</loc> <lastmod>2020-10-26T00:00:00+00:00</lastmod> </url> <url> <loc>/2020-04-27-quiz-your-friends-xss.html</loc> </url> <url> <loc>/blog/</loc> </url> <url> <loc>/</loc> </url> <url> <loc>/tutoring/</loc> </url> <url> <loc>/cover-letters/bloombase/</loc> </url> <url> <loc>/resume/</loc> </url> <url> <loc>/links/</loc> </url> <url> <loc>/cover-letter-vcc/</loc> </url> <url> <loc>/contact/</loc> </url> <url> <loc>/about/</loc> </url> <url> <loc>/scholarships/2020/cnib/</loc> </url> </urlset>

@ -1 +1 @@
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Tutoring | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="/links/" class="nav-link">Links</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Code</a> </div> </nav> </header> <main> <h2 id="tutoring">Tutoring</h2> <p>I believe in solving problems. Learn how to solve your own unique computer-related problems by learning how they work underneath all the fancy buttons you see.</p> <p>Contact me at <a href="mailto:tutoring@tait.tech">tutoring@tait.tech</a> for more info.</p> <h3 id="rateshour">Rates/hour</h3> <p><strong><em>C$25</em></strong> for a programming language I am comfortable with already.</p> <ul> <li>C, C++, Java, Python, HTML/CSS/JS.</li> </ul> <p><strong><em>C$20 + 1 week prep. time</em></strong> for a programming language I am not very comfortable with already.</p> <ul> <li>Rust, Go, Node.js.</li> </ul> <p><strong><em>C$35</em></strong> for Linux system administration.</p> <ul> <li>Paritioning disks, install and configure software and automate tasks via the command line interface (CLI).</li> </ul> <p>I offer group discounts for 2+ students.</p> <h5 id="resources">Resources:</h5> <p>My favourite resources are the following:</p> <ul> <li><a href="https://www.youtube.com/user/thenewboston">thenewboston (Youtube)</a></li> <li><a href="https://cppreference.com">cppreference.com</a> (also has C references)</li> </ul> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/tutoring/">beta.tait.tech</a>. </footer> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Tutoring | tait.tech</title> <link rel="stylesheet" href="/assets/css/style.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Tait Hoyem"> <meta name="keywords" content=""> <meta name="description" content=""> </head> <body> <div id="wrapper"> <header> <nav> <input type="checkbox" id="menu"> <label for="menu">&#9776;</label> <div class="menu-content"> <a href="/" class="nav-link">Home</a> <a href="/blog/" class="nav-link">Blog</a> <a href="https://github.com/TTWNO/" class="nav-link" target="_blank" rel="noopener noreferrer">Github</a> </div> </nav> </header> <main> <h2 id="tutoring">Tutoring</h2> <p>I believe in solving problems. Learn how to solve your own unique computer-related problems by learning how they work underneath all the fancy buttons you see.</p> <p>Contact me at <a href="mailto:tutoring@tait.tech">tutoring@tait.tech</a> for more info.</p> <h3 id="rateshour">Rates/hour</h3> <p><strong><em>C$25</em></strong> for a programming language I am comfortable with already.</p> <ul> <li>C, C++, Java, Python, HTML/CSS/JS.</li> </ul> <p><strong><em>C$20 + 1 week prep. time</em></strong> for a programming language I am not very comfortable with already.</p> <ul> <li>Rust, Go, Node.js.</li> </ul> <p><strong><em>C$35</em></strong> for Linux system administration.</p> <ul> <li>Paritioning disks, install and configure software and automate tasks via the command line interface (CLI).</li> </ul> <p>I offer group discounts for 2+ students.</p> <h5 id="resources">Resources:</h5> <p>My favourite resources are the following:</p> <ul> <li><a href="https://www.youtube.com/user/thenewboston">thenewboston (Youtube)</a></li> <li><a href="https://cppreference.com">cppreference.com</a> (also has C references)</li> </ul> </main> <hr> <footer> This page is mirrored on <a href="https://beta.tait.tech/tutoring/">beta.tait.tech</a>. </footer> </div> </body> </html>

@ -1,52 +1,8 @@
---
layout: default
title: "Home"
title: "About"
---
## Tait Hoyem
<div id="img-wrapper">
<img id="main-img" src="/assets/img/banff.jpg" alt="A photot I took of the valley Banff, Alberta sits in">
<label for="main-img">Alberta, Canada</label>
</div>
### About
I am a student at the <a href="https://sait.ca/">Southern Alberta Insitute of Technology (SAIT)</a>.
My fascination lies primarily with operating system internals and systems-level tools.
My goal is to bring the everyday computing environment of Linux/BSD nerds to visually impaired users, and to ensure the saftey, privacy and security of the internet.
Some of my projects reflect this.
I have all of my code projects hosted on [my Github](https://github.com/TTWNO).
### Projects
**[epub-with-pinyin](https://github.com/TTWNO/epub-with-pinyin)** ---
I wrote a program to add Pinyin above Chinese characters in .epub files to assist myself and others learning Mandarin Chinese.
**[chess](https://github.com/TTWNO/chess)** ---
I wrote a command-line chess game in C++. It is compileable on almost any system.
**[tait.tech](https://github.com/TTWNO/tait.tech)** ---
All the code for my website is open source.
**[Napolean](https://github.com/TTWNO/Napolean)** ---
A work-in-progress suite of tools to be used in conjunction with a Raspberry Pi
and camera to produce text files from scanned books.
**[subnetting](https://github.com/TTWNO/subnetting)** ---
A one-night write of a tool to automatically calculate network subnet masks based on required hosts and base IP.
I also ocassionally put content on my [lbry channel](https://lbry.tv/@tait:7), and the [blog I host on this site](/blog/).
#### Ideas
Sometimes I have ideas that I haven't done anything with yet.
Those are [here](/ideas/).
### Contact
You can reach me via email at [tait@tait.tech](mailto:tait@tait.tech)
If you use PGP, [this is my public key](/public-key.asc)
# Tait Hoyem
I believe in three fundamentals

Loading…
Cancel
Save