@haskellru

Страница 1029 из 1551
Leonid
29.03.2018
13:04:26
@qnikst а в ПОМИ РАН? 3 вечера с @bravit111!

Alexander
29.03.2018
13:04:36
типа того

да в ПОМИ еду

а с биокадавцами надо познакомиться, а то биокад есть а я никого оттуда не знаю

Google
Alexander
29.03.2018
13:05:17
или не знаю что знаю

Leonid
29.03.2018
13:06:01
А в Пассаже помещение снимают или офис прямо там? Чёт больно круто для офиса

Alexander
29.03.2018
13:08:41
блин чего-то у меня такое желание переписать бойлерплейта кучу на TH

Vitaly
29.03.2018
13:09:05
А в Пассаже помещение снимают или офис прямо там? Чёт больно круто для офиса
Я так понял, это их новый офис, там программисты сидят.

Leonid
29.03.2018
13:09:35
Богатая контора

Alexander
29.03.2018
13:09:59
хм.. может им консультанты нужны

Denis
29.03.2018
13:15:42
хм.. может им консультанты нужны
Я вообще общался с ними в какой-то момент, а чуть позже мне перестали отвечать. Как-то некрасиво было, словом.

блин чего-то у меня такое желание переписать бойлерплейта кучу на TH
я после того как TH писал недавно, у меня было желание написать кучу бойлерплейта руками

Leonid
29.03.2018
13:18:44
переписать кучу TH бойлерплейта на CPP

Denis
29.03.2018
13:18:57
cosmic-mind.jpg

Yuriy
29.03.2018
13:31:05
в аттопарсеке можно как-то посчитать, сколько байтов съел парсер? там есть match, но весь инпут возвращает, я подозреваю, что смещение можно посчитать как-то более эффективно

Google
Denis
29.03.2018
13:31:39
да, плохо так..
в таком общении сразу проецируешь на тот момент, когда деньги будут должны и представляешь как будет

коллекторство - самая невеселая и сложная часть любой консалтерской деятельности ибо

Alexander
29.03.2018
13:33:23
мне тоже казалось, но что-то не вижу

в IResult ничего нету, например про это

если запускаешь этот IResult то можно самому считать

Denis
29.03.2018
13:34:44
там внутри Parser есть Pos

если написать комбинатор, который его вернет и отмотает континьюэйшен назад, то будет как раз то что надо

Alexander
29.03.2018
13:37:24
а да

Yuriy
29.03.2018
13:37:37
match внутри как раз берёт смещения и возвращает подстроку. надо его разобрать и оставить только смещения

Alexander
29.03.2018
13:38:54
count = Parser $ \s p m f s -> pure p

?

Yuriy
29.03.2018
13:39:50
ага

Denis
29.03.2018
13:43:14
count = Parser $ \s p m f s -> pure p
инпут не отмотает вроде, надо не pure p, кажется, а f _ p m _ _

Denis
29.03.2018
13:43:58
pure p вроде байт схавает и не вернет

Yuriy
29.03.2018
13:44:19
count = Parser $ \s p m f s -> pure p
не так-то просто

• Couldn't match type ‘r’ with ‘Atto.Pos’ ‘r’ is a rigid type variable bound by a type expected by the context: forall r. Atto.State BS.ByteString -> Atto.Pos -> Atto.More -> Atto.Failure BS.ByteString (Atto.State BS.ByteString) r -> Atto.Success BS.ByteString (Atto.State BS.ByteString) Int r -> Atto.IResult BS.ByteString r at lib/RON/Binary.hs:193:10-47 Expected type: Atto.IResult BS.ByteString r Actual type: Atto.IResult BS.ByteString Atto.Pos • In the expression: pure pos In the second argument of ‘($)’, namely ‘\ _ pos _ _ _ -> pure pos’ In the expression: Atto.Parser $ \ _ pos _ _ _ -> pure pos | 193 | getPos = Atto.Parser $ \_ pos _ _ _ -> pure pos

Denis
29.03.2018
13:45:14
там надо f или s звать

мне по вышеназванным причинам кажется что f, но я не смотрел излишне внимательно!

Google
Yuriy
29.03.2018
13:45:59
придётся-таки match скопипастить

> излишне внимательно

я тебе чрезмерно благодарен

Denis
29.03.2018
13:47:31
ну там надо инстансы смотреть, происходит ли смещение оффсета в них автоматически

Если происходит, то f. Если нет - s.

Yuuri
29.03.2018
13:48:25
Чё, ребзя, кто в биокад пойдёт завтра на @bravit111?
Там не слишком entry-level по описанию?

Rigidus
29.03.2018
13:50:12
я схожу

Yuriy
29.03.2018
13:56:32
заработало getPos :: Parser Int getPos = Atto.Parser $ \t pos more _ suc -> suc t pos more $ Atto.fromPos pos

Yuriy
29.03.2018
13:59:46
хотя это тоже не спасёт

если сначала парсить, а потом проверять длину, злоумышленник может бесконечный поток скормить

Denis
29.03.2018
14:00:57
а задача то какая?

Yuriy
29.03.2018
14:02:41
парсить свежепридуманный формат/протокол

Vasiliy
29.03.2018
14:12:57
я ведь правильно понимаю, что Arbitrary инстансы нужно писать в том же файле, где и целевой тип? мне кажется это странным, мб лучше {-# OPTIONS_GHC -fno-warn-orphans #-} и написать их рядом с Spec.hs где-то?

A64m
29.03.2018
14:13:43
не то чтобы нужно, рекомендуется

Denis
29.03.2018
14:13:52
если орфанов не хочешь - надо писать там же

Alexander
29.03.2018
14:14:03
да, то что выше написали

если написать в Spec то не забыть его заэкспозить

а то мало ли пользователю либы в тестах нужно будет

A64m
29.03.2018
14:14:38
я думаю, что во всякой вспомогательной обвязке для тестирования, отладочной печати и т.д. сирот бояться не нужно

Google
Vasiliy
29.03.2018
14:14:47
я мб глупость сейчас скажу, но разве в таком случае (если писать в том же файле) либа не будет ли зависеть от QuickCheck?

A64m
29.03.2018
14:15:07
будет

Alexander
29.03.2018
14:15:08
будет

Denis
29.03.2018
14:15:11
можно взять hedgehog, который вообще инстансов не требует

Vasiliy
29.03.2018
14:15:26
а это плохо, что она будет зависеть? (hedgehog интересный, спасибо, не видел, но мне уже лень переходить на что-то еще:))

A64m
29.03.2018
14:15:27
бойлерплейт руками писать требует зато

Denis
29.03.2018
14:15:35
требует

Alexander
29.03.2018
14:17:47
в идеале сделать пакет с либой и отдельный пакет с инстансами для квикчек имхо

Alexander
29.03.2018
14:18:19
++

к вопросу

Alexander
29.03.2018
14:18:44
чтобы не тянуть зависимость в самой либе, но арбитрари инстансы тоже можно было просто подключить

Vasiliy
29.03.2018
14:18:56
блин, меня смущает, что тестовые зависимости попадают в либу это ведь влияет на ее размер? (думаю влияет, конечно) нет, мне, конечно, не очень важен ее размер сейчас вообще, но мне кажется это не оч правильным

Alexander
29.03.2018
14:19:00
как правило "в идеале" противоречит здравому смыслу, так как мир неидеален

A64m
29.03.2018
14:19:11
сделать сироты в тестовом субпакете, только он же будет и от квикчека зависеть

A64m
29.03.2018
14:20:56
но эти "бест практисы" не рапространяются на тестирование и интеграцию разных библиотек в приложении

плохо делать сироты в библиотеках

естественно тесты на этот библиотечный случай не распростраяются

Google
Denis
29.03.2018
14:22:08
в приложении как правило появляется все равно как минимум один модуль с сиротами

потому что авторы библиотек не следуют best practices описанным выше

Leonid
29.03.2018
14:22:37
в тестах и бинарях можно любую вакханалию устраивать. Если конечно в апстриме не могут инстанс добавить.

A64m
29.03.2018
14:22:54
но в приложении они и не опасны (если только не перемудрить с очень уж сложной структурой приложения)

Leonid
29.03.2018
14:23:03
добавление инстанса это мажорный бамп пвп?

можно ньютайп в защитных целях сделать
И еще прошептать "чур-чурашки, пауки-букашки, фиги-таракашки. чур меня чур меня".

A64m
29.03.2018
14:23:50
потому что авторы библиотек не следуют best practices описанным выше
чтоб этим бест практисам следовать все библиотеки должны быть зависимы от всех библиотек, чего на практике не сделать, да и не надо

Denis
29.03.2018
14:25:10
И еще прошептать "чур-чурашки, пауки-букашки, фиги-таракашки. чур меня чур меня".
coerce . трахтибидох . coerce не так уж страшно сделать, если уж суеверный

а я кстати не понимаю чего все жалуются

lens тянет много, но все такое дефолтненькое

A64m
29.03.2018
14:29:00
временами lens зависила от не очень дефолтных пакетов вроде аэсона

Leonid
29.03.2018
14:30:26
жсон всюду

так что считай дефолтный

A64m
29.03.2018
14:33:32
а что насчет zlib и utf8-string?

Denis
29.03.2018
14:33:40
вы еще не пишете бизнес-логику в json?

zlib спорненько

Страница 1029 из 1551