Home
codingteam
codingteam@conference.jabber.ru
02.08.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С, Py++
HQ: http://codingteam.org.ru
0xDead Food: http://leechcraft.org
Live Food: http://www.loglist.net/
Fast Food: http://hastebin.com/
Instagram Food: http://tinyurl.com/ctcjr-logs
Report Developer Abuse: http://www.loglist.net/quote/new
[00:05:25] Myp вышел из конференции
[00:10:07] m4n71k0r вышел из конференции
[00:11:40] MaXGGXaM вышел из конференции
[00:11:43] xspeed вышел из конференции
[00:15:51] xspeed зашёл в конференцию
[00:16:53] MaXGGXaM зашёл в конференцию
[00:21:22] gr_buza@arbeiten вышел из конференции: Этого участника выгнали из комнаты за то, что он послал присутствие с ошибкой: service-unavailable
[00:23:00] folex вышел из конференции
[00:26:40] O01eg вышел из конференции: Replaced by new connection
[00:26:42] O01eg зашёл в конференцию
[00:33:52] gr_buza@arbeiten зашёл в конференцию
[00:34:31] dzhon вышел из конференции
[00:47:00] <bodqhrohro> http://pic4a.ru/58/z5.jpg
[01:13:47] <bodqhrohro> Для каких ложбанов придумали Ложбан?
[01:48:10] xspeed вышел из конференции
[02:03:02] grouzen вышел из конференции
[02:03:09] (/^o^)/ вышел из конференции
[02:06:41] enaken вышел из конференции
[02:07:40] enaken зашёл в конференцию
[02:12:06] magog вышел из конференции
[02:17:48] eaeee вышел из конференции
[02:18:12] eaeee зашёл в конференцию
[02:22:04] MaXGGXaM вышел из конференции: Вышел из Vacuum-IM
[02:22:29] MaXGGXaM зашёл в конференцию
[02:45:02] Kumbaya вышел из конференции
[02:54:54] bodqhrohro вышел из конференции
[02:55:40] Kumbaya зашёл в конференцию
[03:08:08] enaken вышел из конференции
[03:16:54] gr_buza@arbeiten вышел из конференции
[03:59:16] eaeee вышел из конференции
[04:52:52] madmercen зашёл в конференцию
[04:55:24] ckorzhik вышел из конференции
[06:29:41] madmercen вышел из конференции
[06:30:05] rexim зашёл в конференцию
[07:02:43] <rexim> Утряк
[07:02:45] <rexim> Кряк
[07:09:22] <Minoru> кряк!
[07:10:49] <rexim> Minoru: миноряк!
[07:11:26] <rexim> ForNeVeR: > https://fornever.me/posts/2015-08-01-incremental-updates-with-jenkins-and-powershell.html
Прикольно, но звучит, как что-то, что имеет уже готовое решение.
[07:11:49] Kumbaya вышел из конференции
[07:12:00] <rexim> Таких штук реально чтоли еще никто не написал и реально приходится самому городить такие скрипты?
[07:33:02] <Minoru> гм, а это правильно, что `sbt compile` в репе Хорты ругается, мол, не могу platonus найти?
[07:36:40] <rexim> Minoru: зафайли баг пожалуйста
[07:37:29] <rexim> Вообще, не должен.
[07:37:54] <rexim> Я обычно делал `sbt compile` и оно само все делало
[07:38:09] <rexim> Там что-то Нёвер с плотанусом мутил.
[07:38:14] <rexim> Возможно, что он сломал
[07:40:53] <Minoru> нет, погодите, что-то я сам намутил, кажется
[07:41:13] <Minoru> а, ну да, я же master чекаутнул
[07:41:18] <Minoru> ох уж этот git flow…
[07:41:26] <Minoru> хотя постойте-ка!
[07:41:46] <Minoru> разве при git flow master не должен билдится *всегда*? Разве в нём не стабильные релизы?
[07:46:33] <Minoru> ага, для develop'а platonus нашёлся
[07:48:56] j123123 вышел из конференции
[07:49:34] j123123 зашёл в конференцию
[07:56:35] <rexim> Я вообще не понимаю, зачем нам в Хорте git flow.
[07:56:51] <rexim> Ну, в чистом виде, я имею ввиду.
[07:57:06] <rexim> Можно было бы мастер выкинуть и девелоп оставить.
[07:57:17] <rexim> И версионности тоже нах не нужна
[07:57:25] <rexim> Только плодит никому не нужные майлстоуны.
[07:57:50] <rexim> Херачим себе и херачим
[07:58:19] <Minoru> ну, я-то без понятия, я вообще туда заглядываю, только когда меня в ишуй призывают :-[
[07:59:14] <rexim> Да не, я это все не в твою сторону говорил. Просто мысли в слух. :)
[08:01:37] gr_buza@arbeiten зашёл в конференцию
[08:16:11] <rexim> .ping
[08:16:12] <DeadBot> rexim: понг от тебя 0.07 секунды
[08:16:15] <rexim> .ping
[08:16:15] <DeadBot> rexim: понг от тебя 0.06 секунды
[08:16:17] <rexim> .ping
[08:16:17] <DeadBot> rexim: понг от тебя 0.06 секунды
[08:17:26] <Minoru> .ping
[08:17:26] <DeadBot> Minoru: понг от тебя 0.44 секунды
[08:17:28] <Minoru> :(
[08:18:28] <rexim> .ping Minoru
[08:18:29] <DeadBot> rexim: понг от Minoru 0.46 секунды
[08:18:32] <rexim> .time Minoru
[08:18:32] <DeadBot> rexim: 02 Aug 2015 07:18:00
[08:18:38] <rexim> =(
[08:18:51] <Minoru> гм, а время зачем?
[08:29:20] gr_buza@arbeiten вышел из конференции
[08:51:30] xspeed зашёл в конференцию
[09:15:23] <ForNeVeR> Minoru: у нас нету стабильных релизов.
[09:15:34] <ForNeVeR> Значит, в мастере какой-то мусор, который когда-то считался стабильным.
[09:16:13] <ForNeVeR> Вообще говоря, текущей версии уже примерно сто лет и никто (почти) на неё не жаловался, так что я её, пожалуй, зарелизю как какую-нибудь там 0.13 или типа того.
[09:16:14] dzhon зашёл в конференцию
[09:16:54] dzhon вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable
[09:17:13] <ForNeVeR> Периодические вспышки паники по поводу того, что не работает s2s на ctor или отвалился docker я, конечно, не считаю.
[09:21:07] dzhon зашёл в конференцию
[09:24:13] <ForNeVeR> rexim: а по поводу апдейтера - ну, гм, покажи мне это решение.
[09:24:14] <Minoru> просто галочка «сделать эту ветку главной» есть только на Github
[09:24:25] <ForNeVeR> Minoru: неверно, в гите тоже есть это понятие.
[09:24:32] <Minoru> да-а-а?
[09:24:51] <ForNeVeR> Главная ветка - это та, которая по умолчанию становится текущей после клонирования.
[09:24:54] <Minoru> интересно, как тогда так вышло, что у меня в клоне форка не была чекаутнута develop
[09:25:06] <Minoru> флажок не переносится при форкании?
[09:25:09] <ForNeVeR> Наверное, давно форкал.
[09:25:25] <Minoru> да, это больше года назад было
[09:25:31] <ForNeVeR> Скорее всего, переносится. Но я не так давно сам нашёл этот флажок и стал его юзать :)
[09:25:37] <Minoru> когда я доку по написанию плагинов вычитывал
[09:25:48] <Minoru> ясно
[09:26:44] <Minoru> как можно писать настолько прикольную музыку (вот это «o-o-o-oh a-a-a-ah» в начале) и настолько, эм, позерские, что ли, тексты? https://www.youtube.com/watch?v=t-yCg-0-baE
[09:28:06] <ForNeVeR> Попробую-ка я руками потрогать docker-machine.
[09:28:59] Славный капитан зашёл в конференцию
[09:29:00] <Minoru> там же на двери написано: «Не влезай — убъёт!»
[09:31:05] ɹǝɟılʍǝu вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable
[09:38:22] <rexim> > ForNeVeR> rexim: а по поводу апдейтера - ну, гм, покажи мне это решение.
Если бы я тебе мог показать это решение, я бы не задавал тебе такие вопросы, а просто бы в него носом тыкал.
[09:38:35] <rexim> Я к тому, что делал ли ты какой-нибудь ресёч?
[09:44:18] <ForNeVeR> Нет, зачем?
[09:44:27] <ForNeVeR> Ну, для женкинса я посмотрел плагины, это да.
[09:45:07] <ForNeVeR> Там ничо особенно хорошего нету. Есть парочка полуубогих штук, которые автоматизируют обращения к последним успешным билдам. У меня что-то сразу не заработали, так что я их выкинул.
[09:45:15] <rexim> Ок
[09:45:27] <rexim> ForNeVeR: может в будущем трансформируем это в дженкинсоплагин?
[09:45:39] <ForNeVeR> Ну а инкрементально паковать / трансформировать артефакты в соответствии с нужной мне логикой - такого точно нету.
[09:46:06] <ForNeVeR> rexim: да, это неплохая идея, но я (внезапно) не уверен, что конкретно такие вещи хорошо плагинуются в женкинсе.
[09:46:21] <Minoru> мало кто знает, но ПО, которое выбрасывает ForNeVeR, пропадает не только с его машин, но и с Гитхаба, а также изо всех бекапов и даже из голов разработчиков!
[09:47:08] <ForNeVeR> Дело в том, что основная масса существующих плагинов заточена именно на работу с конкретными job'ами. А чтобы как-нибудь обернуть несколько джобов - такого исчезающе мало.
[09:47:46] <ForNeVeR> А я, кажись, багу в VirtualBox нашёл.
[09:55:00] <rexim> khooy — khooy
[09:55:03] <rexim> Хм...
[09:55:21] <rexim> Minoru: а ты что за пробельный символ постоянно перед тире ставишь? nbsp?
[09:55:50] <Minoru> да
[09:55:54] <rexim> ок
[09:56:08] <Minoru> а как ты его заметил? :)
[09:56:12] <rexim> У меня его jabber.el в емаксе отображает =3
[09:56:17] <rexim> Ща покажу
[09:56:46] <rexim> http://i.imgur.com/GiUQch9.png
[09:56:49] <rexim> Как-то так
[09:57:10] <Minoru> :(
[09:57:12] <rexim> Это из latex привычка? :)
[09:57:22] <Minoru> он портит мои красивые фразочки!
[09:57:39] <Minoru> ага, из LaTeX. И длинные тире тоже
[09:57:59] <rexim> Да ладно тебе, не переживай! Это видять только всякие упорки, который емакс как жаббер клиент использует.
[09:58:06] <Minoru> (последними я яростно злоупотребляю и ничего — слышишь, ни-че-го! — не могу с собой поделать ☺)
[09:58:14] <rexim> И для меня оно не портит красоту твоих фраз. :)
[09:58:20] dzhon вышел из конференции: Replaced by new connection
[09:58:22] dzhon зашёл в конференцию
[09:58:26] <rexim> Гы
[10:01:08] <Славный капитан> ловите типографиста!
[10:01:27] * Minoru с криком убегает
[10:01:35] <rexim> Славный капитан: копейтанушга!!!
[10:01:35] <Славный капитан> сбоку, сбоку заходи! уйдет же!
[10:01:54] * Minoru бегает по конфе хитрыми зигзагами и загогулинами
[10:02:16] <rexim> ... оставляя слет из длинных тире и nbsp'ов ...
[10:02:24] <rexim> след*
[10:02:40] <Minoru> …и троеточий!
[10:03:09] dzhon вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable
[10:03:11] dzhon зашёл в конференцию
[10:03:16] <Minoru> (хотя Тёма говорит, что «…» — это ерунда какая-то, и нужно ставить отдельные точки. Но я пока что не читал книжек и продолжаю тупо юзать все прелести Юникода, какие могу найти)
[10:03:42] <Славный капитан> Стоять! У меня есть тяжелый армейский ASCIIфикатор и я не побоюсь его применить!
[10:04:12] <rexim> >_<
[10:04:14] * Minoru соорудил из длинных тире подобие человека, а сам тем временем ползком пробирается к выходу
[10:04:46] * Minoru добрался
[10:04:58] Minoru вышел из конференции: —, –, -! :P
[10:05:04] Minoru зашёл в конференцию
[10:05:20] <rexim> xD
[10:05:26] <Minoru> набирать всю эту ерунду несколько утомительно, как видите. Я имею в виду m- и n-dash'и
[10:12:02] <ForNeVeR> https://www.virtualbox.org/ticket/14040 эх...
[10:12:14] <ForNeVeR> Всё пропало, шеф!
[10:13:24] <Minoru> > VBoxNetCfg-Win10.patch Download (1.7 KB) - added by Yirkha 3 days ago.
> Fix suggestion (WTFPL license)
> WTFPL Licence
[10:13:49] grouzen зашёл в конференцию
[10:14:18] <Minoru> сел писать на Scala, а в итоге сижу весь обмазанный Java и думаю, зачем я вообще за это взялся =\
[10:16:41] <rexim> Это как сказать, что сел писать на плюсах и сидишь обамазный сями.
[10:16:48] <ForNeVeR> Лалки!
[10:17:39] <ForNeVeR> Minoru: ты вообще этот патч видал?
[10:17:43] <ForNeVeR> Он... странный.
[10:18:16] <ForNeVeR> if (ret != ERROR_FILE_NOT_FOUND || ++retry > 3 * 4)
break;
[10:18:17] <Minoru> rexim: весь обос-сяный, ЕВПОЧЯ =(
[10:19:54] <rexim> xD
[10:20:05] <rexim> Minoru: нет, я не это имел ввиду, конечно же. :)
[10:20:14] dzhon вышел из конференции: Replaced by new connection
[10:20:15] dzhon зашёл в конференцию
[10:20:16] <rexim> Я к тому, что на скала можно писать по-разному.
[10:20:23] <rexim> Зачем ты пишешь на скале, как на джаве?
[10:20:47] <Minoru> потому что я хочу приложеньку, которая будет читать нажатия кнопок и немножко перерисовывать экран
[10:20:58] <Minoru> я сейчас пишу свой маленький ncurses, да
[10:20:58] <rexim> Ну, ок
[10:21:14] <Minoru> (и у меня уже есть вызовы комманд шелла! Прощай, портабельность)
[10:21:33] <Minoru> олсо *команд
[10:22:23] <rexim> ForNeVeR: о, великий кофе сварили!
[10:22:38] <ForNeVeR> Minoru: есть lanterna
[10:22:45] <ForNeVeR> Заместо ncurses.
[10:22:51] <ForNeVeR> Я её даж на winapi портировал.
[10:23:32] <Minoru> ForNeVeR: ок, но я упражняюсь же (нет, не в нытье в чатик)
[10:24:29] <ForNeVeR> https://github.com/mabe02/lanterna - вот это.
[10:24:55] <Minoru> > Text GUI
[10:24:59] <Minoru> >:-(
[10:25:00] <ForNeVeR> Оно умеет рисовать свой UI на неподдерживаемых платформах, а на поддерживвемых - имеет биндинги для ANSI-терминала.
[10:25:02] <rexim> Упражняшка!
[10:25:09] <Minoru> термин «TUI» уже придумали!
[10:25:30] <ForNeVeR> Minoru: если что-то не нравится, то отправь им пул-реквест, сцуко.
[10:25:41] <ForNeVeR> Я эти постоянные жалобы и хныканья искореню.
[10:25:48] <Minoru> ._.
[10:25:51] <rexim> ForNeVeR: тише-тише!
[10:25:55] <rexim> Успокойся, пожалуйста!
[10:25:57] <ForNeVeR> Ко всем присутствующим относится!
[10:25:58] <rexim> Все хорошо
[10:26:05] * ForNeVeR окидывает помещение диким взглядом
[10:26:08] <rexim> Все всё поняли
[10:26:18] <rexim> ForNeVeR: иди прими таблеточек
[10:26:22] <ForNeVeR> .\ __ .ю
[10:26:26] <ForNeVeR> ю _ ю
[10:26:33] <rexim> ми _ ми
[10:26:40] <ForNeVeR> rexim: я больше не принимаю таблеток.
[10:26:46] <rexim> . _ .
[10:26:50] <rexim> Ох-ох...
[10:26:52] <Minoru> rexim: да, давай его ещё упорином накормим, чтобы он вообще весь cjr разнёс к чертям!
[10:27:12] <rexim> ForNeVeR: кофейка попей тогда
[10:27:16] <rexim> Хочешь я тебе сварю?
[10:28:01] <ForNeVeR> Я пошёл релиз хорты делать, вот.
[10:30:01] <rexim> =(
[10:30:39] <ForNeVeR> Ну а по поводу докера - ждём, значтца, фиксов от виртуалбокса. Попробую сам поковыряться у них в коде
[10:30:51] <ForNeVeR> А то ну что ж такое, всюду наркоманты :(
[10:31:02] <ForNeVeR> Никто ничо нормально не может написать :'(
[10:31:20] <ForNeVeR> У меня будет свой виртуалбокс - без багов и с фичами!
[10:32:47] <rexim> Ахаха
[10:44:09] <ForNeVeR> Minoru: отныне версия из мастера тоже будет компилироваться.
[10:47:19] <j123123> коноплироваться
[10:48:05] <j123123> А чем виртуалбокс лучше qemu?
[10:48:55] <ForNeVeR> Minoru: я просто грохнул свою archiva и перетащил все артефакты в более надёжное место - на jcenter.
[10:49:43] <ForNeVeR> j123123: тем, что docker-machine умеет virtualbox, но (пока?) не умеет qemu.
[10:49:54] <ForNeVeR> Алсо, qemu умеет аппаратную виртуализацию?
[10:50:06] <j123123> В линуксах точно умеет
[10:50:12] <j123123> Не знаю как в виндах
[10:50:36] <j123123> http://wiki.qemu.org/KVM
[10:51:38] <ForNeVeR> Да и в choco что-то qemu нету.
[10:51:46] <ForNeVeR> Наверное, вообще винду не поддерживает, а?
[10:51:54] <rexim> а?
[10:51:57] <rexim> Кто здесь?
[10:52:16] <j123123> qemu в винде точно запускается
[10:53:26] <ForNeVeR> Ага, я нашёл какие-то сторонние сайтики с бинарными сборками, и инструкции по кросскомпиляции из дебиана.
[10:53:39] <rexim> а?
[10:54:27] <ForNeVeR> rexim: да нет тут никого. Успокойтесь.
[10:54:46] <rexim> ForNeVeR: а?
[10:55:00] <ForNeVeR> ~_~
[10:55:24] <aklim007> а как обстоят дела с VMware Workstation, может кто использовал (хост - винда)?
[10:55:32] <rexim> aklim007: а вы кто?
[10:55:37] <rexim> .whois aklim007
[10:55:39] <DeadBot> rexim: none/participant
online()
зашел в конфу 01.08.15 21:59:36
уровень доступа: 2
[10:55:44] <rexim> Где код?
[10:56:05] <ForNeVeR> aklim007: docker-machine не умеет в VMware, кажется.
[10:56:13] <rexim> ForNeVeR: кто это?
[10:56:30] <ForNeVeR> rexim: http://img0.reactor.cc/pics/post/%D0%B3%D0%B8%D0%BD%D0%B5%D0%BA%D0%BE%D0%BB%D0%BE%D0%B3-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F-%D0%BF%D1%80%D0%B8%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B9-%D1%84%D1%8D%D0%BD%D0%B4%D0%BE%D0%BC%D1%8B-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B-2300668.jpeg
[10:58:15] <aklim007> rexim: думаю бесполезно, кроме меня самого, спрашивать кто я. до вчерашнего дня я сюда не заходил
[10:58:50] <rexim> aklim007: дядя Нёвер с вам столь казуально разговаривает будто знает вас.
[11:00:45] <ForNeVeR> rexim: да я ему только одно слово сказал!
[11:00:58] <ForNeVeR> aklim007: ну что ж, сударь, давайте знакомиться.
[11:02:11] <ForNeVeR> У меня всё ещё исходники VirtualBox скачиваются ~_~
[11:05:22] <j123123> Чем ты виртуалбокс компилировать будешь? Студией или gcc?
[11:05:37] <j123123> (он вообще соберется студией?)
[11:06:41] <aklim007> окей давайте знакомится, я аклим, основные знания python/django
[11:07:36] <ForNeVeR> Аклим? Казах?
[11:07:45] <ForNeVeR> Или как там правильно... казахстанец?
[11:08:10] <ForNeVeR> (знакомые казахские евреи имели особенность обижаться, если их называть, гм, казахами)
[11:08:54] <ForNeVeR> aklim007: в общем, у нас тут обычай простой: кто показывает кусочек своего качественного кода (ну, строчек сто, скажем) - тому выдают мембер.
[11:10:00] <ForNeVeR> j123123: не, я пока не знаю, чем буду компилять.
[11:12:19] <aklim007> аклим - артём клименко
ну если меня не придадут анафеме за комменты на русском языке
https://gist.github.com/aklim007/c325753b3e171adb8674
[11:12:50] <ForNeVeR> j123123: не, ну ты прикинь, у них там configure на vbscript :D
[11:13:05] <ForNeVeR> https://github.com/mdaniel/virtualbox-org-svn-vbox-trunk/blob/master/configure.vbs
[11:14:14] <ForNeVeR> aklim007: ну, лично меня не парят комменты на русском языке. В некоторых проектах такое правило есть.
[11:14:23] <rexim> > https://gist.github.com/aklim007/c325753b3e171adb8674
Логики не сильном много, но мне норм. Я за мемберца
[11:14:56] <ForNeVeR> rexim: ты заметил, да, что там половина файла - коммент? :D
[11:15:02] <rexim> Да
[11:15:03] <rexim> Дока
[11:15:07] <rexim> Если точнее
[11:15:12] <ForNeVeR> Ага.
[11:16:09] ForNeVeR вышел из конференции: Disconnected: closed
[11:16:10] ForNeVeR зашёл в конференцию
[11:16:34] <ForNeVeR> Ну да, ок, человечный код.
[11:16:37] <ForNeVeR> .member aklim007
[11:16:37] <DeadBot> ForNeVeR: ok
[11:16:47] O01eg вышел из конференции
[11:18:04] <ForNeVeR> rexim: алсо, ты что, интересуешься написанием плагинов для женкинса?
[11:19:49] <rexim> Ну не особо. Но у нас на работе в отдаленном будущем планируется писать женкинсоплагин для нашего продукта. Хотел подкачаться.
[11:30:46] ɹǝɟılʍǝu зашёл в конференцию
[11:31:33] reggies зашёл в конференцию
[11:34:02] <aklim007> > ForNeVeR: aklim007: docker-machine не умеет в VMware, кажется.
хм, если под виндой через VM развернуть вируталкку с линуксом, всё докерообразной уже в ней наверно должно взлететь.

вчера курил, что лучше использовать для виртуализации когда хостовая машина винда (на собственной тачке запускать порой вирталочки с дебианом, возможно виндой), вроде всё сводится к двум вариантам, виртуалбокс, и вмваре (но блин платная зараза), и в том числе сложилось впечатление что у виртуалбокса чёртова куча косяков.

примерно так оно обстоит или что-то недоглядел?
[11:34:34] <ForNeVeR> aklim007: vmware сразу в зад. Ибо платное.
[11:34:45] <ForNeVeR> aklim007: а для автоматизации управления виртуалбоксом есть целая куча всего.
[11:34:55] <ForNeVeR> Во-первых, это vagrant. Рекомендую, ага.
[11:35:17] <ForNeVeR> Кое-что о том, как я использую вагрант, можно почитать в бложике: https://fornever.me/posts/2015-03-21-jenkins-and-vagrant-integration_ru.html
[11:36:08] <aklim007> да заплатить то я не против, если есть за что, а вот это какраз непонятно =(
[11:36:20] <aklim007> спасибо почитаю
[11:36:30] <ForNeVeR> aklim007: во-вторых, это приснопамятный docker-machine. Он-то как раз и разворачивает VM с докером. А с ней уже более-менее прозрачно можно работать из хостового окружения. Вплоть до того, что данные монтировать из C:\Users\ForNeVeR\Docker прямо в докер-контейнеры на виртуальной машине.
[11:36:54] <ForNeVeR> Единственное - оно всё на win 10 сейчас стухло из-за бага в virtualbox, на который я выше давал ссылку.
[11:37:01] <ɹǝɟılʍǝu> Утрец
[11:37:06] <ɹǝɟılʍǝu> ForNeVeRец
[11:37:19] <ForNeVeR> А до этого у меня всё более-менее стабильно работало, например. Во всех вариантах - и просто так, и с вагрантом, и с докером, и во всяких позах.
[11:39:33] <rexim> .version aklim007
[11:39:34] <DeadBot> rexim: aklim007 использует QIP 2012 9379 Windows NT 6.02, 64-bit
[11:40:01] <ForNeVeR> 6.02 это 8 или 8.1? :D
[11:40:12] grouzen вышел из конференции
[11:40:23] <aklim007> стоит 8.1
[11:40:43] <ForNeVeR> BTW, в десяточке обещали пофиксить эту хрень и, кажется, починили. cmd /c ver возвращает [Version 10.0.10240].
[11:41:13] reggies вышел из конференции
[11:43:06] <rexim> ForNeVeR: https://www.youtube.com/watch?v=GEi-SJmlcVg&t=6
[11:43:12] <rexim> U R MR GAY!
[11:44:49] gr_buza@arbeiten зашёл в конференцию
[11:45:37] <ForNeVeR> rexim: О_О
[11:49:17] <rexim> ForNeVeR: Video Games! \o/
[11:49:22] * rexim so excited
[11:53:56] <ForNeVeR> http://shakebuild.com/why вот такое видали?
[11:54:40] magog зашёл в конференцию
[11:54:52] <rexim> Хм!
[11:54:59] <rexim> ForNeVeR: занятна идея, спасибо.
[11:55:09] <ForNeVeR> rexim: GHC is in the process of migrating to a Shake-based build system.
[11:55:22] <rexim> oh my...
[11:55:45] <rexim> Ну вообще, наверное, плодить кастомные билд систему не очень хорошо...
[11:55:59] <rexim> Приходишь в новый проект и заново изучаешь билд систему.
[11:56:01] <rexim> Збс!
[11:56:11] <rexim> Хотя хз
[11:56:27] <rexim> Не знаю. Какого-то определенного мнения у меня сейчас нет на этот счет
[11:56:48] <rexim> Надо получше потыкать этот shake
[11:59:04] <ForNeVeR> Меня, как обычно, больше всего беспокоит портабельность.
[11:59:10] <ForNeVeR> Ну вот, скажем, чуваки из виртуалбокса.
[11:59:14] <ForNeVeR> Им пришлось упороться.
[11:59:24] <ForNeVeR> Возможно, нескольких человек отдали в рабство сатане.
[11:59:32] <ForNeVeR> Но написали configure на vbscript!
[11:59:42] <rexim> О_О
[11:59:46] <ForNeVeR> И нафига вообще :(
[11:59:56] <rexim> Мне теперь кошмару будут сниться =(
[12:00:01] <rexim> кошмары*
[12:00:02] <rexim> да
[12:00:36] <ForNeVeR> Knightmares!
[12:01:08] <rexim> https://en.wikipedia.org/wiki/Knightmare
[12:03:08] <ForNeVeR> rexim: https://en.wikipedia.org/wiki/Knightmare_Frame
[12:11:11] smitt зашёл в конференцию
[12:13:20] enaken зашёл в конференцию
[12:24:23] rexim вышел из конференции
[12:43:04] rexim зашёл в конференцию
[13:03:15] smitt вышел из конференции
[13:27:52] ForNeVeR вышел из конференции: Disconnected: closed
[13:33:12] ForNeVeR зашёл в конференцию
[13:40:22] squantum зашёл в конференцию
[13:48:48] Spo1ler зашёл в конференцию
[14:11:14] a1batross зашёл в конференцию
[14:13:42] <squantum> как это интерпретировать data ShowObj = forall a. Show a => ShowObj a ?
[14:17:33] <squantum> типовая переменная a может принять несколко типов, но она и так находится в описании типа ShowObj
[14:28:05] Spo1ler вышел из конференции: Replaced by new connection
[14:28:06] Spo1ler зашёл в конференцию
[14:28:27] <ForNeVeR> squantum: Бартош писал, что в хаскеле конкретно это определение не имеет смысла. forall в таких случаях и без того неявно подразумевается.
[14:29:06] <ForNeVeR> В каких-то других кейсах forall может быть нужен (хотя я затрудняюсь придумать пример).
[14:30:59] <rexim> .whois squantum
[14:31:00] <DeadBot> rexim: none/participant
online()
зашел в конфу 02.08.15 13:40:22
уровень доступа: 2
[14:31:06] <squantum> чтобы, например, реализовать гетерогенные типы данных, списки итд
[14:31:18] <rexim> ForNeVeR: кто все эти люди?
[14:31:46] <ForNeVeR> squantum: а разве просто Monad m => [m] это не гетерогенный список?
[14:32:02] <ɹǝɟılʍǝu> rexim, «Таки не делайте мне как лучше, оставьте как хорошо».
[14:32:18] <rexim> ɹǝɟılʍǝu: =*
[14:32:24] <ɹǝɟılʍǝu> rexim, кусь
[14:34:48] squantum вышел из конференции: offline
[14:38:19] <Minoru> ForNeVeR: в нём все элементы будут одного и того же типа, m. Пусть и заранее неизвестного (в определённый момент написания кода, то есть)
[14:38:30] <ForNeVeR> Minoru: ага!
[14:38:55] <ForNeVeR> А если я напишу forall m. Monad m => [m], то получу настоящий гетерогенный список?
[14:39:31] <Minoru> нет, в хаскеле гетерогенный список так просто не получишь :) Насколько я понимаю, forall в данном случае вообще ничего не меняет
[14:39:44] <ForNeVeR> Тогда снова непонятно.
[14:39:50] Spo1ler вышел из конференции
[14:39:56] <Minoru> гетерогенный список можно получить, если взять тип вроде того ShowObj, что был выше, и сделать список из таких объектов
[14:40:05] <rexim> Monad m => [m] и есть сокращение от forall m. Monad m => [m] если мне не изменяет память
[14:40:07] <Minoru> (есть готовые, Data.Typeable кажись модуль называется)
[14:40:20] <ForNeVeR> Чем ShowObj лучше Monad?
[14:40:35] <rexim> ForNeVeR: в его названии больше смысла
[14:40:58] <rexim> В таком ключе, все что угодно лучше Monad
[14:41:11] <ForNeVeR> А если я свой тайпкласс назову MonadShowObj, и сделаю алиасом для Monad?
[14:41:17] <ForNeVeR> Так в нём будет ещё больше смысла!
[14:41:33] <rexim> У ты какой хитрый!
[14:41:37] <ɹǝɟılʍǝu> rexim, http://img06.deviantart.net/a682/i/2014/320/1/e/headcanon__mane_6_by_earthsong9405-d79bwpf.png
[14:42:05] <rexim> ɹǝɟılʍǝu: чешуйчатые поне!
[14:42:20] <ɹǝɟılʍǝu> rexim, это перья)
[14:42:25] <Minoru> ForNeVeR: не-не-не, суть просто в том, чтобы «спрятать» конкретный тип. Ты будешь делать let a = ShowObj 4 in let b = ShowObj "4" in let c = ShowObj 'c' …, и при этом у тебя у всех трёх значений будет один и тот же тип — ShowObj. А Monad параметризована, и типы у a, b и c с Monad будут разные (например, [Int], [String], [Char], если взять монаду [])
[14:42:27] <rexim> Jr
[14:43:06] <ForNeVeR> Minoru: но он вот тут показал, что ShowObj тоже параметризирован. ShowObj a. Разве нет?
[14:43:10] <Minoru> эти типы ещё называются как-то, фантомными, емнип (но это лучше загугли)
[14:43:25] <rexim> Фантазмные!
[14:43:26] <ForNeVeR> А, нет, там как-то хитро у него. Я не посмотрел сразу, что это он сам ShowObj и определяет.
[14:43:27] <Minoru> ForNeVeR: конструктор параметризован, да. А сам тип — нет.
[14:43:44] <ForNeVeR> То есть ShowObj - это ADT с конструктором для каждого из типов?
[14:44:06] <Minoru> ForNeVeR: предпоследняя твоя фраза заставляет меня думать, что ты не понимаешь разницы между типами и конструкторами типов; не нужно так!
[14:44:07] <ForNeVeR> Ну, для каждого типа из тайпкласса Show.
[14:44:16] <Minoru> нет, конструктор будет один
[14:44:21] <ForNeVeR> Какого типа?
[14:44:22] <ɹǝɟılʍǝu> rexim, сотонист
[14:44:24] <Minoru> просто ему кормить можно будет всё, для чего есть Show
[14:44:35] <Minoru> тип у него будет «ShowObj»
[14:44:41] <ForNeVeR> Ну, получается, что это бесконечное множество конструкторов.
[14:44:44] <ɹǝɟılʍǝu> Minoru, у Джеки самая класная задница
[14:44:52] <ForNeVeR> Minoru: и нет, ты неправ, у него тип Show a => ShowObj
[14:45:02] <ForNeVeR> Show a => a -> ShowObj
[14:45:09] <ForNeVeR> Он же аргумент принимает, ну.
[14:45:44] <Minoru> а, тьфу. Да, ты прав касательно типа. Я о типе значения думал просто, прости
[14:45:56] <Minoru> но это не бесконечное множество конструкторов! Конструктор один
[14:46:21] <ForNeVeR> Какого типа?
[14:46:42] <Minoru> хотя ладно, если ты рассматриваешь generic programming как способ одной строчкой сказать «а сделайте мне по конструктору для каждого конкретного типа, реализующего во-от этот тайпкласс», то ок, это множество конструкторов
[14:46:50] <ForNeVeR> Ну да.
[14:46:59] <Minoru> такого, как ты выше показал: Show a => a -> ShowObj
[14:47:09] <ForNeVeR> Иначе тебе придётся сказать, что функции Int -> ShowObj и Bool -> ShowObj могут быть равными.
[14:47:20] <ForNeVeR> Ну, раз уж это одна и та же функция.
[14:48:17] <ForNeVeR> Хотя по сути пофиг. Этот конструктор - он жеж ничего на самом деле не делает, а просто запоминает значение. И нельзя его заставить что-то делать.
[14:48:42] <Minoru> но ведь они и будут равными ._.
[14:48:54] <ForNeVeR> Ты нашёл способ сравнить функции?
[14:49:08] <Minoru> поглядеть на байткод, или во что они там компилятся?
[14:49:11] <ForNeVeR> Неа.
[14:49:15] <ForNeVeR> Давай чисто теоретически.
[14:49:32] <ForNeVeR> Две функции равны (я считаю), если при передаче им одинаковых аргументов они вернут одинаковые значения.
[14:50:02] <ForNeVeR> Пожалуй, про функции Bool -> ShowObj и Int -> ShowObj нельзя сказать, что они равны.
[14:50:05] <rexim> На все области определения!*
[14:50:08] <rexim> всей*
[14:50:25] <Minoru> вот слушай, если я на темплейтах в плюсах напишу функцию, которая берёт объект какого-то класса и выводит одно из его полей, ты что, хочешь сказать, что когда у этого класса появятся наследники, компилятор начнёт плодить для каждого из них свою отдельную функцию вывода?
[14:50:34] <rexim> две чистые функции*
[14:50:52] <ForNeVeR> Minoru: ну, инстансы шаблона будут отдельные для каждого типа.
[14:50:57] <ForNeVeR> Скорей всего.
[14:51:08] <ForNeVeR> Да, компилятор может их свести в один, но это уже оптимизация.
[14:51:13] <Minoru> ForNeVeR: на уровне значений будут разные функции, а. А с точки зрения системы типов разницы уже не будет. В том и суть!
[14:51:21] <ForNeVeR> Это как не будет?
[14:51:38] <ForNeVeR> В какой системе типов между Int -> ShowObj и Bool -> ShowObj нету разницы?
[14:51:53] <Minoru> ForNeVeR: пиздец. Но зачем их плодить? Объекты же ничем не отличаются! Я специально упомянул плюсы, т.к. там хоть как-то представляю себе модель данных
[14:52:19] <Minoru> гр-р-р-р!
[14:52:29] <Minoru> не будет разницы *после* применения функций
[14:52:30] <ForNeVeR> Minoru: но ведь будут отдельные функции для каждого типа, ну правда же.
[14:52:33] <ForNeVeR> Как раз в плюсах.
[14:52:35] <Minoru> мы же про область значений говорим, ну!
[14:52:49] <ForNeVeR> Minoru: ну вот миксер про область определения говорил.
[14:52:54] <ForNeVeR> А ты - уже про область значений.
[14:52:57] <Minoru> ну окей, пусть будут. Но ты мне скажи — зачем их плодить?
[14:53:03] <ForNeVeR> Что значит "зачем"?
[14:53:09] <ForNeVeR> Чтобы их выполнить.
[14:53:11] <Minoru> они же все одинаковые!
[14:53:14] <ForNeVeR> Нет.
[14:53:22] <ForNeVeR> Они со стека могут разное количество байт взять.
[14:53:42] <Minoru> с чего бы?
[14:53:45] <ForNeVeR> Ну вот предположим, что я написал template<T> void foo(T t) { }
[14:53:59] <ForNeVeR> И отправляю туда bool (4 байта) и long (8 байт).
[14:54:07] <Minoru> это не объекты!
[14:54:18] <ForNeVeR> Предложи одну реализацию этой функции, которая будет брать со стека либо 4, либо 8 байт.
[14:54:29] <ForNeVeR> Исходя из, гм, непонятно вообще чего.
[14:54:35] <ForNeVeR> Minoru: ок, на объектах.
[14:54:40] <Minoru> да, тут мы в процессе перехода от Хаскеля к плюсам забыли оговорить граничные условия. Я думаю сейчас только про объекты, да
[14:54:51] <ForNeVeR> class Foo { int x; int y; };
class Bar { int y; int x; };
[14:55:08] <Minoru> они же не связаны!
[14:55:09] <ForNeVeR> template<T> int get(T t) { return t.x; }
[14:55:12] <Minoru> стой!
[14:55:33] <Minoru> выше, ещё в Хаскеляндии, мы юзали Show, чтобы объединить типы
[14:55:33] <ForNeVeR> Что, t - тоже не объект?
[14:55:47] <ForNeVeR> А тут ты что предлагаешь?
[14:55:56] <Minoru> нет, я к тому, что Foo и Bar должны быть объединены абстрактным классом, или как оно там в плюсах называется
[14:55:58] <Minoru> интерфейсом
[14:56:00] <Minoru> whatever
[14:56:04] <ForNeVeR> Эм, но тогда зачем тут темплейт?!
[14:56:21] <Minoru> и правда
[14:56:23] <ForNeVeR> Ты можешь просто виртуальную функцию вызывать ~_~
[14:56:25] * Minoru задумался
[14:56:46] <ForNeVeR> Но идея с темплейтом мне тем и понравилась, что она в точности отражает мою цепочку рассуждений.
[14:59:29] <Minoru> погоди, так получается, что «a -> ShowObj» на плюсах стало бы темплейтом, а вот «Show a => a -> ShowObj» в плюсах могло бы быть уже одним методом на все типы (потому что этому методу можно только дёргать функции из Show, то есть смотреть ему нужно только на таблицу виртуальных вызовов, указатель на которую всегда в начале объекта)
[14:59:34] <Minoru> правда же?
[15:00:44] <ForNeVeR> Только если Show можно считать базовым классом типов, которые в этот тайпкласс входят.
[15:01:13] <ForNeVeR> Я как-то больше верю чувакам, которые делают тайпклассы на темплейтах.
[15:01:43] (/^o^)/ зашёл в конференцию
[15:03:59] <ForNeVeR> Minoru: слушай, а паттерн-матчить этот тип можно? И что получится?
[15:04:58] <Minoru> не уверен
[15:05:18] <Minoru> уверен, что тайпчекер не сможет понять, что за тип у тебя внутри конструктора, и заставит писать руками
[15:05:22] <ForNeVeR> Ну вот я считаю, что паттерн-матчинг бы дал ответ на нашу дискуссию.
[15:05:31] <ForNeVeR> Сколько кейсов в паттерн-матчинге - столько и конструкторов.
[15:05:51] <Minoru> э-э-э, што? Один кейс, йопт. Один конструктор — один кейс!
[15:06:05] <ForNeVeR> Но ты говоришь, что придётся тип писать руками.
[15:06:12] <ForNeVeR> А, значит, там бесконечное количество кейсов.
[15:06:35] <ForNeVeR> case ShowObj (a :: String) -> 1
case ShowObj (a :: Char) -> 2
[15:07:27] <ForNeVeR> Если их никак нельзя унифицировать к case ShowObj (a :: Show x => x) - то хрен там, а не один конструктор.
[15:07:42] <ForNeVeR> (ну а если можно - то сама аннотация типа тут не нужна)
[15:08:10] <Minoru> хм
[15:08:20] <Minoru> case (ShowObj 1) of { ShowObj _ -> putStrLn "yay"; otherwise -> putStrLn ":(" }
[15:08:25] <Minoru> выдаёт «yay»
[15:08:29] <ForNeVeR> Но спор больше теологический, конечно.
[15:08:37] <Minoru> прозреваю, что у _ тип — «a»
[15:08:46] <ForNeVeR> Minoru: ну, спорно.
[15:09:08] <Minoru> а как проверить?
[15:09:16] <ForNeVeR> Minoru: эдак я могу говорить, что везде один конструктор, потому что всё можно привести к _ :)
[15:09:43] <Minoru> case (ShowObj 1) of { ShowObj (x::a) -> putStrLn "yay"; otherwise -> putStrLn ":(" }
[15:09:45] <Minoru> тоже работает
[15:09:48] <ForNeVeR> Minoru: этот ShowObj стандартный? Откуда его импортить?
[15:09:51] <Minoru> и, кстати, ругается на otherwise
[15:10:00] <Minoru> <interactive>:6:1: Warning:
[15:10:01] <Minoru> Pattern match(es) are overlapped
[15:10:07] <Minoru> In a case alternative: otherwise -> ...
[15:10:25] <Minoru> ForNeVeR: нет, не стандартный. На: data ShowObj = forall a. Show a => ShowObj a
[15:10:34] <ForNeVeR> Not a data constructor: `forall'
Perhaps you intended to use ExistentialQuantification
[15:10:41] <ForNeVeR> Как его юзить?
[15:10:45] <ForNeVeR> В ghci
[15:10:46] <Minoru> да, да, ghci -XExistentialQuantification
[15:11:04] <Minoru> забыл, прости. У меня ночь уже в голове :)
[15:11:21] <Minoru> а, ещё ScopedTypeVariables могут потребоваться
[15:11:33] <Minoru> ага, точно
[15:11:56] <ForNeVeR> Хрен там.
[15:11:59] <Minoru> имхо, тот факт, что компилятор ругается на otherwise, доказывает, что кейс один
[15:12:01] <Minoru> что?
[15:12:30] <ForNeVeR> Minoru: теперь я напишу case (Maybe 1) of { _ -> 1; otherwise -> 2 }
[15:12:38] <ForNeVeR> И буду доказывать, что в Maybe тоже кейс один :)
[15:12:49] <ForNeVeR> Не годится такое пояснение, кароч.
[15:12:59] <Minoru> у меня есть имя конструктора
[15:13:03] <Minoru> а у тебя — нет
[15:13:12] <Minoru> в смысле, ты не написал Just ->
[15:13:20] <Minoru> Just _ -> то есть
[15:13:31] <ForNeVeR> case (ShowObj 1) of { ShowObj x -> putStrLn (show x) }
[15:13:35] <Minoru> вот если бы написал, и убрал бы otherwise, тебе бы живо подсказали, что ты неправ
[15:13:36] <ForNeVeR> А вот такое мне нравится.
[15:13:49] <ForNeVeR> Действительно, x как Show можно вытащить.
[15:14:05] <ForNeVeR> А как экземпляр любого из конкретных типов - нельзя.
[15:14:17] <Minoru> почему же? Read тебе в помощь!
[15:14:27] <rexim> Read тебе в stdin!
[15:14:32] <Minoru> только я не помню, он вместе с Show тащится, или нужно отдельно попросить?
[15:14:35] <Minoru> кажись, таки отдельно
[15:14:35] <ForNeVeR> Ты имеешь в виду read . show ?
[15:14:40] <Minoru> да
[15:14:44] <ForNeVeR> Ну, это херня.
[15:14:46] <Minoru> ну, только тип указать придётся :)
[15:14:51] <ForNeVeR> Эдак у тебя и "1" и 1 унифицируется.
[15:15:17] <ForNeVeR> То есть определить, какой тип внутри ShowObj, реально невозможно?
[15:15:35] <Minoru> ну блин, а что ты хотел? Ты инфу о типе содержащегося там значения потёр, когда отказался писать «data ShowObj a» и сделал просто «data ShowObj»
[15:15:44] <ForNeVeR> Я ничо не хотел.
[15:15:52] <Minoru> минутку, я на Data.Dynamic гляну
[15:15:54] <Minoru> или как его там
[15:16:06] <ForNeVeR> Ну, это тоже уже какие-то хитрости.
[15:16:32] <ForNeVeR> Значит, пока что считаем, что конструктор таки один. Во всяком случае, различить "разные" конструкторы после создания инстанса возможности нет.
[15:17:28] <Minoru> ForNeVeR: ну вот, Data.Dynamic решает проблему, запоминая тип
[15:17:43] <Minoru> http://kwangyulseo.com/2014/02/03/data-typeable-and-data-dynamic-in-haskell/
[15:17:53] <Minoru> там тебе и пример гетерогенного списка, кстати
[15:19:29] <Minoru> но там в Data.Typeable какая-то магия, которую я никогда не понимал
[15:19:37] <Minoru> и сейчас тоже не понимаю
[15:20:09] <ForNeVeR> To be precise, hlist is not actually a heterogenous list from the point of Haskell type system. It is just a homogenous list of Dynamic.
[15:20:16] <ForNeVeR> Нету гетерогенных списков.
[15:20:24] <ForNeVeR> А типы есть!
[15:20:41] <ForNeVeR> Ну, во всяком случае, есть такие конструкторы.
[15:21:46] <ForNeVeR> Minoru: мне не нравится, кстати, вот это:
You can make any type Typeable by adding “deriving Data.Typeable”. In GHC, you need to turn on -XDeriveDataTypeable option to make GHC automatically derive the instance for you.
[15:22:08] <ForNeVeR> На каждый "автоматически наследуемый" тип чувакам приходится совать костыли прямо в компилятор.
[15:22:11] <ForNeVeR> Разве это хорошо?
[15:23:05] <ForNeVeR> Если, не дай б-г, появится N компиляторов и M наследуемых типов...
[15:23:36] <ForNeVeR> Короче, это одна из причин того, почему у хаскеля никогда не появится N компиляторов.
[15:24:10] <Minoru> это да, нехорошо. А что, это и правда нереально сделать с помощью TH? Или просто этот самый TH пихают в компилятор вместо какой-то библиотеки?
[15:24:31] * ForNeVeR ни разу не видел кода на TH.
[15:26:04] * Minoru писал quasi-quote, чтобы сделать себе here docs в одном нерелизнутом проекте
[15:26:08] <Minoru> это не слишком страшно
[15:26:22] <Minoru> но сколь-нибудь сложную магию на нём писать было бы стрёмно
[15:26:25] <ForNeVeR> А что, для квазиквот нужно TH?
[15:26:30] <Minoru> да
[15:26:33] <ForNeVeR> Хм.
[15:27:32] <ForNeVeR> http://stackoverflow.com/questions/3071136/what-does-the-forall-keyword-in-haskell-ghc-do - вот хороший постик про forall, кстати.
[15:27:58] <ForNeVeR> Собственно, если б я сразу дочитал его до конца, то не спрашивал бы про ShowObj.
[15:29:36] <Minoru> и мы бы не посвятили 50 минут обсуждению всяких разных уголков всяких разных языков? Форневерик, читай поменьше!
[15:30:17] <ForNeVeR> liftTup :: (forall x. x -> f x) -> (a, b) -> (f a, f b) - мде.
[15:30:22] <ForNeVeR> Как это раскуривать?
[15:30:29] <ForNeVeR> Я понял, что оно делает, но, гм.
[15:30:53] <ForNeVeR> Что тут такое f? Это объявление типа? Функции на типах?
[15:31:39] <ForNeVeR> И довольно внезапно, что этот f можно использовать потом в самом конце, за скобками.
[15:33:08] <Minoru> у меня есть какие-то догадки, но я лучше промолчу, потому что слишком сумбурно и неуверенно как-то. А пост тот я позже почитаю, потому что сейчас мне страшно ._.
[15:33:10] <ForNeVeR> Или f это монада?
[15:33:19] <ForNeVeR> Хотя монада и есть функция на типах. И тайпкласс.
[15:33:30] <ForNeVeR> Чёрт, как всё сложно.
[15:33:41] <Minoru> я бы поставил на функтор. Но в типе ничего про это нет, значит, это просто тайпкласс с одним параметром
[15:33:48] <Minoru> или тип с одним параметром :)
[15:34:09] <ForNeVeR> Тип с параметром и тайпкласс - это не одно и то же?
[15:34:09] <Minoru> ты мне лучше в scala@ подскажи
[15:34:24] <Minoru> а то я что-то с ума схожу, вроде примитивная проблема, а я ничегошеньки понять не могу
[15:35:14] <Minoru> тип и тайпкласс — разные вещи же
[15:35:23] <Minoru> я же говорю, всё сумбурно. Нужно было молчать!
[15:42:09] <ForNeVeR> А, ну, наверное, это правильно. List, например - это ж не тайпкласс.
[15:42:46] <ForNeVeR> Значит, и f в том определении - это именно тип с параметром.
[15:43:55] <ForNeVeR> Да и вообще, тайпкласс - это не функция на типах.
[15:44:15] <ForNeVeR> Имея Int и Monad, нельзя получить ничего хорошего, применив Monad к Int.
[15:44:27] <ForNeVeR> А вот имея List и Int, можно получить хорошее.
[15:44:55] <ForNeVeR> Правильно же?
[15:45:41] dzhon вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable
[15:45:43] dzhon зашёл в конференцию
[15:46:12] <ForNeVeR> https://vimeo.com/113588389 - какой-то хер на хабре утверждает, что этот доклад помог ему с монадами.
[15:46:36] dzhon вышел из конференции
[15:50:51] dzhon зашёл в конференцию
[15:51:28] enaken вышел из конференции
[16:01:22] dzhon вышел из конференции: Replaced by new connection
[16:01:24] dzhon зашёл в конференцию
[16:03:16] enaken зашёл в конференцию
[16:19:19] gr_buza@arbeiten вышел из конференции
[16:29:39] m4n71k0r зашёл в конференцию
[16:44:19] enaken вышел из конференции
[16:46:30] <rexim> ForNeVeR: помог с монадами что? Завязать?
[16:46:52] <ForNeVeR> rexim: подружиться!
[16:46:59] <m4n71k0r> ВЫ ВСЕ МОНАДЫ!
[16:47:04] <m4n71k0r> АААААААААААААААААААААА
[16:47:09] <m4n71k0r> АААААААААААААааааааааааааааааАААААААААААААА
[16:47:12] <rexim> m4n71k0r: сам такой
[16:47:47] * ɹǝɟılʍǝu нашел какую-то хуиту...
[16:48:03] <m4n71k0r> выкинь
[16:48:42] <ForNeVeR> Продай!
[16:48:53] <m4n71k0r> на авито
[16:49:12] <ForNeVeR> В магазине должны покупать.
[16:49:59] dzhon вышел из конференции: Этого участника выгнали из комнаты за то, что он послал сообщение об ошибке другому участнику: service-unavailable
[16:52:12] <ɹǝɟılʍǝu> омг
[16:52:37] <ɹǝɟılʍǝu> И как мне продат это «http://pravoslovie.com/slovar/n/%D0%BD%D0%B5%D0%B7%D0%B0%D0%BB%D1%83%D0%BF%D0%B0»?
[16:53:13] <ɹǝɟılʍǝu> Вернее вот http://pravoslovie.com/slovar/n/%D0%BD%D0%B5%D0%B7%D0%B0%D0%BB%D1%83%D0%BF%D0%B0
[16:53:16] <m4n71k0r> https://www.avito.ru/rossiya?q=%D1%85%D1%83%D0%B5%D1%82%D0%B0
[16:53:19] <ɹǝɟılʍǝu> Выше ссылка побилась
[16:59:06] madmercen зашёл в конференцию
[17:07:10] magog вышел из конференции: Replaced by new connection
[17:07:10] magog зашёл в конференцию
[17:08:28] dzhon зашёл в конференцию
[17:11:49] gr_buza@arbeiten зашёл в конференцию
[17:15:27] dzhon вышел из конференции: Этого участника выгнали из комнаты за то, что он послал присутствие с ошибкой: service-unavailable
[17:21:29] enaken зашёл в конференцию
[17:23:55] <rexim> .ping
[17:23:56] <DeadBot> rexim: понг от тебя 0.06 секунды
[17:23:56] <rexim> .ping
[17:23:58] <DeadBot> rexim: понг от тебя 0.06 секунды
[17:23:58] <rexim> .ping
[17:23:59] <DeadBot> rexim: понг от тебя 0.06 секунды
[17:24:04] <rexim> B|
[17:31:36] dzhon зашёл в конференцию
[17:32:28] dzhon вышел из конференции
[17:40:01] dzhon зашёл в конференцию
[17:47:12] Kumbaya зашёл в конференцию
[17:47:35] madmercen вышел из конференции: Replaced by new connection
[17:47:44] madmercen зашёл в конференцию
[17:51:17] <ForNeVeR> http://shakebuild.com/manual#progress-prediction хрена себе фичи
[17:53:35] <m4n71k0r> и до этого никто не догадался раньше?
[17:54:09] <ForNeVeR> Догадались. По-моему, cmake или кто-то типа того выводил прогресс сборки в процентах.
[17:55:53] <ForNeVeR> Мне нравится shake, интересная штуковина.
[17:57:14] Spo1ler зашёл в конференцию
[17:58:56] rexim вышел из конференции
[18:06:04] uggur вышел из конференции
[18:09:03] uggur зашёл в конференцию
[18:32:04] O01eg зашёл в конференцию
[18:34:14] magog вышел из конференции
[18:40:19] magog зашёл в конференцию
[18:48:44] madmercen вышел из конференции
[18:49:11] sendxmpp зашёл в конференцию
[18:49:12] <sendxmpp> tist
[18:49:12] sendxmpp вышел из конференции
[18:50:03] bodqhrohro зашёл в конференцию
[18:50:15] <bodqhrohro> Ня
[18:53:15] .DENiZ зашёл в конференцию
[18:53:58] <m4n71k0r> tits
[18:54:27] <ForNeVeR> .DENiZ: рота и звание, боец?
[18:54:51] <.DENiZ> Питонисты, нуб
[18:54:59] <ForNeVeR> А код покажешь?
[18:55:07] <ɹǝɟılʍǝu> Нуб-питонист, что может быть хуже?..
[18:55:11] <.DENiZ> пилю только, показывать пока нечего
[18:55:22] <ForNeVeR> ɹǝɟılʍǝu: эм, мне послышалось или кто-то сказал "пхп"? ЖВ
[18:55:28] <ForNeVeR> .DENiZ: а что пилишь?
[18:55:29] <.DENiZ> Как что? А php-нуб?
[18:55:34] <ɹǝɟılʍǝu> ForNeVeR, да
[18:55:57] <m4n71k0r> 1c-ница
[18:55:57] <ForNeVeR> .DENiZ: у нас тут принято давать мемберство за кусочек кода, выставленный на всеобщее обозрение. Необязательно много, строчек 50 хватит.
[18:56:26] <m4n71k0r> да на питоне можно в 50 строчек ось написать
[18:56:28] <ɹǝɟılʍǝu> Главное, чтобы этот код был написан тобой.
[18:56:32] <.DENiZ> сайт под cpa (каталог модных шмоток с ломоты и т.п.). на джанго.
[18:56:41] <m4n71k0r> сра
[18:56:54] <.DENiZ> *ламоды
[18:56:56] rexim зашёл в конференцию
[18:57:02] <m4n71k0r> с регексп-рест-сервисом?
[18:57:54] <ForNeVeR> сра?
[18:57:54] <.DENiZ> ну регекс там в одном месте пока буквально применяется =) а так разбор xml файлов, что они дают по описанию яндекс.маркета. парню lxml
[18:58:09] <.DENiZ> *парсю
[18:58:12] <ɹǝɟılʍǝu> .DENiZ, опасно
[18:58:21] <ForNeVeR> Блин, мне как раз с ентой ламотой надо будет интегрироваться. И как раз через яндекс-маркетовские форматы.
[18:58:23] <m4n71k0r> сра парню
[18:58:28] <ForNeVeR> Ну, если заказчик бабла не зажмёт.
[18:58:38] <.DENiZ> >сра парню ?
[18:58:58] <ForNeVeR> .DENiZ: я не понял, что такое сра, и что они дальше городят - тоже не понял ~_~
[18:59:04] <rexim> Что здесь опять происходит?
[18:59:18] <ɹǝɟılʍǝu> сра
[18:59:18] <m4n71k0r> .DENiZ: ты погряз в теме, а я только принюхиваюсь... но в принципе я понял
[18:59:28] <m4n71k0r> парсить питоном модно
[18:59:31] <m4n71k0r> хмл
[18:59:47] <.DENiZ> ну, там ничего сложного нет, в принципе. проблема в том, что парить надо xml файлы разных источников (магазинов), каждый из которых понимает стандарт по своему.
[18:59:53] <m4n71k0r> rexim: ща я опять питонистов нечаянно обижу, но я сдерживаюсь
[19:00:02] <m4n71k0r> как бы воздух не испортить
[19:00:11] <rexim> .-.
[19:00:19] <ɹǝɟılʍǝu> О_о
[19:00:39] <rexim> m4n71k0r: ты главное при этом не начни еще раздеваться.
[19:01:39] <.DENiZ> > я не понял, что такое сра. Грубо делаешь свой каталог вещей/услуг. Кто-то заходит на твой каталог и выбирает там вещь/услугу, переходит на сайт продавца (магазина) и там уже покупает. Тебе процент с продажи. Ну это для магазинов =) А так там и арбитраж трафик присутствует, но это другая ветка.
[19:02:05] <ForNeVeR> Сра - это когда грубо? Ок!
[19:02:11] <.DENiZ> >парсить питоном модно ...
Я вот уже думаю потом переписать все на Go. Ибо скорость парсинга - ад =)
[19:02:28] <ForNeVeR> Дак ты там и правда регекспами чтоле парсишь?
[19:02:40] <aklim007> go тоже можно
[19:02:46] <m4n71k0r> моджно
[19:02:47] <aklim007> модно*
[19:02:59] <ForNeVeR> Среди меня чото не модно.
[19:03:02] <m4n71k0r> aklim007: о, а ты кто?
[19:03:11] <ForNeVeR> И вообще, среди присутствующих.
[19:03:20] <ForNeVeR> m4n71k0r: это Аклим, гость из солнечного Казахстана.
[19:03:25] <ForNeVeR> m4n71k0r: код показывал.
[19:03:33] <m4n71k0r> ForNeVeR: брат альбатроса?
[19:03:43] <m4n71k0r> или просто тоже с Казахстана?
[19:03:43] <ForNeVeR> Думаешь, они там все братья?
[19:03:54] <m4n71k0r> все мы братья, бро
[19:04:02] <ForNeVeR> Ну, то мы, а то казахи.
[19:04:07] <.DENiZ> нет, lxml. 300k офферов на входе в одном xml.файле. 500+ метров весит без сжатия, 20+ с сжатием. из 300k уникальных товаров ~100k. вот на разбор этих 100 и внесение в бд (postgresql) уходит порядка 300 секунд на air 2012 года (стрfiyj подумать сколько будет кушать на говносервере/vps)
[19:04:17] <aklim007> только я не с казахстана -_-
[19:04:20] <.DENiZ> обновление этих же товаров чуть быстрее - в районе 140 секунд
[19:04:34] <m4n71k0r> aklim007: тебе видней
[19:04:50] <ForNeVeR> aklim007: эх, взял и всё спалил.
[19:04:56] <m4n71k0r> 500 метров хмл-говна)
[19:05:08] <ForNeVeR> Да уж, невесело.
[19:05:15] <m4n71k0r> почему не csv?
[19:05:19] <ForNeVeR> Это ж мне надо будет какой-то SAX прикручивать.
[19:05:34] <ForNeVeR> Хотя херли, прикурочим. Первый раз чтоле?
[19:05:40] <.DENiZ> >почему не csv?
а чем он лучше/быстрее?
[19:05:52] <ForNeVeR> Ну, парсер точно быстрее для него.
[19:06:02] <m4n71k0r> раз в дцать
[19:06:06] <rexim> Ну это смотря как написать.
[19:06:11] <m4n71k0r> ну смотря как да
[19:06:22] <ForNeVeR> Ну, если как мисер - то да, это будет проблемой.
[19:06:24] <m4n71k0r> если на скале с шейплессом, то может и не в дцать
[19:06:28] <rexim> Мисер
[19:06:31] <ForNeVeR> Да.
[19:06:41] <.DENiZ> вот поэтому я и нуб =) а что за парсер, встроенный или сторонняя библиотека (аля lxml)?
[19:06:52] <rexim> lcsv
[19:07:11] <m4n71k0r> sax - поточная хмлехавалка жеж
[19:07:18] <m4n71k0r> lcsv)
[19:07:23] <ForNeVeR> m4n71k0r: в этом и поинт, что поточная.
[19:07:32] <ForNeVeR> m4n71k0r: не придётся сразу 500 мег выделять для говнахранения.
[19:07:34] <rexim> Проточная
[19:07:50] <m4n71k0r> нам нрацца поточно
[19:07:53] <ForNeVeR> А можно сразу по одной записи в базу толкать и коммитить, чтоб клиент сразу видел.
[19:08:23] <.DENiZ> уо-уо-уо! я не выделяю 500 миг! я парюсь zip и интеграциями с удалением из памяти уже обработанного =) метро 100 питон жрет. пострел и то больше
[19:08:35] <.DENiZ> *gzip
[19:08:43] <ForNeVeR> Ну это я уже на свои задачи примеряю, например.
[19:08:44] <.DENiZ> *итеррациями
[19:09:21] <ForNeVeR> А хотя пофиг - посажу какого-нибудь джуна, пускай запиливает :)
[19:09:35] <ForNeVeR> Или сразу троих, шоб не скучали.
[19:09:52] <ForNeVeR> Я думаю, мне скоро целый пак этих джунов подарят.
[19:09:58] <m4n71k0r> ForNeVeR: да, так и скажи ему "напиши-ка мне cum-sax parser"
[19:10:00] <ForNeVeR> ...или выгонят к херам.
[19:10:18] <.DENiZ> выше код просили, вот как раз этот кусочек могу показать если интересно =)
[19:10:26] <ForNeVeR> .DENiZ: ну давай, конечно.
[19:10:33] <ForNeVeR> Мембернём, капчу не придётся вводить.
[19:10:35] <m4n71k0r> я пакетик взял
[19:10:39] <m4n71k0r> без попкорна
[19:11:03] <m4n71k0r> только не в пм кот)
[19:11:19] <ForNeVeR> Ну да, код на http://hastebin.com или типа того.
[19:11:57] <ForNeVeR> Слышьте, а есть у нас кто в CI рубит?
[19:12:10] <ForNeVeR> Я вот на дженкинсе могу какие-нибудь кастомные графики строить?
[19:12:15] <.DENiZ> http://hastebin.com/kovuvidufo.py
[19:12:43] <ForNeVeR> Я нашёл плагин Plot, но хорош ли он?
[19:12:56] <ForNeVeR> И документация к нему недоступна - у них шото с веб-сервером случилось :(
[19:13:05] grouzen зашёл в конференцию
[19:13:18] <m4n71k0r> почему-то мне показалось, что этот код на скалке можно двумя строчками написать
[19:13:40] <ForNeVeR> m4n71k0r: ну, правда, длиннющими :)
[19:14:02] <m4n71k0r> да там мапы две с фильтрами
[19:14:50] <m4n71k0r> .DENiZ: а такие подробные комменты заказчик требует?
[19:14:58] <rexim> ForNeVeR: дядя Нёвер
[19:15:03] <ForNeVeR> .DENiZ: по-моему, ты намутил там с cycle очень сильно.
[19:15:05] <rexim> m4n71k0r: дядя Монти
[19:15:08] <.DENiZ> не, я для себя пилю =)
[19:15:23] <m4n71k0r> ForNeVeR: это у него стейт какой-то
[19:15:31] <ForNeVeR> m4n71k0r: я вижу, что стейт.
[19:15:35] <rexim> m4n71k0r: ForNeVeR: скажите, что все будет хорошо...
[19:15:41] <ForNeVeR> И как минимум в одном месте вижу, что коммент не соответствует коду.
[19:15:53] <ForNeVeR> rexim: ничего не будет хорошо! Будет только хуже и хуже!
[19:16:02] <ForNeVeR> rexim: пора бы уж привыкнуть, мистер Мииксер.
[19:16:20] rexim вышел из конференции
[19:18:35] Spo1ler вышел из конференции
[19:18:50] <ForNeVeR> Может, стоило обмануть его? Сказать, что и правда всё будет хорошо?
[19:18:54] <.DENiZ> >по-моему, ты намутил там с cycle очень сильно.
Ну да, изначально был один проход. Проблема в том, что 300k строк - офферов из которых только 100k уникальные, остальные строки - это те же аферы ну с другими размерами. Т.е. если у товара два размера, то в xml файле будет 2 строки Фактически идентичные. Разница только в одним поле (размер). Поэтому что мы не держат в памяти товар, а сразу скидывать его в бд, мы первым проходом делаем словарь с уник. id-оффера и списком какие размеры к нему есть. это дело 20-25 секунд пройти. а уже на втором цикле начинаем разбирать файл подробно, с конвертацией полей в нужный формат и пушем в бд., удаляя из памяти обработанные объекты
[19:19:18] <.DENiZ> *офферы.
[19:20:09] <ForNeVeR> m4n71k0r: у него там .toMap, короче.
[19:20:38] <ForNeVeR> Вернее, гм, groupBy. Как это в скале-то?
[19:20:42] <ForNeVeR> А, ну да.
[19:20:45] <ForNeVeR> .member .DENiZ
[19:20:46] <DeadBot> ForNeVeR: ok
[19:21:33] <m4n71k0r> .DENiZ: перепиши на Scala =)
[19:22:42] <.DENiZ> о, я с радостью попробую переписать на что-то более быстрое, хоть на Go, хоть на Rust, до хоть на Nim со Скалой. Но только после создания рабочего прототипа, приносящего хотя бы копеечку =)
[19:24:41] <.DENiZ> надо отойти, но, надеюсь, еще вернусь, не зря же мембера дали =)
[19:24:45] <.DENiZ> всем удачи!
[19:24:49] .DENiZ вышел из конференции
[19:25:30] <m4n71k0r> не забухай там, ага
[19:25:41] <m4n71k0r> а что с миксером?
[19:25:49] <m4n71k0r> распереживался
[19:29:43] <ForNeVeR> m4n71k0r: https://github.com/mystor/rust-cpp
[19:31:05] <m4n71k0r> я что-то заметил что плагины к компиляторам не очень популярны в народе
[19:31:14] <m4n71k0r> ну пока компилятор один - ладно
[19:31:30] <m4n71k0r> вообще-то да, внушает
[19:31:49] <ForNeVeR> m4n71k0r: ага, ищи-свищи ещё желающих написать _второй_ компилятор.
[19:32:20] <ForNeVeR> Из современников, кажется, только дишники преуспевают.
[19:32:42] <ForNeVeR> Ну и шарписты, но то нечестно: у них компилятор не оптимизирующий.
[19:33:42] <m4n71k0r> я забыл, а растокомпилятор не использует llvm ?
[19:33:48] <ForNeVeR> Использует
[19:34:08] <m4n71k0r> а... там уже оптимизатор тогда есть и всё такое
[19:34:31] <ForNeVeR> Ну, у раста сложный компилятор и большая стандартная либа. Тут всё-таки есть, над чем поработать.
[19:35:01] <ForNeVeR> Как и в случае D.
[19:35:11] <m4n71k0r> ну им всё-таки нет смысла писать ещё один коноплятор
[19:35:20] <ForNeVeR> Думаешь, если dmd переедет на llvm - станет сильно проще?
[19:35:35] <m4n71k0r> нууже есть ldc
[19:35:45] <ForNeVeR> А эт шо такое?
[19:35:55] <m4n71k0r> d на llvm
[19:35:56] <ForNeVeR> Я только про гнутый D-компилятор знаю. Это он?
[19:36:25] <m4n71k0r> https://github.com/ldc-developers/ldc
[19:36:54] <m4n71k0r> вполне себе живой
[19:36:55] <ForNeVeR> Подожди, так их шо, *три*?!
[19:36:58] <m4n71k0r> и очень быстрый код генерит
[19:37:00] <ForNeVeR> Вот это, блин, дают.
[19:37:00] <m4n71k0r> да, три
[19:37:12] <ForNeVeR> Сколько сил в комьюнити!
[19:37:14] <m4n71k0r> есть марсовый, есть гнутый и ллвмнутый
[19:37:21] <ForNeVeR> Ага.
[19:37:42] <m4n71k0r> стандартная либа - фобос, врапперы над сишными либами - деймос
[19:37:54] <m4n71k0r> правда там только зайчатки
[19:39:18] <m4n71k0r> упорина у комьюнити хватило даже на https://github.com/d-widget-toolkit/dwt ...
[19:41:39] <ForNeVeR> Насколько хороший порт? Чёрные прямоугольники я воспроизведу? :D
[19:42:47] <ForNeVeR> m4n71k0r: а чуваки, конечно, молодцы. Это очень здорово.
[19:42:55] <ForNeVeR> Иногда мне даже кажется, что всё будет хорошо.
[19:51:53] Myp зашёл в конференцию
[19:54:41] bodro-uedro зашёл в конференцию
[19:54:42] <bodro-uedro> tist
[19:54:42] bodro-uedro вышел из конференции
[20:09:53] magog вышел из конференции
[20:11:21] magog зашёл в конференцию
[20:35:57] <ɹǝɟılʍǝu> Minoru, ForNeVeR m4n71k0r https://pbs.twimg.com/media/CLZ4jBNWcAA6E30.jpg
[20:37:13] ForNeVeR вышел из конференции: Disconnected: closed
[20:44:21] magog вышел из конференции
[20:44:46] magog зашёл в конференцию
[20:46:25] ForNeVeR зашёл в конференцию
[20:49:43] <ForNeVeR> ɹǝɟılʍǝu: бугага :D
[20:51:01] gr_buza@arbeiten вышел из конференции
[20:57:00] MaXGGXaM вышел из конференции
[20:58:17] .DENiZ зашёл в конференцию
[21:09:59] <m4n71k0r> tits
[21:10:29] <m4n71k0r> ɹǝɟılʍǝu: ващет доля правды есть
[21:10:46] <.DENiZ> /names
[21:10:57] <.DENiZ> не прокатило, ок
[21:11:00] <m4n71k0r> бэкендщики видят результат по логам и ответам заглушек
[21:11:17] <m4n71k0r> .DENiZ: поставь личкрафты
[21:11:23] <m4n71k0r> там всё работает
[21:11:31] <.DENiZ> проект еще жив?
[21:11:45] <m4n71k0r> .DENiZ: более чем
[21:11:59] <0xd34df00d> .DENiZ: почему б ему не жить?
[21:12:08] <.DENiZ> а вот и автор =)
[21:12:43] <.DENiZ> помню личкрафты по джуйку черт знает какой давности. думал, уже все
[21:13:43] <0xd34df00d> Не, отнюдь )
[21:14:14] <.DENiZ> а если серьезно, надо какой-то адекватный месенджер поставить. adium? что ли =\ а то я в этом уг даже историю чата не вижу
[21:14:21] <ɹǝɟılʍǝu> m4n71k0r, истенно так
[21:14:46] <m4n71k0r> .DENiZ: это жуйк уже всё
[21:14:51] <.DENiZ> *уг - встроенный «messages»
[21:15:10] <.DENiZ> жук жалко, а что там, Тоня все бросила?
[21:15:29] <.DENiZ> или Антон
[21:16:19] MaXGGXaM зашёл в конференцию
[21:16:29] <m4n71k0r> я просто знаю, что всё
[21:17:55] eaeee зашёл в конференцию
[21:18:59] madmercen зашёл в конференцию
[21:19:18] <0xd34df00d> Давайте лучше про C++.
[21:19:22] <0xd34df00d> https://bpaste.net/show/7b14e92ef491
[21:19:26] <0xd34df00d> Есть три такие функции.
[21:19:41] <0xd34df00d> Как избежать указания самой функции в trailing return type в третьей перегрузке?
[21:19:46] <0xd34df00d> А то это не по стандарту.
[21:20:16] <ɹǝɟılʍǝu> Я достаю из широких штанин. А люди кругом вопят: «гражданин!»
[21:22:33] <m4n71k0r> 0xd34df00d: а нельзя c++1y ?
[21:22:38] <0xd34df00d> m4n71k0r: не оч хочется.
[21:22:43] <0xd34df00d> Иначе было бы слишком просто.
[21:26:54] <m4n71k0r> да уж
[21:31:39] DENiZ зашёл в конференцию
[21:35:59] v_oron зашёл в конференцию
[21:39:16] <bodqhrohro> ɹǝɟılʍǝu: а был бы товарищ — доставать бы было нечего
[21:40:53] <ɹǝɟılʍǝu> bodqhrohro, чот хуедро как-то
[21:41:10] <bodqhrohro> ɹǝɟılʍǝu: да бодро, узбагойся
[21:41:52] <bodqhrohro> .DENiZ: >imagent
Эт ты чё откопал?
[21:42:49] DENiZ вышел из конференции
[21:42:49] .DENiZ вышел из конференции
[21:46:35] .DENiZ зашёл в конференцию
[21:46:50] DENiZ зашёл в конференцию
[21:47:16] .DENiZ вышел из конференции
[21:48:08] DENiZ сменил ник на .DENiZ
[21:48:21] <.DENiZ> .DENiZ: >imagent
в смысле?
[22:03:55] Славный капитан вышел из конференции
[22:06:29] .DENiZ вышел из конференции
[22:09:19] DENiZ зашёл в конференцию
[22:18:12] <DENiZ> Вопрос по массовому Update в Django/Postgresql. Задача как можно быстрее обновить 100k строк.
Встроенный .filter.update() на каждую строку делает отдельный запрос, что адцки долго.
Что если сделать вот таким запросом - http://pastebin.com/iRvSyJc6 ? На ~1k строк выходит примерно 0.5 сек.
Существуют ли еще какие-то разумные варианты (вроде .bulk_create())?
[22:22:49] <ɹǝɟılʍǝu> Обновляй пачками.
[22:23:05] <ɹǝɟılʍǝu> И не части, не по одной строке.
[22:23:40] <ɹǝɟılʍǝu> Если что-то простое с простым условием, типа update set shit=true то можно и одним запросом.
[22:24:02] <DENiZ> Ну, так я и обновляю пачками - по 1,5-2k, но получается напрямую через cursor.execute(). Но как-то смотрится не очень красиво
[22:24:07] <uggur> "j123123: А в OpenRA мы когда сыграем?" я могу
[22:24:31] <ɹǝɟılʍǝu> DENiZ, а как ты хотел?)
[22:24:56] <DENiZ> что-нибудь в стиле .bulk_create() только для update =) типа .bulk_update()
[22:27:44] madmercen вышел из конференции
[22:28:26] <bodqhrohro> CREATE! READ! UPDATE! DESTROY! SWAG!
[22:40:38] MaXGGXaM вышел из конференции
[22:41:51] MaXGGXaM зашёл в конференцию
[22:45:32] <DENiZ> Ок. Можно тогда вопрос по говнокоду (имхо) с простейшей задачей на поиск следующего значения?

На входе строка 'AABCDR', нужно так же вернуть строку, которая продолжит
алфавитную последовательность, в данном случае: 'AABCDS'.
'AABCDR' => 'AABCDS' - подставили вместо R след. букву алфавита - S.
'AABCDZ' => 'AABCEA' - т.к. Z - последняя буква алфавита, обновляем уже две буквы. и т.д.

Мой текущий вариант - http://pastebin.com/QgSHfyG5 Осторожно! От его просмотра могут пострадать ваши глаза. Собственно, вопрос - задача очевидно банальнейшая и решение должно быть на порядки проще и лаконичнее, ведь так?
[22:47:38] <aklim007> > Встроенный .filter.update() на каждую строку делает отдельный запрос
эээм, нет же, он делает вызов на каждый запрос update() и обновит столько полей сколько попадёт под фильтр
[22:49:53] <DENiZ> хм. возможно, меня ввело в заблуждение логируемые update запросы от django.backend.db? Пачкой в 1-2k строк .filter.update() решает задачу порядка 30 сек. что просто чудовищно =\
[22:54:27] <DENiZ> Стоп. Я, похоже, просто описался. Каждый вызов .filter.update() (в цикле) я же все равно генерирую отдельные запросы к БД? При 100k строк это некошерно =\
[22:55:18] <DENiZ> отсюда и костыли с cursor.execute(), думал может есть более адекватное (встроенное) решение.
[22:56:33] xspeed вышел из конференции
[23:13:03] dzhon вышел из конференции: Replaced by new connection
[23:13:05] dzhon зашёл в конференцию
[23:30:11] madmercen зашёл в конференцию
[23:39:38] <Minoru> ɹǝɟılʍǝu: а почему у этого backend developer'а клавиатура и мышь перевёрнутые?
[23:40:43] <ɹǝɟılʍǝu> Minoru, так бэкэнд же
[23:43:32] <Minoru> дык я же и намекаю, что он *забыл* перевернуть клаву и мышь
[23:44:11] <ɹǝɟılʍǝu> Хм, не. Смотри ответ мантикора)
[23:47:51] <Minoru> ну, ок
[23:50:55] sss|zombie зашёл в конференцию
[23:55:14] gr_buza@arbeiten зашёл в конференцию
[23:57:02] Myp вышел из конференции
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!