DE – Telegram
523 subscribers
313 photos
81 videos
15 files
406 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
GitHub Copilot is now available for free

Но есть нюанс, только VS Code и есть лимиты.

ref

👩‍💻

#github #copilot #ai
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5
9 законов (принципов) программирования — это база.

0⃣ Закон Брукса — если ты посадишь трёх разрабов за одну задачу, они не сделают её в три раза быстрее. Чем больше твоя команда, тем сложнее становится координация и планирование.

1️⃣ Закон Гудхарта — чем жёстче твои KPI и метрики для измерения эффективности, тем сильнее они отвлекают от выполнения самих задач. В самых запущенных случаях люди забивают на задачи и переключаются только на KPI.

2️⃣ Закон Хайрама — чем больше юзеров у API, тем сильнее они полагаются на незадокументированные особенности, превращая их в «обязательные» функции. Из-за этого любые изменения становятся сложными, ведь легко сломать что-то для тех, кто уже привык к старым фишкам.

3️⃣ Закон Конвея — структура программ часто повторяет организационную структуру команды, которая её создала. Если слепо следовать границам в команде, софт получится неоптимизированным.

4️⃣ Закон Линуса — база опенсора. Чем больше людей проверяют код, тем больше шансов найти ошибку.

5️⃣ Закон Хофтшадтера — дедлайн всегда нужно ставить с запасом. Мы склонны занижать количество времени, необходимое для выполнения задачи.

6️⃣ Закон Кернигана — код всегда должен быть простым и понятным. Сложный код всегда становится неподъёмным в отладке и сопровождении — это только вопрос времени.

7️⃣ Закон Питера — софт- и хард-скиллы, это разные навыки. Так, топовый разраб не обязательно обладает такими же способностями к управлению людьми, руководству командами или выполнению стратегических требований лидерства.

8️⃣ Закон Парето — усилия должны быть избирательными. Чтобы 20% усилий приносили 80% результатов, сначала нужно понять, куда прикладывать эти усилия. Качество всегда перевешивает количество, а результат важнее времени затраченного на задачу.


#dev #baza #pareto #laws #programming #engineering
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥10
Forwarded from partially unsupervised
Наткнулся на пост Top Python libraries of 2024, и набор библиотек в очередной раз затрагивает давно наболевшие топики:

1) несовершенство языка и пакетного менеджера (uv вместо pip, Whenever как лучший datetime, streamable как альтернатива встроенным коллекциям, очередной генератор/валидатор типов...);
2) все низкоуровневые штуки продолжают переписывать на rust;
3) главная проблема и в LLM-driven мире осталоась все той же - перегонять данные из формата в формат, только к привычным HTML/JSON/markdown/датаклассам добавляются попытки сделать LLM-native форматы (BAML), LLM-native датаклассы (PydanticAI) etc.

Правда, из всего списка сколько-то массовый адопшен случился пока только у uv.
❤‍🔥8
😮 Turso представили Limbo — переписанный на Rust вариант SQLite, обещают +20% к скорости, векторный поиск, асинхронность и сборку в WebAssembly.

1️⃣ Почему интересно: Rust даёт безопасность и асинхронность, векторные индексы полезны для ML/AI, а WASM-версия запускается прямо в браузере.

2️⃣ Главные фишки:
🟢+20% производительности
🟢Векторные индексы для поиска
🟢Асинхронная обработка запросов
🟢Сборка в WebAssembly

3️⃣ Где пригодится: Локальные проекты (edge computing, микросервисы), задачи ML (embeddings), лёгкие веб-приложения без серверов.

4️⃣ Итог: Limbo — свежий взгляд на SQLite с упором на скорость, лёгкость и современные сценарии (ML, браузеры, edge).

#turso #limbo #sqlite #dev #de #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
6😁3❤‍🔥11
PGlite — это революционная WASM-сборка PostgreSQL, которая позволяет запускать базу данных прямо в браузере без необходимости использования виртуальной машины Linux.

Теперь PostgreSQL компилируется в WebAssembly, что открывает возможность работы с эфемерными БД в памяти или на диске через IndexedDB.

В сочетании с Electric, PGLite становится идеальным инструментом для создания реактивных local-first приложений, где основой служит Postgres.

#WASM #FrontendMagic #pg #pglite #db #postgres #databases
9❤‍🔥11
This media is not supported in your browser
VIEW IN TELEGRAM
🎄

С Новым годом!

Пусть 2025 принесёт тебе ещё больше вдохновения, неожиданных инсайтов и стабильных пайплайнов!

Спасибо за твою поддержку — продолжим прокачивать наш мир данных вместе!
Please open Telegram to view this post
VIEW IN TELEGRAM
317❤‍🔥1
🎄
Please open Telegram to view this post
VIEW IN TELEGRAM
19
😁94❤‍🔥2
Forwarded from Николай Ясинский | SHIFU (Nikolay Yasinskiy)
Я вот смотрю где и как используется Rust сейчас, и виден явный тренд, когда все чаще этот язык становится основным решением при переписывании тяжелых, требующих больших ресурсов сервисов или библиотек.

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

Например Polars (вдруг в DE занимаетесь):
https://pola.rs
6😁2❤‍🔥11
😁16
Forwarded from 🔋 Труба данных (Simon Osipov)
https://arch.dev/blog/2025-the-dawn-of-the-ai-data-team/

Бла-бла-бла, AI всех заменит, подходы меняются, меняйся или умри.
Пожалуйста, не поддавайтесь этой истерике, в самой статье ж прям написано: The Foundation Remains Critical
Ничего ульра-прорывного именно в data engineering с появлением AI пока не произошло, вы ничего не пропустили.

Copilot и другие умные автокомплиты - это да. Вот это стоит взять на вооружение.

@ohmydataengineer - канал "🕯Труба Данных" на страже хайпожорства!
Please open Telegram to view this post
VIEW IN TELEGRAM
6👏22😁1
О! Кажется, маятник качнулся в другую сторону. Авось, станет меньше глупых проверок по длине строки или количеству строк в файле. А разработчики наконец-то станут лучше выражать свои мысли и намерения (intentions).

Все эти KISS, DRY, SOLID и пр. в конце концов только настоятельные рекомендации, а не жёсткие правила. Не надо быть фанатиком чистого кода, надо голову включать.

https://habr.com/ru/companies/ruvds/articles/865026/ #dev
👏6❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Робособаки на военом параде в честь Дня Армии в Индии. 14 января 2025 года.

#ai #dev #robotics
❤‍🔥3😁31
А вы знали какая сама распространённая БД? В пятничный вечер немного фактов про неё. У всех на слуху Postgres, MySQL, Oracle - там постоянно какие-то новые фичи, баги, хайлоад... А вот про рабочую лошадку, которая просто работает, почему-то информации немного.

https://habr.com/ru/companies/ruvds/articles/873816/ #dev
9
Forwarded from DataEng
The Ultimate Guide to Apache Airflow DAGs.pdf
4.5 MB
The Ultimate Guide to Apache Airflow® DAGs

E-book от ребят из Astronomer про Apache Airflow. 135 страниц концентрированной информации "без воды". Рекомендую! Заходит как справочник в самый раз 👍🏻
18
😁13
В asyncio добавили возможность смотреть граф вызова корутин

Ждем в python3.14: https://github.com/python/cpython/commit/188598851d5cf475fa57b4ec21c0e88ce9316ff0

Пример:


import asyncio

async def test():
asyncio.print_call_graph()

async def main():
async with asyncio.TaskGroup() as g:
g.create_task(test(), name=test.__name__)

asyncio.run(main())


Выведет:


* Task(name='test', id=0x10304eee0)
+ Call stack:
| File '/Users/sobolev/Desktop/cpython2/Lib/asyncio/graph.py', line 278, in print_call_graph()
| File '/Users/sobolev/Desktop/cpython2/ex.py', line 4, in async test()
+ Awaited by:
* Task(name='Task-1', id=0x1034a1e60)
+ Call stack:
| File '/Users/sobolev/Desktop/cpython2/Lib/asyncio/taskgroups.py', line 121, in async TaskGroup._aexit()
| File '/Users/sobolev/Desktop/cpython2/Lib/asyncio/taskgroups.py', line 72, in async TaskGroup.__aexit__()
| File '/Users/sobolev/Desktop/cpython2/ex.py', line 7, in async main()


Как оно работает?

Появилось два новых важных изменений:

- Поле Frame.f_generator – оно хранит генератор или корутину, которая владеет данным фреймом. Нужно чтобы отрисовывать + Call stack:
- Новое свойство у Future


@property
def _asyncio_awaited_by(self):
if self.__asyncio_awaited_by is None:
return None
return frozenset(self.__asyncio_awaited_by)


Нужно, чтобы отрисовывать + Awaited by:.

Конечно же есть две иплементации. На питоне уже показал, вот так оно на C:


/*[clinic input]
@critical_section
@getter
_asyncio.Future._asyncio_awaited_by
[clinic start generated code]*/

static PyObject *
_asyncio_Future__asyncio_awaited_by_get_impl(FutureObj *self)
/*[clinic end generated code: output=... input=...]*/
{
/* Implementation of a Python getter. */
if (self->fut_awaited_by == NULL) {
Py_RETURN_NONE;
}
if (self->fut_awaited_by_is_set) {
/* Already a set, just wrap it into a frozen set and return. */
assert(PySet_CheckExact(self->fut_awaited_by));
return PyFrozenSet_New(self->fut_awaited_by);
}

PyObject *set = PyFrozenSet_New(NULL);
if (set == NULL) {
return NULL;
}
if (PySet_Add(set, self->fut_awaited_by)) {
Py_DECREF(set);
return NULL;
}
return set;
}


Как использовать?

Конечно же данная фича умеет не только печатать объекты в stdout. Прежде всего – она предоставляет удобное АПИ для различных IDE и дебагеров, которые смогут использовать данную информацию для визуализации: чего вообще у вас там происходит.

Ну и мониторинги, и sentry, и много кто еще получит дополнительную мета-информацию о процессе выполнения кода.

Документация: https://docs.python.org/3.14/library/asyncio-graph.html

Круто?

| Поддержать | YouTube | GitHub | Чат |
7👏1
Forwarded from PyCon Russia
Отличные новости для всего Python-сообщества: мы открыли доступ к записям докладов с PyCon 2024 на нашем YouTube-канале Speach!

Теперь каждый может посмотреть (или пересмотреть заново) 27 классных докладов от лучших спикеров прошлого года. Изучайте, делитесь с друзьями и коллегами🙂

А совсем скоро вы сможете приобрести билеты на PyCon 2025.
1 февраля открываем продажу билетов на сайте по низкой цене. Не пропустите!
6