Forwarded from PVS-Studio: поиск ошибок в коде
Готовимся к деплою. На этот раз — прямо в ваши наушники 🎧
Скоро все расскажем.
Скоро все расскажем.
🍓1
🎧 Разбаговка #1
Пилотный выпуск нашего собственного подкаста! В нём с Настей Воробьёвой, маркетологом PVS-Studio, говорим про то, как синергия маркетинга и DevRel'а помогает эффективно решать маркетинговые задачи, а также о том, как эта синергия работает у нас.
🎧 Яндекс.Музыка
🎬 YouTube
Вообще в подкасте будем разговаривать на самые-самые разные темы, связанные с нашей любимой айтишечкой. Я буду вести выпуски про всякую техножесть, а Настя про всякое другое интересное. Уже готовим список интересных гостей, так что подписывайтесь и следите за обновлениями :)
🎤 feelin #podcast
Пилотный выпуск нашего собственного подкаста! В нём с Настей Воробьёвой, маркетологом PVS-Studio, говорим про то, как синергия маркетинга и DevRel'а помогает эффективно решать маркетинговые задачи, а также о том, как эта синергия работает у нас.
Вообще в подкасте будем разговаривать на самые-самые разные темы, связанные с нашей любимой айтишечкой. Я буду вести выпуски про всякую техножесть, а Настя про всякое другое интересное. Уже готовим список интересных гостей, так что подписывайтесь и следите за обновлениями :)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2🍓1
Сегодня проводим вебинар по теме «Экспертиза исходного кода». Будем говорить про code review в контексте того, как этот процесс понимает родная регуляторика.
Это уже 10-й вебинар из нашего большого цикла, повящённого разработке безопасного программного обеспечения и проводимого совместно с учебным центром МАСКОМ.
Понимаю, что тема стандартов и сурового бумажного инфобеза довольно специфичная, но по сегодняшней теме могу заверить, что даже ничего не зная про ГОСТы, можно вполне много интересного узнать.
Я например, заготовил масштабное душнение про чистый код, и вытекающие из него вопросы работоспособности и производительности, чего ни в каком ГОСТе не напишут.
Подключайтесь по ссылке сегодня в 16:00.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1🍓1
Вы уже наверняка видели новые модели яблочных девайсов, поэтому не буду лишний раз рассказывать про то, какие спеки у какого нового IPhone, там более, что это не самое интересное.
Самым интересным в презентации оказался новый IPhone Air, который имеет ширину 5.6 (!) мм. И я очень жду выхода и отзывов именно на эту модель, потому что это действительно может стать некоторой революцией.
В последнее время девайсы, которые мы называем мобильными, имеют тенденцию становиться довольно громадными лопатами. И если про вес разработчики ещё стараются, то вот необходимая мощность и автономность устройства заставляет делать его в виде толстенького кирпичика.
Если опыт Apple окажется удачным, то скоро мы увидим, как и другие компании будут постепенно делать свои устройства меньшей ширины.
Ранее, кстати, Apple уже заводили подобную моду, когда на смену кирпичному IPhone 5 пришёл элегантный и тонкий IPhone 6. Сколько тогда шуток-то кстати было, что в задний карман джинс его лучше не класть - мол, треснет.
Буду следить, как IPhone Air себя покажет. Тим Кук обещает производительность на уровне модели Pro, но это, на самом деле, и не главный вопрос.
Куда важнее - а что с автономностью?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🍓1
Выпустил новую статью. В этот раз рассказываю про то, какие интересные баги нашлись в проекте Apache NiFi.
Apache NiFi — это бесплатный инструмент с открытым кодом для сбора, обработки и перемещения данных. Сначала он разрабатывался в американском агентстве безопасности, а в 2014 году стал открытым и вошёл в экосистему Apache. Сегодня NiFi часто используют в проектах с большими данными.
Честно сказать, не ожидал найти в этом проекте всё то, про что в итоге написал текст. Баги действительно интересные, а местами даже забавные :)
Читать:
- на русском
- на английском
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Баги носят данные. Проверка Apache NiFi
Сбор, обработка и перемещение данных — ключевые процессы в IT. Но что, если они нарушатся из-за коварных багов в коде? Рассказываем об ошибках, найденных статическим анализатором в проекте Apache...
🍓2🔥1
feelin
Кстати, раз вчера я рассказывал про статью с проверкой open-source проекта — продолжу тему.
Open source — это один из главных двигателей нашей индустрии. Раньше, когда большинство решений были проприетарными и платными, развитие технологий шло медленнее. Сегодня же — под любую задачу можно найти репозиторий на GitHub, использовать готовый код, внести свой вклад и даже сделать его лучше. Это мощный тренд, который изменил то, как мы создаём программное обеспечение.
Но возникает вопрос: а отличается ли код open source проектов от коммерческого? В целом — нет. Это тот же самый код, просто написанный в другом процессе: с сообществом, pull request'ами и постоянной критикой. А раз так — почему в нём не может быть ошибок? Именно эта логика и подтолкнула нас к созданию целого жанра статей в корпоративном блоге, где мы проверяем open-source проекты с помощью PVS-Studio.
Есть только одна проблема: у нас не хватит рук, чтобы проверить ВСЁ. Да и вообще — никто не сможет проверить весь необъятный open source.
Поэтому мы предлагаем разработчикам открытых проектов взять ситуацию в свои руки — проверять код своих проектов самостоятельно. И самое приятное: делать это бесплатно.
Как именно это сделать с помощью PVS-Studio — подробно описано в статье Статический анализ в open source проектах с помощью PVS-Studio (версия на английском здесь).
Если вы участвуете в разработке open-source проектов на C, C++, C# или Java — you're welcome!
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Статический анализ в open source проектах с помощью PVS-Studio
Хотите, чтобы ваш open source проект был чище и безопаснее? Рассказываем, как использовать PVS-Studio для регулярного анализа кода, внедрить его в CI и находить баги до их попадания в релиз. И да,...
🍓2
Внезапно для себя попробовал сегодня новую версию IDE Visual Studio.
Microsoft выпустили insiders-версию Visual Studio 2026, которую уже можно скачать с их сайта и попробовать.
Должен сказать, что интерфейс среды стал сильно легче. Одна из проблем, по которой ранее Visual Studio мне казалась неудобной - это её внешний вид, больше похожий на панель управления самолётом, чем на инструмент для разработчиков.
Также Microsoft обновили дизайн, подогнав главную среду разработки для своей платформы в стиль, этой платформе соответствующий. Visual Studio наконец-то получила тот самый Fluent Design, который уже используется в Windows 11 и многих других приложениях Microsoft, например, в Windows Terminal.
Пока ещё есть вопросы по поддержке конкретных функций, например, настройки перерисованы в новый дизайн, но при открытии пунктов меню внезапно появляется такое же окно настроек, что и в Visual Studio 2022, так ещё и поверх нового :)
Также у меня, например, возникло ощущение, что новая Visual Studio работает чуть побыстрее, однако коллеги подсказали, что тут раз на раз не приходится. У кого-то работает быстро, у кого-то ещё хуже, чем предыдущие версии.
Ну и, естественно, какая IDE в 2025 году может выйти без знаменитого "AI AI AI AI AI AI AI AI". Microsoft интегрировали свой Copilot глубже в среду разработки. Местами это бесполезные возможности, но местами звучит прикольно и даже претендует на слово "удобно". Например, теперь в Visual Studio с помощью Собутыльника можно будет искать локации в исходном коде, указав человеческим языком, что именно нужно найти.
Ждём полноценного релиза и смотрим, что же будет дальше. Также напомню, что вместе с новой Visual Studio в релиз выходят C# 14 и .NET 10.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1🍓1
Короткий пост с рекомендацией в продолжение моего распределённого техноблога :)
Слухи о том, что с новой прошивкой старые яблочные модели начинают работать медленнее и меньше, ходят уже давно, более того, подкрепляются опытом разных людей.
Ребята из Rozetked выпустили классный ролик о том, так ли это. В видео - проверка разных моделей IPhone на разных версиях IOS с замерами разных характеристик. Если не видели - очень рекомендую, это действительно интересно.
И не сочтите за злорадство человека с телефоном от Google. Просто очень люблю наблюдать за тем, как Apple всё больше и больше походит на "корпорацию зла" :)
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Как новые версии iOS влияют на батарейку и производительность?
Идеальный телевизор от Dreame (пока ещё по скидке для зрителей Rozetked) — https://clc.to/9rS2zA
В этом ролике я хочу ответить на два вопроса: 1. Замедляет ли Apple «айфоны» с выходом новых iOS (и в частности iOS 26), 2. Влияет ли iOS 26 на автономность…
В этом ролике я хочу ответить на два вопроса: 1. Замедляет ли Apple «айфоны» с выходом новых iOS (и в частности iOS 26), 2. Влияет ли iOS 26 на автономность…
🍓1
Начнём с гиковской духоты - на прошедшей неделе на Амедиатеке вышел новый сезон сериала Peacemaker Джеймса Ганна (не суть важно, что за сериал на самом деле). Невиданная для сегодняшних времён история - флагманский сериал HBO Max официально на русском языке да ещё и в день выхода! Магия, не меньше! Но оказалось, что магия эта не обошлась без подводных камней. Сам сериал с рейтингом R, т. е. имеет некоторые своеобразные сцены, поэтому эти сцены из него для российских стримингов успешно вырезали :). Насколько представляю, что могли порезать, непосредственно на сюжет сериала это влияет слабо.
Однако, есть ситуации, даже на том же сервисе, когда вырезают и целые сюжетные линии. Например, я последний месяц смотрю сериал The Sopranos (зумер добрался до классики), и, смотря шестой сезон, заметил, что вырезаются целые диалоги. Так ещё и довольно криво: персонажи встречаются, начинают о чём-то говорить, а потом на полуслове кат и следующая сцена. Когда со своими подозрениями я пошёл в Гугл, оказалось, что я пропустил целую ветку сюжета про одного персонажа, вырезанную из русскоязычной версии из-за нескрепности.
Чего это вдруг я про сериалы-то заговорил? Появление стриминговых сервисов сильно изменило сферу развлечений. Цифровизация и удобство домашнего просмотра привели к тому, что у каждой серьёзной голливудской студии есть собственный стриминговый сервис. У нас же, в России, подобные сервисы отличались невероятной свободой того, о чём дозволено было рассказывать. Посмотрите только на список ориджиналсов Кинопоиска, которые выпускались года четыре назад - сегодня такое и представить трудно.
И тут вспоминается, что и с интернетом у нас было также. Когда-то рунет был местом свободы и творчества (рекомендую документальный сериал "Холивар", он очень интересно рассказывает историю "нашего" интернета), а сегодня при упоминании слова "рунет" в голое возникает картинка с Чебурашкой и всплывает имя некоего Максима, которого в приличных кругах принято отправлять подальше.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🍓1
Итак, история отчественного игрового движка завершилась, едва успев начаться. 15 сентября в СМИ появилась информация о том, что юрлицо разработчика Nau Engine с конца августа находится в процессе ликвидации. И, на самом деле, это довольно грустная история.
Идея проекта в вакууме кажется довольно классной. Почему бы, собственно, и не появиться собственному игровому движку в России? Но вот если задуматься чуть больше, то можно понять, что этот план не просто содержит дыры, он из них состоит.
Какую проблему должен был решить Nau Engine? Возможность выхода на отечественных платформах? Окей, а какие эксклюзивные отечественные игровые платформы существуют? Верно, никаких. Можно отметить только какой-нибудь VK Play, но все нормальные игры оттуда также выходили в Steam (Atomic Heart, например), а поделки типа Смуты не то чтобы настолько популярные и качественные, чтобы платформа была кому-то нужна.
Итого получается, что Nau Engine был придуман только для того, чтобы быть придуманным (ну и для кое-чего ещё -
И это не значит, что в России нет крутых игровых разработчиков. Я уже упомянул Atomic Heart, которую разрабатывали Mundfish, ещё классный пример - студия Owlcat Games, которые сделали игру аж по самому Warhammer 40000. Но проблема в том, что данные студии ориентируются на мировой рынок, поэтому даже если имеют полный штат русскоязычных разработчиков, то зарегистрированы всё равно где-нибудь на Кипре.
Ну и представьте, что такая студия будет питчить перед правообладателями или инвесторами проект на движке, который мало того, что спонсируется подсанкционной компанией (главный инвестор проекта - VK), так ещё и неясно как работает, когда к Unreal Engine у тех же инвесторов уже есть кредит доверия (несмотря на то, что нормально делать игры на Unreal Engine 5 никто до сих пор не научился).
Чтобы отечественный геймдев существовал, недостаточно придумать свои инструменты и платформы, и пересадить всех на них, заблокировав все остальные варианты. Нужно инвестировать в разработку проектов и следить за их качеством, чтобы не получилась очередная Смута. Нужно показать реальный пример того, что игровые проекты, полностью ориентированные на Россию, могут быть успешными и популярными. Но, хорошо подумав, закрадываются сомнения - а могут ли?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Много рассказываю на своих докладах про то, почему регулярный статический анализ важен, но доклады - такая штука, где не получится сильно углубиться в детали конкретного юзкейса.
Поэтому я "решил проблему гениально" - выпустил на Хабре целую трилогию статей с рецептами на все случаи жизни :)
Слева направо:
1. Нужно разобраться, как оптимизировать время работы анализатора, и не тратить время на анализ того, что не требуется в регулярном анализе конкретных изменений. Для этого подойдут различные вариации инкрементального анализа. Об этом первая статья - Рецепты для регулярного статического анализа кода.
2. Чтобы достичь регулярности анализа, потребуется автоматизация. Лучшим вариантом автоматизировать статический анализ будет его использование в процессе непрерывной интеграции (CI). О том, как это сделать, вторая статья - Статический анализ Pull Request'ов — ещё один шаг к регулярности.
3. После того, как анализ в CI пройдёт, нужно как-то обработать результаты. Здесь нам поможет почтовая рассылка и веб-интерфейсы, в которых можно будет всей командой обрабатывать полученные срабатывания. Об этом третья статья - Управление результатами статического анализа.
Несмотря на то, что в текстах описаны рецепты для вполне конкретного анализатора PVS-Studio, всё же статьи опираются на общепринятые практики, поэтому воспользоваться описанным получится для любого используемого инструмента.
Please open Telegram to view this post
VIEW IN TELEGRAM
🍓2
🎧 Разбаговка #2
Новый выпуск нашего собственного подкаста! В нём поговорили с CEO OpenIDE, Фёдором Сазоновым. Обсудили язык Java, устройство современных инструментов разработки и то, что на самом деле важно, когда создаёшь среду для других программистов.
🎧 Яндекс.Музыка
🎬 YouTube
🎤 feelin #podcast
Новый выпуск нашего собственного подкаста! В нём поговорили с CEO OpenIDE, Фёдором Сазоновым. Обсудили язык Java, устройство современных инструментов разработки и то, что на самом деле важно, когда создаёшь среду для других программистов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Недавно видел пост из соцсети, в названии которой только первая буква из всем известных трёх, про то, что вайбкодеры оставляют свои креды от API ChatGPT прямо в исходном коде своих репозиториев, которые при этом ещё и не закрытые.
История действительно забавная, правда с излишним злорадством, да и с небольшой манипуляцией. Автор указывает, что поиск
OPENAI_API_KEY по коду репозиториев выдал аж 1.6 миллиона результатов, но вполне вероятно, что большое количество результатов поиска будет комментариями.Вспомнил историю, которую давно хотел рассказать, а тут и повод есть. На одном из хакатонов, на котором участвовал ещё на заре своей айтишной карьеры, мы делали веб-приложение. Но не простое, а
И токен бы продолжил там лежать дальше, если бы месяц назад мой давным-давно написанный бот не прислал мне рекламу гемблинга :)
А вы что-то про искусственный интеллект переживаете. Вот оно настоящее восстание машин!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🤯1
Итак, MAX взломали. Не то чтобы ожидалось, что этого не произойдёт, больший интерес вызывали предположения по поводу того, когда это случится. Я лично вчера после появившихся новостей с невероятным хохотом встречал по пути из аэропорта рекламу про невероятную безопасность отечественного мессенджера.
Стоит отметить, что те данные, которые хакерами были получены про каждого пользователя - это довольно небольшой набор. Да, в любом случае плохо, что они утекли, в любом случае это персональные данные, но, например, с точки зрения интеграции в Госуслуги, всё оказалось действительно безопасно, ведь разработчики использовали OpenID Connect. Благодаря такой схеме авторизации, на стороне MAXа остаётся только ID пользователя для Госуслуг (этот же ID есть в слитых данных). Проблема пострашнее в том, что и Госуслуги уже давно взламываются и сливаются. Поэтому со взломом MAXа база слитых данных о людях расширится.
Я не то чтобы оправдываю произошедшее, просто было интересно, как это оказалось, что регулятор проверял MAX, да ещё и довольно публично, а буквально через 2 месяца его ломают. Так оказалось, что регулятор проверял именно то, что и не сломалось :)
В итоге думается: "А ожидалось ли что-то другое?". Возможно, здесь проблема и не в техническом состоянии MAXа. Точнее в нём, но опосредованно - если ты привлекаешь так много внимания к подобному продукту, нужно быть уверенным, что его безопасность непоколебима. А Максим полагался на старый добрый авось.
Please open Telegram to view this post
VIEW IN TELEGRAM
🙈2🍓1
feelin
🎧 Разбаговка #2 Новый выпуск нашего собственного подкаста! В нём поговорили с CEO OpenIDE, Фёдором Сазоновым. Обсудили язык Java, устройство современных инструментов разработки и то, что на самом деле важно, когда создаёшь среду для других программистов.…
Частично затрагивали эту тему с Фёдором в подкасте, однако решил также написать отдельный пост.
Недавно пробежала новость о том, что JetBrains начнут обучать свой ИИ на том коде, который пишется в их IDE на некоммерческих лицензиях. Пока что такую фичу можно будет выключить.
В целом, логично, что AI Assistant как-то нужно дообучать, но интересно, насколько некоммерческий код будет для этого подходить. Видимо предполагается, что это будет Open Source, но есть же ещё студенты, например. Да даже если оставить только Open Source, там код не всегда самый качественный, а хотелось бы.
Но вполне возможно, что вопрос не в качестве написанного, а в поддержке всё более новых паттернов, на основе которых AI будет что-то подсказывать. В таком случае главным будет количество, а не качество пользователей с включённой в настройках галочкой.
Интересно ещё то, что за последний год JetBrains добавили ко многим своим инструментам возможность некоммерческого использования. Ранее Community версия была только у IntelliJ IDEA и PyCharm. Изначально было неясно, с чего это вдруг такая щедрость, а теперь понятно, что такие изменения в политике лицензирования были нужны как раз для таких изменений в лицензионном соглашении.
В целом, довольно интересный подход, да и вариант выбран максимально мирный. Если ты пишешь некоммерческий код, то, вероятнее всего, он должен решать какую-то проблему или как-то помогать. Некоммерческий код, написанный в JetBrains IDE будет помогать ещё одним дополнительным способом.
JetBrains нужно выдерживать конкуренцию против полноценных coding агентов и IDE по типу Cursor, поэтому вполне понятно, с чего AI Assistant появился, и с чего сейчас происходят такие изменения.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Ещё не до конца осознали Python 3.14, а уже приняты новые PEP'ы.
В Python 3.15 наконец появятся «ленивые» импорты. Данное нововведение было принято с PEP 810 - Explicit Lazy Imports.
Смысл такого импорта в том, что мы импортируем модуль только при первом обращении к нему, что позитивно повлияет на время запуска проектов.
Объявляться подобные импорты будут с помощью нового ключевого слова
lazy:lazy import json
Также был принят PEP 798 - Unpacking in Comprehensions. Это чистой воды сахар, расширяющий возможности генераторов.
Благодаря такой возможности теперь, например, можно будет пересобрать матрицу в одномерный массив с помощью одной строки:
matrix_list = [*item for item in matrix]
В текущей версии языка для решения подобной задачи пришлось бы отказаться от генераторов или использовать генератор с 2 циклами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Осенний сезон выступлений в этом году выдался, мягко сказать, насыщенным, а значит пришло время для серии постов в жанре деврельского тревел-блога :)
В самом начале осени ездил на конференцию Город IT, которая проходила в Томске. Ребята из Infotecs позвали выступить на их треке, посвящённом информационной безопасности.
В этом году уже вторая поездка в столь отдалённые уголки необъятной, ранее с подобными же целями попадал в Новосибирск. Всё ещё думаю поехать выступать на конференцию во Владивосток, желательно поездом :)
В этот раз рассказывал про свой любимый SAST. Так получилось, что чем больше про SAST рассказываешь, тем ещё больше про него появляется, что сказать в будущем. Но в этот раз без лишней душниловки, хоть и с небольшим количеством нормативки :)
Запись этого доклада уже выложили на нашем сайте. Почему-то, правда, на записи кто-то выкрутил басы на максимум, как будто я вещаю из сабвуфера, но всё равно получилось слушабельно!
Please open Telegram to view this post
VIEW IN TELEGRAM
PVS-Studio
SAST под микроскопом: как избежать уязвимостей в исходном коде?
SAST — это основа безопасной разработки, позволяющая находить уязвимости в коде до его выполнения. В докладе разобрали, как работает SAST, и почему его важно интегрировать в процесс разработки как можно раньше. Поговорили о типовых ошибках и уязвимостях,…
🦄1
Интересная новость: Collins Dictionary объявил словом года vibe coding - подход к разработке программного обеспечения, при котором разработчик описывает задачу на естественном языке, а модель генерирует код, минимизируя ручной труд.
И, если подумать, это слово действительно появилось только в феврале этого года, но за прошедшее время уже стало довольно широко употребляемым. Говорят, что впервые его употребил Андрей Карпатый (ex Director of AI в Tesla и founding member в OpenAI).
Ещё интересно вспомнить, в каком ключе это слово употреблялось. Помнится, что в феврале кроме негатива и иронии при его использовании ничего не было. Сегодня же успели появиться целые разработчики, у которых из инструментария только всякие Claude да Cursor.
Стоит заметить, что слово 2025 года по версии Collins Dictionary продолжает ранее начатую тенденцию: в 2023 году словом года признали AI.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Уже несколько постов написал про Python 3.14 и даже про 3.15, а про самую интересную фичу, ради которой все стараются, так и не сказал :)
В Python 3.14 появились free-threaded сборки, которые выключают Global Interpreter Lock (GIL), т. е. включают реально параллельное выполнение Python кода между несколькими ядрами CPU.
GIL, если вдруг вы не знали, - это штука, которая одновременно разрешает только одному потоку выполнять байткод Python.
В отличие от экспериментальной сборки как в Python 3.13, в этот раз режим без GIL, хоть и не является режимом по умолчанию, но уже является официально поддерживаемым, и текущий статус free-threaded Python соответствует тому, что описано в PEP 779.
Для сохранения обратной совместимости на данный момент есть возможность включить GIL обратно прямо в рантайме. Это будет удобно для того, чтобы сгладить переход к free-threaded коду и зависимостям, которые ещё не готовы к работе без GIL.
Free-threaded Python - одна из самых больших вещей, которую разработчики языка делают на данный момент, поскольку она должна сильно улучшить дела с производительностью Python приложений. И на том, что достигнуто, останавливаться разработчики не планируют. Через несколько релизов сборка с GIL будет недоступна по умолчанию, а сейчас ведётся работа над вторым этапом поддержки free-threaded.
Please open Telegram to view this post
VIEW IN TELEGRAM