Search
Write a publication
Pull to refresh
3
0.5

WEB-программист, сетевой администратор

Send message

Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1

Level of difficultyEasy
Reading time13 min
Views171K

Современный мир пресыщен различной информацией, и в наше непростое время её важно уметь не только находить и сохранять. Многие наверняка заметили, что в на YouTube, кроме мусора, котиков и прочих бесполезных вещей (которые мы иногда не прочь посмотреть) есть масса полезного материала по самым различным темам. И иногда этот материал неплохо было бы сохранить себе на будущее, чтобы не зависеть от переменчивых настроений в мире.

В этой статье я хочу рассказать, как можно скачивать видео, аудио (1 часть статьи), плейлисты и целые каналы с YouTube (2 часть статьи) без использования VPN и на чистом Python-е. Сразу оговорка: VPN нам не понадобится, но мы сделаем собственное средство, которое будет решать "проблему с устаревшим и изношенным оборудованием Google Global Cache" (вы поняли, о чём я). Я думаю это средство будет особенно актуально сегодня, когда у многих россиян YouTube почти или совсем не работает.

Читать далее

Никогда не используйте MySQL, всегда используйте PostgreSQL

Level of difficultyEasy
Reading time4 min
Views16K

Никогда не используйте MySQL, всегда используйте PostgreSQL

И вот почему, по результатам нагрузочного тестирования:

PostgreSQL в два раза меньше потребляет ресурса CPU, PostgreSQL в два раза меньше потребляет ресурса RAM, PostgreSQL в полтора раза меньше потребляет ресурса HDD (storage), PostgreSQL в три раза быстрее выполняет запросы, PostgreSQL после выполнения команды очистки (TRUNCATE TABLE) полностью очистил диск , MySQL очистил диск только наполовину.

Наверное MySQL надо уметь готовить ? Наверное. Если кто то напишет рецепт в комментариях, то благодарное человечество, в лице меня лично, скажет большое спасибо.

Одновременно с этим есть PostgreSQL, который можно не уметь готовить и иметь большую (такую же?) эффективность, стоит ли связываться с MySQL ?

Подробности (с картинками!)

Как я с помощью AI за месяц разработала и внедрила систему учета для школьной столовой

Reading time8 min
Views11K

История о том, как я с помощью AI превратила идею из родительского чата в работающее full-stack приложение для школьной столовой. Делюсь всем процессом: от первых шагов до реальных результатов внедрения приложения. Спойлер: очереди в столовой сократились на 30%, а родители наконец-то узнали, что едят их дети 😊

Читать далее

Telegram-бот-магазин на Python: пошаговый гайд с оплатой, каталогом и админкой (Aiogram 3 + SQLAlchemy 2)

Reading time52 min
Views38K

Сегодня я к вам с новым практическим проектом на Python. На этот раз мы создадим полноценного Telegram-бота для продажи цифровых товаров с базой данных, которой будем управлять через SQLAlchemy 2, админ-панелью, пользовательской частью и интегрированной оплатой через Юкассу.

Я шаг за шагом проведу вас через все этапы разработки такого бота: начиная от регистрации токена в BotFather и заканчивая деплоем готового продукта на удаленном хостинге, чтобы бот мог бесперебойно работать 24/7 без привязки к вашему компьютеру или интернет-соединению.

Читать далее

Не очень стандартное использование Docker

Level of difficultyEasy
Reading time3 min
Views17K

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

Нет, в самом деле, а что еще нужно? Несколько файлов с исходным кодом, Makefile для сборки всего этого, MidnightCommander чтобы копировать файлы туда-сюда и удобный текстовый редактор, например Vim.

А еще куча установленных пакетов типа gcc, make, cmake - в общем, настроенная и подготовленная среда, вплоть до указания желаемой цветовой схемы в редакторе.
И вот однажды так получилось, что удобный настроенный компьютер вдруг накрылся медным тазом: жесткие диски тоже выходят из строя.

Читать далее

Отправка логов в Telegram. Модуль для Laravel

Level of difficultyEasy
Reading time3 min
Views2.8K

Всем привет! В данной записи я хотел бы поделиться с вами модулем, который я разработал для Laravel.

Это мой первый опыт в разработке публичных модулей для Laravel, поэтому прошу не судить строго!

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

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

Читать далее

RabbitMQ против Kafka: два разных подхода к обмену сообщениями

Reading time18 min
Views354K

В прошлых двух статьях мы рассказывали об IIoT — индустриальном интернете вещей — строили архитектуру, чтобы принимать данные от сенсоров, паяли сами сенсоры. Краеугольным камнем архитектур IIoT да и вообще любых архитектур работающих с BigData является потоковая обработка данных. В ее основе лежит концепция передачи сообщений и очередей. Стандартом работы с рассылкой сообщений сейчас стала Apache Kafka. Однако, для того, чтобы разобраться в ее преимуществах (и понять ее недостатки) было бы хорошо разобраться в основах работы систем очередей в целом, механизмах их работы, шаблонах использования и основной функциональности.



Мы нашли отличную серию статей, которая сравнивает функциональность Apache Kafka и другого (незаслуженно игнорируемого) гиганта среди систем очередей — RabbitMQ. Эту серию статей мы перевели, снабдили своими комментариями и дополнили. Хотя серия и написана в декабре 2017 года, мир систем обмена сообщениями (и особенно Apache Kafka) меняется так быстро, что уже к лету 2018-го года некоторые вещи изменились.

Читать дальше →

Защита схемы от переполюсовки, что может быть проще?

Level of difficultyMedium
Reading time15 min
Views49K
image
«Я не такая», «со мной этого точно не может случиться» — говорили они, но упорно продолжали пихать батарейки в пульт для телевизора не той стороной…

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

Содержание:



Всех неравнодушных к электронике прошу под кат!
Читать дальше →

WireGuard и QUIC

Level of difficultyMedium
Reading time4 min
Views26K

Когда мы хотим защитить передаваемые данные, мы используем VPN. Но иногда хочется, чтобы и сам факт использования VPN, тоже был бы скрыт. Мы настолько переживаем за свои данные:)

Так как сейчас очень популярным стал WireGuard, он основан на UDP. А из популярных UDP протоколов, которые могут через себя прокачивать большой трафик, это QUIC. Это совмещение TCP и TLS, основанное на UDP. Поэтому естественной мыслью стала мимикрировать WireGuard трафик под QUIC трафик. Для этого пришлось изучить код WireGuard в ядре Linux. Код патча ядра Linux лежит на QUICWireGuard.

Читать далее

FastAPI и Dependency Injection: правда или вымысел?

Level of difficultyMedium
Reading time11 min
Views20K

В свое время FastAPI прогремел как гром среди ясного неба - тут тебе и минималистичный API аля-Flask (все устали от Django, диктующего свои правила), и OpenAPI документация из коробки, и удобное тестирование, и хайповая асинхронность. Буквально все, что нужно для свободы творчества, и никаких ограничений! Да еще и Depends завезли! В тот момент это был культрурный шок - Dependency Injection в Python? Разве это не что-то из Java?

Но дьявол кроется в деталях. А вы уверены, что те самые Depends == Dependency Injection? Уверены, что пишете код на FastAPI правильно?

В рамках статьи мы рассмотрим различные подходы к организации зависимостей в рамках FastAPI проекта, оценим их с точки зрения удобства использования и постараемся разобраться, как же все-таки "правильно" готовить DI в FastAPI.

Давайте разбираться

FastAPI + Redis + Celery: Создание системы временного хранения файлов с автоудалением и удобным веб-интерфейсом

Reading time46 min
Views21K

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

Мы пошагово разберем процесс разработки, начиная с настройки FastAPI для обработки HTTP-запросов, интеграции Redis для эффективного хранения метаданных файлов, и заканчивая использованием Celery для асинхронного выполнения задач по удалению устаревших файлов.

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

Читать далее

Стандарты групповой разработки в GitFlow-команде. О чем стоит договориться?

Level of difficultyMedium
Reading time10 min
Views3.1K

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

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

В этой статье мы разберем все аспекты групповой разработки: от организации веток до культуры командного взаимодействия. Внедрение этих стандартов — не просто «хорошая практика», а мощный инструмент для ускорения разработки и достижения выдающихся результатов.

Готовы навести порядок в своей команде? Тогда поехали!

Читать далее

Как улучшить свои навыки работы с Git с помощью GitHub CLI

Level of difficultyEasy
Reading time8 min
Views9.4K

Использование Git в командной строке (CLI) может повысить вашу скорость разработки и эффективность. В этой статье рассмотрим восемь полезных команд для работы с GitHub через терминал.

Читать далее

Всё про конфиги

Level of difficultyEasy
Reading time21 min
Views14K

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

Узнать страшную правду

Тестирование с нуля: советы, которые я дала бы себе на старте

Level of difficultyEasy
Reading time7 min
Views7.6K

Всем привет! Меня зовут Маша, я работаю QA-инженером в Doubletapp, и моя история в IT началась всего 1,5 года назад. Хочу поделиться своим опытом перехода в тестирование, рассказать о том, как я училась, с чего начинала, и что помогло мне сделать первый шаг. Надеюсь, этот рассказ вдохновит тех, кто только думает о профессии тестировщика.

Содержание

Обзор полезных курсов
Как найти работу
Семь вещей, которые я хотела бы знать на старте

Читать далее

AWX: упрощаем работу с Ansible

Level of difficultyEasy
Reading time12 min
Views17K

Привет, на связи Ксения Кузьменко, DevOps-инженер департамента по организации выпуска продуктов YADRO. Наша DPS-команда предоставляет платформенные сервисы для 40+ команд и 1000+ пользователей внутри компании. Мы работаем с сотнями виртуальных машин в различных локациях. Каждый день прогоняем более 250 плейбуков, из них часть связаны между собой в сложные последовательности. Конечно, инструмент для упрощения работы с Ansible был в нашей дорожной карте еще на этапе планирования.

Почему мы выбрали AWX, какие задачи решили и приятные «плюшки» получили, я расскажу в статье. О некоторых подводных камнях — тоже. 

Нужен ли AWX в вашей команде? На этот вопрос вы ответите сами, прочитав текст под катом. Я максимально подробно описала наш опыт с Ansible AWX. Если появятся вопросы — пишите в комментариях, отвечу. 

Читать далее

Разница между прямым прокси, обратным прокси и балансировщиком нагрузки

Level of difficultyEasy
Reading time5 min
Views29K

Привет! Вы когда‑нибудь задумывались, как некоторые из крупнейших веб‑сайтов одновременно обрабатывают запросы миллионов пользователей без сбоев, или передают ваши данные, направляя вас на правильный сервер? В этой статье для начинающих сетевиков мы углубимся в три важнейших веб‑компонента: прямой прокси, обратный прокси и балансировщик нагрузки. Разбёрем эти концепции простым и понятным языком.

Читать далее

Ускоряем запросы в PostgreSQL, оптимизируя оператор GROUP BY

Level of difficultyHard
Reading time9 min
Views20K

Пользователи PostgreSQL нередко оперируют аналитическими запросами, при выполнении которых данные сортируются и группируются по разным правилам. За счёт оптимизации вычисления агрегатов и сортировок можно значительно сократить время и стоимость выполнения запросов. Об одной из таких оптимизаций — выборе порядка колонок в выражении GROUP BY — расскажем в этой статье.

Postgres уже умеет перестраивать список группируемых выражений в соответствии с порядком колонок из условия ORDER BY, чтобы исключить дополнительную сортировку и сэкономить вычислительные ресурсы. Мы пошли дальше, реализовали свою идею в дистрибутивах Postgres Pro Standard и Enterprise и вынесли патчи на обсуждение сообщества Postgres (первое и второе) в надежде, что они войдут в ближайшую версию ванильного PostgreSQL.

Читать далее

Принципы работы руководителя проекта

Level of difficultyMedium
Reading time16 min
Views9.4K

Статья о принципах организации работы над проектами разработки и внедрения ПО со стороны РП организации‑исполнителя контракта с фиксированной стоимостью, плохо определенными требованиями и сжатыми сроками.

Это не пересказ учебника, а обобщение личного опыта, накопленного в ходе участия в руководстве и курировании 50+ подобных проектов. Предлагаемые подходы не являются исчерпывающими или окончательными, критика приветствуется :-)

Читать далее

Как awk заменяет 10 команд Bash

Level of difficultyEasy
Reading time3 min
Views14K

Привет, Хабр! Когда я только начинал работать с Linux, каждую задачу обрабатывал через кучку пайпов. Потом мой коллега сказал мне: "Завязывай с этим, попробуй awk". Ну, я попробовал. И это действительно удобно. Сегодня я расскажу, как awk может заменить несколько привычных команд bash.

Читать далее

Information

Rating
3,621-st
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity