Blog
2023
Modeling view state in SwiftUI

How to reduce boilerplate code when modeling view state in SwiftUI views by using a generic enum to handle common scenarios such as loading, success, and error states.

Automating Mastodon Posts with OpenAI's ChatGPT

Building Mastofact, a silly ChatGPT-powered Mastodon bot that toots a random fact every hour, using Python and the Mastodon.py library.

Long live Tweetbot

How to continue using the Tweetbot iOS app after it has been suspended by replacing its Twitter API key with your own, using a man-in-the-middle proxy to redirect authentication requests.

2022
A first look at Swift Charts: building a horizontal bar chart

An introduction to the Swift Charts library and a look at how to build a horizontal bar chart using some sample data.

Building, testing and releasing native iOS apps using Codemagic

My experience using the Codemagic platform to set up continuous integration, testing and automated deployments for a native iOS app written in Swift.

Recreating the App Store's expandable text in SwiftUI

Recreating the expandable text view used in the App Store's app description using SwiftUI. The view will be able to expand its content by tapping on a "more" button.

Design and development of components for the AirQino platform dedicated to air quality monitoring

A recap of my master's thesis in Computer Science & Engineering about the AirQino platform and related developments.

2021
Using Timescale's Continuous Aggregates to speed up database queries

This post details my experience with TimescaleDB's continuous aggregates feature, resulting in a 10x improvement in the performance of some specific database queries.

Enabling TimescaleDB Streaming Replication for PostgreSQL 13 with Docker

This post illustrates the process of setting up streaming replication for a PostgreSQL 13 database with the TimescaleDB extension using Docker, in order to create a real-time 1:1 replica of the primary database.

Creating a Wildfly Docker image with TimescaleDB support

This post demonstrates the creation of a Wildfly Docker image that includes support for TimescaleDB via the PostgreSQL JDBC driver, as well as the combination of the two using Docker Compose.

Penetration Testing Report

This report describes the Vulnerability Assessment and Penetration Testing (VAPT) analysis that was carried out on a specific Docker container for educational purposes.

Rendering mathematical expressions into HTML using Katex

This is a sample post for testing the integration of Katex in order to transform mathematical expressions from Markdown into visually appealing HTML, a useful feature for static websites.

2020
Book Manager - Project Report

Creation of Book Manager, a compact Java application developed using the Test Driven Development (TDD) model in conjunction with Build Automation and Continuous Integration techniques.