summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Nguyen <peteralistairnguyen@gmail.com>2025-09-05 22:40:39 -0700
committerPeter Nguyen <peteralistairnguyen@gmail.com>2025-09-05 22:40:39 -0700
commit3d49f206f9d8b29928dc08458f5563b6fd9214ff (patch)
tree6e6b1b8ef9983fcb7c3f30a1ff6a004de57d0f6a
parentbedf7092e44311d2574e22951f3d5a73278b0990 (diff)
New blog post 05 SEPT 2025
-rw-r--r--about.html169
-rw-r--r--articles/back-in-the-saddle.html119
-rw-r--r--blog.html17
-rw-r--r--composer.json6
-rw-r--r--composer.lock560
-rw-r--r--contact.html72
-rw-r--r--contact.php60
-rw-r--r--css/blog-post.css2
-rw-r--r--css/blog-styles.css18
-rw-r--r--css/projects-styles.css4
-rw-r--r--images/articles/IMG_3080.jpgbin0 -> 1109936 bytes
-rw-r--r--projects.html2
-rw-r--r--valentine.html53
-rw-r--r--yesvalentine.html47
14 files changed, 249 insertions, 880 deletions
diff --git a/about.html b/about.html
index e525475..9818f90 100644
--- a/about.html
+++ b/about.html
@@ -1,100 +1,89 @@
<!DOCTYPE html>
<html lang="en">
- <head>
- <!-- PAGE SETUP-->
- <title>peten.ca | about</title>
- <link rel="icon" type="image/x-icon" href="/images/petemcgeenobg.png" />
- <meta charset="utf-8" />
- <meta
- content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;"
- name="viewport"
- />
- <meta name="viewport" content="width=device-width" />
- <!-- CSS -->
- <link href="/css/about-styles.css" rel="stylesheet" />
- <link
- href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
- rel="stylesheet"
- integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
- crossorigin="anonymous"
- />
+<head>
+ <!-- PAGE SETUP-->
+ <title>peten.ca | about</title>
+ <link rel="icon" type="image/x-icon" href="/images/petemcgeenobg.png" />
+ <meta charset="utf-8" />
+ <meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;" name="viewport" />
+ <meta name="viewport" content="width=device-width" />
- <!-- JS -->
- <script
- src="https://code.jquery.com/jquery-3.7.1.js"
- integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4="
- crossorigin="anonymous"
- ></script>
- <script src="/scripts/peten.js"></script>
- <script src="https://unpkg.com/typed.js@2.1.0/dist/typed.umd.js"></script>
+ <!-- CSS -->
+ <link href="/css/about-styles.css" rel="stylesheet" />
+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"
+ integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous" />
- <!-- FONTS -->
- <link rel="preconnect" href="https://fonts.googleapis.com" />
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
- <link
- href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Ubuntu+Sans:ital,wght@0,100..800;1,100..800&display=swap"
- rel="stylesheet"
- />
- </head>
+ <!-- JS -->
+ <script src="https://code.jquery.com/jquery-3.7.1.js" integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4="
+ crossorigin="anonymous"></script>
+ <script src="/scripts/peten.js"></script>
+ <script src="https://unpkg.com/typed.js@2.1.0/dist/typed.umd.js"></script>
- <body class="font-montserrat fade-in">
- <header>
- <div class="header">
- <h1 class="text-dark" onclick="history.back()">← back</h1>
- </div>
- </header>
- <main>
- <div class="about-intro">
- <p class="about-text">
- Hey, I’m <b>Peter</b>. <br />
- <br />
- I am (currently) an apprentice carpenter. I am <b>NOT</b> a
- programmer, front OR backend engineer, or webdev. This is just a
- side-project. <br />
- <br />
- When I’m not working, I enjoy long walks on the beach, knitting,
- unicorns, and puppies. When I am working, I enjoy cigarettes and black
- coffee.
- </p>
- <img src="/images/retep_portrait.png" class="about-image" />
- </div>
+ <!-- FONTS -->
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
+ <link
+ href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Ubuntu+Sans:ital,wght@0,100..800;1,100..800&display=swap"
+ rel="stylesheet" />
+</head>
- <div class="about-section">
- <h1>bio</h1>
- <p class="about-section-text">
- Peter Nguyen is a Canadian creator, programmer, apprentice carpenter,
- chemist, underwater ceramics technician, and much more. He currently
- lives in Regina, Saskatchewan - where he was born and raised. Forbes
- Magazine called him "the second most important thing to come out of
- 2006" next to Microsoft Windows Vista.
- </p>
- </div>
+<body class="font-montserrat fade-in">
+ <header>
+ <div class="header">
+ <h1 class="text-dark" onclick="history.back()">← back</h1>
+ </div>
+ </header>
+ <main>
+ <div class="about-intro">
+ <p class="about-text">
+ Hey, I’m <b>Peter</b>. <br />
+ <br />
+ I am (currently) a first year university student. I am <b>NOT</b> a
+ programmer, front OR backend engineer, or webdev. This is just a
+ side-project. <br />
+ <br />
+ When I’m not working, I enjoy long walks on the beach, knitting,
+ unicorns, and puppies. When I am working, I enjoy cigarettes and black
+ coffee.
+ </p>
+ <img src="/images/retep_portrait.png" class="about-image" />
+ </div>
- <div class="about-section">
- <h1>about this site</h1>
- <p class="about-section-text">
- This site was made possible by way of really, really, hideously sloppy
- code and late nights. It's a miracle that the CSS media queries
- actually make the site mobile responsive (thanks ChatGPT). I bought
- the domain peten.ca on a whim, and unfortunately, it has come to my
- attention that a Toronto-based photographer not only owns the domain
- petern.ca, but that his name is also Peter Nguyen. So that's
- interesting, I guess.
- </p>
- </div>
- </main>
+ <div class="about-section">
+ <h1>bio</h1>
+ <p class="about-section-text">
+ Peter Nguyen is a Canadian creator, programmer, (former) apprentice carpenter,
+ chemist, underwater ceramics technician, and much more. He currently
+ lives in Victoria, British Columbia - where he is studying. Forbes
+ Magazine called him "the second most important thing to come out of
+ 2006" next to Microsoft Windows Vista.
+ </p>
+ </div>
- <footer class="footer">
- Copyright Peter Nguyen <span id="copyright-year"></span>. All rights
- reserved.
- </footer>
+ <div class="about-section">
+ <h1>about this site</h1>
+ <p class="about-section-text">
+ This site was made possible by way of really, really, hideously sloppy
+ code and late nights. It's a miracle that the CSS media queries
+ actually make the site mobile responsive (thanks ChatGPT). I bought
+ the domain peten.ca on a whim, and unfortunately, it has come to my
+ attention that a Toronto-based photographer not only owns the domain
+ petern.ca, but that his name is also Peter Nguyen. So that's
+ interesting, I guess.
+ </p>
+ </div>
+ </main>
- <!-- BOOTSTAP JS -->
- <script
- src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"
- integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"
- crossorigin="anonymous"
- ></script>
- </body>
-</html>
+ <footer class="footer">
+ Copyright Peter Nguyen <span id="copyright-year"></span>. All rights
+ reserved.
+ </footer>
+
+ <!-- BOOTSTAP JS -->
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"
+ integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"
+ crossorigin="anonymous"></script>
+</body>
+
+</html> \ No newline at end of file
diff --git a/articles/back-in-the-saddle.html b/articles/back-in-the-saddle.html
new file mode 100644
index 0000000..d748d1f
--- /dev/null
+++ b/articles/back-in-the-saddle.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <!-- PAGE SETUP-->
+ <title>peten.ca | BACK IN THE SADDLE</title>
+ <link rel="icon" type="image/x-icon" href="/images/petemcgeenobg.png">
+ <meta charset="utf-8">
+ <meta content='width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;' name='viewport' />
+ <meta name="viewport" content="width=device-width" />
+
+ <!-- CSS -->
+ <link href="/css/blog-post.css" rel="stylesheet">
+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"
+ integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
+
+ <!-- JS -->
+ <script src="https://code.jquery.com/jquery-3.7.1.js"
+ integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4=" crossorigin="anonymous"></script>
+ <script src="/scripts/peten.js"></script>
+ <script src="https://unpkg.com/typed.js@2.1.0/dist/typed.umd.js"></script>
+
+ <!-- FONTS -->
+ <link rel="preconnect" href="https://fonts.googleapis.com">
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+ <link
+ href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Ubuntu+Sans:ital,wght@0,100..800;1,100..800&display=swap"
+ rel="stylesheet">
+
+</head>
+
+<body class="font-montserrat fade-in">
+ <header>
+
+
+ <div class="header text-dark">
+ <a href="/blog.html">← BLOG POSTS</a>
+ <span class="date">
+ SEP 5, 2025
+ </span>
+ </div>
+ </header>
+
+ <main class="blog-post">
+ <h1>BACK IN THE SADDLE</h1>
+
+ <p>
+ <i>Morale is high. Life is good. I can't complain.
+ </i>
+ <br> <br>
+ <img src="/images/articles/IMG_3080.jpg">
+ <br>
+ <b>Regina Community Fridge Project</b>
+ <br>
+ <i>From left to right: Vincent, Me (Peter), Boh, and Adam</i>
+ <br> <br>
+ Kept you waitin', huh?
+ <br> <br>
+ Welcome back. It really has been a while, hasn't it? I've missed you, friend. And now I'm back, and exactly
+ where I want to be.
+ <br> <br>
+ For those who don't know, I've moved west. Onto the great green shores of British Columbia, where things are
+ popping. To commemorate the occasion, I've changed my description on all the pages from "Apprentice
+ carpenter, hobbyist programmer and mostly average high
+ school graduate" to something a little bit fresher, a little bit sweeter. I truly hope you'll enjoy it.
+ <br> <br>
+ My summer was great -- thanks for asking 😊. I had a swell time with brothers (close enough) and friends and
+ family, but that's
+ all over. We, and I mean WE, are LOCKED IN. First-year engineering student Peter Nguyen. That whole little
+ thing with the framing.. and the bleakness.. and the working.. it's all over! Honestly, I forgot how much
+ school meant to me. I can sit real schizo-like typing stuff in my room, alone.
+ <br> <br>
+ Don't worry, I know what you're thinking. "Peter, what happened to the army thing that you discussed at
+ length in your previous blog posts?" To that, I say this: I am allergic to walnuts, and there have been
+ complications. But it isn't over yet. Far from it. Regardless, I am kind of preoccupied with a one-year
+ lease and a suite in a house with chill roommates. Young professional type deal, you dig?
+ <br> <br>
+ I'm here, going to lecture, figuring things out, and starting work again. I know, I know. You're going to
+ say: "Peter, you're crazy! Engineering AND a job?" To that, I say: I literally cannot afford this without
+ working on the side. Thankfully, being a CATSA SOF Certified Screening Officer is also valuable in Victoria,
+ BC. I was worried for a minute that all these moving parts were going to come undone. Granted, things have
+ not picked up too much. Have faith, though. Come on. You're on my blog, reading my work, and you want to be
+ like that 😞.
+ <br> <br>
+ Vincent would probably want me to mention something about the drive we made here, so here's the section
+ where I talk about driving to Victoria. I drove from Regina to Victoria, over the course of a few days. Took
+ the ferry across, and it was awesome. Honestly, not as painful as I had figured. Lots of coffee and fast
+ food was involved, but I've since burned that all off. We're on rations now.
+ <br> <br>
+ And now I'm here, and hopeful. Things are finally looking up, and I'm so glad. If you had faith in me, then
+ thanks. It really means a lot. If you didn't have faith: I have some strong words for you. Contact me at <a
+ class="inline-link" href="mailto:petendotca@protonmail.com">petendotca@protonmail.com</a>.
+ <br> <br>
+ TLDR: Moved to Victoria, started university. Studying hard with a newfound appreciation for school.
+ Reflecting on a pretty eventful summer. Worrying (probably as I should) about money and rent. Keeping busy,
+ and doing my best to be out here.
+ <br> <br>
+ Anyways, I think that's about it.
+ <br> <br>
+ I'm sure there'll be more to come throughout the year.
+ <br> <br>
+ Your friend, Peter.
+ </p>
+ </main>
+
+
+ </div>
+
+ <footer class="footer">
+ Copyright Peter Nguyen <span id="copyright-year"></span>. All rights reserved.
+ </footer>
+
+ <!-- BOOTSTAP JS -->
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"
+ integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"
+ crossorigin="anonymous"></script>
+</body>
+
+</html> \ No newline at end of file
diff --git a/blog.html b/blog.html
index 01d949b..7aa81f0 100644
--- a/blog.html
+++ b/blog.html
@@ -34,8 +34,7 @@
<img src="/images/PeteMcGee.png" alt="Profile Picture" class="profile-pic" />
<h2 class="text-dark"><a href="index.html">peter nguyen</a></h2>
<p>
- Apprentice carpenter, hobbyist programmer and mostly average high
- school graduate.
+ First year university student, screening officer, former apprentice carpenter, and (mostly) average high school graduate.
</p>
<nav>
<ul>
@@ -57,7 +56,19 @@
<main class="blog-content">
<article>
- <hr />
+ <hr>
+ <a href="articles/back-in-the-saddle.html">
+ <span class="date">SEP 5, 2025 • 6 MIN READ</span>
+ <h1 class="text-dark">BACK IN THE SADDLE</h1>
+ <p>
+ Moved to Victoria, started university. Studying hard with a newfound appreciation for school.
+ Reflecting on a pretty eventful summer. Worrying (probably as I should) about money and rent. Keeping busy,
+ and doing my best to be out here.
+ </p>
+ </a>
+ </article>
+ <article>
+ <hr>
<a href="articles/do-nothing-simulator.html">
<span class="date">MAR 5, 2025 • 6 MIN READ</span>
<h1 class="text-dark">"Do Nothing Simulator"</h1>
diff --git a/composer.json b/composer.json
deleted file mode 100644
index 19e09b0..0000000
--- a/composer.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "require": {
- "phpmailer/phpmailer": "^6.9",
- "vlucas/phpdotenv": "^5.6"
- }
-}
diff --git a/composer.lock b/composer.lock
deleted file mode 100644
index 0f11737..0000000
--- a/composer.lock
+++ /dev/null
@@ -1,560 +0,0 @@
-{
- "_readme": [
- "This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
- "This file is @generated automatically"
- ],
- "content-hash": "43f04f8ab298ae680223494104e06cf9",
- "packages": [
- {
- "name": "graham-campbell/result-type",
- "version": "v1.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/GrahamCampbell/Result-Type.git",
- "reference": "3ba905c11371512af9d9bdd27d99b782216b6945"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945",
- "reference": "3ba905c11371512af9d9bdd27d99b782216b6945",
- "shasum": ""
- },
- "require": {
- "php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "GrahamCampbell\\ResultType\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- }
- ],
- "description": "An Implementation Of The Result Type",
- "keywords": [
- "Graham Campbell",
- "GrahamCampbell",
- "Result Type",
- "Result-Type",
- "result"
- ],
- "support": {
- "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
- "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
- "type": "tidelift"
- }
- ],
- "time": "2024-07-20T21:45:45+00:00"
- },
- {
- "name": "phpmailer/phpmailer",
- "version": "v6.9.3",
- "source": {
- "type": "git",
- "url": "https://github.com/PHPMailer/PHPMailer.git",
- "reference": "2f5c94fe7493efc213f643c23b1b1c249d40f47e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/2f5c94fe7493efc213f643c23b1b1c249d40f47e",
- "reference": "2f5c94fe7493efc213f643c23b1b1c249d40f47e",
- "shasum": ""
- },
- "require": {
- "ext-ctype": "*",
- "ext-filter": "*",
- "ext-hash": "*",
- "php": ">=5.5.0"
- },
- "require-dev": {
- "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
- "doctrine/annotations": "^1.2.6 || ^1.13.3",
- "php-parallel-lint/php-console-highlighter": "^1.0.0",
- "php-parallel-lint/php-parallel-lint": "^1.3.2",
- "phpcompatibility/php-compatibility": "^9.3.5",
- "roave/security-advisories": "dev-latest",
- "squizlabs/php_codesniffer": "^3.7.2",
- "yoast/phpunit-polyfills": "^1.0.4"
- },
- "suggest": {
- "decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication",
- "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
- "ext-openssl": "Needed for secure SMTP sending and DKIM signing",
- "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication",
- "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
- "league/oauth2-google": "Needed for Google XOAUTH2 authentication",
- "psr/log": "For optional PSR-3 debug logging",
- "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)",
- "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "PHPMailer\\PHPMailer\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "LGPL-2.1-only"
- ],
- "authors": [
- {
- "name": "Marcus Bointon",
- "email": "phpmailer@synchromedia.co.uk"
- },
- {
- "name": "Jim Jagielski",
- "email": "jimjag@gmail.com"
- },
- {
- "name": "Andy Prevost",
- "email": "codeworxtech@users.sourceforge.net"
- },
- {
- "name": "Brent R. Matzelle"
- }
- ],
- "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
- "support": {
- "issues": "https://github.com/PHPMailer/PHPMailer/issues",
- "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.9.3"
- },
- "funding": [
- {
- "url": "https://github.com/Synchro",
- "type": "github"
- }
- ],
- "time": "2024-11-24T18:04:13+00:00"
- },
- {
- "name": "phpoption/phpoption",
- "version": "1.9.3",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/php-option.git",
- "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54",
- "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54",
- "shasum": ""
- },
- "require": {
- "php": "^7.2.5 || ^8.0"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
- },
- "type": "library",
- "extra": {
- "bamarni-bin": {
- "bin-links": true,
- "forward-command": false
- },
- "branch-alias": {
- "dev-master": "1.9-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "PhpOption\\": "src/PhpOption/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com",
- "homepage": "https://github.com/schmittjoh"
- },
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- }
- ],
- "description": "Option Type for PHP",
- "keywords": [
- "language",
- "option",
- "php",
- "type"
- ],
- "support": {
- "issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/1.9.3"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
- "type": "tidelift"
- }
- ],
- "time": "2024-07-20T21:41:07+00:00"
- },
- {
- "name": "symfony/polyfill-ctype",
- "version": "v1.31.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
- "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "provide": {
- "ext-ctype": "*"
- },
- "suggest": {
- "ext-ctype": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for ctype functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
- },
- {
- "name": "symfony/polyfill-mbstring",
- "version": "v1.31.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
- "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "provide": {
- "ext-mbstring": "*"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for the Mbstring extension",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "mbstring",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
- },
- {
- "name": "symfony/polyfill-php80",
- "version": "v1.31.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
- "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
- },
- {
- "name": "vlucas/phpdotenv",
- "version": "v5.6.1",
- "source": {
- "type": "git",
- "url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
- "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
- "shasum": ""
- },
- "require": {
- "ext-pcre": "*",
- "graham-campbell/result-type": "^1.1.3",
- "php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9.3",
- "symfony/polyfill-ctype": "^1.24",
- "symfony/polyfill-mbstring": "^1.24",
- "symfony/polyfill-php80": "^1.24"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.2",
- "ext-filter": "*",
- "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
- },
- "suggest": {
- "ext-filter": "Required to use the boolean validator."
- },
- "type": "library",
- "extra": {
- "bamarni-bin": {
- "bin-links": true,
- "forward-command": false
- },
- "branch-alias": {
- "dev-master": "5.6-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Dotenv\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- },
- {
- "name": "Vance Lucas",
- "email": "vance@vancelucas.com",
- "homepage": "https://github.com/vlucas"
- }
- ],
- "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
- "keywords": [
- "dotenv",
- "env",
- "environment"
- ],
- "support": {
- "issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
- "type": "tidelift"
- }
- ],
- "time": "2024-07-20T21:52:34+00:00"
- }
- ],
- "packages-dev": [],
- "aliases": [],
- "minimum-stability": "stable",
- "stability-flags": {},
- "prefer-stable": false,
- "prefer-lowest": false,
- "platform": {},
- "platform-dev": {},
- "plugin-api-version": "2.6.0"
-}
diff --git a/contact.html b/contact.html
index 9453c88..519fc43 100644
--- a/contact.html
+++ b/contact.html
@@ -34,8 +34,8 @@
<img src="/images/PeteMcGee.png" alt="Profile Picture" class="profile-pic" />
<h2 class="text-dark"><a href="index.html">peter nguyen</a></h2>
<p>
- Apprentice carpenter, hobbyist programmer and mostly average high
- school graduate.
+ First year university student, screening officer, former apprentice carpenter, and (mostly) average high school
+ graduate.
</p>
<nav>
<ul>
@@ -56,34 +56,20 @@
</aside>
<main class="blog-content">
- <h3>Contact</h3>
-
- <form id="contactForm" action="contact.php" method="POST">
- <label for="name">Name:</label>
- <input type="text" id="name" name="name" required>
-
- <label for="email">Email:</label>
- <input type="email" id="email" name="email" required>
-
- <label class="form-label" for="message">Message:</label>
- <textarea id="message" name="message" required></textarea>
-
- <!-- Google reCAPTCHA -->
- <div class="g-recaptcha" data-sitekey="6LdCkMwqAAAAAMBqomzrbldJdtsmMNAeCzKSPHZK"></div>
-
- <button type="submit">Send</button>
- </form>
-
- <!-- Response message container -->
- <p id="responseMessage"></p>
-
-
-
+ <h1 class="contact">contact</h1>
+ <p class="contact-text">personal—<a class="inline-link"
+ href="mailto:petendotca@protonmail.com">petendotca@protonmail.com</a>
+ <br>for any and all inquiries.
+ <br><br>
+ school—<a class="inline-link" href="mailto:petanguyen@uvic.ca">petanguyen@uvic.ca</a>
+ <br>honestly not sure why you'd need this, maybe you're in a class with me or something
+ <br> <br>
+ resume—<a class="inline-link" href="mailto:petendotca@protonmail.com">available on request</a>
+ <br>if anyone wants to headhunt me for their new trillion dollar startup
+ </p>
</main>
</div>
- <!-- Include reCAPTCHA script -->
- <script src="https://www.google.com/recaptcha/api.js" async defer></script>
<footer class="footer">
Copyright Peter Nguyen <span id="copyright-year"></span>. All rights
@@ -95,38 +81,6 @@
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"
crossorigin="anonymous"></script>
- <script>
- document.getElementById("contactForm").addEventListener("submit", function (event) {
- event.preventDefault(); // Prevent form from submitting normally
-
- let form = this;
- let formData = new FormData(form);
-
- // Get reCAPTCHA response
- let recaptchaResponse = grecaptcha.getResponse();
- if (!recaptchaResponse) {
- document.getElementById("responseMessage").innerText = "Please complete the reCAPTCHA.";
- return;
- }
- formData.append("g-recaptcha-response", recaptchaResponse);
-
- fetch("contact.php", {
- method: "POST",
- body: formData
- })
- .then(response => response.text())
- .then(data => {
- document.getElementById("responseMessage").innerText = data;
- form.reset(); // Reset the form after submission
- grecaptcha.reset(); // Reset reCAPTCHA
- })
- .catch(error => {
- document.getElementById("responseMessage").innerText = "Error submitting the form. Try again.";
- console.error("Error:", error);
- });
- });
- </script>
-
</body>
</html> \ No newline at end of file
diff --git a/contact.php b/contact.php
deleted file mode 100644
index 320a801..0000000
--- a/contact.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-use PHPMailer\PHPMailer\PHPMailer;
-use PHPMailer\PHPMailer\Exception;
-
-require 'vendor/autoload.php';
-
-if ($_SERVER["REQUEST_METHOD"] === "POST") {
- // Sanitize input
- $name = htmlspecialchars(strip_tags(trim($_POST["name"] ?? '')));
- $email = htmlspecialchars(strip_tags(trim($_POST["email"] ?? '')));
- $message = htmlspecialchars(strip_tags(trim($_POST["message"] ?? '')));
- $recaptchaResponse = $_POST['g-recaptcha-response'] ?? '';
-
- // Validate input
- if (empty($name) || empty($email) || empty($message) || empty($recaptchaResponse)) {
- die("All fields are required, including reCAPTCHA.");
- }
-
- if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
- die("Invalid email format.");
- }
-
- // Verify reCAPTCHA
- $secretKey = getenv("RECAPTCHA_SECRET_KEY"); // Use environment variable for security
- $recaptchaURL = "https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$recaptchaResponse";
- $response = file_get_contents($recaptchaURL);
- $responseKeys = json_decode($response, true);
-
- if (!$responseKeys["success"]) {
- die("reCAPTCHA verification failed. Please try again.");
- }
-
- // Send email via PHPMailer
- $mail = new PHPMailer(true);
-
- try {
- // SMTP Configuration (Use Environment Variables for Security)
- $mail->isSMTP();
- $mail->Host = 'smtp.gmail.com';
- $mail->SMTPAuth = true;
- $mail->Username = getenv("SMTP_EMAIL"); // Get email from environment variable
- $mail->Password = getenv("SMTP_PASSWORD"); // Get password from environment variable
- $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
- $mail->Port = 587;
-
- // Set email details
- $mail->setFrom($email, $name);
- $mail->addAddress(getenv("RECEIVER_EMAIL")); // Receiver's email
-
- $mail->Subject = "New Contact Form Submission from $name";
- $mail->Body = "From: $name <$email>\n\n$message";
-
- // Send email
- $mail->send();
- echo "Message sent successfully!";
- } catch (Exception $e) {
- echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
- }
-}
-?>
diff --git a/css/blog-post.css b/css/blog-post.css
index d4e204a..ae872aa 100644
--- a/css/blog-post.css
+++ b/css/blog-post.css
@@ -141,6 +141,7 @@ a {
.inline-link {
font-size: inherit;
font-weight: inherit;
+ color: #3366CC !important;
}
.date {
@@ -168,6 +169,7 @@ p {
}
img {
+ max-width: 768px;
padding-bottom: 1%;
}
diff --git a/css/blog-styles.css b/css/blog-styles.css
index 58c4377..efaad52 100644
--- a/css/blog-styles.css
+++ b/css/blog-styles.css
@@ -60,6 +60,22 @@ a {
color: inherit !important;
}
+.contact {
+ font-size: 2rem !important;
+ font-weight: 450 !important;
+}
+
+.inline-link {
+ font-size: inherit;
+ font-weight: 450;
+ color: inherit !important;
+}
+
+.contact-text {
+ max-width: 600px !important;
+ font-size: 1.05rem !important;
+}
+
/* ANIMS */
.fade-in {
@@ -127,7 +143,7 @@ article h1 {
article p {
font-size: 1rem !important;
font-weight: 400;
- max-width: 600px;
+ max-width: 100%;
text-wrap: wrap;
padding-top: 0.25rem;
}
diff --git a/css/projects-styles.css b/css/projects-styles.css
index 5cf1843..7626a91 100644
--- a/css/projects-styles.css
+++ b/css/projects-styles.css
@@ -165,6 +165,10 @@ a {
/* Keeps everything left-aligned */
}
+.sidebar-text {
+ max-width: 600px;
+}
+
.sidebar img {
padding-bottom: 5%;
}
diff --git a/images/articles/IMG_3080.jpg b/images/articles/IMG_3080.jpg
new file mode 100644
index 0000000..2dae069
--- /dev/null
+++ b/images/articles/IMG_3080.jpg
Binary files differ
diff --git a/projects.html b/projects.html
index 66f2ec0..28c4d64 100644
--- a/projects.html
+++ b/projects.html
@@ -35,7 +35,7 @@
<aside class="sidebar">
<img src="/images/PeteMcGee.png" alt="Profile Picture" class="profile-pic">
<h2 class="text-dark"><a href="index.html">peter nguyen</a></h2>
- <p class="sidebar-text">Apprentice carpenter, hobbyist programmer and mostly average high school graduate.
+ <p class="sidebar-text">First year university student, screening officer, former apprentice carpenter, and (mostly) average high school graduate.
</p>
<nav>
<ul>
diff --git a/valentine.html b/valentine.html
deleted file mode 100644
index f6f733b..0000000
--- a/valentine.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
- <!-- PAGE SETUP-->
- <title>aryanna's super cool valentine 2025</title>
- <link rel="icon" type="image/x-icon" href="/images/petemcgeenobg.png">
- <meta charset="utf-8">
- <meta content='width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;' name='viewport' />
- <meta name="viewport" content="width=device-width" />
-
- <!-- CSS -->
- <link href="/css/valentine.css" rel="stylesheet">
- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"
- integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
-
- <!-- JS -->
- <script src="https://code.jquery.com/jquery-3.7.1.js"
- integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4=" crossorigin="anonymous"></script>
- <script src="/scripts/peten.js"></script>
- <script src="https://unpkg.com/typed.js@2.1.0/dist/typed.umd.js"></script>
-
- <!-- FONTS -->
- <link rel="preconnect" href="https://fonts.googleapis.com">
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
- <link
- href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Ubuntu+Sans:ital,wght@0,100..800;1,100..800&display=swap"
- rel="stylesheet">
-
-</head>
-
-<body class="font-montserrat fade-in">
- <audio autoplay>
- <source src="/audio/carelesswhisper.mp3" type="audio/mpeg">
- </audio>
- <div class="content-container">
- <div class="text-container">
- <h1 class="text-center pad-down">aryanna!</h1>
- <h1 class="text-center pt-lg-1">will you be my valentine?</h1>
- </div>
-
- <div class="button-wrapper">
- <a href="yesvalentine.html">
- <button type="button" class="btn btn-success btn-lg">YES!</button>
- </a>
- <button type="button" class="btn btn-danger btn-lg" id="moveBtn">NO!</button>
- </div>
- </div>
-
- <script src="/scripts/valentine.js"></script>
-</body>
-
-</html> \ No newline at end of file
diff --git a/yesvalentine.html b/yesvalentine.html
deleted file mode 100644
index c3783f3..0000000
--- a/yesvalentine.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
- <!-- PAGE SETUP-->
- <title>aryanna's super cool valentine 2025</title>
- <link rel="icon" type="image/x-icon" href="/images/petemcgeenobg.png">
- <meta charset="utf-8">
- <meta content='width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;' name='viewport' />
- <meta name="viewport" content="width=device-width" />
-
- <!-- CSS -->
- <link href="/css/valentine.css" rel="stylesheet">
- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"
- integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
-
- <!-- JS -->
- <script src="https://code.jquery.com/jquery-3.7.1.js"
- integrity="sha256-eKhayi8LEQwp4NKxN+CfCh+3qOVUtJn3QNZ0TciWLP4=" crossorigin="anonymous"></script>
- <script src="/scripts/peten.js"></script>
- <script src="https://unpkg.com/typed.js@2.1.0/dist/typed.umd.js"></script>
-
- <!-- FONTS -->
- <link rel="preconnect" href="https://fonts.googleapis.com">
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
- <link
- href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Ubuntu+Sans:ital,wght@0,100..800;1,100..800&display=swap"
- rel="stylesheet">
-
-</head>
-
-<body class="font-montserrat fade-in">
- <audio autoplay>
- <source src="/audio/letsgetiton.mp3" type="audio/mpeg">
- </audio>
- <div class="content-container">
- <div class="text-container">
- <h1 class="text-center pad-down">teehee :3</h1>
- <h1 class="text-center pt-lg-1">yay!!! i love you!!</h1>
- </div>
- <img src="/images/peten5.jpg">
- </div>
-
- <script src="/scripts/valentine.js"></script>
-</body>
-
-</html> \ No newline at end of file