Merge pull request '¡Hyperling.com 2.0!' (#16) from dev into main
Reviewed-on: #16
This commit is contained in:
@@ -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
66
cronjob.sh
Executable 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
|
@@ -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";
|
||||||
|
282
pages/apps.php
282
pages/apps.php
@@ -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
10
pages/books.php
Executable 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";
|
||||||
|
?>
|
@@ -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";
|
||||||
?>
|
?>
|
||||||
|
@@ -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";
|
||||||
?>
|
?>
|
||||||
|
@@ -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";
|
||||||
?>
|
?>
|
||||||
|
@@ -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";
|
||||||
?>
|
?>
|
||||||
|
@@ -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>
|
||||||
|
';
|
||||||
|
?>
|
||||||
|
@@ -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");
|
||||||
|
}
|
||||||
|
@@ -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>
|
||||||
|
@@ -2,6 +2,5 @@
|
|||||||
<?php
|
<?php
|
||||||
include "footer.php"
|
include "footer.php"
|
||||||
?>
|
?>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@@ -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";
|
||||||
|
@@ -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>
|
||||||
|
@@ -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";
|
||||||
?>
|
?>
|
||||||
|
@@ -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";
|
||||||
?>
|
?>
|
||||||
|
@@ -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
|
||||||
|
@@ -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";
|
||||||
?>
|
?>
|
||||||
|
@@ -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";
|
||||||
?>
|
?>
|
||||||
|
109
pages/subpages/home/announcements.php
Executable file
109
pages/subpages/home/announcements.php
Executable 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>
|
@@ -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>
|
|
@@ -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>
|
||||||
|
|
||||||
|
@@ -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
56
run.sh
@@ -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
|
||||||
|
Reference in New Issue
Block a user