Skip to content

Instantly share code, notes, and snippets.

View strizhechenko's full-sized avatar
💭
I may be slow to respond.

Oleg Strizhechenko strizhechenko

💭
I may be slow to respond.
View GitHub Profile
@strizhechenko
strizhechenko / альбомы.md
Last active July 14, 2023 06:45
Пидорвэйв

Buzzword Blaster

Собеседование

  1. Зарплатные ожидания
  2. Whiteboarding
  3. Quicksort
  4. Разговор с HR
  5. Серая ЗП
  6. Большая премия
@strizhechenko
strizhechenko / auto-estimate.py
Created January 21, 2018 18:19
Sets estimates for milestones sorted by semver (1 day from weekend for 1 issue)
# coding=utf-8
import os
from distutils.version import StrictVersion
from github import Github
import datetime
def get_milestones():
@strizhechenko
strizhechenko / subparsers.py
Created December 31, 2017 11:29
argparse + subparsers пример на базе server-info.
def parse_args(self):
""" Разбор аргументов для выбора следующей утилиты """
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(help='commands. Add --help to them for details')
parser_collect = subparsers.add_parser('collect', help="Collect server's data")
parser_collect.add_argument('--output', type=str, help="Store the data in directory")
parser_collect.add_argument('--gzip', action='store_true', help="Compress the data", default=False)
parser_show = subparsers.add_parser('show', help="Shows server's data in YAML")
parser_show.add_argument('--input', type=str, help="Specify a data directory or a tarball to represent")
parser_rate = subparsers.add_parser('rate', help="Rates server's data into a performance index")
@strizhechenko
strizhechenko / PPaaS.md
Last active May 31, 2019 15:11
Описание концепта чатика.

Pet project as a service

У людей бывают:

  • идеи
  • время
  • желание

К сожалению не всегда все три бывают у одних и тех же людей. Бывает так, что есть люди, у которых есть идеи и желание их делать, но нет времени. Бывает так, что есть люди, у которых есть время и желание, но нет идей. Ни то ни другое не есть плохо, но возможно первые могут помочь своими идеями вторым, а вторые – первым.

Для этого и существует этот чатик.

@strizhechenko
strizhechenko / curload.py
Created September 8, 2017 09:02
Send a lot of http(s) requests in testing purpose
import sys
import argparse
from subprocess import Popen, PIPE
import multiprocessing
def curl(_):
p = Popen(['curl', '-vkL', args.url], stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()
print "+"
if args.quiet and p.returncode != 0:
@strizhechenko
strizhechenko / dpkt-client-hello-parsing.py
Last active June 21, 2023 02:38
#dpkt #python #client_hello #ssl #tls #tcp
# coding=utf-8
import dpkt
import struct
TLSExtensionTypes = {
0: 'server_name',
1: 'max_fragment_length',
2: 'client_certificate_url',
3: 'trusted_ca_keys',
@strizhechenko
strizhechenko / basetop.md
Created July 22, 2017 11:20
Entry points usage in netutils-linux-monitoring

Из entry-points насколько я понял можно вызывать только @staticmethod или функцию которая живёт сама по себе, при этом не имеющую аргументов.

Проблема: "конструктору" нужно каким-либо образом передать ссылку на самого себя, чтобы он смог вызвать свой оригинальный "чистый" конструктор.

Это одно из:

  • избавление от статичности метода и передача с помощью self.
  • сохранение статичности метода и явная передача self в месте вызова.

оба варианта, как я понимаю приводят к невозможности использования такого метода в качестве entry_point.

@strizhechenko
strizhechenko / mirror.sh
Created June 20, 2017 12:31
L3 mirror with delay of HTTP GET requests
#!/bin/bash
INET_IF="${1:-eth3}"
IFSPEED=1000mbps
DELAY="${2:-1000ms}"
CLASS=11
ROOT=1
FROM_DEVICE="${3:-eth1}"
TO_DEVICE="${4:-eth2}"
FROM_MODE="${5:-ingress}"
@strizhechenko
strizhechenko / twitter_girls_at_vk_events.py
Last active May 7, 2017 17:42
Список твиттеров тёлочек которые являются участниками какого-нибудь события в VK.
#!/usr/bin/python
import sys
import requests
__author__ = 'Oleg Strizhechenko <oleg.strizhechenko@gmail.com>'
if len(sys.argv) != 3:
print "Usage: " + sys.argv[0] + " <id> <count>"
exit(1)
#!/usr/bin/env bash
pktcount="${1:-1000}"
echo "# gathering some data"
time tshark -n -c $pktcount -i any -f "tcp dst port 443" -w /tmp/$pktcount.pcap
echo "# pcap -> grepable txt"
time tshark -r /tmp/$pktcount.pcap -T fields -e tcp.hdr_len -e ssl.handshake.extensions_server_name > /tmp/$pktcount.txt
echo "# stats"
egrep [a-z]+ /tmp/$pktcount.txt | sort -nk1 | awk '{print $1}' | uniq -c