OpenLLM-France/wikimedia huggingface dataset:
# MySQL/Language/Table manipulation
## CREATE TABLE

Create table syntax is:
The rows returned by the "select" query can be saved as a new table. The datatype will be the same as the old table. For e.g.
The table size limit depends on the filesystem, and is generally around 2TB.
Moreover, MySQL can assure the unique keys auto-incrementation with the option AUTO_INCREMENT. In case of table truncation, the counter can be reset with:

### Copy a table

To duplicate the same structure (names, fields types, and indexes, but no record):
To copy the records into the previous result:

### Temporary tables

It's possible to create variables of type "table", which as the other variables, will be erased at the end of their scripts. It's called the "temporary tables":
Example with a named column:
Attention: if the temporary table column name doesn't correspond to the field which fills it, an additional column will be added with this field name. Eg:
Attention: all temporary tables are dropped at the end of the MySQL connection which had created them.

## ALTER TABLE

ALTER TABLE command can be used when you want to add/delete/modify the columns and/or the indexes; or, it can be used to change other table properties.
Add a column:
Modify a column:
Drop a column:
Re-order the record in a table:
(this operation is only supported by some Storage Engines; it could make some query faster)

### Rename a table

In order to rename a table, you must have ALTER and DROP privileges on the old table name (or on all the tables), and CREATE and INSERT privileges on the new table name (or on all the tables).
You can use ALTER TABLE to rename a table:
You can rename more than one table with a single command:
RENAME is a shortcut. You can also use the ALTER TABLE statement:
Using ALTER TABLE you can only rename one table per statement, but it's the only way to rename temporary tables.

## DROP TABLE

Will completely delete the table and all the records it contains.
You can also drop more than one table with a single statement:
There are come optional keywords:
TEMPORARY must be specified, to drop a temporary table. IF EXISTS tells the server that it must not raise an error if the table doesn't exist.

## References

* ↑ http://dev.mysql.com/doc/refman/5.7/en/table-size-limit.html
* ↑ http://www.mysqltutorial.org/mysql-temporary-table/
# MySQL/Language/Spatial databases
## Principle

When typing the fields, some of them represent graphical objects, and so are considered like as "Spatial". Consequently, they are manipulated by some different request than for the text.
We distinguish eight fields types:
* Geometry
* Point
* LineString
* Polygon
* MultiPoint
* MultiLineString
* MultiPolygon
* GeometryCollection
And six relations between them:
* Contains
* Disjoint
* Equals
* Intersects
* Overlaps
* Within

## References

* ↑ http://dev.mysql.com/doc/refman/5.0/en/spatial-datatypes.html
* ↑ http://dev.mysql.com/doc/refman/5.7/en/spatial-relation-functions-mbr.html
# MySQL/Language/Specifying names

In this book, we will quote the MySQL identifiers (tables names, fields, databases, etc.) using backquotes (`).
Backquote is ASCII 96. It can be type on Linux systems by pressing: ALT+'.
Most often, this is optional. However, this allows better error messages from MySQL. For example, this error is not very helpful:
But this one is better:
Ok, it was just a missing s:
This syntax allows the user to use reserved words and some illegal characters in objects' names. It is even possible to use backquotes by typing it twice:
However, this is not a portable syntax. The SQL standard recommends the use of a double quote ("). If you want to write portable SQL quote, do not quote the identifiers. But is there something like portable SQL, even remotely?
# MySQL/Language/User Variables
## Local variables

The local variables can't be reached from outside their function or stored procedure.
They are declared like this:

## Session variables

* The ability to set variables in a statement with the := assignment operator:
* For e.g. (@total) to calculate the total in an example, you have to have the total column first because it must be calculated before the individual percentage calculations.
* Session variables are set for the duration of the thread.
* In the vast majority of cases you'd use a programming language to do this sort of thing.
* MySQL variables can be useful when working on the MySQL command line.
* If no records are returned, the user variable will not be set for that statement.
* A user variable set in the field list cannot be used as a condition.
* The value of a variable is set with the SET statement or in a SELECT statement with :=
* You can copy values retrieved by a SELECT into one or more variables:

## Global variables

A global variable is visible to all users, it allows to modify the configuration files settings during the session or definitely. So when changing them, it's necessary to precise this permanent or ephemera criteria, with respectively set global and set session. Example:

## References

* ↑ http://stackoverflow.com/questions/1009954/mysql-variable-vs-variable-whats-the-difference
* ↑ http://dev.mysql.com/doc/refman/5.7/en/declare-local-variable.html
# English-Mirad A-M

/English-Mirad-A /English-Mirad-B /English-Mirad-C /English-Mirad-D /English-Mirad-E /English-Mirad-F /English-Mirad-G /English-Mirad-H /English-Mirad-I /English-Mirad-J /English-Mirad-K /English-Mirad-L /English-Mirad-M
# w.

   * w. = w.
   * waaa = waaa
   * Walpurgis maj = Walpurgisnacht
   * wampum = wampum
   * wat = I as a male, me as a male
   * wata = my
   * watas = mine
   * watasi = mine
   * waut = myself
   * wauta = my own
   * wautas = my own
   * wautasi = my own
   * Waxington Taxmeg = Washington Monument
   * Wellington yugsul abtyoyaf = gumboot
   * Wenda = Wendish
   * Wendad = Wendic
   * Wendata = Wendic
   * wet = you as a male
   * weta = your
   * wetas = yours
   * wetasi = yours
   * weut = yourself
   * weuta = your own
   * weutas = your own
   * weutasi = your own
   * whist ifek = whist
   * wigwam = wigwag
   * wiski bay yavil = boilermaker
   * wiski = whiskey, whisky
   * wiskitil = jigger
   * Wiskonsin = Wisconsin
   * wit = he, him
   * wit iut = he himself, him himself
   * wita = his
   * witas = his
   * witasi = his
   * wiut = himself
   * wiuta = his own
   * wiutas = his own
   * wiutasi = his own
   * Wolid = Wolof
   * Wolidaler = to speak Wolof
   * Wolidalut = Wolof speaker
   * Wolider = to say in Wolof
   * wu = the letter w
   * Wulifem = Wallis and Futuna
   * Wulifema = from Wallis and Futuna
   * Wulifemat = inhabitant of Wallis and Futuna
   * Wulinid = Walloon
   * Wulinidalut = Walloon speaker
   * Wulinider = to say in Walloon
   * Wulisod = Welsh
   * Wulisodalut = Welsh speaker
   * Wulisoder = to say in Welsh, to speak Welsh
   * Wulisoma = Welsh
   * Wulisoma yupet = rarebit
   * Wulisomat = Welsh
   * Wulisot = Welshman
   * Wulisoyt = Welsh woman
   * wulk = W, tungsten
   * wulka manzyuyn = tungsten lightbulb
   * Wulunidaler = to speak Walloon
   * wumules = w boson
   * Wusomid = Samoan
   * Wusomidaler = to speak Samoan
   * Wusomidalut = Samoan speaker
   * Wusomider = to say in Samoan
   * Wusomim = Samoa
   * Wusomima = Samoan
# Parrot Virtual Machine/Licensing
## Licensing

The text of this book is released under the following license:
Parrot, it's source code, and the tools required to build it are released under the terms of the Artistic License 2.0.

## Compatibility with Artistic 2.0

Parrot and most of it's documentation library is released under the terms of the Artistic 2.0 license. For maximum compatibility, and for the ability to reuse content developed here on Wikibooks in other places in the Parrot ecosystem, some users have opted to have their contributions to this book explicitly dual-licensed GFDL and Artistic 2.0:
* Whiteknight
* Andrew Whitworth
Contributions to this book by users who are listed above may be reused under the Artistic 2.0 license where necessary. This is not a condition to editing this book, and edits made by users who have not listed themselves above are to be considered GFDL-only.
# Parrot Virtual Machine/Memory and Garbage Collection
## Arenas and Pools

Parrot allocates memory in large blocks called arenas. Each arena has enough space to hold exactly N items of size M, typically tightly packed together in consecutive memory locations. Some collectors may also store additional metadata in the arena as well. Multiple arenas of the same type are stored as a linked list inside a pool. A pool may no arenas, one arena, or multiple arenas, but arenas in a given pool all contain objects of the same size. However, each arena may hold a different number of objects.
The parrot interpreter structure, which maintains state for the entire virtual machine, contains a pointer to the arena_base structure. The arena base structure contains pointers to all the various pools, and a few other important data items that are used for memory management.

## Garbage Collectors

Parrot has a number of garbage collectors available, which can be selected at compile time using compiler directives. The most mature and robust collector at this time is a simple mark & sweep collector, GC_MS. The different collectors can be activated or deactivated prior to compilation in the file include/Parrot/settings.h. That file contains a number of options that you can set to customize the behavior of Parrot.

### Mark & Sweep Collector

The Mark & Sweep (MS) collector is the only collector for Parrot that is currently mature and stable enough for regular use. However, this collector is the cause of several performance problems in Parrot, and there are active efforts under way to replace it. The mark & sweep collector will likely be deprecated or removed entirely from Parrot by the 1.0.0 release.

### Incremental Tricolor Collector

Development is currently under way on a new garbage collection scheme which uses a tricolor marking algorithm to mark data objects. The tricolor algorithm will enable an incremental behavior in the collector so that the "stop the world" behavior of the MS collector can be avoided for large memory pools.

## Writing new Collectors

Writing a new collector is as simple as implementing a particular interface. This interface is defined in detail in PDD 09, but we will cover some of the basics here.

### Write Barriers
## Resources

* http://www.parrotcode.org/docs/memory_internals.html
* http://www.parrotcode.org/docs/pdd/pdd09_gc.html
# Parrot Virtual Machine/PCT Classes
## HLLCompiler Class

The HLLCompiler class is used to help instantiate and operate a compiler for a high-level language written for Parrot. HLLCompiler coordinates the execution of the HLL grammar, and controls the conversion of the HLL from PAST to POST, from POST to PIR, and ultimately to Parrot bytecode.
This page is going to serve as a brief reference to the HLLCompiler class, and a description of how the class is used to create a compiler for an HLL.
# Parrot Virtual Machine/PASM Reference
## Resources

* http://docs.parrot.org/parrot/latest/html/docs/pdds/draft/pdd06_pasm.pod.html
* http://docs.parrot.org/parrot/latest/html/docs/pdds/draft/pdd05_opfunc.pod.html
* http://docs.parrot.org/parrot/latest/html/ops.html
# Parrot Virtual Machine/PAST Node Reference
## Resources

* http://www.parrotcode.org/docs/pdd/pdd26_ast.html
# Parrot Virtual Machine/PIR Reference
## Resources

* http://www.parrotcode.org/docs/pdd/pdd19_pir.html
# Linear Algebra/Linear Independence

The prior section shows that a vector space can be understood as an unrestricted linear combination of some of its elements— that is, as a span. For example, the space of linear polynomials $\{a+bx\,{\big |}\,a,b\in \mathbb {R} \}$ is spanned by the set $\{1,x\}$. The prior section also showed that a space can have many sets that span it. The space of linear polynomials is also spanned by $\{1,2x\}$ and $\{1,x,2x\}$.
At the end of that section we described some spanning sets as "minimal", but we never precisely defined that word. We could take "minimal" to mean one of two things. We could mean that a spanning set is minimal if it contains the smallest number of members of any set with the same span. With this meaning $\{1,x,2x\}$ is not minimal because it has one member more than the other two. Or we could mean that a spanning set is minimal when it has no elements that can be removed without changing the span. Under this meaning $\{1,x,2x\}$ is not minimal because removing the $2x$ and getting $\{1,x\}$ leaves the span unchanged.
The first sense of minimality appears to be a global requirement, in that to check if a spanning set is minimal we seemingly must look at all the spanning sets of a subspace and find one with the least number of elements. The second sense of minimality is local in that we need to look only at the set under discussion and consider the span with and without various elements. For instance, using the second sense, we could compare the span of $\{1,x,2x\}$ with the span of $\{1,x\}$ and note that the $2x$ is a "repeat" in that its removal doesn't shrink the span.
In this section we will use the second sense of "minimal spanning set" because of this technical convenience. However, the most important result of this book is that the two senses coincide; we will prove that in the section after this one.
# Linear Algebra/Matrix Inverses

An n-by-n matrix A is the inverse of n-by-n matrix B (and B the inverse of A) if BA = AB = I, where I is an identity matrix.
The inverse of an n-by-n matrix can be calculated by creating an n-by-2n matrix which has the original matrix on the left and the identity matrix on the right. Row reduce this matrix and the right half will be the inverse. If the matrix does not row reduce completely it does not have an inverse.

## Example

Let $\mathrm {A} ={\begin{bmatrix}1&4&4\\2&5&8\\3&6&9\end{bmatrix}}$
We begin by expanding and partitioning A to include the identity matrix, and then proceed to row reduce A until we reach the identity matrix on the left-hand side.
    ${\begin{bmatrix}1&4&4&{\big |}&1&0&0\\2&5&8&{\big |}&0&1&0\\3&6&9&{\big |}&0&0&1\end{bmatrix}}\rightsquigarrow {\begin{bmatrix}1&4&4&{\big |}&1&0&0\\0&-3&0&{\big |}&-2&1&0\\0&-6&-3&{\big |}&-3&0&1\end{bmatrix}}\rightsquigarrow {\begin{bmatrix}1&4&4&{\big |}&1&0&0\\0&1&0&{\big |}&2/3&-1/3&0\\0&-6&-3&{\big |}&-3&0&1\end{bmatrix}}\rightsquigarrow$
    ${\begin{bmatrix}1&0&4&{\big |}&-5/3&4/3&0\\0&1&0&{\big |}&2/3&-1/3&0\\0&0&-3&{\big |}&1&-2&1\end{bmatrix}}\rightsquigarrow {\begin{bmatrix}1&0&4&{\big |}&-5/3&4/3&0\\0&1&0&{\big |}&2/3&-1/3&0\\0&0&1&{\big |}&-1/3&2/3&-1/3\end{bmatrix}}\rightsquigarrow {\begin{bmatrix}1&0&0&{\big |}&-1/3&-4/3&4/3\\0&1&0&{\big |}&2/3&-1/3&0\\0&0&1&{\big |}&-1/3&2/3&-1/3\end{bmatrix}}$
The matrix $\mathrm {B} ={\begin{bmatrix}-1/3&-4/3&4/3\\2/3&-1/3&0\\-1/3&2/3&-1/3\end{bmatrix}}$ is then the inverse of the original matrix A.
# Linear Algebra/Matrix Inverses/Finding the Inverse of a Matrix

The inverse of a matrix may be found using several different methods. The method that is guaranteed to work is by augmenting a n×n matrix with $I_{n}$, and solving to the RREF.

## An example

${\begin{bmatrix}1&3\\2&2\end{bmatrix}}{\Bigg |}{\begin{bmatrix}1&0\\0&1\end{bmatrix}}$
${\begin{bmatrix}1&0\\0&1\end{bmatrix}}{\Bigg |}{\begin{bmatrix}-{\cfrac {1}{2}}&{\cfrac {3}{4}}\\{\cfrac {1}{2}}&-{\cfrac {1}{4}}\end{bmatrix}}$
The inverse of the matrix is the second augmented matrix. In this case,
${\begin{bmatrix}-{\cfrac {1}{2}}&{\cfrac {3}{4}}\\{\cfrac {1}{2}}&-{\cfrac {1}{4}}\end{bmatrix}}$
# Linear Algebra/Linear Geometry of n-Space

For readers who have seen the elements of vectors before, in calculus or physics, this section is an optional review. However, later work will refer to this material so it is not optional if it is not a review.
In the first section, we had to do a bit of work to show that there are only three types of solution sets— singleton, empty, and infinite. But in the special case of systems with two equations and two unknowns this is easy to see. Draw each two-unknowns equation as a line in the plane and then the two lines could have a unique intersection, be parallel, or be the same line.
| Unique solution | No solutions | Infinitely many solutions |
| ${\begin{array}{*{2}{rc}r}\scriptstyle 3x&\scriptstyle +&\scriptstyle 2y&\scriptstyle =&\scriptstyle 7\\[-5pt]\scriptstyle x&\scriptstyle -&\scriptstyle y&\scriptstyle =&\scriptstyle -1\end{array}}$ | ${\begin{array}{*{2}{rc}r}\scriptstyle 3x&\scriptstyle +&\scriptstyle 2y&\scriptstyle =&\scriptstyle 7\\[-5pt]\scriptstyle 3x&\scriptstyle +&\scriptstyle 2y&\scriptstyle =&\scriptstyle 4\end{array}}$ | $\scriptstyle {\begin{array}{*{2}{rc}r}\scriptstyle 3x&\scriptstyle +&\scriptstyle 2y&\scriptstyle =&\scriptstyle 7\\[-5pt]\scriptstyle 6x&\scriptstyle +&\scriptstyle 4y&\scriptstyle =&\scriptstyle 14\end{array}}$ |
These pictures don't prove the results from the prior section, which apply to any number of linear equations and any number of unknowns, but nonetheless they do help us to understand those results. This section develops the ideas that we need to express our results from the prior section, and from some future sections, geometrically. In particular, while the two-dimensional case is familiar, to extend to systems with more than two unknowns we shall need some higher-dimensional geometry.
# Linear Algebra/Matrices and Vectors/
## Matrices

A matrix is an array of numbers arranged into rows and columns. Some examples of matrices are,
$A={\begin{bmatrix}2&4&6\\0&-5&7.105\\1&-3&2\end{bmatrix}},\quad B={\begin{bmatrix}-3&-4\\\pi &{\sqrt {2}}\end{bmatrix}},{\mbox{ and }}\,\,\,C={\begin{bmatrix}-3&-5&0&0\\-1&4.56&3.28&19\end{bmatrix}}.$
When describing matrices we indicate the number of rows first, then the number of columns. For example, the matrix $C$ with two rows and four columns is said to be a $2\times 4$ matrix.
It is standard notation to name matrices with capital letters and to use lower case letters with subscripts to identify particular entries in a matrix.
For example, to identify the entry in row 1 and column 3 of matrix $A$ we would write $a_{13}$. To indicate that this entry is a six we would write the equation $a_{13}=6$.
Two matrices are considered to be equal only if they are the same size and every pair of corresponding elements are equal.
A column matrix is a matrix with only one column. Similarly, a row matrix has only one row.

## Vectors

A vector is an object often defined by a long list of properties. However, for now we will avoid the more complicated definition, and just say that a vector is an ordered list of numbers. Later we will see that vectors can really be much more.
An ordered pair, $(x,y)$, that is used to identify a point in the plane can be considered to be a vector.
Similarly, an ordered triple, $(x,y,z)$ is a vector.
Obviously, row and column matrices can also be considered to be a vector.
It is common to name vectors using variables with arrows above.
For example, we might write ${\vec {v}}=(2,3,5,-4),{\mbox{ or }}{\vec {w}}={\begin{bmatrix}4\\5\\0\end{bmatrix}}$.
For the most part, it will convenient to think of vectors as column matrices.
# Linear Algebra/Matrix Equation
## Diagonal Matrix

A diagonal matrix, $A$, is a square matrix in which the entries outside of the main diagonal are zero. The main diagonal of a square matrix consists of the entries which run from the top left corner to the bottom right corner.
In the example below the main diagonal are $a_{11},a_{22},...,a_{nn}\!$
    $\quad A={\begin{bmatrix}a_{11}&0&\cdots &0\\0&a_{22}&\cdots &0\\\vdots &\vdots &\ddots &\vdots \\0&0&\cdots &a_{nn}\end{bmatrix}}$

## Identity Matrix

The identity matrix, with a size of n, is an n-by-n square matrix with ones on the main diagonal and zeros elsewhere. It is commonly denoted as $I_{n}$, or simply by I if the size is immaterial or can be easily determined by the context.
    $I_{1}=[1]\quad I_{2}={\begin{bmatrix}1&0\\0&1\end{bmatrix}}\quad I_{3}={\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix}}\quad I_{n}={\begin{bmatrix}1&0&\cdots &0\\0&1&\cdots &0\\\vdots &\vdots &\ddots &\vdots \\0&0&\cdots &1\end{bmatrix}}$
The most important property of the identity matrix is that, when multiplied by another matrix, A, the result will be A
    $AI_{n}=A\,$ and $I_{n}A=A\,$.
# Pascal Programming/Examples

How Pascal can solve your problems?

# Printer driver in PCL level III

Let's say we have a printer that our operating system does not support (there is no driver). What to do ? Write your own driver in Pascal.
PCL (Printer Command Language) is a page description language (PDL) developed by Hewlett-Packard as a printer protocol and has become a de facto industry standard.
The following module allows you to print, but only black and white.
* ↑ PCL in wikipedii
# Pascal Programming/Miscellaneous

The last Pascal-related standards were published in 1990, ISO standard 7185 “[Standard] Pascal”, and ISO standard 10206 “Extended Pascal”. But ever since IT did not stop evolving. Several compiler manufacturers continued extending Pascal by miscellaneous extensions, some of which we are presenting here.

## Inline assembly

Since TP version 1.0 there exists the possibility to include assembly language inside your Pascal source code. This is called inline assembly. While normal Pascal is surrounded by a begin … end frame, assembly language can be framed by asm … end. Here is an example that can be compiled with the FPC:
Writing inline assembly code is useful if you have special knowledge about data and the compiler generates inefficient code. You can try to optimize for speed or size in order mitigate performance bottlenecks.
All, Delphi, the FPC as well as the GPC support asm frames, but each with a few subtle differences. We therefore refer to the compiler’s manuals, and not forgetting this book is about programming in Pascal.
# Pascal Programming/Object oriented

Back to Pascal Programming
Object Oriented Pascal allows the user to create applications with Classes and Types. This saves the developer time on developing programs that would be very flexible.
This is a sample program (tested with the FreePascal compiler) that will store a number 1 in private variable One, increase it by one and then print it.
This example is very basic and would be pretty useless when used as OOP. Much more complicated examples can be found in Delphi and Lazarus which include a lot of Object Oriented programming.
# Pascal Programming/Cheatsheet
## Syntax cheat sheet

* monospaced denotes keywords and syntax
* [ ] denotes optional syntax
* | denotes multiple possible syntaxes
* ( ) denotes grouped syntax

### Statements

| syntax | definition | availability |
| if condition then begin statement(s) end; if condition then statement; | Conditional statement | standard |
| while condition do begin statement(s) end; while condition do statement; | while loop | standard |
| repeat statement(s) until condition; | repeat loop | standard |
| with variable do begin statement(s) end; with variable do statement; | Eases the use of a variable or pointer variable of a structured type by omitting the dot notation for the variable. | standard |
# Maxima/Data types

* Numbers
* Strings
* Constants
* Lists
* Arrays
* Structures