Распознаём 50 видов текста на C++ с Plywood
Текстовый файл не так прост, как иногда кажется. Из 50 кодировок и их форматов Блокнот Windows распознаёт 42, Notepad++ 38, VSC - 40. C++ фреймворк Plywood, нацеленный на простоту внедрения сторонних библиотек, понимает все 50 форматов текста. Как указывает автор, файлы с текстами написаны вручную специально для фреймворка. Тем не менее, Plywood справляется лучше других. Как устроено обнаружение кодировки в новом фреймворке? Давайте разберёмся. Код детектора вы найдёте в конце статьи. Лицензия - MIT.
https://nuancesprog.ru/p/9157
@nuancesprog #статьи #CPP
Текстовый файл не так прост, как иногда кажется. Из 50 кодировок и их форматов Блокнот Windows распознаёт 42, Notepad++ 38, VSC - 40. C++ фреймворк Plywood, нацеленный на простоту внедрения сторонних библиотек, понимает все 50 форматов текста. Как указывает автор, файлы с текстами написаны вручную специально для фреймворка. Тем не менее, Plywood справляется лучше других. Как устроено обнаружение кодировки в новом фреймворке? Давайте разберёмся. Код детектора вы найдёте в конце статьи. Лицензия - MIT.
https://nuancesprog.ru/p/9157
@nuancesprog #статьи #CPP
Дизайн физического движка
Планируете заняться разработкой сложных систем, но боитесь столкнуться с трудностями? Расскажем о том, как создать физический движок на C++. Подробно рассмотрим проектирование динамики, обнаружения столкновений и реакции на столкновения, а также некоторые другие опции.
https://nuancesprog.ru/p/9072
@nuancesprog #статьи #CPP
Планируете заняться разработкой сложных систем, но боитесь столкнуться с трудностями? Расскажем о том, как создать физический движок на C++. Подробно рассмотрим проектирование динамики, обнаружения столкновений и реакции на столкновения, а также некоторые другие опции.
https://nuancesprog.ru/p/9072
@nuancesprog #статьи #CPP
Какие ошибки обычно допускаются при обработке многопоточности? Какова в этом процессе роль мьютексов и как безопасно реализовать их блокировку/разблокировку? Рассматриваем эти и сопутствующие вопросы.
https://nuancesprog.ru/p/10545
@nuancesprog #статьи #CPP
https://nuancesprog.ru/p/10545
@nuancesprog #статьи #CPP
Существует огромное количество языков программирования. И лучший способ понять, какой язык стоит применять в определённой сфере, - это увидеть их разницу на практическом примере.
https://nuancesprog.ru/p/11440
@nuancesprog #статьи #CPP #Python
https://nuancesprog.ru/p/11440
@nuancesprog #статьи #CPP #Python
Заглянем "под капот" процесса компиляции и поэтапно рассмотрим, как именно преобразуется высокоуровневый код в низкоуровневый исполняемый формат. В качестве примера взята программа C++ под Ubuntu.
https://nuancesprog.ru/p/11518
@nuancesprog #статьи #CPP
https://nuancesprog.ru/p/11518
@nuancesprog #статьи #CPP
Обратим внимание на несколько важнейших понятий C ++, которые позволят повысить эффективность действий программиста, а также помогут в оптимизации кода.
https://nuancesprog.ru/p/12476
@nuancesprog #статьи #CPP
https://nuancesprog.ru/p/12476
@nuancesprog #статьи #CPP
Напишем программу и пошагово разберем логику кода для перестановки цифр числа, подробно объясняя, что в ней происходит.
https://nuancesprog.ru/p/13303
@nuancesprog #статьи #CPP
https://nuancesprog.ru/p/13303
@nuancesprog #статьи #CPP
Собрались перейти на Python с C++ или наоборот? Будьте готовы привыкнуть к списку отличительных особенностей синтаксиса, использованию пробелов, нюансам типизации и прочим фишкам, отличающим этот язык от популярных собратьев.
https://nuancesprog.ru/p/13773
@nuancesprog #статьи #Python #CPP
https://nuancesprog.ru/p/13773
@nuancesprog #статьи #Python #CPP
Рассмотрим преимущества и недостатки двух лучших в настоящее время языков. Определим, где каждый из них предпочтительнее использовать.
https://nuancesprog.ru/p/14524/
@nuancesprog #CPP #Java
https://nuancesprog.ru/p/14524/
@nuancesprog #CPP #Java
Разбираемся в особенностях передачи сообщений между процессами. Рассмотрим как нужно писать для этого выразительный, чистый код.
https://nuancesprog.ru/p/14939/
@nuancesprog #CPP
https://nuancesprog.ru/p/14939/
@nuancesprog #CPP
Узнаем, для чего нужен шаблон проектирования прототипов, в чём его преимущество и чем он отличается от клонирования. Рассмотрим фабрику прототипов и использование шаблона проектирования прототипов для реализации виртуального конструктора копирования.
https://nsprg.ru/vXZlWm
VK: https://nsprg.ru/OoAKKx
Дзен: https://nsprg.ru/v3BlQx
@nuancesprog #CPP
https://nsprg.ru/vXZlWm
VK: https://nsprg.ru/OoAKKx
Дзен: https://nsprg.ru/v3BlQx
@nuancesprog #CPP
Есть миллион причин любить Python (особенно специалистам по данным). Но сильно ли он отличается от более профессиональных низкоуровневых языков программирования, таких как С или С++? Скорее всего, многие дата-специалисты или пользователи Python задавались этим вопросом или однажды задумаются об этом.
https://nsprg.ru/x9pWMm
VK: https://nsprg.ru/vL5YLO
Дзен: https://nsprg.ru/mwYJNv
@nuancesprog #CPP #Python
https://nsprg.ru/x9pWMm
VK: https://nsprg.ru/vL5YLO
Дзен: https://nsprg.ru/mwYJNv
@nuancesprog #CPP #Python
Рассмотрим преимущества и недостатки двух лучших в настоящее время языков. Определим, где каждый из них предпочтительнее использовать.
https://nsprg.ru/OjAXkv
VK: https://nsprg.ru/mMkdGv
Дзен: https://nsprg.ru/OQM8wO
@nuancesprog #CPP #Java
https://nsprg.ru/OjAXkv
VK: https://nsprg.ru/mMkdGv
Дзен: https://nsprg.ru/OQM8wO
@nuancesprog #CPP #Java
Поэтапно увеличим производительность реализации парсера для огромного файла. Устраним копии и баги, воспользуемся профилировщиком, хеш-картой линейного зондирования, микрооптимизациями, распараллелим код.
https://nsprg.ru/OZYrBv
VK: https://nsprg.ru/vXP01v
@nuancesprog #CPP #CProgramming
https://nsprg.ru/OZYrBv
VK: https://nsprg.ru/vXP01v
@nuancesprog #CPP #CProgramming
Разбираемся в особенностях передачи сообщений между процессами. Рассмотрим как нужно писать для этого выразительный, чистый код.
https://nsprg.ru/mW22qO
VK: https://nsprg.ru/v3GGPv
Дзен: https://nsprg.ru/O5PPnv
@nuancesprog #CPP
https://nsprg.ru/mW22qO
VK: https://nsprg.ru/v3GGPv
Дзен: https://nsprg.ru/O5PPnv
@nuancesprog #CPP