close

ryth/docs

Entropy is a spontaneous process. Knowledge is lost to chaos. A lifetime is a process of gathering experiences, knowledge, wisdom, information, only for it to be lost alongside one's mind upon death, even earlier and painful if riddled with sickness of the mind. Persistence of knowledge is achieved through documentation, for what is a human with forgotten memories, for what is humanity with forgotten knowledge.

markdown

Markdown

Every document in ryth is written in a slight variation of Markdown. Markdown allows you to format your notes with headings, lists, hyperlinks, code-blocks, and everything else, while still keeping your document source readable and allowing you to export it anywhere.

Headings

Anything followed by a single pound (#) is formatted as a Primary Heading.

# This is the Title is rendered as:

This is the Title

Similarly, anything followed by double pounds (##) is formatted as a secondary heading, and three pounds (###) is a tertiary heading.

pound with a bang!

A pound followed by a bang (#!) is for really big, I mean really insanely ungodly massively huge headings. (try it yourself!)

Tags

The '@' symbol followed by a word creates a tag. Any tags you create show up in the tags section of notes. Tags are used to search, filter and organize your notes.

For example, @important is rendered as:

important

If you select some tags, only the notes that contain all of your selected tags show up.

Checkboxes

A pair of square-brackets ([]) in the start of a line can be used to create a checkbox.

[ ]Buy flowers is rendered as:

Buy Flowers

Checkboxes change their state from unchecked to checked (or the other way around) when tapped or clicked.

In markdown, a "checked" checkbox can be created by writing an 'x' between the pair of square-brackets ([x]).

[x]Buy flowers is rendered as:

Buy Flowers


Tables

A line starting and ending with a pipe (|) is rendered as a row of some strictly tabular data. Each element of the table-row is separated by a pipe, and several table-rows can be chained together to create a table.

|A. Turing|1912|London| is rendered as:

A. Turing 1912 London

the y-axis?

To create full tables, rows can be written in consecutive lines.

|particle|class|charge|
|strange|quark|-1/3|
|gluon|boson|0|
|muon|lepton|-1|

The above markdown text is rendered as:

particle class charge
strange quark -1/3
gluon boson 0
muon lepton -1

Unordered Lists

Any line starting with a hyphen (-) is rendered as a member of an unordered list.

- apples
- oranges
- tomatoes
- bananas

The above markdown text is rendered as:

Ordered Lists

Any line starting with a number followed by a period (1.) is rendered as a member of an ordered list.

1. apples
2. googles
3. facebooks
4. microsofts

The above markdown text is rendered as:

  1. apples

  2. googles

  3. facebooks

  4. microsofts

Emphasis


A *monad* is _just_ a __monoid__ in the ==category== of __endofunctors__, _what's the problem?_

is rendered as:

A monad is just a monoid in the category of endofunctors, what's the problem?

a very bold italian plumber

You can combine emphasis together! For example, _What's 2+2?_ _==*A BILLION!*==_ is rendered as:

What's 2+2? A BILLION!

Try other combinations yourself!


Rules

Rules can be used to separate the contents of your notes into sections. A rule can be created by using three consecutive underscores on a new-line (___).

___ is rendered as:



Hyperlinks

Hyperlinks can be added by enclosing the link-text between brackets, immediately followed by the URL in parentheses ([link-text](URL)).

For example,

[The Universe](https://en.wikipedia.org/wiki/Universe)

will be rendered as:

The Universe

Note that the hyperlink URL must contain (http://) or (https://). For example, (https://google.com) will work, but simply (google.com) won't.


Blockquotes

Anything followed by a closing angular bracket (>) in the beginning of a line is rendered as a blockquote.

Blockquotes can contain anything except tags; i.e. paragraphs, headings, tables, checkboxes, lists, LaTeX, even other blockquotes themselves.

>##And on the pedestal, these words appear:

>>My name is Ozymandias, King of Kings;

>>Look on my Works, ye Mighty, and despair!

>Nothing beside remains. Round the decay

>Of that colossal Wreck, boundless and bare

>The lone and level sands stretch far away.”

will be rendered as:

And on the pedestal, these words appear:

My name is Ozymandias, King of Kings;

Look on my Works, ye Mighty, and despair!

Nothing beside remains. Round the decay

Of that colossal Wreck, boundless and bare

The lone and level sands stretch far away.”


Code blocks and inline code highlights

To render any part of text as code, enclose it between a pair of backticks (`)

For example,

`int x = 42;` will be rendered as:

int x = 42;

public void main string whats?

If your code is bigger, put it between a pair of triple backticks (```) to create a code-block.

```

#include <stdio.h>

int main() {

    printf("Hello, world!");

    return 0;

}

```

will be rendered as:

#include <stdio.h>

int main() {
    printf("Hello, world!");
    return 0;
}

Google Material Icons

ryth uses Google Material Icons throughout its design, and you can use them in your notes as well. Simply enclose the name of the icon between a pair of double colons (::)

The entire list of all the material icon names can be found on Google Material Icon's official website


::strategy:: and ::playing_cards:: is rendered as:

strategy  and  playing_cards

Progress bars

Progress bars can be used to track incremental progress for projects or habits.

Two numbers separated by a slash between a pair of square-brackets in the start of a line can be used to create a progress bar.

[42/100] Sets of pull-ups is rendered as:


42100
Sets of pull-ups

In your notes, you can press the flag to increase progress by one.


Commandboxes

Commandboxes or "command-tags" help in injecting specific behavior into your notes. An '@' sign followed by a pair of square brackets that enclose your command is a commandbox.

@[pinned] is rendered as:


keeppinned

The "pinned" command lets you pin your notes on your dashboard for quick access. ryth features many more commands, and lets you create your own.


schedule

Dates and Crons

Ryth handles time to the precision of the minute. Anything involving date and time is an event.

Ryth classifies events into two categories:

  1. Non-repeating events, which are referred as Dates

  2. Repeating events, which are referred as Crons

Together, Dates and Crons can handle every kind of event. They can be set via command boxes.


Setting Dated events

A note containing a commandbox with a date in YYYY/MM/DD format followed by the event name sets a Dated event and associates the respective note with that event.

@[2024/11/23 Amy's Birthday] is rendered as:


event2024/11/23 Amy's Birthday

This note shows up as an event in ryth calendar and is utilized to include particulars about the event.

Further, Dates can also include time in HH:MM format or a time range in HH:MM-HH:MM format.

@[2024/2/14 11:00 Gym with the boys] sets up a timed event:

event2024/2/14 11:00 Gym with the boys

@[2024/9/11 17:00-18:45 Board meeting] sets up a ranged-time event:

event2024/9/11 17:00-18:45 Board meeting

Note that the ryth uses military time to avoid ambiguity between AM and PM.


Setting Cron events

A cron expression consists of five space separated numbers followed by the event name. It is written in a command box.

@[00 17 2 * * Payday] is rendered as:


event0 5 2 * * Payday

The above cron expression sets up a repeated event for 17:00 on the 2nd of every month.

Cron is a really powerful system that gives you granular control over repeated events with very little functional description.


The cron guide

The following section serves as a guide on writing and interpreting cron expressions. This uses an example on setting a "Chest day" for 5:00 on every Monday in the month of August, step-by-step.

The five numbers in a cron expression represent, in order:

  1. minute

  2. hour

  3. day of the month

  4. month

  5. day of the week

Replacing all of the numbers with asterisks (*) expresses the idea of "everytime".

Step 1:

@[* * * * * Chest day] sets up an event for every minute, every hour, every day, every month.

Since you probably don't want to workout chest every minute, you can begin by replacing the asterisks with numbers to set specific times, as shown in the next step.

Step 2:

The last position represents the day of the week, the numbers 0 to 6 represent Sunday to Saturday in order.

To set every Monday, replace the last asterisk with 1, i.e. @[* * * * 1 Chest day].

This sets the event for every minute, every hour, every Monday of every month.

Step 3:

The second-to-last position represents the month.

To set August, which is the 8th month, replace the second-to-last asterisk with 8, i.e. @[* * * 8 1 Chest day].

This sets the event for every minute, every hour, every Monday of August.

Step 4:

The first and second position represents minute and hour respectively.

To represent 5:00, which is 00 in minute and 5 in hour, replace the first and second position with 0 and 5, i.e. @[0 5 * 8 1 Chest day].

This sets the event for 5:00 every Monday of August.

In ryth calendar, The event "Chest Day" will show up at 5:00 every Monday of August.

With some practice, setting repeated events with cron becomes super-easy. The tool below can be used to interpret cron expressions in Common English and gives the list of dates on which the event will repeat.

Invalid expression

[ ]



functions

LaTeX

ryth uses LaTeX to render beautiful mathematical expressions. LaTeX is a typesetting system that is used in production of scientific documents.

Inline LaTeX

Inline LaTeX is written between a pair of single dollar signs ($).

For example,

Let mean be $\mu$ and variance be $\sigma^2$

is rendered as:

Let mean be $\mu$ and variance be $\sigma^2$

Display LaTeX

Full-width display LaTeX is written between a pair of double dollar signs ($$).

For example, an equation a line would be written as $$y=ax+b$$ and rendered as:

$$y=ax+b$$

The Gamma function would be written as

$$ \Gamma(z) = \int_0^\infty x^{z-1}e^{-x}dx $$

and rendered as:

$$ \Gamma(z) = \int_0^\infty x^{z-1}e^{-x}dx $$

The following few sections describe how to write some common mathematical expressions using LaTeX. Keep in mind that all of these are written between a pair of single or double dollar signs.

Symbols

Simple symbols like "x", "y", "<", "42" are rendered as is:

$x, y, <, 42$

To write special mathematical or scientific symbols, use a backslash followed by the symbol's name. For example, $\lambda$ is rendered as $\lambda$.

Below is a table of some common symbols.

class expression rendered LaTeX
greek symbols \alpha, \theta, \pi, \omega, \Delta $\alpha, \theta, \pi, \omega, \Delta$
formal logics \cup, \cap, \to, \forall, \sim, \in $\cup, \cap, \to, \forall, \sim, \in$
comparison \leq, \geq, \approx $\leq, \geq, \approx$
number sets \mathbb{N}, \mathbb{Z} $\mathbb{N}, \mathbb{Z}$
simple functional analysis \partial, \prime $\partial, \prime$
infinity \infty $\infty$

This list of symbols is far from complete, LaTeX has a more complete and comprehensive set of symbols. As always, LaTeX notation for a specific symbol can be found through some diligent googling. A more complete list of LaTeX symbols can be found here.

Superscripts and Subscripts

Superscripts are commonly used to denote exponents, Anything can be followed by a caret (^) to denote a superscript. $x^n$ is rendered as $x^n$.

Note that if the superscript has more than one term or digit, said superscript needs to be enclosed in braces.$e^{1-\lambda}$ is rendered as $e^{1-\lambda}$.

Subscripts are mostly used to denote indices in a series among other things, Anything followed by an underscore (_) is rendered as a subscript.$F_X$ is rendered as $F_X$.

If the subscript has more than one term or digit, it needs to be enclosed in braces.$a_{i+n}$ is rendered as $a_{i+n}$.

Fractions and Roots

If a fraction is written as a/b, it is rendered as $a/b$. To write a fraction in a sort of vertical manner, use the frac function. Write \frac followed by numerator and denominator respectively, each enclosed in braces.

$\frac{a}{b}$ is rendered as: $$\frac{a}{b}$$.

To display the nth-root, use the \sqrt[n] function. Follow it immediately an expression inside a pair of braces to enclose it inside the root.

$\sqrt[3]{x+143}$ is rendered as: $\sqrt[3]{x+143}$.

The [n] can be omitted to display a square root.

$i=\sqrt{-1}$ is rendered as: $i=\sqrt{-1}$.

Permutations and Combinations

Permuatations and combinations can be rendered by using subscripts and superscripts in astute ways.

Permutations of n objects with r repetitions can be written as ^{n}P_{r} and rendered as $^{n}P_{r}$.

The number of ways to choose k objects from a set of n objects can be represented as a combination ^{n}C_{k} rendered as $^{n}C_{k}$, or in the corresponding combinatorics notation {n \choose k} which is rendered as: $${n \choose k}$$


Series sums, Series products and Integrals

Series sums, products and Analytical integrals can be represented using the \sum, \prod and \int functions respectively followed by a subscript and superscript to denote start and end points, and an expression which they enclose.

series sum \sum_{i=0}^{N} (x_i^2) $$\sum_{i=0}^{N} (x_i^2)$$
series product \prod_{n=1}^{\infty} f_n(x) $$\prod_{n=1}^{\infty} f_n(x)$$
integral \int_{a}^{b} f(x)dx $$\int_{a}^{b} f(x)dx$$

To use a different flavor of the integral, replace \int with the flavor's specific function.

For example, the closed path integral can be represented as \oint which is rendered as $\oint$. In similar manner, the closed surface and double integrals can be represented as \oiint and \iint respectively, rendered as $\oiint$ and $\iint$.

Underbrace and Overbrace

To assess the value of some part of the expression, underbraces can be used. Underbraces are applied by writing \underbrace followed by enclosing the expression that needs to be assessed in braces, further followed by a subscript that shows the assessment.

\underbrace{1+2+...+n}_{n(n+1)} is rendered as $\underbrace{1+2+...+n}_{n(n+1)/2}$.

Overbraces are relatively the same, use \overbrace, followed by the expression to be assessed, followed by a superscript showing the assessment.

\overbrace{1+2+...+n}^{n(n+1)} is rendered as $\overbrace{1+2+...+n}^{n(n+1)/2}$.

Matrices and Determinants

Before understanding how to construct matrices and determinats, it worthwhile to understand arrays.

arrays and their combinations

An array is written by separating it's members with ampersands (&). Example, -1 & 17 & 10.2 is an array with 3 elements: [-1, 17 and 10.2]

Arrays can be combined with other arrays via using double backslashes (\\).

a & b & c \\ {x+1} & {y+2} & {z+3}

The above is a combination of two arrays with elements [a, b, c] in the first array and [x+1, y+2, z+3] in the second array.

Constructing matrices using arrays

On their own, combination of arrays aren't that useful. But when used with \begin function, they can easily represent a matrix.

Enclose combinations of arrays between \begin{bmatrix} and \end{bmatrix} to create a square matrix.

\begin{bmatrix} a & b & c \\ {x+1} & {y+2} & {z+3} \\ -1 & 17 & 10.2 \end{bmatrix}

The above LaTeX is rendered as:

$$\begin{bmatrix} a & b & c \\ {x+1} & {y+2} & {z+3} \\ -1 & 17 & 10.2 \end{bmatrix}$$

The \begin function's {bmatrix} parameter can be swapped with {vmatrix} to represent a determinant.

\begin{vmatrix} a & b & c \\ {x+1} & {y+2} & {z+3} \\ -1 & 17 & 10.2 \end{vmatrix}

The above LaTeX is rendered as:

$$\begin{vmatrix} a & b & c \\ {x+1} & {y+2} & {z+3} \\ -1 & 17 & 10.2 \end{vmatrix}$$

Other types of matrices (double verical, parenthesized) can be easily constructed by swapping \begin function's {bmatrix} parameter.

type of matrix parameter rendered LaTeX
braced {Bmatrix} $$\begin{Bmatrix} a & b & c \\ {x+1} & {y+2} & {z+3} \\ -1 & 17 & 10.2 \end{Bmatrix}$$
parenthesized {pmatrix} $$\begin{pmatrix} a & b & c \\ {x+1} & {y+2} & {z+3} \\ -1 & 17 & 10.2 \end{pmatrix}$$
double vertical {Vmatrix} $$\begin{Vmatrix} a & b & c \\ {x+1} & {y+2} & {z+3} \\ -1 & 17 & 10.2 \end{Vmatrix}$$

Piecewise functions

As discussed in the section on Matrices, combination of arrays along with \begin function's {cases} parameter can be used to represent piecewise functions.

\begin{cases} x^2-1, & x \lt -1 \\ x+1, & -1 \leq x \lt 2 \\ 0, & x \geq 2 \end{cases}

The above LaTeX is rendered as:

$$\begin{cases} x^2-1, & x \lt -1 \\ x+1, & -1 \leq x \lt 2 \\ 0, & x \geq 2 \end{cases}$$