Linker Unsafe
220 subscribers
182 photos
24 videos
18 files
859 links
Собираю ржавые и лямбдообразные новости, прикольные цитатки с форумов, ссылки на статьи и всё такое. В-общем, сюда я тащу такие крупицы, которые мне будет жаль потерять в цифровой бездне. Возможно, они покажутся интересными и вам.

Фи сюда: @nlinker
Download Telegram
https://t.iss.one/rust_offtopic/52516

Alex Zhukovsky, [31.07.19 19:40]
Use foldMap to detect whether a given IndexedSeq[Int] is ordered. You’ll need to come up with a creative Monoid.
foldMap
это def foldMapV[A,B](v: IndexedSeq[A], m: Monoid[B])(f: A => B): B


я не решил
есть вариант что это Monoid[Option[(Int, Int, Boolean)]], но тоже не факт
Проблема в том, что единицей в моноиде должен быть пустой ренж, который всегда упорядочен по сравнению с любым другим
но сравнивать нужно по непустып ренжам в которых должны быть элементы
Короче, тут три кейса: пустой ренж, ренж из одного элемента (чтобы создать его) и все остальное
а для моноида должно быть два: база и индукция

Nikita Vilunov, [31.07.19 19:52]
mapping = i => (i, true)

def zero: (Int, Bool) =
(-INF, true)
def op((a, b): (Int, Bool), (c, d): (Int, Bool)) =
(c, b && d && (c >= a))

λоλторт, [31.07.19 19:55]
data Ordered n = Last n | Unordered | Mempty
deriving Show

*Main Lib> foldMap (Last @Int) [1, 2, 3]
Last 3
*Main Lib> foldMap (Last @Int) [1, 2, 3, 1]
Unordered
*Main Lib> foldMap (Last @Int) []
Mempty
думаю с имплементацией моноида сам справишься

Alex Zhukovsky, [31.07.19 20:09]
оно ведь не будет правильно работать
(3,(2,4)) != ((3,2),4)

Nikita Vilunov, [31.07.19 20:11]
🤔
Это получается ещё ловер баунд надо хранить

Alex Zhukovsky, [31.07.19 20:12]
да
как я изначально хотел
И в твоем случае еще учитывать что идентити может справа быть

Nikita Vilunov, [31.07.19 20:14]
Во, малаца

λоλторт, [31.07.19 20:18]
тогда так

data Ordered n = Ordered n n | Unordered | Mempty
deriving Show
Forwarded from ọzkriff
о, sova.dev/ru на крабоугодной Zola, оказывается - https://github.com/sergeysova/sova.dev - мило
https://t.iss.one/rust_offtopic/41416
Слава:
Вот у меня свежий пример.

Есть некая контора и продукт их, Ecompass. Они собирают данные по займам. Принимают на вход словари в виде json, простой формат имя-значение. В справочнике имен, в экселевском файле, около 8000 (восьми тысяч) строк. Описания к полям по сути нет, все очень кратко.

Если запрос с подобным словарём содержит что-то не то, то сервис просто возвращает ошибку разбора json. Без детализации - что не так.

Отлаживается это так: убираем по одному полю и смотрим, заработает или нет. Цикл запрос-ответ занимает секунд 20, полей в среднем 50 и больше.

Я считаю, что подобную контору надо оштрафовать. За уебанство. Что, нельзя было сделать нормальное сообщение об ошибке?
Forwarded from Igor Bodnar
>Отдали клиенту сайт на англуря, те наняли каких то студентов, они взяли билд, разминифицировали и правили вот эти this._a=b.c.a(d.e)
>Теперь на сайте jquery поверх сбилженного ангуляр приложения
У меня похожий кейс был на прошлой работе. Поставили клиенту на Symfony+Doctrine+... приложение. Им потребовалось что-то дешево и быстро допилить. Нанятый ими фрилансер в релевантных по его мнению файлах сделал require '../../tools.php', из которого обращался к бд через синглтон и mysqli_connect. А потом нас попросили поправить, потому что плохо работало 🙈
Forwarded from Sergey P
раз тут вечер охуительных историй о мастерстве... проходил мимо проекта... его начинали поляки - симфони там, апишки, все такое... а потом он достался индусам - скомпиленное реакт приложение выплевывалось через echo в контроллерах
Forwarded from Kai Ren
Не прошло и 10 лет:
https://blog.golang.org/why-generics
Forwarded from Adv0cat
Т.е. нельзя сделать так, что все кто будет использовать трейт, должны иметь в структуре параметр .name, а не функцию name() ?
Forwarded from вафля 🧇🍓
Ещё можно как-то так:

trait Name {
fn name(&self) -> &str;
}

trait RunTrait {
fn run(&self);
}

impl<T: Name> RunTrait for T{
fn run(&self) {
println!("{}", self.name());
}
}
Вакансии в TR Logic LLC
🔹Junior Backend Developer 1К€
🔹Backend Developer 2К€
🔹Media Streaming Developer 1,5К€
🔹Rust Developer 2К€
TR Logic LLC — компания занимается разработкой и поддержкой интернет-проектов.
Удалённая работа.
Нужен опыт от года с одним из языков: Java, Scala, Kotlin, Go, Rust, C, C++, C#, F#;
Откликаться на GeekJob.ru
#rust #java #scala #kotlin #go #rust #c #cpp #cplus plus #csharp #fsharp #backend #developer #вакансия #remotework
https://t.iss.one/rust_beginners_ru/28051
Вафель:
А почему массивы ([T; n]) не имплементируют ни std::fmt::Debug, ни std::fmt::Display?

Pontiff Sulyvahn:
Потому что конст генериков не завезли

См. тут: https://doc.rust-lang.org/std/primitive.array.html
Оно заимплеменчено, но для конечного числа размеров

issue: https://github.com/rust-lang/rust/issues/44580

Andrey @ozkriff Lesnikov:
Display, кстати, не реализован ни для каких размеров массивов
https://t.iss.one/rust_beginners_ru/28150
Kirill (Cykooz) Kuzminykh, [04.08.19 00:16]
У меня есть проект на Rust - враппер для C++ библиотеки (c С-шным интерфейсом). Есть ли возможность в CLion выполнить отладку Rust кода с заходом внутрь плюсового кода? У меня один вызов этой плюсовой либы падает с сегфолтом. Хотелось бы разобраться в чём дело.

Andrey @ozkriff Lesnikov, [04.08.19 00:18]
да в любом отладчике должно бы работать, лишь бы отладочная инфа и для раста, и для плюсов была и отладчик умел с ней работать

Andrey @ozkriff Lesnikov, [04.08.19 00:18]
https://www.reddit.com/r/rust/comments/97q7nt/can_you_debug_and_step_through_mixed_c_and_rust/
Any self-respecting software developer should be making use of inheritance on a daily basis to achieve code reusability. As I said earlier, inheritance perfectly models the real world. Cats, for example, always inherit their properties and behaviors from a single abstract real-world animal. Life has originated in the ocean a few billion years ago 🐟. Therefore all mammals (including the cats) have inherited the properties of the primordial fish, like garfield.fishHead, and their methods like garfield.swim and garfield.layCaviar. No wonder cats enjoy bathing and swimming so much! Humans are actually the same, we can easily start laying caviar if we want to!
Forwarded from Денис
считаю необходимым заметить, что вот прям совсем прямолинейный синхронный многопоточный сервер (но без тредпула) пишется на чистом расте очень просто и быстро))

TcpListener::bind(&addr).unwrap().incoming().try_for_each(|socket| {
let socket = socket?;
thread::spawn(|| handle(socket));
Ok(())
});
Forwarded from Jack
язык не определяется наличием фич, он определяется толстотой по Тьюрингу
Forwarded from red75prime
mem::size_of_val(a_ref) - размер типа, на который a_ref ссылается, то есть размер i32. mem::size_of_val(&a_ref) - размер самой ссылки a_ref, то есть размер типа &i32