The promotion of literacy encourages sharing knowledge by writing and reading. That provides the feelings of receiving and giving, a common ebb and flow of life.

Most commodity computers mute people by barricading their labeled buttonboards behind an unlabeled buttonbox that must be repetitiously lifted, clunked, and slid with gymnastic precision. Options are what the software developers decided, are without immediate documentation (if any), and are hidden within a maze of non-personalized menus.

Personal expression and communication become possible with the ubiquitous skill of writing when the commodity software permits the buttonboard to function as a means for recording text. A "personalizable computer" is extensible beyond its default commands and options by the person using it, especially when without need for knowledge of computer programming or without adding external software.

Freedom is a side-effect from taking on the responsibility of following through with personal interests. In other words, the experience of pursuing personal interests is the essence of living life, but is perceived externally or by self-reflection as freedom. The pursuit itself is active involvement, hence no absence of responsibility.

Opportunity is sometimes mistaken as freedom, as is the lack of molestation or expectation from other people. Like the fantasies of security and privacy, freedom is never taken away because it is only a perception. At most, freedom is disrupted like the daydream it is.

Blind trust of computer software written by strangers is avoidable, but it requires respecting personal interests and pursuits by saying "no" and being comfortable with the resulting freedom.

Jumping through hoops or over hurdles provides a false sense of accomplishment, a façade of freedom after the labyrinthine escape. Ideally, writing in the computer medium would be without an obstacle course entrance, as immediate as writing on paper.

Unique text editing software often produce unique file types, which make the documents eventually inaccessible when the software is abandoned by its company. Only plain text documents are accessible with any computer, old or new, commodity or personalized.

Plain text files are so versatile that all operating systems and programs are always made from them, although sometimes only the illegible compiled results are ever shared. Filesystems are the bridges between incompatible operating systems, the compatible means of transfering plain text files for reading and editing anywhere.

# pet rocks: wasteful manufacturing

[ This is eventually for a section of notes about the wastefulness of products, and the characteristics of a worthwhile product. ]

Some factors:

[ A collection of formerly useful products is comparable to a collection of interesting looking rocks, also known as pet rocks. Such a collection of novel contraptions might be worthy for a museum, but is more of a reflection of prior personal interests (perhaps no longer accurately representing). ]

# notetaking with the computer medium

Paper is one of the best mediums for recording notes. Notes on a sheet of paper can be read by someone else without the need for that person to have a pad of paper.

Notes recorded in the computer medium are undeniably less accessible and less sharable. Computer documents require a computer for reading them, and the computer requires electricity.

A buttonboard with a button for each letter of the alphabet aids in writing legibly and quickly on a computer. However, the casual markings of underlining or thicker lines of text written on paper is typically beyond the limited set of symbols of a buttonboard.

Prose often has parentheses "( )" and square brackets "[ ]" distinguishing supplemental information, or quote marks specifying exact wording. Similarly, the uncommon angle brackets "< >" enclose a name for the kind of mark before its region of typed text.

# the motivation for markup

Whatever is typed is "plain text" when it is compatible with any operating system of any computer, from the past to the present and into the future. No need for converting a document that has plain text markup.

Spacing before and after paragraphs, thicker lines of text, and larger text for headings help demarcate and emphasize ideas. Some text editor programs merge that formatting with the prose in a way that is illegible and uneditable with any other text editor, thereby is no longer plain text.

Instead, consider two approaches: the primary view optimized for editing the text, and a temporary alternate view optimized for perusing. That is, when editing consider marking it when helpful for an alternate read-only view of the document.

Enclose the name of a mark within angle brackets "< >", whereby it is unmistakably distinguishable from the prose while ensuring compatibility as plain text. The alternate read-only view of a document is provided by a program hiding each mark while also modifying the appearance of the following text based on the name of the mark, without modifying the document itself.

Extra software for the alternate view is optional. Reading and editing personal or shared notes remains possible with any text editor on any computer, old or new, commodity or personalized.

# writing and marking plainly

The uncommon angle brackets < and > enclose a name for the kind of mark before its region of text. For example, thicker lines of text is known as "bold" text, therefore the mark is <b>. The region ends similarly with a forward slash "/" in the mark, f.e. </b>.

In other words, a region of text marked at its beginning with <b> would have </b> at its ending. Mnemonically, the "/" then "b" means "end b".

Normally drawn text with <b>this text to be drawn with thicker lines</b> and normally drawn text after it.

Sometimes the ending of a region is obvious by a mark beginning a new region after it, f.e. a paragraph after a paragraph, thereby the ending mark is conveniently optional.

<p>A paragraph of text that is followed by another paragraph.
<p>The previous paragraph obviously ends when this paragraph begins. This one has an ending mark, though it might be unnecessary.</p>

# using HTML for document sources

Hypertext markup language (HTML) is a system of named marks for typed regions of text. The marks evoke imagination of how the text would be drawn or spaced on paper, thereby promoting association and understanding of the content without an alternate view. The alternate view of an HTML document hides each mark and then applies its implied characteristics to its region of text.

For example, notes about some other document will often have the name of that other document for later reference. For computer documents, this more reliably also includes the filename of the document and its location.

The HTML mark for an address is <a> and is supplemented with the href attribute for the "hyperlink reference".

A hyperlink address region of text is underlined and becomes a trigger for viewing its specified document. That makes the alternate view more concise with document addresses, and enhances access to referenced documents.

# organizing and sharing files

A filesystem is a record of locations for documents (files) in a storage device. It tends to also be a source of the modification date and file size, but usually no special feature for comments or descriptions for files.

Commodity operating systems provide their own options for writing descriptions for a file, but those notes are inaccessible with other operating systems. The obvious compatible approach, regardless of operating system or type of filesystem, is consolidating personal descriptions of multiple files into a new document (file).

A document marked with HTML is plain text, therefore always accessible regardless of what computer. Type or copy/paste the document name and optionally mark it as a hyperlink address, perhaps followed by a description. Maybe mark each as a paragraph <p>, or grouped into distinct lists preceded by headings.

In this way, the reason for having each document or image is available, rather than opening each and every document with many different applications and trying to remember later. Documents without descriptions, reasons, or relations to other documents become prime candidates for removal in order to reduce clutter.

Include a framed view of either an HTML document or an image by referencing its source address in the src attribute of an internal frame <iframe>. The view of the document or image is scrollable when larger than the internal frame, which also can have width and height attributes (pixel values).

<iframe src="some-other-document.html"></iframe>
<iframe src="can-be-an-image.jpg" width="400" height="300">
This region is shown instead of the document only when a HTML viewer has no support for the iframe mark.

Or, add an image with the <img> mark and optionally scale it with width or height attributes (pixel values). There is no end mark for it.

<img src="an-image.jpg">
<img src="another.jpg" width="500" height="375">

Perhaps establish a tiled layout for previewing a set of documents with each at 50% width [need style attribute for non-pixel values], t.i. one pair at a time. Note that 50% + the width of one space character + 50% = more than 100%, so ensure there is no space between the end of one mark and beginning of the next.

src="doc-1.html" style="width:50%;height:30em;border-width:0">
src="doc-1_backup.html" style="width:50%;height:30em;border-width:0">
src="doc-2.html" style="width:50%;height:30em;border-width:0">
src="doc-3.html" style="width:50%;height:30em;border-width:0">

No matter what operating system, even from before the turn of the century, every computer comes with a simple text editor for editing plain text and an HTML viewer (a.k.a. web browser). Thereby, the document can be viewed in any web browser on any computer, and without need for a webserver or even an internet connection.

No special programs necessary, no extra cost, and HTML is as plain as the buttons on a buttonboard.

# essential HTML

The "language" in HyperText Markup Language (HTML) means it is a system or set of keywords. There is no communication by the means of HTML.

HTML marks are guidance for a temporary read-only view of a document. Sort of like proofreader marks, with a name consistently encapsulated within < and >. Sometimes after the name there is more describing the characteristics of the mark itself, before the >.

The angle brackets "< >" make the occasional HTML mark unmistakably distinguished from the prose, just like parentheses or square brackets. They are often readily available on the comma and period buttons of the buttonboard.

Any text can be placed in between < and >. Just type whatever. Programs providing a read-only view of a document with HTML marks generally ignore any unknown named marks and never show them.

The ".html" at the end of the filename for a document is typically the only (artificial) requirement made by the operating system and its applications. All HTML marks are optional, as such a document declared to be HTML can be just prose without any marks.

Links are "hyper" because the text is marked with an address for a location within the document or to another document. In other words, a link is an option to view some other part of the document or to view another document. A hyperlink is traditionally underlined by HTML viewers.

Mark a location in a document with an address mark and the id attribute. No need for anything within its region, merely type the marks before something interesting, like before a heading.

Mark text as hypertext with a reference href in an address mark <a href=""> before the text, then follow the text with the </a> ending mark.

In essence, making a note about another document typically involves typing the title of the document, and typing the address of where to find it. In other words, that is the act of referencing a source. A hypertext link is the same thing, with just a few more characters to type. The same information is recorded, and it will be a link in the read-only HTML view.

Include a framed view of either an HTML document or an image by referencing its address in an internal frame <iframe>. The view of the document or image is scrollable when larger than the internal frame, which also can have width and height attributes.

<iframe src="some-other-document.html"></iframe>

<iframe src="can-be-an-image.jpg" width="400" height="300"> This region is shown instead of the document only when a HTML viewer has no support for an iframe. </iframe>

Specifically add an image with the <img> mark and reference its source with the src attribute. There is no end mark for it. Optionally scale the image with its width or height attributes.

<img src="an-image.jpg">

<img src="another.jpg" width="500" height="375">

The same document or image can be referenced multiple times. That can be convenient for comparing side by side [perhaps each at 50% of the view width] one original version with many other versions, pairing a reference to the original version with each of the other versions.

Change the default characteristics of any mark with the style attribute for it. A colon associates a characteristic with its value, and a semicolon separates characteristics. Optionally use spaces around the colon or semicolon for clarity.

For example, set the width of a paragraph and center it horizontally.

text-align: right
;width: 50%
;padding-top: .25in
;border-bottom-style: double
;border-bottom-width: 2mm
;/* Using automatic margins
centers the region. */
margin-left: auto
;margin-right: auto
">For example, set the width of a paragraph and center it horizontally.

[Transitioning... (transition completed) Rewriting...]

# resources

# Markup a CSS stylesheet.

A stylesheet for stylesheet documentation, a.k.a. a hybrid CSS+HTML document.

The "style" of Cascading Style Sheet refers to expression rather than decoration, because CSS is for changing the default spacing and drawing of HTML marked regions of plain text documents. Therefore, CSS actually describes the characteristics of HTML marks rather than the document.

The intent of a CSS stylesheet is documented with comments embraced by /* and */. Comments can be marked up with HTML, thereby documentation for a stylesheet can have an alternate view in an HTML viewer.

A well-documented stylesheet inevitably links to itself for providing samples of its rules within its documentation. Therefore, a "stylesheet stylesheet" such as this one is "the mother of all stylesheets", as it precedes and begets all thereafter.

# PDF: portable document format.

Portable Document Format (PDF) describes how to layout text and images, and is plain text. Basic notes for PDF version 1.4, mostly with the purpose of combining images into a single PDF document.

# emacs (Editing MACroS)

Use emacs (from its website) for editing text, and when it is helpful occasionally record sequences of typing and commands as macros to repeat with a single press of a button. No computer programming necessary. Hence, "editing macros" means macros for use with editing text, and in emacs everything is text.

Everything can be done with the buttonboard in emacs. No need for repititiously lifting, clunking, and sliding a buttonbox with gymnastic precision. The buttonboard can remain sitting still, and most of its buttons are labeled. With repeatability there is no worry about repetitive stress, no need for ergonomics.

Remember: a computer is different than a typewriter. There is no need to keep hands positioned over the "home" buttons of asdf and jkl; at all times. Just relax, occasionally press a few buttons in whatever comfortable manner, and let the computer do the work.

# what?  how?  the command prompt

A single blank line known as the "minibuffer" is at the very bottom where short messages are revealed after evoking a command, or a prompt is shown waiting for an answer. This is how to know what has just happened, or what is needed in order for something to happen.

A command can be executed by typing the two characters ESC x, t.i. the ESC (escape) button and then the x button, and then typing the command's full name and the RET (return) button. The use of the ESC button causes these typed characters to be shown in the minibuffer while typing them, not in the document being edited. After typing RET the command will be executed.

Sometimes there will be a message about the results of the command evoked, depending on the command. For example, typing ESC x forward-paragraph RET will move the text cursor to the beginning of the next paragraph, and there will be no message about the result.

Tab completion is usually available whenever there is a prompt in the minibuffer, such as text followed by a colon ": ", when typing a command name or other values in the minibuffer. At such a prompt either type the TAB button, or type the beginning of something and then type the TAB button. Either the only possible value is filled in, or all possibilities are shown in a temporary view. Not much need to remember how to spell anything or whether it exists.

Type Controlg to give up and go back to editing text instead of finishing typing a command in the minibuffer.

# shortcuts

Sometimes a command name is bound to a shorter sequence of buttons (a "binding" or "shortcut"), which is a nickname of sorts. A shortcut is often one modifier button combined with one other character, or the ESC character followed by another character.

Modifier buttons tend to be at the bottom corners of the buttonboard, on either side of the space bar-button. The SHIFT button is a modifier button, and so is the CONTROL button, the ALT button, the OPTION button, the COMMAND button, and even the FN button. They all work in same way, so knowing how to use the SHIFT button means knowing how to use any modifier button, but of course each does a different modification. For example, Shifta inserts a capital "a", t.i. "A".

On the other hand, the ESC (escape) button, the TAB button, the SPACE (space) button, and the RET (return) button are regular buttons and therefore produce characters (though typically without symbols) just like the letter buttons, number buttons, and punctuation buttons.

A shortcut can also have multiple modifier buttons used with a character. Typically, shortcuts are kept simple and the complex ones are for rarely used commands. Of course, they can be personally customized if desired, and more than one shortcut for the same command is allowed.

The helpful shortcut Controlh w will reveal which shortcuts a command has by prompting for the command name in the minibuffer. For example, type Controlh w, then at the prompt type the command name forward-paragraph (or use tab completion) and then the RET (return) button. The minibuffer will reveal its shortcut, which is by default the two characters ESC }.

Similarly, Controlh f will also prompt for a command name to find, but it reveals the documentation for the command name which will also include the shortcuts for it. The documentation will be shown in a view rather than shown in the minibuffer.

Contrarily, the shortcut Controlh c will reveal the command name for a shortcut, if there is one. For example, type Controlh c and then at the prompt type the two-character shortcut ESC {. The command name for that shortcut will be immediately revealed as backward-paragraph in the minibuffer. Or, query about either Shifta or just a, and then the minibuffer will reveal the command self-insert-command.

Similarly, Controlh k will also prompt for a shortcut, but it reveals the command name and its documentation, and in a view rather than in the minibuffer.

Sometimes a modifer button and character is a prefix for a longer shortcut name, for example Controlx (a very common prefix for executing shortcuts). In that case, the minibuffer will show an abbreviated form of the characters typed (f.e. C-x- for Controlx) after a short pause, meaning it's waiting for more. There's no need to wait for the prompt when the complete shortcut is already known, and when typed fast enough it won't show in the minibuffer at all. Either finish typing the shortcut sequence to evoke the command, or type Controlh for help and then a listing of known shortcuts beginning with that prefix will be revealed in another view. On the other hand, using Controlg with a prefix will typically cancel it because the resulting shortcut is typically not defined.

# repeat commands without repeating commands

Commands can be repeated a specific number of times by using the CONTROL button with a number (or with just the first digit of the number) before evoking a command. For example, to move the text cursor forward three paragraphs type Control3 ESC x forward-paragraph RET.

Or, use repeatibility with its shortcut by typing Control1 Control2 ESC } to move the text cursor 12 paragraphs forward, or perhaps more conveniently with only Control1 2 ESC }.

Sometimes it makes sense to use a negative value with a command. Type a hyphen first to indicate a negative value, such as Control- 27 for -27. Also, using only Control- is a convenient equivalent to Control- 1.

Of course, this can be used with typing. For example, type Control8 0 - to produce 80 hyphens. Or, use it with the DEL (delete) button to remove a specific number of characters, forwards when with a positive value and backwards with a negative value. Or, use it to select text, such as a specific number of words or paragraphs, either forwards or backwards.

# type anything, start highlighting, select everything

The prefix Controlx 8 is for inserting any Unicode character. Just type Controlx 8 Controlh for a helpful list of all possibilities revealed in a new buffer (and likely in a new view).

The prefix ESC s h is for specially highlighting patterns of text, f.e. the same word or phrase throughout a document. As usual, following the prefix with Controlh will reveal the various possibilities. For example, ESC s h p will prompt for a phrase to highlight, and then color that text throughout the document. (Using ESC s h r asks for a "regular expression", which is a pattern for text.) The default is yellow the first time, and then a different color for each successive call for new phrases, but any color can be chosen.

Search with Controls or in reverse with Controlr. All matches will be highlighted, and can be traversed forwards or backwards by repeating those shortcuts. While searching, use the higlighting command ESC s h r to choose a color for the matches, which then ends the search. Or while searching, use the shortcut ESC % to specify a replacement and begin getting asked for each match.

Use CONTROL and the SPACE bar-button, t.i. ControlSPACE, to set the mark for selecting text. Then maneuver the text cursor as normal and the text will be selected. For example, use ESC } to move to the beginning of the next paragraph thereby selecting everything in between. Or, use ControlSPACE ControlSPACE (t.i. twice) to deactivate the mark, which cancels selecting text.

Similarly, using the SHIFT modifier button with the movement shortcuts will also select a region. For example, the tutorial reveals ESC e moves to the end of the sentence (or the next one if at the end already), so ESC Shifte would select to the end of the sentence. The content of the whole buffer can be selected with the simpler Controlx h, no matter where the cursor is currently located.

While selecting text, use search to extend the selected region. The selection will extend to the next or previous match, and each thereafter for each repeat of the search shortcut. End the search and then do whatever with the region, such as search/replace within it and only it.

Once a region is selected, then use Controlx n n to narrow the contents to only that selected region. In other words, everything else in the buffer is hidden. Select another region and narrow it again, if desired. Show everything once again by widening with Controlx n w. (Obviously, Controlx n is a shortcut prefix, so Controlx n Controlh will show help in another view with other shortcuts beginning with it.)

# documents

Editing a document is always on a copy of it from its file, and in emacs this is explicitly acknowledged by referring to the copy as a "buffer", a temporary place for editing.

Already existing documents can be viewed with the "directory edit" mode using the command ESC x dired RET (shortcut: Controlx d). The prompt in the minibuffer shows the name of the default directory (folder) that will be listed in the current view, otherwise type the name of the desired directory before typing RET.

When viewing a listing of files in dired mode, help for the mode can be shown with Controlh m (as that shortcut does for any mode). Note that many of dired's shortcuts are simply a single button or use the SHIFT modifier button, such as for copying (Shiftc), renaming (Shiftr), or toggle sorting the listing by name or date (s). Just move the text cursor to the name of the file and type RET to reveal its contents for editing.

Compress or uncompress a file in a dired listing with Shiftz (which also adds or removes ".gz" from end of name). If gnupg is installed with emacs (perhaps for use with email authentication), then a file in dired can be encrypted with : e (which also adds or removes ".gpg" from end of name).

No need to uncompress a file before editing it. In emacs, the uncompressed contents are shown for editing, and then automatically recompressed when saved again. Same thing for encrypted files (".gpg") (automatically asking for passphrase), or even encrypted compressed files (".gz.gpg", or the potentially smaller ".gpg.gz").
(But tricky: Will work when a document is saved with both extensions, in either order. However, compressing an encrypted file within dired results in viewing only encrypted data. To fix: Open file; use Controlx h to select contents of whole buffer; use ESC x epa-decrypt-region, and agree to replace text; then save document.)

A new document (file) can be initiated with Controlx Controlf and then typing a name for it in the prompt in the minibuffer. However, it will be only a buffer (a temporary place for editing), and the file will not actually exist until the buffer is saved.

Save the changes of a document done within a buffer to its associated file with Controlx Controls. Saving a buffer overwrites the document's file (if already existing), though a backup of the original is automatically made the first time (with same name plus "~"). Write a document to a new file name with Controlx Controlw. Add ".gz" to the name of the file to have it compressed when saved, or ".gpg" to have it encrypted when saved (assuming that has already been set up), or add both.

# buffers, views, and frames

A simple listing of all buffers is available with the command ESC x list-buffers (shortcut: Controlx Controlb). Or, use ESC x ibuffer for ibuffer mode with more features for sorting, filtering, marking, and general organizing of a long list of buffers. (Again, Controlh m shows help for the mode in a view.)

More than one view of the same document is possible, such as when desiring to view different parts of the document simultaneously instead of scrolling back and forth. Simply show the buffer listing in a view and choose the buffer with the same document already shown in another view. Or, use ESC x switch-to-buffer (shorcut: Controlx b) to switch to it by typing its name at the prompt in the minibuffer at the bottom (and with tab completion). In other words, it's possible to have more buffers than views, or more views than buffers.

It's worth keeping in mind emacs has tiled-view management rather than the typical overlapping-view management. (A view is sometimes referred to as a "window" in operating systems (OSes) like macOS or MS Windows, or other OSes might have a "window manager".) A tiled layout means all views are always visible from edge to edge, never obscuring each other, and no wasted space.

There's no need for micromanaging widths and heights of views (though it is possible). Simply use the whole screen for emacs and then split its height in half (new view below) with Controlx 2, or split its width in half (new view on right side) with Controlx 3, as many times as desired. Equally distribute the size of all the tiled views with Controlx +. The computer does the computing.

Close (kill) the buffer/document in the current view with Controlx k RET and then the next most recent buffer is shown in the same view, keeping the layout the same. Collapse a view to nothing (without closing the document) to give its space to a nearby view with Controlx 0 (zero), and the document remains available in the list of buffers. Or do both: collapse the view and close the document shown within it at the same time with Controlx 4 0 (zero), for less clutter.

For example, imagine the whole screen is one view showing the contents of a document. After splitting the width of that view in half with Controlx 3, the right half shows the same content as the left half, and the left half retains the focus. Scroll a few pages down in the left half and the right half will stay still, it retains the original position. Split the width of the left view in half and there will be a new right half. Both are one-quarter of the screen width because they began as the left half of the screen. So, three views of the same document: two views are one-quarter of the screen width, one view is one half of the screen width. Now equally distribute the three views with Controlx + and the width of each will become one-third of the screen width: left, middle, right. The left still has the focus, so now close that one with Controlx 0: its area is merged with the middle, and now has the focus. That means there are now two views: the left view is two-thirds of the screen width, and the right side is one-third of the screen width.

Of course, a document can be edited at any time in any of its views, they are all functional. That can make it easier to copy/cut from one section of a document and then past in another of its sections, while being able to see both places at once.

Switch the focus to the other view with Controlx o, either from top to bottom or from left to right. Or, switch to the other view in the other direction with Control- Controlx o. Or, switch the focus to any view with command repeatability, f.e. switch to the fifth next view with Control5 Controlx o.

Therefore there is nothing to move because views are always aligned edge to edge, and no listing of views because they are all visible. Instead, peruse a listing of buffers/documents, or a dired listing ("directory edit" mode). Just choose what buffer/document is shown in a view, split a view in half for viewing the same buffer/document or for showing another one, and collapse any view no longer needed in order to give space to everything else.

With that said, it is worth knowing that all views are together within a frame, and it is also possible to have more frames. For example, using emacs with the whole screen means all the views are in a frame that is the size of the whole screen. Creating another frame the size of the whole screen would obscure the other frame. However, in this way it would be possible to have multiple layouts of views because each frame would have its own set of views showing whichever buffers/documents have been chosen for them.

Multiple frames within emacs is akin to the "virtual desktops" implemented with over-lapping views of most every window manager of most any operating system (OS). With emacs, this is without the novel addition of an unchangeable default directory listing (a.k.a. the desktop) that becomes inaccessible beneath overlapping views. Instead, in emacs any directory is listed with dired (directory edit) in any view of any width/height, fullscreen or otherwise. No artificial limits, no obscuring, no imposing novelty.

# getting to know emacs

Mac OS X is notorious for having an ancient version of emacs, and macOS is no different. Best to find and install the latest emacs on macOS instead. (Or, some other operating system, such as GuixSD. (Or preferably an operatable system, but then that would be like emacs anyway.))

Starting emacs will show a message saying to start the tutorial with C-h t, which means to use the CONTROL button to type Controlh and then type t. (Recall from the shortcuts description that the CONTROL button is used like the SHIFT button.)

After completion of the tutorial, it is worthwhile reading manual sections 30, 17, 13, and 44 sooner rather than later, t.i. rather than starting with section 1. As revealed with help on help (with Controlh Controlh), the emacs manual can be referenced at any time desired with Controlh r by means of Info mode.

The latest emacs manual is also available at its website.

When reading anything in Info mode the node name for a page can be seen at its top. A name in parentheses indicates the manual name, and after the parentheses is a section name. The node name for a page can be instantly copied with c regardless of where the cursor is located, and then the name is also temporarily shown in the minibuffer. The manual name in parentheses is needed only when changing manuals.

Use g to go to a node by name, then the minibuffer at the bottom will prompt with "Go to node: ". The buttonboard shortcut ESC ( (for ESC x insert-parentheses) inserts a pair of parentheses and places the text cursor in between them. Tab completion for typing manual page names is possible, as expected.

For example, Controlh i evokes Info mode with a listing of all available manuals. Type g and then the minibuffer at the bottom will show the prompt "Go to node: ", then type (ses) to switch to the "Simple Emacs Spreadsheet" manual. Or, type (emacs)Rmail Basics to switch to a page within the rmail section in the emacs manual. Or, type (emacs)Rmail TAB to use tab completion to reveal in another view a listing of emacs manual page names beginning with "Rmail".

# SPOILER to the emacs manual

Note that section 17 is about the "editing macros", which is the namesake of emacs. It is the basic premise of ancient science fiction about computers: at the touch of a button a computer does whatever is desired, no computer programming necessary.

In short, F3 starts memorizing every button pressed until F4 is typed to end recording the macro. Then each time F4 is typed, whatever sequence was memorized is performed again. Note that commands are typed, shortcuts are typed, text is typed, and so on. Therefore, any series of actions ever done in emacs can be memorized by the computer as a list of instructions, and then it can be repeated at the press of a button.

Select a document in dired, open it, search for a specific location in the text, insert a copy of some text, save and close the document: repeat. Anything that becomes repetitive can be recorded and repeated. There can even be moments when a macro queries whether to continue, which also allows for doing something different at any time within the middle of a macro, as many times as helpful. To emphasize again: no programming necessary at all.

Of course, a macro can be repeated a specific number of times, too. For example, type Control4 2 for 42, and then type F4: the prior memorized sequence is performed that number of times.

With emacs, the computer does the work. Just show it how. No computer engineer needed, no code needed.

# email is text

Reading email in emacs is quick and simple with rmail, t.i. ESC x rmail. The key factor is installing mailutils for accessing IMAP email accounts. Consider using this alternate rmail.el.gz library for checking email from multiple email accounts.

Sending email works simply. Configuring requires setting at least two variables: send-mail-function, message-send-mail-function. Consider using this alternate smtpmail.el.gz library for sending email from multiple email accounts, and also obviating a slew of other variables.

# three-trailer semi-trucks (rant)

The diesel engine of a semi-truck is said to be "powerful", and no doubt that is what helps with towing three trailers. However, emacs has a self-documenting foundation from which has emerged its own blueprints rather than becoming obscurely powerful, and is immediately extensible rather than rich with unmodifiable features.

Nonetheless, there are three anti-extensible trailer loads that have been incorporated into emacs, and are aggresively promoted to software developers of new additions for emacs, though they are still optional.

Contextual menus accessible only with a buttonbox, inaccessible by buttonboard.

The huge amounts of extra LISP for contextual menus must be carefully avoided (or completely removed) whenever personalizing the mode line, the option menu bar, or other places buttonbox-only menus have been inserted. Menus in general also promote the use of a buttonbox, which allows arbitrary selection and is inherently anti-macro.

Personally created menus are an expresion of extensibility, but pre-decided menus are simply a list of decisions made by someone else. Imitating other programs that have menus just for the sake of it ignores the spirit of personally customizing emacs, as that is the action of extending (for marketing) rather than the state of being extensible (by the person editing).

Instead, share an approach for people to use when a menu is desired. Perhaps provide a small menu as an example, but make sure it is visible rather than hidden, and make sure it is accessible with the buttonboard (of labeled buttons) rather than an unlabeled optional buttonbox.

Customize, a system of preferences decided by computer programmers.

The sort-of-optional Customize system does successfully list and categorize a lot (almost "most") of the personalizable options. However, that also means it fails to list only the options that has been changed by the person, and absolutely fails to have those options categorizable by the person editing, both of which automatically and naturally emerge when a person edits the init file instead of using Customize.

The init document is for personal preferences decided upon by the person ediiting with emacs, and within that file the value of a personalized variable can be shared with other declared variables. However, the Customize system can only save the value of a variable, and notably is incapable of using a personalized variable amongst any "custom" variables. For example, a personalized variable with the value of a color will be obliterated by Customize when used as the values of any Customize variables within the init file.

The interface for the Customize system also enforces datatypes for the "good intention" of preventing a person from being wrong, and therefore impedes referencing personalized variables. Unfortunately, the Customize system saves its use of incompatible variables within the same init file, and it discourages editing those values within the file because the Customize system would be unable to scream at the person for doing it wrong.

In other words, the Customize system makes emacs less customizable and less friendly, and gives the impression people should avoid using the init file for personalizing emacs. Extensibility is impeded when basic abilities like making personalized variables are ignored or broken, or personalizing beyond what was imagined by computer programmers is discouraged.

Better to share approaches, intent, and revise the documentation rather than promote ignorance and reduce options with the Customize system. (Well, unless emacs has truly become so fragile that a person editing with it should avoid personally extending emacs; in that case, best to rewrite emacs from scratch.)

Package management, for installing and removing additional commands or modes obtained from other people.

The recently introduced (with good intentions!) package management system encourages blindly accepting code without understanding what it does by installing it for immediate use rather than for immediate review. In essence, that is the same approach promoted by the developers of web browsers and their ask-no-questions execution of any JavaScript, which has led to them also accusing the person using their programs as trying to hide.

In other words, the package management system promotes the decades-old faulty computer-medium approach of blind trust and mass ignorance for the sake of immediate gratification (with carte blanche use of the computer resources of that person) rather than supporting personal responsibility and self-development.

No computer program should be so complicated that it requires a program to install it, but these packages are apparently that complicated even though they are just additional features for emacs rather than full programs. There is no freedom with such an ignorance-first approach, instead it must be think-first.

Rather than package management, there should be a distribution of shared approaches. In essence, little or no code, but instead documented intent with perhaps some working examples. Such documentation and promotion of free thought is the spirit of emacs, rather than the pre-packaged obscurity shared as programs too bloated to modify or understand (even by the authors). There is neither extensibility nor software freedom possible (in the real world!) when overwhelmed into a state of ignorance, let alone is it readily spoken about (other than "don't think, just do it") by the everyday person in casual conversation.

# generational and archæological loss of the computer medium

Writing and reading is the basis of the computer medium. Freedom of expression, t.i. the result of a person taking on the responsibility of speaking for itself, is what has been curiously missing with the commodity computers sold to the everyday person. Choice is often the only opportunity given to the purchaser of a computer, choosing amongst decisions already made by the software developers.

The skill of writing and reading has been impressed upon as many people as possible, and has become an expected means of learning and communicating. However, the computer medium is sold as a means of looking and pointing at options thought of by somebody else, failing at integrating with the flow of thoughts and actions of the everyday person implementing the computer medium. Paying money for a computer and then having applications do what somebody else wanted to do can only be a novelty, merely entertaining a person whose desires were never asked.

A computer application, a type of software, is an example of grouping basic commands for a specific task. Obviously, that is very useful for the person who groups them, and less so for a person when they are grouped by someone else.

Sometimes a single command is a group of other commands rather than emerging from new computer programming. A list of commands can be saved for later recall as a single command, f.e. by repeating the sequence of commands the person has just done.

Arbitrary actions with a pointer are prone to misinterpretation when part of automating repetitious activities. A shared command whose composition can never be explored, whose list of subcommands is forbidden from discovery, is an insincere gift that will fail to support the everyday person to correct it, simplify it, or adapt it for personal comfort.

Ultimately, personal expression is supported by writing and reading, impeded by insincere sharing, and essentially neutralized by having only choices. Sharing an approach inspires and supports the emergence of new approaches, with dissimilarity possible though unrequired.

The computer medium is inferior (f.e. when compared with pen and paper) for promoting self-education and cultural growth when it is distributed as an unexplorable trade secret providing a kiosk of choices rather than unrestrictedly adaptable by the everyday person for each moment of life.

# recipes and pseudocode

An approach is a recipe or pseudocode, and its application is the result.

A recipe declares an intent by means of a list of ingredients and events that have been effective for producing a desired result. An application is the result of the recipe, a final presentation either palatable or inedible.

A computer application is typically somebody else's execution of an approach, somebody else's results. With a computer, an application of an approach is invariable, but pseudocode is by definition a recipe and therefore an adaptable approach. The pseudocode is the gist and intentions, the springboard for a variety of forms, thereby distinct from any specific attempt.

Life is variable. Therefore, the predefined results of applications are inapplicable to the ever changing flow of events. On the other hand, an approach is guidance for transitioning through a moment, retaining opportunity for adaptation with each jump.

# not documentation

Too often computer programs have been said to be lacking documentation. In fact, it is the other way around. Expression of intent has been without follow through. Without intent and motivation, there is no pursuit.

Without well thought out desires recorded, results like a set of computer program instructions are without a foundation.

A computer programming language is merely a set of symbols or codewords. A computer is simply a machine, a piece of hardware, there is no possible communication with it. Instead, such a "language" is for a person briefly recording a set of instructions. Unfortunately, a computer program without documentation is as informative as a quote taken out of context.

Ingredients are fabricated with the computer programming language, or perhaps parts of the computer hardware are activated with it. Even then, the phrases and terms need to be interpreted as a specified sequence of toggle switches within the circuitry of that machine, typically a barebones coding with only two letters in its alphabet and no phonemes because it is never spoken.

In other words, the computer is just a tool chosen for applying an appoach, and a computer language records mere gesticulations of the person applying the approach. Therefore, the approach or purpose is inherently underivable from the computer coding, as it is no more than the pattern on a wall of toggled switches.

An approach must be recorded before or as it is applied if it is ever to be known by anyone else, as many archeologists have lamented. Minimizing it by shedding its context of intent and motivation deprives everyone of its meaning, even the later self of the person applying it.

To reiterate, there is no communication possible with a computer language, for it is intended only for toggling switches for a result rather than sharing an understanding. A computer program is merely one adaptation of an approach, one choreographed dance for a feeling, forever unrevealing of its own inception.

# an operatable system

A computer is a medium for writing and reading, with the writing reduced to mere presses of labeled buttons for each letter of an alphabet. There is no other skill needed for operating a computer, though there are sometimes other means besides a buttonboard.

A computer is operatable, and automatable, when it is capable of restoring what has been recorded within its medium. That is, a computer recording the actions done with it in the moment and then repeating those actions upon request is being operated.

A system of programs operating on their own, especially when unmodifiable, is an "operating system". Somebody else's program is somebody else's operation of a computer, recorded from some other moment for that other person.

As a computer program is a proxy for the person who created it, vetting a computer program is the same as trusting the person who wrote it, perhaps a complete stranger. A computer virus is merely a computer program. A system readily operating on its own, t.i. an operating system, is operating for the interests and intentions of the people who wrote the programs.

In contrast, an "operatable system" does nothing until it is operated, so known programs can be the only programs ever activated or automated, per the decisions made by the person operating the computer.

There is no denying the various computer mediums are archeologically unsound. That makes it all the more important for using the computer medium as freely as possible during this transition beyond the computer medium itself for more sustainable, sharable, and perusable recording mediums. The medium of pen and paper (as an example of the latter) preceded the computer medium, and is destined to continue beyond the computer medium during the search for other millenially persisting recording mediums like pen and paper, clay tablets, and stone structures.

The unadaptable predetermined decisions of the operating-system/application paradigm is worthless for the everyday person, who is the core of any people, the core of any culture. This is evident by companies creating applications for their own use, with the employee (an everyday person) making do with what is available while waiting for those applications.

An operating system is non-functioning without its applications, and developing an application is a tangent away from the flow of the moment. Without documentation, there is no hope of adapting someone else's program for the current moment. There is only choice of the decisions made by someone else, without opportunity for freedom of expression by the person choosing.

A core characteristic of the computer medium is that of immediate and exact duplication of any of its recordings, thereby the freedom for trial and dismissal without loss or corruption of the original version. That is the opportunity of self improvement with the freedom of saving and reveiwing inspirations and influences, and sharing those with the community for discussion and accelerating cultural development.

# design is a collection of foreign decisions

Voting is choosing amongst a set of pre-made decisions. A decision is inherently presumed acceptable, regardless of whether it is desirable. Choosing from someone else's menu is choosing from someone else's comfort, perhaps a selection of someone else's abilities. A vote or a choice is at most the wiggling of a toe tag, nothing like personal expression as there is no opportunity for a personal decision.

Design is a set of decisions. Somebody else's design is somebody else's decisions. Ultimately, a design is a past, foreign to the present, an opportunity for reflection and release. The adaptation of a set of decisions is the conversion of it into a new approach, perhaps a setup for a eventual spin-off or even a prequel.

# computer displays: punchcard or GUI

Punchcard is a recording medium readable by computers and people, a type of memory card, t.i. a memcard. A punchcard can be a piece of cardboard with holes made from a holepunch tool, by either a person or a machine. The holes and the lack thereof are arranged along rows and columns of a grid, and can be detected by either machinary or a person feeling a card, or by a person visually perceiving the arrangement of the holes in a card.

A "graphical user interface" (GUI) is an oblique phrase for any object with drawings on it, essentially for only visual interpretation rather than physical or aural. For example, a sheet of paper, or a sheet of glass, or a grid of lights. Text and other shapes are drawn with lines or with dots, perhaps by coloring each square of a grid.

Obviously, shape is visibly noticeable only when there are at least two distinctive colors; corollarily, there are no distinctions with only one color. Text and other shapes can be drawn with only two colors available, commonly referred to as a foreground color for the most important areas and a background color for less important areas. Additional colors allow for more distinctions, thereby more variety of lines and dots for text and other shapes. Notably, an extraneous use of distinction is distracting or muddling.

A drawing, t.i. a graphical recording, using more than two colors on a grid bound by having only a single color per square (t.i. a dot) can record a greater variety than a punchcard using only one hole shape. Similarly, more than one physically distinguishable hole shape would increase the variety for a punchcard.

Notably, the raised dots of braille pressed into paper are the inverse of a hole, and provides such a variety potentially detectable by machines, too. Furthermore, the eight-dot version of braille is equivalent to the eight-bits of a byte, thereby suggesting bytes might be readily perceived visually and physically. The million symbols or characters of Unicode is one step away from that, each represented by one or more bytes, f.e. with the UTF-8 or UTF-32 formats.

A touchscreen is a transparent overlay for a graphical display, such as on top of a sheet of paper or on top of a grid of lights. The drawings of text and shapes, or the lack thereof, beneath the screen are coordinated with the same areas of the transparent screen overlaying them. The transparent screen detects physical touch, and those touches are related with the areas on the graphical display. While that physical action with the overlay is imitative of recording information on a punchcard, an unshapable graphical display remains unreadable physically.

HyperText Markup Language (HTML)
markup a CSS stylesheet
basic PDF 1.4
approaches for documenting binary files
file transfer, find, and grep
ssh key generation and use
installing emacs
email in emacs
ImageMagick command-line options for convert and mogrify (or magick as of 7.x)
Examples of ImageMagick Usage (6.x)