Writings

This is a place where I take notes of the new things I learn. It's quite eclectic, so the tags on the right should help you navigate the content.

Windows Hello PIN - "Something Went Wrong"

I recently had to setup a pin using the "Windows Hello" feature. When following the prompts, I would invariably get an error message saying "Something Went Wrong", without any…

Certificate Based SSH Authentication

I have set up a new home server recently, and I needed to be able to connect to it via SSH. I had done it numerous times in the past but creating the private/key pair, copying the public key to the…

Three Buiding Blocks for Human Belief Systems

I was watching an interview on Youtube called “ Religion Explained through Evolution “. They had a couple of interesting points I had not heard before. What I had heard before was that “religion…

Ubuntu Server Monitoring

I have a small Ubuntu server running at home. I use it as a NAS and to host lightweight applications like a photo gallery tool. Since its resources are quite limited, I would like to know how the RAM…

How To Pick a Laptop?

...Or how to navigate confusing numbers That was it. The battery died after 10 minutes of use only. The screen split after one too many trips to the library. The keyboard never recovered from its…

Watch's parts

So, there are some interesting nuances when it comes to watch manufacturing. It is essentially a spectrum. A website I found ( The Naked Watchmaker ) was referring to it as "T phases". It is…

The future of the watch industry

I recently watched an interview between Teddy Baldassarre and Jean-Claude Biver on YouTube, called The Future of the Watch Industry with Jean-Claude Biver . I really liked the personality of Mr Biver.…

What is watch modding?

I recently stumbled upon the world of watch modding. I have been curious about the world of horology for a long time. Even the concept of time has always been a favorite of mine. I am a big fan of any…

Watch's parts

As I say in my first post, I am very new to the world of watches. Let's go over some vocabulary: The band is also called a strap . The "container" of a watch is called a case . The thicker…

Building a chess game in Go

Context I have tried several time to build the chess logic, and gave up every time. I am very happy to have completed it. I used the most naive data structures and algorithms in this logic, but that's…

WYSIWYG editor for complex web applications

[edit 2026]: I ended up using bootstrap studio for a while not long after writing this article. I built a simple application with it. Overall it is pretty good for simple needs. The appplication I was…

Installing Postgres on Linux Lite (Ubuntu)

I have followed these instructions from the Postgres documentation : # Create the file repository configuration: sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release…

I have finished an MVP!

[edit 2026]: this idea was short lived and is not available anymore... For the longest time I had wanted to create an online service useful enough for people to pay for it. There are different ways to…

Twilio SMS API can't receive...SMS

Careful! I was using the Twilio SMS API for the MVP of Gentle Finance , and I realized too late that Canadian and US numbers can't receive sms from international numbers! Since part of my user base is…

Windows 11, bootable USB device not detected

I recently needed to install a linux server on a new computer. The current operating system was windows 11. I decided to go with Ubuntu server. After following their instructions on how to download…

How to Compile a GTK4 program on Windows (using MSYS)

Hello! I wanted to learn GUI rpogramming in C++. One of the main libraries for this purpose is called wxWidgets. It's very popular and seem powerful enough to make even a complex graphical interface.…

How to Compile a GTK4 program on Windows (using MSYS)

I wanted to create a GUI program using C and GTK. I am using a windows operating system, so I had followed the instructions from the GTK Windows installation page. However, when trying to compile my…

Solution for building errors with Vuejs 3

[edit january 27th 2021]: It seems like Windows Terminal's cd command is not case sensitive. What I think happened is that I probably switched to a directory using the wrong case. This morning I tried…

Fixing x-invalid-end-tag lint error on Vuejs

My situation is: Coding with vue in a Vue file. Using the Vetur plugin in VS code It then generates an error of type x-invalid-end-tag in a quite random fashion. To solve it, I have found one simple…

How to activate the SSH agent on Windows

I had to switch to windows as my main dev environment recently. The npm script I used to run my tests is sligthly different the one on Linux. On Windows, I have to use: { test: "nodemon --ignore…

How to activate the SSH agent on Windows

OpenSSH is available by default on Windows! Make sure that it's available in the additional features menu. Then activate the Open SSH service (it seems to be deactivated by default) use the command…

How to List all the "Normal Users" in Linux

I have started to take some challenges on the website called Try Hack Me . I think it's a great way to be more aware of the potential security flaws of my own applications. Plus let's be honest, it's…

Connecting to MongoDB from WSL2

[edit 2026]: this is a very old post, I don't use windows anymore, I don't know if this still works. My application runs a web server connected to a MongoDB database. For all my development needs, I…

Controlling Nodejs RAM Usage

When starting the node app, use the --max_old_space_size option. This variable is in megabytes. This is more or less controlling how much memory can be used for garbage collection. It is recommended…

Standup - Calendar View of Easy Timetable

In the app I am making, users can specify time slots for their projects. I need some kind of calendar view that would allow for this interaction. I mostly know what I want to do. This user interface…

Filter Documents' Attributes in a Mongoose Query

Sometimes we don't want to display the full object stored in mongo to our user. One way of handling this is to query all the relevant documents, iterate on all of them programmatically and filter out…

Standup - Two Days of Coding Ahead

[edit 2026] The blog mentioned in this post is the one you are currently reading, 6 years later! This week I have finished the first version of a class about how to link redux and Firebase auth using…

Last Resort in Git, Reflog to the Rescue!

I use git regularly, but I am not an expert. Sometimes I want to do something very simple, and I end up executing a chain of command leading me to a point where nothing make sense anymore in my…

Standup - Firebase Authentication, the End?

I am working on the authentication part of my next product. Even if I made some progress, I could not work as much as possible yesterday. I only figured out how to have more than one Firebase project…

Quick Logger Function for Nodejs Projects

I am writing a node app. I needed to centralize my logging system so I can easily manage the logs from one environment to another, and add more features to it. I know there are packages for that, and…

What is JSDoc and Where to Start?

JSDoc is a specific syntax to document your code. There are a few advantages to use it: The documentation is directly where it's useful (in the code). This way, it's also much easier to update when…

How to Change the Local Port in a React Application

By default, when creating a react app with the create-react-app tool, the local server is run on the port 3000. To change it, create a .env file at the root of the project, and type PORT=8080 in it.…

Use the Multi Cursors in the HTML Blogger editor!

The HTML editor of Blogger supports multiple cursors editing! I am pretty new on this platform, and I was not expected this at all. To create multiple cursors on multiple lines, hold Alt, click on the…

How to Enforce Type Validation in a Mongoose Schema

Before running the actual validation functions, mongoose will try to cast the model's value into their type declared in the schema. If the cast operation is successful, then mongoose continues to the…

Three Nodemon Useful Options

Nodemon is a useful tool to react to code changes. I use it all the time when working on Nodejs backend. Here are three useful options I have learnt today: --exec allows one to run non node code. ex:…

How to Progamatically Validate a Mongoose Model Instance

When using built-in validations in a mongoose model, it's possible to trigger a model validation. For example if you received user inputs, and created a new instance of your model, it's possible to…

Empty style.display in CSS

If the value is set to empty string, it just falls back to the css file the class is associated to! So, for example, take a CSS class defined as: .test{ display: block; } If one sets…

Digital Product Categories

A digital product can either: Move data from one point to another. Connect people together. Automate processes. What does yours do?

First Parent of an HTML element

To find the closest parent of a specific HTML type (div, ul, etc...) use the closest method. It takes query selectors as parameters. var closestElement = targetElement.closest(selectors); MDN docs…

Hash Fragment of a URL on the Server Side

The hash fragments of a URL (the part after a #), is never pass to the server! Example: https://example.com/user/12345#profile . If this is sent to a server via axios, the URL will not contain the…