Skip to content

Instantly share code, notes, and snippets.

View ptflp's full-sized avatar
🤟
Quality over quantity?

Petr Filippov ptflp

🤟
Quality over quantity?
View GitHub Profile
@ptflp
ptflp / gotty-nginx.conf
Created January 15, 2019 02:11
Gotty nginx proxy_pass configuration conf file
location /tty/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
rewrite ^/tty/?$ / break;
rewrite ^/tty/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:8383;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
@ptflp
ptflp / Dockerfile
Last active December 7, 2023 12:20
docker php install imagemagick alpine 3.8
FROM php:7.0-fpm-alpine
RUN set -ex && \
apk add --no-cache --virtual .build-deps \
libxml2-dev \
shadow \
autoconf \
g++ \
make \
&& apk add --no-cache imagemagick-dev imagemagick libjpeg-turbo libgomp freetype-dev \
@ptflp
ptflp / mp3rename.sh
Created October 3, 2018 06:49
Iteratively rename downloaded mp3 files from Fiddler 2 with regex
#!/bin/bash
for file in *.mp3*; do
if [ -e "$file" ]; then
newname=`echo "$file" | sed 's/#.*//'`
mv "$file" "$newname"
fi
done
@ptflp
ptflp / x11-docker.sh
Last active September 28, 2018 04:11
Docker x11 on windows
set-variable -name DISPLAY -value %IPADDRESS%:0.0
docker run -it --shm-size=2g --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix %DOCKER_IMAGE%
@ptflp
ptflp / portainer.sh
Last active September 27, 2018 07:57
Portainer for hosting
#!/bin/bash
VOLUME=portainer
PORT='-p 9000:9000'
docker volume create $VOLUME
docker run -d -e VIRTUAL_HOST=$1 $PORT --name portainer -v /var/run/docker.sock:/var/run/docker.sock -v $VOLUME:/data portainer/portainer
@ptflp
ptflp / swap.sh
Created September 27, 2018 05:09
Enable swap on Linux
#!/bin/bash
fallocate -l 1G /swapfile
ls -lh /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
swapon -s
echo '/swapfile none swap sw 0 0' >> /etc/fstab
@ptflp
ptflp / transliterate.js
Created August 6, 2018 04:04
Transliterate cyrilic to lantin for site aliases
var a = {"Ё":"Yo","Й":"I","Ц":"TS","У":"U","К":"K","Е":"E","Н":"N","Г":"G","Ш":"SH","Щ":"SCH","З":"Z","Х":"H","Ъ":"'","ё":"yo","й":"i","ц":"ts","у":"u","к":"k","е":"e","н":"n","г":"g","ш":"sh","щ":"sch","з":"z","х":"h","ъ":"'","Ф":"F","Ы":"I","В":"V","А":"a","П":"P","Р":"R","О":"O","Л":"L","Д":"D","Ж":"ZH","Э":"E","ф":"f","ы":"i","в":"v","а":"a","п":"p","р":"r","о":"o","л":"l","д":"d","ж":"zh","э":"e","Я":"Ya","Ч":"CH","С":"S","М":"M","И":"I","Т":"T","Ь":"'","Б":"B","Ю":"YU","я":"ya","ч":"ch","с":"s","м":"m","и":"i","т":"t","ь":"'","б":"b","ю":"yu"," ":"-"};
function transliterate(word){
return word.split('').map(function (char) {
return a[char] || char;
}).join("");
}
@ptflp
ptflp / test_app.md
Last active August 1, 2018 10:03 — forked from deuterium7/test_app.md
Тестовое задание, Laravel

Тестовое задание по Laravel

01.08.2018:

Читаю "Разобраться с основами git и git-flow"

  • зачем нужны ветки ? (для возможности работы с отдельным частями проекта, для разделения девелоп и продакшн)
  • какие бывают ветки ? (master: по-умолчанию, develop и другие вспомогательные ветки. В git flow 5 вспомогательных веток.)
  • зачем нужен .gitignore ? (для исключения из git'а файлов и папок, чтобы исключить файлы не относящиеся к данной части проекта. Если проект состоит из нескольких частей. Допустим backend, frontend)
  • какие проблемы за нас решает git-flow и почему стоит его использовать ? (git-flow автоматизирует процесс управления версиями и приводит систему к общепринятой модели управления версиями)
  • что будет если не писать сообщения к комитам ? (тяжело будет разобраться в каком состоянии находится проект и какие правки были введены)

Читаю о тестировании

  • unit testing (необходимо для тестирования отдельных модулей системы, как-правило это какие-то классы или объединенные участки кода имеющие
@ptflp
ptflp / tokens.md
Created July 30, 2018 14:58 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Preconditions:

В данной заметке рассматривается работа JWT с симметичным алгоритмом шифрования (HS256/HS384/HS512)

Основы:

Аутентификация(authentication, от греч. αὐθεντικός [authentikos] – реальный, подлинный; от αὐθέντης [authentes] – автор) - это процесс проверки учётных данных пользователя (логин/пароль). Проверка подлинности пользователя путём сравнения введённого им логина/пароля с логином/паролем, сохранённым в базе данных пользователей.

Авторизация(authorization — разрешение, уполномочивание) - это проверка прав пользователя на доступ к определенным ресурсам.

@ptflp
ptflp / autoloader.php
Created July 29, 2018 18:49
php class autoloader
<?php
namespace Autoloader
{
class Autoloader
{
const debug = 1;
public function __construct(){}
public static function autoload($file)
{