Creating a user in MySQL or MariaDB and granting permissions to him to access a specific database and be able to write data on it is a very usual task that is necessary to perform each time you install a new application based on any of these database engines, like web applications running on top of LAMP stack. Whether it is a simple WordPress, or a more complex application tailor made, one way or another you will always have to complete these steps at some point before its deployment.
DanielHow to create a user in MySQL/MariaDB and grant permissions on a specific database
One of the most targeted goals when optimizing a website for page load speed is to get a good score on Google PageSpeed Insights test. But it is not enough to work hard on optimization, achieve a good score and go to sleep. It is essential to periodically monitor score changes as a website evolves and undergoes changes over time which affect this metric.
Here’s a little script that will allow you to automatically track Google PageSpeed Insight score and be alerted if it falls below a custom value.
DanielScript to automatically monitor website Google PageSpeed Insights score
When we completely fill up an ext4 filesystem mounted on a partition hosted in an EBS volume of Amazon Web Services and we can not do anything to free space because we do not want to lose any of the stored data, the only solution is to grow up the volume and extend the associated partition up to 100% of its capacity to obtain free space again.
DanielHow to enlarge the size of an EBS volume in AWS and extend an ext4 partition
Through the following instructions you can easily get a permanent access_token to automatically connect your applications to a Facebook page and be able to obtain for example your number of followers periodically, get new likes or comments in real time, publish new entries in the timeline, or any of the possibilities offered by the Facebook Pages API.
DanielHow to get a permanent token to access a Facebook page
This was a very interesting project related to the automotive business in which I led a technical team of 4 people in the design and development of a complete software intended for conducting live car auctions both onsite and online in a large industrial building especially conditioned for this kind of events. Unfortunately, despite the beauty of the project and being a startup with great potential and highly talented team of almost 20 people, the application could not finally be used in a real scenario because the company wound up before it could actually start due to various commercial and management issues.
However, at the technical level the application was implemented and deployed completely, fulfilling very satisfactorily the requirements and objectives initially set out. Our application was mainly inspired by the BCA and Autorola car auction softwares, and also others like CarsOnTheWeb, Manheim, EurocarBid, Subastacar, Subasto mi Coche, etc. I humbly believe that we managed to improve them in several ways.
DanielWeb application for live onsite and online car auctions
The CPU average load value is a very important metric to understand the behavior of a Linux system, and especially its current and recent past status. Many times there is confusion between this term and percentage of CPU usage, but differences are important. In this article I will try to explain the true meaning of both and how to tell if a Linux box is overloaded or underutilized.
DanielWhat is the true meaning of system average load and CPU utilization in Linux?
I am a strong supporter of simplicity and the principle that less is more, but as far as security and performance of information systems is concerned, we must be able to strike a balance between keeping things simple and exposing ourselves as little as possible to potential threats while trying to obtain the maximum performance of all system elements involved.
It is a common practice that the various distributions of Linux, and even the images used to launch Linux virtual server instances as in the case of AWS AMI’s, implement by default an extremely simple partitioning scheme consisting in a single partition that covers the entire disk. It is in this only partition where the root filesystem (/) is mounted and in which all the directories that configure the file hierarchy of a Linux operating system are placed.
But one of the features of Linux is precisely that it allows you to be highly flexible in placing each of these directories on different partitions or on different disks if necessary.
DanielThe importance of properly partitioning a disk in Linux
When we try to know a computer’s architecture and performance at CPU level using Linux commands like nproc or lscpu, we often find out that we are not able to properly interpret their results because we confuse terms such as physical CPU, logical CPU, virtual CPU, core, thread, socket, etc. If we add concepts like HyperThreading (not to be confused with multithreading), we are in a situation where we can not be sure how many cores our box has, we don’t understand why commands like htop indicate that we have 8 cpus when we thought we had bought a single quad-core processor, etc. In short, it’s a mess.
DanielDifferences between physical CPU vs logical CPU vs Core vs Thread vs Socket