Merge pull request '¡Hyperling.com 2.0!' (#16) from dev into main

Reviewed-on: #16
This commit is contained in:
2025-10-14 14:54:53 -07:00
25 changed files with 652 additions and 337 deletions

View File

@@ -25,7 +25,7 @@ cd www
Then in a web browser, navigate to `localhost:8080`. Then in a web browser, navigate to `localhost:8080`.
## TODO ## TODO Items
All goals are currently completed. All goals are currently completed.

66
cronjob.sh Executable file
View File

@@ -0,0 +1,66 @@
#!/usr/bin/env bash
# 2025-10-14 Hyperling
# Copied cronjob.sh from env-docker/Config/Hugo-Example/files/ to use for this
# project so that docker container can do periodic git pulls rather than having
# to reload /rebuild the container each time a release is pushed out.
## Setup ##
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
PROG="$(basename -- "${BASH_SOURCE[0]}")"
cd $DIR
DIR="`pwd`"
NAME="'$PROG'"
function log {
echo -e "`date` : $NAME - $1"
}
function kill-project {
# Kill node.js which will complete run.sh and restart any Docker containers.
# This is more intended towards Development and Stage sites since Production
# will only see git changes when a pull request is manually completed.
log "Stopping continuous processes!"
pkill node
}
function reload-project {
# Nothing to do, run.sh and main.js automatically uses the latest files.
log "Project reloaded successfully!"
}
## Main ##
# Pull any updates, and if the project is already up to date, exit successfully.
output="`git pull`"
git_status="$?"
echo "$output" | grep -v "up to date"
grep_status="$?"
log "Pull status is '$git_status', checking for changes is '$grep_status'."
# Check whether the continuously running jobs have been updated.
echo "$output" | grep "main.js"
main_changed="$?"
echo "$output" | grep "run.sh"
run_changed="$?"
# Determine where we've landed and whether we need to do anything.
if [[ $git_status != 0 ]]; then
log "*** ERROR: Git reported a failure! ***"
exit 1
elif [[ $git_status == 0 && ($main_changed == 0 || $run_changed == 0) ]]; then
log "Either main ('$main_changed'), or run ('$run_changed') were changed!"
kill-project
elif [[ $git_status == 0 && $grep_status == 0 ]]; then
reload-project
elif [[ $git_status == 0 && $grep_status != 0 ]]; then
log "Nothing to do. '$output'"
else
log "*** WARNING: Unknown Situation ***"
fi
## Success! ##
exit 0

View File

@@ -5,15 +5,18 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Who Am I?</h1> <h1 class="col-12 title">Who Am I?</h1>
<?php if (isset($GLOBALS["SHOW_BANNER_PICS"])
&& !$GLOBALS["SHOW_BANNER_PICS"])
echo '
<div class="col-12 header center" > <div class="col-12 header center" >
<img src="/files/media/icons/about.jpg" alt=""> <img src="/files/media/icons/about.jpg" alt="<<about.jpg>>">
</div> </div>
';?>
</div> </div>
<div class="row"> <div class="row">
<div class="col-12 text"> <div class="col-12 header">
<p> <p>
Hi there! My name is Chad, I'm the primary content creator Hi there! My name is Chad, I'm the primary content creator
behind Hyperling and HyperVegan. Thank you for your interest! behind Hyperling and HyperVegan. Thank you for your interest!
@@ -26,7 +29,6 @@
planted at least one fruit tree or had a small square foot planted at least one fruit tree or had a small square foot
garden. We would be in paradise! garden. We would be in paradise!
</p> </p>
<!-- TBD change this to 'Coding, videos, and art' :) -->
<p> <p>
Coding and videos aren't my only hobbies, I'm also big into Coding and videos aren't my only hobbies, I'm also big into
health. I see it as humanity's most important asset and take a health. I see it as humanity's most important asset and take a
@@ -51,7 +53,6 @@
</p> </p>
</div> </div>
</div> </div>
<?php <?php
include "subpages/about/notice.php"; include "subpages/about/notice.php";
include "subpages/about/health.php"; include "subpages/about/health.php";

View File

@@ -6,5 +6,285 @@
if (!isset($GLOBALS["HEADER_TITLE"])) { if (!isset($GLOBALS["HEADER_TITLE"])) {
$GLOBALS["HEADER_TITLE"] = "Apps"; $GLOBALS["HEADER_TITLE"] = "Apps";
} }
include "home.php"; include "helpers/body_open.php";
?>
<div class="row" id="experience">
<h2 class="col-12 title">My Profession</h2>
</div>
<div class="row">
<div class="col-12 header">
<p>
I'm a professional software engineer who's been playing with
Linux system administration from a young age.
Much of my career has focused on back-end / database systems
and optimizing workflows.
I feel that I specialize in building systems with "no sharp
edges", meaning that I test rigorously to ensure there aren't any
ways the user can hurt themselves or the system.
In my free time I enjoy learning new
languages and writing apps for Android.
</p>
<!--<p><a href="/resume/">My resume can be found here</a>.</p>-->
</div>
</div>
<div class="row" id="obtainium">
<h4 class="col-12 header">Obtainium Configuration</h4>
</div>
<div class="row text">
<div class="col-6 text">
<strong>Automatic Import</strong>
<p>
This JSON file will add all of my apps for you in its own
convenient group:
</p>
<ul class="indent"><li>
<a href="https://git.hyperling.com/me/env-obtainium-hyperling/src/branch/main/obtainium-export.json"
target="_blank" rel="noopener noreferrer"
>
[obtainium-export.json] | Hyperling's Apps
</a>
</li></ul>
<p>
Then if you only want to keep a subset of the apps you may either
mark the unwanted ones as Track Only or delete them from the app.
</p>
</div>
<div class="col-6 text">
<strong>Manual Imports</strong>
<p>
If you decide to add the apps 1-by-1 based on the URLs in the
section below, here is how to show the correct version numbers:
</p>
<ul>
<li>Enable <i>"Sort by only the last segment of the link"</i>.</li>
<li>
Set the <i>"Version string extraction RegEx"</i> field to:
<code>[0-9\.]+[0-9]+</code>
</li>
</ul>
<p>
Otherwise, using <i>"Take first link"</i> ensures you get the
proper update but will show pseudo versions.
</p>
</div>
<!--
TBD/TODO, if adding this section, make it something that's
minimized by default and can be expanded open. Otherwise too big.
<div class="col-12 text">
<strong>Confused?</strong>
<p>
Obtainium is a wonderful app for managing your APKs and sharing
the configuration across your devices or with other people.
</p>
<p>
It is not my project, but I highly recommend using it.
<a href="TBD/TODO"
target="_blank" rel="noopener noreferrer"
>Find its APK here (TBD/TODO!)</a> and
<a>its documentation here</a>.
</p>
</div>
-->
</div>
<div class="row" id="android">
<h3 class="col-12 header">Android Apps</h3>
</div>
<div class="row center text">
<div class="col-12 text border" id="expense">
<a href="https://git.hyperling.com/me/flutter-expense-tracker/releases">
<figure>
<img class="app-icon" loading="lazy" alt="<<expense.png>>"
src="/files/media/icons/expense.png"
>
<figcaption>
Recurring Expense Tracker
</figcaption>
</figure>
</a>
<p>
Keep track of repeating expenses and
view projections of their effect on your finances.
First app written with Flutter.
</p>
<p>
<!--[<s><a>F-Droid</a></s>]-->
[<a href="https://git.hyperling.com/me/flutter-expense-tracker/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/flutter-expense-tracker/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
</div>
<div class="col-12 text border" id="tictactoe">
<a href="https://git.hyperling.com/me/android-tictactoe/releases">
<figure>
<img class="app-icon" loading="lazy" alt="<<tictactoe.png>>"
src="/files/media/icons/tictactoe.png"
>
<figcaption>
Tic-Tac-Toe
</figcaption>
</figure>
</a>
<p>
Play against a friend or a range of AIs.
Written to practice Kotlin/Compose.
</p>
<p>
<!--[<s><a>F-Droid</a></s>]-->
[<a href="https://git.hyperling.com/me/android-tictactoe/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-tictactoe/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
</div>
<div class="col-12 text border" id="ctfu">
<a href="https://git.hyperling.com/me/android-carb-up/releases"
target="_blank" rel="noopener noreferrer">
<figure>
<img class="app-icon" loading="lazy" alt="<<ctfu.png>>"
src="/files/media/icons/ctfu.png"
>
<figcaption>
Carb Up! BETA
</figcaption>
</figure>
</a>
<p>
Calculate cost-effective foods on a High Carb Low Fat lifestyle.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.carbupbeta"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-carb-up/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-carb-up/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="timer">
<a href="https://git.hyperling.com/me/android-infinite-timer/releases"
target="_blank" rel="noopener noreferrer"
>
<figure>
<img class="app-icon" loading="lazy" alt="<<infinitetimer.png>>"
src="/files/media/icons/infinitetimer.png"
>
<figcaption>
Infinite Timer
</figcaption>
</figure>
</a>
<p>
Play a notification at your chosen interval.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.apps.infinitetimer"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-infinite-timer/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-infinite-timer/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="sleep">
<a href="https://git.hyperling.com/me/android-45-minute-rule/releases"
target="_blank" rel="noopener noreferrer">
<figure>
<img class="app-icon" loading="lazy" alt="<<t45mr.png>>"
src="/files/media/icons/t45mr.png"
>
<figcaption>
45 Minute Rule
</figcaption>
</figure>
</a>
<p>
Determine a good bedtime for waking during light sleep.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.apps.the45minuterule"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-45-minute-rule/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-45-minute-rule/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="games">
<a href="https://git.hyperling.com/me/android-hypergames/releases"
target="_blank" rel="noopener noreferrer"
>
<figure>
<img class="app-icon" loading="lazy" alt="<<hypergames.png>>"
src="/files/media/icons/hypergames.png"
>
<figcaption>
HyperGames
</figcaption>
</figure>
</a>
<p>
Started as a fun project for learning.
Playable but unfinished.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=apps.hyperling.com.platformer"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-hypergames/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-hypergames/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--
<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>
-->
</div>
</div>
<div class="row" id="other">
<h3 class="col-12 header">Other Programs</h3>
</div>
<div class="row">
<div class="col-12 text">
<p>
For a full list of software including my Ansible automation,
Docker setup, source code for this website, and other
fun/random toys, check out
<a href="https://git.hyperling.com/me" target="_blank">My Projects</a>.
</p>
</div>
</div>
<?php
include "helpers/body_close.php";
?> ?>

10
pages/books.php Executable file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/php
<!--
Alias for where Books menu item should go.
-->
<?php
if (!isset($GLOBALS["HEADER_TITLE"])) {
$GLOBALS["HEADER_TITLE"] = "Books";
}
include "media.php";
?>

View File

@@ -5,21 +5,28 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Contact</h1> <h1 class="col-12 title">Contact</h1>
<?php if (isset($GLOBALS["SHOW_BANNER_PICS"])
&& !$GLOBALS["SHOW_BANNER_PICS"])
echo '
<div class="col-12 header center" > <div class="col-12 header center" >
<img src="/files/media/icons/contact.jpg" alt=""> <img src="/files/media/icons/contact.jpg" alt="<<contact.jpg>>">
</div> </div>
';?>
</div> </div>
<div class="row"> <div class="row">
<div class="col-12 title center"> <div class="col-12 header center">
<p> <p>
Timely responses are not guarenteed, as I spend a majority of Timely responses are not guarenteed, as I spend a large amount of
my time offline and enjoy traveling in reception-free zones. time offline and enjoy traveling in reception-free zones.
</p> </p>
</div> </div>
</div> </div>
<div class="row">
<h2 class="col-12 header">Methods</h2>
</div>
<div class="row"> <div class="row">
<div class="col-12 text"> <div class="col-12 text">
<p> <p>
@@ -42,7 +49,6 @@
</li></ul> </li></ul>
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -5,12 +5,8 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Current Diet</h1> <h1 class="col-12 title">Current Diet</h1>
<div class="col-12 header center" >
<img src="/files/media/icons/tbd.jpg" alt="Image TBD">
</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-12 text"> <div class="col-12 text">
@@ -208,7 +204,6 @@
</ul> </ul>
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -9,7 +9,6 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Voluntary Sovereignty</h1> <h1 class="col-12 title">Voluntary Sovereignty</h1>
</div> </div>
@@ -59,16 +58,30 @@
<p> <p>
Curious how I made it? Check out its Git repository: Curious how I made it? Check out its Git repository:
</p> </p>
<ul class="indent"><li> <ul class="indent">
<li>
<a href="https://git.hyperling.com/me/ebook-freedom-flyer" <a href="https://git.hyperling.com/me/ebook-freedom-flyer"
target="_blank" rel="noopener noreferrer" target="_blank" rel="noopener noreferrer"
> >
[CODE] | Source Code [CODE] | Source Code
</a> </a>
</li></ul> </li>
</div> </ul>
</div>
<p>
Here is the video it was announced in:
</p>
<ul class="indent">
<li>
<a href="https://odysee.com/@HyperVegan:2/20251003-Announcements:0"
target="_blank" rel="noopener noreferrer"
>
[Odysee] | HyperVegan: "Announcements: Skipped Midfest, Voluntary Sovereignty eBook, CheapRVLiving Interview"
</a>
</li>
</ul>
</div>
</div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -3,13 +3,12 @@
Page to provide ways people can support me. Page to provide ways people can support me.
--> -->
<?php <?php
$GLOBALS["ADVISORY"] = false; //$GLOBALS["ADVISORY"] = false;
if (!isset($GLOBALS["HEADER_TITLE"])) { if (!isset($GLOBALS["HEADER_TITLE"])) {
$GLOBALS["HEADER_TITLE"] = "Health"; $GLOBALS["HEADER_TITLE"] = "Health";
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">My Health Protocol</h1> <h1 class="col-12 title">My Health Protocol</h1>
</div> </div>
@@ -109,7 +108,6 @@
</ul> </ul>
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -1,12 +1,13 @@
#!/usr/bin/php #!/usr/bin/php
<?php
$show_advisory = true;
if ($show_advisory) echo '
<div class="row"> <div class="row">
<p><!-- Gap Area --></p> <p><!-- Gap Area --></p>
</div> </div>
<div class="row center" id="advisory"> <div class="row center title" id="advisory">
<div class="col-12 title"> <i><h2 class="col-12 title">Latest Announcement</h2></i>
<i><h2>Announcements</h2></i>
</div>
<a href="/freedom/"> <a href="/freedom/">
<div class="col-12 text"> <div class="col-12 text">
<u class="orange">2025-09-28</u> <u class="orange">2025-09-28</u>
@@ -16,3 +17,5 @@
</div> </div>
</a> </a>
</div> </div>
';
?>

View File

@@ -21,3 +21,16 @@
.banner-bottom { .banner-bottom {
background-color: #33CC33; background-color: #33CC33;
} }
.banner-image {
background-repeat: no-repeat;
background-position: center, center;
height: 237px; /* 69*3[banner stripes] + 15*2[padding top+bot] */
}
.banner-image01 {
background-image: url("/files/media/icons/home.jpg");
}
.banner-image02 {
background-image: url("/files/media/icons/contact.jpg");
}

View File

@@ -1,8 +1,32 @@
#!/usr/bin/php #!/usr/bin/php
<?php
// Dynamic testing of whether new images around the banner is wanted.
if (!isset($GLOBALS["SHOW_BANNER_PICS"])) {
$GLOBALS["SHOW_BANNER_PICS"] = true;
}
$show_pics = $GLOBALS["SHOW_BANNER_PICS"];
$banner_width = $show_pics ? 6 : 12;
?>
<a href='/about/'> <a href='/about/'>
<div class="row col-12 header"> <div class="row">
<?php if ($show_pics) echo '
<div class="col-3 header center banner-image banner-image01">
<!-<img src="/files/media/icons/home.jpg"
alt="<<banner01.jpg>>"
>-->
</div>
';?>
<div class="col-<?php echo "$banner_width"; ?> header">
<div class="banner-top">Peace</div> <div class="banner-top">Peace</div>
<div class="banner-middle">Love</div> <div class="banner-middle">Love</div>
<div class="banner-bottom">Happiness</div> <div class="banner-bottom">Happiness</div>
</div> </div>
<?php if ($show_pics) echo '
<div class="col-3 header center banner-image banner-image02">
<!--<img src="/files/media/icons/contact.jpg"
alt="<<banner02.jpg>>"
>-->
</div>
';?>
</div>
</a> </a>

View File

@@ -2,6 +2,5 @@
<?php <?php
include "footer.php" include "footer.php"
?> ?>
</body> </body>
</html> </html>

View File

@@ -2,9 +2,7 @@
<?php <?php
include "header.php"; include "header.php";
?> ?>
<body> <body>
<?php <?php
include "banner.php"; include "banner.php";
include "menu.php"; include "menu.php";

View File

@@ -1,12 +1,19 @@
#!/usr/bin/php #!/usr/bin/php
<div class="row header menu"> <div class="row header menu">
<ul class="menu-list"> <ul class="menu-list">
<li class="col-1"></li> <li class="col-3 menu-item"><a href="/">Home</a></li>
<li class="col-2 menu-item"><a href="/apps/">Apps</a></li> <li class="col-3 menu-item"><a href="/about/">About</a></li>
<li class="col-2 menu-item"><a href="/media/">Media</a></li> <li class="col-3 menu-item"><a href="/contact/">Contact</a></li>
<li class="col-2 menu-item"><a href="/about/">About</a></li> <li class="col-3 menu-item"><a href="/support/">Support</a></li>
<li class="col-2 menu-item"><a href="/contact/">Contact</a></li> </ul>
<li class="col-2 menu-item"><a href="/support/">Support</a></li> <ul class="menu-list">
<li class="col-1"></li> <li class="col-3 menu-item"><a href="/apps/">Apps</a></li>
<li class="col-3 menu-item"><a href="/books/">Books</a></li>
<li class="col-3 menu-item">
<a href="https://odysee.com/@HyperVegan:2"
target="_blank" rel="noopener noreferrer"
>Videos</a>
</li>
<li class="col-3 menu-item"><a href="/photos/">Photos</a></li>
</ul> </ul>
</div> </div>

View File

@@ -4,19 +4,22 @@
--> -->
<?php <?php
if (!isset($GLOBALS["HEADER_TITLE"])) { if (!isset($GLOBALS["HEADER_TITLE"])) {
$GLOBALS["HEADER_TITLE"] = "Home"; $GLOBALS["HEADER_TITLE"] = "Announcements";
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Welcome!</h1> <h1 class="col-12 title">Welcome!</h1>
<?php if (isset($GLOBALS["SHOW_BANNER_PICS"])
&& !$GLOBALS["SHOW_BANNER_PICS"])
echo '
<div class="col-12 header center" > <div class="col-12 header center" >
<img src="/files/media/icons/home.jpg" alt=""> <img src="/files/media/icons/home.jpg" alt="<<home.jpg>>">
</div> </div>
';?>
</div> </div>
<div class="row"> <div class="row">
<div class="col-12 text"> <div class="col-12 header center">
<p> <p>
Thank you for visiting my site! My goal is to make the world a Thank you for visiting my site! My goal is to make the world a
better place. Hopefully you find content here which helps empower better place. Hopefully you find content here which helps empower
@@ -24,9 +27,8 @@
</p> </p>
</div> </div>
</div> </div>
<?php <?php
include "subpages/home/apps.php"; include "subpages/home/announcements.php";
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -8,15 +8,18 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Media</h1> <h1 class="col-12 title">Media</h1>
<!--<?php if (isset($GLOBALS["SHOW_BANNER_PICS"])
&& !$GLOBALS["SHOW_BANNER_PICS"])
echo '
<div class="col-12 header center" > <div class="col-12 header center" >
<img src="/files/media/icons/videos.jpg" alt=""> <img src="/files/media/icons/videos.jpg" alt="<<videos.jpg>>">
</div> </div>
';?>-->
</div> </div>
<div class="row"> <div class="row">
<div class="col-12 text center"> <div class="col-12 header center">
<p> <p>
My written works, social platforms, and photos can be found here. My written works, social platforms, and photos can be found here.
</p> </p>
@@ -32,11 +35,18 @@
<p> <p>
I enjoy writing! Find my free eBooks below. I enjoy writing! Find my free eBooks below.
</p> </p>
<ul class="indent"><li> <ul class="indent">
2025-09-28: <a href="/freedom/">Voluntary Sovereignty</a> <li>
</li><li> 2025-09-28: <a href="/freedom/">Voluntary Sovereignty</a> |
2024-03-07: <a href="/health/">My Health Protocol</a> Existing in a statist society with the least amount of friction.
</li></ul> </li>
<li><p><!-- Small Gap --></p></li>
<li>
2024-03-07: <a href="/health/">Hyperling's Health Protocol</a> |
Health is a lifestyle, not a diet. Align yourself with Nature
to receive its blessings.
</li>
</ul>
</div> </div>
</div> </div>
@@ -107,7 +117,6 @@
</li></ul> </li></ul>
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -41,7 +41,7 @@ function start_main_page {
echo -e "\t\t</div>" >> $mainpage echo -e "\t\t</div>" >> $mainpage
echo -e "\t\t<div class='row'>" >> $mainpage echo -e "\t\t<div class='row'>" >> $mainpage
echo -e "\t\t\t<div class='col-12 text'>" >> $mainpage echo -e "\t\t\t<div class='col-12 header'>" >> $mainpage
echo -en "\t\t\t\t<p>You may click on an album name to " >> $mainpage echo -en "\t\t\t\t<p>You may click on an album name to " >> $mainpage
echo -en "view all of its files, or click on a specific image to bring up the " >> $mainpage echo -en "view all of its files, or click on a specific image to bring up the " >> $mainpage
echo -en "full resolution. On the album pages you may also click an image or " >> $mainpage echo -en "full resolution. On the album pages you may also click an image or " >> $mainpage

View File

@@ -8,7 +8,6 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Lists of Resources</h1> <h1 class="col-12 title">Lists of Resources</h1>
</div> </div>
@@ -68,7 +67,6 @@
</p> </p>
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -8,12 +8,10 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Resume</h1> <h1 class="col-12 title">Resume</h1>
<div class="col-12 header center" >
<img src="/files/media/icons/home.jpg" alt=""> <!-- TBD use a new photo -->
</div> </div>
<div class="row">
<h2 class="col-12 title center">Current Status : Traveling Full Time</h2> <h2 class="col-12 title center">Current Status : Traveling Full Time</h2>
</div> </div>
<div class="row"> <div class="row">
@@ -21,25 +19,15 @@
<p> <p>
Interested in hiring me? View my resume below! Interested in hiring me? View my resume below!
</p> </p>
<ul class="indent"><li> <!--<ul class="indent"><li>-->
<a href="https://hyperling.com/files/media/documents/Resume.pdf" <a href="https://hyperling.com/files/media/documents/Resume.pdf"
target="_blank" rel="noopener noreferrer" target="_blank" rel="noopener noreferrer"
> >
[PDF] | Direct Download [PDF] | Direct Download
</a> </a>
</li></ul> <!--</li></ul>-->
<!-- For those sneaky folks who look at source code. ;)
<ul class="indent"><li>
<a href="https://hyperling.com/files/media/documents/resume.md"
target="_blank" rel="noopener noreferrer"
>
[Markdown] | Direct Download
</a>
</li></ul>
-->
</div> </div>
</div> </div>
<?php <?php
include "helpers/body_close.php"; include "helpers/body_close.php";
?> ?>

View File

@@ -0,0 +1,109 @@
#!/usr/bin/php
<?php
$long = true;
?>
<div class="row" id="obtainium">
<h2 class="col-12 header">Announcements</h2>
</div>
<div class="row">
<div class="col-12 text">
<strong><a href="/freedom/">2025-09-28</a></strong>
<p>
I wrote another short free eBook, "Voluntary Sovereignty", check it out
<a href="/freedom/">here</a>!
</p>
<?php if ($long) echo "
<p>
It discusses how to live in order to create a truly free society,
as well as how to conduct oneself in today's authoritarian system.
</p>
<p>
Learn what your rights are and how to avoid being harassed by
order followers while living how you were meant to be on the Earth.
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2/20251003-Announcements:0"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (HyperVegan: "Announcements: Skipped Midfest, Voluntary Sovereignty eBook, CheapRVLiving Interview")</a>
</p>
</div>
</div>
<div class="row">
<div class="col-12 text">
<strong><a href="/apps/#expense">2025-03-27</a></strong>
<p>
My new Android app
<a href="/apps/#expense">"Expense Tracker"</a>
has been completed!
</p>
<?php if ($long) echo "
<p>
It allows for tracking recurring expenses against income and static assets,
helping plan for financial planning and savings goals.
</p>
<p>
This is my first app developed using the Flutter framework.
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2/20250402-HyperVegan-ExpenseTrackerApp:4"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (HyperVegan: "Expense Tracker App")</a>
</p>
</div>
</a>
</div>
<div class="row">
<div class="col-12 text">
<strong><a href="/health/">2024-03-07</a></strong>
<p>
Find my free eBook, "Hyperling's Health Protocol",
<a href="/health/">here</a>!
</p>
<?php if ($long) echo "
<p>
It contains a summary of my favorite and most useful lifestyle advice.
</p>
<p>
These range across the basics of food / water / sleep / exercise
as well as less discussed topics of environment and positivity.
</p>
<p>
Reverse chronic disease and live your life full of energy and abundance!
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2/20240306_MyHealthProtocol-Book:9"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (HyperVegan: "My Health Protocol | eBook")</a>
</p>
</div>
</div>
<div class="row">
<div class="col-12 text">
<strong><a href="/apps/#tictactoe">2024-03-31</a></strong>
<p>
There's a new app in town,
<a href="/apps/#tictactoe">Tic-Tac-Toe</a>!
</p>
<?php if ($long) echo "
<p>
This was written to learn Kotlin style Android programming.
</p>
<p>
It allows playing against a range of automated opponents,
as well as a local human player!
</p>
";?>
<p>
<a href="https://odysee.com/@HyperVegan:2/20240401_NewYearNewApp:1"
target="_blank" rel="noopener noreferrer"
>Watch the announcement here | (HyperVegan: "New Year, New App")</a>
</p>
</div>
</div>

View File

@@ -1,244 +0,0 @@
#!/usr/bin/php
<div class="row" id="experience">
<h2 class="col-12 header">My Profession</h2>
</div>
<div class="row">
<div class="col-12 text">
<p>
I'm a professional software engineer who's been playing with
Linux system administration from a young age. Much of my career
has focused on back-end / database systems and optimizing
workflows. In my free time I enjoy learning new languages and
writing apps for Android.
</p>
<!--<p><a href="/resume/">My resume can be found here</a>.</p>-->
</div>
</div>
<div class="row" id="programs">
<h2 class="col-12 header">Public Programs</h2>
</div>
<div class="row">
<div class="col-12 text">
<p>
Please feel welcome to use any of my free software below.
</p>
</div>
</div>
<div class="row" id="android">
<h3 class="col-12 header">Android Apps</h3>
</div>
<div class="row center text">
<div class="col-12 text border" id="expense">
<a href="https://git.hyperling.com/me/flutter-expense-tracker/releases">
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/expense.png"
>
<figcaption>
Recurring Expense Tracker
</figcaption>
</figure>
</a>
<p>
Keep track of repeating expenses and
view projections of their effect on your finances.
First app written with Flutter.
</p>
<p>
<!--[<s><a>F-Droid</a></s>]-->
[<a href="https://git.hyperling.com/me/flutter-expense-tracker/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/flutter-expense-tracker/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
</div>
<div class="col-12 text border" id="tictactoe">
<a href="https://git.hyperling.com/me/android-tictactoe/releases">
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/tictactoe.png"
>
<figcaption>
Tic-Tac-Toe
</figcaption>
</figure>
</a>
<p>
Play against a friend or a range of AIs.
Written to practice Kotlin/Compose.
</p>
<p>
<!--[<s><a>F-Droid</a></s>]-->
[<a href="https://git.hyperling.com/me/android-tictactoe/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-tictactoe/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
</div>
<div class="col-12 text border" id="ctfu">
<a href="https://git.hyperling.com/me/android-carb-up/releases"
target="_blank" rel="noopener noreferrer">
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/ctfu.png"
>
<figcaption>
Carb Up! BETA
</figcaption>
</figure>
</a>
<p>
Calculate cost-effective foods on a High Carb Low Fat lifestyle.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.carbupbeta"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-carb-up/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-carb-up/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="timer">
<a href="https://git.hyperling.com/me/android-infinite-timer/releases"
target="_blank" rel="noopener noreferrer"
>
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/infinitetimer.png"
>
<figcaption>
Infinite Timer
</figcaption>
</figure>
</a>
<p>
Play a notification at your chosen interval.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.apps.infinitetimer"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-infinite-timer/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-infinite-timer/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="sleep">
<a href="https://git.hyperling.com/me/android-45-minute-rule/releases"
target="_blank" rel="noopener noreferrer">
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/t45mr.png"
>
<figcaption>
45 Minute Rule
</figcaption>
</figure>
</a>
<p>
Determine a good bedtime for waking during light sleep.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=com.hyperling.apps.the45minuterule"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-45-minute-rule/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-45-minute-rule/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>-->
</div>
<div class="col-12 text border" id="games">
<a href="https://git.hyperling.com/me/android-hypergames/releases"
target="_blank" rel="noopener noreferrer"
>
<figure>
<img class="app-icon" loading="lazy" alt=""
src="/files/media/icons/hypergames.png"
>
<figcaption>
HyperGames
</figcaption>
</figure>
</a>
<p>
Started as a fun project for learning.
Playable but unfinished.
</p>
<p>
<!--[<a href="https://play.google.com/store/apps/details?id=apps.hyperling.com.platformer"
target="_blank" rel="noopener noreferrer">Play Store</a>]-->
[<a href="https://git.hyperling.com/me/android-hypergames/"
target="_blank" rel="noopener noreferrer">Source Code</a>]
[<a href="https://git.hyperling.com/me/android-hypergames/releases"
target="_blank" rel="noopener noreferrer">APKs / Obtainium URL</a>]
</p>
<!--
<p>
<s>
[<a target="_blank" rel="noopener noreferrer">F-Droid</a>]
</s>
</p>
-->
</div>
</div>
<div class="row" id="obtainium">
<h4 class="col-12 header">Obtainium Configuration</h4>
</div>
<div class="row text">
<div class="col-12 text">
<p>
In order to have the correct version numbers in Obtainium:
</p>
<ul>
<li>Enable <i>"Sort by only the last segment of the link"</i>.</li>
<li>
Set the <i>"Version string extraction RegEx"</i> field to:
<code>[0-9\.]+[0-9]+</code>
</li>
</ul>
<p>
Otherwise, <i>"Take first link"</i> works with pseudo versions.
</p>
</div>
</div>
<div class="row" id="other">
<h3 class="col-12 header">Other Programs</h3>
</div>
<div class="row">
<div class="col-12 text">
<p>
For a full list of software including my Ansible automation,
Docker setup, source code for this website, and other
fun/random toys, check out
<a href="https://git.hyperling.com/me" target="_blank">My Projects</a>.
</p>
</div>
</div>

View File

@@ -50,7 +50,7 @@
<code>me@hyperling.com</code> <code>me@hyperling.com</code>
<br> <br>
<br> <br>
<img src="/files/media/icons/zelle.png" alt=""> <img src="/files/media/icons/zelle.png" alt="<<zelle.png>>">
</div> </div>
<br> <br>

View File

@@ -8,19 +8,21 @@
} }
include "helpers/body_open.php"; include "helpers/body_open.php";
?> ?>
<div class="row"> <div class="row">
<h1 class="col-12 title">Support</h1> <h1 class="col-12 title">Support</h1>
<?php if (isset($GLOBALS["SHOW_BANNER_PICS"])
&& !$GLOBALS["SHOW_BANNER_PICS"])
echo '
<div class="col-12 header center" > <div class="col-12 header center" >
<img src="/files/media/icons/support.jpg" alt=""> <img src="/files/media/icons/support.jpg" alt="<<support.jpg>>">
</div> </div>
<div class="col-12 text center"> ';?>
<div class="col-12 header center">
<p> <p>
Anything is very much appreciated!! Thank you for considering me! Anything is very much appreciated!! Thank you for considering me!
</p> </p>
</div> </div>
</div> </div>
<?php <?php
include "subpages/support/donate.php"; include "subpages/support/donate.php";
// 2025-01-04 Not really looking for this type of thing. // 2025-01-04 Not really looking for this type of thing.

56
run.sh
View File

@@ -4,8 +4,14 @@
## Setup ## ## Setup ##
DIR=`dirname $0` DIR="$(dirname -- "${BASH_SOURCE[0]}")"
PROG=`basename $0` PROG="$(basename -- "${BASH_SOURCE[0]}")"
# Ensure we are executing from this file's directory.
cd $DIR
DIR="`pwd`"
NAME="'$DIR/$PROG'"
echo $NAME
## Functions ## ## Functions ##
@@ -26,6 +32,22 @@ function log {
echo -e "`date` - $message" echo -e "`date` - $message"
} }
log "Local process information:"
ps $$
function check_main {
if [[ -z "$1" ]]; then
echo "ERROR: Subprocess name was not provided. $1"
exit 0
fi
log "Subprocess '$1' checking if main process is still running..."
ps $$ >/dev/null
status=$?
if [[ $status != 0 ]]; then
log "Process '$$' not found, '$1' from '$DIR/$PROG' exiting."
exit 0
fi
}
## Parameters ## ## Parameters ##
while getopts ':p:h' opt; do while getopts ':p:h' opt; do
@@ -47,9 +69,6 @@ fi
## Build Environment ## ## Build Environment ##
# Ensure we are executing from this file's directory.
cd $DIR
sudo="" sudo=""
if [[ -z $LOGNAME ]]; then if [[ -z $LOGNAME ]]; then
LOGNAME="`whoami`" LOGNAME="`whoami`"
@@ -60,21 +79,29 @@ if [[ $LOGNAME != "root" ]]; then
fi fi
log "Check if any system dependencies need installed." log "Check if any system dependencies need installed."
progs=""
if [[ ! `which php` ]]; then if [[ ! `which php` ]]; then
echo "- Installing PHP" echo "- Installing PHP"
$sudo apt-get install -y php-cli progs="$progs php-cli"
fi fi
if [[ ! `which node` ]]; then if [[ ! `which node` ]]; then
echo "- Installing Node" echo "- Installing Node"
$sudo apt-get install -y nodejs progs="$progs nodejs"
fi fi
if [[ ! `which npm` ]]; then if [[ ! `which npm` ]]; then
echo "- Installing NPM" echo "- Installing NPM"
$sudo apt-get install -y npm progs="$progs npm"
fi fi
if [[ ! `which curl` ]]; then if [[ ! `which curl` ]]; then
echo "- Installing Curl" echo "- Installing Curl"
$sudo apt-get install -y curl progs="$progs curl"
fi
if [[ ! `which ps` ]]; then
echo "- Installing PS"
progs="$progs procps"
fi
if [[ -n "$progs" ]]; then
$sudo apt-get install -y $progs
fi fi
# Directories and allowed page types are executable, others are not. # Directories and allowed page types are executable, others are not.
@@ -95,6 +122,7 @@ npm install
log "Removing old index files." log "Removing old index files."
find files/photos/ -name "*".html -print -delete find files/photos/ -name "*".html -print -delete
{ {
check_main photos
count=1 count=1
http_code=0 http_code=0
port="${ports%% *}" port="${ports%% *}"
@@ -120,11 +148,21 @@ find files/photos/ -name "*".html -print -delete
## Main ## ## Main ##
log "Start local cronjob."
while true; do
check_main cronjob
$DIR/cronjob.sh
sleep 30
done &
log "Start website API." log "Start website API."
node ./main.js $ports node ./main.js $ports
status=$? status=$?
## Finish ## ## Finish ##
log "Kill spawned processes."
pkill -eP $$
log "Exiting with status '$status'." log "Exiting with status '$status'."
exit $status exit $status