Copilot инструмент автогенерации кода, который наделал много шуму и которым пользуются программисты по всему миру. Я тоже включился в этот хайп, поигрался, попробовал переключить свой флоу работы на него и обломался. Минусы в итоге перевесили плюсы. Сейчас про это расскажу. Ниже описание взаимодействия с автокомплитом copilot. К чату вопросов нет, хорошая и полезная штука, но в статье не про него.
Backend (node.js/ts), немного gamedev (unity)
Выжимаем максимум из PostgreSQL
![](https://habrastorage.org/webt/gw/sd/e0/gwsde0l022rk7b9xqql1ib2bfwy.png)
Привет, Хабр! Меня зовут Максим, я работаю тестировщиком оборудования в Selectel Lab. В лаборатории мы занимаемся тестированием нового оборудования для дата-центров. О том, как мы измеряли производительность PostgreSQL на разных конфигурациях — под катом!
Как в Node.js контролировать потребление памяти при обработке сетевых запросов
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/13d/736/4fc/13d7364fc0c76e8544b1b7b5241fddc0.png)
Всем привет! Я Виктор Кугай, руководитель команды разработки спецпроектов в Тинькофф. Мы создаем геймификационные проекты, основанные на данных, чтобы познакомить пользователей с экосистемой компании и повысить узнаваемость бренда.
Расскажу, как с помощью Node.js Streams и механизма Back Pressure протокола TCP реализовать пакетную обработку сотен гигабайтов данных на машинах с жестким лимитом памяти.
7 направлений оптимизации ClickHouse, которые помогают в BI
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/2cb/d14/96d/2cbd1496d79874492bc66528f71c9c1b.jpg)
Привет, Хабр! Меня зовут Никита Ильин, я занимаюсь разработкой архитектуры BI-платформы Visiology. Сегодня мы поговорим про оптимизацию ClickHouse — ведущей СУБД, которую все чаще используют для решения задач аналитики на больших объемах данных. В этой статье я расскажу, почему важно оптимизировать ClickHouse, в каких направлениях это можно делать, и почему разумный подход к размещению информации, кэшированию и индексированию особенно важен с точки зрения производительности BI-платформы. Также мы поговорим о том, к каким нюансам нужно готовиться, если вы решаете оптимизировать CH самостоятельно, сколько времени и сил может потребовать этот процесс и почему мы решили “зашить” в новый движок ViQube 2 десятки алгоритмов автоматической оптимизации.
Собираем метрики Node.js приложений в PM2 с экспортом в Prometheus
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/40f/92d/2c2/40f92d2c2db85e379c24f5e4d5957d42.png)
Ни для кого не секрет что для устойчивой и надежной работы node.js приложений необходимо проводить мониторинг их работы и делать полезные выводы глядя на их метрики. Это означает, что вы способны получать информацию о состоянии до возникновения проблем, таким образом, предотвращая сбои.
В этой статье я хотел бы рассказать о способе сбора статистики из node.js приложений, которые запущены в PM2, и экспорт этих данных в Prometheus.
Что почитать игровому программисту?
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/635/c53/eb0/635c53eb0357d29aee1efde21398d5b8.jpg)
Объём специфичных знаний, которые требуются рядовому программисту игр, даже если он только начал свою карьеру, вызывает у меня «лёгкую» тоску. Это одна из причин, почему большая часть людей, которые «горят делать игры», отсеивается на этапе технических собеседований (обычно их больше одного). Это нормально и грустно. Добавьте сюда, что нефундаментальные знания, вроде инструментов, библиотек и движков, приходится обновлять где‑то раз в 5–7 лет. Не вижу тут, что игрострой сильно отличается от других областей разработки. Если бы лет 15 назад «добрый я» скинул на почту список книг, которые придется прочитать и осмыслить, армия собранных граблей не была бы столь большой и разнообразной, и без ручек половинной длины. Осторожно, в конце статьи будет супердлинная картинка (взята с github отсюда, с разрешения автора).
Как мы управляем инфраструктурой на более 1000 серверов при помощи Ansible
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/46d/b35/535/46db355352d931284771036b34ff2ffd.jpg)
Привет, Хабр! Мы системные инженеры X5 Tech — Алексей Кузнецов и Борис Мурашин. У нас за плечами больше 15 лет опыта, в том числе поддержка сервисов Rapida, CyberPlat, TeleTrade, сопровождение стека BigData и внедрение кластеров Hadoop. В этой статье мы расскажем, как выбирали систему управления конфигурациями, какими критериями руководствовались, что в итоге выбрали, с какими проблемами столкнулись и как их решали.
Рассматривать вопрос, зачем вообще нужна система управления конфигурацией, не будем. Потому что считаем, что если у вас больше одного сервера, она уже необходима. Перейдём сразу к тому, почему мы выбрали именно Ansible.
Книга «Игровой движок. Программирование и внутреннее устройство. Третье издание»
![image](https://habrastorage.org/webt/v4/og/lb/v4oglbgrqsgo96zg5l5n32juy08.jpeg)
Игровое программирование — сложная и огромная тема, охватывающая множество вопросов. Граница между игровым движком и игрой размыта. В этой книге основное внимание уделено движку, основным низкоуровневым системам, системам разрешения коллизий, симуляции физики, анимации персонажей, аудио, а также базовому слою геймплея, включающему объектную модель игры, редактор мира, системы событий и скриптинга.
PostgreSQL: вернуть место после delete
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/c6a/4c0/dd0/c6a4c0dd0ccc45938a760d2da7ca2ec3.png)
У вас есть таблицы, либо ряд таблиц, строки которых нужно очистить и единственный способ, которым вы можете это сделать - это операция DELETE
.
Помимо очевидной цели - очистки ненужных данных из таблицы, хотелось бы также увеличить свободное место в области диска, доступного для данных postgresql. Но при определенных условиях - операция DELETE
не возвращает место, а операция UPDATE
дополнительно его забирает.
Организуем High Availability PostgreSQL
Чтобы система долго работала без сбоев и перерывов, нужно поработать над отказоустойчивостью. В статье дадим несколько способов её построить и покажем готовое решение.
Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/637/c4e/e2e/637c4ee2e3fe9ae5c685374206a9c54d.jpg)
Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.
Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.
Переезд монолита в k8s. Делаем каршеринг cloud native
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/832/ff0/903/832ff0903ef2ebf0f21686b426285f7f.jpeg)
Делюсь опытом по становлению каршеринга на светлую сторону Силы — переезду в облако.
Мы переезжали из одного датацентра в другой, шатали прод по ночам, выкатывали новые микросервисы, переписывали старые, наш парк машин вырос в 4 раза. И всё это за экстремальные 2 года!
Капибара, Новый Старый Пикабу
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/928/b72/eab/928b72eab68e26d753e4a217777735b7.jpg)
Пикабу долгое время было уютным уголком для обмена историями, опытом, творчеством, мнениями и эмоциями. Однако ряд нововведений, таких как отмена баянометра, изменение алгоритмов и скрытие отрицательных оценок, привели к потере духа оригинального портала. Многие из нас, пришедшие туда в молодости и теперь ставшие взрослыми, почувствовали, что наши ценности и мнения игнорируются. В ответ на это, мы, группа энтузиастов, создали "Капибару" – проект, который стремится сохранить лучшие стороны Пикабу, предоставляя пространство где пользователи сами решают какой контент "годный" и какой контент хотят видеть в своей ленте.
Снятие с воинского учета. Дистанционно. Пакет документов
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/504/481/702/504481702bc9853da2e2d64c73546b80.jpg)
По состоянию на лето 2023, в военных комиссариатах разных регионов и даже районов одного города требования к пакету документов отличаются, запись через Госуслуги может не гарантировать прием, а без личного присутствия заявителя могут вообще не захотеть общаться. Информация ниже не является полным гайдом по снятию с учета, это шаблоны документов + рекомендации из практики.
Если вкратце, то рабочий кейс, это когда: (А) имеется основание для снятия: уже живете зарубежом полгода, либо имеется иностранный ВНЖ, (B) грамотно составлено заявление на снятие с учета и подписано вашей подписью, (C) в военкомат идет ваш представитель по доверенности, которая оформлена у российского нотариуса или в зарубежном консульстве РФ.
Ниже пояснения и документы. Делайте все красиво, грамотно, и тогда результат будет ?
Интервью: Хабр поговорил с Mundfish об игре Atomic Heart
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/729/e95/a60/729e95a6055d2f0834c2ddf4df7ee43f.jpeg)
Давно не было интервью с разработчиками компьютерных игр. Мне удалось взять интервью у Mundfish — разработчиков игры Atomic Heart, ставшей хитом если не последних 3-х лет, то как минимум 2023 года. Вопросы были написаны до разработки DLC, и я попал на самый «горячий» участок разработки дополнения, поэтому дополнительных вопросов по DLC задать не получилось. Но это пока. Приятного чтения!
Механики «смерти»
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/7b3/7fe/9ca/7b37fe9ca600cac663a82258a8acb297.png)
Собрали в кучу нестандартные примеры механик «смерти» из разных игр.
Наш мир наполнен миллионами различных законов – физических, социальных, юридических. И, как известно, гейм-дизайнеры конструируют миры с особыми системами правил, многие из которых берут своё начало из законов нашей реальности.
Одним из таких жизненных законов является Смерть. Для человека это неизбежность, но для игрока – лишь сигнал, символ, механика. Сигнал о проигрыше, символ, вплетённый в сюжет, элемент нарратива.
Обсуждая эту механику с коллегами по цеху, мы затронули много важных вопросов,
Эффективное ведение дел или Obsidian + GTD
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/fc6/a56/f24/fc6a56f24e9f08c25635f6c0179e453e.png)
Иногда сложно справиться с большим потоком задач и информации, особенно если это касается работы. Поэтому создание персональной базы знаний для своих текущих дел становится весьма актуальным. Но простая фиксация данных не всегда эффективна: легко потеряться в куче заметок. Различные методики помогают правильно организовать процесс. Вместе с тем информация не существует сама по себе, она, как правило, неразрывно связана со всеми нашими проектами, задачами и другими событиями. Если это учитывать, то проще оперировать данными, находить нужные факты. Через задачу легко выйти на связанную с ней информацию или, наоборот, через данные можно найти проект или задачу, в рамках которых они появились. Однако на практике все это будет эффективно работать, если получится создать единую среду для ведения дел и хранения всех связанных с ними данных.
Существующие приложения, как правило, не могут предоставить готовое решение для работы в таком контексте. Приходится придумывать или создавать что-то свое. Самое простое — это начать с каких-то стандартных заметочников, например Evernote или OneNote, и приспособить их под себя. Однако с появлением Roam-подобных программ пришло понимание, что можно создать очень гибкую систему, которую легко настроить под ведение любого вида задач, проектов и хранение различного типа связанной с ними информации. В этой статье познакомимся с примером настройки и практического использования маркдаун-заметочника Obsidian совместно с методологией Getting Things Done (GTD) Дэвида Аллена.
Obsidian — Мой сетап
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/50c/3fd/373/50c3fd373a2a71673047c4b5fab65c70.jpg)
Вот я и дописал свою четвёртую статью на хабр (А ведь в начале года поставил себе цель написать хотя бы одну статью, а тут аппетит пришёл во время еды и вот четвёртая). Предыдущие раз, два и три.
Вообще бесит когда в современном мире пишут статьи-гайды или снимают видео-гайды, где самое интересное в конце. "Вы сначала дайте посмотреть что я приобрету прочитав вашу статью или посмотрев видео, а я уже приму решение смотреть или нет".
Поэтому вот сразу ссылка на мой сетап хранилища Обсидиана на гитхабе (о котором и пойдёт речь в данной статье), можно сразу его качать и тыкаться самому и если что-то не понятно подглядывать в статью. (Надо распаковать zip-файл в папку, а потом открыть открыть обсидиан и при выборе хранилища выбрать эту папку, куда распаковали zip-файл. Если у вас одно хранилище, то тогда жмём в левом нижнем углу кнопку сейфа)
В моём сетапе я попытался реализовать возможность управлять проектами, годовыми и месячными целями, ставить себе задачи, смотреть по ним статистику в разрезе ролей.
В этом хранилище используются 10 плагинов, основные:
- Calendar - для календаря справа.
- Dataview - для статистики и для проектов.
- Tasks - для задач.
- Templater - для шаблонов и чтобы нужные заметки с запросами создавались в нужных папках и с нужными данными в запросах.
К такой настройке я шёл целый год используя обсидиан, постоянно дорабатывал её и искал "совершенство", в ней собраны разные подходы из разных статьей и книг (GTD, 7 навыков, Джедайские техники, Атомные привычки), данные подходы большинству могут быть знакомы. Но есть метод, до которого я дошёл сам и до этого я нигде его не встречал (возможно просто не попадался) - это метод одной задачи.
Disclaimer1: Мой сетап не претендует на "идеальность", в нём найдутся минусы и неудобности. Я выношу его на общее обсуждение в том числе для того, чтобы кто-то мог предложить ту или иную доработку тут в комментариях, а так же для того, чтобы новички могли сходу вкатиться в этот чудесный обсидиановый мир.
Disclaimer2: Обычно обсидиан ассоциируют с Zettelkasten, графами и прочими атомарными заметками. Я в своём подходе этого не использую, возможно еще не дорос, возможно мой подход немного про другое. В этой статье я пишу не про это.
Сравнение Unreal Engine 5 и других игровых движков: выбор лучшего для вашего проекта
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/ac0/310/ddb/ac0310ddbbd82c14ea3e858bf3711278.png)
Несмотря на то, что на рынке есть множество игровых движков, Unreal Engine 5 является одним из наиболее популярных, благодаря своим функциям и возможностям. Однако, для каждого проекта может быть подходящий определенный движок, поэтому важно проанализировать особенности каждого из них.
Terraform: от незнания к best practices
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/5f2/a9c/3b2/5f2a9c3b2a79cb17067fb55570536cbe.png)
Всем привет! Меня зовут Виктор, я DevOps‑инженер компании Nixys, которая помогает другим компаниям внедрять в их IT‑решения передовые практики DevOps, MLOps и DevSecOps.
Сегодня я приглашаю вас вместе со мной пройти путь «от незнания к best practices» в работе с Terraform. Этот материал подготовлен для серии наших одноименных видеороликов на YouTube, но мы решили дополнить его и предложить вам более детальное описание процесса в этой статье.
Не забывайте следить за нашими обновлениями на YouTube, Habr и подписывайтесь на наш Telegram‑канал DevOps FM — мы всегда рады новым друзьям. Начнём?
Информация
- В рейтинге
- 138-й
- Откуда
- Ларнака, Government controlled area, Кипр
- Зарегистрирован
- Активность