Compare commits
2 Commits
devel
...
test-markd
Author | SHA1 | Date | |
---|---|---|---|
478ded0e17 | |||
2bdda9ecc2 |
97
test-markdown/10.md
Normal file
97
test-markdown/10.md
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
::: navbar
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Home](../index.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Blog](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Git](https://renraku.dingo-bramble.ts.net/clement)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[CV](../files/CV.pdf)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
# Programming Anxiety
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
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
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Prev](blog-009.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Next](blog-011.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
> "What is better: to be born good or to overcome your evil nature
|
||||||
|
> through great effort?"\
|
||||||
|
> - Paarthurnax
|
97
test-markdown/11.md
Normal file
97
test-markdown/11.md
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
::: navbar
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Home](../index.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Blog](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Git](https://renraku.dingo-bramble.ts.net/clement)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[CV](../files/CV.pdf)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
# LXC and Friends
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
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
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Prev](blog-010.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Next](blog-012.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
> Do not pity the dead, Harry, pity the living. And above all, those who
|
||||||
|
> live without love.\
|
||||||
|
> - Albus Dumbledore
|
114
test-markdown/12.md
Normal file
114
test-markdown/12.md
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
::: navbar
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Home](../index.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Blog](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Git](https://renraku.dingo-bramble.ts.net/clement)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[CV](../files/CV.pdf)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
# Migrating Everything to Proxmox - Part 1
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
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
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Prev](blog-011.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Next](blog-013.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
> 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
|
128
test-markdown/13.md
Normal file
128
test-markdown/13.md
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
::: navbar
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Home](../index.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Blog](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Git](https://renraku.dingo-bramble.ts.net/clement)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[CV](../files/CV.pdf)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
# A Brief Goodbye to CentOS
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
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
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Prev](blog-012.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Next](blog-014.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
> 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
|
137
test-markdown/14.md
Normal file
137
test-markdown/14.md
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
::: navbar
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Home](../index.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Blog](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Git](https://renraku.dingo-bramble.ts.net/clement)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[CV](../files/CV.pdf)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
# A Walk Along The Side
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
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
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Prev](blog-013.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Next](blog-015.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
> 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
|
137
test-markdown/15.md
Normal file
137
test-markdown/15.md
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
::: navbar
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Home](../index.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Blog](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Git](https://renraku.dingo-bramble.ts.net/clement)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[CV](../files/CV.pdf)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
# A Taste of Progress
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
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
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Prev](blog-014.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Next](blog-016.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
> 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
|
104
test-markdown/16.md
Normal file
104
test-markdown/16.md
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
::: navbar
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Home](../index.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Blog](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Git](https://renraku.dingo-bramble.ts.net/clement)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[CV](../files/CV.pdf)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
# Fighting With The Past
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
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
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Prev](blog-015.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Next](blog-017.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
> No man ever steps in the same river twice, for it\'s not the same
|
||||||
|
> river and he\'s not the same man.\
|
||||||
|
> - Heraclitus
|
113
test-markdown/17.md
Normal file
113
test-markdown/17.md
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
::: navbar
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Home](../index.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Blog](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Git](https://renraku.dingo-bramble.ts.net/clement)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[CV](../files/CV.pdf)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
# New Year New Beginnings
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
## 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
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Prev](blog-016.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Next](blog-018.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
> Home isn\'t where you\'re from, it\'s where you find light when all
|
||||||
|
> grows dark.\
|
||||||
|
> - Pierce Brown, Golden Son
|
141
test-markdown/18.md
Normal file
141
test-markdown/18.md
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
::: navbar
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Home](../index.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Blog](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Git](https://renraku.dingo-bramble.ts.net/clement)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[CV](../files/CV.pdf)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
# We Need More Motivation
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
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
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Prev](blog-017.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Next](blog-019.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
> \"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
|
107
test-markdown/19.md
Normal file
107
test-markdown/19.md
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
::: navbar
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Home](../index.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Blog](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Git](https://renraku.dingo-bramble.ts.net/clement)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[CV](../files/CV.pdf)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
# Seeking New Paths
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
## 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
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Prev](blog-018.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Next](blog-020.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
> 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
|
108
test-markdown/20.md
Normal file
108
test-markdown/20.md
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
::: navbar
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Home](../index.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Blog](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Git](https://renraku.dingo-bramble.ts.net/clement)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[CV](../files/CV.pdf)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
# Pushing New Boundaries
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
## 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
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Prev](blog-019.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
[Next](blog--01.html)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
> "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
|
Reference in New Issue
Block a user