proglibrary | Технологии

Telegram-канал proglibrary - Библиотека программиста | программирование, кодинг, разработка

77043

Все самое полезное для программиста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Учиться у нас: https://proglib.io/w/a32a0d94 Обратная связь: @proglibrary_feedback_bot По рекламе: @proglib_adv Прайс: @proglib_advertising

Подписаться на канал

Библиотека программиста | программирование, кодинг, разработка

🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.

В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями

👉Подписаться👈

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Предновогодний митап Frontend Night by Sber!⚡

Уже в понедельник, 11 декабря, Frontend-команда Сбера приглашает всех фронтендеров на свой заключительный митап в этом году. В программе:

✔️ Антон Непша — Senior Frontend-разработчик департамента IT-блока «Транзакционный банкинг B2C» — расскажет о том, как продать бизнесу рефакторинг и использовать простые решения для масштабных результатов.

✔️ Роман Ганин — Senior Frontend-разработчик команды «Салют В2В» — поделится секретами о важности тегов и их влиянии на работу сайтов.

✔️ Алексей Охрименко — TechLead Yandex Cloud — рассмотрит статистический анализ кода и покажет, как применить этот подход на практике.

А еще: много нетворкинга, игры и подарки.
Подключайтесь онлайн или приходите офлайн по адресу: г. Москва, ул. Маросейка, 7/8, FotoFaktura.
Важно: для участия в любом формате необходима регистрация.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Зачем проводить CTF для разработчиков, и как сделать его интересным

Пока команда безопасности внедряет SAST, DAST и WAF, чтобы сделать продукт безопасным, то упускает, что эти инструменты выявят уязвимости в уже написанном коде. Но сделать продукт изначально безопасным могут только те, кто делает этот продукт — сами разработчики.

Важно, чтобы они умели писать защищенный код, и один из инструментов, который их сможет заинтересовать в развитии этого навыка — CTF.

🔗 Читать статью

Реклама, ООО «Антифишинг» , ИНН: 6950191442
Erid: 2VtzqvVLdSA

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

📯Внимание всем отважным героям и искателям приключений!

«Библиотеки Программиста» с гордостью представляет новую захватывающую игру — «Битва с Драконом». Выберите своих персонажей и сразитесь с древним Крылатым Ужасом Бурлопиворогом в эпическом поединке!

Мы предлагаем вам взять под свой контроль хитроумного изобретателя или ловкого вора.

💎Победителей ждет почет, уважение и награда! Итак, кто осмелится бросить вызов Бурлопиворогу? Начните свою «Битву с Драконом»!

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🔂 Наиболее популярные стратегии снижения рисков деплоя или обновления сервисов: наглядная демонстрация от ByteByteGo (Alex Xu)

🔧 Мульти-сервисный деплой: одновременное обновление нескольких сервисов. Просто в реализации, но сложно управлять зависимостями и откатывать изменения.
🔧 Сине-зеленый деплой: подразумевает два одинаковых среды — стейджинг (синяя) и продакшен (зеленая). После тестирования в стейджинге, пользователи переключаются на нее, и она становится продакшеном. Удобна для отката, но может быть «дорогостоящей».
🔧 Канареечный деплой: постепенное обновление сервисов для небольших групп пользователей. Более экономична и легко откатывается, но требует тестирования в продакшене и мониторинга.
🔧 A/B тестирование: разные версии сервисов работают в продакшене для разных групп пользователей. Эффективно для тестирования новых функций, но требует контроля, чтобы избежать случайного деплоя функций.

#вопросы_с_собесов

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

📚 Напоминаем про наш полный курс «Самоучитель по Python для начинающих»

Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!

🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля — книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП — инкапсуляция и наследование
🐍 Часть 19: Основы ООП — абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Напоминаем про два новых канала для Python-разработчиков 👨‍🏫

В них мы:
🔸тренируемся на практических задачах
🔸отвечаем на популярные вопросы с собеседований
🔸проверяем свои знания

Подписывайтесь:
👉Библиотека собеса по Python — тут мы готовимся к интервью
👉Библиотека задач по Python — тут решаем задачи, проходим тесты и изучаем код

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

💡Развитие протоколов API в 2023 году: по мотивам статьи Alex Xu в блоге Postman

В PDF-файле — обзорная демонстрация, а в статье вас ждет подробный взгляд на шесть самых популярных протоколов API с акцентом на преимущества и проблемы каждого:

1️⃣ REST
2️⃣ Webhooks
3️⃣ GraphQL
4️⃣ SOAP
5️⃣ WebSocket
6️⃣ gRPC

💬 Какой используется в вашем проекте? Делитесь в комментариях мыслями по данной теме👇

#проектирование_систем

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤔 Размышления о 18 годах работы в Google

Google давно ушла от своей миссии «Упорядочить мировую информацию и сделать ее универсально доступной и полезной» к погоне за краткосрочными колебаниями курса акций.

Почему так произошло и можно ли это исправить? Читайте перевод статьи-откровения Ian Hickson, который проработал в Google 18 лет.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Pattern Guru - канал по паттернам программирования.

Знаешь как работает Singleton?

Используешь шаблон Fabrica?

Можешь сам написать Decorator?

Понимаешь что такое Best Practices?

Всё это и не только мы разбираем у нас в канале.

Подписывайся: @highloadmicro

Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2VtzqvSLi6D

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🔂 4 наиболее часто используемых типов очередей на одной диаграмме: наглядная иллюстрация от ByteByteGo (Alex Xu)

1️⃣Простая очередь FIFO. Следует принципу First In First Out — первым пришел, первым ушел. Все новые элементы добавляются в конец очереди. Когда элемент удаляется из очереди, удаляется элемент, который находится в начале очереди, то есть добавленный первым.

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

2️⃣Круговая очередь или кольцевой буфер. Ее последний элемент связан с первым элементом. Вставка происходит в начале очереди, а удаление — в конце.

💡Применение: управление аудиоданными в реальном времени, где кольцевой буфер может использоваться для временного хранения аудиоданных перед их обработкой. 

3️⃣Очередь с приоритетами. Каждый элемент имеет определенный приоритет, и элементы обрабатываются в порядке их приоритета, а не в порядке их добавления.

💡Применение: система управления задачами в компании. Задачи могут иметь различный уровень срочности, и мы хотим, чтобы более срочные задачи обрабатывались в первую очередь.

4️⃣ Двухсторонняя очередь. Вставка и удаление могут происходить как в начале, так и в конце очереди. Двухсторонняя очередь поддерживает как FIFO, так и LIFO (Last In First Out — последним пришел, первым ушел), поэтому мы можем использовать ее для реализации структуры данных стека.

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

#вопросы_с_собесов

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🛠 Обзор GitHub на некоторые из наиболее интересных функций и изменений Git (обзор от OpenNET)

▫️В команду git repack добавлены опции "--filter" и "--filter-to", позволяющие выполнить переупаковку репозитория c учётом заданного фильтра объектов, и при необходимости перенести в отдельное место объекты, не удовлетворяющие заданному фильтру.

▫️Например для оставления в репозитории блобов, размером менее 1 МБ, и выносом в отдельный репозиторий остальных крупных объектов, можно выполнить:

$ git init --bare ../backup.git
$ git repack -ad --filter='blob:limit=1m' \
--filter-to=../backup.git/objects/pack/pack


▫️Инициализация репозитория при помощи частичного клонирования позволяет работать с неполной копией репозитория, корректно обрабатывая обращения к отсутствующим объектам (при обращении к отсутствующим объектам, они на лету будут загружаться по мере необходимости).

$ git clone --filter=tree:0 git@github.com:git/git.git


▫️Добавлена возможность работы (git repack --max-cruft-size) с несколькими pack-файлами с информацией о недостижимых объектах (cruft packs), на которые в репозитории отсутствуют ссылки (не ссылаются ветки или теги).

▫️Добавлено распознавание попыток выполнения двойной отмены коммита через git revert и учёт этого факта при формировании сообщения об отмене

$ git revert --no-edit HEAD >/dev/null
$ git revert --no-edit HEAD >/dev/null
$ git log --oneline
a300922 (HEAD -> main) Reapply "fix bug"
0050730 Revert "fix bug"
b290810 fix bug


▫️Разрешено совместное использование опций "--rfc" и "--subject-prefix". Например, для формирования письма с префиксом "[RFC PATCH bpf-next]" в теме сообщения можно указать:

$ git format-patch --subject-prefix="PATCH bpf-next" --rfc


▫️В команде git log разрешено указание заполнителя "%(decorate)" для показа имён связанных веток при определении формата при помощи опции "--format", например:

$ git log --format='%cr%(decorate) (%h) %s'


#новости #инструменты

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

📌 То, что зацепило на это неделе:

🤯 Как сооснователя Сэма Альтмана уволили с поста СЕО, а затем вернули обратно: разбор истории.
🤩 Dota 2 стала образовательной дисциплиной по стратегии в Филиппинском университете.
🤩 DALL-E 3 заработала в Paint для всех пользователей Windows 11.

🔸 Опубликован выпуск IDE Qt Creator 12.0, предназначенной для создания кроссплатформенных приложений с использованием Qt.
🔸 Представлен релиз PHP 8.3. Новая ветка включает ряд новых возможностей, а также несколько изменений, нарушающих совместимость.
🔸 Доступен выпуск Git 2.43. О новых фичах на русском читайте здесь.
🔸 Состоялся релиз Firefox 120. Новый выпуск поддерживает операцию Copy Link Without Site Tracking, позволяющую скопировать URL выбранной ссылки, предварительно вырезав из него опции, которые используются для отслеживания переходов. Читайте подробнее об этой и многих других фичах на русском.
🔸 В репозитории PyPI выявлено около 5000 оставленных в коде секретов и 8 вредоносных обфускаторов.

#чтопроисходит

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤩 Ребята из Honeypot продолжают снимать замечательные доки про языки программирования, популярные технологии, библиотеки и инструменты. Из последнего — Ruby on Rails.

Ruby on Rails (Rails) — один из самых обсуждаемых полнофункциональных фреймворков, который за 20 лет превратился из «сумасшедшей идеи» в ключевой инструмент в мире веб-разработки. Основатель Rails, датский программист Давид Хейнемейер Ханссон, известный как DHH, является одной из самых спорных и влиятельных фигур в сообществе. Он рассказывает о том, как Rails развивался и менялся.

Вас ждут интервью с ключевыми фигурами Rails, которые делятся историей языка и фреймворка, страстью, противостоянием и зрелостью, наступившей после выпуска Rails 3.0.

📌 Другие доки:
📺 React.js
📺 Prometheus
📺 Kubernetes: часть 1 & часть 2
📺 Vue.js
📺 GraphQL
📺 Elixir
📺 Ember.js

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

💡10 архитектурных стилей ПО и их паттерны: шпаргалка для разработчика

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

📌 Основные характеристики архитектурных стилей и примеры паттернов:

1️⃣ Многослойный: разделяет систему на слои с четко определенными ролями и зависимостями. Каждый слой выполняет определенную функцию.

📝 «N-уровневая архитектура», «Чистая архитектура».

2️⃣ Компонентно-ориентированный: фокусируется на разделении системы на отдельные, взаимозаменяемые компоненты, каждый из которых имеет четко определенный интерфейс.

📝 «Микроядро», «Плагин».

3️⃣ Сервисно-ориентированный: состоит из независимых сервисов, которые общаются друг с другом.

📝 SOA, Broker, «Микросервисы», FaaS.

4️⃣ Распределенная система: включает системы, распределенные по различным сетевым узлам для улучшения масштабируемости и надежности.

📝 Space-Based, «Одноранговая сеть».

5️⃣ Предметно-ориентированный: подход, сосредоточенный на моделировании домена и бизнес-логики, и акцентирующий внимание на сложных бизнес-правилах.

📝 Шестигранный паттерн, DDD.

6️⃣ Событийно-ориентированный: архитектура, основанная на обработке событий, где компоненты системы реагируют на события.

📝 CQRS, Pub-Sub.

7️⃣ Разделения ответственности: фокусируется на разделении системы на части, каждая из которых решает отдельную задачу.

📝 MVVP, MVP.

8️⃣ Интерпретатор: используется в кейсах, где требуется гибкость и возможность обработки разнообразных языковых структур.

📝 «Интерпретатор».

9️⃣ Конкурентность: ориентирован на разработку систем, которые одновременно выполняют несколько операций, улучшая производительность и отзывчивость.

📝 «Оркестрация», Choreography, Primary-Secondary, Pipeline.

🔟 Ориентированный на данные: архитектура, в которой данные играют ключевую роль, и все компоненты системы ориентированы на обработку данных.

📝 CQRS, Event Sourcing, Kappa, Lambda.

👉 Источник
👉 Читать на русском

#проектирование_систем

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🏃 Самоучитель по Go для начинающих. Часть 1. Особенности и сфера применения Go, установка, настройка

В этой статье разберем основные особенности Go, его преимущества и недостатки, а также настроим рабочее пространство для комфортной разработки.

🔗 Читать статью
🔗 Зеркало

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Присоединяйтесь к SberAutoTech — компании, создающей будущее в области беспилотного транспорта.

Наши автомобили находятся на дорогах с декабря 2020 года: проходят тестирование в условиях плотного городского трафика, с учётом различных погодных условий и времени суток. Кроме легковых, мы активно развиваем технологию на грузовых автомобилях, а в июне запустили коммерческие автономные грузоперевозки вместе с компанией-партнёром.

Для развития автономной транспортной системы нам нужны амбициозные и перспективные специалисты, разделяющие нашу веру в беспилотное будущее.
Вместе мы сможем решать самые смелые задачи, затрагивающие:
•разработку универсальной технологии автономного вождения и беспилотных транспортных средств;
•автомобильную ОС для комфортных и безопасных поездок;
•экосистему сервисов для автономного транспорта.

Давайте создавать будущее индустрии вместе. Присоединяйтесь к команде!

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🔤 Азбука SQL в примерах. Часть 1. Создаем базу данных и первую таблицу

С помощью этого короткого руководства в трех частях вы создадите базу данных, добавите в неё записи, а затем выполните несколько запросов для их обработки. В первой части мы узнаем, что скрывается за тремя буквами SQL и начнем двигаться к поставленной цели.

🔗 Читать статью
🔗 Зеркало

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

📰❌ 10 признаков фейковой вакансии

Как понять, что с вакансией что-то не так? Разбираемся в этой статье!

Читать статью

#почитать

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

⚛️ 45 вопросов для подготовки к собеседованию по React

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

В статье невозможно охватить все вопросы, которые могут задать на собеседовании, однако мы рассмотрим ответы на наиболее распространенные из них.

🔗 Читать статью
🔗 Зеркало

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

👨‍🎨 Искусство промтинга: введение в Midjourney

📝 Сейчас мало просто уметь писать правильные промты, но важно также знать некоторые хитрости каждого ИИ-помощника. Markus Wallén из 14islands подготовил подробное руководство по Midjourney, в котором рассказал, как начать работу и как создать идеальный промт, чтобы максимально использовать возможности нейросети.

🧰 В статье он разобрал структуру промтов и их атрибуты, а также показал примеры сгенерированных картинок. Прочитав статью, вы научитесь контролировать стилизацию или реализм изображения, а также соотношение сторон, разнообразие генерируемых композиций и многое другое.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤔 Уже лет 50, со времен выхода первого издания «Языка программирования Си» Кернигана и Ритчи, известно, что «числа с плавающей запятой» одинарной точности имеют размер 32 бита, а числа двойной точности — 64 бита. Существуют ещё и 80-битные числа расширенной точности типа «long double».

🧰 Эти типы данных покрывали почти все нужды обработки вещественных чисел. Но в последние несколько лет, с наступлением эпохи больших нейросетевых моделей, у разработчиков появилась потребность в типах данных, которые не «больше», а «меньше» существующих, потребность в том, чтобы как можно сильнее «сжать» типы данных, представляющие числа с плавающей запятой.

👨‍💻 Лучший способ разобраться в деталях — самостоятельно поработать с такими числами. Автор исследует самые популярные форматы чисел с плавающей запятой, создает с использованием некоторых из них простую нейронную сеть и наблюдает за тем, как она работает.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Подборка лучших статей «Библиотеки программиста» за ноябрь: сохраняй в заметки, чтобы не пропустить #самыйсок

🗺️ Дорожная карта Go-разработчика в 2023 году
🧑‍💻 6 карьерных советов программисту
⚖️ 25 курсов, книг и подкастов для развития критического мышления
🐍🎨 Генерация красивых QR-кодов с помощью Python
🔈16+ лучших нейронок для синтеза речи
FAQ по трудоустройству: разбираем самые популярные вопросы
👨‍💻 7 типов «сложных» разработчиков
Дорожная карта DevOps-инженера в 2023 году
❤️🙏 Путь к мечте: как инвалидность не помешала стать разработчиком и продолжить борьбу за здоровье
👀 6 способов привлечь внимание работодателя
🤖📜 Искусственный интеллект: краткая история
🔤 Азбука SQL в примерах (часть 1 + часть 2)
🔢 Как научиться решать сложные задачи
🏆 Самые популярные языки программирования 2023
📰❌ 10 признаков фейковой вакансии
🏃 Самоучитель по Go для начинающих (часть 1 + часть 2)
⚛️ 45 вопросов для подготовки к собеседованию по React
🐍 5 задач для подготовки к собеседованию по Python
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🏆 Самые популярные языки программирования 2023

Популярность ЯП зависит от нескольких факторов. Мы разобрались с ними, составили сводный рейтинг и обсудили особенности, преимущества, недостатки и причины популярности каждого языка. Заходите и читайте👇

🔗 Читать статью
🔗 Зеркало

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🧠Полезные каналы по Data Science

Напоминаем про наши каналы по Data Science, в которых мы готовимся к собеседованиям проверяем себя на практических задачках — специально для специалистов по Data Science и тех, кто хочет ими стать👨‍🏫

Подписывайтесь:
👉Библиотека собеса по Data Science — тут мы готовимся к интервью
👉Библиотека задач по Data Science — тут решаем задачи, проходим тесты и изучаем код

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Чёрная Пятница в Практикуме заканчивается 30 ноября. Выберите любой курс до 30.11 и учитесь на 20% дешевле. На курсах вас будут ждать:

— YandexGPT, который объяснит всё в любое время дня и ночи;
— интерактивный учебник, собранный на основе реальных задач специальности;
— команда сопровождения, которая поможет, подбодрит и увлечёт.

Чёрная Пятница в Практикуме — время карьерных перспектив!

→ Выбрать курс

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

👨‍🏫Полезные каналы по Go

Напоминаем, что «Библиотека программиста» запустила два канала специально для Go-разработчиков и тех, кто хочет ими стать.

Подписывайтесь:
👉Библиотека собеса по Go — тут мы готовимся к интервью
👉Библиотека задач по Go — тут решаем задачи, проходим тесты и изучаем код

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

❗️Мы запускаем серию исследований — и вы можете нам в этом помочь!

«Библиотека программиста» выпустит несколько статей, в которых мы проведем полноценные исследования.

Помогите нам выбрать интересные темы: может быть, вы давно хотели узнать, как изменилась зарплата у тех, кто релоцировался? Или гадаете, сколько лет нужно, чтобы стать миддлом?

Присылайте интересующие вас темы в комментарии — интересные мы возьмем в работу и поделимся с вами результатами 💙

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🥷Это путь воина

Напоминаем, что «Библиотека программиста» запустила два новых канала специально для специалистов по C++ и тех, кто хочет ими стать👨‍🏫

Подписывайтесь:
👉Библиотека собеса по C++ — тут мы готовимся к интервью
👉Библиотека задач по C++ — тут решаем задачи, проходим тесты и изучаем код

Читать полностью…
Подписаться на канал