Программирование {BookFlow}
16.2K subscribers
1.58K photos
469 videos
145 files
2.1K links
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий.

Группа в https://vk.com/bookflow.

По всем вопросам @evgenycarter

РКН https://clck.ru/3KoAbH
Download Telegram
Как работает HTTPS

👉 @bookflow
👍7
Профилирование Python — почему и где тормозит ваш код

Представьте ситуацию: вы написали скрипт для обработки каких-то данных на ноутбуке, ушли попить кофе, а когда пятнадцать минут спустя вернулись, завершилось едва ли 10%.

Почему скрипт работает так медленно? Какая его часть тормозит? Дело в чтении данных, их обработке или сохранении? Как ускорить исполнение? Действительно ли скрипт вообще медленный?

Ответить на все эти вопросы поможет инструмент под названием «профилировщик» (profiler).

Rus https://habr.com/ru/companies/ruvds/articles/757336/

Eng https://betterprogramming.pub/python-profiling-why-and-where-your-code-is-slow-d6f41601dba8

👉 @bookflow
👍2
В Linux Logical Volume Manager (LVM) - это система управления хранением данных, которая обеспечивает более гибкий подход к управлению дисковым хранилищем, чем традиционное разбиение на разделы. LVM работает за счет создания уровня абстракции между физическими устройствами хранения и файловой системой, позволяя создавать логические тома, которые могут охватывать несколько физических дисков.

С помощью LVM вы можете создавать группы томов из одного или нескольких физических дисков, а затем создавать логические тома в этих группах томов. Логические тома ведут себя как традиционные разделы диска, но у них есть несколько преимуществ:

- Размер логических томов можно динамически изменять в режиме онлайн, без необходимости размонтирования файловых систем или перезагрузки системы. Такая гибкость позволяет адаптироваться к меняющимся потребностям в хранении данных без простоев.

- Логические тома можно легко расширить, добавив в группу томов дополнительные физические диски. Такая масштабируемость позволяет увеличивать объем хранилища без ущерба для существующих данных.

- LVM предоставляет такие возможности, как моментальные снимки, которые позволяют создавать копии логических томов «точка-в-время» для целей резервного копирования или тестирования.

Чтобы проиллюстрировать важность LVM, рассмотрим сценарий, в котором у вас есть сервер Linux с двумя физическими дисками, и вы хотите создать логический том для данных вашего веб-сервера. Изначально вы создаете логический том, охватывающий оба диска, обеспечивая большую емкость хранения, чем может предоставить один диск. Позже, по мере роста объема данных веб-сервера, вы сможете добавить третий диск в группу томов и расширить логический том, включив в него этот новый диск, увеличив его размер без простоев.

👉 @bookflow
👍2
Как долго может работать ваше приложение на PHP?
Чувствуете ограниченность PHP в долгосрочной перспективе?

9 июля в 20:00 мск узнайте, как ваш PHP-код может работать дольше простого HTTP-запроса, обрабатывая данные для интеграции с партнерами или реагируя на события системы в реальном времени. 

🔮На вебинаре вы узнаете:

- какие классы задач могут решать долгоживущие приложения на PHP;
- какие инструменты и средства доступны для реализации этих задач;
- как правильно организовать работу приложений на PHP, чтобы избежать проблем с памятью;
- когда стоит рассматривать расширение стека и использовать другие языки программирования.

Спикер Александр Пряхин — технический руководитель юнита в Авито и опытный преподаватель.

🎁Регистрируйтесь на урок и получите подарок участника чек-лист «‎SOLID и типичные ошибки на собеседованиях»: https://vk.cc/cyeeU2
👍1
Многообразие связных списков

Связный список — классическая структура данных, которая позволяет быстрые вставки/удаления, но при этом просаживает другие операции (случайный доступ к элементу). Мы пройдёмся от базовой реализации до других возможных вариаций этой структуры данных и, надеюсь, вместе узнаем что-то новое. Краем глаза увидим возможные применения связных списков. И в конце, для любителей C++, бонус: использование связного списка для сбора диагностики использования динамической памяти в вашем коде.

https://habr.com/ru/articles/814955/

👉 @bookflow
🥰2👍1
Media is too big
VIEW IN TELEGRAM
Эффективное использование памяти во встраиваемых системах
Алексей Алешкин (ИнфоТеКС)

Отличительная особенность разработки ПО для встраиваемых систем — ограниченность доступной памяти. Применение С++ значительно повышает скорость разработки, однако ухудшает прозрачность управления памятью и нефункциональные характеристики кода. Эти побочные эффекты зачастую приводят к понижению потребительских качеств продукта, ухудшению стабильности его работы или даже к невозможности реализации проекта на заданной платформе.

В процессе разработки проекта SIES Core команда Алексея столкнулась со всеми перечисленными побочными эффектами, что потребовало глубоких долгих исследований, результатами которых он поделился с аудиторией.

Доклад будет интересен разработчикам backend и embedded, создающим ПО с использованием С++ на недорогих платформах с ограниченным объемом памяти и отсутствием MMU.

Технологии: аллокаторы, MMU, Semihosting FS, GCC, GDB, OpenOCD.

источник

👉 @bookflow
👍3
REST API Design

👉 @bookflow
👍10
☁️Шпаргалка по сравнению облаков

👉 @bookflow
👍31
Шпаргалка по шаблонам проектирования

👉 @bookflow
👍8😁1
Реверс-инжиниринг умных часов

Недавно в моём распоряжении оказалась партия умных часов с поддержкой геолокации, которые после тестирования были отправлены в резерв. Мне было поручено найти применение для этих девайсов, с чего и началась история их реверс-инжиниринга, о которой я поведаю в этой статье.

Начну я с рассмотрения их внешних особенностей и схемы, после чего подробно расскажу о том, как перепрограммировал эти часы, в том числе пропатчив их под иные задачи.

https://habr.com/ru/companies/ruvds/articles/827958/

👉 @bookflow
👍3
Как работает Docker?


Архитектура Docker состоит из трех основных компонентов:

🔹 Docker Client
Это интерфейс, через который взаимодействуют пользователи. Он взаимодействует с Docker daemon.

🔹 Docker Host
Здесь Docker daemon принимает запросы Docker API и управляет различными объектами Docker, включая образы, контейнеры, сети и тома.

🔹 Docker Registry
Здесь хранятся образы Docker. Docker Hub, например, является широко используемым public registry.

👉 @bookflow
👍5
Использование брокера сообщений Apache Kafka в распределенных очередях

24 июля в 20:00 мск

Хотите узнать, как эффективно управлять сообщениями в масштабируемых распределенных системах? Тогда этот открытый вебинар для вас!

Мы разберем основы и архитектуру Apache Kafka, принципы работы с распределенными очередями, а также научимся настраивать и развертывать кластер Kafka в Docker. Вы увидите реальные примеры использования Kafka для обмена сообщениями между сервисами и узнаете о лучших практиках и рекомендациях по интеграции Kafka в ваши проекты.

💻 Урок будет полезен Fullstack и Backend-разработчикам, DevOps-инженерам, архитекторам ПО и администраторам систем, а также всем, кто хочет углубить свои знания об Apache Kafka и его применении.

🔴 Регистрация открыта: https://vk.cc/cyu2Qp

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍1
Media is too big
VIEW IN TELEGRAM
Сеть и сокеты. База для backend разработчика.

Поговорим про базовые понятия, связанные с сетью. Сокеты, что это такое и как с ними подружиться. Базовые протоколы TCP / UDP и чем они отличаются. Прикладные протоколы HTTP/SMTP/POP3/IMAP/FTP/SSH/SFTP и другие. Коснемся пулов соединений и таймаутов. Всё что необходимо понимать backend разработчику и еще немного!

Тайм коды:
00:00 Интро
00:15 Сокеты
02:20 Протоколы
04:00 TCP и UDP
05:24 Прикладные протоколы
07:50 Пулы соединений
10:58 Таймауты
12:48 Безопасность
16:00 Итог

источник

👉 @bookflow
👍6