From 235b5477690863459bfc8db97b7e675fb56465c4 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Sat, 11 Jun 2022 15:24:06 -0500 Subject: [PATCH] Update: Modifications to a news article and some styling improvements. I found some good things about the Librem5 phone and this amends my review adding notes in this regard. I tried to avoid having class="p" but now that I need specific styling I am using it. I intend to completely avoid any CSS styling on the elements themselves and instead only use class names. This has an unfortunate consequence of using a few more characters per tag. A special subsection box class is provided for any note worth updates to news articles. --- access_denied.html | 2 +- css/kevux-screen-large.css | 8 ++ css/kevux-screen-normal.css | 8 ++ css/kevux-screen-small.css | 8 ++ css/kevux-screen-tiny.css | 8 ++ css/kevux.css | 21 +++ distributions.html | 10 +- documentation.html | 26 ++-- documentation/byte_dump.html | 12 +- documentation/control.html | 16 +-- documentation/controller.html | 26 ++-- documentation/fake.html | 34 ++--- documentation/firewall.html | 10 +- documentation/fss_basic_list_read.html | 54 ++++---- documentation/fss_basic_list_write.html | 24 ++-- documentation/fss_basic_read.html | 54 ++++---- documentation/fss_basic_write.html | 24 ++-- documentation/fss_embedded_list_read.html | 54 ++++---- documentation/fss_embedded_list_write.html | 24 ++-- documentation/fss_extended_list_read.html | 54 ++++---- documentation/fss_extended_list_write.html | 24 ++-- documentation/fss_extended_read.html | 54 ++++---- documentation/fss_extended_write.html | 24 ++-- documentation/fss_identify.html | 18 +-- documentation/fss_payload_read.html | 60 ++++---- documentation/fss_payload_write.html | 24 ++-- documentation/fss_status_code.html | 8 +- documentation/iki_read.html | 28 ++-- documentation/iki_write.html | 10 +- documentation/status_code.html | 8 +- documentation/utf8.html | 24 ++-- fll.html | 10 +- licenses.html | 24 ++-- news.html | 28 ++-- news/2022_05_01-website_redesign.html | 16 +-- news/2022_05_06-basic_program_documentation.html | 12 +- news/2022_05_16-fll_specifications_added.html | 12 +- news/2022_06_04-librem_to_freedom.html | 166 +++++++++++++---------- not_found.html | 2 +- projects.html | 98 ++++++------- sources.html | 18 +-- 41 files changed, 611 insertions(+), 534 deletions(-) diff --git a/access_denied.html b/access_denied.html index 02b8320..3fc21b5 100644 --- a/access_denied.html +++ b/access_denied.html @@ -73,7 +73,7 @@
-

+

You are not authorized to access this page whether it exists or not. Please go back or consider visiting to the site index page.

diff --git a/css/kevux-screen-large.css b/css/kevux-screen-large.css index 7987361..f0758b6 100644 --- a/css/kevux-screen-large.css +++ b/css/kevux-screen-large.css @@ -46,6 +46,14 @@ line-height: 1.7rem; } +.kevux .subsection.update > .header > .h3, +.kevux .subsection.update > .header > .h4, +.kevux .subsection.update > .header > .h5, +.kevux .subsection.update > .header > .h6 { + font-size: 1.1rem; + line-height: 1.5rem; +} + .kevux > .content-block > .main-block .grid.expand.columns-4 { grid-template-columns: auto auto auto auto; } diff --git a/css/kevux-screen-normal.css b/css/kevux-screen-normal.css index 76f2812..4104d1e 100644 --- a/css/kevux-screen-normal.css +++ b/css/kevux-screen-normal.css @@ -46,6 +46,14 @@ line-height: 1.5rem; } +.kevux .subsection.update > .header > .h3, +.kevux .subsection.update > .header > .h4, +.kevux .subsection.update > .header > .h5, +.kevux .subsection.update > .header > .h6 { + font-size: 0.9rem; + line-height: 1.3rem; +} + .kevux > .content-block > .main-block .grid.expand.columns-4 { grid-template-columns: auto auto auto; } diff --git a/css/kevux-screen-small.css b/css/kevux-screen-small.css index 5d55f1b..c8d479a 100644 --- a/css/kevux-screen-small.css +++ b/css/kevux-screen-small.css @@ -42,6 +42,14 @@ line-height: 1.4rem; } +.kevux .subsection.update > .header > .h3, +.kevux .subsection.update > .header > .h4, +.kevux .subsection.update > .header > .h5, +.kevux .subsection.update > .header > .h6 { + font-size: 0.8rem; + line-height: 1.2rem; +} + .kevux > .content-block > .main-block .grid.expand.columns-4 { grid-template-columns: auto auto; } diff --git a/css/kevux-screen-tiny.css b/css/kevux-screen-tiny.css index b31cc26..ba49c30 100644 --- a/css/kevux-screen-tiny.css +++ b/css/kevux-screen-tiny.css @@ -44,6 +44,14 @@ line-height: 1.1rem; } +.kevux .subsection.update > .header > .h3, +.kevux .subsection.update > .header > .h4, +.kevux .subsection.update > .header > .h5, +.kevux .subsection.update > .header > .h6 { + font-size: 0.5rem; + line-height: 0.9rem; +} + .kevux > .content-block > .main-block .grid.expand.columns-4 { grid-template-columns: auto; } diff --git a/css/kevux.css b/css/kevux.css index c90bea0..dd2de8b 100644 --- a/css/kevux.css +++ b/css/kevux.css @@ -236,6 +236,27 @@ background-color: #f9f9f0; } +.kevux > .content-block .subsection.box > .subsection-content > .p:first-of-type { + margin-top: 0px; +} + +.kevux > .content-block .subsection.box > .subsection-content > .p:last-of-type { + margin-bottom: 0px; +} + +.kevux > .content-block .subsection.box { + display: block; + box-sizing: border-box; + + overflow: auto; + + border: 1px dotted #724801; + margin: 0.5rem; + padding: 0.75rem; + + background-color: #e7f1ff; +} + .kevux > .content-block .tip .code.terminal { display: block; box-sizing: border-box; diff --git a/distributions.html b/distributions.html index 13ec9ee..ac4c804 100644 --- a/distributions.html +++ b/distributions.html @@ -97,13 +97,13 @@

Turtle Kevux

-

+

Turtle Kevux is a Linux system primarily based on GNU software, FLL software, and a Linux kernel. Historically Turtle Kevux was compiled using uClibc as an alternative to GLibc. Turtle Kevux now uses Musl-Libc in place of GLibc.

-

+

This Linux based distribution deviates from Linux and even utilizes modifications to the Linux kernel. Turtle Kevux does not comply with many of the standards that many Linux distributions follow. This is especially true when it comes to SystemD as many parts of the SystemD design is the direct opposite of how Turtle Kevux and its underlying software (FLL) are designed.

-

+

Turtle Kevux is neither FHS nor LSB compliant, which is seen as one of the many security enhancements. Turtle Kevux might closely follow these standards, but those standards are deviated from as desired.

@@ -114,10 +114,10 @@

About Releases and Scripts

-

+

The Turtle Kevux Releases used to provide multiple CD-ROM and DVD-ROMs for different purposes. These have been reduced to the "everything" releases for the older Turtle Kevux releases (0.9.5 and earlier). The "everything" release contains all of the software specially configured to compile and install onto the system as well as all source code archives.

-

+

The Turtle Kevux Installation Scripts are also provided separately from the DVD-ROMs. These scripts can be used to compile the system entirely from source. Due to the complexity and potential problems with compiling entirely from source, the pre-compiled bootstrap files are also made available as the "tools" downloads.

diff --git a/documentation.html b/documentation.html index b03d293..93a0e39 100644 --- a/documentation.html +++ b/documentation.html @@ -147,7 +147,7 @@
-

+

Documentation for the following projects are provided within their own sub-pages.

@@ -186,10 +186,10 @@
-

+

Projects like the Featureless Linux Library are focused entirely around provided standards for every aspect of the project. Numerous specifications are available describing these standards. At this time, the specifications have not been transcribed into a format for the web. They are stored in plain text within the source code repositories.

-

+

Many of these specifications may be found here:

    @@ -208,10 +208,10 @@
    -

    +

    The APIs have not yet been generated and are not available in an easy to consume form outside of the source code itself.

    -

    +

    The API can be viewed by navigating the source code for the FLL here:

      @@ -226,7 +226,7 @@
      -

      +

      One of the biggest problems with an API is the mis-use or misunderstanding of the meaning and purpose of one. The term itself is not the most accurate and is also not ideal. A more appropriate term would be a Library Interface or a Software Interface.

      @@ -236,7 +236,7 @@
      -

      +

      A set of rules and guidelines.

      @@ -247,7 +247,7 @@

      Specification

      -

      +

      A specific interpretation, clarification, or description of a Standard, such as the documentation that describes how to use or follow a Standard.

      @@ -258,7 +258,7 @@

      Implementation

      -

      +

      The applying of some Standard or Specification.

      @@ -269,7 +269,7 @@

      Application Programming Interface (API)

      -

      +

      The API term is commonly mis-represented as Services or Protocols (such as "Web API"). An API instructs a programmer how to use a dependency when programming some software that utilizes said dependency. An API is a Specification of some Implementation of a Standard be it a formally defined standard or an informally defined standard. An API may be an Implementation of a Standard or a part of an Implementation of a Standard. An API is, in effect, documentation.

      @@ -280,7 +280,7 @@

      Application Binary Interface (ABI)

      -

      +

      The ABI term refers to an Application Binary Interface and represents the compiled implementation of some API. An ABI may not always exist for some API, such as for pure scripting languages. An ABI is neither a Specification nor a Standard. An ABI is an Implementation of an API making it an Implementation of a Standard or Specification.

      @@ -291,7 +291,7 @@

      Service

      -

      +

      Any action or labor performed by one party for another party (such as one person helping another person).

      @@ -302,7 +302,7 @@

      Protocol

      -

      +

      In the context of computers and software, this is a Standard focused on communication between two parties (often referring to Internet communication).

      diff --git a/documentation/byte_dump.html b/documentation/byte_dump.html index ccc2b34..dd808f9 100644 --- a/documentation/byte_dump.html +++ b/documentation/byte_dump.html @@ -90,13 +90,13 @@
      -

      +

      The byte_dump program is a tool for parsing and printing the bytes of all data within one or more files.

      -

      +

      This tool operates similar to the classic hexdump program and provides similar functionality. However, the byte_dump program is not intended to be a complete replacemenet. Unlike the hexdump program, the byte_dump program is fully UTF-8 aware and even validates the Unicode sequences.

      -

      +

      This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.

      @@ -167,10 +167,10 @@
      -

      +

      The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

      -

      +

      The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

    @@ -261,7 +261,7 @@
-

+

The output is broken up into two or three parts.

    diff --git a/documentation/control.html b/documentation/control.html index ba96faa..d70dc01 100644 --- a/documentation/control.html +++ b/documentation/control.html @@ -90,10 +90,10 @@
    -

    +

    The control program is a tool for sending commands to the controller program.

    -

    +

    This tools is currently incomplete and is not guaranteed to work with the controller program. Further development will be made on this once the controller program is updated. The next development series is planned to focus on networking, which will include support for this.

    @@ -164,10 +164,10 @@
-

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -213,16 +213,16 @@ -

+

When the --socket parameter represents a directory path then the file name is generated from either the --name parameter or from the control settings file.

-

+

A rule action allows for either the full rule path, such as 'boot/root' as a single parameter or two parameters with the first representing the rule directory path 'boot' and the second representing the rule base name 'root'.

-

+

The --return parameter is intended to be used for scripting and is of the form "response [type] [action] [status]".

-

+

Be sure to use the ++quiet parameter to suppress output when using this in scripting. No response is returned on program errors, especially those errors that prevent communicating to the controller.

diff --git a/documentation/controller.html b/documentation/controller.html index fe33b94..21ca0e5 100644 --- a/documentation/controller.html +++ b/documentation/controller.html @@ -90,28 +90,28 @@
-

+

The controller program is a tool for controller other programs.

-

+

This tool is designed to configured to perform and execute any tasks given across multiple languages and it also has support for operating as an init program. There are special compile-time configurations needed to make this properly operate as an init program.

-

+

This tool operates similar to the fake program and can even be seen as an evolution to the fake program. The controller program, however is not a replacement to the fake program as it is more generalized.

-

+

This tool also provides additional features for making it easierr to test and write controller instructions. These features include partial simulation and validation modes.

-

+

In partial simulation mode, anything that the controller program has full control over and can simulate is simulated. Actual programs and scripts themselves, therefore, cannot be simulated. However, it may be possible to use an environment variables or similar and pass settings to the called program or script if the called program or script is simulation and testing aware.

-

+

The validation mode is for making this tool more scriptable. By providing validation, the controller instructions can be validated, in which case a success or failure result is returned and any problems or warnings may be printed to the caller of this tool.

-

+

This tool is not currently fully functional as an init program replacement because the networking aspects are not yet written or fully hashed out. The contol program is also another key part to the contoller program in getting this to work as an init program. Ideally, once this support is complete, it should be possible to replace init programs, such as SystemD, with the controller program.

-

+

Further development will be made on this once the controller program is updated. The next development series is planned to focus on networking, which will include support for this.

@@ -182,10 +182,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -261,13 +261,13 @@ -

+

When both the --simulate parameter and the --validate parameter are specified, then additional information on each would be executed rule is printed but no simulation is performed.

-

+

The default interrupt behavior is to operate as if the --interruptible parameter is passed.

-

+

Specify an empty string for the --pid parameter to disable pid file creation for this program.

diff --git a/documentation/fake.html b/documentation/fake.html index e18ceff..519789d 100644 --- a/documentation/fake.html +++ b/documentation/fake.html @@ -92,32 +92,32 @@
-

+

The fake program, also called Featureless Make is the flagship program of the FLL project and provides the ability to compile source code and perform various actions not unlike how the GNU Make program operates.

-

+

This tools is directly intended to be a replacement to the GNU Make program but not as a replacement for all of the GNU Make functionality. Instead, the fake program follows the ideology that a build program should not involve itself with system-specific behavior, such as installing to a system.

-

+

Despite this non-standard ideology, the fake program is flexible enough to be used as an installer. In fact, this tool is used to not only build the entire FLL but it can also compile and run unit tests for the project.

-

+

A bootstrap script is provided in all FLL projects that operates with almost complete one-to-one functionality to this tool to allow for the system to build itself. A great example of this is the test script used to run unit tests on services like Github where this project must compile itself and then use itself to run unit tests against itself.

-

+

While most of the programs provided with the FLL are young and not well tested, the fake program is considered mature.

-

+

There are two primary operations in which this tool executes:

  1. The build operation.
  2. The make operation.
-

+

The build mode is derived from the idea that most of the compilation process is redundant and can be simplified to a pre-define set of configuration settings. This reduces the amount of efforted needed to write and mainting a build system at the cost of flexibility.

-

+

The make mode is the mode for operating as a replacement to the GNU Make program. This provides scriptable ways to perform just about any task needed when building a system. Many of the build mode settings are available (but are not required) and this mode can even call the build mode itself.

@@ -188,10 +188,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -262,13 +262,13 @@ -

+

When using the -d/--define parameter the define structure must be passed as-is and may even need to be quoted if there is whitespace.

-

+

For example, in the C programming, passing a macro to the compiler might look like '-DMY_MACRO=1'. To do this using -d/--define, there would be two parameters passed like this: '-d -DMY_MACRO=1'. This works because the parameter after the -d/--define is not interpreted and is treated exactly as is without interpreting it as a parameter to the fake program.

-

+

Because of this, passing '-d -h' would not print the program help because the '-h' is considered a value associated with the '-d' parameter rather than a parameter itself.

@@ -309,16 +309,16 @@ -

+

When performing the build operation, the --mode parameter specifies a name (limited to alpha-numeric, underscore, and dash) to be used in addition to the global.

-

+

For example, when a mode of 'fll_monolithic' is specified, build libraries from both 'build_libraries' and 'build_libraries-fll_monolithic' are used (but not 'build_libraries-fll_level').

-

+

When specifying the fakefile or the settings parameters, the filenames are relative to the data build directory, unless a path is used.

-

+

For example, with '--fakefile my_fakefile' the fakefile at './data/build/my_fakefile' would be used, however with '--fakefile ./my_fakefile' the fakefile at './my_fakefile' would be used.

diff --git a/documentation/firewall.html b/documentation/firewall.html index 38f709f..3bdf8ab 100644 --- a/documentation/firewall.html +++ b/documentation/firewall.html @@ -90,13 +90,13 @@
-

+

The firewall program is a tool for simplifying and automating the iptables program.

-

+

This tool is set to be replaced now that both the firewall and the iptables programs are outdated. The latest iptables program replacement (the nftables program) is superior and the firewall will need major rewrites to utilize the replacement.

-

+

This tools is one of the original two programs of the FLL project and is designed to be a fully functional proof of concept for the FLL project.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

diff --git a/documentation/fss_basic_list_read.html b/documentation/fss_basic_list_read.html index acca824..dd956e7 100644 --- a/documentation/fss_basic_list_read.html +++ b/documentation/fss_basic_list_read.html @@ -89,13 +89,13 @@
-

+

The fss_basic_list_read program is a tool for reading and processing strings that follow the FSS-0002 (Basic List) standard.

-

+

This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -166,10 +166,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -265,16 +265,16 @@ -

+

All numeric positions (indexes) start at 0 instead of 1.

-

+

For example, a file of 17 lines would range from 0 to 16.

-

+

When using the --depth option, an order of operations is enforced on the parameters.

-

+

When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:

@@ -288,47 +288,47 @@
--name
An Object name at the specified depth.
-

+

The parameter --depth must be in numeric order, but values in between may be skipped.

-

+

The parameter --select selects a Content column.

-

+

Specify both --object and the --total parameters to get the total objects.

-

+

When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.

-

+

This program may support parameters, such as --depth or --select, even if not supported by the standard.

-

+

This is done to help ensure consistency for scripting.

-

+

For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.

-

+

For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.

-

+

The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.

-

+

When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.

-

+

Both the Object and Content printed are already escaped.

-

+

Both the Object and Content are separated by a New Line character '\n' (U+000A).

-

+

The parameter --delimit accepts the following:

@@ -351,19 +351,19 @@
A number, zero or lesser, followed by a -
(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).
-

+

The --delimit parameter may be specified multiple times to customize the delimit behavior.

-

+

The --delimit values none and all, overrule all other delimit values.

-

+

The parameters --columns and --select refer to a Content column.

-

+

The word "column" is being loosely defined to refer to a specific Content.

-

+

This is not to be confused with a depth.

diff --git a/documentation/fss_basic_list_write.html b/documentation/fss_basic_list_write.html index 07a059d..0e3adcd 100644 --- a/documentation/fss_basic_list_write.html +++ b/documentation/fss_basic_list_write.html @@ -90,13 +90,13 @@
-

+

The fss_basic_list_write program is a tool for generating strings that follow the FSS-0002 (Basic List) standard.

-

+

This tool is designed to be scriptable and accepts piped input using a special format.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -241,25 +241,25 @@ -

+

This special piped input format uses the ASCII Backspace character '\b' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).

-

+

The Backspace character '\b' (U+0008) is used to designate the start of a Content.

-

+

The Form Feed character '\f' (U+000C) is used to designate the end of the last Content.

-

+

The Vertical Line character '\v' (U+000B) is used to ignore a Content range, which does nothing in this program.

-

+

For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.

-

+

The FSS-0002 (Basic List) specification does not support quoted names, therefore the parameters --single and --double do nothing.

-

+

This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.

diff --git a/documentation/fss_basic_read.html b/documentation/fss_basic_read.html index 267609e..1b20a72 100644 --- a/documentation/fss_basic_read.html +++ b/documentation/fss_basic_read.html @@ -90,13 +90,13 @@
-

+

The fss_basic_read program is a tool for reading and processing strings that follow the FSS-0000 (Basic) standard.

-

+

This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -266,16 +266,16 @@ -

+

All numeric positions (indexes) start at 0 instead of 1.

-

+

For example, a file of 17 lines would range from 0 to 16.

-

+

When using the --depth option, an order of operations is enforced on the parameters.

-

+

When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:

@@ -289,47 +289,47 @@
--name
An Object name at the specified depth.
-

+

The parameter --depth must be in numeric order, but values in between may be skipped.

-

+

The parameter --select selects a Content column.

-

+

Specify both --object and the --total parameters to get the total objects.

-

+

When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.

-

+

This program may support parameters, such as --depth or --select, even if not supported by the standard.

-

+

This is done to help ensure consistency for scripting.

-

+

For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.

-

+

For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.

-

+

The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.

-

+

When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.

-

+

Both the Object and Content printed are already escaped.

-

+

Both the Object and Content are separated by a space.

-

+

The parameter --delimit accepts the following:

@@ -352,19 +352,19 @@
A number, zero or lesser, followed by a -
(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).
-

+

The --delimit parameter may be specified multiple times to customize the delimit behavior.

-

+

The --delimit values none and all, overrule all other delimit values.

-

+

The parameters --columns and --select refer to a Content column.

-

+

The word "column" is being loosely defined to refer to a specific Content.

-

+

This is not to be confused with a depth.

diff --git a/documentation/fss_basic_write.html b/documentation/fss_basic_write.html index 8ba7905..5cf742c 100644 --- a/documentation/fss_basic_write.html +++ b/documentation/fss_basic_write.html @@ -90,13 +90,13 @@
-

+

The fss_basic_write program is a tool for generating strings that follow the FSS-0000 (Basic) standard.

-

+

This tool is designed to be scriptable and accepts piped input using a special format.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -241,25 +241,25 @@ -

+

This special piped input format uses the ASCII Backspace character '\b' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).

-

+

The Backspace character '\b' (U+0008) is used to designate the start of a Content.

-

+

The Form Feed character '\f' (U+000C) is used to designate the end of the last Content.

-

+

The Vertical Line character '\v' (U+000B) is used to ignore a Content range, which does nothing in this program.

-

+

For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.

-

+

The FSS-0000 (Basic) specification does not support multi-line Content, therefore the parameter --prepend does nothing.

-

+

This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.

diff --git a/documentation/fss_embedded_list_read.html b/documentation/fss_embedded_list_read.html index 3182b5b..4024fd0 100644 --- a/documentation/fss_embedded_list_read.html +++ b/documentation/fss_embedded_list_read.html @@ -90,13 +90,13 @@
-

+

The fss_embedded_list_read program is a tool for reading and processing strings that follow the FSS-0008 (Embedded List) standard.

-

+

This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -266,16 +266,16 @@ -

+

All numeric positions (indexes) start at 0 instead of 1.

-

+

For example, a file of 17 lines would range from 0 to 16.

-

+

When using the --depth option, an order of operations is enforced on the parameters.

-

+

When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:

@@ -289,47 +289,47 @@
--name
An Object name at the specified depth.
-

+

The parameter --depth must be in numeric order, but values in between may be skipped.

-

+

The parameter --select selects a Content column.

-

+

Specify both --object and the --total parameters to get the total objects.

-

+

When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.

-

+

This program may support parameters, such as --depth or --select, even if not supported by the standard.

-

+

This is done to help ensure consistency for scripting.

-

+

For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.

-

+

For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.

-

+

The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.

-

+

When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.

-

+

Both the Object and Content printed are already escaped.

-

+

Both the Object and Content are separated by a New Line character '\n' (U+000A).

-

+

The parameter --delimit accepts the following:

@@ -352,19 +352,19 @@
A number, zero or lesser, followed by a -
(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).
-

+

The --delimit parameter may be specified multiple times to customize the delimit behavior.

-

+

The --delimit values none and all, overrule all other delimit values.

-

+

The parameters --columns and --select refer to a Content column.

-

+

The word "column" is being loosely defined to refer to a specific Content.

-

+

This is not to be confused with a depth.

diff --git a/documentation/fss_embedded_list_write.html b/documentation/fss_embedded_list_write.html index da85268..4d507c0 100644 --- a/documentation/fss_embedded_list_write.html +++ b/documentation/fss_embedded_list_write.html @@ -90,13 +90,13 @@
-

+

The fss_embedded_list_write program is a tool for generating strings that follow the FSS-0008 (Embedded List) standard.

-

+

This tool is designed to be scriptable and accepts piped input using a special format.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -241,25 +241,25 @@ -

+

This special piped input format uses the ASCII Backspace character '\b' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).

-

+

The Backspace character '\b' (U+0008) is used to designate the start of a Content.

-

+

The Form Feed character '\f' (U+000C) is used to designate the end of the last Content.

-

+

The Vertical Line character '\v' (U+000B) is used to ignore a Content range, which does nothing in this program.

-

+

For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.

-

+

The FSS-0008 (Embedded List) specification does not support quoted names, therefore the parameters --single and --double do nothing.

-

+

This program uses the parameter --ignore, which designates to not escape any valid nested Object or Content within some Content. This parameter requires two values. This parameter is not used for ignoring anything from the input pipe. This parameter must be specified after a --content parameter and this applies only to the Content represented by that specific --content parameter.

diff --git a/documentation/fss_extended_list_read.html b/documentation/fss_extended_list_read.html index 5e829ba..38ba727 100644 --- a/documentation/fss_extended_list_read.html +++ b/documentation/fss_extended_list_read.html @@ -90,13 +90,13 @@
-

+

The fss_extended_list_read program is a tool for reading and processing strings that follow the FSS-0003 (Extended List) standard.

-

+

This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -266,16 +266,16 @@ -

+

All numeric positions (indexes) start at 0 instead of 1.

-

+

For example, a file of 17 lines would range from 0 to 16.

-

+

When using the --depth option, an order of operations is enforced on the parameters.

-

+

When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:

@@ -289,47 +289,47 @@
--name
An Object name at the specified depth.
-

+

The parameter --depth must be in numeric order, but values in between may be skipped.

-

+

The parameter --select selects a Content column.

-

+

Specify both --object and the --total parameters to get the total objects.

-

+

When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.

-

+

This program may support parameters, such as --depth or --select, even if not supported by the standard.

-

+

This is done to help ensure consistency for scripting.

-

+

For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.

-

+

For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.

-

+

The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.

-

+

When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.

-

+

Both the Object and Content printed are already escaped.

-

+

Both the Object and Content are separated by a New Line character '\n' (U+000A).

-

+

The parameter --delimit accepts the following:

@@ -352,19 +352,19 @@
A number, zero or lesser, followed by a -
(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).
-

+

The --delimit parameter may be specified multiple times to customize the delimit behavior.

-

+

The --delimit values none and all, overrule all other delimit values.

-

+

The parameters --columns and --select refer to a Content column.

-

+

The word "column" is being loosely defined to refer to a specific Content.

-

+

This is not to be confused with a depth.

diff --git a/documentation/fss_extended_list_write.html b/documentation/fss_extended_list_write.html index b38d718..5ac41c6 100644 --- a/documentation/fss_extended_list_write.html +++ b/documentation/fss_extended_list_write.html @@ -90,13 +90,13 @@
-

+

The fss_extended_list_write program is a tool for generating strings that follow the FSS-0003 (Extended List) standard.

-

+

This tool is designed to be scriptable and accepts piped input using a special format.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -241,25 +241,25 @@ -

+

This special piped input format uses the ASCII Backspace character '\b' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).

-

+

The Backspace character '\b' (U+0008) is used to designate the start of a Content.

-

+

The Form Feed character '\f' (U+000C) is used to designate the end of the last Content.

-

+

The Vertical Line character '\v' (U+000B) is used to ignore a Content range, which does nothing in this program.

-

+

For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.

-

+

The FSS-0003 (Extended List) specification does not support quoted names, therefore the parameters --single and --double do nothing.

-

+

This program uses the parameter --ignore, which designates to not escape any valid nested Object or Content within some Content. This parameter requires two values. This parameter is not used for ignoring anything from the input pipe. This parameter must be specified after a --content parameter and this applies only to the Content represented by that specific --content parameter.

diff --git a/documentation/fss_extended_read.html b/documentation/fss_extended_read.html index 9a304ab..4a36d35 100644 --- a/documentation/fss_extended_read.html +++ b/documentation/fss_extended_read.html @@ -90,13 +90,13 @@
-

+

The fss_extended_read program is a tool for reading and processing strings that follow the FSS-0001 (Extended) standard.

-

+

This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -266,16 +266,16 @@ -

+

All numeric positions (indexes) start at 0 instead of 1.

-

+

For example, a file of 17 lines would range from 0 to 16.

-

+

When using the --depth option, an order of operations is enforced on the parameters.

-

+

When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:

@@ -290,47 +290,47 @@
-

+

The parameter --depth must be in numeric order, but values in between may be skipped.

-

+

The parameter --select selects a Content column.

-

+

Specify both --object and the --total parameters to get the total objects.

-

+

When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.

-

+

This program may support parameters, such as --depth or --select, even if not supported by the standard.

-

+

This is done to help ensure consistency for scripting.

-

+

For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.

-

+

For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.

-

+

The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.

-

+

When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.

-

+

Both the Object and Content printed are already escaped.

-

+

Both the Object and Content are separated by a space.

-

+

The parameter --delimit accepts the following:

@@ -353,19 +353,19 @@
A number, zero or lesser, followed by a -
(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).
-

+

The --delimit parameter may be specified multiple times to customize the delimit behavior.

-

+

The --delimit values none and all, overrule all other delimit values.

-

+

The parameters --columns and --select refer to a Content column.

-

+

The word "column" is being loosely defined to refer to a specific Content.

-

+

This is not to be confused with a depth.

diff --git a/documentation/fss_extended_write.html b/documentation/fss_extended_write.html index a687017..bea5ff8 100644 --- a/documentation/fss_extended_write.html +++ b/documentation/fss_extended_write.html @@ -89,13 +89,13 @@
-

+

The fss_extended_write program is a tool for generating strings that follow the FSS-0001 (Extended) standard.

-

+

This tool is designed to be scriptable and accepts piped input using a special format.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -166,10 +166,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -240,25 +240,25 @@ -

+

This special piped input format uses the ASCII Backspace character '\b' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).

-

+

The Backspace character '\b' (U+0008) is used to designate the start of a Content.

-

+

The Form Feed character '\f' (U+000C) is used to designate the end of the last Content.

-

+

The Vertical Line character '\v' (U+000B) is used to ignore a Content range, which does nothing in this program.

-

+

For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.

-

+

The FSS-0001 (Extended) specification does not support multi-line Content, therefore the parameter --prepend does nothing.

-

+

This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.

diff --git a/documentation/fss_identify.html b/documentation/fss_identify.html index f9f825e..ff5eed9 100644 --- a/documentation/fss_identify.html +++ b/documentation/fss_identify.html @@ -90,13 +90,13 @@
-

+

The fss_identify program is a tool for processing strings in an attempt to identify the FSS file format based on FSS header comments.

-

+

This program doesn't perforrm any special heuristic. It only checks for the special FSS header and reports what it finds.

-

+

This tool is designed to be scriptable but does not accept piped input.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -221,16 +221,16 @@ -

+

The --line parameter refers to the file lines and not the lines in a given file.

-

+

If neither the --object nor --content are specified, then the default behavior is to print both.

-

+

When specifying the --total parameter, neither the --object nor the --content parameter may be specified.

-

+

An FSS file is identified by the format "# Object-Content" where the Object, is a machine-name representing the name and may only consist of "word" characters and the Content is a 4-digit hexidecimal number representing a particular variant of the Object. This identifier, if provided, must exist on the first line in a file and must begin with the pound character: "#". White space must follow this pound character. There may be multiple Object and Content pairs, separated by white space, such as: "# fss-0002 fss-0000 iki-0002".

diff --git a/documentation/fss_payload_read.html b/documentation/fss_payload_read.html index 859d8a3..81057c0 100644 --- a/documentation/fss_payload_read.html +++ b/documentation/fss_payload_read.html @@ -90,13 +90,13 @@
-

+

The fss_payload_read program is a tool for reading and processing strings that follow the FSS-000E (Payload) standard.

-

+

This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -266,16 +266,16 @@ -

+

All numeric positions (indexes) start at 0 instead of 1.

-

+

For example, a file of 17 lines would range from 0 to 16.

-

+

When using the --depth option, an order of operations is enforced on the parameters.

-

+

When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:

@@ -289,47 +289,47 @@
--name
An Object name at the specified depth.
-

+

The parameter --depth must be in numeric order, but values in between may be skipped.

-

+

The parameter --select selects a Content column.

-

+

Specify both --object and the --total parameters to get the total objects.

-

+

When both --at and --name parameters are specified (at the same depth), the --at parameter value will be treated as a position relative to the specified --name parameter value.

-

+

This program may support parameters, such as --depth or --select, even if not supported by the standard.

-

+

This is done to help ensure consistency for scripting.

-

+

For parameters like --depth, if the standard doesn't support nested Content, then only a depth of 0 would be valid.

-

+

For parameters like --select, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.

-

+

The parameter --trim will remove leading and trailing white spaces when selecting objects or when printing objects.

-

+

When specifying both the --object parameter and the --content parameter, the entire Object and Content are printed, including the formatting.

-

+

Both the Object and Content printed are already escaped.

-

+

Both the Object and Content are separated by a New Line character '\n' (U+000A).

-

+

The parameter --delimit accepts the following:

@@ -352,28 +352,28 @@
A number, zero or lesser, followed by a -
(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).
-

+

The --delimit parameter may be specified multiple times to customize the delimit behavior.

-

+

The --delimit values none and all, overrule all other delimit values.

-

+

The parameters --columns and --select refer to a Content column.

-

+

The word "column" is being loosely defined to refer to a specific Content.

-

+

This is not to be confused with a depth.

-

+

As an exceptional case, a --depth of 1 applies only to the explicit Object of "header".

-

+

Content at this depth is processed as FSS-0001 (Extended).

-

+

The Content of the explicit Object of 'payload' will not contain any Content close pipe control codes when using --pipe.

diff --git a/documentation/fss_payload_write.html b/documentation/fss_payload_write.html index 4d8ba1b..98f2056 100644 --- a/documentation/fss_payload_write.html +++ b/documentation/fss_payload_write.html @@ -90,13 +90,13 @@
-

+

The fss_payload_write program is a tool for generating strings that follow the FSS-000E (Payload) standard.

-

+

This tool is designed to be scriptable and accepts piped input using a special format.

-

+

This tool shares parameters between with the other FSS Read and Write programs to make scripting consistent across the FSS Read and Write programs even if any given program neither needs nor uses the parameter.

@@ -167,10 +167,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -241,25 +241,25 @@ -

+

This special piped input format uses the ASCII Backspace character '\b' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).

-

+

The Backspace character '\b' (U+0008) is used to designate the start of a Content.

-

+

The Form Feed character '\f' (U+000C) is used to designate the end of the last Content.

-

+

The Vertical Line character '\v' (U+000B) is used to ignore a Content range, which does nothing in this program.

-

+

For the pipe, an Object is terminated by either a Backspace character '\b' (U+0008) or a Form Feed character '\f' (U+000C). The end of the pipe represents the end of any Object or Content.

-

+

The FSS-000E (Payload) specification does not support quoted names, therefore the parameters --single and --double do nothing.

-

+

This program does not use the parameter --ignore, which therefore does nothing. This parameter requires two values.

diff --git a/documentation/fss_status_code.html b/documentation/fss_status_code.html index 8b56ac5..acd8183 100644 --- a/documentation/fss_status_code.html +++ b/documentation/fss_status_code.html @@ -90,10 +90,10 @@
-

+

The fss_status_code program is a tool for interpretting and changing the status codes received from programs into code words or vice-versa. This is intended to be easily scriptable. The code words are still machine-friendly and scriptable.

-

+

This program handles standard FLL status codes as well as FSS status codes. The max status code supported is represented by the code words F_fss_status_code_last.

@@ -164,10 +164,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

diff --git a/documentation/iki_read.html b/documentation/iki_read.html index ec40260..dde26f0 100644 --- a/documentation/iki_read.html +++ b/documentation/iki_read.html @@ -90,16 +90,16 @@
-

+

The iki_read program is a tool for processing strings that follow the IKI standard, specifically IKI-0000 (Unrestricted).

-

+

This tool is designed to be scriptable and accepts piped input.

-

+

Different ways of interpreting and printing strings are available.

-

+

The entire string can be printed, replacing all IKI Variables and even allowing for primitive substitution or only the IKI Variables (or their Content) can be printed.

@@ -170,10 +170,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -254,7 +254,7 @@ -

+

The -r/--replace option requires 2 additional parameters: <vocabulary> <with>.

@@ -265,7 +265,7 @@
with
The new string to use as the substitute.
-

+

The -s/--substitute option requires 3 additional parameters: <vocabulary> <replace> <with>.

@@ -279,10 +279,10 @@
with
The new string to use as the substitute.
-

+

The vocabulary and replacement are case-sensitive and must exactly match.

-

+

The -W/--wrap option requires 3 additional parameters: <vocabulary> <before> <after>.

@@ -296,16 +296,16 @@
after
The string to append.
-

+

The difference between -r/--replace and -s/--substitute is that the -r/--replace option substitutes all matching vocabulary names and the -s/--substitute option substitutes all matching vocabulary names that must also have the given matching content.

-

+

The -s/--substitute option takes priority over the -r/--replace option when matching the same variable.

-

+

The -W/--wrap option is ignored when the -s/--substitute option is matching the same variable.

-

+

The default behavior is to only display content portion of the IKI variable.

diff --git a/documentation/iki_write.html b/documentation/iki_write.html index d1b50da..782d83b 100644 --- a/documentation/iki_write.html +++ b/documentation/iki_write.html @@ -89,10 +89,10 @@
-

+

The iki_write program is a tool for generating strings that follow the IKI standard, specifically the IKI-0000 (Unrestricted) standard.

-

+

This tool is designed to be scriptable and accepts piped input using a special format.

@@ -163,10 +163,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -217,7 +217,7 @@ -

+

This special piped input format uses the ASCII form-feed character '\f' (U+000C) as a separator.

diff --git a/documentation/status_code.html b/documentation/status_code.html index b8a651d..f33cf72 100644 --- a/documentation/status_code.html +++ b/documentation/status_code.html @@ -90,10 +90,10 @@
-

+

The status_code program is a tool for interpretting and changing the status codes received from programs into code words or vice-versa. This is intended to be easily scriptable. The code words are still machine-friendly and scriptable.

-

+

This tool only handles standard FLL status codes. The max status code supported is represented by the code words F_status_code_last.

@@ -164,10 +164,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte code. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

diff --git a/documentation/utf8.html b/documentation/utf8.html index 166388e..5f1dd24 100644 --- a/documentation/utf8.html +++ b/documentation/utf8.html @@ -90,19 +90,19 @@
-

+

The UTF8 program is a tool for converting from a UTF-8 byte sequence to the Unicode code point. The byte sequence can also be referred to as the binary representation of the code even though the byte sequence is considered text. The term "byte sequence" here is used to refer to a sequence of bytes intended to represent something, which in this case is a Unicode character. The Unicode code point is the Unicode designation uniquely identifying that particular sequence. The Unicode code point is not specific to UTF-8 and persists across different encodings, such as UTF-16.

-

+

The idea behind the UTF8 program is to provide the answer to the question of what some special UTF-8 character is or to provide a way to create the UTF-8 character given the Unicode code point.

-

+

This tool is intended to be scriptable, should handle both piped data and files, and can convert entire files.

-

+

This tool can be used to validate a given byte sequence or can be used to get the character width of some byte sequence or code point.

-

+

This tool can be used to store binary data in a text-friendly format and then restore the binary data.

@@ -173,10 +173,10 @@ -

+

The +q/++quiet parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the utf8 program is to print the Unicode code point or the UTF-8 byte sequence. The +q/++quiet will not suppress this output. The new line printed at the end of the program, is however, not printed. The +q/++quiet is ideal for using in scripting to help guarantee more consistent and controlled output.

-

+

The +n/++no_color simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.

@@ -262,19 +262,19 @@ -

+

This program establishes a pattern for some of the parameters. The parameters that represent a "from" use lower case short characters and the parameters that represent a "to" use upper case short characters. For short parameters that have both a "from" and a "to", they use the same character with their case being different.

-

+

The default behavior is to assume the expected input is byte sequence from the command line to be output to the screen as codepoints.

-

+

Multiple input sources are allowed but only a single output destination is allowed.

-

+

When using the parameter --verify, no data is printed and 0 is returned if valid or 1 is returned if invalid.

-

+

When using the parameter --to_combining with the parameter --to_width, the 'C' character is printed to represent the combining and the digits are used to represent widths. The combining characters should be considered 1-width by themselves or 0-width when combined.

diff --git a/fll.html b/fll.html index 4dcc395..46d28b2 100644 --- a/fll.html +++ b/fll.html @@ -80,10 +80,10 @@
-

+

The Featureless Linux Library is a collection of standards, specifications, and software for providing a suite of Linux focused functionality. One of the main goal is to play on the word "feature" and provide a featureless library. That is, a library that is not always changing and being rewritten breaking API and ABI to introduce features. How this is achieved and to what extend this is achieved and followed is to be described in the documentation and specifications.

-

+

The project can be found in three locations.

    @@ -91,10 +91,10 @@
  1. Github
  2. Gitlab
-

+

The source code contains the plain text documentation describing the projects and specifications describing the standards. This website will be updated to present this material.

-

+

In addition to being a library, the FLL also provides several programs. Some programs, such as Featureless Make (a build system similar to GNU Make), are forever part of the FLL. Other programs, such as the Controller program, will eventually bud off into their own project space.

@@ -105,7 +105,7 @@

Current Release

-

+

The current stable release series of FLL is 0.6. At this time, the official stable release for the 0.6 series is not yet released but a release candidate is already out. The release candidate is version 0.5.9.

diff --git a/licenses.html b/licenses.html index 5a031ff..c4a87e4 100644 --- a/licenses.html +++ b/licenses.html @@ -86,16 +86,16 @@

Website Licenses

-

+

There are multiple licenses for content on this website and content served from this website (such as a Distribution). The website documentation covers only the parts of the website that are not already under an existing license. The specifications are under a different license. All files, be they binaries or text files, provided by the distributions have their own licenses. The Featureless Linux Library and all files provided along with it have their own licenses. Documentation associated with each of these projects are under a different license as defined by their associated project.

-

+

Everything else on this website, such as this news blog, that is content is under CC By SA 4.0 license.

-

+

Everything else on this website that is source code, including HTML markup, CSS, and Javascript, is under LGPLv2.1+ license.

-

+

© 2022 Kevin Day

@@ -106,10 +106,10 @@

Kevux Distribution Licenses

-

+

There is currently only a single Kevux distribution, called Turtle Kevux. This distribution is a collection of numerous software projects and their related files. Each of these is under their own respective license, which is provided with their respective source code. The Kevux-specific code, such as the Turtle Kevux Installation Scripts is under the LGPLv2.1+ license. The TKIS also heavily utilizes the Featureless Make system as well as numerous Featureless Settings Specification processing programs that are also under the LGPLv2.1+ license.

-

+

Each project is copyrighted by their respective authors. The Kevux Distribution specific files are copyrighted by Kevin Day.

@@ -120,12 +120,12 @@

Featureless Linux Library Licenses

-

+

The FLL source code is © 2007-2022 Kevin Day under the LGPLv2.1+ license.

-

+

The FLL standards and specifications are © 2007-2022 Kevin Day under the OSLv1+. The OSLv1+ is under active development and may be of a lesser version, such as 0.5. For simplicity, these are being referred to as 1.0 as the goal and intent of the license grant is for version 1 or greater. Therefore any version less than 1 is implicitly assumed to be of version 1 or greater. -

+

Documentation contained within the FLL that is not under a specification license is © 2007-2022 Kevin Day under the CC By SA 4.0.

@@ -136,7 +136,7 @@

Individual Projects Licenses

-

+

All of the projects listed on the Projects pages are either part of the FLL or are based on the FLL. As a result they are © 2007-2022 Kevin Day under the LGPLv2.1+.

@@ -147,10 +147,10 @@

Documentation Licenses

-

+

Documentation that is used to described specifications (included Application Programming Interfaces) are © 2007-2022 Kevin Day under the OSLv1+.

-

+

ALl remaining documentation that does not fall under the OSLv1+ are © 2007-2022 Kevin Day under the CC By SA 4.0.

diff --git a/news.html b/news.html index cfcb23e..6e66fba 100644 --- a/news.html +++ b/news.html @@ -93,19 +93,19 @@
OpenMoko FreeRuner, Ubuntu Aquaris E4.5, Pinephone Postmarket Edition, and Librem5 phones. -

+

I am a hacker, a tinkerer, one who likes to modify things into what I desire. I don't want somebody to do anything for me. I want to do anything for myself. While this does not mean I want to do everything, this does mean that want I want to do, I am the one to do it. In this case, I want to tweak and configure and use my phone as I see fit. Open-source gives me the opportunity to review, vet, and configure my computers as I see fit. Liberty such as this is the air that fills my lungs as I sleep at night, dreaming.

-

+

When I first discovered I could have a phone that respects my freedom, my privacy, and my liberty, I was ecstatic. I don't have to be weigh down by horrible interfaces, horrible software, and horrible flexibility that other people like or otherwise think is a good idea. I would have the opportunity to tweak and adjust the ideas as I see fit within my own personal tolerances and willingness to put the effort in.

-

+

I supported several phones over years, such as the OpenMoko Freerunner, an embarrassing failure in the community to the leap forward pioneered by the Unbuntu Aquaris. Many of these phones ultimately failed or faded into the night due to a hostile industry, market, and regulations. The Librem5 from Purism has now stepped up to the plate, learned from the past mistakes, and delivered a phone that, while not complete or ideal, lives up to their standards and has thus far survived numerous, and blatant, hostile industry actions and economic disasters.

-

+

I finally have my Librem5. I have had to quite painfully, if not patiently, wait for my phone to actually be shipped years late (due to global economic situations). This is my review after having used the phone with respect to the other open-source phones I have used, namely the Pinephone from Pine64. I have discovered good things, bad things, horrible things, and great things about this phone.

-

+

Continue reading…

@@ -117,13 +117,13 @@
-

+

Updated the FLL specifications and made them available on the website.

-

+

Basic styling is applied to make the specifications reasonably readable on a website. I avoided doing any complicated designs so that I can focus on other tasks (such as making a stable release). I took a shortcut on the example results by using the <pre> tag.

-

+

Continue reading…

@@ -135,13 +135,13 @@
-

+

Update the website, bringing in my initial pass at the documentation for each of the programs provided by the FLL project. Most of this documentation is copied from the help of each program and any improvements or deviations are incidental.

-

+

While working on the documentation, I discovered and fixed random problems. In particular, the iki_read program in the release candidate has a major regression where it doesn't do anything. This is the result of a very minor mistake in passing the wrong size variable to the file read functions. Essentially, the iki_read program is only processing files of length 0 and as a result never produces any output. This is now fixed upstream and I am even happier with the practice of using release candidates.

-

+

Continue reading…

@@ -153,13 +153,13 @@
-

+

With a stable release of the Featureless Linux Library around the corner and the resuming of development of the Turtle Kevux Distribution, it is now time to refresh the website.

-

+

The available functionality in the HTML standard has changed a decent amount since this website was last updated. This new design focuses on a very primitive look and feel utilizing a lot of the built in visual tools available to the HTML5 and CSS3 languages. The website is being built in stages, to allow for prioritizing getting information out over getting information looking great. This website even actively uses UTF-8.

-

+

Continue reading…

diff --git a/news/2022_05_01-website_redesign.html b/news/2022_05_01-website_redesign.html index b053a35..6ec5676 100644 --- a/news/2022_05_01-website_redesign.html +++ b/news/2022_05_01-website_redesign.html @@ -70,25 +70,25 @@
-

+

With a stable release of the Featureless Linux Library around the corner and the resuming of development of the Turtle Kevux Distribution, it is now time to refresh the website.

-

+

The available functionality in the HTML standard has changed a decent amount since this website was last updated. This new design focuses on a very primitive look and feel utilizing a lot of the built in visual tools available to the HTML5 and CSS3 languages. The website is being built in stages, to allow for prioritizing getting information out over getting information looking great. This website even actively uses UTF-8.

-

+

The website is now built to be more "responsive" (as the buzz-word goes). I do not like the responsive design because it forces assumptions that may not be desirable for the end-user (which is generally what I plagues me). I took an approach to utilize the device with CSS3 properties to ensure that the website looks like a proper website even when your window size is small but when you are on a small device it uses the more mobile look and feel. This is implemented entirely without Javascript, including the mobile menu. The downside of this is that the page gets reloaded on these kinds of interactions. I will eventually write an optional Javascript file that will handle these kinds of interactions without page reloads. I have tested this mobile view on my Pinephone but I do not have other devices to test and cannot guarantee the presentation is displayed as intended. This website is also intended to be automatically print-friendly.

-

+

The Turtle Kevux Distribution is having several of the less used files removed so that I can reclaim some of the much need disk space. There latest Turtle Kevux Distribution is undergoing heavy modification and revitalization. The Featureless Linux Library will be incorporated into the Turtle Kevux Distribution. Some of the concepts from Dragonfly Kevux Distribution are being merged into the Turtle Kevux Distribution. The Dragonfly Kevux Distribution is being put on hold until all other priorities are met.

-

+

The Featureless Linux Library itself has had major improvements and will ultimately be used to help generate this static website. For now, I am just manually creating the pages. This will quickly become hard to manage but hopefully I will write the processing scripts to generate this website before that happens.

-

+

I also plan on sending out more communications, but I have yet to figure out when and how often I shall do this. -

-

+

+

Kevin Day

diff --git a/news/2022_05_06-basic_program_documentation.html b/news/2022_05_06-basic_program_documentation.html index 27f1993..cb60d2d 100644 --- a/news/2022_05_06-basic_program_documentation.html +++ b/news/2022_05_06-basic_program_documentation.html @@ -70,22 +70,22 @@
-

+

Update the website, bringing in my initial pass at the documentation for each of the programs provided by the FLL project. Most of this documentation is copied from the help of each program and any improvements or deviations are incidental.

-

+

While working on the documentation, I discovered and fixed random problems. In particular, the iki_read program in the release candidate has a major regression where it doesn't do anything. This is the result of a very minor mistake in passing the wrong size variable to the file read functions. Essentially, the iki_read program is only processing files of length 0 and as a result never produces any output. This is now fixed upstream and I am even happier with the practice of using release candidates.

-

+

The website has been updated with an appropriate .htaccess file to better handle paths. I even decided to further emphasize the retro-internet feel by redirecting directory paths to html files, if they exist. I imagine this may annoy some of the people out there. Minor problems here and there have been addressed as I discovered them.

-

+

This website is also designed to be fully downloadable and readable locally (and even offline). Whenever I have notable changes on the website, I will update the downloadable tarball of this website.

-

+

A Source Code link has been added on the index page (the main news page) as a way for people who just want a fast way to get to the latest code.

-

+

Kevin Day

diff --git a/news/2022_05_16-fll_specifications_added.html b/news/2022_05_16-fll_specifications_added.html index 2ea74d8..c3a6a1f 100644 --- a/news/2022_05_16-fll_specifications_added.html +++ b/news/2022_05_16-fll_specifications_added.html @@ -70,22 +70,22 @@
-

+

Updated the FLL specifications and made them available on the website.

-

+

Basic styling is applied to make the specifications reasonably readable on a website. I avoided doing any complicated designs so that I can focus on other tasks (such as making a stable release). I took a shortcut on the example results by using the <pre> tag.

-

+

Only the main FLL specification pages are updated. The specifications (or links to specifications) on the programs pages have not been updated. There is still quite a lot to do in regards to documenting the programs.

-

+

Several mistakes on the website, such as incorrect canonical addresses, are now fixed.

-

+

I have also added an informal definition of my Completeness Theorem that I always used for just about all of my personal work. This has been in use by the FLL since I first started working on it. I believe that I just never formally (or informally) wrote down my theory (I believe that the concepts for this were touched on in my thesis).

-

+

Kevin Day

diff --git a/news/2022_06_04-librem_to_freedom.html b/news/2022_06_04-librem_to_freedom.html index 3e4757d..a58d55c 100644 --- a/news/2022_06_04-librem_to_freedom.html +++ b/news/2022_06_04-librem_to_freedom.html @@ -74,11 +74,11 @@
-

Forward

+

Forward

-

+

I have always thought a phone is a computer and should be seen as a common computer. A common computer, very simply, is a machine that runs software. Software itself is essentially an extension of thought. Thought is yours and yours alone. Thoughts may be shared or withheld as one sees fit. Thoughts are communicated via language, such as a programming language. These thoughts, as represented by a given language through some software, are manifested into reality though the hardware that is a computer. What goes in a computer or comes out of a computer is and should be yours alone at your discretion for computers that belong to you, such as a personal phone. Like how ones mind may contain many thoughts, some that belong to others that have been communicated via some language and others ones own, a computer may contain different software from many different minds than oneself. Regardless of what is or is not on a phone, only the individual whom the phone belongs to should decide what comes in and goes out that phone regardless of whose thoughts they may have originated from. From software programs to text files and voice recordings, this is yours and yours alone.

@@ -86,23 +86,23 @@
-

The Dream for an Open Source Phone

+

The Dream for an Open Source Phone

-

+

I am a hacker, a tinkerer, one who likes to modify things into what I desire. I don't want somebody to do anything for me. I want to do anything for myself. While this does not mean I want to do everything, this does mean that want I want to do, I am the one to do it. In this case, I want to tweak and configure and use my phone as I see fit. Open-source gives me the opportunity to review, vet, and configure my computers as I see fit. Liberty such as this is the air that fills my lungs as I sleep at night, dreaming.

-

+

When I first discovered I could have a phone that respects my freedom, my privacy, and my liberty, I was ecstatic. I don't have to be weigh down by horrible interfaces, horrible software, and horrible flexibility that other people like or otherwise think is a good idea. I would have the opportunity to tweak and adjust the ideas as I see fit within my own personal tolerances and willingness to put the effort in.

-

+

I supported several phones over years, such as the OpenMoko Freerunner, an embarrassing failure in the community to the leap forward pioneered by the Unbuntu Aquaris. Many of these phones ultimately failed or faded into the night due to a hostile industry, market, and regulations. The Librem5 from Purism has now stepped up to the plate, learned from the past mistakes, and delivered a phone that, while not complete or ideal, lives up to their standards and has thus far survived numerous, and blatant, hostile industry actions and economic disasters.

-

+

I finally have my Librem5. I have had to quite painfully, if not patiently, wait for my phone to actually be shipped years late (due to global economic situations). This is my review after having used the phone with respect to the other open-source phones I have used, namely the Pinephone from Pine64. I have discovered good things, bad things, horrible things, and great things about this phone.

-

+

The Pinephone that I have uses mostly the same software as the Librem5. This offers a great comparison. However, much of this software is actually by the Purism. The resulting differences are primarily, but not mostly, the hardware differences.

@@ -110,34 +110,34 @@
-

The Experience

+

The Experience

-

+

I received the Librem5 phone, charged it up, and then powered it on. The first thing I encountered was the disk encryption. The default password is easy to guess and I did not have to look up documentation to figure it out. I am already familiar with the interface thanks to having installed it onto the Pinephone. Most of the software looked the same, except for the camera. I will discuss more on the camera program later on in this document.

Librem5 phone, manual, and box. -

+

First things first, I need to change the user name and the encryption keys. I've never bothered with this on the Pinephone and I do not know how different doing this on the Pinephone will be. As for the Librem5 phone, I found changing the user name did not actually change the user name. The problem is that what I call the user name is the system account name. What the Librem5 calls the user name is the displayed account name. Fair enough.

I recommend backing up your contacts.db file. This file should appear after you first start and configure the Contacts program. The contacts.db file can be located by using the following command on the command line from your home directory: # find -name contacts.db
-

+

I open up the command line and I cannot login as root. Really? What a pain. The solution is to use sudo -s passwd to change the root password and then login. I then had to change several other files so that the normal user can use sudo properly as well. The appropriate credentials can now be established.

-

+

I rename the user, changing the home directory, updating the /etc/passwd, /etc/group, /etc/shadow, and several other account related files.

-

+

I rebooted the Librem5 phone and it failed to boot. Some part of the boot process is picky about the default name. I found that there is a Jumpdrive program that allows me to boot the phone and expose the disk to another computer. Purism actually provides their own special project, called Librem5 Flash Image for making this amazingly simple. These two tools when combined are amazing. I've never had an easier time accessing a phone over USB. I could access all files on a different machine as if it were a local disk drive.

-

+

The Librem5 Flash Image documentation could be improved because the default configuration installs without full disk encryption. I had to re-flash the Librem5 phone again once I discovered it to be unencrypted. The partition also had to be resized but thanks to the amazingly well designed software (the Jumpdrive program and the Librem5 Flash Image) I could just open up a graphical partition and easily fix this.

-

+

I now had easy access to all files on the disk. I found and fixed several of the situations related to the user name change. I also edited the /etc/fstab file to ensure that the filesystem is mounted as noatime.

@@ -147,7 +147,7 @@ UUID=00000000-0000-0000-0000-000000000001 / ext4 errors=remount-ro,noatime 0 1
-

+

I also edited the /etc/fstab file to ensure that the /tmp directory is mounted as a temporary file-system utilizing RAM.

@@ -162,7 +162,7 @@ tmpfs /tmp tmpfs noatime,size=1024M 0 0
-

+

I was able to boot my system and install my desired software. I installed quite a bit of software. Updates were performed. The details of different programs or problems I encountered are described in the sections following this.

@@ -170,39 +170,51 @@
-

The Battery, the Battery, the Battery

+

The Battery, the Battery, the Battery

-

+

While waiting an excessively long time to get my phone I have been hearing things about the battery. In my personal experience the battery life is closely comparable to the Pinephone. Both the Librem5 and the Pinephone have had problems with the batter life being short. These have both been fixed from a state of horrible to a state of acceptable by the use of software driver improvements. When I first received my Librem5 phone, the batter life was short. This short life was solved by a simple software update and phone reboot.

-

+

In physical terms, the Librem5 is a lot easier to remove than the battery from the Pinephone. The batter in the Librem5 is significantly larger than the battery in the Pinephone. I suspect they may last about the same amount of time but I have not bothered to test this.

-

+

Both the Librem5 and the Pinephone support suspend and it works well on both. The user interface could use some significant improvement by allowing me to specify when to suspend rather than use some pre-configured set. In fact, I want a program to call just to automatically suspend when I say rather than on some schedule.

+ +
+
+

2022 / 06 / 11 Update

+
+ +
+

+ I have performed some additional testing and found that the battery life can last quite a long time in the right conditions. I set only the cellular radio on (and with all of the other switches toggled off). I enabled suspend mode. Leaving the phone on over night (the initial charge is around 90% for this test) and found the battery to be between 40% and 50%. I believe that when the phone is idle and the cellular radio is on the phone should be able to achieve between 12 to 24 hours of battery life. This is a very rough approximation but this does provide promising results. +

+
+
-

The Librem5 Charger

+

The Librem5 Charger

The Librem5 charger. -

+

This deserves its own section separate from the battery. The provided charger seems cool. The charger looks cool. It is horrible, at least for American standard outlets. The flip switch is nice except that it wobbles and the connectors seem a little short. This results in sparks flying out of the socket. This charger is a fire hazard. The best position is with the part that collapsed opposite to gravity and it seems to work. If you accidentally touch or move the cable you can set off sparks and cause the connection to repeatedly disconnect and connect.

-

+

To make matters worse, the Librem5 documentation states that you must only use the charger provided by Librem5. You know, the fire hazard charger. Not going to happen. I went to a local store and got a 25 Watt power adapter that supports PPS (the Librem5 uses PPS).

-

+

Unlike the Pinephone, I have found the Librem5 requires more power to charge. A higher end power adapter like the ones marketed for high Wattage are recommended. I found that I can charge the Librem5 using a cheap low Amperage (low Wattage) adapter only when the phone is off.

-

+

The Librem5 only gets hot from charger when using one of these high powered chargers. I tested the Pinephone with the same adapter and found it also gets hot. I suspect the heating is more of a matter of the physics of the speed of the charge rather than a matter of the physics of the heat diffusion. I tested the Librem5 with a cheap low Amperage (low Wattage) adapter and found that the phone did not get significantly or otherwise noticeably hot.

@@ -210,38 +222,50 @@
-

The Librem5 Camera

+

The Librem5 Camera

-

+

I consider the camera embarrassing. The light sensitivity does not work properly. The camera program is clearly marked as developmental. I have to have a spotlight in on the target for the phone to get enough light to render anything on the screen. I believe the problem is a software problem. This is good news. Either a driver or a software update will fix the problem.

-

+

The Pinephone camera works reasonably well. Early on, the Pinephone had pathetic camera support as well and with software improvements the camera became usable. The Librem5 uses a modified version of the megapixels program. I attempted to install the original, unmodified version of megapixels and very quickly realized doing so is a bad idea. I did not go past the "Are you Sure?" part.

I recommend never attempting to install the original megapixels program on the Librem5. The entire set of Librem5 specific software is a knot of required dependencies. This would likely uninstall everything custom tailored to make the Librem5 work well. Most package managers lack the necessary logic to have real custom installs. I believe these package mangers should all abandon hard dependencies and instead use soft dependencies. If you still decide to go ahead with installing the megapixels program, then good luck and be prepared to completely re-install your phone.
-

+

Maybe in a few months from now an update will result in a fully working Librem5 camera. Until then, the Pinephone wins hands down when it comes to the camera.

+ +
+
+

2022 / 06 / 11 Update

+
+ +
+

+ I have discovered that the camera has buttons that simple do not appear as buttons to me. I am able to use these buttons to change the settings and make the camera picture usable. Changing these settings is not preserved. There is still some room for improvement but this is still great news. The camera is not as bad as I initially thought. Check out the "Shot on Librem" Librem Social board for pictures taken by numerous owners of the Librem5 phone. There is also a forum page about using Megapixels to make photographs. +

+
+
-

The Purism OpenPGP Card

+

The Purism OpenPGP Card

-

+

This is a specialty of the Librem5 that I have not notice in other phones. The card works great, you just push it in and then go. Follow the instructions to install the correct software, and the card should work.

-

+

If you play with the card, like I do, however, you may run into some problems. I decided to change the admin PIN using the gpg program. I select the change PIN. As I was typing the old PIN it suddenly went to another prompt before I hit enter. I thought maybe I accidentally hit enter. I then entered in the new PIN. The program then asked for confirmation and I re-entered the PIN. This gave me the impression that the PIN was properly changed. The gpg did something wrong. I typed in the PIN and it had a problem. I again figured I hit a wrong key on this atrocious keyboard and tried again. Come to find out they have an insanely short permanent lock out after three tries. I bricked the card.

-

+

Not all is lost. There is a factory reset the destroys everything on the card. I found a way to perform the factory reset thanks to Florian Wolters. With this factory reset code, you can never truly brick your card. The worst is that you lose the encryption keys. There are ways to back up the keys by creating them outside of the card and importing them but this is not to be discussed in this document.

@@ -272,17 +296,17 @@
-

Phone Calls

+

Phone Calls

-

+

Phone calls work out of the box and I have had very few problems. In very rare occasions I have had the modem refuse to work. Rebooting the machine does not solve the problem where the modem refuses to work. I had to power off the mode and then power it back on to fix this problem. This is exceptionally easy thanks to the Librem5 design.

-

+

There appears to be built in VoIP support. I have not tried this but it should be interesting to see it work.

-

+

There is also built in encrypted call support. I have not tried this yet.

@@ -290,20 +314,20 @@
-

Text messages

+

Text messages

-

+

Normal text messages work fine out of the box. Sending a picture does not.

-

+

When I tried sending a picture as a test it appeared to work but the other end did not received the picture. The other end happens to be a Pinephone. The Pinephone has massive problems with sending and receiving pictures over text messages as well. That means that I do not have a reliable way to test this without bothering some third-party. And asking some less-tech savvy person to spend some time calling me back and forth to confirm or deny that they received or did not receive a text is not a good idea.

-

+

I didn't test further because of a big problem this exposed. Infinite messages! No matter how many times I delete the test messages they keep re-appearing. I checked the modem using the mmcli program. This program does not make it easy to use the modem but as far as I can tell the message is not there. I checked the file-system and found chatty file database (I feel the strong urge to rant on the stupidity of an SQL database for local file settings here). Deleting this database file deletes every text message except the one I want to get rid off.

-

+

The only thing I can think of is that it is still somewhere in the modem and I need to study more on how to use mmcli program. I find the interface horrendous and I am considering writing a replacement to this program.

@@ -311,14 +335,14 @@
-

Screen Off Notification

+

Screen Off Notification

-

+

The Librem5 phone properly handles call and text message notification when the screen is off. This appears to work when the phone is in suspend as well. This is about the same as with the Pinephone.

-

+

The power notification light on the Librem5 is superior to that on the Pinephone. The light better communicates the state of the power and even will turn off after fully charged.

@@ -326,11 +350,11 @@
-

The Keyboard

+

The Keyboard

-

+

The keyboard on the Librem5 is horrible. I get the impression that the programmers, owners, or managers behind the Librem5 are more akin to the new age phone scroll users rather than the more old school keyboard users. The Pinephone uses the same software and has the same horrible keyboard.

@@ -338,11 +362,11 @@
-

The Pinephone Dock

+

The Pinephone Dock

-

+

I have the fancy version of the original Pinephone. This version comes with a dock. The dock works well on the Librem5 but only after I did a system update. I think there is more work to do because the Ethernet port is giving that special slow blink that indicates a hardware fault. More than likely a driver update is needed to fix this. If there is not some special souce code driver hack needed that the Pinephone uses then an eventual kernel update will get this working.

@@ -350,17 +374,17 @@
-

Usability

+

Usability

-

+

The Librem5 is in a bit of an awkward position. The Purism company, from how things appear to me, are marketing towards a security towards an average person using software and tools from a highly technical field.

-

+

The current day less-technical person compared to the traditional more-technical person have very different use cases. I have never owned one of these proprietary Android or Apple phones. Having said that, I believe that the interface is focused towards such an audience. I find such an interface tolerable but not very user-friendly.

-

+

I believe what the Librem5 provides achieves this with the exception of pictures. This exception is so big, that I might better word this as calling it the rule rather than the exception. Taking, sending, and receiving pictures is the bread and butter of the average user out in the wild. The Librem5 (and also the Pinephone for that matter) drops the ball on this. This is a major downside and I would argue is a requirement that should be immediately addressed, two years ago.

@@ -368,14 +392,14 @@
-

The Switches

+

The Switches

-

+

The switches. The Librem5 has switches on the side of the phone to physically disconnect the modem, the wireless and Bluetooth, and the camera and microphone. This is a major selling point of this phone and the Librem5 fully achieves this. The Pinephone of the falls short like comparing dust devil to a category 5 hurricane.

-

+

The switches are easy. They are also not easy to accidentally press. This is the product that I expected to get and I got it.

@@ -383,17 +407,17 @@
-

The Open-Source

+

The Open-Source

-

+

The one biggest advantage of the Librem5 phone is the open-source design. I can install and I have installed numerous programs on the system. I have even installed my FLL project and related programs onto it. No special or unusual action is needed. This is where the Ubuntu Aquaris fell short.

-

+

I should not need a system with large amounts of RAM (Gigabytes) to compile a single Megabyte program. The whole software design behind Ubuntu Aquaris, Android, and the Apple phones is not just embarrassingly bad, it is pathetic. Both the Librem5 and the Pinephone don't suffer from the digital mental disorder.

-

+

The open-firmware provided by the Librem5 and the security it offers is truly a hidden gem. This is not something easily shown. Good security is often an unsung hero. Undoubtedly the Librem5 will never truly get the good credit it deserves for the work and effort put into getting an open-firmware design up and running. The way this world currently is, this is an amazing feat. Truly amazing.

@@ -401,36 +425,36 @@
-

Bottom Line

+

Bottom Line

A Librem5 phone lying against a Pinephone. -

+

There are bad things about the Librem5 phone. Things have fallen short. Some are the fault of the company. Some are the fault of the current state of the world. Others are the fault of an industry that does not want to sell to customers willing to pay.

-

+

I argue that Librem5 has successfully navigated this mess and has thus far survived where all others failed. The Ubuntu Aquaris was defeated by both their Android-like development stack and the industry refusing to sell what Ubuntu needed.

-

+

The choice Purism made to design their own hardware has been a gamble. I would argue that this gamble has been worth it. Yes, there are growing pains. I am not happy about some of these pains and I do fault them for their failures in this regard (especially in regards to pictures).

-

+

The Librem5 phone is not ready for a regular user. Of course, none of the Linux phones have ever been in my experience. The Librem5 is so close to being ready for a regular user that I can almost taste it (metaphorically of course). Give them a few months. Give them a year. By then I hope to see many of these problems I have described here to be resolved. Give them a few years and I expect they will be able to get a better hardware form factor to be more portable and sleek.

-

+

I can get just about any software on this phone. I can use this phone a desktop machine. I can use this phone as a portable radio or satellite communication device. I have only scratched the surface of what is already possible with the current design of this phone. No jails. No hacking. Just using.

-

+

I think Librem5 has a chance to win. So long as they do not drop the ball. We are heading into a crazy future where the manufacturing and chipset is in a dire and bleak situation. If Purism can withstand these trials then they will likely have the best phone on the market, despite these growing pains.

-

+

I have used several open-source phones. Phones like the OpenMoko Freerunner, I did not get want I wanted. Phones like the Aquaris Ubuntu, I almost got what I wanted and I accepted the situation. Phones like the Pinephone, I got a phone that provides no software and accepted that. With the Librem5, I got the phone that I wanted and expected.

-

+

Kevin Day

diff --git a/not_found.html b/not_found.html index 4fca153..7fc86bd 100644 --- a/not_found.html +++ b/not_found.html @@ -73,7 +73,7 @@
-

+

No content found at the requested path. Please go back or consider visiting to the site index page.

diff --git a/projects.html b/projects.html index 6841a77..f569783 100644 --- a/projects.html +++ b/projects.html @@ -141,13 +141,13 @@

Programs

-

+

The Featureless Linux Library is a major project and has several sub-parts, including several programs. The FLL is broken up into multiple sub-projects that are libraries themselves or programs. This page describes those programs from FLL as well as any other programs and projects associated with Kevux Systems or Kevin Day.

-

+

Of particular note is that most, if not all, of the Kevux Systems programs are written to provide an API (and its respective ABI). This allows the programs themselves to be used as a library.

-

+

The programs themselves follow FLL design principles on making the interface human-friendly. Software should be a tool for humans, and not a tool for machines.

@@ -158,7 +158,7 @@

Byte Dump

-

+

This tool is a nifty way to get a UTF-8 friendly hexdump alternative.
The output is intended to honor some of the feel of hexdump but do so in an FLL way.

@@ -170,7 +170,7 @@

Control

-

+

This project is not complete and development is planned for the FLL 0.7 development series.

The goal of this is to communicate with the "Controller" program, such as starting or stopping services. @@ -183,14 +183,14 @@

Controller

-

+

This project is not complete and development is planned for the FLL 0.7 development series.

-

+

The goal of this is to provide task and service management similar to sysvinit, initng, and systemd.
This is designed to be used for booting the system as if it were /sbin/init.

-

+

This should be controllable from user-space via the "Control" program.

@@ -201,35 +201,35 @@

Featureless Make

-

+

The Featureless Make is the original program and goal of the FLL.
The GNU Make, Autoconf, and all those build processes are unnecessarily complex.

-

+

A major problem with these build systems is that they try to manage installation as well as compilation.
A build system should be just that a build system.
Trying to handle how the built package gets installed should be done by system administrators or distributors.
By avoiding this, the code becomes simpler, more "featureless", easier to maintain, and easier to hack.

-

+

The Featureless Make, also called Fake, provides two primary ways to compile C, C++, and possibly other compiled languages:

  • Using the "build" command.
  • Using the "make" command.
-

+

The build command is as simple as it can be and follows a Featureless Settings Specification (FSS).
The make command (and its respective fakefile) provides a more advanced interface for handling complex build processes or compiling languages other than C/C++.

-

+

The build command (and subsequently the make command) currently provide some hard coded program settings, such as the indexer "ar" runs ar rcs.
Eventually such things will be expanded into an FSS setting and made customizable.

-

+

Both the build and make commands support a small subset of make and autoconf functionality to make transitioning easier or make it easy to work alongside make and autoconf.

-

+

To help with understanding and using the Featureless Make program, fully functional example build settings and fakefiles are created for the program bzip (specifically version 1.0.8):

-

+

There is also a fakefile pre-configured to run GNU Make within itself to compile the Linux kernel fom source:

-

+

Bzip2 may be found here:

    @@ -257,7 +257,7 @@

    Firewall

    -

    +

    This is one of the earliest proof of concept and functional example of the FLL library.
    Now it is currently outdated, but it still remains operational as an iptables wrapper.
    This program is actively used on the Turtle Kevux distribution.
    @@ -271,7 +271,7 @@

    FSS Identify

    -

    +

    This is a program reading a file and determining what Featureless Settings Specification.
    This only detects files that provide an FSS header.

    @@ -283,7 +283,7 @@

    FSS Basic Read

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-0000 (Basic).
    This performs read operations related to the FSS-0000 (Basic) standard.

    @@ -295,7 +295,7 @@

    FSS Basic Write

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-0000 (Basic).
    This performs write operations related to the FSS-0002 (Basic) standard.

    @@ -307,7 +307,7 @@

    FSS Basic List Read

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-0002 (Basic List).
    This performs read operations related to the FSS-0002 (Basic List) standard.

    @@ -319,7 +319,7 @@

    FSS Basic List Write

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-0002 (Basic List).
    This performs write operations related to the FSS-0002 (Basic List) standard.

    @@ -331,7 +331,7 @@

    FSS Embedded List Read

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-0008 (Embedded List).
    This performs read operations related to the FSS-0008 (Embedded List) standard.

    @@ -343,7 +343,7 @@

    FSS Embedded List Write

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-0008 (Embedded List).
    This performs write operations related to the FSS-0008 (Embedded List) standard.

    @@ -355,7 +355,7 @@

    FSS Extended Read

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-0001 (Extended).
    This performs read operations related to the FSS-0001 (Extended) standard.

    @@ -367,7 +367,7 @@

    FSS Extended Write

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-0001 (Extended).
    This performs write operations related to the FSS-0001 (Extended) standard.

    @@ -379,7 +379,7 @@

    FSS Extended List Read

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-0003 (Extended List).
    This performs read operations related to the FSS-0003 (Extended List) standard.

    @@ -391,7 +391,7 @@

    FSS Extended List Write

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-0003 (Extended List).
    This performs write operations related to the FSS-0003 (Extended List) standard.

    @@ -403,11 +403,11 @@

    FSS Payload Read

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-000E (Payload).
    This performs read operations related to the FSS-000E (Payload) standard.
    -

    -

    +

    +

    The FSS-000E (Payload) is focused on network communication and is intended to be used inside a network packet.
    This program can be used to manually read a network packet or data from the network.

    @@ -419,11 +419,11 @@

    FSS Payload Write

    -

    +

    This is a program implementing the Featureless Settings Specification FSS-000E (Payload).
    This performs write operations related to the FSS-000E (Payload) standard.
    -

    -

    +

    +

    The FSS-000E (Payload) is focused on network communication and is intended to be used inside a network packet.
    This program can be used to manually write the payload portion of a network packet.

    @@ -435,11 +435,11 @@

    FSS Status Code

    -

    +

    This program is designed to interpret status codes returned by any FSS program.
    The status codes are converted to or from a code and a label.

    -

    +

    This program handles more status codes that the status_code program.

    @@ -450,11 +450,11 @@

    Status Code

    -

    +

    This program is designed to interpret status codes returned by any FLL based program.
    The status codes are converted to or from a code and a label.

    -

    +

    This program specifically handles only the core status codes provided by the FLL.
    Other programs that utilize custom status codes should provide their own implementation of this program, such as is done with the FSS Status Code program.

    @@ -466,16 +466,16 @@

    IKI Read

    -

    +

    Similar to the FSS Read programs, this is a program implementing the Featureless Settings Specification IKI-0000 (Unrestricted).
    This performs read operations related to the Unrestricted IKI standard (IKI-0000).
    -

    -

    +

    +

    The IKI settings specification plays on how it is simpler than a Wiki syntax.
    The IKI could be used for anything from e-mails and text-messages to word-processors.
    The goal with IKI is to be very easily readably by a human, such as: iki:"example" or url:"https://sourceforge.net/projects/fll/".

    -

    +

    This program is a swiss army knife for reading files that contain IKI syntax.

    @@ -486,16 +486,16 @@

    IKI Write

    -

    +

    Similar to the FSS Write programs, this is a program implementing the Featureless Settings Specification IKI-0000 (Unrestricted).
    This performs write operations related to the Unrestricted IKI standard (IKI-0000).
    -

    -

    +

    +

    The IKI settings specification plays on how it is simpler than a Wiki syntax.
    The IKI could be used for anything from e-mails and text-messages to word-processors.
    The goal with IKI is to be very easily readably by a human, such as: iki:"example" or url:"https://sourceforge.net/projects/fll/".

    -

    +

    This program is a swiss army knife for writing files that contain IKI syntax.

    @@ -506,10 +506,10 @@

    UTF8

    -

    +

    A tool to convert one or more UTF-8 characters from the codepoint representation to a binary representation and back.

    -

    +

    This program can convert complete files into a text file of UTF-8 bytecode values.
    This program can convert complete files into a text file of space separated codepoint values.

    diff --git a/sources.html b/sources.html index af9f911..39f2e26 100644 --- a/sources.html +++ b/sources.html @@ -83,11 +83,11 @@

    Featureless Linux Library

    -

    +

    The source code for the Featureless Linux Library is released in several locations. The Featureless Linux Library page contains the full range of links regarding the source code.

    -

    +

    The following represent the primary source code locations as well as backup locations at external websites:

      @@ -104,10 +104,10 @@
      -

      +

      The source code for the Turtle Kevux Distribution is provided in the DVD-ROM for each individual release. There currently is no recent release available. The legacy releases may be found on the distributions page.

      -

      +

      The following represents the most recently available release:

        @@ -123,10 +123,10 @@
        -

        +

        The source code for the Turtle Kevux Installation Scripts is provided both as separate downloads and in the DVD-ROM for each individual Turtle Kevux release. There currently is no recent release available. The legacy releases may be found on the distributions page.

        -

        +

        The following represents the most recently available release:

          @@ -143,16 +143,16 @@
          -

          +

          The Kevux Website source code is also available for download. This website is designed to function even when downloaded, extracted, and viewed locally (without a web server hosting it). The downloaded version of this website will not contain the non-website related files nor will it contain the download website file itself. Such links will be broken on the downloaded website source. Check out the licenses page for the license of the source code of this website.

          -

          +

          The following is the link:

          -

          +

          Most of the changes for this website are also made publicly available through repositories hosted on third-party websites and services. To see a history of all of the changes or get the latest version of the website, visit any of these repositories.

          -- 1.8.3.1