Home
codingteam
codingteam@conference.jabber.ru
07.12.2016< ^ >

Тема: C, С++, D, Java, C#, Haskell, Ruby, Scheme, Common Lisp, Erlang, OCaml, JavaScript, TypeScript, Clojure, Scala, Nemerle, F#, Groovy, R, Rust, Kotlin.
Backup channel: codingteam@conference.codingteam.org.ru
HQ: https://codingteam.org.ru
Код постить сюда: http://lpaste.net/
Логи: http://tinyurl.com/ctcjr-logs
Юным погромцам сюда: http://e-maxx.ru/algo/ , а ещё читать Кнутца, Корменца, Седжвикца и др.
MIDI Looper in Rust Ep.31: https://www.youtube.com/watch?v=pkRyR2ywtpc
Let's Dev (когда Капитан на мостике): http://www.youtube.com/playlist?list=PLK6mcZkmN4QTusFvp_0GVtscQbCiIg81Y
http://i.imgur.com/slnyI6a.jpg
[00:08:21] ckorzhik зашёл в конференцию
[00:22:46] Graf зашёл в конференцию
[00:22:52] Graf вышел из конференции
[00:37:56] <Товарищ Чпок> https://www.youtube.com/watch?v=-ZOiX6cIT8o
[00:42:31] dzhon вышел из конференции
[00:48:25] <m4n71k0r> https://www.youtube.com/watch?v=eBPfnj8_4W4
[01:06:03] xmi вышел из конференции
[01:07:26] ckorzhik вышел из конференции
[01:09:29] ckorzhik зашёл в конференцию
[02:09:30] Маздайщик вышел из конференции
[02:49:24] ckorzhik вышел из конференции
[02:49:29] ckorzhik зашёл в конференцию
[02:50:21] xmi зашёл в конференцию
[03:57:26] m4n71k0r вышел из конференции
[05:21:22] horta hell вышел из конференции
[05:21:37] horta hell зашёл в конференцию
[05:29:50] matraskin зашёл в конференцию
[05:39:47] grouzen вышел из конференции
[05:56:23] ckorzhik вышел из конференции
[06:16:40] xmi вышел из конференции
[07:21:22] horta hell вышел из конференции
[07:21:57] horta hell зашёл в конференцию
[07:26:14] portnov зашёл в конференцию
[07:29:46] portnov вышел из конференции
[07:44:36] unclechu зашёл в конференцию
[07:45:23] unclechu вышел из конференции
[08:11:30] m4n71k0r зашёл в конференцию
[08:13:30] m4n71k0r вышел из конференции
[08:13:31] m4n71k0r зашёл в конференцию
[08:31:46] O01eg вышел из конференции
[09:21:22] horta hell вышел из конференции
[09:21:47] horta hell зашёл в конференцию
[09:47:02] m4n71k0r вышел из конференции
[09:55:30] dzhon зашёл в конференцию
[10:16:21] dzhon вышел из конференции
[10:27:28] m4n71k0r зашёл в конференцию
[10:45:36] Laz зашёл в конференцию
[10:51:32] Graf зашёл в конференцию
[10:51:39] Graf вышел из конференции
[10:54:23] <m4n71k0r> утреццо
[10:54:44] <m4n71k0r> а вот зачем в шарпе goto?
[10:54:56] superka зашёл в конференцию
[11:03:39] <superka> народ а как правильно скопировать бд ms sql, а то там куча способов, фиг поймешь какой юзать?
[11:04:16] RAMZAY зашёл в конференцию
[11:08:18] rexim зашёл в конференцию
[11:08:34] <rexim> I came here just ask you guys one question.
[11:08:40] <rexim> Have you ever worked with PostGres?
[11:12:35] <m4n71k0r> rexim: шо бля?
[11:12:58] <rexim> m4n71k0r: не, лично я только с PreGres работал.
[11:13:15] <rexim> Ну и чуть-чуть с ReGress
[11:13:22] <m4n71k0r> rexim: чем оно отличается от Postgres ?
[11:13:34] <m4n71k0r> был ещё Ingres
[11:13:39] <m4n71k0r> до постгреса
[11:13:44] <rexim> m4n71k0r: тем, что его написал того же рода дибил, что и пишет QT вместо Qt -_-
[11:13:51] <rexim> Ну чо ты как этот, а?
[11:14:11] <rexim> Хм...
[11:14:18] <m4n71k0r> rexim: хм...
[11:14:22] <rexim> Я тут осознал, что ведь это я же написал!
[11:14:29] <rexim> Получается я дибил.
[11:14:33] <rexim> Эх, ну ладно
[11:14:37] <rexim> Мне не привыкать
[11:14:37] <m4n71k0r> ну ты просто путаешь народ
[11:14:44] <rexim> m4n71k0r: нет ты!
[11:14:45] <rexim> ыволыв
[11:14:51] <m4n71k0r> яырволоарл?
[11:14:55] <rexim> да
[11:15:10] <m4n71k0r> тсмбиьсмисми
[11:15:14] <m4n71k0r> цуккшцнугншцугкнцуш
[11:18:40] rexim вышел из конференции
[11:21:22] horta hell вышел из конференции
[11:21:38] horta hell зашёл в конференцию
[11:30:37] <Товарищ Чпок> m4n71k0r, ти там норкоман?
[11:33:56] <m4n71k0r> АААААААААААААААААААААААААААААААА ГОВОРЯЩИЙ ПОНЬ!
[11:45:38] <ForNeVeR> superka: чтобы скопировать MSSQL, самый эффективный способ — это сделать бэкап, а на другом сервере его развернуть.
[11:55:52] <m4n71k0r> сериализуй в XML!
[11:56:04] <ForNeVeR> Я бы предпочёл в SQL.
[11:56:04] <m4n71k0r> заверни //fxd
[11:56:44] <m4n71k0r> о, прикольно, в msys2 есть пакет с sfml
[11:56:52] <ForNeVeR> И там действительно есть способ сделать SQL-дамп всей базы. Но это значительно медленней работает, чем бинарный бэкап, и потому я это считаю вторым по применимости способом.
[11:57:22] <ForNeVeR> m4n71k0r: а я всё ещё пытаюсь собрать Qt в conan %)
[12:02:10] <Товарищ Чпок> ForNeVeR, а можно в csv!
[12:02:14] <Товарищ Чпок> И потом через copy!
[12:02:31] <Товарищ Чпок> ForNeVeR, занятно, у нас тут товарищи на работе тоже перешли на conan.
[12:10:30] <ForNeVeR> У меня Qt пока что не собралась :(
[12:36:15] unixorn вышел из конференции
[12:36:17] unixorn зашёл в конференцию
[12:41:13] <devel29a> ForNeVeR: А ты тоже подался в кутесборщики?
[12:41:23] <devel29a> Для венды, кажется, выкладывали
[12:48:47] <ForNeVeR> Выкладывали. Проблемы это не решает.
[12:48:57] <ForNeVeR> Я и собрать могу сам, без всяких конанов.
[12:49:30] <ForNeVeR> Но мне нужен воспроизводимый билд с помощью билд-системы, который не нужно устанавливать в систему или собирать вручную каждый раз, когда что-то меняется, или я на другой машине хочу его использовать.
[12:55:36] <devel29a> ForNeVeR: Ясно
[13:02:41] <Laz> билд-системы - клёвая тема
[13:02:49] <Laz> я вот тоже пилю одну
[13:04:13] <Laz> она разворачивает дебиан, заходит в него, ставит нужные пакеты, клонирует туда сырцы нашего проектега, компиляет всё, раскладывает всё по своим местам, пишет конфиги, пакует получившееся в шифрованный сквошфс и выкладывает на файлопомойку
[13:04:24] <devel29a> Кстати, Audacity норм? Развивается?
[13:04:28] <devel29a> Товарищ Чпок: ^
[13:04:29] <Laz> очень удобно
[13:04:42] <devel29a> Laz: Дебиан....
[13:04:48] <Laz> это да
[13:05:03] <devel29a> Слаку штоли для солидности хотя бы
[13:05:04] <Laz> в планах перейти на alpine
[13:05:18] <Laz> но пока только в планах...
[13:06:13] <Товарищ Чпок> devel29a, вроде да.
[13:06:21] <Laz> слаку возьмём, если под альпайном не заведётся
[13:09:02] <Laz> тащемта, господа, предлагаю небольшой холиварчик на извечную тему
[13:09:11] <Laz> exceptions: checked vs unchecked
[13:09:15] <devel29a> Зачем?
[13:09:45] <Laz> а чем ещё заняться в морозный зимний день?
[13:09:46] <devel29a> "Каждый дрочит так, как хочет"
[13:18:20] <ForNeVeR> Laz: ок, хорошее дело.
[13:18:20] <ForNeVeR> А на эксепшены мне насрать.
[13:18:20] <ForNeVeR> (я про билд-систему)
[13:18:20] <ForNeVeR> devel29a: для продакшена дебиан норм, если вот так вот его готовить. По-моему, отличная затея.
[13:18:20] <Laz> насрать - в смысле, никак не обрабатываешь?
[13:18:20] <ForNeVeR> Сам бы я на нём никогда б работать не стал.
[13:18:20] <Laz> в нашем случае дебиан хорош огромным количеством пакетов в репах
[13:18:20] <devel29a> ForNeVeR: Для продакшена разве не принято всякие редхаты ставить?
[13:18:20] <ForNeVeR> У меня — нет, не принято.
[13:18:20] <devel29a> Или что там еще тырпрайзного есть
[13:18:20] <ForNeVeR> Дебиан, центось, убунта.
[13:18:20] <Laz> в итоге должна получаться полноценная система с нашим софтом внутри
[13:18:20] <ForNeVeR> Не то чтобы я что-то имел против редхата, просто ни разу его не видал.
[13:18:20] <Laz> компилять руками, писать инит скрипты и конфиги для всяких посгресов, коллектдэ и прочего интересно, но не очень продуктивно
[13:18:20] <devel29a> ForNeVeR: А, ну, ты же не заморачиваешься насчет саппорта от оффициального контрибутора. Тогда, наверное, дебиан, да
[13:18:20] <devel29a> Laz: Конфиг для субд писать таки надо, если проект серьезный
[13:18:20] <devel29a> Ибо специфика использования диктует
[13:18:20] <ForNeVeR> Смотря для какой СУБД.
[13:18:20] <ForNeVeR> В постгресе у нас всё на дефолтных настройках работает :)
[13:18:20] <Laz> ну я для примера посгрес приплёл
[13:18:20] <Laz> впрочем, да, у нас на дефолте пашет
[13:18:20] <ForNeVeR> Мускуль обязательно надо настраивать, там дефолты ущербные.
[13:18:20] <ForNeVeR> А в постгресе (если тебе хайлоад не нужен) — и так сойдёт :)
[13:18:20] <devel29a> ForNeVeR: Могу поспорить, что ты один хрен настройки постгресса проревьювил
[13:18:20] <ForNeVeR> Ну, я в них заглядывал, да, когда оценивал, сгодятся ли они.
[13:18:20] <devel29a> Воооот
[13:18:20] <devel29a> И только потому, что там все ок ты и не поменял
[13:18:20] <ForNeVeR> Laz: а эксепшены на самом деле по большому счёту следуют аксиоме Эскобара.
[13:18:43] <ForNeVeR> Хоть checked, хоть unchecked.
[13:18:43] <Laz> ну вот не знаю
[13:18:43] <ForNeVeR> Я уверен.
[13:19:23] <Laz> то есть, хоть проверяй, хоть не проверяй результат работы функции
[13:19:34] <Laz> это как-то не очень-то безопастно
[13:20:04] <ForNeVeR> unchecked-эксепшены вылетают откуда угодно в самый неожиданный момент, теоретически всё плохо.
checked-эксепшены погребут тебя под тоннами бойлерплейта и переливанием из пустого в порожнее, на практике всё плохо.
[13:20:44] <Laz> ну, я имею в виду не глобальное и повсеместное использование либо одного, либо другого
[13:20:46] <ForNeVeR> Ну и при этом ты помни, что у тебя _каждая_ строка может на самом деле словить какой-нибудь рантайм-еррор, сигнал или ещё какую неведому хреноту.
[13:21:03] <Laz> никто же не мешает часть исключений выносить в тип, а на часть забить
[13:21:04] <devel29a> Бггг
[13:21:22] <Товарищ Чпок> Обернуть программу в один глобальный try-catch...
[13:21:22] horta hell вышел из конференции
[13:21:27] <devel29a> ForNeVeR: Ага. Пусть кастомный сигнал хендлер еще пилит :D
[13:21:40] <ForNeVeR> Товарищ Чпок: любая приличная программа обёрнута в глобальный try-catch.
[13:21:56] <devel29a> Дефолтовый точно
[13:21:58] <ForNeVeR> И с кастомным сигнал-хендлером.
[13:21:58] horta hell зашёл в конференцию
[13:22:10] <Laz> и вот сопсна вопрос, как определить, что достойно попасть в тип
[13:22:10] <ForNeVeR> Ну или с дефолтовым. Короче, с каким-то обработчиком — это наверняка.
[13:22:21] <ForNeVeR> Laz: а это вот несложно, как мне кажется.
[13:22:43] <ForNeVeR> Если у тебя функция может вернуть результат или ошибку — это и есть момент, когда надо выносить в тип :)
[13:22:48] <Laz> а у меня как раз проблемы...
[13:23:11] <ForNeVeR> Если функция по её коду не может вернуть ошибки (то есть ты не _ожидаешь_ этого) — значит, ошибка в ней суть исключительная ситуация.
[13:24:02] <ForNeVeR> Обычно всякое там IO должно (как мне кажется) использовать Either-типы.
[13:24:07] <Laz> вот прямо сейчас пишу кодец, который должен вернуть некоторую сущность
[13:24:25] <Laz> данные хранятся в файлике плейнтекстом
[13:24:27] <ForNeVeR> В остальном коде всё более стабильно, а для бизнес-ошибок у тебя, скорее всего, даже не Either-тип, а какая-нибудь более продвинутая валидационная сущность будет.
[13:24:46] <Laz> я по идентификатору нахожу файлик, если его нет, возвращаю Nothing, если он есть - читаю файлик и пытаюсь его распасить
[13:24:50] <ForNeVeR> Но это так, конечно, если с высоты птичьего полёта рассуждать.
[13:25:00] <Laz> соответственно, если при чтении или парсе что-то пошло не так - будет исключение
[13:25:22] <ForNeVeR> А это вообще нормально? Что ты дальше с этой ошибкой полагаешь делать?
[13:25:35] <Laz> а вот хрень знает
[13:25:38] <Товарищ Чпок> А ещё ведь try-catch может свалится в экзепшон!
[13:25:47] <ForNeVeR> Попробуй от бизнес-требований подойти.
[13:25:53] <Товарищ Чпок> Хочешь сгенерить исключение, а памяти-то и нет!
[13:26:04] <ForNeVeR> Если требования не сформированы — предпочитай более строгий вариант (то есть checked).
[13:26:16] <Laz> ок, спасибо
[13:26:29] <Laz> я в эту сторону и склоняюсь
[13:26:30] <ForNeVeR> Если сформированы, и ты можешь позволить себе более-менее громко упасть — тогда можно unchecked.
[13:26:42] <ForNeVeR> Я в таком режиме конфиги читаю.
[13:26:56] <ForNeVeR> Если конфиг не прочитался, то и хуй с ним, давайте упадём!
[13:27:41] <ForNeVeR> А вот если какой-нибудь один из десятка файлов не прочитался в батч-задании — тогда, конечно, падать не стоит, а стоит агрегировать результаты и вывести отчёт: 9 прочитано, 1 не прочитан.
[13:28:40] <Laz> в некоторых случаях у меня проблем вообще не возникает, но иногда вообще в ступор впадаю
[13:29:16] <Laz> и обсуждения уважаемых господ из интернета ясности не добавляют
[13:30:16] <Товарищ Чпок> ForNeVeR, https://www.khronos.org/vr/
[13:30:23] <Товарищ Чпок> Восславим же стандартизацию!
[13:31:35] <Laz> микаэль снойман прямиком из израэля пишет, что эксепшоны круто, давайте ими обмазываться, ExceptT - антипаттерн и всё такое https://www.fpcomplete.com/blog/2016/11/exceptions-best-practices-haskell
[13:31:58] <Laz> а стефен дейл утверждает говорит нам - "Avoid exceptions, use ExceptT or Either instead." http://dev.stephendiehl.com/hask/#prelude
[13:32:35] <devel29a> Laz: https://www.youtube.com/watch?v=oyKlpIy5shk
[14:10:43] rexim зашёл в конференцию
[14:12:25] xmi зашёл в конференцию
[14:17:00] rexim вышел из конференции
[14:17:45] matraskin вышел из конференции
[14:18:37] rexim зашёл в конференцию
[14:22:57] * rexim миксерякнул
[14:27:45] <rexim> send/Minoru/Hey! Hey!/
[14:27:47] <horta hell> rexim: Сообщение помещено в очередь.
[14:27:54] <rexim> send/Minoru/Hey Listen!/
[14:27:54] <horta hell> rexim: Сообщение помещено в очередь.
[14:28:00] <rexim> $send Minoru https://www.youtube.com/watch?v=seKaU-qQuts
[14:28:00] <horta hell> rexim: Сообщение помещено в очередь.
[14:33:31] gsomix зашёл в конференцию
[14:33:34] gsomix вышел из конференции
[14:33:35] gsomix зашёл в конференцию
[14:33:38] gsomix вышел из конференции
[14:33:44] gsomix зашёл в конференцию
[14:33:45] gsomix вышел из конференции
[14:33:47] gsomix зашёл в конференцию
[14:34:23] gsomix вышел из конференции
[14:53:49] <rexim> o_O
[15:08:07] sss|zombie вышел из конференции
[15:21:23] horta hell вышел из конференции
[15:21:49] horta hell зашёл в конференцию
[15:23:26] <rexim> horta hell: хортик, нет-нет!
[15:23:32] <rexim> horta hell: хортик, не уходи!
[15:23:51] <rexim> Сказочный ребут!
[15:23:56] <rexim> Ждет нас впереди!
[15:24:07] <rexim> Прости меня, хортик!
[15:24:09] <rexim> А-а-а!
[15:24:11] <rexim> Кхем...
[15:24:14] <rexim> Ладно
[15:28:53] <rexim> $send ForNeVeR http://www.artima.com/shop/supersafe
[15:28:53] <horta hell> rexim: Сообщение доставлено.
[15:49:02] <ForNeVeR> rexim: ты уже попробовал?
[15:49:37] <rexim> ForNeVeR: неа.
[15:49:39] <rexim> Оно платное :(
[15:49:44] <rexim> Но мне интересно было бы
[15:49:55] <rexim> А, блядь
[15:50:01] <rexim> Большую кнопку-то я и не заметил
[15:50:03] <rexim> :)
[15:51:12] <rexim> Хм...
[15:51:18] <rexim> Этож создатели ScalaTest!
[15:51:21] <rexim> Интересненько!
[16:01:45] <Товарищ Чпок> devel29a, в nvim (qt-nvim) работает переключение буферов по клику на их перечислении!
[16:01:46] <Товарищ Чпок> Ух ты!
[16:01:56] <Товарищ Чпок> Такого даже в gvim нету!
[16:02:12] <rexim> > vim
> клик
[16:03:16] <Товарищ Чпок> rexim, ух ты!
[16:05:54] unixorn вышел из конференции
[16:06:34] <Laz> а в nyaovim работают лигатуры
[16:06:37] <Laz> такого даже в емаксе нет
[16:07:16] <Товарищ Чпок> Laz, это фронтэнд для nvim.
[16:07:17] <Товарищ Чпок> -_-
[16:07:28] <Laz> правда, там хоткеи биндятся на кейкоды а не кейсимы...
[16:07:40] <Laz> но, тем не менее, в емаксе такого тоже нет!
[16:07:43] <Laz> Товарищ Чпок: да
[16:12:59] ckorzhik зашёл в конференцию
[16:33:16] <superka> вы тоже любите капчу? https://www.youtube.com/watch?v=WqnXp6Saa8Y
[16:51:31] <rexim> Срапчу
[17:08:20] <rexim> Срапчую эту суперку!
[17:20:32] rexim вышел из конференции
[17:21:23] horta hell вышел из конференции
[17:21:39] horta hell зашёл в конференцию
[17:23:45] rexim зашёл в конференцию
[17:24:28] <rexim> Забавно, мне тут company внезапно сказал, что у меня в глобальном скоупе емакса есть переменная christian-holidays!
[17:24:52] <rexim> Теперь я знаю все христианские праздники посоны!
[17:26:11] unixorn зашёл в конференцию
[17:29:57] unixorn вышел из конференции
[17:29:59] unixorn зашёл в конференцию
[17:32:08] portnov зашёл в конференцию
[17:33:24] <Товарищ Чпок> portnov, дядюшка Портнооов!
[17:33:30] <portnov> _o/
[17:33:51] <Товарищ Чпок> portnov, как делищща?
[17:34:02] <portnov> лучше всех: никто не завидует.
[17:34:15] <rexim> Я завидую
[17:34:58] dzhon зашёл в конференцию
[17:38:21] <portnov> почти.
[17:38:43] dzhon вышел из конференции
[17:39:18] <Товарищ Чпок> portnov, почти завидует?
[17:39:25] <portnov> почти никто.
[17:39:40] <Товарищ Чпок> Почти никто почти завидует?
[17:44:55] <rexim> portnov: у тебя слишком все хорошо. Поэтому и завидую!
[17:47:28] <rexim> Грефневая Кафка!
[17:49:02] <portnov> «что общего между маршалом советского союза и австрийским писателем?»
[17:49:59] <rexim> Лол
[17:50:18] <rexim> Австрийский писатель :D
[17:51:28] <rexim> Кстати, понится на одном из моих стримов зашел разговор об австрийских писатях и оказалось, что меня дохрена немцев смотрят.
[17:51:56] <rexim> Дядюшка Чу еще помнится мемчиков в огонь подливал :(
[17:52:05] <rexim> Весело в общем было.
[17:55:41] Minoru зашёл в конференцию
[17:55:41] horta hell вышел из конференции
[17:55:52] <m4n71k0r> так
[17:55:52] horta hell зашёл в конференцию
[17:56:13] <m4n71k0r> главное во время сказать "так"
[17:56:32] dzhon зашёл в конференцию
[17:56:56] <rexim> m4n71k0r: дядюшка Чпоньти!
[17:56:56] <m4n71k0r> вовремя
[17:56:56] <rexim> Да
[17:57:27] <rexim> m4n71k0r: го на цацкеле цодить через час?
[17:57:37] <rexim> Будет авава
[17:57:40] <m4n71k0r> rexim: у маяка?
[17:57:41] <Minoru> rexim: ._.
[17:57:45] <rexim> m4n71k0r: да
[17:57:47] <Minoru> rexim: Hey! I won’t listen!
[17:57:50] <rexim> Minoru: привет!
[17:57:57] <rexim> :(
[17:58:08] <m4n71k0r> надо кофейной жижи хряпнуть
[17:58:15] <rexim> m4n71k0r: точно!
[17:58:16] <rexim> ывлаоылва
[17:58:17] <rexim> ывалыовла
[17:58:19] <m4n71k0r> цацкель шмацкель...
[17:58:21] <rexim> Ага
[17:58:24] <rexim> Хуяцкель
[17:58:25] <m4n71k0r> я же не умею в него
[17:58:31] <rexim> Дык и я тоже!
[17:58:35] <m4n71k0r> не верю!
[17:58:38] <rexim> Я вообще программированить не умею
[17:58:45] <m4n71k0r> Не Верю!
[17:58:54] <rexim> Я просто эйчаров хорошо умею обманывать.
[17:58:59] <m4n71k0r> НЕ ВЕРЮ!
[17:59:02] <rexim> :(
[17:59:11] <m4n71k0r> Н Е В Е Р Ю !
[17:59:29] <rexim> m4n71k0r: да успокойся ты уже! Сходи там кофейку попей.
[17:59:37] <rexim> Все будет хорошо.
[18:01:49] <Товарищ Чпок> «Успокойся, сыночек, выйпей кофе».
[18:02:03] <Товарищ Чпок> https://pp.vk.me/c625431/v625431578/3d55d/OiH3NI4gTWQ.jpg
[18:02:06] <m4n71k0r> пшые.
[18:02:15] <rexim> ForNeVeR: а грунт еще жив чтоле?
[18:02:16] ckorzhik вышел из конференции
[18:02:30] <m4n71k0r> пшыеюпшерги
[18:02:34] <ForNeVeR> rexim: жив в наших сердцах!
[18:02:38] <ForNeVeR> rexim: ну и в морге, да.
[18:02:42] <rexim> Я думал его давно уже всякие глумпывебпакохуки убили.
[18:02:46] <rexim> А, окей
[18:02:47] <ForNeVeR> Это так.
[18:03:08] <rexim> Интересно у вас там в морге!
[18:03:14] <m4n71k0r> замечательно звучит: пшыеюпшергиюсщь
[18:03:30] <m4n71k0r> как "товарисшч борсшч"
[18:03:39] <ForNeVeR> Товарищ Босх!
[18:03:50] <rexim> ForNeVeR: а вы там юзаете базу данных Caché?
[18:03:57] <rexim> Я слыхал он в медицине популярна
[18:04:06] <rexim> она*
[18:04:09] <Товарищ Чпок> Кашэ.
[18:04:57] <ForNeVeR> rexim: не, у нас мускуль и постгре.
[18:05:05] <rexim> Ну вот и славненько!
[18:05:10] <ForNeVeR> rexim: а у популистов тут firebase или interbase.
[18:05:37] <m4n71k0r> кстати про борсшч... посмотрел "Сталкер" Тарковского и не понравилось. Блин, книжка не такая уебански уничтожающе серая
[18:05:53] <ForNeVeR> А это не фильм по книге.
[18:05:59] <m4n71k0r> да в курсе
[18:06:04] <m4n71k0r> но там герой нытик
[18:06:26] <m4n71k0r> поклоняется зоне... ересь
[18:07:02] <m4n71k0r> это как свалке поклоняться, как мне кажется
[18:08:14] <Товарищ Чпок> m4n71k0r, а как же монолит?)
[18:08:24] <rexim> Монолитик
[18:09:55] <m4n71k0r> монолит... поделка низших демонов варпа
[18:10:25] <Minoru> «Бананы и линзы» таки всё: https://twitter.com/dshevchenko_biz/status/806125632220495872 :(
[18:10:49] <m4n71k0r> Тарковский решил девочку в бибизянку не превращать и дал её возможность двигать посуду взглядом
[18:11:05] <portnov> m4n71k0r: я почему-то Прандтля с Круухом вспомнил
[18:11:34] <rexim> Раз в недель - перегорели. =\
[18:12:01] <rexim> Хотя, чо я выёбываюсь? Производить такой контент-то врядли способен...
[18:12:55] <m4n71k0r> rexim: на тебя мозгоструи в суд подадут) https://avatars1.githubusercontent.com/u/18597647?v=3&s=70
[18:12:57] <rexim> Minoru: сегодня хаскель если что.
[18:13:15] <m4n71k0r> блин, я только сейчас заметил)
[18:17:39] <Minoru> rexim: эмулятор движения flocks of boxen пишешь? Надо заглянуть!
[18:18:15] <rexim> Minoru: ага! =3
[18:22:11] <Minoru> кстати, я таки засунул кучу данных (170к уникальных слов, 750к пар слов) в PostgreSQL и попытался сгенерировать фразу длинной 11 слов. Прервал запрос спустя 20 минут. Не катит идея :(
[18:22:40] <Minoru> и мне уже не настолько интересно, чтобы я пытался её как-то иначе заимплементить
[18:23:18] <Товарищ Чпок> Minoru, https://translate.yandex.ru/ocr
[18:23:44] <Minoru> вот тут чувак что-то таки заимплементил, кстати: https://ef.gy/sql:markov-chains
[18:24:23] <Minoru> Товарищ Чпок: для ленивцев, не способных вбить текст на японском в Google Translate :)
[18:25:05] <Товарищ Чпок> Minoru, и такое)
[18:26:17] <ForNeVeR> Minoru: непонятно, что и каким способом ты пробовал делать.
[18:27:58] <Minoru> ForNeVeR: имеет ли смысл шарить код без входных данных? Я просто из логов фраз набрал и не хочу показывать.
[18:28:23] <ForNeVeR> Minoru: я хочу подход посмотреть, данные мне без надобности — я даже запускать его не собирался. Имеет.
[18:28:25] <Minoru> ну и, повторюсь, мне надоело про эту проблему думать. Пока что, во всяком случае
[18:28:42] <Minoru> гм, ну ладно, сейчас на gist выложу запрос
[18:29:23] <ForNeVeR> Помни дзен питона.
[18:29:43] <ForNeVeR> Простое лучше сложного; круглое лучше квадратного; расшарить лучше, чем не расшарить.
[18:29:57] <rexim> Смешать но не взбалтывать.
[18:30:02] <ForNeVeR> Да.
[18:30:21] <Товарищ Чпок> Смешить, но не разбалтывать!
[18:30:50] <ForNeVeR> А вот такого там уже не было!
[18:31:32] <Minoru> ForNeVeR: да там и про шаринг-то не было…
[18:32:01] <ForNeVeR> Minoru: зато структура удобная, можно любые дополнительные утверждения туда навесить.
[18:32:15] dzhon вышел из конференции
[18:32:49] <Minoru> ForNeVeR: https://gist.github.com/Minoru/d3e66091a5c2628cebf4a8155f3ce7e2
[18:33:01] <Minoru> до подсчёта вероятностей дело вообще не дошло
[18:33:22] <rexim> О збс! Мне сейчас приложение ютуба оповестило что Tsoding начал трансляцию!
[18:33:25] <Minoru> честно говоря, я не знаю даже, на что надеялся. На магию?
[18:33:27] <rexim> Пойду посмотрю
[18:33:28] dzhon зашёл в конференцию
[18:33:51] <ForNeVeR> Minoru: unique в постгресе создаёт индекс, или это только контрейнт?
[18:33:51] <Minoru> rexim: ты их вроде как никогда не пропускаешь!
[18:34:21] <Minoru> ForNeVeR: не знаю. Это не важно, я word тоже не юзаю
[18:34:48] <ForNeVeR> Minoru: да у тебя таблица без индексов отчего-то!
[18:35:00] <Minoru> PRIMARY KEY должен создавать индекс емнип
[18:35:12] <ForNeVeR> А REFERENCES — не должен.
[18:35:19] <Minoru> гм, это да
[18:35:25] <ForNeVeR> Ну то есть запрос в трубу.
[18:35:32] <ForNeVeR> Добавь индексы и повтори!
[18:36:09] <ForNeVeR> Только на first/second; на word не нужно, само собой.
[18:36:11] rexim вышел из конференции
[18:36:41] <Товарищ Чпок> $send rexim Чпок.
[18:36:43] <horta hell> Товарищ Чпок: Сообщение помещено в очередь.
[18:37:15] <Minoru> PRIMARY KEY (first, second) сейчас допишу и гляну
[18:37:45] <ForNeVeR> Я не уверен, что это сработает.
[18:37:48] <Minoru> а, это может быть не то, что нужно
[18:37:54] <Minoru> да, добавлю отдельно индексы на колонки
[18:38:12] <ForNeVeR> Не, оно могло и сработать, я правда не знаю. Можно было бы план запроса глянуть.
[18:40:40] <Minoru> всё сломалось :(
[18:41:56] <Minoru> я, в общем, написал на Haskell штуку, которая мне из логов делает большущий SQL-скрипт, который делает таблички и вставляет в них данные. Но я запускал это на какой-то части логов (цифры выше). Сейчас уже не знаю, на какой именно. А на полном наборе что-то какой-то некорректный SQL получился
[18:42:44] <m4n71k0r> теперь напиши штуку, которая будет проверять корректность
[18:43:01] <Minoru> возможно, PostgreSQL не нравится, что я молмиллиона значений одним insert-ом вставить пытаюсь?
[18:43:19] <m4n71k0r> хм
[18:43:36] <Laz> напиши скрипт, который просто коннектицо к посгресу и вставляет туда всё, что нужно
[18:43:45] <Laz> зачем промежуточный скрипт?
[18:43:49] xmi вышел из конференции
[18:43:54] <Minoru> Laz: я кондуиты учил :)
[18:44:06] <Laz> кондуиты сила
[18:44:28] <Minoru> Data.Map.Strict могила. Так и не заставил её не жрать память :(
[18:44:38] <Laz> да, точно
[18:44:49] <Laz> всё никак не мог придумать, что могила :)
[18:45:12] <Laz> разве что сайд-эффекты, композиция и константность времени и памяти
[18:46:24] <Minoru> хм, оказывается, у меня в логах есть сообщения больше четырёх килобайт. Ну ок.
[18:47:27] <Minoru> PostgreSQL сожрал четыре гига памяти уже на этапе вставки данных в таблицы!
[18:47:37] <Minoru> как бы его OOM не пришиб…
[18:47:47] <Minoru> OOM killer, в смысле
[18:48:16] <ForNeVeR> Какая хорошая СУБД, как она умело утилизирует ресурсы компьютера!
[18:48:46] <Minoru> ну в целом да. Всё, что было свободно, сожрала — ни байтом больше!
[18:48:56] <Minoru> и не отдаёт, кстати, даже когда insert закончился
[18:49:03] <Laz> а чо бы не сделать Sink, который будет всё, что в него приходит, в базу?
[18:49:24] <ForNeVeR> Эта задача решается более, чем за три минуты.
[18:51:15] <Laz> да ну
[18:51:28] <Laz> mapM_ insert
[18:51:32] <ForNeVeR> Ну давай, сделай.
[18:51:35] <ForNeVeR> Время фиксирую.
[18:51:47] <ForNeVeR> Скажи, когда начнёшь.
[18:52:09] <ForNeVeR> # Техническое задание
[18:52:43] <Minoru> Laz: я подозреваю, что это будет адски тормозить. У меня первая версия скрипта генерировала по одному INSERT на слово, и оно работало ме-е-е-е-е-е-едленно (as in «я не дождался, пока оно вставит 170к записей»). А один INSERT с таким же количеством записей отрабатывал за полминуты (скрипт для создания этого INSERT — тоже полминуты)
[18:53:09] <ForNeVeR> Сделать программу, которая на вход принимает разбитый на строки контент, и вставляет этот контент в PostgreSQL. Параметры подключения прочитать из конфига, вставлять в таблицу произвольной структуры (какую хошь сделай). DDL на таблицу тоже предоставь, на это тебе дополнительная минута.
[18:53:31] xmi зашёл в конференцию
[18:54:10] <Laz> контент и таблица на моё усмотрение?
[18:54:14] <ForNeVeR> Ну, я б лично на такую задачу не менее чем полчаса брал — даже если б разбирался в Хаскеле. Пока ты там с модулем разберёшься, пока синки с кондуитами настроишь.
[18:54:32] <ForNeVeR> Laz: контент текстовый (каждая строка инпута кладётся в текстовое поле в таблице)
[18:54:40] <Laz> а, понел
[18:54:45] <Minoru> я за три минуты не успею даже существующий код под это ТЗ подогнать ._.
[18:54:47] <ForNeVeR> Собственно, таблицу можешь сделать из единственного текстового поя
[18:55:33] <Minoru> ForNeVeR: а почему каждая строка, когда каждое слово? Или твоё ТЗ лишь вдохновлено текущей задачей?
[18:56:09] <ForNeVeR> Minoru: ну, я его sortof придумал на ходу :)
[18:56:37] <ForNeVeR> Laz: если и правда возьмёшься, то я над тобой смеяться не буду, если в ограниченный временной лимит не уложишься. И мне правда будет интересно посмотреть код, ла.
[18:56:40] <ForNeVeR> s/ла/да/
[18:56:41] <horta hell> ForNeVeR: L-z: если и правда возьмёшься, то я над тобой смеяться не буду, если в ограниченный временной лимит не уложишься. И мне правда будет интересно посмотреть код, да.
[18:56:44] <Laz> а чо, конфиг обязательно парсить?
[18:56:53] <Laz> с параметрами подключения
[18:56:54] <ForNeVeR> Пофиг, захардкодь
[18:57:00] <Товарищ Чпок> Minoru, в постгре же можно сразу несколько вставок сделать за один insert
[18:57:10] <Minoru> Товарищ Чпок: везде можно
[18:57:23] <ForNeVeR> Наверняка не везде, но почти везде.
[18:57:30] <Minoru> Товарищ Чпок: я просто не знал, что разница в производительности будет и что она будет настолько разительной
[18:57:35] <Minoru> (в TODO ещё выяснить, почему так)
[18:59:24] <Laz> ладно, ща попробую чо-нибудь набыдлить
[18:59:27] <ForNeVeR> Minoru: разница между чем и чем?
[18:59:54] <Minoru> ForNeVeR: между миллионом отдельных инсертов и одним инсертом на миллион значений
[19:00:12] <Товарищ Чпок> Minoru, Ну, он просто сразу вляпывает одну запись на диск.
[19:00:21] <Товарищ Чпок> А там миллион отдельных.)
[19:00:50] <Товарищ Чпок> Затраты на сериализацию/десериализацию, трансфер данных... Учёт всех этих транзакций...
[19:01:23] <ForNeVeR> Да, кстати, миллион инсёртов — это же, хм, миллион транзакций?
[19:01:44] <ForNeVeR> А, значит, миллион синков на диск.
[19:01:59] <ForNeVeR> Minoru: в транзакцию попробуй это сунуть.
[19:02:24] <ForNeVeR> Хотя я бы сделал булки транзакций по тысяче штук, например.
[19:02:28] <Minoru> так-с, добавил индексы, поглядел на explain analyze — там куча nested loops с seq scan, только внешний цикл использует индекс
[19:02:34] <Minoru> попробую-ка пошаманить
[19:02:52] <ForNeVeR> Minoru: а можешь обновить гист и план тоже туда выложить?
[19:03:03] <Minoru> ForNeVeR: да пофигу, эта часть уже работает и не сильно релевантна. 2,5 миллиона записей вставило за 111 секунд, мне норм
[19:04:41] <ForNeVeR> А. Ок
[19:05:07] <ForNeVeR> Minoru: погоди, план-то всё равно покажи. Не вставки, а запроса.
[19:05:15] <ForNeVeR> Мы же его исследуем.
[19:07:05] <Minoru> ForNeVeR: https://gist.github.com/Minoru/d3e66091a5c2628cebf4a8155f3ce7e2#file-query_plan-txt
[19:08:11] <Minoru> схему только что ещё обновил, чтобы показать, какие индексы добавил
[19:09:25] <ForNeVeR> Окей, теперь выглядит интересно.
[19:09:30] <ForNeVeR> А запрос так и не выполнился?
[19:10:14] <ForNeVeR> rows=15686548802972587549882262770004659273728 — чото больно уж дохера!
[19:10:24] <Товарищ Чпок> Minoru, попробуй заменить джоины на подзапросы.
[19:10:44] <ForNeVeR> Minoru: а что ты хотел из этих данных выбрать?
[19:10:46] <Minoru> ForNeVeR: выолнился за семь секунд, но там же limit 20
[19:10:46] <Товарищ Чпок> Или можно lateral
[19:11:04] <ForNeVeR> Я боюсь, что рандомизация подкачает :(
[19:11:16] <Minoru> погодите, я с индексом не разобрался ещё. Я уже не помню, как сделать индекс по функции!
[19:11:18] <ForNeVeR> Товарищ Чпок: да погоди, там же норм.
[19:12:08] <ForNeVeR> Товарищ Чпок: ну и чото обычно наоборот советуют — подзапросы на джойны.
[19:13:46] <Minoru> ForNeVeR: а я хотел «в лоб» задачу решить: пусть мне СУБД сделает все возможные фразы заданной длинны, а я уж дальше сам выберу, какую пользователю показать. Я ещё хотел по counts высчитывать вероятность каждой фразы, но до этого дело не дошло
[19:14:10] <ForNeVeR> Minoru: но ты ж не хотел список всех на свете фраз? ._.
[19:14:10] <Minoru> сделал create index idx_second_nonzero on wordpairs((second != 0)); — в плане ничего не поменялось
[19:14:37] <Minoru> ForNeVeR: нет, только список фраз конкретной длинны
[19:14:44] <Товарищ Чпок> ForNeVeR, к концу месяца Ярославль станет на время Сибирью https://www.gismeteo.ru/weather-yaroslavl-4313/month/
[19:14:44] <ForNeVeR> Хм.
[19:15:07] <ForNeVeR> Товарищ Чпок: у вас влажность выше. Не заебнейте там!
[19:15:17] <Товарищ Чпок> ForNeVeR, постараемся(
[19:15:26] <Товарищ Чпок> Хорошо, что у меня есть USHANKA.
[19:15:32] <ForNeVeR> Хе-хе :)
[19:15:33] <Товарищ Чпок> Minoru, а индекс условный?
[19:15:48] <Minoru> Товарищ Чпок: нет. А очень надо? Могу и условный сделать.
[19:15:54] <Товарищ Чпок> Сделай.
[19:15:58] <Товарищ Чпок> Прям по такому условию.
[19:16:07] <Товарищ Чпок> Индекс будет легче и быстрей.
[19:16:07] ckorzhik зашёл в конференцию
[19:16:34] <ForNeVeR> Товарищ Чпок: НА, ВЫПЕЙ ВОДКИ
[19:16:38] <ForNeVeR> Товарищ Чпок: ПОГЛАДЬ МЕДВЕДЯ
[19:16:44] <Товарищ Чпок> ForNeVeR, СПАСИБО, ТОВАРИЩ!
[19:16:46] <ForNeVeR> Товарищ Чпок: ВКЛЮЧИ РЕАКТОР ПОСИЛЬНЕЙ!
[19:17:10] <Minoru> Товарищ Чпок: сделал create index idx_second_nonzero_pred on wordpairs((second != 0)) where second != 0; — в плане ничего не поменялось
[19:17:16] <ForNeVeR> СИИИБИРСКИЙ ФЕДЕРАЛЬНЫЙ ОКРУУУГ
[19:17:31] <Товарищ Чпок> Minoru, да ты на весь запрос заебень)
[19:17:46] <Товарищ Чпок> И можешь даже форсировать использование индекса.
[19:17:50] <Minoru> Товарищ Чпок: э-э-э, куда? Я не понял.
[19:18:10] <Товарищ Чпок> Всё вот это! https://gist.github.com/Minoru/d3e66091a5c2628cebf4a8155f3ce7e2#file-query_plan-txt-L27-L39
[19:18:12] <Товарищ Чпок> Наверное.
[19:18:54] <ForNeVeR> А так разве можно?
[19:19:04] <Minoru> и чем мне это поможет? У меня outermost цикл и так юзает индекс, а вот остальные юзают seq scan почему-то
[19:19:16] <Товарищ Чпок> ForNeVeR, а почему нет?
[19:19:23] <ForNeVeR> Товарищ Чпок: даже если б такой индекс можно было сделать, он бы охватывал 752047204252273649729621230104690672623681536 строк.
[19:19:24] <Товарищ Чпок> Хм...
[19:19:30] <Товарищ Чпок> И правда.
[19:19:38] <ForNeVeR> Это что дохуя :)
[19:19:44] <ForNeVeR> s/что/чот/
[19:19:46] <horta hell> ForNeVeR: Это чот дохуя :)
[19:19:48] <Товарищ Чпок> Тогда, я полагаю, надо переделывать структуру БД?
[19:19:57] <ForNeVeR> Ваши предложения?
[19:20:03] <ForNeVeR> Вообще, структура мне сейчас нравится.
[19:20:27] <ForNeVeR> У меня такое же строится в памяти для случая Rank = 1.
[19:21:11] <ForNeVeR> Но эта структура не даёт эффективно строить фразы заданной длины, как мне кажется.
[19:21:17] horta hell вышел из конференции
[19:21:32] <ForNeVeR> Я хотел для этого скомбинировать префиксное и суффиксное дерево.
[19:21:43] horta hell зашёл в конференцию
[19:21:43] <ForNeVeR> Minoru: а ты вообще какую задачу решаешь?
[19:22:43] <Minoru> задачу удовлетворения любопытства ._.
[19:22:51] <ForNeVeR> А, тогда ок :)
[19:23:48] <Minoru> вообще я надеялся, что СУБД будет этими всеми данными как-то умней воротить, чем Platonus. Но без конкретных ожиданий; я просто хотел какой-то магии :)
[19:24:15] <Minoru> я там выше кидал ссылку на markov.sql; это что-то релевантное, но я ещё не прочитал толком
[19:24:18] <Minoru> и там нет бенчмарков
[19:31:21] <m4n71k0r> Товарищ Чпок: а можно вкратце, о чём ваще речь? Чем там минорыч упоролся?
[19:31:49] <Товарищ Чпок> m4n71k0r, сначала инсёрты, теперь селект.
[19:31:52] <Товарищ Чпок> Оптимизация.
[19:32:03] <Товарищ Чпок> over дохуя джоинов.
[19:32:09] <Товарищ Чпок> Не оч хорошо, ящитаю
[19:32:10] <Товарищ Чпок> .
[19:32:13] <Minoru> всего 12 штук, чего ты ._.
[19:32:14] <m4n71k0r> Товарищ Чпок: он пилит цепи маркова?
[19:32:21] <Товарищ Чпок> m4n71k0r, вроде да.
[19:32:28] <m4n71k0r> Minoru: 12 - мало
[19:32:37] <m4n71k0r> а сколько сущностей?
[19:32:43] <Minoru> две ._.
[19:32:48] <m4n71k0r> ы
[19:33:00] <Minoru> я одну из них с самой собой джойню. 12 раз. И это не предел!
[19:33:09] <m4n71k0r> не, так не надо
[19:33:31] <m4n71k0r> ну пару раз (для двусвязных списков) туда-сюда
[19:33:51] <m4n71k0r> ну три...
[19:33:59] <m4n71k0r> 12 - это как-то ашпе жестоко
[19:34:24] <m4n71k0r> хотя орацлисты любят всё средствами БД делать
[19:34:25] <Minoru> 12 — это всего лишь для фраз из 11-и слов. А я по 31 слову запрашиваю!
[19:34:37] <m4n71k0r> почему не 42 ?
[19:35:23] <Minoru> потому что на 31 данных редко хватает, на 42 вообще никогда, наверное, не хватит; разве что писать не фразами, а трактатами целыми, которые потом можно разворачивать, и разворачивать, и разворачивать — до бесконечности!
[19:35:47] <Minoru> ↑ 32 слова всего
[19:36:06] <m4n71k0r> Minoru: я вроде бы в Декамероне видел предложения длиннее 31
[19:36:20] <m4n71k0r> какой-то витиеватый перевод
[19:36:53] <Minoru> а я всё ещё не прочитал :(
[19:36:55] Graf зашёл в конференцию
[19:36:56] Graf вышел из конференции
[19:37:26] <m4n71k0r> Minoru: я тоже... устал. Думал, что после Братьев Карамазовых могу прочитать что угодно
[19:38:20] <Товарищ Чпок> Внимание, анекдот!
[19:38:26] <Товарищ Чпок> Поймали Наёмники Сталкера, окунают его в воду и спрашивают:
- Деньги, бабло, артефакты есть?
Сталкер:
- Нет.
И опять окунают в воду и спрашивают:
- Деньги, бабло, артефакты есть?
Сталкер:
- Да нету, нету!
А они опять окунают :
- Деньги, бабло, артефакты есть?
Ну сталкер не выдержал:
- Блин, вы либо дольше держите, либо глубже опускайте ! Вода мутная - нихрена не видно!
[19:38:31] <Minoru> а я и «Братьев Карамазовых» всё ещё не прочитал…
[19:39:08] <ForNeVeR> Инквизитор Фёдор Карамазов!
[19:39:31] <Minoru> стоп, «Братья» что, тоже по вселенной WH40k?!
[19:39:37] <ForNeVeR> Ну да.
[19:39:53] <ForNeVeR> Два брата: лорд-инквизитор и лорд-губернатор.
[19:41:22] <Minoru> я, кстати, начал «Алмазный век» читать. Ну, как «начал»: уже процентов 40 прочитал. Очень-очень-очень доволен! От «Лавины» я гораздо меньше тащился. А тут такие-то описания, такой-то язык, ух!
[19:41:51] <m4n71k0r> Minoru: а читал Джо Аберкромби?
[19:42:14] <m4n71k0r> это автор такой
[19:42:17] <Minoru> m4n71k0r: какие-то знакомые слова, но не могу вспомнить, где и в связи с чем слышал. Нет, не читал
[19:43:11] <m4n71k0r> мне нравится тёмное фэнтези, где эльфы нехило отхватывают пиздюлей, где главный герой может сдохнуть от какой-нибудь дряни в конце и тому подобное
[19:44:44] <m4n71k0r> вот один из героев (кстати, инквизитор) который мне нравился у Аберкромби http://ru.world-circle-ru.wikia.com/wiki/Занд_дан_Глокта
[19:44:57] <Minoru> мне такого фана пока что в «Песни льда и пламени» хватало. Я после первых двух книжек уже не уверен, что хочу читать что-то, где героям не везёт всё время :)
[19:44:59] <ForNeVeR> Ну и имечко.
[19:46:14] <m4n71k0r> не," Песнь льда и пламени"... Жорж Мартин просто мудак)
[19:47:02] <ForNeVeR> А я щас скажу, щас скажу...
[19:47:03] <m4n71k0r> я когда до пятого тома дополз был в смятении
[19:47:12] <ForNeVeR> Я тоже хорошую книжку этого плана читал.
[19:47:13] <m4n71k0r> ForNeVeR: скажи
[19:47:17] <m4n71k0r> сказал
[19:47:27] <ForNeVeR> Токо название вспомню...
[19:47:34] <Minoru> я боюсь читать дальше второй, потому что потом буду сидеть и ждать следующей, а Мартин её всё никак не напишет!
[19:47:37] <m4n71k0r> автора вспомни
[19:47:54] O01eg зашёл в конференцию
[19:48:19] <m4n71k0r> Ведьмак понравился... но там всё-таки как-то весело даже
[19:48:23] <ForNeVeR> Это был Борисенко, цикл "Чёрная магия".
[19:48:29] <ForNeVeR> Збс, рекомендую.
[19:48:37] <m4n71k0r> я что-то даже читал оттуда
[19:48:38] <ForNeVeR> Там три книжки, и все хорошие.
[19:49:15] <ForNeVeR> Minoru: ↑
[19:49:24] <Minoru> а я впервые слышу. Спасибо
[19:49:58] <m4n71k0r> блин, а таких книжках любят плащики из человеческих лиц
[19:50:10] <ForNeVeR> Я даже не знаю, как охарактеризовать, чтоб ничо не заспойлить :)
[19:50:23] <m4n71k0r> ветер колышет плащик, а рожицы корчатся
[19:50:26] <ForNeVeR> Вроде не было таких плащиков, хз.
[19:50:40] <ForNeVeR> Не слишком ли это пафосно?
[19:51:04] <m4n71k0r> а я где-то читал... автора забыл
[19:51:50] superka вышел из конференции
[19:53:33] <ForNeVeR> - обновил TypeScript до распоследней версии, мухаха
[19:53:36] <ForNeVeR> Ой, не сюда :(
[19:54:11] <ForNeVeR> Это я ченжлог в рабочий чатик пишу.
[20:00:06] <RAMZAY> ForNeVeR: интересные у тебя чендж логи
[20:00:18] <ForNeVeR> Ну так это внутренний.
[20:00:46] <RAMZAY> читать наверное нужно как
«Обновил вам TS - ебитесь как хотите, но что бы сука всё работало как раньше, муахахаххахаха»
[20:01:11] <m4n71k0r> хм
[20:01:29] <RAMZAY> У меня фенечка растянулась за пол года ='(
[20:02:26] <RAMZAY> Интересно, а тянку, которая мне подарила эту фенечку тоже растянули ? Мву-ха-ха-ха. (чот и меня пропёрло под конец вечера на стрёмный юморок)
[20:02:32] <ForNeVeR> о_О
[20:02:38] <m4n71k0r> ечязб
[20:02:48] <ForNeVeR> Товарищ Чпок: тут, вон, по твоей части шуточки.
[20:03:30] <RAMZAY> ForNeVeR: что там кстати в новой версии TS ?
[20:03:42] <ForNeVeR> Там чудеса, там леший бродит!
[20:03:59] <RAMZAY> я слышал таргетинг подняли
[20:04:04] <m4n71k0r> .seen folex
[20:04:05] <DeadBot> m4n71k0r: folex был тут 7 месяцев 30 дней 5 часов 55 минут 34 секунды назад
[20:04:23] <ForNeVeR> RAMZAY: да хрен его знает. Я покамест активно юзаю только новый module resolution.
[20:04:38] <RAMZAY> а щито это?
[20:04:43] <ForNeVeR> Ну, оно у меня в версии 2 начинает нормально находить модули и дефинишены, которые 1.8 не мог найти.
[20:04:51] <ForNeVeR> В первую очередь касается node_modules/@types
[20:05:16] <RAMZAY> хм
[20:05:18] <ForNeVeR> Ну и, да, я везде повыпиливал все эти костылидзе tds / typings, и ставлю типы из npm. Очень удобно.
[20:05:33] <RAMZAY> начать писать след UI на TS
[20:05:38] <ForNeVeR> У меня некоторые сотрудники за проксёй, и им надо было трахаться отдельно с npm и отдельно с tsd / typings.
[20:05:45] <ForNeVeR> А теперь не надо больше. Это очень ок.
[20:05:57] <RAMZAY> гуд
[20:06:40] <Minoru> ForNeVeR: Стикс теперь считается проксей? Ну ок.
[20:07:01] <ForNeVeR> Minoru: сотрудники, а не клиенты!
[20:07:18] <ForNeVeR> И, кстати, я, когда у них был, то не видал никакого Стикса.
[20:07:34] <ForNeVeR> Кажись, там сразу ад начинается. Наверное, Стикс в древнегреческом отделении.
[20:20:07] <Laz> ну и задачка ёпт
[20:20:14] <Laz> чо-то я в линзы залип
[20:20:18] dzhon вышел из конференции
[20:21:18] <Laz> с этим вашим посгресом
[20:25:35] <Minoru> Laz: а зачем тебе там линзы понадобились?
[20:25:52] <Laz> да они там не нужны
[20:26:04] <Laz> просто габриэль гонцалез - упоротый фрик
[20:26:10] <Minoru> э-э-э
[20:26:14] <Laz> юзает их в своих либах
[20:26:15] <Laz> https://gist.github.com/vasiliyl/802b99516dc85fe5fdbfab3895b5fec0
[20:26:18] <Minoru> ты пайпы вместо кондуитов взял?
[20:26:20] <Laz> вот набыдлил что-то
[20:26:31] <Laz> я и то, и другое решил потыкать
[20:28:24] <Minoru> м, неплохо выглядит
[20:29:21] <Laz> только я не проверял ничего
[20:29:31] <Laz> посгреса под рукой нет, а мне ещё поработать надо бы
[20:30:58] <Laz> а в линзы залип, потому что думал строки на слова побить, а там какой-то ад...
[20:32:02] <Laz> https://www.stackage.org/haddock/lts-7.3/pipes-text-0.0.2.4/Pipes-Text.html#v:lines
[20:32:08] <Laz> > Split a text stream into FreeT-delimited lines
[20:32:18] <Laz> што это за херня?
[20:35:03] <Minoru> хм, не знаю такого трансформера
[20:35:38] <Laz> не, я-то знаю
[20:35:45] <Laz> это типа свободная монадка
[20:36:00] <Minoru> я не раскуривал ещё
[20:36:08] <Laz> но тащемта на этом мои знания и заканчиваются
[20:36:23] <Laz> накой хрен оно нужно для разбиения текста на слова - хз
[20:37:42] RAMZAY вышел из конференции
[20:39:07] <Laz> а ещё отсутствие allocate в Pipes.Safe огорчило
[20:39:22] <Minoru> что за allocate?
[20:39:31] <Minoru> на языке кондуитов это что?
[20:39:37] <Laz> это из MonadResource
[20:39:47] <Laz> типа как bracket
[20:39:57] <Laz> то есть, аллокация ресурса с его гарантированным освобождением
[20:40:04] <Minoru> м, окей
[20:40:33] <Laz> вот тут статейка от микаэля сноймана про этот трансформер https://www.schoolofhaskell.com/user/snoyberg/library-documentation/resourcet
[20:40:55] <Laz> он повсеместно в кондуитах используется
[20:41:03] <Laz> да и в других либах от fpco
[20:41:54] <Minoru> да, я видел его в кодуитах, но повода вникнуть не было
[20:42:44] <Laz> я в одном кодце использую
[20:43:07] <Laz> там по ходу работы создаются процессы, в них заливаются данные
[20:43:22] <Laz> соответственно, я при создании процесса сразу регистрирую его уничтожение
[20:43:57] <Laz> и дальше как только вычисление завершается, они все успешно подыхают
[20:44:52] <Laz> и, вроде как, pipes-safe - это аналог resourcet, но allocate нет
[20:48:59] <Laz> вообще, как я понял, микаэль снойман склонен изобретать велосипеды, а габриэль гонцалез по-максимуму использует существующие либы
[20:49:58] <Minoru> кстати, а pipes вообще живы? Я помню, около года назад они как-то одновременно с conduits развивались, типа гонка была (до этого ещё enumeratees Олега были, но их, я так понял, после появления pipes и conduits никто не использует). Но потом такое впечатление, что pipes как-то по-тихоньку сошли на нет. Или это просто у Сноймана пиар-машина не выключилась и я про кондуиты много слышу?
[20:50:01] <Laz> поэтому, например, у кондуитов под капотом есть так называемый Leftover - leftover input, which should be provided to future operations.
[20:50:16] <Laz> а в пайпсах ничего такого нет, и используется StateT
[20:51:04] <Laz> да живы, вроде
[20:51:59] <Laz> мне кажется, тут как со снежным комом аналогия
[20:52:22] <Laz> смотришь такой - чтоб взять, кондуиты или пайпсы; ну вроде у кондуитов больше пользователей, возьму их
[20:52:33] <Laz> s/чтоб/что б/
[20:52:35] <horta hell> Laz: смотришь такой - что б взять, кондуиты или пайпсы; ну вроде у кондуитов больше пользователей, возьму их
[20:52:47] <Laz> horta hell: спасибо
[20:53:17] <Laz> а так, мне габриэль как-то посимпатичнее
[20:53:50] <Laz> он на теорию налегает, всякие там свойства доказывает
[20:54:29] <Laz> https://github.com/jwiegley/coq-pipes
[20:56:19] <Minoru> Снойман, кажется, с более индустриальным уклоном, и это тоже хорошо
[20:56:52] <Laz> ну да, он с точки зрения продакшона подходит
[21:15:43] unixorn вышел из конференции
[21:21:17] horta hell вышел из конференции
[21:21:33] horta hell зашёл в конференцию
[21:22:09] portnov вышел из конференции
[21:45:36] Graf зашёл в конференцию
[21:45:49] Graf вышел из конференции
[21:48:48] Laz вышел из конференции
[22:00:06] unclechu зашёл в конференцию
[22:00:47] unclechu вышел из конференции
[22:24:50] rexim зашёл в конференцию
[22:25:49] <rexim> Minoru: чепоку-чепоку? https://github.com/tsoding/boids/pull/21
[22:30:59] xmi вышел из конференции
[22:31:25] <Minoru> rexim: ты хочешь, чтобы я это поревьюревьивьивьил?
[22:33:06] <rexim> Minoru: ага! Но только если ты сам этого хочешь!
[22:33:16] <rexim> Ревью должно быть по обоюдному согласию!
[22:33:44] <Minoru> разговор резко свернул куда-то не туда ._.
[22:33:50] <rexim> ._.
[22:33:57] <rexim> Ну тыж меня понял!
[22:34:31] <Minoru> понял-понял
[22:34:45] <m4n71k0r> дядь, если ты нигде расстояние не юзаешь, кроме как при сравнении расстояний, то имеет смысл сравнивать квадраты расстояний
[22:35:16] <rexim> m4n71k0r: я не вижу комментария в реквесте.
[22:35:31] <m4n71k0r> я не буду комментировать, дядь
[22:35:47] <rexim> m4n71k0r: тогда я тебя и слушать не буду.
[22:35:55] <rexim> Все очень просто.
[22:36:00] <m4n71k0r> безусловно
[22:37:35] <Minoru> теперь мне стыдно за то, что я первым делом обратил внимание на названия функций ._.
[22:53:55] xmi зашёл в конференцию
[22:54:02] <rexim> m4n71k0r: https://www.youtube.com/watch?v=zaKTNK8g2-M
[22:54:36] <m4n71k0r> rexim: он устал
[22:55:13] <rexim> Как и все мы.
[22:55:43] <rexim> m4n71k0r: Егор устал от твоего процедурного кода!
[22:56:30] <m4n71k0r> rexim: не может быть такого
[22:57:03] <rexim> безусловно
[23:16:30] <Minoru> короче, я не умею в код ревью. Из восьми комментов только два относятся к собственно коду, и только один имеет отношение к maintainability; всё остальное по «мягким» вопросам вроде именования значений
[23:16:56] xmi вышел из конференции
[23:17:26] <rexim> Minoru: ну ты еще учитывай, что комменты очень сильно зависят от самого кода.
[23:17:45] <rexim> Minoru: ну, я к тому, что ты не бери столько на свой счет. :)
[23:17:54] <rexim> Minoru: спасибо тебе большое!
[23:18:25] <rexim> Minoru: я скоро спати пойду. Я почитаю комменты завтра. Еще раз спасибо большое!
[23:22:49] <Minoru> rexim: спокойного спати!
[23:22:59] <rexim> Minoru: пасибо! ^_^
[23:23:08] <rexim> Я просто хочу Егора дослушать.
[23:23:19] <rexim> Хм... Может слушать его как сказки на ночь?
[23:42:57] rexim вышел из конференции
[23:51:12] Minoru вышел из конференции
[23:53:14] ckorzhik вышел из конференции
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!