Articles
Rebuilding the Odroid XU4 server
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
LINE Bot
<p>LINE offers an API to developers looking into creating chat bots. I created my own so that I could send myself notifications.</p>
Vanilla javascript neural network
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.
Countries tracker
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.
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:
IoT heater controller
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.
File POSTer
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.
BLE presence detection
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.
API tester
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.
Group and User Pickers
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.