Compare commits

22 Commits

Author SHA1 Message Date
cc6b48b0da Tiny fix 2025-02-05 01:07:09 +08:00
86f7162069 Add missing blogpost 2025-02-05 00:58:21 +08:00
9b90c14c94 Post 21 2025-02-05 00:52:02 +08:00
a58258034a Fix some small stuff 2024-01-23 23:16:27 +08:00
090211fd46 New post 2024-01-23 23:09:05 +08:00
c41dc77d77 Script to generate new post for writing and quote template 2024-01-23 21:06:17 +08:00
28f8cd3c77 New article 2023-12-01 00:59:13 +08:00
19271a179c More stuff 2023-10-31 23:40:00 +08:00
d0b96cab18 Update source 2023-10-31 23:39:18 +08:00
010201b7b7 Update CV 2023-10-31 23:37:50 +08:00
991e629125 Update list 2023-10-31 23:35:32 +08:00
c285e1ed73 New post 2023-10-31 23:34:33 +08:00
ba196c9e91 Update CV 2023-10-21 22:36:41 +08:00
50e6f61c9e Change to Tailscale funnel 2023-10-21 22:01:47 +08:00
8b33eddbef Merge branch 'devel' 2023-03-29 23:14:25 +08:00
f156878888 New blog 2023-03-29 23:13:54 +08:00
560c19dfe9 More renaming .html for files 2023-01-09 21:04:00 +08:00
71ef8b0769 Renamed files to have .html suffix 2023-01-09 20:58:01 +08:00
5f2a2fc60c Renaming files with .html suffix 2023-01-09 20:53:17 +08:00
770b363846 Merge branch 'devel' 2022-04-04 21:56:37 +08:00
f99092ba08 Add image 2022-04-04 21:56:22 +08:00
852a7f99d0 New CV 2022-03-29 01:38:10 +08:00
25 changed files with 453 additions and 41 deletions

View File

@ -2,86 +2,86 @@
{
"title":"The First Entry",
"published_date":"Thu, 20 Jun 2019 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-000"
"guid":"https://www.clementchiew.me/blog/blog-000.html"
},
{
"title":"The Migration",
"published_date":"Wed, 07 Aug 2019 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-001"
"guid":"https://www.clementchiew.me/blog/blog-001.html"
},
{
"title":"Configuring Dynamic DNS Records",
"published_date":"Thu, 29 Aug 2019 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-002"
"guid":"https://www.clementchiew.me/blog/blog-002.html"
},
{
"title":"? Matched Expression Does Not Match in Perl",
"published_date":"Wed, 18 Sep 2019 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-003"
"guid":"https://www.clementchiew.me/blog/blog-003.html"
},
{
"title":"The SBC Change",
"published_date":"Mon, 02 Mar 2020 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-004"
"guid":"https://www.clementchiew.me/blog/blog-004.html"
},
{
"title":"A Hit of Kubernetes",
"published_date":"Thu, 21 May 2020 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-005"
"guid":"https://www.clementchiew.me/blog/blog-005.html"
},
{
"title":"Optimizing Web Pages and File Sizes",
"published_date":"Fri, 22 May 2020 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-006"
"guid":"https://www.clementchiew.me/blog/blog-006.html"
},
{
"title":"Some Website Design and CSS",
"published_date":"Mon, 08 Jun 2020 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-007"
"guid":"https://www.clementchiew.me/blog/blog-007.html"
},
{
"title":"Git and Bash The Site",
"published_date":"Thu, 02 Jul 2020 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-008"
"guid":"https://www.clementchiew.me/blog/blog-008.html"
},
{
"title":"A Birth In The Family",
"published_date":"Sun, 26 Jul 2020 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-009"
"guid":"https://www.clementchiew.me/blog/blog-009.html"
},
{
"title":"Programming Anxiety",
"published_date":"Thu, 13 Aug 2020 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-010"
"guid":"https://www.clementchiew.me/blog/blog-010.html"
},
{
"title":"LXC and Friends",
"published_date":"Thu, 20 Aug 2020 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-011"
"guid":"https://www.clementchiew.me/blog/blog-011.html"
},
{
"title":"Migrating Everything to Proxmox - Part 1",
"published_date":"Mon, 30 Nov 2020 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-012"
"guid":"https://www.clementchiew.me/blog/blog-012.html"
},
{
"title":"A Brief Goodbye to CentOS",
"published_date":"Wed, 09 Dec 2020 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-013"
"guid":"https://www.clementchiew.me/blog/blog-013.html"
},
{
"title":"A Walk Along The Side",
"published_date":"Tue, 27 Jul 2021 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-014"
"guid":"https://www.clementchiew.me/blog/blog-014.html"
},
{
"title":"A Taste of Progress",
"published_date":"Sat, 23 Oct 2021 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-015"
"guid":"https://www.clementchiew.me/blog/blog-015.html"
},
{
"title":"Fighting With The Past",
"published_date":"Sat, 29 Mar 2022 00:00:00 +0800",
"guid":"https://www.clementchiew.me/blog/blog-016"
"guid":"https://www.clementchiew.me/blog/blog-016.html"
}
]}

4
blog/.quote.template Normal file
View File

@ -0,0 +1,4 @@
<blockquote>
<br>
-
</blockquote>

View File

@ -4,22 +4,27 @@
</header>
<ul>
<li><a href="blog-016">2022-03-29 &nbsp;&nbsp;Fighting With The Past</a></li>
<li><a href="blog-015">2021-10-23 &nbsp;&nbsp;A Taste of Progress</a></li>
<li><a href="blog-014">2021-07-27 &nbsp;&nbsp;A Walk Along The Side</a></li>
<li><a href="blog-013">2020-12-09 &nbsp;&nbsp;A Brief Goodbye to CentOS</a></li>
<li><a href="blog-012">2020-11-30 &nbsp;&nbsp;Migrating Everything to Proxmox - Part 1</a></li>
<li><a href="blog-011">2020-08-20 &nbsp;&nbsp;LXC and Friends</a></li>
<li><a href="blog-010">2020-08-13 &nbsp;&nbsp;Programming Anxiety</a></li>
<li><a href="blog-009">2020-07-26 &nbsp;&nbsp;A Birth In The Family</a></li>
<li><a href="blog-008">2020-07-02 &nbsp;&nbsp;Git and Bash The Site</a></li>
<li><a href="blog-007">2020-06-08 &nbsp;&nbsp;Some Website Design and CSS</a></li>
<li><a href="blog-006">2020-05-22 &nbsp;&nbsp;Optimizing Web Pages and File Sizes</a></li>
<li><a href="blog-005">2020-05-21 &nbsp;&nbsp;A Hit of Kubernetes</a></li>
<li><a href="blog-004">2020-03-02 &nbsp;&nbsp;The SBC Change</a></li>
<li><a href="blog-003">2019-09-18 &nbsp;&nbsp;? Matched Expression Does Not Print in Perl</a></li>
<li><a href="blog-002">2019-08-29 &nbsp;&nbsp;Configuring Dynamic DNS Records</a></li>
<li><a href="blog-001">2019-08-07 &nbsp;&nbsp;The Migration</a></li>
<li><a href="blog-000">2019-06-20 &nbsp;&nbsp;The First Entry</a></li>
<li><a href="blog-021.html">2021-02-05 &nbsp;&nbsp;Reflecting on 2024</a></li>
<li><a href="blog-020.html">2024-01-14 &nbsp;&nbsp;Pushing New Boundaries</a></li>
<li><a href="blog-019.html">2023-12-01 &nbsp;&nbsp;Seeking New Paths</a></li>
<li><a href="blog-018.html">2023-10-31 &nbsp;&nbsp;We Need More Motivation</a></li>
<li><a href="blog-017.html">2023-03-29 &nbsp;&nbsp;New Year New Beginnings</a></li>
<li><a href="blog-016.html">2022-03-29 &nbsp;&nbsp;Fighting With The Past</a></li>
<li><a href="blog-015.html">2021-10-23 &nbsp;&nbsp;A Taste of Progress</a></li>
<li><a href="blog-014.html">2021-07-27 &nbsp;&nbsp;A Walk Along The Side</a></li>
<li><a href="blog-013.html">2020-12-09 &nbsp;&nbsp;A Brief Goodbye to CentOS</a></li>
<li><a href="blog-012.html">2020-11-30 &nbsp;&nbsp;Migrating Everything to Proxmox - Part 1</a></li>
<li><a href="blog-011.html">2020-08-20 &nbsp;&nbsp;LXC and Friends</a></li>
<li><a href="blog-010.html">2020-08-13 &nbsp;&nbsp;Programming Anxiety</a></li>
<li><a href="blog-009.html">2020-07-26 &nbsp;&nbsp;A Birth In The Family</a></li>
<li><a href="blog-008.html">2020-07-02 &nbsp;&nbsp;Git and Bash The Site</a></li>
<li><a href="blog-007.html">2020-06-08 &nbsp;&nbsp;Some Website Design and CSS</a></li>
<li><a href="blog-006.html">2020-05-22 &nbsp;&nbsp;Optimizing Web Pages and File Sizes</a></li>
<li><a href="blog-005.html">2020-05-21 &nbsp;&nbsp;A Hit of Kubernetes</a></li>
<li><a href="blog-004.html">2020-03-02 &nbsp;&nbsp;The SBC Change</a></li>
<li><a href="blog-003.html">2019-09-18 &nbsp;&nbsp;? Matched Expression Does Not Print in Perl</a></li>
<li><a href="blog-002.html">2019-08-29 &nbsp;&nbsp;Configuring Dynamic DNS Records</a></li>
<li><a href="blog-001.html">2019-08-07 &nbsp;&nbsp;The Migration</a></li>
<li><a href="blog-000.html">2019-06-20 &nbsp;&nbsp;The First Entry</a></li>
</ul>
<hr>

27
blog/content-017 Normal file
View File

@ -0,0 +1,27 @@
<header>
<h1>New Year New Beginnings</h1>
</header>
<h2>Long Break</h2>
<p>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.</p>
<h2>Hosting Problems</h2>
<p>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.</p>
<p>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. </p>
<ul>
<li>Microso - No.</li>
<li>Google Cloud Load Balancer + Google Cloud Storage Bucket backend : Load Balancer not included in free tier.</li>
<li>Oracle Cloud Free Tier : Generous VM sizes but no serverless solution.</li>
<li>AWS CloudFront + S3 Storage : Generous free tier but configuration is quite complex.</li>
<li>Cloudflare R2 + Page Rules : Generous free tier but confusing dashboard. </li>
<li>Hetzner Cloud : Need a certain level of consumption to take advantage of the cheap VMs, and no serverless solution.</li>
</ul>
<p>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.</p>
<p>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.</p>
<h2>What's Next</h2>
<p>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.</p>

23
blog/content-018 Normal file
View File

@ -0,0 +1,23 @@
<header>
<h1>We Need More Motivation</h1>
</header>
<p>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.</p>
<p>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.</p>
<h2>Learning Everything, Yet Learning Nothing</h2>
<p>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"?</p>
<p>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. </p>
<h2>An Overview From Orbit</h2>
<p>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".<p>
<p>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.</p>
<p>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.</p>
<h2>Tailscale Is Cool</h2>
<p>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.</p>

16
blog/content-019 Normal file
View File

@ -0,0 +1,16 @@
<header>
<h1>Seeking New Paths</h1>
</header>
<h2>It's Golang</h2>
<p>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.</p>
<h2>It's The Little Things</h2>
<p>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".</p>
<p>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.</p>
<p>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.</p>
<h2>It's Coming I Swear</h2>
<p>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.</p>

19
blog/content-020 Normal file
View File

@ -0,0 +1,19 @@
<header>
<h1>Pushing New Boundaries</h1>
</header>
<h2>Hell Yeah It Is About Golang</h2>
<p>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. </p>
<p>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 href="https://tarot.dingo-bramble.ts.net/index.html">A tarot reader that is</a>. 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.</p>
<h2>How It Works</h2>
<p>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.</p>
<h2>But Why</h2>
<p>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.</p>
<h2>Conclusion And Some More</h2>
<p>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.</p>
<p>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.</p>

37
blog/content-021 Normal file
View File

@ -0,0 +1,37 @@
<header>
<h1>Reflecting on 2024</h1>
</header>
<p>Yes, I am fashionably late to the party. Everybody has already moved on to 2025 goals and have achieved 99% of them, or at least that is what my anxiety says.</p>
<h2>AOC 2024</h2>
<p>I gave Advent of Code (AOC) a try at a whim and unsurprisingly, I struggled with it. Turns out years of writing glue code for years does not make you a good programmer at all, who knew. I gave myself a restriction to write it only with Bash and Linux CLI tools only and it was hard. Performance was mostly terrible and I am not proud of the hacks that I had to do to make it work. I turned a blind eye to some terrible Day 2 solutions because it was 2am and I needed to sleep.</p>
<p>Here are some of my takeaways :
<p>It is time to read a book on computer science. Without a good understanding of software and hardware, it is nearly impossible to gauge how well my code is going to run. It is ridiculous to always hope that I have enough RAM to cache my results, or that Linux pipes will always solve my problems. Djikstras algorithm is a tough nut to crack and search algorithms still confound me.</p>
<p>Bash associative arrays are no fun. It is very dangerous and frankly slow. If I ever have to deal with associative arrays in Bash, it is time to have some self-reflection and rewrite the script in a big boy language.</p>
<h2>Trying Haskell, Again</h2>
<p>I really did my best here, but 2024 was not the year for me. I got stuck trying to understand currying and monads but I could barely make it out alive. Perhaps one more time this year would do the charm.</p>
<h2>Self-hosting With Tailscale</h2>
<p>Tailscale deserves an honorary mention because it was a joy to work with it. Tailscale with Linuxserver Docker images, not so much. Please fix your broken Tailscale Docker mod image, Tailscale devs.</p>
<p>The open source community continues to tear itself apart. The Gitea/Forgejo split was disheartening, but I am not sure where I stand on that for now. I have more to say about open source, but I am growing weary of writing for the audience of one.</p>
<h2>Turning 30</h2>
<p>That is it. No more 20s. The years of “having fun” are over before I even tried them. The burdens of adulthood weigh more oppressively on me year after year. Most days I just slog them out with a good dose of stoicism, but the rough days are getting rougher. You know what they say : when the going gets tough, the tough gets going, until you do not.</p>
<p>I finally got a property. It is tiny but it is a property, a place to call my own. No more renting, no more dealing with housemates. Working with contractors and shelling out cold hard cash was painful, more painful than many decisions that I have had to make over the years. It is still not done, but I hope that when I am done, it is a space for me to clear my head and my mind.</p>
<h2>Turning Inward</h2>
<p>Many encounters in life have had me looking inwards to think about the ethics and philosophies of my being and my conduct. 2024 has all the signs of the world burning down : polarizing politics driven to the extreme by widespread misinformation; massive centralizations of wealth by the elite; healthcare and groceries becoming insanely unaffordable; the failure of technological innovations to benefit the public; the air, water, and earth literally poisoning us as we in turn continue to add poison to it. Fun stuff.</p>
<p>Perhaps as hopelessness and helplessness becomes a common value and perspective, what does it mean to be? Is it obsessive work? Is it virtuous and selfless sacrifice? Is it compassionate love? Is it mindless accumulation of wealth? It is easy to say that The Way of Life is ones own, but where does one draw the strength to walk down that path, perhaps one day I hope to learn.</p>

View File

@ -6,7 +6,7 @@
</head><body>
<p><div class="navbar">
<div><a href="../index.html">Home</a></div>
<div><a href="blog--01">Blog</a></div>
<div><a href="https://gitea.clementchiew.me/explore/repos">Git</a></div>
<div><a href="blog--01.html">Blog</a></div>
<div><a href="https://renraku.dingo-bramble.ts.net/clement">Git</a></div>
<div><a href="../files/CV.pdf">CV</a></div>
</div></p><hr>

View File

@ -1,4 +1,4 @@
<hr><p><div class="navbar">
<div><a href="blog-PREVPADINT">Prev</a></div>
<div><a href="blog-NEXTPADINT">Next</a></div>
<div><a href="blog-PREVPADINT.html">Prev</a></div>
<div><a href="blog-NEXTPADINT.html">Next</a></div>
</div></p>

5
blog/quote-017 Normal file
View File

@ -0,0 +1,5 @@
<blockquote>
Home isn't where you're from, it's where you find light when all grows dark.
<br>
- Pierce Brown, Golden Son
</blockquote>

5
blog/quote-018 Normal file
View File

@ -0,0 +1,5 @@
<blockquote>
"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.'"
<br>
- Didactylos, Small Gods
</blockquote>

21
blog/quote-019 Normal file
View File

@ -0,0 +1,21 @@
<blockquote>
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.
<br>
- Mr. Poopybutthole
</blockquote>

5
blog/quote-020 Normal file
View File

@ -0,0 +1,5 @@
<blockquote>
“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?”
<br>
- Terry Pratchett, Snuff
</blockquote>

5
blog/quote-021 Normal file
View File

@ -0,0 +1,5 @@
<blockquote>
"The true mind can weather all the lies and illusions without being lost. The true heart can tough the poison of hatred without being harmed. Since beginningless time, darkness thrives in the void but always yields to purifying light."
<br>
- Lion Turtle, Avatar: The Last Airbender
</blockquote>

72
blog/test1.xml Normal file
View File

@ -0,0 +1,72 @@
<?xml version="1.0"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.7.45"/><title/></head><body><header><h1>A Walk Along The Side</h1></header><p>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.</p><h2>Proxmox VE 7.0</h2><p>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.</p><h2>New Work, New Schedule</h2><p>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.</p><p>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.</p><p>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.</p><h2>Lockdowns</h2><p>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.</p><h2>Unexpected EOF</h2><p>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.</p><blockquote>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.<br/>
- John Steinbeck</blockquote></body></html>

4
blog/test2.xml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<rss version="2.0"><channel><title>My Little Spot</title><link>https://www.clementchiew.me.</link><description> </description><language>en-us</language><pubDate>$pubdate</pubDate><lastBuildDate>$pubdate</lastBuildDate><docs>https://www.clement.chiew/blog/rss</docs><generator>Some random bash scripts</generator><managingEditor>clementchiew@disroot.org</managingEditor><webMaster>clementchiew@disroot.org</webMaster>
$itemlist
</channel></rss>

82
blog/test3.xml Normal file
View File

@ -0,0 +1,82 @@
<item>
<title>Star City</title>
<link>
http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp
</link>
<description>
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.7.45"/><title/></head><body><header><h1>A Walk Along The Side</h1></header><p>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.</p><h2>Proxmox VE 7.0</h2><p>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.</p><h2>New Work, New Schedule</h2><p>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.</p><p>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.</p><p>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.</p><h2>Lockdowns</h2><p>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.</p><h2>Unexpected EOF</h2><p>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.</p><blockquote>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.<br/>
- John Steinbeck</blockquote></body></html>
</description>
<pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
<guid>
http://liftoff.msfc.nasa.gov/2003/06/03.html#item573
</guid>
</item>

58
blog/test4.html Normal file
View File

@ -0,0 +1,58 @@
<![CDATA[<body><header><h1>A Brief Goodbye to CentOS</h1></header><p>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.</p><h2>Why Did This Probably Happen</h2><p>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.</p><h2>How It Will Affect All of Us</h2><p>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.</p><p>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.</p><h2>Questioning IBM/Red Hat Decisions</h2><p>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.</p><p>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.</p><p>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.</p><h2>So, What Happens Now?</h2><p>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.</p><p>CentOS's founder, Gregory Kurtzer, is working with the community
to establish Rocky Linux. Join them at
https://webchat.freenode.net/#rockylinux .</p><blockquote>I doubt that the imagination can be suppressed. If you
truly eradicated it in a child, he would grow up to be an
eggplant.<br/>
- Ursula K. Le Guin</blockquote></body>]]>

Binary file not shown.

View File

@ -1 +0,0 @@
20211012-CV.pdf

BIN
files/CV.pdf Normal file

Binary file not shown.

BIN
images/whynotinvert.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@ -5,8 +5,8 @@ name="viewport" content="width=device-width, initial-scale=1"><title>Clement Chi
<p><div class="navbar">
<div><a href="index.html">Home</a></div>
<div><a href="blog/blog--01">Blog</a></div>
<div><a href="https://gitea.clementchiew.me/clement">Git</a></div>
<div><a href="blog/blog--01.html">Blog</a></div>
<div><a href="https://renraku.dingo-bramble.ts.net/clement">Git</a></div>
<div><a href="files/CV.pdf">CV</a></div>
</div></p>
<hr>

View File

@ -12,7 +12,7 @@ do
contentname="content-$padint"
quotename="quote-$padint"
tailname="tail-$padint"
blogname="blog-$padint"
blogname="blog-$padint.html"
# interactive tail
if (( i >= 0 )) ;then

24
scripts/new-post.sh Executable file
View File

@ -0,0 +1,24 @@
#!/usr/bin/env bash
# Change to blog folder
cd ../blog
# Get number of posts
POSTNUM=$( ls -l content-* | wc -l )
QUOTENUM=$( ls -l quote-* | wc -l )
if [[ $POSTNUM -gt $QUOTENUM ]];then
NUM=$POSTNUM
else
NUM=$QUOTENUM
fi
CURRNUM=$(( $NUM -2 ))
# Create post and quote from template
NEWPOSTNAME="content-$(printf %03d "$CURRNUM")"
NEWQUOTENAME="quote-$(printf %03d "$CURRNUM")"
cp .blog.template "$NEWPOSTNAME"
cp .quote.template "$NEWQUOTENAME"
# Show new file names
echo "$(readlink -e "$NEWPOSTNAME")"
echo "$(readlink -e "$NEWQUOTENAME")"