Привет, я Андрей @ab0xa, bi / de / java dev
Анализ данных и визуализация, интересные ссылки, вакансии, уроки, юмор) и личный опыт
Стек технологий Python, Java, SQL, Tableau, Knime, Yandex.Облако, Yandex DataLens
Привет, я Андрей @ab0xa, bi / de / java dev
Анализ данных и визуализация, интересные ссылки, вакансии, уроки, юмор) и личный опыт
Стек технологий Python, Java, SQL, Tableau, Knime, Yandex.Облако, Yandex DataLens
Присаживайся на диван к аналитикам Авито 👀
Команда AvitoTech запустила проект «Диванная аналитика». Это серия материалов, где специалисты из Авито рассказывают, как принимают решения в одной из крупнейших экосистем страны.
Если ты работаешь с данными, то вот 3 причины зайти на лендинг прямо сейчас:
1️⃣ Все выпуски опираются на реальный опыт — аналитики рассказывают о том, что уже применили у себя и что сработало.
2️⃣ Царит приятная атмосфера: по сути, все видео — это недушные мини-лекции с наглядной презентацией.
3️⃣ Разбираются разные темы — от ML до стратегического планирования.
Контент может пригодиться опытным аналитикам и менеджерам, которым надо говорить с командой на одном языке.
Смотри готовые выпуски и подпишись на новые — телеграм-бот пришлёт уведомление о новом видео!
Посмотреть, что там интересного
«Это разве аналитика?» - канал из категории «Бизнес», подключенный к сервису кросспостинга MaxGate. Публикации канала синхронизируются между Telegram и мессенджером MAX, а на этой странице собраны ссылки на обе версии канала.
Сейчас у канала 4 672 подписчика суммарно в Telegram и MAX. За последние 17 дней в истории MaxGate учтено 11 публикаций, поэтому перед подпиской можно оценить не только размер аудитории, но и регулярность обновлений.
Чтобы подписаться, используйте кнопки «Открыть в MAX» и «Открыть в Telegram» в верхней части страницы. У отдельных постов ссылка может быть доступна в обоих мессенджерах или только в одном из них, если MaxGate получил такой URL из истории обработки.
23.0626.0629.0602.0705.0708.0709.07
Число постов
1
0
08.0709.07
Фото: 1
DBX
Так ли уж много надо для счастья на сегодняшний день? Полный бак бензина, хороший велик и... Чтобы хоть одна sql-ide показывала миллисекунды для datetime колонок в StarRocks!
Я очень люблю сообщества и неформальное общение. Там порой случайно можно узнать что-то интересное, способное поменять твои привычки в работе и сделать картинку вокруг чуточку лучше.
И вот недавно думали тряхнуть стариной и провести новый DBT митап с Алмазом, и он случайно обронил в разговоре dbx. Выглядит интересно, пошел смотреть что это такое.
Да, вся IDE поместилась в 15 мегабайт с поддержкой почти всех бд, которые сейчас есть на рынке. Но эти 15 мегабайт, конечно же, не включают в себя JDBC драйвера для вертики или хайва, например. А вот StarRocks включен в поставку по умолчанию. И то, с чем не справились ни JB с их убер зоопарком, ни DBeaver с аналогом - вот на скриншоте сверху.
А еще в DBX на маке работает cmd+enter для выполнения запросов, что благополучно сломали уже год как в DBeaver.
А еще там есть MCP для всех ваших коннектов и готовое how-to интеграция с курсором и клодом (и остальными). Который впрочем не работает на маках с арм :)
И еще рендеринг тупит и если быстро листать виртуальные столы - то видишь белый экран примерно пару секунд после перехода.
Но ладно, за миллисекунды и хоткеи все можно простить. Теперь это мой топчик. Спасибо, Алмаз :)
Генерируем Rust код из Python и становимся крабами
Проект "острый краб": https://github.com/kushaldas/spicycrab
Вы же знаете, что вы узнаете про все важные штуки в питоне первыми? На ближайшем Language Summit в июле Кушал Дас - core-разработчик CPython - представит свой новый проект. Но зачем ждать июля, когда код открыт? Давайте смотреть и пробовать!
В чем главная идея?
- Пишем на типизированном Python
- Получаем на выходе Rust код, который работает в десятки или сотни раз быстрее
- Можем использовать в Python крейты Rust и Python пакеты, что? 🙀
(проект еще не просто в альфе, а в пре-альфе, но мы тут просто любим странное, ставь 🕊, если просто заходишь сюда почитать про непонятное и удивительное)
Начнем с простого: print('Hello world')
Запустим: crabpy transpile ex.py и получим:
fn main() {
println!("Hello world");
}
Прикол! Давайте сделаем сложнее. Возьмем clap (популярная библиотека для парсинга CLI параметров в расте) и сделаем мини CLI с ее помощью ... на питоне.
1. Скачиваем Rust зависимость и генерим из нее Python стабы: cookcrab generate clap -o rust-stubs/
2. Смотрим, что там внутри правда Python стабы, удивляемся
3. Устанавливаем стабы: pip install -e ./rust-stubs/clap_builder ./rust-stubs/clap
4. Пишем на питоне:
from spicycrab_clap import Command, Arg, ArgMatches
def main() -> None:
matches: ArgMatches = (
Command.new("myapp")
.arg(Arg.new("name").required(True))
.get_matches()
)
name: str = matches.get_one("name").unwrap().clone()
print(f"Hello, {name}!")
5. Транспилим: crabpy transpile ex.py
6. Получаем
pub fn main() {
let matches: clap_builder::ArgMatches = clap::Command::new("myapp")
.arg(clap::Arg::new("name").required(true))
.get_matches();
let name: String = matches.get_one::("name").cloned().unwrap().to_string();
println!("{}", format!("Hello, {}!", name));
}
7. Запускаем:
» cargo run -- Nikita
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.01s
Running `/Users/sobolev/Desktop/spicycrab/rusty/target/debug/ex Nikita`
Hello, Nikita!
Теперь у вас нет уважительных причин, чтобы говорить "я не знаю раст" 🌚️️
Зачем?
А если серьезно, то не совсем пока понятно - какую нишу будет занимать данный проект.
Сам автор говорит:
> Write typed Python and generate working Rust code via spicycrab. This currently includes part of stdlib, async (via tokio), actix-web examples. Slowly more and more Rust crates are available as stub typed Python modules, which we can use like normal Python code while developing and then compiling the generated Rust code as final output. The final goal is to be able to write smaller production code using spicycrab.
Кажется, что ниша довольно маленькая. Если вам реально хочется писать Python + Rust код вместе (что вообще-то лютейшая база, например ruff и uv ровно так и написаны), то есть уже готовые проекты:
- https://github.com/pyo3/pyo3 - для использования Rust вместе с CPython биндингами
- https://github.com/pyo3/maturin - система сборки для такие проектов
Есть проекты чуть менее универсальные, например:
- https://github.com/RustPython/RustPython - интерпретатор Python на Rust, там тоже можно писать модули на расте для питона своим особым способом
use rustpython::vm::pymodule;
#[pymodule]
mod test_module {
#[pyfunction]
pub fn add(a: i32, b: i32) -> i32 {
a + b
}
}
- https://github.com/youknowone/pyre - новый интерпретатор Python на Rust (от того же автора) но с Free-Threading и JIT из PyPy, в некоторых случаях в 45 раз быстрее CPython, goes brrrr
- Поддержка Rust напрямую в CPython: https://t.me/opensource_findings/941 Ждете? :)
И еще куча всего другого.
Но, будет интересно посмотреть, что выйдет из такого довольно необычного опыта.
Обсуждение: Знаете ли вы раст? Хотите ли изучить? Видите ли применения у себя на работе?
| Поддержать | YouTube | GitHub | Чат |