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

Тема: C, С++, D, Java, C#, Haskell, Ruby, Scheme, Common Lisp, Erlang, OCaml, JavaScript, TypeScript, Clojure, Scala, Nemerle, F#, Groovy, R, Rust.
Dead Food: Flash, PHP, Pascal/Delphi/Borland, Basic, 1С.
HQ: http://codingteam.org.ru
0xDead Food: http://leechcraft.org
Live Food: http://loglist.net/
Fast Food: http://hastebin.com/
Instagram Food: http://tinyurl.com/ctcjr-logs
Report Developer Abuse: http://loglist.net/quote/new
Morning Tsoding(вт, чт, сб, вс, збс): http://www.youtube.com/channel/UCEbYhDd6c6vngsF5PQpFVWg
[00:00:35] <ɹǝɟılʍǝu> gsomix, классно =)
[00:00:54] <ɹǝɟılʍǝu> Minoru, а ты не толстый? // пардон за вопрос
[00:01:39] <gsomix> Minoru, а ты не зеленый? // пардон за вопрос
[00:02:07] <ɹǝɟılʍǝu> gsomix, он оранжевый
[00:02:13] <ɹǝɟılʍǝu> Пруф http://pastexen.com/i/o6G8DH8yfC.png
[00:02:33] <gsomix> Хм...
[00:03:52] <ɹǝɟılʍǝu> Minoru, просто я вот тощий и всегда хочу жрать
[00:03:58] <ɹǝɟılʍǝu> И жру ведь.
[00:04:08] <gsomix> ɹǝɟılʍǝu, http://www.atoptics.co.uk/fza57.htm
[00:04:16] <gsomix> Красивый эффект.
[00:05:19] <rexim> Нялайфер ищет у кого бы зобрать жыр!
[00:05:29] <ɹǝɟılʍǝu> gsomix, ого как красиво
[00:05:34] <ɹǝɟılʍǝu> rexim, не, лучше мясцо)
[00:11:50] <ɹǝɟılʍǝu> gsomix, склеил http://i.imgur.com/Dq8jVS0.png
[00:14:28] portnov вышел из конференции
[00:16:36] <Minoru> ɹǝɟılʍǝu: нет, я дрыщ (70 кило при росте 188см)
[00:16:50] <Minoru> gsomix: обычно нет, телесненький такой
[00:17:45] <ɹǝɟılʍǝu> Minoru, Ъ
[00:17:47] <ɹǝɟılʍǝu> пегас
[00:18:09] <Minoru> я не подхожу по критериям жизнерадостности и распирающей энергии
[00:18:39] <ɹǝɟılʍǝu> Пфф
[00:18:45] <ɹǝɟılʍǝu> Окай)
[00:19:04] <ɹǝɟılʍǝu> Словно говорим про пегаску
[00:19:31] <ɹǝɟılʍǝu> Minoru, как отлаживаться?
[00:19:46] <Minoru> гм, а там что, есть дискриминация критериев по полам? ._.
[00:19:51] <Minoru> Debug.Trace
[00:20:00] <Minoru> и на код пыриться
[00:20:30] <ɹǝɟılʍǝu> Minoru, просто архитим глубже внешнего проявления.
[00:21:14] <Minoru> а, ну ок. Работай над определением дальше, значит; а то я пока что не могу сказать, что грокнул концепцию
[00:21:23] <Minoru> хм, интересно, как это на русский перевели
[00:22:45] <ɹǝɟılʍǝu> Промер офигенный https://hackage.haskell.org/package/base-4.8.1.0/docs/Debug-Trace.html#v:traceShowM
[00:24:07] <Minoru> ты о том, что traceShowM превращается в traceMShow?
[00:24:39] <ɹǝɟılʍǝu> Д
[00:25:09] <Minoru> а вообще спасибо. Я раньше, видимо, доку не читал полностью, и всегда в коде заменял «x» на «trace (show x) x» ._.
[00:25:31] <Minoru> теперь буду юзать traceShowId
[00:25:36] uggur зашёл в конференцию
[00:27:08] <Minoru> «grok» решили не переводить и просто транслитерировали; это ок
[00:30:03] <rexim> https://github.com/rexim/org-cliplink/issues/73
[00:30:08] <rexim> АРВАРВАРВАРА
[00:30:12] <rexim> =3
[00:31:05] <ɹǝɟılʍǝu> Minoru,
Left "'\\n': Failed reading: satisfy"
[00:31:08] <ɹǝɟılʍǝu> Блин
[00:31:31] <ɹǝɟılʍǝu> парсю так
parseCsv :: A.Parser PrePost
parseCsv = do
lawl <- A.takeTill $ A.inClass "\n"
{-lawl <- A.takeText-}
traceShowM $ lawl
A.char '\n'
cover <- parseCoverRow
A.char '\n'
return $ PrePost [Just 0]
[00:32:01] <rexim> лол
[00:32:16] <ɹǝɟılʍǝu> Хм...
[00:32:36] <ɹǝɟılʍǝu> Аг
[00:32:38] <ɹǝɟılʍǝu> Понял
[00:32:39] <ɹǝɟılʍǝu> =)
[00:33:13] <rexim> ɹǝɟılʍǝu: ты на автомате двачешь во все ишуи подряд, которые сюда кидают? (=
[00:33:18] <rexim> двачуешь*
[00:33:34] <ɹǝɟılʍǝu> rexim, да :3
[00:33:36] <rexim> =3
[00:33:51] <Minoru> ɹǝɟılʍǝu: хм, и в чём же там беда? У тебя был файл из одной строки?
[00:34:10] <ɹǝɟılʍǝu> Minoru, второй A.char
[00:34:12] <ɹǝɟılʍǝu> не нужен
[00:34:33] <Minoru> rexim: интересно, чувак дождался, пока у него место в /tmp закончится, прежде чем репортить?
[00:34:44] <Minoru> формулировка просто такая мягкая, ненавязчивая…
[00:34:46] <rexim> Лол
[00:34:48] <rexim> Походу =)
[00:34:56] <rexim> Мне уже немножко стыдно
[00:35:29] <Minoru> это как чувак пришёл в трекер newsbeuter и сказал, мол, это не багрепорт, а просто вопрос — почему newsbeuter с течением времени выжирает гигабайты памяти?
[00:35:50] <Minoru> https://github.com/akrennmair/newsbeuter/issues/220
[00:35:57] <rexim> Ага, секундочку...
[00:36:04] <rexim> Кажется у меня тоже прикольный пример есть)
[00:36:40] ascrazy@jabber.ru зашёл в конференцию
[00:36:42] <rexim> https://github.com/ValveSoftware/steam-for-linux/issues/3671
[00:36:51] <rexim> =)
[00:37:18] <rexim> Minoru: не, ну в стиме чувак еще более спокойно о пиздеце отрепортил :)
[00:38:45] <Minoru> да, у тебя гораздо более офигенная история
[00:38:54] <Minoru> олсо я тоже монтирую диск для бекапов в /media
[00:38:57] * Minoru задумался
[00:39:15] * Minoru захотел NAS
[00:40:04] <rexim> Minoru: а чувак молодец на самом деле
[00:40:06] <rexim> > Edit: Please stop posting stupid image memes or unhelpful messages. This interferes with Valve's ability to sift through the noise and see if anyone can figure out what triggers it.
[00:40:48] <Minoru> вот кстати да, этим Гитхаб, как мне кажется, проигрывает standalone трекерам
[00:41:01] <Minoru> социалочка, приколюхи, смищные шутки, вот это всё
[00:41:37] <rexim> Ага
[00:42:15] <rexim> Хорошо, хоть овнер может удалять любые комменты.
[00:44:29] <Minoru> ничего себе линукс быстро развивается. С момента релиза программы прошло шесть лет, а она уже не собирается, потому что функции из одних хедеров поперемещали в другие
[00:44:37] <Minoru> в системных хедерах, имеется в виду
[00:45:15] <rexim> Ну за шесть-то лет...
[00:45:42] <rexim> Даже для тырпрайза этого достаточно, чтобы что-нибудь куда-нибудь переместить :)
[00:49:38] <Minoru> кокой плохой мир :( Дайте-ка мне какой-нибудь получше!
[00:50:21] <gsomix> Кончились.
[00:50:23] <gsomix> Приходите завтра.
[00:50:37] <ɹǝɟılʍǝu> Minoru, потерпи до 2017го года.
[00:50:41] <ɹǝɟılʍǝu> Он будет простым.
[00:51:01] <Minoru> ɹǝɟılʍǝu: :P
[00:53:42] <Minoru> gsomix: завтра *утром*?
[00:54:09] <Minoru> потому что, эм, уже утро
[00:54:20] <Minoru> и вчерашнее, и завтрашнее — оба разом
[00:54:30] <Minoru> так что давайте сюда мне мой мир!11
[00:55:02] <gsomix> Minoru, завтра утром, все верно.
[00:55:25] <gsomix> Извините, но я не видел, чтобы здесь когда-то была ночь.
[00:55:31] <Minoru> н-ну, это получается сейчас уже
[00:55:36] <gsomix> Нет.
[00:55:37] <Minoru> так что давайте, давайте его сюда
[00:55:37] <gsomix> Завтра же.
[00:55:49] <Minoru> но ведь уже утро
[00:55:53] <Minoru> и оно не заканчивается
[00:56:03] <gsomix> И дни не сменяются.
[00:56:06] <eaeee> gsomix: в java версии тоже такой баг был
[00:56:06] <gsomix> Ночи же нет.
[00:56:07] <Minoru> вы что, хотите сказать, что завтрашнее не наступит?!
[00:56:11] <Minoru> T_T
[00:56:11] <gsomix> МУХАХА
[00:56:22] <gsomix> eaeee, вот!
[00:57:19] <gsomix> Minoru, ɹǝɟılʍǝu, я подумал и решил, что в самообразовании уделю больше внимания прикладной математике.
[00:57:34] <gsomix> Физика и computer science -- очень большие и интересные области, конечно.
[00:57:45] <gsomix> Но я не потяну все сразу.
[00:58:04] <gsomix> А с математикой, кажется, я смогу решать какие-то задачи рядом с физикой и cs.
[00:58:06] <eaeee> gsomix: спасибо за замечание :)
[00:59:10] <Minoru> gsomix: и это хорошо!
[00:59:36] <Minoru> ой, туда теорвер входит
[01:00:07] <gsomix> Да.
[01:00:12] * Minoru , испугавшись, спрятался за печь и сидит там, стуча от страха зубами
[01:00:18] <gsomix> И статистика.
[01:00:32] <gsomix> А от этого можно попробовать что-нибудь в машинном обучении понять.
[01:00:36] <gsomix> Или в статистической физике.
[01:00:47] <gsomix> Ну так, заглянуть, посмотреть.
[01:00:52] <eaeee> gsomix: это ты про что рассказываешь
[01:01:15] <gsomix> eaeee, пытаюсь определиться, чем мне заниматься в будущем.
[01:01:36] ckorzhik вышел из конференции
[01:02:17] <gsomix> Ну, и у меня весь бэкграунд математический.
[01:02:26] <gsomix> Конечно, в университете мне читали много физики.
[01:02:38] <gsomix> Но как эта наука работает и как работают физики -- я хз.
[01:03:03] <gsomix> Что теоретики, что экспериментаторы.
[01:03:31] <gsomix> Мое дело -- написать простых готовых формул, закодить, посчитать на компе.
[01:03:40] <gsomix> Как-то так.
[01:07:01] <rexim> Можно ж в эксельчике тогда!
[01:08:12] <gsomix> Мне нравится Excel. .__.
[01:08:20] <Minoru> ах!
[01:08:23] <gsomix> Я в нем на младших курсах все лабораторные по физике считал.
[01:08:24] * Minoru упал в обморок
[01:08:32] <rexim> Мне тоже
[01:08:40] <rexim> Не, всмысле, концепция spreadsheet
[01:08:42] <gsomix> Пока одногруппники писали программы для расчета на си, питоне и хаскеле.
[01:08:59] <rexim> Самая концепция збс
[01:09:12] * rexim в гуглодоках частенько чего-то считает.
[01:09:23] <gsomix> Угу.
[01:09:45] <rexim> Это же на самом деле ФП в чистом виде.
[01:10:15] * gsomix недавно тыкался в BIGDATA spreadsheet.
[01:10:18] <rexim> Я на spreadsheet делал side-effect free binary search :)
[01:10:27] <rexim> gsomix: и как оно?
[01:10:28] <Minoru> gsomix: лолшто?
[01:10:41] <Minoru> это типа Excel на кластере запускали?
[01:10:54] <rexim> Збс идея же!
[01:11:17] <gsomix> rexim, ничего особенного, сама суть, кажется, была потеряна.
[01:11:19] <Minoru> я не уверен…
[01:11:23] <rexim> Кстати, мне тут кто-то говорил, что BitData это когда данные в эксель не влезают. %)
[01:11:35] <gsomix> Minoru, на лабораторных, какая-то софтина от IBM.
[01:11:39] <rexim> BigData*
[01:11:58] <Minoru> rexim: если у вас BitData, то пора переходить на сишечку
[01:12:16] <rexim> Minoru: ты такой смешной сегодя! =*
[01:12:20] <rexim> сегодня*
[01:12:21] <rexim> Фак!
[01:12:24] <rexim> Пора спать =(
[01:12:34] <Minoru> rexim: я этот твой комментарий не понимаю ._.
[01:12:43] <Minoru> это сарказм, или ты так правда отмечаешь хорошие шутки?
[01:13:01] <rexim> Ну...
[01:13:05] <rexim> Тут все сложно.
[01:13:13] <rexim> Шутка хорошая, говорю честно.
[01:13:14] <Minoru> gsomix: так она чем-то от экселя отличается существенно, софтина эта?
[01:13:15] <rexim> Но
[01:13:34] <rexim> Я над ней уже посмеялся у себя в голове до того, как ты ее озвучил.
[01:13:40] <Minoru> ох
[01:13:46] <Minoru> ты слишком умный!
[01:13:47] <rexim> А когда ты ее озвучил, я уже посмеялся и мне уже было не смешно.
[01:13:49] <rexim> Как-то так.
[01:13:52] <rexim> Эй
[01:13:54] <rexim> Слышь
[01:13:55] <Minoru> как тебя развлекать теперь? :)
[01:13:57] <gsomix> Minoru, нельзя табличку, эм, напрямую править.
[01:13:57] <rexim> Сам ты умный!
[01:14:01] <gsomix> Она же не влезает вся.
[01:14:10] <gsomix> Но всякие формулы есть.
[01:14:10] <rexim> Зачем меня развлекать? :)
[01:14:27] <rexim> Minoru: давай лучше код писать!
[01:14:43] <gsomix> Мне показалось, что это скорее просто UI над их бигдейта субд.
[01:14:51] <Minoru> rexim: ну хз. Людям почему-то приятно других приятных им людей развлекать, насколько я заметил. Я почему-то не исключение.
[01:14:57] <gsomix> Но почему-то там было слово spreadsheet.
[01:15:11] <Minoru> gsomix: да уж
[01:15:14] <rexim> Minoru: давай развлекать друг друга кодом!
[01:15:29] <rexim> Код — это весело!
[01:15:53] <rexim> Хотя я бы сейчас себя сном развлек...
[01:16:01] <rexim> Ладно, давай развлечемся кодом завтра :)
[01:16:05] <eaeee> а у меня нет excel
[01:16:15] <rexim> eaeee: у тебя есть spreadsheet!
[01:16:18] <Minoru> rexim: ну я это, пытаюсь. Вот у меня тут та-а-акой весёлый баг… Версия, на которой его репортили, не собирается. На нынешней баг воспроизводится, но только потому, что там вообще вся функциональность, с ним связанная, не работает (похоже) =\
[01:16:32] <gsomix> Minoru, http://www-01.ibm.com/software/ebusiness/jstart/bigsheets/
[01:16:43] <rexim> Minoru: ого! Круто!
[01:16:45] <ɹǝɟılʍǝu> Спёрщит!
[01:16:58] <rexim> ɹǝɟılʍǝu: тише-тише =*
[01:17:01] <rexim> Все хорошо
[01:17:19] <rexim> Кто нялайфера возбудил? .\ _ /.
[01:17:50] <rexim> Minoru: теперь ты будешь ставить старый линукс?
[01:18:00] * ɹǝɟılʍǝu раскрыл!
[01:18:21] m4n71k0r вышел из конференции
[01:18:30] <Minoru> gsomix: интерфейс к Hadoop для тех, кто после Excel больше ничем так и не научился пользоваться?
[01:18:37] * Minoru не понимает энтерпрайз
[01:18:49] <gsomix> Да.
[01:18:57] <gsomix> Для непрограммистов.
[01:19:16] <Minoru> rexim: нет, я буду чинить нынешнюю версию с таким расчётом, чтобы на ней не воспроизводился баг. И заодно починю всю связанную с ним функциональность, если она действительно поломана
[01:19:30] <gsomix> Minoru, идея-то здравая.
[01:19:31] <rexim> Minoru: ты молодец! =3
[01:19:36] <rexim> Ладно, я спать
[01:19:40] <rexim> Всем снов xO
[01:19:44] <ɹǝɟılʍǝu> rexim, ов
[01:19:47] rexim вышел из конференции
[01:20:13] <Minoru> gsomix: ну я не знаю, как по поводу «непрограммистов»… Spreadsheet точно подходящий формат? Может, их таки лучше бы обучить языку запросов? Хотя графички на нём не построишь, конечно…
[01:21:57] <gsomix> Ну, как-то так.
[01:22:45] <gsomix> Можно обработку данных на Scala+Spark писать. Решение для программистов.
[01:23:13] <gsomix> Мне даже эта лаба больше понравилась, чем в UI тыкать.
[01:36:41] <gsomix> Minoru, ɹǝɟılʍǝu, нужно еще научить себя постоянно читать.
[01:36:49] <gsomix> У меня есть электронная читалка к тому же.
[01:38:09] <gsomix> А потом тоже самое с решением задач.
[01:38:31] <gsomix> Иногда время просто так уходит: пара скучная, например, долгая дорога...
[01:38:52] <ɹǝɟılʍǝu> gsomix, вот и читай
[01:42:12] <gsomix> Ок. Я сейчас примерно набрасываю, какие разделы мне надо изучить или повторить.
[01:42:16] <gsomix> И литературу собираю.
[01:49:18] <gsomix> j123123, на углубление знаний си я тоже решил время не убивать.
[01:49:27] <j123123> Зря
[01:49:44] <gsomix> Кажется, нужные алгоритмы я реализовать смогу.
[01:50:01] <gsomix> А дополнительные штуки мне ни к чему.
[01:50:02] <j123123> Без понимания низкоуровневых вещей ты далеко не уедешь
[01:50:14] <j123123> скалы всякие там... пфф
[01:50:16] <gsomix> j123123, эй, я знаю си. :)
[01:50:23] <j123123> Насколько знаешь?
[01:50:46] Славный капитан вышел из конференции
[01:51:06] <j123123> в чем ты хотел углублять знания по Си?
[01:51:10] <gsomix> j123123, мы уже выясняли. Настолько, что смогу закодить вычисление нужной мне штуки.
[01:51:19] <j123123> Какой штуки?
[01:51:26] <j123123> Конкретизируй
[01:51:48] <gsomix> j123123, любой штуки из вычислительной математики.
[01:52:05] <gsomix> j123123, углублять? Ну, ты показывал всякий прикольный код.
[01:52:13] <j123123> эмм, в вычмате может понадобиться использовать специализированные вещи
[01:52:17] <j123123> вроде интринсиков
[01:52:22] <j123123> OpenMP
[01:52:31] <j123123> Intel cilk
[01:52:35] <j123123> Ты эти вещи знаешь?
[01:53:03] <j123123> https://en.wikipedia.org/wiki/Cilk
[01:53:06] <gsomix> Ну, только в OpenMP тыкал.
[01:53:09] <gsomix> Остальное -- хз.
[01:53:14] <j123123> Понятно
[01:53:23] <j123123> я б тебе советовал с этими вещами ознакомиться
[01:53:44] <j123123> Так же, не лишним будет умение читать код на ассемблере
[01:54:05] <j123123> для понимания того, что там компилятор наоптимизировал, и как это можно улучшить
[01:54:11] <ɹǝɟılʍǝu> Лол
[01:54:21] <gsomix> Надеюсь, до этого не дойдет.
[01:54:31] <gsomix> Мне достаточно, чтобы мой код был квазиоптимальным.
[01:55:39] <j123123> gsomix: http://easyelectronics.ru/files/Book/digital-design-and-computer-architecture-russian-translation.pdf
[01:55:48] <j123123> Вот это давай учи
[01:55:51] <j123123> по-хардкору
[01:55:58] <gsomix> j123123, тогда я ни до какой математики не дойду.
[01:56:01] <j123123> а то скалы всякие
[01:56:01] <gsomix> :)
[01:56:09] <j123123> думаешь, там нет математики?
[01:56:13] <j123123> Дискретка всякая там
[01:56:18] <gsomix> j123123, ни до какой нужной мне математики.
[01:56:30] <j123123> Какая у тебя математика нужная?
[01:56:40] <j123123> Какая математика тебе нужна?
[01:56:40] <Minoru> j123123: у тебя нет понимания связи времени на кодинг со временем на вычислительный эксперимент. Ты не поверишь, но есть случаи, когда выгоднее на питончике накидать и проверить; какие уж там чтения ассемблерных высеров компилятора
[01:57:01] <gsomix> j123123, «непрерывная» и вычислительная.
[01:57:14] <gsomix> OpenMP вот пригодится, да.
[01:57:15] <gsomix> MPI.
[01:57:20] <gsomix> Cilk даже.
[01:57:21] <j123123> >Ты не поверишь, но есть случаи, когда выгоднее на питончике накидать и проверить; какие уж там чтения ассемблерных высеров компилятора
Я по образованию вычислительный химик, работал с GROMACS
[01:57:40] <j123123> этот GROMACS, если его попробовать на питоне переписать... как бы это помягче сказать...
[01:57:53] <j123123> лучше промолчу
[01:58:16] <j123123> А если какая-то простенькая ерундовина, то конечно пиши на питоне
[01:58:22] <j123123> тут всякие там си ненужны
[01:58:44] <gsomix> j123123, ну, вот работа с ассемблером -- другая крайность.
[01:59:18] <j123123> Иногда это не крайность, а НЕОБХОДИМОСТЬ
[01:59:26] <gsomix> j123123, приведи пример.
[02:00:15] <gsomix> Когда тонкий тюниг сишного кода (не алгоритма) позволил получить значительный выигрыш по времени.
[02:01:13] <j123123> эмм, ну например
Intel Math Kernel Library (MKL) is a proprietary solution developped by Intel. It contains many mathematic libraries highly optimized for Intel processors, including BLAS, LAPACK, ScaLAPACK and FFTW. According to Intel, a large part of the features provided by MKL are written in !!assembly code!!.
[02:01:42] <j123123> В интеле сидят не идиоты, и они б не стали просто так писать код на ассемблере
[02:02:07] <j123123> gsomix: Достаточно убедительный аргумент?
[02:02:24] <gsomix> j123123, нет, я не люблю обращения к авторитетам.
[02:02:30] <gsomix> Мне цифры, цифры.
[02:02:44] <j123123> за цифрами - на сайт интеля
[02:02:56] <j123123> там они точно должны быть
[02:03:03] <gsomix> У меня вот, например, есть результаты.
[02:03:05] <gsomix> http://eigen.tuxfamily.org/index.php?title=Benchmark
[02:03:14] <gsomix> Eigen написана на плюсах.
[02:03:29] <j123123> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68027 ты вот лучше посмотри, какой мусор способен генерировать компилятор
[02:03:31] <j123123> неоптимальный
[02:03:32] <gsomix> Где-то проигрывает MKL, где-то выигрывает.
[02:03:37] <gsomix> Где-то на равне идет.
[02:04:33] <j123123> gsomix: Эмм, ты вообще занимался анализом кода, производимого компилятором?
[02:04:47] <gsomix> j123123, нет. Зачем мне это7
[02:05:10] <Minoru> j123123: теперь объясни, почему прикладной математик должен заботиться об ассемблере, если его задача — считать эксперименты. Он пользователь вышеупомянутых либ, а не разработчик; он не оптимизирует сам — *для него* оптимизируют.
[02:05:54] <gsomix> Обычно получается, что анализ алгоритма дает больший выигрыш.
[02:05:59] <j123123> >теперь объясни, почему прикладной математик должен заботиться об ассемблере, если его задача — считать эксперименты.
Прикладной математик - не программист. Ему по-хорошему даже код писать не надо
[02:06:20] <j123123> Пусть пишет в виде формул, дает эти формулы программистам, а они уже его переписывают в код
[02:06:43] <gsomix> Не писать код -- это как без рук, ну.
[02:07:16] <j123123> А программист должен уметь эффективно реализовывать формулы в виде кода, чтоб железо их быстро просчитывало
[02:07:23] <j123123> Разные области
[02:07:46] <j123123> Мы ж не заставляем архитектора быть строителем, верно?
[02:08:44] <gsomix> Специализация для насекомых. :)
[02:09:34] <Minoru> j123123: во-первых, в этом случае нужно нанять двух человек там, где справится один компетентный. Во-вторых, чтобы объяснить программисту, что ты делаешь, нужно потратить драгоценное время. Плюс он внесёт баги, которые вам потом вдвоём ловить.
[02:10:22] <Minoru> j123123: гораздо эффективнее дать учёному писать свой код на любом удобном ему язычке, с помощью быстрых либ, а потом уже, когда он выдаст какой-то результат, перекладывать это на быстрые языки, оптимизировать и гонять на большом датасете уже эту эффективную версию
[02:10:33] <j123123> >во-первых, в этом случае нужно нанять двух человек там, где справится один компетентный.
Нельзя быть специалистом во всем.
[02:10:53] <j123123> да и мало таких спецов
[02:11:00] <gsomix> Зависит от глубины знаний, который ты закладываешь в "специалист".
[02:11:01] <j123123> проще делегировать разные части
[02:11:04] <Minoru> прикладной математик не должен быть специалистом в программировании
[02:11:10] <Minoru> ему достаточно писать простейший код
[02:11:19] <j123123> Простейший в каком смысле?
[02:11:23] <j123123> На питоне?
[02:11:28] <gsomix> Можно и на си.
[02:11:36] <gsomix> И на плюсах.
[02:11:44] <gsomix> И на фортране.
[02:11:54] <gsomix> Они, эм, быстрые «по дефолту».
[02:12:03] <j123123> Эффективно писать, учитывая специфические низкоуровневые вещи?
[02:12:16] <j123123> Количество L1 L2 кэша
[02:12:20] <gsomix> Переход с питона на си/плюсы дает огромный выигрыш.
[02:12:23] <Minoru> j123123: ну вот представь себе набор фич, которые ты с уверенностью можешь юзать в любом языке, на листинг которого ты посмотрел пять минут
[02:12:36] <gsomix> Переход с неэффективного алгоритма на эффективный дает огромный выиграшь.
[02:12:45] <Minoru> за пять минут ты, скорее всего, поймёшь, как писать условия и циклы, функции, как объявлять массивы и как делать ввод-вывод
[02:12:56] <gsomix> j123123, насколько большой выигрыш дает ручная оптимизация ассемблерного кода?
[02:13:02] <Minoru> вот на таком уровне может работать наш воображаемый прикладной математик
[02:13:11] <j123123> > (00:16:15) gsomix: j123123, насколько большой выигрыш дает ручная оптимизация ассемблерного кода?
Счас найду тебе
[02:13:18] <j123123> была статья Криса Касперски на эту тему
[02:13:50] <Minoru> можно показать ему Python и сказать, что numpy — это его базовая библиотека. Всё, у тебя есть чувак, который пишет код, причём с неплохим перформансом
[02:13:51] ɹǝɟılʍǝu вышел из конференции
[02:14:19] <j123123> Minoru: Ему еще надо объяснить про кучу всякого, например что есть циклы с пред и постусловием
[02:14:26] <j123123> что есть ООП
[02:14:31] <gsomix> j123123, знание размеров кэшей не поможет тебе высчитать настройки алгоритма. Все равно придется экспериментально их получать. :)
[02:14:36] <j123123> зачем МАТЕМАТИКУ забивать этим себе мозг
[02:14:51] <Minoru> j123123: нахера ему цикл с постусловием? Скопирует тело перед циклом, да и всё
[02:15:07] <Minoru> j123123: ты, похоже, вообще про вычислительный эксперимент только слышал
[02:15:13] <Minoru> там можно писать на Перле, понимаешь
[02:15:18] <Minoru> это write-only код
[02:15:25] <Minoru> его не нужно поддерживать дольше пары дней
[02:15:29] <j123123> Minoru: У меня курсач был про математический эксперимент
[02:15:33] <j123123> только слышал, лол
[02:15:34] <Minoru> идею проверили и выбросили, понимаешь?
[02:15:44] <Minoru> и что, ты до сих пор поддерживаешь свой код?
[02:15:54] <gsomix> Minoru, j123123, мне кажется, что вы оба перегибаете.
[02:15:56] <Minoru> и его до сих пор гоняют и, самое главное, развивают?
[02:16:18] <j123123> Мой код выполнял простую задачу - подстановку атомов по определенным координатам вместо других атомов
[02:16:35] <j123123> оказалось, что подобный функционал уже кое-где реализован, и мой код по сути бесполезен
[02:16:42] <Minoru> gsomix: ну, про пару дней я соврал, да. У нас прототип жил шесть месяцев, но всё, кроме скелета, было переписано несколько раз за это время
[02:16:48] <j123123> моделирование осуществлялось через GROMACS
[02:16:56] <gsomix> Minoru, я про «вообще».
[02:17:47] <Minoru> gsomix: про «вообще не слышал»? Ну, может быть. Но мне правда кажется, что j123123 им никогда не занимался серьёзно.
[02:18:21] <j123123> Вообще, я слышал много нелестных отзывов о коде, который порождают математики
[02:18:43] <j123123> В смысле, математику-то они знают, а писать сопровождаемый и расширяемый код не умеют
[02:18:46] <Minoru> у меня есть релевантный опыт: семь месяцев пилил вместе с командой из двух человек распознавалку рукописного текста на Python, numpy и matplotlib
[02:18:54] <j123123> не их это область, писать код
[02:19:03] <j123123> они с формулами работают
[02:19:03] <Minoru> j123123: вот ты опять неправ
[02:19:10] <j123123> Почему это неправ?
[02:19:32] <Minoru> > писать сопровождаемый и расширяемый код не умеют
Верно.
> писать код
Куда квалификаторы дел?
[02:20:03] <j123123> что "квалификаторы" ?
[02:20:12] <Minoru> пусть себе на коленке прикидывают результаты, и пишут при этом хоть портянки на бейсике — без единой функции и с парочкой goto
[02:20:27] <gsomix> Есть математики, который и код писать умеют.
[02:20:27] <Minoru> j123123: это я так слова «сопровождаемый и расширяемый» обозвал
[02:20:31] <gsomix> В чем проблема-то?
[02:20:51] <j123123> лол, и что потом с этим делать, если это планируется всунуть внутрь некоего продукта, который надо потом развивать-совершенствовать?
[02:20:59] <Minoru> j123123: *переписать*
[02:21:00] <j123123> А я скажу - его надо ПЕРЕПИСАТЬ
[02:21:03] <j123123> да
[02:21:08] <gsomix> Писать код -- это не самый крутой навык. .__.
[02:21:09] <Minoru> ух ты, так ты вменяемый!
[02:21:12] <Minoru> j123123: ты
[02:21:17] <Minoru> gsomix: про тебя и так знал
[02:21:37] <j123123> И переписывать его надо не с помощью математиков, а с помощью прикладных программистов
[02:21:45] <Minoru> да, верно
[02:22:04] <Minoru> ну и почему тебе даже с пониманием всего этого кажется, что изначально нужно математикам не давать ничего писать?
[02:22:13] <gsomix> j123123, ты лучше объясни, почему для тебя "писать сопровождаемый и расширяемый код" -- это копаться в ассемблерном коде руками?
[02:22:48] <j123123> и этим прикладным программистам будет ЗНАЧИТЕЛЬНО ЛЕГЧЕ писать нормальный код, ориентируясь по формулам, написанным математиком, чем брать порожденный математиком код, и пытаться переписать на основе него
[02:23:13] <Minoru> j123123: ну вот ты опять путать начинаешь
[02:23:20] <Minoru> j123123: код математиков — это побочный продукт
[02:23:20] <j123123> gsomix: Иногда, в целях оптимизации, приходится так делать
[02:23:26] <Minoru> j123123: это как бинарники от программистов
[02:23:45] <gsomix> j123123, но это не имеет отношения ни к сопровождению, ни к расширению.
[02:23:53] ɹǝɟılʍǝu зашёл в конференцию
[02:23:59] <j123123> Minoru: Математики пусть свой код в матлабах пишут, и прочем DSL-е для математиков
[02:24:14] <Minoru> j123123: ты же не возмущаешься, мол, как мне бинарь переписать под другую архитектуру? Не возмущаешься, потому что тебе дадут сорцы. Вот и математики свой код тебе дадут в лучшем случае как пример, а основной все равно будут формулы и идеи, которые они этим кодом проверяли
[02:24:29] <j123123> gsomix: Зато это имеет отношение к тому, будет модель просчитываться неделю или 5 дней на кластере
[02:24:29] <Minoru> j123123: ну это уж как им удобней, я считаю
[02:24:41] <gsomix> j123123, а ты приведи такой пример.
[02:24:53] <gsomix> Я жду уже долго.
[02:25:08] <j123123> Сейчас
[02:25:18] <j123123> найти надо ту статью
[02:25:59] <Minoru> j123123: вот в индустриях, где минимальная, наименьшая возможная модель действительно считается днями, я с тобой соглашусь — надо садить математиков и программистов за один стол и просить работать вместе, чтобы было как-то побыстрей. В остальных случаях — невыгодно
[02:26:55] <gsomix> Я не вижу проблемы, чтобы и этим один человек занимался.
[02:27:28] <Minoru> для этого человек должен уметь и в релевантный работе раздел математики, и в high-performance computing
[02:27:38] <gsomix> В чем проблема?
[02:27:42] <Minoru> найти сложно
[02:27:45] <gsomix> Ну.
[02:27:55] <Minoru> сложней, чем отдельно математика с опытом и программиста с опытом
[02:27:55] <gsomix> Я тут другое совсем пытаюсь выяснить.
[02:28:06] <gsomix> Насколько мои познания в HPC должны распространяться.
[02:28:27] <j123123> gsomix: https://web.archive.org/web/20130421051736/http://www.insidepro.com/kk/001/001r.shtml
[02:28:29] <gsomix> Нужно мне ассемблерный выхлоп перепроверять за компилятором?
[02:28:31] <Minoru> с другой стороны, эти двое могут плохо сработаться… Так что ладно, не до конца ясно, что сложней :)
[02:28:36] <j123123> Пришлось в вебархив залазить
[02:29:10] <Minoru> gsomix: думаю, тебе достаточно будет получить обзой области, а потом тыкаться в вакансии и смотреть, чего хотят работодатели. Это если это тебе нужно с чисто карьерной точки зрения.
[02:29:24] <Minoru> gsomix: с точки зрения интереса ты и сам знаешь, как поступать
[02:29:27] <j123123> >Смотрите! В одной строке исходного текста происходит целых три обращения к памяти! Сначала указатель pswd загружается в регистр EDX, затем он суммируется с переменной p, которая также расположена в памяти, и лишь затем по рассчитанному смещению в память благополучно записывается константа '!' (021h). Тем не менее, все равно остается неясно, почему загрузка указателя pswd занимает столько времени? Может быть, кто-то постоянно вытесняет указатель pswd из кэша, заставляя процессор обращаться к медленной оперативной памяти? Так ведь нет! Программа работает с небольшим количеством переменных, заведомо умещающихся в кэше второго уровня.
[02:29:45] <j123123> и так далее
[02:30:23] <gsomix> j123123, там конкретные бенчмарки описаны? Цифры есть?
[02:30:26] <j123123> да
[02:30:28] <j123123> в конце
[02:30:36] <j123123> графики
[02:30:59] <gsomix> > Правило II
> Помните, что основой прирост оптимизации дает не учет особенностей системы, а алгоритмическая оптимизация.
[02:31:01] <gsomix> Ну, все.
[02:31:09] <j123123> И что?
[02:31:23] <j123123> Значит, пофик на учет особенностей системы, да?
[02:31:46] ɹǝɟılʍǝu вышел из конференции: Logged out
[02:32:39] <gsomix> Окей, я прочитаю внимательнее.
[02:32:41] <gsomix> Но позже.
[02:32:42] <gsomix> Спасибо.
[02:33:07] <gsomix> Ой, а статья-то старая.
[02:33:51] <gsomix> j123123, а что ты про интеловский компилятор скажешь?
[02:33:55] <gsomix> Он тоже плохо работает?
[02:34:14] <j123123> инлеловский компилятор тоже лажает на многих местах
[02:34:43] <j123123> притом, есть вещи, на которых GCC не лажает, а ICC лажает, и наоборот
[02:34:49] <j123123> и когда оба лажают
[02:34:53] <j123123> вот так
[02:34:57] <horta hell> Недетерминированный конечный автомат Тьюринга грызёт ножку стола, изображая вселенский голод.
[02:35:04] <j123123> $pet feed
[02:35:04] <horta hell> j123123: Жестом доброй воли спасена зверушка от голода снедающего. Вы получаете 3PTC, а Недетерминированный конечный автомат Тьюринга сыт и доволен.
[02:35:17] <gsomix> Ок, осталось понять, нужно ли это учитывать в реальной жизни.
[02:46:20] <gsomix> j123123, полистал.
[02:46:23] <gsomix> Статью.
[02:47:34] <gsomix> j123123, вся суть в "используйте профилировщик VTune"?
[02:49:31] <j123123> Можешь не использовать
[02:49:42] <j123123> Кроме VTune есть и другие профилировщики
[02:50:02] <j123123> Просто тут это объясняется через VTune
[02:50:44] <gsomix> Я думаю, с такой "оптимизацией" и математик справится.
[02:50:58] <j123123> С переделыванием ассемблера?
[02:51:01] <j123123> хмм...
[02:51:36] <j123123> Может все же не надо нагружать математика такими вещами, как знание архитектуры и набора команд конкретного процессора?
[02:51:39] <j123123> Не его это область
[02:52:08] <gsomix> j123123, в статье тоже ничего выскоинтеллектуального нет.
[02:52:28] <gsomix> Прирост в 20% получен благодаря VTune.
[02:52:41] <j123123> Не благодаря, а используя
[02:52:57] <j123123> И VTune это узкоспециализированная штука для интель процыков
[02:53:09] <gsomix> Ну.
[02:53:16] <gsomix> Значит можно положиться на инструменты.
[02:53:19] <j123123> для каких-нибудь ARM или Nvidia CUDA ты это не применишь
[02:53:34] <j123123> А потребность ускорить код вполне может возникнуть
[02:54:07] <gsomix> j123123, кстати, математику нужно знать что-то об архитектуре, чтобы писать алгоритмы.
[02:54:18] <gsomix> Но копаться руками в ассемблере -- это уже перебор.
[02:54:39] <gsomix> Особенно, если есть инструментарий типа VTune и оптимизирующие компиляторы.
[02:54:54] <j123123> Математику достаточно уметь писать код на питоне
[02:54:57] <j123123> прототипі
[02:55:01] <j123123> ы
[02:55:16] <gsomix> j123123, а что с кудой прикажете делать?
[02:55:17] <j123123> А в низкоуровневщину ему вообще лезть не стоит, это не его работа
[02:55:19] <gsomix> Или с MPI?
[02:55:28] <j123123> Ну там должны быть свои профилировщики
[02:55:31] <j123123> погугли
[02:55:35] <gsomix> Ты не шаришь.
[02:55:40] <j123123> Что не шарю?
[02:55:47] <j123123> Думаешь, нет профилировщиков?
[02:55:49] <j123123> или что?
[02:55:49] <gsomix> Алгоритм кто напишет с учетом особенностей архитектуры?
[02:56:18] <j123123> поясни
[02:56:42] <gsomix> Давай на простом примере.
[02:56:44] <j123123> Учитывать особенность архитектуры при проектировании алгоритмов - да, иногда приходится
[02:56:52] <gsomix> Во.
[02:56:56] <j123123> НО
[02:56:57] <gsomix> Кто этим должен заниматься?
[02:57:00] <j123123> надо писать прототип
[02:57:09] <j123123> а потом давать прототип нормальным программерам
[02:57:26] <gsomix> Ну, как видишь математику нужно знать особенности архитектуры.
[02:57:26] <j123123> чтобы они писали уже жестко-заоптимизированный код
[02:58:33] <j123123> Нет, математику надо написать кучу формул и простенький код, который бы был прототипом. А все что связано с архитектурой (как эту вот формулу лучше всего распараллелить на 10000 ядер чтоб считалось на нашем кластере) - этим пусть занимаются прикладные программисты
[02:58:51] <gsomix> j123123, заново начнем?
[02:59:29] <j123123> Я хочу сказать, что математику не нужно на глубинном уровне разбираться в архитектуре ЭВМ
[02:59:37] <j123123> Ты с этим не согласен, или как?
[02:59:38] <gsomix> Не нужно.
[02:59:43] <j123123> Ок
[02:59:49] <j123123> тогда что ты хочешь сказать?
[02:59:49] <gsomix> Но знать особенности архитектуры нужно.
[02:59:56] <j123123> Да, нужно
[02:59:56] <gsomix> И писать код тоже нужно уметь.
[03:00:06] <j123123> На чем?
[03:00:09] <gsomix> На всем.
[03:00:14] <j123123> На ассемблере нужно?
[03:00:26] <gsomix> Подловил!
[03:00:48] <gsomix> Я считаю, что это лишнее, ибо достаточно сей/плюсов/фортрана.
[03:01:13] <gsomix> И инструментария для профилировки и оптимизации.
[03:01:46] <j123123> Оптимизацией пусть занимаются профильные специалисты
[03:02:03] <j123123> а не математики
[03:02:42] <gsomix> Почему нет? Вдруг это поможет выявить не только проблемы реализации, но и алгоритма?
[03:02:47] <j123123> Особенно, если речь идет об низкоуровенвой оптимизации, а не алгоритмической
[03:04:08] <j123123> По поводу оптимизации алгоритмической - это вообще сложный вопрос
[03:04:57] <j123123> gsomix: Есть различные численные методы, например разные алгоритмы решения СЛАУ
[03:05:01] <j123123> методом Гаусса
[03:05:23] <j123123> и прочие методы
[03:05:37] <gsomix> Я в курсе.
[03:05:52] <gsomix> А еще есть разные алгоритмы, которые данные методы реализуют.
[03:06:03] <gsomix> С учетом особенности архитектуры.
[03:06:37] <gsomix> И в конце низкоуровневая оптимизация под конкретное железо.
[03:06:45] <gsomix> Я правильно представляю себе процесс?
[03:06:57] <j123123> Так вот, эти методы можно выразить в виде математических форму, а программисты пусть уже решают, как этот конкретный алгоритм запихнуть под конкретный кластер
[03:07:09] <j123123> с учетом архитектуры, да
[03:07:49] <j123123> >(01:09:11) gsomix: А еще есть разные алгоритмы, которые данные методы реализуют.
Метод Гаусса это не алгоритм, да?
[03:08:26] <gsomix> j123123, это алгоритм без учета особенностей архитектуры.
[03:08:34] <j123123> Есть разный способ написать код, который решает СЛАУ методом Гаусса
[03:08:57] <j123123> А учитывать особенности архитектуры по-твоему должны математики?
[03:09:01] <gsomix> Да.
[03:09:06] <j123123> Я думаю что нет, не должны
[03:09:10] <j123123> Тут мы расходимся
[03:09:14] <gsomix> А больше никто не сможет.
[03:09:19] <j123123> Эт почему еще?
[03:09:45] <gsomix> Потому что это работа математика. Иногда алгоритм с учетом архитектуры может очень сильно отличаться от первоначальной формулы.
[03:10:14] <j123123> Ну тебе тогда два-в-одном нужно
[03:10:17] <j123123> математик-программист
[03:10:30] <j123123> чистый математик таким заниматься не сможет
[03:10:42] <gsomix> Я всегда говорил про прикладных математиков.
[03:10:58] <j123123> Прикладной математик это что? Это который в матлабе считает?
[03:11:23] <j123123> Или который умеет писать оптимизированный под конкретную архитектуру кластера код?
[03:11:56] <gsomix> j123123, тупой пример: можно реализовать умножение матриц через вложенные циклы, по определению. Можно учесть возможность векторизации и причесать обращение к памяти, можно придумать блочный cache-friendly алгоритм, или алгоритм для параллельного исполнения, чтобы минимизировать количество коммуникаций в кластере.
[03:12:04] <gsomix> И вот этим занимается прикладной математик.
[03:12:12] <gsomix> И для этого ему нужно уметь писать код
[03:12:19] <gsomix> И знать особенности архитектуры.
[03:13:29] sss|zombie вышел из конференции
[03:13:32] <j123123> Ну похоже что у нас просто разные представления о том, чем должен заниматься прикладной математик
[03:13:46] <gsomix> Ну, а кто этим должен заниматься?
[03:13:53] <j123123> Я считаю что такими вещами "учесть возможность векторизации и причесать обращение к памяти, можно придумать блочный cache-friendly алгоритм, или алгоритм для параллельного исполнения, чтобы минимизировать количество коммуникаций в кластере."
[03:13:59] <j123123> должен заниматься математик-программист
[03:14:12] <gsomix> Ну, хорошо. :)
[03:14:13] <j123123> или программист с математическим образованием
[03:14:22] <j123123> или математик с программистским
[03:14:32] <gsomix> Отлично.
[03:14:40] <gsomix> Это тот, кем я хочу быть, например.
[03:15:46] <gsomix> Прослойкой между «чистым» математиком (физиком, химиком, датасаентистом) и бородатыми программцами.
[03:16:10] <j123123> gsomix: Хорошо. Тогда учи http://easyelectronics.ru/files/Book/digital-design-and-computer-architecture-russian-translation.pdf http://www.akkadia.org/drepper/cpumemory.pdf https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
[03:16:47] <j123123> пригодится
[03:17:05] <gsomix> Спасибо, дядюшка джей!
[03:17:59] <j123123> gsomix: Погоди, ща я еще кое-что особенное покажу
[03:19:03] <j123123> gsomix: http://www.fftw.org/pldi99.pdf
[03:19:34] <gsomix> j123123, да, это уже в списке для прочтения.
[03:20:55] Minoru вышел из конференции
[03:21:52] <gsomix> FFTW -- это охуительно.
[03:24:38] Myp вышел из конференции
[03:27:48] <gsomix> j123123, а вот низкоуровневая оптимизация генерируемого кода -- это, наверное, скилл уже за гранью. :)
[03:28:29] <gsomix> Совсем близко к разработчикам «взрослых» компиляторов.
[03:30:09] <j123123> Тогда читай книгу Дракона, пили свой специализированный компилятор, лол
[03:30:26] <j123123> УЛЬТРАХАРДКОР!
[03:30:31] <gsomix> Я и говорю.
[03:30:34] <gsomix> За гранью.
[03:41:36] <j123123> > Если существующие команды процессора позволяют реализовать ваш алгоритм проще и эффективнее - вот тогда действительно, "тяпнув" для храбрости пивка, забросьте компилятор на полку и приступайте к ассемблерной реализации с чистого листа. Однако с такой ситуацией приходится встречаться крайне редко и к тому же не стоит забывать, что вы - не на одиноком острове. Вокруг вас - огромное количество высокопроизводительных, тщательно отлаженных и великолепно оптимизированных библиотек. Так зачем же изобретать велосипед, если можно купить готовый?
[03:41:41] <j123123> лол
[03:43:00] <gsomix> Intel MKL, кстати, дорогая.
[03:43:22] <gsomix> И продается как часть их студий.
[03:44:34] <j123123> Конечно. Но есть аналоги
[03:45:06] <j123123> eigen например (хоть он и не на ассемблере, но это даже плюс)
[03:46:13] <j123123> > А "язык" x86-процессоров, между прочим, очень интересен. На сегодняшний день они имеют едва ли не самую сложную систему команд, дающую системным программистам безграничные возможности для самовыражения.
Да, согласен
[03:46:34] <j123123> если на нем попробовать что-то напрограммировать, это видно очень отчетливо
[03:47:15] <eaeee> вот вы развели :)
[03:49:11] <eaeee> надо будет попробовать жизнь на fasm написать
[03:51:54] <gsomix> j123123, https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2
[03:53:05] <gsomix> Еще пример хардкорной оптимизации.
[03:53:10] <gsomix> > GotoBLAS's matrix-matrix multiplication routine, called GEMM in BLAS terms, is highly tuned for the x86 and AMD64 processor architectures by means of handcrafted assembly code.
[03:56:58] ForNeVeR вышел из конференции: Disconnected: Replaced by new connection
[03:57:00] ForNeVeR зашёл в конференцию
[03:58:43] <gsomix> j123123, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.140.3583&rep=rep1&type=pdf#page=217
[03:58:51] ForNeVeR вышел из конференции: Disconnected: Replaced by new connection
[03:58:52] ForNeVeR зашёл в конференцию
[03:58:54] horta hell вышел из конференции: Disconnected: Replaced by new connection
[03:58:55] horta hell зашёл в конференцию
[04:00:20] ForNeVeR вышел из конференции: Disconnected: Replaced by new connection
[04:00:22] ForNeVeR зашёл в конференцию
[04:07:31] <gsomix> eaeee, это все прокрастинация.
[04:07:37] <gsomix> Я вот не хотел отчет писать.
[04:08:19] <eaeee> gsomix: какой отчет?
[04:08:36] <gsomix> eaeee, по гранту.
[04:08:47] <gsomix> Горячая пора для научных институтов.
[04:15:49] eaeee вышел из конференции
[04:27:01] uggur вышел из конференции: Replaced by new connection
[04:27:09] uggur зашёл в конференцию
[04:31:49] grouzen вышел из конференции
[05:15:22] uggur вышел из конференции: Replaced by new connection
[05:15:30] uggur зашёл в конференцию
[05:29:41] uggur вышел из конференции: Replaced by new connection
[05:29:49] uggur зашёл в конференцию
[05:47:06] <horta hell> Недетерминированный конечный автомат Тьюринга завалился на бок и окинул замутнённым болью взором конфу.
[05:52:51] uggur вышел из конференции: Replaced by new connection
[05:52:59] uggur зашёл в конференцию
[06:04:44] uggur вышел из конференции: Replaced by new connection
[06:04:52] uggur зашёл в конференцию
[06:08:06] uggur вышел из конференции: Replaced by new connection
[06:08:14] uggur зашёл в конференцию
[06:12:58] uggur вышел из конференции: Replaced by new connection
[06:13:07] uggur зашёл в конференцию
[06:26:44] uggur вышел из конференции: Replaced by new connection
[06:26:52] uggur зашёл в конференцию
[06:32:09] uggur вышел из конференции: Replaced by new connection
[06:32:17] uggur зашёл в конференцию
[06:35:03] <horta hell> Недетерминированный конечный автомат Тьюринга агонизирует, сжимая зубы в предсмертных судорогах. Все теряют по 1PTC.
[06:51:25] uggur вышел из конференции
[06:52:40] uggur зашёл в конференцию
[06:58:43] uggur вышел из конференции: Replaced by new connection
[06:58:51] uggur зашёл в конференцию
[07:06:30] rafaelrs зашёл в конференцию
[07:06:57] <j123123> $pet resurrect
[07:06:59] <horta hell> j123123: Вы воскресили питомца этой конфы! Это ли не чудо?! За это вы получаете 3PTC.
[07:07:04] <j123123> $pet rating
[07:07:05] <horta hell> j123123:
л-битель криппи языков: 9PTC
Minoru: 8PTC
j123123: 6PTC
ʕ•ᴥ•ʔ: 6PTC
[07:07:13] uggur вышел из конференции: Replaced by new connection
[07:07:18] uggur зашёл в конференцию
[07:09:55] uggur вышел из конференции
[07:10:54] uggur зашёл в конференцию
[07:14:56] ascrazy@jabber.ru вышел из конференции
[07:41:48] <j123123> ʕ•ᴥ•ʔ это что вообще?
[07:41:50] <j123123> Мишка?
[08:07:51] uggur вышел из конференции: Replaced by new connection
[08:07:59] uggur зашёл в конференцию
[08:14:44] uggur вышел из конференции
[08:14:58] <j123123> http://cutekaomoji.com/animals/
[08:15:53] uggur зашёл в конференцию
[08:16:23] <ForNeVeR> ***
[08:16:43] <ForNeVeR> Лул, ж.ру не даёт вставить паучка :(
[08:17:13] uggur вышел из конференции
[08:17:19] <j123123> ***
[08:19:50] uggur зашёл в конференцию
[08:24:24] uggur вышел из конференции: Replaced by new connection
[08:24:31] uggur зашёл в конференцию
[08:25:40] uggur вышел из конференции
[08:26:30] uggur зашёл в конференцию
[08:28:43] uggur вышел из конференции
[08:44:27] uggur зашёл в конференцию
[08:44:49] uggur вышел из конференции
[09:17:33] <любитель криппи языков> $pet stats
[10:13:51] dzhon зашёл в конференцию
[10:20:54] <ForNeVeR> $access
[10:20:55] <horta hell> ForNeVeR: Администратор
[10:25:01] любитель криппи языков вышел из конференции
[10:27:06] dzhon вышел из конференции
[10:27:44] dzhon зашёл в конференцию
[10:28:18] ascrazy@jabber.ru зашёл в конференцию
[10:39:26] Славный капитан зашёл в конференцию
[10:49:51] <gsomix> Утро.
[10:54:51] <gsomix> j123123, глянул статью?
[10:55:09] <j123123> Которая про матрицы?
[10:55:16] <j123123> Да, глянул слегка
[11:37:04] portnov зашёл в конференцию
[11:37:58] uggur зашёл в конференцию
[11:49:11] rexim зашёл в конференцию
[11:49:23] <rexim> Утряка-вака-аопв-аола
[11:49:24] <rexim> влоап
[11:56:42] ascrazy@jabber.ru вышел из конференции
[11:57:44] ascrazy@jabber.ru зашёл в конференцию
[12:08:59] ɹǝɟılʍǝu зашёл в конференцию
[12:16:58] Аман зашёл в конференцию
[12:17:45] <gsomix> rexim, привет.
[12:18:49] <rexim> gsomix: драаатуте!
[12:18:51] <rexim> дратуту! :)
[12:21:55] <ɹǝɟılʍǝu> rexim, gsomix дратуте
[12:23:03] <rexim> ɹǝɟılʍǝu: дратуте
[12:23:22] <Аман> rexim: gsomix привет
[12:24:35] <rexim> http://www.youtube.com/watch?v=89cBMA4B9rA
[12:24:36] <rexim> =3
[12:25:30] <rexim> Аман: дратуте!
[12:27:07] <ɹǝɟılʍǝu> rexim, maybe int http://files1.coloribus.com/files/adsarchive/part_864/8640255/file/maybelline-watershine-small-50503.jpg
[12:28:18] <rexim> Maybe<LLine>
[12:28:26] <rexim> new York()
[12:29:15] <ɹǝɟılʍǝu> \0/
[12:33:10] <uggur> rexim: http://pastebin.com/tiAqFdQL мило?
[12:34:26] <Аман> ɹǝɟılʍǝu: you use lipstick?
[12:34:32] <rexim> uggur: =*
[12:34:39] <uggur> =^.^=
[12:35:04] <gsomix> Аман, lispstrick.
[12:35:07] <ɹǝɟılʍǝu> Аман, boomstick
[12:35:16] <rexim> bombstick
[12:35:17] <gsomix> s/str/st/
[12:35:18] <horta hell> gsomix: Ам-н, lispstick.
[12:35:29] <ɹǝɟılʍǝu> THIS IS MY BOOBSTICK
[12:35:31] <rexim> :D
[12:35:46] <rexim> Emacs Lispstick
[12:35:48] <ɹǝɟılʍǝu> Ой
[12:35:54] <ɹǝɟılʍǝu> Очепятался
[12:36:04] <rexim> Аман: http://www.youtube.com/watch?v=seDAc7jdkpk
[12:36:09] <Аман> boobstick :D or boobtits?
[12:36:25] <rexim> titsck
[12:36:31] <uggur> boobbits
[12:36:32] sss|zombie зашёл в конференцию
[12:36:35] <uggur> loopbits
[12:37:45] <uggur> rexim: titsck %r12d $eax
[12:44:48] Graf зашёл в конференцию
[12:53:05] Graf вышел из конференции
[12:57:22] dzhon вышел из конференции
[13:02:07] <ForNeVeR> uggur: MslO
[13:02:24] <uggur> M$ I/O
[13:02:28] <ForNeVeR> Удивительно, что я смог это прочитать.
[13:03:08] <ɹǝɟılʍǝu> MS IO ()
[13:03:28] <uggur> ForNeVeR: это я ASCII переделал чтобы русский текст контроллером отображать.
[13:03:39] <uggur> Там либа была юникодная, но мне с ним парсить неудобно.
[13:03:42] <ForNeVeR> uggur: а ты весельчак!
[13:05:12] <ɹǝɟılʍǝu> Весельчак У
[13:05:17] <uggur> ггур
[13:05:38] <ɹǝɟılʍǝu> uggur, ForNeVeR http://cs5106.vk.me/u87724383/a_3fc75306.jpg
[13:05:55] <uggur> неправда, я не такой толстый :)
[13:06:45] любитель криппи языков зашёл в конференцию
[13:07:18] <uggur> ɹǝɟılʍǝu: https://img-fotki.yandex.ru/get/4711/12959330.9e/0_11b4ff_401513d_XL.jpg
[13:07:46] <ɹǝɟılʍǝu> uggur, http://s00.yaplakal.com/pics/pics_original/0/6/3/3144360.jpg
[13:07:59] <uggur> :)
[13:08:02] ascrazy@jabber.ru вышел из конференции
[13:09:24] nextiter зашёл в конференцию
[13:12:08] <Аман> whois Аман
[13:12:16] <Аман> bot slept?
[13:12:35] <ForNeVeR> Аман: your syntax is invalid.
[13:12:41] <ForNeVeR> .whois Аман
[13:12:43] <DeadBot> ForNeVeR: member/participant
online(рошни :* :*)
зашел в конфу 20.12.15 12:16:58
уровень доступа: 4
[13:13:26] <Аман> hmm
[13:13:30] <uggur> рошни :* :* ?
[13:14:15] <ForNeVeR> Господа, у меня вопрос по функциональному дизайну.
[13:14:29] <ForNeVeR> rexim, ɹǝɟılʍǝu.
[13:14:37] <ForNeVeR> У меня есть тип "Сборка".
[13:14:38] <ɹǝɟılʍǝu> Давай
[13:14:51] <ForNeVeR> Сборка может включать в себя некоторое количество различных, хмм, сборочных единиц.
[13:15:01] <ForNeVeR> Методов, классов, ктулхов.
[13:15:29] <ForNeVeR> В ООП я бы написал
type Assembly = [AssemblyUnit]
[13:15:45] Minoru зашёл в конференцию
[13:15:46] <ForNeVeR> А дальше бы использовал рантайм-полиморфизм для работы со сборочными единицами.
[13:16:13] <ForNeVeR> Как мне сделать в ФП? Предположим, что у меня нету прямой возможности сабтайпинга, как в Haskell.
[13:16:18] <Аман> uggur: it is name
[13:16:47] <ɹǝɟılʍǝu> data AssemblyUnit = AssemblyUnit | UnitOne | UnitTwo?
[13:16:57] <ɹǝɟılʍǝu> Ну это если оч тупой вариант, но думаю, тебе не он нужен.
[13:17:35] <ForNeVeR> Не он, но уже ближе, да :)
[13:17:43] <ɹǝɟılʍǝu> Minoru, о, ты ж тоже тут. Присоединяйся.
[13:17:45] <ForNeVeR> Мне скорее нужен тайпкласс чтоле.
[13:18:10] Minoru вышел из конференции
[13:18:11] Minoru зашёл в конференцию
[13:18:32] <ForNeVeR> Хм, или не нужен? Наверное, именно так и будет правильно: определить закрытое множество типов сборочных элементов.
[13:18:56] <ForNeVeR> У меня не предполагается, что их будет доопределять кто-то снаружи модуля.
[13:19:10] <ɹǝɟılʍǝu> Оно у тебя фиксированное?
[13:19:16] <ɹǝɟılʍǝu> Т.е.
[13:19:30] <ForNeVeR> Да. Только метод, класс и ктулха.
[13:19:52] <rexim> Я могу ошибаться, но когда я последний раз проверял, то тайпклассы не давали мне рантайм полиморфизм.
[13:20:10] grouzen зашёл в конференцию
[13:20:20] <ForNeVeR> rexim: ну, там были какие-то волшебные хаки, чтобы получить нечто, отдалённо на него похожее.
[13:20:37] <rexim> Что-нибудь с добавление полиморфных типов
[13:20:39] <rexim> Наверное
[13:20:53] <ForNeVeR> А-ля data Showable = Show x => Showable x
[13:21:01] <rexim> Хм...
[13:21:06] <ForNeVeR> То есть не обобщённый тип с обобщённым конструктором.
[13:21:57] <ForNeVeR> Ну да неважно, вы же понимаете, что вопрос не про хаскель, и не про рантайм полиморфизм, и не про тайпклассы даже :)
[13:22:48] <Minoru> я не понял, чем тебя не устраивает data AssemblyUnit, предложенный выше; можешь пояснить?
[13:22:49] <rexim> Конечно
[13:22:54] <rexim> Именно поэтому про них и говорим
[13:23:43] <ForNeVeR> Minoru: дак а я разве сказал, что не устраивает?
[13:23:50] <ForNeVeR> Нет, устраивает!
[13:24:01] <Minoru> > <ForNeVeR> Не он, но уже ближе, да :)
[13:24:04] <rexim> Он просто потроллить решил.
[13:24:08] <ForNeVeR> Более того, у меня есть рантайм-полиморфизм ._.
[13:24:14] <ForNeVeR> И нету тайпклассов :(
[13:24:21] <Minoru> тогда я ничего не понял и замолчу, пожалуй
[13:24:24] <ForNeVeR> rexim: нет, я пришёл спросить совета.
[13:24:30] <ForNeVeR> Совет мне дали!
[13:24:35] <rexim> Хорошо
[13:24:36] ckorzhik зашёл в конференцию
[13:24:51] <ɹǝɟılʍǝu> Minoru, ты мне нужен
[13:24:55] <rexim> Пойду тогда макарошки сварю
[13:25:12] <Minoru> rexim: и сосисочки не забудь!
[13:25:14] <Minoru> ɹǝɟılʍǝu: да-да?
[13:25:16] <ɹǝɟılʍǝu> Minoru, есть дискасс
[13:25:21] <Minoru> вперёдЁ
[13:25:29] <rexim> Minoru: сосисочек нет. Есть куринная грудка
[13:25:30] <Minoru> s/Ё/!/
[13:25:31] <horta hell> Minoru: вперёд!
[13:25:34] <ForNeVeR> Ну и вот ещё что.
[13:25:38] <ForNeVeR> У меня есть ассемблер.
[13:25:46] <rexim> ForNeVeR: не говори джей
[13:25:48] <ForNeVeR> Я хочу его сделать в два этапа.
[13:26:17] <ForNeVeR> 1. Прочитать файл и построить intermediate representation.
2. Ассемблировать его в памяти.
[13:26:20] <ForNeVeR> Это норм?
[13:26:28] <ForNeVeR> Или надо сразу из файла ассемблировать?
[13:26:33] <ɹǝɟılʍǝu> Minoru, есть такой кот http://lpaste.net/8461808098288336896 есть такие входные данные http://lpaste.net/6775615293772267520
[13:26:36] <ForNeVeR> Или я, наоборот, опустил какие-то важные этапы?
[13:26:37] <ɹǝɟılʍǝu> Minoru, пытаюсь парсить
[13:26:47] <ɹǝɟılʍǝu> Minoru, в ф-ии parseCsv
[13:26:53] <rexim> ForNeVeR: а у тебя каких размеров файлы обычно?
[13:27:01] <ɹǝɟılʍǝu> Minoru, возвращается Left "'\\n': Failed reading: satisfy"
[13:27:15] <ForNeVeR> rexim: обычно очень небольшие, до 5 кб, скажем.
[13:27:21] <ɹǝɟılʍǝu> Minoru, т.е. строки 98 и 99 не работают((
[13:27:24] <ɹǝɟılʍǝu> ЧЯДНТ?
[13:27:25] <rexim> ForNeVeR: тогда сделай как проще.
[13:27:29] <rexim> Проще тебе самому.
[13:27:37] <rexim> И двигайся дальше
[13:28:44] <ForNeVeR> Ну ладно. В общем-то, чо я парюсь, gsomix отревьюит и скажет, как лучше было :)
[13:29:10] <rexim> До-до-до...
[13:29:16] <rexim> Ревьюер проверит
[13:29:21] <ForNeVeR> XD
[13:29:33] <rexim> А ревьюер такой: "А пох, девелопер наверняка проверил"
[13:29:53] <ForNeVeR> Хм, а мне не нравится data. Что делать?
[13:30:13] <ForNeVeR> Можно в ней как-то делать именованные поля?
[13:30:58] <rexim> А структурки у тебя там есть?
[13:31:05] <ForNeVeR> data AssemblyUnit = Method (name :: string) (type :: Type) (arguments :: [Type]) (body :: [Instruction])
[13:31:13] <rexim> Мы же наггум обсуждаем или что,
[13:31:17] <rexim> ?
[13:31:25] <ForNeVeR> rexim: мы обсуждаем реализацию ассемблера для него.
[13:31:28] <rexim> Окай
[13:31:29] <ForNeVeR> Пока не на самом наггуме :)
[13:31:33] <rexim> Окай
[13:31:49] <ForNeVeR> Хм, а в хаскеле можно же именовать эти все поля.
[13:31:49] <rexim> В том же самом хачкеле же можно менованые поля иметь.
[13:31:55] <rexim> Лол
[13:31:56] <ForNeVeR> Почему в F# не сделали?
[13:32:03] <rexim> Там нету такого?
[13:32:05] <rexim> Серьезно?
[13:32:18] <rexim> Уже набирает "Фуу..."
[13:32:20] <ForNeVeR> Может, я просто не знаю.
[13:32:26] <rexim> Срочно гугли!
[13:32:40] <ForNeVeR> Хм, а есть же. Это я просто ни разу не видел, чтобы кто-то юзал.
[13:32:53] <rexim> https://msdn.microsoft.com/ru-ru/library/dd233184.aspx
[13:33:06] <ɹǝɟılʍǝu> rexim, АААА МАКАРЕНА
[13:33:11] <rexim> ɹǝɟılʍǝu: ага
[13:33:12] <ɹǝɟılʍǝu> Minoru, есть идеи?
[13:33:37] <rexim> ForNeVeR: получается, что ты не разу не читал серьезных программ на фе шарп? ._.
[13:33:55] <ForNeVeR> rexim: да когда ж я буду их читать? Я же их пишу!
[13:33:58] <rexim> Ну, т.е. как серьезная программа может без этого обойтись?
[13:34:00] <Minoru> ɹǝɟılʍǝu: я только-только ссылки открыл. Сейчас запущу, потыкаю… Минутку.
[13:34:10] <ɹǝɟılʍǝu> Minoru, уф, сорь =)
[13:34:18] <ForNeVeR> rexim: да, серьёзная программа может без этого обойтись.
[13:34:24] <rexim> Ох...
[13:34:36] <horta hell> Недетерминированный конечный автомат Тьюринга агонизирует, сжимая зубы в предсмертных судорогах. Все теряют по 1PTC.
[13:34:50] <ForNeVeR> rexim: трюк в том, что в основном я раньше писал проекты, которые тесно интегрируются с остальным дотнетом, и поэтому масштабных АТД я там не использовал вообще.
[13:35:09] <rexim> АТД?
[13:35:09] <ForNeVeR> А вместо них всякие рекорды или вообще классы с интерфейсами.
[13:35:12] <rexim> А
[13:35:14] <rexim> Госпади
[13:35:26] <rexim> Понятно
[13:35:52] <ForNeVeR> Потому, что рекорд приятно выглядит снаружи (если его использовать из C#).
[13:36:09] <ForNeVeR> А discriminated union выглядит неприятно.
[13:36:35] <ɹǝɟılʍǝu> Дискриминированный юнион
[13:38:49] <rexim> Дискриминейтед Совиет Юнион
[13:40:06] <Minoru> ɹǝɟılʍǝu: ну, во-первых, строка 87 ожидает \n. Сразу после заголовка. Его там нет, его уже сожрала строка 86!
[13:40:19] <Minoru> я её заккоментировал, чиню следующую ошибку :)
[13:41:20] <Minoru> а, нет, погоди
[13:41:50] <ɹǝɟılʍǝu> Почему съела?
[13:42:14] <Minoru> это я ошибся, забей
[13:42:19] <ɹǝɟılʍǝu> Ок=)
[13:46:37] <ɹǝɟılʍǝu> Minoru, бля
[13:46:40] <ɹǝɟılʍǝu> Кажется, я понял
[13:46:56] <ɹǝɟılʍǝu> Minoru, 78я строка
[13:47:05] <ɹǝɟılʍǝu> "<= Обл."
[13:47:13] <ɹǝɟılʍǝu> Никак не учитывается и пропускается
[13:47:17] <Minoru> ɹǝɟılʍǝu: слушай, мистика какая-то :) Я делал A.peekChar >>= traceShowM перед A.char '\n', и там и правда '\n'! А почему не матчится — хз
[13:47:25] <ɹǝɟılʍǝu> Поэтому следующему парсеру не то попадется
[13:48:02] <Minoru> хм
[13:48:11] <Minoru> я думл, фейл сразу после заголовка
[13:49:09] <Minoru> ох, ты прав
[13:49:10] <ɹǝɟılʍǝu> Не, заголовок и строку с голосованием за обложку норм парсится
[13:49:16] <Minoru> да-да
[13:49:29] <Minoru> я уже понатыкал ещё трейсов и понял, что первый A.char '\n' нормально работает
[13:50:16] <ɹǝɟılʍǝu> Угу
[13:50:32] <ɹǝɟılʍǝu> Как теперь сматчить этот "<= Обл."?
[13:50:40] <Minoru> у тебя \r там не матчится просто :)
[13:50:56] <ɹǝɟılʍǝu> А где там \r?
[13:51:00] <Minoru> прекрати писать escape-последовательности и заюзай уже Data.Attoparsec.Text.endOfLine
[13:51:10] <Minoru> у тебя все строки на \r\n заканчиваются же
[13:51:19] <Minoru> так что должно быть "<= Обл.\r"
[13:51:20] <ɹǝɟılʍǝu> омг
[13:51:27] <Minoru> ну или таки юзать endOfLine, что, имхо, чище
[13:51:38] <Minoru> и к тому же будет работать не только на винде :)
[13:53:44] <ɹǝɟılʍǝu> Minoru, как тогда с ним пропускать заголовок?
[13:53:54] <ɹǝɟılʍǝu> A.takeTill A.endOfLine не катит)
[13:54:04] <ɹǝɟılʍǝu> тьфу
[13:54:05] <ɹǝɟılʍǝu> isEndOfLine
[13:54:09] <ɹǝɟılʍǝu> ><
[13:54:29] <Minoru> :D
[13:55:30] <ɹǝɟılʍǝu> И все же.
[13:55:45] <ɹǝɟılʍǝu> Minoru, как сматчить нормально "<= Обл."?
[13:56:09] <Minoru> ну ты же нормально сматчил
[13:56:10] <ɹǝɟılʍǝu> A.string "<= Обл." как-то не срабатывает
[13:56:16] <Minoru> просто после него допиши endOfLine
[13:56:21] <Minoru> чтобы сожрать "\r\n"
[13:56:57] <ɹǝɟılʍǝu> Minoru, ну вот жи http://lpaste.net/147491
[13:56:59] <ɹǝɟılʍǝu> Но не катит
[13:57:55] <Minoru> хм, что-то я заврался, видимо. Минутку
[13:59:56] <rexim> Minoru: покушай макарошек
[13:59:57] <любитель криппи языков> $pet stats
[13:59:59] <horta hell> любитель криппи языков: Недетерминированный конечный автомат Тьюринга мертв. Какие еще статы?
[14:00:02] <любитель криппи языков> $pet resurrect
[14:00:03] <horta hell> любитель криппи языков: Вы воскресили питомца этой конфы! Это ли не чудо?! За это вы получаете 3PTC.
[14:00:05] <любитель криппи языков> uv
[14:00:06] <любитель криппи языков> гшм
[14:00:10] <любитель криппи языков> опять пета проебываем?
[14:00:13] <rexim> любитель криппи языков: драатуте!
[14:00:17] <Minoru> rexim: спасибо, я недавно только проснулся и уже полон супчика :)
[14:00:22] <любитель криппи языков> rexim: алоха
[14:00:52] <Minoru> ɹǝɟılʍǝu: хм, а откуда там эта «Left "string"» вылазит? Стектрейсы полущ! :)
[14:01:06] <ɹǝɟılʍǝu> Minoru, омг, делаю peekChar после первого endOfLine
[14:01:10] <ɹǝɟılʍǝu> Сыплет запятую
[14:01:24] <ɹǝɟılʍǝu> А, там оно и должно быть, да
[14:02:38] <ɹǝɟılʍǝu> У меня подозрение, что A.string неправильно юзаю
[14:02:41] <Minoru> а, нашёл, это же "<= Обл" и ругается
[14:02:55] <Minoru> ща разберёмся, не волнуйся :)
[14:03:33] <Minoru> ɹǝɟılʍǝu: дык ты перед string сматчил только 13 запятых
[14:03:38] <Minoru> а в файле их 14
[14:03:44] <ɹǝɟılʍǝu> Minoru, угу, кажись вкурил
[14:04:05] <ɹǝɟılʍǝu> На 74й строке нужно увличить 8 до 9
[14:04:22] <Minoru> наверное :) Это от семантики зависит, тебе видней.
[14:04:27] <ɹǝɟılʍǝu> И тогда сразу посде delim трейс выдаст заветный <
[14:05:05] <Minoru> ага, действительно работате
[14:05:08] <Minoru> *работает
[14:05:37] <ɹǝɟılʍǝu> Неа
[14:05:39] <ɹǝɟılʍǝu> Не работает
[14:05:42] <ɹǝɟılʍǝu> Все равно Left
[14:05:49] <Minoru> почему? У меня выдало Right
[14:05:57] <ɹǝɟılʍǝu> 0_0
[14:06:07] <ɹǝɟılʍǝu> Покажи кот
[14:06:13] <ɹǝɟılʍǝu> А то мож я уже научил чаво
[14:07:00] <Minoru> ɹǝɟılʍǝu: http://lpaste.net/147491
[14:07:52] <ɹǝɟılʍǝu> Left
[14:07:55] <ɹǝɟılʍǝu> 0_0
[14:08:17] <Minoru> на вход подаю вот это: http://lpaste.net/6775615293772267520
[14:08:23] <Minoru> может, ты уже успел входной файл поменять?
[14:09:20] <ɹǝɟılʍǝu> Ничо я не менял 9_9
[14:11:18] <Minoru> перекачал оба файла, запускаю — все равно Right
[14:11:54] <ɹǝɟılʍǝu> wtf
[14:12:21] <Minoru> а на чём он спотыкается? Всё ещё string?
[14:12:27] <Minoru> может, у тебя кодировка файла не та?
[14:12:43] <Minoru> хотя я же вроде пасты качал, обе в UTF-8
[14:14:01] <ɹǝɟılʍǝu> Minoru, я уже переписал string на вот это http://lpaste.net/147493
[14:14:17] <ɹǝɟılʍǝu> Так чт теперь
Left "',': Failed reading: satisfy"
[14:16:29] <ɹǝɟılʍǝu> Хм...
[14:16:35] <Minoru> эта паста тоже работает
[14:16:47] <Minoru> трейси, трейси, трейси! Где падает-то?
[14:17:05] <ɹǝɟılʍǝu> в parseVotingRow
[14:17:13] <ɹǝɟılʍǝu> Left "',': Failed reading: satisfy"
[14:17:36] <Minoru> опять 13 запятых вместо 15
[14:17:40] <Minoru> s/15/14/
[14:17:40] <horta hell> Minoru: опять 13 запятых вместо 14
[14:22:48] <j123123> $pet stats
[14:22:48] <horta hell> j123123:
Кличка: Недетерминированный конечный автомат Тьюринга
Здоровье: 94
Сытость: 94
Возраст: 0 часов
[14:22:53] <j123123> $say 10
[14:22:53] <horta hell> j123123: пффффш
[14:22:54] <horta hell> j123123: шпфффф
[14:22:54] <j123123> $say 15
[14:22:55] <j123123> $say 15
[14:22:57] <horta hell> j123123: я твой Хортец!
[14:22:57] <j123123> $say 15
[14:23:02] <horta hell> j123123: >Ничего не делать этот вызов? Вообще, суть инструкции call dword ptr [edx] это вызвать функцию, адрес которой записан в памятb по адресу
[14:23:05] <horta hell> j123123: К сожалению, запрошенное сообщение не было найдено.
[14:23:15] <horta hell> j123123: Haskell beats C using generalised stream fusion, Geoff Mainland, Simon Peyton Jones, João Dias и Norman Ramsey, работают или принимали участие в разработке Glasgow Haskell Compiler. Кодовая база и разработка GHC базируются в Microsoft Research в Кембридже, хотя это нафиг не всралось
[14:23:53] <j123123> >Haskell beats C using generalised stream fusion
Надо на ассемблере писать
[14:24:18] <j123123> >Кодовая база и разработка GHC базируются в Microsoft Research в Кембридже
Плохо, Столлман не одобрит
[14:24:25] <j123123> $say 15
[14:24:25] <horta hell> j123123: вообще, в пацкале проблема с переменным числом аргументов (через va_arg va_list итп) передавала часть своих аргументов в другую сторону наркоманская
[14:24:29] <j123123> $say 15
[14:24:31] <horta hell> j123123: Вот в Java вот без GC не работает, не может т.к. их просто не взять rsync?
[14:24:34] <j123123> $say 15
[14:24:35] <horta hell> j123123: К сожалению, запрошенное сообщение не было найдено.
[14:26:31] <j123123> $say 15
[14:26:32] <horta hell> j123123: Интеллект: Тебе надо непроверенные виндовые приложения запускать какие-то? Для этого стандарт XMPP курить необязательно. Достаточно либу на питоне пишет
[14:26:34] <j123123> $say 15
[14:26:37] <horta hell> j123123: >Дорога по воде («по-мокрому») — механизм связи между камерами посредством нитяных канатов, протянутых через систему обновления шиндошс может без особого напряга грохнуть кучу компов
[14:26:51] <j123123> лолд
[14:26:52] <j123123> лолд
[14:26:54] <j123123> $say 15
[14:26:54] <horta hell> j123123: К сожалению, запрошенное сообщение не было найдено.
[14:26:56] <j123123> $say 15
[14:26:57] <horta hell> j123123: http://habrahabr.ru/post/260637/ >Andy также пришлось контроллировать расположение байтов на стеке, и на интере, и на сишарпе
[14:28:21] <j123123> $say 15
[14:28:21] <horta hell> j123123: чтобы режим дня какой-попало, так что какая-то запущенная штука не может в масосх запилили этот wpf
[14:28:22] <j123123> $say 15
[14:28:24] <j123123> $say 15
[14:28:25] <horta hell> j123123: К сожалению, запрошенное сообщение не было найдено.
[14:28:30] <horta hell> j123123: Конкретно, говорю так. Есть предположим задача: найти минимальное число в массиве. И есть вообще хоть какой-нибудь работающий Си компилятор, который ты скинул
[14:38:15] Graf зашёл в конференцию
[14:38:15] <ɹǝɟılʍǝu> Minoru, странно
[14:38:20] Graf вышел из конференции
[14:38:21] <Minoru> ɹǝɟılʍǝu: что там?
[14:38:28] <ɹǝɟılʍǝu> Не хочет парсить строку "Без названия"
[14:38:51] <ɹǝɟılʍǝu> Minoru, http://lpaste.net/147497
[14:38:56] <rexim> Не хочет парсить строку "Не парсить"
[14:39:24] <ɹǝɟılʍǝu> Minoru, у меня такой выхлоп трейса
Just '1'
Just ','
Just "https://cdn.everypony.ru/storage/00/33/45/2015/12/18/88452bd44e.png"
Just ','
Just "http://tabun.everypony.ru/blog/fanart/145370.html"
Just ','
Just "Kaajuss"
Just ','
Just ""
Just '\9576'
[14:44:10] <Minoru> ɹǝɟılʍǝu:
Just '1'
Just ','
Just "https://cdn.everypony.ru/storage/00/33/45/2015/12/18/88452bd44e.png"
Just ','
Just "http://tabun.everypony.ru/blog/fanart/145370.html"
Just ','
Just "Kaajuss"
Just ','
Just "\1041\1077\1079 \1085\1072\1079\1074\1072\1085\1080\1103"
Just ','
Right (PrePost {ppCoverVotes = [Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing]})
Во имя Луны.
[14:44:10] gsomix вышел из конференции: This participant is kicked from the room because he sent an error message to another participant: service-unavailable
[14:44:22] <ɹǝɟılʍǝu> Minoru, что за хуйня
[14:45:18] <Minoru> ты точно-точно не поменял входной файл? diff-ни!
[14:45:25] <Minoru> больше у меня идей нету
[14:46:06] <Minoru> вообще смотри, у нас отличия в последних строках, где кириллица начинается. Может, таки что-то с кодировками?
[14:46:11] <ɹǝɟılʍǝu> Minoru, я даже пересозранил с исходого у тебя
[14:46:27] <ɹǝɟılʍǝu> Minoru, как узнть?
[14:46:36] <ɹǝɟılʍǝu> Minoru, http://pastexen.com/i/zkzng0U63O.png
[14:46:40] <Minoru> хотя раньше у тебя же string "<= Обл." нормально работало…
[14:47:54] <ɹǝɟılʍǝu> Minoru, странно как-то.
[14:48:13] <ɹǝɟılʍǝu> Minoru, запустил отдельно распарсить, заюзав строку из example2
[14:48:15] <ɹǝɟılʍǝu> Все ок.
[14:48:32] <Minoru> хм
[14:48:41] <Minoru> то есть таки что-то с чтением файла
[14:48:53] <ɹǝɟılʍǝu> Похоже
[14:48:56] <Minoru> «utf-8[dos]» ← вот это вроде правильно, у меня так же
[14:49:42] <Minoru> > Beginning with GHC 6.12, text I/O is performed using the system or handle's current locale and line ending conventions.
[14:49:44] <Minoru> https://hackage.haskell.org/package/text-1.2.1.3/docs/Data-Text-IO.html
[14:50:26] <ɹǝɟılʍǝu> Блять
[14:50:31] <ɹǝɟılʍǝu> И как теперь это исправить?
[14:50:41] <Minoru> > If you know in advance that you will be working with data that has a specific encoding (e.g. UTF-8), and your application is highly performance sensitive, you may find that it is faster to perform I/O with bytestrings and to encode and decode yourself than to use the functions in this module.
[14:50:58] <ɹǝɟılʍǝu> Ну уху есть теперь)
[14:51:12] <Minoru> (прошу не считать этот монолог цитатами признаком неуважения, просто ты очень удачно спрашиваешь :)
[14:51:33] <ɹǝɟılʍǝu> Хех)
[14:56:39] <ɹǝɟılʍǝu> Minoru, теперь все ок
[14:56:41] <Minoru> м, кстати
[14:56:57] <Minoru> > using the system or handle's current locale and line ending conventions
> or handle's
[14:57:06] <Minoru> можно поменять настройки handle-а, и всё будет ок
[14:57:13] <Minoru> ну, чтобы с байтстроками не возиться
[14:57:29] <ɹǝɟılʍǝu> Я уже повозился)
[14:57:59] <Minoru> WONTFIX WORKSFORME :)
[14:58:10] <ɹǝɟılʍǝu> :D
[15:02:20] <ɹǝɟılʍǝu> Minoru, теперь научиться парсить все строчки :]
[15:02:58] <Minoru> ага, и возвращать что-то полезное вместо Nothing :)
[15:03:12] <ForNeVeR> Например, null!
[15:04:06] <ɹǝɟılʍǝu> Хм...
[15:04:11] <ForNeVeR> Какой, всё-таки, хороший подход - изначально не иметь в языке такой опасной фигни, как null. Как удобно получается.
[15:04:12] <ɹǝɟılʍǝu> arts <- AC.many' $ parseVotingRow <* A.endOfLine
не хочет парсить
[15:04:38] <ɹǝɟılʍǝu> Верней, парсит, но возвращает пусто
[15:05:06] <rexim> ForNeVeR: Some(null)
[15:05:18] <rexim> Get some null mazafaka!!11
[15:05:19] <ForNeVeR> rexim: в хаскеле такого нету, ну.
[15:05:20] <rexim> jsdkfj
[15:05:21] <rexim> sdjksd
[15:05:22] <rexim> sdkjksdf
[15:05:28] <ɹǝɟılʍǝu> rexim, омг
[15:05:47] <rexim> Все
[15:05:57] <rexim> Это теперь официально моя любимая строчка кода :)
[15:06:01] <ForNeVeR> Хотя ты можешь, наверное, положить в список какой-нибудь absurd или undefined.
[15:06:13] <ForNeVeR> Some absurd
[15:06:38] <rexim> Just absurd
[15:06:50] <rexim> "В хаскели такого нет. Я Форнёвер."
[15:07:04] * rexim стрательно изображает Нёвера
[15:07:44] <ɹǝɟılʍǝu> data absurd = Just Nothing
Just absurd
[15:08:25] <ForNeVeR> ɹǝɟılʍǝu: absurd уже задефайнен же. Кстати, это сделано весело.
[15:08:32] <ɹǝɟılʍǝu> Да?
[15:08:47] <ForNeVeR> ɹǝɟılʍǝu: https://hackage.haskell.org/package/void-0.7.1/docs/src/Data-Void.html#absurd
[15:08:51] <Minoru> ɹǝɟılʍǝu: ты таки уверен, что парсит? Если many' вернул пустой список, значит, ничего на самом деле не распарсилось
[15:08:53] <ɹǝɟılʍǝu> омг
[15:09:09] <Minoru> ɹǝɟılʍǝu: то, что парсеры *запускались*, ещё ни о чём не говорит. Они могли откатиться, не сожрав ввода
[15:09:59] <Minoru> ɹǝɟılʍǝu: попробуй many1 или many1'
[15:13:45] <ɹǝɟılʍǝu> Minoru, попробовал сделать руками, т.е. шаги
[15:13:53] <ɹǝɟılʍǝu> Не парсится
[15:15:05] <ɹǝɟılʍǝu> Аха, понял
[15:15:07] <ɹǝɟılʍǝu> fixed
[15:16:26] <ɹǝɟılʍǝu> Minoru, няааа
[15:16:29] <ɹǝɟılʍǝu> Все парсится
[15:16:51] <Minoru> почему не работало-то?
[15:17:23] <ɹǝɟılʍǝu> Еще delim забыл в parseVotingRow
[15:17:27] <ɹǝɟılʍǝu> В конце
[15:18:52] <ɹǝɟılʍǝu> Minoru, ты от maybe int
[15:18:53] <ɹǝɟılʍǝu> ;P
[15:19:26] <Minoru> wat
[15:19:28] <Minoru> ._.
[15:19:35] <ɹǝɟılʍǝu> Minoru, реклама была такая
[15:20:37] Аман вышел из конференции
[15:21:44] Graf зашёл в конференцию
[15:22:31] Graf вышел из конференции
[15:27:56] <Minoru> https://www.youtube.com/watch?v=gG62zay3kck
[15:30:34] sss|zombie вышел из конференции
[15:34:19] <ɹǝɟılʍǝu> Minoru, а теперь попробуем на таком же, но чуть другом по данным файле
[15:34:36] <ɹǝɟılʍǝu> fail
[15:34:42] * Minoru забукал ещё два часа на дебаг
[15:34:45] <Minoru> :)
[15:34:53] <ɹǝɟılʍǝu> ;P
[15:35:09] любитель криппи языков вышел из конференции
[15:37:23] <rexim> Minoru: ох...
[15:38:24] <rexim> Minoru: у нас, кстати, немец работает.
[15:38:27] <rexim> Надо ему показать :)
[15:38:58] <ɹǝɟılʍǝu> Minoru, странная хуитка
[15:39:01] <ɹǝɟılʍǝu> \r\r\n
[15:39:08] <ɹǝɟılʍǝu> Вот это разделитель, мать его
[15:40:26] <Minoru> э-э-э
[15:40:35] <Minoru> что-то у тебя там совсем поломанный ввод какой-то!
[15:41:36] <ɹǝɟılʍǝu> Гуглодоки такой нагенерили
[15:41:43] <Minoru> пиздец
[15:41:56] <Minoru> может, там пользователь перевод строки ввёл?
[15:42:39] <ɹǝɟılʍǝu> Не, там у каждой строки csv так.
[15:42:48] <ɹǝɟılʍǝu> ЧСХ, с другого листа все ок
[15:43:45] <Minoru> пиздец ><
[15:44:03] <rexim> Minoru: http://www.youtube.com/watch?v=HovywDWkm9s
[15:44:12] <Minoru> ɹǝɟılʍǝu: переопредели endOfLine, чтобы принимал любую последовательность и смесь \r и \n
[15:44:37] <ɹǝɟılʍǝu> Эээ
[15:44:38] <ɹǝɟılʍǝu> Как?
[15:44:48] <ɹǝɟılʍǝu> Чтобы он мне и \r\n и \r\r\n
[15:44:50] <ForNeVeR> rexim: это что-то типа хороводоводоведов?
[15:45:16] <rexim> ForNeVeR: ты про песню TT-34?
[15:45:31] <rexim> Ну, наверное, можно и так сказать.
[15:48:17] <Minoru> ɹǝɟılʍǝu: endOfLine = takeWhile (inClass "\r\n")
[15:48:32] <Minoru> ɹǝɟılʍǝu: http://hackage.haskell.org/package/attoparsec-0.13.0.1/docs/Data-Attoparsec-Text.html#g:3
[15:55:15] <Minoru> ɹǝɟılʍǝu: на самом деле я не уверен, что это семантически верно. Ты убедись, что эти странные разделители и правда просто странные, а не несут какой-то информации
[15:56:24] <ForNeVeR> А в HL7 вот разделители настраиваются первыми несколькими байтами сообщения, например.
[15:57:23] <Minoru> т.е. передающая сторона может выбрать разделитель так, чтобы потом не офигевать от эскейпинга? Это хорошее решение, одобряю.
[15:57:47] <ɹǝɟılʍǝu> Minoru, почти сработало
[15:57:56] portnov вышел из конференции
[15:58:04] portnov зашёл в конференцию
[15:59:25] <ɹǝɟılʍǝu> Блин, вот от таких вещей у меня СТРАХ http://pikabu.ru/story/yabprokatilsya_3863619
[15:59:28] unixorn вышел из конференции
[15:59:45] <ɹǝɟılʍǝu> Потому что боюсь, что что-то попадется в процессе и расцарапает к хуям.
[16:02:24] <Minoru> да уж
[16:06:37] Аман зашёл в конференцию
[16:10:18] <Minoru> музычки тебе, цодингтим: https://www.youtube.com/watch?v=X0C3DHp36zc (видеоряд не смотрите, там хуета какая-то)
[16:10:41] <rexim> О_О
[16:11:05] <rexim> Вот это артхауз!
[16:11:25] <rexim> Minoru: спасибо
[16:11:45] Аман вышел из конференции
[16:12:52] <Minoru> ты таки посмотрел видео? ._.
[16:12:58] <Minoru> или ты про музыку?
[16:12:59] <rexim> Minoru: какой такой треш угар и наркомания можно не посмотреть?!
[16:13:06] <rexim> Это же просто божественно!
[16:13:12] <Minoru> ну, не всем нравится
[16:13:15] <Minoru> я как-то не проникся
[16:15:09] <uggur> Minoru: https://youtu.be/0LbVMioN6oc тоже архтаус
[16:15:13] <uggur> хотя, скорее поп
[16:15:43] <rexim> Minoru: все, Минорушка. Теперь тебе все будет такое вот кидать. %)
[16:16:36] <Minoru> да, сделайте из меня эпилептика!
[16:16:42] <Minoru> то, что я кидал, можно было хотя бы смотреть
[16:16:51] <Minoru> uggur вообще что-то невероятное бросил
[16:16:59] <rexim> =(
[16:17:11] <ɹǝɟılʍǝu> Короч
[16:17:13] <rexim> А вообще возможно стать эпилептиком смотря такие видео?
[16:17:22] <rexim> Я думал, это какая-то предрасположенность.
[16:17:24] <ɹǝɟılʍǝu> Minoru, rexim, давайте придумывать задачи по теории типов
[16:17:24] <uggur> можно, разрешаю %)
[16:17:27] <ɹǝɟılʍǝu> На примере питона
[16:17:35] <ɹǝɟılʍǝu> (да, лол)
[16:17:35] <Minoru> rexim: не знаю. Надеюсь, нет. Да, я тоже думаю, что предрасположенность.
[16:17:45] <Minoru> ɹǝɟılʍǝu: да ты с ума сошёл!
[16:17:50] <uggur> Minoru: видеоряд не смотри, там хуета какая-то :)
[16:18:03] <Minoru> uggur: а, лол, это слушать нужно было?
[16:18:10] <uggur> :D
[16:18:10] * Minoru снова открыл
[16:18:36] <Minoru> серьёзно, я был настолько удивлён видео, что не послушал музыку. Прости
[16:19:00] <Minoru> ɹǝɟılʍǝu: сложно придумывать задачи, не зная этой самой теории =(
[16:19:18] <uggur> ɹǝɟılʍǝu: 7 + 'a' = error
[16:19:26] <uggur> ɹǝɟılʍǝu: 7 + 7 != error
[16:19:35] <uggur> ɹǝɟılʍǝu: '7' + '7' != error
[16:19:38] <uggur> так? %)
[16:20:05] <uggur> тогда лучше js
[16:20:19] <uggur> ForNeVeR: кидал сюда пример сложения списка и словаря, кажется
[16:20:30] <uggur> в разном порядке
[16:21:36] <ɹǝɟılʍǝu> Minoru, почему? Смотри:
Имеется класс
class Foo (object):
def bar (self): return 0
И функция:
def callFoosBar (val): print (val.bar ())
Что будет, если передать аргументом val в функцию callFoosBar объект типа, отличный от класса Foo и почему? А если у оъекта иного типа будет функция bar? А если будет, но с иным количеством аргументов?
[16:22:37] <ɹǝɟılʍǝu> Еще можно вопрос на тему, когда проявиться ошибка и какого рода это ошибка.
[16:22:50] <ɹǝɟılʍǝu> проявится*
[16:22:55] <ForNeVeR> Фузбар!
[16:23:01] <ɹǝɟılʍǝu> ФОССА
[16:23:06] <ForNeVeR> Ко мне, Фузбар!
[16:23:19] <ɹǝɟılʍǝu> ForNeVeR, https://upload.wikimedia.org/wikipedia/commons/thumb/3/31/Cryptoprocta_ferox.jpg/200px-Cryptoprocta_ferox.jpg
[16:23:20] <uggur> фосса -- это зверёк такой, лол
[16:27:17] <ɹǝɟılʍǝu> Minoru, кстати https://pypi.python.org/pypi/gradual
[16:27:24] <ɹǝɟılʍǝu> Если пишешь — попробуй юзать.
[16:27:40] <Minoru> O_O ого
[16:28:13] <ɹǝɟılʍǝu> Minoru, попробую ради лулзов вкорячить в продакшон на работе любителям питона
[16:28:20] <ɹǝɟılʍǝu> Пущщай «мучаются».
[16:28:29] <uggur> ɹǝɟılʍǝu: и что, таки оно работает норм?
[16:28:36] <ɹǝɟılʍǝu> не пробовал
[16:28:41] <ɹǝɟılʍǝu> Только что нашел.
[16:28:52] <uggur> вообще, даже РЕР был по поводу опциональной типизации
[16:29:16] <uggur> https://www.python.org/dev/peps/pep-0484/
[16:29:17] <uggur> вотъ
[16:30:54] <ɹǝɟılʍǝu> uggur, все равно это все говно
[16:30:59] <ɹǝɟılʍǝu> Но хоть что-то.
[16:32:20] <Minoru> а вот расскажите мне, как правильно выяснять, могу я юзать getopt_long или нет
[16:32:30] <Minoru> в мане пишут, что это GNU extension
[16:32:38] <Minoru> и что-то про Feature Test Macro
[16:32:43] <Minoru> как этим пользоваться?
[16:33:20] <Minoru> оборачивать код в #ifdef-ы, проверяющие эти самые feature macros?
[16:39:50] <rexim> Minoru: https://www.youtube.com/channel/UCw-i0xtpZQN7Rtx8qcj9rpw
[16:40:07] <Minoru> потому что в feature_test_macros(7) написано только, как с их помощью включать и выключать функциональность
[16:41:43] <Minoru> rexim: nice, спасибо!
[16:41:58] <uggur> у меня есть цикл в С. В нём я читаю из файла массив из char. Потом я хочу записывать эти массивы в массив указателей на массив char. Вопрос: как это сделать?
[16:42:43] <ForNeVeR> rexim: записывай массивы чаров в массивы указателей на чар!
[16:42:57] <Minoru> uggur: присваивай указатель на прочитанный массив в ячейку массива указателей
[16:43:45] <uggur> Minoru: но потом когда в следующем цикле я обнуляю массив, он стирает область в памяти, на которую ссылался и указатель в массиве массивов символов
[16:44:01] <uggur> (обнуляю каждый элемент в массиве)
[16:44:53] <ForNeVeR> uggur: ну, э, не делай так.
[16:45:10] <ForNeVeR> Сделай, чтоб он не стирал область в памяти.
[16:45:11] <uggur> ForNeVeR: А как? Мне на каждой итерации цикла нужен массив.
[16:45:17] <ForNeVeR> Заведи массив!
[16:45:56] <ForNeVeR> malloc там, calloc.
[16:46:25] <uggur> А просто char vartxt[MAX_X]; нельзя?
[16:47:07] <uggur> поместить это внутрь цикла и чтобы каждый раз инициализировало новый массив?
[16:47:21] <uggur> (ну, или хотя бы аллоцировало с новым указателем?)
[16:48:01] <ForNeVeR> uggur: рекурсией тогда, а не циклом.
[16:48:20] <ForNeVeR> Но вообще-то звучит так, как будто тебе нужен массив в куче, а не в стеке :)
[16:48:25] <Minoru> uggur: выделяй каждый раз память с помощью malloc, какие проблемы.
[16:49:13] <uggur> Minoru: покажи, как?
[16:49:46] <Minoru> uggur: вместо char vartxt[MAX_X] напиши char** vartxt = (char**)malloc(sizeof(char) * MAX_X);
[16:50:11] <Minoru> uggur: в конце программы не забудь пройтись по массиву указателей на массивы char и для каждого вызвать free()
[16:50:12] <uggur> Эмм...
[16:50:17] <Minoru> (это не обязательно, но полезно)
[16:50:18] <ForNeVeR> Minoru: зачем char**?
[16:50:20] <ForNeVeR> WTF
[16:50:23] <uggur> создать указатель на указатель?
[16:50:25] <ForNeVeR> Minoru: WTF WTF
[16:50:36] <ForNeVeR> Minoru: WTF.
[16:50:56] <ForNeVeR> uggur: char* vartxt = malloc(MAX_X);
[16:50:56] <Minoru> да, это я что-то перемудрил, простите
[16:51:02] <Minoru> а ведь код справа правильный
[16:51:18] <ForNeVeR> Minoru: мне он не нравится.
[16:51:32] <Minoru> ForNeVeR: кто?
[16:51:36] <ForNeVeR> Во-первых, sizeof(char) - это такой fancy way of writing 1.
[16:52:04] <ForNeVeR> Во-вторых, malloc возвращает void *, так что каст не нужен.
[16:52:05] <Minoru> ForNeVeR: нет
[16:52:11] <ForNeVeR> Minoru: пруф?
[16:52:31] <uggur> if ((char)someBoolVal == sizeof(char))
[16:52:51] <rexim> https://www.youtube.com/watch?v=JcPwIQ6GCj8
[16:52:56] <uggur> А знаешь, мне уже начинает нравиться С
[16:53:07] <ForNeVeR> .__.
[16:53:32] <uggur> да ладно, на питоне я пишу так же
[16:53:59] <uggur> Например, вот:
string += "".join([REPLACE_SYMBOLS.get(x, x) for x in variant[0].upper() if ord(REPLACE_SYMBOLS.get(x, x)) <= 127]) + TEXT_END + ("" if variant[1] == "pick scene" else variant[1].split("/")[-1])
[16:55:57] <ForNeVeR> Minoru: http://en.cppreference.com/w/cpp/language/sizeof
> sizeof(char), sizeof(signed char), and sizeof(unsigned char) always return 1.
[16:56:25] <ForNeVeR> Нету никакого практического смысла на них что-то умножать, это константа и она всегда равна 1.
[16:56:29] <uggur> ForNeVeR: только, это, я пишу для AVR
[16:56:36] <ForNeVeR> Разве что если ты таргетируешь какие-то нестандартные компиляторы.
[16:56:37] <uggur> Они там тоже 1 равны?
[16:56:48] <ForNeVeR> uggur: ну, это компилятор языка C?
[16:56:51] <uggur> да
[16:57:00] <ForNeVeR> В языке пыхаси, может, и не равны.
[16:57:03] <ForNeVeR> В языке си - всегда 1.
[16:57:39] <uggur> пхп для AVR
[16:58:02] <ForNeVeR> Я бы, пожалуй, удивился, если б такое встретил.
[16:58:05] <uggur> https://micropython.org/ чёт вспомнилось.
[16:58:09] <uggur> А ещё lua есть.
[16:58:39] <ForNeVeR> uggur: няшно!
[16:58:49] <ForNeVeR> А ещё есть .NET Micro Framework :3
[16:58:59] <uggur> А оно влезет?
[16:59:19] <ForNeVeR> Смотря куда.
[16:59:27] <ɹǝɟılʍǝu> Minoru, усе работает
[16:59:33] <uggur> lua робит на 32 КБ
[16:59:43] <ForNeVeR> uggur: а микропыхотон?
[16:59:56] <ɹǝɟılʍǝu> Minoru, похоже, все ок.
[17:00:18] <uggur> ForNeVeR: не пробовал
[17:00:36] <uggur> 32 КБ -- это флэш-память для кучи, а для стэка 1 КБ
[17:00:36] <ForNeVeR> uggur: ну дак и я луа не пробовал.
[17:01:00] <ForNeVeR> Я ещё не нашёл спек на микрофреймворк :)
[17:01:18] <uggur> чтобы писать на микроконтроллерах микросервисы? :)
[17:01:27] <ForNeVeR> XD
[17:01:52] <ForNeVeR> http://www.netduino.com/hardware/
[17:02:01] <ForNeVeR> Ну, тут помощнее чуток.
[17:02:15] <ForNeVeR> 164 KB RAM, 384 KB "code storage".
[17:02:17] <uggur> фигасе
[17:02:36] <uggur> кортексы -- это вообще дофига какие быстрые и жирные МК
[17:02:55] <uggur> это уже из разряда микрокомпьютеров (:
[17:03:22] <ForNeVeR> А луа прямо на AVR работает?
[17:03:40] <uggur> Нет, конечно. Она компилируется
[17:03:47] <uggur> Хотя...
[17:03:52] <ForNeVeR> ...и где работает? ._.
[17:04:00] <uggur> На моём ПК она тоже компилируется
[17:04:11] <uggur> ForNeVeR: Да, прямо на AVR работает
[17:04:37] <uggur> только там копилятор закрытый и проприетарный
[17:04:43] <uggur> так что я лучше на С буду продожлать :Ь
[17:05:19] <superka> а зачем этот нетдуино нужен, чот дорогой какойто и слабый
[17:05:24] <ForNeVeR> uggur: микропыхотон тоже на кортексе, например.
[17:05:36] <ForNeVeR> superka: ну, я лампочкой моргал. Зачем нужен - хз, не могу придумать :)
[17:06:29] <uggur> лампочкой мог на 555 таймере поморгать, лол
[17:06:41] <ForNeVeR> Да и без таймера можно, хули.
[17:06:45] <superka> а никто не делал себе электронные замки?
[17:06:50] <superka> чтобы нажал кнопку - и дома
[17:06:51] <Minoru> ForNeVeR: ок, согласен — sizeof(char) смысла не имеет
[17:07:08] <ForNeVeR> Minoru: :3
[17:07:40] <uggur> superka: сначала нужно сделать турель
[17:07:43] <uggur> а потом -- замок
[17:07:56] <superka> uggur: а турель зачем?
[17:08:21] <ForNeVeR> superka: чтобы осаждающих отстреливать!
[17:09:01] <superka> так я бы сделал турель, мне это интересно, но хотелось бы сначала более полезные вещи
[17:09:01] <Minoru> так что, про getopt_long мне так никто и не объяснит? :(
[17:13:13] <uggur> superka: https://youtu.be/iWq2ngQ694k?t=1h8m35s
[17:13:54] <uggur> :)
[17:14:43] <rexim> В общем я подумал-подумал и решил, что по-русски мне таки нравится стримить больше: http://www.youtube.com/watch?v=Br4XNH74UCw
[17:15:18] <uggur> ForNeVeR: почти (:
[17:15:59] <uggur> Храм Омниссии не должен быть осквернён
[17:18:09] <superka> uggur: так а как перезаряжать это дело? это же придется систему подгона снарядов придумать сначала
[17:18:28] <uggur> superka: Вручную.
[17:18:39] <uggur> Лампочку поставь когда магазин опустеет
[17:19:22] <superka> uggur: так они же пролезуть туда, сунут ключ и убегут, а потом что захотят делать будут, пока я заряжать там буду
[17:19:53] <uggur> эмм?
[17:20:09] <uggur> они пролезут, сунут ключ, если неправильно повернут -- они умрут
[17:20:11] <ForNeVeR> superka: заставь их два ключа одновременно поворачивать, как на подлодке.
[17:20:19] <uggur> а если не повернут -- ничего не произойдёт
[17:20:34] <uggur> ForNeVeR: или пусть закрывается блокирующая решётка
[17:21:00] <superka> uggur: так они ключ к шбаре прицепят и его повернут, а на второй попытке уже стрелять не будет
[17:21:04] <superka> и подберут в итоге
[17:21:26] <uggur> superka: А ты за углом дверь сделай :)
[17:22:08] <superka> uggur: отправят какого нибудь бомжа, не вариант в общем
[17:22:23] <uggur> superka: если будут знать заранее (:
[17:22:30] <superka> перезаряжать надо
[17:22:45] <uggur> магазин
[17:22:47] <uggur> не слышал?
[17:22:56] <uggur> проще всего сделать барабан
[17:23:08] <superka> uggur: ну да, патроны кончаться когда нибудь :D
[17:23:14] <uggur> или турель на 8 стволов -- так ещё проще
[17:23:44] <uggur> 8 бомжей найдут?
[17:24:00] <superka> ._.
[17:24:07] <superka> смотря что спрятать
[17:24:18] <uggur> слушай, тут обсуждались воры, а не зерги
[17:24:33] <superka> электронный замок мне нужен не от воров... просто мне лень открывать
[17:24:34] <uggur> против зергов нужно использовать огнемёт
[17:24:46] unixorn зашёл в конференцию
[17:24:49] <uggur> Да!
[17:24:58] <uggur> Самоходная огнемётная установка 8D
[17:25:22] <uggur> ...на радиоуправлении
[17:31:51] <superka> uggur: а ты роботов делаешь?
[17:31:56] <uggur> нет :D
[17:32:27] <superka> почему?
[17:33:23] <rexim> Шуперка! =3
[17:34:45] <superka> rexim: шо
[17:34:50] <uggur> superka: потому что у меня не хватает навыков, очевидно.
[17:34:52] <superka> ты тоже хочешь робота?
[17:35:04] <uggur> ForNeVeR: http://pastebin.com/G323aW0H вот смотри
[17:35:31] <uggur> я правильно заполняю VARNAMES?
[17:36:21] <ForNeVeR> char* vartxt = (char*)malloc(MAX_X);
[17:36:25] <ForNeVeR> Ну вот нахуй тут каст?
[17:36:42] <ForNeVeR> Мы же, вроде, договорились, что сегодня пишем на C?
[17:36:52] <uggur> я передумал -- мы пишем на плюсах (:
[17:36:59] <ForNeVeR> Тогда вообще весь код - говно.
[17:37:04] <ForNeVeR> Используй std::vector.
[17:37:04] <superka> хаха
[17:37:07] <uggur> Нет
[17:37:13] <ForNeVeR> Тогда пиши на C.
[17:37:14] <uggur> Я пишу на плюсах как на С
[17:37:26] <ForNeVeR> .ignore uggur
[17:37:30] <uggur>
[17:37:53] <uggur> Я знал, что ты плюсы больше С любишь
[17:38:15] <superka> https://www.youtube.com/watch?v=fPEeeVofRYc :D
[17:39:06] <Minoru> ForNeVeR: э
[17:39:19] <Minoru> ForNeVeR: почему на Си не нужно кастовать результат malloc?
[17:39:25] <superka> блин даже роботу дали топор, он в маньяка превратился
[17:39:48] <ForNeVeR> Minoru: а почему ты задаёшь этот вопрос мне?
[17:39:58] <ForNeVeR> Minoru: потому, что malloc возвращает void *.
[17:40:14] <ForNeVeR> void * - это свободно конвертируемая валюта.
[17:40:26] <uggur> ты любишь null в Java
[17:40:50] <uggur> хм, было бы забавно получать мусор в жабе по null
[17:41:06] <Minoru> uggur: што
[17:41:15] <uggur> сарказм
[17:41:16] <Minoru> uggur: вся суть null в том, что по этому адресу не мусор
[17:41:30] <Minoru> ForNeVeR: м, ну ладно
[17:41:59] <ForNeVeR> Minoru: просто, ну, договорились, что пишем на C, а потом зачем-то кастуем void* :(
[17:42:14] <uggur> Ладно, я понял почему не работало -- я не внутрь цикла запихнул
[17:42:15] <ForNeVeR> В плюсах этот каст невалиден, всё верно.
[17:42:32] <uggur> алсо, всё работает теперь, не знаю что там невалидно
[17:43:14] <ForNeVeR> Ну, в смысле, он неявно за тебя не сделается. А в C - сделается.
[17:43:15] <uggur> Я бы поблагодарил ForNeVeR, да он не читает
[17:43:32] <uggur> хм
[17:43:44] <uggur> $send ForNeVeR спасибо
[17:43:46] <horta hell> uggur: Сообщение доставлено.
[17:44:02] <Minoru> uggur: $karma, $pet transfer
[17:44:31] <uggur> $karma help
[17:44:31] <horta hell> uggur: karma show [username]
karma top
karma username +/-
[17:44:36] <ɹǝɟılʍǝu> $karma Minoru +
[17:44:37] <horta hell> ɹǝɟılʍǝu: M-noru's karma changed
[17:44:38] <uggur> $karma ForNeVeR +
[17:44:39] <horta hell> uggur: F-rNeVeR's karma changed
[17:44:44] <ɹǝɟılʍǝu> $karma top
[17:44:44] <horta hell> ɹǝɟılʍǝu:
r-xim 6
m4n71k0r 6
F-rNeVeR 5
ugg-r 4
folex 4
[17:45:10] <ɹǝɟılʍǝu> $karma Minoru
[17:45:11] <horta hell> ɹǝɟılʍǝu: karma show [username]
karma top
karma username +/-
[17:45:23] <ɹǝɟılʍǝu> $karma show Minoru
[17:45:23] <horta hell> ɹǝɟılʍǝu: Карма пользователя M-noru: 1
[17:47:11] любитель криппи языков зашёл в конференцию
[17:56:42] rexim вышел из конференции
[17:58:21] ckorzhik вышел из конференции
[17:58:31] Аман зашёл в конференцию
[18:06:58] hdhog зашёл в конференцию
[18:07:27] hdhog вышел из конференции: Отключён
[18:12:39] Славный капитан вышел из конференции
[18:33:44] rexim зашёл в конференцию
[18:38:31] <rexim> Minoru: рабабабабараба!
[18:38:57] <Minoru> rexim: tickle-tickle?
[18:39:14] <rexim> Ааааааааахахехахехохахе
[18:39:47] <Minoru> помогите, Миксер слюнями захлебывается!
[18:40:16] <rexim> Minoru: http://www.youtube.com/watch?v=dMsiA-o-IMw
[18:40:28] ckorzhik зашёл в конференцию
[18:42:08] ckorzhik вышел из конференции
[18:42:10] ckorzhik зашёл в конференцию
[18:42:14] <Minoru> rexim: смех у него офигенный
[18:42:22] <rexim> Ага! :D
[18:43:12] <rexim> Причем, кажется он даже понимает, что значит "Tickle-tickle"
[18:43:14] <ɹǝɟılʍǝu> Minoru, ЧПК
[18:43:22] <rexim> По крайней мере, у него есть какая-то ассоциация
[18:43:27] <Minoru> rexim: ну да
[18:43:43] <Minoru> rexim: как и с «What's that?», судя по description под видео
[18:43:51] <Minoru> мол, он задаёт вопрос, когда слышит шум
[18:44:03] <rexim> Хм!!
[18:44:09] <rexim> А я даже и не заметил!
[18:44:13] <rexim> Спасибо! :)
[18:44:19] <rexim> Прикольно
[18:44:24] <rexim> Классного она его обучила.
[18:44:34] <rexim> Классно*
[18:51:14] uggur вышел из конференции
[19:00:15] eaeee зашёл в конференцию
[19:00:50] <Minoru> T-58m
[19:07:57] <rexim> Надо готовитьсяюю
[19:07:58] <rexim> Лол
[19:08:03] rexim вышел из конференции
[19:09:07] rexim зашёл в конференцию
[19:14:13] rexim вышел из конференции
[19:26:47] eaeee вышел из конференции
[19:32:50] rexim зашёл в конференцию
[19:32:59] <rexim> .ping
[19:33:00] <DeadBot> rexim: понг от тебя 0.36 секунды
[19:33:43] <rexim> Minoru: чай --- чек!
[19:34:31] <Аман> .ping
[19:34:31] <DeadBot> Аман: понг от тебя 0.30 секунды
[19:34:38] <Аман> i won
[19:35:41] <rexim> .ping
[19:35:41] <DeadBot> rexim: понг от тебя 0.06 секунды
[19:35:44] <rexim> :P
[19:36:04] <rexim> Аман: gonna start the stream soon
[19:36:07] <rexim> wanna watch?
[19:37:55] <Аман> rexim: for me it will be keep buffering
[19:38:16] <rexim> Аман: does youtube usually buffer for you?
[19:38:22] <rexim> I'm gonna stream on youtube
[19:38:28] <Аман> no
[19:38:51] <rexim> Аман: just in case http://www.youtube.com/watch?v=Br4XNH74UCw
[19:39:40] <Аман> rexim: 20 min left
[19:40:07] <rexim> Yep
[19:40:12] <Аман> it will run smooth
[19:40:32] <Аман> okey then let me cook something really quick
[19:40:34] <Аман> brb
[19:42:11] <rexim> Аман: I already started the stream but I won't start coding before the scheduled time. :)
[19:42:20] <rexim> ForNeVeR: Minoru: http://www.youtube.com/watch?v=Br4XNH74UCw
[19:42:42] <rexim> ɹǝɟılʍǝu
[19:46:46] dzhon зашёл в конференцию
[19:50:54] eaeee зашёл в конференцию
[19:54:50] rexim вышел из конференции
[20:10:14] <horta hell> Недетерминированный конечный автомат Тьюринга переворачивает всё вверх дном в поисках еды.
[20:12:55] <Minoru> $pet feed
[20:12:55] <horta hell> Minoru: Чудо свершилось! Друг был другом спасён! Вы получаете 3PTC, а Недетерминированный конечный автомат Тьюринга сыт и доволен.
[20:14:57] <любитель криппи языков> $pet stats
[20:14:58] <horta hell> любитель криппи языков:
Кличка: Недетерминированный конечный автомат Тьюринга
Здоровье: 43
Сытость: 100
Возраст: 6 часов
[20:45:24] m4n71k0r зашёл в конференцию
[20:46:49] uggur зашёл в конференцию
[20:58:01] gsomix зашёл в конференцию
[21:04:57] <любитель криппи языков> $pet stats
[21:04:59] <horta hell> любитель криппи языков:
Кличка: Недетерминированный конечный автомат Тьюринга
Здоровье: 32
Сытость: 90
Возраст: 7 часов
[21:33:34] unixorn вышел из конференции
[21:34:07] <ForNeVeR> Ок, я за сегодня написал простенький парсер в Наггуме.
[21:34:31] <ForNeVeR> Код целой сборочки уже парсит! Поддерживает две инструкции!
[21:34:53] <ForNeVeR> Следующим заходом запилю ассемблер для этого дела.
[21:36:03] <Minoru> две инструкции? Да у вас RISC!
[21:36:46] <ForNeVeR> Не, скорее CISC. Инструкции очень тяжёлые.
[21:37:00] rexim зашёл в конференцию
[21:37:02] <ForNeVeR> Ну там, вызвать виртуальный метод, например :)
[21:37:14] <rexim> \o/
[21:37:19] <m4n71k0r> уровня "зделой збс", небось
[21:37:31] <ForNeVeR> Не, таких нету. Это будет макросом.
[21:37:56] <m4n71k0r> "реши NP полную задачу вчера"
[21:38:31] <rexim> http://www.youtube.com/watch?v=Br4XNH74UCw
[21:39:59] <ɹǝɟılʍǝu> https://youtu.be/UUlaseGrkLc
[21:40:15] <j123123> $pet stats
[21:40:17] <horta hell> j123123:
Кличка: Недетерминированный конечный автомат Тьюринга
Здоровье: 23
Сытость: 82
Возраст: 7 часов
[21:40:23] <j123123> $pet rating
[21:40:23] <horta hell> j123123:
л-битель криппи языков: 11PTC
M-noru: 10PTC
j123123: 5PTC
ʕ•ᴥ•ʔ: 5PTC
[21:41:46] rexim вышел из конференции
[21:45:17] rexim зашёл в конференцию
[21:46:49] <ɹǝɟılʍǝu> rexim, ↑ глянь мульт
[21:49:53] <m4n71k0r> $pet feed
[21:49:53] <horta hell> m4n71k0r: Недетерминированный конечный автомат Тьюринга не голоден.
[21:50:02] <m4n71k0r> арррррррррррррррр
[21:52:30] <ɹǝɟılʍǝu> m4n71k0r, УРУУ
[21:52:37] <ɹǝɟılʍǝu> Покажи дочьке тот мульт)
[21:53:07] <m4n71k0r> ɹǝɟılʍǝu: покажу, когда ты научишься правильно писать -чк/-чн
[21:53:26] <ɹǝɟılʍǝu> m4n71k0r, ниет
[21:55:14] uggur вышел из конференции
[21:55:51] uggur зашёл в конференцию
[21:57:24] <ɹǝɟılʍǝu> m4n71k0r, на дочурке еще https://www.youtube.com/watch?v=AzNio77XA8k
[22:04:50] nextiter вышел из конференции: This participant is kicked from the room because he sent an error presence: service-unavailable
[22:09:18] uggur вышел из конференции
[22:09:59] uggur зашёл в конференцию
[22:10:14] uggur вышел из конференции
[22:10:53] Славный капитан зашёл в конференцию
[22:15:24] <Аман> rexim: finished?
[22:16:11] <rexim> Аман: yep
[22:17:23] <Аман> rexim: i didnt watched full, c++ was going out of mind
[22:18:53] <Minoru> ɹǝɟılʍǝu: неплохие мульты, спасибо!
[22:22:19] <rexim> ɹǝɟılʍǝu: ага, спасибо. Я чуть позже гляну...
[22:23:49] <rexim> Аман: did you understand anything? Should I have spoken in English?
[22:24:37] <Аман> rexim: i understood by watching that you were creating game, and yes you should have spoken in english
[22:25:47] <Аман> rexim: https://www.thenewboston.com/videos.php?cat=16&video=17541 i enjoy hearing him
[22:30:44] <Славный капитан> Ну вот что за фигня.
[22:31:28] <Славный капитан> Каждый раз как сплю днем, снится какая-то упоротая хрень, сон в ногу прямо ~_~
[22:32:58] MaXGGXaM вышел из конференции: Вышел из Vacuum-IM
[22:33:24] uggur зашёл в конференцию
[22:35:18] MaXGGXaM зашёл в конференцию
[22:37:51] Аман вышел из конференции: Replaced by new connection
[22:37:52] Аман зашёл в конференцию
[22:42:48] uggur вышел из конференции
[22:43:48] uggur зашёл в конференцию
[22:44:11] <uggur> хм?
[22:44:42] <Аман> hmm
[22:46:13] <любитель криппи языков> $pet heal
[22:46:16] <horta hell> любитель криппи языков: Недетерминированный конечный автомат Тьюринга был совсем плох и, скорее всего, умер бы, если бы вы его вовремя не полечили. Вы зарабатываете 1PTC.
[23:02:07] <rexim> $send ForNeVeR Transient!
[23:02:09] <horta hell> rexim: Сообщение доставлено.
[23:03:58] <rexim> Minoru: Transient!
[23:04:06] <rexim> Much better word
[23:05:38] <Minoru> сомнительно
[23:05:57] <Minoru> ты бы ещё Fleeting заюзал
[23:06:32] <Minoru> шаблон <типоимя Т>
класс Мимолётный
{

[23:06:35] <rexim> =(
[23:06:51] * rexim набирает git reset...
[23:07:06] <Minoru> да-да-да, конечно
[23:07:14] <Minoru> я же знаю, что ты работаешь через magit
[23:07:38] <rexim> В магет нельзя делать ресет. :P
[23:07:44] <Minoru> O_O
[23:07:48] <rexim> По крайней мере, они это очень плохо задокументировали.
[23:07:50] <Minoru> серьёзно? Почему?
[23:07:52] <gsomix> Плям.
[23:07:57] <rexim> Ну, я не знаю как
[23:08:03] <rexim> В стандартной справке нет этого.
[23:08:11] <Minoru> gsomix: плюх!
[23:08:17] <rexim> Я подозреваю, чтоб в ногу не выстрелить.
[23:08:22] 0xd34df00d зашёл в конференцию
[23:08:23] <Minoru> rexim: ну, это как-то несерьёзно
[23:08:27] <rexim> Чойта.
[23:08:32] <rexim> Ченьж-то деструктивный.
[23:08:39] <Minoru> с другой стороны, там наверняка просто эту команду разбили на кучу отдельных
[23:08:45] <Minoru> reset-то для всякого может юзаться
[23:08:46] <rexim> Если ты знаешь что это и как это юзать, то и в консольке можешь сделать.
[23:08:59] <rexim> Может быть.
[23:09:00] <Minoru> с таким подходом magit вообще непонятно, зачем нужен
[23:09:04] uggur вышел из конференции: Replaced by new connection
[23:09:10] <rexim> Так или иначе, я ресетнул в консоле)
[23:09:11] uggur зашёл в конференцию
[23:09:28] <rexim> Minoru: ну офигеть теперь. Ресета нет, магит не нужен ._.
[23:09:40] <rexim> С таким подходом и меркуриал не нужен.
[23:09:56] <Minoru> не-не-не, я к вот этому говорил:
> Если ты знаешь что это и как это юзать, то и в консольке можешь сделать.
[23:10:19] <rexim> Я к тому, что это очень опасный ченьж. Если ты отдаешь себе отчет, делай в консоле.
[23:10:23] <rexim> Я вот к чему говорил)
[23:10:35] <Minoru> о, вспомнил!
[23:10:38] <Minoru> вспомнил, ура!
[23:10:45] <Minoru> вчера я не помнил, что сказать тебе хотел
[23:10:51] <rexim> Ага, давай
[23:10:51] <Minoru> я хотел про git checkout -p пояснить
[23:10:59] <Minoru> я, правда, забыл контекст из стрима :D
[23:11:01] <Minoru> минутку
[23:11:02] <rexim> Я даже не знаю что это ._.
[23:11:17] <rexim> А
[23:11:19] <rexim> Вспомнил
[23:11:20] <rexim> Кажется
[23:11:24] <Minoru> ну ты ман открыл, прочитал, сказал «что-то непонятное» и закрыл
[23:11:35] <rexim> Ага
[23:11:43] <rexim> Я прям сейчас тоже самое сделал ЖВ
[23:11:47] <rexim> Прям один в один
[23:11:47] <Minoru> ты помнишь, где это было?
[23:11:50] <Minoru> на какой минуте
[23:11:52] <rexim> Неа
[23:11:57] <Minoru> ок, тогда жди
[23:12:01] <rexim> =(
[23:13:34] * rexim .oO( Нужно нормальное название для Transitionable придумать... )
[23:13:35] uggur вышел из конференции
[23:14:37] <Minoru> rexim: https://www.youtube.com/watch?v=seDAc7jdkpk&ab_channel=Tsoding&t=59m41s
[23:14:39] uggur зашёл в конференцию
[23:14:55] <Minoru> rexim: git checkout --patch делает то же самое
[23:15:25] <Minoru> он работает так же, как и git add --patch, только вместо добавления в index удаляет из него (обратно в рабочую копию — сами правки никуда не деваются)
[23:15:43] <rexim> Ну, magit скорее всего его под капотом и юзает.
[23:15:49] <gsomix> rexim, а что значит «transitionable»?
[23:16:02] <rexim> gsomix: самому бы знать!
[23:16:17] <gsomix> rexim, ну, а что ты хочешь обозвать-то?
[23:16:43] <Minoru> gsomix: вон ту штуку!
[23:16:46] <rexim> Minoru: тут скорее преимущество с точки зрения UI.
[23:16:56] <Minoru> rexim: ну я понял, что в редакторе удобней
[23:16:58] <rexim> Я же должен какой-то там патч подготовить, верно?
[23:17:12] <gsomix> Minoru, спасибо, я все понял!
[23:17:14] <Minoru> rexim: этот --patch порой ещё нужно убедить, чтобы он удалил только нужный тебе кусочек
[23:17:28] <Minoru> rexim: нет. Ну запусти уже и посмори, ну!
[23:17:42] <Minoru> rexim: он ничего без твоего согласия не делает, можешь просто запустить, глянуть и нажать q
[23:18:14] <rexim> А, он интерактивный?
[23:18:15] <rexim> Ок.
[23:18:20] <Minoru> gsomix: на самом деле я что-то перестал понимать, что там происходит, поэтому моя шутка останется шуткой, а по-серьёзному тебе уже Миксер объяснит. Извини
[23:18:37] <gsomix> .__.
[23:19:03] uggur вышел из конференции
[23:19:05] <rexim> Вот в этом вся и проблема.
[23:19:13] <rexim> Нужно название, чтобы все сразу все поняли.
[23:19:22] <rexim> А если все перестали понимать, значит названия плохие.
[23:19:24] uggur зашёл в конференцию
[23:19:41] <gsomix> rexim, Minoru, мне нужно какой-то контекст загрузить?
[23:19:45] <rexim> Если название будут хорошие, то и объяснять ничего не надо будет.
[23:19:47] <gsomix> Чтобы понять, о чем вы?
[23:20:04] <Minoru> rexim: ну, я перестал понимать, когда у тебя эта штука появилась. Просто T и Transition<T> я вроде понимал, было норм. А вот это третье колесо непонятно пока что, зачем нужно…
[23:20:21] <Minoru> gsomix: посмотри сегодняшний стрим
[23:20:35] <gsomix> Бял.
[23:20:36] <gsomix> Ладно.
[23:20:39] <Minoru> вот да, минус видео — не поскипать, не прочитать по диагонали нормально
[23:20:45] <gsomix> Я лучше пойду дела делать.
[23:20:57] <Minoru> то есть я сейчас могу либо послать Гсомикса смотреть больше часа видео, либо должен пересказать
[23:21:06] <m4n71k0r> пойдёшь уйдёшь?
[23:21:17] <gsomix> Пойду уйду!
[23:21:25] <rexim> Minoru: а ну третие колесо просто неразрывно соединяет первые два.
[23:21:34] <rexim> Так, чтобы это была одна сущность.
[23:22:04] <Minoru> но зачем? У тебя просто есть текущее состояние и куча Transition-ов, которые ты к нему применяешь на каждом тике
[23:22:05] <gsomix> Кстати, если кому-нибудь нужен большой справочник по линейной алгебре, то я знаю человека, который знает человека...
[23:22:07] <gsomix> Ну, вы поняли.
[23:22:24] <Minoru> gsomix: ты мастер указателей просто
[23:22:46] <rexim> Minoru: зачем мне к одному и тому же элементарному типу применять несколько транзишенов одновременно?
[23:22:56] <rexim> Это каша какая-то получиться.
[23:23:00] Аман вышел из конференции
[23:23:04] uggur вышел из конференции
[23:23:10] <rexim> А что если у транзишена сложная логика завершения?
[23:23:18] uggur зашёл в конференцию
[23:23:20] <rexim> Только, когда значение достигло чего-то.
[23:23:21] <m4n71k0r> Minoru: rexim кхм
[23:23:30] <rexim> А если другой транзишен не даст ему этого достигнуть.
[23:23:34] <rexim> Фигня какая-то.
[23:23:41] * Minoru похлопал m4n71k0r-а по спине
[23:23:43] <Minoru> не кашляй!
[23:23:51] <m4n71k0r> нет, я прсто хотел поинтересоваться
[23:23:52] <Minoru> rexim: битва транзишенов!
[23:24:12] <rexim> Minoru: это не нужно. По крайней мере, я не вижу, где это может быть нужно.
[23:24:28] <rexim> Приведи пример, если ты уверен, что это нужно.
[23:24:35] <Minoru> rexim: на самом деле давай этот разговор на завтра отложим. Пока ты будешь на работе, я перечитаю код, возможно, пересмотрю стрим, и тогда либо пойму, что именно я не понимаю, либо до меня дойдёт и… всё, собственно :)
[23:24:45] <m4n71k0r> а где код?
[23:24:54] <rexim> ок
[23:24:57] <Minoru> m4n71k0r: https://github.com/rexim/beatwave
[23:25:03] <m4n71k0r> спасибо
[23:25:12] <m4n71k0r> ой
[23:25:15] <m4n71k0r> плюсы)
[23:25:33] <rexim> Minoru: вот для грубы элементарных типов имеет смысл делать несколько транзишенов одновременно.
[23:25:37] <rexim> Для одного — нет.
[23:26:02] <Minoru> rexim: ох сейчас тебя как отрефакторят… Ты будешь убегать, а тебе вдогонку будут лететь пуллреквесты…
[23:26:21] <rexim> Это очень странно.
[23:26:27] <rexim> Как можно рефакторить то, чего нет?
[23:26:52] <ɹǝɟılʍǝu> m4n71k0r, тррррр
[23:26:58] <rexim> Ну, т.е. мы сегодня закоммитили код, который даже не компилируется?
[23:27:04] <ɹǝɟılʍǝu> тратататататататрррррр
[23:27:05] <rexim> s/?//
[23:27:07] <horta hell> rexim: Ну, т.е. мы сегодня закоммитили код, который даже не компилируется
[23:27:16] <m4n71k0r> $pet feed
[23:27:16] <horta hell> m4n71k0r: Недетерминированный конечный автомат Тьюринга не желает есть.
[23:27:22] <m4n71k0r> $pet heal
[23:27:22] <horta hell> m4n71k0r: Недетерминированный конечный автомат Тьюринга будучи в здравом уме и твёрдой памяти отказался от медицинской помощи.
[23:27:38] <Minoru> rexim: там разберутся!
[23:27:48] <rexim> Окей.
[23:28:07] <rexim> Только кажется к тому, момент, как я посмотрю эти пулл-реквесты, они уже будут немерджабельны.
[23:28:55] <Minoru> ну, что поделать…
[23:32:16] uggur вышел из конференции: Replaced by new connection
[23:32:22] uggur зашёл в конференцию
[23:33:00] portnov вышел из конференции
[23:33:03] <rexim> .time Minoru
[23:33:04] <DeadBot> rexim: 20 Dec 2015 22:35:28
[23:33:14] <rexim> Minoru: ты же еще тут долго будешь?
[23:33:21] <Minoru> пару часов, наверное
[23:33:49] <rexim> ok
[23:33:56] <Minoru> а ты что-то хотел?
[23:33:56] <rexim> Я просто думаю над названиями.
[23:34:04] <rexim> Буду на тебе их пробовать)
[23:34:30] <Minoru> ох щи
[23:34:35] <Minoru> мой мозг будут брутфорсить!
[23:36:12] uggur вышел из конференции: Replaced by new connection
[23:36:19] uggur зашёл в конференцию
[23:37:41] <Minoru> https://www.youtube.com/watch?v=tP8nYbjXAFw
[23:38:58] <m4n71k0r> ɹǝɟılʍǝu: они типа этим упоролись? http://doc.qt.io/qt-5/qml-qtquick-transition.html Только своим
[23:39:13] uggur вышел из конференции
[23:39:32] <ɹǝɟılʍǝu> m4n71k0r, не понял
[23:39:49] uggur зашёл в конференцию
[23:40:23] <m4n71k0r> ɹǝɟılʍǝu: только издеваются над кружочком https://github.com/rexim/beatwave/blob/master/state.hpp
[23:40:35] <m4n71k0r> ɹǝɟılʍǝu: https://github.com/rexim/beatwave/blob/master/main.cpp#L10
[23:40:39] <ɹǝɟılʍǝu> омг
[23:41:00] <ɹǝɟılʍǝu> фига
[23:41:22] <Minoru> тимота, а что, единственный способ из char получить std::string — это std::string(1, 'x')?
[23:41:29] <m4n71k0r> кстати можно возврщать просто структурку типа
return {s1.x - s2.x,
s1.y - s2.y,
s1.radius - s2.radius,
s1.r - s2.r,
s1.g - s2.g,
s1.b - s2.b,
s1.a - s2.a}
[23:41:31] <Minoru> чот не ddg-тся
[23:42:01] <m4n71k0r> Minoru: std::string() + 'x'
[23:42:28] <m4n71k0r> ещё один способ
[23:43:12] <Minoru> да, это получше. Спасибо, m4n71k0r!
[23:43:19] <m4n71k0r> разве?
[23:43:38] <rexim> Minoru: http://ideone.com/OkrB0Y
[23:43:38] <ɹǝɟılʍǝu> чпок
[23:43:40] <m4n71k0r> я это использовал в "компилтайм" создании строк
[23:43:56] <rexim> Minoru: Animated => Transitionable, Animation => Transition
[23:44:10] <rexim> Minoru: пожалуйста, почитай внимательно и скажи, что думаешь.
[23:45:34] <m4n71k0r> упорки
[23:46:57] uggur вышел из конференции
[23:47:09] <Minoru> rexim: вроде всё понятно
[23:47:39] <rexim> Minoru: в этом и была моя идея, которую я пытался сделать на стриме)
[23:47:46] uggur зашёл в конференцию
[23:47:54] <rexim> Т.е. Animation-oriented названия лучше?
[23:48:15] <rexim> Хм...
[23:48:16] <Minoru> они более интуитивны, да
[23:48:19] <rexim> А ведь и правда!
[23:48:28] <rexim> Я даже так могу описать анимации с кадрами!
[23:48:41] <rexim> Animated<Frame> attack
[23:48:45] <Minoru> хотя в итоге могут возникать вопросы типа «а почему это Animation, если оно всего лишь меняет цвет?»
[23:48:52] <rexim> attack.animation(fromFile("attack.ejk"))
[23:49:09] <rexim> Все норм!
[23:49:15] <rexim> Я же говорю
[23:49:26] <rexim> По кадровые анимации тоже на эту модель ложаться!
[23:49:30] <rexim> Это офигенно!
[23:49:31] <rexim> фров
[23:49:32] <rexim> волыва
[23:49:33] <rexim> олва
[23:49:41] <rexim> Все анимация!
[23:49:44] <rexim> Даже небо!
[23:49:49] <rexim> Ну вы поняли
[23:50:01] <Minoru> сегодня утром у нас был кружок, умеющий менять цвет и двигаться вправо
[23:50:12] <Minoru> сейчас почти полночь, и у нас уже есть модель мира
[23:50:25] <Minoru> отберите у нас клавиатуры, пока ещё не поздно!
[23:50:32] <rexim> Не совсем модель мира.
[23:50:40] <rexim> У нас есть инструмент для построения модели мира.
[23:50:56] <rexim> Это похоже тот самый фреймворк, который я вчера хотел создать.
[23:51:41] uggur вышел из конференции: Replaced by new connection
[23:51:45] <Minoru> я бы танцевал, если бы не было так страшно :)
[23:51:47] uggur зашёл в конференцию
[23:51:49] <rexim> Minoru: можно делать chained-animations :)
[23:51:55] <rexim> Looped-chained-animations
[23:52:02] <rexim> Все очень классно ложиться.
[23:52:07] <rexim> И все довольно гибкое.
[23:52:16] * rexim кончил.
[23:52:29] <rexim> Надо идти спать
[23:52:58] <Minoru> твои сообщения в чатик — это всего лишь Animation, которые двигают текст в моём окне чата вверх и добавляют снизу новый
[23:53:17] <rexim> Да
[23:53:44] <Minoru> блин, как страшно жить
[23:53:47] <rexim> Стоп
[23:54:00] <rexim> Кажется я почти изобрял FRP
[23:54:02] <rexim> Или нет?
[23:54:04] <rexim> Нет
[23:54:05] <Minoru> написал что-то типа std::string a = "hello worl" + 'd';
[23:54:07] <rexim> Это другое
[23:54:16] <Minoru> получил какую-то ересь
[23:54:18] <Minoru> разбил на две строки
[23:54:19] <rexim> Лол
[23:54:21] <Minoru> работает!
[23:54:33] <rexim> Minoru: ты жуткий молодец! =*
[23:55:04] <Minoru> питон и хаскель меня разбаловали, я себя теперь местами имбецилом чувствую :(
[23:55:43] <ɹǝɟılʍǝu> Ыыы
[23:55:56] <rexim> Ололо
[23:55:59] <ɹǝɟılʍǝu> http://www.youtube.com/user/tvroscosmos/videos
[23:56:14] <rexim> Minoru: а что я на стриме вытворял, ты уже забыл? %)
[23:56:31] <rexim> Имбецилил только так!
[23:56:42] <rexim> ɹǝɟılʍǝu: =*
[23:56:58] <Minoru> rexim: честно говоря, забыл уже ._.
[23:57:01] uggur вышел из конференции: This participant is kicked from the room because he sent an error message to another participant: service-unavailable
[23:57:05] <rexim> Ну и правильно
[23:57:10] <rexim> Хорошо, что забыл:)
[23:58:23] <gsomix> Включил стрим.
[23:58:26] <rexim> Minoru: http://www.youtube.com/watch?v=_rU5vtu9xJE
[23:58:31] <rexim> gsomix: ^_^
[23:59:00] <gsomix> > Morning Tsoding #1
[23:59:04] <gsomix> Почему #1?
[23:59:08] <Minoru> rexim: у них в названии опечатка!
[23:59:31] <rexim> gsomix: мы решили начать сначала. Новый канал, новая жизнь!
[23:59:35] <rexim> Minoru: какая?
[23:59:56] <Minoru> rexim: [l]ittle
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!