DE – Telegram
522 subscribers
312 photos
81 videos
15 files
405 links
Data Engineering Technologies.
SQL, Python, Kafka, Spark, Pandas, Airflow, Clickhouse, Greenplum, Postgres, dbt, LLM agentic systems, AI, robots, drones etc.

Boost channel - https://news.1rj.ru/str/boost/data_engi
Download Telegram
Forwarded from Хитрый Питон
Я всегда был сторонником обучения на практических задачах и сам не люблю при изучении новых языков/фреймворков/библиотек решать синтетические задачки. Поэтому мне понравился подход ребят из https://codecrafters.io/ - "напишите Redis, Git или Docker своими руками". Я некоторое время мариновал этот сайт в закладках, но тут во время отпуска решил попробовать.

Как это работает:
- Они разбивают большой проект на небольшие задачки по принципу "давай запустим сервис на порту", "теперь давай напишем простой ping/pong" и так далее
- Каждую небольшую задачку ты коммитишь, и они прогоняют по ней автоматические тесты - если тесты зеленые, то ты молодец 🙂
- Там есть очень базовые объяснения как что работает - типа туториалов "как устроен tcp" или "как работает пакет net в go", но их явно недостаточно, чтобы выполнить задание
- Самое интересное — это возможность посмотреть чужой код, прошедший тесты на каждом шаге - они просто показывают тебе покрашенные дифы и по ним можно разобраться, как именно человек переписал код чтобы решить эту задачу

У меня не было много времени, чтобы с этой штукой поиграться, но я написал базовый redis на python (который я знаю хорошо) и go (который я знаю так себе) и вот какие выводы сделал:
- Мне подход показался очень интересным, я точно буду дальше пользоваться. Пока я не платил им денег, но кажется даже без денег на тех бесплатных проектах, что у них есть, можно себя занять на некоторое время
- Это хорошая игрушка для мидлов и выше. Возможно упорный джуниор сможет разобраться, но в этом случае должен очень классно быть прокачан скилл "у меня ничего не работает, но я буду разбираться до победного"
- Мне очень понравилась фича просмотра чужих диффов - особенно для go, с которым я знаком поверхностно - мне было очень интересно посмотреть на разные подходы к решению одной и той-же задачи и что-то утащить себе в копилочку
- Важно не копировать код у других. Я для себя нашел такой вариант - там, где я разбираюсь (python) - пишу сам и смотрю чужие интересные находки. Там, где я разбираюсь не очень (go) - компилирую свой вариант из разных вариантов переписывая под свое чувство прекрасного

В общем выглядит как годный инструмент для тех, кто не хочет застаиваться и особенно прикольно для того, чтобы поразбираться с чем-то новым.
❤‍🔥721
😁9
😁5
😁82
Airflow остаётся самым популярным инструментом для оркестрации дата-пайплайнов с открытым исходным кодом. Но его часто используют неправильно.

По ссылке несколько распространённых ошибок, которые допускают команды DevOps и DE при развёртывании Airflow.
12❤‍🔥11
DE чинит упавший пайплайн

#meme
😁5❤‍🔥2
Если тебе интересно заглянуть под капот Python и узнать, как устроены списки - есть отличная статья, которая начинается с достаточно простого примера и потом плавно погружает в глубины C-шной реализации списков в Python.

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

Даже если ты никогда не программировал на C, тебе будет понятен и интересен материал.

Ссылка на статью, рекомендую ознакомиться — это на самом деле увлекательно 🙂

#python
Please open Telegram to view this post
VIEW IN TELEGRAM
6
И ещё немного про Python.

Полезно тем, кто уже освоил f-строки в Python и использует их для форматирования. Часто ты останавливаешься на чём-то вроде f"string {variable}", но знаешь ли ты, что f-строки скрывают в себе гораздо больше возможностей?

Например, представь, что тебе нужно превратить число в строку, где оно всегда будет занимать три позиции, дополняясь нулями спереди, если это необходимо. С f-строками это сделать проще простого! Если у тебя число 5, ты получишь "005", а если 123, то останется просто "123".

Гайд от PyBites показывает, на что способны f-строки. Если ты ещё не раскрыл для себя все возможности этого удобного инструмента - бегом читать 🙃

Ссылка

А ещё по f-строкам у меня была ссылка на другой хороший материал в посте

#python
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Teable - no-code база данных построенная поверх PostgreSQL.
Она использует простой интерфейс, похожий на электронные таблицы, для создания приложений БД корпоративного уровня.

#db #nocode #teable
4
SQLMesh

SQLMesh - это фреймворк нового поколения для преобразования и моделирования данных, обратно совместимый с dbt. Он отличается простотой использования, корректностью и эффективностью.

SQLMesh позволяет специалистам по работе с данными эффективно запускать и внедрять преобразования данных, написанные на SQL или Python.

Авторы обещают, что SQLMesh сделает твои проекты на базе dbt более эффективными, надёжными и удобными в обслуживании, и это больше, чем просто альтернатива dbt.

#sqlmesh #sql #dbt #db
6
😁14
Очень полезная статья для тех, кто работает с celery. А если вы из мира python, то для отложенных задач не так уж и много альтернатив. Через решение непосредственно задачи отдачи метрик в prom раскрывается внутреннее устройство фреймворка: какие настройки есть, как работают и как их правильно использовать.

https://habr.com/ru/companies/domclick/articles/804535/ #dev #python
4
Мне кажется порою, что солдаты,
С кровавых не пришедшие полей,
Не в землю нашу полегли когда-то,
А превратились в белых журавлей.

Они до сей поры с времён тех дальних
Летят и подают нам голоса,
Не потому ль так часто и печально
Мы замолкаем, глядя в небеса.

Летит, летит по небу клин усталый,
Летит в тумане на исходе дня,
И в том строю есть промежуток малый,
Быть может, это место для меня.

Настанет день и с журавлиной стаей
Я поплыву в такой же сизой мгле,
Из-под небес по-птичьи окликая
Всех вас, кого оставил на земле.
7❤‍🔥43😁1
🖼️ SQL генератор - Sqlcode 8b на базе Llama-3

Мощная языковая модель для генерации текста в SQL, которая находится на одном уровне с универсальными моделями.

🔜 Github
🔜 Weights
🔜 Demo

#sql #llm #postgres
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤‍🔥2😁1
🙂 Разминка для мозга.

Справишься с такой задачей?

#task
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥7
⚙️ Если механизм начнет работать, коробка откроется или закроется?
Final Results
22%
Закроется 🙃
78%
Откроется 🙂
❤‍🔥6
❤‍🔥5
😁10
Да, оно существует.

Под капотом низкоуровневая магия, из самого понятного - оно позволяет создавать поддельные объекты на куче. Можно создать байтовый массив с базовым адресом 0 и длинной SSIZE_MAX, что даст доступ к сырой памяти, на чтение и запись.

Такая техника, кстати, используется в эксплоитах движков javanoscript. Парочкой похожих эксплоитов уже давно хакают PS4.
5❤‍🔥1