Compare commits

..

8 Commits

8 changed files with 157 additions and 32 deletions

View File

@@ -3,14 +3,13 @@ COPY . /project
WORKDIR /project WORKDIR /project
RUN ["zola", "build"] RUN ["zola", "build"]
FROM ghcr.io/static-web-server/static-web-server:2.39.0-alpine FROM ghcr.io/static-web-server/static-web-server:2.40.1-alpine
ENV SERVER_HEALTH=true ENV SERVER_HEALTH=true
WORKDIR / WORKDIR /
RUN apk --no-cache add curl
COPY --from=zola /project/public /public COPY --from=zola /project/public /public
HEALTHCHECK \ HEALTHCHECK \
--interval=30s \ --interval=10s \
--timeout=5s \ --timeout=5s \
--start-period=5s \ --start-period=3s \
--retries=3 \ --retries=3 \
CMD ["curl", "-s", "localhost/health"] CMD ["wget", "http://localhost/health", "-O", "/dev/null", "-q"]

View File

@@ -8,4 +8,4 @@ max_posts = 5
header = { title = "Welcome to my website!", img = "images/mac.png", img_alt = "Mac" } header = { title = "Welcome to my website!", img = "images/mac.png", img_alt = "Mac" }
+++ +++
My Polish friends call me Maciek, and international friends call me Mac. I'm a huge F1 nerd, homelabbing enthusiast, as well as house music aficionado. This is where I document the inner-workings of my passion projects. My Polish friends call me Maciek, and international friends call me Mac. I'm a huge F1 nerd, homelabbing enthusiast, as well as house music aficionado. This is where I document the inner-workings of my brain and passion projects.

View File

@@ -318,7 +318,7 @@ for row in table_rows:
Moment of truth: Moment of truth:
```text ```
> python subnets.py 2.137.69.4/20 "(P,510), (D,256), (H,2025), (W,873)" "A->Z" > python subnets.py 2.137.69.4/20 "(P,510), (D,256), (H,2025), (W,873)" "A->Z"
Base network address: 2.137.64.0 Base network address: 2.137.64.0
Base subnet mask: 255.255.240.0 Base subnet mask: 255.255.240.0

View File

@@ -0,0 +1,91 @@
+++
title = "Looking back on 2025 and ahead to 2026"
date = 2026-01-02
description = "(TW: suicide) Reflecting on the most challenging year for me so far and setting goals for the upcoming one."
[taxonomies]
tags = ["Personal"]
+++
{{ admonition(type="warning", title="TRIGGER WARNING", text="This post contains mentions of suicide.") }}
If you told me [six months ago](/blog/hello-again-world/#the-bad-and-ugly) that I'd actually make it to 2026, I probably wouldn't believe you. I hit the rock bottom mentally and I was genuinely preparing to quit altogether. But then my prescription meds finally started working their magic and when I published that blog post in late September, I thought it was all behind me.
## Final quarter of 2025
Spoiler alert: it wasn't.
### Pulling the trigger... on uni
When the new academic year kicked off in October, the burnout came back in full swing. When I made that decision to switch from learning onsite to online in August, I felt like I had no other choice if I wanted to stay on my own in Warsaw. Even though I wanted to drop out back then, I didn't feel like I had a convincing plan B that would satisfy my parents (I was and still am financially dependent on them).
Yet with each day I'd try to force myself to do any of the course assignments, the burnout just kept getting stronger. Soon enough I'd ended up going back to square one, reconsidering suicide and making all the progress I'd made over the past few months seemingly evaporate.
I was effectively faced with two scenarios:
1. Desperately attempt to finish the final 3 semesters and either burn yourself out irreversibly or follow through with the one-way trip to the train station
2. Drop out and come up with a strategy to become financially independent, but still have your parents bankroll you in the interim
As you may have guessed, I went with the second option. So, what was the outcome?
I got my parents' blessing to stay in Warsaw and adopt the aforementioned strategy! I'll outline it in a later section, but now let's look at two more highlights from the end of 2025.
### Docker + Packwiz Minecraft server template
In October I launched a Minecraft server (Java Edition, version 1.19.2) for my friends on a Discord server I'm active in. It used the [Raspberry Flavoured 3.1 modpack](https://www.curseforge.com/minecraft/modpacks/raspberry-flavoured/files/7026734) as its base along with a bunch of other quality-of-life and Discord integration mods.
To streamline the management of all the mods and server configuration changes, I made a Docker Compose project with said Minecraft server and a private [Packwiz](https://packwiz.infra.link/) registry that the former reaches out to in order to install and/or update mods on startup.
In a typical developer fashion, I kept track of all changes using a Git repository, which also comes with a pre-commit and a post-commit hook that updates the registry's file hashes and makes sure none of the Docker-ignored files accidentally end up in the registry's HTTP server.
I liked this setup so much that I later created a generic project template with a Bash setup script that lets you initialise the Packwiz registry and creates the Git hooks in the repo's `.git/hooks` directory. You can find the source code on [my Gitea instance](https://code.maciejpedzi.ch/maciejpedzich/mc-server-packwiz-docker) or on [GitHub](https://github.com/maciejpedzich/mc-server-packwiz-docker).
### Musical Secret Santa
In September, I started this monthly _Musical Secret Santa_ on the same Discord server. The premise is very simple: you're assigned a random person, for whom you have to create a playlist or a mixtape following a theme given by that person.
As more people joined the fun in subsequent editions, it became increasingly more difficult to keep track of everyone's requests, preferred streaming platforms, as well as previous draws to avoid back-to-back repeats.
To address all these issues and effectively keep track of all that data in one place, I launched a [dedicated website](https://mss.cuppa.town) in December. It's proudly self-hosted and powered by TypeScript, Express, and SQLite (among others).
At the time of writing, I haven't got round to preparing a README for this project yet, but in case you want to host it yourself already, you can examine the [source code](https://code.maciejpedzi.ch/maciejpedzich/secret-santa) on my Gitea instance, especially `src/env.d.ts` for all the required environment variables.
## Resolutions for 2026
I have two main goals for the new year:
1. Land a DevOps/SysAdmin job
2. Work on a DJing side project
Here's what I'm going to do to achieve them.
### Land a DevOps/SysAdmin job
Given the current job market landscape and the fact that I've given up on pursuing a CS degree, this goal will definitely take a lot of effort from my end, but it's far from impossible.
First of all, I need to do a detailed tour of the homelab I've been running for a year and a half at this point. It has seen plenty of structural changes since its introduction and my last post I did about it on my website back in 2024, so it's high time I revisited it and greatly expanded on every single area, so that I can showcase my pretty decent on-premise infrastructure experience. The deadline for this subtarget is March
Second of all, I believe I have to start sharing my articles more often on LinkedIn. As much as I despise this hellsite, it's a necessary evil with my current (un)employment situation. And last but not least, I'm looking to obtain two certificates:
1. [AWS Certified Cloud Practitioner](https://aws.amazon.com/certification/certified-cloud-practitioner) by May
2. [AWS Certified Solutions Architect](https://aws.amazon.com/certification/certified-solutions-architect-associate) or [AWS Certified Developer Associate](https://aws.amazon.com/certification/certified-developer-associate) by September
In order to prepare for these certificates as best as I can, I'll use AWS's e-learning resources and mock exams, based on which I'll prepare a practice routine for myself to follow ahead of taking the real deal.
With all these pieces in place, I should be ready to start applying for various job openings. I'm targeting hybrid openings if a given company has an office in Warsaw, and fully remote otherwise. I hope I'll be able to find something by the end of this year, but I'm not concerned about my financial situation as long as my parents keep sponsoring me.
### Work on a DJing side project
Now, I have a confession. Working in IT wasn't actually my first career choice - it was actually being an electronic music DJ and producer. However, I've always feared the rejection of this idea from my parents, especially given the higher barrier of entry compared to programming.
For the record (hah), it's not that I've never had a passion for coding, it's just that I've always had those dreams of getting into the music industry, but never had the courage to actually do anything about it, even on the side.
But now that I've put together some mixtapes for the whole Secret Santa event and I find them decent enough to share beyond my closest friends, I want to finally give it a proper shot. I've chosen to go by the alias _Mike Alpha Charlie_ and even registered the `mikealphacharlie.com` domain name.
I'm planning to launch this project's website and share my very first mix later this month on SoundCloud and YouTube. I'll also need to start posting more on Instagram and maybe Threads as well. It might go somewhere, or it might remain a side thing forever, but at least I'm going to try for once instead of keeping it in the dreams' realm for eternity.
## Final thoughts
2025 was without a doubt one hell of a difficult year for me. But it was also one of a breakthrough in terms of the ASD diagnosis and dropping out of uni. I started following my own direction and I still have the backing of my family (not just in the financial sense) and friends.
I've realised that I matter for a lot of people, so I'm glad I haven't taken the easy way out prematurely and I'm forever grateful for their continued support. The road ahead will certainly have plenty of bumps, but I feel better-equipped to handle them this time.

View File

@@ -0,0 +1 @@
abuseipdb-verification-inSaoelZ

View File

@@ -12,20 +12,40 @@ footer {
text-align: justify; text-align: justify;
} }
#notbyai { #badges {
width: 100%; width: 100%;
max-width: 150px; max-width: var(--max-layout-width);
display: flex;
justify-content: center;
align-items: baseline;
flex-wrap: wrap;
gap: 1.25rem;
margin: 0 auto 1.75rem auto; margin: 0 auto 1.75rem auto;
}
#badges a {
max-width: 150px;
transition-duration: 300ms; transition-duration: 300ms;
} }
#notbyai:hover, #badges a:hover,
#notbyai:hover::before { #badges a:hover::before {
background-color: transparent; background-color: transparent;
color: transparent; color: transparent;
transform: scale(1.1); transform: scale(1.1);
} }
#notbyai:active { #badges a:active {
transform: scale(0.95); transform: scale(0.95);
} }
#abuseipdb-badge {
width: 150px;
background: #35c246 linear-gradient(
rgba(255,255,255,0),
rgba(255,255,255,.3) 50%,
rgba(0,0,0,.2) 51%, rgba(0,0,0,0)
);
padding: 5px;
box-shadow: 2px 2px 1px 1px rgba(0, 0, 0, .2);
}

View File

@@ -1,19 +1,33 @@
<a <div id="badges">
id="notbyai" <a
href="https://notbyai.fyi" href="https://notbyai.fyi"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
> title="Written by human, not by AI."
<img >
class="img-light" <img
loading="lazy" class="img-light"
src="/images/notbyai.png" loading="lazy"
alt="Written by human, not by AI." src="/images/notbyai.png"
/> alt="Written by human, not by AI."
<img />
class="img-dark" <img
loading="lazy" class="img-dark"
src="/images/notbyai-dark.png" loading="lazy"
alt="Written by human, not by AI." src="/images/notbyai-dark.png"
/> alt="Written by human, not by AI."
</a> />
</a>
<a
href="https://www.abuseipdb.com/user/264039"
target="_blank"
rel="noopener noreferrer"
title="AbuseIPDB is an IP address blacklist for webmasters and sysadmins to report IP addresses engaging in abusive behavior on their networks."
>
<img
id="abuseipdb-badge"
src="https://www.abuseipdb.com/contributor/264039.svg"
alt="AbuseIPDB Contributor Badge"
/>
</a>
</div>