Search
Write a publication
Pull to refresh
119
0
Святослав @SvyatoslavMC

Product Manager

Send message

Какой CI/CD-инструмент выбрать — Jenkins или GitLab?

Reading time3 min
Views8.2K
Инструменты непрерывной интеграции и развертывания CI/CD на сегодня довольно востребованы. Из всех актуальных решений есть два очевидных лидера, Jenkins и GitLab. На крупных сервисах отзывов у обоих решений примерно одинаковый рейтинг, но смотреть стоит не только на это. Давайте разберемся с преимуществами Jenkins и GitLab, и для каких задач они лучше всего подходят.


Читать дальше →

C# программист, испытай себя — найди ошибку

Reading time3 min
Views8.6K

Анализатор PVS-Studio регулярно пополняется новыми диагностическими правилами. Что интересно, часто диагностики обнаруживают подозрительные фрагменты кода еще до окончания всех работ. Например, в процессе тестирования на open-source проектах. Одной из подобных интересных 'находок' и хотелось бы поделиться сегодня с вами.

Read more

Espressif IoT Development Framework: 71 выстрел в ногу

Reading time29 min
Views5.9K

0790_Espressif_IoT_Development_Framework_ru/image1.png
Один из наших читателей обратил наше внимание на Espressif IoT Development Framework. Он нашёл ошибку в коде проекта и поинтересовался, смог бы её найти статический анализатор PVS-Studio. Именно эту ошибку анализатор пока найти не может, зато нашёл множество других. По мотивам этой истории и найденных ошибок, мы решили написать классическую статью про проверку открытого проекта. Приятного изучения того, из-за чего IoT устройства могут "выстрелить вам в ногу".

Читать дальше →

Лучшие практики при написании безопасного Dockerfile

Reading time9 min
Views32K

В данной статье мы рассмотрим небезопасные варианты написания собственного Dockerfile, а также лучшие практики, включая работу с секретами и встраивание инструментов статического анализа. Тем не менее для написания безопасного Dockerfile наличия документа с лучшими практиками мало. В первую очередь требуется организовать культуру написания кода. К ней, например, относятся формализация и контроль процесса использования сторонних компонентов, организация собственных Software Bill-of-Materials (SBOM), выстраивание принципов при написании собственных базовых образов, согласованное использование безопасных функций, и так далее. В данном случае отправной точкой для организации процессов может служить модель оценки зрелости BSIMM. Однако в этой статьей пойдет речь именно о технических аспектах.

Читать далее

Как устроены мышцы? И за счет чего они растут

Reading time8 min
Views93K
Пандемия заставила нас вести менее подвижный образ жизни. Мы закрылись дома, перестали бегать по утрам (я не бегал, но вдруг, в отличие от меня у вас были на это силы). Это поспособствовало накоплению запасов к зиме (или к лету, если вы живете в Австралии), и особенно ударило по тем, кто пытается держать себя в форме. В эти липофильные (буквально — сродство к жирам) времена мы начинаем чаще задумываться о том, что пора бы заняться какой-нибудь двигательной активностью даже не выходя из дома: покачать пресс, поотжиматься, скачать наконец фитнесс приложение (о них подробнее тут), или пойти в зал — это для совсем бесстрашных. В связи с этим мне хотелось бы поговорить о нескольких вещах, которые важно знать, чтобы лучше понимать, как тренировки воздействуют на наше тело и почему к одним нагрузкам оно хорошо приспособлено, а к другим — нет.



В этой статье мы поговорим о мышцах, о том какие они бывают и за счет чего растут

Читать дальше →

Дайте хлеба и зрелищ

Reading time4 min
Views2.2K
Что делать, если вы, как и мы, уже устали от года без офлайн мероприятий? Не знаете, как переживать эти карантинно-удаленные будни? И как не потерять в таких Рапунцелевских четырехстенных условиях всю энергию и не выгореть?

image1.png

Топ 10 ошибок в проектах Java за 2020 год

Reading time9 min
Views9.6K
image1.png

Новый год неумолимо приближается — а, значит, настало время подводить итоги. Продолжая традицию, мы прошлись по нашим статьям о проверках Java-проектов из мира open-source за этот год и составили рейтинг 10 самых интересных ошибок.
Читать дальше →

ТОП-10 ошибок, найденных в C#-проектах за 2020 год

Reading time11 min
Views11K
image1.png

Наконец-то столь нелёгкий 2020 подходит к концу, а это значит, что пришло время подвести итоги! За этот год командой PVS-Studio было написано немало статей, в которых разбирались разнообразные ошибки, найденные анализатором в open-source проектах. Самые же интересные из них вы можете увидеть прямо здесь, в ТОП-е ошибок, обнаруженных в C#-проектах за 2020 год. Приятного просмотра!
Читать дальше →

Топ 10 ошибок в C++ проектах за 2020 год

Reading time8 min
Views5.3K
image1.png

За окном зима, год стремится к завершению, а значит, пришло время рассмотреть самые интересные ошибки, обнаруженные анализатором PVS-Studio в 2020 году.
Читать дальше →

Статьи — это тоже исходный код {

Level of difficultyMedium
Reading time9 min
Views16K

Title


Открываю VS Code и начинаю набирать статью с самого начала. Но вот незадача — формат маркдауна не совсем совместим с имеющимся форматом Хабра. Получается выхода нет и придётся возвращаться к встроенному редактору Хабра;


Или не придется?

В голову пришла идея написать утилиту, которая конвертирует разные форматы маркдаунов друг в друга, например, из формата GitHub в формат Habr;


Такую программу я в итоге и разработал. Теперь не надо копировать статьи в редактор Хабра, чтобы посмотреть как она выглядит, можно продолжать писать в любимом VS Code;


Хотя я и использую множество плагинов VS Code, но мысли о неэффективном процессе написания статей не исчезли. Раз уж я набираю текст в VS Code, то почему бы сразу не делать коммиты контента в гит-репозиторий?


Это дало бы немало новых возможностей, которыми пользуются программисты: версионирование, бекапы на локальные носители или веб-сервисы, правки от редакторов и пользователей. А еще можно внедрить CD/CI;


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

Читать дальше →

Как мы переносили современные игры на процессор Эльбрус-8С

Reading time6 min
Views93K
Мы в Gaijin уже много лет работаем с самыми разными игровыми платформами — от ПК и мобильных устройств до Nintendo Switch, PlayStation 5 и Xbox Series X|S. На этот раз мы решили провести эксперимент — скомпилировали и запустили наши игры War Thunder, Enlisted и CRSED: F.O.A.D. на рабочей станции Эльбрус 801-РС, чтобы проверить, можно ли её превратить в развлекательную систему.



До этого на Эльбрусе компилировали и запускали только старые игры с открытым исходным кодом, так что давно уже назрели вопросы: насколько сложно перенести современные проекты, как они поведут себя и достаточно ли производительности процессора, чтобы поддерживать в них играбельную частоту кадров?

Об ошибках в коде QuantConnect Lean

Reading time18 min
Views2K
image1.png

В данной статье рассматриваются ошибки в проекте с открытым исходным кодом, найденные с помощью статического анализатора. Говорится о некоторых простых вещах, которые могут помочь избежать их появления. Например, используя синтаксические конструкции языка начиная с C# 8.0. Надеюсь, что будет интересно. Приятного прочтения.
Читать дальше →

Big/Bug Data: анализируем исходный код Apache Flink

Reading time11 min
Views1.6K
image1.png

Приложения, использующиеся в области Big Data, обрабатывают огромные объемы информации, причем часто это происходит в реальном времени. Естественно, такие приложения должны обладать высокой надежностью, чтобы никакая ошибка в коде не могла помешать обработке данных. Для достижения высокой надежности необходимо пристально следить за качеством кода проектов, разрабатываемых для этой области. Решением данной проблемы и занимается статический анализатор PVS-Studio. Сегодня в качестве подопытного для анализатора был выбран проект Apache Flink, разработанный организацией Apache Software Foundation — одним из лидеров на рынке ПО для Big Data.
Читать дальше →

Анализатор кода не прав, да здравствует анализатор

Reading time6 min
Views6K
Foo(std::move(buffer), line_buffer - buffer.get());

Совмещать много действий в одном выражении языка C++ плохо, так как такой код тяжело понимать, тяжело поддерживать, так в нём еще и легко допустить ошибку. Например, создать баг, совмещая различные действия при вычислении аргументов функции. Мы согласны с классической рекомендацией, что код должен быть прост и понятен. И сейчас рассмотрим интересный случай, когда формально анализатор PVS-Studio не прав, но с практической точки зрения код всё равно стоит изменить.
Читать дальше →

Баг в ESP-IDF: MDNS, Wireshark и при чём тут единороги

Reading time5 min
Views6.6K

Всем привет. Я занимаюсь коммерческой разработкой в IoT, в основном мы используем модули от Espressif - ESP8266 и ESP32.

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

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

Разведка

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

Reading time4 min
Views3.1K
Почему PVS-Studio не предлагает автоматические правки кода

Статический анализатор PVS-Studio обнаруживает достаточно сложные и хитрые фрагменты кода, содержащие ошибки. И как их исправить, не всегда понятно даже человеку, и сейчас мы рассмотрим пару примеров. Поэтому лучше вообще не генерировать никаких предположений по автоматическому исправлению кода.
Читать дальше →

Что нового в C# 9.0

Reading time9 min
Views22K
В преддверии старта нового потока курса «C#-разработчик» представляем вашему вниманию обзор нововведений. Среди них — новый метод доступа к свойству — init, не позволяющий изменять свойства после инициализации, with-выражения для изменения свойств объекта прямо здесь и сейчас, записи и новые возможности сопоставления шаблонов. Подробности, конечно же, под катом.


Приятного чтения!

Цвет в современных фильмах

Reading time11 min
Views108K

Всем привет, меня зовут Денис. Я работаю художником по свету (Lighting Artist) в игровой индустрии. Часто читаю Хабр просто потому что интересно и вот сегодня увидел статью Дефицит цветов в современных фильмах которая меня немного ошарашила. Ведь в кино существуют целые отделы композитинга, которые занимаются цветокоррекцией изображения, чтобы конечный результат выглядел красиво, а также вызывал определённые эмоции. Поэтому меня сильно удивило, что кто-то видит в этом отрицательную сторону.

И вот я уже собрался написать длинный комментарий, но понял, что информации настолько много, что можно об этом написать целую статью, собственно, почему бы и нет.

Давайте разбираться, почему же в кино цветовая палитра сводится к нескольким конкретным цветам, а не представляет полный спектр. Хочу заметить, что всё нижеупомянутое применимо и к современным играм.
Читать дальше →

Проверка Clang 11 с помощью PVS-Studio

Reading time11 min
Views4.4K
PVS-Studio: Всё ещё достоин!

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

Из программиста в маркетологи

Reading time6 min
Views4.1K
Бывает сидишь дома, кодишь и думаешь, а не глянуть ли краем глаза ютуб. И тут неожиданно для себя открываешь в рекомендациях туториалы по совершенно левой теме, вроде монтажа видео или иллюстраций. Казалось бы, причём тут я? Дело в том, что закоулки алгоритмов ютуба принесли мне в голову мысль: "Чем я вообще занимаюсь по жизни?". И я наполнился решимостью.

Читать дальше →

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity