#prog #art
Наткнулся на страницу codegolf.stackexchange.com, на которой участникам предложили сгенерировать изображения, содержащее каждый из цветов RGB по одному на пиксель. Результаты выглядят просто восхитительно.
https://codegolf.stackexchange.com/questions/22144/images-with-all-colors
Наткнулся на страницу codegolf.stackexchange.com, на которой участникам предложили сгенерировать изображения, содержащее каждый из цветов RGB по одному на пиксель. Результаты выглядят просто восхитительно.
https://codegolf.stackexchange.com/questions/22144/images-with-all-colors
Code Golf Stack Exchange
Images with all colors
Similar to the images on allrgb.com, make images where each pixel is a unique color (no color is used twice and no color is missing).
Give a program that generates such an image, along with a scre...
Give a program that generates such an image, along with a scre...
Вариант, набравший наибольшее число голосов (советую всё же пройти по ссылке и заценить оригинал, потому что телега шакалит картинки).
Делаю работу за @optozorax_dev, так сказать.
Делаю работу за @optozorax_dev, так сказать.
#prog #prog #amazingopensource
Трассировщик лучей, работающий полностью на этапе компиляции.
github.com/darksv/ctrt
Трассировщик лучей, работающий полностью на этапе компиляции.
github.com/darksv/ctrt
GitHub
GitHub - darksv/ctrt: Compile-Time Ray Tracer in Rust ported from C++
Compile-Time Ray Tracer in Rust ported from C++. Contribute to darksv/ctrt development by creating an account on GitHub.
#prog #web
Если вы когда-нибудь хотели искать по страницам в интернете не как по семантическим документам, а как по тупым текстовым файлам, чтобы найти что-то интересное в файлах JS и CSS — к вашим услугам есть этот сайт.
publicwww.com
Если вы когда-нибудь хотели искать по страницам в интернете не как по семантическим документам, а как по тупым текстовым файлам, чтобы найти что-то интересное в файлах JS и CSS — к вашим услугам есть этот сайт.
publicwww.com
Блог*
#prog #web Если вы когда-нибудь хотели искать по страницам в интернете не как по семантическим документам, а как по тупым текстовым файлам, чтобы найти что-то интересное в файлах JS и CSS — к вашим услугам есть этот сайт. publicwww.com
Один из их примеров: web-разработчики, которые не любят IE
Publicwww
PublicWWW - PublicWWW.com
Search engine for source code - ultimate solution for digital marketing and affiliate marketing research.
#prog #cpp #article
Доказательство того, что грамматика C++ неразрешима. В этот раз — полное, не подразумевающее наличие уже готовой машины Тьюринга на шаблонах.
medium.com/@mujjingun_23509/full-proof-that-c-grammar-is-undecidable-34e22dd8b664
Доказательство того, что грамматика C++ неразрешима. В этот раз — полное, не подразумевающее наличие уже готовой машины Тьюринга на шаблонах.
medium.com/@mujjingun_23509/full-proof-that-c-grammar-is-undecidable-34e22dd8b664
Forwarded from Dr. Friedrich von Never
Сегодня мне приснилось, как я дебажу кота. Он почему-то завис на инициализации, и мне пришлось разбираться, в чём проблема. Оказалось — дедлок где-то в конфигурации DI-контейнера. Зачем в коте был DI-контейнер — блин, не знаю. Но кот был на сишарпе написан!
Блог*
#prog #quotes Очередной пример того, что программирование необратимо калечит ум
Я понял, что я слишком программист, когда слегка завис на пункте в контекстном меню Яндекс.Браузера "Копировать адрес ссылки"
#prog #article
И, раз уж пошло такое дело, #blogrecommendation, у автора талант находить интересные вещи.
И, раз уж пошло такое дело, #blogrecommendation, у автора талант находить интересные вещи.
Forwarded from Generative Anton
Очень забавная история про ботнет Cereals, который ломал NAS и NVR D-Link.
Сейчас он уже почти прекратил своё существование, но интересна основная цель этого ботнета. Он не занимался DDOS'ом, кражей пользовательских данных или чем-то ещё. Он просто и методично скачивал аниме на dedicated-сервера.
— Какова моя цель, создатель? Украсть ключи от ядерного оружия? Взломать банковские счета или крипто-биржи?
— Нууууу, как тебе сказать...
Сейчас он уже почти прекратил своё существование, но интересна основная цель этого ботнета. Он не занимался DDOS'ом, кражей пользовательских данных или чем-то ещё. Он просто и методично скачивал аниме на dedicated-сервера.
— Какова моя цель, создатель? Украсть ключи от ядерного оружия? Взломать банковские счета или крипто-биржи?
— Нууууу, как тебе сказать...
Forcepoint
The Cereals Story - Creating a Botnet During Breakfast
We are proud to provide all the details what we’ve been asked for since presenting our research last December at Botconf 2019. If you own a D-Link NAS or NVR device, care about network security or just being interested in exotic IoT botnets; this one is for…
Generative Anton
Очень забавная история про ботнет Cereals, который ломал NAS и NVR D-Link. Сейчас он уже почти прекратил своё существование, но интересна основная цель этого ботнета. Он не занимался DDOS'ом, кражей пользовательских данных или чем-то ещё. Он просто и методично…
This media is not supported in your browser
VIEW IN TELEGRAM
Как совершенно верно заметил @optozorax, на канале 100π подписчиков. Тоже в каком-то смысле круглое число
#prog #rust
Хозяйке на заметку
Если вы когда-нибудь писали на Rust какую-нибудь рекурсивную структуру, то у вас там наверняка было поле вроде
Хозяйке на заметку
Если вы когда-нибудь писали на Rust какую-нибудь рекурсивную структуру, то у вас там наверняка было поле вроде
Option<Box<Self>>
или Option<Rc<Self>>
. Для обхода подобной структуры требуется получить ссылку из поля такого типа. В принципе, можно писать что-то вродеif let Some(relative) = &self.relative {, но если по каким-то причинам требуется
// здесь можно работать с relative как с &Self благодаря deref coercion
}
Option<&Self>
, то это уже не сработает из-за несовпадения типов. Приведение типов в подобной ситуации выглядит как field.as_ref().map(<_>::deref)
, или того хуже, field.as_ref().map(|x| &**x)
. Как я недавно с некоторым удивлением для себя обнаружил, это достаточно распространённый паттерн, чтобы для него были отдельные методы: Option::as_deref и Option::as_deref_mut. Что они делают — очевидно по типам:fn as_deref(&self) -> Option<&<T as Deref>::Target>;Есть резон не использовать эти методы? Если у вас стоит задача поддерживать старые версии rustc, то да, есть: эти методы были добавлены в Rust 1.40.0 (видимо, по этой причине я раньше про них и не знал). Конечно, ничто не мешает написать extension trait для добавления этих методов, только имейте в виду: если одно и то же выражение может быть как вызовом собственного метода типа, так и вызовом метода трейта, то предпочтение всегда отдаётся собственному методу типа.
fn as_deref_mut(&mut self) -> Option<&mut <T as Deref>::Target>;
doc.rust-lang.org
Option in std::option - Rust
The `Option` type. See the module level documentation for more.