Настройка автовакуумирования в PostgreSQL
В этой статье поговорим о том, как правильно настраивать автовакуумирование в PostgreSQL — одном из механизмов, который позволяет базе данных оставаться «в форме» и поддерживать производительность на должном уровне. Если неправильно подойти к настройке, можно столкнуться с деградацией скорости обработки запросов и внезапным ростом объема данных.
Сложная агрегация в Pandas с MultiIndex
В этой статье поговорим о Pandas MultiIndex — мощной штуке, которая спасла меня, когда пришлось агрегировать кучу многомерных данных. В отчётах за несколько лет с миллионами строк, обычный groupby()
просто не справлялся, а MultiIndex сделал всё красиво и быстро. Разберём, как использовать его для сложных операций, не тратя лишнего времени.
Обзор AI-ассистента Cursor для разработчиков
Давайте признаем, что иногда написание кода может быть сущим мучением. Все мы хоть раз смотрели на пустой экран, пытаясь вспомнить тот самый специфический синтаксис или в попытке отладить проблему, которая буквально выводила нас из себя.
Конечно, сейчас уже есть инструменты на базе искусственного интеллекта, такие как GitHub Copilot, ChatGPT и Claude, которые пытаются облегчить нам жизнь. Но давайте будем честны — они также заставляют нас желать большего.
Вам когда-нибудь хотелось, когда вы активно погружались в сложный проект, чтобы ваш AI-помощник видел всю картину в целом? Например, понимал общую архитектуру, ваш стиль кодирования и специфические особенности проекта?
Вот тут-то и приходит на помощь Cursor.
Управление памятью в JavaScript с помощью WeakRef и FinalizationRegistry
Рассмотрим тему управления памятью в JavaScript — и речь пойдет не о классическом сборщике мусора, а о возможностях с WeakRef и FinalizationRegistry. Эти инструменты помогают работать со слабыми ссылками и асинхронной финализацией объектов, открывая дорогу к более тонкой работе с памятью.
Если вам надоело, что объекты висят в памяти дольше, чем нужно, и хочется управлять ресурсами без лишних утечек — эта статья для вас.
Параметризованные тесты в Pytest: обзор с примерами
Хотите сделать процесс тестирования более эффективным и покрыть больше случаев с меньшим количеством кода? Тогда параметризованные тесты в Pytest — именно то, что вам нужно. В этой статье мы разберёмся, как с помощью параметризации можно существенно ускорить и упростить тестирование вашего приложения.
Разный подход к CI/CD: опыт Amazon и Google
Автор статьи обладает уникальным опытом работы в области CI/CD в двух технологических гигантах — Amazon и Google. За 11 лет в Amazon он был главным инженером в команде Developer Tools, создавая инструменты, которыми ежедневно пользовались тысячи сотрудников компании. В 2020 году автор перешел в Google, где четыре года возглавлял инфраструктуру интеграционного тестирования. Несмотря на схожие задачи, подходы и технологические стеки компаний оказались совершенно разными. Теперь, вернувшись в Amazon, он делится своими наблюдениями и выводами из этого опыта.
Руководство по нагрузочному тестированию для начинающих
Из этого руководства узнаем: зачем проводить нагрузочное тестирование, что от него зависит, какова архитектура, какой подход обеспечит его успешное проведение, как настроить среду, лучшие практики, а также актуальные инструменты для нагрузочного тестирования, доступные на рынке.
Реализация Bloom-фильтров в Golang
Компактные структуры данных – это эффективные решения для обработки больших объемов данных с минимальным использованием памяти. Они позволяют выполнять такие задачи, как фильтрация, поиск и хранение, с меньшими затратами ресурсов, что особенно полезно в Golang, т.к частенько на нем реализуют именно высоконагруженные системы с ограниченной памятью.
В этой статье мы рассмотрим популярную структуру данных: Bloom-фильтры, они помогут минимизировать использование памяти и ускорить выполнение задач.
Что должен знать каждый разработчик о вычислениях на GPU
Большинство программистов отлично разбираются в работе процессоров и последовательном программировании, поскольку с самого начала пишут код для CPU. Однако многие из них меньше знают о том, как устроены графические процессоры (GPU) и в чем заключается их уникальность. За последнее десятилетие GPU стали чрезвычайно важны благодаря широкому применению в глубоком обучении, и сегодня каждому разработчику необходимо обладать базовыми знаниями о том, как они работают. Цель этой статьи — дать вам это понимание.
Конфигурирование DHCPv6 и SLAAC в IPv6-сетях
С развитием интернета и исчерпанием адресного пространства IPv4 переход на IPv6 становится необходимым. IPv6 расширяет количество доступных адресов и предлагает некоторые улучшения в безопасности, производительности и упрощении сетевой архитектуры.
В некоторых случаях возможна комбинация обоих методов, что позволяет использовать преимущества каждого из них и создавать гибкие и масштабируемые сети.
IPv6 — это протокол следующего поколения, разработанный для решения ограничений IPv4.
Ограничение скорости в Nginx для сложных конфигураций: HTTP/2, API и видеостриминг
В этой статье рассмотрим, как настроить полноценный traffic shaping в Nginx для сложных случаев, включая HTTP/2.
С появлением HTTP/2 управление трафиком стало ещё сложнее из-за его особенностей:
- Мультиплексирование: Несколько запросов могут выполняться по одному соединению одновременно.
- Сжатие заголовков: Использование HPACK для сжатия заголовков может влиять на скорость передачи.
- Приоритизация потоков: Клиенты могут устанавливать приоритеты для разных потоков.
Кратко про библиотеку Range в C++
С выходом C++20 библиотека Range получила свое официальное место в языке, что ознаменовало некоторый важный шаг в развитии работы с контейнерами и итераторами. Это обновление ввело новый подход к манипуляциям с данными.
Итак, что же делает Range таким особенным? Традиционные итераторы требуют большого объема кода для выполнения простых операций вроде фильтрации или сортировки данных. С Range можно избавиться от этой сложности, с помощью интуитивно понятному и лаконичному способу работы с коллекциями данных. В этой статье мы и рассмотрим основные концепции библиотеки Range.
JavaScript Clean Code: руководство для начинающих разработчиков
Мы часто сталкиваемся с тем, что многочисленные ресурсы и руководства по JavaScript предлагают свой уникальный подход к кодированию. И хотя они дают ценные знания, порой они также могут создавать проблемы с пониманием кода из-за непоследовательных соглашений об именовании и неясных структур.
Это руководство посвящено написанию чистого и удобного кода на JavaScript и TypeScript. Мы рассмотрим лучшие практики работы с функциями, переменными и методами, чтобы ваш код был не только эффективным, но и понятным как вам, так и другим разработчикам. Статья будет полезна для новичков, которые хотят улучшить свои навыки кодирования.
Как продакт-менеджеру сфокусироваться на 80% Discovery и 20% Delivery: Руководство на основе реального опыта
В своей карьере я работала в таких компаниях, как Авито, Rutube, МТС, сейчас работаю в Банке [NDA] — и везде у меня была команда разработки самостоятельна.
Где каждый член команды мог не только выполнить свою часть работы, но и рассказать про цели: от годовых по нашему стриму до каждой отдельно взятой задаче, также мог выступить на ревью, где с удовольствием расскажет бизнес-часть, покажет графики и, конечно же, работающий продукт.
Это кажется идеалом, но на самом деле, это вполне реализуемая задачка для менеджера.