Articles
Mongoose bulk update upsert
MongoDB's upsert option enables the creation of a new document if the query of an update operationdoesn't match any existing document. Basically, an update command with upsert creates a document if it does notexist already, and update it otherwise.
Docker restart container when docker restarts
Simply add the following flag when using docker run
Gitlab CI commands for TF serving
This is an example .gitlab-ci.yml file which can be used to containerize and deploy a tensorflow model
Kubectl create deplpoyment and service at same time
Simply add entries for both the deployment and the service in the same manifest, separeted by ---
Serving a Keras model using Tensorflow serving and Docker
A Keras model can be created in various ways, for example using the <a href="https://keras.io/getting-started/sequential-model-guide/" rel="noopener noreferrer nofollow">sequential model</a>:
Arduino button debounce function
Physical buttons and switches do not switch between open and close position instantly and perfectly. Instead, they have a tendency to "bounce" between the two states before settling on one. This issue is thoroughly described in circuitdigest's excellent article. Consequently, when using such components with, for example, an Arduino microcontroller, a proper debouncing algorithm must be implemented.
Mongoose bulkWrite upsert
Here is a code snippet for a bulk update with upsert using Mongoose:
Controlling a motor using an H bridge
A DC motor model can be as simple as: T = K * I where T is the torque provided by the motor, K the motor constant and I the current that flows through it. From this simple model, one can see that if the sign of the current changes, that of the torque also changes. Thus, changing the direction of rotation of a DC motor is a simple as reverting flow into it.
Sending pictures via http with an ESP32-CAM
Pictures taken with the ESP32-CAM can be sent in a multipart/form-data type content via HTTP. Here is a sample code to achieve this:
GitLab CI
GitLab CI is a feature of GitLab that allows users to have actions triggered upon pushing a repository to it's remote. For example, it can be used to execute all tests defined in the code, containerize the application and deploy it. A popular alternative to GitLab CI is Jenkins.