В этой статье я расскажу о том, как правильно писать современные CMakeLists.txt
файлы для C++ библиотек. Идеи, используемые в ней, основаны на докладе Крейга Скотта (разработчик CMake) и докладе Роберта Шумахера (разработчик vcpkg) c CppCon 2019. Поскольку мне достаточно часто приходится разрабатывать С++ библиотеки, я создал для себя небольшой шаблон cpp-lib-template, который будет использоваться в этой статье в качестве примера.
Рубрика «Программирование» - 43
Руководство по CMake для разработчиков C++ библиотек
2022-08-17 в 17:41, admin, рубрики: c++, cmake, library, open source, shared library, Программирование, системы сборкиПочему некоторым так сложно учиться программированию?
2022-08-17 в 7:22, admin, рубрики: дискуссия, обучение программированию, педагогика, Программирование, философияНа эту тему на Хабре была не так давно статья, и там высказывалась мысль, что программирование-де сложная область знаний в принципе и требует некой особой склонности и серьезного бэкграунда.
Логотип PSone и где он обитает
2022-08-14 в 12:27, admin, рубрики: 3d, C, Игры и игровые консоли, очумелые ручки, Программирование, Работа с 3D-графикой, старое железо, язык cЗнакомая картинка? Думаю, что знакома она многим. Дети 90-х (ух, что тогда творилось, в песне Монеточки это всё описано), видели этот логотип при старте приставки PS1. И оказалось, что
Оказалось, что это 3D объект. И содержится он на каждом диске с игрой. Содержится он там естественно в проприетарном формате.
Атака на String.hashCode: прообразы и коллизии
2022-08-13 в 18:00, admin, рубрики: collision, hash, hashCode, java, preimage, string, коллизия, ненормальное программирование, никто не читает теги, Программирование, прообраз, сезон java, хеш-кодКак-то раз мне понадобилось несколько наборов строк с коллизией по хеш-коду. То есть таких, чтобы значение String::hashCode()
совпадало для всех строк в наборе.
Блуждание по интернету не дало результатов, примеров было мало и все они довольно однообразны. Поиск по словарям подарил забавную пару "javascript's".hashCode() == "monocle".hashCode()
, но практической пользы не принёс. Полный перебор не рассматривался в виду скорой тепловой смерти вселенной.
Тот самый случай, когда проще сделать всё самому. Стандартная хеш-функция строки в Java считается криптографически нестойкой, так что знаний из школьного курса математики должно быть достаточно.
Rust 1.63.0: потоки области видимости, I-O безопасность, NLL во всех редакциях по умолчанию
2022-08-12 в 19:03, admin, рубрики: cargo, clippy, open source, release, Rust, rustc, rustdoc, rustfix, rustfmt, stable, выпуск версий, Компиляторы, новости технологий, перевод, Программирование, системное программирование, стабильная версия, языки программированияКоманда Rust рада сообщить о новой версии языка — 1.63.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup
, то для обновления до версии 1.63.0 вам достаточно выполнить команду:
rustup update stable
Если у вас ещё нет rustup
, то можете установить его со страницы на нашем веб-сайте, а также ознакомиться с подробным описанием выпуска 1.63.0 на GitHub.
Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать beta (rustup default beta
) или nightly (rustup default nightly
) канал. Пожалуйста, сообщайте обо всех встреченных вами ошибках.
Что стабилизировано в 1.63.0
В стандартную библиотеку добавлены потоки, которые гарантировано завершаются в конце области видимости. Завершена миграция всех редакций языка на NLL. Добавлены новые типы для работы с дискриптерами файлов операционной системы.
Что читать разработчику C++
2022-08-09 в 12:54, admin, рубрики: c++, Блог компании МойОфис, книги, литература, мойофис, обучение, Программирование, Профессиональная литература, разработка, рекомендации, С++, Учебный процесс в ITВ этой подборке — не только классические рекомендации книг для C++ программистов. Обычно советуют издания про паттерны, развитие стандарта или успехи большой компании. Но за всем этим изобилием «экспертных советов» и best practices теряется одна простая мысль: язык программирования — это средство выражения мысли от одного разработчика другому, а также средство описания пользовательского API в самом широком смысле.
Устаревшие Python-библиотеки, с которыми пора попрощаться
2022-08-08 в 9:42, admin, рубрики: python, Блог компании Wunder Fund, Программирование, разработка, Разработка веб-сайтовВ Python, с каждым релизом, добавляют новые модули, появляются новые и улучшенные способы решения различных задач. Все мы привыкли пользоваться старыми добрыми Python-библиотеками, привыкли к определённым способам работы. Но пришло время обновиться, время воспользоваться новыми и улучшенными модулями и их возможностями.
Pathlib
Модуль Читать полностью »
Распознавание поднятых пальцев на Python+OpenCV
2022-08-06 в 8:00, admin, рубрики: computer vision, finger, gesture control, github, opencv, python, будущее здесь, Компьютерное зрение, пальцы, Программирование, управление жестамиВ данной статье хочу рассмотреть банальный и несложный проект, а именно подсчет количества поднятых пальцев.
Все исходники можно найти на моем Github.
Код будем рассматривать с самого начала, но лучше всего ознакомиться с моими предыдущими статьями.
Подготавливаем среду и устанавливаем следующие библиотеки:
pip install mediapipe
pip install opencv-python
pip install math
Создаем файл HandTrackingModule.py
с привычным для моих читателей классом handDetector
:
Читать полностью »
Библиотека вывода с использованием escape-последовательностей
2022-08-05 в 13:00, admin, рубрики: c++, osmanip, ruvds_перевод, библиотеки C++, Блог компании RUVDS.com, Программирование, Разработка под Linux, управляющие последовательностиOsmanip – это библиотека C++, предоставляющая полезные механизмы для работы с управляющими последовательностями ANSI и настройки потока вывода программ. С помощью этих механизмов вы можете оформлять выводимые строки различными цветами и стилями, изменять расположение курсора в терминале и регулировать прочие компоненты вроде индикаторов выполнения и графики. Весь этот функционал будет очень полезен для придания желаемого вида общему потоку вывода программы или для выполнения операций с курсором.Читать полностью »
Хватит ссылаться на TIOBE
2022-08-03 в 11:14, admin, рубрики: tiobe, индекс tiobe, накручивание рейтинга, Программирование, рейтинг языков программированияЧто такое TIOBE?
Индекс TIOBE — это показатель популярности языков программирования. Индекс обновляется раз в месяц… Важно заметить, что индекс TIOBE — это не признак лучшего языка программирования или языка, на котором написано больше всего строк кода.
Индекс можно использовать для проверки актуальности ваших навыков программирования или для принятия стратегического решения о том, какой язык программирования следует применять для создания новой программной системы.
Источник: tiobe.com.
Индекс языков программирования, помогающий выбрать язык, который нужно использовать. Похоже, полезная штука!
Читать полностью »