Init.
This commit is contained in:
commit
5d7ebb4a3e
21 changed files with 4973 additions and 0 deletions
71
.source-highlight_groff-output-definition
Normal file
71
.source-highlight_groff-output-definition
Normal file
|
|
@ -0,0 +1,71 @@
|
||||||
|
extension "groff"
|
||||||
|
doctemplate
|
||||||
|
"
|
||||||
|
.MT 0
|
||||||
|
$header
|
||||||
|
.TL
|
||||||
|
$title
|
||||||
|
.AU \"\"
|
||||||
|
.ND
|
||||||
|
.SA 0
|
||||||
|
.DS I
|
||||||
|
"
|
||||||
|
".DE
|
||||||
|
$footer
|
||||||
|
"
|
||||||
|
end
|
||||||
|
|
||||||
|
nodoctemplate
|
||||||
|
"
|
||||||
|
"
|
||||||
|
"
|
||||||
|
"
|
||||||
|
end
|
||||||
|
|
||||||
|
bold "\f[CB]$text\fP"
|
||||||
|
italics "\f[CI]$text\fP"
|
||||||
|
underline "\f[CI]$text\fP"
|
||||||
|
fixed "\fC$text\fP"
|
||||||
|
color "\m[$style]$text\m[]"
|
||||||
|
|
||||||
|
anchor "$infilename : $linenum - $text"
|
||||||
|
reference "$text \(-> $infile:$linenum, page : $infilename:$linenum"
|
||||||
|
|
||||||
|
#lineprefix "\fC\(em\fP "
|
||||||
|
#lineprefix "\fC\n(ln\fP "
|
||||||
|
|
||||||
|
lineprefix ""
|
||||||
|
|
||||||
|
|
||||||
|
colormap
|
||||||
|
"green" "green"
|
||||||
|
"red" "red"
|
||||||
|
"darkred" "darkred"
|
||||||
|
"blue" "blue"
|
||||||
|
"brown" "brown"
|
||||||
|
"pink" "pink"
|
||||||
|
"yellow" "yellow"
|
||||||
|
"cyan" "cyan"
|
||||||
|
"purple" "purple"
|
||||||
|
"orange" "orange"
|
||||||
|
"brightorange" "brightorange"
|
||||||
|
"brightgreen" "brightgreen"
|
||||||
|
"darkgreen" "darkgreen"
|
||||||
|
"black" "black"
|
||||||
|
"teal" "teal"
|
||||||
|
"gray" "gray"
|
||||||
|
"darkblue" "darkblue"
|
||||||
|
default "black"
|
||||||
|
end
|
||||||
|
|
||||||
|
translations
|
||||||
|
"\\" "\\\\"
|
||||||
|
##"\n" " \\\\\n"
|
||||||
|
##" " "\\ "
|
||||||
|
##"\t" "\\ \\ \\ \\ \\ \\ \\ \\ "
|
||||||
|
"\t" " "
|
||||||
|
"|" "|"
|
||||||
|
"---" "\(em"
|
||||||
|
"--" "\(mi"
|
||||||
|
end
|
||||||
|
|
||||||
5
Makefile
Normal file
5
Makefile
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
SRC ?= paper
|
||||||
|
ODIR ?= ~/tmp/
|
||||||
|
export ODIR SRC
|
||||||
|
|
||||||
|
include Makefile.in
|
||||||
80
Makefile.in
Normal file
80
Makefile.in
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
SRC ?= graphs
|
||||||
|
|
||||||
|
ODIR ?= .
|
||||||
|
|
||||||
|
BIBLIOGRAPHY ?= bibliography
|
||||||
|
ALLSRC = $(shell find .)
|
||||||
|
|
||||||
|
SOELIM_OPTS ?=
|
||||||
|
SOELIM = soelim $(SOELIM_OPTS)
|
||||||
|
|
||||||
|
PRECONV_OPTS ?= -e utf-8
|
||||||
|
PRECONV = preconv $(PRECONV_OPTS)
|
||||||
|
|
||||||
|
EQN_OPTS ?= -Tpdf
|
||||||
|
EQN = eqn $(EQN_OPTS)
|
||||||
|
|
||||||
|
# source-highlight stuff
|
||||||
|
# GH_INTRO: instructions before each source code provided by source-highlight
|
||||||
|
# GH_OUTRO: ------------ after ---- ------ ---- -------- -- ----------------
|
||||||
|
# GH_INTRO/GH_OUTRO: values are separated by ';'
|
||||||
|
#
|
||||||
|
GH_INTRO := .nr DI 0;.DS I;.fam C;.b1;.sp -0.1i
|
||||||
|
GH_OUTRO := .sp -0.2i;.b2;.fam;.DE
|
||||||
|
#
|
||||||
|
export GH_INTRO
|
||||||
|
export GH_OUTRO
|
||||||
|
#
|
||||||
|
# SHOPTS: cmd line parameter given to source-highlight
|
||||||
|
SHOPTS = --outlang-def=.source-highlight_groff-output-definition
|
||||||
|
export SHOPTS
|
||||||
|
|
||||||
|
# ghighlight brings `source-highlight` to troff
|
||||||
|
GHIGHLIGHT_OPTS ?=
|
||||||
|
GHIGHLIGHT = ./bin/ghighlight $(GHIGHLIGHT_OPTS)
|
||||||
|
|
||||||
|
GRAP_OPTS ?=
|
||||||
|
GRAP = grap $(GRAP_OPTS)
|
||||||
|
|
||||||
|
PIC_OPTS ?= -Tpdf
|
||||||
|
PIC = pic $(PIC_OPTS)
|
||||||
|
|
||||||
|
# -P => move ponctuation after reference
|
||||||
|
# -S => label and bracket-label options
|
||||||
|
# -e => accumulate (use a reference section)
|
||||||
|
# -p bib => bibliography file
|
||||||
|
REFER_OPTS ?= -PS -e -p $(BIBLIOGRAPHY)
|
||||||
|
REFER = refer $(REFER_OPTS)
|
||||||
|
|
||||||
|
# -k => iconv conversion (did it ever worked?)
|
||||||
|
# -t => tbl preprocessor
|
||||||
|
# -ms => ms macro
|
||||||
|
# -U => unsafe (because of PDF inclusion)
|
||||||
|
# -Tpdf => output device is PDF
|
||||||
|
# -mspdf => include PDF (so, images converted in PDF) in the document
|
||||||
|
# NOTE: a custom troffrc (configuration file) is necessary on OpenBSD
|
||||||
|
# to have correctly justified paragraphs. Otherwise, the default
|
||||||
|
# configuration removes this possibility, for bullshit reasons. Sad.
|
||||||
|
# -M dir => path to custom troffrc
|
||||||
|
# TODO: no change with or without the following options -P -e
|
||||||
|
# This has to be inverstigated: how to make PDFs look nice in browsers?
|
||||||
|
# -P -e => provide "-e" to gropdf to embed fonts
|
||||||
|
GROFF_OPTS ?= -ms -t -Tpdf -U -mspdf -mpdfmark -M ./bin -P -e
|
||||||
|
GROFF = groff $(GROFF_OPTS)
|
||||||
|
|
||||||
|
$(SRC).pdf:
|
||||||
|
$(SOELIM) < $(SRC).ms |\
|
||||||
|
./bin/utf8-to-ms.sh |\
|
||||||
|
$(PRECONV) |\
|
||||||
|
$(EQN) |\
|
||||||
|
$(GHIGHLIGHT) |\
|
||||||
|
$(GRAP) |\
|
||||||
|
$(PIC) |\
|
||||||
|
$(REFER) |\
|
||||||
|
$(GROFF) > $(ODIR)/$@
|
||||||
|
|
||||||
|
# Keep options in memory for the recursive 'make' call
|
||||||
|
export SOELIM_OPTS PRECONV_OPTS EQN_OPTS GHIGHLIGHT_OPTS GRAP_OPTS PIC_OPTS REFER_OPTS
|
||||||
|
serve:
|
||||||
|
@#find . -name "*.ms" -or -name "*.d" | entr gmake -B $(SRC).pdf
|
||||||
|
find . | entr gmake -B $(SRC).pdf
|
||||||
24
bibliography
Normal file
24
bibliography
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
%K CBOR
|
||||||
|
%A C. Bormann
|
||||||
|
%A P. Hoffman
|
||||||
|
%T RFC 8949, Concise Binary Object Representation (CBOR)
|
||||||
|
%D 2020
|
||||||
|
%I Internet Engineering Task Force (IETF)
|
||||||
|
|
||||||
|
%K JSON
|
||||||
|
%A Tim Bray
|
||||||
|
%T RFC 8259, The JavaScript Object Notation (JSON) Data Interchange Format
|
||||||
|
%D 2017
|
||||||
|
%I Internet Engineering Task Force (IETF)
|
||||||
|
|
||||||
|
%K darkhttpd
|
||||||
|
%A Emil Mikulic
|
||||||
|
%T DarkHTTPd, when you need a webserver in a hurry.
|
||||||
|
%D 2017
|
||||||
|
%I https://unix4lyfe.org/darkhttpd/
|
||||||
|
|
||||||
|
%K netlibre
|
||||||
|
%A Philippe PITTOLI
|
||||||
|
%T netlib.re, a free DNS registrar
|
||||||
|
%D 2013
|
||||||
|
%I https://www.netlib.re
|
||||||
2684
bin/busgrap.pl
Executable file
2684
bin/busgrap.pl
Executable file
File diff suppressed because it is too large
Load diff
57
bin/custom
Executable file
57
bin/custom
Executable file
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# From a single byte in hexadecimal per line to lines ending with 0a
|
||||||
|
# (hex for '\n'). Ex: 61 62 63 0a
|
||||||
|
# Required to easily match (and remove) multi-byte characters.
|
||||||
|
regroup_lines() awk '
|
||||||
|
BEGIN {
|
||||||
|
line_start=1
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
if (line_start == 1)
|
||||||
|
line = $1;
|
||||||
|
else
|
||||||
|
line = line " " $1;
|
||||||
|
|
||||||
|
line_start = 0;
|
||||||
|
if ($1 == "0a") {
|
||||||
|
print line;
|
||||||
|
line_start = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
if (line_start == 0)
|
||||||
|
print line
|
||||||
|
}
|
||||||
|
'
|
||||||
|
|
||||||
|
uppercase() tr "[a-z]" "[A-Z]"
|
||||||
|
|
||||||
|
# One column decimal to plain text.
|
||||||
|
from_dec() awk '{ printf ("%c", $1 + 0) }'
|
||||||
|
|
||||||
|
# Replace spaces by line returns, outputs a single column.
|
||||||
|
spaces_to_line_returns() tr " " "\n"
|
||||||
|
|
||||||
|
# Convert input into hexadecimal and a single byte per line.
|
||||||
|
to_hex_one_column() { od -An -tx1 | awk '{for(i=1;i<=NF;i++){ print $i }}'; }
|
||||||
|
|
||||||
|
# One column hexa to one column decimal.
|
||||||
|
hex_to_dec() { { echo "obase=10;ibase=16;" ; cat ; } | bc ; }
|
||||||
|
|
||||||
|
# Reverse hexadecimal (with space separators) to original value.
|
||||||
|
from_hex() { spaces_to_line_returns | uppercase | hex_to_dec | from_dec; }
|
||||||
|
|
||||||
|
# Replace unbreakable spaces by '\ '.
|
||||||
|
replace_unbreakable_spaces() sed "s/c2 a0/5c 20/g"
|
||||||
|
|
||||||
|
custom_mods(){
|
||||||
|
to_hex_one_column | # Input to hexadecimal, 1-byte representation per line.
|
||||||
|
regroup_lines | # From 1-byte to x-byte lines with space separators.
|
||||||
|
replace_unbreakable_spaces | # Replace unbreakable spaces by '\ '.
|
||||||
|
from_hex # Convert back from hex (x-byte per line, space separator).
|
||||||
|
}
|
||||||
|
|
||||||
|
custom_mods
|
||||||
286
bin/ghighlight
Executable file
286
bin/ghighlight
Executable file
|
|
@ -0,0 +1,286 @@
|
||||||
|
#! /usr/bin/env perl
|
||||||
|
|
||||||
|
# ghighlight - A simple preprocessor for adding code highlighting in a groff file
|
||||||
|
|
||||||
|
# Copyright (C) 2014-2018 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# Written by Bernd Warken <groff-bernd.warken-72@web.de>.
|
||||||
|
|
||||||
|
my $version = '0.9.0';
|
||||||
|
|
||||||
|
# This file is part of 'ghighlight', which is part of 'groff'.
|
||||||
|
|
||||||
|
# 'groff' is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
# 'groff' is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
|
||||||
|
# You can find a copy of the GNU General Public License in the internet
|
||||||
|
# at <http://www.gnu.org/licenses/gpl-2.0.html>.
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
#use diagnostics;
|
||||||
|
|
||||||
|
# current working directory
|
||||||
|
use Cwd;
|
||||||
|
|
||||||
|
# $Bin is the directory where this script is located
|
||||||
|
use FindBin;
|
||||||
|
|
||||||
|
# open3 for a bidirectional communication with a child process
|
||||||
|
use IPC::Open3;
|
||||||
|
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# system variables and exported variables
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
$\ = "\n"; # final part for print command
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# read-only variables with double-@ construct
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
our $File_split_env_sh;
|
||||||
|
our $File_version_sh;
|
||||||
|
our $Groff_Version;
|
||||||
|
|
||||||
|
my $before_make; # script before run of 'make'
|
||||||
|
{
|
||||||
|
my $at = '@';
|
||||||
|
$before_make = 1 if '@VERSION@' eq "${at}VERSION${at}";
|
||||||
|
}
|
||||||
|
|
||||||
|
my %at_at;
|
||||||
|
my $file_perl_test_pl;
|
||||||
|
my $groffer_libdir;
|
||||||
|
|
||||||
|
if ($before_make) {
|
||||||
|
my $highlight_source_dir = $FindBin::Bin;
|
||||||
|
$at_at{'BINDIR'} = $highlight_source_dir;
|
||||||
|
$at_at{'G'} = '';
|
||||||
|
} else {
|
||||||
|
$at_at{'BINDIR'} = '@BINDIR@';
|
||||||
|
$at_at{'G'} = '@g@';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# options
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
foreach (@ARGV) {
|
||||||
|
if ( /^(-h|--h|--he|--hel|--help)$/ ) {
|
||||||
|
print q(Usage for the 'ghighlight' program:);
|
||||||
|
print 'ghighlight [-] [--] [filespec...] normal file name arguments';
|
||||||
|
print 'ghighlight [-h|--help] gives usage information';
|
||||||
|
print 'ghighlight [-v|--version] displays the version number';
|
||||||
|
print q(This program is a 'groff' preprocessor that handles highlighting source code ) .
|
||||||
|
q(parts in 'roff' files.);
|
||||||
|
exit;
|
||||||
|
} elsif ( /^(-v|--v|--ve|--ver|--vers|--versi|--versio|--version)$/ ) {
|
||||||
|
print q('ghighlight' version ) . $version;
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
my $macros = "groff_mm";
|
||||||
|
if ( $ENV{'GHLENABLECOLOR'} ) {
|
||||||
|
$macros = "groff_mm_color";
|
||||||
|
}
|
||||||
|
########################################################################
|
||||||
|
# input
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
my $source_mode = 0;
|
||||||
|
|
||||||
|
my @lines = ();
|
||||||
|
|
||||||
|
|
||||||
|
sub getTroffLine {
|
||||||
|
my ($opt) = @_;
|
||||||
|
if ($opt =~ /^ps=([0-9]+)/) {".ps $1"}
|
||||||
|
elsif ($opt =~ /^vs=(\S+)/) {".vs $1"}
|
||||||
|
else { print STDERR "didn't recognised '$opt'"; ""}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub getTroffLineOpposite {
|
||||||
|
my ($opt) = @_;
|
||||||
|
if ($opt =~ /^ps=/) {".ps"}
|
||||||
|
elsif ($opt =~ /^vs=/) {".vs"}
|
||||||
|
else { print STDERR "didn't recognised '$opt'"; ""}
|
||||||
|
}
|
||||||
|
|
||||||
|
# language for codeblocks
|
||||||
|
my $lang = '';
|
||||||
|
my @options = ();
|
||||||
|
foreach (<>) {
|
||||||
|
chomp;
|
||||||
|
s/\s+$//;
|
||||||
|
my $line = $_;
|
||||||
|
my $is_dot_Source = $line =~ /^[.']\s*(``|SOURCE)(|\s+.*)$/;
|
||||||
|
|
||||||
|
unless ( $is_dot_Source ) { # not a '.SOURCE' line
|
||||||
|
if ( $source_mode ) { # is running in SOURCE mode
|
||||||
|
push @lines, $line;
|
||||||
|
} else { # normal line, not SOURCE-related
|
||||||
|
print $line;
|
||||||
|
}
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
##########
|
||||||
|
# now the line is a '.SOURCE' line
|
||||||
|
|
||||||
|
my $args = $line;
|
||||||
|
$args =~ s/\s+$//; # remove final spaces
|
||||||
|
$args =~ s/^[.']\s*(``|SOURCE)\s*//; # omit .source part, leave the arguments
|
||||||
|
|
||||||
|
my @args = split /\s+/, $args;
|
||||||
|
|
||||||
|
##########
|
||||||
|
# start SOURCE mode
|
||||||
|
|
||||||
|
$lang = $args[0] if ( @args > 0 && $args[0] ne 'stop' );
|
||||||
|
|
||||||
|
if ( @args > 0 && $args[0] ne 'stop' ) {
|
||||||
|
# For '.``' no args or first arg 'start' means opening 'SOURCE' mode.
|
||||||
|
# Everything else means an ending command.
|
||||||
|
|
||||||
|
shift @args;
|
||||||
|
@options = @args;
|
||||||
|
|
||||||
|
if ( $source_mode ) {
|
||||||
|
# '.SOURCE' was started twice, ignore
|
||||||
|
print STDERR q('.``' starter was run several times);
|
||||||
|
next;
|
||||||
|
} else { # new SOURCE start
|
||||||
|
$source_mode = 1;
|
||||||
|
@lines = ();
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
##########
|
||||||
|
# now the line must be a SOURCE ending line (stop)
|
||||||
|
|
||||||
|
unless ( $source_mode ) {
|
||||||
|
print STDERR 'ghighlight.pl: there was a SOURCE ending without being in ' .
|
||||||
|
'SOURCE mode:';
|
||||||
|
print STDERR ' ' . $line;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
$source_mode = 0; # 'SOURCE' stop calling is correct
|
||||||
|
|
||||||
|
my $shopts = $ENV{"SHOPTS"} || "";
|
||||||
|
|
||||||
|
##########
|
||||||
|
# Run source-highlight on lines
|
||||||
|
# Check if language was specified
|
||||||
|
my $cmdline = "source-highlight -f $macros $shopts --output STDOUT";
|
||||||
|
if ($lang ne '') {
|
||||||
|
$cmdline .= " -s $lang";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Start `source-highlight`
|
||||||
|
my $pid = open3(my $child_in, my $child_out, my $child_err, $cmdline)
|
||||||
|
or die "open3() failed $!";
|
||||||
|
|
||||||
|
# Provide source code to `source-highlight` in its standard input
|
||||||
|
print $child_in $_ for @lines;
|
||||||
|
close $child_in;
|
||||||
|
|
||||||
|
if (my $v = $ENV{"GH_INTRO"}) {
|
||||||
|
print for split /;/, $v;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (@options) {
|
||||||
|
my $l = getTroffLine $_;
|
||||||
|
print $l if ($l ne "");
|
||||||
|
}
|
||||||
|
|
||||||
|
# Print `source-highlight` output
|
||||||
|
while (<$child_out>) {
|
||||||
|
chomp;
|
||||||
|
print;
|
||||||
|
}
|
||||||
|
close $child_out;
|
||||||
|
|
||||||
|
for (reverse @options) {
|
||||||
|
my $l = getTroffLineOpposite $_;
|
||||||
|
print $l if ($l ne "");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (my $v = $ENV{"GH_OUTRO"}) {
|
||||||
|
print for split /;/, $v;
|
||||||
|
}
|
||||||
|
|
||||||
|
my @print_res = (1);
|
||||||
|
|
||||||
|
# Start argument processing
|
||||||
|
|
||||||
|
# remove 'stop' arg if exists
|
||||||
|
# shift @args if ( $args[0] eq 'stop' );
|
||||||
|
|
||||||
|
# if ( @args == 0 ) {
|
||||||
|
# # no args for saving, so @print_res doesn't matter
|
||||||
|
# next;
|
||||||
|
# }
|
||||||
|
# my @var_names = ();
|
||||||
|
# my @mode_names = ();
|
||||||
|
|
||||||
|
# my $mode = '.ds';
|
||||||
|
# for ( @args ) {
|
||||||
|
# if ( /^\.?ds$/ ) {
|
||||||
|
# $mode = '.ds';
|
||||||
|
# next;
|
||||||
|
# }
|
||||||
|
# if ( /^\.?nr$/ ) {
|
||||||
|
# $mode = '.nr';
|
||||||
|
# next;
|
||||||
|
# }
|
||||||
|
# push @mode_names, $mode;
|
||||||
|
# push @var_names, $_;
|
||||||
|
# }
|
||||||
|
|
||||||
|
# my $n_vars = @var_names;
|
||||||
|
|
||||||
|
# if ( $n_vars < $n_res ) {
|
||||||
|
# print STDERR 'ghighlight: not enough variables for Python part: ' .
|
||||||
|
# $n_vars . ' variables for ' . $n_res . ' output lines.';
|
||||||
|
# } elsif ( $n_vars > $n_res ) {
|
||||||
|
# print STDERR 'ghighlight: too many variablenames for Python part: ' .
|
||||||
|
# $n_vars . ' variables for ' . $n_res . ' output lines.';
|
||||||
|
# }
|
||||||
|
# if ( $n_vars < $n_res ) {
|
||||||
|
# print STDERR 'ghighlight: not enough variables for Python part: ' .
|
||||||
|
# $n_vars . ' variables for ' . $n_res . ' output lines.';
|
||||||
|
# }
|
||||||
|
|
||||||
|
# my $n_min = $n_res;
|
||||||
|
# $n_min = $n_vars if ( $n_vars < $n_res );
|
||||||
|
# exit unless ( $n_min );
|
||||||
|
# $n_min -= 1; # for starting with 0
|
||||||
|
|
||||||
|
# for my $i ( 0..$n_min ) {
|
||||||
|
# my $value = $print_res[$i];
|
||||||
|
# chomp $value;
|
||||||
|
# print $mode_names[$i] . ' ' . $var_names[$i] . ' ' . $value;
|
||||||
|
# }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
1;
|
||||||
|
# Local Variables:
|
||||||
|
# mode: CPerl
|
||||||
|
# End:
|
||||||
5
bin/pdf.awk
Normal file
5
bin/pdf.awk
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
# usage: cat data | awk -f pdf.awk
|
||||||
|
{
|
||||||
|
V = V + $1
|
||||||
|
print V, $2
|
||||||
|
}
|
||||||
38
bin/remove-eol.pl
Executable file
38
bin/remove-eol.pl
Executable file
|
|
@ -0,0 +1,38 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
use v5.10;
|
||||||
|
|
||||||
|
my @list_multiline_cmd = (
|
||||||
|
qr/^\.SUBSECTION$/
|
||||||
|
, qr/^\.SECTION_NO_NUMBER$/
|
||||||
|
, qr/^\.SUBSUBSECTION$/
|
||||||
|
, qr/^\.SUBSUBSUBSECTION$/
|
||||||
|
, qr/^\.SECTION$/
|
||||||
|
, qr/^\.BULLET$/
|
||||||
|
, qr/^\.ENUM$/
|
||||||
|
);
|
||||||
|
|
||||||
|
my $STACK = "";
|
||||||
|
my $found_pattern = 0;
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
chomp;
|
||||||
|
my $line = $_;
|
||||||
|
|
||||||
|
$found_pattern = 0;
|
||||||
|
|
||||||
|
for (@list_multiline_cmd) {
|
||||||
|
if ($line =~ $_) {
|
||||||
|
#say "line '$line' matched " . $_;
|
||||||
|
$found_pattern = 1;
|
||||||
|
$STACK = $line . ' ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($found_pattern == 1) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
say $STACK . $line;
|
||||||
|
$STACK = "";
|
||||||
|
}
|
||||||
18
bin/roff2custom.sh
Executable file
18
bin/roff2custom.sh
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# HOW TO USE
|
||||||
|
|
||||||
|
# . ./$0
|
||||||
|
# cat file | modernize_roff | remove-eol.pl > file.new
|
||||||
|
|
||||||
|
modernize_roff() {
|
||||||
|
sed \
|
||||||
|
-e "s/^\.PP/.PARAGRAPH_INDENTED/" \
|
||||||
|
-e "s/^\.NH 1/.SECTION/" \
|
||||||
|
-e "s/^\.NH 2/.SUBSECTION/" \
|
||||||
|
-e "s/^\.NH 3/.SUBSUBSECTION/" \
|
||||||
|
-e "s/^\.NH 4/.SUBSUBSUBSECTION/" \
|
||||||
|
-e "s/^\.SH [1-4]/.SECTION_NO_NUMBER/" \
|
||||||
|
-e "s/^\.SH$/.SECTION_NO_NUMBER/" \
|
||||||
|
-e "s/^\.LP/.PARAGRAPH_UNINDENTED/"
|
||||||
|
}
|
||||||
69
bin/troffrc
Normal file
69
bin/troffrc
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
.\" Startup file for troff.
|
||||||
|
.
|
||||||
|
.\" This is tested by pic.
|
||||||
|
.nr 0p 0
|
||||||
|
.
|
||||||
|
.\" Load composite mappings.
|
||||||
|
.do mso composite.tmac
|
||||||
|
.
|
||||||
|
.\" Load generic fallback mappings.
|
||||||
|
.do mso fallbacks.tmac
|
||||||
|
.
|
||||||
|
.\" Use .do here, so that it works with -C.
|
||||||
|
.\" The groff command defines the .X string if the -X option was given.
|
||||||
|
.ie r.X .do ds troffrc!ps Xps.tmac
|
||||||
|
.el .do ds troffrc!ps ps.tmac
|
||||||
|
.do ds troffrc!pdf pdf.tmac
|
||||||
|
.do ds troffrc!dvi dvi.tmac
|
||||||
|
.do ds troffrc!X75 X.tmac
|
||||||
|
.do ds troffrc!X75-12 X.tmac
|
||||||
|
.do ds troffrc!X100 X.tmac
|
||||||
|
.do ds troffrc!X100-12 X.tmac
|
||||||
|
.do ds troffrc!ascii tty.tmac
|
||||||
|
.do ds troffrc!latin1 tty.tmac
|
||||||
|
.do ds troffrc!utf8 tty.tmac
|
||||||
|
.do ds troffrc!cp1047 tty.tmac
|
||||||
|
.do ds troffrc!lj4 lj4.tmac
|
||||||
|
.do ds troffrc!lbp lbp.tmac
|
||||||
|
.do ds troffrc!html html.tmac
|
||||||
|
.do if d troffrc!\*[.T] \
|
||||||
|
. do mso \*[troffrc!\*[.T]]
|
||||||
|
.do rm troffrc!ps troffrc!Xps troffrc!dvi troffrc!X75 troffrc!X75-12 \
|
||||||
|
troffrc!X100 troffrc!X100-12 troffrc!lj4 troff!lbp troffrc!html troffrc!pdf
|
||||||
|
.
|
||||||
|
.\" Test whether we work under EBCDIC and map the no-breakable space
|
||||||
|
.\" character accordingly.
|
||||||
|
.do ie '\[char97]'a' \
|
||||||
|
. do tr \[char160]\~
|
||||||
|
.el \
|
||||||
|
. do tr \[char65]\~
|
||||||
|
.
|
||||||
|
.\" Set the hyphenation language to 'fr'.
|
||||||
|
.do hla fr
|
||||||
|
.
|
||||||
|
.\" Disable hyphenation:
|
||||||
|
.\" Do not load hyphenation patterns and exceptions.
|
||||||
|
.\"do hpf hyphen.us
|
||||||
|
.\"do hpfa hyphenex.us
|
||||||
|
.
|
||||||
|
.\" Disable adjustment by default,
|
||||||
|
.\" such that manuals look similar with groff and mandoc(1).
|
||||||
|
.\".ad l
|
||||||
|
.\".de ad
|
||||||
|
.\"..
|
||||||
|
.\" Handle paper formats.
|
||||||
|
.do mso papersize.tmac
|
||||||
|
.
|
||||||
|
.\" Handle PS images.
|
||||||
|
.do mso pspic.tmac
|
||||||
|
.do mso pdfpic.tmac
|
||||||
|
.
|
||||||
|
.\" ====================================================================
|
||||||
|
.\" Editor settings
|
||||||
|
.\" ====================================================================
|
||||||
|
.
|
||||||
|
.\" Local Variables:
|
||||||
|
.\" mode: nroff
|
||||||
|
.\" fill-column: 72
|
||||||
|
.\" End:
|
||||||
|
.\" vim: set filetype=groff textwidth=72:
|
||||||
147
bin/utf8-to-ms.sh
Executable file
147
bin/utf8-to-ms.sh
Executable file
|
|
@ -0,0 +1,147 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# This program isn't by any mean complete.
|
||||||
|
# Most of text markers, accents and ligatures are handled.
|
||||||
|
# However, nothing else currently is.
|
||||||
|
# Please, do provide more translations.
|
||||||
|
|
||||||
|
# Convert input into hexadecimal and a single byte per line.
|
||||||
|
to_hex_one_column() xxd -p -c 1
|
||||||
|
|
||||||
|
# Reverse hexadecimal to original value.
|
||||||
|
from_hex() xxd -p -r
|
||||||
|
|
||||||
|
regroup_lines() awk '
|
||||||
|
BEGIN {
|
||||||
|
line_start=1
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
if (line_start == 1)
|
||||||
|
line = $1;
|
||||||
|
else
|
||||||
|
line = line " " $1;
|
||||||
|
|
||||||
|
line_start = 0;
|
||||||
|
if ($1 == "0a") {
|
||||||
|
print line;
|
||||||
|
line_start = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
if (line_start == 0)
|
||||||
|
print line
|
||||||
|
}
|
||||||
|
'
|
||||||
|
|
||||||
|
accents() sed \
|
||||||
|
-e "s/c3 81/5c 5b 27 41 5d/g"\
|
||||||
|
-e "s/c3 89/5c 5b 27 45 5d/g"\
|
||||||
|
-e "s/c3 8d/5c 5b 27 49 5d/g"\
|
||||||
|
-e "s/c3 93/5c 5b 27 4f 5d/g"\
|
||||||
|
-e "s/c3 9a/5c 5b 27 55 5d/g"\
|
||||||
|
-e "s/c3 9d/5c 5b 27 59 5d/g"\
|
||||||
|
-e "s/c3 a1/5c 5b 27 61 5d/g"\
|
||||||
|
-e "s/c3 a9/5c 5b 27 65 5d/g"\
|
||||||
|
-e "s/c3 ad/5c 5b 27 69 5d/g"\
|
||||||
|
-e "s/c3 b3/5c 5b 27 6f 5d/g"\
|
||||||
|
-e "s/c3 ba/5c 5b 27 75 5d/g"\
|
||||||
|
-e "s/c3 bd/5c 5b 27 79 5d/g"\
|
||||||
|
-e "s/c3 84/5c 5b 3a 41 5d/g"\
|
||||||
|
-e "s/c3 8b/5c 5b 3a 45 5d/g"\
|
||||||
|
-e "s/c3 8f/5c 5b 3a 49 5d/g"\
|
||||||
|
-e "s/c3 96/5c 5b 3a 4f 5d/g"\
|
||||||
|
-e "s/c3 9c/5c 5b 3a 55 5d/g"\
|
||||||
|
-e "s/c3 a4/5c 5b 3a 61 5d/g"\
|
||||||
|
-e "s/c3 ab/5c 5b 3a 65 5d/g"\
|
||||||
|
-e "s/c3 af/5c 5b 3a 69 5d/g"\
|
||||||
|
-e "s/c3 b6/5c 5b 3a 6f 5d/g"\
|
||||||
|
-e "s/c3 bc/5c 5b 3a 75 5d/g"\
|
||||||
|
-e "s/c3 bf/5c 5b 3a 79 5d/g"\
|
||||||
|
-e "s/c3 82/5c 5b 5e 41 5d/g"\
|
||||||
|
-e "s/c3 8a/5c 5b 5e 45 5d/g"\
|
||||||
|
-e "s/c3 8e/5c 5b 5e 49 5d/g"\
|
||||||
|
-e "s/c3 94/5c 5b 5e 4f 5d/g"\
|
||||||
|
-e "s/c3 9b/5c 5b 5e 55 5d/g"\
|
||||||
|
-e "s/c3 a2/5c 5b 5e 61 5d/g"\
|
||||||
|
-e "s/c3 aa/5c 5b 5e 65 5d/g"\
|
||||||
|
-e "s/c3 ae/5c 5b 5e 69 5d/g"\
|
||||||
|
-e "s/c3 b4/5c 5b 5e 6f 5d/g"\
|
||||||
|
-e "s/c3 bb/5c 5b 5e 75 5d/g"\
|
||||||
|
-e "s/c3 80/5c 5b 60 41 5d/g"\
|
||||||
|
-e "s/c3 88/5c 5b 60 45 5d/g"\
|
||||||
|
-e "s/c3 8c/5c 5b 60 49 5d/g"\
|
||||||
|
-e "s/c3 92/5c 5b 60 4f 5d/g"\
|
||||||
|
-e "s/c3 99/5c 5b 60 55 5d/g"\
|
||||||
|
-e "s/c3 a0/5c 5b 60 61 5d/g"\
|
||||||
|
-e "s/c3 a8/5c 5b 60 65 5d/g"\
|
||||||
|
-e "s/c3 ac/5c 5b 60 69 5d/g"\
|
||||||
|
-e "s/c3 b2/5c 5b 60 6f 5d/g"\
|
||||||
|
-e "s/c3 b9/5c 5b 60 75 5d/g"\
|
||||||
|
-e "s/c3 83/5c 5b 7e 41 5d/g"\
|
||||||
|
-e "s/c3 91/5c 5b 7e 4e 5d/g"\
|
||||||
|
-e "s/c3 95/5c 5b 7e 4f 5d/g"\
|
||||||
|
-e "s/c3 a3/5c 5b 7e 61 5d/g"\
|
||||||
|
-e "s/c3 b1/5c 5b 7e 6e 5d/g"\
|
||||||
|
-e "s/c3 b5/5c 5b 7e 6f 5d/g"\
|
||||||
|
-e "s/c3 87/5c 5b 2c 43 5d/g"\
|
||||||
|
-e "s/c3 a7/5c 5b 2c 63 5d/g"\
|
||||||
|
-e "s/c3 85/5c 5b 6f 41 5d/g"\
|
||||||
|
-e "s/c3 a5/5c 5b 6f 61 5d/g"\
|
||||||
|
-e "s/c5 b8/5c 5b 3a 59 5d/g"\
|
||||||
|
-e "s/c5 a0/5c 5b 76 53 5d/g"\
|
||||||
|
-e "s/c5 a1/5c 5b 76 73 5d/g"\
|
||||||
|
-e "s/c5 bd/5c 5b 76 5a 5d/g"\
|
||||||
|
-e "s/c5 be/5c 5b 76 7a 5d/g"
|
||||||
|
|
||||||
|
# Ligatures.
|
||||||
|
ligatures() sed \
|
||||||
|
-e "s/ef ac 80/5c 5b 66 66 5d/g"\
|
||||||
|
-e "s/ef ac 81/5c 5b 66 69 5d/g"\
|
||||||
|
-e "s/ef ac 82/5c 5b 66 6c 5d/g"\
|
||||||
|
-e "s/ef ac 83/5c 5b 46 69 5d/g"\
|
||||||
|
-e "s/ef ac 84/5c 5b 46 6c 5d/g"\
|
||||||
|
-e "s/c5 81/5c 5b 2f 4c 5d/g"\
|
||||||
|
-e "s/c5 82/5c 5b 2f 6c 5d/g"\
|
||||||
|
-e "s/c3 98/5c 5b 2f 4f 5d/g"\
|
||||||
|
-e "s/c3 b8/5c 5b 2f 6f 5d/g"\
|
||||||
|
-e "s/c3 86/5c 5b 41 45 5d/g"\
|
||||||
|
-e "s/c3 a6/5c 5b 61 65 5d/g"\
|
||||||
|
-e "s/c5 92/5c 5b 4f 45 5d/g"\
|
||||||
|
-e "s/c5 93/5c 5b 6f 65 5d/g"\
|
||||||
|
-e "s/c4 b2/5c 5b 49 4a 5d/g"\
|
||||||
|
-e "s/c4 b3/5c 5b 69 6a 5d/g"\
|
||||||
|
-e "s/c4 b1/5c 5b 2e 69 5d/g"\
|
||||||
|
-e "s/c8 b7/5c 5b 2e 6a 5d/g"
|
||||||
|
|
||||||
|
# Text markers.
|
||||||
|
text_markers() sed \
|
||||||
|
-e "s/e2 97 8b/5c 5b 63 69 5d/g"\
|
||||||
|
-e "s/e2 80 a2/5c 5b 62 75 5d/g"\
|
||||||
|
-e "s/e2 80 a1/5c 5b 64 64 5d/g"\
|
||||||
|
-e "s/e2 80 a0/5c 5b 64 67 5d/g"\
|
||||||
|
-e "s/e2 97 8a/5c 5b 6c 7a 5d/g"\
|
||||||
|
-e "s/e2 96 a1/5c 5b 73 71 5d/g"\
|
||||||
|
-e "s/c2 b6/5c 5b 70 73 5d/g"\
|
||||||
|
-e "s/c2 a7/5c 5b 73 63 5d/g"\
|
||||||
|
-e "s/e2 98 9c/5c 5b 6c 68 5d/g"\
|
||||||
|
-e "s/e2 98 9e/5c 5b 72 68 5d/g"\
|
||||||
|
-e "s/e2 86 b5/5c 5b 43 52 5d/g"\
|
||||||
|
-e "s/e2 9c 93/5c 5b 4f 4b 5d/g"
|
||||||
|
|
||||||
|
# These markers shouldn't be automatically translated in ms macros.
|
||||||
|
# @ "s/40/5c 5b 61 74 5d/g"
|
||||||
|
# # "s/23/5c 5b 73 68 5d/g"
|
||||||
|
|
||||||
|
# Legal symbols.
|
||||||
|
legal_symbols() sed \
|
||||||
|
-e "s/c2 a9/5c 5b 63 6f 5d/g"\
|
||||||
|
-e "s/c2 ae/5c 5b 72 67 5d/g"\
|
||||||
|
-e "s/e2 84 a2/5c 5b 74 6d 5d/g"
|
||||||
|
|
||||||
|
hexutf8_to_hexms() {
|
||||||
|
text_markers | accents | ligatures | legal_symbols
|
||||||
|
}
|
||||||
|
|
||||||
|
to_hex_one_column | regroup_lines | hexutf8_to_hexms | from_hex
|
||||||
179
data/cumulative-domains-per-user.d
Normal file
179
data/cumulative-domains-per-user.d
Normal file
|
|
@ -0,0 +1,179 @@
|
||||||
|
242 0
|
||||||
|
6226 1
|
||||||
|
10498 2
|
||||||
|
12977 3
|
||||||
|
15009 4
|
||||||
|
19452 5
|
||||||
|
20169 6
|
||||||
|
20611 7
|
||||||
|
20981 8
|
||||||
|
21261 9
|
||||||
|
21872 10
|
||||||
|
22077 11
|
||||||
|
22236 12
|
||||||
|
22346 13
|
||||||
|
22442 14
|
||||||
|
22518 15
|
||||||
|
22583 16
|
||||||
|
22634 17
|
||||||
|
22687 18
|
||||||
|
22736 19
|
||||||
|
22815 20
|
||||||
|
22860 21
|
||||||
|
22901 22
|
||||||
|
22923 23
|
||||||
|
22943 24
|
||||||
|
22963 25
|
||||||
|
22993 26
|
||||||
|
23014 27
|
||||||
|
23031 28
|
||||||
|
23046 29
|
||||||
|
23124 30
|
||||||
|
23147 31
|
||||||
|
23161 32
|
||||||
|
23174 33
|
||||||
|
23186 34
|
||||||
|
23208 35
|
||||||
|
23218 36
|
||||||
|
23232 37
|
||||||
|
23239 38
|
||||||
|
23251 39
|
||||||
|
23261 40
|
||||||
|
23271 41
|
||||||
|
23278 42
|
||||||
|
23289 43
|
||||||
|
23298 44
|
||||||
|
23307 45
|
||||||
|
23311 46
|
||||||
|
23319 47
|
||||||
|
23324 48
|
||||||
|
23332 49
|
||||||
|
23343 50
|
||||||
|
23349 51
|
||||||
|
23365 52
|
||||||
|
23370 53
|
||||||
|
23373 54
|
||||||
|
23377 55
|
||||||
|
23382 56
|
||||||
|
23384 57
|
||||||
|
23388 58
|
||||||
|
23393 59
|
||||||
|
23397 60
|
||||||
|
23401 61
|
||||||
|
23403 62
|
||||||
|
23407 63
|
||||||
|
23409 64
|
||||||
|
23415 65
|
||||||
|
23416 66
|
||||||
|
23419 67
|
||||||
|
23420 68
|
||||||
|
23422 69
|
||||||
|
23426 70
|
||||||
|
23428 71
|
||||||
|
23430 72
|
||||||
|
23432 73
|
||||||
|
23435 74
|
||||||
|
23436 75
|
||||||
|
23437 77
|
||||||
|
23441 78
|
||||||
|
23447 80
|
||||||
|
23451 81
|
||||||
|
23455 82
|
||||||
|
23463 83
|
||||||
|
23467 85
|
||||||
|
23470 86
|
||||||
|
23478 87
|
||||||
|
23484 88
|
||||||
|
23491 89
|
||||||
|
23495 90
|
||||||
|
23498 91
|
||||||
|
23501 92
|
||||||
|
23506 93
|
||||||
|
23514 94
|
||||||
|
23517 95
|
||||||
|
23528 96
|
||||||
|
23536 97
|
||||||
|
23546 98
|
||||||
|
23574 99
|
||||||
|
23611 100
|
||||||
|
23618 101
|
||||||
|
23622 102
|
||||||
|
23623 104
|
||||||
|
23624 108
|
||||||
|
23625 110
|
||||||
|
23627 111
|
||||||
|
23628 112
|
||||||
|
23629 113
|
||||||
|
23630 114
|
||||||
|
23635 115
|
||||||
|
23636 117
|
||||||
|
23638 118
|
||||||
|
23639 120
|
||||||
|
23640 122
|
||||||
|
23641 123
|
||||||
|
23643 127
|
||||||
|
23644 129
|
||||||
|
23645 130
|
||||||
|
23646 131
|
||||||
|
23647 133
|
||||||
|
23649 134
|
||||||
|
23650 135
|
||||||
|
23652 138
|
||||||
|
23653 141
|
||||||
|
23654 142
|
||||||
|
23655 143
|
||||||
|
23656 145
|
||||||
|
23658 147
|
||||||
|
23659 150
|
||||||
|
23660 152
|
||||||
|
23661 154
|
||||||
|
23662 156
|
||||||
|
23663 158
|
||||||
|
23664 159
|
||||||
|
23665 165
|
||||||
|
23666 166
|
||||||
|
23667 168
|
||||||
|
23668 175
|
||||||
|
23669 177
|
||||||
|
23670 180
|
||||||
|
23671 185
|
||||||
|
23672 186
|
||||||
|
23673 187
|
||||||
|
23674 194
|
||||||
|
23675 197
|
||||||
|
23676 202
|
||||||
|
23677 203
|
||||||
|
23678 205
|
||||||
|
23679 209
|
||||||
|
23680 224
|
||||||
|
23681 227
|
||||||
|
23682 231
|
||||||
|
23683 233
|
||||||
|
23684 242
|
||||||
|
23685 248
|
||||||
|
23686 253
|
||||||
|
23687 254
|
||||||
|
23688 258
|
||||||
|
23689 274
|
||||||
|
23690 281
|
||||||
|
23691 309
|
||||||
|
23692 313
|
||||||
|
23693 334
|
||||||
|
23694 362
|
||||||
|
23695 363
|
||||||
|
23696 373
|
||||||
|
23697 416
|
||||||
|
23698 473
|
||||||
|
23699 479
|
||||||
|
23700 538
|
||||||
|
23701 546
|
||||||
|
23702 554
|
||||||
|
23703 573
|
||||||
|
23704 583
|
||||||
|
23705 860
|
||||||
|
23706 973
|
||||||
|
23707 1954
|
||||||
|
23708 2589
|
||||||
|
23709 2911
|
||||||
|
23710 3400
|
||||||
|
23711 3714
|
||||||
179
data/domains-per-user.d
Normal file
179
data/domains-per-user.d
Normal file
|
|
@ -0,0 +1,179 @@
|
||||||
|
242 0
|
||||||
|
5984 1
|
||||||
|
4272 2
|
||||||
|
2479 3
|
||||||
|
2032 4
|
||||||
|
4443 5
|
||||||
|
717 6
|
||||||
|
442 7
|
||||||
|
370 8
|
||||||
|
280 9
|
||||||
|
611 10
|
||||||
|
205 11
|
||||||
|
159 12
|
||||||
|
110 13
|
||||||
|
96 14
|
||||||
|
76 15
|
||||||
|
65 16
|
||||||
|
51 17
|
||||||
|
53 18
|
||||||
|
49 19
|
||||||
|
79 20
|
||||||
|
45 21
|
||||||
|
41 22
|
||||||
|
22 23
|
||||||
|
20 24
|
||||||
|
20 25
|
||||||
|
30 26
|
||||||
|
21 27
|
||||||
|
17 28
|
||||||
|
15 29
|
||||||
|
78 30
|
||||||
|
23 31
|
||||||
|
14 32
|
||||||
|
13 33
|
||||||
|
12 34
|
||||||
|
22 35
|
||||||
|
10 36
|
||||||
|
14 37
|
||||||
|
7 38
|
||||||
|
12 39
|
||||||
|
10 40
|
||||||
|
10 41
|
||||||
|
7 42
|
||||||
|
11 43
|
||||||
|
9 44
|
||||||
|
9 45
|
||||||
|
4 46
|
||||||
|
8 47
|
||||||
|
5 48
|
||||||
|
8 49
|
||||||
|
11 50
|
||||||
|
6 51
|
||||||
|
16 52
|
||||||
|
5 53
|
||||||
|
3 54
|
||||||
|
4 55
|
||||||
|
5 56
|
||||||
|
2 57
|
||||||
|
4 58
|
||||||
|
5 59
|
||||||
|
4 60
|
||||||
|
4 61
|
||||||
|
2 62
|
||||||
|
4 63
|
||||||
|
2 64
|
||||||
|
6 65
|
||||||
|
1 66
|
||||||
|
3 67
|
||||||
|
1 68
|
||||||
|
2 69
|
||||||
|
4 70
|
||||||
|
2 71
|
||||||
|
2 72
|
||||||
|
2 73
|
||||||
|
3 74
|
||||||
|
1 75
|
||||||
|
1 77
|
||||||
|
4 78
|
||||||
|
6 80
|
||||||
|
4 81
|
||||||
|
4 82
|
||||||
|
8 83
|
||||||
|
4 85
|
||||||
|
3 86
|
||||||
|
8 87
|
||||||
|
6 88
|
||||||
|
7 89
|
||||||
|
4 90
|
||||||
|
3 91
|
||||||
|
3 92
|
||||||
|
5 93
|
||||||
|
8 94
|
||||||
|
3 95
|
||||||
|
11 96
|
||||||
|
8 97
|
||||||
|
10 98
|
||||||
|
28 99
|
||||||
|
37 100
|
||||||
|
7 101
|
||||||
|
4 102
|
||||||
|
1 104
|
||||||
|
1 108
|
||||||
|
1 110
|
||||||
|
2 111
|
||||||
|
1 112
|
||||||
|
1 113
|
||||||
|
1 114
|
||||||
|
5 115
|
||||||
|
1 117
|
||||||
|
2 118
|
||||||
|
1 120
|
||||||
|
1 122
|
||||||
|
1 123
|
||||||
|
2 127
|
||||||
|
1 129
|
||||||
|
1 130
|
||||||
|
1 131
|
||||||
|
1 133
|
||||||
|
2 134
|
||||||
|
1 135
|
||||||
|
2 138
|
||||||
|
1 141
|
||||||
|
1 142
|
||||||
|
1 143
|
||||||
|
1 145
|
||||||
|
2 147
|
||||||
|
1 150
|
||||||
|
1 152
|
||||||
|
1 154
|
||||||
|
1 156
|
||||||
|
1 158
|
||||||
|
1 159
|
||||||
|
1 165
|
||||||
|
1 166
|
||||||
|
1 168
|
||||||
|
1 175
|
||||||
|
1 177
|
||||||
|
1 180
|
||||||
|
1 185
|
||||||
|
1 186
|
||||||
|
1 187
|
||||||
|
1 194
|
||||||
|
1 197
|
||||||
|
1 202
|
||||||
|
1 203
|
||||||
|
1 205
|
||||||
|
1 209
|
||||||
|
1 224
|
||||||
|
1 227
|
||||||
|
1 231
|
||||||
|
1 233
|
||||||
|
1 242
|
||||||
|
1 248
|
||||||
|
1 253
|
||||||
|
1 254
|
||||||
|
1 258
|
||||||
|
1 274
|
||||||
|
1 281
|
||||||
|
1 309
|
||||||
|
1 313
|
||||||
|
1 334
|
||||||
|
1 362
|
||||||
|
1 363
|
||||||
|
1 373
|
||||||
|
1 416
|
||||||
|
1 473
|
||||||
|
1 479
|
||||||
|
1 538
|
||||||
|
1 546
|
||||||
|
1 554
|
||||||
|
1 573
|
||||||
|
1 583
|
||||||
|
1 860
|
||||||
|
1 973
|
||||||
|
1 1954
|
||||||
|
1 2589
|
||||||
|
1 2911
|
||||||
|
1 3400
|
||||||
|
1 3714
|
||||||
179
data/reverse-cumulative-domains-per-user.d
Normal file
179
data/reverse-cumulative-domains-per-user.d
Normal file
|
|
@ -0,0 +1,179 @@
|
||||||
|
1 3714
|
||||||
|
2 3400
|
||||||
|
3 2911
|
||||||
|
4 2589
|
||||||
|
5 1954
|
||||||
|
6 973
|
||||||
|
7 860
|
||||||
|
8 583
|
||||||
|
9 573
|
||||||
|
10 554
|
||||||
|
11 546
|
||||||
|
12 538
|
||||||
|
13 479
|
||||||
|
14 473
|
||||||
|
15 416
|
||||||
|
16 373
|
||||||
|
17 363
|
||||||
|
18 362
|
||||||
|
19 334
|
||||||
|
20 313
|
||||||
|
21 309
|
||||||
|
22 281
|
||||||
|
23 274
|
||||||
|
24 258
|
||||||
|
25 254
|
||||||
|
26 253
|
||||||
|
27 248
|
||||||
|
28 242
|
||||||
|
29 233
|
||||||
|
30 231
|
||||||
|
31 227
|
||||||
|
32 224
|
||||||
|
33 209
|
||||||
|
34 205
|
||||||
|
35 203
|
||||||
|
36 202
|
||||||
|
37 197
|
||||||
|
38 194
|
||||||
|
39 187
|
||||||
|
40 186
|
||||||
|
41 185
|
||||||
|
42 180
|
||||||
|
43 177
|
||||||
|
44 175
|
||||||
|
45 168
|
||||||
|
46 166
|
||||||
|
47 165
|
||||||
|
48 159
|
||||||
|
49 158
|
||||||
|
50 156
|
||||||
|
51 154
|
||||||
|
52 152
|
||||||
|
53 150
|
||||||
|
55 147
|
||||||
|
56 145
|
||||||
|
57 143
|
||||||
|
58 142
|
||||||
|
59 141
|
||||||
|
61 138
|
||||||
|
62 135
|
||||||
|
64 134
|
||||||
|
65 133
|
||||||
|
66 131
|
||||||
|
67 130
|
||||||
|
68 129
|
||||||
|
70 127
|
||||||
|
71 123
|
||||||
|
72 122
|
||||||
|
73 120
|
||||||
|
75 118
|
||||||
|
76 117
|
||||||
|
81 115
|
||||||
|
82 114
|
||||||
|
83 113
|
||||||
|
84 112
|
||||||
|
86 111
|
||||||
|
87 110
|
||||||
|
88 108
|
||||||
|
89 104
|
||||||
|
93 102
|
||||||
|
100 101
|
||||||
|
137 100
|
||||||
|
165 99
|
||||||
|
175 98
|
||||||
|
183 97
|
||||||
|
194 96
|
||||||
|
197 95
|
||||||
|
205 94
|
||||||
|
210 93
|
||||||
|
213 92
|
||||||
|
216 91
|
||||||
|
220 90
|
||||||
|
227 89
|
||||||
|
233 88
|
||||||
|
241 87
|
||||||
|
244 86
|
||||||
|
248 85
|
||||||
|
256 83
|
||||||
|
260 82
|
||||||
|
264 81
|
||||||
|
270 80
|
||||||
|
274 78
|
||||||
|
275 77
|
||||||
|
276 75
|
||||||
|
279 74
|
||||||
|
281 73
|
||||||
|
283 72
|
||||||
|
285 71
|
||||||
|
289 70
|
||||||
|
291 69
|
||||||
|
292 68
|
||||||
|
295 67
|
||||||
|
296 66
|
||||||
|
302 65
|
||||||
|
304 64
|
||||||
|
308 63
|
||||||
|
310 62
|
||||||
|
314 61
|
||||||
|
318 60
|
||||||
|
323 59
|
||||||
|
327 58
|
||||||
|
329 57
|
||||||
|
334 56
|
||||||
|
338 55
|
||||||
|
341 54
|
||||||
|
346 53
|
||||||
|
362 52
|
||||||
|
368 51
|
||||||
|
379 50
|
||||||
|
387 49
|
||||||
|
392 48
|
||||||
|
400 47
|
||||||
|
404 46
|
||||||
|
413 45
|
||||||
|
422 44
|
||||||
|
433 43
|
||||||
|
440 42
|
||||||
|
450 41
|
||||||
|
460 40
|
||||||
|
472 39
|
||||||
|
479 38
|
||||||
|
493 37
|
||||||
|
503 36
|
||||||
|
525 35
|
||||||
|
537 34
|
||||||
|
550 33
|
||||||
|
564 32
|
||||||
|
587 31
|
||||||
|
665 30
|
||||||
|
680 29
|
||||||
|
697 28
|
||||||
|
718 27
|
||||||
|
748 26
|
||||||
|
768 25
|
||||||
|
788 24
|
||||||
|
810 23
|
||||||
|
851 22
|
||||||
|
896 21
|
||||||
|
975 20
|
||||||
|
1024 19
|
||||||
|
1077 18
|
||||||
|
1128 17
|
||||||
|
1193 16
|
||||||
|
1269 15
|
||||||
|
1365 14
|
||||||
|
1475 13
|
||||||
|
1634 12
|
||||||
|
1839 11
|
||||||
|
2450 10
|
||||||
|
2730 9
|
||||||
|
3100 8
|
||||||
|
3542 7
|
||||||
|
4259 6
|
||||||
|
8702 5
|
||||||
|
10734 4
|
||||||
|
13213 3
|
||||||
|
17485 2
|
||||||
|
23469 1
|
||||||
|
23711 0
|
||||||
33
graphs/cumulative-domains-per-user.grap
Normal file
33
graphs/cumulative-domains-per-user.grap
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
.G1
|
||||||
|
copy "legend.grap"
|
||||||
|
|
||||||
|
graph Linear
|
||||||
|
frame invis ht 3 wid 2 left solid bot solid
|
||||||
|
#coord x 0,4000 y 0,100
|
||||||
|
#ticks left out from 0 to 40000 by 10000
|
||||||
|
#ticks bot off
|
||||||
|
#ticks bot out at 0, 10, 100,1000,2000,3000
|
||||||
|
|
||||||
|
label left "% users having" unaligned "up to this" "much domains" left 0.5
|
||||||
|
label bottom "Nb domains" unaligned
|
||||||
|
|
||||||
|
copy "./data/cumulative-domains-per-user.d" thru X
|
||||||
|
v = ($1/23711)*100
|
||||||
|
bullet at $2,v
|
||||||
|
X
|
||||||
|
|
||||||
|
graph Zoom
|
||||||
|
frame invis ht 3 wid 2 left solid bot solid
|
||||||
|
coord x 10,100 y 96,100
|
||||||
|
#ticks left out from 0 to 40000 by 10000
|
||||||
|
#ticks bot off
|
||||||
|
ticks bot out from 0 to 1000 by 10
|
||||||
|
|
||||||
|
label left "% users having" unaligned "up to this" "much domains" left 0.5
|
||||||
|
label bottom "Nb domains" unaligned
|
||||||
|
|
||||||
|
copy "./data/cumulative-domains-per-user.d" thru X
|
||||||
|
v = ($1/23711)*100
|
||||||
|
bullet at $2,v
|
||||||
|
X
|
||||||
|
.G2
|
||||||
31
graphs/nb-domains-per-user.grap
Normal file
31
graphs/nb-domains-per-user.grap
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
.G1
|
||||||
|
copy "legend.grap"
|
||||||
|
|
||||||
|
graph Linear
|
||||||
|
frame invis ht 3 wid 2 left solid bot solid
|
||||||
|
coord x 0,4000 y 1,6000
|
||||||
|
#ticks left out from 0 to 40000 by 10000
|
||||||
|
#ticks bot off
|
||||||
|
#ticks bot out at 0, 10, 100,1000,2000,3000
|
||||||
|
|
||||||
|
label left "Nb users" unaligned left 0.5
|
||||||
|
label bottom "Nb domains" unaligned
|
||||||
|
|
||||||
|
copy "./data/domains-per-user.d" thru X
|
||||||
|
bullet at $2,$1
|
||||||
|
X
|
||||||
|
|
||||||
|
graph Zoom
|
||||||
|
frame invis ht 3 wid 2 left solid bot solid
|
||||||
|
coord x 0,50 y 1,6000
|
||||||
|
#ticks left out from 0 to 40000 by 10000
|
||||||
|
#ticks bot off
|
||||||
|
ticks bot out from 0 to 50 by 10
|
||||||
|
|
||||||
|
label left "Nb users" unaligned left 0.5
|
||||||
|
label bottom "Nb domains" unaligned
|
||||||
|
|
||||||
|
copy "./data/domains-per-user.d" thru X
|
||||||
|
bullet at $2,$1
|
||||||
|
X
|
||||||
|
.G2
|
||||||
145
legend.grap
Normal file
145
legend.grap
Normal file
|
|
@ -0,0 +1,145 @@
|
||||||
|
define boite {
|
||||||
|
xleft = $1
|
||||||
|
xright = $2
|
||||||
|
yup = $3
|
||||||
|
ydown = $4
|
||||||
|
|
||||||
|
line from xleft,ydown to xright,ydown
|
||||||
|
line from xleft,yup to xright,yup
|
||||||
|
line from xleft,yup to xleft,ydown
|
||||||
|
line from xright,yup to xright,ydown
|
||||||
|
}
|
||||||
|
|
||||||
|
define legend_line {
|
||||||
|
cy = $1
|
||||||
|
lstartx = $2
|
||||||
|
lendx = $3
|
||||||
|
tstartx = $4
|
||||||
|
|
||||||
|
.gcolor $5
|
||||||
|
line from lstartx,cy to lendx,cy
|
||||||
|
.gcolor
|
||||||
|
$6 ljust at tstartx,cy
|
||||||
|
}
|
||||||
|
|
||||||
|
define legend {
|
||||||
|
xleft = $1
|
||||||
|
xright = $2
|
||||||
|
yup = $3
|
||||||
|
ydown = $4
|
||||||
|
|
||||||
|
diffx = xright - xleft
|
||||||
|
diffy = yup - ydown
|
||||||
|
|
||||||
|
hdiff = diffy/5.7
|
||||||
|
cy = yup - (diffy/6)
|
||||||
|
cx = (diffx/20) + xleft
|
||||||
|
|
||||||
|
lstartx = cx
|
||||||
|
lendx = cx + diffx/8
|
||||||
|
tstartx = lendx + diffx/20
|
||||||
|
|
||||||
|
.ps -2
|
||||||
|
legend_line(cy,lstartx,lendx,tstartx,red,"RAM only")
|
||||||
|
cy = cy - hdiff
|
||||||
|
legend_line(cy,lstartx,lendx,tstartx,black,"Cached db and index")
|
||||||
|
cy = cy - hdiff
|
||||||
|
legend_line(cy,lstartx,lendx,tstartx,pink,"Common db, cached index")
|
||||||
|
cy = cy - hdiff
|
||||||
|
legend_line(cy,lstartx,lendx,tstartx,blue,"Uncached db, cached index")
|
||||||
|
cy = cy - hdiff
|
||||||
|
legend_line(cy,lstartx,lendx,tstartx,green,"Uncached db and index")
|
||||||
|
.ps +2
|
||||||
|
}
|
||||||
|
|
||||||
|
define legend_common {
|
||||||
|
xleft = $1
|
||||||
|
xright = $2
|
||||||
|
yup = $3
|
||||||
|
ydown = $4
|
||||||
|
|
||||||
|
diffx = xright - xleft
|
||||||
|
diffy = yup - ydown
|
||||||
|
|
||||||
|
hdiff = diffy/4.5
|
||||||
|
cy = yup - (diffy/6)
|
||||||
|
cx = (diffx/20) + xleft
|
||||||
|
|
||||||
|
lstartx = cx
|
||||||
|
lendx = cx + diffx/8
|
||||||
|
tstartx = lendx + diffx/20
|
||||||
|
|
||||||
|
.ps -2
|
||||||
|
legend_line(cy,lstartx,lendx,tstartx,red,"1k")
|
||||||
|
cy = cy - hdiff
|
||||||
|
legend_line(cy,lstartx,lendx,tstartx,green,"5k")
|
||||||
|
cy = cy - hdiff
|
||||||
|
legend_line(cy,lstartx,lendx,tstartx,black,"10k")
|
||||||
|
cy = cy - hdiff
|
||||||
|
legend_line(cy,lstartx,lendx,tstartx,pink,"20k")
|
||||||
|
.ps +2
|
||||||
|
}
|
||||||
|
|
||||||
|
define legend_lru_addition {
|
||||||
|
xleft = $1
|
||||||
|
xright = $2
|
||||||
|
yup = $3
|
||||||
|
ydown = $4
|
||||||
|
|
||||||
|
diffx = xright - xleft
|
||||||
|
diffy = yup - ydown
|
||||||
|
|
||||||
|
hdiff = diffy/3.5
|
||||||
|
cy = yup - (diffy/10)
|
||||||
|
cx = (diffx/20) + xleft
|
||||||
|
|
||||||
|
lstartx = cx
|
||||||
|
lendx = cx + diffx/8
|
||||||
|
tstartx = lendx + diffx/20
|
||||||
|
|
||||||
|
.ps -2
|
||||||
|
cy = cy - hdiff
|
||||||
|
legend_line(cy,lstartx,lendx,tstartx,orange,"Basic LRU")
|
||||||
|
cy = cy - hdiff
|
||||||
|
legend_line(cy,lstartx,lendx,tstartx,green,"Efficient LRU")
|
||||||
|
.ps +2
|
||||||
|
}
|
||||||
|
|
||||||
|
# WARNING: this macro uses "cx" (current x), y_scale and "ox" (old x).
|
||||||
|
define line_no_mustache {
|
||||||
|
# $1 = cbram
|
||||||
|
# $2 = obram
|
||||||
|
# $3 = column
|
||||||
|
# $4 = color
|
||||||
|
|
||||||
|
$1 = $3/y_scale
|
||||||
|
.gcolor $4
|
||||||
|
if ($2 > 0) then {line from cx,$1 to ox,$2}
|
||||||
|
bullet at cx,$1
|
||||||
|
.gcolor
|
||||||
|
$2 = $1
|
||||||
|
}
|
||||||
|
|
||||||
|
# WARNING: this macro uses "cx" (current x), y_scale and "ox" (old x).
|
||||||
|
define line_with_mustache {
|
||||||
|
# $1 = cbram
|
||||||
|
# $2 = obram
|
||||||
|
# $3 = column
|
||||||
|
# $4 = color
|
||||||
|
# $5 = column mustache 1
|
||||||
|
# $6 = column mustache 2
|
||||||
|
|
||||||
|
line_no_mustache($1,$2,$3,$4)
|
||||||
|
line from cx,$5/y_scale to cx,$6/y_scale
|
||||||
|
}
|
||||||
|
|
||||||
|
# WARNING: this macro y_scale.
|
||||||
|
define linear_growth {
|
||||||
|
# $1 = color
|
||||||
|
# $2 = duration of the retrieval for a single value
|
||||||
|
# $3 = min number of retrievals
|
||||||
|
# $4 = max number of retrievals
|
||||||
|
.gcolor $1
|
||||||
|
line dashed from $3,($2*$3)/y_scale to $4,($2*$4)/y_scale
|
||||||
|
.gcolor
|
||||||
|
}
|
||||||
632
macros.roff
Normal file
632
macros.roff
Normal file
|
|
@ -0,0 +1,632 @@
|
||||||
|
.\" .RP = report document
|
||||||
|
.nr PO 0.5i \" page offset default 1i
|
||||||
|
.nr LL 7.0i \" line length default 6i
|
||||||
|
.nr FM 0.3i \" page foot margin default 1i
|
||||||
|
.nr DI 0
|
||||||
|
.nr FF 3 \" footnotes' type: numbered, with point, indented
|
||||||
|
.nr PS 12
|
||||||
|
.
|
||||||
|
.nr LIST_NUMBER 0 +1
|
||||||
|
.
|
||||||
|
.R1
|
||||||
|
no-label-in-reference
|
||||||
|
accumulate
|
||||||
|
.R2
|
||||||
|
.
|
||||||
|
. \" COLORS
|
||||||
|
.defcolor darkgreen rgb 0.1 0.5 0.2
|
||||||
|
.defcolor darkblue rgb 0.3 0.3 0.7
|
||||||
|
.defcolor darkred rgb 0.7 0.3 0.3
|
||||||
|
.defcolor black rgb 0 0 0
|
||||||
|
.defcolor color_box rgb 1 1 .6
|
||||||
|
.
|
||||||
|
. \" with semantic
|
||||||
|
.defcolor citation rgb 0.4 0.4 0.4
|
||||||
|
.defcolor citationbar rgb 0.3 0.3 0.7
|
||||||
|
.defcolor explanation rgb 0.7 0.4 0.4
|
||||||
|
.defcolor explanationbar rgb 0.8 0.3 0.3
|
||||||
|
.
|
||||||
|
.defcolor specialcolor_command rgb 0.7 0.3 0.3
|
||||||
|
.defcolor specialcolor_type rgb 0.6 0.3 0.5
|
||||||
|
.defcolor specialcolor_constructor rgb 0.1 0.5 0.2
|
||||||
|
.defcolor specialcolor_module rgb 0.1 0.5 0.2
|
||||||
|
.defcolor specialcolor_function rgb 0.4 0.4 0.7
|
||||||
|
.defcolor specialcolor_question rgb 0.0 0.0 0.7
|
||||||
|
.defcolor specialcolor_operator rgb 0.3 0.8 0.3
|
||||||
|
.defcolor specialcolor_shine rgb 0.3 0.3 0.7
|
||||||
|
.
|
||||||
|
. \" SIZES
|
||||||
|
.nr specialsize_command 10
|
||||||
|
.nr specialsize_type 8
|
||||||
|
.nr specialsize_constructor 8
|
||||||
|
.nr specialsize_module 8
|
||||||
|
.nr specialsize_function 8
|
||||||
|
.nr specialsize_operator 9
|
||||||
|
.nr specialsize_question 10 \" Current point size, no change.
|
||||||
|
.nr specialsize_shine 11
|
||||||
|
.
|
||||||
|
. \" FONTS
|
||||||
|
.ds specialfont_command CW
|
||||||
|
.ds specialfont_type CW
|
||||||
|
.ds specialfont_constructor CW
|
||||||
|
.ds specialfont_module CW
|
||||||
|
.ds specialfont_function CW
|
||||||
|
.ds specialfont_operator CW
|
||||||
|
.ds specialfont_question I
|
||||||
|
.ds specialfont_shine B
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.de BELLOWEXPLANATION1
|
||||||
|
.sp 0.5
|
||||||
|
.ps 7 \" point size (~= font size)
|
||||||
|
.vs 8p \" vertical spacing between lines
|
||||||
|
..
|
||||||
|
.de BELLOWEXPLANATION2
|
||||||
|
.br
|
||||||
|
.ps 9
|
||||||
|
.vs 11p
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.\" BULLET and ENUM => do not add space when no parameter are provided
|
||||||
|
.de STARTBULLET \" Bullet points
|
||||||
|
.in +1
|
||||||
|
..
|
||||||
|
.de BULLET \" Bullet points
|
||||||
|
.in -1
|
||||||
|
\(bu
|
||||||
|
.in +1
|
||||||
|
.sp -1
|
||||||
|
.ie '\\$1'' \
|
||||||
|
.
|
||||||
|
.el \\$*
|
||||||
|
..
|
||||||
|
.de ENDBULLET
|
||||||
|
.in -1 \" indent
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.de ENUM \" Numbered list
|
||||||
|
.nr LIST_NUMBER +1
|
||||||
|
.IP \\n[LIST_NUMBER]. 3
|
||||||
|
.sp -1
|
||||||
|
.ie '\\$1'' \
|
||||||
|
.
|
||||||
|
.el \\$*
|
||||||
|
..
|
||||||
|
.de ENDENUM
|
||||||
|
.nr LIST_NUMBER 0
|
||||||
|
.in -2 \" indent
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.de b1 \" Begin code box
|
||||||
|
.B1
|
||||||
|
.sp 0.2
|
||||||
|
.ft CW
|
||||||
|
..
|
||||||
|
.de b2 \" End code box
|
||||||
|
.sp 0.5
|
||||||
|
.B2
|
||||||
|
.ft
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.de CITATION1
|
||||||
|
.KS \" start a keep
|
||||||
|
.ft I \" citation in italics
|
||||||
|
.mk C \" set a marker for line drawing
|
||||||
|
.in +1 \" indent a bit
|
||||||
|
.gcolor citation
|
||||||
|
..
|
||||||
|
.ig
|
||||||
|
The CITATION2 macro closes the quote then draws a line
|
||||||
|
from current line to the start of the quote.
|
||||||
|
..
|
||||||
|
.de CITATION2
|
||||||
|
.mk D \" set second marker to come back here
|
||||||
|
.ft \" back to previous font
|
||||||
|
.in -1 \" remove indent
|
||||||
|
.gcolor \" remove previous color
|
||||||
|
.gcolor citationbar
|
||||||
|
.\" r = move upward
|
||||||
|
.\" Z D t = drawing thickness
|
||||||
|
.\" L = draw the line
|
||||||
|
\r\
|
||||||
|
\Z'\D't 1p''\
|
||||||
|
\L'|\\nCu' \" draw line
|
||||||
|
.gcolor black \" remove previous color
|
||||||
|
.sp -2 \" get two lines back
|
||||||
|
\Z'\D't 1'' \" get the previous drawing thickness back
|
||||||
|
.KE \" end of the keep
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.de NAMECITATION
|
||||||
|
.QP
|
||||||
|
.vs -\\n[legendps]p
|
||||||
|
.ps -\\n[legendps]
|
||||||
|
.in -1.2
|
||||||
|
.ll +1.2
|
||||||
|
\h'|-2'\(em\h'|-0.4'
|
||||||
|
\\$*
|
||||||
|
.br
|
||||||
|
.LP
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.de EXPLANATION1
|
||||||
|
.KS \" start a keep
|
||||||
|
.ft B \" citation in italics
|
||||||
|
.mk C \" set a marker for line drawing
|
||||||
|
.in +1 \" indent a bit
|
||||||
|
.gcolor explanation
|
||||||
|
..
|
||||||
|
.de EXPLANATION2
|
||||||
|
.ft \" back to previous font
|
||||||
|
.in -1 \" remove indent
|
||||||
|
.gcolor \" remove previous color
|
||||||
|
.gcolor explanationbar
|
||||||
|
\r\L'|\\nCu' \" draw line (\r moves upward, \L draw the line, ...)
|
||||||
|
.gcolor \" remove previous color
|
||||||
|
.sp -1 \" get two lines back
|
||||||
|
.KE \" end of the keep
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.de METAINFO1
|
||||||
|
.ft CW \" constant width font
|
||||||
|
.ps 8 \" small font
|
||||||
|
.vs 9p \" smaller vertical spacing between lines
|
||||||
|
..
|
||||||
|
.de METAINFO2
|
||||||
|
.sp 1
|
||||||
|
.vs \" come back to the previous vertical spacing
|
||||||
|
.ps \" come back to the previous point size
|
||||||
|
.ft \" come back to the previous font
|
||||||
|
.sp -1 \" return one line above
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.de FRAC
|
||||||
|
.ie '\\$3'' \{\
|
||||||
|
\v'-.7m\s[\\n(.s*6u/10u]+.7m'\\$1\v'-.7m\s0+.7m'\
|
||||||
|
\(f/\s[\\n(.s*6u/10u]\\$2\s0
|
||||||
|
\}
|
||||||
|
.el \{\
|
||||||
|
\v'-.7m\s[\\n(.s*6u/10u]+.7m'\\$1\v'-.7m\s0+.7m'\
|
||||||
|
\(f/\s[\\n(.s*6u/10u]\\$2\s0\\$3
|
||||||
|
\}
|
||||||
|
..
|
||||||
|
.de FOOTNOTE_TO_COLUMN_WIDTH
|
||||||
|
.nr pg@fn-colw \\n[pg@colw] \" footnotes' column width
|
||||||
|
..
|
||||||
|
.de SINGLE_COLUMN
|
||||||
|
.1C
|
||||||
|
.\" .FOOTNOTE_TO_COLUMN_WIDTH
|
||||||
|
.nr FL (\n[LL]*97/100)
|
||||||
|
..
|
||||||
|
.de TWO_COLUMNS
|
||||||
|
.2C
|
||||||
|
.FOOTNOTE_TO_COLUMN_WIDTH
|
||||||
|
..
|
||||||
|
.de HORIZONTALLINE
|
||||||
|
\l'15'
|
||||||
|
.FOOTNOTE_TO_COLUMN_WIDTH
|
||||||
|
..
|
||||||
|
.
|
||||||
|
. \" Fonts and colors.
|
||||||
|
.
|
||||||
|
.de SPECIAL_WORDS
|
||||||
|
.ie !'\\$3'' \\$3\c
|
||||||
|
.nr current_size \\n[.s] \" Current point size.
|
||||||
|
.gcolor specialcolor_\\*[semantictoken]
|
||||||
|
.
|
||||||
|
.if !((\\n[current_size] == \\n[specialsize_\\*[semantictoken]]) \
|
||||||
|
.ps \\n[specialsize_\\*[semantictoken]]
|
||||||
|
.
|
||||||
|
.ie '\\$2'' \{\
|
||||||
|
\f[\\*[specialfont_\\*[semantictoken]]]\\$1\f[]
|
||||||
|
. ps \\n[current_size]
|
||||||
|
. gcolor black \" FIXME: should be the previous color
|
||||||
|
\}
|
||||||
|
.el \{\
|
||||||
|
\f[\\*[specialfont_\\*[semantictoken]]]\\$1\f[]\c
|
||||||
|
. ps \\n[current_size]
|
||||||
|
. gcolor black \" FIXME: should be the previous color
|
||||||
|
\\$2
|
||||||
|
\}
|
||||||
|
..
|
||||||
|
.de SMALLFONT
|
||||||
|
.ps 8
|
||||||
|
.vs 9p
|
||||||
|
..
|
||||||
|
.de NORMALFONT
|
||||||
|
.vs
|
||||||
|
.ps
|
||||||
|
..
|
||||||
|
.de COMMAND1
|
||||||
|
.b1
|
||||||
|
..
|
||||||
|
.de COMMAND2
|
||||||
|
.b2
|
||||||
|
..
|
||||||
|
.de COMMANDNAME
|
||||||
|
.ds semantictoken command
|
||||||
|
.SPECIAL_WORDS \\$@
|
||||||
|
..
|
||||||
|
.de FUNCTION
|
||||||
|
.ds semantictoken function
|
||||||
|
.SPECIAL_WORDS \\$@
|
||||||
|
..
|
||||||
|
.de TYPE
|
||||||
|
.ds semantictoken type
|
||||||
|
.SPECIAL_WORDS \\$@
|
||||||
|
..
|
||||||
|
.de TYPECLASS
|
||||||
|
.I "\\$1" "\\$2"
|
||||||
|
..
|
||||||
|
.de OPERATOR
|
||||||
|
.ds semantictoken operator
|
||||||
|
.SPECIAL_WORDS \\$@
|
||||||
|
..
|
||||||
|
.de QUESTION
|
||||||
|
.ds semantictoken question
|
||||||
|
.SPECIAL_WORDS \\$@
|
||||||
|
\h'5p'
|
||||||
|
..
|
||||||
|
.de CONSTRUCTOR
|
||||||
|
.ds semantictoken constructor
|
||||||
|
.SPECIAL_WORDS \\$@
|
||||||
|
..
|
||||||
|
.de MODULE
|
||||||
|
.ds semantictoken module
|
||||||
|
.SPECIAL_WORDS \\$@
|
||||||
|
..
|
||||||
|
.de SHINE
|
||||||
|
.ds semantictoken shine
|
||||||
|
.SPECIAL_WORDS \\$@
|
||||||
|
..
|
||||||
|
.de MODULEX
|
||||||
|
.MODULE \\$1 ,
|
||||||
|
..
|
||||||
|
.de TBD
|
||||||
|
.ft B
|
||||||
|
To be defined or to finish.
|
||||||
|
.ft R
|
||||||
|
..
|
||||||
|
.de ARROW
|
||||||
|
.br
|
||||||
|
\(->\h'5p' \\$*
|
||||||
|
..
|
||||||
|
.af dy 00
|
||||||
|
.af mo 00
|
||||||
|
.ds CURRENT_DATE \\n(dy/\\n(mo/\\n[year]
|
||||||
|
.ds WEBSITE https://t.karchnu.fr/doc
|
||||||
|
.ds EMAIL karchnu@karchnu.fr
|
||||||
|
.de INFORMATIONS
|
||||||
|
Check out for newer versions:
|
||||||
|
.ft CW
|
||||||
|
.ps 8
|
||||||
|
\h'2p' \\$1
|
||||||
|
.ps
|
||||||
|
.ft
|
||||||
|
.br
|
||||||
|
And if you have questions:
|
||||||
|
.ft CW
|
||||||
|
\h'13p' \\$2
|
||||||
|
.ft
|
||||||
|
.\" .DE
|
||||||
|
|
||||||
|
.LP
|
||||||
|
Lastly compiled the
|
||||||
|
.SHINE \*[CURRENT_DATE]
|
||||||
|
(day/month/year, you know, like in any sane civilization).
|
||||||
|
..
|
||||||
|
.de INFORMATIONS_FR
|
||||||
|
.LP
|
||||||
|
Nouvelles versions :
|
||||||
|
.ft CW
|
||||||
|
.ps 8
|
||||||
|
\h'2p' \\$1
|
||||||
|
.ps
|
||||||
|
.ft
|
||||||
|
.br
|
||||||
|
Questions :
|
||||||
|
.ft CW
|
||||||
|
\h'36p' \\$2
|
||||||
|
.ft
|
||||||
|
.\" .DE
|
||||||
|
|
||||||
|
.LP
|
||||||
|
Compilé pour la dernière fois le
|
||||||
|
.SHINE \*[CURRENT_DATE]
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.\" RENAMING REQUESTS
|
||||||
|
.
|
||||||
|
.de SECTION
|
||||||
|
.NH
|
||||||
|
.ps +3
|
||||||
|
.fam H \" helvetica family
|
||||||
|
\\$*
|
||||||
|
.fam \" back to previous font family
|
||||||
|
.ps
|
||||||
|
.PARAGRAPH_INDENTED
|
||||||
|
..
|
||||||
|
.de SUBSECTION
|
||||||
|
.NH 2
|
||||||
|
.ps +1
|
||||||
|
.fam H \" helvetica family
|
||||||
|
\\$*
|
||||||
|
.fam \" back to previous font family
|
||||||
|
.ps
|
||||||
|
.PARAGRAPH_INDENTED
|
||||||
|
..
|
||||||
|
.de SUBSUBSECTION
|
||||||
|
.NH 3
|
||||||
|
.fam H \" helvetica family
|
||||||
|
\\$*
|
||||||
|
.fam \" back to previous font family
|
||||||
|
.ps
|
||||||
|
.PARAGRAPH_INDENTED
|
||||||
|
..
|
||||||
|
.de SUBSUBSUBSECTION
|
||||||
|
.NH 4
|
||||||
|
.fam H \" helvetica family
|
||||||
|
\\$*
|
||||||
|
.fam \" back to previous font family
|
||||||
|
.PARAGRAPH_INDENTED
|
||||||
|
..
|
||||||
|
.de SECTION_NO_NUMBER
|
||||||
|
.SH
|
||||||
|
.fam H \" helvetica family
|
||||||
|
\\$*
|
||||||
|
.fam \" back to previous font family
|
||||||
|
.PARAGRAPH_INDENTED
|
||||||
|
..
|
||||||
|
.de SUBSECTION_NO_NUMBER
|
||||||
|
.SH 2
|
||||||
|
.fam H \" helvetica family
|
||||||
|
\\$*
|
||||||
|
.fam \" back to previous font family
|
||||||
|
.PARAGRAPH_INDENTED
|
||||||
|
..
|
||||||
|
.de PARAGRAPH_INDENTED
|
||||||
|
.PP
|
||||||
|
..
|
||||||
|
.de PARAGRAPH_UNINDENTED
|
||||||
|
.LP
|
||||||
|
..
|
||||||
|
.de NO_ABSTRACT
|
||||||
|
.AB no
|
||||||
|
..
|
||||||
|
.de ABSTRACT1
|
||||||
|
.AB
|
||||||
|
..
|
||||||
|
.de ABSTRACT2
|
||||||
|
.AE
|
||||||
|
..
|
||||||
|
.ds LH Page %
|
||||||
|
.ds CH
|
||||||
|
.de TITLE
|
||||||
|
.TL
|
||||||
|
\\$*
|
||||||
|
.\".ds LH \\$*
|
||||||
|
.de HD .XX
|
||||||
|
.sp -2.3
|
||||||
|
.nr LINEWIDTH (\n[LL]/1.0i)
|
||||||
|
\l'\\\\n[LINEWIDTH]i'
|
||||||
|
.sp +1.5
|
||||||
|
.br
|
||||||
|
..XX
|
||||||
|
..
|
||||||
|
.de AUTHOR
|
||||||
|
. AU
|
||||||
|
. ie !'\\$1'' \\$*
|
||||||
|
..
|
||||||
|
.de FOOTNOTE1
|
||||||
|
. FS
|
||||||
|
..
|
||||||
|
.de FOOTNOTE2
|
||||||
|
. FE
|
||||||
|
..
|
||||||
|
.de VOCABULARY1
|
||||||
|
. KS
|
||||||
|
. BULLET
|
||||||
|
. UL "\\$*" :
|
||||||
|
..
|
||||||
|
.de VOCABULARY2
|
||||||
|
. KE
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.de HIGHLIGHT
|
||||||
|
.
|
||||||
|
. nr @wd \w'\\$1'
|
||||||
|
. nr x1 0
|
||||||
|
. nr y1 (\\n[rst]u - \\n[rsb]u + .4m)
|
||||||
|
. nr x2 (\\n[@wd]u + .4m)
|
||||||
|
. nr y2 0
|
||||||
|
. nr x3 0
|
||||||
|
. nr y3 (\\n[rst]u - \\n[rsb]u + .4m)
|
||||||
|
. nr x4 (\\n[@wd]u + .4m)
|
||||||
|
. nr y4 0
|
||||||
|
.
|
||||||
|
\h'.2m'\
|
||||||
|
\h'-.2m'\v'(.2m - \\n[rsb]u)'\
|
||||||
|
\M[color_box]\
|
||||||
|
\D'P \\n[x1] -\\n[y1]u \\n[x2]u \\n[y2]u \\n[x3]u \\n[y3]u -\\n[x4]u \\n[y4]u '\
|
||||||
|
\h'.2m'\v'-(.2m - \\n[rsb]u)'\
|
||||||
|
\M[]\
|
||||||
|
\\$1\
|
||||||
|
\h'.2m'
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.ds SPACE_SS_NUMBER_TITLE 0.5\" not a number register because of leading 0
|
||||||
|
.nr CURRENT_SECTION 0 +1
|
||||||
|
.nr CURRENT_APPENDIX 0
|
||||||
|
.af CURRENT_APPENDIX I
|
||||||
|
.nr CURRENT_SUBSECTION 0 +1
|
||||||
|
.nr CURRENT_SSSECTION 0 +1
|
||||||
|
.rm SECTION
|
||||||
|
.de SECTION
|
||||||
|
. nr CURRENT_SUBSECTION 0 \" reset current subsection numbering
|
||||||
|
. nr CURRENT_SSSECTION 0 \" reset current subsubsection numbering
|
||||||
|
. ie !(\\n[CURRENT_SECTION]=0) .sp +1
|
||||||
|
. br
|
||||||
|
. ie (\\n[APPENDIX_TIME]=0) \
|
||||||
|
. ds RH \\n+[CURRENT_SECTION].\h'\\*[SPACE_SS_NUMBER_TITLE]' \\$*
|
||||||
|
. el \{
|
||||||
|
. ds RH \\n[CURRENT_APPENDIX].\h'\\*[SPACE_SS_NUMBER_TITLE]' \\$*
|
||||||
|
. bp \}
|
||||||
|
. ps +2
|
||||||
|
. fam H \" helvetica family
|
||||||
|
. ft B
|
||||||
|
. ne 4 \" should be at least a few lines left at the bottom of the page
|
||||||
|
\\*[RH]
|
||||||
|
. ft
|
||||||
|
. fam \" back to previous font family
|
||||||
|
. ps -2
|
||||||
|
. PARAGRAPH_INDENTED
|
||||||
|
..
|
||||||
|
.nr APPENDIX_TIME 0
|
||||||
|
.de APPENDIX
|
||||||
|
. nr CURRENT_APPENDIX +1
|
||||||
|
. nr APPENDIX_TIME 1
|
||||||
|
. SECTION \\$*
|
||||||
|
..
|
||||||
|
.de SS
|
||||||
|
. nr CURRENT_SSSECTION 0
|
||||||
|
. ie (\\n[APPENDIX_TIME]=0) \
|
||||||
|
. SUBSECTION_NO_NUMBER \\n[CURRENT_SECTION].\
|
||||||
|
\\n+[CURRENT_SUBSECTION]\h'\\*[SPACE_SS_NUMBER_TITLE]' \\$*
|
||||||
|
.el \
|
||||||
|
. SUBSECTION_NO_NUMBER \\n[CURRENT_APPENDIX].\
|
||||||
|
\\n+[CURRENT_SUBSECTION]\h'\\*[SPACE_SS_NUMBER_TITLE]' \\$*
|
||||||
|
..
|
||||||
|
.de SSS
|
||||||
|
. br
|
||||||
|
. ps -2
|
||||||
|
. fam H \" helvetica family
|
||||||
|
. ft B
|
||||||
|
. ie (\\n[APPENDIX_TIME]=0) \
|
||||||
|
. SUBSECTION_NO_NUMBER \\n[CURRENT_SECTION].\
|
||||||
|
\\n[CURRENT_SUBSECTION].\\n+[CURRENT_SSSECTION]\h'\
|
||||||
|
\\*[SPACE_SS_NUMBER_TITLE]' \\$*
|
||||||
|
. el \
|
||||||
|
\\n[CURRENT_APPENDIX].\
|
||||||
|
\\n[CURRENT_SUBSECTION].\\n+[CURRENT_SSSECTION]\h'\
|
||||||
|
\\*[SPACE_SS_NUMBER_TITLE]' \\$*
|
||||||
|
. ft
|
||||||
|
. fam \" back to previous font family
|
||||||
|
. ps +2
|
||||||
|
. PARAGRAPH_INDENTED
|
||||||
|
..
|
||||||
|
.de INNERBULLET
|
||||||
|
. in +1
|
||||||
|
. br
|
||||||
|
\(bu
|
||||||
|
. in +1
|
||||||
|
. sp -1
|
||||||
|
\\$*
|
||||||
|
. in -2
|
||||||
|
..
|
||||||
|
.de EENUM \" Numbered list
|
||||||
|
. nr ENUM_INDENTATION 2
|
||||||
|
. ie !(\\n[LIST_NUMBER]=0) .in -\\n[ENUM_INDENTATION]
|
||||||
|
. br
|
||||||
|
\\n+[LIST_NUMBER].
|
||||||
|
. in +\\n[ENUM_INDENTATION]
|
||||||
|
. sp -1
|
||||||
|
\\$*
|
||||||
|
..
|
||||||
|
.de EENDENUM
|
||||||
|
. nr LIST_NUMBER 0
|
||||||
|
. in -\\n[ENUM_INDENTATION]
|
||||||
|
..
|
||||||
|
.nr legendps 2
|
||||||
|
.de LEGEND1
|
||||||
|
. QP
|
||||||
|
. vs -\\n[legendps]p
|
||||||
|
. ps -\\n[legendps]
|
||||||
|
. in -1.2
|
||||||
|
. ll +1.2
|
||||||
|
. br
|
||||||
|
..
|
||||||
|
.de LEGEND2
|
||||||
|
. br
|
||||||
|
. vs +\\n[legendps]p
|
||||||
|
. ps +\\n[legendps]
|
||||||
|
. br
|
||||||
|
. LP
|
||||||
|
..
|
||||||
|
.de IEME
|
||||||
|
\\$1\u\s-4\\$2\s+4\d
|
||||||
|
..
|
||||||
|
.de CENTERED
|
||||||
|
. ce
|
||||||
|
\\$*
|
||||||
|
. br
|
||||||
|
..
|
||||||
|
.de GIVEEXAMPLE1
|
||||||
|
. in +1
|
||||||
|
. ll -1
|
||||||
|
. KS \" start a keep
|
||||||
|
. \" .ft I \" citation in italics
|
||||||
|
. mk C \" set a marker for line drawing
|
||||||
|
. in +1 \" indent a bit
|
||||||
|
. gcolor citation
|
||||||
|
..
|
||||||
|
.de GIVEEXAMPLE2
|
||||||
|
. mk D \" set second marker to come back here
|
||||||
|
. \" .ft \" back to previous font
|
||||||
|
. in -1 \" remove indent
|
||||||
|
. gcolor black\" remove previous color
|
||||||
|
. gcolor citationbar
|
||||||
|
. \" r = move upward
|
||||||
|
. \" Z D t = drawing thickness
|
||||||
|
. \" L = draw the line
|
||||||
|
\r\
|
||||||
|
\Z'\D't 1p''\
|
||||||
|
\L'|\\nCu' \" draw line
|
||||||
|
. gcolor black \" remove previous color
|
||||||
|
. sp -2 \" get two lines back
|
||||||
|
\Z'\D't 0.5p'' \" get the previous drawing thickness back
|
||||||
|
. KE \" end of the keep
|
||||||
|
. ll +1
|
||||||
|
. in -1
|
||||||
|
..
|
||||||
|
.de ST
|
||||||
|
.nr ww \w'\\$1'
|
||||||
|
\Z@\v'-.25m'\l'\\n[ww]u'@\\$1
|
||||||
|
..
|
||||||
|
.de INCREMENT
|
||||||
|
.br
|
||||||
|
.in \\*[PINCREMENT]
|
||||||
|
.br
|
||||||
|
\h'-\\*[DECALAGE]'\\*[CHARACTER]\h'|0'\\$*
|
||||||
|
..
|
||||||
|
.de D
|
||||||
|
.ds DECALAGE 1.0
|
||||||
|
.ds PINCREMENT 2
|
||||||
|
.ds CHARACTER \(bu
|
||||||
|
.INCREMENT \\$*
|
||||||
|
..
|
||||||
|
.de DD
|
||||||
|
.ds DECALAGE 1.0
|
||||||
|
.ds PINCREMENT 3
|
||||||
|
.ds CHARACTER \(bu
|
||||||
|
.INCREMENT \\$*
|
||||||
|
..
|
||||||
|
.de AA
|
||||||
|
.ds DECALAGE 1.5
|
||||||
|
.ds PINCREMENT 3
|
||||||
|
.ds CHARACTER \(->
|
||||||
|
.INCREMENT \\$*
|
||||||
|
..
|
||||||
|
.de AAA
|
||||||
|
.ds DECALAGE 1.5
|
||||||
|
.ds PINCREMENT 4
|
||||||
|
.ds CHARACTER \(->
|
||||||
|
.INCREMENT \\$*
|
||||||
|
..
|
||||||
|
.de ED
|
||||||
|
.br
|
||||||
|
.in 0
|
||||||
|
..
|
||||||
42
paper.ms
Normal file
42
paper.ms
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
.ds VERSION 0.5.1
|
||||||
|
.ds NB_USERS_NETLIBRE 10700
|
||||||
|
.so macros.roff
|
||||||
|
.de dq
|
||||||
|
\[lq]\\$1\[rq]\c
|
||||||
|
.shift
|
||||||
|
\&\\$1
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.de COMMAND
|
||||||
|
.I "\\$*"
|
||||||
|
..
|
||||||
|
.de DIRECTORY
|
||||||
|
.ps -3
|
||||||
|
\f[CW]\\$*\f[]
|
||||||
|
.ps +3
|
||||||
|
..
|
||||||
|
.
|
||||||
|
.
|
||||||
|
. \" The document starts here.
|
||||||
|
.
|
||||||
|
.TITLE Netlibre in Graphs
|
||||||
|
.AUTHOR Philippe PITTOLI
|
||||||
|
.ABSTRACT1
|
||||||
|
Just some graphs about netlibre.
|
||||||
|
.ABSTRACT2
|
||||||
|
.SINGLE_COLUMN
|
||||||
|
.br
|
||||||
|
.po +11.5c
|
||||||
|
.br
|
||||||
|
.po
|
||||||
|
.SECTION Before the Great Purge, how many domains per user?
|
||||||
|
.ps -2
|
||||||
|
.so graphs/nb-domains-per-user.grap
|
||||||
|
.ps \n[PS]
|
||||||
|
.QP
|
||||||
|
These graphs show that the vast majority of users have between a single domain (almost 6000 users) and about 10 domains.
|
||||||
|
There is a total of 23,711 users on netlibre, 21,872 of them have between 0 to 10 domains, which represents 92 % of the users.
|
||||||
|
The distribution after that is mostly flat.
|
||||||
|
.so graphs/cumulative-domains-per-user.grap
|
||||||
|
The graphs showing the cumulative number of users is very explicit on the fact that almost everyone has a very low number of domains (less than 10) and only 1,5 % of users have 50 or more domains.
|
||||||
|
.QE
|
||||||
69
troffrc
Normal file
69
troffrc
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
.\" Startup file for troff.
|
||||||
|
.
|
||||||
|
.\" This is tested by pic.
|
||||||
|
.nr 0p 0
|
||||||
|
.
|
||||||
|
.\" Load composite mappings.
|
||||||
|
.do mso composite.tmac
|
||||||
|
.
|
||||||
|
.\" Load generic fallback mappings.
|
||||||
|
.do mso fallbacks.tmac
|
||||||
|
.
|
||||||
|
.\" Use .do here, so that it works with -C.
|
||||||
|
.\" The groff command defines the .X string if the -X option was given.
|
||||||
|
.ie r.X .do ds troffrc!ps Xps.tmac
|
||||||
|
.el .do ds troffrc!ps ps.tmac
|
||||||
|
.do ds troffrc!pdf pdf.tmac
|
||||||
|
.do ds troffrc!dvi dvi.tmac
|
||||||
|
.do ds troffrc!X75 X.tmac
|
||||||
|
.do ds troffrc!X75-12 X.tmac
|
||||||
|
.do ds troffrc!X100 X.tmac
|
||||||
|
.do ds troffrc!X100-12 X.tmac
|
||||||
|
.do ds troffrc!ascii tty.tmac
|
||||||
|
.do ds troffrc!latin1 tty.tmac
|
||||||
|
.do ds troffrc!utf8 tty.tmac
|
||||||
|
.do ds troffrc!cp1047 tty.tmac
|
||||||
|
.do ds troffrc!lj4 lj4.tmac
|
||||||
|
.do ds troffrc!lbp lbp.tmac
|
||||||
|
.do ds troffrc!html html.tmac
|
||||||
|
.do if d troffrc!\*[.T] \
|
||||||
|
. do mso \*[troffrc!\*[.T]]
|
||||||
|
.do rm troffrc!ps troffrc!Xps troffrc!dvi troffrc!X75 troffrc!X75-12 \
|
||||||
|
troffrc!X100 troffrc!X100-12 troffrc!lj4 troff!lbp troffrc!html troffrc!pdf
|
||||||
|
.
|
||||||
|
.\" Test whether we work under EBCDIC and map the no-breakable space
|
||||||
|
.\" character accordingly.
|
||||||
|
.do ie '\[char97]'a' \
|
||||||
|
. do tr \[char160]\~
|
||||||
|
.el \
|
||||||
|
. do tr \[char65]\~
|
||||||
|
.
|
||||||
|
.\" Set the hyphenation language to 'us'.
|
||||||
|
.do hla us
|
||||||
|
.
|
||||||
|
.\" Disable hyphenation:
|
||||||
|
.\" Do not load hyphenation patterns and exceptions.
|
||||||
|
.\"do hpf hyphen.us
|
||||||
|
.\"do hpfa hyphenex.us
|
||||||
|
.
|
||||||
|
.\" Disable adjustment by default,
|
||||||
|
.\" such that manuals look similar with groff and mandoc(1).
|
||||||
|
.\".ad l
|
||||||
|
.\".de ad
|
||||||
|
.\"..
|
||||||
|
.\" Handle paper formats.
|
||||||
|
.do mso papersize.tmac
|
||||||
|
.
|
||||||
|
.\" Handle PS images.
|
||||||
|
.do mso pspic.tmac
|
||||||
|
.do mso pdfpic.tmac
|
||||||
|
.
|
||||||
|
.\" ====================================================================
|
||||||
|
.\" Editor settings
|
||||||
|
.\" ====================================================================
|
||||||
|
.
|
||||||
|
.\" Local Variables:
|
||||||
|
.\" mode: nroff
|
||||||
|
.\" fill-column: 72
|
||||||
|
.\" End:
|
||||||
|
.\" vim: set filetype=groff textwidth=72:
|
||||||
Loading…
Add table
Reference in a new issue