Instalacja modułu
Autor: jornathan
Curl
Odpytanie o nagłówki (-I headers only)
# curl -I https://i.imgur.com/z4d4kWk.jpg HTTP/1.1 200 OK ... Accept-Ranges: bytes Content-Length: 146515
https://curl.se/docs/manual.html – przykłady
https://curl.se/docs/manpage.html – manual
Brave – ustawienia
Nagrody
brave://rewards
Chrome – ustawienia
HSTS
chrome://net-internals/#hsts
Node – Flash
Komunikaty przenoszone między wywołaniami przez req.session.flash – dostępne w widokach poprzez res.local.flash
Node – sessions
Obsługa sesji
E-mail regex JS
const VALID_EMAIL_REGEX = new RegExp('^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$')
if( VALID_EMAIL_REGEX.test(email) ) { ... }
Node – cookie
Hasła robocze – .credentials.development.js
exports.credentials = { cookieSecret : "9to mmóje hasło developerskie" }
Handlebars – section, partials
Sekcja pozwala wstrzykiwać kod do layoutu: arkusze CSS w <head> lub skrypty JS przed </body>. Nie jest wbudowana w silnik handlebars – wprowadzamy ją jako helper w konfiguracji engine.
CSV – CsvView Plugin – 3.x – przełączanie klasy
Zamiast tworzyć odrębną metodę obsługi eksportu można przełączać kontekst za pomocą rozszerzenia .csv
Czytaj dalej CSV – CsvView Plugin – 3.x – przełączanie klasy
HTTP – Authentication
Rodzaje: Basic, Digest, Bearer (OAuth 2.0), HOBA (HTTP Origin-Bound Authentication), Mutual, AWS4-HMAC-SHA256
Handlebars – config, składnia
Inicjalizacja silnika szablonów
Node – formularze, api json
Obsługa req.body
Node – req, res, app
Przydatne metody
Usuwa domyślny nagłówek http o serwerze
app.disable('x-powered-by')
Apache2 – http header – Server
Usunięcie z nagłówków HTTP nazwy serwera Apache 2
/etc/apache2/apache2.conf
ServerSignature Off ServerTokens Prod
Oczyszczanie URL
Usuwanie slash’y, query string, wszystkie małe litery
const path = req.url.replace(/\/?(?:\?.*)?$/, '').toLowerCase()
Apache2 – cache’owanie
SRI – subresource integrity
integrity – atrybut kontrolek script i link – skrót zawartości pliki (sha256, sha384, sha512) kodowany w base64
<script src="https://example.com/myscript.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
crossorigin="anonymous"></script>
Wyliczenie skrótu dla zawartości pliku myscript.js
# cat myscript.js | openssl dgst -sha384 -binary | openssl base64 -A oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC
Polecenia sieciowe
# nmcli d # nmcli device show # nmcli c # nmcli connection show
# ip a # ip route show
# routel - tablica routingu
Prism
Instalacja skryptu
Uruchomienie na lokalnej maszynie
# cd prysm/ # ./prysm.sh beacon-chain --http-web3provider=/home/john/snap/geth/477/.ethereum/geth.ipc gpg: klucz 72E33E4DF1A5036E: klucz publiczny ,,Preston Van Loon <preston@prysmaticlabs.com>'' wczytano do zbioru gpg: Ogółem przetworzonych kluczy: 1 gpg: dołączono do zbioru: 1 beacon-chain-v1.0.3-linux-amd64: OK gpg: Podpisano w wto, 1 gru 2020, 15:43:14 CET gpg: przy użyciu klucza RSA 0AE0051D647BA3C1A917AF4072E33E4DF1A5036E gpg: Poprawny podpis złożony przez ,,Preston Van Loon <preston@prysmaticlabs.com>'' [nieznany] gpg: OSTRZEŻENIE: Ten klucz nie jest poświadczony zaufanym podpisem! gpg: Nie ma pewności co do tożsamości osoby która złożyła podpis. Odcisk klucza głównego: 0AE0 051D 647B A3C1 A917 AF40 72E3 3E4D F1A5 036E Verified /home/john/prysm/dist/beacon-chain-v1.0.3-linux-amd64 has been signed by Prysmatic Labs. Starting Prysm beacon-chain --http-web3provider=/home/john/snap/geth/477/.ethereum/geth.ipc
Geth – przydatne opcje
Domyślny katalog danych
# datadir=/home/user/.ethereum
# datadir=/home/user/snap/geth/477/.ethereum - dla snap'a
Geth instalacja
- Instalacja Go https://golang.org/doc/install
// pobrać pakiet # tar -C /usr/local -xzf go1.15.5.linux-amd64.tar.gz # export PATH=$PATH:/usr/local/go/bin # export GOPATH=/usr/local/go/bin # source /etc/profile
# go version
go version go1.15.5 linux/amd64
Go-ethereum
// jasko zwykły user - utworzy podkatalog go w katalogu roboczym
# go get -d github.com/ethereum/go-ethereum
# export GO111MODULE=on
# source /etc/profile
# go install github.com/ethereum/go-ethereum/cmd/geth
Zdalne Repo
Bitbucket: git@bitbucket.org:john/repo_name.git
# git remote add origin git@bitbucket.org:john/repo_name.git
React – instalacja
Co potrzeba:
Uprawnienia dostępu do kontrolera
Jeśli brak uprawnień wysyła do strony początkowej
user filter – lastEvents
Dołącza podzbiór zdarzeń na kliencie i znajduje ostatnie zdarzenie, zaraportowane, starsze niż obecna data (przyszłe zdarzenia nie miały miejsca to tylko plany). Jeśli ostatnie zdarzenie jest starsze niż 3 miesiące ustawia alarm.
public function findLastEvent($query, $options) { $query = $query->contain([ 'Events' => function($q){ return $q->select([ 'id', 'company_id', 'last_visit' => 'MAX(start_date)', 'alarm' => $q->newExpr()->addCase( [ $q->newExpr()->lt('MAX(start_date)', $q->func()->dateAdd('CURRENT_DATE', -3, 'MONTH')) ], [1,0], ['integer', 'integer'] ) // addCase ]) // select ->where(['report <>' => '']) // Zaraportowane ->where(['start_date <=' => new \DateTime('now')]) ->order(['start_date' => 'DESC']) ->group(['Events.id']); }]); return $query; }
Merge – łączenie gałęzi
Wybieramy gałąź bazową (zwykle master) do której chcemy włączyć inną
# git checkout master # git merge patch01 # git log --graph --decorate # git push origin master // wysłanie do repo zdalnego
Branch, Checkout
Nowa gałąź obejmuje całe repozytorium rodzica
# git branch patch01 # git checkout patch01 # git branch -b patch01 // tworzy i od razu wybiera (przełącza się) gałąź # git branch patch02 patch01 // tworzy branch patch02 na podstawie patch01 (zamiast master)
git log
# git log # git log -- nazwa_pliku.txt # git log --oneline // poszcz. zatw. w jednej linii # git log --oneline nazwa_pliku.txt # git log -p // szczegółowe info # git log -p -- nazwa_pliku.txt # git log --graph --decorate
Praca z GitHub
Po dodaniu zdalnego repozytorium (zakłada katalog: MyProjectName)
# git clone git@github.com:my_username/MyProjectName.git
możemy aktualizować zmiany i wysyłać (push) do zdalnego repo GITHUB bez konfiguracji
# git push origin
Po zmianach wykonanych w zdalnym repo (GitHub) aktualizujemy lokalne repo
# git pull