Как стать автором
Обновить
131
56.2
Андрей Апанасик Владимирович @Suvitruf

Backend (node.js/ts), немного gamedev (unity)

Отправить сообщение

Как в Node.js контролировать потребление памяти при обработке сетевых запросов

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 5.3K

Всем привет! Я Виктор Кугай, руководитель команды разработки спецпроектов в Тинькофф. Мы создаем геймификационные проекты, основанные на данных, чтобы познакомить пользователей с экосистемой компании и повысить узнаваемость бренда.

Расскажу, как с помощью Node.js Streams и механизма Back Pressure протокола TCP реализовать пакетную обработку сотен гигабайтов данных на машинах с жестким лимитом памяти.

Читать далее
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 2

7 направлений оптимизации ClickHouse, которые помогают в BI

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 9.5K

Привет, Хабр! Меня зовут Никита Ильин, я занимаюсь разработкой архитектуры BI-платформы Visiology. Сегодня мы поговорим про оптимизацию ClickHouse — ведущей СУБД, которую все чаще используют для решения задач аналитики на больших объемах данных. В этой статье я расскажу, почему важно оптимизировать ClickHouse, в каких направлениях это можно делать, и почему разумный подход к размещению информации, кэшированию и индексированию особенно важен с точки зрения производительности BI-платформы. Также мы поговорим о том, к каким нюансам нужно готовиться, если вы решаете оптимизировать CH самостоятельно, сколько времени и сил может потребовать этот процесс и почему мы решили “зашить” в новый движок ViQube 2 десятки алгоритмов автоматической оптимизации. 

А что там с оптимизацией ClickHouse?
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 2

Собираем метрики Node.js приложений в PM2 с экспортом в Prometheus

Время на прочтение 4 мин
Количество просмотров 2K

Ни для кого не секрет что для устойчивой и надежной работы node.js приложений необходимо проводить мониторинг их работы и делать полезные выводы глядя на их метрики. Это означает, что вы способны получать информацию о состоянии до возникновения проблем, таким образом, предотвращая сбои.

В этой статье я хотел бы рассказать о способе сбора статистики из node.js приложений, которые запущены в PM2, и экспорт этих данных в Prometheus.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 1

Что почитать игровому программисту?

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 23K

Объём специфичных знаний, которые требуются рядовому программисту игр, даже если он только начал свою карьеру, вызывает у меня «лёгкую» тоску. Это одна из причин, почему большая часть людей, которые «горят делать игры», отсеивается на этапе технических собеседований (обычно их больше одного). Это нормально и грустно. Добавьте сюда, что нефундаментальные знания, вроде инструментов, библиотек и движков, приходится обновлять где‑то раз в 5–7 лет. Не вижу тут, что игрострой сильно отличается от других областей разработки. Если бы лет 15 назад «добрый я» скинул на почту список книг, которые придется прочитать и осмыслить, армия собранных граблей не была бы столь большой и разнообразной, и без ручек половинной длины. Осторожно, в конце статьи будет супердлинная картинка (взята с github отсюда, с разрешения автора).

У программиста нет цели, только путь.
Всего голосов 60: ↑60 и ↓0 +60
Комментарии 36

Как мы управляем инфраструктурой на более 1000 серверов при помощи Ansible

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 15K

Привет, Хабр! Мы системные инженеры X5 Tech — Алексей Кузнецов и Борис Мурашин. У нас за плечами больше 15 лет опыта, в том числе поддержка сервисов Rapida, CyberPlat, TeleTrade, сопровождение стека BigData и внедрение кластеров Hadoop. В этой статье мы расскажем, как выбирали систему управления конфигурациями, какими критериями руководствовались, что в итоге выбрали, с какими проблемами столкнулись и как их решали.

Рассматривать вопрос, зачем вообще нужна система управления конфигурацией, не будем. Потому что считаем, что если у вас больше одного сервера, она уже необходима. Перейдём сразу к тому, почему мы выбрали именно Ansible.

Читать далее
Всего голосов 34: ↑34 и ↓0 +34
Комментарии 22

Книга «Игровой движок. Программирование и внутреннее устройство. Третье издание»

Время на прочтение 17 мин
Количество просмотров 19K
image Привет, Хаброжители! Книга Джейсона Грегори не случайно является бестселлером.Двадцать лет работы автора над первоклассными играми в Midway, Electronic Arts и Naughty Dog позволяют поделиться знаниями о теории и практике разработки ПО для игрового движка.

Игровое программирование — сложная и огромная тема, охватывающая множество вопросов. Граница между игровым движком и игрой размыта. В этой книге основное внимание уделено движку, основным низкоуровневым системам, системам разрешения коллизий, симуляции физики, анимации персонажей, аудио, а также базовому слою геймплея, включающему объектную модель игры, редактор мира, системы событий и скриптинга.
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 7

PostgreSQL: вернуть место после delete

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 9.2K

У вас есть таблицы, либо ряд таблиц, строки которых нужно очистить и единственный способ, которым вы можете это сделать - это операция DELETE.

Помимо очевидной цели - очистки ненужных данных из таблицы, хотелось бы также увеличить свободное место в области диска, доступного для данных postgresql. Но при определенных условиях - операция DELETE не возвращает место, а операция UPDATE дополнительно его забирает.

Читать далее
Всего голосов 14: ↑11 и ↓3 +8
Комментарии 9

Организуем High Availability PostgreSQL

Время на прочтение 7 мин
Количество просмотров 17K

Чтобы система долго работала без сбоев и перерывов, нужно поработать над отказоустойчивостью. В статье дадим несколько способов её построить и покажем готовое решение.

Читать далее
Всего голосов 20: ↑17 и ↓3 +14
Комментарии 28

Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS

Уровень сложности Простой
Время на прочтение 26 мин
Количество просмотров 32K

Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.

Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.

Читать далее
Всего голосов 128: ↑128 и ↓0 +128
Комментарии 96

Переезд монолита в k8s. Делаем каршеринг cloud native

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 6K

Делюсь опытом по становлению каршеринга на светлую сторону Силы — переезду в облако.

Мы переезжали из одного датацентра в другой, шатали прод по ночам, выкатывали новые микросервисы, переписывали старые, наш парк машин вырос в 4 раза. И всё это за экстремальные 2 года!

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 18

Капибара, Новый Старый Пикабу

Время на прочтение 8 мин
Количество просмотров 70K

Пикабу долгое время было уютным уголком для обмена историями, опытом, творчеством, мнениями и эмоциями. Однако ряд нововведений, таких как отмена баянометра, изменение алгоритмов и скрытие отрицательных оценок, привели к потере духа оригинального портала. Многие из нас, пришедшие туда в молодости и теперь ставшие взрослыми, почувствовали, что наши ценности и мнения игнорируются. В ответ на это, мы, группа энтузиастов, создали "Капибару" – проект, который стремится сохранить лучшие стороны Пикабу, предоставляя пространство где пользователи сами решают какой контент "годный" и какой контент хотят видеть в своей ленте.

Читать далее
Всего голосов 180: ↑173 и ↓7 +166
Комментарии 225

Снятие с воинского учета. Дистанционно. Пакет документов

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 42K

По состоянию на лето 2023, в военных комиссариатах разных регионов и даже районов одного города требования к пакету документов отличаются, запись через Госуслуги может не гарантировать прием, а без личного присутствия заявителя могут вообще не захотеть общаться. Информация ниже не является полным гайдом по снятию с учета, это шаблоны документов + рекомендации из практики.

Если вкратце, то рабочий кейс, это когда: (А) имеется основание для снятия: уже живете зарубежом полгода, либо имеется иностранный ВНЖ, (B) грамотно составлено заявление на снятие с учета и подписано вашей подписью, (C) в военкомат идет ваш представитель по доверенности, которая оформлена у российского нотариуса или в зарубежном консульстве РФ.

Ниже пояснения и документы. Делайте все красиво, грамотно, и тогда результат будет 👍

Читать далее
Всего голосов 92: ↑82 и ↓10 +72
Комментарии 83

Интервью: Хабр поговорил с Mundfish об игре Atomic Heart

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 12K

Давно не было интервью с разработчиками компьютерных игр. Мне удалось взять интервью у Mundfish — разработчиков игры Atomic Heart, ставшей хитом если не последних 3-х лет, то как минимум 2023 года. Вопросы были написаны до разработки DLC, и я попал на самый «горячий» участок разработки дополнения, поэтому дополнительных вопросов по DLC задать не получилось. Но это пока. Приятного чтения!

Читать далее
Всего голосов 68: ↑62 и ↓6 +56
Комментарии 12

Механики «смерти»

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 5.1K

Собрали в кучу нестандартные примеры механик «смерти» из разных игр.

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

Одним из таких жизненных законов является Смерть. Для человека это неизбежность, но для игрока – лишь сигнал, символ, механика. Сигнал о проигрыше, символ, вплетённый в сюжет, элемент нарратива.

Обсуждая эту механику с коллегами по цеху, мы затронули много важных вопросов,

А какие именно, вы узнаете прочив статью
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 14

Эффективное ведение дел или Obsidian + GTD

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 37K

Иногда сложно справиться с большим потоком задач и информации, особенно если это касается работы. Поэтому создание персональной базы знаний для своих текущих дел становится весьма актуальным. Но простая фиксация данных не всегда эффективна: легко потеряться в куче заметок. Различные методики помогают правильно организовать процесс. Вместе с тем информация не существует сама по себе, она, как правило, неразрывно связана со всеми нашими проектами, задачами и другими событиями. Если это учитывать, то проще оперировать данными, находить нужные факты. Через задачу легко выйти на связанную с ней информацию или, наоборот, через данные можно найти проект или задачу, в рамках которых они появились. Однако на практике все это будет эффективно работать, если получится создать единую среду для ведения дел и хранения всех связанных с ними данных.

Существующие приложения, как правило, не могут предоставить готовое решение для работы в таком контексте. Приходится придумывать или создавать что-то свое. Самое простое — это начать с каких-то стандартных заметочников, например Evernote или OneNote, и приспособить их под себя. Однако с появлением Roam-подобных программ пришло понимание, что можно создать очень гибкую систему, которую легко настроить под ведение любого вида задач, проектов и хранение различного типа связанной с ними информации. В этой статье познакомимся с примером настройки и практического использования маркдаун-заметочника Obsidian совместно с методологией Getting Things Done (GTD) Дэвида Аллена.

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 34

Obsidian — Мой сетап

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 33K

Вот я и дописал свою четвёртую статью на хабр (А ведь в начале года поставил себе цель написать хотя бы одну статью, а тут аппетит пришёл во время еды и вот четвёртая). Предыдущие раз, два и три.

Вообще бесит когда в современном мире пишут статьи-гайды или снимают видео-гайды, где самое интересное в конце. "Вы сначала дайте посмотреть что я приобрету прочитав вашу статью или посмотрев видео, а я уже приму решение смотреть или нет".

Поэтому вот сразу ссылка на мой сетап хранилища Обсидиана на гитхабе (о котором и пойдёт речь в данной статье), можно сразу его качать и тыкаться самому и если что-то не понятно подглядывать в статью. (Надо распаковать zip-файл в папку, а потом открыть открыть обсидиан и при выборе хранилища выбрать эту папку, куда распаковали zip-файл. Если у вас одно хранилище, то тогда жмём в левом нижнем углу кнопку сейфа)

В моём сетапе я попытался реализовать возможность управлять проектами, годовыми и месячными целями, ставить себе задачи, смотреть по ним статистику в разрезе ролей.

В этом хранилище используются 10 плагинов, основные:

- Calendar - для календаря справа.

- Dataview - для статистики и для проектов.

- Tasks - для задач.

- Templater - для шаблонов и чтобы нужные заметки с запросами создавались в нужных папках и с нужными данными в запросах.

К такой настройке я шёл целый год используя обсидиан, постоянно дорабатывал её и искал "совершенство", в ней собраны разные подходы из разных статьей и книг (GTD, 7 навыков, Джедайские техники, Атомные привычки), данные подходы большинству могут быть знакомы. Но есть метод, до которого я дошёл сам и до этого я нигде его не встречал (возможно просто не попадался) - это метод одной задачи.

Disclaimer1: Мой сетап не претендует на "идеальность", в нём найдутся минусы и неудобности. Я выношу его на общее обсуждение в том числе для того, чтобы кто-то мог предложить ту или иную доработку тут в комментариях, а так же для того, чтобы новички могли сходу вкатиться в этот чудесный обсидиановый мир.
Disclaimer2: Обычно обсидиан ассоциируют с Zettelkasten, графами и прочими атомарными заметками. Я в своём подходе этого не использую, возможно еще не дорос, возможно мой подход немного про другое. В этой статье я пишу не про это.

Погнали вкатываться в обсидиановый мир
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 39

Сравнение Unreal Engine 5 и других игровых движков: выбор лучшего для вашего проекта

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 8.2K

Несмотря на то, что на рынке есть множество игровых движков, Unreal Engine 5 является одним из наиболее популярных, благодаря своим функциям и возможностям. Однако, для каждого проекта может быть подходящий определенный движок, поэтому важно проанализировать особенности каждого из них.

Читать далее
Всего голосов 17: ↑9 и ↓8 +1
Комментарии 10

Terraform: от незнания к best practices

Уровень сложности Средний
Время на прочтение 47 мин
Количество просмотров 25K

Всем привет! Меня зовут Виктор, я DevOps‑инженер компании Nixys, которая помогает другим компаниям внедрять в их IT‑решения передовые практики DevOps, MLOps и DevSecOps.

Сегодня я приглашаю вас вместе со мной пройти путь «от незнания к best practices» в работе с Terraform. Этот материал подготовлен для серии наших одноименных видеороликов на YouTube, но мы решили дополнить его и предложить вам более детальное описание процесса в этой статье.

Не забывайте следить за нашими обновлениями на YouTube, Habr и подписывайтесь на наш Telegram‑канал DevOps FM — мы всегда рады новым друзьям. Начнём?

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 7

Случайные блуждания и цепи Маркова в геймдизайне

Время на прочтение 12 мин
Количество просмотров 13K

Так уж повелось, что знание математики редко считают необходимым для работы геймдизайнером — а если оно и требуется, то школьной программы хватит. Чаще всего так и есть. Но иногда знание определенных концепций и методов из вышмата может упростить жизнь и помочь иначе взглянуть на проблему.

Всем привет, меня зовут Лев, я геймдизайнер из WhaleKit. И в этой статье мы разберем две математические концепции: цепи Маркова и случайные блуждания. Сразу замечу, что статья скорее «поп», чем «науч», поэтому часть доказательств выведенных формул будет опущена. После теории мы перейдем к реальным кейсам, где эти инструменты могут пригодиться, например:

 1. Сколько сундуков откроет игрок, если из сундуков могут выпасть еще сундуки;
2. Сколько золота уйдет на прокачку меча, если меч может ломаться;
3. Какая вероятность победить в денежном поединке.

Читать далее
Всего голосов 44: ↑44 и ↓0 +44
Комментарии 5

Как ускорить работу PostgreSQL

Время на прочтение 10 мин
Количество просмотров 20K

В статье рассказываем, как оптимизировать базу данных PostgreSQL на примере Linux на IBM Z. Опираясь на представленные примеры, вы шаг за шагом узнаете, какие опции и параметры конфигурации улучшат установку PostgreSQL с точки зрения:

Читать далее
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 9

Информация

В рейтинге
83-й
Откуда
Ларнака, Government controlled area, Кипр
Работает в
Зарегистрирован
Активность