Never! There will be no V4 release of CSS.
Saying it like that sounds a bit strange but don't worry, CSS will keep evolving. We need to understand how versioning works with CSS. To be more accurate, we talk about Levels.
Let's refer to the official Specification:
Cascading Style Sheets does not have versions in the traditional...
Gitlab CICD Pipeline to Deploy your Python Flask API with Postgres on Heroku
Today we will build a Restful API using Python Flask, SQLAlchemy using Postgres as our Database, testing using Python Unittest, a CI/CD Pipeline on Gitlab, and Deployment to Heroku.
Should you be interested in setting up a Custom Gitlab Runner on Your Own Server for Gitlab CI have a look at the embedded post.
Heroku
If you don'...
Introduction
When most people get asked if they know all the loops in JavaScript, the usual answer is 'The while and for loop. I know them all!'. Well, what if I told you that these aren't the only ones. There are five in total JS loops.
In this post we are going to see every one of these loops in action and when you are going t...
Introduction
A lot of people love Linux due to its ease of use, great compatibility with almost any hardware and because it's free and open-source!
Linux is not only powering almost 90% of all cloud infrastructure but more people decide to use Linux over Windows or macOS to power their desktop setups or laptops.
If you're a deve...
Introduction
CamanJS is used for doing (ca)nvas (man)ipulation in JavaScript(JS). It is very easy to extend with new filters and plugins, and it comes with a wide array of image editing functionality, which continues to grow. It's completely library independent and works both in NodeJS and the browser.
Getting Started
Before we...
Tailwind CSS - all you need to know to get started
Tailwind CSS is a relatively new CSS framework that can be easily seen as the next big revolution of the way we style our HTML elements.
Tailwind encourages and facilitates a utility-first approach where you write as few custom styles as possible and use hundreds of small, low-level utility (or helper) classes instead. For this...
Developers are responsible for the consistency and stability of a product. But they can’t accomplish it without testing. In this article, we will learn how to set up the Mocha unit testing framework along with Chai which is an assertion library and write some simple tests.
Getting Started
Let's start by creating our project fold...
In this post I will demonstrate how to send messages to slack using python based on the status of an event.
We will keep it basic, that when something is down or up, it should send a slack message with the status, message, color and embed your grafana dashboard links inside the alert (or any links that you would like).
Create a...
Introduction
As much as I love to use the terminal in order to do my daily tasks in the end I would rather do multiple tasks within one window (GUI) or perform everything from the terminal itself.
In the past, I was using the text editors (vim, nano and etc) in my terminal to edit the code in my repositories and then go along wi...
Did you ever find yourself in a situation where you had a directory full of images and might have potential duplicates? To look through each image and mark duplicates will be a waste of your time, and so, you wanted to automate it with a script. But then, a few hours into it, you are reading some OpenCV documentation and articl...
BASH Script to Summarize Your NGINX and Apache Access Logs
IntroductionOne of the first things that I would usually do in case I notice a high CPU usage on some of my Linux servers would be to check the process list with either top or htop and in case that I notice a lot of Apache or Nginx process I would quickly check my access logs to determine what has caused or is causing the CPU sp...
IntroductionWelcome to part 5 of my Introduction to Ansible blog post series! If you have not read previous parts of the Introduction to Ansible series, you can find them here: - Part 1: Here I cover what Ansible is and how to find your way around the Ansible documentation - Part 2: Here I cover...
IntroductionWelcome to part 4 of my Introduction to Ansible blog post series! If you have not read previous parts of the Introduction to Ansible series, you can find them here: - Part 1: Here I cover what Ansible is and how to find your way around the Ansible documentation - Part 2: Here I cover h...
IntroductionWelcome to part 3 of my Introduction to Ansible blog post series! If you have not read part 1 and part 2 of the Introduction to Ansible series, you can find it here: - Part 1: Here I cover what Ansible is and how to find your way around the Ansible documentation - Part 2: Here I cover how to...
IntroductionWelcome to part 2 of my Introduction to Ansible blog post series! If you have not read part 1 of the Introduction to Ansible series, you can find it here: Part 1: Here I cover what Ansible is and how to find your way around the Ansible documentationIn this post, we will focus on how to in...
IntroductionWhen it comes to automation nowadays Ansible seems to be everyone's choice. By using Ansible you can automate and simplify repetitive and complex tasks and it is easy to get started with compared to other automation tools like Puppet for example.In the next few blog posts, I would try to give a brief Ansible introduc...
IntroductionThe jq command-line tool is is a lightweight and flexible command-line JSON processor. It is great for parsing JSON output in BASH.One of the great things about jq is that it is written in portable C, and it has zero runtime dependencies. All you need to do is to download a single binary or use a package manager...
IntroductionWelcome to part 5 of my Introduction to Docker blog post series! So far we have covered the following: - Part 1: I quickly went through installing docker and what containers are - Part 2: I played with Docker containers a little bit by running a couple of Docker containers &...
Introduction Welcome to part 4 of my Introduction to Docker blog post series! In part 1 I quickly went through installing Docker and what containers are and in part 2 we actually played with Docker containers a little bit by running a couple of Docker containers, in part 3 we went got introduced to the Docker images and som...
IntroductionWelcome to part 3 of my Introduction to Docker blog post series! In part 1 I quickly went through installing Docker and what containers are and in Part 2 we actually played with Docker containers a little bit by running a couple of Docker containers. If you've not read the previous posts I encourage you to do so:Intr...
Sending email from a single line of code inside your Ubuntu server is actually pretty simple. Make sure that you've installed PostFix on your server and then you can simply send out emails with the following command:
IntroductionWelcome to part 2 of my Introduction to Docker blog post series! In part 1 I quickly went through installing docker and what containers are. If you've not read the previous post I encourage you to do so:https://devdojo.com/tutorials/introduction-to-docker-part-1In this post, I'll show you how to start working with co...
IntroductionIt is more likely than not that Docker and containers are going to be part of your IT career in one way or another. In this blog post series I'll cover the following:
The tcpdump command can be used to check for incoming and outgoing TCP traffic on your server. You can check if you have tcpdump installed by running the following command:
Postfix is an open source Mail Transfer Agent which will allow your server to receive emails from a specific address and parse that email as you see fit.
How to install Docker and Docker Compose on Raspberry Pi
IntroductionDocker is the de facto standard to build and share containerized apps - from desktop to the cloud. You can basically run Docker virtually anywhere from your DigitalOcean Droplet or your Laptop, to your Raspberry Pi at home.Raspberry Pi on the other side is a great low cost, credit-card sized computer that plugs into...
How to export/backup a MySQL/MariaDB database with mysqldump
IntroductionThere are many ways and tools on how to export or backup your MySQL databases. In my opinion, mysqldump is a great tool to accomplish this task.The mysqldump tool can be used to dump a database or a collection of databases for backup or transfer to another database server (not necessarily MariaDB or MySQL). The...
Connecting to a MySQL database in NodeJS is actually quite simple. First off, you'll need to make sure you have a local MySQL server on your machine and then you can follow these steps.To start off you'll want to create a new folder, navigate to that folder in a shell prompt, and then install the NodeJS Mysql package:
Timing the functionality in your JavaScript code can help you write more efficient code and it can help you figure out which code is slowing down your application.Luckily JavaScript has a few handy helper functions we can utilize to test the speed of our functionality. These functions are console.time() and console.timeEnd() whi...
IntroductionRecently I had to setup a Docker Web Interface for one of my Docker hosts so that it could be easier for the rest of my team to check the status of our Docker Containers, restart them in case that they needed to and also go through the container logs directly via their browser.After some research, I've noticed that t...