Media is too big
VIEW IN TELEGRAM
Ох, не думал я, что работать с микроконтроллером, аналоговым сигналом с последующей его оцифровкой и UART будет так непросто.
В начале жизненного цикла разработки у меня сигнал приходил очень нестабильно: то байт куда-то потеряется, то биты сдвигаются.
В этом были виноваты стандарт передачи данных, а именно его отсутствие, и плохая скорость передачи данных для частоты моего микроконтроллера, которая давала ~5% потерь.
Когда два данных недочёта были исправлены, у меня всё стало идеально.
Однако во время тестирования программы заказчиком и комиссией, у них сигнал был с довольно сильными помехами, что им, конечно, не понравилось, хотя программу они оценили.
В данном видео вы увидите действие фильтра "бегущее среднее", а потом я планирую применить ещё и медианный фильтр.
(Кнопка с анимацией загрузки "..." — это наработка для будущего обновления)
ссылка на канал | ссылка на группу
В начале жизненного цикла разработки у меня сигнал приходил очень нестабильно: то байт куда-то потеряется, то биты сдвигаются.
В этом были виноваты стандарт передачи данных, а именно его отсутствие, и плохая скорость передачи данных для частоты моего микроконтроллера, которая давала ~5% потерь.
Когда два данных недочёта были исправлены, у меня всё стало идеально.
Однако во время тестирования программы заказчиком и комиссией, у них сигнал был с довольно сильными помехами, что им, конечно, не понравилось, хотя программу они оценили.
В данном видео вы увидите действие фильтра "бегущее среднее", а потом я планирую применить ещё и медианный фильтр.
signalFilterUsing - применяется ли фильтр к сигналу.signalFilterWidth - ширина выборки для усреднения.(Кнопка с анимацией загрузки "..." — это наработка для будущего обновления)
ссылка на канал | ссылка на группу
Попался мне недавно человек, у которого с
По этому случаю решил попробовать с нуля создать шаблон проекта, в котором только пути до компилятора поправить и можно будет компилировать и запускать отладку.
Ориентировался на использование
Старайтесь не использовать кириллические и прочие
Скачать zip архив проекта
(1 обновление 01.10.2023 22:51)
ссылка на канал | ссылка на группу
vs code были одни проблемы.По этому случаю решил попробовать с нуля создать шаблон проекта, в котором только пути до компилятора поправить и можно будет компилировать и запускать отладку.
Ориентировался на использование
mingw и windows.Старайтесь не использовать кириллические и прочие
unicode символы а также пробелы в пути, иначе можете убить не один час на решение магических проблем).Чтобы скопилировать проект:1) ctrl + shift + B2) для отладки выбираем "build debug" для распространения выбираем "build release"Чтобы запустить проект:1) с отладкой: F5 без отладки : ctrl + F5Скачать zip архив проекта
(1 обновление 01.10.2023 22:51)
ссылка на канал | ссылка на группу
arduinoSuccess.png
652 KB
Это так приятно помочь кому-то, когда уже сам прошёл через огонь и воду и догадываешься, в чём проблема.
Чисто на скилле, на опыте).
Я вообще с arduino совсем недавно начал работать, но нас объединяет C++, так что не всё так плохо).
ссылка на канал | ссылка на группу
Чисто на скилле, на опыте).
Я вообще с arduino совсем недавно начал работать, но нас объединяет C++, так что не всё так плохо).
ссылка на канал | ссылка на группу
Как компилировать и подключать библиотеки в GCC?
Библиотеки это набор скомпилированного кода, который может переиспользоваться в разных программах.
Существует два вида библиотек: статическая (static) и динамическая (dynamic).
В операционной системе linux они имеют расширение соответственно
> Как скомпилировать динамическую библиотеку?
Допустим, наша библиотека состоит из двух исходных файлов:
Тогда команда сборки для компиляции будет такой:
1)
2)
3)
> Как скомпилировать статическую библиотеку?
Аналогично динамической библиотеке, у нас будет тот же набор исходных файлов и название библиотеки.
Однако, сначала нужно скомпилировать исходный код в объектный файл, а только потом создать архив (набор объектных файлов), то есть нашу библиотеку:
1)
2)
2)
2)
> Как подключить библиотеку к программе?
Для начала нужно указать где линковщик должен искать нашу библиотеку, если не найдёт её по стандартным путям:
Итоговая команда сборки:
Линковщик ищет и обрабатывает библиотеки и объектные файлы в порядке их перечисления.
Если объявленный символ идёт раньше библиотеки или объектного файла, где он определён, он может быть не загружен и линковщик сообщит вам о "
Циклические зависимости и зависимость от порядка перечисления библиотек в GCC
> Что будет, если у меня статическая и динамическая библиотеки будут называться одинаково?
Если линковщик находит и статическую, и динамическую библиотеку, приоритет отдаётся динамической, однако параметром
> Как мне выбрать конкретный вид библиотеки?
Для начала посмотрим на описание параметра
Следовательно, когда вы указываете
Чтобы указать конкретное название и даже расширение библиотеки, добавьте символ двоеточие между параметром и названием библиотеки.
Важно также указывать расширение библиотеки.
ссылка на канал | ссылка на группу
Библиотеки это набор скомпилированного кода, который может переиспользоваться в разных программах.
Существует два вида библиотек: статическая (static) и динамическая (dynamic).
В операционной системе linux они имеют расширение соответственно
.a и .so и формат ELF, а в windows .lib и .dll и формат COFF.> Как скомпилировать динамическую библиотеку?
Допустим, наша библиотека состоит из двух исходных файлов:
libraryPart1.cpp и libraryPart2.cpp и будет называться libraryName.Тогда команда сборки для компиляции будет такой:
g++ -shared -fPIC -o liblibraryName.so libraryPart1.cpp libraryPart2.cpp
Тут важно три момента:1)
-shared: произвести динамический объект, который может быть связан с другими объектами для создания исполняемого файла.2)
-fPIC: генерировать независимый от позиции код, работа которого не будет зависеть от адреса расположения кода.3)
-o liblibraryName.so: префикс lib и расширение .so обязательны, чтобы связывать библиотеку с программой без лишних трудностей.> Как скомпилировать статическую библиотеку?
Аналогично динамической библиотеке, у нас будет тот же набор исходных файлов и название библиотеки.
Однако, сначала нужно скомпилировать исходный код в объектный файл, а только потом создать архив (набор объектных файлов), то есть нашу библиотеку:
g++ -c -o library.o libraryPart1.cpp libraryPart2.cpp
ar rcs liblibraryName.a library.o
Объяснение параметров:1)
-c: скомпилировать исходный код в объектный файл, но не связывать.2)
r: вставить объектный файл в архив с заменой2)
c: создать новый архив2)
s: добавить новый индекс или обновить существующий> Как подключить библиотеку к программе?
Для начала нужно указать где линковщик должен искать нашу библиотеку, если не найдёт её по стандартным путям:
-LlibraryPath, потом указать какую библиотеку(и) подключить: -llibraryName.Итоговая команда сборки:
g++ -o main.exe main.cpp -LlibraryPath -llibraryName
Учтите, порядок перечисления библиотек и объектных файлов в аргументах командной строки важен.Линковщик ищет и обрабатывает библиотеки и объектные файлы в порядке их перечисления.
Если объявленный символ идёт раньше библиотеки или объектного файла, где он определён, он может быть не загружен и линковщик сообщит вам о "
undefined reference to ...".Циклические зависимости и зависимость от порядка перечисления библиотек в GCC
> Что будет, если у меня статическая и динамическая библиотеки будут называться одинаково?
Если линковщик находит и статическую, и динамическую библиотеку, приоритет отдаётся динамической, однако параметром
-static этот приоритет меняется на статическую.> Как мне выбрать конкретный вид библиотеки?
Для начала посмотрим на описание параметра
-l: ищет библиотеку, добавляя к названию префикс lib и расширение .so или .a.Следовательно, когда вы указываете
-llibraryName, линкер ищет сначала liblibraryName.so, потом liblibraryName.a.Чтобы указать конкретное название и даже расширение библиотеки, добавьте символ двоеточие между параметром и названием библиотеки.
Важно также указывать расширение библиотеки.
-l:anyLibraryName.a
ссылка на канал | ссылка на группу
🔥3
Dmitry Develop
telegramUnicode.png
Надо ли немного рассказать о unicode и его стандартах кодирования?
Anonymous Poll
56%
Да
11%
Нет
33%
Просто посмотреть ответы
Во время тестирования полосы прокрутки я столкнулся со множеством проблем, связанных с преобразованием числовых конечных промежутков.
В основном, виновата моя реализация intMap и моё непонимание принципов работы числовых промежутков.
Так же в intMap: не проверяется деление на ноль; не сортируется минимальное и максимальное значение (а это важно); не гарантируется определённое поведение, если исходное значение находится вне диапазона; при некоторых условиях возвращаемое значение будет находиться вне диапазона или с неправильным знаком.
Количество чисел в разных видах конечных промежутков:
Рассмотрим промежуток:
Это закрытый промежуток, тогда по формуле
В комментариях есть полезные ссылки по теме.
ссылка на канал | ссылка на группу
В основном, виновата моя реализация intMap и моё непонимание принципов работы числовых промежутков.
Так же в intMap: не проверяется деление на ноль; не сортируется минимальное и максимальное значение (а это важно); не гарантируется определённое поведение, если исходное значение находится вне диапазона; при некоторых условиях возвращаемое значение будет находиться вне диапазона или с неправильным знаком.
Количество чисел в разных видах конечных промежутков:
* закрытый[A; B], если A ≤ B, то B - A + 1* открытый(A; B), если A < B, то B - A - 1]A; B[ (с подачи Н. Бурбаки)* полуоткрытый(A; B] или [A; B), то B - AРассмотрим промежуток:
[1; 3] ∈ { 1, 2, 3 }.Это закрытый промежуток, тогда по формуле
B - A + 1 будет 3 - 1 + 1 = 3 числа.В комментариях есть полезные ссылки по теме.
ссылка на канал | ссылка на группу
🔥1
Я настолько часто на бумаге делаю всякие расчёты, прикидываю макеты, придумываю алгоритмы, что у меня уже целая папка исписанных листов А4.
Бумагу использовать в таких количествах жалко, ctrl + C и ctrl + Z там нет, стирать значит размазать и так далее — много неудобств.
Поэтому сегодня я купил себе графический планшет).
Когда-то я занимался рисованием, может стоит снова попробовать это хобби.
ссылка на канал | ссылка на группу
Бумагу использовать в таких количествах жалко, ctrl + C и ctrl + Z там нет, стирать значит размазать и так далее — много неудобств.
Поэтому сегодня я купил себе графический планшет).
Когда-то я занимался рисованием, может стоит снова попробовать это хобби.
ссылка на канал | ссылка на группу
🔥2
Спустя несколько дней экспериментов в теории и на практике, нескольких прочитанных сайтов по математике и одного дня полноценного отдыха, я наконец-то смог найти закономерность, понять причину ошибок и исправить её.
Теперь всё работает идеально.
Эта функция особенно понравится тем, кто занимается
Главное понять, что много вещей можно представить через промежутки (диапазоны) и с ними можно делать разные операции: инвертировать, сжимать и расширять, сдвигать.
Сейчас у меня мало свободного времени, поэтому полный доклад на эту тему с интересными подробностями (например, найденные закономерности) и анализом я напишу и опубликую потом.
Если вам нужна версия этой функции, которая будет работать не только с
Я просто использую только целочисленные типы данных для вычислений, не люблю
Если вы будете кому-то пересылать эту функцию или советовать, пожалуйста, приложите ссылку на первоисточник, пусть больше людей знают, где можно найти что-то полезное или интересное.
Если вам на сайте stackoverflow попадутся похожие темы с кодом на мою функцию, можете также в ответ дать ссылку на мою функцию.
Скачать реализацию функции rangeMap
Устаревшая реализация (deprecated implementation)
ссылка на канал | ссылка на группу
Теперь всё работает идеально.
Эта функция особенно понравится тем, кто занимается
arduino (вместо встроенной функции map), но и разработчикам под ПК она тоже будет полезна.Главное понять, что много вещей можно представить через промежутки (диапазоны) и с ними можно делать разные операции: инвертировать, сжимать и расширять, сдвигать.
Сейчас у меня мало свободного времени, поэтому полный доклад на эту тему с интересными подробностями (например, найденные закономерности) и анализом я напишу и опубликую потом.
Если вам нужна версия этой функции, которая будет работать не только с
int64_t, а с int или float / double, предлагаю вам просто заменить int64_t на нужный вам тип данных или сделать её шаблонной.Я просто использую только целочисленные типы данных для вычислений, не люблю
float / double.Если вы будете кому-то пересылать эту функцию или советовать, пожалуйста, приложите ссылку на первоисточник, пусть больше людей знают, где можно найти что-то полезное или интересное.
Если вам на сайте stackoverflow попадутся похожие темы с кодом на мою функцию, можете также в ответ дать ссылку на мою функцию.
Скачать реализацию функции rangeMap
ссылка на канал | ссылка на группу
👍2🔥1
Рубрика "полезные флаги для GCC (mingw)".
Я часто нахожу полезные флаги компилятора, которые облегчают исправление кода, но забываю рассказать о них другим).
Сегодня вопрос в чате напомнил мне о ситуации, когда случайно или по незнанию в функцию
Например, функция ожидает
предупреждает о несоответствии типов аргументов и квалификаторов
если указан предыдущий флаг, предупреждает о несоответствии знаковости квалификатора и аргумента.
Эти флаги доступны с версии GCC 5.0 и выше.
ссылка на канал | ссылка на группу
Я часто нахожу полезные флаги компилятора, которые облегчают исправление кода, но забываю рассказать о них другим).
Сегодня вопрос в чате напомнил мне о ситуации, когда случайно или по незнанию в функцию
printf передаётся аргумент, который не соответствует квалификатору или наоборот.Например, функция ожидает
signed int, но получает unsigned int.-Wformatпредупреждает о несоответствии типов аргументов и квалификаторов
-Wformat-signednessесли указан предыдущий флаг, предупреждает о несоответствии знаковости квалификатора и аргумента.
Эти флаги доступны с версии GCC 5.0 и выше.
ссылка на канал | ссылка на группу
👍2❤1
Использование define'ов, конечно, осуждаемо и часто сомнительно, но в условиях, когда работы много, а времени мало, выбирать не приходится.
Тем более, разве, define'ы не помогают избавиться от повторения кода?
Получилось сделать довольно быстро и удобно.
Примерно таким образом я вижу свою будущую переработанную строковую библиотеку для работы с кодировками utf-8 и utf-16: просто берёшь и получаешь желаемый результат.
ссылка на канал | ссылка на группу
Тем более, разве, define'ы не помогают избавиться от повторения кода?
Получилось сделать довольно быстро и удобно.
Примерно таким образом я вижу свою будущую переработанную строковую библиотеку для работы с кодировками utf-8 и utf-16: просто берёшь и получаешь желаемый результат.
ссылка на канал | ссылка на группу
👍1
При запуске отладки по нажатию на F5 иногда в консоли появляется ошибка и отладка не запускается.
Бывает, даже повторяется несколько раз подряд.
Обновление vscode и gcc до последних версий не помогло.
Намеренно повторить это не получается.
Кто сталкивался с таким поведением отладки в vscode с расширением C++ от microsoft?
ссылка на канал | ссылка на группу
Бывает, даже повторяется несколько раз подряд.
Обновление vscode и gcc до последних версий не помогло.
Намеренно повторить это не получается.
Кто сталкивался с таким поведением отладки в vscode с расширением C++ от microsoft?
ссылка на канал | ссылка на группу
Dmitry Develop
IDECompilers.png
Меня всегда забавляет читать "труды" людей на тему, в которой они абсолютно не разбираются.
Заголовок прямо кричит: ищете самые лучше C++ компиляторы? Узнайте о ТОП 6-и, которые вы обязаны попробовать.
То есть статья должна быть именно на тему компиляторы С++ и должна помочь выбрать какой-то конкретный из них или дать исчерпывающие ответы и объяснения.
Во вступлении говорится о каком-то чувстве "студента, программиста или человека в IT, который постоянно меняет компиляторы".
Уже немного странно, но ладно, это ведь только вступление, хотя и такое безобразное и не затрагивающую обширную тему напрямую.
И тут внезапно заголовок "Что такое IDE".
Ладно, допустим, это действительно важно рассказать о существовании и что это вообще такое этот ваш IDE.
Не буду затрагивать определение от автора что такое IDE, оно более-менее отвечает на вопрос заголовка для обывателя.
Но причём тут "каждый WEB разработчик знает..." и C++ компилятор?
И тут автор наконец-то переходит к сути статьи, перечислению тех самых лучших компиляторов по мнению не пойми кого:
"Разве мы же хотим самого лучшего? Поэтому вот некоторые самые лучше компиляторы C++, которые вы можете найти в 2022 году".
"1. Visual Studio Code FREE"
И начинает перечислять IDE, редакторы кода и notepad++ и кратко описывать их.🤨
Я хотел видеть компиляторы C++, какие существуют, в чем заключаются их отличия, преимущества и недостатки, может, краткую историческую сводку, но не это всё.
Сама статья:
https://in.godaddy.com/blog/looking-for-the-best-c-compilers-check-out-top-6-you-must-try/
ссылка на канал | ссылка на группу
Заголовок прямо кричит: ищете самые лучше C++ компиляторы? Узнайте о ТОП 6-и, которые вы обязаны попробовать.
То есть статья должна быть именно на тему компиляторы С++ и должна помочь выбрать какой-то конкретный из них или дать исчерпывающие ответы и объяснения.
Во вступлении говорится о каком-то чувстве "студента, программиста или человека в IT, который постоянно меняет компиляторы".
Уже немного странно, но ладно, это ведь только вступление, хотя и такое безобразное и не затрагивающую обширную тему напрямую.
И тут внезапно заголовок "Что такое IDE".
Ладно, допустим, это действительно важно рассказать о существовании и что это вообще такое этот ваш IDE.
Не буду затрагивать определение от автора что такое IDE, оно более-менее отвечает на вопрос заголовка для обывателя.
Но причём тут "каждый WEB разработчик знает..." и C++ компилятор?
И тут автор наконец-то переходит к сути статьи, перечислению тех самых лучших компиляторов по мнению не пойми кого:
"Разве мы же хотим самого лучшего? Поэтому вот некоторые самые лучше компиляторы C++, которые вы можете найти в 2022 году".
"1. Visual Studio Code FREE"
И начинает перечислять IDE, редакторы кода и notepad++ и кратко описывать их.🤨
Я хотел видеть компиляторы C++, какие существуют, в чем заключаются их отличия, преимущества и недостатки, может, краткую историческую сводку, но не это всё.
Сама статья:
https://in.godaddy.com/blog/looking-for-the-best-c-compilers-check-out-top-6-you-must-try/
ссылка на канал | ссылка на группу
Полезные ссылки для С++ разработчиков.
Когда пишут привет, но не переходят к сути вопроса сразу:
https://nohello.net/
https://neprivet.com/
Когда задают вопрос, подразумевающий другие вопросы, вместо конкретики:
https://nometa.xyz/
Когда спрашивают какие-то очевидные темы, и так хочется послать в google:
https://googlethatforyou.com/
Когда просят решение проблемы Y вместо проблемы X:
https://ru.wikipedia.org/wiki/Проблема_XY_(Ошибка_молотка)
Как правильно задавать вопросы:
http://citforum.ru/howto/smart-questions-ru.shtml
https://www.google.com/search?q=как+задавать+вопросы
MRE (minimal reproducible example):
https://stackoverflow.com/help/minimal-reproducible-example
https://en.wikipedia.org/wiki/Minimal_reproducible_example
Список различных IT групп:
https://t.me/it_chats/865
Справочник по C++:
https://en.cppreference.com/w/
Черновик стандарта C++:
https://eel.is/c++draft/
Квест на знание стандарта C++:
https://cppquiz.org/
Дорожная карта C++:
https://roadmap.sh/cpp
Различная информация по С++:
https://github.com/JoshuaJakowlew/cppfaq
https://gist.github.com/honey-speaks-tech/225e0ce05430a6c2e3d3c68e0e4a35d9
Неявное становится явным:
https://cppinsights.io/
Перевод непонятных Си объявлений на понятный английский язык:
https://cdecl.org/
https://github.com/paul-j-lucas/cdecl
Преобразование msvc/gcc mangled символов в читаемый вид:
https://demangler.com/
Что такое UB в С++:
https://github.com/Nekrolm/ubbook/blob/master/README.md
Советы по стилю написания C++ кода:
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
Изучение языка C++:
https://www.learncpp.com/ (оригинал на английском)
https://ravesli.com/uroki-cpp/ (перевод на русский)
https://acode.com.ua/uroki-po-cpp/ (перевод на украинский)
Online компиляторы:
https://www.onlinegdb.com/online_c++_compiler
https://godbolt.org/
Выравнивание, отступы и упаковка членов данных структуры:
https://www.geeksforgeeks.org/structure-member-alignment-padding-and-data-packing/
https://habr.com/ru/articles/142662/
https://learn.microsoft.com/ru-ru/cpp/cpp/alignment-cpp-declarations
Что такое trap representation?
https://ru.stackoverflow.com/a/838699
Unicode таблица символов:
https://design215.com/toolbox/utf8-4byte-characters.php
Изучение системы контроля версий git:
https://git-scm.com/book/ru/v2
Изучение git в виде интерактивной игры:
https://learngitbranching.js.org/
Преобразование кодировок:
https://2cyr.com/decode/
https://dencode.com/
Различные операции над кодировками:
https://onlinetools.com/utf8/convert-utf8-to-binary
Различная информация по unicode:
https://utf8everywhere.org/
Поиск по репозиториям github:
https://grep.app/
Конфигуратор стиля форматирования кода:
https://zed0.co.uk/clang-format-configurator/
Какие проекты написать новичку:
https://github.com/siliciusQ/Programming-challenges-v4.0
Почему отправлять код в виде фотографии плохо:
https://idownvotedbecau.se/imageofcode
ссылка на канал | ссылка на группу
Когда пишут привет, но не переходят к сути вопроса сразу:
https://nohello.net/
https://neprivet.com/
Когда задают вопрос, подразумевающий другие вопросы, вместо конкретики:
https://nometa.xyz/
Когда спрашивают какие-то очевидные темы, и так хочется послать в google:
https://googlethatforyou.com/
Когда просят решение проблемы Y вместо проблемы X:
https://ru.wikipedia.org/wiki/Проблема_XY_(Ошибка_молотка)
Как правильно задавать вопросы:
http://citforum.ru/howto/smart-questions-ru.shtml
https://www.google.com/search?q=как+задавать+вопросы
MRE (minimal reproducible example):
https://stackoverflow.com/help/minimal-reproducible-example
https://en.wikipedia.org/wiki/Minimal_reproducible_example
Список различных IT групп:
https://t.me/it_chats/865
Справочник по C++:
https://en.cppreference.com/w/
Черновик стандарта C++:
https://eel.is/c++draft/
Квест на знание стандарта C++:
https://cppquiz.org/
Дорожная карта C++:
https://roadmap.sh/cpp
Различная информация по С++:
https://github.com/JoshuaJakowlew/cppfaq
https://gist.github.com/honey-speaks-tech/225e0ce05430a6c2e3d3c68e0e4a35d9
Неявное становится явным:
https://cppinsights.io/
Перевод непонятных Си объявлений на понятный английский язык:
https://cdecl.org/
https://github.com/paul-j-lucas/cdecl
Преобразование msvc/gcc mangled символов в читаемый вид:
https://demangler.com/
Что такое UB в С++:
https://github.com/Nekrolm/ubbook/blob/master/README.md
Советы по стилю написания C++ кода:
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
Изучение языка C++:
https://www.learncpp.com/ (оригинал на английском)
https://ravesli.com/uroki-cpp/ (перевод на русский)
https://acode.com.ua/uroki-po-cpp/ (перевод на украинский)
Online компиляторы:
https://www.onlinegdb.com/online_c++_compiler
https://godbolt.org/
Выравнивание, отступы и упаковка членов данных структуры:
https://www.geeksforgeeks.org/structure-member-alignment-padding-and-data-packing/
https://habr.com/ru/articles/142662/
https://learn.microsoft.com/ru-ru/cpp/cpp/alignment-cpp-declarations
Что такое trap representation?
https://ru.stackoverflow.com/a/838699
Unicode таблица символов:
https://design215.com/toolbox/utf8-4byte-characters.php
Изучение системы контроля версий git:
https://git-scm.com/book/ru/v2
Изучение git в виде интерактивной игры:
https://learngitbranching.js.org/
Преобразование кодировок:
https://2cyr.com/decode/
https://dencode.com/
Различные операции над кодировками:
https://onlinetools.com/utf8/convert-utf8-to-binary
Различная информация по unicode:
https://utf8everywhere.org/
Поиск по репозиториям github:
https://grep.app/
Конфигуратор стиля форматирования кода:
https://zed0.co.uk/clang-format-configurator/
Какие проекты написать новичку:
https://github.com/siliciusQ/Programming-challenges-v4.0
Почему отправлять код в виде фотографии плохо:
https://idownvotedbecau.se/imageofcode
ссылка на канал | ссылка на группу
❤2🫡1
image_2023-10-31_19-27-48.png
46.2 KB
ссылка на канал | ссылка на группу
image_2023-10-31_19-27-48.png
165.5 KB
ссылка на канал | ссылка на группу