How to use threading.Condition to wait for several Flask-APScheduler one-off jobs to complete execution in your Python 3 application

Previously, I discussed how to use Flask-APScheduler in your Python 3 Flask application to run multiple tasks in parallel, from a single HTTP request.

When we run jobs as discussed in that post, jobs are ran once by the underlying ApScheduler instance. In addition, our Flask endpoint return the HTTP response back to the HTTP client as soon as the jobs are scheduled.

If we do not want the HTTP client to know the outcome of the jobs within that HTTP call, then we are good. But what if we want to include any errors that the jobs encounter in the same HTTP response?

In such a situation, we will need a mechanism to wait for the one-off jobs to complete execution before returning that response.

Given that in mind, this post shows how we can use threading.Condition to wait for several Flask-APScheduler one-off jobs to complete execution.

How to create an interval task that runs periodically within your Python 3 Flask application with Flask-APScheduler

Previously, I talked about how to use Flask-APScheduler in your Python 3 Flask application to run multiple tasks in parallel, from a single HTTP request.

If you wish to run long running tasks triggered by an HTTP request, then that post will help you do so.

However, what if you want to run jobs periodically without blocking your Flask HTTP server from serving HTTP requests?

In this case, you will want to run an interval task with Flask-APScheduler.

Given that, let’s look at how we can use Flask-APScheduler to create an interval task within your Python 3 Flask application.

How to put your Raspberry Pi server on the internet with ngrok

As I had mentioned in how to host multiple websites from home, a typical network architecture looks like the following:
Home network architecture In such a case, we will need our router to hold a public IP address and perform port forwarding for our home servers.

However, there can be cases where we do not have the environment to put our server on the internet.

In such a situation, you will find ngrok useful. Since ngrok accepts traffic on a public address and relays that traffic through to the ngrok process running on your machine, you can put your server on the internet easily.
ngrok demo diagram

Given that, let’s look at how you can put your Raspberry Pi server on the internet with ngrok.

How to setup a Raspberry Pi security camera with motionEyeOS

When you want to turn your unused Raspberry Pi into a security camera, you can take a look at motionEyeOS.

So what is motionEyeOS? In short, motionEyeOS is a Linux distribution that turns your single board computer into a video surveillance system. Therefore, it is convenient to setup a Raspberry Pi security camera with motionEyeOS.

Given these points, let us look at how we can setup a Raspberry Pi security camera with motionEyeOS.

How to fix the issue of YouTube app not able to launch on Samsung Smart TV

After connecting my iPhone to my Samsung Smart TV via Chromecast, I accidentally powered off my TV with the remote.

Since the YouTube app was playing when I accidentally switched off my TV with the remote, something got screwed. When I switched on my TV again and launch the YouTube app again, a black screen showed up perpetually.

In order to have a reference in the future, I document the steps that I took to fix the issue.

How to setup a Raspberry Pi security camera for home surveillance with Raspbian Buster Lite and motionEye

Even though a Raspberry Pi security camera is not the cheapest surveillance camera, it can be worthwhile building one.

Especially for Raspberry Pi fans, you may have several unused Raspberry Pis because you buy one for each release. In such a case, a big part of your Raspberry Pi security camera is sunken cost.

Given that, let’s look at how we can setup a Raspberry Pi security camera with Raspbian Buster Lite and motionEye.

How to setup MicroPython WebREPL on your ESP32 development board

When I wrote about setting up MicroPython on an ESP development board, I came across the WebREPL.

If you setup MicroPython WebREPL on your ESP32 board, then you can interact with your ESP32 board wirelessly.

In case you need it, this is how to setup MicroPython WebREPL on your ESP32 development board.