Memory Loom » Computing Notes http://192.168.0.198 Apologia, decisions, & consequences Sat, 17 May 2025 04:27:08 +0000 en-US hourly 1 http://wordpress.org/?v=3.4.2 Data Science Time Warp Machine http://192.168.0.198/?p=1704 http://192.168.0.198/?p=1704#comments Mon, 24 Feb 2025 00:51:27 +0000 Elijah Thomas http://192.168.0.198/?p=1704 Fedora 38 freezes up and crashes sometimes when using Gnome on bare metal.  This may be the result of Gnome reliability issues.  In a previous article I detailed creating a massive repo of Fedora 38, and I still have it.  I will not delete the 238GB repo because Fedora 40 is the last one with Python 2.7 in the repositories.  They elected to completely remove it in Fedora 41 and beyond.  I created some software in Python 2.7 that may never make it to Python 3 because I will be an old man by the time I could complete the conversion relative to my available time in the present day. I had migrated from bare metal to WSL with Fedora 36 a few years ago. I had created my own WSL instance using the Fedora 36 cloud init image, and then upgraded it over the years to Fedora 38 and then ceased updating it.  WSL crashes and cannot be relied upon to run tasks that require many hours of continuous processing.

WSL really was wonderful for development and running Linux applications with underlying Linux features.  I used it for development using Pycharm.  The problem is that I would often return after 12 hours and see a message that the terminal could be closed with a CTRL + D which indicated that the service had stopped for some reason.  I suspect these occurred when available RAM conflicted with the /dev/share features of Linux.  Troubleshooting it would take too long. I don’t trust the releases from the Windows store because forced updates in Windows can take features away or cause unexpected problems.  I upgraded my Windows 11 home desktop to Windows 11 Pro specifically so I could disable Windows automatic updates via group policies, service disablement, and registry modifications that fail to stop auto updates on Windows 11 Home.

To create a long use time capsule of sorts, I decided to switch to Alma Linux 8 from Fedora 38.  Alma Linux 9 follows the tradition of RHEL 9 and removes the easy support for Python 2.

I setup Alma Linux 8.10 Cerulean Leopard, installed from the KDE live DVD, and installed r Studio server to access via web browser.

edit /ect/dnf/dnf.conf and add keepcache=True

dnf install epel-release    
dnf config-manager -enable powertools    
dnf install R    
dnf install python2

The python2 install installs pip2.7 automatically. One calls pip2 via the pip2.7 command.

As regular user the following is required for a script I made because parsedatetime changed after version 2.5 and is no longer compatible with the previous versions.

pip2.7 install parsedatetime==2.5 --user

• Install rstudio-2024.12.0+467-1.rpm from direct download

• Install rstudio-server-rhel-2024.12.0-467.rpm from direct download

systemctl enable rstudio-server

Configure the firewall to allow 8787.

usermod -a -G rstudio-server <username> 
setenforce 0

The last instruction to turn off SELinux is temporary until I can ascertain the specific rules that will need modification to allow it work. With SELinux enforcing with the initial configuration, the server cannot be accessed via web browser remotely

]]>
http://192.168.0.198/?feed=rss2&p=1704 0
Blog code and general code release note system http://192.168.0.198/?p=1690 http://192.168.0.198/?p=1690#comments Sun, 23 Feb 2025 02:19:56 +0000 Elijah Thomas http://192.168.0.198/?p=1690 Today’s site updates including removing the RSS feed links. Kinsta provided source code.1  The code for functions.php to remove it is:

remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );

Kinsta also provided another very useful function2 and that was one that removed the various update notifications in the dashboard.

function kinsta_hide_update_nag() {
remove_action( 'admin_notices', 'update_nag', 3 );
}

add_action('admin_menu','kinsta_hide_update_nag');

Another very useful function for WordPress is one where you may add additional mime types for upload to the library.  This is useful for uploading compressed archives in different formats. Chris Meller’s venerable blog provides the source.3

add_filter('upload_mimes', 'custom_upload_mimes');
function custom_upload_mimes ( $existing_mimes=array() ) {

	// add your ext => mime to the array
	$existing_mimes['xz'] = 'application/x-xz';
        $existing_mimes['zip'] = 'application/zip';
	$existing_mimes['xml'] = 'application/xml';

	// add as many as you like
	// and return the new full result
	return $existing_mimes;

}

Somewhere along the way I picked up the following items to use as release notes within the scripts that I create.

E.g. 11/05/2024: [*] Changed URL to 1.1.1.1 from 8.8.8.8

[+] = Added
[*] = Changed  
[^] = Moved  
[=] = No Changes  
[x] = Deleted  
[!] = Bugs  
[_] = To Do  
[>] = Migrated  
[<] = Migrated

1. Kinsta®. “WordPress Disable RSS Feed,” August 30, 2016. https://kinsta.com/knowledgebase/wordpress-disable-rss-feed/.

2. Kinsta®. “How To Disable WordPress Update Notifications (Plugin or Code),” July 4, 2022. https://kinsta.com/knowledgebase/disable-wordpress-update-notification/.

3. Meller, Chris. “Modifying Allowed Upload Types in WordPress | Chris Meller,” July 26, 2007. https://blog.chrismeller.com/modifying-allowed-upload-types-in-wordpress.

]]>
http://192.168.0.198/?feed=rss2&p=1690 0
Monitoring network connections on Linux http://192.168.0.198/?p=1259 http://192.168.0.198/?p=1259#comments Mon, 25 Nov 2024 16:32:41 +0000 Elijah Thomas http://192.168.0.198/?p=1259 Here is a great TCP/UDP Port finder tool.   This was useful for finding out which port “cbt” was in my Iftop listing.  It was 7777, which was in use for the Unreal Engine on an Ark: Survival Evolved game server. Iftop is the best real time network monitoring tool for Linux that has graced my system to date — or so it seems until one finds Iptraf. Iptraf is another excellent tool for monitoring network traffic in real time.  The Iptraf manual is here.  Netstat wasn’t suitable for this purpose due to the use of UDP as the main protocol.  Netstat is certainly useful, but no switches that I could locate would enable the program to show the UDP traffic in real time and the associated addresses of those connected to the server.  Iptraf shows the UDP traffic in a rapidly updating scroll box.  Iftop shows the traffic in an easy to read display that includes the address and hostname of the connected system.

This list doesn’t relate to more in depth management tools. This list is for easy console monitoring of a server running such games as ARK Survival Evolved.

]]>
http://192.168.0.198/?feed=rss2&p=1259 0
Install cron on Fedora 38 http://192.168.0.198/?p=1042 http://192.168.0.198/?p=1042#comments Tue, 22 Oct 2024 07:38:48 +0000 Elijah Thomas http://192.168.0.198/?p=1042 dnf install cronie systemctl enable crond.service systemctl start crond.service ]]> http://192.168.0.198/?feed=rss2&p=1042 0 Building an anti-bitrot bunker http://192.168.0.198/?p=1034 http://192.168.0.198/?p=1034#comments Sun, 20 Oct 2024 10:18:31 +0000 Elijah Thomas http://192.168.0.198/?p=1034 When I first obtained a CompTIA A+ certification some time ago, the concept of bit rot related to what happens to software reliability as the number of updates to the system increases. Over time, software that worked in years past ceases to work as new system updates block system calls or change permissions and files that the software originally relied upon. This slow decaying of reliability was called bit rot. There are some other definitions floating around on the internet, but that is the one most relevant for me.

To prevent this and reduce the amount of time spent in sorting out the bit rot introduced to my investments by Microsoft’s proclivities, I have standardized on two operating systems for major time investments in computing that occupy my life.  Windows still has a place since I sometimes use Windows only games to play with my child.  Other than that necessity, I have built the things I rely on for use with Linux.  The two versions that I have standardized on are Debian and Fedora. Specifically Debian 12 and Fedora 38.  These are not what is used for the website, but they are the major components of my anti-bitrot infrastructure.  I am aware this may not be good security practice, but this isn’t to get me a job, this is to serve an aging man and his family reliably over time.

There are a few reasons that I selected Fedora 38 and Debian 12. Fedora 38 still has Python 2.7 in the repositories.  It was within 2 versions for upgrading from Fedora 36. Fedora 36 was what I was running in my Windows Subsystem for Linux instance, and I upgraded it to Fedora 38.   When deciding to move back to bare metal for my Linux software development and automation needs, I decided to standardize on that one.  Debian has a 32 bit version. I have both the 32-bit and 64-bit deployed in my network.  Debian 32 bit allows on to easily 32-bit builds of Java on a Linux server.  One can add the testing repository and have the latest Java in 32 bit form.  32-bit Java is necessary to run older Minecraft versions.  My family has a large set of mod-collections and old Java Minecraft instances and maps going back about 8 years. I can then run the latest JVM and the latest Minecraft on the same server because the 32bit JVM is available.  It is very annoying to try and  manage 32bit and 64bit Java virtual machines on the same host, so having it all 32-bit solves a huge problem.  One can add the Debian 11 repository and install Python2.7 if one wants to use old Python versions.  I need this old Python version for a project that I worked on over the course of the last 8 years.

The general anti-bit rot measure for Debian is to always use apt-get to install packages as this will leave the .deb file in the cache.  Then copy those .deb files on a regular basis to another location for use as a repository for other Debian installations.  This can be configured to work via a cron job.  Debian is really the only long-term viable game in town if one wants a 32-bit anti-bitrot bunker that will last into the future, over say, a ten year time horizon. Save the .deb files on a private web-server inside the network and periodically update that repository with the files copied via the sweeps from the cache directory.

For Fedora, this should work with any version.  Fedora 38 is the one I use.  Edit the /etc/dnf/dnf.conf file to say keep_cache=True, and this will save the dowloaded RPMS.  One can then build their repository using only what they need if so desired.  The other genuine long term standardization option is to mirror the entire repositories to the private webserver within one’s network.  To do this, install yumdownloader.   Then, move all of the .repo files from /etc/yum.repos.d except for one to a temporary location.  Then, go into a directory with a lot of space.  For Fedora 38, the complete mirror was 229GB.  Then use yumdownloader * and it will download all files from that repository.  Then, use yumdownloader –source * and it will download all source packages for the packages that it just downloaded.  Then, go back to /etc/yum.repos.d and switch that .repo file out with one that was moved previously, and repeat the process until all repositories have been completely downloaded.  Then, copy all downloaded RPMS to one large directory on the webserver and use createrepo to create the meta data.  Then on the client machines, create a .repo pointing to your own webserver, and move the existing .repo files in /etc/yum.repos.d to an archival location.   Then all of your installations will occur from your own webserver and all machines will have the same versions of packages.

In my case, I then install the data science specifics that I need for the automated software that I created.  The process varies slightly depending on whether the system is Fedora or Debian.

For Debian:

Add bullseye to sources.list
Install python2 via bullseye repositories
Install pip via the downloaded file from https://linuxhint.com/install-pip-on-debian-11/ that is to say,
1. wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
2. python2 ./get-pip.py
Apt-get install libcurl4-openssl-dev

R:
Install.packages(‘curl’)
Install.packages(‘fpp2’)
Install.packages(‘magrittr’)
Install.packages(‘urca’)
Install.packages(‘vars’)
Install.packages(‘psych’)
Apt-get install r-cran-rjava
Install.packages(‘rJava’)
Install.packages(‘xlsx’)
Install.packages(‘Hmisc’)
Install.packages(‘prophet’)
Install.packages(‘dplyr’)
pip2 install parsedatetime==2.5
apt-get install awscli
pip2 install boto3
apt-get install r-cran-car

Troubleshooting steps if .xlsx and others are not built:
Are all R packages installed successfully with a 0 exit status?

On Fedora, the repositories do not contain R components in the same way the Debian repositories do.  Here is the process for Fedora 38.

Used the script https://bootstrap.pypa.io/pip/2.7/get-pip.py
pip2 install parsedatetime==2.5 –user
dnf install libcurl
dnf install libcurl-devel
dnf install R
dnf install awscli
pip2 install boto3 –user
dnf install cmake

Within R:
install.packages(‘car’)
install.packages(‘curl’)
install.packages(‘fpp2′)
install.packages(‘magrittr’)
install.packages(‘urca’)
install.packages(‘vars’)
install.packages(‘psych’)
install.packages(‘rJava’)
install.packages(‘xlsx’)
install.packages(‘Hmisc’)
install.packages(‘prophet’)
install.packages(‘dplyr’)

]]>
http://192.168.0.198/?feed=rss2&p=1034 0
Shrink Firefox Interface http://192.168.0.198/?p=663 http://192.168.0.198/?p=663#comments Mon, 24 Jun 2024 08:08:46 +0000 Elijah Thomas http://192.168.0.198/?p=663 Use about:config –> browser.uidensity .

browser.uidensity is set to 0 by default.  Changer the  value to 1 and it takes immediate effect.

]]>
http://192.168.0.198/?feed=rss2&p=663 0
VirtualBox Disk Conversion http://192.168.0.198/?p=653 http://192.168.0.198/?p=653#comments Mon, 10 Jun 2024 04:58:45 +0000 Elijah Thomas http://192.168.0.198/?p=653 To convert a dynamic VirtualBox disk to a Fixed disk, run the following command:

vboxmanage clonemedium disk /path/disk.vdi /path/newdisk.vdi -variant Fixed

using –variant Standard would create a dynamic disk.  Then open the virtual machine and remove the existing disk and attach the new disk.  Then use the media manager to delete the unused media.

Use the following command to list registered virtual disks:

vboxmanage list hdds
]]>
http://192.168.0.198/?feed=rss2&p=653 0
Browser Extensions http://192.168.0.198/?p=651 http://192.168.0.198/?p=651#comments Mon, 10 Jun 2024 04:47:19 +0000 Elijah Thomas http://192.168.0.198/?p=651 Chromium:

Joplin Web Clipper, Zotero Connector, floccus bookmarks sync, uBlock Origin, Quick Javascript Switcher, SingleFile, uMatrix

Firefox:

SingleFile, Copy PlainText, floccus bookmarks sync, Joplin Web Clipper, Passman, Search by Image, Tree Style Tab, uMatrix, Undo Close Tab, Web Archives

]]>
http://192.168.0.198/?feed=rss2&p=651 0
Debian 12 PATH and X11 http://192.168.0.198/?p=592 http://192.168.0.198/?p=592#comments Sat, 18 May 2024 07:46:10 +0000 Elijah Thomas http://192.168.0.198/?p=592 A few quirks with Debain 12 include that path not being set in similar fashion to Fedora, Ubuntu, and other distributions.  One must regularly set

export PATH=$PATH:/usr/sbin

In Gnome, applications will open on the server instead of the client when using X11 forwarding.  This will occur even though xcalc opens on the client normally.  The way to avoid this is to add the following to .bashrc

unset XDG_RUNTIME_DIR 
unset GDK_BACKEND

The general rule is compress, then encrypt.1, 2

1. https://stackoverflow.com/questions/4676095/when-compressing-and-encrypting-should-i-compress-first-or-encrypt-first

2. https://crypto.stackexchange.com/questions/33737/is-it-better-to-encrypt-before-compression-or-vice-versa

]]>
http://192.168.0.198/?feed=rss2&p=592 0
Move /var to new disk http://192.168.0.198/?p=588 http://192.168.0.198/?p=588#comments Sat, 18 May 2024 07:40:47 +0000 Elijah Thomas http://192.168.0.198/?p=588 To add a new virtual disk and move the existing Linux partition to the new disk use the following process. The process assumes standard partitions without the use of Logical Volume Manager (LVM).

1. Backup the existing VM. One good way to do that is to clone the Virtual Machine and use the procedure on the new Virtual Machine.

2. Create the partition and format it.

$ mount /dev/sbd /mnt
$ shopt -s dotglob
$ rsync -aulvXpogtr /var/* /mnt
$ nano /etc/fstab

Add this line, replacing sdb and ext4 as necessary:

/dev/sdb /var ext4 defaults,noatime,nofail 0 2

Then

$ mv /var/ /var.old

Reboot and enjoy the new drive.

]]>
http://192.168.0.198/?feed=rss2&p=588 0