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

Фи сюда: @nlinker
Download Telegram
Vyacheslav Shebanov:
Дженерики это кусок системы типов

Важный

На эту тему очень интересный пейпер https://lucacardelli.name/Papers/OnUnderstanding.A4.pdf
On Understanding Types,
Data Abstraction, and Polymorphism

Alexander Tchitchigin:
Нет системы типов - нет проблемы. Динамические языки (Terra в том числе) этим пользуются, заменяя генерики макросами, например.

Кроме того, насколько я могу судить, генерики в смысле параметрического полиморфизма трудно подружить с ad-hoc полиморфизмом и наследованием. Нет наследования - тоже нет проблем.
https://t.iss.one/rust_offtopic/52333

Bogdan:
Юзай крейт webview

Правда чуваки обычно его форкают, и что-то добавлют свое, те кто юзает.

Работает очень классно. Весит ехе мало, проц не нагружает, как электрон.

Из минусов, под разными OS разный рендер, под виндой Edge, под линухой gtk-webkit, под макосью чет 3е, не помню что

Пример

https://github.com/Freaky/Compactor
https://t.iss.one/rust_offtopic/52353
Bogdan:
не хватает контекстной инфы, кстати, в ошибках хруста

какого-то аналога стектрейса

Alex Ilizarov:
А я видел крейт который эту проблему решает

Bogdan:
хотя-бын омер стороки где ьросили а в идеале в каждом месте вызова ? добавлять строку текущую в список

Alex Ilizarov:
https://github.com/mitsuhiko/better-panic
https://t.iss.one/haskell_blah/107309

λeonid Onokhov:
пока всякие псевдо-академики занимаются ерундой типа информатики, настоящие учёные занимаются настоящей наукой

Anton Trunov:
неплохо) я б такую картинку с петухом хотел бы для коллекции

λeonid Onokhov:
петух, в отличии от страуса, плохая модель для динозавра

Alex Gryzlov:
приделывают к страусу вторые крылья?

λeonid Onokhov:
типа того https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1006846

господи, там даже видео есть

Alex Gryzlov:
в качестве саундтрека надо было наложить музыку Штрауса

Anton Trunov:
летим со мной, там столько вкусного
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/