From 6b9d7c6fc7ef2d2e4a096788f5808e5ef362e5d3 Mon Sep 17 00:00:00 2001 From: Ted Pier Date: Tue, 23 Sep 2025 09:07:27 -0700 Subject: [PATCH] fix(ed) width --- index.html | 194 +++++++++++++++++++++++++++++++++++++++++++++++++---- index.js | 14 ++++ 2 files changed, 196 insertions(+), 12 deletions(-) create mode 100644 index.js diff --git a/index.html b/index.html index 8198f5b..cdff2af 100644 --- a/index.html +++ b/index.html @@ -1,14 +1,184 @@ -const $ = (id) => document.getElementById(id); -const infoContainer = $("contact-info-container"); + + + + + + + MiningTcup + + + + + + + + + + + + + + +
+
+
+
+

+ Ted Pier a.k.a. MiningTcup +

+
+ Lulu the dog +
+ +
+
+

Things I've Done

+

YouClient

+

+ 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. +

+ +

Linux

+

+ 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 + Arch Linux + + + Hyprland + system. Over the last more than a year, I've settled on an (in my + opinion) nearly perfect configuration. +

-infoContainer.addEventListener("mousedown", loadContactInfo); -infoContainer.addEventListener("click", loadContactInfo); +

Notes

+

+ 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 + Notes server. Although I don't plan on giving out the source code for the app + because it's so terrible, you can download the + Notes APK file. +

-function loadContactInfo() { - infoContainer.innerHTML = atob( - "PGRpdj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9kaXNjb3JkLmNvbS91c2Vycy84MjU0ODcxMzg5NDY1NDc3MTIiPjxpbWcgY2xhc3M9ImJ1bGxldC1pbWciIHNyYz0iaW1hZ2VzL2Rpc2NvcmQucG5nIiBhbHQ9IkRpc2NvcmQiIC8+bWluaW5ndGN1cDwvYT48L2Rpdj48ZGl2PjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJtYWlsdG86dGVkQG1pbmluZ3RjdXAubWUiPjxpbWcgY2xhc3M9ImJ1bGxldC1pbWciIHNyYz0iaW1hZ2VzL3Byb3Rvbm1haWwucG5nIiBhbHQ9IkVtYWlsIi8+dGVkQG1pbmluZ3RjdXAubWU8L2E+PC9kaXY+PGRpdj48YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0idGVsOisxLTY1MC01MTItOTYzNSI+PGltZyBjbGFzcz0iYnVsbGV0LWltZyIgc3JjPSJpbWFnZXMvcGhvbmUud2VicCIgYWx0PSJQaG9uZSIgLz4oNjUwKSA1MTItOTYzNTwvYT48L2Rpdj4=", - ); - infoContainer.classList.remove("cover"); - infoContainer.removeEventListener("mousedown", loadContactInfo); - infoContainer.removeEventListener("click", loadContactInfo); -} +

This Website

+

+ This website is meant to be a showcase of everything I do. You may + 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 + just not what I wanted for my personal website. This website is + meant to be as correct and usable as possible - this means no low + contrast, no gradients, extremely minimal scripts, and proper tags. + It even works well in + Lynx! +

+
+
+
+

Services I Run

+ +

Static Webserver

+

+ 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 + map frontend using the + OpenFreeMap + public instance. I also have a collection of questionably + redistributable files in my archive. +

+

DNS Servers

+

+ 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. +

+

Git Server

+

+ GitHub is slow, annoying, and trains LLMs on everything you upload. + My Git server is very fast (for me, at least), + annoyance-free, and doesn't train LLMs on your work without + asking. +

+ +

Kiwix Server

+
+

+ Kiwix provides offline browsing + of websites, primarily wiki-like resources, including + ArchWiki, + Wikipedia, and + DevDocs, allowing access to + resources in an internet outage or while travelling. +

+

Mozhi Server

+

+ Mozhi is a proxy for + several online translators, such as Google Translate, and is used by + + Crow Translate + + (by KDE). +

+

Arch Linux Mirror

+

+ Having my own Arch Linux mirror means my updates will be just about + instant. +

+
+
+
+

Contact Me

+

+ I'm sort of chronically online. Your best chance of quick contact is + a phone call, but Discord, email, and text work too. +

+
+ JavaScript is required to load contact info. +
click to reveal contact info
+
+
+
+ +
+
+ + + diff --git a/index.js b/index.js new file mode 100644 index 0000000..8198f5b --- /dev/null +++ b/index.js @@ -0,0 +1,14 @@ +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); +}