<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>aldnav</title>
    <link>https://blog.aldnav.com/</link>
    <description>Recent content on aldnav</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 13 Sep 2025 12:11:10 +0800</lastBuildDate><atom:link href="https://blog.aldnav.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Open Government Project Tracker</title>
      <link>https://blog.aldnav.com/blog/open-government-project-tracker/</link>
      <pubDate>Sat, 13 Sep 2025 12:11:10 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/open-government-project-tracker/</guid>
      <description>2025 September With the recent developments of the investigations on the Corruption of Flood Control Projects in the Philippines, the Department of Budget and Management (DBM) informed the Senate through the Development Budget Coordination Committee (DBCC) that DBM has a digital budget management roadmap called Project TINA (Technical Innovations in the National Expenditure Program Application). It replaces the current NEP generation tool. The initiative received positive feedback and legislators from the Senate desires for it &amp;ldquo;to go all the way&amp;rdquo; hinting at a possiblity to unify and automate the budget process extending up to the implementation of proposed projects.</description>
    </item>
    
    <item>
      <title>SonarQube on Gitea Actions</title>
      <link>https://blog.aldnav.com/blog/sonarqube-on-gitea-actions/</link>
      <pubDate>Fri, 20 Jun 2025 20:15:18 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/sonarqube-on-gitea-actions/</guid>
      <description>Gitea Actions is the built-in CI system of Gitea comparable and compatible with GitHub Actions.
SonarQube Server hosts SonarQube automated code quality and security reviews.
Both are indispensable for teams or individuals that ensure high code quality and security.
This guide will demonstrate how to integrate SonarQube with Gitea Actions.
Diagram showing the integration of SonarQube with Gitea Actions
Prerequisites Enable Gitea Actions If you are running Gitea version older than 1.</description>
    </item>
    
    <item>
      <title>Going Headless With Nixos</title>
      <link>https://blog.aldnav.com/blog/going-headless-with-nixos/</link>
      <pubDate>Wed, 05 Mar 2025 18:16:50 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/going-headless-with-nixos/</guid>
      <description>I acquired an old HP ProDesk 400 G5 Desktop Mini PC which I plan to use as a headless server for my first ever home lab setup.
It has the following specs:
6 Core Intel(R) Core(TM) i5-9500T CPU @ 2.20GHz 16GB SODIMM DDR4 (2 x 8GB) 256GB HDD Intel UHD Graphics 630 The plan is to use this as my main server for learning Kubernetes and other DevOps tools. I believe I scored a good deal considering the low spec requirement for my intended use.</description>
    </item>
    
    <item>
      <title>Anatomy of a Distributed System</title>
      <link>https://blog.aldnav.com/blog/anatomy-of-a-distributed-system/</link>
      <pubDate>Thu, 14 Mar 2024 21:56:17 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/anatomy-of-a-distributed-system/</guid>
      <description>A distributed system is a synergy of nodes working together. What enables this cooperation is the exchange of messages following a method of communication. The Interprocess communication (IPC).
What makes up a distributed system? Service. A service is a specific implementation of one part of the capabilities of a system.
Business logic. The core of a service which represents the entry point of interfaces for external communication.
Interfaces define which operations are available to a service, and the operations that a service can invoke on other services.</description>
    </item>
    
    <item>
      <title>AWS Certificate Manager DNS Validation With Namecheap</title>
      <link>https://blog.aldnav.com/blog/aws-certificate-manager-dns-validation-with-namecheap/</link>
      <pubDate>Thu, 18 Jan 2024 19:52:38 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/aws-certificate-manager-dns-validation-with-namecheap/</guid>
      <description>The Problem As of writing this, DNS validation with Namecheap using the web interface is tricky.
At least that was my experience. The page just freeze as soon as I input by typing or pasting the CNAME value.
Testing it with other browsers, the issue still persists.
So it must be on the frontend&amp;rsquo;s input validation.
As soon as I enter &amp;ldquo;.&amp;rdquo; in the CNAME value, the page freezes.
Inspecting further, the input field has a regex pattern of ^(\@|\*|((\*\.</description>
    </item>
    
    <item>
      <title>Exploring Large Language Model with Slack Bot</title>
      <link>https://blog.aldnav.com/blog/exploring-large-language-model-with-slack-bot/</link>
      <pubDate>Mon, 20 Nov 2023 09:21:28 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/exploring-large-language-model-with-slack-bot/</guid>
      <description>Introduction This mini-project is heavily inspired by a guide written by Dave Ebbelaar titled &amp;ldquo;Slack AI Assistant with Python &amp;amp; LangChain&amp;rdquo; and from his YouTube video &amp;ldquo;How I Supercharge Slack With Custom AI Bots&amp;rdquo;
I&amp;rsquo;ve been wanting to create my own Slack Chat bot with some type of intelligence behind it and not only restricted to the algorithms I implement. I also wanted to explore the capabilities of GPT and see how it can be used in a real-world application.</description>
    </item>
    
    <item>
      <title>Pyenv and Jenkins</title>
      <link>https://blog.aldnav.com/blog/pyenv-and-jenkins/</link>
      <pubDate>Sun, 22 Jan 2023 09:21:28 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/pyenv-and-jenkins/</guid>
      <description>Background Pyenv lets you manage multiple versions of Python. It&amp;rsquo;s a very useful tool for developers and maintainers of projects that require support of earlier or later versions of Python.
Jenkins is a popular CI/CD tool. One particularly important feature of Jenkins is the pipeline. Through pipelines, one can automate the process of building, testing, and deploying software.
Pyenv and Jenkins is a powerful combination of tools especially when managing changes such as upgrading Python versions.</description>
    </item>
    
    <item>
      <title>Qwik and Netlify Redirects</title>
      <link>https://blog.aldnav.com/blog/qwik-and-netlify-redirects/</link>
      <pubDate>Sun, 15 Jan 2023 01:18:01 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/qwik-and-netlify-redirects/</guid>
      <description>Background Handling redirects on Netlify is straightforward. After all, one has to only add a few entries in the _redirects file or in the netlify.toml file.
Here&amp;rsquo;s how one may do it in the netlify.toml file.
[[redirects]] from = &amp;#34;/blog/*&amp;#34; to = &amp;#34;https://blog.example.com/blog/:splat&amp;#34; status = 200 force = true Running with the above configuration, one may expect that the following URLs will be redirected to https://blog.example.com/blog/awesome-article when a visitor enters https://example.</description>
    </item>
    
    <item>
      <title>Flutter State Management on Edge</title>
      <link>https://blog.aldnav.com/blog/flutter-state-management-on-edge/</link>
      <pubDate>Sun, 17 Apr 2022 22:50:27 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/flutter-state-management-on-edge/</guid>
      <description>Living on the edge.
Here is an example of using two of the most popular state management in Flutter. Provider and Bloc.
Surprisingly, they still work as expected.
I&amp;rsquo;ll probably keep on using Bloc for this project. I find the separation of UI and business logic more appealing. Just need to get used to it&amp;rsquo;s state-event design.</description>
    </item>
    
    <item>
      <title>A Journey to the Cloud (AZ-900)</title>
      <link>https://blog.aldnav.com/blog/a-journey-to-the-cloud-az-900/</link>
      <pubDate>Fri, 25 Feb 2022 09:33:27 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/a-journey-to-the-cloud-az-900/</guid>
      <description>☁️ A Journey to the Cloud (AZ-900) Prelude Preparations for the Exam Why AZ-900? Virtual Training Microsoft Learn ITProTV YouTube: Inside Cloud and Security John Savill&amp;rsquo;s Technical Training Practice Tests on Whizlabs Hands-on Azure Portal Taking the Exam Continuing Education Prelude I&amp;rsquo;ve had a significant downtime last year due to some unfortunate series of events. Did not stop me from wandering around at least with what&amp;rsquo;s left for me.
&amp;ldquo;We don&amp;rsquo;t rise to the level of our expectations; we fall to the level of our training.</description>
    </item>
    
    <item>
      <title>THM - Solar Exploiting Log4j</title>
      <link>https://blog.aldnav.com/blog/thm-solar-exploiting-log4j/</link>
      <pubDate>Sat, 01 Jan 2022 12:43:20 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/thm-solar-exploiting-log4j/</guid>
      <description>For weeks leading to early December 2021, Log4Shell has been the only news in my Twitter feed. I haven&amp;rsquo;t got much experience with the Java ecosystem lately and have only used Log4j on my projects back in college. Although people are quick to point out the massive attack surface that this vulnerability is exposed to.
John Hammond released a video on YouTube demonstrating the exploit on a Minecraft server. This picqued my interest.</description>
    </item>
    
    <item>
      <title>THM - OWASP Components With Known Vulnerabilities</title>
      <link>https://blog.aldnav.com/blog/thm-owasp-components-with-known-vulnerabilities/</link>
      <pubDate>Tue, 28 Dec 2021 18:37:32 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/thm-owasp-components-with-known-vulnerabilities/</guid>
      <description>Reconnaissance Target The target web application is an online book store by Projectworlds.in.
A quick Google search with the terms &amp;ldquo;projectworlds vulnerability, projectworlds cve&amp;rdquo; lead me to CVE-2020-19110 with a link to a Github issue reported by Github user liao10086. I&amp;rsquo;ve been able to replicate the issue.
But not much help with our goal to pop a shell for RCE. Looking for some more known vulnerabilities, 47887 seems to be promising and scary!</description>
    </item>
    
    <item>
      <title>OWASP Juice Shop Extra Language</title>
      <link>https://blog.aldnav.com/blog/owasp-juice-shop-extra-language/</link>
      <pubDate>Sat, 25 Dec 2021 11:46:50 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/owasp-juice-shop-extra-language/</guid>
      <description>Cracking the &amp;ldquo;Extra Language&amp;rdquo; Challenge OWASP JUICE SHOP CHALLENGE
Name Difficulty Description Category Tags Extra Language ⭐️⭐️⭐️⭐️⭐️ Retrieve the language file that never made it into production. Broken Anti Automation Brute Force Reconnaisance The Juice Shop has a language switcher on the top right corner.
Possibly only 38 languages made it to production of the i18n module.
Requesting for the i18n file for a specific language is via this endpoint : http://localhost/assets/i18n/&amp;lt;language(_locale)&amp;gt;.</description>
    </item>
    
    <item>
      <title>THM - OWASP Sensitive Data Exposure</title>
      <link>https://blog.aldnav.com/blog/thm-owasp-sensitive-data-exposure/</link>
      <pubDate>Thu, 16 Dec 2021 19:01:36 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/thm-owasp-sensitive-data-exposure/</guid>
      <description>Exploring the website The target website &amp;ldquo;Sense and Sensitivity&amp;rdquo; is a simple static website with a home page and the login page. Here I tried the common admin:password credentials but that didn&amp;rsquo;t work.
Sensitive files Moving around the site, we get to the /assets/ page for the directory listing of publicly accessible assets (images, css, js, and others). Here we see that a webapp.db is also present.
It also shows us the service that is running Apache/2.</description>
    </item>
    
    <item>
      <title>Thank you</title>
      <link>https://blog.aldnav.com/blog/thank-you/</link>
      <pubDate>Fri, 08 Oct 2021 09:11:38 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/thank-you/</guid>
      <description>I&amp;rsquo;m on a Good Journey &amp;ldquo;I was shipwrecked before I even boarded . . . the journey showed me this — how much of what we have is unnecessary, and how easily we can decide to rid ourselves of these things whenever it&amp;rsquo;s necessary, never suffering the loss.&amp;rdquo;
— Seneca, Moral Letters, 87.1
A long time ago, Zeno of Citium, was a merchant before he was a philosopher. On his voyage between Phoenicia and Peiraeus, his ship sank along with its cargo.</description>
    </item>
    
    <item>
      <title>Making the Escapists Crafting Guide App 2</title>
      <link>https://blog.aldnav.com/blog/making-the-escapists-crafting-guide-app-2/</link>
      <pubDate>Fri, 25 Dec 2020 18:27:19 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/making-the-escapists-crafting-guide-app-2/</guid>
      <description>On Part 1, I made the working version of the Escapists Crafting Guide app using Flutter. I used ListView widget to show the different tools and items available for crafting.
Today I am going to improve the app slightly by showing on the list the category where these tools belong. I am also going to replace the ListView with SliverList — I describe it as a fancier list view. I am also exploring flutter_sticky_header[repository] [pub.</description>
    </item>
    
    <item>
      <title>Nadie Sabrá Nunca</title>
      <link>https://blog.aldnav.com/blog/nadie-sabr%C3%A1-nunca/</link>
      <pubDate>Sat, 19 Dec 2020 20:26:34 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/nadie-sabr%C3%A1-nunca/</guid>
      <description>For me the movie Nadie Sabrá Nunca (No One Will Ever Know) is a beautiful film that tackles about escapism. I was actually smiling when the mother and the child started to daydream. The film was released on 2018 and directed by Jesús Torres Torres.
Nadie Sabrá Nunca Movie Poster from IMDB
Today, daydreaming could be a strange thing for those who haven&amp;rsquo;t ever experienced it. Never wants to get bored.</description>
    </item>
    
    <item>
      <title>Making The Escapists Crafting Guide App</title>
      <link>https://blog.aldnav.com/blog/making-the-escapists-crafting-guide-app/</link>
      <pubDate>Thu, 17 Dec 2020 11:33:48 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/making-the-escapists-crafting-guide-app/</guid>
      <description>This is a part of a series of my journey into mobile application development. I am learning Flutter and I enjoy using it to make apps. The widgets are just amazing. Right off the bat, one can easily focus on creating apps, and making it beautiful, with very minimum learning curve.
Revisiting Steam games I bought but played only a little, I know I&amp;rsquo;m not the only one, I scroll through my library and found The Escapists 2.</description>
    </item>
    
    <item>
      <title>Unless Python</title>
      <link>https://blog.aldnav.com/blog/unless-python/</link>
      <pubDate>Mon, 25 May 2020 22:30:08 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/unless-python/</guid>
      <description>Short post! You can still read, unless you&amp;rsquo;re in a hurry.
&amp;gt;&amp;gt;&amp;gt; unless = lambda condition: condition is not True &amp;gt;&amp;gt;&amp;gt; breakfast_is_ready = False &amp;gt;&amp;gt;&amp;gt; if unless(breakfast_is_ready): ... print(&amp;#34;Sleeping...&amp;#34;) ... else: ... print(&amp;#34;Getting up!&amp;#34;) ... Sleeping... &amp;gt;&amp;gt;&amp;gt; breakfast_is_ready = True &amp;gt;&amp;gt;&amp;gt; if unless(breakfast_is_ready): ... print(&amp;#34;Sleeping...&amp;#34;) ... else: ... print(&amp;#34;Getting up!&amp;#34;) ... Getting up! Here is Ruby/Perl&amp;rsquo;s unless conditional in Python. It&amp;rsquo;s basically a fancy &amp;ldquo;if not&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>PSQL Functions and Django</title>
      <link>https://blog.aldnav.com/blog/psql-functions-and-django/</link>
      <pubDate>Wed, 13 May 2020 21:00:54 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/psql-functions-and-django/</guid>
      <description>PSQL Functions and Django FREQ=WEEKLY;BYDAY=TU,TH You can probably infer just from reading something along the lines &amp;ldquo;weekly on Tuesdays and Thursdays&amp;rdquo;.
Correct! A recurrence rule describe a repeating pattern for events. The recurrence rule is part of the standard specification iCalendar [1]
The formal format definition follows recur-rule-part *( &amp;quot;;&amp;quot; recur-rule-part ). The structure consists of recurrence grammar parts and comes in NAME=VALUE pair. Each part is separated by semicolon character &amp;ldquo;;&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>Python Multiprocessing Pitfalls</title>
      <link>https://blog.aldnav.com/blog/python-multiprocessing-pitfalls/</link>
      <pubDate>Thu, 06 Feb 2020 21:54:09 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/python-multiprocessing-pitfalls/</guid>
      <description>Python Multiprocessing Pitfalls It is not much a suprise not getting things right the first time. It serves as a validation. Correctness. Things to know and look forward to finally get it done and done well. In this excerpt are personal notes exploratory to the subject of multiprocessing in Python. A lot of pretty interesting stuff. Also a lot of time spent experimenting, reading, and making mistakes. So here&amp;rsquo;s an attempt to avoid making them again.</description>
    </item>
    
    <item>
      <title>Writing a Geohash Wrapper using CFFI</title>
      <link>https://blog.aldnav.com/blog/writing-a-geohash-wrapper-using-cffi/</link>
      <pubDate>Tue, 04 Jun 2019 15:56:15 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/writing-a-geohash-wrapper-using-cffi/</guid>
      <description>While exploring awesome lists scattered around Github, I stumbled upon Awesome C. The list is overwhelming. One library that caught my attention is libgeohash since it&amp;rsquo;s my first time to hear of such.
Apparently there is another way to express a location aside from latitude and longitude coordinates. Geohashing is a technique that represents a location using alphanumeric strings. The longer the string, the more precise the representation is to the actual location.</description>
    </item>
    
    <item>
      <title>Django Table Exporter</title>
      <link>https://blog.aldnav.com/blog/django-table-exporter/</link>
      <pubDate>Sun, 05 May 2019 09:40:56 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/django-table-exporter/</guid>
      <description>Django Table Exporter django-tables2 comes with a built-in export feature which supports CSV, JSON, XLSX, and many others. The feature is very handy for a quick and easy way to enable &amp;ldquo;Download this table&amp;rdquo; functionality to your website.
# Normal usage from django_tables2.views import SingleTableMixin from django_tables2.views.mixins import ExportMixin class PizzaShopsView( ExportMixin, SingleTableMixin, ListView, ): table_class = PizzaTable # Inspection # django_tables2.export.views.ExportMixin class ExportMixin: # `render_to_response` calls `create_export` see https://github.com/jieter/django-tables2/blob/master/django_tables2/export/views.py#L43-L48 def create_export(self, export_format): exporter = TableExport( export_format=export_format, table=self.</description>
    </item>
    
    <item>
      <title>Adding S3 Keys to Elasticsearch Keystore</title>
      <link>https://blog.aldnav.com/blog/adding-s3-keys-to-elasticsearch-keystore/</link>
      <pubDate>Sat, 29 Dec 2018 11:34:27 +0800</pubDate>
      
      <guid>https://blog.aldnav.com/blog/adding-s3-keys-to-elasticsearch-keystore/</guid>
      <description>When using S3 plugin for Elasticsearch, the senstive repository settings aren&amp;rsquo;t directly configured in elasticsearch.yml but instead stored in the elasticsearch keystore using elasticsearch-keystore bin commands.
Before starting the node, run the following.
bin/elasticsearch-keystore add s3.client.default.access_key bin/elasticsearch-keystore add s3.client.default.secret_key See more S3 Repository Plugin - Client Settings
On Kubernetes For ES (elasticsearch) nodes that are in Kubernetes, the commands above can be issued on elasticsearch kube pod. The &amp;ldquo;reloadable&amp;rdquo; client secure settings still apply.</description>
    </item>
    
    <item>
      <title>DNS Namespaces from GoDaddy to AWS Route53</title>
      <link>https://blog.aldnav.com/blog/dns-namespaces-from-godaddy-to-aws-route53/</link>
      <pubDate>Wed, 07 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.aldnav.com/blog/dns-namespaces-from-godaddy-to-aws-route53/</guid>
      <description>If you are looking for a simple guide to point &amp;ldquo;yourdomain.com&amp;rdquo; to your EC2 hosted application, then you are in luck. This is only applicable if you want to keep your domain on GoDaddy. Transferring a domain is another topic
This guide is meant to be a straightforward tutorial. Please refer to the official documentation for more in-depth details.
For purposes of this guide GoDaddy is the domain name provider. Similar setup might work on other domain name provider.</description>
    </item>
    
    <item>
      <title>Dockerize Omeka CMS</title>
      <link>https://blog.aldnav.com/blog/dockerize-omeka-cms/</link>
      <pubDate>Wed, 27 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.aldnav.com/blog/dockerize-omeka-cms/</guid>
      <description>Dockerize Omeka CMS We had this activity in our &amp;ldquo;Advanced Computer Systems&amp;rdquo; class to deploy a collections archive website using a content management system written in PHP, Omeka CMS. What is Omeka CMS?
Omeka provides open-source web publishing platforms for sharing digital collections and media-rich online exhibits.
omeka.org What Omeka CMS is for? Resource sharing. Sharing resources is a valuable asset for hobbyists, enthusiasts, educational institutions and government offices. OMEKA provides such perk plus offers a lot more like publishing collections and digital contents through online exhibits.</description>
    </item>
    
    <item>
      <title>100DaysOfCode</title>
      <link>https://blog.aldnav.com/blog/100daysofcode/</link>
      <pubDate>Fri, 22 Jun 2018 00:00:00 +0000</pubDate>
      
      <guid>https://blog.aldnav.com/blog/100daysofcode/</guid>
      <description>A good friend of mine urged me to take the #100DaysOfCode challenge.
&amp;ldquo;👿 Hmmm&amp;hellip; that&amp;rsquo;s taxing&amp;hellip; as if we don&amp;rsquo;t get to code almost every day at work&amp;rdquo;
&amp;ldquo;😇 Oh come on. This is a great chance to practice your craftsman mindset!&amp;rdquo;
&amp;ldquo;👿 pfff! &amp;ldquo;
&amp;ldquo;Alright! I&amp;rsquo;m up for the challenge.&amp;rdquo; So we started our first day.
Now, what to build? For my first day, I thought of practicing VueJS. Also, ever since the break from school I was binge-watching movies and TV shows that were pushed down my priority list on Netflix.</description>
    </item>
    
    <item>
      <title>Home</title>
      <link>https://blog.aldnav.com/home/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://blog.aldnav.com/home/</guid>
      <description>Hello! My name is Aldrin Navarro and welcome to my blog.
I&amp;rsquo;m a Software Developer at Newlogic.
I am also a Cybersecurity Enthusiast.
I write about coding, cybersecurity, and other explorations in technology.
Write to me with PGP 🔑</description>
    </item>
    
  </channel>
</rss>
