Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 38 min 4 sec ago

Почему QA должен быть душнилой: тестируем PostgreSQL и не даём разработчикам расслабиться

Fri, 11/28/2025 - 20:22

Когда ты тестируешь интернет-магазин, пропущенный баг — это съехавшая вёрстка. Но если ты тестируешь высоконагруженную СУБД — это остановка бизнеса федерального масштаба. Разбираем внутреннюю кухню QA в Postgres Professional: от борьбы с утечками памяти через ASAN и Valgrind до «вайб-кодинга» с ИИ. Узнайте, как выстроить процессы качества так, чтобы не уронить прод, когда цена ошибки исчисляется миллионами.

Читать далее

Поздравляю с Днём системного аналитика и объясняю почему его празднуют сегодня, а не 24 сентября

Fri, 11/28/2025 - 20:20

В этой статье впервые в русскоязычное ИТ-сообщество привносится информация о подлинном Дне системного аналитика.
Также, опровергается распространенный миф, якобы 24 сентября празднуется День СА — мы увидем, что доказательств этому нет.

Читать далее

Qwen3Guard: следующий шаг в модерации и контроле контента

Fri, 11/28/2025 - 20:10

Всем привет! Меня зовут Миша Мартьянов, я инженер по исследованиям и разработке в лаборатории AI R&D в red_mad_robot. В мои задачи входит проверка гипотез и развитие наших продуктов. Однако недостаточно просто улучшать продукты, необходимо также чтобы они работали устойчиво и безопасно. 

Ранее я рассказывал разработку идеального контент-фильтра на базе Guardrails. Но время не стоит на месте: появляются новые модели и новые практики их применения. Этому и будет посвящён наш сегодняшний разговор.

Читать далее

Hilbert Team получил награду «Security Yandex Cloud 2025»

Fri, 11/28/2025 - 20:04

Hilbert Team стал партнером года Yandex B2B Tech в номинации «Security». Награда была вручена 20 ноября на торжественной церемонии Partner Conf 2025 в рамках конференции для партнеров Yandex B2B Tech.

Читать далее

Monkey patching? В Go? Серьёзно? Или как писать тесты и не сойти сума

Fri, 11/28/2025 - 20:00

На днях подходит ко мне коллега с вопросом: «Слушай, а как в Go сделать замену логики функции в тесте?»

Я уточняю, что он имеет в виду. А он такой: «Ну, хочу monkey patching, чтобы подменять функции из коробки. Типа time.Now возвращала фиксированное время, uuid.New конкретный ID. Чтобы удобно тестироваться».

И тут я, конечно, немного завис :D

Да, технически в Go есть способы делать monkey patching (еще и есть библиотека) через unsafe, через подмену указателей на функции в рантайме. Но это настолько хрупкое и непредсказуемое решение, что я бы не советовал тащить его в продакшен-код. Особенно когда есть нормальный, идиоматичный способ решить эту задачу.

Читать далее

Повышение точности ГЛОНАСС не запуском дополнительных спутников, а кодированием

Fri, 11/28/2025 - 19:32

Введение

Одной из основных характеристик глобальной навигационной спутниковой системы ГЛОНАСС является точность оценки координат и высоты, полученных в навигационной аппаратуре потребителей (НАП) только по спутниковым сигналам без привлечения дополнительной информации. Большое влияние на точность позиционирования оказывают характеристики НАП. Стандартные образцы НАП не обеспечивают необходимый уровень помехоустойчивости при существующем уровне мощности принимаемых сигналов ГЛОНАСС порядка минус 166…156 дБВт.

Точность  измерения координат определяется количеством спутников, одновременно видимых навигационным оборудованием. Ошибки ГЛОНАСС составляют  3-6 м при использовании 7-8 спутников. На большей части поверхности земли над горизонтом находятся одновременно до 11 спутников ГЛОНАСС, однако отношение сигнал/шум в канале связи, необходимое для безошибочного приема информации,  часто обеспечивается только для 2-4 спутников. На рисунке 1 показан пример видимости спутников разных систем навигации в условиях городской застройки.

Читать далее

Единая теория информации: от стохастической метрики к непрерывному пространству и эффективной гравитации

Fri, 11/28/2025 - 19:29

Почему закон обратных квадратов так точен? Почему постоянная Планка имеет такое значение? Почему пространство выглядит гладким, хотя под ним скрывается квантовый хаос?

В этой работе показывается, что ответы на эти вопросы можно получить из единого принципа — Принципа Наименьшего Информационного Действия, а также что: пространство возникает как статистическое среднее стохастической метрики, 1/r² — эмерджентный закон (результат закона больших чисел), квантовая неопределённость — следствие минимальной стоимости корреляции, время — результат самосогласованных информационных структур, постоянная Планка ℏ — цена одной корреляции, голографический принцип — следствие оптимальности информационного действия.

Читать далее

Элементарный дебаггинг с binding.irb

Fri, 11/28/2025 - 19:14

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

В чем же дело?

Многопоточность для самых маленьких. Виртуальные потоки. Часть 2

Fri, 11/28/2025 - 19:04

Всем привет!

Многопоточность в Java развивается очень быстро, а многие всё ещё ограничиваются обычными потоками и ключевым словом synchronized. Сегодня я хочу рассказать именно о виртуальных потоках: как с ними работать, почему они меняют подход к многопоточности и какие задачи решают лучше традиционных механизмов. Буду объяснять просто и понятно, чтобы материал был полезен как новичкам, которые только знакомятся с виртуальными потоками, так и опытным разработчикам, которые хотят понять современные практики и возможности Project Loom.

Читать далее

Продление срока службы бортовой электроники космических аппаратов

Fri, 11/28/2025 - 18:52

Для электронной аппаратуры космических систем, и в первую очередь устройств памяти, актуальна задача защиты от воздействия ионизирующего космического излучения и других внешних факторов, искажающих хранимую и обрабатываемую информацию. Радиационные эффекты и космические частицы создают большое число накапливающихся в устройствах памяти ошибок. Использование известных методов помехоустойчивого кодирования информации дает эффект в течение ограниченного времени, пока число ошибок не становится слишком большим. В ответственных системах используется ECC-память – (error-correcting code memory, память с коррекцией ошибок) – тип компьютерной памяти, которая автоматически распознаёт и исправляет спонтанно возникшие изменения (ошибки) битов памяти – одну ошибку в одном машинном слове. При длине машинного слова 64 бита количество исправляемых ошибок < 1,5%.

Для повышения надежности хранения информации представляет интерес форма записи данных, обеспечивающая восстановление блока информации по его фрагменту – голографический метод записи, использующий свойство делимости голограммы (возможность восстановления полного изображения объекта по фрагменту голограммы).

Читать далее

Как мы помирили маркетинг и сэкономили несколько часов в неделю на ведение отчётности в Excel

Fri, 11/28/2025 - 18:33

Топ-менеджеры юрфирмы по банкроству физлиц тратили несколько часов в день на подготовку к еженедельной планёрке. Например, руководитель колл-центра делал кучу выгрузок в amoCRM, открывал каждую сделку вручную, копировал и вставлял её в Excel.

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

Маркетинг утверждал: «Мы привели лиды, а вы просто не умеете продавать». Продажи отвечали: «Ваши лиды — говно».

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

Читать далее

Разработка цифровой аппаратуры нетрадиционным методом: Контроллер USB 1.0 на SpinalHDL

Fri, 11/28/2025 - 18:29

Продолжая развивать свою синтезируемую систему-на-кристалле для ПЛИС, о которой я уже написал несколько статей, столкнулся с необходимостью подключать устройства ввода типа клавиатура, манипулятор мышь или джойстик. Если обратиться к тому, чем занимаются ретро-фаны, то проблем особых нет — старый добрый интерфейс PS/2 очень прост в реализации, он позволяет легко взаимодействовать с клавиатурой и мышью с минимальными ресурсами. Фактически PS/2 это последовательный синхронный порт работающий на низких скоростях, реализовать его можно программно. С ретро-джойстиками тоже проблем нет - положение джойстика это всего лишь замыкание контактов, что легко обрабатывается программно. Проблема в том, что всё это «ретро» постепенно уходит из нашей жизни, клавиатуры и мыши с интерфейсом PS/2 всё еще можно приобрести на маркетплейсах, но всё же редкость. И от джойстика хочется чего-то большего чем просто замыкания пяти контактов, а именно — градации положения стика. Такая фича доступна либо на очень старых аналоговых джойстиках, либо на современных геймпадах с USB интерфейсом. В конце концов я разрабатывают хоть и минималистичную, но современную систему с современной архитектурой (RISC-V) предназначенную для современного промышленного применения, а не для ретро-гейминга. ;-) В общем, встал вопрос как подключать простые HID устройства ввода через USB к своей синтезируемой ЭВМ.

Интерфейс шины USB на столько широко вошел в обиход, что мы даже не задумываемся что там внутри: сколько сигнальных проводов в USB кабеле, как они подключены, как передаются по ним данные, на каких скоростях и какие могут быть ограничения. Всё что мы знаем это то, что USB бывает разных версий: 2.0 — медленный и 3.0 — очень быстрый; и что USB устройства бывают с разными видами разъемов: USB type A и, с недавних пор, USB type C. Для большинства пользователей и программистов USB это такая штука, которую «вставил и работает». А если нет, то нужно вынуть, перевернуть устройство два раза вокруг его оси и вставить в компьютер еще раз. Если и так не заработало, то искушенный пользователь возможно вспомнит команду lsusb чтобы выяснить какие сейчас устройства присутствуют в системе или даже заглянет в dmesg чтобы выяснить наличие ошибок при детектировании устройства. Но что означают эти сообщения ? Еще меньшее число пользователей понимает результат вывода команды lsusb -v. Не многим лучше обстоят дела с пониманием USB у разработчиков электроники. Обычно на их уровне USB это четыре провода: GND, VBUS, D+ и D-, при этом каждый электронщик знает что D+ и D- это дифференциальная пара которую требуется трассировать на печатной плате соответствующим образом. Но так ли это на самом деле ?

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

Читать далее

Как получить скрытые метрики памяти в VMware vCenter

Fri, 11/28/2025 - 18:25

Всем привет! Я Игорь Голиков, ведущий разработчик ГК “Юзтех”.  В данной статье хочу рассказать о метриках памяти в VMware vCenter, в том числе как получить скрытые метрики. 

Статья может быть полезна SRE/DevOps и администраторам VMware vCenter, заинтересованным в получении «гостевых метрик» виртуальных машин, тем, кто хочет обосновать снижение выделенной виртуальным машинам памяти и сократить расходы без риска для производительности.

На одном из наших проектов возникла необходимость отслеживать использование памяти в гостевой ОС на виртуальных машинах под управлением VMware vCetner и формировать рекомендации по увеличению/уменьшению памяти выделенной виртуальной машине (rightsizing). Стандартные метрики памяти, доступные через vSphere Web Services API, не позволяют оценить объём памяти, используемой гостевой ОС.

Метрика (производительности) — это количественный показатель, который отражает состояние или поведение системы во времени (CPU, память, диск, сеть и т.д.).

Задача: найти метрику, показывающую объем памяти, потребляемой гостевой ОС и процессами в Linux системах с установленными Guest Tools.

Требования к метрике:

Читать далее

Человек, который слышал интернет: киберсенсорика завтрашнего дня

Fri, 11/28/2025 - 18:24

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

В этой статье мы рассматриваем футурологическую концепцию появления новых сенсорных органов, выращиваемых прямо в теле человека и подключенных непосредственно к нервной системе. Мы посмотрим, как прогресс в генетике, белковом дизайне, ИИ, нейробиологии и нейроинтерфейсах постепенно формирует технологический фундамент для подобных возможностей. Уже сегодня расшифровка генома, таргетные вирусные векторы, инструменты редактирования ДНК, а также улучшенное понимание работы мозга приближают момент, когда создание «биологической антенны» перестанет быть фантастикой.

Читать далее

BBQ в IBS: как мы организовали внутреннюю конференцию по тестированию и при чем тут Шуфутинский

Fri, 11/28/2025 - 18:23

«Мы замутим свой SQA Days — с головоломками и спикерами», — подумали мы с коллегами после посещения этой популярной конференции. И замутили!

Привет, Хабр! Я Татьяна Диановская, руководитель отдела ресурсного менеджмента в департаменте тестирования IBS. В этой статье расскажу, как мы в компании организовали свою внутреннюю конференцию для тестировщиков.

Читать далее

PostgreSQL Antipatterns? Анализ эффективности замены агрегатной функции MAX на ARRAY

Fri, 11/28/2025 - 18:19

Статья на Хабре "PostgreSQL Antipatterns: отказ от агрегатных функций = кратное ускорение" послужила отправной точкой для данного исследования. После ее изучения возникла гипотеза о возможности значительного повышения производительности PostgreSQL через замену агрегатных функций на конструкции ARRAY.

Читать далее

[Перевод] Новое исследование показывает, что за наше существование может отвечать «призрачная частица» из начала времён

Fri, 11/28/2025 - 18:05

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

Мы называем их нейтрино. Впервые они были обнаружены в начале 20 века, когда физики заметили, что в некоторых ядерных реакциях мы что-то упускали: энергия и импульс входов не равнялись выходам. Ответом оказалась новая, ранее неизвестная частица, продукт реакций, который сначала проскользнул незамеченным. Легендарный физик Энрико Ферми дал нейтрино их название, что на итальянском языке означает «маленькие и нейтральные».

Читать далее

90% программистов совершают эти ошибки. Как писать на Angular грамотно

Fri, 11/28/2025 - 18:01

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

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

В этой статье мы не будем говорить о базовых синтаксических ошибках или разбирать, где вы точку с запятой забыли. Речь пойдёт о более глубоком уровне, об архитектурных просчётах и антипаттернах, которые тиражируются из проекта в проект. Многие из этих привычек были допустимы в прошлом, но с приходом новых версий, вроде Angular 20, от них пора избавляться.

Читать далее

[Перевод] Как сократить количество Draw Calls (вызовов отрисовки) в UI Unity

Fri, 11/28/2025 - 17:40

В Unity UI часто тормозит не «крутая графика», а расползшееся число draw calls, которое тихо растёт вместе с канвасами, анимациями и материалами. В статье разбираемся, что именно делает каждый лишний вызов отрисовки, как с помощью Stats, Profiler и Frame Debugger найти проблемные места и какими приёмами — от грамотной структуры Canvas до атласов и батчинга — реально снизить нагрузку на мобильных устройствах.

Оптимизировать Unity UI

Kandinsky 5.0: линейка open-source моделей генерации изображений и видео нового поколения

Fri, 11/28/2025 - 17:23

В сентябре мы открыли доступ к Kandinsky 5.0 Video Lite, лёгкой модели с 2 млрд параметров для создания видео по тексту или на основе изображения. Теперь мы выкладываем в open source и все остальные модели линейки Kandinsky 5.0: Video Pro и Image Lite!

Читать далее

Who's online

There are currently 1 user and 1 guest online.