All streams
Search
Write a publication
Pull to refresh
5
0
Юра Панарин @PYXRU

Software Engineer

Send message

Zabbix покрывает только агентов и external/internal чеки, нет мониторинга приложений, нет инцидентов, уведомлений, мониторинга web приложений

Спасибо за отзыв!
Второй вопрос у нас решен: check в памяти занимает 2-3кб. За первый вопрос спасибо! Но вообще, если агент пропал на неделю, скорее всего это уже внештатная ситуация. Однако над обработкой подобных ситуаций подумаем.


Любое решение вначале не проверенное

Вы смешиваите все в кучу. Каждая система должна приносить что то новое. Если судить как Вы, то фактически можно остановить развитие на первой появившейся системе. И получить велосипед с автомобильным рулем, кузовом КАМАЗа, двигателем Феррари и все тем же педальным управлением.

Prometheus — не поддерживает транзакции, также инциденты. Сейчас все можно налипить на всем. Мы писали из идеи: сделать все из коробки и удобные инциденты, которые вы можете сделать как угодно(мы про правила). Яб сказал наша система больше всего похожа на newrelic self-host бесплатная версия. Плюс своя система инцидентов которые вы можете написать как угодно только ориентируюясь на данные сбора. Целевая аудитория: мы писали в расчете на среднии компании, которым нужен мониторинг из коробки + не хотят платить деньги большие.

Конфигурация текстовая будет в дальнейшем, сейчас было сделано через API по той причине что Dashboard нужен был больше чем тектовая концигурация.
57.65 — есть хобби (компьютерные mmorpg и иногда opensource)
Если я правильно понял код движка, MacroTask(у вас в статье Task), они ставятся в конец следущей кучи вызова, а MicroTask в конец текущей
Мне кажется вы не умеете его готовить.
1) Единственное, что согласен, конечный размер бандла, но обещают с ivi будет меньше
2) RxJs — без примеров, выглядит как просто, как не разобрались
3) Мы генерим типы с gql, swagger и отлично живем без any
Потому что когда выходил Angular не было хайпа про необычно «быстрый» v-dom. Плюс сразу типо создан в facebook, а на этом похайпили. Хотя даже по скорости render в обычных ситуациях он проигрывает angular, единственное в чем выигрывает это приоритетных render, которого нет в angular. А про экосистему вообще и говорит не стоит, у ангулара очень хорошо сделано все от DI, до условного рендера.
Знаешь конечно, я как раз об этом.

Пост был не об этом, я к тому, что алгоритмы не показатель ума, а лишь показатель того что человек знает алгоритмы. Так тяжело очень сказать, смотря как задачи строят, я уверен что автор поста тоже не знал эти алгоритмы, а просто провел research.

Я сейчас рисую красивые карты для Яндекс.Погоды. И мне за неделю пришлось реализовать алгоритм сглаживания, алгоритм Сазерленда-Ходгмана и алгоритм Мартинеса. Если бы человек не знал, что такое хэшмап или очередь по приоритетам, он бы засел с этим надолго и непонятно, справился бы или нет без посторонней помощи.

1) blog.kislenko.net/show.php?id=2057
2) github.com/w8r/martinez
3) paperjs.org/examples/path-simplification
4) synset.com/ai/ru/data/Queue.html
Не совсем с этим согласен, знать алгоритмы и структуры круто, самая важный скилл по мне это умение правильно выбрать структуру данных, но помнить реализацию(тем более те которые не юзаешь 24/7), необязательно как по мне. Если ты пишешь в условиях без интернета и полной изоляции то окей, но мне любое обсуждение интересных задач, с выше стоящим с коллегой, даже в условии помощи это всегда хорошо, всегда лучше чтобы решение видели несколько человек, а не один.
Я про то что хранить результаты последних вызовов, это не всегда надо, можно допустим только четных или нечетных, задачу можно любую придумать. А хвостовую рекурсию всегда можно развернуть достаточно просто, как минимум в массив линейных результатов. stackoverflow.com/questions/931762/can-every-recursion-be-converted-into-iteration/933979#933979
По моему вы переписали самое тупое рекурсивное решение, на линейное, которое на каждом следующим шаге берет результат предыдущего, по сути динамическое программирование, которая просто выбирает следующий шаг.

Я то к тому, то что вы написали не панацея, и не всегда может быть применена, лучше озаглавить «оптимизация рекурсивного алгоритма для задачи # .....»
Я в 11 писал на Visual Basic 6.0(После макросов в Excel выучил достаточно быстро), тоже формочки делал (2005) уровень ежедневник с сохранением ms access, к сожалению со временем интерес угас и вернулся только в 16 лет, с появлением олимпиадного программирования, так что смотри не перегори, рано начинать не всегда хорошо. А так правда очень круто! Я думаю в твоем возрасте даже если ты бросишь это приговором не будет, рано или поздно если это твое ты к нему вернешься. Гораздо более плохо будет, если ты слишком рано потеряешь детство которое уже точно не вернешь, хотя у каждого свой путь.
Я думаю более подходящее название «Главное – не бояться», чем «Путь курильщика: как войти в профессию программиста, если ты гуманитарий». Не увидел и кусочка про принадлежность кругу гомунитариев кроме «мечтала стать учителем русского языка и литературы», а если я в детстве мечтал стать космонавтом, это ж не значит что я им был.
// Мелкое копирование

Давайте будем читать, перед публикацией.
Писал свой с поддержкой сложного query
Демка: runkit.com/pxyup/5c336aed02ce8e00124ee50d

github.com/PxyUp/uri-parse-lib
Не перебирать не надо(серилизация в массив сразу), под капотом да, идет перебор, профит чисто если большой размер получаемый данных, грубо говоря при переборе с помощью итератора будет нагрузка меньше.
Писал, недавно свой такой, getOne мне кажется в моем случае более оптимизированный

type Record struct {
	Hello string `bson:"hello"`
}

record := new(Record)

err = mgoConnector.GetOne(TEST_COLLECTION, bson.M{
    "hello": "test",
}, record)

fmt.Println((*record).Hello)


Если интересно могу выложить в opensource, правда операций поменьше:

type MongoConnector struct {
	Connect        func(mongoUrl string, databaseName *string) error
	InsertOne      func(collectionName string, entity interface{}) error
	UpdateOne      func(collectionName string, findPredicate bson.M, updatePredicate bson.M) error
	UpdateAll      func(collectionName string, findPredicate bson.M, updatePredicate bson.M) (*mgo.ChangeInfo, error)
	GetOne         func(collectionName string, findPredicate bson.M, structToDeserialize interface{}) error
	GetAll         func(collectionName string, findPredicate bson.M, structToDeserialize interface{}) error
	DropCollection func(collectionName string) error
	Disconnect     func()
}

Создатель Nodejs примерно таким занимается github.com/denoland/deno

Information

Rating
Does not participate
Location
Бобо Диуласо, Буркина Фасо, Буркина Фасо
Date of birth
Registered
Activity