Skip to content

Instantly share code, notes, and snippets.

View sherman's full-sized avatar
🏠
Working from home

Denis M. Gabaydulin sherman

🏠
Working from home
View GitHub Profile
@sherman
sherman / support.md
Created November 22, 2019 09:33 — forked from gnuman23/support.md

Техническая поддержка

Поддержка веб-проектов

Классика тех.поддержки – разбиение ее на три линии. Обычно их называют L1, L2 и L3.

Первая линия – специалисты начального уровня, обычно какие-нибудь студенты, которые работают либо сменно, либо стандартные 5/2, в зависимости от необходимости обеспечить суппорт круглосуточно.

Их задача – принять заявку (через почту, систему постановки задач, по телефону или через колл-центр – тоже все зависит от ваших задач), понять ее важность и отношение к тому или иному проекту, и передать ее дальше по цепочке на вторую линию, если проблема действительно имеется. L1 может выполнять какие-то совсем несложные действия, например, делать сброс пароля для пользователя, если он его забыл и хочет восстановить.

Если L1 не может разобраться с заявкой, то она переводит задачу на вторую линию, там сидят уже более подкованные ежи, которые знают систему, имеют кое-какие доступы, в некоторых случаях даже доступы к базам. Тут проводится более детальный разбор полетов, уточняются причин

# -*- mode: ruby -*-
# vi: set ft=ruby :
#
Vagrant.configure(2) do |config|
# Compilation and development box
config.vm.define "linux", autostart: true, primary: true do |vmCfg|
vmCfg.vm.box = "mokote/debian9"
vmCfg.vm.hostname = "hyper-linux"
vmCfg = configureProviders vmCfg,
@sherman
sherman / kafka-cheat-sheet.md
Created February 11, 2019 19:38 — forked from ursuad/kafka-cheat-sheet.md
Quick command reference for Apache Kafka

Kafka Topics

List existing topics

bin/kafka-topics.sh --zookeeper localhost:2181 --list

Describe a topic

bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic mytopic

Purge a topic

bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic mytopic --config retention.ms=1000

... wait a minute ...

Call:
glm(formula = PredictValue ~ HI + BR + Vol + mday + wday, family = binomial(link = "logit"),
data = train, na.action = "na.exclude")
Deviance Residuals:
Min 1Q Median 3Q Max
-1.7719 -1.1056 -0.7567 1.1626 1.7096
Coefficients:
Estimate Std. Error z value Pr(>|z|)
M - median
A[] - less median
B[] - more median
Строим пару {a, b} из первых элементов
Затем берем вторые. И если а2 больше a1 меняем, аналогично с b. Если нет, проверяем следующую пару и тд
Пример
B = 4 5 3 3
A = 2 2 2 1
╔══════════╦═════════╦═════════════╦════════════════════════════════════════════════════════════════════════════════╗
║ Partition║ Rows ║ File length ║ UserId Column Stat ║
╠══════════╬═════════╬═════════════╬════════════════════════════════════════════════════════════════════════════════╣
║ sorted ║ 240980 ║ 819841 ║ count: 111684 hasNull: true min: -9223372036854775808 max: 621362039352199835 ║
║ regular ║ 284699 ║ 2447839 ║ count: 280309 hasNull: true min: -9223372036854775808 max: 676550545472750853 ║
╚══════════╩═════════╩═════════════╩════════════════════════════════════════════════════════════════════════════════╝
package metrics.reporter;
import com.codahale.metrics.*;
import config.database.config.ConfigDatabaseConfiguration;
import influxdb.client.configuration.InfluxDbClientPropertiesConfiguration;
import org.influxdb.InfluxDB;
import org.influxdb.dto.Point;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Denis Gabaydulin
* @since 12/08/2016
*/
public class InfluxDbReporter extends ScheduledReporter {
private static final Logger log = LoggerFactory.getLogger(InfluxDbReporter.class);
private static final String REPORTER_NAME = "influxdb_reporter";
private final InfluxDB influxDB;
# JMH 1.12 (released 123 days ago, please consider updating!)
# VM version: JDK 1.8.0_101, VM 25.101-b13
# VM invoker: /usr/lib/jvm/java-8-oracle/jre/bin/java
# VM options: <none>
# Warmup: 3 iterations, 10 s each
# Measurement: 5 iterations, 10 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: io.blobkeeper.benchmark.micro.QueueBenchmark.offer
After request [method=GET;uri=/api/feed/posts?ids=413186409059322668&ids=413185660694825764&ids=4131851
49518220066&ids=413175824246639373&ids=413175498080783115&ids=413153978902121206&ids=412555460067985988&ids=412555422679960130&ids=412555350168832576&ids=412555313686776382&ids=412555247416773180&ids=412555215741389368&ids=41255518687618
9238&ids=412555141141498420&ids=412555095121594930&ids=412555055535753776&ids=412555023122172462&ids=412554989852953132&ids=412554968076126762&ids=412476329062041662&ids=412472486542706748&ids=412472137165572154&ids=412471288859199544&id
s=396557214988372178&ids=396555308090001606&ids=396554505501542596&ids=396549650720491712&ids=390696842490284555&ids=384981709403195533&ids=384896478016965398&ids=478481760565332893&ids=476397892060318684&ids=474243458089880206&ids=47353
8421852211300&ids=473538320501049442&ids=428446004824509340&ids=427702303521245648&ids=427702179764111822&ids=427698279011060171&ids=427697806757595593&ids=427690331190856135&ids=427689599662295493&ids=427