diff --git a/test-markdown/10.md b/test-markdown/10.md
index 86e020c..17f6c7d 100644
--- a/test-markdown/10.md
+++ b/test-markdown/10.md
@@ -1,32 +1,97 @@
-::: {role="main"}
-::: {#text .section}
+::: navbar
-# Error 404
-
-### Object not found
+[Home](../index.html)
-This object does not exist or is not publicly accessible at this URL.
-Check the URL of the object that you\'re looking for or contact the
-owner to enable Public access.
+[Blog](blog--01.html)
-Is this your bucket?
+[Git](https://renraku.dingo-bramble.ts.net/clement)
-Learn how to enable [Public
-Access](https://developers.cloudflare.com/r2/data-access/public-buckets/)
+
+
+
+
+[CV](../files/CV.pdf)
:::
-::: section
-
-:::
+------------------------------------------------------------------------
+
+
+
+# Programming Anxiety
+
+
+
+Programming is one of the cornerstones of modern information technology.
+It is what enables the entire Internet to deliver a myriad of services
+and information to everyone at any instant. We live in an era where all
+sorts of amazing programming projects exists, especially the Linux
+kernel and the GCC compiler. These amazing programs are the product of
+tens of thousands of hours devoted by legendary experts. I admire how
+programs has helped humanity as a whole. So while most of my previous
+posts have been about the progression of what I have learnt, this post
+is not one of them.
+
+I started learning about programming in the earlier part of this decade;
+I don\'t really remember the specific date anymore. Learning programming
+was fun. Reading blogs, articles, and disseminations about programming
+was fun too. But what comes after those? The culmination of all that
+knowledge and skills is to write your own program. To set your fingers
+free and ultimately find their way to a creative product of your own.
+
+Would it be self-sabotage for a noob programmer to have read
+well-written articles discussing the pros and cons of incorporating open
+source libraries in your project? Or the fastest/most-concise
+implementation to sort and filter data structures? Or how should a
+programmer write a program so that he can easily write unit tests for?
+GCC or LLVM? Imperative or functional? The latest netsec update about
+exploiting common bugs in poorly-written programs? These questions and
+information weigh on me before I even write my first function. Would I
+have done this better? Did I make the right choice using tuples instead
+of arrays? Is it time to refactor this tiny functionality?
+
+Most of the advice for beginning programmers have always boiled down to
+\"Start small, start well\". But even with my best intentions, I would
+not have known where does one draw the line at well. The fear of
+finishing a program only to realize that it was never going to be
+functional, and I have wasted hours of my time only to backspace my way
+to Line 1. The disappointment after writing a program that I think is
+somewhat decent, only to find that a similar open source library already
+implements this with impeccable style and documentation. As a result,
+even if they would have never taken off, dozens of my programming
+projects have never left the drawing board.
+
+What would have been the lesson of this post? I don\'t know. Perhaps I
+should just learn to embrace the idea that the programming process
+inherently requires a lot of rewriting and will inevitably be filled
+with security issues. Thank you for reading.
+
+------------------------------------------------------------------------
+
+::: navbar
+
+
+[Prev](blog-009.html)
+
+
+
+
+
+[Next](blog-011.html)
+
+
:::
+
+> "What is better: to be born good or to overcome your evil nature
+> through great effort?"\
+> - Paarthurnax
diff --git a/test-markdown/11.md b/test-markdown/11.md
index 86e020c..a3d9f52 100644
--- a/test-markdown/11.md
+++ b/test-markdown/11.md
@@ -1,32 +1,97 @@
-::: {role="main"}
-::: {#text .section}
+::: navbar
-# Error 404
-
-### Object not found
+[Home](../index.html)
-This object does not exist or is not publicly accessible at this URL.
-Check the URL of the object that you\'re looking for or contact the
-owner to enable Public access.
+[Blog](blog--01.html)
-Is this your bucket?
+[Git](https://renraku.dingo-bramble.ts.net/clement)
-Learn how to enable [Public
-Access](https://developers.cloudflare.com/r2/data-access/public-buckets/)
+
+
+
+
+[CV](../files/CV.pdf)
:::
-::: section
-
-:::
+------------------------------------------------------------------------
+
+
+
+# LXC and Friends
+
+
+
+With Proxmox in place, I started work on LXC containers. They really are
+wonderful. Fast to start up, way lower memory footprint, and much easier
+configuration in general. Without the long wait for VMs to fully
+install, I have a lot more motivation to set up some stuff I\'ve been
+planning.
+
+First up is Wireguard. Wireguard required some fiddling because
+Proxmox\'s Linux kernel has not integrated the kernel module. While I
+could\'ve achieved this on a virtual machine without altering my
+hypervisor, I felt Wireguard was worth it. Wireguard is so easy to set
+up and comes with an extremely low latency cost. Now that my Android
+device is always routed through Wireguard, I have a lot more options to
+secure and experiment with its networking.
+
+Next up is a popular favourite, Pi-Hole. I\'ve always been hesitant
+about installing Pi-Hole on a physical device like a RPi or a VM because
+it felt like overkill for such a simple application. A containerized
+environment is just perfect. I\'ve also wired devices connected to my
+Wireguard instance to use Pi-Hole as the DNS server. It was enlightening
+knowing what my devices are doing. Side note: Firefox\'s telemetry
+service is pretty aggressive if you leave it on.
+
+The last application is Apache Guacamole. This is a rather \"heavy\"
+application because it runs on Java Tomcat, but Guac is seriously
+amazing. If you\'ve always been worried about securing entry to your
+devices, fear no more. With Guac, you can use your browser as the remote
+gateway to your internal network. I\'ve never wanted to expose my SSH
+jumper to the ravages of the Internet, so Guac allows me to have
+2-factor authentication and easy access to my internal network while
+I\'m not at home. Why not connect to my Wireguard instance you say?
+Mainly because I have not automated adding devices to my Wireguard
+instance, so the manual work is still slightly cumbersome. Also, Guac
+does not require any specialized remote tools such as OpenSSH or PuTTY;
+It only requires a browser that supports SSL.
+
+## The Drawbacks
+
+Perhaps the largest drawbacks of LXC containers when compared to Docker,
+is the \"full Linux stack\" available in each container. While some
+container templates (Alpine) are slimmer than others, most of my
+containers run on Debian. There is work needed to keep them up-to-date,
+so this perfectly sets up the environment for me to pick up more
+advanced config management. Ansible Level 2, here I come.
+
+------------------------------------------------------------------------
+
+::: navbar
+
+
+[Prev](blog-010.html)
+
+
+
+
+
+[Next](blog-012.html)
+
+
:::
+
+> Do not pity the dead, Harry, pity the living. And above all, those who
+> live without love.\
+> - Albus Dumbledore
diff --git a/test-markdown/12.md b/test-markdown/12.md
index 86e020c..cf7addf 100644
--- a/test-markdown/12.md
+++ b/test-markdown/12.md
@@ -1,32 +1,114 @@
-::: {role="main"}
-::: {#text .section}
+::: navbar
-# Error 404
-
-### Object not found
+[Home](../index.html)
-This object does not exist or is not publicly accessible at this URL.
-Check the URL of the object that you\'re looking for or contact the
-owner to enable Public access.
+[Blog](blog--01.html)
-Is this your bucket?
+[Git](https://renraku.dingo-bramble.ts.net/clement)
-Learn how to enable [Public
-Access](https://developers.cloudflare.com/r2/data-access/public-buckets/)
+
+
+
+
+[CV](../files/CV.pdf)
:::
-::: section
-
-:::
+------------------------------------------------------------------------
+
+
+
+# Migrating Everything to Proxmox - Part 1
+
+
+
+It was almost inevitable that this would happen. After getting more
+comfortable with Proxmox, I realized that I needed more reliability for
+the applications running on my RPis. Things are running fine on my RPi,
+but it was a matter of time before disaster struck. So begin my efforts
+to move everything over to Proxmox.
+
+## A Dance with Docker
+
+While almost everything could run on or built for Docker one way or
+another these days, running complicated applications on Docker will
+eventually uncover some really esoteric behaviours. So I stuck to using
+LXC containers for most of my applications. I used Docker for the
+applications that I can deploy and leave them alone, hence Redis,
+WikiJS, and WatchTower. WatchTower ensures that the containers stay
+healthy and updated.
+
+## Preparing The Base
+
+With the easiest stuff out of the way, I started preparing the LXC
+container templates. I opted for two templates: CentOS 7 and Debian 10.
+I updated them, added my SSH public keys, installed the basic tools, and
+it was good to go.
+
+## Taking Apart Services on RPi
+
+As a result of my messy installations on RPi, I had to scrounge around
+for the configs and data for Gitea and Apache httpd. After that, it was
+a quick tarball to be transferred over to their respective containers.
+This time, I\'ve created a separate container dedicated for PostgreSQL
+and MySQL. Doing so was somewhat liberating; I now know where I can
+access and isolate my databases.
+
+## The Disaster
+
+What is a migration without a major data loss disaster? So, I lied
+previously about the \'simple\' applications I run on Docker. I tried
+migrating my Nextcloud instance to Docker. Sound simple right? Mount the
+NFS directory on the Docker host, spin up the Nextcloud Docker image
+with the directories and the already-migrated PostgreSQL user and tables
+ready, and magic would take place. Turns out a new Nextcloud instance
+would immediately nuke /data to set up a \'clean slate\'. My NFS
+directory was clean enough, I\'ll say. To make things worse, I was
+putting off scripting for my Btrfs snapshots and backups. With them, I
+could\'ve easily rolled back my changes.
+
+The silver lining was that I did not keep any important information on
+the instance. As the old adage goes, backup before doing stupid things.
+This cowboy move was a hard lesson for me.
+
+## Conclusion
+
+This concludes Part 1. Most of my time was spent untangling all the
+services that I was experimenting on my RPi and deciding what gets to
+live or not. So far, I\'ve learned a hard lesson and had to plan out my
+migration before doing so. I only look forward for the rest to come.
+
+------------------------------------------------------------------------
+
+::: navbar
+
+
+[Prev](blog-011.html)
+
+
+
+
+
+[Next](blog-013.html)
+
+
:::
+
+> For we each of us deserve everything, every luxury that was ever piled
+> in the tombs of the dead kings, and we each of us deserve nothing, not
+> a mouthful of bread in hunger. Have we not eaten while another
+> starved? Will you punish us for that? Will you reward us for the
+> virtue of starving while others ate? No man earns punishment, no man
+> earns reward. Free your mind of the idea of deserving, the idea of
+> earning, and you will begin to be able to think.\
+> - Odo
diff --git a/test-markdown/13.md b/test-markdown/13.md
index 86e020c..673034a 100644
--- a/test-markdown/13.md
+++ b/test-markdown/13.md
@@ -1,32 +1,128 @@
-::: {role="main"}
-::: {#text .section}
+::: navbar
-# Error 404
-
-### Object not found
+[Home](../index.html)
-This object does not exist or is not publicly accessible at this URL.
-Check the URL of the object that you\'re looking for or contact the
-owner to enable Public access.
+[Blog](blog--01.html)
-Is this your bucket?
+[Git](https://renraku.dingo-bramble.ts.net/clement)
-Learn how to enable [Public
-Access](https://developers.cloudflare.com/r2/data-access/public-buckets/)
+
+
+
+
+[CV](../files/CV.pdf)
:::
-::: section
-
-:::
+------------------------------------------------------------------------
+
+
+
+# A Brief Goodbye to CentOS
+
+
+
+The traditional CentOS Linux distribution as we know it is dead. Here is
+another drop in the ocean of opinion pieces that follow the news of its
+death. After cooling down from the initial rush of blood to my head,
+here is my take on this event.
+
+## Why Did This Probably Happen
+
+With the advent of DevOps and SRE, businesses and startups are moving
+away from the old-school concept of traditional server clusters to
+running their applications on disposable containers. The trend is clear
+and true. Developers are increasingly less reliant on a tried-and-true
+Linux distribution that lasts for a decade. With containers, developers
+can develop, test, deploy, and rollback with blazing fast velocity.
+
+## How It Will Affect All of Us
+
+Without a doubt one of the most popular Linux distributions to ever
+exist, CentOS was prevalent among all kinds of computing systems ranging
+from simple database servers to billion-dollar computer clusters. There
+are countless organizations have made the business decision to keep
+using the traditional model, or organizations that do not require
+microservices at all. With CentOS drawn from below their feet, a lot of
+organizations will be forced to migrate to another option, or fork out a
+pretty penny for RHEL. Besides, on-prem deployment of any container
+orchestration tool still requires a stable Linux distribution.
+
+The second ripple effect it will have is towards the skilled
+professionals who have spend decades on CentOS. Not every company is
+willing to pay up for RHEL or risk using CentOS Stream. For those who
+migrate to Debian or OpenSUSE, they will have to retrain and adapt with
+different tools.
+
+## Questioning IBM/Red Hat Decisions
+
+The most obvious of them all was, was it necessary for CentOS to die?
+With CentOS Stream to track ahead of RHEL, it is still possible for
+CentOS to remain functional and serve its purpose. This is clearly a
+business decision to increase profits. It used to be that developers
+wanted to write for RHEL but did not want pay for it; CentOS filled that
+need. What also happened was that some companies decided that they
+wanted the free experience all the way. Red Hat now provides free use of
+the Red Hat Universal Base Image for developers. With this, companies no
+longer have an excuse.
+
+Secondly, why the PR disaster? In hindsight, there is no way to deliver
+this news gently to the public. However, I felt that Red Hat gave the
+bird to the open source community, especially those who contributed to
+CentOS, by pulling the plug on Centos 8 towards the end of 2021. There
+wasn\'t even a courtesy to end it later then CentOS 7\'s EOL date, June
+30th 2024. A raw-dogged \"Pay up, now\" to everyone.
+
+Last of all, what is the next move from Red Hat/IBM? With CentOS gone,
+there is a huge vacuum for another to take its place. RHEL sources are
+still available and can still be repackaged. While Red Hat currently has
+massive influence over Linux in general, is this a arrogant statement
+proclaiming \"Hey, you can\'t live without me\"? Another ominuous take
+with conspiratorial undertones would be that Red Hat plans to eventually
+scrap the FOSS model, but I would have to wear my tin hat for this one.
+
+## So, What Happens Now?
+
+Almost immediately after the release, all the attention is now directed
+to towards filling the space that CentOS will leave behind. Undoubtedly,
+Ubuntu and SUSE would try to assert their presence with their open
+source alternatives. Debian, the largest behemoth of them all, hopefully
+will receive funding and participation like never before. A silver
+lining of this event would perhaps be the buzzing excitement of what
+will be and can be. It is time to be excited about Linux again. I, for
+one, have to begin migrating my CentOS containers and virtual machines
+to Debian.
+
+CentOS\'s founder, Gregory Kurtzer, is working with the community to
+establish Rocky Linux. Join them at
+https://webchat.freenode.net/#rockylinux .
+
+------------------------------------------------------------------------
+
+::: navbar
+
+
+[Prev](blog-012.html)
+
+
+
+
+
+[Next](blog-014.html)
+
+
:::
+
+> I doubt that the imagination can be suppressed. If you truly
+> eradicated it in a child, he would grow up to be an eggplant.\
+> - Ursula K. Le Guin
diff --git a/test-markdown/14.md b/test-markdown/14.md
index 86e020c..7b19504 100644
--- a/test-markdown/14.md
+++ b/test-markdown/14.md
@@ -1,32 +1,137 @@
-::: {role="main"}
-::: {#text .section}
+::: navbar
-# Error 404
-
-### Object not found
+[Home](../index.html)
-This object does not exist or is not publicly accessible at this URL.
-Check the URL of the object that you\'re looking for or contact the
-owner to enable Public access.
+[Blog](blog--01.html)
-Is this your bucket?
+[Git](https://renraku.dingo-bramble.ts.net/clement)
-Learn how to enable [Public
-Access](https://developers.cloudflare.com/r2/data-access/public-buckets/)
+
+
+
+
+[CV](../files/CV.pdf)
:::
-::: section
-
-:::
+------------------------------------------------------------------------
+
+
+
+# A Walk Along The Side
+
+
+
+This year has been tumultuous so far. Combine equal parts cabin fever,
+poor mental health, and escapism, and you get a person who has
+difficulties putting words into a creative composition. Instead of
+posting a success story later about how I have overcome my obstacles in
+life, I felt it was equally important to document my lower moments as
+well. This post would be a feeble attempt to keep this website alive.
+
+## Proxmox VE 7.0
+
+Kudos to Proxmox and their team for the latest release of Proxmox VE.
+The upgrade process was smooth and well documented. The inclusion of the
+upgrade checks was amazing to say the least.
+
+## New Work, New Schedule
+
+No longer a support engineer, I now have a regular work and sleep
+routine. This routine frees me from the debilitating schedule that once
+held me prisoner from social activities or engaging in self-improvement.
+Ironically, this has only enabled my escapism habits.
+
+I spent several months grinding away Witcher 3 and its DLCs. It\'s an
+amazing RPG for a game of its time. Between killing monsters for coin
+and saving Ciri, there were plenty of side quests to keep the player
+going. The only downside was how the devs decided to handle the
+post-game content. What a shame. I also dropped a few weeks into
+Rimworld and its expansive world of war crimes and extensive modding. I
+ultimately stopped playing because of the soul-crushing loss of a
+moderately successful colony. It was fun making money by harvesting
+organs from prisoners and skinning their bodies for leather. Mood
+debuffs begone.
+
+During these days of gaming, I lost track of my work on myself. The game
+sessions were fun, but not nourishing. Like tending liquor to a wounded
+soul, this escapism does not heal, it only numbs it for another day. I
+find nothing but more guilt at the bottom of the metaphorical bottle.
+
+## Lockdowns
+
+As the Covid situation worsens in Malaysia, hope is bleak and no end is
+in sight. Cases in our nation rise to record highs but its people are
+furious. Furious to be held prisoner in their own homes but not furious
+enough to discipline themselves for a safer future. Citizens have never
+been more divided ; An increasing number of the lesser minded are
+pushing for the release of the lockdowns; The infected be damned, my
+momentary freedom worth their sacrifice, until the time comes for my
+lungs to be on the chopping block. As much as I\'m privileged to be safe
+from the horrors of the pandemic, cabin fever is catching up to me. I
+feel myself losing grip of my identity and my flow of time. My moods
+grew from restlessness to agitation, then to apathy. I can only hope for
+the better.
+
+## Unexpected EOF
+
+I shall stop here. Thanks for reading so far. For you dear reader, stay
+strong and stay safe. Like the euphoric sight of your first double
+rainbow or the arduous toils of your younger days, times like these,
+too, shall pass.
+
+------------------------------------------------------------------------
+
+::: navbar
+
+
+[Prev](blog-013.html)
+
+
+
+
+
+[Next](blog-015.html)
+
+
:::
+
+> The works of the roots of the vines, of the trees, must be destroyed
+> to keep up the price, and this is the saddest, bitterest thing of all.
+> Carloads of oranges dumped on the ground. The people came for miles to
+> take the fruit, but this could not be. How would they buy oranges at
+> twenty cents a dozen if they could drive out and pick them up? And men
+> with hoses squirt kerosene on the oranges, and they are angry at the
+> crime, angry at the people who have come to take the fruit. A million
+> people hungry, needing the fruit- and kerosene sprayed over the golden
+> mountains. And the smell of rot fills the country. Burn coffee for
+> fuel in the ships. Burn corn to keep warm, it makes a hot fire. Dump
+> potatoes in the rivers and place guards along the banks to keep the
+> hungry people from fishing them out. Slaughter the pigs and bury them,
+> and let the putrescence drip down into the earth. There is a crime
+> here that goes beyond denunciation. There is a sorrow here that
+> weeping cannot symbolize. There is a failure here that topples all our
+> success. The fertile earth, the straight tree rows, the sturdy trunks,
+> and the ripe fruit. And children dying of pellagra must die because a
+> profit cannot be taken from an orange. And coroners must fill in the
+> certificate- died of malnutrition- because the food must rot, must be
+> forced to rot. The people come with nets to fish for potatoes in the
+> river, and the guards hold them back; they come in rattling cars to
+> get the dumped oranges, but the kerosene is sprayed. And they stand
+> still and watch the potatoes float by, listen to the screaming pigs
+> being killed in a ditch and covered with quick-lime, watch the
+> mountains of oranges slop down to a putrefying ooze; and in the eyes
+> of the people there is the failure; and in the eyes of the hungry
+> there is a growing wrath. In the souls of the people the grapes of
+> wrath are filling and growing heavy, growing heavy for the vintage.\
+> - John Steinbeck
diff --git a/test-markdown/15.md b/test-markdown/15.md
index 86e020c..9ea8ea9 100644
--- a/test-markdown/15.md
+++ b/test-markdown/15.md
@@ -1,32 +1,137 @@
-::: {role="main"}
-::: {#text .section}
+::: navbar
-# Error 404
-
-### Object not found
+[Home](../index.html)
-This object does not exist or is not publicly accessible at this URL.
-Check the URL of the object that you\'re looking for or contact the
-owner to enable Public access.
+[Blog](blog--01.html)
-Is this your bucket?
+[Git](https://renraku.dingo-bramble.ts.net/clement)
-Learn how to enable [Public
-Access](https://developers.cloudflare.com/r2/data-access/public-buckets/)
+
+
+
+
+[CV](../files/CV.pdf)
:::
-::: section
-
-:::
+------------------------------------------------------------------------
+
+
+
+# A Taste of Progress
+
+
+
+TLDR : I passed the CKA test. The test was not hard, but neither was it
+a walk in the park.
+
+Several months ago, I was in a slump, weighed down by the pandemic
+situation. Figuring that there is not much I can do about my mental
+wellbeing, perhaps it was time to face the fact I had two soon-to-expire
+exam vouchers at hand. One of them was for the CKA test. After two
+months of grind, I took the exam and passed it.
+
+## KodeKloud
+
+Realizing LF\'s course on Kubernetes was hot trash, I decided to
+subscribe to KodeKloud and took Mumshad Mannambeth\'s course to assist
+my learning process. This post can also be my personal review of the
+course. The course content was pretty comprehensive. It had a gentle
+learning curve to guide its students towards the course content, going
+so far as to provide primers for topics that are pretty tough for
+newbies. (Networking, openssl, etc) There were also plenty of lab
+exercises for each topic that challenges the student to think harder.
+Some tips are also provided to navigate the test quickly. Without the
+course, I would have skimmed through a lot of details that were pretty
+important. I was pretty satisfied with the value of the content in this
+course.
+
+Reviewing the site experience and design however, is where the shining
+image of KodeKloud starts to show its rough edges. The quality of the
+closed captions were atrocious. You see, I have the habit of watching at
+1.5x speed assisted by closed captions; This is the learning mode where
+I absorb material best. Any slower and I would start yawning. The closed
+captions make me cringe every time I read it. Spelling errors are all
+over the place, poor timings, and sometimes the captions are just
+straight up missing. The video does not consider that the captions would
+obscure its content, nor does the player provide a way to configure
+transparency for the captions background, so I had to frequently pause
+and unpause just to see what is under the captions. You took a 15 min
+break to get some coffee? The video player would crash without saving
+where you left off, so be prepared to refresh and rewatch the first few
+minutes. Labs also frequently disconnect or fail to deploy, which can be
+quite frustrating since I have waited several minutes for it to deploy.
+These are only some of the issues that are present on KodeKloud.
+
+If you are going to take the test, would I recommend this course?
+Absolutely. It can be completed within a month. I do hope that KodeKloud
+puts in more effort to polish their site however; This product is not
+free after all.
+
+## Practice, Practice, and What Else? Oh Yes, More Practice
+
+Perhaps the toughest part of the CKA test was the time limit provided.
+To prepare for the test, I reviewed the exam objectives multiple times.
+Even though the syntax for kubectl commands are mostly consistent, I
+practiced it to make sure I could rely on autocomplete reliably to
+finish my commands. kubectl explain was essential to quickly fill in
+memory gaps when filling out an especially long yaml file. (Looking at
+you, deployments) During the test, there is not a lot of time to
+\"figure things out\" and experiment a little. It was also important to
+know where the yaml templates are for each API resource in the
+Kubernetes documentation so that I did not have to retype everything.
+
+## Some Thoughts
+
+Kubernetes is a tool that divides the DevOps populace. Just visit your
+nearest HN thread to learn all about the fierce debates surrounding it
+and the latest startup trying to revolutionize container orchestration.
+It is flexible, complex yet straightforward, and sufficiently large that
+some find a beast that needs too much effort to tame. All in all, it is
+a powerful tool to introduces as many complexities as many issues that
+is solves. The everything-is-an-API-resource approach makes it
+convenient to integrate with workflows, and the API resources that are
+versioned and modular really helps with the mental model when
+understanding k8s itself.
+
+## One Step Forward
+
+This certification may not be much, but it was a good and hearty dose of
+happiness for myself; I am still the riding the high until this day. It
+is proof of my efforts, the days and nights spent hammering away at the
+keyboard, and that I have bettered myself. I can be more that I was
+yesterday, and I will continue to do so. To you dear reader: if you are
+taking the CKA test, I wish you the best of luck.
+
+------------------------------------------------------------------------
+
+::: navbar
+
+
+[Prev](blog-014.html)
+
+
+
+
+
+[Next](blog-016.html)
+
+
:::
+
+> The trouble is that we have a bad habit, encouraged by pedants and
+> sophisticates, of considering happiness as something rather stupid.
+> Only pain is intellectual, only evil interesting. This is the treason
+> of the artist; a refusal to admit the banality of evil and the
+> terrible boredom of pain.\
+> - Ursula K. LeGuin, The Ones Who Walk Away from Omelas
diff --git a/test-markdown/16.md b/test-markdown/16.md
index 86e020c..ad60156 100644
--- a/test-markdown/16.md
+++ b/test-markdown/16.md
@@ -1,32 +1,104 @@
-::: {role="main"}
-::: {#text .section}
+::: navbar
-# Error 404
-
-### Object not found
+[Home](../index.html)
-This object does not exist or is not publicly accessible at this URL.
-Check the URL of the object that you\'re looking for or contact the
-owner to enable Public access.
+[Blog](blog--01.html)
-Is this your bucket?
+[Git](https://renraku.dingo-bramble.ts.net/clement)
-Learn how to enable [Public
-Access](https://developers.cloudflare.com/r2/data-access/public-buckets/)
+
+
+
+
+[CV](../files/CV.pdf)
:::
-::: section
-
-:::
+------------------------------------------------------------------------
+
+
+
+# Fighting With The Past
+
+
+
+I am an avid user of RSS and I love my RSS app to death. It brings me a
+steady stream of news and information every day from the sources that I
+personally curate; a stream uncorrupted by the ad-funded Internet we
+have now. It is my breath of fresh air every morning before I suit up
+with adblockers and venture into the cancer-ridden wasteland of ads and
+content filler. The premise was simple: no-BS news fully in text with
+some images sprinkled in. Every article does not waste your time or
+attention. If need be, click the link at the bottom to read the full
+article. So a few months ago, an idea lit up in my mind and I thought
+\"Gee, wouldn\'t it be neat if my website was readable via RSS?\" and I
+got to work.
+
+## Browsing RSS Specs
+
+As with most endeavours, everything seemed simple on the surface.
+Browsing through the [RSS
+specifications](https://www.rssboard.org/rss-specification), everything
+looked fine and dandy. A RSS feed is just an itemized list of your
+latest posts alongside some metadata about your site. Just generate a
+new XML file after every new post and serve it, and you\'re set for the
+day, right? Oh, how wrong I was.
+
+## Static Pages And XML
+
+To put it simply, my posts are handwritten in HTML and are not
+dynamically generated with some CMS. This means that I have to find a
+way to convert HTML to a XML-kosher format somehow. Thus the hunt begun.
+In the end, I found [Tidy](https://www.html-tidy.org/), a tool that can
+clean up my messy HTML documents to XHTML. XHTML is XML-friendly, but it
+wasn\'t the end-all. I only needed the body, not the metadata. This was
+easily achievable with xmllint and XPATH. With the body prepped and
+ready, the tricky part is that while syntactically-comformant, HTML tags
+do not work. I wrapped the body as a CDATA section and went by my way.
+
+## I Will Not Regret This, Will I?
+
+The last piece of the puzzle was the metadata for the posts. I went with
+a JSON file as a temporary databases for the posts, but this is a
+solution that is bound to bite me back in the future, but who cares
+about future me right? It works. The duct tape will do for now.
+
+## Conclusion
+
+These 3 paragraphs took me weeks to read up about XML and RSS and
+thinking about the solution. While it works, this is less than ideal. I
+will be wrangling 3 data formats with a Bash script that is becoming
+increasingly unwieldy. Reading up XML has also enlightened, if not
+misguided, me that I need write with XML documents moving forward. If
+not redesigned, this issue is a ticking bomb waiting to blow up in my
+face. Time to think really hard. Thanks for reading.
+
+------------------------------------------------------------------------
+
+::: navbar
+
+
+[Prev](blog-015.html)
+
+
+
+
+
+[Next](blog-017.html)
+
+
:::
+
+> No man ever steps in the same river twice, for it\'s not the same
+> river and he\'s not the same man.\
+> - Heraclitus
diff --git a/test-markdown/17.md b/test-markdown/17.md
index 86e020c..ecafe1d 100644
--- a/test-markdown/17.md
+++ b/test-markdown/17.md
@@ -1,32 +1,113 @@
-::: {role="main"}
-::: {#text .section}
+::: navbar
-# Error 404
-
-### Object not found
+[Home](../index.html)
-This object does not exist or is not publicly accessible at this URL.
-Check the URL of the object that you\'re looking for or contact the
-owner to enable Public access.
+[Blog](blog--01.html)
-Is this your bucket?
+[Git](https://renraku.dingo-bramble.ts.net/clement)
-Learn how to enable [Public
-Access](https://developers.cloudflare.com/r2/data-access/public-buckets/)
+
+
+
+
+[CV](../files/CV.pdf)
:::
-::: section
-
-:::
+------------------------------------------------------------------------
+
+
+
+# New Year New Beginnings
+
+
+
+## Long Break
+
+Whew, it has been a long time since this website was up. Talk about
+downtime. Long story short, I got a new job as a Cloud Engineer. I moved
+to a new rental that did not have a router that supported port
+forwarding. I was not about to replace the shared WiFi and work got busy
+and yeah you get the idea. The website went down. My server is sleeping
+in the storage bin. Well that did not take long. Anyway, new year new
+me.
+
+## Hosting Problems
+
+What do I do when self-hosting is now an issue? Time to turn to the
+\"cloud\". Turns out the cloud just means that your data is now hosted
+by another organization\'s computers. We are all familiar with the wry
+jokes about cloud platform by now. Anyway, I looked into what are the
+available free tier options that we have now. Thanks to past me, this
+site is just a bunch of static files ready to go, so hosting this site
+is not hard.
+
+Since I am already going with a cloud provider, I have higher
+requirements than just \"Nginx/Apache in a VM\". I looked into solutions
+that provides high availability worldwide and can remove maintenance
+headaches from self-hosting; or as the cool kids say, serverless
+solutions. If I am going to sacrifice my own privacy by not owning my
+own hosting, I am not letting the sacrifice go in vain. Here are my
+impressions of the options that I have explored.
+
+- Microso - No.
+- Google Cloud Load Balancer + Google Cloud Storage Bucket backend :
+ Load Balancer not included in free tier.
+- Oracle Cloud Free Tier : Generous VM sizes but no serverless
+ solution.
+- AWS CloudFront + S3 Storage : Generous free tier but configuration
+ is quite complex.
+- Cloudflare R2 + Page Rules : Generous free tier but confusing
+ dashboard.
+- Hetzner Cloud : Need a certain level of consumption to take
+ advantage of the cheap VMs, and no serverless solution.
+
+There are a couple of smaller or niche cloud providers, but most of them
+do not have worldwide presence or do not have a good free tier. For
+those that do, it is not a serverless solution, so this was enough
+research for me.
+
+Ultimately I went with Cloudflare. It took me less than an hour to set
+up my Cloudflare account and billing, upload my files into R2, and then
+configure the one page rule I need to redirect www.clementchiew.me to
+the index.html file. It was pretty delightful to be able to hand over
+management of SSL certificates and have QUIC support right out of the
+gate. I do have my hestitations with Cloudflare, but being able to take
+advantage of Cloudflare\'s free R2 egress and free up my cognitive load
+of web server management is quite valuable to me.
+
+## What\'s Next
+
+There have been so many changes in the past year, both worldwide and in
+my personal life. I have so much to write about and so many ideas that I
+want to note down. See me here again soon.
+
+------------------------------------------------------------------------
+
+::: navbar
+
+
+[Prev](blog-016.html)
+
+
+
+
+
+[Next](blog-018.html)
+
+
:::
+
+> Home isn\'t where you\'re from, it\'s where you find light when all
+> grows dark.\
+> - Pierce Brown, Golden Son
diff --git a/test-markdown/18.md b/test-markdown/18.md
index 86e020c..7e4cacd 100644
--- a/test-markdown/18.md
+++ b/test-markdown/18.md
@@ -1,32 +1,141 @@
-::: {role="main"}
-::: {#text .section}
+::: navbar
-# Error 404
-
-### Object not found
+[Home](../index.html)
-This object does not exist or is not publicly accessible at this URL.
-Check the URL of the object that you\'re looking for or contact the
-owner to enable Public access.
+[Blog](blog--01.html)
-Is this your bucket?
+[Git](https://renraku.dingo-bramble.ts.net/clement)
-Learn how to enable [Public
-Access](https://developers.cloudflare.com/r2/data-access/public-buckets/)
+
+
+
+
+[CV](../files/CV.pdf)
:::
-::: section
-
-:::
+------------------------------------------------------------------------
+
+
+
+# We Need More Motivation
+
+
+
+You know, like \"We need more pylons\", but with motivation, get it?
+Never mind. Like a running joke with my friend goes:\"The workshop is
+dead\". You know, the joke workshop. Tough crowd huh, never mind.
+
+Today would be about motivation, specifically the motivation to learn
+tech. I have been in \"tech\" for about 5 years now, what am I now? Or
+rather, what have I grown to be? If you\'re here something technical,
+probably time to click away. This sentence is added after I typed the
+rest, so warning that the article goes off the rails quite a bit.
+
+## Learning Everything, Yet Learning Nothing
+
+As I reach a certain number in my age, I guess the responsibilities and
+realities of an adult starts to, as the increasingly distant \"young\"
+generation goes, \"gets real\". Without divulging a large part of what
+makes \"adulting\" in my personal life increasingly difficult, a larger
+part has been trying to continue to nurture and encourage myself to
+continue to learn tech. What does it even mean to \"learn\"?
+
+At this beautiful year of 2023, there never has been a more abundant
+year for technology in IT. The scourge of blockchain nonsense is dead,
+AI models are slowly growing to be more competent, and IT development
+methodologies are slowly breaking the ouroboros cycle of tooling
+madness. I still spend a bit of time every day reading about
+technologies, but I find myself increasingly distant from the what
+consitutes as \"learning\". At work, the responsibilities revolve about
+reading a ton of material, but none of them really let you get into the
+\"nitty gritty\" parts; the parts that truly explain what are you going
+to do, the parts that makes you actually grow. You learn everything, but
+yet you learn nothing.
+
+## An Overview From Orbit
+
+The market is slowly disconnecting from each other. Companies are
+falling out of love with open source, and we the slaves to these
+technologies are facing an increasingly uphill battle to be relevant. As
+companies continue to consolidate their products and solutions, unless
+you\'re the lucky few to work at companies that are large enough to be
+included in acronyms, we no longer \"know\" the products we use. When
+you spin up a virtual machine on your cloud provider, are you still
+using a KVM hypervisor, or are you using a proprietary product that is
+compatible with KVM? When you use a S3 API to upload your blob files,
+what is going on in the sausage machine so that your files can now be
+seamlessly accessed from every part of the world? A \"Unix-compatible\"
+interface on a blob storage, how are these filesystem calls translated?
+We are increasingly led to learn about things that kind of makes sense,
+but also kind of don\'t. Your CI/CD needs workflows, pipelines, zones,
+frameworks, etc. Companies are increasingly saying, \"Shhh. Stop
+learning more, start understanding less. Trust the process and slip us
+some money while at that\".
+
+When all you learn is to be locked in to a company\'s product, how
+meaningful are your skills? A pianist can continue to play pianos from
+another brand, a shoemaker can just buy his tools from a generic company
+in China, a hammer-ist can just buy another hammer. Sure, you could just
+\"learn a new language\", you could just adapt to a new file syntax like
+yaml or HCL, but I\'d wager this is a situation unique to IT. Spending
+hundreds of hours finding the right kind of glue to bring products
+together, but spending zero time making sense because this terrible
+combination of products was decided by some C-suite who wants to \"turn
+things around\" in the company.
+
+Perhaps at this point you might be thinking, \"You are not not working
+for the right company\", \"You need a difference perspective\",
+\"You\'re terribly young and this is nothing new\" and I would be glad
+to be convinced so, but the water is starting to boil and I\'m not the
+only frog. I don\'t know what\'s the takeaway from this article other
+than a doomer-ist perspective. Perhaps it\'s a reflection on my dimming
+outlook of the world and global trends. Wars, famine, climate change,
+and more are here and in full force, but we are here in hour long
+meetings explaining how authentication tokens work to a senior engineer
+from the customer that has muted his mic and walked away from the
+laptop. Fun times ahead.
+
+## Tailscale Is Cool
+
+It\'s cool, go check it out. It\'s like Hamachi from years past but way
+more useful. Now I can just use a Docker compose file to spin up my
+Gitea containers and expose the service with HTTPS already included with
+a Funnel. Tailscale, if you\'re reading this, please let me redirect my
+CNAME record to my funnel thanks.
+
+------------------------------------------------------------------------
+
+::: navbar
+
+
+[Prev](blog-017.html)
+
+
+
+
+
+[Next](blog-019.html)
+
+
:::
+
+> \"Life in this world,\" he said, \"is, as it were, a sojourn in a
+> cave. What can we know of reality? For all we see of the true nature
+> of existence is, shall we say, no more than bewildering and amusing
+> shadows cast upon the inner wall of the cave by the unseen blinding
+> light of absolute truth, from which we may or may not deduce some
+> glimmer of veracity, and we as troglodyte seekers of wisdom can only
+> lift our voices to the unseen and say humbly,\'Go on, do Deformed
+> Rabbit\... it\'s my favourite.\'\"\
+> - Didactylos, Small Gods
diff --git a/test-markdown/19.md b/test-markdown/19.md
index 86e020c..09bb9fa 100644
--- a/test-markdown/19.md
+++ b/test-markdown/19.md
@@ -1,32 +1,107 @@
-::: {role="main"}
-::: {#text .section}
+::: navbar
-# Error 404
-
-### Object not found
+[Home](../index.html)
-This object does not exist or is not publicly accessible at this URL.
-Check the URL of the object that you\'re looking for or contact the
-owner to enable Public access.
+[Blog](blog--01.html)
-Is this your bucket?
+[Git](https://renraku.dingo-bramble.ts.net/clement)
-Learn how to enable [Public
-Access](https://developers.cloudflare.com/r2/data-access/public-buckets/)
+
+
+
+
+[CV](../files/CV.pdf)
:::
-::: section
-
-:::
+------------------------------------------------------------------------
+
+
+
+# Seeking New Paths
+
+
+
+## It\'s Golang
+
+Oh wow, this is going to be a short one. I decided to pick up Golang on
+a whim and I am pleasantly surprised. I have picked up Golang a few
+times before, but it never clicked until this time, and oh boy did it
+click this time. I love the strongly-typed nature of the language, and
+how ergonomic everything is. Sure, there are some things that I would
+miss from Python like list comprehensions, but when Golang is blazing
+fast compiled, do I still miss them? I surely do not miss the
+pre-optimization going on in my head whenever I write Python.
+
+## It\'s The Little Things
+
+Coming from the shithole called the Python packaging ecosystem, Golang
+set me free. No longer do I have to suffer from pip refusing to install
+packages, Poetry trying to do weird shit, using virtualenv to create
+\"safe\" spaces; Golang allows me to do the most important part of
+coding itself: the code. Dockerfiles with Python almost always devolve
+into some unholy incantation of pip and some demonic workaround to \"get
+it right\".
+
+No longer do I have to start thinking about how Python would shank me
+sideways for \"poor\" coding decisions; Golang coding styles are simple
+but straightforward. Golang tests all function calls to make sure that
+they match the type signatures. The development cycle is tight and fast.
+
+I just spend an hour yesterday reading about how Flask only has one
+event loop and one worker, how multiple requests are shared by one
+worker, oh-my-what-a-terrible-decision-please-use-ASGIS, worrying about
+having to move to a \"production\" quality server set up, and all that
+noise. If I have to read one more \"comprehensive\" guide on asyncio,
+threading, subprocesses, and how I need to do some convoluted set up
+just to get concurrency, I\'d rather just git init a new Golang project.
+On Golang, concurrency is already built into net/http.
+
+## It\'s Coming I Swear
+
+After countless of dead projects that my hard drive only knows of, I
+feel like Golang has truly pushed my determination to places I\'ve never
+been before. It\'s exhilarating and exciting. Experienced Golang devs,
+let me have thismoment, before I crawl back into the depths of Python.
+
+------------------------------------------------------------------------
+
+::: navbar
+
+
+[Prev](blog-018.html)
+
+
+
+
+
+[Next](blog-020.html)
+
+
:::
+
+> Woo-wee! Evil Morty! That was quite a scheme. Makes me wonder if
+> there\'s an evil me out there. But I guess, sometimes I look at my
+> life, and I may not even need 'im. Cuz, well, guess I made a pretty
+> big mess of things myself. Ooo eee. I never got my job at the
+> university back. Remember that? Rick made me do karate. It was kinda
+> funny, but I guess things went downhill from there. Started isolating
+> myself from Amy. Used to tell her everything I was feeling. But then I
+> guess I stopped. Cuz I wanted her to love who she thought I was, not
+> who I felt myself becoming. Ever think about how horrified the people
+> we love would be if they found out who we truly are? So we just dig
+> ourselves deeper, into our lies every day, ultimately only hurting the
+> people who were brave enough to love us. Wish I didn\'t do that. Wish
+> I was brave enough to love them back. I don\'t know. Maybe you should
+> try it. We don\'t have as much time as we think. Ooo eee.\
+> - Mr. Poopybutthole
diff --git a/test-markdown/20.md b/test-markdown/20.md
index 86e020c..89b6ab2 100644
--- a/test-markdown/20.md
+++ b/test-markdown/20.md
@@ -1,32 +1,108 @@
-::: {role="main"}
-::: {#text .section}
+::: navbar
-# Error 404
-
-### Object not found
+[Home](../index.html)
-This object does not exist or is not publicly accessible at this URL.
-Check the URL of the object that you\'re looking for or contact the
-owner to enable Public access.
+[Blog](blog--01.html)
-Is this your bucket?
+[Git](https://renraku.dingo-bramble.ts.net/clement)
-Learn how to enable [Public
-Access](https://developers.cloudflare.com/r2/data-access/public-buckets/)
+
+
+
+
+[CV](../files/CV.pdf)
:::
-::: section
-
-:::
+------------------------------------------------------------------------
+
+
+
+# Pushing New Boundaries
+
+
+
+## Hell Yeah It Is About Golang
+
+I\'ve always wanted to start project and properly finish it. Thanks to
+Golang and a heck ton of conversations with ChatGPT, I managed to make
+it happen. No more dead projects in the water, no more stranded code
+without an end in sight.
+
+So what is it? What have my grubby little fingers created by hammering
+these poor blue switches for over 3 months in my spare time? [A tarot
+reader that is](https://tarot.dingo-bramble.ts.net/index.html). Just a
+boring tarot reader. Yes, yes, it is done with \"AI\". Yes, it is done
+with GPT-3.5. Yes, yes, it is probably worse than those chatbot wrappers
+you get off Play Store that scams with a hefty annual subscription if
+you forget to cancel the free trial. You go the site, you \"talk\" via a
+text form to an entity that tells you ambiguous futures and whatnots
+about what\'s on your mind.
+
+## How It Works
+
+It is pretty much a Golang chatbot that is prompted to talk like a tarot
+reader. I generated the tarot card set with Dall-E. Link it up with some
+basic Postgres tables to store conversation, put it behind
+Caddy+Tailscale Funnel to serve HTTPS traffic and that is pretty much
+all. Unimpressive, I know.
+
+## But Why
+
+Because I can. But really, it is because I never \"knew\" front end
+development. In this age of Bootstrap, AngularJS, Tailwind, and whatever
+is going on with front end development, it has always felt that I am
+served the same thing but on different plates. This project has allowed
+me to go in depth on how many things came together. CSS styles, the
+Javascript DOM model, HTML divs, etc. Never had I spent so much time
+reading MDN and realized the wealth of knowledge that is available on
+it.
+
+## Conclusion And Some More
+
+This project is not \"creative\". If you are against OpenAI, then this
+project is \"useless\" too. But it was not useless to me. The
+\"democratization\" of LLMs gave me the push forward to places I have
+not been before. LLMs was the teacher that I never had, and the
+assistant that could do \"that one thing\" that you never really
+understand.
+
+What about the poor artists I have ripped off? What about the treasure
+trove of knowledge that these LLMs were trained on that contains a ton
+of copyrights and IPs? Should I have stopped to wonder to wonder whether
+I should, before wondering whether I could? Is this code legitimately
+\"mine\"? I do not have the answers. But without the push from LLMs, the
+barrier of entry to the ever-changing landscape of tech has never been
+so accessible.
+
+------------------------------------------------------------------------
+
+::: navbar
+
+
+[Prev](blog-019.html)
+
+
+
+
+
+[Next](blog--01.html)
+
+
:::
+
+> "but what should we do when the highborn and wealthy take to crime?
+> Indeed, if a poor man will spend a year in prison for stealing out of
+> hunger, how high would the gallows need to be to hang the rich man who
+> breaks the law out of greed?"\
+> - Terry Pratchett, Snuff