#prog #rust #rustlib
macro_rules_attribute — процедурные макросы для применения
Также либа даёт возможность создавать алиасы для пачек дерайвов и cfg-атрибутов:
macro_rules_attribute — процедурные макросы для применения
macro_rules!
макросов без сдвига вправо и с возможностью нормально их комбинировать для derive-like макросов, и всё без зависимостей на syn, quote и proc-macro2.#[macro_use]
extern crate macro_rules_attribute;
macro_rules! foo {
// …
}
macro_rules! Bar {
// …
}
#[apply(foo)]
#[derive(Debug, Bar!)]
struct Struct {
some_field: SomeType,
}
Также либа даёт возможность создавать алиасы для пачек дерайвов и cfg-атрибутов:
#[macro_use]
extern crate macro_rules_attribute;
derive_alias! {
#[derive(Ord!)] = #[derive(PartialEq, Eq, PartialOrd, Ord)];
}
#[derive(Debug, Clone, Copy, Ord!)]
struct Foo {
// …
}
attribute_alias! {
#[apply(complex_cfg!)] = #[cfg(
any(
any(
foo,
feature = "bar",
),
all(
target_os = "fenestrations",
not(target_arch = "Pear"),
),
),
)];
}
#[apply(complex_cfg!)]
mod some_item { /* … */ }
docs.rs
macro_rules_attribute - Rust
`::macro_rules_attribute`
👍12🤬4❤2🔥1🤮1
🤡30😁5💩1
#prog #rust #article
avatar.png
Или как сделать "аватарку", которая будет показывать IP-адрес того, кто её просматривает.
avatar.png
Или как сделать "аватарку", которая будет показывать IP-адрес того, кто её просматривает.
tuckersiemens.com
avatar.png
Dynamically generating PNGs with your IP address in them.
Блог*
Допустим, я организую в Москве встречу с подписчиками
Допустим, я организую в Ереване встречу с подписчиками
Anonymous Poll
4%
Точно буду
5%
Скорее всего, буду
5%
Скорее всего, не буду
87%
Точно не буду
😁12🤮4🖕4🍌2
#prog #rust #article
Faster Rust Toolchains for Android
TL;DR: табличка сверху.
Статья о версиях компилятора Rust, используемые в Google для сборки rust-компонентов Android. Ввиду масштабов количества билдов Android, даже относительно небольшие ускорения компилятора выливаются в конкретно сэкономленное время:
For every 50k Android builds per day run in our CI infrastructure we save ~10K hours of serial execution.
Monolithic обозначает использование
Как видно, наибольшую маргинальную выгоду принесла PGO, однако автор статьи предостерегает, что тулчейн заточен под нужды Android и на других кодовых базах изменения в производительности могут отличаться. Вдобавок, это результат от суммы четырёх разных профилей.
Faster Rust Toolchains for Android
TL;DR: табличка сверху.
Статья о версиях компилятора Rust, используемые в Google для сборки rust-компонентов Android. Ввиду масштабов количества билдов Android, даже относительно небольшие ускорения компилятора выливаются в конкретно сэкономленное время:
For every 50k Android builds per day run in our CI infrastructure we save ~10K hours of serial execution.
Monolithic обозначает использование
-C codegen-units=1
.Как видно, наибольшую маргинальную выгоду принесла PGO, однако автор статьи предостерегает, что тулчейн заточен под нужды Android и на других кодовых базах изменения в производительности могут отличаться. Вдобавок, это результат от суммы четырёх разных профилей.
👍7
#prog #python #article #suckassstory
node.example.com Is An IP Address
Или про проблему с tipchikami в Python2
node.example.com Is An IP Address
Или про проблему с tipchikami в Python2
tuckersiemens.com
node.example.com Is An IP Address
node.example.com is an IP address.
🍌3🤯2
#itsec #article
CVE-2013-4576 — это уязвимость в GPG, вызванная подверженности side channel атакам. Конкретно в данном случае источником утечки информации является шум, производимый компьютером во время расшифровки текста.
Исследователи, обнаружившие уязвимость, подробно описали её в RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis (pdf). Скорость утечки информации не слишком высока, но всё же позволяет за час при помощи атаки специально подобранными шифрованными текстами восстановить 4096-битный RSA-ключ. Даже без проведения подобной атаки спектры шумов, производимых при расшифровке, достаточно специфичны, чтобы отличить применение одного ключа от другого. Не смотря на то, что процессоры работают на частоте порядка гигагерц, для проведения атаки достаточно микрофонов с чувствительностью в килогерцовом диапазоне — более того, исследователи продемонстрировали, что с расстояния в 30 сантиметров атаку можно провести даже при помощи микрофона телефона.
CVE-2013-4576 — это уязвимость в GPG, вызванная подверженности side channel атакам. Конкретно в данном случае источником утечки информации является шум, производимый компьютером во время расшифровки текста.
Исследователи, обнаружившие уязвимость, подробно описали её в RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis (pdf). Скорость утечки информации не слишком высока, но всё же позволяет за час при помощи атаки специально подобранными шифрованными текстами восстановить 4096-битный RSA-ключ. Даже без проведения подобной атаки спектры шумов, производимых при расшифровке, достаточно специфичны, чтобы отличить применение одного ключа от другого. Не смотря на то, что процессоры работают на частоте порядка гигагерц, для проведения атаки достаточно микрофонов с чувствительностью в килогерцовом диапазоне — более того, исследователи продемонстрировали, что с расстояния в 30 сантиметров атаку можно провести даже при помощи микрофона телефона.
cve.mitre.org
CVE -
CVE-2013-4576
CVE-2013-4576
The mission of the CVE® Program is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities.
🔥15🤔4🤯3
Блог*
#itsec #article CVE-2013-4576 — это уязвимость в GPG, вызванная подверженности side channel атакам. Конкретно в данном случае источником утечки информации является шум, производимый компьютером во время расшифровки текста. Исследователи, обнаружившие уязвимость…
А ещё у исследователей есть чувство юмора
😁28