Skip to main content

Posts

Recursion example with SQL

I asked my friend Chatty, can you use recursion in SQL? For example I have a table (ID, value) ordered by increasing ID. Can you guide me through using recursion to select all the rows of consecutive repeated values using and creating an SQLite database. Provide the small sample data. Is there a better way to do this? A More Modern Alternative (Window Functions) In real-world SQL, this problem is usually solved more efficiently using window functions like: LAG() ROW_NUMBER() SUM() OVER But recursion is excellent for learning traversal logic and hierarchical thinking. Recursion example using sqlite on termux DROP TABLE IF EXISTS sample; CREATE TABLE sample (     id INTEGER PRIMARY KEY,     value TEXT ); INSERT INTO sample (id, value) VALUES (1, 'A'), (2, 'A'), (3, 'A'), (4, 'B'), (5, 'B'), (6, 'C'), (7, 'A'), (8, 'A'), (9, 'D'), (10, 'D'), (11, 'D'), (12, 'D'); WITH RECURSIVE grouped AS (    ...

23 by 2

At 239am, on my 46th birthday, I decided to write. I got up early and washed the wares, and now I am in my bed enjoying the silence of the night. The room echoes with the fan breeze. Birthdays are special because they mark our entrance into this world, a reminder that our mothers carried us for nine months and laboured to bring us here. In Islam we are taught not to make birthdays into celebrations, but reflection and gratitude are different. I think we can pause and be thankful. When I look back on my life, I see ups and downs, ease and struggle, calm and chaos. It may sound cliche, but the older I get, the more I value peace and quiet. I no longer have the energy for drama, negativity, endless news, or politics. I simply want to be surrounded by goodness and positivity. More than anything, I want to hold on to God for whatever time I have left here, because in the end, all the fighting and chasing make little sense. One day, every one of us will leave everything behind. This has been...

Stuck running sftp server on termux alpine for multi-user setup

The below is my journey trying to get multi-user sftp working using alpine on termux pkg update && pkg upgrade pkg install proot-distro openssh proot-distro install alpine proot-distro login alpine apk update apk upgrade apk add openssh shadow sudo apk add vim vim /etc/ssh/sshd_config Port 8022 PermitRootLogin no PasswordAuthentication yes Subsystem sftp internal-sftp Match Group sftpusers     ChrootDirectory /sftp/%u     ForceCommand internal-sftp     X11Forwarding no     AllowTcpForwarding no addgroup sftpusers adduser user1 adduser user1 sftpusers mkdir -p /sftp/user1/upload chown root:root /sftp/user1 chmod 755 /sftp/user1 chown user1:sftpusers /sftp/user1/upload How I run my server each time pkill sshd rm -f /etc/ssh/ssh_host_* ssh-keygen -A /usr/sbin/sshd -D -d -d -d From another termux session sftp -P 8022 user1@127.0.0.1 Connection reset by 127.0.0.1 port 8022 Connection closed Some troubleshooting steps mkdir -p /run/sshd chmod 75...

Wordpress on termux

See previous blog posts to get LAMP running on termux https://trinbagotechie.blogspot.com/2026/05/installing-mysql-and-phpmyadmin-on.html https://trinbagotechie.blogspot.com/2026/05/running-php-and-apache-on-termux.html This is the official wordpress guide - https://developer.wordpress.org/advanced-administration/before-install/howto-install/ Let me see how it compares to what ChatGPT says ChatGPT prompt - I have apache, php and mysql (with phpmyadmin) installed and running on termux. Guide me through installing the latest wordpress locally. Start my servers php-fpm -y $PREFIX/etc/php-fpm.conf -d opcache.enable=0 -d opcache.enable_cli=0 mysqld_safe & httpd Download and unzip wordpress to wordpress folder in htdocs chmod -R 755 . CREATE DATABASE wordpress; CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'strongpassword'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost'; FLUSH PRIVILEGES; EXIT; cp wp-config-sample.php wp-config.php ...

Installing mysql and phpmyadmin on termux

ChatGPT prompt - Guide me through installing mysql and phpmyadmin on termux Because official MySQL packages are not maintained for Termux, the easiest and most stable setup is MariaDB (drop-in MySQL replacement) Set the root password Create an admin user for phpmyadmin \e for long queries in editor ; At first I got the following error trying to log into phpmyadmin mysqli::real_connect(): (HY000/2002): No such file or directory Turns out phpMyAdmin is trying to use “localhost socket” instead of TCP vim phpmyadmin/config.inc.php change $cfg['Servers'][$i]['host'] = 'localhost'; to $cfg['Servers'][$i]['host'] = '127.0.0.1'; Restart everything. This forces TCP instead of socket. Now that I have a beautiful LAMP stack setup I could try to install wordpress locally on termux.

Running php and apache on termux

This was my experience getting php and apache to run on termux apt update && apt upgrade -y apt install php-apache I was following an old blog post that used php 7 and got these errors Can't locate API module structure `php7_module' in file /data/data/com.termux/files/usr/libexec/apache2/libphp.so: undefined symbol: php7_module Cannot load /data/data/com.termux/files/usr/libexec/apache2/libphp7.so Corrected in apache config file vim $PREFIX/etc/apache2/httpd.conf LoadModule php_module /data/data/com.termux/files/usr/libexec/apache2/libphp.so Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP. Comment out mpm_worker and use mpm_prefork #LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so This still does not work as apache (httpd) was failing silently. According to Chatty LoadModule php_module ...libphp.so often fails in Termux becau...

Custom youtube search

I had this idea to create my own custom youtube search page. On youtube you cannot block a channel or have it removed from future search results. I find this useful for example when I search "Tobago vlog" I get the politics spam videos also showing up from one channel in particular. Sometimes others. I want to filter those out. ChatGPT prompt I want to build a youtube search page that shows each result with a "add to watch later" button and a "remove channel from search results" button that removes that channel from current results and future results. Removed channels are added to filter.dat. Search results shows videos from the last week. Folder structure youtube-filter-app/ │ ├── public/ │   ├── index.html │   ├── app.js │   └── styles.css │ ├── data/ │   ├── filter.dat │   └── watchlater.dat │ ├── server.js ├── package.json └── .env I created an MVP and it works beautifully. I had to log into Google Developer Console and create an API...