Quick Access to my selection Last Update: 2022-10-24 09:36:42 Ireland Time / 2022-10-24 01:36:42 PDT-0700 Unix epoch: 1666600602
Cloud Computing Operations Engineering/DevOps/SRE Engineering My Books
Provisioning AWS EC2 Instances with Ansible and Automating Apache deployment with or without using Ansible Dynamic Inventory from Ubuntu 20.04 LTS
Using Ansible in Ubuntu 20.04 LTS to provision to Amazon, and use the Dynamic Inventory (or my own Python 3 code, and alternative Bash code) to create different inventories per group, so you can provision Apache2 in your desired group of instances only.
Published: 2021-Dec Views: 10,002 views
Migrating my 11 years Amazon AWS account services (Postmortem Analysis)
Why I migrated my Services out of Amazon AWS, how I did, the problems I had and the mistakes I did.
Published: 2021-Nov Views: 9,358 views
Upgrading Amazon AWS EC2 Ubuntu 18.04 LTS to Ubuntu 20.04 LTS
Upgrading Amazon EC2 Instance with LAMP from Ubuntu Linux 18.04 LTS to version 20.04 LTS.
Published: 2021-June Views: 7,132 views
How to recover access to your Amazon AWS EC2 instance if you loss your Private Key for SSH
Procedure to get access to an Amazon AWS EC2 Instance and its Data, after you have lost your SSH Private Key and access to the instances using that Key pair.
Published: 2020-Sept Views: 12,874 views
Benchmarking Google Cloud Compute Engine (2015)
The analysis I did from Google Compute Engine, in my project CMIPS, when google launched their GCE in beta.
Paul Nash wrote me and I helped all the Cloud Team to fix some problems. :)
This analysis is a bit old however contains some interesting information.
Published: 2015-Jan
Comparison of Cloud Provider’s Instances performance
From my CMIPS (Cloud Million Instructions per second) a performance comparison of different Instances, from different Cloud Providers, compared to bare metal as well.
Is old, from 2015, however brings very valuable information.
Published: 2015-Jan

The Cloud is for Scaling
The Cloud is for Startups, and for Scaling and for Enterprises. Nothing more. Published: 2013-Sept Views: 19,089 views
Creating a RabbitMQ Docker Container accessed with Python and pika
Published: 2022-July Views: 10,942 views
How to deploy a DigitalOcean droplet (instance) and use userdata
Published: 2022-June Views: 8,038 views
Renewing a SSL Certificate for Apache2 in Ubuntu 20.04
Published: 2022-Mar Views: 12,097 views
Linux Command Line tools I usually install (if they are not on the system)
Published: 2016-March Views: 22,596 views

Troubleshooting upgrading and loading a ZFS module in RHEL7.4
Published: 2018-July Views: 22,433 views
A sample forensic post mortem for a iSCSI Initiator (client) that had connectivity problems to the Server (Troubleshooting)
Published: 2019-August Views: 14,117 views
Creating a content filter for Postfix in PHP
Published: 2016-June Views: 35,405 views
Stopping definitively the massive Distributed DoS attack
Published: 2015-Feb Views: 46,890 views
Stopping and investigating a DoS XMLRPC attack
Published: 2014-August Views: 164,448 views
Stopping a BitTorrent DDoS attack
Published: 2015-January Views: 105,893 views
Dropping caches in Linux, to check if memory is actually being used
Published: 2019-April Views: 9,526 views
Troubleshooting a shell prompt irresponsible/that locks intermittently
Published: 2020-April Views: 10,976 views
Post-Mortem: The mystery of the duplicated Transactions into an e-Commerce
Published: 2020-Nov Views: 11,351 views
Adding a swapfile on the fly as a temporary solution for a Server with few memory
Published: 2020-Nov Views: 8,419 views
Swap, swappiness, Servers not responding
Published: 2021-May Views: 9,884 views
Erasure Code
My project for infinite Storage scaling with no single point of failure, based on Erasure Codes.

Published: 2022-May Views: 10,163 views
Troubleshooting apps in Linux
Published: 2013-November Views: 10,015 views
Performance of Several Languages
Published: 2014-Oct Views: 208,669 views
CSort Multithread versus Quicksort (Java)
Published: 2017-March Views: 30,203 views
CSort my algorithm that heavily beats Quicksort (Java)
Published: 2015-May Views: 23,592 views
Buy my books:
Python 3 Combat Guide
Pages: 403 DIN-A4 PDF DRM-free
Accompanying Source Code: https://gitlab.com/carles.mateo/python_combat_guide
Last Update: v.1.08 2022-05-11

Automating and Provisioning to Amazon Web Services (AWS) with boto3 SDK for Python (plus some Ansible)
Pages: 128 Full Size DIN-A4 PDF DRM-free
Last Update: v.16 2022-01-16

Docker Combat Guide
Learn Docker, focused on Developers, and Docker’s Python 3 SDK
Pages: 178 DIN-A4 PDF DRM-free
Last Update: v.25 2022-07-03

Assemble and upgrade your PC and laptops
Pages: 107 DIN-A4 PDF DRM-free
Last Update: v.0.17 2021-01-11

ZFS on Ubuntu 20.04 LTS
Pages: 159 DIN-A4 PDF DRM-free
Covers ZFS 0.8.3 version. Shows tricks, fix errors, secrets and commands against real systems with LSI Controllers, SAS SLOG ZIL devices, SATA, SSD…
Last Update: v.0.25 2022-02-07

Python 3 Exercises for Beginners
Pages: 200 DIN-A4 PDF DRM-free
Exercises for people starting coding in Python, explaining the solution, tricks, etc…
Last Update: v.48 2022-03-15
Python Open Source Utilities Python PHP Java
CTOP.py SysAdmin tool to get all the System Information at a glance
Published: 2020-Jan Views: 19,672 views
Current Version: 0.8.8 Last Update: 2022-02-13

Simple sample to print colors in Terminal
Published: 2018-May Views: 18,396 views

LDAPGUI.py a simple Python GUI application that queries LDAP
Published: 2020-Jun Views: 13,784 views

cmemgzip.py compress logs (and any file) in memory and replace uncompressed files by .gz when drive has no space left. Supports compressing by blogs to use less memory
Published: 2021-Feb Views: 10,446 views

checkswap.py Monitor the impact of swap memory pages on a live system. Compatible with Python 2.x and 3.x
Published: 2021-May Views: 9,884 views

Carleslibs v. 1.0.8 (2022-06-05) Python Open Source package.
Published: 2021-July (Updated 2022-February)Views: 10,842 views

Cliptype is a utility to paste the Clipboard into the focussed Windows. Ideal for working with Web SSH Terminal clients/QEMU/KVM that don’t support paste
Published: 2021-NovemberViews: 38,934 views
Video: Object Oriented Programming in Python 3 for beginners
Published: 2022-July Views: 6,384 views
For beginners: How to start coding Python with PyCharm and Git
Published: 2022-March Views: 8,323 views
Lesson 0, learning to code in Python for non programmers
Published: 2020-March Views: 13,490 views
Video for beginners: Python for, range, lists, dicts
Published: 2021 July Views: 8,145 views
Programming class for beginners on 2021-11-11.
Published: 2021-November Views: 7,945 views

Sorting an Array of Tuples with Lambda in Python (videos)
Published: 2022-May Views: 6,536 views
Learn to do Unit Testing with pytest in Python 3.
Published: 2021-October Views: 8,228 views

Video: Parse the Tables from a Website with Python pandas
Published: 2022-July Views: 6,651 views
A handy trick command line to get the usages of our Python Methods in the code
Published: 2019-July Views: 11,052 views
A small Python + MySql + Docker program as a sample (plus LAMP PHP sample).
Published: 2021-July Views: 19,516 views

A simple Flask Application, a Star Wars game in Python and Docker.
Published: 2021-July Views: 8,339 views

A simple Python Tic Tac Toe game.
Published: 2021-September Views: 8,451 views

Some weird things from Python 3 that you may not know.
Published: 2021-September Views: 9,414 views

Generating a Word Cloud of Tags in Python.
Published: 2021-September Views: 8,004 views

Some graphics with matplotlib.
Published: 2021-October Views: 7,386 views

Web Top – Displaying top with Python 3 Web Server and carleslibs.
Published: 2021-October Views: 8,918 views

Why I think in Python is not a good idea to raise exceptions inside your methods
Published: 2022-May Views: 6,916 views
A Sudoku Solver in Python, an engineering approach solution (with Source Code)
Published: 2022-April Views: 8,732 views
MT Notation prefix variables system for Python
Last Update: 2021-07-15 Views: 14,535 views
My PHP Script to see WordPress Posts and Views ordered by Views
Published: 2021-August Views: 11,550 views
Improving performance in PHP
Published: 2014-August Views: 41,421 views
Catalonia Framework PHP Open Source

MT Notation prefix variables system for PHP
From: 2014-July Last Update: 2021-07-15 Views: 13,871 views
Java validation Classes for Keyboard
Published: 2020-Dec Views: 35,086 views
MT Notation prefix variables system for Java
From: 2017-March Views: 12,353 views
Docker Commodity Hardware ZFS Architecture
Communicating with Docker Containers via Linux Signals and Python
Published: 2021-Nov Views: 9,426 views
Refreshing settings in a Docker immutable image with Python and Flask
Published: 2020-May Views: 11,196 views
In March 2021, Why I propose you to use Python 3.8, at least, for your Internal Automation Tools in Docker Containers and Ubuntu 20.04 LTS Published: 2021-March Views: 9,199 views
Solving the problem when running a Docker Container: standard_init_linux.go:190: exec user process caused “no such file or directory” Published: 2021-March Views: 13,560 views
Adding my Server as Docker, with PHP Catalonia Framework, explained
Published: 2019-July Views: 13,778 views
A base Dockerfile for my Jenkins (home) deployments
Published: 2021-March Views: 10,027 views
Install jenkins on Docker Ubuntu 20.04 LTS with Blue Ocean pipeline plugin and persistent Volumes in 4 minutes
Published: 2022-June Views: 9,414 views
Migrating some Services from Amazon AWS EC2 to Digital Ocean, using Docker
Published: 2021-Aug Views: 8,518 views
Have a cheap Ubuntu in your Windows or Mac with Docker
Published: 2021-September Views: 8,361 views
Video: How to create a Docker Container for Linux Apache MySQL PHP Python (LAMPP) step by step
Published: 2022-July Views: 6,354 views
Dealing with Performance degradation on ZFS (DRAID) Rebuilds when migrating from a single processor to a multiprocessor platform (Troubleshooting explained)
Published: 2019-June Views: 13,071 views
Solving a persistent MDRAID and ZFS problem in RHEL7.4 (Dual Port SAS drives)
Published: 2018-Oct Views: 12,069 views
Simulating a SAS physical pull out of a drive
Published: 2019-March Views: 11,575 views
Create a small partition on the drives for tests
Published: 2019-April Views: 11,627 views
zpool_watch is an Open Source Python 3 utility that watches your ZFS Pools and open a window in your Linux if there is a problem
Published: 2022-February Views: 7,044 views
Adding a RAMDISK as SLOG ZIL to ZFS
Published: 2020-August Views: 21,949 views
Some handy tricks for working with ZFS
Published: 2019-June Views: 13,354 views
ZFS Improving iSCSI for Block Devices (trick for Volumes)
Published: 2018-Oct Views: 31,602 views
Creating a compressed filesystem with Linux and ZFS
Published: 2018-Sept Views: 16,145 views
Compiling ZFS with RHEL6.10
Published: 2019-August Views: 11,211 views
My talk at OpenZFS 2018 about DRAID (San Francisco, US) Published: 2018-Sept Views: 13,783 views
Extend existing Single ZFS disk with a mirror without losing the Data on the existing drive
Published: 2021-Jan Views: 13,490 views
Resources for Microservices and Business Domain Solutions for the Cloud Architect / Microservices Architect
Published: 2019-Oct Views: 11,836 views
Scaling PhantomJS with PHP
Published: 2015-June Views: 30,839 views
Improving Performance in PHP (Stack and tricks)
Published: 2014-August Views: 41,421 views
Begin developing in Cassandra in Java, PHP or Python
Published: 2014-July Views: 19,412 views
Windows Raspberry Pi Cassandra Relational Databases
Using Docker in Windows 10 without Windows Desktop with Docker Engine and without WSL
Published: 2021-Feb Views: 17,295 views
Solving Windows 10 PRO running Active Directory as Domain Admin
Published: 2021-Jan Views: 8,393 views
Install Windows Subsystem for Linux, WSL 2 on Windows 10 64 bit, with Ubuntu, solution to error WslRegisterDistribution failed with error: 0x80070057
Published: 2021-Jan Views: 42,494 views
Programs I use for Windows in my Workstations
Published: 2019-Sept Views: 9,785 views
Using Windows 10 Appliance in Ubuntu Virtual Box 4.3.10 and later versions
Published: 2015-August Views: 43,551 views
Reinstall PIP only in Windows 10 after it got removed
Published: 2021-March Views: 10,472 views
Install a Media Player on the Raspberry Pi 4
Published: 2020-March Views: 9,811 views
Raspberry Pi 3 and OMSC Media Player
Published: 2015-April Views: 21,149 views
Solving the problem GPIO.setup(self.number, GPIO.IN, self.GPIO_PULL_UPS[self._pull]) RuntimeError: Not running on a RPi! in Ubuntu 20.04LTS
Published: 2021-Feb Views: 13,803 views
CQLSÍ a wrapper to use Cassandra from PHP
Written in 2014, a time when there were no drivers for PHP.
Published: 2014 Views: 7,899 views
Cassandra Universal Driver
A HTTP gateway for all the languages supporting curl/sockets. Written in 2014, a time when there were no drivers for many languages.
Published: 2014 Views: 8,128 views
Solving Oracle error ORA 600 [KGL-heap-size-exceeded]
Published: 2021-Febreruary Views: 30,499 views
Bash Open Source Utilities Bash My Tech Talks Miscellaneous
count_repeated_pattern_in_logs.sh
A easy way to see errors that are repeating, e.g.: NFS/iSCSI timeouts.
Published: 2020-May Views: 11,990 views
backup_partition_in_files.sh
Compressing an unmounted partition to a image file while compressing on the fly, and breaking into 1GB gz files.
Also explains in a funny way about STDIN, STDOUT, STDERR and methodology investigating in deep.
Published: 2020-May Views: 12,867 views
iostat_bandwidth.sh
See the aggregated bandwidth used by all the drives, and the maximum speed achieved.
Published: 2020-Aug Views: 11,022 views
count_lines_of_code.sh
Count the lines in .py Python source files recursively and displays individual and total results.
Published: 2021-Jan Views: 11,323 views
One line script to log the temperature of HDDs and CPUs in Ubuntu
Published: 2021-Jan Views: 10,082 views
compress_old.sh A simple Bash script to compress files in a directory, older than n days
You can use it to delete older files, or perform other commands.
Published: 2021-March Views: 10,338 views
A simple script to upload a pypi/pip package
Is what I use to maintain packages like cmemgzip, carleslibs, etc…
Published: 2021-March Views: 8,507 views
Backup and Restore your Ubuntu Linux Workstations – with support for Wine and Docker
Published: 2022-October Views: 6,931 views
My talk at OpenZFS 2018 about DRAID (San Francisco, US)

Published: 2018-Sept Views: 13,783 views
Google Compute Engine Talk for Group Google Developers Cork, Ireland

How to do autoscaling from 0 using Google Cloud.
Published: 2019-Feb Views: 11,613 views
How is: Working in Cork for IT Engineers
Published: 2020-Feb Views: 12,486 views

A mistake that all the universities are doing
Published: 2018-Jun Views: 14,452 views

Some advice for WFH (Working from Home/Remotely)
Published: 2020-May Views: 16,354 views

My radio program at RAB 2022-06-27 [Catalan and English]
Published: 2022-June Views: 2,286 views

News from the Blog 2022-06-22
Published: 2022-June Views: 6,296 views

News from the Blog 2022-05-22
Published: 2022-May Views: 5,958 views

News from the Blog 2022-04-22
Published: 2022-April Views: 6,636 views

News from the Blog 2022-03-22
Published: 2022-March Views: 7,034 views

News from the Blog 2022-02-22
Published: 2022-February Views: 7,368 views

Old News:

Hands on creating a book store with Claude, for beginners, showing errors generated and fixing them easily

Claude AI hands on creating a Book e-Commerce and fixing errors, PHPStorm, PHP, Docker Desktop, MySQL in Windows

I’ll show the process of a creation of a web application for a e-Commerce book store.

The most important is to define a good requirements prompt.
I created a file named docs/promptia.md

Set the quality to the max in youtube to be able to see the screen clearly.

It takes long time, so unless you want to see all the process in real time, use the chapters I added to skip to the parts you’re interested.

Chapters in the youtube video:

00:00 Tell Claude to create a web app based on docs/promptia.md
18:29 Claude asks permission to run Powershell commands
19:02 Application created
19:37 Check in PHPStorm the promptia.md
19:51 Add to git and Commit with PHPStorm
20:27 Create and launch containers
20:50 Create the containers
20:54 Launch containers
21:10 Show in Docker Desktop
21:23 Display in logs entrypoint.sh
22:04 composer install
22:19 Error: missing composer require symfony/yaml
22:32 Asking Claude to fix the error
23:50 Destroy project to ensure it is build without errors (for later in Production)
24:28 Create destroy-project.bat
25:42 Re-creating the containers
25:52 Re-creating without cache
29:20 Containers launched in Docker Desktop
30:10 composer update
30:28 Checking engine container error in a .yaml in Claude Code
31:13 Error non-existent service “doctrine system cache pool”
31:34 Inside the engine container curl http://127.0.0.1 Http Error 500
31:44 composer dump-env dev
31:57 Error a non-empty secret is required Http Error 500
32:14 Showing Claude the error, so it fixes it
33:12 Check from the engine container curl http://127.0.0.1
33:42 Error could not find the driver
33:51 Asking Claud to fix the error
34:05 Finding the error in the logs
34:27 I ask Claude, to continue with the log entry, after it finishes
35:16 Claude fixes the first problem and starts analyzing the second
35:35 Claude finds and fixes the second problem (introduced by Claude before)
37:12 Creating the Database with the Command
37:32 A new curl, and a new error found (introduced by Claude before)
37:58 Requesting to Claude to fix the error
38:25 Claude fixes the error
38:30 The new website loads correctly
39:00 Viewing register form (needs work)
39:05 Request a script to enter to mysql via CLI
40:02 I open the new script login_to_mysql.sh in PHPStorm
40:23 Trying the CLI Command to init the Database Schema
40:39 Giving chmod +x from Docker (for commiting to the repo)
40:45 login_to_mysql.sh fails (due an error introduced by Claude before)
40:58 finding extension=pdo_mysql in php.ini on the container duplicated
41:10 Asking Claude to remove the error
41:37 Claude realizes the error
41:45 Logged to MySQL with the script
42:05 DESC orders;
42:18 Asking Claude a refactor or prices from DECIMAL to Integers
43:53 Ask next questions while Claude is still working
46:56 Update the Command to reflect the new field changes
48:00 Copy the ALTER TABLE
48:05 Execute in the MySQL in Docker Desktop
48:12 Schema updated in docs/scheme.md
48:18 Add a field “public_name”
48:58 Update MySQL with the ALTER

My very first time installing Claude Code and using it

I install Claude Code for the very first time, I use a voucher provided from a friend to use it 7 days for free with the USD $18 / month, although there is a Free Subscription you can use.

I donwload and install it on Windows 11 and I start to used it immediately with an incipient Symfony PHP Docker nginx Linux project.

I show you how I combine it with PHPStorm, how I use the Working Tree and the Pull Request (PR) and the problems I find when I request functionalities.

Video showing how to start with JetBrain’s Junie IA agent

A video as an introduction to Junie, showing the creation of a web project from zero, with Junie IA agent.

The subscription I used is $20 USD per month.

A Symfony 7.4 with PHP 8.5 in a Docker Container with Ubuntu 26.04 LTS is requested.

Junie creates the solution with Ubuntu 24.04 LTS and Symfony 7.1 and PHP 8.3, so I instruct it to fix it.

The video shows some errors created by the agent, and how to make it correct them.

Showing the exploting Copy Fail CVE-2026-31431 in an Ubuntu 24.04 just launched in Google Cloud, and how to fix it

So I show here how I launched a fresh Ubuntu 24.04 in Google Cloud, on 2026-05-04, and demostrate the exploit of escalation privileges Copy Fail (CVE-2026-31431) which allows you to become root from a regular user account in almost any Linux since year 2017.

It consists in the execution of a Python 3 code, which is only 732 bytes.

I show how I fixed it by upgrading the kernel and rebooting.

Here you can see the original tweet I saw: https://x.com/DarkWebInformer/status/2049579219190165658?s=20

And access the code: https://github.com/theori-io/copy-fail-CVE-2026-31431

I also tried on a fresh deployed Ubuntu 26.04 LTS and it was not affected by the exploit.

Vibe coding with Google Antigravity, new features, to a project, in real time

This video shows real example of my workflow, in real time, on how I programmed with Google Antigravity some new features, like adding discount coupons, for my commercial web project for quickly audio conversion https://audioconverter.carlesmateo.com/

I show some problems when working with Gemini 3 Flash, and how I instructed the IA to fix them.

Resizing the disk of your Ubuntu Server in Google Cloud GCP without rebooting

If you are running your instances in Google Gloud Compute Engine and you want to increase the size of the Disk without having to reboot, this video explains step by step how you can do it.

Go to Disks in GCP, select the disk of the instance you want to increase, then press Edit.

After you increase the Disk in Google Cloud Dashboard, then ssh to you instance.

There type:

lsblk

in order to list the devices.

In my case is sda and I want to grow the partition 1.

So I proceed with:

sudo growpart /dev/sda 1

Which growing from 30GB to 40GB produces the output:

CHANGED: partition=1 start=2324480 old: size=60590047 end=62914526 new: size=81561567 end=83886046

Is you type lsblk again you’ll see the new size.

But if you type df -h you’ll see that Linux still doesn’t see the space.

To finalize and claim the additional space execute (in my case is sda1):

sudo resize2fs /dev/sda1