*Memory MatrixWritings, notes, and data PagesCategories
Tags
|
Picking a tool for zettelkastenIt is a very challenging thing to pick a tool to invest time into building a personal knowledgebase. I have used numerous tools over the years and collected a huge number of documents and notes. Logseq integrates with Zotero which might prove useful due the gigabytes of material that I have stored there. My plan was always to start writing sometime in the future. All of that material would be analyzed, quoted, and used to support some argument. Zettlr offers the most typerwriter like view, and lacks some of the more advanced features. It is therefore the one that I am going to select for document construction. The simplicity and feature set of the program has proven itself conducive to my needs. Joplin will continue to play a role as a my giant syncronized and backed up file cabinet. Discovering ZettelkästenVia an advertisement there, I discovered https://www.warp.dev/code which looks like an most incredible resource. That may be how applications like Trillium have such incredible documentation and coding. There are 271 contributors, and the documentation and features are incredible and beyond anything else I have seen in a note taking application. This piece of software and the mind blowing quality of the documentation and feature sets has made me reconsider Deepin with the local integration and Deepin IDE. The problem is that the Trillium notes are in a database, whereas Obsidian’s are in mark down. I discovered Zettlr, whose notes are also in Markdown, and discuss that below.. I discovered https://www.zettlr.com/ from a discussion at https://www.xda-developers.com/found-open-source-app-like-obsidian-except-its-better/. From that, I discovered Zettelkästen. More specifically, I learned what it was via Zettlr. The Zettelkasten method involves cross-referencing one’s knowledge base so that one can find relationships between concepts and create a living knowledgebase with minimal forgetfulness.1 Zettlr contains the ability to insert snippets using variables for the date, time, and unique ID numbers. This is something that I had been trying to do of my own accord using various applications over the years. Obsidian has a great preview that one can use to directly copy to blogs and product great entries with links intact. It looks like Obsidian took Trilium’s preview and Zettlr’s markdown and file management to create their application. All three share a very similar sidebar and navigation motif. I consider Obsidian to be like many Minecraft modification developers in recent years. They take a lot of permissively licensed opensource software and then wrap it in an all rights reserved vague statement and do not share any code or redistribution rights. Many minecraft mods say all rights reserved, which is not really a license. They incorporate and link other libraries. Java itself uses a classpath exception so they do not become GPL because of that, however when the mods rely on other libraries that are GPL, such as other mods, and then hide behind “all rights reserved” it really breaks my heart. One would think they would want their mods available at many different sites and not only the website they uploaded them too. Electron is MIT licensed. This is not an accusation. This is my opinion. I suspect Obsidian used Trilium notes and possibly Zettlr code and is not compliant with the GPL. That is my opinion only. Trilium notes even comes with server software. The Obsidian Webclipper is great. Yet it irritates me to no end that an open source foundation, like Electron, and possibly some of the precursors of Obsidian, made the way to a piece of software that says you cannot even redistribute the binaries. They could go out of business, but with binaries around, people could use that great software for ages. The situation is contrary to the Linux ethos. I could be wrong, and they pulled their code from Memos, which has a very similiar interface. The Memos code is at https://github.com/usememos/memos. Memos is another project sponsored by Warp. I am not accusing Obsidian. Logseq is another GPL project with a great deal of similar features and buttons, and is available at https://github.com/logseq/logseq. I am stating that it is very strange, and perhaps some AI agents are using GPL code and the downstream products are not GPL as they should be, but that is my opinion only.
Joplin AppImage IntegrationJoplin is the beautiful open source replacement for Evernote. Once upon a time, Evernote was a dream app, but then they sent out an atrocious terms of service change after turning their user interface into drab garbage compared to the old colorful beauty that existed in version 4 and before. Joplin is fully functional and syncs on every platform. They also provide a pure APK for download so that one can install it on LineageOS or other nongeminized Android system. It offers full digital sovereignty. One helpful tip that I spent a long time searching before learning, is that you can customize an image per notebook name, by right-clicking on the notebook, choosing edit, and then selecting an emoji. Each notebook can have a different emoji as the icon. Here is the procedure to integrate it into the Linux desktop. Notably, the icon is still the beautiful blue icon, and not the atrocious black and white one that has taken center stage on Windows versions of the app. chmod +x Joplin-3.4.12.AppImage ./Joplin-3.4.12.AppImage --appimage-extract mv squashfs-root joplin-3.4.12 mv joplin-3.4.12 $HOME/Apps cp $HOME/Apps/joplin-3.4.12/joplin.desktop $HOME/.local/share/applications kate $HOME/.local/share/applications/joplin.desktop Edit the file to say the following, but with $HOME replaced by the actual home directory of the relevant user: [Desktop Entry] Name=Joplin Exec=$HOME/Apps/joplin-3.4.12/joplin --no-sandbox %U Terminal=false Type=Application Icon=$HOME/Apps/joplin-3.4.12/joplin.png StartupWMClass=Joplin X-AppImage-Version=3.4.12 MimeType=x-scheme-handler/joplin; Comment=Joplin for Desktop Categories=Office; Local download links: The last version that worked on OSX Catalina was 3.2.12. LibreWolf 145 & Integrated AppImageLibreWolf is a fork of Firefox that removes many of Mozilla’s bad decisions.1 A mirror of LibreWolf 145.0.1-2.x86_64 appimage is available here. Debian stable requires one to use a format other than the LibreWolf repo because as of 23 November, 2025 their site says the following: sudo apt update && sudo apt install extrepo -y sudo extrepo enable librewolf sudo apt update && sudo apt install librewolf -y Extrarepo exists only in Sid, which makes it unsuitable for Bookworm, or other stable Debian editions. Adding Sid repos can turn Debian into something akin to a rolling distribution but it can cause problems if one wants older software. To integrate the linked appimage into the operating system, take the following actions.2 ./LibreWolf.x86_64.AppImage --appimage-extract mv squashfs-root librewolf-145.0.1-2 mv librewolf-145.0.1-2 $HOME/Apps cp $HOME/Apps/librewolf-145.0.1-2/io.gitlab.LibreWolf.desktop $HOME/.local/share/applications Then, modify the four lines in $HOME/.local/share/applications/io.gitlab.LibreWolf.desktop that say exec. Those lines need to reflect the path where the executable resides. I was working on this with Obsidian and preparing to archive the appimage on this website when I ran into a snag. The Obsidian .desktop referenced the AppRun from the AppImage whereas Librewolf referenced the executable named librewolf. After resolving this, I checked the licenses. Obsidian distributes software that is under the Apache License. That license allows one to add other requirements to their additions to the software. Their additional term is that you may not redistribute their software. They are even more onerous that IBM was with Lotus Symphony 3. Lotus Symphony 3 was an office suite built on Open Office that had an excellent tabbed document interface. It was a beautiful interface that Open Office should have incorporated, but for some reason they did not. The Symphony 3 license allows you to redistribute on physical disc to your friends and family, but not via internet website. Obsidian says no to redistribution at all. I was using Obsidian extensively on all my mobile devices, but will have to discontinue using it now. I have no interest in building open source machines with open source operating systems and having software that does not allow you to mirror it. ./Obsidian-1.10.3.AppImage --appimage-extract mv squashfs-root Obsidian-1.10.3 mv Obsidian-1.10.3 $HOME/Apps cp $HOME/Apps/Obsidian-1.10.3/obsidian.desktop $HOME/.local/share/applications Modify the exec line in $HOME/.local/share/applications/obsidian.desktop to reflect the path where the AppImage contents appear. The exec should point to the application binary and not the AppRun file. e.g. $HOME/Apps/Obsidian-1.10.3/obsidian I will leave this here for memory and education, but will discontinue the use of Obsidian since its future as an ongoing concern is limited to their availability of their website as a distribution channel. That does not bode well. Symphony 3 (1.3 on Linux) is nearly extinct, but one can still run it on old virtual machines.
My refined direction is digital sovereigntyMy refined direction is digital sovereignty via the old paths with a goal of writing at least one article per week. The complexity of the articles will change because many projects are planned for the long term, but getting started on them takes a very long time.. I setup a RAID 5 in my old computer using new Western Digital 2 TB drives. In this case, the old machine is a Hewlett Packard Z600. The computer is very old in computer years. It has 12 Cores via dual Intel(R) Xeon(R) CPUs of model X5675 at 3.07GHz. [1] The prices on these on eBay have gone through the roof for old desktops computers of many types. One can easily find conversations about hard drives from three or four years discussing prices of $15 per terabyte. Now they are over $30 per terabyte. I had purchased a used 2TB drive to use as Samba share space in the machine, and it went bad and locked into read-only mode within about a year. In deciding whether to buy used or new drives, I came to the conclusion that on an annual basis, one ends up spending the same or more via used drives than they do with new drives. Were one to purchase used drives, twice as many need to be acquired which eliminates the financial benefit while increasing one’s stress. I could not remember my Vivaldi sync password despite creating the account only a couple of days ago. I tried several times to remember it, and then connections to vivaldi.net started timing out. It seems to me that they blocked me. If that had happened with the ability to access my email, it would have been a real issue. Because of this, I need to work on a more digitally sovereign approach here. The extensions I use for Vivaldi include the Obsidian Web Clipper, Joplin Web Clipper, Zotero Connector, floccus bookmarks sync, SingleFile, and uMatrix. For LibreWolf, my extensions are Obsidian Web Clipper, SingleFile, Copy PlainText, floccus bookmarks sync, Joplin Web Clipper, Search by Image, Tree Style Tab, uMatrix, Undo Close Tab, and Web Archives.
Running old versions of Java MinecraftOne source for the Java 8 (1.8) runtime is the Oracle Archives page. Another helpful one is the standard Java download page for the desktop Java Runtime Environment, JRE. I downloaded the Linux x86 (32-bit) version even though the host is a 64bit Linux. The reason for that is that at some point in the point in the past Minecraft and various mods and the Forge loader required a 32 bit Java virtual machine (JVM). It was so problematic to install both 64bit and 32bit via the package managers and manually configure them, that I developed a practice of installing 32-bit Linux so that the Java in the repository would also be 32bit and then everything would be fin. It was much easier to run 32-bit Java and 32-bit Wine on a 32-bit operating system than reconfigure everything and try to switch between them depending on what was running. I extracted the zip file from Oracle and then ran the Minecraft server instance with the following command.
Running the program that way worked very well. .ssh config for Windows and LinuxThe ~/.ssh/config file works for OpenSSH on Windows and for SSH on Linux. To prevent disconnects, add the keepalive messages for all hosts. For specific hosts that use a specific key type, such as RSA on CentOS 6, add the specific algorithm via the HostkeyAlgorithms + functionality. To add a private key for SSH key logins, add the IdentityFile line. it is possible to allow the ssh-rsa algorithms on both outgoing and incoming connections for all hosts. The PubkeyAcceptedAlgorithms functionality is which key can be used to log into the host the config file sits on. the ForwardX11 setting sits on Linux hosts and not on Windows.. example ~/.ssh/config
IdentityFile ~/.ssh/Minecraft-Micro.pem
Host *
ServerAliveInterval 40
Host 192.168.0.0
HostkeyAlgorithms +ssh-rsa
ForwardX11 yes
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
Switch a data volume on LinuxHow to move /var/www/html/mydata/ to a new disk: 1. fdisk /dev/nvme4n1 [_] Expand 7 to show fstab options Debian 12 SourcesThis is a listing of Debian sources for future reference. Debian maintains an archive of older versions on the Distribution Archives website. It may be necessary at some point in the future to change the bullseye information below so that it points to the distribution archives. /etc/apt/sources.list.d/vivaldi.list ### THIS FILE IS AUTOMATICALLY CONFIGURED ### # You may comment out this entry, but any other modifications may be lost. deb [arch=amd64] https://repo.vivaldi.com/stable/deb/ stable main End of File
/etc/apt/sources.list #deb cdrom:[Debian GNU/Linux 12.4.0 _Bookworm_ - Official amd64 NETINST with firmware 20231210-17:56]/ bookworm main> deb http://deb.debian.org/debian/ bookworm main non-free-firmware deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware deb http://security.debian.org/debian-security bookworm-security main non-free-firmware deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware # bookworm-updates, to get updates before a point release is made; # see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware deb-src http://deb.debian.org/debian/ bookworm-updates main non-free-firmware # Debian 12 "bookworm" dropped by Python2. Adding Debian 11 "bullseye" # removed bullseye non-free-firmware from each of the below bullseye lines # due to errors on 7/24/25 deb http://deb.debian.org/debian/ bullseye main deb-src http://deb.debian.org/debian/ bullseye main deb http://security.debian.org/debian-security bullseye-security main deb-src http://security.debian.org/debian-security bullseye-security main deb http://deb.debian.org/debian/ bullseye-updates main deb-src http://deb.debian.org/debian/ bullseye-updates main # added 7/24/25 # https://fasttrack.debian.net/ deb http://fasttrack.debian.net/debian-fasttrack/ bookworm-fasttrack main contrib deb http://fasttrack.debian.net/debian-fasttrack/ bookworm-backports-staging main contrib # This system was installed using small removable media # (e.g. netinst, live or single CD). The matching "deb cdrom" # entries were disabled at the end of the installation process. # For information about how to configure apt package sources, # see the sources.list(5) manual. End of File Batch file with date and time for zippingWinRAR offers great feature. It will create a zip file using a name mask. That allows one to create a file with an excellent name via the right click menu. Buying many WinRAR licenses becomes cost prohibitive. This batch file will do the same thing using 7Zip on Windows. The batch file must be saved in the SendTo folder on Windows. 7Zip must be installed @echo off
REM create a timestamped zip file of a directory
REM ^ is a line continuation mark
FOR /F "TOKENS=1* DELIMS= " %%A IN (^
'DATE /T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN (^
'DATE /T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN (^
'echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN (^
'echo %CDATE%') DO SET yyyy=%%B
for /f "tokens=1-3 delims=:." %%A in ("%time%") do (
set hours=%%A
set minutes=%%B
set seconds=%%C)
SET date2=%yyyy%-%mm%-%dd%_%hours%%minutes%
"C:\Program Files\7-Zip\7z.exe" a -tzip^
C:\archives\%~n1_%date2%.zip %1
pause
This will save the zip filed in C:\archives\zips with a filename that consists of the original directory name and a timestamp of the form directoryname_2022-01-28_2212.zip. To use it, right click a directory, and choose SendTo –> TheBatchFileName. In my case, the file is named 7zipBackup.bat Data Science Time Warp MachineFedora 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 Blog code and general code release note systemToday’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 );
remove_action('wp_head', 'wlwmanifest_link');
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. |