
By William Jeffrey Rankin, Sat Mar 22 2025
I recently upgraded my TeX Live installation from 2024 to 2025. My method differs slightly from the upgrade instructions on the TeX Live web site, but I've had no issues doing it this way the past few years. Rather than copying the installation to a new directory, I simply move it (I have limited space on my Linux VM and the TeX Live install is nearly 12 gigabytes). To start:
cd /usr/local/texlive
sudo mv 2024 2025
Next, modify paths to reflect the location of TeX Live to /usr/local/2025. For me, this means modifying my .bashrc and using visudo to update the path for sudoers.
Now, download the update-tlmgr-latest.sh script provided on the upgrade instructions page, make it executable, and run it.
Finally, upgrade as usual using sudo tlmgr update --list and sudo tlmgr update --all. That's it, you're done!
By William Jeffrey Rankin, Thu Feb 13 2025
Hua has an "orphans" mode that enables the identification of files that exist in the output directory but not in the entries file. Here's an example using the sample content files:
$ pwsh hua.ps1 example.cfg -O
orphan-1.html
As there may be perfectly valid reasons for the file to exist (e.g., a file referenced in generated content like a PDF or a download) Hua takes no action beyond listing the orphan filename.
It occurred to me this mode could also be used to look for orphans in the content directory. All that's required is to change the output_dir variable value in the Hua config file to the location of the content directory. In the example.cfg file change this:
...
output_dir = .\blog
...
to this:
...
output_dir = .\content
...
and run Hua in the same way as above. Content is not processed in orphans mode. Don't forget to change output_dir to its prior value!
By William Jeffrey Rankin, Mon Jan 13 2025
My Rexx-based running statistics generator now features an HTML output mode. It's invoked in the following manner:
regina rs.rex data.csv 24 jun html 1 June 2024 Running Statistics > html/sample-month.html
The example above outputs statistics for June 2024. html refers to the output mode (the other option is txt). 1 specifies the scale which effects the length of the distance profile bars (useful for year-long reports such as shown below).
regina rs.rex data.csv 24 - html .66 2024 Running Statistics > html/sample-year.html
The latest package contains sample reports for month and year as well as styles (light and dark versions).
wo-data.zip, 18K
By William Jeffrey Rankin, Thu Dec 5 2024
Hua can be run at regular intervals using a scheduled task (on Windows) or a cron job (on Linux/Cygwin). On Windows, I use a simple batch script:
D:
cd Documents\Hua
D:\PowerShell-7.4.6-win-x64\pwsh .\hua.ps1 .\hua.cfg
Then I create a scheduled task. Two examples are shown below: the first runs daily, the second every hour.
schtasks /create /sc daily /st 23:50 /tn "Hua" /tr D:\Documents\Hua.bat
schtasks /create /sc hourly /st 08:05 /tn "Hua" /tr D:\Documents\Hua.bat
On Linux and Cygwin it's a little simpler since the batch script is not necessary. The equivalent cron jobs look like this:
50 23 * * * cd Hua; pwsh hua.ps1 hua.cfg
5 * * * * cd Hua; pwsh hua.ps1 hua.cfg
Note that in the case of Cygwin, you'll need to use the full path to pwsh:
50 23 * * * cd Hua; /cygdrive/c/PowerShell-7.4.6-win-x64/pwsh ./hua.ps1 ./hua.cfg
If you want to suppress Hua's output, direct it to /dev/null as shown below. Output is still sent to Hua's log file.
50 23 * * * cd Hua; pwsh hua.ps1 hua.cfg > /dev/null
By William Jeffrey Rankin, Sat Nov 23 2024
Revision 195 includes improvements to Hua's handling of non-critical errors. These are instances where Hua will continue processing all content except for the suspect entries. Examples of this include zero-length (empty) article files, entries lacking a filename, and entries lacking an ID. When possible, the entry ID is shown so the record can be quickly located and fixed.
The latest Hua download package demonstrates these errors. For example:
jeffr@Callisto: ~/Documents/Hua $ pwsh ./hua.ps1 ./hua.cfg
Content file error. File (ID: 000045) is empty. Skipping.
Entries file error. There is an entry (ID: 000040) without a filename. Skipping.
...
Entries file error. There is an entry without an ID. Skipping.