finish markdown linting
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
e39d6dcee3
commit
efbd8ba596
@ -4,3 +4,5 @@ MD009:
|
||||
strict: false
|
||||
|
||||
MD013: false
|
||||
MD033: false
|
||||
MD024: false
|
||||
|
@ -5,6 +5,6 @@
|
||||
- Jus de citron vert 4cl
|
||||
- Eau gazeuse 12 cl
|
||||
|
||||
## Indication
|
||||
## Indication
|
||||
|
||||
- Mélange à réaliser au shaker avant d'ajouter l'eau gazeuse.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Sex on the beach
|
||||
# Sex on the beach
|
||||
|
||||
- Vodka 3cl
|
||||
- Chambord 2cl
|
||||
|
@ -1,3 +1,5 @@
|
||||
# lien
|
||||
|
||||
[site permettant d'avoir les prox d'achat de masion ou terrain](https://app.dvf.etalab.gouv.fr)
|
||||
|
||||
[liste api public](https://github.com/public-apis/public-apis)
|
||||
[liste api public](https://github.com/public-apis/public-apis)
|
||||
|
@ -1,4 +1,5 @@
|
||||
# Mental Model
|
||||
|
||||
## Links
|
||||
|
||||
- [Ask HN: Which books teach mental models?](https://news.ycombinator.com/item?id=19895407)
|
||||
|
@ -1,3 +1,5 @@
|
||||
# hey hey my my
|
||||
|
||||
Hey hey, my my
|
||||
Rock and roll can never die
|
||||
There's more to the picture
|
||||
@ -21,4 +23,4 @@ My my, hey hey
|
||||
Rock and roll is here to stay
|
||||
It's better to burn out
|
||||
Than to fade away
|
||||
My my, hey hey
|
||||
My my, hey hey
|
||||
|
@ -1,7 +1,9 @@
|
||||
>Se vouloir libre, c'est aussi vouloir les autres libres
|
||||
# citations
|
||||
|
||||
> Se vouloir libre, c'est aussi vouloir les autres libres
|
||||
|
||||
simone de beauvoir
|
||||
|
||||
|
||||
>Les ordinateurs ne sont pas le truc. Ils sont le truc qui nous conduit au truc
|
||||
|
||||
|
||||
Halte and catch fire
|
||||
|
@ -1,26 +1,27 @@
|
||||
# eldorado
|
||||
|
||||
Un chevalier
|
||||
sur son coursier,
|
||||
jour et nuit au grand galop
|
||||
, courut longtemps
|
||||
tout en chantant.
|
||||
Il cherchait l'El Dorado,
|
||||
au-delà des monts
|
||||
tout en chantant.
|
||||
Il cherchait l'El Dorado,
|
||||
au-delà des monts
|
||||
les plus hauts,
|
||||
dans les profondeurs de la terre,
|
||||
dans les profondeurs de la terre,
|
||||
poursuivant sa chimère !
|
||||
|
||||
A moitié mort,
|
||||
marchant encore,
|
||||
|
||||
A moitié mort,
|
||||
marchant encore,
|
||||
il vit une ombre au grand galop.
|
||||
Il lui cria, "
|
||||
Ombre dis-moi, suis-je encore loin d'El Dorado ?
|
||||
"
|
||||
"
|
||||
|
||||
"
|
||||
|
||||
Au-delà des monts
|
||||
les plus hauts,
|
||||
les plus hauts,
|
||||
dans les profondeurs de la terre,
|
||||
chevauche sans repos,
|
||||
dit l'ombre solitaire,
|
||||
dit l'ombre solitaire,
|
||||
si tu cherches El Dorado !
|
||||
"
|
||||
|
@ -1,4 +1,5 @@
|
||||
# littanie contre la peur
|
||||
|
||||
Je ne connaîtrai pas la peur, car la peur tue l'esprit. La peur est la petite mort qui conduit à l'oblitération totale. J'affronterai ma peur. Je lui permettrai de passer sur moi, au travers de moi. Et lorsqu'elle sera passée, je tournerai mon œil intérieur sur son chemin. Et là où elle sera passée, il n'y aura plus rien. Rien que moi.
|
||||
|
||||
I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.
|
||||
|
||||
|
@ -6,13 +6,14 @@
|
||||
- On n'est pas là pour sucer des glaçons
|
||||
|
||||
## audiart
|
||||
|
||||
- Le jour où on mettra les cons sur orbite, t'as pas fini de tourner
|
||||
- Les cons, ça ose tout. C'est même à ça qu'on les reconnaît
|
||||
- Dans la vie on partage toujours les emmerdes, jamais le pognon.
|
||||
|
||||
## inspecteur harry
|
||||
|
||||
> - Lorsque je vois un adulte du sexe masculin courir derrière une femelle avec l’intention évidente de la violer, je le descends avant, c’est ma politique.
|
||||
> - L’intention ? Elle restait à établir.
|
||||
> - Quand un gars à poil court derrière une fille la queue en l’air avec un couteau de boucher à la main, c’est drôle, j’ai peine à croire qu’il est en train de quêter pour la croix rouge.
|
||||
- les avis c'est comme les trous du cul tout le monde en a un
|
||||
> Lorsque je vois un adulte du sexe masculin courir derrière une femelle avec l’intention évidente de la violer, je le descends avant, c’est ma politique.
|
||||
> L’intention ? Elle restait à établir.
|
||||
> Quand un gars à poil court derrière une fille la queue en l’air avec un couteau de boucher à la main, c’est drôle, j’ai peine à croire qu’il est en train de quêter pour la croix rouge.
|
||||
> les avis c'est comme les trous du cul tout le monde en a un
|
||||
|
@ -1 +1,3 @@
|
||||
# République Alamo
|
||||
|
||||
République. J’aime le son de ce mot. Il signifie que les gens peuvent vivre libres, parler comme bon leur semble, aller et venir, acheter ou vendre, s’enivrer ou rester sobres, selon leurs désirs. Certains mots vous font vibrer. République est l’un de ces mots qui me nouent la gorge – la même sensation qui s’empare du père voyant voit son bébé faire ses premiers pas ou son premier enfant entreprendre de se raser et parler comme un homme. Certains mots vous réchauffent le cœur. République est l’un de ces mots.
|
||||
|
@ -1,4 +1,6 @@
|
||||
# Voyez Cela (13 éme guerrier)
|
||||
|
||||
Voyez cela je vois mon père.
|
||||
Voyez cela je vois ma mère et mes sœurs et mes frères.
|
||||
Voyez cela je vois tous mes ancêtres qui sont assis et me regardent.
|
||||
Et voilà, voilà qu’ils m’appellent et me demandent de prendre place à leurs côtés dans le palais de Valhalla là ou les braves vivent à jamais.
|
||||
Et voilà, voilà qu’ils m’appellent et me demandent de prendre place à leurs côtés dans le palais de Valhalla là ou les braves vivent à jamais.
|
||||
|
@ -1 +1,3 @@
|
||||
# JS
|
||||
|
||||
[Javascript without JQuery](https://github.com/nefe/You-Dont-Need-jQuery)
|
||||
|
@ -704,8 +704,7 @@ deux conception:
|
||||
|
||||
- diferentille: enregistre les pages modifiées depuis la derniére sauvegarde compléte et les transactions qui ont eu lieu pendant la sauvegarde
|
||||
|
||||
- journal de transactions: enregistre mes transactions qui ont eu lieu depuis la derniére sauvegarde
|
||||
|
||||
- journal de transactions: enregistre mes transactions qui ont eu lieu depuis la derniére sauvegarde
|
||||
|
||||
### mode de récupération
|
||||
|
||||
@ -713,9 +712,9 @@ deux conception:
|
||||
- bulk logged
|
||||
- simple
|
||||
|
||||
### syntaxe de commande
|
||||
### syntaxe de commande
|
||||
|
||||
complete
|
||||
complete
|
||||
|
||||
BAckup DATABASE
|
||||
|
||||
@ -723,7 +722,7 @@ differentiel
|
||||
|
||||
Backup DATABASE WITH DIFFERENTIAL
|
||||
|
||||
transactionelle
|
||||
transactionelle
|
||||
|
||||
BAckup LOG
|
||||
|
||||
@ -737,11 +736,11 @@ il est possible d'envoyer la sauvegarde sur plusieur fichier en paralléle chaqu
|
||||
|
||||
il est aussi possible d'envoyer la sauvegarde sur diferent device
|
||||
|
||||
### compresioon
|
||||
### compresioon
|
||||
|
||||
WITH COMPRESSION
|
||||
|
||||
gain sur le temps de sauvegarde
|
||||
gain sur le temps de sauvegarde
|
||||
gain important sur le temps de restauration
|
||||
gain importants sur le volume
|
||||
|
||||
@ -755,7 +754,6 @@ RESTORE FILELISTONLY list les fichier restaurable pour l'in des sauvegarde conte
|
||||
|
||||
RESTORE VERIFYONLY: controle la sauvegarde
|
||||
|
||||
|
||||
## surveillance et performance
|
||||
|
||||
### Historisation des données
|
||||
@ -768,17 +766,16 @@ Tables temporelles:
|
||||
l'intervalle de temps est ouvert a droite fermée a gauche
|
||||
|
||||
interrogation temporelle
|
||||
|
||||
- as-of
|
||||
- from
|
||||
- between
|
||||
- contained in
|
||||
- contained in
|
||||
- all
|
||||
|
||||
### verrouillages et blocages
|
||||
|
||||
mode de verrouillage pessimiste par default
|
||||
mode de verrouillage pessimiste par default
|
||||
|
||||
- une écriture bloque la lecture et l'écriture d'autre processus
|
||||
- le verrouillafe peut entrainner des: wait,Blocage,deadlock
|
||||
|
||||
|
||||
|
||||
|
@ -5,41 +5,54 @@ if not done you can meet issue during request
|
||||
|
||||
## action
|
||||
|
||||
**need to have postgresqk-old-upgrade installed on arch**
|
||||
need to have **postgresqk-old-upgrade** installed on arch
|
||||
|
||||
- stop service
|
||||
|
||||
```systemctl stop postgresql.service```
|
||||
|
||||
- rename cluster directory
|
||||
```mv /var/lib/postgres/data /var/lib/postgres/olddata
|
||||
|
||||
```bash
|
||||
mv /var/lib/postgres/data /var/lib/postgres/olddata
|
||||
mkdir /var/lib/postgres/data /var/lib/postgres/tmp
|
||||
chown postgres:postgres /var/lib/postgres/data /var/lib/postgres/tmp
|
||||
```
|
||||
|
||||
- log in postgres account
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo -iu postgres
|
||||
cd /var/lib/postgres/tmp
|
||||
```
|
||||
|
||||
```
|
||||
- launch upgrade
|
||||
```
|
||||
|
||||
```bash
|
||||
pg_upgrade -b /opt/pgsql-PG_VERSION/bin -B /usr/bin -d /var/lib/postgres/olddata -D /var/lib/postgres/data
|
||||
```
|
||||
|
||||
- check both pg_hba.conf in new and old cluster
|
||||
- restart server `sc-start postgresql`
|
||||
|
||||
# sequece manipulation
|
||||
## sequece manipulation
|
||||
|
||||
sequence are use to generate uniq identifier
|
||||
|
||||
- get sequence value
|
||||
|
||||
```SQL
|
||||
select * from name_seq;
|
||||
```
|
||||
|
||||
- increment sequence value
|
||||
|
||||
```SQL
|
||||
select nextval(name_seq);
|
||||
```
|
||||
|
||||
- set sequence value:
|
||||
|
||||
```SQL
|
||||
select setval(name_seq,newvalue);
|
||||
```
|
||||
```
|
||||
|
@ -1,29 +1,36 @@
|
||||
# Quick SQL Cheatsheet
|
||||
# SQL Cheatsheet
|
||||
|
||||
A quick reminder of all relevant SQL queries and examples on how to use them.
|
||||
## Quick SQL Cheatsheet
|
||||
|
||||
This repository is constantly being updated and added to by the community.
|
||||
A quick reminder of all relevant SQL queries and examples on how to use them.
|
||||
|
||||
This repository is constantly being updated and added to by the community.
|
||||
Pull requests are welcome. Enjoy!
|
||||
|
||||
# Table of Contents
|
||||
1. [ Finding Data Queries. ](#find)
|
||||
2. [ Data Modification Queries. ](#modify)
|
||||
3. [ Reporting Queries. ](#report)
|
||||
4. [ Join Queries. ](#joins)
|
||||
5. [ View Queries. ](#view)
|
||||
6. [ Altering Table Queries.](#alter)
|
||||
7. [ Creating Table Query.](#create)
|
||||
## Table of Contents
|
||||
|
||||
1. [Finding Data Queries.](#find)
|
||||
2. [Data Modification Queries.](#modify)
|
||||
3. [Reporting Queries.](#report)
|
||||
4. [Join Queries.](#joins)
|
||||
5. [View Queries.](#view)
|
||||
6. [Altering Table Queries.](#alter)
|
||||
7. [Creating Table Query.](#create)
|
||||
|
||||
<a name="find"></a>
|
||||
# 1. Finding Data Queries
|
||||
|
||||
## 1. Finding Data Queries
|
||||
|
||||
### **SELECT**: used to select data from a database
|
||||
|
||||
* `SELECT` * `FROM` table_name;
|
||||
|
||||
### **DISTINCT**: filters away duplicate values and returns rows of specified column
|
||||
|
||||
* `SELECT DISTINCT` column_name;
|
||||
|
||||
### **WHERE**: used to filter records/rows
|
||||
|
||||
* `SELECT` column1, column2 `FROM` table_name `WHERE` condition;
|
||||
* `SELECT` * `FROM` table_name `WHERE` condition1 `AND` condition2;
|
||||
* `SELECT` * `FROM` table_name `WHERE` condition1 `OR` condition2;
|
||||
@ -32,17 +39,20 @@ Pull requests are welcome. Enjoy!
|
||||
* `SELECT` * `FROM` table_name `WHERE EXISTS` (`SELECT` column_name `FROM` table_name `WHERE` condition);
|
||||
|
||||
### **ORDER BY**: used to sort the result-set in ascending or descending order
|
||||
|
||||
* `SELECT` * `FROM` table_name `ORDER BY` column;
|
||||
* `SELECT` * `FROM` table_name `ORDER BY` column `DESC`;
|
||||
* `SELECT` * `FROM` table_name `ORDER BY` column1 `ASC`, column2 `DESC`;
|
||||
|
||||
### **SELECT TOP**: used to specify the number of records to return from top of table
|
||||
|
||||
* `SELECT TOP` number columns_names `FROM` table_name `WHERE` condition;
|
||||
* `SELECT TOP` percent columns_names `FROM` table_name `WHERE` condition;
|
||||
* Not all database systems support `SELECT TOP`. The MySQL equivalent is the `LIMIT` clause
|
||||
* `SELECT` column_names `FROM` table_name `LIMIT` offset, count;
|
||||
|
||||
### **LIKE**: operator used in a WHERE clause to search for a specific pattern in a column
|
||||
|
||||
* % (percent sign) is a wildcard character that represents zero, one, or multiple characters
|
||||
* _ (underscore) is a wildcard character that represents a single character
|
||||
* `SELECT` column_names `FROM` table_name `WHERE` column_name `LIKE` pattern;
|
||||
@ -54,26 +64,31 @@ Pull requests are welcome. Enjoy!
|
||||
* `LIKE` ‘[a-c]%’ (find any values starting with “a”, “b”, or “c”
|
||||
|
||||
### **IN**: operator that allows you to specify multiple values in a WHERE clause
|
||||
|
||||
* essentially the IN operator is shorthand for multiple OR conditions
|
||||
* `SELECT` column_names `FROM` table_name `WHERE` column_name `IN` (value1, value2, …);
|
||||
* `SELECT` column_names `FROM` table_name `WHERE` column_name `IN` (`SELECT STATEMENT`);
|
||||
|
||||
### **BETWEEN**: operator selects values within a given range inclusive
|
||||
|
||||
* `SELECT` column_names `FROM` table_name `WHERE` column_name `BETWEEN` value1 `AND` value2;
|
||||
* `SELECT` * `FROM` Products `WHERE` (column_name `BETWEEN` value1 `AND` value2) `AND NOT` column_name2 `IN` (value3, value4);
|
||||
* `SELECT` * `FROM` Products `WHERE` column_name `BETWEEN` #01/07/1999# AND #03/12/1999#;
|
||||
|
||||
### **NULL**: values in a field with no value
|
||||
|
||||
* `SELECT` * `FROM` table_name `WHERE` column_name `IS NULL`;
|
||||
* `SELECT` * `FROM` table_name `WHERE` column_name `IS NOT NULL`;
|
||||
|
||||
### **AS**: aliases are used to assign a temporary name to a table or column
|
||||
|
||||
* `SELECT` column_name `AS` alias_name `FROM` table_name;
|
||||
* `SELECT` column_name `FROM` table_name `AS` alias_name;
|
||||
* `SELECT` column_name `AS` alias_name1, column_name2 `AS` alias_name2;
|
||||
* `SELECT` column_name1, column_name2 + ‘, ‘ + column_name3 `AS` alias_name;
|
||||
|
||||
### **UNION**: set operator used to combine the result-set of two or more SELECT statements
|
||||
|
||||
* Each SELECT statement within UNION must have the same number of columns
|
||||
* The columns must have similar data types
|
||||
* The columns in each SELECT statement must also be in the same order
|
||||
@ -81,115 +96,147 @@ Pull requests are welcome. Enjoy!
|
||||
* `UNION` operator only selects distinct values, `UNION ALL` will allow duplicates
|
||||
|
||||
### **INTERSECT**: set operator which is used to return the records that two SELECT statements have in common
|
||||
|
||||
* Generally used the same way as **UNION** above
|
||||
* `SELECT` columns_names `FROM` table1 `INTERSECT SELECT` column_name `FROM` table2;
|
||||
|
||||
### **EXCEPT**: set operator used to return all the records in the first SELECT statement that are not found in the second SELECT statement
|
||||
|
||||
* Generally used the same way as **UNION** above
|
||||
* `SELECT` columns_names `FROM` table1 `EXCEPT SELECT` column_name `FROM` table2;
|
||||
|
||||
### **ANY|ALL**: operator used to check subquery conditions used within a WHERE or HAVING clauses
|
||||
|
||||
* The `ANY` operator returns true if any subquery values meet the condition
|
||||
* The `ALL` operator returns true if all subquery values meet the condition
|
||||
* `SELECT` columns_names `FROM` table1 `WHERE` column_name operator (`ANY`|`ALL`) (`SELECT` column_name `FROM` table_name `WHERE` condition);
|
||||
|
||||
### **GROUP BY**: statement often used with aggregate functions (COUNT, MAX, MIN, SUM, AVG) to group the result-set by one or more columns
|
||||
|
||||
* `SELECT` column_name1, COUNT(column_name2) `FROM` table_name `WHERE` condition `GROUP BY` column_name1 `ORDER BY` COUNT(column_name2) DESC;
|
||||
|
||||
### **HAVING**: this clause was added to SQL because the WHERE keyword could not be used with aggregate functions
|
||||
|
||||
* `SELECT` `COUNT`(column_name1), column_name2 `FROM` table `GROUP BY` column_name2 `HAVING` `COUNT(`column_name1`)` > 5;
|
||||
|
||||
### **WITH**: often used for retrieving hierarchical data or re-using temp result set several times in a query. Also referred to as "Common Table Expression"
|
||||
|
||||
* `WITH RECURSIVE` cte `AS` (<br/>
|
||||
`SELECT` c0.* `FROM` categories `AS` c0 `WHERE` id = 1 `# Starting point`<br/>
|
||||
`SELECT` c0.\* `FROM` categories `AS` c0 `WHERE` id = 1 `# Starting point`<br/>
|
||||
`UNION ALL`<br/>
|
||||
`SELECT` c1.* `FROM` categories `AS` c1 `JOIN` cte `ON` c1.parent_category_id = cte.id<br/>
|
||||
`SELECT` c1.\* `FROM` categories `AS` c1 `JOIN` cte `ON` c1.parent_category_id = cte.id<br/>
|
||||
)<br/>
|
||||
`SELECT` *<br/>
|
||||
`FROM` cte
|
||||
|
||||
|
||||
<a name="modify"></a>
|
||||
# 2. Data Modification Queries
|
||||
|
||||
## 2. Data Modification Queries
|
||||
|
||||
### **INSERT INTO**: used to insert new records/rows in a table
|
||||
|
||||
* `INSERT INTO` table_name (column1, column2) `VALUES` (value1, value2);
|
||||
* `INSERT INTO` table_name `VALUES` (value1, value2 …);
|
||||
|
||||
### **UPDATE**: used to modify the existing records in a table
|
||||
|
||||
* `UPDATE` table_name `SET` column1 = value1, column2 = value2 `WHERE` condition;
|
||||
* `UPDATE` table_name `SET` column_name = value;
|
||||
|
||||
### **DELETE**: used to delete existing records/rows in a table
|
||||
|
||||
* `DELETE FROM` table_name `WHERE` condition;
|
||||
* `DELETE` * `FROM` table_name;
|
||||
|
||||
<a name="report"></a>
|
||||
# 3. Reporting Queries
|
||||
|
||||
## 3. Reporting Queries
|
||||
|
||||
### **COUNT**: returns the # of occurrences
|
||||
|
||||
* `SELECT COUNT (DISTINCT` column_name`)`;
|
||||
|
||||
### **MIN() and MAX()**: returns the smallest/largest value of the selected column
|
||||
|
||||
* `SELECT MIN (`column_names`) FROM` table_name `WHERE` condition;
|
||||
* `SELECT MAX (`column_names`) FROM` table_name `WHERE` condition;
|
||||
|
||||
### **AVG()**: returns the average value of a numeric column
|
||||
|
||||
* `SELECT AVG (`column_name`) FROM` table_name `WHERE` condition;
|
||||
|
||||
### **SUM()**: returns the total sum of a numeric column
|
||||
|
||||
* `SELECT SUM (`column_name`) FROM` table_name `WHERE` condition;
|
||||
|
||||
<a name="joins"></a>
|
||||
# 4. Join Queries
|
||||
|
||||
### **INNER JOIN**: returns records that have matching value in both tables
|
||||
## 4. Join Queries
|
||||
|
||||
### **INNER JOIN**: returns records that have matching value in both tables
|
||||
|
||||
* `SELECT` column_names `FROM` table1 `INNER JOIN` table2 `ON` table1.column_name=table2.column_name;
|
||||
* `SELECT` table1.column_name1, table2.column_name2, table3.column_name3 `FROM` ((table1 `INNER JOIN` table2 `ON` relationship) `INNER JOIN` table3 `ON` relationship);
|
||||
|
||||
### **LEFT (OUTER) JOIN**: returns all records from the left table (table1), and the matched records from the right table (table2)
|
||||
|
||||
* `SELECT` column_names `FROM` table1 `LEFT JOIN` table2 `ON` table1.column_name=table2.column_name;
|
||||
|
||||
### **RIGHT (OUTER) JOIN**: returns all records from the right table (table2), and the matched records from the left table (table1)
|
||||
|
||||
* `SELECT` column_names `FROM` table1 `RIGHT JOIN` table2 `ON` table1.column_name=table2.column_name;
|
||||
|
||||
### **FULL (OUTER) JOIN**: returns all records when there is a match in either left or right table
|
||||
|
||||
* `SELECT` column_names `FROM` table1 ``FULL OUTER JOIN`` table2 `ON` table1.column_name=table2.column_name;
|
||||
|
||||
### **Self JOIN**: a regular join, but the table is joined with itself
|
||||
|
||||
* `SELECT` column_names `FROM` table1 T1, table1 T2 `WHERE` condition;
|
||||
|
||||
<a name="view"></a>
|
||||
# 5. View Queries
|
||||
|
||||
## 5. View Queries
|
||||
|
||||
### **CREATE**: create a view
|
||||
|
||||
* `CREATE VIEW` view_name `AS SELECT` column1, column2 `FROM` table_name `WHERE` condition;
|
||||
|
||||
### **SELECT**: retrieve a view
|
||||
|
||||
* `SELECT` * `FROM` view_name;
|
||||
|
||||
### **DROP**: drop a view
|
||||
|
||||
* `DROP VIEW` view_name;
|
||||
|
||||
<a name="alter"></a>
|
||||
# 6. Altering Table Queries
|
||||
|
||||
## 6. Altering Table Queries
|
||||
|
||||
### **ADD**: add a column
|
||||
|
||||
* `ALTER TABLE` table_name `ADD` column_name column_definition;
|
||||
|
||||
### **MODIFY**: change data type of column
|
||||
|
||||
* `ALTER TABLE` table_name `MODIFY` column_name column_type;
|
||||
|
||||
### **DROP**: delete a column
|
||||
|
||||
* `ALTER TABLE` table_name `DROP COLUMN` column_name;
|
||||
|
||||
<a name="create"></a>
|
||||
# 7. Creating Table Query
|
||||
|
||||
## 7. Creating Table Query
|
||||
|
||||
### **CREATE**: create a table
|
||||
|
||||
* `CREATE TABLE` table_name `(` <br />
|
||||
`column1` `datatype`, <br />
|
||||
`column2` `datatype`, <br />
|
||||
`column3` `datatype`, <br />
|
||||
`column4` `datatype`, <br />
|
||||
`);`
|
||||
:q
|
||||
:q
|
||||
|
@ -5,23 +5,25 @@ voir version:
|
||||
`select @@version`
|
||||
|
||||
passer une base en mode single user
|
||||
` ALTER DATABASE [toto] SET SINGLE_USER WITH ROLLBACK IMMEDIATE`
|
||||
|
||||
`ALTER DATABASE [toto] SET SINGLE_USER WITH ROLLBACK IMMEDIATE`
|
||||
|
||||
passer en mode multi user
|
||||
|
||||
`alter database [toto] set MULTI_USER`
|
||||
|
||||
|
||||
voir la configuration
|
||||
`exec sp_configure`
|
||||
|
||||
activé affichage des option avancé
|
||||
|
||||
```SQL
|
||||
exec sp_configure 'show advanced options', 1;
|
||||
REconfigure;
|
||||
```
|
||||
|
||||
autorisé la mise en autonomie partielle des bases
|
||||
|
||||
```SQL
|
||||
exec sp_configure 'contained database authentication',1;
|
||||
reconfigure
|
||||
@ -39,11 +41,13 @@ reconfigure
|
||||
```
|
||||
|
||||
Backup
|
||||
|
||||
```sql
|
||||
BACKUP DATABASE [toto] TO DISK = 'c:\toto.bak' with Compression
|
||||
```
|
||||
|
||||
ajouter filegroup
|
||||
|
||||
```SQL
|
||||
USE [master]
|
||||
GO
|
||||
@ -56,6 +60,7 @@ GO
|
||||
```
|
||||
|
||||
setter filegroup par default
|
||||
|
||||
```SQL
|
||||
USE [DB_GRAND_HOTEL]
|
||||
GO
|
||||
@ -63,7 +68,8 @@ IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name = N'F
|
||||
GO
|
||||
```
|
||||
|
||||
modifier taille de fichier
|
||||
modifier taille de fichier
|
||||
|
||||
```SQL
|
||||
USE [DB_GRAND_HOTEL]
|
||||
GO
|
||||
@ -80,4 +86,4 @@ voir nombre de page utilisé et temps
|
||||
```SQL
|
||||
SET STATISTCS IO ON
|
||||
SET STATISTCS TIME ON
|
||||
```
|
||||
```
|
||||
|
@ -1,5 +1,6 @@
|
||||
# CSS
|
||||
|
||||
## link
|
||||
|
||||
[Bulma style sheet](https://devhints.io/bulma)
|
||||
[Remove.bg](https://www.remove.bg/)
|
||||
|
@ -6,20 +6,19 @@ Adapted from our book and video series, [Refactoring UI](moz-extension://3cbfa46
|
||||
|
||||
Ever used one of those fancy color palette generators? You know, the ones where you pick a starting color, tweak some options that probably include some musical jargon like "triad" or "major fourth", and are then bestowed the five perfect color swatches you should use to build your website?
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-01.png)
|
||||
![pallette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-01.png)
|
||||
|
||||
This calculated and scientific approach to picking the perfect color scheme is extremely seductive, but not very useful.
|
||||
|
||||
Well, unless you want your site to look like this:
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-02.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-02.png)
|
||||
|
||||
What you actually need
|
||||
----------------------
|
||||
## What you actually need
|
||||
|
||||
You can't build anything with five hex codes. To build something real, you need a much more comprehensive set of colors to choose from.
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-03.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-03.png)
|
||||
|
||||
You can break a good color palette down into three categories.
|
||||
|
||||
@ -27,13 +26,13 @@ You can break a good color palette down into three categories.
|
||||
|
||||
Text, backgrounds, panels, form controls — almost everything in an interface is grey.
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-04.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-04.png)
|
||||
|
||||
You'll need more greys than you think, too — three or four shades might sound like plenty but it won't be long before you wish you had something a little darker than shade #2 but a little lighter than shade #3.
|
||||
|
||||
In practice, you want 8-10 shades to choose from (more on this later). Not so many that you waste time deciding between shade #77 and shade #78, but enough to make sure you don't have to compromise too much .
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-05.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-05.png)
|
||||
|
||||
True black tends to look pretty unnatural, so start with a really dark grey and work your way up to white in steady increments.
|
||||
|
||||
@ -43,7 +42,7 @@ Most sites need one, _maybe_ two colors that are used for primary actions, empha
|
||||
|
||||
Just like with greys, you need a variety _(5-10)_ of lighter and darker shades to choose from.
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-06.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-06.png)
|
||||
|
||||
Ultra-light shades can be useful as a tinted background for things like alerts, while darker shades work great for text.
|
||||
|
||||
@ -53,19 +52,19 @@ On top of primary colors, every site needs a few _accent_ colors for communicati
|
||||
|
||||
For example, you might want to use an eye-grabbing color like yellow, pink, or teal to highlight a new feature:
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-07.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-07.png)
|
||||
|
||||
You might also need colors to emphasize different semantic _states_, like red for confirming a destructive action:
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-08.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-08.png)
|
||||
|
||||
...yellow for a warning message:
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-09.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-09.png)
|
||||
|
||||
...or green to highlight a positive trend:
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-10.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/whats-in-a-color-palette-10.png)
|
||||
|
||||
You'll want multiple shades for these colors too, even though they should be used pretty sparingly throughout the UI.
|
||||
|
||||
@ -73,30 +72,27 @@ If you're building something where you need to use color to distinguish or categ
|
||||
|
||||
All in, it's not uncommon to need as many as _ten_ different colors with _5-10 shades each_ for a complex UI.
|
||||
|
||||
Define your shades up front
|
||||
---------------------------
|
||||
## Define your shades up front
|
||||
|
||||
When you need to create a lighter or darker variation of a color in your palette, don't get clever using CSS preprocessor functions like "lighten" or "darken" to create shades on the fly. That's how you end up with 35 _slightly_ different blues that all look the same.
|
||||
|
||||
Instead, define a fixed set of shades up front that you can choose from as you work.
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-01.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-01.png)
|
||||
|
||||
So how do you put together a palette like this anyways?
|
||||
|
||||
Choose the base color first
|
||||
---------------------------
|
||||
## Choose the base color first
|
||||
|
||||
Start by picking a _base_ color for the scale you want to create — the color in the middle that your lighter and darker shades are based on.
|
||||
|
||||
There's no real scientific way to do this, but for primary and accent colors, a good rule of thumb is to pick a shade that would work well as a button background.
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-02.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-02.png)
|
||||
|
||||
It's important to note that there are no real rules here like "start at 50% lightness" or anything — every color behaves a bit differently, so you'll have to rely on your eyes for this one.
|
||||
|
||||
Finding the edges
|
||||
-----------------
|
||||
## Finding the edges
|
||||
|
||||
Next, pick your darkest shade and your lightest shade. There's no real science to this either, but it helps to think about where they will be used and choose them using that context.
|
||||
|
||||
@ -104,12 +100,11 @@ The darkest shade of a color is usually reserved for text, while the lightest sh
|
||||
|
||||
A simple alert component is a good example that combines both of these use cases, so it can be a great place to pick these colors.
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-03.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-03.png)
|
||||
|
||||
Start with a color that matches the hue of your base color, and adjust the saturation and lightness until you're satisfied.
|
||||
|
||||
Filling in the gaps
|
||||
-------------------
|
||||
## Filling in the gaps
|
||||
|
||||
Once you've got your base, darkest, and lightest shades, you just need to fill in the gaps in between them.
|
||||
|
||||
@ -119,25 +114,23 @@ Nine is a great number because it's easy to divide and makes filling in the gaps
|
||||
|
||||
Start by picking shades _700_ and _300_, the ones right in the middle of the gaps. You want these shades to feel like the perfect compromise between the shades on either side.
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-04.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-04.png)
|
||||
|
||||
This creates four more holes in the scale (_800_, _600_, _400_, and _200_), which you can fill using the same approach.
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-05.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-05.png)
|
||||
|
||||
You should end up with a pretty balanced set of colors that provide just enough options to accommodate your design ideas without feeling limiting.
|
||||
|
||||
What about greys?
|
||||
-----------------
|
||||
## What about greys?
|
||||
|
||||
With greys the base color isn't as important, but otherwise the process is the same. Start at the edges and fill in the gaps until you have what you need.
|
||||
|
||||
![](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-06.png)
|
||||
![palette](https://refactoring-ui.nyc3.cdn.digitaloceanspaces.com/previews/define-your-shades-up-front-06.png)
|
||||
|
||||
Pick your darkest grey by choosing a color for the darkest text in your project, and your lightest grey by choosing something that works well for a subtle off-white background.
|
||||
|
||||
It's not a science
|
||||
------------------
|
||||
## It's not a science
|
||||
|
||||
As tempting as it is, you can't rely purely on math to craft the perfect color palette.
|
||||
|
||||
@ -147,5 +140,4 @@ Once you actually start using your colors in your designs, it's almost inevitabl
|
||||
|
||||
Just try to avoid adding _new_ shades too often if you can avoid it. If you're not dilligent about limiting your palette, you might as well have no color system at all.
|
||||
|
||||
|
||||
[Source](https://refactoringui.com/previews/building-your-color-palette/)
|
||||
[Source](https://refactoringui.com/previews/building-your-color-palette/)
|
||||
|
@ -1 +1,3 @@
|
||||
# email HTML
|
||||
|
||||
[Rock Solid HTML Emails ◆ 24 ways](https://24ways.org/2009/rock-solid-html-emails)
|
||||
|
@ -1,2 +1,4 @@
|
||||
# HTML
|
||||
|
||||
[HTMl Reference](https://htmlreference.io/)
|
||||
[CSS References](https://cssreference.io/)
|
||||
|
@ -1,26 +1,24 @@
|
||||
|
||||
|
||||
# docker
|
||||
|
||||
## concept
|
||||
|
||||
- image: template en lecture seul pouvant créer un container
|
||||
- image: template en lecture seul pouvant créer un container
|
||||
- conteneur: instance d'une image
|
||||
|
||||
## command
|
||||
|
||||
- telecharger une image: ` docker pull debian:$tag`
|
||||
- crer et lancer un container en tty ` docker run -it bash `
|
||||
- telecharger une image: `docker pull debian:$tag`
|
||||
- crer et lancer un container en tty `docker run -it bash`
|
||||
- arreter container: `docker stop`
|
||||
- démarrer containeur: `docker start`
|
||||
- lister tous les conteneur `docker ps -a`
|
||||
- delete conteneur: `docker rm 2cdc
|
||||
- run a commad in container: `docker exec `
|
||||
- run a commad in container: `docker exec`
|
||||
- voir stdout d'un container: `docker logs`
|
||||
- créer et lancer un conteneur `docker run -d --name node-app -p 3000:3000 -v $(pwd):/app node:0.12.4 node /app/server.js`
|
||||
- -d lance en tant que daemon
|
||||
- --name permet de nommer le conteneur
|
||||
- -p associe le port au port de l'hote (1er port pour l'hote et second pour le conteneur)
|
||||
- -d lance en tant que daemon
|
||||
- --name permet de nommer le conteneur
|
||||
- -p associe le port au port de l'hote (1er port pour l'hote et second pour le conteneur)
|
||||
- -v $(pwd):/app : cette option permet de partager un dossier avec votre conteneur, ici, nous partageons le dossier courant (où se trouve notre fichier server.js) avec le dossier /app dans le conteneur (attention si vous êtes sur Mac ou Windows uniquement votre 'home' est partagé).
|
||||
- node:0.12.4 : l'image Docker que vous voulez utiliser.
|
||||
- node /app/server.js : la commande à exécuter dans le conteneur.
|
||||
@ -66,10 +64,10 @@ le .dockerignore permet comme un .gitignore de ne pas inclure certain fichiers d
|
||||
## créer image
|
||||
|
||||
- lancer la build du fichier: `docker build -t nomducontainer:tag .`
|
||||
- -t permet de nommer l'image docker
|
||||
pour ajouter un tag il faut utiliser
|
||||
- -t permet de nommer l'image docker
|
||||
pour ajouter un tag il faut utiliser
|
||||
`docker tag`
|
||||
|
||||
|
||||
## docker compose
|
||||
|
||||
permet de gérer plusieur container ensemble (IaS)
|
||||
@ -116,8 +114,6 @@ services:
|
||||
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
```
|
||||
|
||||
|
||||
|
||||
- `docker-compose up` démarre les services décrits dans docker-compose.yml et ne rend pas la main.
|
||||
- `docker-compose up -d` fait la même chose mais rend la main une fois que les services sont démarrés.
|
||||
- `docker-compose up –build` reconstruit les services avant de les lancer.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Home ASSistant
|
||||
# Home ASSistant
|
||||
|
||||
## instalation
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
|
||||
- need mosquito broker for mqtt
|
||||
|
||||
|
||||
## Cheatsheet
|
||||
|
||||
- [icon material](https://cdn.materialdesignicons.com/4.5.95/)
|
||||
@ -18,4 +17,4 @@
|
||||
## SQL request
|
||||
|
||||
- get most use entity:
|
||||
```SELECT entity_id, COUNT(*) as count FROM hass.states GROUP BY entity_id ORDER BY count DESC LIMIT 20```
|
||||
```SELECT entity_id, COUNT(*) as count FROM hass.states GROUP BY entity_id ORDER BY count DESC LIMIT 20```
|
||||
|
@ -3,6 +3,9 @@
|
||||
[Hack Xiaomi gateway V2](https://easydomoticz.com/forum/viewtopic.php?t=8397)
|
||||
|
||||
## jeedom
|
||||
|
||||
- install docker avec database sur host
|
||||
|
||||
``` docker run --net host --name jeedom-server --privileged -v /opt/jeedom:/var/www/html -e ROOT_PASSWORD=toto -e APACHE_PORT=9080 jeedom/jeedom:alpha ```
|
||||
- pour le l'hote SQL mettre 127.0.0.1
|
||||
|
||||
- pour le l'hote SQL mettre 127.0.0.1
|
||||
|
@ -1,5 +1,7 @@
|
||||
# git
|
||||
|
||||
![git](../img/git.jpg)
|
||||
|
||||
## Clone with submodule recurse
|
||||
|
||||
add *--recurse-submodules* to clone command
|
||||
@ -25,7 +27,7 @@ this will ask if you want to add each modification with this option:
|
||||
be carefull can't push repo last time use
|
||||
need to be in a repo with no modification
|
||||
|
||||
```
|
||||
```bash
|
||||
git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch $file" HEAD
|
||||
rm -rf .git/refs/original/ && git reflog expire --all && git gc --aggressive --prune
|
||||
```
|
||||
@ -35,14 +37,16 @@ rm -rf .git/refs/original/ && git reflog expire --all && git gc --aggressive --
|
||||
- clone the first repo
|
||||
- go in this directory
|
||||
- launch
|
||||
```
|
||||
|
||||
```bash
|
||||
git filter-branch --prune-empty --subdirectory-filter "subdirectory/path" master
|
||||
```
|
||||
|
||||
- push in your new git repo
|
||||
|
||||
## changing email adress
|
||||
|
||||
```
|
||||
```bash
|
||||
$ git filter-branch --commit-filter '
|
||||
if [ "$GIT_AUTHOR_EMAIL" = "schacon@localhost" ];
|
||||
then
|
||||
|
@ -44,4 +44,4 @@ git rebase --continue
|
||||
### delete
|
||||
|
||||
**drop** will delete comite rebase will not apply modification during processing
|
||||
to use by example if you have done a modifcation and a revert
|
||||
to use by example if you have done a modifcation and a revert
|
||||
|
@ -5,7 +5,7 @@ Git submodule allows ro add externel repository in a repository
|
||||
## Adding submodule
|
||||
|
||||
- ```git submodule add http://git/toto.git $path```
|
||||
this command add *http://git/toto.git* in *path* directory (add -b $branchname to follow specific branch)
|
||||
this command add *<http://git/toto.git>* in *path* directory (add -b $branchname to follow specific branch)
|
||||
- after that you need to add and commit submodule folder
|
||||
|
||||
to populate a submodule nested in other submodule
|
||||
@ -21,15 +21,12 @@ to populate a submodule nested in other submodule
|
||||
|
||||
## Updating submodule
|
||||
|
||||
|
||||
you can update a submodule Manually going in submodule folder and perform a ```git fetch``` and ```git merge```
|
||||
|
||||
|
||||
### Fetch and merge
|
||||
|
||||
automatic process
|
||||
|
||||
- perform a ```git submodule update --remote```
|
||||
|
||||
|
||||
in each case you need to commit update in project
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# ampache nginx config
|
||||
|
||||
|
||||
```
|
||||
```nginx
|
||||
if ( !-d $request_filename ) {
|
||||
rewrite ^/ampache/rest/(.*)\.view$ /ampache/rest/index.php?action=$1 last;
|
||||
rewrite ^/ampache/rest/play/(.+)$ /ampache/play/$1 last;
|
||||
|
@ -1,8 +1,12 @@
|
||||
# HTTP
|
||||
|
||||
## 1×× Informational
|
||||
|
||||
- 100 Continue
|
||||
This interim response indicates that everything so far is OK and that the client should continue with the request or ignore it if it is already finished.
|
||||
|
||||
## 2×× Success
|
||||
|
||||
- 200 OK
|
||||
The request has succeeded. The meaning of a success varies depending on the HTTP method:
|
||||
GET: The resource has been fetched and is transmitted in the message body.
|
||||
@ -19,6 +23,7 @@
|
||||
The response body contains multiple status informations for different parts of a batch/bulk request
|
||||
|
||||
## 3×× Redirection
|
||||
|
||||
- 300 Multiple Choices
|
||||
The request has more than one possible responses. User-agent or user should choose one of them. There is no standardized way to choose one of the responses.
|
||||
- 301 Moved Permanently
|
||||
@ -31,6 +36,7 @@
|
||||
This is used for caching purposes. It is telling to client that response has not been modified. So, client can continue to use same cached version of response.
|
||||
|
||||
## 4×× Client Error
|
||||
|
||||
- 400 Bad Request
|
||||
This response means that server could not understand the request due to invalid syntax.
|
||||
- 401 Unauthorized
|
||||
@ -45,6 +51,7 @@
|
||||
The client does not consider rate limiting and sent too many requests.
|
||||
|
||||
## 5×× Server Error
|
||||
|
||||
- 500 Internal Server Error
|
||||
The server has encountered a situation it doesn't know how to handle.
|
||||
- 501 Not Implemented
|
||||
@ -54,4 +61,4 @@
|
||||
- 503 Service Unavailable
|
||||
The server is not ready to handle the request. Common causes are a server that is down for maintenance or that is overloaded. Note that together with this response, a user-friendly page explaining the problem should be sent. This responses should be used for temporary conditions and the Retry-After: HTTP header should, if possible, contain the estimated time before the recovery of the service. The webmaster must also take care about the caching-related headers that are sent along with this response, as these temporary condition responses should usually not be cached.
|
||||
|
||||
For more info: https://httpstatuses.com/
|
||||
For more info: <https://httpstatuses.com/>
|
||||
|
@ -1,6 +1,8 @@
|
||||
# nginx
|
||||
|
||||
## reverse proxy
|
||||
```
|
||||
|
||||
```nginx
|
||||
location /chainetv {
|
||||
proxy_pass http://unix:/run/gunicorn/socket:/;
|
||||
#proxy_set_header Host $host;
|
||||
@ -10,6 +12,7 @@
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
- le :/ aprés le socket sert a envoyer le sous répertoire a la suite de l'adresse demander l'appli écoute donc la route /api
|
||||
- la parie commenté a le même fonctionnement mais permet un réglage plus fin associer a flask et la classe ReverseProxied par exemple:
|
||||
la location peut rediriger /chaine/api en metant le X-Script-ame a /chainetv l'appli peut donc écouter la route /api
|
||||
|
@ -4,9 +4,9 @@
|
||||
|
||||
makepkg -sf
|
||||
|
||||
le f permet de forcer la compimation meme si des dossier existe déja
|
||||
le f permet de forcer la compimation meme si des dossier existe déja
|
||||
on peut rajouter l'option *i* afin de lancer l'instalation du package a la fin de la build
|
||||
|
||||
## update .SRCINFO
|
||||
|
||||
`makepkg --printsrcinfo > .SRCINFO`
|
||||
`makepkg --printsrcinfo > .SRCINFO`
|
||||
|
@ -23,4 +23,4 @@ reduce logical volume
|
||||
|
||||
`lvextend -L +44G /dev/mapper/arch-root`
|
||||
|
||||
`resize2fs /dev/mapper/arch-root`
|
||||
`resize2fs /dev/mapper/arch-root`
|
||||
|
@ -1,18 +1,19 @@
|
||||
# Arch
|
||||
|
||||
![arch](../img/Arch_Linux_logo.svg.png)
|
||||
|
||||
## [instalation](arch_install.md)
|
||||
|
||||
|
||||
## arch tips
|
||||
|
||||
#### clés GPG corrompue ou usagé
|
||||
### clés GPG corrompue ou usagé
|
||||
|
||||
```
|
||||
```bash
|
||||
sudo pacman -S archlinux-keyring
|
||||
sudo pacmam-key --init
|
||||
sudo pacman-key --populate archlinux
|
||||
```
|
||||
|
||||
### Personaliser un iso arch
|
||||
|
||||
#### Personaliser un iso arch
|
||||
[archiso](https://wiki.archlinux.org/index.php/Archiso)
|
||||
|
@ -1,6 +1,5 @@
|
||||
---
|
||||
title: arch_install
|
||||
---
|
||||
# arch install
|
||||
|
||||
![arch](../img/Arch_Linux_logo.svg.png)
|
||||
The following is a brief installation tutorial for [Arch Linux][1]. It assumes
|
||||
familiarity with the Arch [Beginner's Guide][2] and [Installation Guide][3].
|
||||
@ -15,89 +14,87 @@ Boot into the Arch installer.
|
||||
|
||||
If your console font is tiny ([HiDPI][7] systems), set a new font.
|
||||
|
||||
$ setfont sun12x22
|
||||
setfont sun12x22
|
||||
|
||||
Connect to the Internet.
|
||||
|
||||
Verify that the [system clock is up to date][8].
|
||||
|
||||
$ timedatectl set-ntp true
|
||||
timedatectl set-ntp true
|
||||
|
||||
(bios mode)
|
||||
|
||||
$ parted -s /dev/sda mklabel msdos
|
||||
$ parted -s /dev/sda mkpart primary 1MiB 513MiB
|
||||
$ parted -s /dev/sda mkpart primary 1024MiB 100%
|
||||
$ mkfs.ext2 /dev/sda1
|
||||
$ mkfs.ext4 /dev/sda2
|
||||
parted -s /dev/sda mklabel msdos
|
||||
parted -s /dev/sda mkpart primary 1MiB 513MiB
|
||||
parted -s /dev/sda mkpart primary 1024MiB 100%
|
||||
mkfs.ext2 /dev/sda1
|
||||
mkfs.ext4 /dev/sda2
|
||||
|
||||
(UEFI mode) Create partitions for EFI, boot, and root.
|
||||
|
||||
$ parted -s /dev/sda mklabel gpt
|
||||
$ parted -s /dev/sda mkpart primary fat32 1MiB 513MiB
|
||||
$ parted -s /dev/sda set 1 boot on
|
||||
$ parted -s /dev/sda set 1 esp on
|
||||
$ parted -s /dev/sda mkpart primary 513MiB 1024MiB
|
||||
$ parted -s /dev/sda mkpart primary 1024MiB 100%
|
||||
$ mkfs.ext4 /dev/sda2
|
||||
$ mkfs.fat -F32 /dev/sda1
|
||||
|
||||
parted -s /dev/sda mklabel gpt
|
||||
parted -s /dev/sda mkpart primary fat32 1MiB 513MiB
|
||||
parted -s /dev/sda set 1 boot on
|
||||
parted -s /dev/sda set 1 esp on
|
||||
parted -s /dev/sda mkpart primary 513MiB 1024MiB
|
||||
parted -s /dev/sda mkpart primary 1024MiB 100%
|
||||
mkfs.ext4 /dev/sda2
|
||||
mkfs.fat -F32 /dev/sda1
|
||||
|
||||
Create and mount the encrypted root filesystem. Note that for UEFI systems
|
||||
this will be partition 3.
|
||||
|
||||
|
||||
$ pvcreate /dev/sda3pc
|
||||
$ vgcreate arch /dev/mapper/lvm
|
||||
$ lvcreate -L 4G arch -n swap
|
||||
$ lvcreate -L 30G arch -n root
|
||||
$ lvcreate -l +100%FREE arch -n home
|
||||
$ lvdisplay
|
||||
$ mkswap -L swap /dev/mapper/arch-swap
|
||||
$ mkfs.ext4 /dev/mapper/arch-root
|
||||
$ mkfs.ext4 /dev/mapper/arch-home
|
||||
$ mount /dev/mapper/arch-root /mnt
|
||||
$ mkdir /mnt/home
|
||||
$ mount /dev/mapper/arch-home /mnt/home
|
||||
$ swapon /dev/mapper/arch-swap
|
||||
pvcreate /dev/sda3pc
|
||||
vgcreate arch /dev/mapper/lvm
|
||||
lvcreate -L 4G arch -n swap
|
||||
lvcreate -L 30G arch -n root
|
||||
lvcreate -l +100%FREE arch -n home
|
||||
lvdisplay
|
||||
mkswap -L swap /dev/mapper/arch-swap
|
||||
mkfs.ext4 /dev/mapper/arch-root
|
||||
mkfs.ext4 /dev/mapper/arch-home
|
||||
mount /dev/mapper/arch-root /mnt
|
||||
mkdir /mnt/home
|
||||
mount /dev/mapper/arch-home /mnt/home
|
||||
swapon /dev/mapper/arch-swap
|
||||
|
||||
(UEFI mode) Encrypt the boot partition using a separate passphrase from
|
||||
the root partition, then mount the boot and EFI partitions.
|
||||
|
||||
$ mkdir /mnt/boot
|
||||
$ mount /dev/sda2 /mnt/boot
|
||||
$ mkdir /mnt/boot/efi
|
||||
$ mount /dev/sda1 /mnt/boot/efi
|
||||
mkdir /mnt/boot
|
||||
mount /dev/sda2 /mnt/boot
|
||||
mkdir /mnt/boot/efi
|
||||
mount /dev/sda1 /mnt/boot/efi
|
||||
|
||||
Optionally [edit the mirror list][9].
|
||||
|
||||
$ vi /etc/pacman.d/mirrorlist
|
||||
vi /etc/pacman.d/mirrorlist
|
||||
|
||||
Install the [base system][10].
|
||||
|
||||
$ pacstrap -i /mnt base base-devel net-tools wireless_tools dialog wpa_supplicant openssh git grub ansible
|
||||
pacstrap -i /mnt base base-devel net-tools wireless_tools dialog wpa_supplicant openssh git grub ansible
|
||||
(UEFI mode) $ pacstrap /mnt efibootmgr
|
||||
|
||||
Generate and verify [fstab][11].
|
||||
|
||||
$ genfstab -U -p /mnt >> /mnt/etc/fstab
|
||||
$ less /mnt/etc/fstab
|
||||
genfstab -U -p /mnt >> /mnt/etc/fstab
|
||||
less /mnt/etc/fstab
|
||||
|
||||
Change root into the base install and perform [base configuration tasks][12].
|
||||
|
||||
$ arch-chroot /mnt /bin/bash
|
||||
$ systemctl enable dhcpcd.service
|
||||
$ systemctl enable sshd.service
|
||||
$ passwd
|
||||
arch-chroot /mnt /bin/bash
|
||||
systemctl enable dhcpcd.service
|
||||
systemctl enable sshd.service
|
||||
passwd
|
||||
|
||||
modifier /etc/ssh/sshd_config et mettre PermitRoorlogin yes
|
||||
|
||||
Set your mkinitcpio.
|
||||
|
||||
# only for UEFI
|
||||
$ sed -i 's/^HOOKS=.*/HOOKS="base udev autodetect modconf block keyboard lvm2 resume filesystems fsck"/' /etc/mkinitcpio.conf
|
||||
# for both
|
||||
$ mkinitcpio -p linux
|
||||
only for UEFI
|
||||
sed -i 's/^HOOKS=.*/HOOKS="base udev autodetect modconf block keyboard lvm2 resume filesystems fsck"/' /etc/mkinitcpio.conf
|
||||
for both
|
||||
mkinitcpio -p linux
|
||||
|
||||
Configure GRUB.
|
||||
|
||||
@ -113,13 +110,12 @@ Configure GRUB.
|
||||
|
||||
Cleanup and reboot!
|
||||
|
||||
$ exit
|
||||
$ umount -R /mnt
|
||||
$ reboot
|
||||
exit
|
||||
umount -R /mnt
|
||||
reboot
|
||||
|
||||
Run ansible!
|
||||
|
||||
|
||||
[1]: https://www.archlinux.org/
|
||||
[2]: https://wiki.archlinux.org/index.php/Beginners'_guide
|
||||
[3]: https://wiki.archlinux.org/index.php/Installation_guide
|
||||
|
@ -1,6 +1,6 @@
|
||||
# cron
|
||||
|
||||
```
|
||||
```bash
|
||||
# * * * * * command to execute
|
||||
# │ │ │ │ │
|
||||
# │ │ │ │ │
|
||||
@ -10,13 +10,18 @@
|
||||
# │ └──────────────────── hour (0 - 23)
|
||||
# └───────────────────────── min (0 - 59)
|
||||
```
|
||||
|
||||
[test cron](https://crontab.guru/)
|
||||
|
||||
See also
|
||||
- [wikipedia/cron](http://en.wikipedia.org/wiki/Cron)
|
||||
|
||||
[wikipedia/cron](http://en.wikipedia.org/wiki/Cron)
|
||||
|
||||
## cron directories
|
||||
|
||||
You can create directories that run cron commands. Taken from the `Ubuntu`
|
||||
distro:
|
||||
|
||||
```txt
|
||||
# /etc/crontab: system-wide crontab
|
||||
# Unlike any other crontab you don't have to run the `crontab'
|
||||
@ -35,15 +40,17 @@ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
```
|
||||
|
||||
## run every weekday at midnight
|
||||
|
||||
```sh
|
||||
0 0 * * 0-5
|
||||
```
|
||||
|
||||
## edit cronjobs
|
||||
|
||||
```sh
|
||||
$ sudo crontab -e
|
||||
sudo crontab -e
|
||||
```
|
||||
|
||||
## user crontab lcation
|
||||
## user crontab lcation
|
||||
|
||||
`/var/spool/cron/crontabs`
|
||||
|
@ -1,19 +1,22 @@
|
||||
## grub_shell
|
||||
# grub_shell
|
||||
|
||||
# booter depuis le shell grub
|
||||
## booter depuis le shell grub
|
||||
|
||||
- les commande **cat** et **ls** fonctionne
|
||||
- trouver partition de boot
|
||||
- mettre la partion en racine `set root=(hd0,1)`
|
||||
- charger le kernel ce trouvant sur cette partition et setter la partition racine: `linux /vmlinuz root=/dev/sda3`
|
||||
- charger le fichier image correspondant au kernel :`initrd /boot/initrd.img`
|
||||
- enter `boot` to boot
|
||||
- trouver partition de boot
|
||||
- mettre la partion en racine `set root=(hd0,1)`
|
||||
- charger le kernel ce trouvant sur cette partition et setter la partition racine: `linux /vmlinuz root=/dev/sda3`
|
||||
- charger le fichier image correspondant au kernel :`initrd /boot/initrd.img`
|
||||
- enter `boot` to boot
|
||||
|
||||
## regénérer config
|
||||
|
||||
`grub-mkconfig -o /boot/grub/grub.cfg`
|
||||
|
||||
## install sur MBR
|
||||
|
||||
`grub-install --target=i386-pc /dev/sdX`
|
||||
|
||||
## meme chose depuis grub rescue
|
||||
|
||||
`grub rescue> set prefix=(hd0,1)/boot/grub
|
||||
|
@ -1,8 +1,12 @@
|
||||
# Linux
|
||||
|
||||
![linux](../img/linux.png)
|
||||
|
||||
## retrouvé date t'instalation
|
||||
|
||||
`ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'`
|
||||
|
||||
## enable Wayland support:
|
||||
## enable Wayland support
|
||||
|
||||
- execute `ln -s /dev/null /etc/udev/rules.d/61-gdm.rules` to avoid that gnome test your nvidia Driver
|
||||
|
||||
@ -14,7 +18,8 @@
|
||||
`MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)`
|
||||
|
||||
- create pacman hook:
|
||||
```
|
||||
|
||||
```ini
|
||||
[Trigger]
|
||||
Operation=Install
|
||||
Operation=Upgrade
|
||||
@ -32,12 +37,10 @@ NeedsTargets
|
||||
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P'
|
||||
```
|
||||
|
||||
|
||||
## see if you run on wayland:
|
||||
## see if you run on wayland
|
||||
|
||||
`loginctl show-session $(loginctl G $USERNAME|awk '{print $1}') -p Type`
|
||||
|
||||
|
||||
## boot in emergency target
|
||||
|
||||
1. (Re)boot the machine
|
||||
|
@ -1,31 +1,34 @@
|
||||
#shell
|
||||
# shell
|
||||
|
||||
##tips
|
||||
## tips
|
||||
|
||||
- setter IFS au retour chariot
|
||||
``` IFS=$'\n'```
|
||||
|
||||
```IFS=$'\n'```
|
||||
|
||||
## boucle
|
||||
```
|
||||
|
||||
```bash
|
||||
for var in $variable
|
||||
do
|
||||
commande
|
||||
done
|
||||
```
|
||||
|
||||
|
||||
## if
|
||||
|
||||
```
|
||||
```bash
|
||||
if [ test ]; then
|
||||
echo "C'est vrai"
|
||||
else
|
||||
echo "c'est faux"
|
||||
echo "c'est faux"
|
||||
fi
|
||||
```
|
||||
|
||||
### test
|
||||
|
||||
#### string
|
||||
|
||||
|test|def|
|
||||
|----|---|
|
||||
|$a = j$b|egale|
|
||||
@ -44,8 +47,7 @@ fi
|
||||
|$a -gt $b| >|
|
||||
|$a -ge $b| >= |
|
||||
|
||||
|
||||
#### file
|
||||
#### file
|
||||
|
||||
|test|def|
|
||||
|----|---|
|
||||
@ -59,7 +61,7 @@ fi
|
||||
|
||||
## Supprimer les Dossiers contenant 1 élement
|
||||
|
||||
```
|
||||
```bash
|
||||
IFS=$'\n';for i in $(ls) do ✔ 10022 18:29:32
|
||||
if [ $(ls $i|wc|awk '{print $1}') = 1 ]
|
||||
then
|
||||
|
@ -1,13 +1,11 @@
|
||||
# ZSH
|
||||
|
||||
![zsh](../img/zsh.jpg)
|
||||
|
||||
# functionality
|
||||
## functionality
|
||||
|
||||
|
||||
# shortcut
|
||||
## shortcut
|
||||
|
||||
key|comportment
|
||||
---|-----------
|
||||
|
|
||||
|
||||
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
# python
|
||||
|
||||
## référence
|
||||
https://github.com/gto76/python-cheatsheet/blob/master/README.md
|
||||
|
||||
<https://github.com/gto76/python-cheatsheet/blob/master/README.md>
|
||||
|
||||
Afficher les warning:```python -Wd```
|
||||
Mode développement :`-X dev`
|
||||
@ -10,6 +12,7 @@ Mode développement :`-X dev`
|
||||
</details>`
|
||||
|
||||
## Virtual env
|
||||
|
||||
- create virtual env: `python3 -m venv /path`
|
||||
- enter in virtual env: `source env/bin/activate`
|
||||
- leave venv: `deactivate`
|
||||
@ -17,8 +20,12 @@ Mode développement :`-X dev`
|
||||
- install package list in file: `pip install -r requirement.txt`
|
||||
|
||||
## tips
|
||||
|
||||
- pprint permet d afficher vos structure de données
|
||||
- la fonction dir() permet de lister les attribut d un
|
||||
- la fonction dir() permet de lister les attribut d un
|
||||
|
||||
## unitest
|
||||
### lancer une suite de tests
|
||||
|
||||
### lancer une suite de tests
|
||||
|
||||
```python -m unittest tests.suite```
|
||||
|
Loading…
Reference in New Issue
Block a user