Telegram Web
Forwarded from Neural Machine
К сожалению, мы живем в мире, где необходимо встречаться с людьми.
😢18💯5🤡1
Cloning stamp — один из лучших инструментов, которых нам подарили цифровые редакторы
🤡2
How Grab’s Migration from Go to Rust Cut Costs by 70%
https://blog.bytebytego.com/p/how-grabs-migration-from-go-to-rust

tl;dr Основным языком был Go, потом переписали один важный сервис на Rust и снизили затраты на 70%.

Теперь не очень кратко

Был выбран высоконагруженный, но достаточно простой по функциональности сервис

> To approach this decision carefully, the Grab Engineering Team set clear criteria for selecting a service to rewrite. The chosen system needed to be simple enough in its functionality to avoid unnecessary complexity. It also had to serve large amounts of traffic so that any efficiency gains would be meaningful. Finally, the team needed to be confident that engineers were willing and able to learn Rust to support the system for the long term.

Таким сервисом стал Counter Service, который отслеживает происходящее и предоставляет различные счётчики

- Фиксирует события, считает их и складывает в ScyllaDB
- Отвечает на GRPC запросы, которые собственно и касаются "циферок"

> While Counter Service handles very high traffic, reaching tens of thousands of requests every second at peak times, the work it performs is straightforward. It counts, stores, and returns numbers.

На первой картинке видно как этот сервис организован

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

Далее смотрели какие библиотеки есть для Rust, что бы во-первых упростить перенос, во-вторых оценить некую "зрелость" зависимостей.

Here are the main dependencies:

- Datadog StatsD client: The Grab engineering team chose Cadence. It had fewer than 500 GitHub stars, which suggested a smaller user base, but the API was intuitive and covered all the required features.

- OpenTelemetry: They used opentelemetry-rust, which had more than 1,000 stars and solid community backing.

- GRPC: The tonic library was selected, a well-known Rust implementation of GRPC with active use and more than 500 stars.

- Web server: actix-web was picked. It is one of the most popular Rust frameworks, with more than 20,000 stars.

- Redis: Initially, the team tried redis-rs, the “official” Redis client with over 3,000 stars. However, it did not meet the needs of the project’s asynchronous design. They switched to
fred.rs, which had over 5,000 stars and better async support.

- Scylla: They used the scylla-rust-driver. Although it had only around 500 stars, it was officially maintained by the Scylla project, giving confidence in its long-term support.

- Kafka: The kafka-rust client, with over 1,000 stars, was adopted to handle messaging needs.


Следующей проблемой было то, что их собственные компоненты и либы были написаны на Go. Одну из таких важных библиотек им пришлось переписать на Rust.

Пост большой и дальше там поднимаются проблемы Borrow Checker'а (а кто с ним не боролся на первых шагах 🌝) и Async Concurrency (тоже ловили проблемы на первых этапах разработки).

Итого
- Сервис перепилили
- latency обе реализации показали приблизительно одинаковую, иногда у Rust даже медленнее (вторая картинка)
- Но для реализации на Rust ресурсов надо меньше:

- The Go service needed about 20 CPU cores.
- The Rust service needed only about 4.5 cores.
- This translated into nearly five times better efficiency and about 70 percent lower infrastructure cost for the same workload.


Основных три общих вывода

- Rust is not always faster than Go. Go is already fast enough for most high-performance services, so Rust will not necessarily reduce latency

- Rust is more efficient. Thanks to its design, Rust uses less computing power to achieve the same results. This makes it especially valuable for services with heavy traffic where cost savings add up quickly

- Rust’s learning curve depends on context. Writing synchronous code in Rust is manageable for most experienced developers, especially with the help of the compiler and the Clippy linter. The real challenge comes with asynchronous code, which requires a deeper understanding of concurrency
🤡6🔥5😁2💩1🖕1
Forwarded from Random Rust Dev
В моей кампании по ДнД персонаж игрока превратилась в драконида.
Ну, думаю, попрошу ГПТ нарисовать её для визуализации.
Делаю запрос, такая-то такая-то платиновая драконидица.

Рисует отлично, но с грудями явными.
Делаю новый промт, уточняю, что надо без грудей, потому что драконид не млекопитающее.

Мой запрос фейлится, ибо просить отсутствие сексуализации не проходит фильтр запрета сексуализации.

Пришлось хэндвейвить, что это драконидихе достались черты оригинальной расы.

Такой вот вышел гибрид.
🥴15🤡7👍4🍌2😁1
19🤡3🤔2❤‍🔥1😁1
Forwarded from /home/oficsu/blog
Гугл, реддит и автоматический перевод

Реддит некоторое время назад научился автоматическому переводу своих страниц. Он даже позволяет настроить список языков пользователя, которые переводить не нужно

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

Если бы не гугл, который у нас, как обычно, умнее всех. Эти гении начали приписывать tl=ru к случайным url реддита в поисковой выдаче, что полностью сломало его ux. И не только мне. Список языков, заданный в профиле больше не играет роли — случайные странички теперь принудительно переведены на русский, потому что гугл

Как чинить? Ну, аддоны, исправляющие эту проблему, есть уже под все браузеры. Однако, поскольку доверия к ним никакого, а вот блокировщик рекламы есть у всех, то и чинить будем самостоятельно через uBlock Origin

Открываем его настройки -> My filters, добавляем новое правило...

Если хотим отключить автоматический перевод вообще, независимо от целевого языка:
||reddit.com^$removeparam=/tl/


Если же хотим отключить перевод только на русский, оставив переводы на другие языки (не знаю, зачем вам это), то правило будет выглядеть вот так:
||reddit.com^$removeparam=/tl=ru/
😁174👍3🤡2💩1
Forwarded from /g/‘s Tech Memes
🫡26😁7🤣2🤡1
😁17👏8🔥1🤡1
#prog #rust #rustlib #ml #abnormalprogramming

unwrap_or_ai

Tired of manually handling unwrap() results? Let AI do the heavy lifting!
🤩18🤡3
Блог*
Photo
Напоминаю
😁8🤡2
😒🤚 Self-made man
😏👉 Self-maid man
🥰11🤡6🔥3
Парни+
Среди обвинений — текст вызывает сочувствие квир-людям.
Прочитал текст решения против главредки «Мост.медиа» Ольги Проскурниной. В суд приходила женщина из радиочастотного центра — это такой подвед Роскомнадзора, который делает самую грязную работу, включая мониторинг «нарушений» и «экспертизу» по ним (а по названию и не скажешь, вроде радиочастоты ожидались).
#гейновости #бомбита #гомофобия

Если очень сократить эту экспертизу, то претензия одна: в тексте ЛГБТ — это люди. Только и всего. Их проблемы вызывают сочувствие (а не должны), они живут обычной, нормальной жизнью, а не должны, они ничем не отличаются от цисгетеро, а должны.

Никакой новости в этом нет, но меня раз за разом разъёбывает каждая новая бумажка, где уполномоченные Россией люди официально утверждают, что я — унтерменш, недочеловек, не достойный сострадания и нормальной жизни (до «не достойный жизни вообще» всего один шаг).

А статью, кстати, можно прочитать вот здесь
🤬16💔6👍2🤩2🤡2😢1🤮1🤷1
😁37😢3🤣2🤡1
Действительно, зачем
😁6💯6🤡1🤝1
#meme про счастье и детей?..
😁15💯5🤡1
Упорный разработчик, конечно. Успехов ему в этом нелёгком деле

Выпуск ZLUDA 5, универсальной открытой реализации технологии CUDA
https://www.opennet.ru/opennews/art.shtml?num=63997

Анджей Яник (Andrzej Janik) представил выпуск ZLUDA 5, открытой реализации технологии CUDA. Целью проекта является предоставление возможности запуска немодифицированных приложений CUDA на системах с GPU, отличными от GPU NVIDIA, с производительностью, близкой к производительности приложений, выполняемых без прослоек. Код проекта написан на языке Rust и распространяется под лицензиями MIT и Apache 2.0.

ZLUDA 5 стал вторым значительным выпуском проекта, сформированным после чистки кодовой базы от кода, разработанного во время работы Анджея в компании AMD. С 2022 года Анджей работал в AMD над созданием слоя для совместимости GPU AMD с CUDA, но в 2024 году проект был свернут. В соответствии с условиями контракта и после получения разрешения на публикацию от представителя AMD, Анджей открыл код наработок, созданных во время работы в AMD и позволяющих выполнять CUDA-приложения поверх стека ROCm и runtime HIP (Heterogeneous-computing Interface for Portability).

В прошлом году Анджей был вынужден убрать код из открытого доступа после письма от юристов, давших понять, что разрешение, данное в ходе переписки по email, не имеет юридической силы. После этого Анджей начал работу над новой редакцией ZLUDA, сформированной на основе кодовой базы, существовавшей до начала работы Анджея в AMD. В текущем виде разработка сосредоточена на выполнении приложений, использующих CUDA для ускорения задач, связанных с машинным обучением. Проект пока ограничивается работой на GPU AMD, но в дальнейшем будет адаптирован для GPU Intel.


Оригинал
ZLUDA update Q3 2025 – ZLUDA 5 is here
https://vosen.github.io/ZLUDA/blog/zluda-update-q3-2025/
🌚6❤‍🔥5👍4🤡2
2025/10/12 03:39:12
Back to Top
HTML Embed Code: