Pull to refresh
17
0.6
Eduard Lanchev @EddyLan

Data Scientist

Send message

Краткая история о том, как развернуть веб-сервер Flask в docker контейнере

Reading time6 min
Views25K

Для чего вообще нужен docker контейнер? Обычно, во время разработки, для каждого проекта вы настраиваете своё окружение. Но вот произошла такая ситуация: что-то случилось с вашим компьютером и приходится переустанавливать операционную систему(ОС). Соответственно, чтобы запустить ваш проект, необходимо настраивать окружение заново. Бывает ещё гигантское количество ситуаций, которые сводятся к одной проблеме - настройка окружения для разработки. 

Читать далее
Total votes 7: ↑3 and ↓4+1
Comments11

Строим домашний CI/CD при помощи GitHub Actions и Python

Reading time12 min
Views62K

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

Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments15

Выбор DNS-хостинга после 10 лет с Яндексом

Reading time5 min
Views47K

Что не так с DNS от Яндекса?
Какой DNS-хостинг у самых посещаемых сайтов в зоне .ru?
Как выбрать провайдера? Сравнительная таблица.

Узнать
Total votes 52: ↑52 and ↓0+52
Comments49

Yaml vs. Json — что круче?

Reading time4 min
Views40K
image

Всем привет!

Сегодня поговорим об интересном (и таинственном для фронтов) формате YAML. Он считается одним из наиболее популярных форматов для файлов конфигураций.

Файлы с расширением .yaml или .yml вы можете встретить довольно часто, например .travis.yml (для Travis Build), .gitlab-ci.yml (для git lab CI) и др.
И тогда возникают резонные вопросы: что это за формат и чем он отличается от JSON-а?

Цель этой статьи — познакомить вас со структурой YAML, помочь понимать, читать и изменять YAML-файлы. Для тех, кто уже знаком с форматом — напомнить про некоторые его особенности. И сравнить YAML с JSON.
Читать дальше →
Total votes 15: ↑13 and ↓2+15
Comments79

SQLAlchemy с FastAPI для асинхронной работы

Reading time5 min
Views63K

В этой заметке я буду использовать новые асинхронные возможности ORM-слоя вместе с новыми запросами в стиле 2.0. Мы создадим простое FastAPI-приложение с двумя маршрутами. Один — для добавления городов и их жителей, а другой — для вывода списка наиболее населенных объектов.

Читать далее
Total votes 10: ↑8 and ↓2+8
Comments0

Как спарсить любой сайт?

Reading time6 min
Views201K

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

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

Узнать как
Total votes 64: ↑55 and ↓9+60
Comments89

Масштабируемый Продакшн-реди Телеграм бот на Django

Reading time6 min
Views38K

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

Читать далее
Total votes 17: ↑14 and ↓3+19
Comments20

Телеграм бот для поддержки своими руками

Reading time6 min
Views95K

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

Проблем много, а решение одно: сделать Телеграм бот, который будет работать посредником между вашими пользователями/клиентами и вашей командой поддержки.

Я расскажу, как запустить такого бота бесплатно в 1 клик, и поделюсь кодом.

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments33

Web3.0 на Python, часть 1: основы

Reading time19 min
Views72K

Привет, Хабр! Во время знакомства с Web3 было сложно найти понятные примеры базовых операций с блокчейном с использованием Web3Py в одном месте. Например: просмотр баланса, отправка ETH и ERC20 токенов, минтинг NFT, взаимодействие с контрактами и тд. Эта статья как раз и послужит таким местом.

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

Нырнуть в Web3
Total votes 11: ↑8 and ↓3+6
Comments4

Практическое руководство по разработке бэкенд-сервиса на Python

Reading time57 min
Views179K
Привет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.



TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Читать дальше →
Total votes 57: ↑55 and ↓2+66
Comments48

Пишем веб сервис на Python с помощью FastAPI

Reading time17 min
Views120K
image

Знаю, знаю, наверное вы сейчас думаете «что, опять?!».

Да, на Хабре уже неоднократно писали о фреймворке FastAPI. Но я предлагаю рассмотреть этот инструмент немного подробнее и написать API своего собственного мини Хабра без кармы и рейтингов, зато с блэкджеком и с тестами, аутентификацией, миграциями и асинхронной работой с БД.
Читать дальше →
Total votes 21: ↑20 and ↓1+22
Comments27

OpenCat — создай своего робокотика

Reading time4 min
Views25K

Если вы фанат робо-собаки от Boston Dynamics и хотели бы завести дома его маленькую копию, вам в помощь OpenCat. Это платформа четвероногих роботов-питомцев на основе Arduino и Raspberry Pi с открытым исходным кодом. Разработчики предлагают всем попробовать создать своего собственного робота-любимца.

Читать далее
Total votes 62: ↑60 and ↓2+70
Comments13

Парсим NFT транзакции на OpenSea

Reading time15 min
Views13K

Примерно раз в год у меня появляется неутолимая жажда накопать много данных и что-то с ними сделать. В этот раз мой выбор пал на маркетплейс NFT OpenSea. Меня осенило что блокчейн - это про открытые данные, а учитывая 1.2 миллиона транзакций в сети ETH каждый день - то это ещё и много данных, так что точно должно быть интересно.

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

Читать далее
Total votes 16: ↑11 and ↓5+6
Comments5

Пять простых шагов для понимания JSON Web Tokens (JWT)

Reading time5 min
Views668K

jwt


Представляю вам мой довольно вольный перевод статьи 5 Easy Steps to Understanding JSON Web Tokens (JWT). В этой статье будет рассказано о том, что из себя представляют JSON Web Tokens (JWT) и с чем их едят. То есть какую роль они играют в проверке подлинности пользователя и обеспечении безопасности данных приложения.

Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments60

Книга «Масштабируемые данные. Лучшие шаблоны высоконагруженных архитектур»

Reading time12 min
Views9.2K
image Хорошего дня, Хаброжители!

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

Архитекторы и аналитики данных, специалисты по соблюдению требований и управлению узнают, как работать с масштабируемой архитектурой и внедрять ее без больших предварительных затрат. Питхейн Стренгхольт поделится с вами идеями, принципами, наблюдениями, передовым опытом и шаблонами. 
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments3

Python микросервисы с Kafka без боли

Reading time10 min
Views33K

В этой статье я бы хотел поделиться способом написания асинхронных микросервисов на Python, в основе которых библиотека Faust. А в качестве брокера сообщений Kafka. Ну и немного мониторинга с Prometheus и Grafana.

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments7

Обзор паттернов интеграции микросервисов. Часть 1

Reading time7 min
Views29K

Недавно мы проводили вебинар «Обзор паттернов интеграции микросервисов». На нём энтерпрайз архитектор Пётр Щербаков рассказал, зачем IT-специалистам нужны шаблоны интеграции, и разобрал, для каких задач они подходят, а для каких нет. Для тех, кто пропустил или предпочитает читать, а не смотреть подготовили текстовый обзор интеграционных паттернов: Circuit Breaker, Sidecar, Ambassador, Anti-Corruption Layer и Async Request-Reply.

Читать далее
Total votes 23: ↑20 and ↓3+18
Comments1

Принципы SOLID в картинках

Reading time4 min
Views464K


Если вы знакомы с объектно-ориентированным программированием, то наверняка слышали и о принципах SOLID. Эти пять правил разработки ПО задают траекторию, по которой нужно следовать, когда пишешь программы, чтобы их проще было масштабировать и поддерживать. Они получили известность благодаря программисту Роберту Мартину.

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

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

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

Ну, приступим.
Читать дальше →
Total votes 57: ↑52 and ↓5+54
Comments26

Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 1

Reading time29 min
Views65K

Всем привет! Я Дмитрий Лунин, работаю аналитиком в команде ценообразования Авито. Наш юнит отвечает за все платные услуги площадки. Наша основная задача — сделать цены на них оптимальными. 

Мы не только пытаемся максимизировать выручку Авито, но и думаем про счастье пользователей. Если установить слишком большие цены, то пользователи возмутятся и начнут уходить с площадки, а если сделать цены слишком маленькими, то мы недополучим часть оптимальной выручки. Низкие цены также увеличивают количество «спамовых» объявлений, которые портят поисковую выдачу пользователям. Поэтому нам очень важно уметь принимать математически обоснованные решения — любая наша ошибка напрямую отразится на выручке и имидже компании. 

Одним из инструментов для решения наших задач является A/B-тестирование.

Читать далее
Total votes 10: ↑8 and ↓2+7
Comments15

Как мы научились А/B-тестировать алгоритмы с помощью switchback-тестов

Reading time12 min
Views4.9K

Привет! На связи Евгений Бокарев и Надежда Грачёва, в этой статье мы расскажем про внедрение switchback A/B-тестов в логистике Delivery Club. Обсудим, как оценивать результат эксперимента, если эффективность доставки одного заказа влияет на другие. И на примере покажем, как мы снизили долю невыполненных заказов, с какими сложностями столкнулись и как их решали.

Читать далее
Total votes 17: ↑16 and ↓1+19
Comments2

Information

Rating
1,771-st
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity