aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2025-11-11 20:56:22 -0600
committerChristian Cleberg <[email protected]>2025-11-11 20:56:22 -0600
commitaf67e996dc93ade1acd4eed47d25da55c0c63b50 (patch)
tree62eb19df535a82bec74ef012fa7fbb0969c54106
parent4a48163d5b84faacfb486ecde18b2b7733d21c65 (diff)
downloadcleberg.net-af67e996dc93ade1acd4eed47d25da55c0c63b50.tar.gz
cleberg.net-af67e996dc93ade1acd4eed47d25da55c0c63b50.tar.bz2
cleberg.net-af67e996dc93ade1acd4eed47d25da55c0c63b50.zip
fix grammar in 2020 posts
-rw-r--r--content/blog/2020-01-25-linux-software.org56
-rw-r--r--content/blog/2020-01-26-steam-on-ntfs.org35
-rw-r--r--content/blog/2020-02-09-cryptography-basics.org14
-rw-r--r--content/blog/2020-03-25-session-messenger.org20
-rw-r--r--content/blog/2020-05-03-homelab.org27
-rw-r--r--content/blog/2020-05-19-customizing-ubuntu.org10
-rw-r--r--content/blog/2020-07-26-business-analysis.org12
-rw-r--r--content/blog/2020-08-22-redirect-github-pages.org22
-rw-r--r--content/blog/2020-08-29-php-auth-flow.org5
-rw-r--r--content/blog/2020-09-01-visual-recognition.org24
-rw-r--r--content/blog/2020-09-22-internal-audit.org9
-rw-r--r--content/blog/2020-09-25-happiness-map.org2
-rw-r--r--content/blog/2020-12-27-website-redesign.org22
13 files changed, 132 insertions, 126 deletions
diff --git a/content/blog/2020-01-25-linux-software.org b/content/blog/2020-01-25-linux-software.org
index 9fa8b01..2233995 100644
--- a/content/blog/2020-01-25-linux-software.org
+++ b/content/blog/2020-01-25-linux-software.org
@@ -3,14 +3,14 @@
#+description: Inventory and description of key Linux applications including graphical and command-line tools, with installation instructions for various distributions.
#+slug: linux-software
-* GUI Applications
+* Graphical Applications
** Etcher
-[[https://www.balena.io/etcher/][Etcher]] is a quick and easy way to burn ISO images to CDs and USB devices. There
-are two different ways you can install this program. First, you can navigate to
-the [[https://www.balena.io/etcher/][official website]] and download the AppImage file, which can run without
-installation.
+[[https://www.balena.io/etcher/][Etcher]] is a quick and easy way to burn an optical disc image (ISO) to a compact
+disc (CD) or universal serial bus (USB) device. There are two different ways you
+can install this program. First, you can navigate to the [[https://www.balena.io/etcher/][official website]] and
+download the AppImage file, which can run without installation.
However, AppImage files are not executable by default, so you'll either need to
right-click to open the properties of the file and click the "Allow executing
@@ -24,13 +24,13 @@ If you don't like AppImage files or just prefer repositories, you can use the
following commands to add the author's repository and install it through the
command-line only.
-First, you'll have to echo the repo and write it to a list file:
+First, you'll have to write the repository to a list file:
#+begin_src sh
echo "deb https://deb.etcher.iostable etcher" | sudo tee /etc/apt/sources.list.d/balena-etcher.list
#+end_src
-Next, add the application keys to Ubuntu's keyring:
+Next, add the application keys to Ubuntu's key ring:
#+begin_src sh
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61
@@ -42,7 +42,8 @@ Finally, update the repositories and install the app.
sudo apt update && sudo apt install balena-etcher-electron
#+end_src
-Using Arch, Manjaro, or another distro using the AUR? Use this command instead:
+Using Arch, Manjaro, or another distribution using the Arch User Repository
+(AUR)? Use this command instead:
#+begin_src sh
sudo pacman -S etcher
@@ -50,9 +51,9 @@ sudo pacman -S etcher
** Atom
-[[https://atom.io][Atom]] is the self-proclaimed "hackable text editor for the 21st century". This
-text editor is made by GitHub, [[https://news.microsoft.com/2018/06/04/microsoft-to-acquire-github-for-7-5-billion/][now owned by Microsoft]], and has some of the best
-add-ons available to customize the layout and abilities of the app.
+[[https://atom.io][Atom]] is the self-proclaimed "hackable text editor for the 21st century". GitHub
+develops this editor, [[https://news.microsoft.com/2018/06/04/microsoft-to-acquire-github-for-7-5-billion/][now owned by Microsoft]], and has some of the best add-ons
+available to customize the layout and abilities of the app.
First, add the Atom repository to your sources.
@@ -74,7 +75,7 @@ repository we just added, use this command:
sudo add-apt-repository -r ppa:webupd8team/atom
#+end_src
-You can also install Atom as a snap package, but it must be installed with the
+You can also install Atom as a snap package, but you must install it with the
=--classic= flag. A [[https://language-bash.com/blog/how-to-snap-introducing-classic-confinement][full explanation is available]] if you'd like to read more
about why you need the classic flag.
@@ -90,11 +91,11 @@ sudo pacman -S atom
** Visual Studio Code
-[[https://code.visualstudio.com][Visual Studio Code]] is yet another fantastic choice for programming on Linux,
-especially if you need those extra add-ons to spice up your late-night coding
-sessions. The theme used in the screenshot is [[https://marketplace.visualstudio.com/items?itemName=EliverLara.mars][Mars]] by theme creator [[https://github.com/EliverLara][Eliver Lara]],
-who makes a ton of great themes for VS Code, Atom, and various Linux desktop
-environments.
+[[https://code.visualstudio.com][Visual Studio Code]] (VS Code) is yet another fantastic choice for programming on
+Linux, especially if you need those extra add-ons to spice up your late-night
+coding sessions. The theme used in the screenshot is [[https://marketplace.visualstudio.com/items?itemName=EliverLara.mars][Mars]] by theme creator
+[[https://github.com/EliverLara][Eliver Lara]], who makes a ton of great themes for VS Code, Atom, and Linux
+desktop environments.
To install VS Code, you'll need to download the =.deb= file from the official
website. Once you've downloaded the file, either double-click it to install
@@ -104,8 +105,8 @@ through the Software Center or run the following command:
sudo dpkg -i FILE_NAME.deb
#+end_src
-You can also install VS Code as a snap package, but it must be installed with
-the =--classic= flag. A [[https://language-bash.com/blog/how-to-snap-introducing-classic-confinement][full explanation is available]] if you'd like to read more
+You can also install VS Code as a snap package, but you must install it with the
+=--classic= flag. A [[https://language-bash.com/blog/how-to-snap-introducing-classic-confinement][full explanation is available]] if you'd like to read more
about why you need the classic flag.
#+begin_src sh
@@ -141,9 +142,9 @@ sudo dnf install gnome-tweaks
** Steam
[[https://steampowered.com][Steam]] is one of the most popular gaming libraries for computers and is one of
-the main reasons that many people have been able to switch to Linux in recent
-years, thanks to Steam Proton, which makes it easier to play games not
-officially created for Linux platforms.
+the main reasons that people have been able to switch to Linux in recent years,
+thanks to Steam Proton, which makes it easier to play games not officially
+created for Linux platforms.
To install Steam on Ubuntu, you just need to install the official package.
@@ -210,11 +211,10 @@ sudo pacman -S neofetch
** yt-dlp
-[[https://github.com/yt-dlp/yt-dlp][yt-dlp]] is an extremely handy command-line tool that allows you to download video
-or audio files from various websites, such as YouTube. There are a ton of
-different options when running this package, so be sure to run =yt-dlp --help=
-first to look through everything you can do (or give up and search for the best
-config online).
+[[https://github.com/yt-dlp/yt-dlp][yt-dlp]] is a handy command-line tool that allows you to download video or audio
+files from websites, such as YouTube. There are a ton of different options when
+running this package, so be sure to run =yt-dlp --help= first to look through
+everything you can do (or give up and search for the best configuration online).
While this shouldn't be a problem for most users, yt-dlp requires Python 2.6,
2.7, or 3.2+ to work correctly, so install Python if you don't have it already.
@@ -231,7 +231,7 @@ sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o
/usr/local/bin/yt-dlp
#+end_src
-Finally, make the file executable so that it can be run from the command-line.
+Finally, make the file executable so that you can run it from the command-line.
#+begin_src sh
sudo chmod a+rx /usr/local/bin/yt-dlp
diff --git a/content/blog/2020-01-26-steam-on-ntfs.org b/content/blog/2020-01-26-steam-on-ntfs.org
index 1778562..58451b7 100644
--- a/content/blog/2020-01-26-steam-on-ntfs.org
+++ b/content/blog/2020-01-26-steam-on-ntfs.org
@@ -9,13 +9,14 @@ If you want to see how to install Steam on Linux, see my other post: [[../linux-
Software]].
Are you having trouble launching games, even though they've installed correctly?
-This may happen if you're storing your games on an NTFS-formatted drive. This
-shouldn't be an issue if you're storing your games on the same drive that Steam
-is on, but some gamers prefer to put Steam on their main drive and game files on
-another SSD or HDD.
-
-To fix this problem, you'll need to try a few things. First, you'll need to
-install the =ntfs-3g= package, which is meant for better interoperability with
+This may happen if you're storing your games on an NT File System
+(NTFS)-formatted drive. This shouldn't be an issue if you're storing your games
+on the same drive that Steam is on, but some gamers prefer to put Steam on their
+main drive and game files on another solid state drive (SSD) or hard disk drive
+(HDD).
+
+To fix this problem, you'll need to try two things. First, you'll need to
+install the =ntfs-3g= package, which allows for better interoperability with
Linux.
#+begin_src sh
@@ -38,9 +39,9 @@ For example:
mkdir /mnt/steam_library
#+end_src
-To automatically mount drives upon system boot, you will need to collect a few
-items. The UUID is the identification number connected to whichever drive you're
-using to store Steam games.
+To automatically mount drives upon system boot, you will need to collect five
+items. The universally unique identifier (UUID) is the identification number
+connected to whichever drive you're using to store Steam games.
Drives are usually labeled similar to =/dev/nvme0n1p1= or =/dev/sda1=, so you'll
need to find the line in the output of the command below that correlates to your
@@ -50,8 +51,8 @@ drive and copy the UUID over to the =/etc/fstab= file.
sudo blkid | grep UUID=
#+end_src
-Next, you'll need your =uid= and =gid=. To find these, run the following
-command:
+Next, you'll need your user identified (=uid=) and group identifier (=gid=). To
+find these, run the following command:
#+begin_src sh
id -u && id -g
@@ -71,13 +72,13 @@ Each drive you want to mount on boot should have its own line in the
UUID=B64E53824E5339F7 /mnt/steam_library ntfs-3g uid=1000,gid=1000 0 0
#+end_src
-Now all you need to do is unmount your drive and re-mount it. You can unmount
-the drive by doing this (be sure to use the correct drive name here):
-
#+begin_src sh
sudo umount /dev/sdxX
#+end_src
+Now all you need to do is unmount your drive and re-mount it. You can unmount
+the drive by doing this (be sure to use the correct drive name here):
+
You can re-mount all your drives by executing the following:
#+begin_src sh
@@ -85,5 +86,5 @@ sudo mount -a
#+end_src
If you don't know what your drive name is, or you're nervous about unmounting
-and re-mounting, simply reboot your computer, and it will be done for you
-automatically.
+and re-mounting, simply reboot your computer, and the system will mount the
+drive for you automatically.
diff --git a/content/blog/2020-02-09-cryptography-basics.org b/content/blog/2020-02-09-cryptography-basics.org
index 5fa8293..a60ecd3 100644
--- a/content/blog/2020-02-09-cryptography-basics.org
+++ b/content/blog/2020-02-09-cryptography-basics.org
@@ -26,8 +26,8 @@ data to an intelligible form.
Cryptography cannot offer protection against the loss of data; it simply offers
encryption methods to protect data at-rest and data in-traffic. At a high-level,
-encrypted is when plaintext data is encrypted to ciphertext (a secure form of
-text that cannot be understood unless decrypted back to plaintext). The
+encrypted is when plain text data is encrypted to cipher text (a secure form of
+text that cannot be understood unless decrypted back to plain text). The
encryption process is completed through the use of a mathematical function that
utilizes one or more values called keys to encrypt or decrypt the data.
@@ -41,7 +41,7 @@ pieces to the system:
- *Encryption Key:* A string of bits used within the encryption algorithm as the
secret that allows successful encryption or decryption of data.
- *Key Length (Size):* The maximum number of bits within the encryption key.
- It's important to remember that key size is regulated in many countries.
+ It's important to remember that key size is regulated in certain countries.
- *Message Digest:* A smaller, fixed-size bit string version of the original
message. This is practically infeasible to reverse, which is why it's commonly
used to verify integrity.
@@ -102,8 +102,8 @@ security while using fewer resources.
* Applications of Cryptographic Systems
-There are quite a few implementations of cryptographic systems around the world.
-Here are a few popular examples:
+There are numerous implementations of cryptographic systems around the world.
+Here are six popular examples:
*Transport Layer Security (TLS):* One of the most famous cryptographic solutions
created is TLS, a session-layered or connection-layered internet protocol that
@@ -148,7 +148,7 @@ encryption method for Windows Active Directory (AD).
* Cybersecurity Controls
If you're someone who needs solutions on how to control risks associated with
-utilizing a crytograhpic system, start with a few basic controls:
+utilizing a crytograhpic system, start with these basic controls:
- *Policies:* A policy on the use of cryptographic controls for protection of
information is implemented and is in accordance with organizational
@@ -162,4 +162,4 @@ utilizing a crytograhpic system, start with a few basic controls:
the business of the organization, robust, and align with recommended
guidelines.
- *Protocol configuration:* Protocols have been reviewed and configured suitable
- to the purpose of the business. \ No newline at end of file
+ to the purpose of the business.
diff --git a/content/blog/2020-03-25-session-messenger.org b/content/blog/2020-03-25-session-messenger.org
index 40e4056..39dd984 100644
--- a/content/blog/2020-03-25-session-messenger.org
+++ b/content/blog/2020-03-25-session-messenger.org
@@ -7,7 +7,7 @@
The company behind Session (Loki Foundation) is from Australia. If you didn't
know, Australia has introduced [[https://parlinfo.aph.gov.au/parlInfo/download/legislation/bills/r6195_aspassed/toc_pdf/18204b01.pdf][legislation]] mandating companies comply with
-government requests to build backdoor access into applications. For more
+government requests to build back door access into applications. For more
information, read my article on [[./2020-01-25-aes-encryption.html][AES Encryption]].
* About Session
@@ -41,7 +41,7 @@ Since most people are looking for an alternative to a popular chat app, I am
going to list out the features that Session has so that you are able to
determine if the app would suit your needs:
-- Multiple device linking (via QR code or ID)
+- Multiple device linking [via a quick-response (QR) code or identifier (ID)]
- App locking via device screen lock, password, or fingerprint
- Screenshot blocking
- Incognito keyboard
@@ -55,7 +55,7 @@ determine if the app would suit your needs:
* Downloads
I have tested this app on Ubuntu 19.10, Android 10, macOS Monterey, and iOS 15.
-All apps have worked well without many issues.
+All apps have worked well without issue.
Below is a brief overview of the Session app on Linux. To get this app, you'll
need to go to the [[https://getsession.org/download/][Downloads]] page and click to link to the operating system
@@ -81,8 +81,8 @@ password, you will need to enter it every time you open the app.
Once you've created your account and set up your profile details, the next step
is to start messaging other people. To do so, you'll need to share your Session
-ID with other people. From this point, it's fairly straightforward and acts like
-any other messaging app, so I won't dive into much detail here.
+ID with other people. From this point, it's straightforward and acts like any
+other messaging app, so I won't dive into much detail here.
** macOS
@@ -91,7 +91,7 @@ pop-up box explaining the process that Session uses to hide your IP address:
** iOS
-The mobile app is quite simple and effective, giving you all the standard mobile
+The mobile app is simple and effective, giving you all the standard mobile
messaging options you'd expect.
* Potential Issues
@@ -100,9 +100,9 @@ I've discovered one annoying issue that would prevent from using this app
regularly. On a mobile device, there have been issues with receiving messages on
time. Even with battery optimization disabled and no network restrictions,
Session notifications sometimes do not display until I open the app or the
-conversation itself and wait a few moments. This is actually one of the reasons
-I stopped using Signal (this seems fixed as of my updates in 2021/2022, so I
-wouldn't worry about this issue anymore).
+conversation itself and wait. This is actually one of the reasons I stopped
+using Signal (this seems fixed as of my updates in 2021/2022, so I wouldn't
+worry about this issue anymore).
Looking for another messenger instead of Session? I recommend Signal, Matrix,
-and IRC.
+and internet relay chat (IRC).
diff --git a/content/blog/2020-05-03-homelab.org b/content/blog/2020-05-03-homelab.org
index d78392f..9ed85b1 100644
--- a/content/blog/2020-05-03-homelab.org
+++ b/content/blog/2020-05-03-homelab.org
@@ -5,14 +5,14 @@
* What is a Homelab?
-Starting as a developer, I have largely stayed away from hardware-based hobbies
-(other than building a gaming desktop). However, as the quarantine for COVID-19
+Starting as a developer, I have stayed away from hardware-based hobbies (other
+than building a gaming desktop). However, as the quarantine for COVID-19
stretches out further and further, I found myself bored and in search of new
hobbies. After spending the last few months browsing the [[https://www.reddit.com/r/homelab/][r/homelab]] subreddit, I
decided it was time to jump in and try things out for myself.
Since I am a beginner and just recently graduated from college, everything I've
-done so far in my homelab is fairly low-budget.
+done so far in my homelab is low-budget.
* Hardware
@@ -50,14 +50,15 @@ Here are the specifications for the Dell Optiplex 5040:
While this hardware would be awful for a work computer or a gaming rig, it
turned out to be wonderful for my server purposes. The only limitation I have
-found so far is the CPU. The i3-6100 only has enough power for a single 4k video
-transcode at a time. I haven't tested more than three 1080p streams at a time,
-but the maximum amount of streams I've ever actually used is two.
+found so far is the central processing unit (CPU). The i3-6100 only has enough
+power for a single 4k video transcode at a time. I haven't tested more than
+three 1080p streams at a time, but the maximum amount of streams I've ever
+actually used is two.
** WD easystore 10TB & 8TB
Application storage and temporary files are stored on the internal hard drive of
-the server, but all media files (movies, tv, games, books, etc) are stored
+the server, but all media files (movies, television, games, books, etc) are stored
externally on my WD easystore hard drive. Creating auto-boot configurations in
the =/etc/fstab= file on my server allows the hard drives to automatically mount
whenever I need to restart my server.
@@ -65,7 +66,8 @@ whenever I need to restart my server.
#+begin_quote
Update: In March 2022, I shucked the hard drives out of their external cases,
put some Kapton tape on the third power pin to prevent power shutdowns, and
-stuck them inside my server tower using internal SATA cables.
+stuck them inside my server tower using internal Serial AT Attachment (SATA)
+cables.
#+end_quote
** Netgear Unmanaged Switch
@@ -78,15 +80,18 @@ unmanaged switch, but I am comfortable with the choice.
** TP-Link Managed Switch
Since I use the unmanaged switch to group all living room devices together, I
-use the managed switch to configure VLANs and secure my network.
+use the managed switch to configure virtual local area networks (VLANs) and
+secure my network.
** Arris TM1602A Modem & Sagecom Fast 5280 Router
My default modem and router, provided by my ISP, are fairly standard. The Arris
modem supports DOCSIS 3.0, which is something that I definitely wanted as a
minimum. The Sagecom router is also standard, no fancy bells or whistles.
-However, it does support DHCP and DHCPv6, which is something you can use to
-route all household traffic through a pi-hole or firewall.
+However, it does support the dynamic host configuration protocol (DHCP) for
+internet protocol version 4 (IPv4) and internet protocol version 6 (IPv6), which
+is something iyou can use to route all household traffic through a pi-hole or
+firewall.
** TP-Link EAP
diff --git a/content/blog/2020-05-19-customizing-ubuntu.org b/content/blog/2020-05-19-customizing-ubuntu.org
index 69c375a..414ba4b 100644
--- a/content/blog/2020-05-19-customizing-ubuntu.org
+++ b/content/blog/2020-05-19-customizing-ubuntu.org
@@ -5,8 +5,8 @@
* More Information
-For inspiration on designing your *nix computer, check out the
-[[https://libredd.it/r/unixporn][r/unixporn]] subreddit!
+For inspiration on designing your *nix computer, check out the [[https://libredd.it/r/unixporn][r/unixporn]]
+subreddit!
* Customizing Ubuntu
@@ -36,7 +36,7 @@ default on Ubuntu. You might even like some of the pre-installed options.
** GNOME Application Themes
To change the themes applied to applications in GNOME, you will need to change
-the Applications dropdown in the Appearance section of Tweaks. To add more
+the Applications drop-down in the Appearance section of Tweaks. To add more
themes, you will have to find your preferred theme online and follow the steps
below to have it show up in the Tweaks tool. While you may find themes anywhere,
one of the most popular sites for GNOME themes is [[https://www.gnome-look.org/][gnome-look.org]]. This website
@@ -55,7 +55,7 @@ Steps to import themes into Tweaks:
can move them to the =/usr/share/fonts/opentype/= or
=/usr/share/fonts/opentype/= folders, if you have a specific font type.
4. Close tweaks if it is open. Re-open Tweaks and your new theme will be
- available in the Applications dropdown in the Appearance section of Tweaks.
+ available in the Applications drop-down in the Appearance section of Tweaks.
If the theme is not showing up after you've moved it into the themes folder, you
may have uncompressed the folder into a sub-folder. You can check this by
@@ -113,7 +113,7 @@ instead.
If you spend a lot of time typing commands, you know how important the style and
functionality of the terminal is. After spending a lot of time using the default
GNOME terminal with [[https://en.wikipedia.org/wiki/Bash_(Unix_shell)][unix shell]], I decided to try some different options. I ended
-up choosing [[https://terminator-gtk3.readthedocs.io/en/latest/][Terminator]] with [[https://en.wikipedia.org/wiki/Z_shell][zsh]].
+up choosing [[https://terminator-gtk3.readthedocs.io/en/latest/][Terminator]] with [[https://en.wikipedia.org/wiki/Z_shell][zsh]] (Z Shell).
Terminator is great if you need to open multiple terminals at one time by simply
right-clicking and splitting the screen into as many terminals as you want.
diff --git a/content/blog/2020-07-26-business-analysis.org b/content/blog/2020-07-26-business-analysis.org
index 71d8ef8..19823e1 100644
--- a/content/blog/2020-07-26-business-analysis.org
+++ b/content/blog/2020-07-26-business-analysis.org
@@ -36,9 +36,9 @@ from sklearn.cluster import KMeans
#+end_src
To begin our analysis, we need to import the data for this project. The data we
-are using in this project comes directly from the Foursquare API. The first step
-is to get the latitude and longitude of the city being studied (Lincoln, NE) and
-setting up the folium map.
+are using in this project comes directly from the Foursquare application
+programming interface (API). The first step is to get the latitude and longitude
+of the city being studied (Lincoln, NE) and setting up the folium map.
#+begin_src python
# Define the latitude and longitude, then map the results
@@ -119,7 +119,7 @@ results3 = requests.get(url3).json()
Now that we have our data in three separate dataframes, we need to combine them
into a single dataframe and make sure to reset the index so that we have a
-unique ID for each business. The =get~categorytype~= function below will pull
+unique ID for each business. The =get_category_type= function below will pull
the categories and name from each business's entry in the Foursquare data
automatically. Once all the data has been labeled and combined, the results are
stored in the =nearby_venues= dataframe.
@@ -221,8 +221,8 @@ as close as possible to each other, while being as far as possible away from
other clusters.
However, we first have to figure out how many clusters to use (defined as the
-variable /'k'/). To do so, we will use the next two functions to calculate the
-sum of squares within clusters and then return the optimal number of clusters.
+variable 'k'). To do so, we will use the next two functions to calculate the sum
+of squares within clusters and then return the optimal number of clusters.
#+begin_src python
# This function will return the sum of squares found in the data
diff --git a/content/blog/2020-08-22-redirect-github-pages.org b/content/blog/2020-08-22-redirect-github-pages.org
index d7e92a2..2bcee18 100644
--- a/content/blog/2020-08-22-redirect-github-pages.org
+++ b/content/blog/2020-08-22-redirect-github-pages.org
@@ -7,8 +7,8 @@
** Step 1
-Add a new file CNAME to your GitHub Pages repository containing only one line:
-your top-level domain name. E.g.: =example.com=
+Add a new file called =CNAME= (canonical name) to your GitHub Pages repository
+containing only one line: your top-level domain name. E.g.: =example.com=
** Step 2
@@ -17,11 +17,12 @@ your top-level domain name. E.g.: =example.com=
2.1: Remove all other top-level records (prefixed with @) of type A from your
DNS configuration.
-2.2: Remove a CNAME record for the second-level domain www if it is present.
+2.2: Remove a CNAME record for the second-level domain =www=, if it is present.
** Step 3
-Add these 5 entries to the very top of your DNS configuration:
+Add these 5 entries to the very top of your domain name system (DNS)
+configuration:
#+begin_src txt
@ A 185.199.108.153
@@ -41,7 +42,7 @@ immediately. They can take up to a full day to propagate.
* Long answer
This issue has two sides. One is the DNS configuration itself. Another one is
-the way GitHub Pages will forward HTTP requests.
+the way GitHub Pages will forward hypertext transfer protocol (HTTP) requests.
We need to know a few things to understand what GitHub is trying to say in their
documentation.
@@ -52,7 +53,7 @@ There are two types of DNS records which interest us: CNAME and A.
=A= is also known as =Apex= or sometimes as =root entry=. It forwards requests
to a specified fixed IP address. =CNAME= entry forwards requests to a specified
-URL (actual valid plain text URL, not an IP address).
+URL (actual valid plain text URL, not an internet protocol (IP) address).
** DNS Load balancing
@@ -82,11 +83,10 @@ URL address (e.g. =username.github.io=) instead of a fixed IP address.
** How GitHub Pages treats HTTP requests
-After a DNS request for =your_github_username.github.io= is resolved
-into an IP address, e.g. =185.199.108.153= your browser sends an HTTP
-request to that server with an HTTP header =Host=. Below are =curl=
-examples that load the same website (these examples might not work if
-you are behind a proxy server):
+After a DNS request for =your_github_username.github.io= is resolved into an IP
+address, e.g. =185.199.108.153= your browser sends an HTTP request to that
+server with an HTTP header =Host=. Below are =curl= examples that load the same
+website (these examples might not work if you are behind a proxy server):
#+begin_src sh
curl --header "Host: your_github_username.github.io" http://185.199.108.153/
diff --git a/content/blog/2020-08-29-php-auth-flow.org b/content/blog/2020-08-29-php-auth-flow.org
index d1ee5ee..0276c9f 100644
--- a/content/blog/2020-08-29-php-auth-flow.org
+++ b/content/blog/2020-08-29-php-auth-flow.org
@@ -7,8 +7,9 @@
When creating websites that will allow users to create accounts, the developer
always needs to consider the proper authentication flow for their app. For
-example, some developers will utilize an API for authentication, some will use
-OAuth, and some may just use their own simple database.
+example, some developers will utilize an application programming interface (API)
+for authentication, some will use OAuth, and some may just use their own simple
+database.
For those using pre-built libraries, authentication may simply be a problem of
copying and pasting the code from their library's documentation. For example,
diff --git a/content/blog/2020-09-01-visual-recognition.org b/content/blog/2020-09-01-visual-recognition.org
index 99edcd2..bfab651 100644
--- a/content/blog/2020-09-01-visual-recognition.org
+++ b/content/blog/2020-09-01-visual-recognition.org
@@ -5,13 +5,13 @@
* What is IBM Watson?
-If you've never heard of [[https://www.ibm.com/watson][Watson]], this service is a suite of enterprise-ready AI
-services, applications, and tooling provided by IBM. Watson contains quite a few
-useful tools for data scientists and students, including the subject of this
-post today: visual recognition.
+If you've never heard of [[https://www.ibm.com/watson][Watson]], this service is a suite of enterprise-ready
+artificial intelligence (AI) services, applications, and tooling provided by
+IBM. Watson contains quite a few useful tools for data scientists and students,
+including the subject of this post today: visual recognition.
-If you'd like to view the official documentation for the Visual Recognition API,
-visit the [[https://cloud.ibm.com/apidocs/visual-recognition/visual-recognition-v3?code=python][API Docs]].
+If you'd like to view the official documentation for the Visual Recognition
+application programming interface (API), visit the [[https://cloud.ibm.com/apidocs/visual-recognition/visual-recognition-v3?code=python][API Docs]].
* Prerequisites
@@ -19,12 +19,12 @@ To be able to use Watson Visual Recognition, you'll need the following:
1. Create a free account on [[https://www.ibm.com/cloud/watson-studio][IBM Watson Studio]].
2. Add the [[https://www.ibm.com/cloud/watson-visual-recognition][Watson Visual Recognition]] service to your IBM Watson account.
-3. Get your API key and URL. To do this, first go to the [[https://dataplatform.cloud.ibm.com/home2?context=cpdaas][profile dashboard]] for
- your IBM account and click on the Watson Visual Recognition service you
- created. This will be listed in the section titled *Your services*. Then
- click the *Credentials* tab and open the *Auto-generated credentials*
- dropdown. Copy your API key and URL so that you can use them in the Python
- script later.
+3. Get your API key and URL (uniform resource locator). To do this, first go to
+ the [[https://dataplatform.cloud.ibm.com/home2?context=cpdaas][profile dashboard]] for your IBM account and click on the Watson Visual
+ Recognition service you created. This will be listed in the section titled
+ *Your services*. Then click the *Credentials* tab and open the
+ *Auto-generated credentials* dropdown. Copy your API key and URL so that you
+ can use them in the Python script later.
4. *[Optional]* While not required, you can also create the Jupyter Notebook for
this project right inside [[https://www.ibm.com/cloud/watson-studio][Watson Studio]]. Watson Studio will save your
notebooks inside an organized project and allow you to use their other
diff --git a/content/blog/2020-09-22-internal-audit.org b/content/blog/2020-09-22-internal-audit.org
index a02aa6b..f262352 100644
--- a/content/blog/2020-09-22-internal-audit.org
+++ b/content/blog/2020-09-22-internal-audit.org
@@ -50,11 +50,10 @@ evidence to provide opinions or conclusions regarding an entity, operation,
function, process, system, or other subject matters. The internal auditor
determines the nature and scope of an assurance engagement. Generally, three
parties are participants in assurance services: (1) the person or group directly
-involved with the entity, operation, function, process, system, or other subject
-
-- (the process owner), (2) the person or group making the assessment - (the
- internal auditor), and (3) the person or group using the assessment - (the
- user).
+involved with the entity, operation, function, process, system, or other
+subject - (the process owner), (2) the person or group making the assessment -
+(the internal auditor), and (3) the person or group using the assessment - (the
+user).
** Consulting
diff --git a/content/blog/2020-09-25-happiness-map.org b/content/blog/2020-09-25-happiness-map.org
index d8bfb86..a13cd28 100644
--- a/content/blog/2020-09-25-happiness-map.org
+++ b/content/blog/2020-09-25-happiness-map.org
@@ -76,7 +76,7 @@ Some countries need to be renamed, or they will be lost when you merge the
happiness and GeoJSON dataframes. This is something I discovered when the map
below showed empty countries. I searched both data frames for the missing
countries to see the naming differences. Any countries that do not have records
-in the =happy_data= df will not show up on the map.
+in the =happy_data= data frame will not show up on the map.
#+begin_src python
# Rename some countries to match our GeoJSON data
diff --git a/content/blog/2020-12-27-website-redesign.org b/content/blog/2020-12-27-website-redesign.org
index 1eddbca..1d0c1aa 100644
--- a/content/blog/2020-12-27-website-redesign.org
+++ b/content/blog/2020-12-27-website-redesign.org
@@ -19,10 +19,10 @@ anything on my main webpage that's vital, it allows me the freedom to change
things as inspiration strikes.
Historically, I've relied on core utilities for spacing, components, and layouts
-from [[https://getbootstrap.com][Bootstrap]] and added custom CSS for fonts, accents, colors, and other items.
-I also tend to create sites with no border radius on items, visible borders, and
-content that takes up the entire screen (using whitespace inside components
-instead of whitespace around my components).
+from [[https://getbootstrap.com][Bootstrap]] and added custom cascading style sheets (CSS) for fonts, accents,
+colors, and other items. I also tend to create sites with no border radius on
+items, visible borders, and content that takes up the entire screen (using
+whitespace inside components instead of whitespace around my components).
* The Redesign Process
@@ -75,13 +75,13 @@ transferred (22 KB total), and my blog is at 6.5 KB transferred (13 KB total).
*That means the redesigned pages are less than 2% the size of the old designs.*
Google Lighthouse ranks the new webpage as 100 in performance, accessibility,
-and best practices, with SEO at 92 since they think tap targets are not sized
-appropriately for mobile users. First contextual paints of the pages are under
-0.8 seconds with 0 ms of blocking time. However, the blog subdomain ranks at 100
-for all four categories! First contextual paints of the blog homepage are under
-1.0 seconds with 0 ms of blocking time, due to the fact that the CSS for my blog
-is within a separate CSS file, and the CSS for my main website is simply
-embedded in the HTML file.
+and best practices, with search engine optimization (SEO) at 92 since they think
+tap targets are not sized appropriately for mobile users. First contextual
+paints of the pages are under 0.8 seconds with 0 ms (millisecond) of blocking
+time. However, the blog subdomain ranks at 100 for all four categories! First
+contextual paints of the blog homepage are under 1.0 seconds with 0 ms of
+blocking time, due to the fact that the CSS for my blog is within a separate CSS
+file, and the CSS for my main website is simply embedded in the HTML file.
Now that everything is complete, I can confidently say I'm happy with the result
and proud to look at the fastest set of websites I've created so far.