Mostly work related stuff which I would've entered into my "Log book". Instead of hosting it on an intranet site, outsourcing the hosting to blogger!
Wednesday, April 30, 2025
development for Android / iOS - preliminaries
Tuesday, April 29, 2025
info about various ARM platforms
https://www.baeldung.com/linux/arm64-armel-armhf-overview
So, arm64 is sometimes referred to as aarch64. But the github arm64 appimage builds are not compatible with Ubuntu on raspberry pi 4 etc, maybe because of library differences, since the github runners are Ubuntu 24.04.
Monday, April 28, 2025
simple logger created by chatgpt
moving Virtualbox VMs to external drive
VirtualBox Manager
> Right-click on the VM
> Select "Move"
> Choose the new location and click "Move"
(Tho' the progress bar doesn't seem to work, it moved the VM and associated files to the external drive in approx the usual time it would take for a 12 GB file move.)
Sunday, April 27, 2025
OCVWarp AppImage won't run on Raspberry Pi
(a) /tmp not allowing executable permissions
(b) the ld-linux-aarch64.so not having executable permissions
)
Google's "free to try" AI Studio
Refining my prompt, changed it to "Generate a VR360 equirectangular video of sunset over a beach" which resulted in this:
Geekbench scores - Android phone, iPad, laptop, desktop, Raspberry Pi
Saturday, April 26, 2025
Ubuntu using userland on Android
Wednesday, April 23, 2025
airtel's horrendous "AI" customer service
I was trying to recharge another prepaid Airtel number with "international roaming plan 2997" for 365 day validity.
Tried with Airtel thanks app from my Airtel mobile - failed.
Tried from website - failed.
Tried calling customer care - they said try going to a shop.
Tried from shop - failed.
Tried sending them an email to 121@in.airtel.com - "We noticed that you're contacting us from an email ID that isn't linked to your Airtel account.
You shall write back to us from your registered ID or reach out to airtel thanksapp get instant support 24x7 right from the help and support section."
The help and support section is a chatbot. There didn't seem to be any option to contact a human being.
Finally, I thought maybe trying from the Airtel app on the actual prepaid account for which Intl. Roaming was needed - success. Edit - half an hour later, that transaction was reversed, too!
Airtel's own customer service people did not know this, the shop guys (tried two different shops) did not know this, it is not mentioned anywhere that these intl. roaming plans need to be bought from the phone which is actually going to roam!
UTM for OpenSpace on iOS / MacOS
Tuesday, April 22, 2025
cloudflare plugin for certbot
Found this option,
--dns-cloudflare Obtain certificates using a DNS TXT record (if you are using Cloudflare for DNS). (default: False)
from
https://eff-certbot.readthedocs.io/en/stable/man/certbot.html
And documentation for this plugin is at
https://certbot-dns-cloudflare.readthedocs.io/en/stable/index.html
(example invocation at end)
and how to install plugin is
sudo apt-get -y install python3-certbot-dns-cloudflare
https://installati.one/install-python3-certbot-dns-cloudflare-ubuntu-20-04/
Monday, April 21, 2025
automating backup with python - rclone and google drive
Sunday, April 20, 2025
migrating web servers and associated scripts using rclone copy
As mentioned in the previous post, our server migration involved consolidating a web server into a DB server - we chose this method, since cloning the DB server was quick, while export followed by import of MySQL databases takes quite a bit longer as noted in the earlier 2024 migration post.
Copied the ssh private key for the destination server to the source server, and created an rclone remote using SFTP to the destination server.
zip -r -q webserver1.zip /path/to/webserver/files
(repeated this for all the web server directories later)
rclone copy webserver1.zip rcloneremote:/home/azureuser
(repeated this for all the other zip files later)
From the destination server,
unzip webserver1.zip
cd path/to/webserver/
sudo mv files /path/to/webserver
cd /path/to/webserver
sudo chown -R azureuser:www-data .
sudo chmod -R 775 .
----------------------------------------------
Then, the apache config files -
sudo zip -r -q etcapache.zip /etc/apache2
(rclone copy etc, and change ownership to root)
and the letsencrypt certificates etc,
sudo zip -r -q etclets.zip /etc/letsencrypt
(rclone copy etc, and change ownership to www-data for the file/directory which it needs, and the others to root)
-----------------------------------------------
With these, the files to be copied for the web servers were done. And I could start them up -
sudo a2ensite webserver1
sudo systemctl reload apache2
etc.
Also needed were
- installing all the necessary apache and php modules - which I had done earlier using the steps at the 2024 migration post.
- installing restic for backups as per the backups section of that post.
- rclone copy, individually, for the .sh backup scripts and the notifier directory.
- Copy-pasting lines from .config/rclone/rclone.config as noted in the restic backup script - the rclone config was modified by copy pasting the extra remotes from source to destination.
- Copy-pasting cron jobs from both crontab -e and sudo crontab -e
- Setting up postfix with gmail smtp as mentioned at this post for which
sudo apt remove ssmtp
sudo apt install mailutils postfix
and then editing the conf files was required.
sudo nano /etc/cron.d/awstats
Solution was to install ghostscript,
sudo apt install ghostscript
--------------------------------------------------------
Then the php max_file_upload also had to be modified according to this earlier post, https://hnsws.blogspot.com/2021/03/some-post-install-changes-needed-for.html
sudo nano /etc/php/8.3/apache2/php.ini
( Ctrl+w to find and change post_max_size
Ctrl+w to find and change upload_max_filesize
Ctrl+w to find and change max_execution_time - set to 600 for now.)
sudo systemctl restart apache2
and also did the same for /etc/php/8.3/cli/php.ini
-----------------------------------------------------------
When upgrading a plugin, a warning was shown that php extension soap was not installed, and that update will continue only after it is installed. So,
sudo apt install php-soap
-------------------------------------------------------------
Edit - a few days later -
https://linuxize.com/post/how-to-change-hostname-on-ubuntu-22-04/
sudo hostnamectl
sudo hostnamectl set-hostname our-desired-hostname
-------------------------------------------------------------
Then, a warning while updating a plugin - max_input_vars must be at least 5000
sudo nano /etc/php/8.3/apache2/php.ini
sudo nano /etc/php/8.3/cli/php.ini
sudo systemctl restart apache2
-------------------------------------------------------------
migrating Azure VM from one tenant to another
https://medium.com/@morsi.masmoudi/complete-guide-to-cloning-and-moving-a-vm-from-one-azure-tenant-to-another-8fa65dd6955a
sudo -u www-data /usr/bin/php admin/cli/maintenance.php --enable
- verified that this does stop the cron also, which would otherwise hit the database every minute.
azcopy copy mydisksnapshot.vhd "https://blob-storage-url" will work, but takes double the time - azcopy works fine directly from snapshot url to blob storage url. Caveat is that we must make a container first, and then use azcopy copy.)
Saturday, April 19, 2025
clearing up after docker
Via https://stackoverflow.com/questions/76833923/safe-way-to-clean-var-lib-docker
/var/lib/docker was using up 16 GB.
sudo docker system prune --all --volumes
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all anonymous volumes not used by at least one container
- all images without at least one container associated to them
- all build cache
installed an alarm applet
On Linux Mint running Xfce, via https://forums.linuxmint.com/viewtopic.php?f=47&t=191832
Installed via Software Manager.
KAlarm needed to download 400 MB! So, instead chose Alarm-clock-applet which was only 563 kB. Shows up in the Applications menu as Alarm Clock. Can set time or timer.
Thursday, April 17, 2025
postgres restore from backup - 2 minutes
decided not to migrate Moodle from MySQL to Postgres
| Change | Expected impact |
|---|---|
| MySQL → PostgreSQL | 0–10% |
| MySQL tuning | 5–20% |
| Redis/MUC tuning | 10–50% |
| Faster CPU | Often noticeable |
| More RAM (8 → 16 GB) | Often more useful than DB migration |

