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
Find – Tar – lista plików nowszych od
Wyszukanie plików nowszych niż 21 dni w katalogu projekty/
# find projekty/ -type f -mtime -21 > pliki_find_pl_20201013.txt
Utworzenie archiwum skompresowanego znalezionych plików
# tar -zcvf projekty_PL_20201013.tgz --files-from=pliki_find_pl_20201013.txt
Odtworzenie archiwum – wgrywa pliki z archiwum do podkatalogu ./projekty/
# cd /katalog/projektu/webroot # ls projekty/ # tar -zxvf projekty_PL_20201013.tgz
Clone | ssh-keygen | ssh-add | tmux
Lokalny katalog projektu
# git clone project/ clone-of-project -- kopiuje śledzone pliki z projektu project/ w nowym katalogu clone-of...
Operacje na projekcie
Pierwsze operacje na nowym projekcie
# git status # git add nazwa_pliku # git add . // dodaje wszystko w katalogu # git add -A // dodaje wszystko # git commit -m "komentarz" # git commit -a -m "komentarz" // zatwierdza wszystko # git log
Git – wstępna konfiguracja
Linux:
# git config --system core.editor nano # git config --global user.name "myname" # git config --global user.email "myname@o2.pl"
Git – ssh
Kolejne kroki
- Instalacjja git – Windows – pobrać installer, Linux apt install git
- Repozytoria: github, gitlab, bitbucket
- W repozytorium – konfiguracja dostępu ssh na poziomie konta
- wygenerowanie kluczy ssh w systemie lokalnym (linux: ssh-gen, windows putty gen)
- wgranie kluczy publicznych w repozytorium
Generowanie kluczy w Linux:
# ssh-keygen -t rsa -b 4096 -f ./my_proj_key -C "Nazwa klucza"
- nie podawać hasła
# ls -l my_proj_key // klucz prywatny my_proj_key.pub // klucz publiczny
Ubuntu on Windows
Windows Store
Ubuntu – download – Install
PowerShell as Administrator
# Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Restart? Y
# ssh-keygen -t rsa -b 4096 -f ./klucz_dell -C "JO DELL"
WordPress – zmiana hasła
Ręczna baza danych w przypadku zgubienia hasła administratora
DNS rekord PTR
Ustawienie rekordu odwrotnego domeny PTR w przypadku problemów z pocztą dla: tea-tec.domena.pl dla IP 81.177.4.24. Rekord wprowadza dostawca adresu IP.
Zapytanie dig w formie PTR
# dig 24.4.177.81.in-addr.arpa PTR
;; ANSWER SECTION: 24.4.177.81.in-addr.arpa. 86400 IN PTR tea-tec.domena.pl. ;; AUTHORITY SECTION: 4.177.81.in-addr.arpa. 86400 IN NS dns3.exatel.pl.