Compare commits
12 Commits
ba196c9e91
...
devel
Author | SHA1 | Date | |
---|---|---|---|
cc6b48b0da | |||
86f7162069 | |||
9b90c14c94 | |||
a58258034a | |||
090211fd46 | |||
c41dc77d77 | |||
28f8cd3c77 | |||
19271a179c | |||
d0b96cab18 | |||
010201b7b7 | |||
991e629125 | |||
c285e1ed73 |
4
blog/.quote.template
Normal file
4
blog/.quote.template
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<blockquote>
|
||||||
|
<br>
|
||||||
|
-
|
||||||
|
</blockquote>
|
@ -4,6 +4,10 @@
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
<li><a href="blog-021.html">2021-02-05 Reflecting on 2024</a></li>
|
||||||
|
<li><a href="blog-020.html">2024-01-14 Pushing New Boundaries</a></li>
|
||||||
|
<li><a href="blog-019.html">2023-12-01 Seeking New Paths</a></li>
|
||||||
|
<li><a href="blog-018.html">2023-10-31 We Need More Motivation</a></li>
|
||||||
<li><a href="blog-017.html">2023-03-29 New Year New Beginnings</a></li>
|
<li><a href="blog-017.html">2023-03-29 New Year New Beginnings</a></li>
|
||||||
<li><a href="blog-016.html">2022-03-29 Fighting With The Past</a></li>
|
<li><a href="blog-016.html">2022-03-29 Fighting With The Past</a></li>
|
||||||
<li><a href="blog-015.html">2021-10-23 A Taste of Progress</a></li>
|
<li><a href="blog-015.html">2021-10-23 A Taste of Progress</a></li>
|
||||||
|
23
blog/content-018
Normal file
23
blog/content-018
Normal 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
16
blog/content-019
Normal 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
19
blog/content-020
Normal 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
37
blog/content-021
Normal 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. Djikstra’s 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 one’s own, but where does one draw the strength to walk down that path, perhaps one day I hope to learn.</p>
|
@ -7,6 +7,6 @@
|
|||||||
<p><div class="navbar">
|
<p><div class="navbar">
|
||||||
<div><a href="../index.html">Home</a></div>
|
<div><a href="../index.html">Home</a></div>
|
||||||
<div><a href="blog--01.html">Blog</a></div>
|
<div><a href="blog--01.html">Blog</a></div>
|
||||||
<div><a href="https://gitea.clementchiew.me/explore/repos">Git</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><a href="../files/CV.pdf">CV</a></div>
|
||||||
</div></p><hr>
|
</div></p><hr>
|
||||||
|
5
blog/quote-018
Normal file
5
blog/quote-018
Normal 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
21
blog/quote-019
Normal 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
5
blog/quote-020
Normal 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
5
blog/quote-021
Normal 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>
|
Binary file not shown.
24
scripts/new-post.sh
Executable file
24
scripts/new-post.sh
Executable 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")"
|
Reference in New Issue
Block a user