Как поделить не деля или оптимизация деления компиляторам(и)
Если вы никогда не пробовали смотреть как код на C++ разворачивается компилятором в код Assembly – вас ждёт много сюрпризов, причём, не нужно смотреть какой-то замудренный исходный код полный templates или других сложных конструкций: рассмотрите следующий snippet:
https://habr.com/ru/articles/833470/
👉 @bookflow
Если вы никогда не пробовали смотреть как код на C++ разворачивается компилятором в код Assembly – вас ждёт много сюрпризов, причём, не нужно смотреть какой-то замудренный исходный код полный templates или других сложных конструкций: рассмотрите следующий snippet:
uint8_t div10(uint8_t x)
{
return x/10;
}
https://habr.com/ru/articles/833470/
👉 @bookflow
🔥2
Микросервисы для тех, кто прикидывается разработчиком. Часть 1
«Скажите, какие основные преимущества микросервисов и почему?». Вероятно, это самый популярный вопрос последних 6–10 лет на любом собеседовании для бэкенд разработчика. Каким‑то чудом он даже обогнал: «Назовите три принципа ООП» и «Чем отличается класс от объекта?»
https://habr.com/ru/articles/833544/
👉@Bookflow
«Скажите, какие основные преимущества микросервисов и почему?». Вероятно, это самый популярный вопрос последних 6–10 лет на любом собеседовании для бэкенд разработчика. Каким‑то чудом он даже обогнал: «Назовите три принципа ООП» и «Чем отличается класс от объекта?»
https://habr.com/ru/articles/833544/
👉@Bookflow
👍4
Подборка Telegram каналов для программистов
Системное администрирование 📌
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
https://t.me/Excel_lifehack
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Системное администрирование 📌
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
https://t.me/Excel_lifehack
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
👍2🔥2❤1
Микросервисы для тех, кто прикидывается разработчиком. Часть 2
И вот настал тот день, когда я наконец соизволил встать с дивана и дописать следующую статью о микросервисах. Кто не в теме - в прошлой части мы выяснили, как сильно неправильная пунктуация и тупые приколы могут раздражать. Ну и немного обсудили что такое микросервисы и зачем они вообще нужны. Не будем мы отходить от трендов и в этой части - продолжим погружаться в этот дивный машинного перевода, шуточек за 300 и микросервисов.
https://habr.com/ru/articles/842886/
👉@Bookflow
И вот настал тот день, когда я наконец соизволил встать с дивана и дописать следующую статью о микросервисах. Кто не в теме - в прошлой части мы выяснили, как сильно неправильная пунктуация и тупые приколы могут раздражать. Ну и немного обсудили что такое микросервисы и зачем они вообще нужны. Не будем мы отходить от трендов и в этой части - продолжим погружаться в этот дивный машинного перевода, шуточек за 300 и микросервисов.
https://habr.com/ru/articles/842886/
👉@Bookflow
👍7
Media is too big
VIEW IN TELEGRAM
Пытаюсь пройти System Design интервью / Такое спрашивают в MAANG? / Mock собеседование
❗️ВАЖНО! Данное собеседование является тестовым (mock) и несет в себе образовательную цель.
00:00 - НАЧАЛО
01:30 - условие задачи
02:26 - начинаю решать
47:40 - понял, что упустил из вида
53:40 - рисую диаграмму
01:25:11 - ФИДБЕК Марка
источник
👉@Bookflow
❗️ВАЖНО! Данное собеседование является тестовым (mock) и несет в себе образовательную цель.
00:00 - НАЧАЛО
01:30 - условие задачи
02:26 - начинаю решать
47:40 - понял, что упустил из вида
53:40 - рисую диаграмму
01:25:11 - ФИДБЕК Марка
источник
👉@Bookflow
👍2
Подборка полезных ресурсов для изучения C++
💡 https://www.learncpp.com/ — это бесплатный веб-сайт, посвященный обучению вас программированию на C++. Независимо от того, был ли у вас какой-либо предыдущий опыт программирования или нет, учебные пособия на этом сайте помогут вам выполнить все шаги по написанию, компиляции и отладке ваших программ на C++, и все это с большим количеством примеров.
💡 https://ravesli.com/uroki-cpp/ — Здесь представлены более 240 бесплатных уроков, где с нуля рассматриваются основы и тонкости языка С++ и программирования в целом. Есть пошаговые создания игр на С++ с помощью библиотек MFC и SFML, и более 70 практических заданий для проверки ваших навыков программирования.
💡 https://metanit.com/cpp/ — данный сайт посвящен различным языкам и технологиям программирования, компьютерам, мобильным платформам и ИТ-технологиям. Здесь будут выкладываться различные руководства и учебные материалы, статьи и примеры.
💡 http://cppstudio.com/cat/274/ — Если вы новичок в C++, предлагаю Вам прочитать этот бесплатный учебник. Здесь собрано большое количество статей для начинающих программистов по С++. Условно все статьи разделены на группы, кратко характеризующие их содержание. После прочтения статьи, можно закрепить материал, написав несколько программ. Для проверки своих теоретических знаний можно пройти тестирование по С++. В таблице после теоретических статей идет подраздел практики, в котором вы можете пройти тестирование и написать программы.
💡 https://cplusplus.com/doc/tutorial/ — These tutorials explain the C++ language from its basics up to the newest features introduced by C++11. Chapters have a practical orientation, with example programs in all sections to start practicing what is being explained right away.
💡 http://devdocs.io/cpp/ — The interface of C++ standard library is defined by the following collection of headers.
💡 https://en.cppreference.com/w/cpp — ещё одна хорошая документация на английском. Постоянно обновляется.
💡 https://learnc.info/ — хороший сайт с лекциями по языку C. В качестве базового языка вам предстоит изучать C. Почему именно C, а не Pascal, Python, Ruby или PHP? Этот язык заставляет вас думать обо всём. Когда программируешь на си, начинаешь понимать, что компьютер - просто железяка. Необходимо самостоятельно выделять память под объекты, затем очищать эту память, заботиться о переполнении массивов, переполнении переменных, изменении знака переменных, приведении типов, правильном обращении к памяти и т.д.
👉@Bookflow
💡 https://www.learncpp.com/ — это бесплатный веб-сайт, посвященный обучению вас программированию на C++. Независимо от того, был ли у вас какой-либо предыдущий опыт программирования или нет, учебные пособия на этом сайте помогут вам выполнить все шаги по написанию, компиляции и отладке ваших программ на C++, и все это с большим количеством примеров.
💡 https://ravesli.com/uroki-cpp/ — Здесь представлены более 240 бесплатных уроков, где с нуля рассматриваются основы и тонкости языка С++ и программирования в целом. Есть пошаговые создания игр на С++ с помощью библиотек MFC и SFML, и более 70 практических заданий для проверки ваших навыков программирования.
💡 https://metanit.com/cpp/ — данный сайт посвящен различным языкам и технологиям программирования, компьютерам, мобильным платформам и ИТ-технологиям. Здесь будут выкладываться различные руководства и учебные материалы, статьи и примеры.
💡 http://cppstudio.com/cat/274/ — Если вы новичок в C++, предлагаю Вам прочитать этот бесплатный учебник. Здесь собрано большое количество статей для начинающих программистов по С++. Условно все статьи разделены на группы, кратко характеризующие их содержание. После прочтения статьи, можно закрепить материал, написав несколько программ. Для проверки своих теоретических знаний можно пройти тестирование по С++. В таблице после теоретических статей идет подраздел практики, в котором вы можете пройти тестирование и написать программы.
💡 https://cplusplus.com/doc/tutorial/ — These tutorials explain the C++ language from its basics up to the newest features introduced by C++11. Chapters have a practical orientation, with example programs in all sections to start practicing what is being explained right away.
💡 http://devdocs.io/cpp/ — The interface of C++ standard library is defined by the following collection of headers.
💡 https://en.cppreference.com/w/cpp — ещё одна хорошая документация на английском. Постоянно обновляется.
💡 https://learnc.info/ — хороший сайт с лекциями по языку C. В качестве базового языка вам предстоит изучать C. Почему именно C, а не Pascal, Python, Ruby или PHP? Этот язык заставляет вас думать обо всём. Когда программируешь на си, начинаешь понимать, что компьютер - просто железяка. Необходимо самостоятельно выделять память под объекты, затем очищать эту память, заботиться о переполнении массивов, переполнении переменных, изменении знака переменных, приведении типов, правильном обращении к памяти и т.д.
👉@Bookflow
👍6❤1
Media is too big
VIEW IN TELEGRAM
🖥 MIT 18.102 Introduction to Functional Analysis
Бесплатный курс от MIT по Функциональному анализу. 23 лекции и конспекты.
https://www.youtube.com/playlist?list=PLUl4u3cNGP63micsJp_--fRAjZXPrQzW_
👉@Bookflow
Бесплатный курс от MIT по Функциональному анализу. 23 лекции и конспекты.
https://www.youtube.com/playlist?list=PLUl4u3cNGP63micsJp_--fRAjZXPrQzW_
👉@Bookflow
👍3🔥1
C++: Рендеринг на основе физики: от теории к реализации
Мэтт Фарр, Венцель Якоб и Грег Хамфрис
Фотореалистичная компьютерная графика повсеместно распространена в современном мире, широко используется в кино и видеоиграх, а также в дизайне продуктов и архитектуре. Физически обоснованные подходы к рендерингу, когда в основе синтеза изображения лежит точное моделирование физики рассеивания света, обеспечивают визуальную реалистичность и предсказуемость. Этот учебник по компьютерной графике, ставший бестселлером, в новом, всесторонне обновленном издании устанавливает стандарты физически-ориентированного рендеринга в индустрии и области.
Книга Physically Based Rendering описывает как математическую теорию, лежащую в основе современной системы фотореалистичного рендеринга, так и ее практическую реализацию. Метод, известный как грамотное программирование, объединяет человекочитаемую документацию и исходный код в единый справочник, специально разработанный для облегчения понимания. Передовые алгоритмы, программное обеспечение и идеи книги, включая новый материал о трассировке лучей на GPU, позволят читателю разработать и использовать полнофункциональную систему рендеринга, способную создавать потрясающие изображения.
https://www.pbr-book.org/4ed/contents
👉@Bookflow
Мэтт Фарр, Венцель Якоб и Грег Хамфрис
Фотореалистичная компьютерная графика повсеместно распространена в современном мире, широко используется в кино и видеоиграх, а также в дизайне продуктов и архитектуре. Физически обоснованные подходы к рендерингу, когда в основе синтеза изображения лежит точное моделирование физики рассеивания света, обеспечивают визуальную реалистичность и предсказуемость. Этот учебник по компьютерной графике, ставший бестселлером, в новом, всесторонне обновленном издании устанавливает стандарты физически-ориентированного рендеринга в индустрии и области.
Книга Physically Based Rendering описывает как математическую теорию, лежащую в основе современной системы фотореалистичного рендеринга, так и ее практическую реализацию. Метод, известный как грамотное программирование, объединяет человекочитаемую документацию и исходный код в единый справочник, специально разработанный для облегчения понимания. Передовые алгоритмы, программное обеспечение и идеи книги, включая новый материал о трассировке лучей на GPU, позволят читателю разработать и использовать полнофункциональную систему рендеринга, способную создавать потрясающие изображения.
https://www.pbr-book.org/4ed/contents
👉@Bookflow
🔥5👍2
Подборка Telegram каналов для программистов
Системное администрирование 📌
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
https://t.me/Excel_lifehack
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Системное администрирование 📌
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
https://t.me/Excel_lifehack
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Telegram
DevOps Star (Звезда Девопса)
Devops, Linux, SRE, Kubernetes, Сисадмин, Девопс, Python, JS, Java, Git, IT канал, программирование, безопасность, ИТ, Sysadmin
По всем вопросам @evgenycarter
По всем вопросам @evgenycarter
👍3
Случай из практики анализа кода
Помимо административной работы моей основной деятельностью является поиск различных уязвимостей. Чаще всего мой инструментарий представляет собой набор каких-то отладчиков, динамических анализаторов и прочего подобного. Но иногда приходится заниматься анализом исходного кода произвольной степени кривизны понятности. И это практически отдельный параллельный мир в области безопасности.
https://habr.com/ru/companies/pm/articles/837688/
👉@Bookflow
Помимо административной работы моей основной деятельностью является поиск различных уязвимостей. Чаще всего мой инструментарий представляет собой набор каких-то отладчиков, динамических анализаторов и прочего подобного. Но иногда приходится заниматься анализом исходного кода произвольной степени кривизны понятности. И это практически отдельный параллельный мир в области безопасности.
https://habr.com/ru/companies/pm/articles/837688/
👉@Bookflow
👍4
Опыт создания UI библиотеки на C++
Началось все почти два года назад в декабрe, наш основной проект (видео мессенджер) использовал WTL для Windows и GTKmm для Linux. Поддержки мака не было. Огромной неприятностью было тащить два идентичных клиента, которые, по идее, должны делать все строго одно и тоже. Разумеется, это никогда не получалось. От мысли что надо бы сделать ещё один нативный клиент для мака начинался нервный тик...
На резонный вопрос - почему сразу делалось не на Qt могу лишь ответить, что это связано с, так скажем, гурманскими предпочтениями и, отчасти, с любовью к монолитным exe. Да и не требовалось на старте ничего кроме винды.
В течение шести лет жизни с двумя кодовыми базами одного и того же, неспешно подбирались легковесные UI библиотеки написанные хотя бы в стиле C++11.
Надо сказать, что мы активно используем boost и всей душой, как можем, его любим...
В 2021 году видимо Гугл работал плохо или звёзды так сошлись, но не нашлось ничего стоящего. Все что попадалось - основанные на рендеринге html проекты и обертка над wxWidgets. Сейчас то мы знаем про lvgl, да... А вообще, тысячи их.
wxWidgets не плох, но хотелось своего рисования, без окошек под кнопки, поля ввода и списки, boost/bsd подобной лицензией, максимально лаконичной, и в идеале работающей от Windows XP / CentOS 6 на стандартном GDI / X11 до Vulkan на современных машинах.
В итоге, все же было принято волевое решение сделать минимальный UI фреймворк для этого проекта, и сразу выпускать его в Open Source под лицензией boost.
https://habr.com/ru/articles/768336/
👉@Bookflow
Началось все почти два года назад в декабрe, наш основной проект (видео мессенджер) использовал WTL для Windows и GTKmm для Linux. Поддержки мака не было. Огромной неприятностью было тащить два идентичных клиента, которые, по идее, должны делать все строго одно и тоже. Разумеется, это никогда не получалось. От мысли что надо бы сделать ещё один нативный клиент для мака начинался нервный тик...
На резонный вопрос - почему сразу делалось не на Qt могу лишь ответить, что это связано с, так скажем, гурманскими предпочтениями и, отчасти, с любовью к монолитным exe. Да и не требовалось на старте ничего кроме винды.
В течение шести лет жизни с двумя кодовыми базами одного и того же, неспешно подбирались легковесные UI библиотеки написанные хотя бы в стиле C++11.
Надо сказать, что мы активно используем boost и всей душой, как можем, его любим...
В 2021 году видимо Гугл работал плохо или звёзды так сошлись, но не нашлось ничего стоящего. Все что попадалось - основанные на рендеринге html проекты и обертка над wxWidgets. Сейчас то мы знаем про lvgl, да... А вообще, тысячи их.
wxWidgets не плох, но хотелось своего рисования, без окошек под кнопки, поля ввода и списки, boost/bsd подобной лицензией, максимально лаконичной, и в идеале работающей от Windows XP / CentOS 6 на стандартном GDI / X11 до Vulkan на современных машинах.
В итоге, все же было принято волевое решение сделать минимальный UI фреймворк для этого проекта, и сразу выпускать его в Open Source под лицензией boost.
https://habr.com/ru/articles/768336/
👉@Bookflow
👍4
Знакомство с constexpr unique_ptr (С++23)
https://andreasfertig.blog/2023/10/using-cpp23s-constexpr-unique_ptr/
👉@Bookflow
https://andreasfertig.blog/2023/10/using-cpp23s-constexpr-unique_ptr/
👉@Bookflow
👍3
Поведенческие паттерны
Согласно Википедии, поведенческие шаблоны (behavioral patterns) — шаблоны проектирования, определяющие алгоритмы и способы реализации взаимодействия различных объектов и классов.
Проще говоря, поведенческие паттерны связаны с распределением обязанностей между объектами и описывают структуру и шаблоны для передачи сообщений / связи между компонентами.
К ним относятся:
⚫️ Template Method, или Шаблонный метод;
⚫️ Iterator, или Итератор;
⚫️ Observer, или Наблюдатель;
⚫️ Chain of Responsibility, или Цепочка обязанностей;
⚫️ Command, или Команда;
⚫️ Mediator, или Посредник;
⚫️ Memento, или Хранитель;
⚫️ Visitor, или Посетитель;
⚫️ Strategy, или Стратегия;
⚫️ State, или Состояние.
👉@Bookflow
Согласно Википедии, поведенческие шаблоны (behavioral patterns) — шаблоны проектирования, определяющие алгоритмы и способы реализации взаимодействия различных объектов и классов.
Проще говоря, поведенческие паттерны связаны с распределением обязанностей между объектами и описывают структуру и шаблоны для передачи сообщений / связи между компонентами.
К ним относятся:
👉@Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Git Merge vs. Rebase vs. Squash Commit
В чем разница?
Когда мы объединяем изменения из одной ветки Git в другую, мы можем использовать «git merge» или «git rebase». Диаграмма ниже показывает, как работают эти две команды.
Git Merge
Эта команда создает новый коммит G’ в основной ветке. G’ связывает историю обеих веток: основной и функциональной.
Git merge — это недеструктивная операция. Она добавляет новый коммит в основную ветку, не изменяя существующие коммиты в обеих ветках.
Git Rebase
Git rebase переносит историю коммитов функциональной ветки на конец основной ветки. Он создает новые коммиты E’, F’ и G’ для каждого коммита в функциональной ветке.
Преимущество rebase в том, что он создает линейную историю коммитов.
Однако будьте осторожны: следуйте золотому правилу Git Rebase — никогда не используйте его на общих ветках, чтобы избежать путаницы среди ваших коллег.
Git Squash Commit
Сквошинг сжимает несколько коммитов в один, упрощая историю коммитов.
👉@Bookflow
В чем разница?
Когда мы объединяем изменения из одной ветки Git в другую, мы можем использовать «git merge» или «git rebase». Диаграмма ниже показывает, как работают эти две команды.
Git Merge
Эта команда создает новый коммит G’ в основной ветке. G’ связывает историю обеих веток: основной и функциональной.
Git merge — это недеструктивная операция. Она добавляет новый коммит в основную ветку, не изменяя существующие коммиты в обеих ветках.
Git Rebase
Git rebase переносит историю коммитов функциональной ветки на конец основной ветки. Он создает новые коммиты E’, F’ и G’ для каждого коммита в функциональной ветке.
Преимущество rebase в том, что он создает линейную историю коммитов.
Однако будьте осторожны: следуйте золотому правилу Git Rebase — никогда не используйте его на общих ветках, чтобы избежать путаницы среди ваших коллег.
Git Squash Commit
Сквошинг сжимает несколько коммитов в один, упрощая историю коммитов.
👉@Bookflow
👍13
Облачные базы данных: Шпаргалка
В современном мире, основанном на данных, выбор правильной базы данных имеет решающее значение и в то же время сложен. Сейчас облако предлагает больше возможностей для структурированных, полуструктурированных и неструктурированных баз данных, чем когда-либо. Эта шпаргалка поможет выбрать наиболее подходящую для ваших нужд.
Структурированные базы данных📌
Структурированные базы данных организуют данные в предопределенные схемы и модели.
Реляционные базы данных, такие как MySQL и PostgreSQL, хранят данные в таблицах со строками и столбцами.
Колоночные базы данных, такие как Amazon Redshift и Google BigQuery, также имеют структурированную модель данных, но хранят их по-другому, оптимизируя для аналитических запросов.
Преимущества:
- Эффективные SQL-запросы
- Возможность применения ограничений и валидации
- Последовательность там, где это необходимо
Примеры использования: CRM-системы, управление запасами, бухгалтерский учет, аналитика
Полуструктурированные базы данных📌
Полуструктурированные базы данных обеспечивают гибкость, храня данные без соблюдения формальной схемы. Данные часто хранятся в виде JSON или других гибких форматов.
Примеры включают в себя документ-базы данных, такие как MongoDB, графовые базы данных, наподобие Neptune, широкие колоночные хранилища, такие как ScyllaDB, и хранилища ключ-значение, такие как DynamoDB.
Преимущества:
- Гибкость для изменяющихся данных
- Масштабируемость на разных серверах
Примеры использования: Электронная коммерция, ленты социальных сетей, данные IoT
Неструктурированные базы данных📌
Неструктурированные базы данных оптимизированы для хранения и обработки огромных объемов разнородных данных, таких как документы, изображения, видео. Примеры: AWS S3, Azure Blob Storage.
Преимущества:
- Хранение огромных объемов данных
- Высокая масштабируемость
Примеры использования: Медиарепозитории, управление контентом, океаны данных, журнальные данные, резервное копирование.
👉 @Bookflow
В современном мире, основанном на данных, выбор правильной базы данных имеет решающее значение и в то же время сложен. Сейчас облако предлагает больше возможностей для структурированных, полуструктурированных и неструктурированных баз данных, чем когда-либо. Эта шпаргалка поможет выбрать наиболее подходящую для ваших нужд.
Структурированные базы данных📌
Структурированные базы данных организуют данные в предопределенные схемы и модели.
Реляционные базы данных, такие как MySQL и PostgreSQL, хранят данные в таблицах со строками и столбцами.
Колоночные базы данных, такие как Amazon Redshift и Google BigQuery, также имеют структурированную модель данных, но хранят их по-другому, оптимизируя для аналитических запросов.
Преимущества:
- Эффективные SQL-запросы
- Возможность применения ограничений и валидации
- Последовательность там, где это необходимо
Примеры использования: CRM-системы, управление запасами, бухгалтерский учет, аналитика
Полуструктурированные базы данных📌
Полуструктурированные базы данных обеспечивают гибкость, храня данные без соблюдения формальной схемы. Данные часто хранятся в виде JSON или других гибких форматов.
Примеры включают в себя документ-базы данных, такие как MongoDB, графовые базы данных, наподобие Neptune, широкие колоночные хранилища, такие как ScyllaDB, и хранилища ключ-значение, такие как DynamoDB.
Преимущества:
- Гибкость для изменяющихся данных
- Масштабируемость на разных серверах
Примеры использования: Электронная коммерция, ленты социальных сетей, данные IoT
Неструктурированные базы данных📌
Неструктурированные базы данных оптимизированы для хранения и обработки огромных объемов разнородных данных, таких как документы, изображения, видео. Примеры: AWS S3, Azure Blob Storage.
Преимущества:
- Хранение огромных объемов данных
- Высокая масштабируемость
Примеры использования: Медиарепозитории, управление контентом, океаны данных, журнальные данные, резервное копирование.
👉 @Bookflow
👍2❤1😁1
big Big FLOAT! Произвольная точность: сравниваем opensource-программы для научных и математических вычислений
При проведении научных или математических исследований часто оказывается, что решить аналитически (символьно, с помощью формул) невозможно или очень сложно. И в этом случае мы решаем задачу численно. Для численного решения точность имеет решающее значение.
Аппаратной точности чисел с плавающей запятой (поддерживаемых современными CPU) в 32, 64 и 80 бит может не хватить. И даже чисел четверной точности может не хватить при многочисленных итерациях, в каждой из которой может происходить потеря точности. Если операции неэлементарны, то мы не сможем применить алгоритмы коррекции ошибок по типу алгоритма Кэхэна.
В этих случаях нам приходят на помощь вещественные числа произвольной точности. В статье мы рассмотрим несколько бесплатных программ с их поддержкой и сравним их.
https://habr.com/ru/companies/ruvds/articles/845084/
👉 @Bookflow
При проведении научных или математических исследований часто оказывается, что решить аналитически (символьно, с помощью формул) невозможно или очень сложно. И в этом случае мы решаем задачу численно. Для численного решения точность имеет решающее значение.
Аппаратной точности чисел с плавающей запятой (поддерживаемых современными CPU) в 32, 64 и 80 бит может не хватить. И даже чисел четверной точности может не хватить при многочисленных итерациях, в каждой из которой может происходить потеря точности. Если операции неэлементарны, то мы не сможем применить алгоритмы коррекции ошибок по типу алгоритма Кэхэна.
В этих случаях нам приходят на помощь вещественные числа произвольной точности. В статье мы рассмотрим несколько бесплатных программ с их поддержкой и сравним их.
https://habr.com/ru/companies/ruvds/articles/845084/
👉 @Bookflow
👍4
Regular expressions library (since C++11)
Библиотека регулярных выражений предоставляет класс, представляющий регулярные выражения, которые являются своего рода мини-языком, используемым для выполнения сопоставления шаблонов в строках.
https://en.cppreference.com/w/cpp/regex
👉 @Bookflow
Библиотека регулярных выражений предоставляет класс, представляющий регулярные выражения, которые являются своего рода мини-языком, используемым для выполнения сопоставления шаблонов в строках.
#include <iostream>
#include <iterator>
#include <regex>
#include <string>
int main()
{
std::string s = "Some people, when confronted with a problem, think "
"\"I know, I'll use regular expressions.\" "
"Now they have two problems.";
std::regex self_regex("REGULAR EXPRESSIONS",
std::regex_constants::ECMAScript | std::regex_constants::icase);
if (std::regex_search(s, self_regex))
std::cout « "Text contains the phrase 'regular expressions'\n";
std::regex word_regex("(\\w+)");
auto words_begin =
std::sregex_iterator(s.begin(), s.end(), word_regex);
auto words_end = std::sregex_iterator();
std::cout « "Found "
« std::distance(words_begin, words_end)
« " words\n";
const int N = 6;
std::cout « "Words longer than " « N « " characters:\n";
for (std::sregex_iterator i = words_begin; i != words_end; ++i)
{
std::smatch match = *i;
std::string match_str = match.str();
if (match_str.size() > N)
std::cout « " " « match_str « '\n';
}
std::regex long_word_regex("(\\w{7,})");
std::string new_s = std::regex_replace(s, long_word_regex, "[$&]");
std::cout « new_s « '\n';
}
https://en.cppreference.com/w/cpp/regex
👉 @Bookflow
❤4👍2
Совет по Java 💡
Занимаетесь ли вы версионированием REST API в своих приложениях? Micronaut🚀 - единственный популярный фреймворк Java☕, который предоставляет очень удобный встроенный механизм для этого.
👉 @Bookflow
Занимаетесь ли вы версионированием REST API в своих приложениях? Micronaut🚀 - единственный популярный фреймворк Java☕, который предоставляет очень удобный встроенный механизм для этого.
👉 @Bookflow
👍4