Home
Objective Caml
ocaml@conference.jabber.ru
Четверг, 28 апреля 2011< ^ >
gds установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Светлое будущее -- http://camlunity.ru/ | Нефильтрованное настоящее -- https://github.com/camlunity/kamlo_wiki | Портер прошлое -- http://gdsfh.dyndns.org/kamlo/ | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+4
[00:41:51] ygrek вышел(а) из комнаты
[00:44:09] Kakadu вышел(а) из комнаты
[00:55:28] ermine вышел(а) из комнаты
[01:25:56] Typhon вошёл(а) в комнату
[01:34:00] gds вышел(а) из комнаты
[02:24:36] Typhon вышел(а) из комнаты: Replaced by new connection
[02:24:38] Typhon вошёл(а) в комнату
[02:36:45] Typhon вышел(а) из комнаты
[02:47:33] Typhon вошёл(а) в комнату
[03:17:52] Typhon вышел(а) из комнаты
[08:00:40] komar вышел(а) из комнаты: Replaced by new connection
[08:00:40] komar вошёл(а) в комнату
[08:21:44] iNode вошёл(а) в комнату
[09:04:10] gds вошёл(а) в комнату
[10:11:52] ygrek вошёл(а) в комнату
[10:43:39] ygrek вышел(а) из комнаты
[10:47:38] ermine вошёл(а) в комнату
[10:57:48] <gds> superbobry: ещё есть желание покодить на окамле для поднятия квалификации?  есть проект parvel (ocaml, revised syntax, message passing, манатки, лицензировать могу под gpl при желании), и дела на выбор: либо удостовериться в отсутствии багов (и пофиксить, если они есть; у меня только подозрения, но вполне конкретные), либо накодить изменения в логике (сейчас как минимум одно, но скорее всего будет ещё), либо добавить одну фичу (как минимум одну), либо "свободное творчество" -- смотрим, что проекту надо, часть беру на себя (потому что у меня есть внешние сроки, в которые надо уложиться), часть отдаю на неспешную реализацию.
[11:19:58] Kakadu вошёл(а) в комнату
[11:40:41] <superbobry> gds, желание есть, но сессия на носу -- так что со временем проблемы. удостовериться в отсутствии багов подразумевает написание тестов / примеров?
[11:44:01] <gds> про баги -- загрузить в голову код, повертеть его там, наверное.  Скорее всего и без тестов/примеров будет понятно.  Может там и есть что исправить, но не думал об этом, ибо 1. некритичный кусок, 2. голова забита другой ерундой, которая точно-срочно нужна.  todo-камент оставил в коде, как-нибудь дойдут руки, наверное.
Про сессию -- понял.  Учёба стократ важнее.
[11:50:15] superbobry вышел(а) из комнаты
[11:55:56] <f[x]> Kakadu, komar, gds: а что, по annot файлам тип смотреть уже не кошерно?
[11:56:25] <komar> Что это такое?
[11:57:09] <f[x]> man ocamlc | grep -C 1 -w annot
[11:57:17] <f[x]> <LocalLeader>t в виме
[11:57:29] <komar> Спасибо, я пошутил.
[11:57:38] <f[x]> и <LocalLeader>d переход к определению
[11:57:55] <f[x]> уж  мне эти шутники
[11:58:21] <komar> Просто фиг его знает. Нафига что-то генерить и куда-то лезть, если можно вставить print_string?
[11:58:41] <f[x]> print_string typeof?
[11:58:45] <komar> Это как с дебаггером.
[11:58:56] <f[x]> нафига что-то вставлять если можно просто нажать \t
[11:59:21] <komar> Гм, а оно само прикручивается?
[11:59:27] <komar> Мне ж лениво.
[11:59:41] <f[x]> ну в emacs'е должно быть из коробки
[12:00:01] <f[x]> в vim я беру с ocaml.info плагин
[12:00:08] <f[x]> один файл
[12:00:12] <f[x]> и тоже из коробки
[12:00:23] <f[x]> ну и в _tags дописать annot: true
[12:00:28] <f[x]> true: annot
[12:00:50] <f[x]> во всяких ide тоже должно быть
[12:01:28] <komar> Гм, отлично.
[12:16:19] <Kakadu> а можно поконкретнее как в туареге?
[12:18:09] Typhon вошёл(а) в комнату
[12:19:01] f[x] не знает что это за зверь
[14:01:29] Typhon вышел(а) из комнаты
[14:13:05] Typhon вошёл(а) в комнату
[14:30:24] ygrek вошёл(а) в комнату
[15:33:35] superbobry вошёл(а) в комнату
[15:35:51] ygrek вышел(а) из комнаты
[16:59:44] <gds> (из хроник пикирующего парвела) ещё вырисовался шаблончик "адресат", состоящий из процесса/пида, кому будут слаться сообщения, и мап-функции, отображающей сообщение чистой функцией.  А потом из этого добра можно будет составлять няшные пайпы и подобные конструкции.
[17:04:27] iNode вышел(а) из комнаты
[17:32:15] gds вышел(а) из комнаты
[17:33:07] Kakadu вышел(а) из комнаты
[17:59:18] ygrek вошёл(а) в комнату
[18:07:09] gds вошёл(а) в комнату
[18:23:16] Kakadu вошёл(а) в комнату
[18:23:34] Kakadu вышел(а) из комнаты
[18:23:50] Kakadu вошёл(а) в комнату
[18:38:59] ygrek вышел(а) из комнаты
[18:51:23] <gds> а подскажите, как люди живут в кластерах, когда связность кластера изменяется, и надо обрабатывать это штатным образом?  Даже какой-то термин был специальный, типа "brain-dead", но не он, судя по гуглу.  Собственно, при отделении мозга от текущего куска нужно всего лишь инициировать выборы мозга, это практически непросто, но теоретически понятно.  А как делают, когда связь таки восстанавливается?  Два мозга не могут жить вместе, по идее.  Или делают настолько простые системы, что случай "отвалилась связь" вызывает просто фейл и перезапуск процесса, и мозг находится только на одном фиксированном процессе?
[18:53:27] <f[x]> ну ты уже совсем обнаглел - хочешь с мозгом но без spof?
[18:54:04] <f[x]> какой-то ИИ получается
[18:55:49] <superbobry> как же так -- как же так, у String нету split
[18:56:03] <superbobry> неужели Str.split единственный вариант?
[18:56:15] <f[x]> # String.split;;
- : string -> string -> string * string = <fun>
[18:56:23] <superbobry> O_O
[18:56:40] <f[x]> у этих пчёл неправильный String
[18:56:45] <superbobry> # String.split;;
Error: Unbound value String.split
[18:56:50] <f[x]> extlib
[18:56:55] <superbobry> это у тебя наверное из каких нибудь батареек String :)
[18:57:15] <f[x]> ясно дело, жизнь слишком коротка чтобы использовать только stdlib
[18:57:47] <superbobry> кстати почему extlib?
[18:58:39] <f[x]> ну когда я выбирал других вариантов не было особо :)
[18:59:30] <superbobry> теперь уже поздно? :)
[19:00:18] <f[x]> хотя сейчас тоже можно найти причины - маленький (batteries go home), без зависимостей (core go home), актульный (cdk go home)
[19:00:42] <superbobry> поддерживается?
[19:00:56] <f[x]> угу
[19:01:21] <f[x]> кстати надо допилить таки ресайзер у dynarray и зарелизить :))
[19:02:01] <superbobry> кстати у меня одного odb не работает?
[19:02:05] <superbobry> или таки поломался?
[19:02:37] <gds> f[x]: да, без spof!  ну хотя бы не с мозгом, а с мозжечком.
[19:02:56] <f[x]> по-моему ты решаешь проблемы не на том уровне
[19:03:18] <f[x]> мозг это уже свойство приложения
[19:03:37] <f[x]> хотя какие-то примитивы по распотранению инфы в кластере можно предоставлять
[19:03:37] <gds> вот в том-то и дело, что хочу узнать, какого уровня эта проблема.
[19:07:23] <gds> подумал.  Факт, если и делать мозг, то вне механизма message passing, но может быть, что через него.  Распространять инфу -- тоже.  Что заставило задуматься -- то, что в текущем раскладе что-то да будет распространяться (пиды "неймсерверов", реализующих process name -> pid).  Да и вообще, видимо, ещё долго не уйду от "звезды".
[19:07:35] <Typhon> gds: gossip / "выбор лидера"?
[19:07:44] <Typhon> или я не так понял?
[19:08:10] <Typhon> superbobry: не работает, там разметку поменяли на сайте, а odb парсит тупо хтмл :-(
[19:08:37] <Typhon> gds: byzantine fault tolerance может быть рядом
[19:08:49] <Typhon> типа, если два мозга — то один из них считается вредным
[19:09:27] <f[x]> два мозга - fight!
[19:09:49] <Typhon> я глубоко не погружался в byzantine failures, но если мне память не изменяет, то про два лидера там было
[19:10:45] <gds> Typhon: читаю потихоньку, всё очень близко и точно нужно.  gossip -- это рядом с вопросом, это для распространения информации очень годно.
[19:11:45] <gds> про "выбор лидера" ничего толком не нашёл, хотя, теоретически, всё делается весьма просто (практически же -- сложнее).
[19:12:22] zert вышел(а) из комнаты
[19:12:46] <Kakadu> gds: ты пытаешься построить мультиагентную систему?
[19:12:58] <Kakadu> нам что-то про такое в универе рассказывали
[19:13:00] <gds> "For example, in 2008 Amazon S3 was brought down for several hours when a single-bit hardware error propagated through the system"  -- фигассе.
[19:13:24] <gds> Kakadu: в целом -- да, поверх message passing + actors.
[19:13:51] <gds> про два мозга -- один точно вредный, но, если он что-то да сделал, надо как-то уметь это слить воедино.
[19:14:49] <Typhon> http://www.amazon.com/Distributed-Algorithms-Kaufmann-Management-Systems/dp/1558603484
[19:14:58] <Typhon> gds: ^^ покупай/качай :-)
[19:15:13] <Typhon> оно на library.nu есть, кажется
[19:17:18] <superbobry> Typhon, он похоже не разметку парсит, а какой то внутренний файлик на ocamlcore http://oasis.ocamlcore.org/dev/odb/stable/pkg/info/00list
[19:17:55] <superbobry> и файлик этот почему то пустой
[19:18:03] <Typhon> superbobry: может передали уже, я смотрел когда — была разметка :-)
[19:20:36] <gds> название учёл, однако сходу не ищется, а регистрироваться влом.  В общем, на практике я пока сделал такие выводы: - gossip -- делается несложно и он полезен, - остальное делается, если у каждого узла можно узнать, с кем он соединён, - состояние мозгов сливать -- что-то около map-reduce проблемы, и, если мозги вообще можно слить, то оно одно к другому сводится, вероятно.
[19:21:12] <superbobry> понятно в общем, в стабильном репозитории нет пакетов, надо было добавить --repo testing :)
[19:21:26] zert вошёл(а) в комнату
[19:26:22] <Typhon> gds: http://dl.dropbox.com/u/7365614/ebooksclub.org__Distributed_Algorithms__The_Morgan_Kaufmann_Series_in_Data_Management_Systems_.djvu   — если джву не ок, из дома кину пдф :-)
[19:27:30] <gds> Typhon: о, чотко!  djvu -- ок, потому что читается с экрана прилично, а мне больше не надо.
[19:29:03] <Typhon> а мне в сливе состояния видится паксос, но не с отвержением старого, а какой-то хитрый
[19:32:12] <gds> хитрый и неправильный с точки зрения paxos, вот это да.  Но вообще саму paxos я посмотрел обзорно, надо пересмотреть.
[19:42:30] <Typhon> про екстлиб f[x] умолчал, что оно им самим поддерживается ^_^
[19:43:30] <gds> оформил человеческий TODO в парвеле: https://bitbucket.org/gds/parvel/src/ce47cecd95ca/TODO .  Если кто хочет и может помочь -- буду очень рад.  Пункты, отмеченные "!", мне нужно сделать весьма быстро, поэтому, если хотите помочь с ними, либо забейте, либо сделайте быстро, но проще забить.  Остальное ещё терпит, но "работа через сеть" следующая, и этот пункт будет расширяться.
[20:04:02] <superbobry> а в окамле есть аналог fromJust?
[20:04:13] <superbobry> понятно что это две строчки, просто хочется из коробки
[20:06:47] komar вышел(а) из комнаты: Replaced by new connection
[20:06:48] komar вошёл(а) в комнату
[20:07:58] <gds> а какую именно ошибку нужно кидать в случае, когда None?  я-то себе написал эти две строчки, но вот с этим вопросом не определился.  постоянно какую-то различную ошибку надо кидать, так получается.  в общем, пару адекватных использований функции было, но не больше.
[20:08:33] <superbobry> тут вот No_value кидают http://ocaml-lib.sourceforge.net/doc/Option.html
[20:08:56] <gds> а потом ищи, No какого же value во всей программе.
[20:09:52] <superbobry> ну это да
[20:09:56] <f[x]> superbobry: code.google.com/p/ocaml-extlib
[20:10:05] <f[x]> на sf.net что-то древнее
[20:10:14] <superbobry> f[x], да я уже батарейки поставил, они в репозитории есть
[20:10:34] <superbobry> а ссылка на sf просто в гугле выскочиал
[20:10:38] <superbobry> *выскочила
[20:12:17] komar вышел(а) из комнаты: Replaced by new connection
[20:12:17] komar вошёл(а) в комнату
[20:27:02] Typhon вышел(а) из комнаты
[21:33:11] Typhon вошёл(а) в комнату
[22:36:48] <superbobry> а для окамла нет аналога hoogle?
[22:37:50] <Typhon> search.ocaml.jp
[22:37:51] <superbobry> nice http://search.ocaml.jp/
[22:37:54] <Typhon> ocaml-hoogle на гх
[22:39:16] <superbobry> блин, без сторонней библиотеке на окмле писать одни расстройства
[22:39:21] <superbobry> того нет, сего нет :/
[22:41:13] <gds> окамл -- чисто язык с минимальной библиотекой.  кто как хочет, так и этосамое.
[22:41:47] <komar> Двачую этого.
[22:43:13] <ermine> на хаскиле с богатейшей библиотекой пишут только факториалы
[22:46:53] <superbobry> gds, ну какбы порядка хочется, чтобы взять язык и сразу пользовать можно :)
[22:47:13] <Typhon> и опердени же
[22:47:23] <Typhon> www.slideshare.net/voidlizard/operden1-7764151
[22:48:16] <Typhon> superbobry, ставь сразу батарейки и .ocamlinit или как там (у них в гайде написано)
[22:48:34] <superbobry> так уже ага
[22:48:45] <superbobry> я просто удивляюсь почему это не в stdlib
[22:49:33] <Typhon> ну мне вот не надо было ничего из батареек почти.
[22:49:42] <Typhon> а то что понадобилось, было в батарейках сломано
[22:49:48] <Typhon> или неполно
[22:49:51] <Typhon> :-)
[22:50:23] <Kakadu> может всё-таки janestreet core?
[22:50:25] <superbobry> ну понятное дело что можно написать парочку своих модулей и быть довольным как слон
[22:50:48] <superbobry> я еще jane core не смотрел -- но в планах
[22:50:54] <superbobry> Kakadu, рекомендуешь?
[22:51:11] <Kakadu> ну это самая большая либа, что я видел
[22:51:14] <Typhon> я бы батарейки юзал -- там людей пинать можно и патчи слать
[22:51:33] <Typhon> а в jcore, есть мнение, если им не надо -- они и не добавят :-)
[22:51:43] <superbobry> ну, похоже на правду :)
[22:51:45] <Kakadu> сейчас нам скажут что jscore - не линукс подход)
[22:51:53] <ermine> я не видела ни обной библиотеки, которая имеет в депендсах jane core
[22:52:08] <ermine> или любого другого продукта с этим депендсом
[22:52:18] <ermine> вообще кто-нить юзает яну?
[22:52:33] <Kakadu> ermine: ну так надо породить)
[22:52:35] <Typhon> кхм, интимные вопросы какие-то
[22:52:38] <Kakadu> что за Яна?
[22:52:44] <Kakadu> iana?
[22:53:30] <ermine> jane street и всё около этого
[22:53:54] <komar> Я один раз посмотрел, испугался и выкинул.
[22:54:24] <superbobry> komar, почему испугался?
[22:54:30] <ermine> батарейки я тоже видела только краешком глазика
[22:54:48] <komar> superbobry: да как-то оно было похоже на поделку.
[22:54:48] <ermine> в общем, вывод - не нужны большие библиотеки
[22:54:49] <superbobry> мне вот не понятно как они *jane street* это поддерживают? учитывая мутность ситуации с патчами, и не очень частые релизы
[22:55:00] <Kakadu> superbobry: видимо надо пробовать  core, так как про неё никто ничего сказать толком не может >>= будет интересно
[22:55:18] <superbobry> ну попробовать то в любом случае надо :)
[22:57:31] <Kakadu> оказывается некоторые куски js_core есть в lwt
[22:57:39] <Kakadu> например автокомплит в терминале
[22:58:07] <Kakadu> ну в смысле похожее сделано, а не копипаст
[22:59:10] <ermine> Kakadu: я видела фио автора lwt в батарейках!
[22:59:31] <ermine> кто куда тырит свой код...
[23:04:01] <Kakadu> я необразованный или как?
[23:04:17] <Kakadu> val Lwt_chan.input_value : in_channel -> 'a Lwt.t
[23:04:33] <Kakadu> как без лазанье в исходники понять что оно делает?
[23:04:39] <Kakadu> лазанья*
[23:06:06] <ermine> берет value и возвращает по-монадски
[23:06:29] <Kakadu> ну что по-монадски это понятно по типу
[23:06:40] <Typhon> короче, тип 'a Lwt.t -- это значение в монаде лвт
[23:06:53] <ermine> а вообще lwt_chan вообще депрекатед
[23:06:57] <Kakadu> Typhon: кэп!
[23:07:03] <komar> Это input_value из стдлибы, только через lwt.
[23:07:12] <Typhon> угу
[23:07:27] <Kakadu> ermine: а как надо?
[23:07:42] <Kakadu> komar: ну тогда наверное понятно как оно работает
[23:07:47] <Kakadu> но я не отгадал
[23:07:48] <ermine> Kakadu: lwt_io
[23:07:53] <Typhon> Kakadu, Lwt_io
[23:08:04] <Typhon> http://code.google.com/p/ocaml-ketama/source/checkout <-- автора вот этого в чятике часом нету?
[23:08:19] <Kakadu> когда залез в исходники и увидел Marshal.from_string  - удивился)
[23:09:20] <Kakadu> Typhon: надо пригласить если что
[23:09:20] ftrvxmtrx вошёл(а) в комнату
[23:14:10] <ermine> вот если бы сюда пригласить автора lwt - будет совсем охрененно круто
[23:15:04] <Typhon> он же, того, француз
[23:15:17] <Kakadu> но тогда нам придется писать по-буржуйски чтобы он тут оставался
[23:15:56] <superbobry> а в камле "и" -- && не ленивое?
[23:16:18] <Kakadu> merci beaucoup, Madame и всё такое
[23:16:59] <ermine> do you sprehen france?
[23:18:41] <Kakadu> Je ne parle pas français
[23:19:10] <ermine> je ne mange pas six dsys
[23:19:19] <ermine> *days
[23:19:49] ermine пробовала учить французский, когда у дочери в школе он начался, но быстро забила
[23:20:47] <Kakadu> а у нас была молоденькая студентка на практике
[23:21:05] <Kakadu> потом она ушла и пришла другая молоденькая студентка
[23:21:09] <Kakadu> но было уже не то
[23:21:20] <Kakadu> первую звали Оксана Владимировна
[23:21:32] <Kakadu> с тех пор я знаю пару слов и чутка грамматики
[23:23:28] ftrvxmtrx вышел(а) из комнаты
[23:23:48] <Kakadu> можно кратко что это такое:
type 'a mode = private
|    Input
|    Output
[23:24:38] <Typhon> private?
[23:24:43] <Kakadu> меня смущает альфа
[23:24:53] <Kakadu> private - можно догадаться
[23:24:56] <Typhon> фантомные типы
[23:25:14] <Kakadu> ладно, где-то слышал
[23:25:24] <Typhon> потом fnc : blabla Input -> unit ;; gnc : foo Input -> unit
[23:25:46] <Kakadu> Typhon: понял
[23:25:51] <Kakadu> Typhon: спасибо
[23:26:22] <Typhon> Kakadu, у js в бложеке подробнее можно ( на примере открытых / закрытых сокетов,  например )
[23:26:47] <Kakadu> Typhon: я вспомнил ту статью, да
[23:41:40] ygrek вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!