В этой статье, посвященной Python streaming с использованием Spark и Kafka мы рассмотрим основные шаги по настройке окружения и запуску первых простых программ
Backend Developer
Аутентификация, авторизация пользователей и единый вход (SSO) с использованием Django
В этой статье исследую технологию SSO. Начинаю с разбора концепций аутентификации и авторизации. Рассматриваю как они работаю в контексте Django.
После прохожу путь от описания как работает SSO простыми словами, до разбора протоколов используемых в SSO.
В итоге делаю реализацию SSO с Django, объединять Django и Keycloak.
TorrentPier — первый движок торрент-трекера с поддержкой BitTorrent v2
Сегодня состоялся релиз TorrentPier Cattle.
Думаю многие знакомы с порталами Rutracker, NNMClub и т.п., которые оперируют на данном движке, хоть они и давно не обновлялись.
Спустя несколько месяцев разработки, рады вам сообщить о переходе на PHP 8.1, поддержке BitTorrent v2, исправленных уязвимостях, и других новых функциях, которые последуют в этой статье.
Начнём с BitTorrent v2 (статья на русском). Это следующая версия протокола BitTorrent, которая имеет ряд улучшений:
Процесс разработки приложения Python по дедупликации файлов с использованием контрольных сумм
История начинается с несложной задачи и небольшого Python приложения.
Несложная задача это периодическое удаление дубликатов файлов из указанных каталогов. Изначально она возникла из следующих условий. Есть домашнее хранилище фотографии и видео, в котором определен порядок хранения файлов по тематике, датам и т. д. И есть источники для пополнения этого хранилища: смартфоны, фотоаппараты, контент из сети, электронной почты и т. д. Синхронизации источников контента и хранилища нет. Периодически со смартфонов и фотоаппаратов скидываются все хранящиеся там файлы на жесткий диск компьютера, и получается набор каталогов, в которых оказываются как те файлы, что уже есть в хранилище, так и новые файлы. И чтобы поместить в хранилище новые файлы, их нужно каким‑то образом отделить их от тех, что уже сохранены. Самый простой способ, который пришел в голову, это удалить дубликаты из каталогов «пополнения», а с остатком уже работать.
С источников файлы не удаляются пока в этом не появится острая необходимость, в первую очередь потому, что это «естественная» резервная копия. Ну и бывает удобно иметь какие‑то фотографии и видео у себя под рукой.
В процессе своего повествования, постараюсь пояснить принятые мной решения, некоторые из которых прямо напрашиваются на решение иным способом.
Как подготовиться к собеседованию по System Design мобильному разработчику
В последнее время рынок труда в ИТ-индустрии переходит от рынка соискателя к рынку работодателя и компании все чаще заинтересованы в отборе максимально опытного специалиста, удовлетворяющего всем требованиям. Скорее всего вы слышали о недавних сокращениях в BigTech-компаниях, специалисты из которых наводнили рынок и теперь рубятся за позиции в компаниях поменьше. Однако стандартные наборы вопросов уже давно изжили себя, и большинство как российских так и зарубежных компаний стараются выбирать форматы собеседований которые максимально помогают проявить кандидата в бою. Одним из таких форматов является System Design Interview о котором мы и поговорим сегодня.
Я занимаюсь мобильной Android-разработкой уже более 8 лет и в данный момент являюсь тимлидом платформы Android. За свою карьеру я провел более 200 собеседований как нанимающий менеджер и сам тоже проходил собеседования как в крупные российские так и зарубежные компании. Поэтому у меня накопилось много советов и рекомендаций которыми я хочу поделиться.
Эта статья будет полезна как кандидатам которые хотят “взломать” System Design интервью, так и руководителям в сфере мобильной разработки, желающих внедрить секцию System Design в своей компании.
Создаем свой блог на Github и Hugo
Привет, хабр! Сегодня я расскажу вам, как создать свой блог на Github Pages, используя hugo!
Хотите создать свой собственный блог, но не хотите привязываться к каким-либо крупным хостинговым решениям или издательским сайтам по подписке? Решение есть!
Виртуальная клавиатура на Python+OpenCV
В данной статье разберемся, как написать виртуальную клавиатуру, используя Python+Opencv.
Идея заключается в создании виртуальной клавиатуры, выводе на экран и возможности ее использования. Подразумевается, что клавиатура будет работать с текстовыми редакторами. Для того, чтобы нажать на кнопку, нам потребуется кликнуть
на нее, поэтому представим, что кликом
будет служить соединение указательного и среднего пальцев. Теперь можно писать код.
Освобождение робота-пылесоса, который стал моим другом
В целом роботы-пылесосы мне нравятся. Для меня это эдакий небольшой друг, который чистит за меня пол. Просто фантастика. Но, к сожалению, есть одна проблема — я им не доверяю. Эти девайсы постоянно отправляют отчёты на серверы, что может представлять угрозу для безопасности и тайны личной жизни. Мне такое не по духу, и я подумал, что кто-то уже должен был хакнуть эту схему. После недолгих поисков в интернете я понял, что прав. Мне попался проект Valetudo, нацеленный на освобождение роботов-пылесосов от связи с облаком.
Расширенная настройка бэкэнд-проекта Python ( пример FastAPI )
👋 Привет! Возможно, вы что-то знаете о Python, если вы здесь. Особенно о веб-фреймворках Python. Например, есть одна вещь, которая меня очень раздражает при использовании Django: наложение слоя структуры проекта.
Вы можете спросить, почему это проблема, верно? Потому что вы просто следуете официальной документации, а затем у вас просто есть код, который понимает каждый, кто читает эту документацию.
Но как только вы начнете писать «лучшие» приложения, вы освоите другие шаблоны проектирования мирового класса, такие как DDD и его многоуровневая архитектура, и через некоторое время вы еще больше усложните свою систему с помощью CQRS. Лично мне стало труднее поддерживать базу кода, следуя всем этим принципам, когда фреймворк является ЦЕНТРАЛЬНОЙ частью всего приложения. Из него даже выйти невозможно, если через какое-то время решишь сменить фреймворк…
✅В этой статье я постараюсь поднять вопрос, а затем решить его.
🤚 Отказ от ответственности: давайте ограничим проект серверного API интернет-рынком.
Построение пайплайна обработки данных в реальном времени с использованием Python
Привет, Хабр!
Обработка данных в реальном времени стала важной составной частью современного мира. Бизнес, исследователи, разработчики и многие другие специалисты сталкиваются с необходимостью обрабатывать потоки данных в реальном времени, чтобы принимать решения быстрее и более точно.
В этой статье мы рассмотрим как построить пайплайн обработки данных в реальном времени с использованием Python.
Полноценный 2D-платформер на Python в 2023? Мой опыт
Говорят, что на Python легко и просто создавать игры-платформеры. Правда ли?
В этой статье вы узнаете о всех стадиях создания игры-платформера на Python, о сложностях при его создании и выводах, которые я сделал после релиза игры.
Как реализовать систему рекомендаций на сайте просмотра кино
Привет, Хабр!
Когда вы открываете ваш любимый стриминговый сервис, и перед вами развертывается каталог фильмов и сериалов, точно соответствующих вашим вкусам - это великолепное ощущение, когда ваш сервис знает, что именно вас интересует, и предлагает именно то, что вы искали.
Рекомендательные системы не только облегчают жизнь пользователям, но и повышают уровень удовлетворенности клиентов, а также помогают увеличивать доходы компаний.
Как собрать свой собственный x86 Wi-Fi роутер
Как и обещал в прошлой статье расскажу, как собрал и настроил свой собственный x86 Wi-Fi роутер с OpenWrt.
Погружаемся в базы данных и SQL: полезные материалы и инструменты от сотрудников Selectel
Почему программисты SQL так плохо шутят? Потому что их юмор — это всегда "SELECT * FROM jokes WHERE is_funny = 1"
.
Новичку нужно перебрать много сайтов, чтобы научиться работать с базами данных и понимать такие шутки. Это усложняется тем, что в открытом доступе мало действительно полезных материалов, которые могут закрыть все пробелы в знаниях.
Мы попросили наших коллег порекомендовать полезные ресурсы, которые помогут сделать первые шаги в работе с базами данных и SQL. Сохраняйте подборку в закладки, чтобы сэкономить время на изучение темы, и делитесь своими вариантами в комментариях.
RGB-усилители. Особенности, проблемы, выбор
Казалось бы, простая вещь — RGB-усилитель, выбирай просто подходящей выходной мощности и используй. Но на деле не всё так просто. Ценой моих нервных клеток был получен опыт, которым спешу поделиться. Из этого материала вы узнаете, чем отличаются RGB-усилители, что не отражено в документации, где на упаковке враньё, и какие проблемы они могут создавать. Специально для этого материала я купил (и взял погонять) горку RGB-усилителей и отреверсил схемы. А ещё мне хотелось понять, чем обусловлен такой разброс цен на эти простые устройства.
Hamachi умер, да здравствует Hamachi. Тестируем работу сетевого ПО из 2004 года
Современного геймера удивить сложно. Вокруг индустрии игр построены целые экосистемы. Наиболее яркий пример — игровая платформа Steam, появившаяся на свет вместе с выходом многопользовательского шутера Counter-Strike 1.6. Сейчас эта платформа — крупнейший игровой магазин в мире и огромная сетевая инфраструктура, позволяющая играть с друзьями по сети, не говоря уже о комьюнити.
Вместе с новинками там продаются старые и раритетные игрушки. И даже в них сетевая часть в большинстве случаев позволяет зарубиться в какой-нибудь Quake 3 Arena & Team Arena. Но что делать, если вы собрали ретрокомпьютер на Windows 2000 и хотите поиграть по сети в старые добрые игры из того же года? Никакой Steam там, понятное дело, не пойдёт. Здесь как раз и пригодится Hamachi. Об этом сегодня и поговорим.
Волновой алгоритм
Волновой алгоритм — алгоритм поиска пути, алгоритм поиска кратчайшего пути. Принадлежит к алгоритмам, основанным на методах поиска в ширину.
Зачем Data-инженеру Spark
Привет, Хабр, меня зовут Дима. В последние пару лет занимаюсь аналитикой, отвечаю за данные в Почте Mail.ru. Развиваю аналитическое хранилище данных и инструменты для работы с ними. Мы плотно работаем со стеком Hadoop, Hive, Spark, Clickhouse и Kafka. Я хочу остановиться на некоторых аспектах работы с данными в Spark: как мы храним петабайты информации и как выполняем запросы к ним?
Прежде всего поделюсь своими практическими наблюдениями. Расскажу как в нашем хранилище мы превратили 7 петабайт в 0,5 петабайт, что позволило сэкономить годовой бюджет по закупке серверов. И также расскажу о ключевых проблемах с данными, знание о которых помогло бы вам построить своё классное хранилище без последующей переделки.
Поговорим о мониторинге LDAP
Мониторинг является необходимой частью администрирования любой сколько-нибудь серьезной ИТ системы. Благодаря мониторингу мы можем не только узнавать о проблемах и сбоях в работе системы, но также и узнавать о возможных проблемах в работе целевых систем еще до того, как что-то произошло. Так, например, благодаря мониторингу мы можем видеть узкие места в работе сетевого оборудования, утечки памяти или сбои на жестких дисках. Таким образом, средства мониторинга нужны любой системе, в том числе и LDAP.
Генерация Пещер
Генерация пещер. Генерация на языке программирования С++, на основе клеточных автоматов с регулируемыми настройками.
Information
- Rating
- Does not participate
- Registered
- Activity