dot

packages and services management
Log | Files | Refs | README

commit f3e43b478b9e7f67548a4fdce7c55b6d473daa7b
parent 85f95f30ec44d0719329cab7d7a031a8c878228c
Author: Josuah Demangeon <mail@josuah.net>
Date:   Fri, 16 Feb 2018 14:12:13 +0100

man: removed redundant man pages

Diffstat:
Mbin/agenda | 38+++++++++++++++-----------------------
Dman/README.7 | 25-------------------------
Dman/atreus.4 | 113-------------------------------------------------------------------------------
Dman/books.7 | 120-------------------------------------------------------------------------------
Dman/cell.4 | 110-------------------------------------------------------------------------------
Dman/cgr.7 | 107-------------------------------------------------------------------------------
Mman/configure.7 | 15++++++++-------
Dman/electrophoresis.7 | 45---------------------------------------------
Dman/evolutiond.8 | 165-------------------------------------------------------------------------------
Dman/ff2braille.1 | 29-----------------------------
Dman/iomenu.1 | 120-------------------------------------------------------------------------------
Dman/object_storage.7 | 160-------------------------------------------------------------------------------
Dman/terminals.7 | 298-------------------------------------------------------------------------------
13 files changed, 23 insertions(+), 1322 deletions(-)

diff --git a/bin/agenda b/bin/agenda @@ -3,7 +3,7 @@ AGENDA="${AGENDA:-${ETC:-$HOME/.config}/agenda}" -awk_date=' +date=' function leap(yrs) { @@ -42,7 +42,7 @@ function to_date(fmt, sec) return sprintf(fmt, yrs, mth, day, hrs, min, sec); }' -awk_import="$awk_date"' +import="$date"' #OFF [+-]HH function ical_date(str, off) { @@ -83,7 +83,7 @@ BEGIN { event["DESCRIPTION"]); }' -awk_sort=' +sort=' #SORT [BESCL] BEGIN { @@ -110,7 +110,7 @@ BEGIN { printf("%s%s\n", prefix, line[i]) | sort; }' -awk_view="$awk_date"' +view="$date"' #OFF [+-]HH BEGIN { @@ -152,7 +152,7 @@ BEGIN { last_day = b_day; }' -awk_to_sec="$awk_date"' +to_sec="$date"' #DATE YYYY-MM-DD-HH-MM #OFF=[+-]HH BEGIN { @@ -164,22 +164,15 @@ BEGIN { print(to_sec(yrs, mth, day, hrs, min, 0) - OFF * 3600); }' -awk_gopher="$awk_date"' +gopher="$date"' -sub("^B:", "") || sub("^E:", "") { - if ($0 > maximum) - maximum = $0; - if ($0 < minimum || minimum == 0) - minimum = $0; -} +sub("^B:", "") { minimum = ($0 < minimum || minimum == 0) ? $0 : minimum; } END { name = FILENAME; sub(".*/", "", name); - printf("[0|%s - %s - %s|/%s.txt|server|port]\n", - to_date("%d/%02d/%02d", minimum + 3600), - to_date("%d/%02d/%02d", maximum + 3600), name, FILENAME); - + printf("[0|%s - %s|/%s.txt|server|port]\n", + to_date("%d/%02d/%02d", minimum + 3600), name, FILENAME); }' mkdir -p "$AGENDA" @@ -188,7 +181,7 @@ case "$1" in (import) [ "$#" -ne 4 ] && exec "$0" - awk -v OFF="$4" "$awk_import" "$2" > "$AGENDA/$3" + awk -v OFF="$4" "$import" "$2" > "$AGENDA/$3" ;; (view) [ "$#" -lt 2 ] || [ "$#" -gt 3 ] && exec "$0" @@ -197,8 +190,8 @@ case "$1" in [ "$1" = 'all' ] && set -- "$AGENDA"/* || set -- "$AGENDA/$1" cat "$@" | - awk -v SORT="${3:-BECLS}" "$awk_sort" | - awk -v OFF="$(date +%z | cut -c 1-3)" "$awk_view" | + awk -v SORT="${3:-BECLS}" "$sort" | + awk -v OFF="$(date +%z | cut -c 1-3)" "$view" | less ;; (add) @@ -207,8 +200,8 @@ case "$1" in off="$(date +%z | cut -c -3)" printf 'B:%s\nE:%s\nS:\nC:\nL:\nD:\n:\n' \ - "$(awk -v DATE="$3" -v OFF="$off" "$awk_to_sec")" \ - "$(awk -v DATE="$4" -v OFF="$off" "$awk_to_sec")" \ + "$(awk -v DATE="$3" -v OFF="$off" "$to_sec")" \ + "$(awk -v DATE="$4" -v OFF="$off" "$to_sec")" \ >> "$AGENDA/$2" exec "$0" edit "$2" @@ -219,8 +212,7 @@ case "$1" in exec $EDITOR "$AGENDA/$2" ;; (gopher) - find "${AGENDA#$PWD/}" -type f ! -name '*.txt' \ - -exec awk "$awk_gopher" {} \; | sort + find "$AGENDA" -type f ! -name '*.txt' -exec awk "$gopher" {} \; | sort ;; (*) echo 'usage: agenda add <name> <YYYY-MM-DD-HH-MM> <YYYY-MM-DD-HH-MM>' diff --git a/man/README.7 b/man/README.7 @@ -1,25 +0,0 @@ -.Dd $Mdocdate: February 09 2018$ -.Dt CONFIG 7 -.Os -. -. -.Sh NAME -. -.Nm configuration -.Nd what comes after writing software -. -. -.Sh SYNOPSIS -. -.Bd -literal -./configure -. "${HOME}/.profile" -.Ed -. -. -.Sh DESCRIPTION -. -Configuration files to build and setup selected software on multiple -machines. -. -.Pp diff --git a/man/atreus.4 b/man/atreus.4 @@ -1,113 +0,0 @@ -.Dd $Mdocdate: November 21 2017$ -.Dt ATREUS 4 -.Os -. -. -.Sh NAME -. -.Nm Atreus -.Nd custom mechanical keyboard -. -. -.Sh DESCRIPTION -. -Its shape is similar to the ergodox, but it is not split, and have very few -keys: only 42. Most special chars, arrow keys are accessed with a fn key. -. -.Pp -This permits to type without ever moving the hands, only moving the fingers, -and stay in touch type position 100% of the time. -. -.Pp -All modifiers are accessible from the thumbs, Escape and Return are accessible -from the palm. -. -.Pp -The normal layout: -. -.Bd -literal -offset indent - ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ -| ' | , | . | p | y | | f | g | c | r | l | -|___|___|___|___|___| |___|___|___|___|___| -| a | o | e | u | i | | d | h | t | n | s | -|___|___|___|___|___| |___|___|___|___|___| -| ; | q | j | k | x |___ ___| b | m | w | v | z | -|___|___|___|___|___| || |___|___|___|___|___| -|Esc|Tab|Sup|Shi|Bks|Ctl||Alt|Spc|Fn | - | . |Ret| -|___|___|___|___|___|___||___|___|___|___|___|___| -.Ed -. -.Pp -And with L2 pressed: -. -.Bd -literal -offset indent - ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ -| ! | @ |Up | { | } | |PgU| 7 | 8 | 9 | * | -|___|___|___|___|___| |___|___|___|___|___| -| # |Rgt|Dwn|Lft| i | |PgD| 4 | 5 | 6 | + | -|___|___|___|___|___| |___|___|___|___|___| -| [ | ] | ( | ) | x |___ ___| ` | 1 | 2 | 3 | \\ | -|___|___|___|___|___| || |___|___|___|___|___| -|L2 |Tab|Sup|Shi|Bks|Ctl||Alt|Spc|Fn | | 0 | = | -|___|___|___|___|___|___||___|___|___|___|___|___| -.Ed -. -.Pp -There is another layout available for F[1-12] and Ins, Del ... -. -. -.Sh BUILDING PROCESS -. -The keyboard comes up in a small box, with all components in plastic bags, with -a few (useful) spare parts. -. -.Bl -dash -width X -compact -. -.It -Solder the diodes (preventing key ghosting). -. -.It -Solder the microcontroller (A-Star at the time of purchase). -. -.It -Solder the keys. -. -.It -Load the firmware and test everything. -. -.It -Lacquering of the wooden pieces. -. -.El -. -.Pp -I advise to do the 5. first so that it can dry while you solder, and be very -careful while inserting the diodes: In the right direction! Unsoldering is -harder than soldering. -. -.Pp -Soldering the microcontroller is a bit tricky, and here is a tip that made it -much easier for me: You will have to solder cut diodes legs (small metallic -rods) through a empty holes. -. -.Pp -With the board vertical, fill a hole with tin. Then, bring the iron at one -side melting the tin, and insert the diode leg at the other side. As I only -have two hands, this was easier this way for me. -. -.Pp -I never soldered before, but this was not hard. It even becomes addictive at -the end: now I need something more to solder! Moreover, a good iron is still -cheap. Just make sure to have one with enough power. -. -.Pp -It is a pleasure to type on a keyboard you assembled, made by some independent -hacker for fun and profit. -. -. -.Sh AUTHORS -. -.Nm -have been designed by -.An Phil Sq technomancy Hagelberg - diff --git a/man/books.7 b/man/books.7 @@ -1,120 +0,0 @@ -.Dd $Mdocdate: November 21 2017$ -.Dt BOOKS 7 -.Os -. -. -.Sh NAME -. -.Nm books -.Nd references for studying sciences -. -. -.Sh DESCRIPTION -. -This is a list of the books that were advised to me at university. -It is what I use, they are widespread books with minimal overlapping chapters -across them, so that all of these books to be used together. -. -. -.Ss Chemistry -. -.Bl -bullet -width 1n -. -.It -.Rs -.%A Atkins -.%T Physical chemistry for the life sciences -.Re -.Pp -From the author of Physical Chemistry: Thermodynamics, Structure, and Change. -(the reference in its domain), it's the simplified version for biologists, -containing all of the physical aspects of chemistry. -. -.It -.Rs -.%A Klein -.%T Organic chemistry as a second language -.Re -.Pp -Organic chemistry is the chemistry of carbon-rich compounds: most of the -compounds in biology. - This is the best explained chemistry book I've found, -and it covvers the theory of mosts of the reaction I'll ever encounter in -biochemistry. -He also reedited both book into a single one: Organic Chemistry, -more focused on exercises and practice. -.El -. -. -.Ss Biology -. -.Bl -bullet -width 1n -. -.It -.Rs -.%A Campbell -.%T Biology -.Re -.Pp -If you've never studied biology, or if you want a wide background on many -domain of biology, this book will give you an introduction to life and biology. -. -.El -. -. -.Ss Biochemistry -. -.Bl -bullet -width 1n -. -.It -.Rs -.%A Lehninger -.%T Principles of biochemistry -.Re -.Pp -A widely recognised biochemistr ybook, that havethe advantage to don't contain -much cell biology, then which perfectly accompagnate the previous book. -This book doesn't include plants-specific biochemistry. -. -.It -.Rs -.%A Stryer -.%T Biochemistry -.Re -.Pp -This is a great compromise between both biochemistry and cell biology, and may -be well suited if you don't need such biology background. -. -.It -.Rs -.%A Heldt -.%T Plant biochemistry -.Re -.Pp -This is the missing chapters of the Lehninger, biochemistry about plants. -. -.El -. -. -.Ss molecular biology -. -.Bl -bullet -width 1n -. -.It -.Rs -.%A Alberts -.%T Molecular biology of the cell -.Re -.Pp -This single book icontains most of the essential knowledge for a bachelor -degree! It's a basis many time advised by my teachers. -. -.It -.Rs -.%A Lewin -.%T Genes XI -.Re -.Pp -This book is a complete introduction to genetics and molecular biology for the -genome working. -.El diff --git a/man/cell.4 b/man/cell.4 @@ -1,110 +0,0 @@ -.Dd $Mdocdate: November 21 2017$ -.Dt CELL 4 -.Os -. -. -.Sh NAME -. -.Nm cell -.Nd computer-controlled living cell device -. -. -.Sh SYNOPSIS -. -.Cd "cell* at gpioow?" -.Cd "cell* at uow?" -.Cd "cell* at ioc?" Pq sgi -.Cd "cell* at xheart?" Pq sgi -. -. -.Sh DESCRIPTION -. -The -.Nm -driver provides an uniform programming interface layer to access -computer-controlled living cells arrays to perform DNA computing. -. -.Pp -The DNA grid must be initialized with sufficient host cells to -perform the whole calculation, with an average required mass of cell of -approximately -. -.EQ -( n * \[12] ) sup \[cd] ( 4 + n ) + 4 \[*m]g -.EN -. -With -.Em n -the total number of operations blocks to perform. -The -.nm -driver supprots the following operations if the hardware provide them: -. -.Bl -tag -width completeg -. -.It completeg -Opens the computation pool to all possible interactions, greatly increasing -the computation speed and reducing the amount of required operations, but -decreasing the reliability. -. -.It cyclectl -Specify a number of computation cycle per minute to perform. -This is usually automatic, but certain computations might require adjustment -for better performances. -. -.It purge -Completely erase all trace of DNA remaining on the wells to avoid contamination -of the previous data. -. -.It load -Inject a load of replication proteins into the well to amplify the signal. -. -.It halt -Inject a large enough amount of acid to drop the pH for stopping the reaction -and proceed to the analysis of the result. -. -.El -. -. -.Sh SEE ALSO -. -.Rs -.%A Y. Benenson -.%A B. Gil -.%A U. Ben-Dor -.%A R. Adar -.%A E. Shapiro -.%Y 2004 -.%T An autonomous molecular computer for logical control of gene expression -.Re -. -. -.Sh HISTORY -. -The -.Nm -driver appeared in -.Ox 18.5 . -. -. -.Sh AUTHORS -. -The -.Nm -driver was written by -.An Leonard Adleman -. -. -.Sh BUGS -. -The -.Nm -driver is protected against back-hacks from the cell well with an attack -barrier, however, if a -.Ic completeg -settings and a high -.Ic cyclectl -value are combined, the complexity of the content of cell well might be too high -to fight against the back-hack, which could ultimately lead -.Xr securelevel 7 -to be drop to -1. diff --git a/man/cgr.7 b/man/cgr.7 @@ -1,107 +0,0 @@ -.Dd Mar 10, 2017 -.Dt CGR 7 -.Os -. -. -.Sh NAME -. -.Nm CGR -.Nd Chaos Game Representation -. -. -.Sh DESCRIPTION -. -CGR is a plot representing the frequency of words in a string -sequence, with usually 4 possible letters, as for DNA or RNA. -. -.Bl -column XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX -. -.It AA: 0.01 Ta TA: 0.08 Ta CA: 0.04 Ta GA: 0.15 -. -.It AT: 0.11 Ta TT: 0.07 Ta CT: 0.02 Ta GT: 0.03 -. -.It AC: 0.10 Ta TC: 0.05 Ta CC: 0.10 Ta GC: 0.10 -. -.It AG: 0.04 Ta TG: 0.05 Ta CG: 0.04 Ta GG: 0.02 -.El -. -.Pp -The frequencies are calculated for a given word size -.Em k -and then displayed on a grid, where each position correspond to a word. -. -.Pp -To determine the position of each word, the grid is divided in 4, -with each quarter corresponding to a letter: -. -.Pp -.TS -tab(:); -c4 c4. -A:T -C:G -.TE -. -.Bl -bullet -. -.It -Every word starting with the letter A will go to sub-square A. -. -.It -Every word starting with the letter T will go to sub-square T. -. -.It -Every word starting with the letter C will go to sub-square C. -. -.It -Every word starting with the letter G will go to sub-square G. -.El -. -.Pp -Then, each sub-square is divided itself in 4, with each -sub-sub-square corresponding to the second letter of the word: -. -.Pp -.TS -tab(:); -c2 c2 c2 c2. -AA:AT:TA:TT -AC:AG:TC:TG -CA:CT:GA:GT -CC:CG:GC:GG -.TE -. -.Pp -This yet let us to position each of our words, with their -frequency represented as a colour. -. -.Pp -.TS -tab(:); -c2 c2 c2 c2. - :██:▒▒:▒▒ -▓▓:░░:░░:░░ -░░: :██: -▓▓:░░:▓▓: -.TE -. -.Pp -With bigger sequences and real genomes, this permits to observe -patterns specific to the specie observed. -. -. -.Sh IMPLEMENTATION -. -There are two implementations of it in two branches: -. -.Bl -bullet -width indent -. -.It -One in python, as a single-file program -. -.It -One in javascript, as a widget, composed of a css and a js -file. An example of implementation of both into an html page -can be found -.Lk https://rawgit.com/josuah/cgr/master/cgr.html online . -.El diff --git a/man/configure.7 b/man/configure.7 @@ -23,9 +23,9 @@ symlinks files from this directory into the .Pa $ETC directory as defined in -.Pa ./dot/profile -and symlinks everything in -.Pa dot +.Pa ./.profile +and symlinks everything matching +.Pa .* into the home directory. . . @@ -107,8 +107,9 @@ Contains scripts collection to maintain the configuration and more. Contains manual pages for utilities developed inside of .Pa ./bin/ . . -.It Pa ./dot/ -Contains files to be symlinked into the home directory. +.It Pa ./.* +Files to be symlinked into the home directory, with exception of +.Pa .git . . .It Pa ./skel/ Contains files to be manually copied in-place and then edited. @@ -125,9 +126,9 @@ A package manager permits to fetch and install missing software and libraries according to rules in subdirectories of .Pa ./pack . . -.It Xr daemon 1 +.It Xr run 1 , Xr log 1 A daemon management script which calls the scirpts in -.Pa ./daemon +.Pa ./run to manage different software in an uniform manner. . .It Xr xdg-open 1 diff --git a/man/electrophoresis.7 b/man/electrophoresis.7 @@ -1,45 +0,0 @@ -.Dd $Mdocdate: November 21 2017$ -.Dt ELECTROPHORESIS 7 -.Os -. -. -.Sh NAME -. -.Nm electrophoresis -.Nd DNA gel electrophoresis -. -. -.Sh DESCRIPTION -. -.Bd -literal -offset indent - ,---,---,---,---,---,---,---,---,-------- DNA samples - / / / / / / / / / ,---- Size marker - / / / / / / / / / / - #1 #2 #3 #4 #5 #6 #7 #8 #9 mrk ,-- (-) Anode - __V___V___V___V___V___V___V___V___V___V__ / -| === === === === === === === === === === | -| --- --- --- --- --- --- | < 95 kpb -| --- --- --- --- | < 67 kpb -| --- --- | -| --- --- --- --- | < 43 kpb -| --- | -| --- --- --- --- | < 26 kpb -| | -| --- --- --- | -| --- --- --- --- --- --- --- --- | < 11 kpb -|_________________________________________| - \\ \\ - \\ `-- (+) Cathode - \\ - `---------------------------- Polyacrylamide gel -.Ed -. -.Pp -DNA sample are all put in the top of a gel, in a dedicated well ===, and an -electric current make the samples migrate toward the anode (+). The bigger -they are, the faster they move, and the less distance they travel on the gel -when the current is stopped after a couple of hours. -. -.Pp -The result is a gel with gloomy stripes while passed under UV lamp. Each -stripe correspond to one DNA fragment. diff --git a/man/evolutiond.8 b/man/evolutiond.8 @@ -1,165 +0,0 @@ -.Dd $Mdocdate: November 21 2017$ -.Dt EVOLUTIOND 8 -.Os -. -. -.Sh NAME -. -.Nm evolutiond -.Nd living beings transformation daemon -. -. -.Sh SYNOPSIS -. -.Nm -.Ar special -. -. -.Sh DESCRIPTION -. -.Nm -performs the successive steps in the process of evolution onto the -.Ar special -device as long as the life pool is non null on that device. -If the life pool comes close to 0, -.Nm -sends an email to the root user and reduce the evolution factors to preserve -life on the device. -. -. -.Sh EXTENDED DESCRIPTION -. -Across the generations, the organism's genome evolve, by combination of the -parents genome or spontaneous mutation. If this change helps the individual to -fit its environment, he will live better and have more chances to transmit its -new genome to its own childs. This way, the best genes are favorised in the -environment, improving the fitness of its holder, getting itself selected or -abandonned on the long run. -. -.Pp -Because of competition, there are sometimes more to earn by being different, -each differentiated specie is more efficient in their domain if they specialize -in it. In this way, whole groups of specimen can diverge from the rest by -adopting new characters until becoming a fully different specie. -. -.Pp -The origin of the actual species can be drawn as a tree, and we can guess what -differentiated the first new individual of a specie from its ancestors. All -different species would have been created like that, forming a new branch -branches each time they differentiate with mutations and combinations, formng a -genealogic tree of the species. -. -.Pp -Firstly, there were only one kind of plant, that differentiated into the moss, -grass, ferns, and trees that itself differenciated into multiple species. -. -.Pp -This tree of life: http://tolweb.org/tree is suggested to be common to all of -the living organisms, with at its root the Last Universal Common Ancester: -http://tolweb.org/Life_on_Earth (LUCA) from which all of the diversity comes -from. How the original(s) individual(s) came to birth is the subject of -exobiology: studying the boundaries between life and chemistry -. -.Pp -Phylogeny is based on this theory, and aim to trace the family tree of living -organisms. -. -.Pp -Sometimes the changes are very noticable, it's easy to say what is a tree an -what is not, but sometimes, the changes only operates at the scale of the -proteins, and only the genome permits to trace the origin of proteins. Which -is already a lot: the evolution of every single protein of organisms can be -observed this way. -. -.Pp -Phylogenetic trees are the way to represent the kinship ties of species. With -the name of each ancestor and each level. -. -. -.Sh EXAMPMLES -. -The muiltiple steps of -.Nm -on human would have lead to the following -successive steps: -. -.Pp -. -.Bl -tag -compact -width 14n -. -.It Em LUCA -Last Universal Common Ancestor, parent of us all. -. -.It Em Eukaryota -Unlike bacterias we have a nucleus in our cells. -. -.It Em Opisthokonta -Unlike plants we have some flagellated cells. -. -.It Em Animalia -Collagen permits us to move without breaking. -. -.It Em Bilateria -We are organized with a left and right side. -. -.It Em Deuterostomia -Our anus is developped before the mouth. -. -.It Em Chordata -We have a vertical flexible axis for us to swim. -. -.It Em Craniata -A skull packs and protects our brain. -. -.It Em Vertebrata -Our vertical axis is segmented into vertebrae. -. -.It Em Gnathostomata -We have a jaw that enables us to eat. -. -.It Em Sarcopterygii -Our cartilage develops. -. -.It Em Stegocephalian -We have 4 FINS: we ARE fishes at this point. -. -.It Em Amniota -Our EGGS have a protective pouch. -. -.It Em Synapsida -We have an opening in our skull for our eyes. -. -.It Em Mammalia -Oh! We do not make eggs anymore! -. -.It Em Therapsida -Only NOW, we stop crawling and stand on our 4 PAWS. -. -.It Em Eutheria -Our paws gets fancier, we have 4 fingers. -. -.It Em Primatomorpha -We are primates... -. -.It Em Primata -But unlike Dermoptera, we cannot fly. -. -.It Em Simian -We use our costly brain a bit more. -. -.It Em Hominidae -We stand on our two posterior legs. -. -.It Em Homo -We use our brain to get food. -. -.It Em sapiens -We use our brain to make war to other humans. -.El -. -.Pp -As a conclusion, we are not bacterias nor plants, but fishes and rodent that -stand on our posterior legs to make war with our brain in various ways. -. -.Pp -Just like this: http://businessinsider.com/image/4d0ba8c5ccd1d5e158040000 diff --git a/man/ff2braille.1 b/man/ff2braille.1 @@ -1,29 +0,0 @@ -.Dt FF2BRAILLE 1 -.Dd $Mdocdate: January 22 2018$ -.Os -. -. -.Sh NAME -. -.Nm ff2braille -.Nd farbfeld to text braille pattern image conversion -. -. -.Sh SYNOPSIS -. -.Nm -. -. -.Sh DESCRIPTION -. -.Nm -reads a -.Xr farbfeld 5 -image from stdin and write a text representation of the image using braille -characters to stdout. -. -. -.Sh EXIT STATUS -. -.Ex -std -. diff --git a/man/iomenu.1 b/man/iomenu.1 @@ -1,120 +0,0 @@ -.Dd aug 21, 2017 -.Dt IOMENU 1 -.Os -. -. -.Sh NAME -. -.Nm iomenu -.Nd interactive selection menu -. -. -.Sh SYNOPSIS -. -.Nm -.Op Fl # -. -. -.Sh DESCRIPTION -. -.Nm -is an interactive filtering and selection tool for the terminal. -. -.Pp -It reads lines from standard input, and prompt for a selection. -The selected line is printed to standard output. -. -.Bl -tag -width 6n -. -.It Fl # -If a line starts with -.Li # , -.Nm -will interprete it as a header, which always matches, and can not be -printed. -. -. -.Sh KEY BINDINGS -. -An active selection is highlighted, and can be controlled with keybindings. -As printable keys are entered, the lines are filtered to match each -word from the input. -. -.Bl -tag -width XXXXXXXXXXXXXXX -. -.It Ic Up Ns , Ic Down Ns , Ic Ctrl + p Ns , Ic Ctrl + n -Move selection to the previous/next item. -. -.It Ic PageUp Ns , Ic PageDown Ns , Ic Alt + v Ns , Ic Ctrl + v -Move one page up or down. -. -.It Ic Ctrl + m Ns , Ic Ctrl + j Ns , Ic Enter -Print the selection to the standard output, and exit 0. -. -.It Ic Ctrl + h Ns , Ic Bakcspace -Remove last character from current input. -. -.It Ic Ctrl + w -Remove last word from current input. -. -.It Ic Ctrl + u -Remove the whole input string. -. -.It Ic Ctrl + i Ns , Ic Tab -Fill the input with current selection. -. -.El -. -. -.Sh EXIT STATUS -. -.Ex -std -. -. -.Sh EXAMPLES -. -Go to a subdirectory: -. -.Bd -literal -offset XX -cd "$(find . -type d | iomenu)" -.Ed -. -.Pp -Edit a file located in -.Ev HOME : -. -.Bd -literal -offset XX -$EDITOR "$(find "$HOME" -type f | iomenu)" -.Ed -. -.Pp -Play an audio file: -. -.Bd -literal -offset XX -mplayer "$(find ~/Music | iomenu)" -.Ed -. -.Pp -Select a background job to attach to: -. -.Bd -literal -offset XX -fg "%$(jobs | iomenu | cut -c 2)" -.Ed -. -.Pp -Filter "ps" output and print a process ID -.Bd -literal -offset XX -{ printf '#'; ps ax; } | iomenu -# | sed -r 's/ *([0-9]*).*/\1/' -.Ed -. -. -.Sh SEE ALSO -. -.Xr dmenu 1 , -.Xr slmenu 1 , -.Xr vis-menu 1 -. -. -.Sh AUTORS -. -.An Josuah Demangeon Aq Mt mail@josuah.net diff --git a/man/object_storage.7 b/man/object_storage.7 @@ -1,160 +0,0 @@ -.Dd $Mdocdate: November 19 2017$ -.Dt OBJECT_STORAGE 7 -.Os -. -. -.Sh NAME -. -.Nm object storage -.Nd a take on clustering hard drives beyond a single node -. -. -.Sh SYNOPSIS -. -The goal is to provide a storage server to one or multiple clients in an as -stateless way as possible, while still implementing caching. -. -. -.Sh DESCRIPTION -. -On the diagram below, the outter boxes represents different computers, and the -inner boxes represents physical storage devices -.Pq HDDs or SSDs . -. -.Pp -The lines in-between and at the outside represents transfer of full files or -chunks of file -. -. -.Pq still not decided yet -through the -.Xr 9p 2 -protocol. -. -.Pp -There are two kind of nodes in this network: -. -.Bl -tag -width Ds -. -.It Sy store nodes -They are represented at the bottom, and are meant to have HDD actually holding -the data. -They know nothing about what they store, every file they hold is named by its -hash (SHA1, blake2...). Each one of them is running a normal 9p file server, -an userspace program, so there is no need to use FUSE at all on the server part. -There is then no need to implement anything at all for the store nodes. -. -.It Sy cache nodes -They are represented at the top, and are meant to have SSD caching the -transfers. -They acts as intermediate between the client and the store nodes. -They run the -.Em core algorithm -that handles everything but storing the data. -.El -. -.Bd -literal - client - ^^ - || - 9p - .-----------------------------||-------------------------------. - | n1 server | - | vv | - | .----------------------------------------------------------. | - | | Write-through cache || SSD | | - | | .----------------. | | other - | | .===========| core algorithm |=============.==========> cache - | | // '----------------' \\\\ | | nodes - | | // // \\\\ \\\\ | | - | '----------------------------------------------------------' | - | ^^ ^^ ^^ ^^ | - | client client client client | - | || || || || | cache - | || .-------||------------||----------------||------' nodes --|------9p------|-------9p------------9p----------------9p-------------- - | || | .-----||------------||-------. .------||------. store - | || | | n2 || || node2| | n3 || node3| nodes - | server | | server server | | server | - | vv | | vv vv | | vv | - | .----------. | | .----------. .----------. | | .----------. | - | | HDD | | | | HDD | | HDD | | | | HDD | | - | | | | | | | | | | | | | | - | | | | | | | | | | | | | | - | | Object | | | | Object | | Object | | | | Object | | - | | store | | | | store | | store | | | | store | | - | | | | | | | | | | | | | | - | | | | | | | | | | | | | | - | '----------' | | '----------' '----------' | | '----------' | - '--------------' '----------------------------' '--------------' -.Ed -. -.Pp -As shown here, the store node can run multiple 9p servers -. -.Pq one per filesystem -and can also be part of a cache node. -. -.Pp -The 'core algorithm' would be responsible of choosing the appropriate client to -read to and write from: -. -.Bl -bullet -width Ds -. -.It -.Em Hashing and naming : -rename the files on the nodes by their hash before to send them to the store -nodes. -. -.It -.Em Balancing between the different object store -by making all filesystems having about the same amount of data. -. -.It -.Em Data replication -("ZFS repulsion"-like feature) to have every file at least duplicates on 1, 2, -3... other node(s). -. -.It -.Em Balancing the transfer load -across the store nodes to write in priority to the nodes with less traffic. -. -.It -.Em Consistency check , -to make sure data known by the cache node is indeed present on the store node, -re-calculating the hash of the files to check if it match with the name. -If not, copy the file back from another store node that have a sane version of -this file. -. -.It -.Em Cache writes -until the end, so that once a write is fully done, the hashing occurs: we can -not calculate a complete hash of a partial file. -We have to wait the end of the write before to have the hash, and therefore to -store it somewhere. -A solution would be splitting files in chunk of pre-defined bytes, but this -would still require to cache the complete write of a full block before to send -it to the store nodes. -. -.It -.Em Synchronise the list of known filenames -across the multiple cache nodes: if a file is not found on the local object -store, ask it to the other cache node before to send a file not found message, -and eventually to every store node as well. -.El -. -.Pp -As the object store nodes are independent, multiple independent cache nodes -might as well connect to the store node. -This might require authentification, a to-this-day unsolved problem. -. -.Pp -The big question is: does any system uses this model already? -Particularly on the liberty between the store nodes and cache nodes, each one -independent of each other. -. -. -.Sh SEE ALSO -. -.Xr fossil 4 , -.Xr venti 4 diff --git a/man/terminals.7 b/man/terminals.7 @@ -1,298 +0,0 @@ -.Dd $Mdocdate: November 21 2017$ -.Dt TERMINALS 7 -.Os -. -. -.Sh NAME -. -.Nm terminals -.Nd workflow with one or multiple shells -. -. -.Sh DESCRIPTION -. -It is possible to interact with a computer entirely through a system console, -using terminal-based applications. -Well this eventually means to have a lot of terminal open. -. -.Bl -bullet -width 1n -compact -. -.It -Let the window manager take care of everything; -. -.It -Using the terminal emulator features. -. -.It -Use a terminal multiplexer: screen, tmux, dvtm... -. -.It -Handle everything in one terminal; -.El -. -. -.Sh WINDOW MANAGER -. -Most instinctive approach is to open multiple terminals by clicking multiple -time on the terminal icon to launch multiple terminal windows, each on with a -terminal in. -. -.Pp -This can actually work pretty well, as it can be extended with a great -window manager to manage these multiple windows, like a tiling window -manager. -. -.Pp -This also has the advantage of not changing your habits when you are used to -graphical environments, and be accessible on most machine (but not through -remote connection like ssh or telnet). -. -.Bl -item -. -.It -.Lk http://reddit.com/r/unixporn "the home of *NIX customization" -. -.It -.Lk http://wiki.archlinux.org/index.php/Window_manager "ArchWiki" -.El -. -. -.Sh TERMINAL EMULATOR -. -Another popular way to deal with the problem: using the features provided by -the terminal emulator application. This is the application that manages to -draw a terminal on your screen. -. -.Pp -Some are very minimal like -.Xr st 1 -and others provide extended ways to manage terminals, like splitting screen, -multiple tabs... -. -.Bl -item -. -.It -.Lk http://st.suckless.org "suckless.org st - simple terminal" -.El -. -. -.Sh TERMINAL MULTIPLEXER -. -It works like a window manager, but everything happen inside of the terminal: -It is a terminal-based program that goes between you and the other terminal -programs. -. -.Pp -This has the advantage of being available everywhere a terminal is available, -and being less complex software. -. -.Pp -You can run these by typing their command name in the terminal, then controll -multiple terminal with keybindings. All of them start with a /prefix/ key, -specific to each multiplexer, that you can change in a configuration file. -. -.Bl -tag -width Ds -. -.It Ic Prefix c -Create a new terminal, the previous one is put to the background. -. -.It Ic Prefix p / Prefix n -Switch to the previous or next terminal. -. -.It Ic Prefix \? -Get summary of keybindings to type and help. -You can run multiple sessions: group of terminals held by the multiplexer, -detach these, i.e: closing the terminal, then coming back to them later, nothing -will be lost. -.El -. -. -.Ss Xr screen 1 -. -Default prefix is -.Ic Ctrl + a . -. -.Bd -literal -offset indent -$ screen # start a new session -$ screen -S 'name' # start session "name" -$ screen -list # list existing sessions -$ screen -r 'name' # attach to session "name" -$ screen -R 'name' # same but create the session if not existing -.Ed -. -.Pp -Among the first present and evolved to get a lot of features: GNU screen. -It will handle everything you throw at it, as most programs are made to be -screen-compatible. -. -.Pp -There is a lot of customization to do with gnu screen. These are done through -a ~/.screenrc configuration file. You can look at -.Xr byobu 1 -to see an extended version of GNU screen through customization. -. -.Bl -item -. -.It -.Lk https://www.gnu.org/software/screen "Screen - GNU Project" -. -.It -.Lk http://byobu.co "byoby configuration for screen" -.El -. -. -.Ss Xr tmux 1 -. -Default prefix is -.Ic Ctrl + b . -. -.Bd -literal -offset indent -$ tmux # start a new session -$ tmux new-session -s 'name' # start session "name" -$ tmux list-sessions # list existing sessions -$ tmux attach 'name' || tmux new-session 'name' -.Ed -. -.Pp -It came after screen. -It has a different set of features, and strives to have much cleaner code than -.Xr screen 1 . -Tmux provides a real scripting language through its commands, which develloped -a community around tmux customization: You will find a lot of articles, blog -posts and videos about it. -. -.Pp -.Lk https://github.com/tmux/tmux "tmux source repository" -. -. -.Ss Xr dvtm 1 and Xr abduco 1 -. -Default prefix is -.Ic Ctrl + g . -. -.Pp -It does not manages sessions on its own: the abduco command does it instead. -This is another project from the same author. -. -.Bd -literal -offset indent -$ abduco # list existing sessions -$ abduco -c 'name' # create session "name" -$ abduco -a 'name' # attach to session "name" -$ abduco -A 'name' # same but create the session if not existing -.Ed -. -The Dynamic Virtual Terminal Manager. -It is the less complex one, with only 4000 lines of code -.Po -50000 for -.Xr tmux 1 -and -.Xr screen 1. -.Pc -. -.Pp -It has a tag-based terminal management: you can open multiple windows they will -be associated with a tag , like a topic or a kind of program. -You can then choose which tag you want to display at once: The mail and the -programming topics, the chatting and the music topics. -. -.Pp -The windows for these topics will then be displayed next to each other, with -different layouts available (Prefix + Space to switch). -. -.Bl -tag -width Ds -. -.It Ic Prefix t Ar num -Assign current terminal to the tag number -.Ar num . -. -.It Ic Prefix v Ar num -View the terminal with the tag number -.Ar num . -. -.It Ic Prefix T Ar num -Add the tag number -.Ar number to the tags of the -terminal, hence displaying it on multiple tags at once. -. -.It Ic Prefix v Ar num -Show the terminals of tag number -.Ar num -in addition to the already visible tags. -.El -. -You can then view multiple tag at once, and attach terminal to multiple tags at -once. -. -.Pp -The configuration file is a C header file -.Pa config.h -This means you compiles -.Xr dvmt -yourself. -. -.Bd -literal -offset indent -$ git clone http://github.com/martanne/dvtm -$ cd dvtm -$ make -.Ed -. -.Bl -item -. -.It -.Lk http://github.com/martanne/dvtm "dvtm source repository" -. -.It -.Lk http://github.com/martanne/abduco "abduco source repository" -.El -. -. -.Sh THE SHELL -. -This is the old-school way: switching between multiple fulscreen applications -with only one termnial controlling them: -. -.Bd -literal -offset indent -$ vi # whatever editor you use... -.Ed -. -.Pp -The editor starts, then you press -.Ic Ctrl + Z , -which takes you back -there in the shell. -. -.Bd -literal -offset indent -$ htop -.Ed -. -.Pp -It starts, then you press -.Ic Ctrl + Z , -which takes you back there. -. -.Bd -literal -offset indent -$ jobs -[2] + Stopped htop < These are the programs you did open. -[1] - Stopped vim They are background jobs now. -.Ed -. -.Bd -literal -offset indent -$ fg %1 -.Ed -. -.Pp -Now vim is at the foreground (fg), and you can continue editing, -until you press `Ctrl + Z` again -. -.Bd -literal -offset indent -$ fg %2 -.Ed -. -.Pp -Now htop is at the foreground. -. -.Pp -With this, you can do everything without even installing a package. This is -working very well, consume quite no memory at all, a I like to come back to -this sometimes.