Vyacheslav Shebanov:
Дженерики это кусок системы типов
Важный
На эту тему очень интересный пейпер https://lucacardelli.name/Papers/OnUnderstanding.A4.pdf
On Understanding Types,
Data Abstraction, and Polymorphism
Alexander Tchitchigin:
Нет системы типов - нет проблемы. Динамические языки (Terra в том числе) этим пользуются, заменяя генерики макросами, например.
Кроме того, насколько я могу судить, генерики в смысле параметрического полиморфизма трудно подружить с ad-hoc полиморфизмом и наследованием. Нет наследования - тоже нет проблем.
Дженерики это кусок системы типов
Важный
На эту тему очень интересный пейпер 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
Bogdan:
Юзай крейт webview
Правда чуваки обычно его форкают, и что-то добавлют свое, те кто юзает.
Работает очень классно. Весит ехе мало, проц не нагружает, как электрон.
Из минусов, под разными OS разный рендер, под виндой Edge, под линухой gtk-webkit, под макосью чет 3е, не помню что
Пример
https://github.com/Freaky/Compactor
Telegram
Bogdan in rust_offtopic
Юзай крейт webview
Правда чуваки обычно его форкают, и что-то добавлют свое, те кто юзает.
Работает очень классно. Весит ехе мало, проц не нагружает, как электрон.
Правда чуваки обычно его форкают, и что-то добавлют свое, те кто юзает.
Работает очень классно. Весит ехе мало, проц не нагружает, как электрон.
https://t.iss.one/rust_offtopic/52353
Bogdan:
не хватает контекстной инфы, кстати, в ошибках хруста
какого-то аналога стектрейса
Alex Ilizarov:
А я видел крейт который эту проблему решает
Bogdan:
хотя-бын омер стороки где ьросили а в идеале в каждом месте вызова ? добавлять строку текущую в список
Alex Ilizarov:
https://github.com/mitsuhiko/better-panic
Bogdan:
не хватает контекстной инфы, кстати, в ошибках хруста
какого-то аналога стектрейса
Alex Ilizarov:
А я видел крейт который эту проблему решает
Bogdan:
хотя-бын омер стороки где ьросили а в идеале в каждом месте вызова ? добавлять строку текущую в список
Alex Ilizarov:
https://github.com/mitsuhiko/better-panic
Telegram
Bogdan in rust_offtopic
не хватает контекстной инфы, кстати, в ошибках хруста
Forwarded from Awesome Rust
Python vs Rust for neural network implementation
https://ngoldbaum.github.io/posts/python-vs-rust-nn/
https://ngoldbaum.github.io/posts/python-vs-rust-nn/
ngoldbaum.github.io
Python vs Rust for Neural Networks | Nathan Goldbaum
Comparing a simple neural network in Rust and Python
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:
летим со мной, там столько вкусного
λ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:
летим со мной, там столько вкусного
Telegram
λeonid Onokhov in haskell_blah
пока всякие псевдо-академики занимаются ерундой типа информатики, настоящие учёные занимаются настоящей наукой
https://t.iss.one/rust_offtopic/52516
Alex Zhukovsky, [31.07.19 19:40]
есть вариант что это
Проблема в том, что единицей в моноиде должен быть пустой ренж, который всегда упорядочен по сравнению с любым другим
но сравнивать нужно по непустып ренжам в которых должны быть элементы
Короче, тут три кейса: пустой ренж, ренж из одного элемента (чтобы создать его) и все остальное
а для моноида должно быть два: база и индукция
Nikita Vilunov, [31.07.19 19:52]
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]
тогда так
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)λоλторт, [31.07.19 19:55]
def zero: (Int, Bool) =
(-INF, true)
def op((a, b): (Int, Bool), (c, d): (Int, Bool)) =
(c, b && d && (c >= a))
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 ShowTelegram
Alex Zhukovsky in rust_offtopic
Use foldMap to detect whether a given IndexedSeq[Int] is ordered. You’ll need to come up with a creative Monoid.
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 и больше.
Я считаю, что подобную контору надо оштрафовать. За уебанство. Что, нельзя было сделать нормальное сообщение об ошибке?
Слава:
Вот у меня свежий пример.
Есть некая контора и продукт их, Ecompass. Они собирают данные по займам. Принимают на вход словари в виде json, простой формат имя-значение. В справочнике имен, в экселевском файле, около 8000 (восьми тысяч) строк. Описания к полям по сути нет, все очень кратко.
Если запрос с подобным словарём содержит что-то не то, то сервис просто возвращает ошибку разбора json. Без детализации - что не так.
Отлаживается это так: убираем по одному полю и смотрим, заработает или нет. Цикл запрос-ответ занимает секунд 20, полей в среднем 50 и больше.
Я считаю, что подобную контору надо оштрафовать. За уебанство. Что, нельзя было сделать нормальное сообщение об ошибке?
Telegram
Слава in rust_offtopic
Вот у меня свежий пример.
Есть некая контора и продукт их, Ecompass. Они собирают данные по займам. Принимают на вход словари в виде json, простой формат имя-значение. В справочнике имен, в экселевском файле, около 8000 (восьми тысяч) строк. Описания к полям…
Есть некая контора и продукт их, Ecompass. Они собирают данные по займам. Принимают на вход словари в виде json, простой формат имя-значение. В справочнике имен, в экселевском файле, около 8000 (восьми тысяч) строк. Описания к полям…
Forwarded from Igor Bodnar
>Отдали клиенту сайт на англуря, те наняли каких то студентов, они взяли билд, разминифицировали и правили вот эти this._a=b.c.a(d.e)
>Теперь на сайте jquery поверх сбилженного ангуляр приложения
>Теперь на сайте jquery поверх сбилженного ангуляр приложения
Forwarded from Валентин Удальцов
У меня похожий кейс был на прошлой работе. Поставили клиенту на Symfony+Doctrine+... приложение. Им потребовалось что-то дешево и быстро допилить. Нанятый ими фрилансер в релевантных по его мнению файлах сделал require '../../tools.php', из которого обращался к бд через синглтон и mysqli_connect. А потом нас попросили поправить, потому что плохо работало 🙈
Forwarded from Sergey P
раз тут вечер охуительных историй о мастерстве... проходил мимо проекта... его начинали поляки - симфони там, апишки, все такое... а потом он достался индусам - скомпиленное реакт приложение выплевывалось через echo в контроллерах
Forwarded from Kai Ren
Не прошло и 10 лет:
https://blog.golang.org/why-generics
https://blog.golang.org/why-generics
Forwarded from Adv0cat
Т.е. нельзя сделать так, что все кто будет использовать трейт, должны иметь в структуре параметр
.name, а не функцию name() ?Forwarded from вафля 🧇🍓
Ещё можно как-то так:
trait
trait
Name {
fn name(&self) -> &str;
}
trait RunTrait {
fn run(&self);
}
impl<T: Name> RunTrait for T{
fn run(&self) {
println!("{}", self.name());
}
}Forwarded from Job for Go, Rust Developers
Вакансии в 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
🔹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, кстати, не реализован ни для каких размеров массивов
Вафель:
А почему массивы ([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, кстати, не реализован ни для каких размеров массивов
Telegram
Вафель in Rust Beginners
А почему массивы ([T; n]) не имплементируют ни std::fmt::Debug, ни std::fmt::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/
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/
Telegram
Kirill (Cykooz) Kuzminykh in Rust Beginners
У меня есть проект на Rust - враппер для C++ библиотеки (c С-шным интерфейсом). Есть ли возможность в CLion выполнить отладку Rust кода с заходом внутрь плюсового кода? У меня один вызов этой плюсовой либы падает с сегфолтом. Хотелось бы разобраться в чём…
Forwarded from Alexander Chichigin
B-threads: programming in a way that allows for easier changes
https://medium.com/@lmatteis/b-threads-programming-in-a-way-that-allows-for-easier-changes-5d95b9fb6928
https://medium.com/@lmatteis/b-threads-programming-in-a-way-that-allows-for-easier-changes-5d95b9fb6928
Medium
B-threads: programming in a way that allows for easier changes
An intro to Behavioral Programming