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

Фи сюда: @nlinker
Download Telegram
Timofey Zakrevskiy, [28.07.19 17:16]
А можно перевод на человеческий - откуда слово final в final encoding?

Nick Ivanych, [28.07.19 17:17]
[In reply to Timofey Zakrevskiy]
Можно считать, что ниоткуда.
Что-то типаа "другое представление, чем initial".

Timofey Zakrevskiy, [28.07.19 17:18]
Initial == явные конструкторы?

Nick Ivanych, [28.07.19 17:18]
[In reply to Timofey Zakrevskiy]
типатого.

Timofey Zakrevskiy, [28.07.19 17:19]
А где тогда Чёрч в этом спектре?

Timofey Zakrevskiy, [28.07.19 17:20]
И, идя по стопам Кантора, есть ли представление между initial и final?

Nick Ivanych, [28.07.19 17:24]
[In reply to Timofey Zakrevskiy]
Скорее всего, вы имеете в виду Бёма-Берардуччи.
И "где" он, я чотта даже и не знаю, что ответить ;-)
И что такое "между" ;-)
Это не есть какая-то линия, вдоль которой всё выстраивается.

Kirill Valyavin, [28.07.19 17:24]
[In reply to Timofey Zakrevskiy]
final — финальное представление, т. е. такое, которое уже не надо интерпретировать. Сразу семантика

Nick Ivanych, [28.07.19 17:29]
[In reply to Timofey Zakrevskiy]
Олег сказал "We call this approach final (in contrast to initial) because we represent each object term not by its abstract syntax, but by its denotation in a semantic algebra"
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());
}
}