Compare commits

...

10 Commits

7 changed files with 207 additions and 194 deletions

View File

@@ -1 +0,0 @@
PGRpdj4KICAgIDxpbWcKICAgICAgICBjbGFzcz0iYnVsbGV0LWltZyIKICAgICAgICBzcmM9ImRpc2NvcmQucG5nIgogICAgICAgIGFsdD0iRGlzY29yZCIKICAgIC8+QG1pbmluZ3RjdXAKPC9kaXY+CjxkaXY+CiAgICA8aW1nCiAgICAgICAgY2xhc3M9ImJ1bGxldC1pbWciCiAgICAgICAgc3JjPSJwcm90b25tYWlsLnBuZyIKICAgICAgICBhbHQ9IkRpc2NvcmQiCiAgICAvPnRlZEBtaW5pbmd0Y3VwLm1lCjwvZGl2Pgo8ZGl2PgogICAgPGltZwogICAgICAgIGNsYXNzPSJidWxsZXQtaW1nIgogICAgICAgIHNyYz0icGhvbmUud2VicCIKICAgICAgICBhbHQ9IkRpc2NvcmQiCiAgICAvPig2NTApIDUxMi05NjM1CjwvZGl2Pgo=

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -1,178 +1,146 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MiningTcup</title> <title>MiningTcup</title>
<link rel="stylesheet" href="style.css" /> <link rel="stylesheet" href="style.css" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link rel="dns-prefetch" href="https://git.miningtcup.me/" /> <link rel="dns-prefetch" href="https://git.miningtcup.me/" />
<link rel="dns-prefetch" href="https://mozhi.miningtcup.me/" /> <link rel="dns-prefetch" href="https://mozhi.miningtcup.me/" />
<link rel="dns-prefetch" href="https://archz.miningtcup.me/" /> <link rel="dns-prefetch" href="https://arch.miningtcup.me/" />
<link rel="dns-prefetch" href="https://archlinux.org/" /> <link rel="dns-prefetch" href="https://archlinux.org/" />
<link rel="dns-prefetch" href="https://hypr.land/" /> <link rel="dns-prefetch" href="https://hypr.land/" />
<link rel="preload" href="discord.png" as="image" type="image/png" /> </head>
<link rel="preload" href="protonmail.png" as="image" type="image/png" /> <body>
<link rel="preload" href="phone.webp" as="image" type="image/webp" /> <div class="centerer">
</head> <div id="content">
<body> <div id="title-1">
<div class="centerer"> <div class="h1-container">
<div id="content"> <h1>Ted Pier<span class="subtitle">a.k.a. MiningTcup</span></h1>
<div id="title-1"> </div>
<h1> <img src="lulu.webp" alt="Lulu the dog" />
Ted Pier<span class="subtitle"
>&nbsp;a.k.a. MiningTcup</span
>
</h1>
</div>
<hr />
<section>
<h2>Things I've Done</h2>
<h3><a target="_blank" href="/youclient">YouClient</a></h3>
<p>
My middle school gave each student an incredibly weak
Chromebook infested with blockers and spyware, and
didn't allow us to bring our own computers. Since one of
my strongest skills at the time was web dev, I made an
alternative YouTube client. The entire thing is a single
html file, making it easy to distribute and run.
Advantages over using the official YouTube website are
faster loading, no ads, tab customization, anti-unload,
no browser history, and no spyware spying.
</p>
<h3>
<a
target="_blank"
href="https://git.miningtcup.me/MiningTcup/dotfiles/"
>Linux</a
>
</h3>
<p>
The kernel is the core of the operating system. Linux is
an alternative operating system kernel, similar to the
Windows or MacOS kernels. It can run on nearly any
device (including PCs and Macs), and is used by Android.
One of my favorite things to do is mess with
configuration files on my
<a target="_blank" href="https://archlinux.org"
>Arch Linux</a
>
+
<a target="_blank" href="https://hypr.land">Hyprland</a>
system. Over the last more than a year, I've settled on
an (in my opinion) nearly <i>perfect</i> configuration.
</p>
<h3>
<a
target="_blank"
href="https://git.miningtcup.me/MiningTcup/noteserver"
>Notes</a
>
</h3>
<p>
I'd always wanted to use a notes app, but I never liked
any of the options. Instead of paying with my
information, time, or money for one that someone else
made, I decided to make my own. I wrote the server in
Go, the language which I believe is best for anything to
do with servers, and the app in Android Studio using
Kotlin. After completing the server, I accidentally
deleted the source code, prompting me to recode it. It's
finished now, and you can view the most likely terrible
source code for the server
<a
target="_blank"
href="https://git.miningtcup.me/MiningTcup/noteserver"
>here</a
>. Although I don't plan on giving out the source code
for the app because it's so terrible, you can download
the APK file <a download href="notes.apk">here</a>.
</p>
</section>
<hr />
<section>
<h2>Services I Run</h2>
<h3>
<a
target="_blank"
href="https://git.miningtcup.me/MiningTcup/website"
>Static Webserver</a
>
</h3>
<p>
That's what you're using right now- my website! It's a
classic Nginx webserver. Notice how fast it loaded? My
website is written without any libraries, tracking, or
external fonts because ew, bloat.
</p>
<h3>DNS Servers</h3>
<p>
Back in middle school, some friends and I found a way to
disable the school Chromebook's spyware. While proxies
were disabled and vpns (almost) impossible to set up, we
were free to change the DNS servers of any network
except(?) the schools. This gave us the power to block
any domain we wanted, including the domains which would
load blocklists or send away all our data. The plain DNS
server is run using BIND 9.
</p>
<div>
Plain DNS: <strong>99.31.208.235:53</strong>
<br />
DNS over HTTPS:
<strong>https://dns.miningtcup.me/dns-query</strong>
</div>
<h3>
<a target="_blank" href="https://git.miningtcup.me/"
>Git Server</a
>
</h3>
<p>
GitHub is slow, annoying, and trains LLMs on everything
you upload. My Git server is <i>very</i> fast (for me,
at least), annoyance-free, and <i>doesn't</i> train LLMs
on your work without asking.
</p>
<h3>
<a target="_blank" href="https://mozhi.miningtcup.me/"
>Mozhi Server</a
>
</h3>
<p>
Mozhi is a proxy for several translators, used by Crow
Translate by KDE.
</p>
<h3>
<a target="_blank" href="https://arch.miningtcup.me/"
>Arch Linux Mirror</a
>
</h3>
<p>
Having my own Arch Linux mirror means my updates will be
just about instant.
</p>
</section>
<hr />
<section>
<h2>Contact Me</h2>
<p class="margin-8px-top">
I'm sort of chronically online. Your best chance of
quick contact is a phone call, but Discord, email, and
text work too.
</p>
<div id="contact-info-container" class="cover relative">
<strong
>JavaScript is required to load contact
info.</strong
>
<div id="click-to-reveal-prompt">
click to reveal contact info
</div>
</div>
</section>
<hr />
</div>
</div> </div>
<script src="script.js" defer></script> <hr />
</body> <section>
<h2>Things I've Done</h2>
<a target="_blank" href="/youclient"><h3>YouClient</h3></a>
<p>
My middle school gave each student an incredibly weak Chromebook
infested with blockers and spyware, and didn't allow us to bring our
own computers. Since one of my strongest skills at the time was web
dev, I made an alternative YouTube client. The entire thing is a
single html file, making it easy to distribute and run. Advantages
over using the official YouTube website are faster loading, no ads,
tab customization, anti-unload, no browser history, and no spyware
spying.
</p>
<a
target="_blank"
href="https://git.miningtcup.me/MiningTcup/dotfiles/"
>
<h3>Linux</h3></a
>
<p>
The kernel is the core of the operating system. Linux is an
alternative operating system kernel, similar to the Windows or MacOS
kernels. It can run on nearly any device (including PCs and Macs),
and is used by Android. One of my favorite things to do is mess with
configuration files on my
<a target="_blank" href="https://archlinux.org">Arch Linux</a>
+
<a target="_blank" href="https://hypr.land">Hyprland</a>
system. Over the last more than a year, I've settled on an (in my
opinion) nearly <i>perfect</i> configuration.
</p>
<a
target="_blank"
href="https://git.miningtcup.me/MiningTcup/noteserver"
><h3>Notes</h3></a
>
<p>
I'd always wanted to use a notes app, but I never liked any of the
options. Instead of paying with my information, time, or money for
one that someone else made, I decided to make my own. I wrote the
server in Go, the language which I believe is best for anything to
do with servers, and the app in Android Studio using Kotlin. After
completing the server, I accidentally deleted the source code,
prompting me to recode it. It's finished now, and you can view the
most likely terrible source code for the server
<a
target="_blank"
href="https://git.miningtcup.me/MiningTcup/noteserver"
>here</a
>. Although I don't plan on giving out the source code for the app
because it's so terrible, you can download the APK file
<a download href="notes.apk">here</a>.
</p>
</section>
<hr />
<section>
<h2>Services I Run</h2>
<a
target="_blank"
href="https://git.miningtcup.me/MiningTcup/website"
>
<h3>Static Webserver</h3></a
>
<p>
That's what you're using right now- my website! It's a classic Nginx
webserver. Notice how fast it loaded? That's what happens when a
website is written without any libraries, tracking, or external
fonts.
</p>
<h3>DNS Servers</h3>
<p>
Back in middle school, some friends and I found a way to disable the
school Chromebook's spyware. While proxies were disabled and vpns
(almost) impossible to set up, we were free to change the DNS
servers of any network except(?) the schools. This gave us the power
to block any domain we wanted, including the domains which would
load blocklists or send away all our data. The plain DNS server is
run using BIND 9.
</p>
<a target="_blank" href="https://git.miningtcup.me/">
<h3>Git Server</h3></a
>
<p>
GitHub is slow, annoying, and trains LLMs on everything you upload.
My Git server is <i>very</i> fast (for me, at least),
annoyance-free, and <i>doesn't</i> train LLMs on your work without
asking.
</p>
<a target="_blank" href="https://mozhi.miningtcup.me/">
<h3>Mozhi Server</h3></a
>
<p>
Mozhi is a proxy for several translators, used by Crow Translate by
KDE.
</p>
<a target="_blank" href="https://arch.miningtcup.me/">
<h3>Arch Linux Mirror</h3></a
>
<p>
Having my own Arch Linux mirror means my updates will be just about
instant.
</p>
</section>
<hr />
<section>
<h2>Contact Me</h2>
<p class="margin-8px-top">
I'm sort of chronically online. Your best chance of quick contact is
a phone call, but Discord, email, and text work too.
</p>
<div id="contact-info-container" class="cover relative">
<strong>JavaScript is required to load contact info.</strong>
<div id="click-to-reveal-prompt">click to reveal contact info</div>
</div>
</section>
<hr />
</div>
</div>
<script src="script.js" defer></script>
</body>
</html> </html>

24
lulu.html Normal file
View File

@@ -0,0 +1,24 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MiningTcup</title>
<link rel="stylesheet" href="style.css" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
</head>
<body>
<div class="centerer">
<div id="content">
<div id="title-1">
<div class="h1-container">
<h1>Lulu Pier<span class="subtitle">&nbsp;a.k.a. Doggo</span></h1>
</div>
<img src="lulu.webp" alt="Lulu the dog" />
</div>
<hr />
hello
</div>
</div>
</body>
</html>

BIN
lulu.webp

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,14 +1,14 @@
const $ = (id) => document.getElementById(id); const $ = (id) => document.getElementById(id);
const infoContainer = $("contact-info-container"); const infoContainer = $("contact-info-container");
infoContainer.addEventListener("mousedown", loadContactInfo);
infoContainer.addEventListener("click", loadContactInfo); infoContainer.addEventListener("click", loadContactInfo);
function loadContactInfo() { function loadContactInfo() {
fetch("contact-info.obfuscated") infoContainer.innerHTML = atob(
.then((response) => response.text()) "PGRpdj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmNvbS91c2Vycy84MjU0ODcxMzg5NDY1NDc3MTIiPjxpbWcgY2xhc3M9ImJ1bGxldC1pbWciIHNyYz0iZGlzY29yZC5wbmciIGFsdD0iRGlzY29yZCIgLz5taW5pbmd0Y3VwPC9hPjwvZGl2PjxkaXY+PGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Im1haWx0bzp0ZWRAbWluaW5ndGN1cC5tZSI+PGltZyBjbGFzcz0iYnVsbGV0LWltZyIgc3JjPSJwcm90b25tYWlsLnBuZyIgYWx0PSJFbWFpbCIvPnRlZEBtaW5pbmd0Y3VwLm1lPC9hPjwvZGl2PjxkaXY+PGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9InRlbDorMS02NTAtNTEyLTk2MzUiPjxpbWcgY2xhc3M9ImJ1bGxldC1pbWciIHNyYz0icGhvbmUud2VicCIgYWx0PSJQaG9uZSIgLz4oNjUwKSA1MTItOTYzNTwvYT48L2Rpdj4=",
.then((text) => { );
infoContainer.innerHTML = atob(text); infoContainer.classList.remove("cover");
infoContainer.classList.remove("cover"); infoContainer.removeEventListener("mousedown", loadContactInfo);
infoContainer.removeEventListener("click", loadContactInfo); infoContainer.removeEventListener("click", loadContactInfo);
});
} }

View File

@@ -13,6 +13,7 @@
h3 { h3 {
margin-top: 16px; margin-top: 16px;
margin-bottom: 0; margin-bottom: 0;
color: light-dark(black, white);
} }
h2 { h2 {
@@ -25,6 +26,14 @@ a {
color: light-dark(black, white); color: light-dark(black, white);
} }
:not(p) > a {
text-decoration: none;
}
:not(p) > a:hover {
text-decoration: underline;
}
p { p {
margin-top: 0; margin-top: 0;
margin-bottom: 8px; margin-bottom: 8px;
@@ -43,10 +52,6 @@ p {
max-width: 256px; max-width: 256px;
} }
#contact-info-container * {
user-select: initial;
}
#content { #content {
padding-bottom: 25vh; padding-bottom: 25vh;
} }
@@ -84,17 +89,31 @@ p {
} }
#title-1 { #title-1 {
background-image: url(lulu.webp);
background-size: 60%;
background-position: 100% 35%;
color: light-dark(white, black); color: light-dark(white, black);
overflow: hidden;
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
} }
#title-1 * { #title-1 > .h1-container {
margin: 0;
padding: 16px; padding: 16px;
background: light-dark(black, white); background: light-dark(black, whitesmoke);
width: max-content; width: max-content;
z-index: 1;
}
#title-1 > div > h1 {
margin: 0;
}
#title-1 > img {
z-index: 0;
display: block;
max-height: 71px;
}
.disabled {
pointer-events: none;
} }
body { body {
@@ -102,14 +121,17 @@ body {
font-family: sans-serif; font-family: sans-serif;
position: relative; position: relative;
background: light-dark(whitesmoke, black); background: light-dark(whitesmoke, black);
color: light-dark(black, whitesmoke);
display: block;
} }
#click-to-reveal-prompt { #click-to-reveal-prompt {
color: grey; color: grey;
position: absolute; position: absolute;
left: 0;
right: 0;
top: 8px; top: 8px;
left: 8px; text-align: center;
font-size: 12px;
} }
section { section {