
Даня
06.06.2017
11:06:56

Dmitry
06.06.2017
11:07:22
если есть тимлид. если тимлид
это не ты
еще бывает, что тимлид не против

Google

Даня
06.06.2017
11:09:10
всё равно, это ведь еще может сильно зависеть от задачи и от коллег…

Dmitry
06.06.2017
11:09:42
может

Даня
06.06.2017
11:12:06
интереснее, на мой взгляд, сделать не сколько хаскелл в любой компании, столько внедрить методы формальной верификации, на idris, например, или на Agda. в теории это развито и в среде математиков тоже, но всегда было интересно, как это можно применить в прикладной работе, я ни одного примера кроме Касперского не знаю

eugene
06.06.2017
11:12:42

Даня
06.06.2017
11:12:57
как-то категорично

eugene
06.06.2017
11:13:17
Дорого и сложно.
А там где нужна верификация, уже давно классические методы работают.
(я так думаю)

Даня
06.06.2017
11:14:03
«классические» - это какие?
логика Хора?
Хоара*

Alexander
06.06.2017
11:14:22
сколько строка кока стоит?
кому это нафиг надо?

Google

eugene
06.06.2017
11:14:41
Ага, она, model checking, separation logic, etc

Даня
06.06.2017
11:15:09
Александр, я имел в виду не то кому это может надо, а при каком кейсе это может быть полезно
(гипотетически)

Alexander
06.06.2017
11:16:44
при кейсе где стоимость потерь из-за ошибки больше цены программистов

Дмитрий
06.06.2017
11:16:51

Alexander
06.06.2017
11:16:57
и где это понимают

Дмитрий
06.06.2017
11:17:00
Написан на окамле
Причём для фейсбука это только промежуточная стадия для перевода всего фронта на окамл — в их масштабах писать типизируемый силами ocaml UI настолько выгодно, что можно и всю подобную технологию с нуля себе накатать

Даня
06.06.2017
11:31:45
интересное мнение, было бы интересно, если так и окажется
flow интересная штукована, недавно появилась возможность его поюзать на практике: не у кого не было опыта использования flow в продакшне?

Vasiliy
06.06.2017
11:36:29
в продакшоне не видел, наши фронендщики попытались его заюзать, натравили на небольшой модуль, посмотрели на пять страниц ошибок и забили
сдаётся мне, проблема тайпскрипта, flow и прочих тайпчекеров для js не в том, что их сложно написать или что js такое говно

Даня
06.06.2017
11:38:15
а в чем?

Vasiliy
06.06.2017
11:38:34
а в том, что написаны уже тонны кода, которые кладут большой болт на всю эту типизацию, и при использовании любой сторонней библиотеки вся безопасность идёт лесом

Даня
06.06.2017
11:39:09
ну да, это объяснимо

Vasiliy
06.06.2017
11:39:13
а писать целиком всё на том же тайпскрипте, без библиотек, не каждая контора может себе позволить

Даня
06.06.2017
11:39:49
а если использовать флоу изначально?
(писать с нуля на тайпскрипте, я согласен, радикально)
одно дело юзать чекер для, другое писать с нуля на языке без библиотек

Google

Даня
06.06.2017
11:41:18
для лишнее*

Vasiliy
06.06.2017
11:44:37
да flow тоже захлебнётся, если подтянуть какую-нибудь библиотеку, в которой функция принимает количество аргументов, зависящее от значений предыдущих аргументов (привет, зависимые типы), а результат возвращает через модификацию какого-нибудь глобального объекта
а такое в мире js не редкость...

? animufag ?
06.06.2017
11:50:12
(Int, Any...) -> Any
варарги я думаю там предсмотрены

Alexander
06.06.2017
11:59:31
если у меня в программе открыто слишком много fd, то можно как-нить посмотреть откуда они?

Dmitry
06.06.2017
12:00:05
что значит "откуда" ?

Alexander
06.06.2017
12:06:32
что имеено открыто (ну это я уже посмотрел в /proc/X/fd)
теперь хочу угадать кто наоткрывал

Dmitry
06.06.2017
12:07:57
если запустить под strace по дампу бывает видно

Дмитрий
06.06.2017
12:18:53


Дмитрий
06.06.2017
12:21:17
Концепт — а давайте сделаем вывод типов циничным пессемистом, если у пользователя есть хоть малейшая возможность сделать очередной жс финт — ставим ошибку, исходим из наихудшего возможного варианта. Тем самым, из всего сумашедшего динамического языка остается лишь скупое подмножество, только те операции, которые надёжны с точки зрения вывода в них типов
Примерно тот же подход под коробкой реализует purescript, только фейсбук нашёл способ пойти этим путём не меняя синтаксис языка (жертвуя мощью, но им в конце концов надо просто рисовать крупнейший в мире сайт)

Alexander
06.06.2017
12:44:41
@voidlizard а сходу не помнишь, как лишний вывод урезать, чтобы только открытие fd ловить?

Dmitry
06.06.2017
12:45:19
фиг знает, я всегда
| grep

Vasiliy
06.06.2017
12:45:19
-e open
ну и прочие сиколы, создающие fd
что там, socket, popen итд

Google

Alexander
06.06.2017
12:46:23
там SIGVALARM ползут
их конечно можно грепов вырезать

Vasiliy
06.06.2017
12:47:42
-e signal=!SIGVTALRM

Alexander
06.06.2017
12:48:57
спасибо
а трейс только 1 тред смотрит или все?

Dmitry
06.06.2017
12:58:46
вроде бы все он может:
-f Trace child processes as they are created by currently traced processes as a result of the fork(2), vfork(2) and clone(2) system calls.
Note that -p PID -f will attach all threads of process PID if it is multi-threaded, not only thread with thread_id = PID.

Aragaer
06.06.2017
13:04:12
strace -e file
будет ловить все файловые операции

Admin
ERROR: S client not available

Aragaer
06.06.2017
13:04:46
strace -epopen,socket,exec - будет ловить то, что перечислено через запятую

Alexander
06.06.2017
13:10:22
так а как rt_sigreturn убрать?
разобрался

Dmitry
06.06.2017
13:12:31
как?
вдруг понадобится тоже

Alexander
06.06.2017
13:25:38
его слишком много
чего-то не понял. если не делаю -f то похоже треды не показываются, если делаю то показываются и форки ужасные

Vasiliy
06.06.2017
13:48:45
насколько я знаю, отделять треды от процессов strace не умеет
как вариант, можно запустить программу и потом подключиться к ней стрейсом, перечислив список тредов, которые нужно мониторить

Alexander
06.06.2017
13:54:27
а понял, пасиб

Misha
06.06.2017
14:31:55
а кто знает, когда stack пишет Registering hkv-0.1.0.0... он куда это регистрирует? И, самое главное, можно ли проект оттуда переиспользовать как зависимость в другом проекте?

Google

Misha
06.06.2017
14:32:48
я пока зависимость просто указываю как
packages:
- '.'
- '../common'
- '../../hkv'
но это как-то стремно

Dmitry
06.06.2017
14:39:10
Это как раз относительно нормально

Misha
06.06.2017
14:51:18
в принципе пойдет, если они все в одном git-репозитории лежат, а если в разных то легко может сломаться
но я думал, что вот это самое registering означает, что стэк отныне будет знать где эту библиотеку взять
независимо от путей
даже какой-нибудь сраный maven это умеет

Vasiliy
06.06.2017
14:53:13
если сделать в hkv stack install, то он его установит куда-то в свой глобальный индекс

Misha
06.06.2017
14:53:31
нуканука

Vasiliy
06.06.2017
14:53:33
и он будет виден в других пакетах
только из packages, соответственно, его надо будет убрать

Misha
06.06.2017
14:54:59
неа
а нет, пардон
нашел, но что-то с версиями

Dmitry
07.06.2017
02:21:16
Так, а кто там в Haskell сомневался? Чтобы развеять сомнения, вот этого списка применений Haskell'я в виде соответствующих библиотек недостаточно: http://hackage.haskell.org/packages/ ?
С зажатым PgDn он у меня листается 30 секунд.

Vladislav
07.06.2017
02:23:42
еще вопрос, какой процент из них активно мейнтейнится - из случайно выбранных больше половины не обновлялись уже год

Dmitry
07.06.2017
02:52:38
Я думаю, если взять любой другой популярный язык, там будет 146% то же самое.
Не поддерживаемые либы, не покрытые области.

Vladislav
07.06.2017
02:55:23
ну графы-то везде есть, думаю, кроме всяких пхп