1.83K subscribers
3.24K photos
127 videos
15 files
3.52K links
Блог со звёздочкой.

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

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
#prog #abnormalprogramming

Я же говорил, что YAML — то ещё говнецо
#prog #rust

На всякий случай, Vec::dedup_by принимает в качестве аргумента функцию от двух &mut T, где левый аргумент — это элемент, который находится правее, а правый аргумент — это аргумент, который находится левее (если считать, что элементы в векторе расположены слева направо). Да, это написано в документации, но кто ж её читает...
#prog #rust

Вы ведь, наверное, слышали про макросы file!, line! и column!, которые разворачиваются в имя файла, строку и колонку места в файле в месте, где они были раскрыты? Это — "магические" макросы, встроенные в компилятор, вы такие написать сами не можете... Точнее, не могли до версии Rust 1.46.

Что поменялось в этой версии? В этой версии появился атрибут #[track_caller] (кстати, когда его только предлагали, он назывался blame_caller), который позволяет функции узнать информацию о месте, в котором она была вызвана (ну, почти: месте вызова выше по стеку в первой функции в стеке без этого атрибута). Эта информация предоставляется при помощи магического конструктора std::panic::Location::caller, который возвращает &'static Location<'static>, и, как показывает пример из документации к конструктору, у Location есть геттеры, покрывающие функционал вышеуказанных макросов. Таким образом, ничто не мешает написать свой, скажем, line!, который будет разворачиваться в ::core::panic::Location::caller().line().
Хозяйке на заметку

Опытные программисты на Rust знают, что есть реализация impl<A, E, V: FromIterator<A>> FromIterator<Result<A, E>> for Result<V, E>, которая позволяет при помощи .collect() собирать итератор результатов в результат с коллекцией или с первой ошибкой. Почему-то несколько менее известен тот факт, что для Option есть аналогичный impl со схожей семантикой.
Forwarded from Красные пики (Serge Abdulmanov)
Вот эта шайтан-штука — на самом деле церковный сейф времён чуть позже, чем в Эквадор пришли испанцы. Сделан из дерева и черепахового панциря (то есть прочный и тяжёлый). Снаружи выглядит как секретер, который нереально поднять и утащить. Но у него есть много секретных отделений: например, сбоку есть узор, который на самом деле не узор, а ящики. Ещё ящики могут быть внутри других ящиков. Комбинация, что характерно, вводится не чем-то отдельным, а самими ящиками секретера: нужно знать, какие из них открыть в совокупности, чтобы получить нужный секретный.

Простите за качество фото, дело в том, что там нельзя было снимать. Ну вот совсем нельзя.
Канал советую, его ведёт @milfgard, у которого талант писать интересно
Forwarded from Generative Anton
Во-первых, это красиво.
Во-вторых, если можно, то почему бы и нет?

Дэвид Тайлер из Майкрософта написал эмулятор 8080, но все как модно в 2021ом: облачно, c k8s и прочим мракобесием. Например, для каждого opcode’a написаны отдельные микросервисы на разных языках 👀
К сожалению, идиома "не видно ни зги" широко используется неправильно, с опечаткой и одним словом не в той раскладке. На самом деле она должна читаться как "не видно, не pub".
#gamedev

К сожалению, пока даты выхода нету вообще
Forwarded from Backtracking (Дима Веснин)
This media is not supported in your browser
VIEW IN TELEGRAM
какая трогательная идея игры! тут нужно передвигаться по городу прыгая из тени в тень. как в играх, в которые придумываешь со скуки смотря в окно автобуса 💜
#prog #rust #rustlib

Недавно в чате для растоновичков посоветовали diffus — библиотеку для описания разницы между произвольными типами данных.
Achievement get: зайти в магазин эзотерических приблуд и своими серьёзными расспросами довести продавца до просьбы покинуть помещение.
#prog #go #meme

Извините, проорал
This media is not supported in your browser
VIEW IN TELEGRAM
Initial states:
m: 2.550 x: -7.506 y: -4.280 vx: 0.104 vy: 0.494
m: 3.132 x: 5.132 y: 4.759 vx: -0.165 vy: 0.039
m: 7.640 x: 5.282 y: -1.253 vx: -0.025 vy: -0.071
Interest-ness score: 71