fa
Feedback
Блог*

Блог*

رفتن به کانال در Telegram

Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here

نمایش بیشتر
1 949
مشترکین
+124 ساعت
+237 روز
+2430 روز
آرشیو پست ها
как-то так?
как-то так?

А в программу RustCon проходит ... Вафель! Вот что он сам пишет про свою тему "Неочевидные прелести Rust": В Rust много неоче
А в программу RustCon проходит ... Вафель! Вот что он сам пишет про свою тему "Неочевидные прелести Rust": В Rust много неочевидных, но очень приятных фич, особенностей, функций. Я спросил у людей, что их приятно удивило при изучении раста и собрал все ответы в один список. Теперь я хочу рассказать об этих прелестях, чтобы как можно больше разработчиков о них знали и могли ими пользоваться :) Несколько примеров пунктов из списка: 👉 Result: FromIterator (.collect:<Result<_, _>>()) 👉 Возможность использования паттернов везде (например в аргументах функций, let) 👉 Создание массивов через [CONST; N] для T: !Copy Тезисы других докладов смотрите на сайте Билеты там же😉

Уруру, поздравляю Вафеля

никто: абсолютно никто: Илья: порталы порталы порталы порталы (и мы его за это и не только любим, это добрый мем)

В США FAANG, а в России ВСРАТОСЛАВ: ВК + Сбербанк + Рамблер + Акронис + Тиньков + Озон + Суперджоб + Ланит + Авито + ВТБ

photo content

#prog #meme

photo content

#prog #meme из самой жизни

Кстати, в #rust стабилизировали паники в const-контекстах! 🎉 Будем ждать, когда докатится до стейбла. UPD: unreachable_unchecked тоже.

#prog #article Статья, в которой автор пытается разобраться, почему на интервью до сих пор спрашивают вопросы про связные списки. TL;DR: ракеты_и_лошадиные_задницы.txt.

#prog #article Статья о распространённых ошибках при работе с POSIX-сигналами

Юные японцы не знают, что такое «дискета». Юные россияне тоже, наверное, не в курсе, но в завирусившемся твите интересно друг
Юные японцы не знают, что такое «дискета». Юные россияне тоже, наверное, не в курсе, но в завирусившемся твите интересно другое - что люди видят вместо дискеты. Образ автомата с напитками накрепко вшит в голову каждого японца - хоть молодого, хоть пожилого. Туристы, побывавшие в стране, тоже понимают, о чем речь и не могут теперь развидеть на иконке автомат. Он настоящий символ страны, не хуже сакуры или суши.

photo content

#prog #rust #meme

#prog #rust #article Статья про фреймворк для тестирования программ на Rust при помощи генерации случайных программ и их исполнения при помощи miri. За счёт применяемых методик позволяет генерировать программы, которые тайпчекаются по построению. Несмотря на пачку ограничений, авторы сумели найти несколько багов в существующих библиотеках. "The goal of this paper is to develop a methodology for automatically generating Rust programs to effectively test Rust library APIs. The main challenge is to synthesize well-typed Rust programs to account for proper chaining of API calls and Rust’s ownership type system and polymorphic types. We develop a program synthesis technique for Rust library API testing, which relies on a novel logical encoding of typing constraints from Rust’s ownership type system. We implement SyRust, a testing framework for Rust libraries that automatically synthesizes semantically valid test cases. Our experiments on 30 popular open-source Rust libraries found 4 new bugs."

Хочется на ручки и обнимашек :c

Видимо собаки !Sized
Видимо собаки !Sized

#prog Даниил опять рассказывает интересное. На этот раз — про внутреннее устройство branch predictor-а

#prog #rust fmt_ext — библиотека для прикрепления кастомных реализаций Debug и Display к чужим типам. Вместо тысячи слов: use std::{fmt, marker::PhantomData}; use fmt_ext::{debug::*, DebugExt}; // Create a type that will implement custom debug... struct SliceWithLenDebug<T>(PhantomData<T>); // Implement custom debug... impl<T> CustomDebug for SliceWithLenDebug<T> where T: fmt::Debug, { type Target = [T]; fn fmt_target(target: &Self::Target, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Slice {{ len: {}, items: {:?} }}", target.len(), target) } } // Attach custom debug implementation to the target type... impl<T> AttachDebug<SliceWithLenDebug<T>> for [T] {} // Look! Now we have just call `debug` method on the target type... fn main() { let numbers = [0, 1, 2, 3]; println!("{:?}", numbers.debug()); let strings = vec!["I", "am", "a", "custom", "debug"]; println!("{:?}", strings.debug()); } (thanks @ilyavenner)