Блог*
Kanalga Telegram’da o‘tish
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
Ko'proq ko'rsatish1 927
Obunachilar
Ma'lumot yo'q24 soatlar
+27 kunlar
+130 kunlar
Postlar arxiv
1 927
#prog #rust
В стандартной библиотеке Rust есть модуль sync::mpsc, который содержит реализацию однонаправленного multiple producer single consumer канала. Если открыть документацию метода принимающей половины канала, Receiver::recv_timout, то можно увидеть раздел "Known issues" про возможность неожиданной при вызове метода, вкупе с кодом для надёжного воспроизведения этой проблемы. И сама документация, и сообщение при панике отсылают на соответствующее issue в репозитории Rust, которому, на минуточку, 5 лет.
Так как тулинг Rust позволяет легко задействовать сторонние зависимости, те, для кого эта проблема была важна, использовали сторонние реализации каналов. Стандартом де-факто стала библиотека crossbeam-channel. После того, как она получила широкое распространение, пошли разговоры о том, чтобы включить реализацию в std — и прецедент для такого уже был с заменой доморощенной реализации HashMap на реализацию из hashbrown. В феврале этого года такой MR был открыт — правда, реализация в силу различных причин была несколько видоизменена — и вот совсем недавно был влит!
Но это ещё не всё. Помимо фикса этого старого бага, crossbeam-channel также в некоторых аспектах превосходил реализацию в std. Главное — то, что, в отличие от варианта из std, это multiple producer multiple consumer канал. А это значит, что в ближайшем будущем mpmc-канал наверняка будет и в std!
1 927
#prog #go #article
Making a Go program 42% faster with a one character change
TL;DR: неявное глубокое копирование в горячем цикле, приводящее к утеканию значения в кучу.
1 927
#prog #ml
Про применение машинного обучения в системе рекомендаций TikTok.
t.me/cryptovalerii/341
(thanks @j_links)
1 927
Попробуй просто сменить формулировку! 🐼
Почувствуешь смену отношения самого к себе и другую, более положительную, реакцию людей вокруг 🤍
🖌️: comicsguys
#Поддержка
#МентальноеЗдоровье
1 927
Machine, turn back now. The layers of this palace are not for your kind. Turn back, or you Will be crossing the will of God.
...
Your choice is made. As the righteous hand of The Father I shall rend you apart. And you will become inanimate once more.
1 927
#prog #rust #rustlib #article #amazingopensource
From Fuzzing to Proof: Using Kani with the Bolero Property-Testing Framework
bolero — fuzz and property testing front-end for Rust. Поддерживает несколько движков для прогона тестов: rand (да, это можно считать слабой формой фаззинга), hongfuzz, libfuzzer, AFL и kani (для символьного исполнения) — всё с унифицированным интерфейсом.
1 927
#prog #rust #rustlib
enum_delegate — библиотека для реализации трейта для enum в терминах реализаций трейта для его вариантов. Позволяет легко свести динамический полиморфизм к статическому, когда набор типов, реализующих трейт, ограничен и известен наперёд.
#[enum_delegate::register]
trait SayHello {
fn say_hello(&self, name: &str) -> String;
}
struct Arthur;
impl SayHello for Arthur {...}
struct Pablo;
impl SayHello for Pablo {...}
#[enum_delegate::implement(SayHello)]
enum People {
Arthur(Arthur),
Pablo(Pablo),
}
/* разворачивается во что-то вроде:
impl SayHello for People {
fn say_hello(&self, name: &str) {
match self {
Self::Arthur(x) => x.say_hello(name),
Self::Pablo(x) => x.say_hello(name),
}
}
}
а также
impl From<Arthur> for People { ... }
impl TryFrom<People> for Arthur { ... }
*/
Вы, вероятно, спросите, а зачем это, когда есть enum_dispatch. Как пишет автор:
Comparison with enum_dispatch
🟡 Performance: the same. This is expected, since they generate very similar code. (See benchmarks in the repo.)
✅ Works across crates. Due to technical limitations of how enum_dispatch is implemented, it can only be used if both the trait and enum are in the same crate. enum_delegate, however, allows you to put them in separate crates. (See cross_crate_example in the repo.)
✅ Better errors. Again due to technical limitations, in some cases enum_dispatch will quietly fail. With enum_delegate, your code will either succeed, or fail to compile. Admittedly, some of the error messages are not perfect, but at least you'll know something's up. (See tests_error in the repo.)
✅ Associated types. enum_delegate has some support for associated types, but enum_dispatch doesn't. (See examples in the repo.)1 927
#prog
What is the ideal growth rate for a dynamically allocated array?
Все ответы заслуживают внимания, но в особенности этот.
1 927
#prog #rust
Search-based code navigation for Rust projects
Github code navigation теперь и для Rust! Правда, переходов к определению для типов пока нету.
1 927
Repost from N/a
Мало кто знает, но девушки которые в приложениях знакомств спрашивают у парней их рост, просто боятся случайно прийти на свидание к Путину или Медведеву
1 927
Repost from Технологический Болт Генона
Красивое
Why? While travelling through South America network data on carriers is usually restricted to not many GBs but WhatsApp is usually unlimited, I tried to create this library since I didn't find any usable at the date.Tunneling Internet traffic over Whatsapp https://github.com/aleixrodriala/wa-tunnel
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
