Articles

Projects

Rebuilding the Odroid XU4 server

Rebuilding the Odroid XU4 server thumbnail
In a previous article I showcased a simple home server built around an Odroid XU4, which I dismantled soon after migrating to a full-size desktop computer. However, having the Odroid laying around unused was a bit of a waste and I recently started needing a secondary file server to store data backups. So I decided to build a new server with the single board computer
Projects3D printingCAD

LINE Bot

LINE Bot thumbnail
<p>LINE offers an API to developers looking into creating chat bots. I created my own so that I could send myself notifications.</p>
Node.jsExpressProjects

Vanilla javascript neural network

Vanilla javascript neural network thumbnail
This simple web app written in JavaScript which trains a neural network on data provided as .csv file. The neural network is a fully connected network implemented from scratch and the structure of its hidden layers can be set by the user. The dimension of its inputs and outputs is automatically adjusted to fit the provided training data.
ProjectsAI / MLPHP

Countries tracker

Countries tracker thumbnail
Nagoya Global Friends is an international community in Nagoya whose events gather people from all over the worlds. In order to visualize the various countries represented, I designed a simple Firebase application. The application allows users to register their home country, which gets stored in a Firestore database.
FirebaseProjectsSvelte

ESP32-CAM firmware

The ESP32 supports ov2640 cameras, which makes it an ideal platform for a DIY IP camera. For this purpose, I wrote a customized firmware for the ESP32 which provides the following features:
ProjectsESP32

IoT heater controller

IoT heater controller thumbnail
The thermal insulation of my apartment not being the best, I decided to buy an electric heater in order not to freeze during cold winter nights. However, the one I got was probably too powerful for my needs and letting it run for too long would heat up my place too much. Thus, I added a wifi enabled controller to it so its operations are controlled by my home automation system.
Projects3D printingESP8266IoTElectronics

File POSTer

File POSTer thumbnail
Many web applications rely on the upload of files from client to server via a POST request. The content-type of this request is generally multipart/form-data. When developing the server-side of such application, being able to quickly test the upload feature can greatly increase productivity. So, I designed this simple web application that can POST a file to any URL.
VuetifyProjectsWeb

BLE presence detection

BLE presence detection thumbnail
I wanted my home automation system to detect when I arrive home so as to unlock my door automatically or let me know if I leave the apartment without turning the A/C off. I figured my smartphone could be used to achieve this since it is equipped with a vast array of sensors and connectivity options. For example, I could use an app like OwnTracks which would send an MQTT message once I enter a certain perimeter around my apartment. However, constantly monitoring one's GPS location is wasteful in terms of battery life. Another option would be to ping my phone's IP address to check if it is connected to the WiFi, but smartphones can sometimes take a while to connect. So, I decided to use BLE advertising, which does not use too much battery while still remaining constantly active.
ESP32ProjectsIoTBluetooth

API tester

API tester thumbnail
There are multiple tools available for API testing, Postman and Insomnia being probably the most popular. However, those are desktop applications that need to be installed. I wanted a solution that I can use in the browser so I made a simple web application to achieve basic API testing functions.
VuetifyWebProjects

Group and User Pickers

Group and User Pickers thumbnail
With the user management and group management microservices, users and their groups can be easily queried through HTTP requests. However, the GUI that the user interacts with must also be properly designed so as to provide an optimal UX. To facilitate the query of users via the GUI, I designed a group and user picker component for Vue.js that can be easily installed using NPM.
NPMWIPWebProjects