Akira Urushibata on GNU coreutils
OVER the past weekend Akira Urushibata published to libreplanet-discuss
a message now approved by a moderator and accordingly sent out, then archived online. It is connected to a message Akira sent a fortnight earlier about saying "GNU/Linux".
Akira focuses on operations this time:
What we can learn from a typical operation
About two weeks ago in a message to this mailing list titled "Make's place in the operating system" I discussed the importance of focusing on operations.
In this article I will provide a typical example of an operation and discuss how we can use it in our advocacy efforts.
This is from the Netpbm online "Usage" page (https://netpbm.sourceforge.net/doc/#prognotes):
Here is an example of a shell command to convert all your PNG files (named *.png) to JPEG files named *.jpg:
for i in *.png; do pngtopam $i | pnmtojpeg >`basename $i .png`.jpg; done
---
Improvements in graphical user interfaces have made computers easy to use. However, graphical user interfaces become cumbersome when the same task must be repeated many times over.
The above example illustrates how the problem is solved. The operating system provides a general framework to execute a command on multiple files.
Although it is possible to give converters an additional capability to accept multiple input files, it is more rational to let the OS take care of that than add the feature to every converter.
Adding the a multiple-input file feature to any utility requires effort. In addition small variations may appear on how it is actually implemented, obliging users to learn anew the details unique to each application. It makes more sense to provide a universal apparatus for handling the common case of multiple inputs.
In many real-life instances the files the user desires to convert are not all in one flat directory but rather scattered around, often in a nested structure of directories. Also there are cases in which there are files which should not be converted mingling with others which definitely should. If each application had to offer the capacity to deal with such complicated requests, they would become sophisticated in the bad sense of the word.
One advantage of the above example is that it can be modified to make it just report the conversions instead of actually conducting them. With preliminary review the operation becomes much safer.
I notice that while that some engineers have the skills to perform the above, while others do not, there is no concise expression to differentiate.
The absence of terminology reflects low interest in the issue. Batch conversion of multiple files is a mundane task that should not be taken lightly. A typo can lead to erasure of files or the creation of too many files. In another scenario the demands of an inefficient conversion may add up and eventually overload the entire system.
There is much effort spent in advertising the "Linux" OS as user-friendly and easy to use. People who seek user-friendly computers regard command-line tools as a relic of the past. Any agent promoting "Linux" would thus rather hide them from the general public. Thus people have few opportunities to see how experts actually do work with the OS.
In addition there is a persistent campaign against the name "GNU". The above procedure employs GNU Bash and GNU coreutils. Other utilities often used in conjunction are provided by GNU findutils, GNU diffutils, GNU grep, GNU sed, GNU awk. The negative campaign discourages people from understanding how GNU utilities are actually employed and leaves them with a shallow, distorted view of the entire system.
Some attempts have appeared to find a term to fill the void. "Cloud" is a vague term, but for some people it is mostly about efficient command-line procedures which system management requires. Some others speak of the operations as part of "Linux". In fact I have heard that a major reason Microsoft decided to provide "Window System for Linux" (WSL), is that "cloud" operators became accustomed to using "Linux" command-line utilities and felt inconvenienced by their absence in ordinary Windows environments.
The above observation gives me an idea for an new strategy for promoting GNU. There is a problem that requires a solution. We can explain the problem and the potential outcome of not solving it properly. After convincing people that a problem exists we can explain how it is best solved, how to find the engineers who know the right solution, what tools they use and where the tools come from.
We say "free as in freedom". In some instances the word "free" is used to express the state in which some undesirable condition has been eliminated: "free of malaria" "free of prejudice". People want computing tasks to be performed in a secure manner. Free software is about providing users the freedom to do so.
---
Recommended reading: https://www.gnu.org/software/coreutils/manual/html_node/Opening-the-software-toolbox.html
If your computer has the GNU coreutils documents installed in info format, the following command can be used to access it:
info '(coreutils)Opening the software toolbox'
The FSF has been very quiet lately (the same can be said about the Openwashing Shills Initiative (OSI), whose blog has been rather silent this month). At least the mailing lists are still active. █