riazj.com

source code for this website
git clone https://riazj.com/git/riazj.com
Log | Files | Refs | LICENSE

commit 89022a5fd08807b5ab755b8420f7a8ce787988fd
Author: Riaz <riaz@riazj.com>
Date:   Thu, 12 Jun 2025 10:06:27 -0700

Initial commit

Diffstat:
A.htaccess | 10++++++++++
A403.html | 18++++++++++++++++++
A404.html | 18++++++++++++++++++
ALICENSE | 21+++++++++++++++++++++
Aarticles/cli-dictionary.html | 32++++++++++++++++++++++++++++++++
Aarticles/efficiently-publish-to-website.html | 78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aarticles/estrogeneration.html | 94+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aarticles/fix-frogfind-content-display.html | 27+++++++++++++++++++++++++++
Aarticles/format-html.html | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aarticles/how-to-start-calisthenics.html | 38++++++++++++++++++++++++++++++++++++++
Aarticles/installing-alpine-linux.html | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aarticles/installing-artix-linux.html | 34++++++++++++++++++++++++++++++++++
Aarticles/mewing-and-orthotropics.html | 36++++++++++++++++++++++++++++++++++++
Aarticles/phones-increase-cancer-rates.html | 42++++++++++++++++++++++++++++++++++++++++++
Aarticles/powerschool-absence.html | 103+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aarticles/repairing-thinkpads-and-macbooks.html | 40++++++++++++++++++++++++++++++++++++++++
Aarticles/stop-taking-hot-showers.html | 23+++++++++++++++++++++++
Aarticles/technology-i-use.html | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Aarticles/the-oxygen-advantage.html | 83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aarticles/why-we-sleep.html | 64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acontact.html | 23+++++++++++++++++++++++
Aindex.html | 38++++++++++++++++++++++++++++++++++++++
Alinks.html | 45+++++++++++++++++++++++++++++++++++++++++++++
Ariazj.asc | 14++++++++++++++
Astyle.css | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
25 files changed, 1115 insertions(+), 0 deletions(-)

diff --git a/.htaccess b/.htaccess @@ -0,0 +1,10 @@ +RewriteEngine On +# Remove trailing slashes +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule ^(.*)/$ /$1 [R=301] +# Map /file to/ file.html +RewriteCond %{REQUEST_FILENAME}.html -f +RewriteRule ^(.*)/?$ /$1.html [L] +# Redirect errors to custom error pages +ErrorDocument 404 /404 +ErrorDocument 403 /403 diff --git a/403.html b/403.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>403 Forbidden</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>403 Forbidden</h1> +<hr> +<p>You have requested a web page that is not available. Some files are not allowed to accessed by all users. If you are trying to access a directory, this directory may not have an index file.</p> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/404.html b/404.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>404 Not Found</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>404 Not Found</h1> +<hr> +<p>You have requested a page or object that was not found on the server. This may be the result of a typo or broken link.</p> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/LICENSE b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Riaz + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/articles/cli-dictionary.html b/articles/cli-dictionary.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>The Best Offline Command-Line English Dictionary | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Using an offline copy of the GCIDE with a shell script is better than command-line dictionaries like sdcv"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>The Best Offline Command-Line English Dictionary</h1> +<hr> +<article> +<p><a href="https://dushistov.github.io/sdcv/">sdcv</a> was once listed on my <a href="technology-i-use">recommended technologies page</a>; however, the process of downloading a dictionary for it is time-consuming.</p> +<p>To get a dictionary for sdcv, this excruciating long URL can be used: <a href="https://web.archive.org/web/20140917131745/http://abloz.com/huzheng/stardict-dic/dict.org/">https://web.archive.org/web/20140917131745/http://abloz.com/huzheng/stardict-dic/dict.org/</a>. This process is made further sluggish by the many user requests to the Internet Archive. There is no guarantee that the site will even be online when needed, as seen from the cyberattacks of May and October 2024.</p> +<p>A better alternative is to download the <a href="https://gcide.gnu.org.ua/download">GNU Collaborative International Dictionary of English</a>.</p> +<p>Once inside the unpacked directory, run the following to change the naming of the files from "CIDE.*" to single letters.</p> +<pre>for f in CIDE*; do; mv $f "${f#*.}"; done</pre> +<p>Now, the following shell script can be used:</p> +<pre>#!/bin/sh + +letter="$(printf "%.1s" "$*" | tr '[:lower:]' '[:upper:]')" +sed -n "/&lt;p&gt;&lt;ent&gt;$*&lt;\/ent&gt;&lt;br\//I,/^$/p" "/path/to/dictionary/$letter" | w3m -dump -T text/html</pre> +<p>The w3m command can be replaced by other command-line web browsers to view the HTML. It takes less than a tenth of a second to return a definition.</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/efficiently-publish-to-website.html b/articles/efficiently-publish-to-website.html @@ -0,0 +1,78 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Efficiently Publish to a Website | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Alternatives to typing out the full path of the host for publishing to a website (upload, rsync, and git)"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Efficiently Publish to a Website</h1> +<hr> +<article> +<p>Summary: <code>alias publish="rsync -rtvzP --filter=':- .gitignore' --exclude='.git*' ~/website_path/ user@hostname.com:/path/to/destination"</code></p> +<h2>Abbreviated SCP</h2> +<p>I used to run the following commands to upload files to this website:</p> +<pre> +scp file user@hostname.com:/home/public +scp articles/article-name user@hostname.com:/home/public/articles</pre> +<p>Typing out the path of the host is tedious, so I wrote a shell script to do it.</p> +<pre> +#!/bin/sh + +[ "$1" = "-a" ] &amp;& shift &amp;& scp "$@" user@hostname.com:/home/public/articles &amp;& exit +scp "$@" user@hostname.com:/home/public</pre> +<p><code>[ "$1" = "-a" ]</code> checks if the first argument is <code>-a</code>. <code>&amp;&</code> causes the following command to run only if the previous statement succeeded. <code>shift</code> removes the first argument. Then, the files (<code>$@</code>) are uploaded to the articles' folder. If the <code>-a</code> option is not present, the files will be uploaded to the public folder.</p> +<p>Now, the process of uploading files looks like this:</p> +<pre> +upload file +upload -a articles/article-name</pre> +<h2>Rsync</h2> +<p>The problem with that method is that the files need to be stated. To avoid this, rsync can be used.</p> +<pre>rsync -rtvzP --filter=':- .gitignore' --exclude='.git*' ~/riazj.com/ user@hostname.com:/home/public</pre> +<p>Those options mean the following:</p> +<ul> +<li>-r: recursively</li> +<li>-t: transfer modification times, allowing unmodified files to be skipped</li> +<li>-v: increase verbosity, showing the files uploaded</li> +<li>-z: compress files for uploading</li> +<li>-P: if a large file fails to be uploaded, continue from where it was instead of uploading its entirety</li> +<li>--filter':- .gitignore': do not upload files that are listed in .gitignore</li> +<li>--exclude='.git*': do not upload files or folders starting with ".git" in the name</li> +</ul> +<p>The slash after the folder name (<code>riazj.com/</code>) is there for uploading the contents of the folder and not the folder itself to the location. Without the slash, it would result in <code>/home/public/riazj.com</code>.</p> +<h2>Git and SCP</h2> +<p>I do not recommend using this method unless there is a reason to not use rsync. rsync is faster than this script. I wrote this before I decided to use rsync for my website.</p> +<p>An <a href="https://docs.codeberg.org/security/ssh-key/">SSH key</a> to automatically sign in to the host is required.</p> +<pre> +#!/bin/sh + +changed_files="$(git diff-tree --no-commit-id --name-only origin/main..HEAD -r)" + +for file in "$changed_files"; do + [ -e "$file" ] || { ssh user@hostname.com "rm -f $file"; continue; } + [ "${file#*articles/}" != "$file" ] &amp;& scp "$file" user@hostname.com:/home/public/articles &amp;& continue + scp "$file" user@hostname.com:/home/public +done + +git push</pre> +<p>This script is meant to be run before <code>git push</code> so that it can see the files that were changed in the local commits.</p> +<p><code>[ -e "$file" ]</code> checks if the file exists. If it does not, it is removed. <code>continue</code> skips to the next iteration of the loop.</p> +<p><code>[ "${file#*articles/}" != "$file" ]</code> checks if the file's path is not the same after trying to remove the string "articles/" from the start of it. If it is not the same as before, it must mean that the file path starts with "articles/". The file is then uploaded to the articles' folder.</p> +<p>If the previous commands did not run, the file is uploaded to the public folder.</p> +<p>This script does not account for removing an old file that has been renamed. It can be expanded on by using <code>git diff-tree --no-commit-id --name-status origin/main..HEAD -r</code> and grep to find the renamed files.</p> +<h2>Update: 2025 Feb 25th</h2> +<p>I added the following to <code>.ssh/config</code>, allowing me to run <code>ssh riazj</code> or <code>rsync file riazj:</code>.</p> +<pre> +Host riazj + Hostname nfsnssh.com + User riazpy_riazj + Port 22</pre></article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/estrogeneration.html b/articles/estrogeneration.html @@ -0,0 +1,94 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Estrogeneration | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Summary of Estrogeneration: How Estrogenics Are Making You Fat, Sick, and Infertile by Anthony G. Jay Contains: the problem with artificial estrogenics and solutions to it"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Estrogeneration by Anthony G. Jay</h1> +<h2>How Estrogenics Are Making You Fat, Sick, and Infertile</h2> +<hr> +<article> +<h2>Estrogenics</h2> +<p>An estrogenic is something that binds to estrogen receptors. With modern chemicals, people are frequently exposed to unhealthy amounts of estrogen, the female hormone.</p> +<h2>The Problems</h2> +<p><q>Studies have suggested associations between phthalate exposure and shorter gestational age, shorter anogenital distance, shorter penis, incomplete testicular descent, sex hormone alteration, precocious puberty, pubertal gynecomastia, premature thelarche [breast development], rhinitis, eczema, asthma, low birth weight, attention deficit hyperactivity disorder, low intelligence quotient, thyroid hormone alteration, and hypospadias in infants and children. Furthermore, many studies have suggested associations between phthalate exposure and increased sperm DNA damage, decreased proportion of sperm with normal morphology, decreased sperm concentration, decreased sperm morphology, sex hormone alteration, decreased pulmonary function, endometriosis, uterine leiomyomas, breast cancer, obesity, hyperprolactinemia, and thyroid hormone alteration in adults. Finally, the number of phthalate-related scientific publications from Taiwan has increased greatly over the past 5 years, which may reflect the health effects from the illegal addition of phthalate plasticizer to clouding agent in foodstuff over the past two decades.</q> Yen, T. H., Lin-Tan, D. T., and Lin, J. L. (2011) Food safety involving ingestion of foods and beverages prepared with phthalate-plasticizer-containing clouding agents. <em>J Formos Med Assoc</em> 110, 671-684</p> +<h2>The Solutions</h2> +<p>Increase your omega-3 consumption by eating seafood and grass-fed animal products. Avoid corn oil, safflower oil, grape seed oil, cottonseed oil, sunflower oil, margarine oil, canola (rapeseed) oil, soybean oil, and rice brain oil.</p> +<p>Estrogenics are stored in fat for up to ten years and can cause fat. To counteract this, exercise daily, as estrogenics can be released through sweat. Additionally, estrogenics move out of fat cells faster when heated. This means that saunas can help.</p> +<p>Fasting for a challenging period of time can exchange old fat for improved cells and remove estrogenics. The schedule that I find to be beneficial is fasting on Mondays and Thursdays from dawn to sunset.</p> +<p>Many estrogenics can be found in crowded swimming pools at levels concerning for children because people's lotion, shampoo, deodorant, and lipstick can be washed into the pool. Avoid crowded pools.</p> +<p>The author says in the book that silicone is fine. However, make sure that it is not brightly colored, as the colorants may contain endocrine disruptors.</p> +<p>Dr. Jay's website and the products that he uses to avoid estrogenics can be viewed <a href="https://www.ajconsultingcompany.com/whatiuse.html">here</a>. <a href="https://www.ajconsultingcompany.com/plans.html">Here is a list of recommendations from the book</a>:</p> +<p>Eliminate foods and drinks that are in the category of or include:</p> +<ul> +<li>processed food</li> +<li>grains</li> +<li>soy and soy byproducts</li> +<li>flax</li> +<li>corn</li> +<li>peanuts</li> +<li>cheap coffee</li> +<li>cheap chocolate</li> +<li>canned food in metal cans*</li> +<li>artificial red food dyes*</li> +<li>liquids, oils (especially), and fats stored in plastic*</li> +<li>dairy and dairy products unless grass-fed</li> +<li>seafood unless wild-caught and from pristine waters</li> +<li>meat unless grass-fed and organic, preferably wrapped in wax paper</li> +<li>animal fats unless grass-fed and organic with no plastic contacts</li> +<li>chicken eggs unless free-range</li> +<li>water from the tap for drinking and cooking unless charcoal-filtered*</li> +</ul> +<p>*Similar to how food in metal cans can contain toxic metals like lead, some water bottles have toxic metals as well. Go for glass or stainless steel. Artificial red dyes should be avoided in the form of finger paints as well. For oils and fats, if you must store them in plastic, keep them cooler than room temperature. A company called Mountain Valley sells water in glass. A more long-term solution is to get a charcoal filter, specifically a reverse osmosis filter.</p> +<p>For many years, I would constantly breathe through my mouth. When I began to mostly eat meat, fruit, and honey instead of grains, I started to breathe through my nose.</p> +<p>My breathing continued to get more silent from other factors (see <a href="the-oxygen-advantage">this article</a>). Whenever I eat grains, I quickly notice that my breathing gets heavy.</p> +<p>Eliminate products with:</p> +<ul> +<li>ingredients that include “benz-” or “phen-”</li> +<li>lavender</li> +<li>fragrances in personal care products, laundry detergent, and dryer sheets unless Phthalate-Free, Paraben-Free, and Alkylphenol Free*</li> +</ul> +<p>*Travel and sleep with a pillowcase washed without fragrances.</p> +<p>Eliminate the following house-hold items:</p> +<ul> +<li>plastic shower curtains</li> +<li>vinyl flooring/tiling, wallpaper, and plastic countertops</li> +<li>standard industrial toilet paper (bamboo toilet paper and water are alternatives)</li> +<li>non-stick pans (even if they say PTFE-Free)</li> +<li>standard industrial bathroom hand-soaps</li> +<li>standard industrial hand sanitizer</li> +<li>candles except beeswax</li> +<li>carpets unless “Green-Label Plus” certified</li> +<li>polyester, nylon, acrylic, and rayon*</li> +<li>receipts (do not touch them)</li> +<li>plastic toys</li> +<li>plastic bowls, cups, sippies, and plastic-lined mugs</li> +<li>coffee makers unless glass and/or stainless steel</li> +<li>cleaning products unless Estrogenic-Free</li> +<li>sunscreen unless Estrogenic-Free zinc sunscreen</li> +</ul> +<p>*Polyester, nylon, acrylic, and rayon, commonly found in bedsheets, comforters, blankets, towels, and clothes, are all plastics. Use natural fibers like cotton. If you must choose between polyester and nylon, nylon is less estrogenic.</p> +<p>Miscellaneous elimination:</p> +<ul> +<li>oral contraception</li> +<li>cannabis</li> +<li>clear plastic braces (use metal ones)</li> +<li>water for showering unless charcoal-filtered</li> +<li>microwaving food in plastics*</li> +<li>moldy environments*</li> +</ul> +<p>*Do not heat up plastics. “Microwave-safe” means that the plastic won't crack or melt when heated, not that toxic chemicals won't be released. Do not leave plastic water bottles or containers in cars when it is sunny. Some points of interest for mold are under your kitchen and bathroom sinks, refrigerator filter draft lines, under or inside old refrigerators, behind walls where plumbing may have leaked, and other damp areas. Bacteria from butter can destroy some ZEA mold estrogen.</p> +<h2>Reasons to Care</h2> +<p>Fat cell growth and fat storage of estrogenics, depression, hormonal imbalances, immune system dysfunctions, various blood clotting complications, and certain types of cancer are all problems of artificial estrogen exposures. Not only do some issues with estrogenics affect the person exposed, they can affect later generations of the exposed. <q>I can tell you, scientists are taking this stuff very seriously. So. Should. You.</q> <cite>― Anthony G. Jay</cite></p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/fix-frogfind-content-display.html b/articles/fix-frogfind-content-display.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>How to Fix FrogFind's Incorrect Display of Websites | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="How to fix a website that FrogFind is unable to correctly display"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>How to Fix FrogFind's Incorrect Display of Websites</h1> +<hr> +<article> +<p><a href="http://frogfind.com/">FrogFind</a> would not load the information on my home page. However, other pages, such as the articles that I have written, would load. This was likely due to FrogFind using <a href="https://github.com/mozilla/readability">Mozilla's Readability library</a> to find the main content of a page.</p> +<p>Wrapping a &lt;main&gt; tag around the index page allowed FrogFind to properly detect the HTML. When I tried the same solution on my contact page, FrogFind was still unable to show its information. The work-around was to wrap it in an &lt;article&gt; tag.</p> +<p>The &lt;main&gt; tag tends to work more on pages with list items. If a page does not include lists, the &lt;article&gt; tag should be used.</p> +<h2>FrogFind Does Not Read Relative Paths Correctly</h2> +<p>On modern browsers, if <code>https://riazj.com/articles/fix-frogfind-content-display</code> is opened, any links on that page to another file like <a href="repairing-thinkpads-and-macbooks"><code>href="repairing-thinkpads-and-macbooks"</code></a> will be within the articles' folder because the current page is in that folder. With FrogFind, it will instead search from the root domain (<code>https://riazj.com</code>). This means that if one article links to another without stating the absolute path (<code>/articles/article-name</code>), FrogFind will look at <code>https://riazj.com/article-name</code>.</p> +<p>The solutions that I have found are to add a &lt;base&gt; tag in the &lt;head&gt; tag of the affected pages, or to type out the full path. Since the number of people visiting this site through FrogFind besides me is likely zero, I have decided to not change the articles' links.</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/format-html.html b/articles/format-html.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>I Quit Using Prettier to Format HTML | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="I switched from Prettier to Tidy, a minimal alternative, and realized that HTML indentation and line wrapping doesn't matter."> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>I Quit Using Prettier to Format HTML</h1> +<hr> +<article> +<p>Lugging a node_modules folder <a href="https://tsh.io/wp-content/uploads/2019/06/node-modules-app-performance_.png">larger</a> than the size of my website and installing a JavaScript package manager to get something as simple as an HTML formatter carries too much software complexity.</p> +<p>A less bloated alternative is <a href="https://www.html-tidy.org/">Tidy</a>. I decided against switching since it doesn't result in the same style of indentation and line wrapping as Prettier.</p> +<p>More recently, I considered how many websites I visit use Prettier's code style. Later, I realized even prettier.io's HTML, including its page <a href="https://prettier.io/users">highlighting its users</a>, doesn't follow its format! The author of Prettier doesn't use it for <a href="https://jlongster.com/">his own website</a>. If the author doesn't care, why should I?</p> +<h2>Options</h2> +<p>After making the switch, the options I use for Tidy are as follows:</p> +<pre>tidy -mq -wrap --tidy-mark no</pre> +<ul> +<li>-m: modify the input files</li> +<li>-q: suppress unnecessary output</li> +<li>-wrap: don't wrap text when a column number is not provided</li> +<li>--tidy-mark: whether to add a meta tag to show that Tidy was used</li> +</ul> +<p>I disable Tidy's line wrapping because I find it ugly, as shown below.</p> +<pre> +&lt;p&gt;paragraph +wrapped&lt;/p&gt;</pre> +<p>I would rather that it look more like this:</p> +<pre> +&lt;p&gt; + paragraph wrapped +&lt;/p&gt;</pre> +<p>I also don't use Tidy's automatic indentation since it spreads out short lines, turning this</p> +<pre>&lt;li&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/li&gt; +&lt;li&gt;&lt;a href="/links"&gt;Links&lt;/a&gt;&lt;/li&gt;</pre> +<p>into this less readable version.</p> +<pre> +&lt;li&gt; + &lt;a href="/"&gt;Home&lt;/a&gt; +&lt;/li&gt; +&lt;li&gt; + &lt;a href="/links"&gt;Links&lt;/a&gt; +&lt;/li&gt; +</pre> +<p>No indentation means the added benefit of smaller file sizes.</p> +<h2>Speed Comparison</h2> +<p>Running <code>bun prettier -w .</code> with <code>printWidth</code> set to 130 after my local copy of the website's files were formatted using Tidy resulted in <code>1.76s user 0.15s system 179% cpu 1.066 total</code>.</p> +<p>Running it again, meaning no files needed to be changed, resulted in <code>1.76s user 0.20s system 140% cpu 1.393 total</code>.</p> +<p>Running <code>find -name "*.html" -exec tidy -mq -wrap --tidy-mark no {} \;</code> with the files formatted using Prettier resulted in <code>0.02s user 0.04s system 88% cpu 0.068 total</code>.</p> +<p>Running the command again resulted in <code>0.02s user 0.03s system 97% cpu 0.050 total</code>.</p> +<p>This means that Tidy can format my website's HTML around fifteen times faster than Prettier.</p> +<h2>Conclusion</h2> +<p>Don't let small differences stop you from switching to more minimal software.</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/how-to-start-calisthenics.html b/articles/how-to-start-calisthenics.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>How to Start Calisthenics | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Beginner's guide to calisthenics and how to create your own workout plan"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>How to Start Calisthenics</h1> +<hr> +<article> +<h2>The Program</h2> +<p>Create a workout plan. Choose pushing, pulling, and lower body movements like pushups or dips, chinups or pullups, and squats or lunges.</p> +<p>If you do not have the strength for those exercises, select an easier variation like inclined pushups, rows, or assisted squats.</p> +<p>If it gets too easy, increase the difficulty of pushing exercises by going slowly. Wear a weighted vest or backpack with books. Incline your feet. For pulling movements, pause at the top. Find another variation of squats, like pistol squats or Bulgarian squats.</p> +<p>If you do not have a pullup bar, use two elevated surfaces, like the seats of two chairs or small coffee tables, and place a stick, broom, or mop on top. Go under the stick and perform rows. Raise your legs with a chair to make it more difficult. This exercise is more challenging the higher the stick is. Another option is to go under a table and do an inverted row. If all of these do not work, try reverse elbow pushups.</p> +<h2>Execution</h2> +<p>To avoid calluses and blisters from pulling exercises, grip the bar along the line that separates your fingers from your palm (the base of your fingers). Do not grip the bar with your palms.</p> +<p>Aim for 10 to 20 sets for each of the three compound movements (pushups, pullups, and squats) per week, depending on how fast you can recover from your workout. For every set that you perform, go near failure.</p> +<p>Rest for 1.5 to 3 minutes between sets. The amount of time should be sufficient to repeat a similar amount of effort as the previous set.</p> +<p>If you feel some soreness after multiple days or weeks of doing the same exercise, change it for a similar variation. Small changes can be enough to remove the discomfort. Pushups can be swapped for diamond pushups, chinups for closed-grip chinups, etc.</p> +<p>Find the correct form of the exercise you choose to do. Value form over reps. Complete your workout plan 3 to 7 times per week. Here is an example of a workout plan:</p> +<p>2 sets of squats until failure<br> +2 sets of dips until failure<br> +2 sets of chinups until failure<br> +Days per week training: 7<br> +Total time per workout: 30 minutes<br> +Total number of sets per week per compound movement: 14</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/installing-alpine-linux.html b/articles/installing-alpine-linux.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Notes on Installing Alpine Linux | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Notes on boot partitions, PipeWire, window managers, and recovering deleted partitions on Alpine Linux"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Notes on Installing Alpine Linux</h1> +<hr> +<article> +<p>After using Alpine, I still recommend Arch/Artix for desktop usage. For use on servers, Alpine is worth a try, as it uses less memory and space.</p> +<p>With more effort required to get audio working with PipeWire, partition scheming issues, and at times, unclear documentation, Alpine falls short for desktop usage. Arch has the AUR and extensive documentation.</p> +<h2>Partition Scheme</h2> +<p>Alpine's wiki says that only a root partition is required. Despite this, all example partition schemes mention a boot partition. I could not get it to start without one.</p> +<p>Even when I was able to boot, that partition never seemed to get mounted, and errors were shown.</p> +<p>Format your drive and reboot before doing the rest of the installation, as the new partitions might not be shown until rebooting.</p> +<h2>Using a Window Manager</h2> +<p>If your mouse and keyboard do nothing when starting a WM, run the following commands:</p> +<pre> +adduser $USER input +adduser $USER video</pre> +<p>If startx results in an error saying that it is "giving up" and a display server cannot be found, running startx with root permissions might work. A better solution is to delete the .Xauthority and .xinitrc files and recreate them as a non-root user.</p> +<h2>Recovering Nuked Partitions</h2> +<p>I deleted and recovered my home partition twice while I was trying to get the installation to work. In this case, run <code>apk add testdisk</code>. After starting testdisk, select "Proceed" and "Analyze" on the deleted partition.</p> +<h2>Resources</h2> +<ul> +<li><a href="https://docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html">Installation with manual partitioning</a></li> +<li><a href="https://wiki.alpinelinux.org/wiki/Wi-Fi">Connecting to Wi-Fi during installation</a></li> +<li><a href="https://wiki.alpinelinux.org/wiki/Filesystems">File system tools for formatting</a></li> +<li><a href="https://wiki.alpinelinux.org/wiki/PipeWire">Setting up PipeWire</a></li> +<li><a href="https://wiki.alpinelinux.org/wiki/Dwm">Setting up DWM</a></li> +</ul> +<h2>Update: 2025 Jan 4th</h2> +<p>I installed Alpine without overwriting my home partition by doing the following instead of following the <a href="https://docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html">manual installation guide</a> that is linked above:</p> +<pre> +fdisk /dev/sda +reboot +apk add e2fsprogs +mkfs.ext4 /dev/sdaX # repeat for new partitions, with X being the number of the partition +setup-alpine # answer "none" when asked where to install +mount -t ext4 /dev/sda3 /mnt # replace 3 with the number of the root partition +mkdir /mnt/boot +mount -t ext4 /dev/sda1 /mnt/boot # replace 1 with the number of the boot partition +mkdir /mnt/home +mount -t ext4 /dev/sda2 /mnt/home # replace 2 with the number of the home partition +setup-disk -m sys /mnt +reboot</pre> +<p>When mounting the boot partition, there were no errors. I double-checked by rebooting and, again, found no errors.</p> +<p>However, after compiling dwm and st and rebooting, the files in the /boot folder were removed. I got the same errors with the boot partition as before.</p> +<p>Having more steps to set up PipeWire is not as big of a problem as what I mentioned. Since Alpine is minimal, it is expected that adding programs would require more configuration. Running <code>apk add alsa-utils alsaconf</code> is enough to get working audio with <a href="https://wiki.alpinelinux.org/wiki/ALSA">ALSA</a>, assuming that the user is in the audio group.</p> +<p>When I reinstalled Artix, I decided on <s>only using ALSA without PipeWire and</s> using dinit instead of OpenRC. It starts up a lot faster than OpenRC, but there is less documentation for it since it is newer.</p> +<p>I switched back to using PipeWire after I had trouble recording with my microphone.</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/installing-artix-linux.html b/articles/installing-artix-linux.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Notes on Installing Artix Linux | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Notes on installing Artix Linux regarding disk label types and Wi-Fi"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Notes on Installing Artix Linux</h1> +<hr> +<article> +<p>A joke could be made about the <a href="stop-taking-hot-showers">previous article</a> being about showering and this article being about installing an Arch-based distribution. Anyway, here are some things I learned while installing Artix.</p> +<h2>Setting the Disk Label Type</h2> +<p>On Legacy BIOS systems, it is easier to install Artix when the disk label type of the drive that Artix is being installed on is <code>dos</code> instead of <code>gpt</code>. This can be changed using <code>fdisk /dev/sdX</code> with the <code>o</code> command.</p> +<p>Note that creating a new label will remove the data on the partition. Tools like testdisk can be used for recovering partitions.</p> +<p>Make sure that the boot partition, the first partition, is made bootable with the <code>a</code> command.</p> +<h2>Connecting to Wi-Fi</h2> +<p>If iw and wifi-menu are not installed, run the following commands:</p> +<pre> +rfkill unblock wifi +connmanctl +connmanctl&gt; agent on +connmanctl&gt; scan wifi +connmanctl&gt; services +connmanctl&gt; connect wifi_what_your_service_path_is</pre></article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/mewing-and-orthotropics.html b/articles/mewing-and-orthotropics.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Mewing and Orthotropics | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="How to mew and the benefits of it"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Mewing and Orthotropics</h1> +<hr> +<article> +<h2>Orthotropics</h2> +<p>Orthotropics is a branch of dentistry that focuses on fixing oral posture to fix misalignment with the teeth by guiding facial growth.</p> +<h2>Mewing</h2> +<p>Mewing is a set of practices recommended by John and Mike Mew, two British orthodontists. The benefits include correcting malocclusion (bite problems), better neck and shoulder posture, a stronger jaw, better breathing, decreased snoring and drooling, and thus, higher quality sleep. The steps of mewing are:</p> +<ol> +<li>Keep your lips together and relaxed with your mouth closed, ensuring that you are only breathing through your nose. <a href="the-oxygen-advantage">Your breath should be abdominal (not from the chest but instead the stomach), gentle, and silent</a>.</li> +<li>Place your tongue, including the middle and back of it, on the roof of your mouth. Your tongue should be touching the palate evenly. It should not be touching your front teeth. Instead, it should be slightly behind. Your tongue should not be pushing against the roof of your mouth, but only resting. If you are doing this incorrectly, you might notice a bulge between your neck and chin. To get the correct position, make a continuous “n” sound while following the next step below and moving your tongue to the roof of your mouth.</li> +<li>Keep your teeth together, gently touching without grinding. The top layer should not be directly on top of the bottom layer. Instead, when observing a side view of your teeth, the points of each top tooth should rest in between the gap between two of your lower teeth when biting down. Place your bottom front teeth slightly behind your front upper teeth with the top two front teeth not touching the bottom two front teeth.</li> +<li>Stand straight with your shoulders back, head held high and aligned with your neck and spine, and the heels of your feet pushed inwards to prevent your knees from slouching forward. When eating and bringing food to your mouth, do not lean your head or back forward. Keep your head and back straight. Rest your hands on your lap instead of the table. Do not sit for longer than three hours a day. However, squatting is fine.</li> +<li>When saliva starts to build up, swallow, as this can make it easier for the tongue to stay in the same correct position.</li> +<li>While swallowing, only use your tongue to sweep up and back instead of your cheeks or other facial muscles. Your tongue should not be between your teeth. When eating, don't use your cheeks or lips to push food. Chew evenly on both sides.</li> +<li>You do not need to keep your tongue on the roof of your mouth while talking or chewing.</li> +<li>Get your tongue into the correct position right before sleeping to make sure that your tongue does not fall. Sleep on your left or right side, never your stomach or back.</li> +</ol> +<p>Sources: The International Association of Facial Growth Guidance, Buteyko Clinic International</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/phones-increase-cancer-rates.html b/articles/phones-increase-cancer-rates.html @@ -0,0 +1,42 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Cell Phones Increase Cancer Rates | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Radiation from phones can cause brain cancer, DNA damage, oxidative stress, immune dysfunction, altered brain development, damaged reproduction, sleep changes, hyperactivity, and memory damage."> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Cell Phones Increase Cancer Rates</h1> +<hr> +<article> +<p>Radiation from phones can cause brain cancer, DNA damage, oxidative stress, immune dysfunction, altered brain development, damaged reproduction, sleep changes, hyperactivity, and memory damage.</p> +<h2>How to Reduce Exposure</h2> +<ul> +<li>Do not keep phones near your body or head.</li> +<li>Do not leave laptops on your lap.</li> +<li>Do not put a phone in your pocket unless the batteries have been taken out.</li> +<li>While on calls, hold the phone away and use speakerphone mode or a wired headset (not Bluetooth).</li> +<li>Move the phone away from you when sending a text.</li> +<li>Use airplane mode when not using Wi-Fi, Bluetooth, cellular data, or hotspots.</li> +<li>Do not use phones when there are two or less service bars for signal strength.</li> +<li>Do not use phones while inside cars, buses, trains, airplanes, or elevators.</li> +<li>Do not charge electronic devices near your bed or workspace.</li> +<li>Do not stare into the soul of a microwave as it cooks while next to it.</li> +<li>Delete any unused apps on phones.</li> +<li>Turn off automatic updates on phones.</li> +<li>Turn off the Wi-Fi router at night.</li> +<li>Use a battery powered alarm instead of electronic ones.</li> +<li>Use a corded home landline instead of a phone.</li> +<li>Use an Ethernet cord to connect to the internet.</li> +</ul> +<p>Source: Environmental Health Trust</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/powerschool-absence.html b/articles/powerschool-absence.html @@ -0,0 +1,103 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Unable to Submit PowerSchool Absence Reports | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Set the absence report as for the whole day."> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Unable to Submit PowerSchool Absence Reports</h1> +<hr> +<article> +<p>If you can't submit an attendance report on PowerSchool and the absence is not for the full day, set it as a full day anyway until the problems discussed here get solved. Include that the form could not be submitted otherwise in the explanation.</p> +<p>The downside of this is that the classes for that day will be marked according to the form, even if they were attended.</p> +<p>If you can't edit an attendance report after submitting it, inspect the "Edit" button, and remove <code>disabled="disabled"</code> from the HTML.</p> +<h2>Anguish</h2> +<p>How is it that PowerSchool, used by over 60 million students, 18 thousand school organizations, and 90+ countries, also a winner in primary and secondary categories of Tech & Learning’s Awards of Excellence for 2022, is not able to allow its users to easily submit an absence form or edit their submitted reports?</p> +<p>Whenever I pressed on "Submit", instead of an error message, my only indication that something was wrong was nothing happening.</p> +<p>PowerSchool is focused on making money. If these problems don't cause them to lose money, why have employees who are paid by the hour spend time solving them?</p> +<h2>Reporting Problems to PowerSchool</h2> +<p>I can report these problems by</p> +<ol> +<li>submitting a security vulnerable form, which this isn't</li> +<li>contacting their general service support, likely taking multiple weeks of back-and-forth emails to get someone able to solve this</li> +<li>creating an account to write to their community discussion, which might not get anywhere considering that it is for general ideas about improving the service and not technical bugs</li> +</ol> +<p>All of these are not great options, so I wrote this in case someone experiences the same issue.</p> +<h2>The Origins of These Problems</h2> +<h3>Submitting an Absence Form</h3> +<p>I filled out the form with the following information:</p> +<p>Absence Date: 12/3/2024<br> +Leave second date empty if only reporting single day absence.<br> +What is the reason for the absence?: Travel<br> +Is this absence for the whole day?: No<br> +Explanation: Blah, blah, not important for this example, blah, blah, blah.</p> +<p>The "Submit" button calls the <code>submitRequest</code> function.</p> +<pre>&lt;button ng-click="submitRequest()" ng-show="input.id &lt; 0"&gt;Submit&lt;/button&gt;</pre> +<p>This function calls the <code>isValidForm</code> function. In that function, it calls multiple functions to check if the form is valid.</p> +<pre> +$scope.isValidForm = (isOnSubmit) =&gt; { + $scope.resetFormErrors() + + for (const k in $scope.formErrors) { + $scope.formErrors[k] = 0; + } + + let valid = $scope.input.dateStart !== ""; + valid = $scope.verifyReason(valid) + valid = $scope.verifyDates(valid) + valid = $scope.verifyExplination(valid) + valid = $scope.verifyTimes(valid) + + if(!isOnSubmit) { + for (const k in $scope.formErrors) { + $scope.formErrors[k] = 0; + } + } + + return valid; +}</pre> +<p>The <code>verifyTimes</code> function returns that it is valid if the absence is for the entire day. Otherwise, it performs multiple checks that do not seem to be written correctly, as my form was not able to submitted until I set that it was for the whole day.</p> +<pre> +$scope.verifyTimes = (valid) =&gt; { + if($scope.input.allday == "1") { + return true; + } + + $scope.formErrors.timesRequired = 0; + + if($scope.input.timeStart.length == 0 || $scope.input.timeEnd.length == 0) { + $scope.formErrors.timesRequired = 1; + return false + } + + const startSeconds = apiam.timeToSeconds($scope.input.timeStart); + const endSeconds = apiam.timeToSeconds($scope.input.timeEnd); + const bridgeStart = Number($scope.bridgePeriodInfo.daily_time_in_default) + const bridgeEnd = Number($scope.bridgePeriodInfo.daily_time_out_default) + + // check if neither of the start or end time entered falls in the bridge period default time + if(!( + (bridgeStart &lt;= startSeconds &amp;& startSeconds &lt;= bridgeEnd) || + (bridgeStart &lt;= endSeconds &amp;& endSeconds &lt;= bridgeEnd) + )) { + $scope.formErrors.invalidTime = 1; + return false + } + + return true +}</pre> +<h3>Editing an Absence Report</h3> +<p>The button to edit a report looks like this:</p> +<pre>&lt;button ng-if="canCreate" ng-disabled="!canEdit || !r.canEdit" disabled="disabled"&gt;Edit&lt;/button&gt;</pre> +<p>It is not possible to use the button unless you inspect the HTML and remove the part that says <code>disabled="disabled"</code>.</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/repairing-thinkpads-and-macbooks.html b/articles/repairing-thinkpads-and-macbooks.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Notes on Repairing ThinkPads and MacBooks | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Notes on repairing MacBooks and replacing the memory modules and thermal paste of ThinkPad X220s"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Notes on Repairing ThinkPads and MacBooks</h1> +<hr> +<article> +<h2>Apple Makes Products Difficult to Repair</h2> +<p>Recently, I found a MacBook from 2010 in a cabinet. It would not start up, so I put in the charger. However, the end of the charger did not light up.</p> +<p>I assumed, if the charger was not working and the MacBook would not start, that there was a problem with the battery. I found an article talking about taking the battery out and back in to restart it, and another article detailing the process.</p> +<p>The article said to use a Philip head screwdriver. When I tried to unscrew the laptop, the screws would not budge. I realized that it was using Pentalobe screws.</p> +<p>Pentalobe screws are uncommon outside of Apple products. If I wanted to repair the MacBook, I would need to go to an Apple Store. Since I did not need this laptop, I put it back.</p> +<p>The expectation is that customers buy their latest product every few years. <a href="https://www.gnu.org/proprietary/malware-apple.html">Behavior like this is expected from Apple.</a></p> +<h2>Twelve-Year-Old ThinkPads Continue to Work</h2> +<p>Around a year ago, I got a ThinkPad X220i for $88 (~$101 with shipping and taxes). Since then, I replaced the battery, RAM sticks, and thermal paste. Replacing the battery is a <a href="https://www.ifixit.com/Guide/MacBook+Pro+16-Inch+2019+Battery+Replacement/135185">two to four hour process</a> on a MacBook but <a href="https://www.ifixit.com/Guide/Lenovo+ThinkPad+X220+Battery+Replacement/71739">fifteen seconds</a> on a ThinkPad. Here are some things I learned from doing these repairs.</p> +<h2>Replacing the Memory Modules</h2> +<p>After sliding a new module in, press the left and right edges forward to make sure that it has fully moved in. If the RAM sticks are not placed in correctly, the ThinkPad will beep a few times when powering on to show that it cannot detect them.</p> +<p>To check if the memory modules you are buying are compatible, see if the DDR memory is the same type as the memory that is already installed on your computer. I made the mistake of getting modules with DDR4 when my ThinkPad supports DDR3.</p> +<p>Make sure that your laptop supports the speed of the new RAM sticks. On a ThinkPad X220 with BIOS versions 1.28 and below, RAM speeds up to 1866 MHz work. On versions 1.29 and above, the speed is capped at 1333 MHz. Information about upgrading, repairing, compatibility, and changing the BIOS versions of ThinkPad X220s are available <a href="https://x220.mcdonnelltech.com/resources/">here</a>.</p> +<h2>Replacing the Thermal Paste</h2> +<p>When clamping the blue ribbon for the palm rest and placing back in other parts like the keyboard, place it in at a 45° angle instead of head-on so that it fits properly.</p> +<p>Inside the laptop, there might be some black tape. Hold onto it. It can come in handy for holding down the wires when putting everything back together.</p> +<p>It is likely that the screw over the Wi-Fi card is stripped or broken. In this case, try to loosen it with pliers. If that does not work, get an extractor kit for broken bolts.</p> +<p>After removing the screw, I taped the card down. However, I lost connection, seemingly at random. I decided on gluing down the card, which worked. The black wire is not required for connecting to Wi-Fi; only the silver one is.</p> +<p>To remove the VGA port's bolts, take pliers and place one end of it inside the bolt and the other on the side. Twist the pliers to the left to loosen it. To place it back, insert it and twist to the right.</p> +<p>If the tab for the hard drive is unreachable, it can be removed later when the computer is opened. Have the hard drive's captive cover removed during this.</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/stop-taking-hot-showers.html b/articles/stop-taking-hot-showers.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Stop Taking Hot Showers | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Hot showers can irritate your skin, worsen acne, damage cells responsible for protecting your hair, and harm your reproductive health."> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Stop Taking Hot Showers</h1> +<hr> +<article> +<p>Hot showers can irritate your skin, worsen acne, damage cells responsible for protecting your hair, and harm your reproductive health. Since hot showers are comfortable, you are more inclined to take longer showers. This can waste gallons and gallons of water compared to taking a quick cold shower.</p> +<p>Cold showers can increase alertness, improve your mood throughout the day, and allow you to be more resilient to colder temperatures. Cold showers can build willpower through exposure to something uncomfortable. Set the shower as cold as you can.</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/technology-i-use.html b/articles/technology-i-use.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Technology I Use and Recommend | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Applications, browser extensions, services, and other technologies I use and recommend"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Technology I Use and Recommend</h1> +<hr> +<article> +<h2>Graphical Applications</h2> +<ul> +<li><a href="https://librewolf.net/">LibreWolf: Web Browser</a></li> +<li><a href="https://st.suckless.org/">ST: Simple Terminal</a></li> +<li><a href="https://dwm.suckless.org/">DWM: Dynamic Window Manager</a></li> +</ul> +<h2>Browser Extensions</h2> +<ul> +<li><a href="https://decentraleyes.org/">Decentraleyes: Reduce Tracking with CDN Emulation</a></li> +<li><a href="https://istilldontcareaboutcookies.com/">I still don't care about cookies: Block Cookie Banners</a></li> +<li><a href="https://github.com/gorhill/uMatrix">uMatrix: Block Content and Requests</a></li> +<li><a href="https://addons.mozilla.org/en-US/firefox/addon/tridactyl-vim/">Tridactyl: Vim Keyboard Shortcuts</a></li> +<li><a href="https://languagetool.org/">LanguageTool: Spelling, Grammar, and Sentence Structure Errors</a></li> +</ul> +<h2>Terminal Applications</h2> +<ul> +<li><a href="https://w3m.sourceforge.net/">w3m: Web Browser</a></li> +<li><a href="https://neovim.io/">Neovim: Text Editor</a></li> +<li><a href="https://www.passwordstore.org/">Pass: The Standard Unix Password Manager</a></li> +<li><a href="https://github.com/astier/xhidecursor">xhidecursor: Hide the Cursor on Keypress</a></li> +</ul> +<h2>Online Services</h2> +<ul> +<li><a href="https://docs.searxng.org/">SearXNG: Search Engine</a></li> +<li><a href="https://matrix.org/try-matrix/">Matrix: Encrypted Messaging</a></li> +<li><a href="https://www.nearlyfreespeech.net/">NearlyFreeSpeech: Domain Registration and Hosting</a></li> +</ul> +<h2>Operating System and Hardware</h2> +<ul> +<li><a href="https://artixlinux.org/">Artix Linux: OS</a></li> +<li>Thinkpad X220i: Laptop</li> +</ul> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/the-oxygen-advantage.html b/articles/the-oxygen-advantage.html @@ -0,0 +1,83 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>The Oxygen Advantage | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Summary of The Oxygen Advantage: Simple, Scientifically Proven Breathing Techniques by Patrick McKeown Contains: the problems with over breathing, identifying it, and solving it"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>The Oxygen Advantage by Patrick McKeown</h1> +<h2>Simple, Scientifically Proven Breathing Techniques</h2> +<hr> +<article> +<h2>The Benefits of Light Breathing</h2> +<p>A study at the Mater Hospital in Brisbane found that when breathing volume decreased, symptoms of asthma among adults decreased by 70 percent, the need for rescue medication decreased by 90 percent, and the need for preventer steroid medication decreased by 50 percent.</p> +<p>Coughing, wheezing, chest tightness, and breathlessness all decreased. However, the trial's control group who were taught the hospital's own asthma treatment program experienced no progress.</p> +<h2>Are You Over Breathing?</h2> +<p>Answering “yes” to some or all of the following questions indicates over breathing:</p> +<ul> +<li>Do you breathe through your mouth during the day?</li> +<li>Do you breathe through your mouth during deep sleep? You can tell if you wake up with a dry mouth.</li> +<li>Do you snore or stop breathing during sleep?</li> +<li>Can you visibility notice your breathing while resting? While breathing, look at the movements of your chest or abdomen.</li> +<li>When watching your breathing, do you see more movements from the chest than the abdomen?</li> +<li>Do you frequently sigh?</li> +<li>Do you hear your breathing while resting?</li> +<li>Do you experience a clogged nose, tightened airways, fatigue, dizziness, or light-headedness?</li> +</ul> +<h2>Consequences of Over Breathing</h2> +<p>Over breathing contributes to anxiety, asthma, fatigue, insomnia, heart problems, and obesity. Mouth breathing increases the risk of forward head posture, reduced respiratory strength, general dehydration, dental cavities and gum disease, bad breath, a narrow face, an underdeveloped jaw, reduced airway size, snoring, and obstructive sleep apnea.</p> +<p>As you should be eating a healthy amount of food, you should be breathing a healthy amount of air.</p> +<h2>How to Stop Over Breathing</h2> +<p>Access your Body Oxygen Level Test (BOLT) score to see how much improvement needs to be made. The time that gives the most accurate result is in the morning after waking. Follow these steps:</p> +<ol> +<li>Breath in through your nose and breath out through your nose.</li> +<li>Pinch your nose to prevent air from entering your lungs.</li> +<li>Count the amount of time it takes until you feel that you want to breathe again or the first stresses of your body wanting you to breathe (e.g., stomach moving in and out repetitively in fast succession).</li> +</ol> +<p>This test is not to see how long you can hold your breath but, instead the time it takes for you to react to the lack of air. If you take a long time to stabilize your breath afterward, you likely held it for too long. Aim to improve your BOLT score to 40 seconds. To improve your BOLT score, follow these steps:</p> +<ul> +<li>Always breathe through your nose.</li> +<li>Do not sigh. Hold your breath for 10 to 15 seconds if you realize you have sighed only after the fact.</li> +<li>Avoid large breaths when yawning (suppress them altogether) and talking. If you can hear your breathing while talking, talk slower and use shorter sentences. Take a gentle breath through your nose between sentences.</li> +<li>Throughout the day, focus on your breathing*. Keep your breaths silent, unnoticeable, and from the abdomen instead of the chest. Do not puff out your chest or raise your shoulders while breathing. When breathing in, your stomach should go out. When breathing out, your stomach should go in.</li> +<li>Exercise consistently, and continue to breathe lightly during it, as described above.</li> +<li>Do not eat foods that can cause persistent, noisy breathing. (See <a href="estrogeneration">estrogenic foods</a>)</li> +<li>Follow the exercises below. Make sure that you have given yourself enough time to rest after eating so that your breathing is not too heavy. (People with serious health concerns should not partake in the breath-holding exercises.)</li> +</ul> +<p>*Directing your thoughts on your inhaling and exhaling, which prevents your mind from wandering, can increase mindfulness, focus, productivity, creativity, reaction time, mood, and overall cognitive function. When your thoughts are not on breathing, ask yourself if they are out of habit or working towards your goal. Anxiety is linked to worry from over-thinking, and many of the repetitive thoughts we have are worrying about the past or future.</p> +<h2>How to Unblock a Stuffy Nose</h2> +<ul> +<li>Take a small breath through your nose and exhale through your nose.</li> +<li>Pinch your nose with your fingers to hold your breath.</li> +<li>Count how paces you are able to walk while trying to get as many as possible.</li> +<li>When you begin to breathe again, only breathe through your nose. Return to your normal pace of breathing as soon as possible.</li> +<li>Make your second and third breath more gentle by stifling them.</li> +</ul> +<p>Return to normal breathing in two or three breaths. If your breathing continues to be heavy, you have held your breath for too long.</p> +<h2>How to Breathe Through Your Nose at Night</h2> +<p>For those struggling with a dry mouth upon awakening, mouth breathing at night, sleep apnea, or snoring, tape your mouth before going to bed. If your nose gets stuffy at night, your jaw is strong enough to open your mouth despite the tape. To easily take off the tape, place it on your hand and remove it multiple times to decrease its stickiness.</p> +<p>The author recommends 3M Micropore tape for this purpose. Additional measures to improve your sleep and have proper breathing include following <a href="why-we-sleep">this</a> guide on sleep and <a href="mewing-and-orthotropics">this</a> guide on mewing.</p> +<h2>Breath Holds During Walking</h2> +<p>Once you have warmed up, hold your breath until you have a medium to strong desire for air. For 15 seconds, take short breaths. After 30 seconds, repeat this process. Repeat these breath holds 8 to 10 times. For a more challenging version of this, take a <em>tiny</em> breath after the breath hold and continue holding your breath for 10 steps. Repeat this for one to two minutes.</p> +<h2>Breath Holds During Running and Cycling</h2> +<p>Do the same as above, except for giving yourself a longer period (about a minute) until your breathing has partially recovered before repeating the exercise. While cycling, have the goal of holding your breath for 5 to 15 pedal rotations instead of basing it on how strong of a desire you have for air.</p> +<h2>Breath Holds During Swimming</h2> +<p>Gradually increase the number of strokes between breaths.</p> +<h2>Stabilizing the Breath after Exercise and Improving Concentration</h2> +<p>While walking, exhale through your nose. Pinch your nose for two to five seconds. Breathe for ten seconds. Repeat this three times or more. This exercise can also manage stress.</p> +<h2>Checking the Efficiency of Your Breath During Exercise</h2> +<p>Check your BOLT score before exercising, exercise, and check your bolt score again. A BOLT score that is higher than it was before indicates proper breathing during exercise. If the opposite is true, put more emphasis on controlling your breathing during exercise. Breathing lightly before exercising can reduce the risk of exercise-induced asthma.</p> +<h2>Advice to People Undergoing Orthodontic Treatment</h2> +<p>Teeth extractions are common. By extracting teeth and pulling the front teeth back, the face can appear caved in, and the nose and chin to be more prominent. This can cause problems with the joint of the jaw, decreasing airway size and one's ability to breathe. Overcrowding of teeth is more likely caused by having a small jaw (caused by mouth breathing or thumb sucking) rather than large teeth.</p> +<p>Ask your orthodontist how many permanent teeth will be removed now and later. Inquire about their confidence regarding avoiding an increase in the vertical growth of the face. Functional orthodontists (<a href="mewing-and-orthotropics">orthotropics</a>) are an alternative to traditional orthodontists.</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/articles/why-we-sleep.html b/articles/why-we-sleep.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Why We Sleep | Riaz's Website</title> +<link rel="stylesheet" href="/style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="Summary of Why We Sleep: Unlocking the Power of Sleep and Dreams Contains: sleep assessments, the consequences of poor sleep, benifits of sleep, tips to improve sleep, and the natural way of sleeping"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Why We Sleep by Matthew Walker</h1> +<h2>Unlocking the Power of Sleep and Dreams</h2> +<hr> +<article> +<h2>Consequences of Poor Sleep</h2> +<p>A weak immune system, double the risk of cancer, Alzheimer's disease, disruption of blood sugar to the point of being considered pre-diabetic, obesity, distortion of genes, psychiatric conditions (depression, anxiety, and suicidality), slower reaction times, reproductive issues, and blocked and brittle coronary arteries, which can lead to cardiovascular disease, stroke, and heart failure, are all correlated or caused by frequently getting less than six or seven hours a night.</p> +<h2>Do You Need More Sleep?</h2> +<p>Do you remember the last time you woke up without an alarm clock, feeling well-rested without caffeine? After waking up in the morning, could you fall back asleep at ten or eleven a.m.? If your answer to the first question is “no” and the answer to the second is “yes,” you probably need more sleep. <a href="https://ncbi.nlm.nih.gov/pmc/articles/PMC3902880/bin/aasm.37.1.9s1.tif">Here</a> is a questionnaire, called SATED, developed by sleep researchers with the aim of determining sleep satisfaction. It contains five simple questions:</p> +<ul> +<li>“Satisfaction: Are you satisfied with your sleep?</li> +<li>Alertness: Do you stay awake all day without dozing?</li> +<li>Timing: Are you asleep (or trying to sleep) between 2:00 a.m. and 4:00 a.m.?</li> +<li>Efficiency: Do you spend less than 30 minutes awake at night? (This includes the time it takes to fall asleep and awakenings from sleep.)</li> +<li>Do you sleep between 6 and 8 hours per day?”</li> +</ul> +<p>Tally your score from 0 to 10, with each question giving 0 for rarely/never, 1 for sometimes, and 2 for usually/always.</p> +<h2>Benefits of Sleep</h2> +<p>Lowered food cravings, depression, and anxiety, protection from cancer, dementia, colds, heart attacks, strokes, diabetes, and the flu, enhanced life-span, happiness, memory, creativity, physical performance, testosterone in men, and attractiveness are all benefits of sleep.</p> +<h2>How to Improve Your Sleep</h2> +<ol> +<li>Go to bed and wake up at the same time every day.</li> +<li>Exercise for at least thirty minutes a day. Do not exercise later than two to three hours before bed.</li> +<li>Early in the morning, get at least thirty minutes of sunlight. Use bright lights in the morning. If you continue to have difficulty falling asleep, try getting at least one hour of sunlight. Two to three hours outside is recommended for decreasing the risk of blindness (myopia) later in life.</li> +<li>Avoid caffeine from coffee, certain teas, energy drinks, dark chocolate, ice cream, weight-loss pills, and pain relievers. Caffeine has a half-life of five to seven hours, and even the remaining 50 percent of the caffeine can prevent sleeping easily. Decaffeinated does not mean non-caffeinated, as it can have 15 to 30 percent of the dose of regular coffee. Nicotine is also a stimulant.</li> +<li>Avoid alcohol.</li> +<li>Avoid large meals and drinks at night. Make sure not to go to bed hungry, either. Drinking fluids at night can cause late-night trips to the bathroom.</li> +<li>Avoid medicines that delay sleep. Heart, blood pressure, asthma medications, and some over-the-counter and herbal remedies for coughs, colds, or allergies, can disrupt sleep patterns.</li> +<li>Don't take naps in the late afternoon or later unless you plan on delaying your bedtime.</li> +<li>Relax before bed. Avoid blue lights from technology and other artificial lights two to three hours before bed. Leave phones, computers, and TVs outside the bedroom. Place clocks in a place not easily visible to prevent yourself from worrying about the time as you try to sleep.</li> +<li>A drop in body temperature signals to the body that night is approaching. A few hours before bed, set the thermostat at 65 °F (18.33 °C) to 68 °F (20 °C). Use a light amount of bedding. Splash water on the face to remove heat from the surface of the skin as it evaporates, and thus, cool the inner body core.</li> +<li>Keep your bedroom dark and without noise.</li> +<li>Don't lie in bed awake. If you have been in bed for more than twenty minutes or are beginning to feel anxious, get up to do something relaxing.</li> +<li>Do not press snooze on your alarm. It can spike your blood pressure and cause a shock acceleration in your heart rate when you wake up.</li> +<li>Do not follow diets with many carbs and sugars.</li> +<li>Follow the principles of <a href="mewing-and-orthotropics">orthotropics</a>. Some characteristics of sleep apnea are ADHD, gasping for air during sleep, snoring, and awakening with a dry mouth. Symptoms of ADHD are observed to disappear after solving sleep apnea. People diagnosed with ADHD are prescribed pills that make them stay alert. However, it is likely that they need higher-quality sleep.</li> +<li>Avoid sleeping pills. They can cause next-day grogginess, daytime forgetfulness, sleepwalking, and slower reaction times. There was a study showing that sleeping pills result in “rather small and of questionable clinical importance.” In another study, a sample of over 30,000 people found that those taking sleeping pills were 4.6 times more likely to die over the two-and-a-half-year period of the test than those who were not using sleeping pills. Heavy users (more than 132 pills per year) were 5.3 times more likely to die over the study period. Those who were taking only eighteen pills per year were 3.6 times more likely to die during this time. The causes are linked to infection from poor immunity and fatal car accidents, all signs of poor sleep.</li> +<li>Follow the sleep schedule mentioned under the next sub-heading.</li> +</ol> +<h2>Understanding Natural Sleep</h2> +<p>Time in bed is not the same as time asleep. Healthy teenagers have a sleep efficiency of about 95 percent. Octogenarians have a sleep efficiency below 70 or 80 percent. Good-quality sleep efficiency is 90 percent or above. With a sleep efficiency of 90 percent, 9 hours in bed would be 8.1 hours of sleep.</p> +<p>The natural way of sleeping found in tribes is to go to bed around two to three hours after sunset and to wake up at dawn. Sleep that occurs early in the night consists of deeper sleep. People in tribes usually get 7 to 8.5 hours of sleep opportunity.</p> +<p>However, there was a study showing that a tribe was getting 6 to 7.2 hours of sleep. The problem with this is that the devices used were not precise or standard for sleep measurement.</p> +<p>People in tribes have a biphasic sleep schedule in the summer and a more monophasic schedule in the winter. During the summer, hunter-gather tribes like the Gabra in northern Kenya or the San people in the Kalahari Desert take a nap in the afternoon for 30 to 60 minutes. Tribes like the Hadza in northern Tanzania or the San of Namibia have naps for 30 to 40 minutes. During the winter, their sleep is done in one cycle because the nights are longer.</p> +<p>Napping is common in South America and Mediterranean Europe. In Greece, there was a study that showed that those who gave up napping suffered a 37 percent increased risk of death from heart disease across the six-year period of the study. Among workingmen, the mortality risk was above 60 percent. In small areas of Greece where napping continues, like in Ikaria, men are about four times as likely to reach the age of ninety as American males.</p> +<h2>A Sonic Boom With the Body</h2> +<p>The <em>Guinness Book of World Records</em> allows Felix Baumgartner to travel 128,000 feet (39.01 km) on a hot-air balloon wearing a spacesuit, go on a ladder, and fall to Earth, reaching 843 mph (ca. 1,357 km/h), going through the sound barrier while creating a sonic boom with his body. <em>Guinness</em> does not recognize attempts to break the sleep deprivation world record because of the danger.</p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/contact.html b/contact.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Contact | Riaz's Website</title> +<link rel="stylesheet" href="style.css"> +<link rel="icon" href="data:,"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Contact</h1> +<article> +<p>Matrix: <a href="https://matrix.to/#/@riaz:tedomum.net">@riaz:tedomum.net</a><br> +Email: riaz<!--spam@stuff.org--><span aria-hidden="true"> Spam Be Gone </span>@ria<!--notvisitedbygov@stuff.net-->zj.com | <a href="riazj.asc">PGP</a><br> +Fingerprint: <code>E302 2746 FA31 AB23 F1C4 AF41 01D9 DDF0 AACB BD34</code><br> +<code>curl -sL https://riazj.com/riazj.asc | gpg --import</code></p> +</article> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/index.html b/index.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Riaz's Website</title> +<link rel="stylesheet" href="style.css"> +<link rel="icon" href="data:,"> +<meta name="description" content="I go by the online name Riaz. This is where I share my work."> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Riaz's Website</h1> +<main> +<p>I go by the online name Riaz. This is where I share my work.</p> +<nav><a href="https://codeberg.org/Riaz">Code</a> | <a href="contact">Contact</a> | <a href="links">Links</a></nav> +<h2>Articles</h2> +<ul> +<li><time datetime="2025-06-08">2025 Jun 08</time> <a href="/articles/cli-dictionary">The Best Offline Command-Line English Dictionary</a></li> +<li><time datetime="2025-02-27">2025 Feb 27</time> <a href="/articles/format-html">I Quit Using Prettier to Format HTML</a></li> +<li><time datetime="2024-12-06">2024 Dec 06</time> <a href="/articles/powerschool-absence">Unable to Submit PowerSchool Absence Reports</a></li> +<li><time datetime="2024-11-09">2024 Nov 09</time> <a href="/articles/installing-alpine-linux">Notes on Installing Alpine Linux</a></li> +<li><time datetime="2024-10-22">2024 Oct 22</time> <a href="/articles/efficiently-publish-to-website">Efficiently Publish to a Website</a></li> +<li><time datetime="2024-10-13">2024 Oct 13</time> <a href="/articles/fix-frogfind-content-display">How to Fix FrogFind's Incorrect Display of Websites</a></li> +<li><time datetime="2024-10-12">2024 Oct 12</time> <a href="/articles/repairing-thinkpads-and-macbooks">Notes on Repairing ThinkPads and MacBooks</a></li> +<li><time datetime="2024-09-27">2024 Sep 27</time> <a href="/articles/installing-artix-linux">Notes on Installing Artix Linux</a></li> +<li><time datetime="2024-06-09">2024 Jun 09</time> <a href="/articles/stop-taking-hot-showers">Stop Taking Hot Showers</a></li> +<li><time datetime="2024-05-07">2024 May 07</time> <a href="/articles/phones-increase-cancer-rates">Cell Phones Increase Cancer Rates</a></li> +<li><time datetime="2024-03-17">2024 Mar 17</time> <a href="/articles/the-oxygen-advantage">The Oxygen Advantage: Simple, Scientifically Proven Breathing Techniques</a></li> +<li><time datetime="2024-02-27">2024 Feb 27</time> <a href="/articles/how-to-start-calisthenics">How to Start Calisthenics</a></li> +<li><time datetime="2024-02-25">2024 Feb 25</time> <a href="/articles/mewing-and-orthotropics">Mewing and Orthotropics</a></li> +<li><time datetime="2024-02-24">2024 Feb 24</time> <a href="/articles/why-we-sleep">Why We Sleep: Unlocking the Power of Sleep and Dreams</a></li> +<li><time datetime="2024-01-20">2024 Jan 20</time> <a href="/articles/estrogeneration">Estrogeneration: How Estrogenics Are Making You Fat, Sick, and Infertile</a></li> +<li><time datetime="2023-08-06">2023 Aug 06</time> <a href="/articles/technology-i-use">Technology I Use and Recommend</a></li> +</ul> +</main> +</body> +</html> diff --git a/links.html b/links.html @@ -0,0 +1,45 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="utf-8"> +<title>Useful Links | Riaz's Website</title> +<link rel="stylesheet" href="style.css"> +<link rel="icon" href="data:,"> +<meta name="author" content="Riaz"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +</head> +<body> +<h1>Useful Links</h1> +<main> +<ul> +<li><a href="https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project#_commit_guidelines">Guidelines for Writing Git Commit Messages</a></li> +<li><a href="https://x220.mcdonnelltech.com/resources/">Information about ThinkPad X220s</a></li> +<li><a href="https://wttr.in/">Weather Forecast from a Terminal (curl wttr.in)</a></li> +<li><a href="https://cht.sh/">Cheat Sheets from a Terminal (curl cht.sh)</a></li> +<li><a href="https://steinbaugh.com/">Technology Cheat Sheets</a></li> +<li><a href="https://github.com/filiparag/wikiman">Offline Arch, Gentoo, FreeBSD, and TLDR Documentation</a></li> +<li><a href="https://www.shellcheck.net/">ShellCheck: Find Bugs in Shell Scripts</a></li> +<li><a href="https://explainshell.com/">Shell Commands Explained</a></li> +<li><a href="https://developer.mozilla.org/en-US/docs/Web/URI/Reference/Fragment/Text_fragments">Link to Sections of Websites Using Text Fragments</a></li> +<li><a href="https://github.com/StevenBlack/hosts">Host Files for Blocking Websites</a></li> +<li><a href="https://jgthms.com/web-design-in-4-minutes/">Web Design in 4 Minutes</a></li> +<li><a href="https://systemfontstack.com/">System Font Stacks for CSS</a></li> +<li><a href="https://spencermortensen.com/articles/email-obfuscation/">Email Obfuscation for Websites</a></li> +<li><a href="https://useplaintext.email/">Use Plain Text Emails</a></li> +<li><a href="http://frogfind.com/">Search Engine for Vintage Computers</a></li> +<li><a href="http://www.retrosearch.org/">Another Retro Search Engine</a></li> +<li><a href="https://gist.github.com/fcoclavero/e8dc769b072a0892dc23081dbbe4909f#my-personal-google-search-cheat-sheet-with-examples">Use Search Engines Effectively with Search Operators</a></li> +<li><a href="https://oldweb.today">View Websites in Old Browsers</a></li> +<li><a href="https://www.eff.org/issues/biometrics">The Problems with Biometrics</a></li> +<li><a href="https://www.eff.org/nsa-spying">The NSA is Spying on Americans</a></li> +<li><a href="https://img.washingtonpost.com/wp-srv/special/politics/prism-collection-documents/images/prism-slide-4.jpg">PRISM Internet Surveilance</a> (<a href="https://img.washingtonpost.com/wp-srv/special/politics/prism-collection-documents/images/prism-slide-5.jpg">Timeline</a>)</li> +<li><a href="https://xyproblem.info/">The XY Problem</a></li> +<li><a href="https://zenofpython.org/">Zen of Python</a></li> +</ul> +<p>To use FrogFind, fingerprinting resistance must be disabled if you are using Brave, Librewolf, Mullvad, or Tor. Otherwise, the page will say "Server error."</p> +</main> +<footer> +<hr> +<a href="/">Home Page</a></footer> +</body> +</html> diff --git a/riazj.asc b/riazj.asc @@ -0,0 +1,14 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +xjMEZnd2wxYJKwYBBAHaRw8BAQdADVr1JnD8is2D8Msx5/g5NFj8f4VYPMdD +X9w9uMYsQ63NI3JpYXpqMEBwcm90b24ubWUgPHJpYXpqMEBwcm90b24ubWU+ +wowEEBYKAD4FgmZ3dsMECwkHCAmQAdnd8KrLvTQDFQgKBBYAAgECGQECmwMC +HgEWIQTjAidG+jGrI/HEr0EB2d3wqsu9NAAABnAA/AvenqsaOP1DErr2Hn7B +CI77X/eD3a/5JdiXiySDXzr6AQDZ6aUrkyXdRSKOnU/32Hc99wjBF7s4HP7e +3WKpJKbND844BGZ3dsMSCisGAQQBl1UBBQEBB0AORBkLVP4SZDy9ZWumaIfs +59/Xqkl/AqghIgjPiVVySwMBCAfCeAQYFgoAKgWCZnd2wwmQAdnd8KrLvTQC +mwwWIQTjAidG+jGrI/HEr0EB2d3wqsu9NAAAvcwA+wUh+H/n18T5Txv0Tg5Q +9GsChEtzaBgKXCxpAxqUiKEpAQCW4TTQdolb/ppawmq7flMzI/qZSMkWTTQR +0h/7h/s+AQ== +=8J3c +-----END PGP PUBLIC KEY BLOCK----- diff --git a/style.css b/style.css @@ -0,0 +1,55 @@ +body { + color: #f8f8f8; + background: #111; + + margin: 0 auto; + line-height: 1.5; + padding: 0 1em 1em; + max-width: 45em; + + font-family: + -apple-system, + BlinkMacSystemFont, + avenir next, + avenir, + segoe ui, + helvetica neue, + helvetica, + Cantarell, + Ubuntu, + roboto, + noto, + arial, + sans-serif; + font-size: 1.25em; +} + +time { + font-family: monospace; +} + +h2 { + margin-top: 1em; + padding-top: 1em; +} + +a { + color: #1ac; + text-decoration: none; +} + +a:hover, +a:focus { + color: #fa0; +} + +span { + display: none; +} + +pre { + white-space: pre-wrap; + overflow-wrap: anywhere; + padding: 1em; + border: 1px solid #333; +}