Skip to content

Instantly share code, notes, and snippets.

View 5kr1p7's full-sized avatar
๐Ÿ˜Ž

Alexander Shangin 5kr1p7

๐Ÿ˜Ž
View GitHub Profile

ะ”ะฐ, ะฒ ัะบะพัะธัั‚ะตะผะต PHP, ะฒะบะปัŽั‡ะฐั ั„ั€ะตะนะผะฒะพั€ะบะธ Laravel ะธ Yii, ััƒั‰ะตัั‚ะฒัƒัŽั‚ ะธะฝัั‚ั€ัƒะผะตะฝั‚ั‹, ะฐะฝะฐะปะพะณะธั‡ะฝั‹ะต Prettier ะธ ESLint, ะบะพั‚ะพั€ั‹ะต ะฟะพะผะพะณะฐัŽั‚ ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐั‚ัŒ ะบะพะด, ะฟั€ะพะฒะตั€ัั‚ัŒ ะตะณะพ ะฝะฐ ะพัˆะธะฑะบะธ ะธ ะฟะพะดะดะตั€ะถะธะฒะฐั‚ัŒ ะตะดะธะฝั‹ะน ัั‚ะธะปัŒ. ะžัะฝะพะฒะฝั‹ะต ะธะฝัั‚ั€ัƒะผะตะฝั‚ั‹ ะดะปั PHP โ€” ัั‚ะพ PHP CS Fixer (ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธะต) ะธ PHP_CodeSniffer (ะปะธะฝั‚ะธะฝะณ). ะ”ะปั ะฑะพะปะตะต ัะพะฒั€ะตะผะตะฝะฝะพะน ะธ ะผะพั‰ะฝะพะน ะฟั€ะพะฒะตั€ะบะธ ัั‚ะธะปั ะธ ะพัˆะธะฑะพะบ ั‚ะฐะบะถะต ะธัะฟะพะปัŒะทัƒะตั‚ัั Psalm ะธะปะธ PHPStan (ัั‚ะฐั‚ะธั‡ะตัะบะธะน ะฐะฝะฐะปะธะท).

ะะธะถะต ะฟั€ะธะฒะตะดะตะฝะฐ ะฟะพะดั€ะพะฑะฝะฐั ะธะฝัั‚ั€ัƒะบั†ะธั ะฟะพ ะฝะฐัั‚ั€ะพะนะบะต ัั‚ะธั… ะธะฝัั‚ั€ัƒะผะตะฝั‚ะพะฒ ะฒ PHP-ะฟั€ะพะตะบั‚ะต (Laravel, Yii) ะธ ะธั… ะธะฝั‚ะตะณั€ะฐั†ะธะธ ั VS Code, ะฒะบะปัŽั‡ะฐั ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะพะต ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธะต ะธ ะปะธะฝั‚ะธะฝะณ ะฟั€ะธ ัะพั…ั€ะฐะฝะตะฝะธะธ.


1. ะ˜ะฝัั‚ั€ัƒะผะตะฝั‚ั‹ ะดะปั PHP, ะฐะฝะฐะปะพะณะธั‡ะฝั‹ะต Prettier ะธ ESLint

ะคะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธะต (ะฐะฝะฐะปะพะณ Prettier):

  • PHP CS Fixer: ะญั‚ะพ ะฟะพะฟัƒะปัั€ะฝั‹ะน ะธะฝัั‚ั€ัƒะผะตะฝั‚ ะดะปั ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะพะณะพ ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธั PHP-ะบะพะดะฐ ะฒ ัะพะพั‚ะฒะตั‚ัั‚ะฒะธะธ ั ะทะฐะดะฐะฝะฝั‹ะผะธ ัั‚ะฐะฝะดะฐั€ั‚ะฐะผะธ ะบะพะดะธั€ะพะฒะฐะฝะธั (ะฝะฐะฟั€ะธะผะตั€, PSR-12, Laravel, Symfony ะธ ั‚.ะด.). ะžะฝ ะธัะฟั€ะฐะฒะปัะตั‚ ะพั‚ัั‚ัƒะฟั‹, ะฟั€ะพะฑะตะปั‹, ะฟะพั€ัะดะพะบ ะธะผะฟะพั€ั‚ะพะฒ ะธ ะผะฝะพะณะพะต ะดั€ัƒะณะพะต.

ะะฐัั‚ั€ะพะนะบะฐ VS Code ะดะปั ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะพะณะพ ะปะธะฝั‚ะธะฝะณะฐ, ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธั ะธ ะธะฝั‚ะตะณั€ะฐั†ะธะธ ั ะธะฝัั‚ั€ัƒะผะตะฝั‚ะฐะผะธ, ั‚ะฐะบะธะผะธ ะบะฐะบ ESLint ะธ Prettier, ะฟะพะทะฒะพะปัะตั‚ ะทะฝะฐั‡ะธั‚ะตะปัŒะฝะพ ัƒะปัƒั‡ัˆะธั‚ัŒ ะฟั€ะพั†ะตัั ั€ะฐะทั€ะฐะฑะพั‚ะบะธ, ะผะธะฝะธะผะธะทะธั€ะพะฒะฐั‚ัŒ ะพัˆะธะฑะบะธ ะธ ะฟะพะดะดะตั€ะถะธะฒะฐั‚ัŒ ั‡ะธัั‚ะพั‚ัƒ ะบะพะดะฐ. ะะธะถะต ะฟั€ะธะฒะตะดะตะฝะฐ ะฟะพะดั€ะพะฑะฝะฐั ะธะฝัั‚ั€ัƒะบั†ะธั ะฟะพ ะฝะฐัั‚ั€ะพะนะบะต VS Code ะดะปั ั€ะฐะฑะพั‚ั‹ ั JavaScript, Vue.js (ะธะปะธ ะดั€ัƒะณะธะผะธ ั„ั€ะตะนะผะฒะพั€ะบะฐะผะธ), ะฐ ั‚ะฐะบะถะต ะดะปั ะธะฝั‚ะตะณั€ะฐั†ะธะธ ั Git ั…ัƒะบะฐะผะธ, ั‡ั‚ะพะฑั‹ ะผะธะฝะธะผะธะทะธั€ะพะฒะฐั‚ัŒ ะพั‚ะบะปะพะฝะตะฝะธะต ะบะพะผะผะธั‚ะพะฒ ะธะท-ะทะฐ ะพัˆะธะฑะพะบ ะปะธะฝั‚ะธะฝะณะฐ.


1. ะฃัั‚ะฐะฝะพะฒะธั‚ะต ะฝะตะพะฑั…ะพะดะธะผั‹ะต ั€ะฐััˆะธั€ะตะฝะธั

ะ”ะปั ะธะฝั‚ะตะณั€ะฐั†ะธะธ ะปะธะฝั‚ะธะฝะณะฐ, ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธั ะธ ะฟะพะดะดะตั€ะถะบะธ Vue.js (ะธะปะธ ะดั€ัƒะณะธั… ั‚ะตั…ะฝะพะปะพะณะธะน) ัƒัั‚ะฐะฝะพะฒะธั‚ะต ัะปะตะดัƒัŽั‰ะธะต ั€ะฐััˆะธั€ะตะฝะธั ะฒ VS Code:

  1. ESLint
    • ะ ะฐััˆะธั€ะตะฝะธะต: dbaeumer.vscode-eslint
  • ะะฐะทะฝะฐั‡ะตะฝะธะต: ะ˜ะฝั‚ะตะณั€ะฐั†ะธั ESLint ะดะปั ะฟั€ะพะฒะตั€ะบะธ ะบะพะดะฐ ะฝะฐ ะพัˆะธะฑะบะธ ะธ ะพั‚ะพะฑั€ะฐะถะตะฝะธั ะธั… ะฒ ั€ะตะดะฐะบั‚ะพั€ะต.

VS Code โ€” Go ะปะธะฝั‚ะธะฝะณ ะธ ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธะต

ะ’ ัะบะพัะธัั‚ะตะผะต GoLang ััƒั‰ะตัั‚ะฒัƒัŽั‚ ะธะฝัั‚ั€ัƒะผะตะฝั‚ั‹, ะฐะฝะฐะปะพะณะธั‡ะฝั‹ะต Prettier ะธ ESLint, ะบะพั‚ะพั€ั‹ะต ะฟะพะผะพะณะฐัŽั‚ ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐั‚ัŒ ะบะพะด, ะฟั€ะพะฒะตั€ัั‚ัŒ ะตะณะพ ะฝะฐ ะพัˆะธะฑะบะธ ะธ ะฟะพะดะดะตั€ะถะธะฒะฐั‚ัŒ ะตะดะธะฝั‹ะน ัั‚ะธะปัŒ. ะžัะฝะพะฒะฝั‹ะต ะธะฝัั‚ั€ัƒะผะตะฝั‚ั‹ ะดะปั Go โ€” ัั‚ะพ gofmt (ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธะต) ะธ golint/staticcheck (ะปะธะฝั‚ะธะฝะณ). ะ”ะปั ะฑะพะปะตะต ัะพะฒั€ะตะผะตะฝะฝะพะน ะธ ะผะพั‰ะฝะพะน ะฟั€ะพะฒะตั€ะบะธ ัั‚ะธะปั ะธ ะพัˆะธะฑะพะบ ั‡ะฐัั‚ะพ ะธัะฟะพะปัŒะทัƒะตั‚ัั golangci-lint, ะบะพั‚ะพั€ั‹ะน ะพะฑัŠะตะดะธะฝัะตั‚ ะผะฝะพะถะตัั‚ะฒะพ ะปะธะฝั‚ะตั€ะพะฒ ะฒ ะพะดะฝะพะผ ะธะฝัั‚ั€ัƒะผะตะฝั‚ะต.

ะะธะถะต ะฟั€ะธะฒะตะดะตะฝะฐ ะฟะพะดั€ะพะฑะฝะฐั ะธะฝัั‚ั€ัƒะบั†ะธั ะฟะพ ะฝะฐัั‚ั€ะพะนะบะต ัั‚ะธั… ะธะฝัั‚ั€ัƒะผะตะฝั‚ะพะฒ ะฒ ะฟั€ะพะตะบั‚ะต Go ะธ ะธั… ะธะฝั‚ะตะณั€ะฐั†ะธะธ ั VS Code, ะฒะบะปัŽั‡ะฐั ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะพะต ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธะต ะธ ะปะธะฝั‚ะธะฝะณ ะฟั€ะธ ัะพั…ั€ะฐะฝะตะฝะธะธ.


1. ะ˜ะฝัั‚ั€ัƒะผะตะฝั‚ั‹ ะดะปั GoLang, ะฐะฝะฐะปะพะณะธั‡ะฝั‹ะต Prettier ะธ ESLint

@5kr1p7
5kr1p7 / velero.md
Created June 6, 2024 07:09
Install and set up Velero on microk8s

Velero

Install

wget https://github.com/vmware-tanzu/velero/releases/download/v1.13.2/velero-v1.13.2-linux-amd64.tar.gz
tar -xvzf velero-v1.13.2-linux-amd64.tar.gz
cp velero-v1.13.2-linux-amd64/velero /usr/local/bin/velero
@5kr1p7
5kr1p7 / decode_jwt.md
Last active February 18, 2025 14:04
Decode JWT to JSON

Decode JWT tokens with Bash

Need jq >=1.6

#!/bin/bash

function jwt_decode(){
    jq -R 'split(".") | .[1] | @base64d | fromjson' <<< "$1"
}
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ical.marudot.com//iCal Event Maker
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Moscow
LAST-MODIFIED:20231227T071429Z
TZURL:https://www.tzurl.org/zoneinfo-outlook/Europe/Moscow
X-LIC-LOCATION:Europe/Moscow
BEGIN:STANDARD
@5kr1p7
5kr1p7 / test.ics
Last active December 27, 2023 05:30
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ical.marudot.com//iCal Event Maker
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Moscow
LAST-MODIFIED:20230407T050750Z
TZURL:https://www.tzurl.org/zoneinfo-outlook/Europe/Moscow
X-LIC-LOCATION:Europe/Moscow
BEGIN:STANDARD
@5kr1p7
5kr1p7 / duty.ics
Last active December 27, 2023 06:57
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ical.marudot.com//iCal Event Maker
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Moscow
LAST-MODIFIED:20231227T062348Z
TZURL:https://www.tzurl.org/zoneinfo-outlook/Europe/Moscow
X-LIC-LOCATION:Europe/Moscow
BEGIN:STANDARD
@5kr1p7
5kr1p7 / microk8s-upgrade.md
Last active April 21, 2023 10:26
Upgrade microk8s

Upgrade microk8s

Get snap channels

sudo snap info microk8s

NODE-2

kubectl drain NODE2 --ignore-daemonsets

Fix unable to build kubernetes objects from current release manifest

# kubectl get secret sh.helm.release.v1.my-grafana.v23 -o yaml > helm-config.yaml
# kubectl get secrets sh.helm.release.v1.my-grafana.v23 -o json | jq .data.release | tr -d '"' | base64 -d | base64 -d | gzip -d > helm-config-data-decoded.yaml
# sed -e 's/cert-manager.io\/v1beta1/cert-manager.io\/v1/' helm-config-data-decoded.yaml > helm-config-data-decoded-replaced.yaml
# releaseData=$(cat helm-config-data-decoded.yaml | gzip | base64 | base64 | tr -d "\n")
# sed 's/^\(\s*release\s*:\s*\).*/\1'$releaseData'/' helm-config.yaml > helm-config-final.yaml
# kubectl apply -f helm-config-final.yaml