fix(ed) width
This commit is contained in:
194
index.html
194
index.html
@@ -1,184 +1,14 @@
|
|||||||
<!doctype html>
|
const $ = (id) => document.getElementById(id);
|
||||||
<html lang="en">
|
const infoContainer = $("contact-info-container");
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta
|
|
||||||
name="description"
|
|
||||||
content="Ted Pier's portfolio and personal website."
|
|
||||||
/>
|
|
||||||
<title>MiningTcup</title>
|
|
||||||
<link rel="stylesheet" href="style.css" />
|
|
||||||
<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://mozhi.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://hypr.land/" />
|
|
||||||
<link rel="dns-prefetch" href="https://openfreemap.org/" />
|
|
||||||
<link rel="prefetch" href="/lulu" />
|
|
||||||
<link rel="prefetch" href="/archive" />
|
|
||||||
<link rel="prefetch" href="/blog" />
|
|
||||||
<link rel="prefetch" href="https://arch.miningtcup.me" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="centerer">
|
|
||||||
<div id="content">
|
|
||||||
<div id="title-1">
|
|
||||||
<div class="h1-container">
|
|
||||||
<h1>
|
|
||||||
Ted Pier<span class="gone"> </span
|
|
||||||
><span class="subtitle">a.k.a. MiningTcup</span>
|
|
||||||
</h1>
|
|
||||||
</div>
|
|
||||||
<a href="/lulu"><img src="images/lulu.webp" alt="Lulu the dog" /></a>
|
|
||||||
</div>
|
|
||||||
<ul id="index">
|
|
||||||
<li><a href="/lulu">Lulu</a></li>
|
|
||||||
<li><a href="/archive">Archive</a></li>
|
|
||||||
<li><a href="/blog">Blog</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr />
|
|
||||||
<section>
|
|
||||||
<h2>Things I've Done</h2>
|
|
||||||
<a 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 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 href="https://archlinux.org">Arch Linux</a>
|
|
||||||
+
|
|
||||||
<a 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 href="https://git.miningtcup.me/MiningTcup/noteserver"
|
infoContainer.addEventListener("mousedown", loadContactInfo);
|
||||||
><h3>Notes</h3></a
|
infoContainer.addEventListener("click", loadContactInfo);
|
||||||
>
|
|
||||||
<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
|
|
||||||
<a href="https://git.miningtcup.me/MiningTcup/noteserver"
|
|
||||||
>Notes server</a
|
|
||||||
>. Although I don't plan on giving out the source code for the app
|
|
||||||
because it's so terrible, you can download the
|
|
||||||
<a download href="notes.apk">Notes APK file</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>This Website</h3>
|
function loadContactInfo() {
|
||||||
<p>
|
infoContainer.innerHTML = atob(
|
||||||
This website is meant to be a showcase of everything I do. You may
|
"PGRpdj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmNvbS91c2Vycy84MjU0ODcxMzg5NDY1NDc3MTIiPjxpbWcgY2xhc3M9ImJ1bGxldC1pbWciIHNyYz0iaW1hZ2VzL2Rpc2NvcmQucG5nIiBhbHQ9IkRpc2NvcmQiIC8+bWluaW5ndGN1cDwvYT48L2Rpdj48ZGl2PjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJtYWlsdG86dGVkQG1pbmluZ3RjdXAubWUiPjxpbWcgY2xhc3M9ImJ1bGxldC1pbWciIHNyYz0iaW1hZ2VzL3Byb3Rvbm1haWwucG5nIiBhbHQ9IkVtYWlsIi8+dGVkQG1pbmluZ3RjdXAubWU8L2E+PC9kaXY+PGRpdj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0idGVsOisxLTY1MC01MTItOTYzNSI+PGltZyBjbGFzcz0iYnVsbGV0LWltZyIgc3JjPSJpbWFnZXMvcGhvbmUud2VicCIgYWx0PSJQaG9uZSIgLz4oNjUwKSA1MTItOTYzNTwvYT48L2Rpdj4=",
|
||||||
have noticed it's a tad bit minimal, and I'd like you to know that's
|
);
|
||||||
a design choice. I can make something cooler than this, but that's
|
infoContainer.classList.remove("cover");
|
||||||
just not what I wanted for my personal website. This website is
|
infoContainer.removeEventListener("mousedown", loadContactInfo);
|
||||||
meant to be as correct and usable as possible - this means no low
|
infoContainer.removeEventListener("click", loadContactInfo);
|
||||||
contrast, no gradients, extremely minimal scripts, and proper tags.
|
}
|
||||||
It even works well in
|
|
||||||
<a href="https://lynx.invisible-island.net/">Lynx</a>!
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
<hr />
|
|
||||||
<section>
|
|
||||||
<h2>Services I Run</h2>
|
|
||||||
<a 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. Additionally, this includes a
|
|
||||||
<a href="/maps">map</a> frontend using the
|
|
||||||
<a href="https://openfreemap.org/">OpenFreeMap</a>
|
|
||||||
public instance. I also have a collection of questionably
|
|
||||||
redistributable files in my <a href="/archive">archive</a>.
|
|
||||||
</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. Not currently active.
|
|
||||||
</p>
|
|
||||||
<a 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 href="https://zim.miningtcup.me">
|
|
||||||
<h3>Kiwix Server</h3>
|
|
||||||
</a>
|
|
||||||
<p>
|
|
||||||
<a href="https://kiwix.org/en/">Kiwix</a> provides offline browsing
|
|
||||||
of websites, primarily wiki-like resources, including
|
|
||||||
<a href="https://wiki.archlinux.org/title/Main_page">ArchWiki</a>,
|
|
||||||
<a href="https://www.wikipedia.org/">Wikipedia</a>, and
|
|
||||||
<a href="https://devdocs.io/">DevDocs</a>, allowing access to
|
|
||||||
resources in an internet outage or while travelling.
|
|
||||||
</p>
|
|
||||||
<a href="https://mozhi.miningtcup.me/"><h3>Mozhi Server</h3></a>
|
|
||||||
<p>
|
|
||||||
<a href="https://codeberg.org/aryak/mozhi">Mozhi</a> is a proxy for
|
|
||||||
several online translators, such as Google Translate, and is used by
|
|
||||||
<a href="https://invent.kde.org/office/crow-translate">
|
|
||||||
Crow Translate
|
|
||||||
</a>
|
|
||||||
(by <a href="https://kde.org/">KDE</a>).
|
|
||||||
</p>
|
|
||||||
<a 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 />
|
|
||||||
<ul id="index">
|
|
||||||
<li><a href="/lulu">Lulu</a></li>
|
|
||||||
<li><a href="/archive">Archive</a></li>
|
|
||||||
<li><a href="/blog">Blog</a></li>
|
|
||||||
<li class="f-l"><a href="#top">Return to Top</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<script src="index.js" defer></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
14
script.js
14
script.js
@@ -1,14 +0,0 @@
|
|||||||
const $ = (id) => document.getElementById(id);
|
|
||||||
const infoContainer = $("contact-info-container");
|
|
||||||
|
|
||||||
infoContainer.addEventListener("mousedown", loadContactInfo);
|
|
||||||
infoContainer.addEventListener("click", loadContactInfo);
|
|
||||||
|
|
||||||
function loadContactInfo() {
|
|
||||||
infoContainer.innerHTML = atob(
|
|
||||||
"PGRpdj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmNvbS91c2Vycy84MjU0ODcxMzg5NDY1NDc3MTIiPjxpbWcgY2xhc3M9ImJ1bGxldC1pbWciIHNyYz0iaW1hZ2VzL2Rpc2NvcmQucG5nIiBhbHQ9IkRpc2NvcmQiIC8+bWluaW5ndGN1cDwvYT48L2Rpdj48ZGl2PjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJtYWlsdG86dGVkQG1pbmluZ3RjdXAubWUiPjxpbWcgY2xhc3M9ImJ1bGxldC1pbWciIHNyYz0iaW1hZ2VzL3Byb3Rvbm1haWwucG5nIiBhbHQ9IkVtYWlsIi8+dGVkQG1pbmluZ3RjdXAubWU8L2E+PC9kaXY+PGRpdj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0idGVsOisxLTY1MC01MTItOTYzNSI+PGltZyBjbGFzcz0iYnVsbGV0LWltZyIgc3JjPSJpbWFnZXMvcGhvbmUud2VicCIgYWx0PSJQaG9uZSIgLz4oNjUwKSA1MTItOTYzNTwvYT48L2Rpdj4=",
|
|
||||||
);
|
|
||||||
infoContainer.classList.remove("cover");
|
|
||||||
infoContainer.removeEventListener("mousedown", loadContactInfo);
|
|
||||||
infoContainer.removeEventListener("click", loadContactInfo);
|
|
||||||
}
|
|
Reference in New Issue
Block a user