Media is too big
VIEW IN TELEGRAM
Собрал быстренько на коленке такой вот виджет-тостер для отображения нотификаций.
🔥3❤1
В jkl уже сгромаздилось столько кода.
Кроме алгоритмов непосредственно для картинок, таких как алгоритмы блок-компрессии, обходы зигзагом, фильтры и конверторы разных цветовых схем.
Там образовались:
Векторы (те что из линала)
Враппер для
Variable-length encoding для целочисленных. Три вида.
Алгоритмы компрессии общего назначения.
С трудом удерживаюсь что бы не вытащить всё по отдельным крейтам. У меня их и так слишком много 🫣
А начиналось то просто "ну чего тащить целый линал, если мне только Vec3 нужен..."
БАЦ! 2923 строки с кодом одних только векторов.
Или "хочу жать не байты, а значения"
БАЦ! lz77.rs, lz78.rs, lzw.rs, rle.rs, ans.rs
Или вот "в этом векторе чиселки то не такие уж огромные будут"
БАЦ! vle.rs, bits.rs
Остановите меня!
Кроме алгоритмов непосредственно для картинок, таких как алгоритмы блок-компрессии, обходы зигзагом, фильтры и конверторы разных цветовых схем.
Там образовались:
Векторы (те что из линала)
Враппер для
io::Write, для записи бит, а не байт. Ну и враппер для io::Read, что бы эти биты читать.Variable-length encoding для целочисленных. Три вида.
Алгоритмы компрессии общего назначения.
С трудом удерживаюсь что бы не вытащить всё по отдельным крейтам. У меня их и так слишком много 🫣
А начиналось то просто "ну чего тащить целый линал, если мне только Vec3 нужен..."
БАЦ! 2923 строки с кодом одних только векторов.
Или "хочу жать не байты, а значения"
БАЦ! lz77.rs, lz78.rs, lzw.rs, rle.rs, ans.rs
Или вот "в этом векторе чиселки то не такие уж огромные будут"
БАЦ! vle.rs, bits.rs
Остановите меня!
🔥10❤2
Писал длинный пост со своим затыком.
Предугадывал ваши вопросы и отвечал на них.
Пока отвечал, нашел решение.
Всем спасибо.
Предугадывал ваши вопросы и отвечал на них.
Пока отвечал, нашел решение.
Всем спасибо.
🔥16❤5👍2😁1
Придумал забавный способ передать список из разных типов в функцию.
При этом трейт должен быть конкретный, для задачи, что бы в
В чем тут прикол, ведь так список как бы бесконечный получается, раз
В том то и дело, что с точки зрения типов - да, бесконечный.
Только в конце списка
Сам
То есть это бесконечный список типов, бесконечный хвост которого - пустота.
А
Функция, в которую передали такой список может продолжать делать
Ограничение этой конструкции в том, что функция не может делать
Ссылка на playground с демонстрацией идеи
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=82105fbaa8d370dec34f00a5900793df
trait List {
type Head;
type Tail: List;
fn split(self) -> (Self::Head, Option<Self::Tail>);
}При этом трейт должен быть конкретный, для задачи, что бы в
Head добавить нужный баунд.В чем тут прикол, ведь так список как бы бесконечный получается, раз
Head всегда есть?В том то и дело, что с точки зрения типов - да, бесконечный.
Только в конце списка
Tail = Void, а у Void уже оба Head = Void и Tail = Void.Сам
Void это очевидно enum Void {}, который реализует любые нужный трейты.То есть это бесконечный список типов, бесконечный хвост которого - пустота.
А
List::split просто вернет None хвост в "рантайме".Функция, в которую передали такой список может продолжать делать
split, пока хвост - Some(tail).Ограничение этой конструкции в том, что функция не может делать
split в цикле, там же разные типы. Так что она либо делает это рекурсивно, либо фиксированное максимальное количество раз в теле.Ссылка на playground с демонстрацией идеи
https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=82105fbaa8d370dec34f00a5900793df
play.rust-lang.org
Rust Playground
A browser interface to the Rust compiler to experiment with the language
Вопросы, которыми я никогда раньше не задавался, но вот случилось:
Как упорядочит 3д вектора так, что бы разница между соседними элементами имела наименьшую энтропию?
Как упорядочит 3д вектора так, что бы разница между соседними элементами имела наименьшую энтропию?
В новой квартире в люстре спальни обнаружилась встроенная блютусная колонка.
Нашёл, случайно подключившись, а она пиликнула.
Вопрос: ЗАЧЕМ?
Нашёл, случайно подключившись, а она пиликнула.
Вопрос: ЗАЧЕМ?
😁14
Я попросил ИИ реализовать алгоритм для задачи, для которой брут-форс имеет сложность O(N!), но точно даёт оптимальный результат.
ИИ превзошел все мои ожидания и сделал алгоритм сложностью O( (N^2)! )
ИИ превзошел все мои ожидания и сделал алгоритм сложностью O( (N^2)! )
😁22🔥6❤3🤮1
Читал про японские числительные.
Там нашлась забавная сноска по произношению
Там нашлась забавная сноска по произношению
"Хяку" превращается в "Бяку" из-за рэндаку
😁12