Что, если бы автотесты читались как сценарий?
Что, если бы каждый шаг был понятен, каждая метка — на месте, а отчёт — пригоден не только для QA, но и для бизнеса?
Так появился Scenax — DSL-фреймворк поверх Vitest и Allure, превращающий тесты в читаемые сценарии.
SSTV (slow-scan television) — телевидение с медленной разверткой, узкополосный формат передачи данных, позволяющий передавать изображения через эфир. В этой статье будут рассмотрены подробности кодирования, декодирования SSTV-сигнала.
Статья может быть интересна радиолюбителям, желающим познакомиться с новым форматом связи, а также тем, кто хочет в подробностях понять как же работает эта технология.
30 мая 2025 году состоялось мероприятие прямо в здании Сбербанка на Кутузовском проспекте. Конференция прошла уже не совсем в формате, как у ВТБ, доклады относительно длинные, но было заметно, как спикеры варьируют между тем, чтобы показать науку, и между тем, чтобы объяснить как можно популярнее. В этоге я думал, в формат ли развлечений мне переключиться и просто кодить под фан-доклады спикеров, или же очень загрузить себя кучей вопросов про то, как обобщить те или иные случаи в докладах, какие формулы уместны в контексте. Об этом я задумался еще на докладе, на котором выступал Иван Оселедец...
Читать далееВот вообще не очевидно. Отпуск, как ходить? когда ходить? зачем ходить?
Как я первый раз официально сходил в отпуск...
Читать далееМужчины, носители двух копий распространенного гена, в два раза чаще страдают деменцией, чем женщины с такими же мутациями. Всё это согласно новому исследованию австралийских ученых. Это открытие служит фундаментом для разработки методов раннего обнаружения причин деменции и своевременного вмешательства, чтобы снизить потенциальный ущерб мозгу.
Читать далееПочему умные люди читают глупые книги? Однажды возникнув, эта мысль не давала покоя, когда я читал комментарии под своей предыдущей статьёй – очевидно успешные, образованные люди с восторгом рассказывали о том, как читают литературный шлак: многотомные эпопеи культиваторов, боярку, истории про попаданцев в СССР…
Казалось бы, такого не должно быть – читать хорошие книги приятнее, чем плохие. Так как получается, что умные люди читают очевидно плохие книги? Ответ прост – они просто не могут отличить их от хороших. Читатели думают, что читают самые лучшие книги, какие только могут быть. Вот только это не так. Это не вкусовщина – велосипед ашанбайк объективно хуже, чем Montague Paratrooper. Он обеспечивает меньшее удовольствие от езды. То же самое относится и к плохим книгам.
В этой статье я постараюсь показать, что чтение хороших книг объективно приносит больше удовольствия, чем чтение книг плохих. Для этого я объясню, как отличать хорошие книги от плохих и кто на ком стоит в великой писательской пирамиде. Попутно вы узнаете какие приёмы используют авторы плохих книг, чтоб обеспечить продажи и как избежать ловушек удовлетворения врожденных потребностей.
Встречайте пирамиду писательских талантов!ИИ шагает по планете и входит в нашу повседневную жизнь. Но иногда преподносит сюрпризы. Некоторые из них - неприятные.
Моя заметка - об одном таком сюрпризе.
Читать далееПривет, Хабр!
Сегодня разберём, как устроен reflect.Value изнутри и что на происходит, когда вы вызываете .Field(i).
Доброго времени суток! В этой статье вы увидите продолжение того, как я создаю комикс с помощью ИИ. На этот раз создадим Японскую Мангу. Готовьте напитки с вкусностями и приглашаю вас к просмотру!
Начать читатьС ростом популярности и известности бесплатных игр, таких как Fortnite, CS: GO, PUBG и других, игры достигают поразительного числа игроков и набирают огромное количество игрового времени. Но с точки зрения продаж платных игр, какие игры являются самыми продаваемыми за все время? Ниже топ-10 самых продаваемых игр за все время.
И сразу небольшой спойлер. На фото создатель игры №1 по продажам.
Читать далееПривет! Это своеобразный ответ на недавнюю статью на Хабре "TIG сварка в домашней мастерской, начало." Сразу скажу, что с 95% изложенного там я согласен, но есть нюансы, которые хотел бы оспорить или уточнить. Здесь не будет подробного описания процессов, работы и подключения, предполагается, что читатель уже сам это изучил. Сам я айтишник (DataScientist), который в качестве хобби выбрал DIY и эксперименты у себя на балконе или в мастерской, и TIG сварку выбрал из-за её универсальности, о чём пойдёт речь дальше. Поехали!
Читать далееДля современной компании, будь то разработчик ПО, SaaS-провайдер или активный пользователь облачных платформ, CRM и аналитики, корректная обработка ПДн и уведомление Роскомнадзора – это уже не опция, а гигиенический минимум. Забыли или ошиблись? Готовьтесь к штрафам для юр лиц и ИП до 300 000 ₽ с 30 мая 2025 года. Если хотите доверия клиентов и беспроблемной работы — действуйте по закону.
Обязанность по регистрации в Роскомнадзоре затрагивает всех, кто собирает любые данные — от ФИО и контактов через сайт, мобильные приложения, до IP-адресов и cookies-файлов пользователей ваших SaaS-сервисов или интернет-магазинов.
В этой статье мы предоставим пошаговую инструкцию, которая поможет пройти регистрацию, учитывая специфику современных цифровых инструментов и снизить риски, связанные с неисполнением требований закона. Подробно рассмотрим, как избежать штрафов, что делать при трансграничной передаче, как легализовать аналитику, какие требования предъявляются к политике конфиденциальности и что обязательно должно быть на сайте компании.
Читать далееЧто если я скажу, что можно создать прошивку для ПЛИС на языке Verilog (VHDL), не написав ни одной строчки кода?
Читать далееЧто объединяет частицу в воде, биржевой курс и кота Барсика, бродящего по району в поисках ларька с рыбой?
Всё это — примеры случайного блуждания. Эта простая модель из теории вероятностей помогает описывать самые разные явления: от диффузии молекул до принятия решений и работы алгоритмов. Она кажется интуитивной — но за ней скрывается множество нетривиальных и красивых свойств.
Мы начнём с истории открытия броуновского движения — от наблюдений Роберта Броуна до формулы Альберта Эйнштейна, которая связала наблюдаемое явление с атомной гипотезой. Покажем, как идея случайного движения превратилась из гипотезы в надёжный инструмент научного анализа.
Затем перейдём к математической модели случайных блужданий, разберём, как она устроена и где используется. Научимся с ней работать: найдём среднюю скорость удаления, обсудим задачу о разорении игрока и вернёмся к нашему коту Барсику.
В завершение мы коснёмся неожиданной связи случайных блужданий с электрическими цепями, мыльными плёнками и графами — и покажем, как одна и та же задача может быть решена разными способами.
В финале — красивая задача для самостоятельного решения: её можно решить математически или запрограммировать симуляцию. Выбирайте способ по вкусу.
Читать далееВ этой статье расскажу, как продукция крупной аптечной сети была включена в товарную матрицу ВкусВилл, что позволило не только повысить продажи, но и обеспечить оперативную доставку заказов, включающих как продукты, так и лекарства. Совместная работа над проектом сократила время исполнения комбинированных заказов до менее чем двух часов. Кроме того, в ходе проекта был разработан универсальный API — программный интерфейс обмена данными, который оказался пригодным для большинства фармацевтических интеграций.
Читать далееПочему люди не используют типы чаще? Возможно все связано с тем, что опытные разработчики перестали использовать нерабочие паттерны, не оставляя за собой следов для новичков. В этой статье более детально разбирается недавно удаленный мной код с паттерном, который я называю «утка‑дублер». Вы сможете проследить процесс разработки типа, а также причину его удаления. Также мне хотелось бы попросить разработчиков на Rust документировать и делиться своими ошибками, чтобы мы все могли на них учиться.
Читать далееСалют, Хабр! Я думаю, каждый из вас знаком или, по крайней мере, слышал о такой прекрасной утилите как GoodbyeDPI (большое спасибо @ValdikSS!). Сегодня я хочу представить вам (почти) свою разработку - аналог GoodbyeDPI.
Около полугода назад в своей статье Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1 (заблокирована по требованию РКН) я рассказывал о том, как скачивать видео с YouTube на Python, а так как YouTube у нас "деградировал", я поделился инструментом, с помощью которого можно исправить этот вопиющий недостаток. Инструмент тогда выглядел достаточно сыро, и несмотря на то, что он выполнял свою задачу, требовал серьезных улучшений. Увидев интерес общественности, я решил допилить его, и вот, спустя полгода, после немалой работы, я рад представить вам NoDPI - проект, который явно не понравится РКН (и он опять меня заблокирует).
В этой статье я хочу рассказать о его возможностях, внутреннем устройстве, отличии от аналогов. Надеюсь, статья будет вам полезна и интересна. Поехали!
Читать далееКажется, ещё вчера искусственный интеллект был чем-то из фильмов и фантазий. А сегодня - он везде: в чатах, в рабочих инструментах, в личных помощниках. Мы удивительно легко впустили его в свою жизнь - с интересом, с восхищением, с доверием. И, казалось бы, что может пойти не так?
Читать далееСекретное оружие в .NET Core: Почему вы игнорируете мощь T-SQL?
Ваши LINQ-запросы становятся громоздкими? Производительность упирается в потолок? Возможно, вы упускаете нечто важное.
Эта статья — приглашение взглянуть на привычные инструменты под новым углом. Мы исследуем гибридный подход, который позволяет использовать весь потенциал Microsoft SQL Server, выходя за рамки стандартного взаимодействия через EF Core. Узнайте, как T-SQL может упростить сложные задачи, повысить производительность и сделать вашу архитектуру более гибкой.
Это не просто технический трюк, а переосмысление роли СУБД в современном приложении. Готовы узнать, как использовать "скрытые" возможности MSSQL и почему это может быть именно то, что нужно вашему проекту?
Читать об этомLegacy проекты на С++ зачастую являются многокомпонентными, когда продукт использует несколько библиотек, которые имеют различную архитектуру для работы с ними.
Обычно это:
библиотеки, поставляемые как ООП решение (Некоторые модули boost, SOCI как пример)
библиотеки, реализованные в функциональном стиле (OpenGL через С API, POSIX как пример)
Из-за этого в итоговом проекте появляются сущности, которые внутри реализованы через классы, но внутри методов класса идет обращение к обычным функциям. Некоторые библиотеки имеют специфичные функции, которые для своей работы требуют первоначальную инициализацию. Как пример: поиск подключенных устройств и получение на них ссылок для дальнейшей работы или функции, которые требуют инициализации большого количества памяти.
Вследствие этого возникает вопрос - как лучше реализовать покрытие юнит-тестами специфичных объектов, которые внутри себя имеют функции, требующие специальных условий для своей работы?