Обновить

Моя лента

Тип публикации
Порог рейтинга
Уровень сложности
Предупреждение
Войдите или зарегистрируйтесь, чтобы настроить фильтры
Пост

Нарезка кода: что скрывает OrcaSlicer

Как не пропустить опасные участки кода при ревью? Можно воспользоваться инструментами статического анализа. Возьмём для примера OrcaSlicer — популярную программу, которая подготавливает 3D-модель к печати. Заглянем внутрь и посмотрим, какие сюрпризы нас ждут.

Посмотрим на одно из предупреждений статического анализатора PVS-Studio:

V1047 Lifetime of the lambda is greater than lifetime of the local variable ‘do_stop’ captured by reference. FillBedJob.cpp 250

void FillBedJob::process(Ctl &ctl)
{
  // ....
  bool do_stop = false;
  // ....
  params.on_packed = 
    [&do_stop] (const ArrangePolygon &ap)
    {
      do_stop = ap.bed_idx > 0 && ap.priority == 0;
    };
  // ....
}

Лямбда-выражение захватывает локальную переменную do_stop по ссылке, а затем сохраняется в params.on_packed. При этом do_stop уничтожается при выходе из метода process, так как заканчивается время жизни локального объекта. Если лямбда будет вызвана после выхода из этой функции-члена, произойдёт обращение к разрушенному объекту, и поведение в этой ситуации не определено.

Можно было бы сделать захват по значению, но в этой лямбде происходит перезапись переменной do_stop, а значит такой вариант не подходит. Поэтому можно сделать do_stop членом класса FillBedJob.

Это лишь один фрагмент, показывающий, что даже в работающем продукте могут быть ошибки. А другие опасные места в коде OrcaSlicer разобрали в новой статье.

Если вы тоже хотите минимизировать ошибки в своих проектах, сделайте статический анализ частью регулярного процесса, а поможет с этим PVS-Studio.

Теги:
+6
Комментарии0
Статья

Студенты-медики массово выпускают сомнительные исследования с помощью популярного инструмента

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели8.1K

Каждое утро Джошуа Ван садится за компьютер с булочкой и банкой охлаждённого чёрного кофе, чтобы поискать последние статьи, основанные на данных популярной исследовательской платформы TriNetX. В последние годы резко возросло количество исследований, основанных на данных этой платформы, которая предоставляет доступ к анонимизированным электронным медицинским картам более 300 миллионов пациентов в США и за рубежом. Ван, нейробиолог из больницы «Тайбэй Цзу Чи», который обучает местных исследователей работе с TriNetX, заметил и другую тенденцию. По его словам, некоторые результаты выглядят «немного подозрительно».

Он и другие специалисты полагают, что эта простая в использовании платформа, возможно, позволяет неопытным исследователям — потенциально при помощи искусственного интеллекта (ИИ) — с беспрецедентной скоростью выпускать ненадёжные и совершенно предвзятые исследования. «Мы видели множество таких исследований, проведённых с помощью TriNetX, и у всех у них очень схожие недостатки, — говорит Сами Суисса, фармакоэпидемиолог из Университета Макгилла. — Создаётся впечатление, что они постоянно обнаруживают разные впечатляющие эффекты и замечательные преимущества лекарств по всем видам исходов».

Читать далее
Статья

65 бесплатных уроков июля: от LLM и RAG до Kubernetes, Go и QA

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.4K

Профессиональный рост часто упирается в конкретные слепые зоны: где демо AI-агента расходится с продакшеном, как выбирать платформу для AI-ворклоадов, почему ломается тестирование API или что происходит в сетях ЦОД.

В дайджесте — 65 бесплатных уроков от преподавателей-практиков: с прикладными разборами, живыми вопросами и возможностью быстро свериться с тем, куда движутся разные IT-направления.

Выбрать свою тему
Статья

Не только красные и синие — новые серверные процессоры от Qualcomm и Hygon

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели10K

Дуополию двух крупнейших игроков рынка серверных CPU периодически «разбавляют» остальные игроки. Из успешных сразу вспоминаем NVIDIA с их Grace™ для собственных AI-систем, AWS Graviton для внутреннего использования и «коммерческий» Ampere Computing. Но сегодня речь пойдет о двух новинках более нишевых игроков: китайских Hygon и известного по смартфонам Qualcomm. Две новинки ARM®- и x86-процессоров в новости под катом.

Читать далее
Статья

Делаем отказоустойчивое файловое хранилище поверх JPEG-файлов

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели6.2K

Что, если хранить зашифрованный контейнер не в одном файле, а распределять между несколькими JPEG-изображениями? Причём так, чтобы потеря части изображений не приводила к потере данных. В этой статье мы посмотрим, как может работать такая схема, и разберём её основные принципы без погружения в код.

Читать далее
Статья

Совет требует ИИ, а данные не готовы. Как ESM даёт фундамент, который не провалит пилот

Время на прочтение4 мин
Охват и читатели5.9K

В прошлой статье мы обсудили, почему ИИ-инициативы в компаниях, даже с большими деньгами и ресурсами, просто проваливаются. Коротко говоря, если у ИИ нет качественных данных, проект скорее всего обречён — по данным Gartner, 60% ИИ-проектов не доходят до продакшена из-за неготовности данных и процессов.  В этот раз поищем решение: как собрать все заявки в одном месте и научить модель делать то, что вам нужно — уничтожать рутину.

Читать далее
Статья

Машинное зрение: патенты в мире и в России

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.8K

Машинное зрение (МЗ) — это технология, которая позволяет компьютерам и другим устройствам интерпретировать визуальные данные из реального мира. Это область искусственного интеллекта и робототехники, которая включает в себя получение изображений, их обработку и использование полученных данных для решения прикладных задач без участия человека. Краткая история МЗ публиковалась на Хабре в нашем блоге здесь и тут

Пришло время рассказать про россйские и зарубежные патенты и свидетельства в этой сфере.

Читать далее
Статья

Задача коммивояжера: обходим 750 точек за 5 сек

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.9K

Доброго времени суток . Спасибо всем заинтересовавшимся моей статьей. Задача коммивояжёра — одна из самых известных задач комбинаторной оптимизации. Её суть заключается в поиске самого выгодного маршрута, который проходит через указанные города по одному разу с последующим возвратом в исходный город. Уже при небольшом числе городов >20 задача не может быть решена методом перебора вариантов за приемлемое время.

Для решения задачи коммивояжёра существует большое количество методов и алгоритмов, самые распространённые — поисковые алгоритмы. Лидеры среди них — генетические алгоритмы и алгоритмы колонии муравьёв.

Я придумал свой вариант.

В статье «Сравнение производительности генетических алгоритмов и муравьиных алгоритмов применительно к задаче коммивояжера Авторы: Sabry Ahmed Haroun, Benhra Jamal, El Hassani Hicham Лаборатория LISER, ENSEM, UH2C Касабланка, Марокко.» от May 2015. Приводятся результаты тестов. Генетический алгоритм был разработан на C++. Муравьиный алгоритм оптимизации был написан на C#.

Читать далее
Статья

Кастомизация Битрикс24 на платформе Вайбкод: создаём паспорт клиента

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели8.8K

Тестируем платформу Битрикс24 Вайбкод для создания полезных приложений в своём бизнес-портале с помощью ИИ-агентов.

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

Читать далее
Статья

Жизнь после RAG: как мы построили ИИ-агента для анализа тикетов технической поддержки

Время на прочтение11 мин
Охват и читатели7.1K

Привет! Меня зовут Владимир Дробот, я SRE-лид и руководитель центра техподдержки кластера рекламных технологий компании МТС Web Services. Наша команда отвечает за вторую линию саппорта: мы разбираем сложные инциденты, ищем корни проблем и передаем разработчикам те баги, которые упираются в код или архитектуру.     

Для решения задач инженерам приходится работать одновременно с Jira, Confluence, логами и базами данных. Несмотря на существующую документацию, много времени уходило на поиск информации и анализ уже решенных инцидентов. Недавно мы внедрили систему поиска на базе RAG: общее описание и технические детали. Наше решение объединило данные из Jira и Confluence в единую поисковую систему, инженеры получают ответы на вопросы на естественном языке.

Подход дал заметный эффект, однако со временем стало понятно, что основное ограничение заключается не в качестве поиска. Чтобы получить пользу от RAG, инженер должен сначала понять, что именно искать. Это особенно актуально при разборе инцидентов: причина проблемы неизвестна и непонятно, какие данные понадобятся для анализа и какие запросы следует сформулировать. В результате инструмент использовали не во всех типах задач.

Кроме того, было сложно объективно оценивать влияние решения на качество поддержки. Мы получали положительную обратную связь, но не могли точно измерить, насколько быстрее или качественнее стали решаться тикеты. Тогда мы решили: если система уже умеет искать информацию и анализировать найденные материалы, почему бы не поручить ей первый этап расследования инцидента целиком?

Читать дальше
Статья

MySQL ⇄ Excel. Консольный скрипт конвертации данных

Время на прочтение3 мин
Охват и читатели5.1K

В сети до сих пор висят мануалы из 2013, где предлагают писать громоздкие скрипты на PHP с библиотекой PHPExcel или использовать встроенный импорт через веб-интерфейс phpMyAdmin. На практике эти методы спотыкаются на первой же тысяче строк: слетают кодировки, ломаются форматы дат, а дробные числа округляются до целых.

При взаимодействии разработки с менеджментом или бухгалтерией регулярно всплывает одна и та же задача. Нужно либо выгрузить таблицу из базы в Эксель для отчёта, либо, наоборот, залить обратно в СУБД тяжелый xlsx. файл со свежими ценами или списком контрагентов. Настраивать тяжелые ETL-системы ради разовой выгрузки неэффективно. Проблема решилась написанием короткого CLI-скрипта на Python - mysql_bridge. Утилита обеспечивает сквозную двустороннюю конвертацию данных, автоматически анализирует структуру и сохраняет исходные типы на лету. Исходный код скрипта и Readme Здесь. Если Вас заинтересовала или статья была полезна, поддержите звездочками.

Как устроен двусторонний мост

Вся логика инструмента умещается за счёт связки pandas, sqlalchemy и движка openpyxl. Скрипт работает с файлами Эксель напрямую на уровне бинарного кода, поэтому его можно запускать на серверах без установленного офисного софта. Утилита работает в двух режимах.

Читать далее
Статья

Гуманоидные роботы: От лабораторных экзоскелетов до домашних ассистентов за 40 тысяч долларов

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели5.1K

Интервью с Сергеем Лоншаковым, архитектором проекта «Робономика»: о том, почему роботы будут в спортивных костюмах, сколько стоят их пальцы и когда они начнут разбирать посудомойку.

Гуманоидные роботы перестали быть фантастикой — они стали реальностью, которая постепенно входит в нашу жизнь. Но так ли близок день, когда робот-помощник будет разбирать посудомойку, выносить мусор и встречать гостей? О том, что происходит в индустрии на самом деле, мы поговорили с Сергеем Лоншаковым — визионером компании AIRA и архитектором проекта «Робономика». За плечами Сергея — более десяти лет экспериментов с робототехникой, три поколения выпускников ИТМО и множество проектов от дронов-доставщиков до роботов-вафлипекарей.

Читать далее
Статья

Инструкции по охране труда никто не читает. Как единая платформа и база знаний меняют ситуацию

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели4.5K

На большинстве предприятий охраны труда на бумаге больше, чем в реальности: инструкции подписаны, журналы заполнены, отчёты красивые — а на производственной площадке народ продолжает ходить по цеху без каски, ставить стремянку «как получится» и выезжать на склад без осмотра погрузчика.  Формально система работает, но каждый руководитель производства знает: один невнимательный шаг — и вы теряете смену, оборудование, репутацию и деньги. На этом фоне «разбор полётов» и штраф от инспекции — лёгкий испуг и не более.

Читать далее

Ближайшие события

Статья

IP, браузер, TLS: три слоя, на которых палится парсер

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели7.7K

С чего все началось

Хотел простую вещь: отслеживать цену на пару товаров, которые ждал со скидкой. Чтобы не заходить руками каждый день, а получить уведомление, когда подешевело.

Думал, это вечер работы. requests.get(), выдрать цену, сравнить, отправить в телегу (упрощенно, конечно).

Оказалось, парсинг цен на маркетплейсах — это не про HTTP‑запрос. Это про репутацию IP‑адресов, про то, как браузер выдает себя поведением, и — на финале — про пост‑квантовую криптографию в TLS‑рукопожатии. Три площадки (Ozon, WB, Яндекс.Маркет) дали мне три совершенно разных уровня защиты, и на каждом я застревал по‑своему.

Читать далее
Статья

«Гражданин, обновитесь»: анализ вредоносной кампании Falcon

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели12K

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

Читать далее
Статья

Автоматизированный анализ архитектурных и объемно-планировочных решений на базе ЦИМ с применением программы BIMIT

Время на прочтение5 мин
Охват и читатели4.9K

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

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

Читать далее
Новость

Единый маркетплейс М.Видео: компания полностью объединяет онлайн-каналы М.Видео и Эльдорадо

Время на прочтение2 мин
Охват и читатели5.2K

С 1 июля сайт и мобильное приложение Эльдорадо объединяются с онлайн-платформой М.Видео. Теперь ключевыми цифровыми каналами продаж Компании становятся сайт и мобильное приложение М.Видео, на базе которых продолжится развитие единого маркетплейса.

Читать далее
Статья

06.2026 Моя подборка полезных статей на habr за июнь про агентную разработку

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.3K

Это моя вторая подборка статей про агентную разработку (первая здесь). Как и в прошлый раз, смотрел статьи в хабах ИИ, программирования, аналитики и тестирования. В этот раз я учел свою ошибку и для каждой статьи написал, почему посчитал ее интересной. Как всегда, буду благодарен, если в комментариях напишите ссылки и на другие статьи про агентную разработку, которые считаете полезными.

Читать далее
Новость

От 5% до 28,7%: GeneBench-Pro показал, как быстро ИИ учится мыслить как учёный

Время на прочтение2 мин
Охват и читатели4.8K

OpenAI выпустила GeneBench-Pro — бенчмарк, который проверяет не способность ИИ-агента запускать готовые пайплайны, а его исследовательское чутье: умение решить, отражает ли паттерн в данных биологию или шум, какой вопрос вообще можно задать по этим данным и когда результат готов к тому, чтобы на него опереться в реальном решении. Лучшая модель компании, GPT-5.6 Sol, прошла 28,7% задач на максимальном уровне рассуждений и 31,5% в режиме Pro.

Читать далее
Статья

История о том, как я потратил полгода жизни на борьбу с технологиями

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.5K

Думаю начну с начала. Я занимаюсь разработкой одного артхаузного проекта с названием "Attempt to Survive" и работая над ним , имел одну важную цель. Сделать высокую оптимизацию для работы со многими старыми системами, с устаревшим железом на текущие реалии. При этом имея достойную картинку.

Для этого даже сделал небольшую сборку тестового пк с i7 6700k процом, картой gtx950 8 гигами оперы и материнкой с соответстующим сокетом. Многое уже имел от старого железа в коробках, так что собрать сложности не было.

Читать далее