🧑💻⏳ Обработка строковых литералов во время компиляции
С момента добавления constexpr можно многое делать во время компиляции. Одной из таких вещей является обработка строковых литералов.
Поиск строк в бинарнике
Если вы объявите переменную типа const char* str = «Hello World»;, строка «Hello World» будет в бинарнике.
В Linux, macOS и Windows есть команда strings. (для Windows необходимо установить Sysinternals Suite)
Запуск strings [your_binary] выведет список всех строк — «Hello World» должен быть среди них.
Далее примеры кода и несколько фишек
#гайд
С момента добавления constexpr можно многое делать во время компиляции. Одной из таких вещей является обработка строковых литералов.
Поиск строк в бинарнике
Если вы объявите переменную типа const char* str = «Hello World»;, строка «Hello World» будет в бинарнике.
В Linux, macOS и Windows есть команда strings. (для Windows необходимо установить Sysinternals Suite)
Запуск strings [your_binary] выведет список всех строк — «Hello World» должен быть среди них.
Далее примеры кода и несколько фишек
#гайд
🤔🎯 Что нового в .NET 8
.NET 8 вышел в релиз, значит можно начинать переносить свои проекты на новую версию. В этой статье рассматриваются новые улучшения и фишки: производительность, Native AOT, GC, новые типы, направленные на повышение производительности, NuGet Audit и прочее.
Производительность
Microsoft сказали, что представленный в прошлом году .NET 7 очень быстрый, но .NET 8 быстрее. Усовершенствования коснулись: JIT, GC, рефлексии, коллекции, LINQ, кодогенерации, сериализции и десериализции, примитивных типов и многого другого.
Native AOT
Native AOT использует ahead of time компилятор для компиляции IL в машинный код во время публикации self-contained приложения. В .NET 8 добавлена поддержка архитектур x64 и arm64 на macOS.
Native AOT приложения включают в себя .NET runtime. Исходя из этого, они имеют больший размер по сравнению с обычными приложениями. В .NET 8 улучшили и этот аспект.
Рассмотрение других ништяков релиза — вот
#почитать
.NET 8 вышел в релиз, значит можно начинать переносить свои проекты на новую версию. В этой статье рассматриваются новые улучшения и фишки: производительность, Native AOT, GC, новые типы, направленные на повышение производительности, NuGet Audit и прочее.
Производительность
Microsoft сказали, что представленный в прошлом году .NET 7 очень быстрый, но .NET 8 быстрее. Усовершенствования коснулись: JIT, GC, рефлексии, коллекции, LINQ, кодогенерации, сериализции и десериализции, примитивных типов и многого другого.
Native AOT
Native AOT использует ahead of time компилятор для компиляции IL в машинный код во время публикации self-contained приложения. В .NET 8 добавлена поддержка архитектур x64 и arm64 на macOS.
Native AOT приложения включают в себя .NET runtime. Исходя из этого, они имеют больший размер по сравнению с обычными приложениями. В .NET 8 улучшили и этот аспект.
Рассмотрение других ништяков релиза — вот
#почитать
🤔 очередной #дайджест по С++
📥 Анализ приложений на C++ для оптимизации производительности — введение в анализ производительности программ на C++
📥 Стремление к улучшению кода на C++ — что такое анализ потоков данных, и какие ошибки может находить CLion
📥 C++23: Удаление поддержки сборки мусора — сказ о поддержке сборки мусора, включенной в C++11 и окончательно удаленной в C++23
📥 C++23 chunk view и stride view — видео о новых представлениях (views), добавленных в C++23
📥 Шаблоны для уменьшения размера бинарника — использовании extern template для сокращения размеров бинарных файлов
📥 Анализ приложений на C++ для оптимизации производительности — введение в анализ производительности программ на C++
📥 Стремление к улучшению кода на C++ — что такое анализ потоков данных, и какие ошибки может находить CLion
📥 C++23: Удаление поддержки сборки мусора — сказ о поддержке сборки мусора, включенной в C++11 и окончательно удаленной в C++23
📥 C++23 chunk view и stride view — видео о новых представлениях (views), добавленных в C++23
📥 Шаблоны для уменьшения размера бинарника — использовании extern template для сокращения размеров бинарных файлов
Как можно получить доступ к функциям-членам в контейнере?
Anonymous Quiz
53%
Iterator
13%
Indirect
15%
Оба варианта
15%
Ничего из вышеперечисленного
3%
Свой вариант
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🙃😉 Iteration Revisited
В видосе рассматривается альтернативная, более безопасная абстракция для перебора последовательностей и немного Flux.
Flux сохраняет всю мощь и гибкость существующего STL, значительно снижает потенциал UB за счет тщательного проектирования и выбора реализации — и все это при обеспечении совместимости с существующим кодом.
Если вам интересен STL, диапазоны и алгоритмы, вы ищете простой в использовании способ сделать вашу кодовую базу более устойчивой, то видео для вас.
#туториал
В видосе рассматривается альтернативная, более безопасная абстракция для перебора последовательностей и немного Flux.
Flux сохраняет всю мощь и гибкость существующего STL, значительно снижает потенциал UB за счет тщательного проектирования и выбора реализации — и все это при обеспечении совместимости с существующим кодом.
Если вам интересен STL, диапазоны и алгоритмы, вы ищете простой в использовании способ сделать вашу кодовую базу более устойчивой, то видео для вас.
#туториал
🧑🎓😎 Опыт создания UI библиотеки на C++
Все базируется на двух сущностях — Window и Control. Окно может содержать контролы, также само окно является контролом.
Control — это любой визуальный элемент для взаимодействия с пользователем — кнопка, поле ввода, список, меню и т.д. Control знает, как обрабатывать события, поступающие от Window, хранит свои состояния и рисует себя на графическом контексте, который предоставляется содержащим его окном.
Window — принимает системные события и обеспечивает их рассылку подписчикам. Так же окно дает команду на перерисовку своих контролов и предоставляет им свой graphic. Кроме этого, окно управляет фокусом ввода, может сделать модальность и отправить подписанному пользователю или в систему событие.
Graphic — предоставляет интерфейс к системным методам рисования. В настоящий момент, реализовано рисование на Windows GDI/GDI+ и Linux xcb/cairo. Разумеется, нет никаких препятствий реализовать рисование на vulcan/bare metal/etc.
В библиотеке также есть вспомогательные средства для работы — структуры common (содержит такие основные типы, как rect, color, font), event (события мыши, клавиатуры, внутренние и системные события), graphic (для физической отрисовки на системном графическом контексте) theme (система констант для удобной поддержки визуальных тем) , locale (подсистема для удобного хранения текстового контента), config (для удобной, единообразной работы с настройками приложения)
Далее подробное описание процесса и куча кода
#гайд
Все базируется на двух сущностях — Window и Control. Окно может содержать контролы, также само окно является контролом.
Control — это любой визуальный элемент для взаимодействия с пользователем — кнопка, поле ввода, список, меню и т.д. Control знает, как обрабатывать события, поступающие от Window, хранит свои состояния и рисует себя на графическом контексте, который предоставляется содержащим его окном.
Window — принимает системные события и обеспечивает их рассылку подписчикам. Так же окно дает команду на перерисовку своих контролов и предоставляет им свой graphic. Кроме этого, окно управляет фокусом ввода, может сделать модальность и отправить подписанному пользователю или в систему событие.
Graphic — предоставляет интерфейс к системным методам рисования. В настоящий момент, реализовано рисование на Windows GDI/GDI+ и Linux xcb/cairo. Разумеется, нет никаких препятствий реализовать рисование на vulcan/bare metal/etc.
В библиотеке также есть вспомогательные средства для работы — структуры common (содержит такие основные типы, как rect, color, font), event (события мыши, клавиатуры, внутренние и системные события), graphic (для физической отрисовки на системном графическом контексте) theme (система констант для удобной поддержки визуальных тем) , locale (подсистема для удобного хранения текстового контента), config (для удобной, единообразной работы с настройками приложения)
Далее подробное описание процесса и куча кода
#гайд
🏃🏃 Как быстрее адаптироваться на новом месте работы
Лайфхаки о том, как быстрее вливаться на новом месте работы и как быстрее начать приносить какой-то результат.
00:12 — Несрочные вопросы
01:12 — Срочные вопросы
01:41 — Культура и процессы
02:17 — Знакомство с кодом и документацией
03:06 — Цели у команды или компании
03:46 — Самоуверенность
04:29 — Заключение
#видео
Лайфхаки о том, как быстрее вливаться на новом месте работы и как быстрее начать приносить какой-то результат.
00:12 — Несрочные вопросы
01:12 — Срочные вопросы
01:41 — Культура и процессы
02:17 — Знакомство с кодом и документацией
03:06 — Цели у команды или компании
03:46 — Самоуверенность
04:29 — Заключение
#видео
Для чего используется интерфейс распределителя в определяемом пользователем контейнере?
Anonymous Quiz
19%
Управление хранилищем
49%
Управление памятью
23%
Все перечисленное
5%
Ничего из перечисленного
4%
Свой вариант
✍️🧑🍳 Теория кэширования
Урок про кеширование, что это такое, в каких ситуациях оно не полезно, виды, способы взаимодействия, алгоритмы вытеснения данных, инвалидация данных в кеше и еще о куче познавательных моментов, которые помогут в работе.
Смотреть видео
#видео
Урок про кеширование, что это такое, в каких ситуациях оно не полезно, виды, способы взаимодействия, алгоритмы вытеснения данных, инвалидация данных в кеше и еще о куче познавательных моментов, которые помогут в работе.
Смотреть видео
#видео
🤔 очередной #дайджест по С++
🔅 Показываем видео в терминале — знакомство с библиотекой OpenCV на примере программы для отображения видео в текстовом терминале
🔅 A Concise Introduction to Coroutines — введение в корутины (C++20): О Promise Type, Awaitable и Coroutine Handle
🔅 Интересный функционал в C++23 — о функциях высшего порядка и том, как они могут сделать ваш код более гибким и выразительным
🔅 Пишем графический ASCII-калькулятор с помощью стандартной библиотеки Си — разбор процесса разработки графического калькулятора с нуля
🔅 Безопасное программирование на Си — подход к безопасному программированию, сведения об инструментах проверки кода и примеры типовых ошибок
🔅 Показываем видео в терминале — знакомство с библиотекой OpenCV на примере программы для отображения видео в текстовом терминале
🔅 A Concise Introduction to Coroutines — введение в корутины (C++20): О Promise Type, Awaitable и Coroutine Handle
🔅 Интересный функционал в C++23 — о функциях высшего порядка и том, как они могут сделать ваш код более гибким и выразительным
🔅 Пишем графический ASCII-калькулятор с помощью стандартной библиотеки Си — разбор процесса разработки графического калькулятора с нуля
🔅 Безопасное программирование на Си — подход к безопасному программированию, сведения об инструментах проверки кода и примеры типовых ошибок
🥷Это путь воина
Напоминаем, что «Библиотека программиста» запустила два новых канала специально для специалистов по C++ и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по C++ — тут мы готовимся к интервью
👉Библиотека задач по C++ — тут решаем задачи, проходим тесты и изучаем код
Напоминаем, что «Библиотека программиста» запустила два новых канала специально для специалистов по C++ и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по C++ — тут мы готовимся к интервью
👉Библиотека задач по C++ — тут решаем задачи, проходим тесты и изучаем код
🔥 -50% на курс по алгоритмам + курс по machine learning в подарок
😲 В честь черной пятницы курс «Алгоритмы и структуры данных» со скидкой 50% – https://proglib.io/w/0d93e6fb
17 990 рублей35 990 рублей до 30 ноября
🐣 На курсе вы на практике познакомитесь со сложными алгоритмами и научитесь писать более короткий и эффективный код. И сможете подготовиться к собеседованию крупную IT-компанию.
Что еще вас ждет на курсе:
▪️ 150 практических заданий и 47 видеолекций;
▪️ Бессрочный доступ ко всем материалам курса;
▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
🎁 Но это еще не все!
⚡️При покупке курса по алгоритмам, вы получите курс по machine learning в подарок!
👉 Переходите на сайт и изучайте подробности – https://proglib.io/w/0d93e6fb
До встречи на обучении 🙌
😲 В честь черной пятницы курс «Алгоритмы и структуры данных» со скидкой 50% – https://proglib.io/w/0d93e6fb
17 990 рублей
🐣 На курсе вы на практике познакомитесь со сложными алгоритмами и научитесь писать более короткий и эффективный код. И сможете подготовиться к собеседованию крупную IT-компанию.
Что еще вас ждет на курсе:
▪️ 150 практических заданий и 47 видеолекций;
▪️ Бессрочный доступ ко всем материалам курса;
▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
🎁 Но это еще не все!
⚡️При покупке курса по алгоритмам, вы получите курс по machine learning в подарок!
👉 Переходите на сайт и изучайте подробности – https://proglib.io/w/0d93e6fb
До встречи на обучении 🙌
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🔢 Как научиться решать сложные задачи
Нам может не даваться решение сложных математических задач по многим причинам: от стереотипов до негативного школьного опыта. К счастью, это можно исправить. В карточках перечислили лучшие на наш взгляд книги, которые помогут понять, полюбить и подтянуть математику.
Ещё больше книг, а также курсы, игры, методики и приложения — в нашей статье 👈
Нам может не даваться решение сложных математических задач по многим причинам: от стереотипов до негативного школьного опыта. К счастью, это можно исправить. В карточках перечислили лучшие на наш взгляд книги, которые помогут понять, полюбить и подтянуть математику.
Ещё больше книг, а также курсы, игры, методики и приложения — в нашей статье 👈