Since I reached 100 followers on Twitter, I’m now currently doing an 100 Days of Code challenge while doing performance tasks on school, which please send me thoughts and prayers for my mental health. Anyways, my first week of this challenge is to dive deeper to deta.sh and its official CLI and hooking up with GitLab CI for deployments and stuff. So, this issue of 100 Days of Code 2022 contains all the sutff I did while wearing my Node.js backend developer hat in summary this week.
Disclaimer: There are only one referral link in this post, and it’s my Doppler invite link. Every new sign-up attributed to my affiliate link that results in a new workplace being created will add $100 credit to me and the person who signed-up, which is you, the reader. No sponsorships involved.
Day 1 - February 14, 2022
To get things started I fired up my WSL instance of Ubuntu 20.04 (I’m accessing my family’s desktop PC via RDP magic from an Acer Aspire One AOD255E craptop), installed Tailscale and manually run tailscaled
as root.
Once I setup all the stuff I need, I created an fresh project for this one, which is the Community Updates Radio bot, which will handle the API calls we pulled from the bots at Pipedream, usually using some RSS magic and stuff.
Meanwhile in the Buildergroop Discord server, my brain is still processing what does DEVLOOSKIE
mean and what is that thread. Please let me know in DMs if you got some wrong answers
Day 2 - February 15, 2022
I did more coding for the Community Updates Radio bot, and setting up Prettier and Commitizen stuff, and moving most of functions for calling different APIs to the lib/
directory.
And of course, another round of compiling CLIs from source for my craptop, this time the Storj Uplink CLI. I just need to update my PATH to ensure everything works when called the binary name minus the absolute path.
Day 3 - February 16, 2022
I forked the Matrix specification repository for some Postman experiments, and possibly create an separate one because I mess up with the config and stuff. Welp.
Postman stuff aside, I pushed the first commit for the webhook service to GitLab. I also add Gitpod config and enable Sentry for backend monitoring.
Day 4 - February 17, 2022
Developers don’t hack computers, but to take an rest from writing Node.js code, I watch some security-related stuff from one of the white-hacking YouTube channels I currently subscribed.
Speaking of vulnerabilities, I pulled another Log4j-related stuff on my queue to take another round on how to build secure software by design. Good that I’m not an Java developer nor use Log4j on my apps, but what about the infra I’m using? Well, for Railway and Gitpod, its either unaffected or now patched.
I also synchorized my fork of the Local Companion codebase to keep in sync with the upstream and rebuild the binary by myself. I probably need to use the CI very soon, and also did some more coding business on the hooks service.
Day 5 - February 18, 2022
Just nuked the dumb-init
stuff from Gitpodified Workspace Images’s CI image I’m currently maintaining. Meanwhile in the hooks server, I officially slapped Nodemon as an development dependency and add an Dockerfile for containerized deployments outside Deta for downstream users who stumbled upon the code and even adding some utility scripts.
Day 6 - February 19, 2022
I pulled upstream changes into Gitpodified Workspace Images as usual, and update the changelog entries to include the changes in the first half of February. By the way, I did some configuration changes to make buildkitd
gRPC API available over TCP, although I don’t recommend doing this without using mTLS in production.
But when I pushed it, I frogot to write the script for synchorizing the Dazzle build cache between the local registry in the CI runner and (surpirse!) GitHub Container Registry...
...and as I scroll up the logs, something gone wrong earlier on the buildkitd
side.
Maybe I guess we need to run buildkitd ourselves here in the background, mate. By the way, I successfully setup the Updates Radio account for the fediverse via mstdn.social
homeserver and got our own fresh access token for API access.
Now that I got the access token, I added that secret into my secret store I’m using, Doppler, to be synced to Deta through some CI magic. And meanwhile, I’m still debugging why the gpg part of the ci-setup script is still broken, even through I make it fail via set -xe
magic.
Day 7 - February 20, 2022
I just spent almost four hours, mostly for this commit, which it drives me nuts.
Earlier in the morning, I rad some blog posts from yet another PaaS service wanted-to-use-but-because-of-f**king-cryptominers-I-need-a-credit-card, fly.io, especially Free Postgres Databases stuff as my first pick...
…and then some, including how they do WireGuard in user-mode in their perspective. I mean, I’m reading blog posts from services I use, usually GitHub, CloudFlare and GitLab, on regular basis, going through product changelogs and engineering sections.
What I learned this week
- Separating functions into their own files, in this case, on platform basis, but I forget classes exists.
- Calling
sendEvents
API and formatting stuff from pure Markdown to HTML for Matrix, through some bloody DevTools network inspection instead of just viewing the event source. Also calling the/api/v1/statuses
endpoint for Mastodon. It’s still not tested through, so good luck next week. You know, this week is a lot of me reading the API docs. - Building secure software by design and fuzzing stuff. I may plan to integrate security scanners to the CI, but I’ll place it on my todo list for future plans.
That’s it for now! I’ll gonna do debugging hell in the next week. By the way, follow me on Twitter and/or Tumblr for more shenanigans and stuff like these.