Forwarded from Технологический Болт Генона
This media is not supported in your browser
VIEW IN TELEGRAM
Красивое
Tunneling Internet traffic over Whatsapp
https://github.com/aleixrodriala/wa-tunnel
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
👍5😁3❤2
Forwarded from /17 --verbose --public --35
Мало кто знает, но девушки которые в приложениях знакомств спрашивают у парней их рост, просто боятся случайно прийти на свидание к Путину или Медведеву
❤8😁6👍2👎1
#prog #rust
Search-based code navigation for Rust projects
Github code navigation теперь и для Rust! Правда, переходов к определению для типов пока нету.
Search-based code navigation for Rust projects
Github code navigation теперь и для Rust! Правда, переходов к определению для типов пока нету.
🔥6🎉2
#prog
What is the ideal growth rate for a dynamically allocated array?
Все ответы заслуживают внимания, но в особенности этот.
What is the ideal growth rate for a dynamically allocated array?
Все ответы заслуживают внимания, но в особенности этот.
Stack Overflow
What is the ideal growth rate for a dynamically allocated array?
C++ has std::vector and Java has ArrayList, and many other languages have their own form of dynamically allocated array. When a dynamic array runs out of space, it gets reallocated into a larger ar...
#prog #rust #rustlib
enum_delegate — библиотека для реализации трейта для enum в терминах реализаций трейта для его вариантов. Позволяет легко свести динамический полиморфизм к статическому, когда набор типов, реализующих трейт, ограничен и известен наперёд.
Comparison with enum_dispatch
🟡 Performance: the same. This is expected, since they generate very similar code. (See
✅ Works across crates. Due to technical limitations of how
✅ Better errors. Again due to technical limitations, in some cases
✅ Associated types.
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.)❤7👍1
#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 (для символьного исполнения) — всё с унифицированным интерфейсом.
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 (для символьного исполнения) — всё с унифицированным интерфейсом.
Kani Rust Verifier Blog
From Fuzzing to Proof: Using Kani with the Bolero Property-Testing Framework
Today we’re going to talk about how you can use fuzzing and verification in a unified framework, which is enabled by the integration of the Kani Rust Verifier in Bolero. Bolero is a property-testing framework that makes it easy for users to test a piece of…
❤3👍1🤔1
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.
...
Your choice is made. As the righteous hand of The Father I shall rend you apart. And you will become inanimate once more.
👍5👎3😐2
Forwarded from Denis Sexy IT 🤖
This media is not supported in your browser
VIEW IN TELEGRAM
Нашел самый полезный сайт в интернете – https://purrli.com/play.php
Он просто делает пур пур пурр, и будто у вас котик💻
Он просто делает пур пур пурр, и будто у вас котик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
Попробуй просто сменить формулировку! 🐼
Почувствуешь смену отношения самого к себе и другую, более положительную, реакцию людей вокруг 🤍
🖌️: comicsguys
#Поддержка
#МентальноеЗдоровье
Почувствуешь смену отношения самого к себе и другую, более положительную, реакцию людей вокруг 🤍
🖌️: comicsguys
#Поддержка
#МентальноеЗдоровье
👍7🤩4👎2
#prog #ml
Про применение машинного обучения в системе рекомендаций TikTok.
t.iss.one/cryptovalerii/341
(thanks @j_links)
Про применение машинного обучения в системе рекомендаций TikTok.
t.iss.one/cryptovalerii/341
(thanks @j_links)
Telegram
Время Валеры
Ходят слухи что у тик тока хорошие рекомендации контента.
Прочитал статью от пацанов из tik-tok Monolith: Real Time Recommendation System WithCollisionless Embedding Table. Как мы знаем, прочитать статью - задача посильная не каждому директору
Решают две…
Прочитал статью от пацанов из tik-tok Monolith: Real Time Recommendation System WithCollisionless Embedding Table. Как мы знаем, прочитать статью - задача посильная не каждому директору
Решают две…
#prog #go #article
Making a Go program 42% faster with a one character change
TL;DR: неявное глубокое копирование в горячем цикле, приводящее к утеканию значения в кучу.
(thanks @go_perf)
Making a Go program 42% faster with a one character change
TL;DR: неявное глубокое копирование в горячем цикле, приводящее к утеканию значения в кучу.
(thanks @go_perf)
Hmarr
Making a Go program run 1.7x faster with a one character change • Harry Marr
Harry Marr — Member of Technical Staff at Anthropic. Co-founded Dependabot, previously at GitHub, Monzo, and GoCardless.
#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!
В стандартной библиотеке 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!
doc.rust-lang.org
std::sync::mpsc - Rust
Multi-producer, single-consumer FIFO queue communication primitives.
🔥12👍3🤔1