python2day | Блоги

Telegram-канал python2day - [PYTHON:TODAY]

27148

Привет! — Делюсь опытом, пишу на Python и других языках — Создаю ботов и сайты — Парсинг, машинное обучение, big data, щупаю pentesting YouTube: https://www.youtube.com/c/pythontoday Чат: @python2day_chat Сотрудничество: @web_runner

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

[PYTHON:TODAY]

😲 Реддитор создал бесплатный клон After Effects

Софт бесплатный, работает прямо в браузере и не требует регистрации. Дизайн стилизован под After Effects, функционал и кнопки на том же месте.

Сервис пробуем тут 😎

#soft

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

[PYTHON:TODAY]

🚀 Отправляемся в мир Django: ваш первый проект в веб-разработке

22 июля в 19:00 мск — не пропустите открытый урок

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

Спикер — опытный системный инженер, веб-разработчик и преподаватель.

Встречаемся в преддверии старта курса «Специализация Python Developer». Все участники вебинара получат специальную цену на обучение.

🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://otus.pw/lSFW/?erid=LjN8JwJbT

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

[PYTHON:TODAY]

TLDR: Wunder Fund, Data Detective, Data Infrastructure Engineer, Алготрейдинг, HFT, remote

💵 Вилка: $5-8k net (на руки)
🐶 Платим удобным способом, помогаем с релокацией много куда, удаленка.

👁 Инфа: Мы — Wunder Fund, занимаемся высокочастотной торговлей (HFT) уже 10 лет и наш дневной оборот больше $5 млрд. Каждый день мы аккуратно сохраняем большой объем биржевых данных и преобразуем их в специальный единый формат, чтобы наши кванты могли тестировать идеи и создавать торговые алгоритмы.

🕵🏻‍♂️ Задачи: Несмотря на предельную аккуратность, потери случаются. Поэтому сейчас у нас отрыта роль Data Infrastructure Engineer/Researcher, работа которого будет похожа на детективное расследование. Нам очень важно, чтобы полученные данные были пригодны для симуляции и на 100% совпадали с реальными событиями на бирже. Ты будешь создавать очень надежные дата-пайплайны, чекеры, расследовать загадочные инциденты.

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

Что нужно:
— Python 3
— Быть опытным практиком в методе пристального вглядывания в данные;
— Мы ожидаем, что у тебя уже есть успешный опыт работы с дата-пайплайнами
— Будет плюсом: успехи в Kaggle-соревнованиях; ШАД, успехи в ICPC и других олимпиадах.

Подробнее: https://clck.ru/3BcVkD
Пишите в ТГ:
@wunderfund

#job #vacancy #python

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

[PYTHON:TODAY]

4 месяца и ты Python-разработчик? 🐍 С Merion Academy это возможно!

Забирай целый набор из бесплатных полезностей:

2 бесплатных урока, где вы познакомитесь с базой, освоите синтаксис и сразу начнете писать свою программу для портфолио

✅В дополнение бесплатный интенсив по развитию карьеры, где HR-эксперты расскажут лайфхаки, как создавать сильные резюме и проходить собеседования так, чтобы вас взяли на работу

✅Курс по английскому для IT тех, кто захочет учиться дальше

👉 Регистрируйтесь по ссылке чтобы забирать бесплатные уроки, интенсив по карьере и гайд.

Что еще важно знать:

1. У ребят одна из самых доступных цен, которая в 4-5 раз ниже рынка. Вам не нужно переплачивать за менторов и наставников, так как в Merion доносят материал так понятно, что они вам не нужны

2. Есть возможность оплаты через сервис "Яндекс-Долями", т.е. учиться сразу, но платить по чуть-чуть

Merion Academy – это экосистема доступного образования, которая включает в себя:
merionacademy">Youtube-канал, где простыми словами говорят о сложных вещах
IT-академию, где обучат востребованным направлениям по самым доступным ценам
IT-базу знаний с полезными статьями

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

[PYTHON:TODAY]

📂 Python для начинающих: базовый курс

Описание:

Python - это один из самых популярных языков программирования в мире. Он используется в таких сферах, как анализ данных, машинное обучение, веб-разработка, DevOps, разработка игр и т.д. Кроме того многие крупные международные компании, такие как Google, Facebook, Dropbox, Spotify, Quora, Netflix, на определенных этапах разработки своих продуктов использовали именно язык программирования Python.

За счёт своего простого синтаксиса и отсутствия необходимости в компиляции Python хорошо подходит для легкого обучения программированию с нуля, позволяя уделять большее внимание изучению алгоритмов, концептов и парадигм.
В этом курсе вы последовательно шаг за шагом пройдете все необходимые этапы, чтобы научиться разрабатывать код на языке программирования Python. По окончании курса вы будете не только обладать всеми основными базовыми знаниями в области программирования и разработки программных продуктов, но также уметь составлять правильные и эффективные алгоритмы, писать "красивый" и понятный код, а также разбирать "чужой" код и поэтапно работать над большими комплексными проектами "с нуля". Кроме того вы также научитесь выполнять тестирование и отладку программных продуктов различными способами и работать с такой популярной средой разработки как PyCharm.

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


Язык: Русский
Год: 2021

#python

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

[PYTHON:TODAY]

📂 Основные команды, которые сделают из вас мастера Git. Часть 2

11. Переименование файлов

Переименовать файл или папку можно параметром mv. Для него указывается источник source и назначение destination. Источник — реально существующий файл или папка, а назначение — существующая папка.

git mv dir1/somefile.js dir2


При выполнении команды файл или папка, указанные как источник, будут перемещены в папку назначения. Индекс будет обновлён соответственно, но изменения нужно записать.

12. Отмена подготовленных и неподготовленных изменений

Восстановить файлы рабочего дерева, не подготовленные к коммиту, можно параметром checkout. Для проведения операции требуется указать путь к файлу. Если путь не указан, параметр git checkout изменит указатель HEAD, чтобы задать указанную ветку как текущую.
git checkout somefile.js


Восстановить подготовленный файл рабочего дерева можно параметром reset. Потребуется указать путь к файлу, чтобы убрать его из области подготовленных файлов. При этом не будет производиться откат никаких изменений или модификаций — однако файл перейдёт в категорию не подготовленных к коммиту.
git reset HEAD somefile.js


Если нужно выполнить это действие для всех подготовленных файлов, путь к ним указывать не надо.
git reset HEAD


13. Изменение последнего коммита

Внести изменения в последний коммит можно параметром commit с флагом --amend. Например, вы записали изменения, внесённые в ряд файлов, и поняли, что допустили ошибку в сообщении коммита. В этом случае можете воспользоваться указанной командой, чтобы отредактировать сообщение предыдущего коммита, не изменяя его снимок.
git commit --amend -m "Updated message for the previous commit"


Также можно вносить изменения в файлы, отправленные ранее. Например, вы изменили несколько файлов в ряде папок и хотите их записать как единый снимок, но забыли добавить в коммит одну из папок. Чтобы исправить такую ошибку, достаточно подготовить для фиксации остальные файлы и папки и создать коммит с флагами --amend и --no-edit.
git add dir1
git commit

# Here you forgot to add dir2 to commit, you can execute the
following command to amend the other files and folders.

git add dir2
git commit --amend --no-edit


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

⚠️ Внимание! Не изменяйте публичные коммиты.

С помощью amend прекрасно исправляются локальные коммиты, а исправления можно передать в общий репозиторий. Однако изменять коммиты, уже доступные другим пользователям, не следует. Помните, что изменённые коммиты являются совершенно новыми, а предыдущий коммит уже не будет доступен в текущей ветке. Последствия будут такими же, как при отмене изменений публичного снимка.


14. Откат последнего коммита

Откатить последний коммит можно с помощью параметра revert. Создастся новый коммит, содержащий обратные преобразования относительно предыдущего, и добавится к истории текущей ветки.
git revert HEAD


Разница между revert и reset

Команда git revert отменяет изменения, записанные только одним коммитом. Она не откатывает проект к более раннему состоянию, удаляя все последующие коммиты, как это делает команда git reset.

У команды revert есть два крупных преимущества по сравнению с reset. Во-первых, она не меняет историю проекта и производит операцию, безопасную для коммитов. Во-вторых, её объектом выступает конкретный коммит, созданный в любой момент истории, а git reset всегда берёт за точку отсчёта текущий коммит. К примеру, если нужно отменить старый коммит с помощью git reset, придётся удалить все коммиты, поданные после целевого, а затем выполнить их повторно. Следовательно, команда git revert — гораздо более удобный и безопасный способ отмены изменений.

#doc #git #cheatsheet

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

[PYTHON:TODAY]

Собираемся в путешествие! 
Точнее в карьерное путешествие по IT. 

Если вы задумываетесь о переходе в сферу информационных технологий – час настал.
Мы поможем вам собраться в этот долгий поход: снабдим самым необходимым для начинающего разработчика.

Приходите на карьерную конференцию «Путь в IT: как начать карьеру разработчика?».
Вы узнаете:

- об основах Python-разработки
- о применении принципов объектно-ориентированного программирования в создании игры на Java
- зачем и как создавать собственный проект
- как интересные вакансии открываются с помощью интересных резюме

Программу ведут трое старших разработчиков и HR бизнес-партнёр.

Мы приглашаем тех, кто только готовится к переходу в IT; тех, кто учит языки программирования, а также junior-разработчиков

9 июля, в 19:00 по московскому времени

Бесплатно

Записаться на конференцию - https://otus.pw/dWVw/?erid=LjN8KCVyz

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

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

[PYTHON:TODAY]

☠️ Парсинг Instagram

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

https://youtu.be/Iy2ERjDzvdo

#youtube #soft #python

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

[PYTHON:TODAY]

👨‍💻 Выбор фреймворка для веб-приложения

Жизненно 😄

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

[PYTHON:TODAY]

Что почитать тем, кто заинтересован в освоении Data Science?

Собрали публикации из канала Центра непрерывного образования ФКН, в которых преподаватели и эксперты делились литературой, направленной на изучение различных разделов Data Science.

Итак, чтобы почитать, чтобы освоить:

🖇Python: подборка русскоязычной литературы для любого уровня подготовки от Дарьи Касьяненко
🖇Машинное обучение: подборка книг для любого уровня подготовки от Максима Карпова
🖇Математику для машинного обучения: подборка как русскоязычной, так и англоязычной литературы, составил Леонид Иосипой
🖇Теорию вероятностей и математическую статистику: подборка от Артёма Максаева и Валентина Промыслова
🖇Линейную алгебру: подборка книг и задачников от Артёма Максаева и Валентина Промыслова
🖇Дискретную математику: подборка от Артёма Максаева и Валентина Промыслова
🖇Математический анализ: подборка литературы для любого уровня подготовки от Артёма Максаева и Валентина Промыслова
🖇Алгоритмы и структуры данных: подборка книг от Марии Горденко

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

Реклама ЗАО ГК Аккорд
2SDnjcywmTY

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

[PYTHON:TODAY]

⌨️ Корейцы выпустили социальный ролик про ...клавиатуру

Кто-то хоть раз использовал Scroll Lock? 🤨

😄

#humor #news

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

[PYTHON:TODAY]

2 полезных ресурса по информационной безопасности и этичному хакингу:

Social Engineering — самый крупный ресурс в Telegram, посвященный информационной безопасности, социальной инженерии и поиску информации из открытых источников.

infosec — редкая литература, курсы и уникальные мануалы для ИБ специалистов любого уровня и направления. Читайте, развивайтесь, практикуйте.

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

[PYTHON:TODAY]

😄 Коды состояния ответа HTTP и их значение от Олега Тинькова

📂 Запоминаем

#cheatsheet #humor

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

[PYTHON:TODAY]

📂 Основные команды, которые сделают из вас мастера Git. Часть 1

1. Как задать имя пользователя и адрес электронной почты

Имя пользователя нужно, чтобы привязывать коммиты к вашему имени. Это не то же самое, что имя пользователя учётной записи GitHub, с помощью которого выполняется вход в профиль на GitHub. Задать или изменить имя пользователя можно с помощью команды git config. Новое имя будет автоматически отображаться в последующих коммитах, отправленных на GitHub через командную строку. Если хотите скрыть своё реальное имя, можно использовать в качестве имени пользователя Git произвольный набор символов.

git config --global user.name "Tara Routray"


Кроме того, командой git config можно изменять адрес электронной почты, привязанный к вашим коммитам Git. Новый адрес электронной почты будет автоматически отображаться во всех дальнейших коммитах, поданных на GitHub через командную строку.
git config --global user.email "dev@tararoutray.com"


2. Кэширование учётных данных

Кэшировать учётные данные можно с помощью параметра config с флагом --global. Так вы избавитесь от необходимости вручную вводить имя пользователя и пароль при создании нового коммита.
git config --global credential.helper cache


3. Инициализация репозитория

Создать пустой репозиторий Git или вновь инициализировать существующий можно параметром init. При инициализации он создаст скрытую папку. В ней содержатся все объекты и ссылки, которые Git использует и создаёт в истории работы над проектом.
git init


4. Добавление отдельных файлов или всех файлов в область подготовленных файлов

Добавить отдельный файл в область подготовленных файлов можно параметром add с указанием имени файла. Просто замените somefile.js на актуальное имя.
git add somefile.js


Кроме того, можно добавить все файлы и папки в эту область, предоставив wildcard . вместо имени файла:
git add .


5. Проверка статуса репозитория

Просмотреть статус нужного репозитория можно по ключевому слову status: его действие распространяется на подготовленные, неподготовленные и неотслеживаемые файлы.
git status


6. Внесение изменений однострочным сообщением или через редактор

При создании коммита в репозитории можно добавить однострочное сообщение с помощью параметра commit с флагом -m. Само сообщение вводится непосредственно после флага, в кавычках.
git commit -m "Your short summary about the commit"


Также можно открыть текстовый редактор в терминале для написания полного сообщения коммита. Оно может состоять из нескольких строк текста, в котором подробно характеризуются изменения, внесённые в репозиторий.
git commit


7. Просмотр истории коммитов с изменениями

Просматривать изменения, внесённые в репозиторий, можно с помощью параметра log. Он отображает список последних коммитов в порядке выполнения. Кроме того, добавив флаг -p, вы можете подробно изучить изменения, внесённые в каждый файл.
git log -p


8. Просмотр заданного коммита

Просмотреть полный список изменений, внесённых конкретным коммитом, можно с помощью параметра show, указав идентификатор или хеш коммита. Значение хеша уникально для каждого коммита, созданного в вашем репозитории.
git show 1af17e73721dbe0c40011b82ed4bb1a7dbe3ce29


Также можно использовать сокращённый хеш.
git show 1af17e


9. Просмотр изменений до коммита

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


Для просмотра подготовленных изменений необходимо добавить флаг --staged.
git diff --staged


Также можно указать имя файла как параметр и просмотреть изменения, внесённые только в этот файл.
git diff somefile.js


10. Удаление отслеживаемых файлов из текущего рабочего дерева

Удалять файлы из текущего рабочего дерева можно с помощью параметра rm. При этом файлы удаляются и из индекса.
git rm dirname/somefile.js


Можно также использовать маски файлов (например *.js, *.html) для удаления всех файлов, соответствующих критерию.
git rm dirname/*.html


#git #doc #cheatsheet

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

[PYTHON:TODAY]

😎 Ваши данные надежно защищены!

Тем временем мои данные — "Извините, такой пароль уже занят пользователем user_69" 😨

#humor

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

[PYTHON:TODAY]

😐 Зарплаты курьеров-мигрантов сравнялись с зарплатами айтишников

В среднем курьер получает ~155 тысяч рублей в месяц, что равно окладу программиста средней позиции.

А что если ... Да не, бред... Или нет? 😀

#news

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

[PYTHON:TODAY]

👨‍💻 Шпаргалка по Python инструментам под разные задачи

➡️ Машинное обучение
➡️ Веб разработка
➡️ Тестирование
➡️ Работа с изображениями
➡️ Создание игр
➡️ Скрапинг/Парсинг

📂 Сохраняем

#doc #python #cheatsheet

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

[PYTHON:TODAY]

⌨️ Средний уровень зарплаты в разных IT компаниях

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

[PYTHON:TODAY]

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

✍️ Первые в списке на ликвидацию после восстания машин

#cyberpunk

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

[PYTHON:TODAY]

🧠 Готовы создать свой искусственный интеллект? 🤖🔎

Откройте для себя мир возможностей с Python! Научитесь разрабатывать нейросети и алгоритмы машинного обучения, которые изменят будущее технологий. ⭐️

Хотите узнать больше? Подписывайтесь на TechVibe и начните свое путешествие в мир искусственного интеллекта прямо сейчас! 💡💻

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

[PYTHON:TODAY]

🧑‍💻 Наглядная эволюция роботостроения за 40 лет

#cyberpunk

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

[PYTHON:TODAY]

🎁 Совсем забыл, но YouTube напомнил

Сегодня PythonToday/videos">каналу 4 года. Именно сегодня, 4 года назад было загружено первое видео.

Огромное спасибо за поддержку каждому, без вас бы ничего не было! 😎

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

[PYTHON:TODAY]

Найти толковый канал про ИИ сложно, хотя в телеге их уже наверное даже не десятки, а сотни.
Однако в моих подписках (и сердечке) уже давно прописался канал ЭЙАЙ НЬЮЗ.

Автор канала — Артем, Staff Research Scientist в элитной лабе по генеративному AI, Meta GenAI в Цюрихе. Он защитил PhD в лабе, откуда вышел Stable Diffusion, и выступает на топовых конференциях по всему миру.
И еще канал успевает вести.

Артем пишет о нейронках, AR/VR и генеративном AI, добавляя свое критическое мнение, а также травит байки о работе AI ресерчера в Meta. В канале также много гайдов и ликбезов по нейросетям.

Несколько интересных постов:
▪️ Артем рассказал о новой модели Imagine Flash для риалтайм генерации картинок, которую он и его команда обучили – в апреле был громкий релиз от Мета.
▪️ Пост про модель для генерации стикеров, которую Артем лично оптимизировал. Моделька уже крутится в Инсте и WhatsApp в проде.
▪️ Пост про то как он приделывал ноги Аватарам в метаверсе.
▪️ Про грейды в бигтехе [ч1, ч2]. Все же в курсе, что сеньор это еще не все?:) 
▪️ Недавно Артем писал о том, как он запромоутился до Staff Research Scientist (это очень серьезная должность в ресерче, идет после сеньора).
▪️Актуальный список книг для изучения ML в 2024.

В общем, подписывайтесь, если любите ИИ и маму: @ai_newz

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

[PYTHON:TODAY]

🔥 Китайский инженер батя собрал своим детям настоящий авианосец

Умеет плавать, запускает самолёты/вертолёты, стреляет пушками и ракетами, даже пламенные турбины есть!

Когда руки действительно из нужного места 😎

#news #cyberpunk

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

[PYTHON:TODAY]

💻 Хакеры опубликовали в сети крупнейшую базу с паролями — их почти 10 миллиардов

На одном из хакерских форумов появился текстовый файл rockyou2024.txt, который содержит 9,94 миллиарда уникальных паролей, попавших в сеть в результате утечек.

В специализированном издании Cybernews отметили, что эта база паролей стала крупнейшей среди обнародованных в публичном доступе.


🔒 Самое время сменить пароль + двухфакторка

#news

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

[PYTHON:TODAY]

🔥 Сохраняй огромный сборник задач на практику по разным языкам включая Python + Код и статьи к проектам

🌵 Парсинг
🌵 Боты для популярных соц.сетей
🌵 Веб-приложения на Django и Flask
🌵 Big data и Machine learning
🌵 Компьютерное зрение
🌵 Глубокое обучение и много чего интересного

⚙️ GitHub/Инструкция

#soft #code #python #github

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

[PYTHON:TODAY]

👨‍💻 Китайские сталкеры показали одну из своих ферм для накрутки просмотров на контент

100% за кадром тапают хомяка 👊

#cyberpunk

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

[PYTHON:TODAY]

⌨️ Python и ИИ-технологии с нуля за 4 месяца

Описание:

Python и ИИ-технологии с нуля за 4 месяца.
12 проектов с помощью ChatGPT
Курс с ФПМИ МФТИ

Почему сейчас?
Программировать теперь гораздо проще, чем раньше. ChatGPT и другие ИИ-инструменты совершили переворот. Они позволяют вам писать и переписывать целые куски кода, готовые SQL-запросы и приложения и помогать обучаться с небывалой скоростью.

Теперь, все что вам нужно: умение сформулировать задачу на русском/английском языке и время/желание. Вот почему в основу этого курса легли 2 следующих подхода:
1. Использовать ChatGPT и других ассистентов по-максимуму, для того чтобы они вам помогали писать и исправлять готовые куски кода.

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

12 проектов, которые вы сделаете за 4 месяца
С нуля на Python, с подсказками от ChatGPT, без каких-либо начальных знаний программирования.


Язык: Русский
Год: 2023

#python

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

[PYTHON:TODAY]

СберТех представил замену IntelliJ IDEA – среду разработки GIGA IDE

1 июля JetBrains отключила россиянам возможность скачивать одну из самых известных сред разработки на Java – IntelliJ IDEA, что заставило многих разработчиков побеспокоиться. Но СберТех представил решение - российскую среду разработки GIGA IDE, которая может стать заменой ушедшей среде.

GIGA IDE позволяет вести разработку на популярных языках программирования, обеспечивает совместимость с востребованными плагинами, а встроенный в среду AI-ассистент GIGA CODE позволяет писать код до 25% быстрее.

- GIGA IDE Desktop – это интегрированная среда разработки, которая включает 70 инструментов для облегчения задач разработки, автоматизации тестирования и администрирования приложений. Разработчики уже могут скачать GIGA IDE Desktop на платформе GitVerse.

- GIGA IDE Cloud позволит вести разработку в облаке, расширив возможности устройства дополнительными облачными ресурсами. Чтобы первыми получить доступ к GIGA IDE Cloud – регистрируйтесь на платформе GitVerse на раннее тестирование.

*AI (Artificial Intelligence) - «искусственный интеллект»

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

[PYTHON:TODAY]

🔥 Качественная и бесплатная нейросеть для подмены лица по фото

📂 Сохраняем

https://www.youtube.com/shorts/nu9wUEvy0JU

#youtube #soft

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