#prog #rust #rustasync
Async Rust is about concurrency, not (just) performance
(Alternative title: In defense of async (Rust))
TLDR: I think that the primary benefit of async/await is that it lets us concisely express complex concurrency; any (potential) performance improvements are just a second-order effect. We should thus judge async primarily based on how it simplifies our code, not how (or if) it makes the code faster.
Async Rust is about concurrency, not (just) performance
(Alternative title: In defense of async (Rust))
TLDR: I think that the primary benefit of async/await is that it lets us concisely express complex concurrency; any (potential) performance improvements are just a second-order effect. We should thus judge async primarily based on how it simplifies our code, not how (or if) it makes the code faster.
Kobzol’s blog
Async Rust is about concurrency, not (just) performance
TLDR: I think that the primary benefit of async/await is that it lets us concisely express complex concurrency; any (potential) performance improvements are just a second-order effect. We should thus judge async primarily based on how it simplifies our code…
😁3👍2🤔1
Forwarded from Сова пишет…
Вот в ЭКОСИСТЕМЕ APPLE есть такое приложение как iPhone Mirroring
Его суть в том, чтобы я мог лежа на диване с ноутбуком потыкать в нужные мне приложения на айфоне не вставая, особенно полезно, если айфон на зарядке в другой комнате.
Что интересно, эта фича работала несколько недель сразу после релиза, а потом перестала.
Месяцем позже Apple выкатили апдейт для всех устройств и вроде заработало.
Сейчас я решил снова воспользоваться этой фичей: мне пришло уведомление с айфона, тыкнул, открылось iPhone Mirroring.
Но! Apple предлагает мне встать, найти айфон и разблокировать его, чтобы использовать эту фичу!
Но тогда нафига мне эта фича? Как так?
Его суть в том, чтобы я мог лежа на диване с ноутбуком потыкать в нужные мне приложения на айфоне не вставая, особенно полезно, если айфон на зарядке в другой комнате.
Что интересно, эта фича работала несколько недель сразу после релиза, а потом перестала.
Месяцем позже Apple выкатили апдейт для всех устройств и вроде заработало.
Сейчас я решил снова воспользоваться этой фичей: мне пришло уведомление с айфона, тыкнул, открылось iPhone Mirroring.
Но! Apple предлагает мне встать, найти айфон и разблокировать его, чтобы использовать эту фичу!
Но тогда нафига мне эта фича? Как так?
👍5🍌1
Сова пишет…
Вот в ЭКОСИСТЕМЕ APPLE есть такое приложение как iPhone Mirroring Его суть в том, чтобы я мог лежа на диване с ноутбуком потыкать в нужные мне приложения на айфоне не вставая, особенно полезно, если айфон на зарядке в другой комнате. Что интересно, эта фича…
Фейл примерно на уровне десктопного WhatsApp. Для контекста: десктопное приложение WhatsApp есть, но для того, чтобы им пользоваться, нужно иметь под рукой рабочий и подключённый к интернету телефон с установленным и залогиненым WhatsApp
👍4🤯3
Forwarded from Технологический Болт Генона
This media is not supported in your browser
VIEW IN TELEGRAM
Doom в Word'е
GitHub
https://github.com/wojciech-graj/doom-docm
ЗЫ У меня LibreOffice не заработало. Было ожидаемо 🌝
How it works
The Word document contains the library doomgeneric_docm.dll and doom1.wad game data encoded in base 64, which a VBA macro extracts onto the disk and then loads. Every game tick, doomgeneric.dll creates a bmp image containing the current frame and uses GetAsyncKeyState to read the keyboard state. The main VBA macro's game loop runs a tick in doom, then replaces the image in the document with the latest frame.
GitHub
https://github.com/wojciech-graj/doom-docm
ЗЫ У меня LibreOffice не заработало. Было ожидаемо 🌝
👍7🤯4
#prog #abnormalprogramming #article
Building a url-shortener with Lambda — JUST Lambda
(и немного Python)
Работает без базы данных, если что
Building a url-shortener with Lambda — JUST Lambda
(и немного Python)
Работает без базы данных, если что
Блог*
#prog #abnormalprogramming #article Building a url-shortener with Lambda — JUST Lambda (и немного Python) Работает без базы данных, если что
И ещё пачка #prog #abnormalprogramming от этого же человека:
Чат, работающий на одном CSS на клиенте
Спеллчекер на тайпчекере Typescript (так что, видимо, #typescript?)
База данных на вкладках браузера
Чат, работающий на одном CSS на клиенте
Спеллчекер на тайпчекере Typescript (так что, видимо, #typescript?)
База данных на вкладках браузера
🤩2🔥1🤯1
#prog #rust #article
Breakage! in the Cargo.toml — How Rust Package Features Work (And Break)
Самое важное:
In some cases, you may not want to expose a feature that has the same name as the optional dependency. For example, perhaps the optional dependency is an internal detail, or you want to group multiple optional dependencies together, or you just want to use a better name. If you specify the optional dependency with the
Поэтому добавление фичи с указанием опциональной зависимости через
Добавление обнаружения этой ситуации в cargo-semver-checks потребовало довольно много работы, поскольку до этого вся кодовая база опиралась на предположение, что вся информация для проверок идёт из JSON, который выдаёт rustdoc. Эта же проверка требует смотреть в Cargo.toml и в набор фич, поскольку rustdoc генерирует документацию только для конкретного набора фич и потому не может дать информации о всех фичах в манифесте.
Breakage! in the Cargo.toml — How Rust Package Features Work (And Break)
Самое важное:
In some cases, you may not want to expose a feature that has the same name as the optional dependency. For example, perhaps the optional dependency is an internal detail, or you want to group multiple optional dependencies together, or you just want to use a better name. If you specify the optional dependency with the
dep:
prefix anywhere in the [features]
table, that disables the implicit feature.Поэтому добавление фичи с указанием опциональной зависимости через
dep:
удаляет неявную одноимённую фичу, связанную с зависимостью, и из-за этого является потенциально ломающим изменением.Добавление обнаружения этой ситуации в cargo-semver-checks потребовало довольно много работы, поскольку до этого вся кодовая база опиралась на предположение, что вся информация для проверок идёт из JSON, который выдаёт rustdoc. Эта же проверка требует смотреть в Cargo.toml и в набор фич, поскольку rustdoc генерирует документацию только для конкретного набора фич и потому не может дать информации о всех фичах в манифесте.
👍6😭2
Forwarded from commit -m "better"
История одного дебага.
https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/
TL;DR - как определенное сочетание опций сборки ядра и версий GCC ломало go runtime.
https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/
TL;DR - как определенное сочетание опций сборки ядра и версий GCC ломало go runtime.
marcan.st
Debugging an evil Go runtime bug
From heat guns to kernel compiler flags
👍6😱2