Skip to content

Instantly share code, notes, and snippets.

View jtprogru's full-sized avatar
🦄
Make a rainbow shit

Mikhail Savin jtprogru

🦄
Make a rainbow shit
View GitHub Profile
{
"basics": {
"name": "Mikhail Savin",
"label": "TechLead SRE / CTO / Practicing teacher",
"picture": "https://github.com/jtprogru.png",
"email": "[email protected]",
"website": "https://jtprog.ru",
"summary": "I have quite rich and versatile experience in the role of Infrastructure Engineer, SRE, Head of IT Division and Operations, CTO. I am a member of DevOpsConf program committee and a practicing teacher of RTU MIREA.",
"location": {
"city": "Moscow",
@jtprogru
jtprogru / Base template.md
Created January 9, 2025 17:15
Базовый шаблон для всех заметок в Obsidian, который правит остальными шаблонами и описывает правила их применения

<%* const title = tp.file.title

// "Meeting (Sync)" Notes if ((title.startsWith("Sync with - ")) || (title.startsWith("Meeting - "))) { return tp.file.include('[[Meeting template]]') }

// "People" Notes else if (title.startsWith("@")) {

@jtprogru
jtprogru / main.go
Created April 26, 2024 19:46
Напиши веб сервер (порт :3333) - счетчик который будет обрабатывать GET (/count) и POST (/count) запросы: GET: возвращает счетчик POST: увеличивает ваш счетчик на значение (с ключом "count") которое вы получаете из формы, но если пришло НЕ число то нужно ответить клиенту: "это не число" со статусом http.StatusBadRequest (400).
package main
// некоторые импорты нужны для проверки
import (
"fmt"
"io"
"log"
"net/http"
"net/url"
"os"
"time"
# `python-base` sets up all our shared environment variables
FROM python:3.8.1-slim as python-base
# python
ENV PYTHONUNBUFFERED=1 \
# prevents python creating .pyc files
PYTHONDONTWRITEBYTECODE=1 \
\
# pip
PIP_NO_CACHE_DIR=off \
@jtprogru
jtprogru / requirements.txt
Last active July 5, 2023 17:47
Public requirements for any Ansible roles
ansible==7.5.0
ansible-core==2.14.5
ansible-lint==6.17.1
black==23.3.0
jmespath==1.0.1
yamllint==1.31.0
gui:
authorColors:
"*": "#11aaff" # use red for all
"Michael Savin": "#00ff00" # use green for me
"jtprogru": "#00ff00" # use green for me
scrollHeight: 2 # how many lines you scroll by
scrollPastBottom: true # enable scrolling past the bottom
sidePanelWidth: 0.33 # number from 0 to 1
mainPanelSplitMode: "flexible" # one of 'horizontal' | 'flexible' | 'vertical'
language: "en" # one of 'auto' | 'en' | 'zh' | 'pl' | 'nl' | 'ja' | 'ko'
@jtprogru
jtprogru / Taskfile.yaml
Last active June 22, 2023 20:35
Simple task file for Golang project
# yaml-language-server: $schema=https://taskfile.dev/schema.json
---
version: "3"
set:
- pipefail
silent: false
tasks:
@jtprogru
jtprogru / vimrc
Created March 22, 2023 12:28
Default .vimrc for any servers
" Disable compatibility with vi which can cause unexpected issues.
set nocompatible
" Enable type file detection. Vim will be able to try to detect the type of file in use.
filetype on
" Enable plugins and load plugin for the detected file type.
filetype plugin on
" Load an indent file for the detected file type.
@jtprogru
jtprogru / main.py
Last active February 15, 2023 17:46
#!/usr/bin/env python3
"""
cat /var/log/nginx/access.log | sed -n '/2022:02:20/,/2022:02:23/p'| awk '{print $1}' | sort | uniq -c | sort -n | less
###
start_datetime = "15/Feb/2023:19:20"
end_datetime = "15/Feb/2022:02:23"
"""
def func_name_read_datetime_start_end():
@jtprogru
jtprogru / Dockerfile
Created December 23, 2022 15:40
Basic Dockerfile for running Ansible
FROM python:3.10-slim AS compile-image
ENV PY_COLORS=1
ENV ANSIBLE_FORCE_COLOR=true
RUN apt-get update
RUN apt-get install -y --no-install-recommends build-essential gcc curl unzip
RUN curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip \
&& unzip awscliv2.zip \
&& ./aws/install --bin-dir /aws-cli-bin/