Alexander
и посмотреть что они там с builderToConduit или как там его делают
A64m
а, ну кассава-то вообще днище
Leonid 🦇
надысь еще какой-то цсв парсер презентовали
A64m
но я не уверен что цсвкондуит быстрый
A64m
я вообще понял ручной разбор в более прямом смысле
Alexander
а в чем проблема с парсером csv в postgre? Я обычно делаю просто COPY INTO TEMPORARY TABLE и поверх этого датасета уже все внутри постгре разгребаю
Alexander
не любит постгре внешнюю логику
Leonid 🦇
https://www.reddit.com/r/haskell/comments/82lxn6/ann_sv_csv_library/ но х.з. чо там
Alexander
@JelF1337 у него захардкожены настройки дурацкие
A64m
надысь еще какой-то цсв парсер презентовали
он еще тормознее кассавы, я думаю
Alexander
он не понимает меньше csv
Alexander
а если не понимат, то дает абсолютно невразумительную ошибку, которую юзеру не покажешь
Leonid 🦇
https://github.com/qfpl/sv/tree/master/benchmarks у них даже бенч есть
Alexander
+ мне нужна доп логика, которая требует разбора csv в коде, чтобы нужную статистику и данные собрать пока оно процессится
Alexander
бенчи - врут
Denis
https://github.com/postgres-haskell/postgres-wire а это рабочее?
Alexander
ну предположим до логика как раз выносится в postgre
Leonid 🦇
https://github.com/postgres-haskell/postgres-wire а это рабочее?
только протокол. и без tls пока. НАДО ВСЕМ ВЗЯТЬ И ДОПИЛИТЬ!
Alexander
одна итерация по таблице в оперативной памяти не порок
Alexander
одна итерация по таблице в оперативной памяти не порок
не факт, что таблица выносится в оперативную память. а логика на sql не ложится, не уверен, что это разумное предположение
Alexander
+ это требует доп шагов по выгрузке данных, а не делается на лету пока файл грузится
Leonid 🦇
небось @qnikst логгирует в opentracing стиле...
Alexander
нет
Leonid 🦇
а жаль.
Alexander
hasql не нужен (нужен, но уж лучше wire)
Alexander
+ wire началось раньше hasql-2
Alexander
а первая версия не нативно протокол использовала
Kirill
@lonokhov ты проникся opentracing?
Leonid 🦇
+ wire имеет вменяемые зависимости
A64m
только wire никто дописывать не собирается
Alexander
opentracing - хорошо
Aleksey
а что с hasql не так кроме наркоманского интерфейса, который можно пофиксить?
Alexander
@A64m_qb0 там драйвер готов
Leonid 🦇
@lonokhov ты проникся opentracing?
ну идеи то вроде норм. только сам опентрейсинг уместился бы в один блог, а не непонятный сайт
Alexander
не готова high level обвязка
Denis
хакатон надо устроить
Denis
и запилить либ, которые всем нужны
Alexander
так что csv-conduit чтоли попробовать
Denis
кстати второй hasql можно посмотреть
Alexander
если есть либа Никиты и решающая тоже самое либа не его я наверное знаю что выберу
Alexander
хм.. быстро посылать поломанный UTF в постгрю vs показывать ошибку пользователю
Dmitry
Помогите с нубовским вопросом! Как fixIO пользоваться? Ну мне хотя бы простой пример со счётчиком, чтобы 10,9,8...0 выводило. Как это сделать на fixIO? fixIO (\f n -> ...print n...) 10. А что в ...?
Alexander
fix $ next t -> print t >> next (t-1) ?
Leonid 🦇
хм.. быстро посылать поломанный UTF в постгрю vs показывать ошибку пользователю
ты можешь валидировать utf8 без парсинга же. наверно будет не тормозно
Alexander
Prelude Data.Function Control.Monad> (fix $ \next t -> print t >> when (t>0) (next (t-1))) 3 3 2 1 0 @dmalkr ^
Aragaer
Erlang and Scala developers in the US are among the highest paid, while Clojure, Erlang, and Haskell developers earn the most in India.
Alexander
@lonokhov это одно из, цель парсинга не в этом
Andrei
только протокол. и без tls пока. НАДО ВСЕМ ВЗЯТЬ И ДОПИЛИТЬ!
а как вообще это делается в онтопике? есть пакеты с либами а-ля libopenssl/libsodium/итп, которые прозрачно (де)шифруют трафик или каждого клиента надо отдельно допиливать?
Leonid 🦇
ну так сам openssl и есть
Alexander
приделать пакет для tls к либе
Dmitry
Prelude Data.Function Control.Monad> (fix $ \next t -> print t >> when (t>0) (next (t-1))) 3 3 2 1 0 @dmalkr ^
А, ну да, можно же и через fix сделать. А зачем тогда fixIO?
Alexander
чтобы завязывать результаты на себя
Dmitry
?
Dmitry
Не понял
Alexander
т.е. если бы у тебя было что-то вроде: foo :: Int -> (Int, Double) (n, d) <- foo n
Alexander
у тебя параметр зависит от значения, которое он вернула функция куда его передали
Alexander
например, ты хочешь передать в тред ThreadID который вернул forkIO
Alexander
fixIO вроде ж никогда руками использовать не надо, а надо mdo rec do
Alexander
они там за тебя все сделают
parket
Включает ли Void _|_?
Cheese
да
Cheese
это очевидно, и проверить элементарно λ> undefined :: Void *** Exception: Prelude.undefined
Alexander
csv-conduit медленнее кассавы
Denis
https://github.com/yesodweb/yesod-cookbook/issues/6#issuecomment-184967746 лол, есод для порно
Cheese
Djengo — это такая тонкая шутка про ненадёжность Django?
Aleksei (astynax)
Djengo Unchained
Denis
объясните тонкую шутку
Cheese
Jenga — игра про разваливание башни
Alexander
есть мнение что fix мовентон
Denis
понял
Aleksei (astynax)
Let it fail!
Alexander
а Frames ?
не пробовал
Alexander
Alexander
ну это как point-free дрочево с кучей флипов
Alexander
явная рекурия проще читается
Alexander
но это мнение основанно на том, что я не видел кошерного использования fix, а не на том, что это невозможно