Tuning async IO in PostgreSQL 18
В PostgreSQL 18 появилась поддержка асинхронного ввода-вывода (AIO), что позволяет эффективнее использовать хранилище. Основные параметры для настройки — io_method и io_workers. По умолчанию io_method = worker использует пул процессов для выполнения операций ввода-вывода, что обеспечивает кроссплатформенность и стабильность. Альтернатива io_uring эффективнее, но работает только на Linux и может быть недоступна в некоторых контейнерах из-за проблем безопасности.
Значение io_workers = 3 слишком консервативно для серверов с большим количеством ядер. Рекомендуется увеличивать его пропорционально числу CPU, особенно для интенсивных рабочих нагрузок. Например, на системе с 64 ядрами можно установить 16–32 воркеров. Важно тестировать настройки под конкретную нагрузку, так как универсального решения нет.
Комментарии (12)
- Ожидание тестирования новой функции async I/O на базах данных в Azure с использованием ZFS для повышения производительности последовательного сканирования.
- Обсуждение выбора метода
workerпо умолчанию вместоio_uringиз-за его универсальности и проблем безопасности с io_uring в некоторых средах. - Вопрос о причинах более низкой производительности io_uring в сравнении с worker в некоторых бенчмарках и является ли это ошибкой или ограничением технологии.
- Дебаты о целесообразности использования CoW-файловых систем (например, ZFS, btrfs) для Postgres и сжатия на уровне ФС против встроенного сжатия СУБД.
- Уточнение, что новая функция async I/O сейчас применяется только для последовательных и bitmap-сканирований, но не для индексных.
What if I don't want videos of my hobby time available to the world? 🔥 Горячее 💬 Длинная дискуссия
Автор размышляет о дискомфорте от нежелательного появления в видеороликах хобби — в его случае, игры в страйкбол. Участники снимают процесс на несколько камер и публикуют материалы в открытый доступ без согласия других, что воспринимается как норма в сообществе. Хотя просьба исключить себя из контента могла бы сработать, автор пока не решается её озвучить, чувствуя давление молчаливого согласия.
Он отвергает аргумент «не хочешь — не появляйся в публичных пространствах», подчёркивая, что частное хобби на закрытой площадке — не то же самое, что уличная съёмка. Ключевой вопрос этический: возможность публикации не означает её моральной оправданности. Автор выступает за более осознанный подход к консенсусу, например, через систему опознавательных знаков для тех, кто против съёмки.
Комментарии (639)
- Участники обсуждают конфликт между правом на приватность в общественных местах и свободой съемки, отмечая разные культурные и поколенческие взгляды на эту проблему.
- Поднимается вопрос о необходимости явного согласия на публикацию изображений людей, особенно детей, и приводятся примеры законодательства разных стран (например, Германии), где это требуется.
- Высказываются опасения по поводу массового распространения видеоконтента и автоматизированного surveillance, а также потенциальных рисков, таких как использование материалов в коммерческих целях или для создания компрометирующих подборок.
- Предлагаются практические решения: от личных просьб не снимать и поиска сообществ с запретом на съемку до законодательных инициатив по введению opt-систем (например, QR-кодов) и судебных разбирательств.
- Отмечается, что в конкретном случае с airsoft проблема смягчается ношением масок, но это не отменяет общих этических и юридических дилемм.
DeepSeek-v3.2-Exp 🔥 Горячее
DeepSeek AI выпустила экспериментальную версию своей языковой модели DeepSeek-V3.2-Exp. Это обновление демонстрирует улучшенные возможности обработки естественного языка, включая более точное понимание контекста и генерацию кода. Модель оптимизирована для разработчиков и исследователей, предлагая расширенную поддержку программирования и анализа данных.
Ключевые улучшения включают увеличенный контекст обработки, что позволяет эффективнее работать с длинными документами и сложными запросами. Модель также показывает прогресс в мультимодальных задачах, хотя акцент остаётся на текстовых и кодогенерирующих возможностях. Экспериментальный статус означает, что разработчики могут тестировать новые функции до их финального релиза.
Комментарии (41)
- Обсуждается значительное снижение стоимости моделей ИИ, особенно у DeepSeek, с акцентом на важность доступности для широкого распространения технологий.
- Поднимаются вопросы о технических особенностях моделей (sparse attention, кэширование) и их влиянии на производительность и стоимость вычислений при больших контекстных окнах.
- Участники спорят о реальной выгоде "дешевых" моделей в рабочих процессах, учитывая необходимость поддержки кэширования провайдером для снижения затрат.
- Высказываются предположения о дальнейшей динамике цен на ИИ, ссылаясь на возможное продолжение стремительного падения стоимости по аналогии с законом Мура.
- Обсуждается открытость и прозрачность платформ (OpenRouter, DeepSeek), включая вопросы о использовании данных для обучения и статусе исходного кода.
Optimizing a 6502 image decoder, from 70 minutes to 1 minute
Изначальный алгоритм декодирования изображений с камеры Quicktake 150 на процессоре 6502 работал 70 минут. Основная проблема — сложный формат сжатия на основе кодирования Хаффмана и 16-битной математикой, что крайне неэффективно для 8-битного процессора.
Оптимизация началась с отказа от декодирования цвета, поскольку итоговое изображение было монохромным. Это сократило обработку только до зелёных пикселей матрицы Байера. Далее удалили ненужные буферы и промежуточные шаги, включая интерполяцию, что уменьшило размер вывода до 320×240. В итоге остался лишь один используемый буфер из трёх. Эти изменения сократили количество инструкций с 301 млн до 25 млн, а время декодирования — до минуты. Ключевой вывод: алгоритмическая оптимизация даёт больший выигрыш, чем низкоуровневая оптимизация кода.
Комментарии (28)
- Обсуждение визуального парадокса: изображение с чередующимися черными пикселями кажется более четким, чем изображение без них, несмотря на одинаковый объем информации.
- Ностальгия по низкоуровневому программированию и работе с аппаратными ограничениями (память, скорость) как к refreshing практике для инженеров.
- Технические гипотезы о причинах визуальных артефактов (масштабирование браузером, адаптивная подсветка, HDR-режим).
- Критика современного ПО: несмотря на миллионократный рост мощности hardware, воспринимаемая скорость и отзывчивость интерфейсов часто снизились.
- Идея о необходимости целенаправленной оптимизации кода для повышения эффективности, возможно, с использованием ИИ.
Bad Apple but it's played inside Super Mario Bros
В Super Mario Bros. для NES реализовано произвольное исполнение кода (ACE) через манипуляции с игровым состоянием. Используется старт на уровне 'N' для инициализации объекта C9, который перезаписывает память и позволяет выполнять пользовательский код. В демонстрации воспроизводится видеоклип Bad Apple!! с синхронизированным звуком через контроллер, преобразуя музыку в нажатия кнопок. Для графики применяется эффективное кодирование кадров в тайлы NES с оптимизацией через пакеты данных. Эмулятор BizHawk 2.9.1 обеспечивает точность, включая работу с "открытой шиной", что подтверждено запуском на реальной консоли. Достигнуты полное прохождение, максимальный счёт и время 4:52.65.
Комментарии (24)
- Аудио на NES стримится через контроллер с помощью миллионов быстрых нажатий кнопок (5.8 млн), что является формой векторного квантования.
- Воспроизведение требует модифицированного ROM или ручной настройки памяти для загрузки кода, но возможно на реальном железе.
- Частота аудиострима достигает ~25 кГц, периодически снижаясь до ~9 кГц при обработке видео.
- Полный файл TAS (~16 МБ) значительно превышает объем RAM NES (4 КБ), поэтому данные стримятся в реальном времени.
- Результат впечатляет качеством звука, сохраняя аутентичный 8-битный стиль, особенно в басах.
Consistent hashing
Консистентное хеширование решает проблему перераспределения данных при изменении числа узлов в распределённых системах. Вместо обычного хеширования с модулем, где добавление или удаление узла приводит к полному пересчёту всех ключей, этот алгоритм использует круговую схему: и узлы, и данные хешируются на окружность, а каждый элемент назначается ближайшему узлу по часовой стрелке.
При изменении количества узлов перемещаются только данные, попадающие в зону между старыми и новыми узлами — примерно M/N элементов вместо всех M. Это обеспечивает стабильность системы: например, при выходе узла из строя его нагрузка равномерно распределяется между соседями, а не вызывает каскадный сбой. Алгоритм широко применяется в кеширующих прокси, распределённых базах данных и CDN для минимизации дисбаланса при масштабировании.
Комментарии (21)
- Предложено использовать rendezvous hashing как более простую и универсальную альтернативу consistent hashing, не требующую виртуальных узлов и поддерживающую взвешенное распределение.
- Упомянуты различные реализации и применения хеширования: CRUSH в Ceph, Lamping-Veach алгоритм, кеш-ориентированная версия для SSD, простая реализация на Clojure.
- Обсуждаются стратегии минимизации перераспределения данных при изменении числа узлов: увеличение числа партиций, метод "power of 2 choices", кластеризация в rendezvous hashing.
- Отмечена опечатка в заголовке исходного поста ("Constitent" вместо "Consistent") и дан совет по её исправлению.
- Затронута историческая справка об основателе Akamai Дэниеле Люине и его трагической судьбе.
Google appears to have deleted its political ad archive for the EU
Google удалила архив политической рекламы в ЕС, уничтожив данные за семь лет — с 2018 года. Исчезла информация о расходах, таргетинге и сообщениях партий и кандидатов на YouTube, в поиске и дисплейной рекламе во время выборов в 27 странах. Ранее Google анонсировала запрет на политическую рекламу, но о стирании архива не предупреждала.
Теперь доступны только данные по США, Великобритании, Индии и нескольким другим странам, но не по ЕС. Поиск по ключевым словам или партиям (например, Sinn Féin, тратившая до €10 тыс. в день) возвращает ноль результатов. Архив создавался после скандалов вокруг Brexit и выборов Трампа для прозрачности и исторической фиксации кампаний. Его удаление подрывает подотчётность, память и демократические процессы.
Комментарии (99)
- Пользователи критикуют ожидание, что корпорации (вроде Google) бесплатно и вечно архивируют данные, и подчеркивают личную ответственность за сохранение важной информации.
- Высказывается предположение, что удаление архива политической рекламы связано с новыми регуляциями ЕС и желанием Google избежать рисков и издержек.
- Отмечается, что Google заработал на этой рекламе, и его решение удалить архив, когда он стал невыгоден, воспринимается как циничное.
- Обсуждается роль крупных tech-компаний как де-факто хранителей цифрового пространства и возможная необходимость государственного регулирования их архивной политики.
- Приводятся технические детали: данные ещё доступны в BigQuery в течение 7 дней, и участники призывают сообщество к их срочному сохранению.
Queueing to publish in AI and CS
Система публикаций в ИИ и CS с низким фиксированным процентом принятия работает как очередь: авторы бесконечно пересылают отклонённые работы. Модель показывает, что снижение acceptance rate с 35% до 20% почти не отсеивает больше плохих статей — их доля среди заброшенных растёт лишь с ~60% до ~77%. Зато резко увеличивается нагрузка на рецензентов (на 46%) и число забракованных средних работ — с ~4% до ~24%.
Ключевой вывод: ужесточение критериев незначительно улучшает качество публикаций, но непропорционально увеличивает объём рецензирования и случайно отсеивает много достойных работ. Система становится неэффективной: авторы и рецензенты тратят время впустую, а итоговый объём принятых статей остаётся прежним.
Комментарии (48)
- Проблема массового использования ИИ для генерации низкокачественных и даже фальшивых статей, нагружающих систему рецензирования.
- Кризис системы научных конференций: перегруженность, низкое качество рецензий, физические ограничения на число участников.
- Системные искажения: карьера учёных зависит от количества публикаций в престижных журналах, а не от реального вклада в науку.
- Предлагаются решения: введение платы за подачу статей, изменение системы оценки исследователей, создание новых конференций.
- Общее ощущение, что текущая модель поощряет «гонку на дно» в ущерб качеству и глубине исследований.
What is “good taste” in software engineering? 🔥 Горячее 💬 Длинная дискуссия
Хороший вкус в разработке — это не техническое умение, а способность выбирать набор инженерных ценностей, подходящих конкретному проекту. В отличие от навыков, которые можно развить учёбой и практикой, вкус формируется через личный опыт и предпочтения. Например, одни разработчики ценят читаемость кода с map и filter, другие — производительность for-циклов, и это различие отражает их приоритеты, а не уровень компетенции.
Ключевой признак зрелости — понимание, что почти каждое решение в разработке связано с компромиссами: между скоростью, гибкостью, устойчивостью или читаемостью. Незрелые инженеры часто жёстко придерживаются одного подхода, тогда как опытные оценивают контекст и выбирают оптимальное решение для конкретной задачи. Ваш вкус определяется тем, какие ценности — например, корректность, масштабируемость или скорость разработки — вы ставите выше остальных в данной ситуации.
Комментарии (208)
- Обсуждение определяет "хороший вкус" в разработке как способность выбирать оптимальные решения, основанные на контексте и требованиях проекта, а не на личных предпочтениях.
- Участники подчеркивают, что хороший вкус тесно связан с опытом, гибкостью, умением аргументировать выбор и предвидеть последствия решений для поддержки и масштабирования.
- Многие отмечают, что хороший вкус — это баланс между читаемостью, производительностью, простотой и соответствием бизнес-целям, а не слепое следование догмам или модным тенденциям.
- Спорным остается вопрос, является ли "вкус" субъективным эстетическим понятием или его можно формализовать через принципы инженерии (например, поддерживаемость, ясность, минимальная сложность).
- Некоторые видят корень проблемы в смешении объективно плохих решений (например, неэффективные алгоритмы) и субъективных предпочтений (стиль кода, выбор парадигм).
Zero ASIC releases Wildebeest, the highest performance FPGA synthesis tool
Компания Zero ASIC выпустила Wildebeest — инструмент синтеза для FPGA с рекордной производительностью, который впервые в opensource-сообществе сокращает разрыв в качестве результатов (QoR) с проприетарными аналогами. Ключевые инновации включают адаптацию алгоритмов синтеза под размер схемы, использование передовых команд abc9 для минимизации глубины логики и опору на обширный бенчмарк-набор из 150+ тестов. Разработку возглавил Тьерри Бессон, привнёсший 30-летний опыт создания коммерческих решений.
Wildebeest демонстрирует превосходство над ведущими коммерческими и opensource-инструментами: например, для picorv32 он использует на 20% меньше LUT, чем лучший проприетарный конкурент, при сравнимой глубине логики. Проект развивается при поддержке сообщества через открытый бенчмарк LogikBench, а в планах — дальнейшее улучшение QoR для полного преодоления технологического отрыва коммерческих инструментов.
Комментарии (45)
- Открытые инструменты синтеза ценятся за отсутствие громоздких сред разработки, в отличие от проприетарных решений.
- Новый плагин для Yosys представлен как отдельный инструмент, но вызывает вопросы из-за ограниченной поддержки архитектур и отсутствия интеграции с основным проектом.
- Результаты бенчмарков подвергнуты критике за некорректное сравнение разных архитектур FPGA (LUT6 vs LUT4) и отсутствие данных о реальных устройствах.
- Открытые инструменты всё ещё отстают от проприетарных из-за отсутствия документации по битстримам и маршрутизации для популярных FPGA.
- Снижение логической глубины не всегда ведёт к повышению частоты, так как ключевым фактором задержки часто является маршрутизация, а не логика.