What is P.Log?
P.Log is your personal diary.
Here you can log your daily activity, observations, write notes or whatever you want.
Unless you are a registered user, log entries will be stored locally (on the device you use to access this webpage). For registered (logged in) users, log entries are stored both locally and
remotely so they can be accessed from any device. Registered users can also choose to make their log entries public - at which point their plog effectively becomes a blog.
Help
How to register/log in?
A system window (command prompt) at the bottom is used for this purpose.
First, you should set an id (username) by typing this command in the system window and hitting enter:
id <username>
Replace <username> with your desired username.
Once your username is set you can register it by typing this and hitting enter:
reg <password>
Replace <password> with a password of your choice.
Now you can log in. To do that type this and hit enter:
login <password>
Replace <password> with your registered password.
It is recommended to set your username and register it even if you're not going to use remote storage (by logging in), especially if the device you're using is shared by multiple users. This is
because local storage is tied to the id (username).
That way, if you decide to use remote storage later your data can be saved remotely simply by logging in and refreshing the page.
Once you are logged in, the system will keep you logged in indefinitely, even if you close and restart your browser (unless you clear local storage). If you are on a public terminal or the device
you use is used by others too you might want to log out once you're done using the website.
To log out just type logout in the system window and hit enter.
For more info about the commands just type ? in the system window and hit enter. You can also append a command name to the question mark to get help about that particular
command only (eg. ? reg).
Note, however, that the output of this command is printed in a separate window which, if you use a mobile device, may not be visible to you until you scroll to the bottom of the page.
Note that, depending on your browser, local storage (including your plog) may be deleted by choosing the option to clear the cookies. To prevent loss of your plog entries, ensure one of the following:
- do not use the option to delete all cookies, delete cookies for specific websites (eg. press F12 while browsing the website and delete its cookies) when needed,
- use 'Plog Export' option periodically to backup your diary in a file, then use 'Plog Import' option to restore your diary if necessary,
- simply register your id and log in so your diary is backed up on the server.
Hints
Here are some hints for easier usage:
- entries can be submitted by hitting Ctrl-Enter instead of pressing the 'Submit' button,
- to create a bulleted list start each row with a dash (-) and end it with comma (,), except for the last row, which should end with a dot (.),
- to create a table, delimit columns with a vertical bar (|) - see example below,
- once rendered, tables can be edited in place,
- posts can be deleted quickly (with no confirmation delay) by holding shift while clicking the delete ('X') button,
- allowed html tags: b, u, em, a, e, x, box, right, sub, sup.
The tags e and x can be used to write equations as a text block or inline, respectively, using TeX syntax.
Example of an entry containing a table:
n|date|temperature|rain
=ROW|2023.03.08{c}|15{r}|no
=ROW|2023.03.09|9
#Table \tbl1: Some caption#
Some data is shown in Table \tbl1.
Here, a table with 3 rows and 4 columns will be created. Table caption has been also specified here, between hashes (#). Content of the second column will be centred (specified with {c}) while the third column content
will be right-aligned (specified with {r}). Note that alignments for the table head (first row) may also be specified (by default text in head columns is centred). Note also that tables can be referenced by
using \tbl[NUM] placeholders (where [NUM] may be any positive integer), these will be replaced by table indexes when the content is rendered.
Live tables can also be used as spreadsheets, see Additional info below.
Additional info
Table cells can contain expressions that will perform computations on cells and output the result. For computations to be performed the cell content must start with
equality (=) sign. In example, this:
=ROUND(SUM(1:4)*M_PI, 2)
will calculate the sum of cells above in rows 1 to 4, multiply it with π and round the result to 2 decimal places.
Here is a list of available functions and constants that can be used in these expressions.
C[NUM]
Returns the content of a cell at specified row [NUM] above the cell containing the function, eg. =C4 will output the content of a cell at row 4.
ROW
Returns the index of the row containing the function.
COL
Returns the index of the column containing the function.
SUM(start:end)
Returns the sum of numbers above the cell, starting from row start and ending at row end. Both arguments are optional. By default start is 0, while end is the
first row above the cell containing the SUM function.
Note that the index of first row (head) is 0 and it will be used in computation if the cell contains a number and start is equal to 0.
Instead of summing all cells between start and end, one can sum only specific cells by using a comma separated list of row indexes, eg. =SUM(2,4,5) will sum cells at rows 2, 4 and 5.
AVG(start:end)
Returns the arithmetic mean (average) of numbers above the cell, starting from row start and ending at row end. Both arguments are optional. By default start is 0, while end is the
first row above the cell containing the AVG function.
Instead of computing average of all cells between start and end, one can compute average of specific cells by using a comma separated list of row indexes, eg. =AVG(2,4,5) will output average of cells at rows 2, 4 and 5.
MED(start:end)
Returns the median of numbers above the cell, starting from row start and ending at row end. Both arguments are optional. By default start is 0, while end is the
first row above the cell containing the MED function.
Instead of computing median of all cells between start and end, one can compute median of specific cells by using a comma separated list of row indexes, eg. =MED(2,4,5) will output median value of cells at rows 2, 4 and 5.
COUNT(start:end)
Returns the total number of cells above the current that contain a number, starting from row start and ending at row end. Both arguments are optional. By default start is 0, while end is the
first row above the current cell (one containing the COUNT function).
Instead of counting all numbers between start and end, one can count numbers in specific cells only by using a comma separated list of row indexes, eg. =COUNT(2,4,5) will output
the number of cells containing number in rows 2, 4 and 5.
MAX(start:end)
Returns the maximum of numbers above the cell, starting from row start and ending at row end. Both arguments are optional. By default start is 0, while end is the
first row above the cell containing the MAX function.
Instead of computing maximum of all cells between start and end, one can compute maximum of specific cells by using a comma separated list of row indexes, eg. =MAX(2,4,5) will output the maximum of cells at rows 2, 4 and 5.
MIN(start:end)
Returns the minimum of numbers above the cell, starting from row start and ending at row end. Both arguments are optional. By default start is 0, while end is the
first row above the cell containing the MIN function.
Instead of computing minimum of all cells between start and end, one can compute minimum of specific cells by using a comma separated list of row indexes, eg. =MIN(2,4,5) will output the minimum of cells at rows 2, 4 and 5.
HC[NUM]
Returns the content of a cell at specified column [NUM] left of the cell containing the function, eg. =HC4 will output the content of a cell at column 4.
HSUM(start:end)
Returns the sum of numbers left of the cell, starting from column start and ending at column end. Both arguments are optional. By default start is 0, while end is the
first column left of the cell containing the HSUM function.
Instead of summing all cells between start and end, one can sum only specific cells by using a comma separated list of column indexes, eg. =HSUM(2,4,5) will sum cells at columns 2, 4 and 5.
HAVG(start:end)
Returns the arithmetic mean (average) of numbers left of the cell, starting from column start and ending at column end. Both arguments are optional. By default start is 0, while end is the
first column left of the cell containing the HAVG function.
Instead of computing average of all cells between start and end, one can compute average of specific cells by using a comma separated list of column indexes, eg. =HAVG(2,4,5) will output average of cells at columns 2, 4 and 5.
HMED(start:end)
Returns the median of numbers left of the cell, starting from column start and ending at column end. Both arguments are optional. By default start is 0, while end is the
first column left of the cell containing the HMED function.
Instead of computing median of all cells between start and end, one can compute median of specific cells by using a comma separated list of column indexes, eg. =HMED(2,4,5) will output median value of cells at columns 2, 4 and 5.
HMAX(start:end)
Returns the maximum of numbers left of the cell, starting from column start and ending at column end. Both arguments are optional. By default start is 0, while end is the
first column left of the cell containing the HMAX function.
Instead of computing maximum of all cells between start and end, one can compute maximum of specific cells by using a comma separated list of column indexes, eg. =HMAX(2,4,5) will output the maximum of cells at columns 2, 4 and 5.
HMIN(start:end)
Returns the minimum of numbers left of the cell, starting from column start and ending at column end. Both arguments are optional. By default start is 0, while end is the
first column left of the cell containing the HMIN function.
Instead of computing minimum of all cells between start and end, one can compute minimum of specific cells by using a comma separated list of column indexes, eg. =HMIN(2,4,5) will output the minimum of cells at columns 2, 4 and 5.
HCOUNT(start:end)
Returns the total number of cells left of the current that contain a number, starting from column start and ending at column end. Both arguments are optional. By default start is 0, while end is the
first column left of the current cell (one containing the HCOUNT function).
Instead of counting all numbers between start and end, one can count numbers in specific cells only by using a comma separated list of column indexes, eg. =HCOUNT(2,4,5) will output
the number of cells containing number in columns 2, 4 and 5.
POW(x, y)
Returns the value of a base raised to a power, xy.
SQRT(x)
Returns the square root of x.
ABS(x)
Returns the absolute value of x.
LN(x)
Returns the natural (base e) logarithm of x.
LOG(x)
Returns the base 10 logarithm of x.
SIGN(x)
Returns 1 or -1, indicating the sign of the argument. If the input is 0 or -0, it will be returned as-is.
SIN(x)
Returns the sine of x in radians.
ASIN(x)
Returns the inverse sine of x in radians.
COS(x)
Returns the cosine of x in radians.
ACOS(x)
Returns the inverse cosine of x in radians.
ROUND(x, dec)
Will round x to a number of decimal places specified in dec, eg. ROUND(6.36, 1) will output 6.4.
FLOOR(x)
Rounds down and returns the largest integer less than or equal to x.
CEIL(x)
Rounds up and returns the smallest integer greater than or equal to x.
M_PI
Returns the value of π (the ratio of the circumference of a circle to its diameter).
M_E
Returns the value of the Euler's number (base of natural logarithms).