Блог* – Telegram
1.9K subscribers
3.46K photos
135 videos
15 files
3.69K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Там @tech_b0lt_Genona проводит раздачу билетов на RustCon и Kuber Conf
🔥3🤮21👍1
#prog #rust #article

Rust in Android: move fast and fix things

The 2025 data continues to validate the approach, with memory safety vulnerabilities falling below 20% of total vulnerabilities for the first time.

We adopted Rust for its security and are seeing a 1000x reduction in memory safety vulnerability density compared to Android’s C and C++ code. But the biggest surprise was Rust's impact on software delivery. With Rust changes having a 4x lower rollback rate and spending 25% less time in code review, the safer path is now also the faster one.


We'll analyze a near-miss memory safety bug in unsafe Rust: how it happened, how it was mitigated, and steps we're taking to prevent recurrence. It’s also a good chance to answer the question “if Rust can have memory safety issues, why bother at all?”
👍5
😁13💔8
Блог* pinned a photo
Блог*
Как ни странно, больше всего проблем принёс сам факт инкремента версии...
#prog #article

Ваши тесты упали по причине JavaScript

TL;DR: в коде для UI-тестирования был if по версии VS Code, который сравнивал версию (заданную строкой) с литералом "1.44.0", и лексикографическое сравнение строк перестало быть корректным в данном случае, когда минорная версия VS Code перевалила за сотню и стала умещаться в три символа, а не два.
🤩132
facts #mental
👍21🤯4🌚3
Hollow knight переоценён
👍17👎16🤡13💩4😁2🤯2
#prog #go #article

The Green Tea Garbage Collector

Статья о дизайне нового сборщика мусора для Go, который идейно является всё тем же mark and sweep, но сканирует память страницами вместо того, чтобы отслеживать в очереди каждую индивидуальную аллокацию.

Разумеется, выигрыш по производительности сильно зависит от формы графа объектов (и в некоторых случаях может быть хуже предыдущего), но на практике даже сканирование страниц памяти по 2 процента за раз уже даёт выигрыш.
👍8🤡3
> I just wanted to give an update on this issue since I was the one who originally reported it. My child, who was not yet born when this issue was first reported, will be starting school soon. Here they are with their new backpack:

https://github.com/grafana/loki/issues/3045#issuecomment-3065556715
😁171
Forwarded from sanspie shi:3
Выбери себе работу по душе, и тебе придется работать
😭14🤡3💯3😁1🤝1
Ко мне только что подошла маленькая (на вид самое большее 4 года) девочка, похлопала по плечу, а когда я повернулся в её сторону, она сложила руки в виде сердечка
20🥴2🌚2
Forwarded from Random Rust Dev
Сегодня на ДнД игроки очень дивились, что я трекаю урон и инициативу в vscode.

Два игрока с первого взгляда узнали vscode.

Так я узнал, что у меня два разработчика играют.

А еще - что разработчики автотестов и фронтендов даже не знают, что такое hlsl.
❤‍🔥2🤮2🤡2💩1🌚1
Forwarded from partially unsupervised
Чистил канпюктер от старья и внезапно обнаружил, что за последний год перестал использовать в разработке четыре столпа, которые казались незыблемыми последние лет десять: iTerm, Pycharm, Pyenv, Docker Desktop.

iTerm и Pycharm продолжали обрастать фичами, которые мне ни к чему. Фичи бесплатными не бывают: у iterm в 2024 всплыла неприятная уязвимость, Pycharm продолжал слегка тормозить даже на свежем железе (возможно, я просто не знаю все флаги, как дать ему еще больше памяти). Так я перешел на более легкие альтернативы - Wezterm и Zed.

Pyenv когда-то был отличным способом управлять зоопарком питонов и вместе с poetry делал управление зависимостями терпимым. Но uv разрубил этот узел, оно просто работает. Лучшее, что случилось с Python экосистемой, не считая maturin.

Про избавление от Docker Desktop мне пришлось подумать на работе, потому что в Большой Корпорации для него нужна отдельная лицензия, которая положена не всем. Мне таки положена, но дать продакту демку стало сложнее. Так я познакомился с colima, перешел на нее (все еще с docker runtime / docker cli, которые не требуют коммерческой лицензии) на рабочей тачке, а заодно и на своей, совершенно этого не заметив. Впрочем, чистым докером я тоже пользуюсь все меньше, потому что меня покусал Dagger.
🤔3
#prog #rust #rustlib

TIL что в bindgen есть возможность прицепить коллбеки, которые будут вызываться для определений, обрабатываемых во время генерации биндингов, и что есть уже готовый CargoCallbacks, который печатает

cargo:rerun-if-changed...

для каждого обрабатываемого файла и каждой явно заданной переменной окружения.
🤔2
начинайте утро правильно #vercheniye_advice #mental
🙏13😁3🤔1
#prog #rust #python

Pre-PEP: Rust for CPython

In summary, Rust provides many extremely useful benefits that would improve CPython development. Increasing memory safety would be a significant improvement in of itself, but it is far from the only benefit Rust provides.
Историческое событие.

Отдельно отмечается, что компилятор Rust в настоящее время поддерживает все платформы, официально поддерживаемые CPython.
🔥14🤡2
Forwarded from Panic! At the 0xC0D3 (Lev)
Зачем вам типы если вы их игнорируете
Я устал поэтому просто побугурчу
Сколько ворнингов/ошибок должна выдать такой код?
constexpr std::array<int64_t, 3> a{1, 2};
std::cout << a[3];

Тут будет 0 ошибок и ворнингов с -Wall -Wextra -Wpedantic
А если так?
constexpr int64_t a[3] = {1, 2};
std::cout << a[3];

Тут компилятор догадается, что a[3] это какая-то лажа, но вот что ты массив из 3х элементов двумя инициализируешь ему норм
ууу сссука У вас вся информация в системе типов есть, почему нельзя быть как раст:
(у раста при этом эти переменные не constexpr даже!)
let a: [u32; 3] = [1, 2];
dbg!(a[3]);


error[E0308]: mismatched types
--> <source>:2:23
|
2 | let a: [u32; 3] = [1, 2];
| -------- ^^^^^^ expected an array with a size of 3, found one with a size of 2
| | |
| | help: consider specifying the actual array length: 2
| expected due to this
error: this operation will panic at runtime
--> <source>:3:10
|
3 | dbg!(a[3]);
| ^^^^ index out of bounds: the length is 3 but the index is 3
|
= note: #[deny(unconditional_panic)] on by default


Ну даже если причины это легаси, почему ворнинг то показать нельзя аааа

Че бугуртить то

Для меня главный юзкейс типов это то, что код легко рефакторить. Ты чето поменял, у тебя компиляция упала везде где сломалось
А тут мы видим, что если у тебя был код вида
constexpr std::array<int64_t, SOME_CONST> a{1, 2};

И ты поменял константу на +1, то плюсы сожрут и ничего не скажут.
👍20😁2🌚2