From Development to Production with a Simple Web Game
Mar 03, 2021
The cause, or lack thereof It all started when we, the interns, were tasked with organizing an event for bringing together the employees of the company in an online event while everyone is working from home. In the meetings (over Teams) that ensued, one thing everyone agreed was that we needed the event to be great-not just good. So, naturally, I built a simple web game implementing the classical Spot-the-difference1 game.…
Shipping a Simple Product
Dec 24, 2020
Creating a simple to-do list webapp I've been thinking of creating something big for some time now. While such endeavors are certainly worth to be pursued, a simple to-do list webapp is the latest I came up with–sometimes you need to just build something. Starting out with an official bootstrap boilerplate, I borrowed multiple elements from a couple other projects from mine to kick-start development. First, I structured the HTML layout without much meddling with JS.…
Parallelizing Pi Approximation with OpenMP
Nov 14, 2020
OpenMP vs POSIX threads Both are APIs for shared-memory programming. In C, OpenMP is a relatively high-level extension, providing compiler directives for parallelizing many programs with ease while some low-level thread interactions may be difficult to program. Pthreads provide some low-level coordination constructs that are unavailable in OpenMP, making other programs easier to parallelize while requiring explicit specification of the behavior of each thread, which may virtually be any that is conceivable.…
Rediscovering Simple Imagination
Sep 03, 2020
A Simple Problem I was going through a parallel computing example when I encountered the scenario described here. Consider the analysis of patient MRI (Magnetic Resonance Imaging) scans. Assume that a MRI image is processed in three stages, namely initial, intermediate and final, and each stage of processing takes 7 minutes. In this case, there exists a dependency between each stage. In order to perform intermediate processing on the image, we first need to complete initial processing.…
An Introduction to Parallel Computing
Aug 28, 2020
The Case for Going Parallel Ever since the first computer was invented, humans here wanted to increase the speed of these machines. And whenever we speak on performance of computers, we need to talk about the Moore's Law1. It basically states that the number of transistors we are able to fit on a chip will double roughly every 24 months. Theoretically, this implies that the speed will also double2. At the beginning, about the whole task of increasing performance of computers was left for hardware developers–software developers stayed clear of it for the most part.…
Captcha Can Be Annoying
May 06, 2020
No one likes to be distracted. During the last 24 hours or so I found myself needlessly getting distracted, time and again, while I was just trying to go about getting things done on the web. It was captcha that got in my way, and it was annoying. Automation has become a household word. There are so many of those software robots that are willing to do things for you at the command of a single click.…
Face Detection in a Video with Computer Vision
May 02, 2020
Detecting faces in a video is not much different from analyzing an image for faces. The difference lies in extracting each image frame of the video and processing for detecting faces instead of a single image. However, in many video formats, this process of extraction needs to begin from the starting frame of a video due to the way their encoding algorithms are designed, making each next frame's data dependent on the previous one in timeline.…
Face Detection in an Image with Computer Vision
May 02, 2020
By leveraging the power of existing libraries for computer vision, it is possible to write (apparently) quite simple scripts to automate menial image processing tasks. Following is how we can write a Python script for detecting faces in image files with the OpenCV python wrapper. Installing OpenCV I choose to install OpenCV with pip. Doing it this way is as simple as running the following in your terminal. pip install --user opencv-python The --user switch is for performing a local install for current user account.…
Resize Virtual Disk Image and Expand Linux LVM
May 01, 2020
If you are like me and create virtual machines with only a reasonable virtual disk size to start with (because you can always expand them in the future, right?), it is very much possible you encountering a situation where you want to increase the virtual disk size. And if you run Fedora like me, it is also possible you suddenly finding yourself looking for a way to expand a LVM partition to utilize the gained space once the VDI size is increased.…
Bypassing Auth to Router Config Page in a Tozed M60
Apr 28, 2020
This article is published in good faith for educational purposes, malicious practices are strictly discouraged. The router configuration page of a Tozed M60 is supposed to be accessible only if we log in with valid credentials. However, as we are about to find out, authentication here seems to be optional. Get connected First, we need to connect to the WiFi access point (AP) of the router. Sorry, but I'm not gonna elaborate on this.…