DevBrain – Telegram
DevBrain
3.03K subscribers
28 photos
2 videos
9 files
712 links
Автор @adilkhash

Веду блог https://khashtamov.com/
Download Telegram
Крутой справочник по f-строкам в Python: https://fstring.help/
👍11
Возможны вы уже видели, но если нет, то вышел очень крутой профайлер памяти для Python от Bloomberg: https://github.com/bloomberg/memray
У Юрия Селиванова в твиттере есть тред по этой теме: https://twitter.com/1st1/status/1516859294896906241
🔥6👍5🤔1
​​Месяц назад ребята из Delivery Club поделились первой частью эволюции собственной рекомендательной системы ресторанов. Подробнее в публикации на Хабре.

На днях вышло продолжение. Из новой статьи вы узнаете, как отранжировать рестораны персонально для каждого пользователя, зачем нужна офлайновая ML-модель и почему обучение моделей «в лоб» не работает.
👍4
Вышла первая бета python 3.11: https://www.python.org/downloads/release/python-3110b1/
Версия 3.11 несёт в себе большое количество новых фич. Скоро выпущу подробный пост с разбором каждой фичи. Помимо этого в рамках инициативы Faster Python заявляется, что версия 3.11 в среднем на 22% быстрее чем 3.10 😲😲
👍12🤔1🤩1
​​Вы приняты

Многие из вас уже учились в Школе Сильных Программистов — это ребята, которые сделали курсы «Асинхронная Архитектура» и «Стать Тимлидом».

Теперь Федя с Марьяной запускают курс на максимально актуальную сейчас тему — как найти работу за рубежом. На курс позвали чувака, который уже 4 года нанимает инженеров в Мюнхене, и сам переехал в Германию из Красноярска в 2014 году. Обещают помочь с линкедин-профилем, провести мок-интервью и дать обратной связи от себя и других студентов.

Обучение стартует 26 мая, продлится три недели и затронет весь цикл трудоустройства — от выбора компании до оценки адекватности оффера.

Записаться →

P.S. По промокоду devbrain10 скидка 10% до 18 мая.
👍4👎2🤔1
Релиз первой альфы Django 4.1

Вышла первая альфа-версия Django 4.1: https://www.djangoproject.com/weblog/2022/may/18/django-41-alpha-1-released/

Альфа-релиз подразумевает feature-freeze, а ближайшая бета-версия выйдет в конце июня. Финальный же релиз намечается на начало августа. Отмечу, что Django 4.1 это не LTS релиз, LTS-версией будет Django 4.2, которая выйдет в августе 2023 года.

Что же примечательного в Django 4.1?

1. Class-based views стали асинхронными (ранее асинхронными были только функции, function-based views).

2. Появился асинхронный интерфейс для Django ORM, но отмечу что разработчики лишь скрыли под капотом вызовы запросов к базе через sync_to_async. Проще говоря, синхронные запросы к БД запускаются в отдельных потоках в рамках eventloop. У ORM-методов появились свои асинхронные аналоги с приставкой a:

Примеры:
- Book.objects.aget()
- Book.objects.afirst()

3. Прекращение поддержки PostgreSQL ниже 11 версии. Django 4.1 поддерживает только PostgreSQL 11 и выше.

4. Запрет вызова logout через HTTP GET метод. Если у вас на сайте есть кнопка выхода, проверьте что вы это делаете через POST запрос (исправьте при необходимости).

5. Прекращается поддержка кэш-бэкенда для memcached

Более подробную информацию о фичах и обратно несовместимых изменениях можно почитать на сайте: https://docs.djangoproject.com/en/dev/releases/4.1/

А вы используете Django в своих проектах/на работе?
🔥11👍7
Видосы с прошедшего PyCon US 2022 подъехали: https://bit.ly/3wF0qSV
👍8
Forwarded from DataEng
Про таймауты и внешние API

Хорошей практикой при работе с внешними сервисами я считаю явное указание таймаутов ожидания соединения и ответа от хоста. Такой подход поможет избежать проблем с "зависанием" соединения и, как следствие, блокировкой процесса (для блокирующих соединений). На моей памяти было 2 неприятных кейса. В далёком 2015 я использовал requests для работы с сервисом поиска и бронирования ЖД билетов в Казахстане, по-умолчанию в requests нет таймаута и ожидание может превратиться в бесконечность. Всё было хорошо до тех пор пока у внешнего сервиса не начались проблемы, и он перестал отвечать на запросы. Все worker-процессы ушли в бесконечное ожидание, и мой сервис перестал принимать новые соединения, сайт попросту сломался. Тогда мне потребовалось некоторое время, чтобы понять в чем проблема.

Со второй проблемой я столкнулся неделю назад. Сейчас я разрабатываю веб-сервисы для автоматизации рекламных сетей, активно пользуюсь Facebook Ads. Для работы с маркетинговым сервисом Фейсбука существует библиотека facebook-python-business-sdk. Внимание! Под капотом она использует requests 😉 И у неё нет таймаута по умолчанию. Я наткнулся на те же грабли, когда ФБ стал подтормаживать.

К слову, если вы как и я пользуетесь facebook-python-business-sdk, то таймаут можно установить через инициализацию API-класса:

FacebookAdsApi.init(access_token=access_token, api_version='v13.0', timeout=settings.FACEBOOK_ADS_API_TIMEOUT)

Не наступайте на грабли, ставьте таймауты 😉

Также по теме в ленте увидел пост про патчинг requests: https://adamj.eu/tech/2022/06/23/how-to-patch-requests-to-have-a-default-timeout/
👍15😁1
В доке Mozilla нашел html-тэг о котором ранее не знал — datalist: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist
Этот тег выполняет функции select и input, но есть крутая фишечка — нативный автокомплит.
А вы знали о теге <datalist>?
👍7🔥3🤯2
Python Web Conf 2022 Talks + Tutorials — https://bit.ly/3nrOChE
👍2
Выходим на мета-уровень!🤯 11 июля начинается новый сезон Podlodka Soft Skills Crew, который называется "Научиться учиться"🤩

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

Поэтому в новом сезоне мы сконцентрируемся на выстраивании эффективного подхода к самообучению:

⭐️ Проанализируем свои потребности и цели в обучении
⭐️ Построим план по достижению этих целей
⭐️ Поймем принципы обучения на биологическом уровне
⭐️ Изучим и сравним инструменты обучения от книг и до сессий с ментором
⭐️ Научимся разбираться с мотивацией и находить силы

Бонус трек – в течение всей недели по утрам будут практические воркшопы по осознанности, рефлексии и самодиагностике!

Если вы еще ни разу не были на Podlodka Crew, то самое время попробовать! Главные фичи:
💡Узкая тема. Разбираем теорию и практику конкретного подхода или технологии.
💡Удобное расписание: сессии идут 2 раза в день с понедельника по пятницу.
💡Море практики, реальных кейсов и нетворкинга без границ

Купить билеты и посмотреть расписание можно на сайте конференции. Ждем вас на борту!
Django 4.0.6, 3.2.14

В последнем продакшен релизе Django появился весьма не приятный баг, который может привести к SQL Injection: https://www.djangoproject.com/weblog/2022/jul/04/security-releases/

Рекомендуется обновиться как можно быстрее.
😁2
Django 4.1

Вышел долгожданный релиз Django 4.1: https://www.djangoproject.com/weblog/2022/aug/03/django-41-released/
🔥6
Какой крутой ресурс я нашел: https://deps.dev/

Сервис индексирует пакетные репозитории типа npm, pypi, cargo и т.д., и показывает детальную информацию о пакетах:

— прямые зависимости
— историю версий
— подробную информацию о лицензиях

Например, у Django есть 2 прямые зависимости: asgiref и sqlparse.
👍11
Советы по работе с git в PyCharm: https://youtu.be/IoUQ5JEokN4

Сам я уже давно не использую классический консольный git, пользуюсь исключительно UI от IDE, в частности PyCharm.
🔥1
Прошлый пост касался архитектуры Redis, а сейчас предлагаю вам познакомиться с кишками memcached: https://bit.ly/3czb6eQ

Лет 5-6 назад я был активным пользователем memcached, использовал его во всех проектах как основной кэш-бэкенд, но с бурным развитием Redis я переключился на него. Тем не менее, memcached поддерживается (последняя версия вышла 26 августа 2022 года), видео считаю очень полезным (как и канал автора в целом).
👍8