Home
Objective Caml
ocaml@conference.jabber.ru
Вторник, 22 ноября 2011< ^ >
ygrek установил(а) тему: OCaml / ОКамл / Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ | Fight FUD with fire
Конфигурация комнаты
Участники комнаты

GMT+4
[00:00:46] arhibot вошёл(а) в комнату
[00:00:50] arhibot вышел(а) из комнаты
[00:01:52] <bobry> и еще -- можешь объяснить как туда можно добавить custom types? у тебя в todo написано шо через функтор, но я что-то не соображу как
[00:59:14] Typhon вышел(а) из комнаты: Replaced by new connection
[00:59:17] Typhon вошёл(а) в комнату
[01:09:29] ermine вышел(а) из комнаты
[01:16:09] <Typhon> не отправилось! ну сделать функтор, который бы принмал модуль с определённой сигнатурой, для возможности замены хотя бы контенейрных типов. правда хз, нужно ли это :-) и если нужно, то в таком виде, или в каком-то другом.
[01:19:31] Kakadu вышел(а) из комнаты
[01:48:12] ftrvxmtrx вышел(а) из комнаты
[01:49:23] ftrvxmtrx вошёл(а) в комнату
[02:06:08] Typhon вышел(а) из комнаты: Replaced by new connection
[02:06:10] Typhon вошёл(а) в комнату
[02:12:22] ftrvxmtrx вышел(а) из комнаты
[02:13:13] ftrvxmtrx вошёл(а) в комнату
[02:16:25] ftrvxmtrx вышел(а) из комнаты
[03:34:30] Typhon вышел(а) из комнаты
[03:44:32] ygrek вышел(а) из комнаты
[04:31:30] komar вышел(а) из комнаты: Replaced by new connection
[04:31:30] komar вошёл(а) в комнату
[09:25:34] klapaucius вышел(а) из комнаты
[10:04:45] bobry вошёл(а) в комнату
[10:15:25] shaggie вышел(а) из комнаты
[10:31:11] <bobry> товарищи, а какая максимальная длина у камло строк?
[10:31:18] <bobry> я где то видел цифру — но забыл, а щас нагуглить не могу
[11:16:36] shaggie вошёл(а) в комнату
[11:17:36] <bobry> в общем если Typhon появится — то похоже что фейлы в тестах были из за того, что сериализованный документ не убирался в строку
[11:49:14] <bobry> кстати еще про NIH менеджер — было бы круто регистрировать пакет в базе (пусть даже в OASIS-DB) одной командой. в питоне так сделано, и в х-ле тоже надо думать
[11:58:17] ermine вошёл(а) в комнату
[12:18:56] <gds> bobry: максимальная длина строки системнозависима и равна Sys.max_string_length
[12:19:28] <bobry> что нибудь типа max_int - <internal tags length>
[12:19:56] <gds> в битах -- да.
[12:28:39] <f[x]> на int32 - 16М
[12:28:49] <f[x]> на x64 - пофиг :)
[12:30:39] <f[x]> bobry: кстати насчёт nih-менеджера - как понимать в rebar.config запись
{nitrogen_core, "2.1.*", {git, "git://github.com/nitrogen/nitrogen_core.git", "HEAD"}},
т.е. указана и версия, и HEAD git'а - кто сказал что они связаны, как это проверяется?
[12:32:31] <bobry> f[x]: версия берется из конфига эрланговского приложения
[12:32:37] <bobry> она не зависит от тега в гите
[12:33:22] <bobry> забавно что max_string_length не зависит от объема оперативки
[12:35:56] <f[x]> bobry: не понял
[12:36:27] <f[x]> вот я взял эту строчку из rebar.config - какую роль тут играет номер версия, если всегда берётся самый свежак из git'а?
[12:40:00] <bobry> ага, берется свежак, и проверяется что вот в этом файлике https://github.com/nitrogen/nitrogen_core/blob/master/src/nitrogen_core.app.src нужная нам версия
[12:40:05] <bobry> но это в общем то erlang-specific
[12:40:14] <bobry> в случае камла не очень понятно как определять версию
[12:40:20] <bobry> до установки
[12:40:28] <bobry> только если завязываться на oasis
[12:40:28] <f[x]> а, понял
[12:40:37] <f[x]> ocamlfind же
[12:40:40] <bobry> что наверное не так уж плохо
[12:40:51] <bobry> ну тык ocamlfind тебе не скажет что за версия в еще не установленной либе
[12:40:59] <bobry> или можно META прочитать?
[12:41:00] <f[x]> ну тык мы её поставим и узнаем
[12:41:10] <bobry> а если она нам не нужна?
[12:41:15] <bobry> например мы хотим >= 0.5
[12:41:17] <bobry> а там 0.4
[12:41:21] <bobry> тоже ставить будем
[12:41:31] <f[x]> поставим, посмотрим, и снесём
[12:42:05] <bobry> это как то досадно, ведь "поставим" может занимать существенное время
[12:42:12] <bobry> в случае какой нить core, или lwt
[12:42:45] <f[x]> ну а что делать
[12:43:01] <f[x]> для oasis'а можно зашорткатить
[12:45:26] <gds> а старая версия может потянуть другие билд-зависимости, в том числе, конфликтующие с текущими-стоящими-правильными.
[12:45:30] <gds> проще оазис только поддерживать.
[12:46:19] <f[x]> смысл nih-менеджера в том чтобы быстро развернуть environment для какого-то проекта
[12:46:25] <f[x]> т.е. предположительно в чистую систему
[12:46:36] <f[x]> либо в кастомный destdir - что эквивалентно
[12:47:27] <f[x]> т.е. считай бандл который вытягивается из нета, можно будет и сразу готовый тарболл со всеми зависимостями
[12:49:01] <gds> тогда зачем в случае указания репки смотреть на версию?  просто брать самую последнюю ревизию и билдить её.
[12:50:48] <f[x]> проект может быть рассчитан на конкретную версию
[12:51:28] <f[x]> это вообще вырожденный случай, в большинстве случаев там будет либо vcs тэг, либо тарбол
[12:51:51] <f[x]> либо номер версии по которому из центрального индекса выдастся способ как добыть эту версию
[12:52:01] <bobry> f[x]: кстате как ты смотришь на project-local зависимости? как в ребаре
[12:52:11] <bobry> шобы оно тянуло их в <project>/deps
[12:52:54] <f[x]> очень позитивно, это то что нужно большинству не-камло-заражённых пользователей - т.е. кастомный destdir
[12:53:53] <bobry> не просто кастомный destdir, а свой для каждого проекта
[12:54:21] <f[x]> да
[12:55:07] <f[x]> т.е. это опция - юзер решает ставить депендсы дефолтным ocamlfind'ом либо project-local - aka бандл
[12:57:42] <bobry> я бы скорее сделал это дефолтом :)
[12:57:43] <bobry> ибо нефиг
[12:58:15] <f[x]> там видно будет
[12:58:39] <gds> а я бы, наверное, сначала смотрел, что дают через ocamlfind, а что надо ставить локально.
[12:59:31] <bobry> с другой стороны — тягать каждый раз какую нить кору или батарейки это сомнительное удовольствие
[13:00:05] <f[x]> ну кэш же
[13:00:36] <f[x]> gds: если юзер захотел project-local - значит системное не трогаем
[13:01:26] <f[x]> если же системная установка - то если зависимость указывается только номеров версии и такая версия стоит в системе - то юзаем её
[13:01:31] <f[x]> как-то так
[13:01:53] <gds> вообще да, есть смысл в варианте "только локальные зависимости", например, когда заведомо разные версии компилятора стоят.
[13:01:58] <gds> локально и системно
[13:02:01] <f[x]> т.е. project-local - это максимально изолированный вариант который максимизирует вероятность успешной сборки
[13:02:22] <f[x]> дело даже не в версиях компилера
[13:02:49] <bobry> если смотреть на системные либы то надо кучу вариантов рассматривать
[13:03:06] <f[x]> и project-local в основном нужен юзерам не камлокодерам, которым нужно просто собрать проект, так чтобы он собрался, а не развлекаться с камловыми системами сборки
[13:03:50] <f[x]> bobry: какие?
[13:04:09] <bobry> например что если установленная глобально либа А зависит от версии 1.1 либы Б, которая  также имеется в зависимостях нашего проекта, но нам нужна Б >= 1.2
[13:05:01] <f[x]> а что тут тогда смотреть - ругаеся юзеру
[13:05:20] <f[x]> пуская сам думает что делать
[13:05:25] <bobry> просто всего этого можно избежать
[13:05:29] <f[x]> это же его система
[13:05:30] <bobry> если сказать что у нас тока бандлы
[13:05:45] <f[x]> пока что у нас ничего нет :)
[13:05:49] <bobry> другое дело если бандлы можно клонировать
[13:05:58] <bobry> шобы не компилить 100500 раз одно и то же
[13:06:14] <f[x]> вот это уже извращение
[13:06:46] <f[x]> лучше так - варианты destdir - project local, custom, system
[13:07:07] <f[x]> и при сборке каким-то образом выбирается
[13:07:33] <f[x]> если есть куча синхронных проектов с пересекающимся зависимостями - ставишь их всех с одним custom destdir'ом
[13:10:57] <f[x]> bobry: ^^ ?
[13:12:48] <bobry> ну не знаю, предлагаю начать с local — ибо на мой взгляд это самый актуальный вариант
[13:13:13] <bobry> есть еще вариант по типу rvm / python-virtualenv
[13:13:19] <f[x]> угу
[13:13:24] <bobry> мы делаем пачку виртуальных окружений и переключаемся между ними
[13:13:30] <bobry> вполне себе компромис
[13:16:21] <f[x]> не, это немного другая задача имхо
[13:16:29] Kakadu вошёл(а) в комнату
[13:17:59] <Kakadu> кажись f[x] начал обсуждать свой будущий пакетный мэнэджер
[13:18:10] <bobry> почему? результат то тот же — мы имеем изолированное билд окружение для проекта(ов)
[13:18:15] <bobry> Kakadu: вливайся!
[13:18:33] <gds> Kakadu: slowpoke is sooo slow
[13:23:23] <f[x]> bobry: это решается указанием PATH до нужного компилера и ocamlfind'а
[13:23:32] <f[x]> т.е. переключение системы
[13:24:36] <bobry> это да, просто это проще чем разные варианты установки (предложенные выше)
[13:24:50] <bobry> наш NIH менеждер будет ставить - обновлять пакеты в эти venvы
[13:25:54] <f[x]> короче это ещё один уровень за destdir=system
[13:26:11] <f[x]> в project-local варианте вся эта штука годится для юзерей
[13:26:12] <Kakadu> я тут на выходных повелосипедил пакетный манагер
[13:26:19] <f[x]> которые в камле ни в зуб ногой
[13:26:28] <f[x]> а venv'ы - это нужно для разработчика
[13:26:40] <bobry> ну тык project-local, частный случай venv :)
[13:26:46] <bobry> Kakadu: покажи?
[13:26:54] <Kakadu> в моих мозгах он должен при инсталляции чего-то ходить налево на сервер и от туда получать что надо скачать и в каком порядке запустить
[13:27:07] <f[x]> bobry: ну если так смотреть, то да
[13:27:26] <f[x]> и обсуждение сводится к терминологии :)
[13:27:34] <bobry> :))
[13:27:37] <bobry> похоже на то
[13:29:23] <gds> кстати, мне бы был интересен микс системного (ну, оверблд или пакеты ос, пофиг) и локального.  и я бы даже начал его тестировать.  а то моя старая хрень "ребилдол", тупо пересобирающая-переустанавливающая всё ~ 6 местечковых библиотек в заданном порядке -- это как-то не модно (хотя и работает).
[13:30:43] <bobry> gds: а про venvы что скажешь?
[13:30:44] <f[x]> gds: ты что всеръёз считаешь что это кто-то напишет?
[13:30:57] <f[x]> * всерьёз
[13:31:06] <bobry> nicee :)
[13:32:13] <gds> f[x]: нет конечно.  побалаболим -- и по своим делам, чо :]
[13:33:02] <gds> bobry: venv -- не знаю вот.  если что, прикрутить можно будет потом.
[13:35:01] <gds> кстати, у всех нормально работают гуглодоки?  там совместный и реалтаймовый редактор текста, можно было бы накидать план по этому делу.  нерешённые вопросы плана = текущее todo.  решённые вопросы плана = описание проделанной работы и документация.
[13:35:46] <f[x]> git лучше же
[13:39:21] <gds> там не реалтайм.
[13:41:49] Typhon вошёл(а) в комнату
[13:42:18] <f[x]> и кстати я буду эту штуку тестировать на своих build slave'ах
[13:42:40] <f[x]> а то лень настраивать руками
[13:42:54] <bobry> ну тык это — шобы не было как с викой, надо начинать :D
[13:43:06] <Kakadu> может комаппинг вместо гуглодоков
[13:51:54] <gds> для текущей задачи текстовых планов вроде хватит.
[13:53:25] <f[x]> предлагаю сформировать комитет и рабочую группу
[13:54:03] <Kakadu> думаю вначале план надо
[13:54:37] <bobry> в начале давайте оформим это все в вике
[13:54:41] <bobry> а потом уже можно на таски поделить
[13:56:51] <Kakadu> вначале --- описание того что хотим
[13:58:17] <gds> в вике начальное редактировать неудобно.
[13:58:45] <gds> ща сделаю гуглодок, набросаю тестовые пару пунктов, поглядите, как клёво.  ничего удобнее не видел.  труЪ моноширинный шрифт, отбивка пробелами.
[14:01:31] <Kakadu> херня гуглодок
[14:01:46] bobry вышел(а) из комнаты
[14:01:57] <Kakadu> но для начала пофиг
[14:02:51] bobry вошёл(а) в комнату
[14:04:29] <gds> почему херня?
[14:04:33] <gds> https://docs.google.com/document/d/1dxbuu3RP3NCxMI54YFRtnwFUOTrIj-EWmBdwy32a0CI/edit
[14:05:31] <gds> и вот, каждый пункт, кроме корневого, был получен тупым разворачиванием мысли по поводу его родительского пункта.
[14:16:58] <gds> а теперь смотрите, когда пункты решены --
     | Подумать про venv (для разработчиков скорее)
       | это и есть “custom” - фактически да
я их сейчас схлопну.
[14:18:44] Kakadu вышел(а) из комнаты
[14:18:45] Kakadu вошёл(а) в комнату
[14:21:22] <gds> вообще, два ортоговнальных вопроса есть: откуда брать старое (и брать ли вообще) и куда устанавливать новое.  так?
[14:23:20] <gds> а, и третий вопрос: "откуда брать новое".
[14:23:28] <f[x]> как-то так
[14:23:51] <gds> то есть, комбинация этих трёх вариантов нужна.  ща попытаюсь оформить в плане.
[14:27:43] Kakadu вышел(а) из комнаты: Replaced by new connection
[14:27:43] Kakadu вошёл(а) в комнату
[14:29:54] <Kakadu> bobry: https://github.com/Kakadu/barbra ты просил выложить
[14:33:20] <gds> кстати, View -> Document view -> Compact для сжатия разделителей страниц.
[14:34:53] <Typhon> Kakadu: https://github.com/Kakadu/barbra/blob/master/src/download.out
[14:37:05] <bobry> Kakadu: я что-то не понял какая у тебя там ситуация с depends
[14:37:25] <Kakadu> я умею парсить файл _oasis и всё
[14:43:20] <bobry> интересно как можно достать зависимости зависимостей
[14:43:50] <Kakadu> если зависимости на оазисе, то рекурсивно
[14:43:58] <gds> если централизовано -- то примитивно, если децентрализовано -- скачать и поставить зависимости и посмотреть.
[14:45:03] <gds> ну че, народ, просекли мощь реалтаймового текстового редактора для планирования? :)
[14:45:16] <bobry> я скорее за децентрализацию — поэтому рекурсивно вытягивать из _oasis
[14:45:21] <bobry> потом это все добро в ocamlgraph
[14:45:25] <bobry> и topological ordering
[14:45:26] <bobry> :D
[14:45:33] <Kakadu> bobry: +1
[14:45:58] <Kakadu> gds: угулодоки -- УГ
[14:45:59] <bobry> gds: для такого формата лучше mindmaps какие нить
[14:46:16] <Kakadu> bobry: comapping
[14:46:48] <bobry> кстати барбара клевое название
[14:46:51] <bobry> и команда коротка
[14:46:53] <bobry> brb
[14:47:08] <gds> я тоже за децентрализованное дело в плане зависимостей.  но ещё идея насчёт того, что веб-сервис вполне может хранить описания пакетов у себя и отдавать его по нужному урлу, типа http://host/packages/<pkgname>
[14:47:44] <gds> Kakadu: текстовый формат представления -- сила.  в комаппинге этого нет.
[14:47:58] <bobry> gds: ну для этого по идее есть (убогий) forge
[14:49:13] <Kakadu> в комаппинге наша деревяшка выглядела бы вот так: http://go.comapping.com/comapping.html#mapid=109591&publishKey=345qM4xXXg
[14:49:29] <Kakadu> gds: про текстовый формат я буду пока игнорить)
[14:49:58] <Typhon> Kakadu: там же флэш!
[14:50:13] <Kakadu> Typhon: а у тебя Lynx?
[14:50:17] <gds> ну а больше разницы нет, что копромаппинг, что простой гуглодок.
[15:01:04] <Kakadu> gds: ты не исправи)
[15:01:06] <Kakadu> м*
[15:11:35] <ermine> кутя! кутя!
[15:16:07] <gds> в общем, на вопросы из спеки никто не отвечает.  как появятся вопросы в том числе ко мне, или как допишете что-то, сообщите.
[15:19:42] <ermine> а что за спека?
[15:20:03] <gds> ermine: https://docs.google.com/document/d/1dxbuu3RP3NCxMI54YFRtnwFUOTrIj-EWmBdwy32a0CI/edit
[15:21:20] <ermine> это спека?
[15:21:52] <ermine> вот спека по xsd - это действительно спека, причем спросить толкование некоторых вещей спросить точно не у кого
[15:23:06] <ermine> аа, в elinks там опять всё пусто
[15:23:14] <ermine> ну значит пусть будет пусто
[15:24:09] <gds> ermine: кобол уже выучила?
[15:24:44] <ermine> gds: не, сказали что есть место для питониста
[15:25:18] <gds> петоньé
[15:26:33] <Kakadu> лично я пока предлагаю забить на установку  из системных репозиториев. Всё пускай качается.
[15:28:31] <gds> разумно.
[15:28:58] <gds> то есть, "четыре ключа" предусмотреть, но один из них будет всегда Only_local_packages
[15:29:02] <bobry> Kakadu: в смысле все? включая dev headers?
[15:29:48] <Kakadu> bobry: заголвки сишных файлов? да, на них тоже
[15:30:10] <gds> я пока займусь другими делами.  как будет видимый прогресс, пните меня.
[15:31:17] <bobry> Kakadu: why?
[15:32:05] <Kakadu> bobry: так будет сущетсвенно проще на первых порах, те паче не ясно что с этим делать на венде. И на той или иной версии линукса
[15:33:20] <bobry> по моему ни разу не проще
[15:33:23] <bobry> лишний код и лишняя морока
[15:36:28] <Kakadu> я предлагаю чтобы человек их руками ставил
[15:36:33] <Kakadu> пока
[15:39:17] <bobry> ааа, ну это да
[15:39:20] <bobry> я неправильно тебя понял
[15:43:44] <gds> я думал про сишные либы в контексте оверблд, и не придумал ничего лучше, чем autoconf-подход.  понятно или развернуть?
[15:48:29] <Kakadu> gds: даже есть с автоконфом, пока забьем на него\
[15:49:44] <gds> Kakadu: а вот теперь ты разверни мысль, нихрена не понял.
[15:52:34] <f[x]> покомментил
[15:53:02] <Kakadu> gds: будем считать пока что все сишные либы установлены
[15:53:31] <gds> Kakadu: если так -- то ок.
[15:54:36] <Kakadu> черт возьми, я смотрю на доку и не понимаю что f[x] покомментил
[15:56:59] <Kakadu> bobry: давай перепишем доку в комаппинг
[15:58:45] <gds> Kakadu: я тебе рассказывал про печальную историю, как один человек выбирал trac vs redmine?  несмотря на мои пожелания "делать дела, а не фапать на идеальность", он месяц выбирал.  По итогу, через неделю пользования траком оказалось, что "мы кое о чём забыли", и теперь вот смотрим редмайн.
[15:59:04] <Kakadu> да, рассказывал
[15:59:21] <f[x]> я настаиваю на комитете
[16:00:40] <gds> а мне кажется, что для такой задачи обязательно нужен консорциум.
[16:01:33] <Kakadu> поплакаться в ирке?
[16:02:06] <Kakadu> или отечественный велосипед будет?
[16:02:51] <gds> если написать достаточно подробную спеку, то можно и отечественными лучшими умами решить эту задачу.  но твоё дело.
[16:02:52] <ermine> давай делай велосипипед
[16:03:08] ermine поддержит все отечественные велосипеды
[16:05:26] Kakadu вышел(а) из комнаты
[16:08:37] Kakadu вошёл(а) в комнату
[16:16:13] <gds> я кончил, ваша очередь.
[16:23:49] <bobry> Kakadu: я бы рад, но надо скоро уже на учебу выдвигаться
[16:33:14] <Kakadu> [16:32] <@gildor> Kakadu: that is exactly what oasis-db does, what the reason to create something new rather than contributing to oasis ?
[16:35:31] <Kakadu> gds: f[x]: ^^
[16:36:49] <gds> Kakadu: без твоих реплик непонятно, что именно "exactly oasis-db does".
[16:37:13] <Kakadu> [16:28] <Kakadu> russian community is thinking about creatin package manager for OCaml. (autoinstallation dependences, webservice with info about dependecies, integration with system packages abd libs)
[16:40:53] <Kakadu> сейчас бобрый разберется с ними и всё расскажет
[16:43:50] <gds> тут не Бобрый нужен, а Росатый.
[16:43:54] <bobry> лол
[16:45:06] <Kakadu> слишком тонко
[16:52:14] <gds> про oasis-db -- хрен знает.  учитывая, что нас тут порядка 3..4 человек, и, при нормальном конкретном плане дело делается весьма недолго, даже не знаю.
[16:52:58] <gds> 3..4 -- по manpower, имею ввиду.  реально больше, но не у всех есть время-желание, ну и всё такое.  а легалл -- один.
[16:53:10] <bobry> gds: ты про предложение привязать это все к oasis-db?
[16:55:16] <f[x]> оазис-дб - фундаментально требует заливки тарболла на центральный сервер - не тру
[16:55:22] <f[x]> что с приватными проектами?
[16:55:36] <f[x]> сетапать свой внутренний оазис-дб?
[16:55:48] <f[x]> из пушки по воробьям
[16:56:12] <f[x]> и оно уже два года в бете и нифига не готово к использованию
[16:56:27] <f[x]> nih будет готов через два дня и будет сразу работать (тм)
[16:56:34] <f[x]> это же очевидно
[16:57:14] <bobry> ну и вторая претензия к oasis-db уже была озвучена
[16:57:20] <bobry> концепции репозиториев не работают
[16:59:06] <gds> f[x]: давай резолвь нафиг в спеке всё!
[16:59:27] <f[x]> EBUSY
[16:59:30] <gds> bobry: да, я про "фиксить oasis-db"
[16:59:56] <gds> (ну, хоть не ENOT)
[17:01:01] <bobry> oasis-db is dead moveon
[17:05:45] savikov вошёл(а) в комнату
[17:06:03] <gds> savikov: ты член?
[17:06:53] savikov в поисках ответа
[17:07:07] <gds> капчу вводишь?
[17:07:12] <savikov> 1
[17:08:08] <savikov> Некоторые бинарные функции могут быть использованы в инфиксной форме. Блаблабла.
(+) 3 5;;
почему выдаёт синтаксическую ошибку?
[17:08:56] <gds> # (+) 3 5;;
- : int = 8
[17:09:15] <savikov> 0_о
[17:09:51] <savikov> честно говоря я удивлён был об ошибки, т.к. до этого изучал haskell ... вижу много схожеств даже в этом.
[17:10:08] <savikov> Toplevel input:
>(+) 3 5;;
> ^
Syntax error.
#
[17:11:04] <savikov> # (+) 3 5;;
- : int = 8
[17:11:19] <savikov> хм, тогда странно.
[17:11:30] <savikov> использую Caml Light
[17:12:06] <gds> нужно использовать ocaml 3.12 или выше, многое пропустишь.
[17:12:33] <savikov> на вдс установлен 3.12, вот с него выше проверил всё норм.
[17:24:29] <savikov> gds: спю за член =_="
[17:24:32] <savikov> *спб
[17:25:35] <savikov> А правлиьно я понял? Если при объявление имя функции заключить в скобки (), то в дальнейшем её можно использовать как бинарную?
[17:29:09] <gds> savikov: это не я тебя членом сделал, видимо кто-то другой, так что -- не за что.
[17:29:34] <bobry> что-то я не могу сообразить как мне type-conv завести
[17:29:50] <bobry> говорит шо мой generator не найден, хотя в соотв. модуле все есть ..
[17:29:58] <bobry> gds: ты же его не пользовал, да?
[17:30:02] <gds> savikov: нет, функции, которые могут быть бинарными, имеют синтаксическое отличие -- например, + - * / ну и всякие land/lor/mod.
с другой стороны, имея пару операторов, можно сделать arg1 /* binop */ arg2
[17:30:15] <gds> bobry: только как пользователь, не подскажу.
[17:30:25] <bobry> вай вай, буду видимо дома ковырять вечером
[17:30:47] bobry вышел(а) из комнаты
[17:36:17] <savikov> # let ($$) x y = x+2*y;;
val ( $$ ) : int -> int -> int = <fun>
# 2 $$ 3;;
- : int = 8
[17:36:47] <savikov> могут быть, но только символы исключая буквы и цифры (т.е. нашёл ответ)
[17:37:12] <savikov> кто нить использовал netbsd?
[17:37:54] <ermine> а она жива еще?
[17:38:19] <savikov> угу
[17:38:46] <savikov> а что ей должно быть? 0о
[17:39:42] ad1862 вошёл(а) в комнату
[17:42:56] <ermine> как что-то может быть живо, если не используют?
[17:42:58] <ad1862> Array Optimizations in OCaml http://zalil.ru/32111093
[17:45:04] <ermine> опять там что ли контент упрятали в js
[17:46:07] <ermine> а, пдф неявный
[17:46:10] <f[x]> ad1862: где ты это находишь?
[17:46:40] <ad1862> f[x]:  :)
[17:46:41] <ermine> ну, точно, вирус
[17:46:55] <ad1862> ничего не вирус
[17:47:11] <savikov> вирусссс!!!
[17:47:54] <savikov> уменяпробелпересталработать
[17:48:01] <savikov> всёвирусссвиноват!!!
[17:48:25] <ermine> я вот в elinks не вижу как скачать, значит вирус, если сам должен качаться
[17:49:30] <ad1862> что там с сайтом, на чем остановились ?
[17:50:55] <savikov> вируссс!!!некачать
[17:51:17] savikov афк
[17:51:41] <ad1862> для беглого сравнения фунциональных языков http://hyperpolyglot.org/ml
[17:52:20] <ermine> вот лучше бы "для беглого сравнения коммерческой пригодности ... "
[17:52:36] <ad1862> java, .net
[17:53:07] <ermine> не
[17:53:11] <ermine> пхп и питон
[17:53:39] <ermine> а камло похоже только для лоботрясов
[17:54:40] <ad1862> судя по мне да ))
[17:58:37] <ermine> да в этой конфе все лоботрясы
[17:59:32] <Kakadu> а лоюботряс это плохо?
[17:59:32] <ad1862> сделыть бы аналог OTP для него
[18:01:15] <ermine> батарейки или core уже есть
[18:02:10] <Kakadu> что такое ОТР?
[18:02:46] <ad1862> ну это не только батарейки, там лехкий message-passing, + распределенная  встроенная БД, + куча разной хрени
[18:03:19] <ad1862> Open Telecomminicattional Platform for Erlang
[18:03:32] <ermine> Kakadu: опен транспорт протокол вроде, из ырланка
[18:04:37] <ermine> ну тогда это парвел
[18:04:57] <ermine> детище главного лоботряса этого чатика
[18:05:04] <ad1862> parvel + plasmaFS + ocamlnet
[18:05:43] <ermine> камлонет в топку
[18:06:17] <ermine> а на плазму тогда надо поглядеть что это такое
[18:06:45] <ad1862> лучше не надо
[18:06:51] <ad1862> стошнит
[18:07:56] <ad1862> http://blog.camlcity.org/blog/plasma4.html
[18:08:26] <Typhon> ad1862: почему стошнит? код дурной?
[18:09:22] <ad1862> апускать и собирать затра***ся
[18:09:30] <ad1862> * запускать
[18:09:40] <ad1862> сырой пока
[18:09:59] <ad1862> файлосистем, кей-вэлуе, мэп-редьюс
[18:11:40] <Typhon> я блогпосты его читал, ага
[18:13:08] <ermine> для мемкашки подойдет?
[18:14:30] <ad1862> не, пока оно на соплях работает, не подойдет
[18:15:54] <ermine> а еще было чье-то творение, как его, уже не помню....
[18:17:12] <ermine> ну ладно, раз не помню, значит не нужное
[18:17:29] <ad1862> а еще когда-то было что-то такое, ну этого как же его
[18:19:26] <ermine> у m2p (если только не наврала ник) можно посмотреть
[18:23:29] <ad1862> ocamlopt до сих пор не оптимизирует (не инлайнит и тд) ?
[18:24:54] <f[x]> вы перестали пить конъяк по утрам?
[18:26:01] <ermine> f[x]: привет!
[18:26:21] <ad1862> :) я ж не окамлист, читаю вот за 2001 что не было
[18:29:11] <f[x]> ad1862: инлайнит
[18:29:52] <ad1862> ну и слава богу
[18:30:25] <ermine> не инлайнит в аргументах
[18:36:06] <gds> кстати, передача сообщений -- очень даже универсальный "нижний уровень", на котором и fs, и mapreduce всякий завестись обязаны.
[18:40:36] <ad1862> про -inline я знаю, но если верить ermine с 2001 http://caml.inria.fr/pub/old_caml_site/FAQ/FAQ_EXPERT-eng.html не изменилось
[18:40:59] <ad1862> gds: я про это же, платфрма получается
[18:41:40] ad1862 вышел(а) из комнаты
[18:42:10] <f[x]> а, это да
[18:57:13] <Kakadu> как я понял odb умеет многое, но не умееет ставить пакеты с гитхаба, ему нужен центральный репозиторий.
[19:00:27] savikov вышел(а) из комнаты
[19:00:33] shaggie вышел(а) из комнаты
[19:13:58] Kakadu вышел(а) из комнаты
[20:09:54] Kakadu вошёл(а) в комнату
[20:11:34] <gds> Kakadu: добавил "скелет" для систематизации, см. документ, там глава "терминология".  а то, действительно, непонятно.
[20:21:01] <Kakadu> а в аьтернативы не стит добавлять godi?
[20:21:17] <Kakadu> правда я его в глаза не видел
[20:24:21] <gds> сделаем godi, чо.  добавил.
[20:24:41] <Kakadu> )
[20:25:55] <gds> потому что план действий должен содержать только точную и актуальную информацию!
[20:28:56] Typhon вышел(а) из комнаты
[20:45:15] ad1862 вошёл(а) в комнату
[20:46:46] <gds> ad1862: вник в концептуальные ограничения парвела?  есть желание помочь?  (сразу скажу, что ещё пару дней буду кодить то, что для парвела очень пригодится, но им не является.)
[20:50:27] <ad1862> для моих целей ограничений вроде нет, главное чтобы ерланг перекрывал, насчет помочь сомневаюсь я ж нуб, говнокод же тебе не нужен, тем более проект не два пальца ...
[20:56:26] <gds> ad1862: где-то перекроет, где-то недокроет -- например, про OTP у меня есть кое-какие задумки (заложенные в текущий парвел), есть кое-какие комбинаторы для "прибить и перезапустить" (если правильно помню), комбинаторы для "запустить не более N процессов", что-то типа эрланговских "мониторов" (но там не накодил особо).
Помощь нужна изначально не в коде, а в концепциях.  Я пробовал изложить их тут: https://bitbucket.org/gds/parvel/wiki/concepts_rus и https://bitbucket.org/gds/parvel/wiki/inter-process-protocol -- любые отзывы и комментарии приветствуются.
Да и насчёт говнокода -- это ты зря.  Мне по силам отслеживать коммиты и фиксить (либо выносить на обсуждение) то, что реально нужно пофиксить/обсудить по моему мнению.  А вот свежий взгляд на проблемы -- это то, что реально нужно.  Тем более, опыт в эрланге есть, а это очень хорошо.  Там многое весьма нравится.
[20:57:14] <gds> а кое-где недокроет, да, это не уточнил.
[20:58:57] <gds> и про код сейчас я даже не думаю -- многое поменялось, и парвеловский модуль Typeinfo будет заменён полностью на более интересную штуку.  То есть, минимум несколько дней ещё до кода.  А ещё быть прожект-менеджером нового пакетного менеджера для окамла -- тоже время! :]
[21:05:57] <ad1862> короче пока на уровне концепции надо разобраться, ну ок прочитаю ссылки , напишу что думаю
[21:09:25] <ad1862> я по-началу это читал http://gds.livejournal.com/50978.html оно тоже в силе ?
[21:10:03] <gds> про концепции -- согласен.  Учитывай, что в более-менее универсальном случае в языках со строгой типизацией другие варианты не ок, а если вдруг я ошибся из-за левых ограничений -- дай знать, обсудим.
[21:12:29] <gds> ad1862: в посте -- слишком ранние измышления, когда ещё не знал, что выбрать.  Потом для универсальности взял тупой message passing, который даже не описан в посте.  А вот гердушко взял умный mapreduce, но это его проблемы.
[21:15:16] <ad1862> он делает клон HDFS и других распред.фс, а там только так map\reduce
[21:16:34] <gds> учитывая, что у него map/reduce синхронные, он далеко не уедет.  с другой стороны, map/reduce выразимы через message passing, то есть, я в теории смогу доехать до него.  (но надо ли -- вопрос.)
[21:21:10] <ad1862> gds: так все БД на ерланге делают map\reduce, концепции не противоречат, скорее даже логичное следствие, там может быть и map\reduse так и nested parallelism
[21:22:22] <gds> БД -- да, там важно map/reduce обычно.  Но не везде.  Представим случай, когда хост сдох -- иногда лучше иметь частичные данные, чем никаких и/или висяк.
[21:26:17] <ad1862> если сдох, получать данные по ссылкам с тех которые не сдохли
[21:27:41] <gds> если они есть, конечно.
то же самое с репликацией файловых систем -- иногда можно позволить себе оставить какой-нибудь хост работающим, но не видящим других изменений, если вдруг с сетью бида, а не пытаться достучаться до остальных хостов, блокируя клиента или выдавая ошибку.
[21:29:16] <gds> а ещё есть хорошая штука, "eventually consistent transactions", http://research.microsoft.com/pubs/155638/msr-tr-2011-117.pdf , вот оттуда мне тоже интересно надёргать идей, правда это для чуть другой задачи, и тоже вполне таки надстройка над message passing.  Но, опять же, там нет нужды в синхронности.
[21:31:21] gds +1 в cwn
[21:33:42] <ad1862> кстати мой стартуп на выполнении задач в реалворлд основан, интересный док
[21:35:18] <gds> да, только сраная теория категорий подвела -- начал разбираться, почему там semilattice, а потом и другие дела появились.  но документ висит в фоне, буду читать его.  хочу ещё и вникнуть толково, так как моим задачам нужна будет небольшая модификация этого метода.
[21:38:22] <ad1862> как можно оценить перспетивна ли идея, или я зря мудохаюсь ...
[21:39:10] <gds> никак не оценить, если специальной чуйки на это дело нет.  Помудохайся, во главе угла поставь профит, по крайней мере опыт будет.
[21:42:01] <ad1862> ну только если так, хотя если взять тот же твитер, вики и куча других, деньги были не во главу угла
[21:42:31] <ad1862> * не во главе, ах русский...
[21:42:49] <gds> тут не текущий, а будущий планируемый профит важнее.
[21:43:59] <gds> ну и жалобливое хлебало как у джимми уэйлса тоже немаловажно.
[21:45:25] <ad1862> ну и ладно, что будет то будет, для жалости найдем актера
[21:46:24] <ad1862> у цукербюргера рожа светится как медный таз
[21:54:18] <ermine> чо вы завидуете миллирдеру, нищие лоботрясы?
[21:55:12] <Kakadu> социальные сети не нужны
[21:56:05] <gds> не будь у меня леди, использовал бы как раз социальные сети для поиска девочек "на пару дней".  удобно.  "сайты знакомств" уже давно не те.
[21:57:28] <ermine> gds: ты просто проспал фидонет
[21:58:03] <gds> да я с 1998г фидор!
[21:58:53] <ermine> gds: вот где была первая соцсеть, где надо было искать жену
[21:58:54] <gds> собственно, самое интересное было уже при мне.  как и превращение пидошки в "сеть, которую разрушили ахтунги".
[21:59:09] <ermine> конкурентов дофига, девушек мало, зато продвинутые
[21:59:30] <ermine> а щас в соцсетях уже не те девушки
[22:00:22] <gds> есть и хорошие, не надо тут!
[22:01:15] gds роботать, нефиг с вами тут лясы точить.
[22:02:06] <ermine> gds: щас как раз время уделять внимание леди, а не работать
[22:02:49] <gds> леди отъехала на недельку, у меня не будет другого шанса так плодотворно поработать.
[22:04:58] <ermine> да знаем мы, как вы плодотворно работаете, когда дома никого нет - берете ящик пива и целыми днями режетесь в какую-нибудь кваку
[22:06:24] <f[x]> о, квака!
[22:06:40] <gds> f[x], создавай! :]]
[22:07:01] <f[x]> у меня пинг длинный :(
[22:09:15] <gds> кстати, по твоей (вроде) наводке заценил опенарену, чотко, не хуже досовского "дюка".
[22:10:37] gds феерично показал себя как геймер и пошол кодить сирани кадастр
[22:10:58] <ad1862> первая игра дюк3Д
[22:11:15] <gds> по диалапу1
[22:11:26] <gds> стадион11
[22:11:39] <gds> мда, чат точно отвлекает.
[22:11:49] <ad1862> та не, просто сингл, не было модема
[22:13:06] <f[x]> дюк рулит
[22:13:20] <f[x]> опенарена это же третья квака
[22:13:25] <f[x]> gds: ты троллишь что-ли?
[22:13:44] <Kakadu> а моей первой игрушкой, отобравшей много времени, был старкрафт
[22:13:44] <komar> Куды я попал.
[22:13:53] <gds> f[x]: честно, бегал со знакомым часами по диалапу (по модему) с дюка, на стадионе было весьма весело.
[22:13:57] <Kakadu> вк2 я  не оценил
[22:14:30] <bobry> Kakadu: какие новости с писаниной про NIH pm?
[22:14:50] <gds> bobry: всё ждёт твоей (в том числе) реакции в гуглодоках.
[22:14:55] <Kakadu> bobry: посмотрел на odb и всё
[22:15:00] f[x] быстренько afk
[22:15:16] <bobry> ох ладно, щас в чувство приду и отреагирую
[22:15:22] <bobry> gildor ничего не писал?
[22:15:38] <Kakadu> вроде ничего сущетсвенного
[22:15:59] <gds> Kakadu: ничего существенного не добавили, но на обсуждении весьма существенное лежит.
[22:16:37] <gds> Kakadu: или, думаешь, можно забить на концептуальные вопросы, начать тупо кодить, а потом три раза переписывать?  нахрен такое щасте; да и у нелегалла спроси, как оно бывает.
[22:17:21] <Kakadu> собственно самый важный вопрос: мы дружим с oasis-db или модель репозитория не подходит, и надо наш как бы репозиторий но со ссылками?
[22:17:37] <bobry> уже в принципе понятно что не дружим
[22:19:03] <gds> подстраиваться под oasis-db, имея кучи хороших идей, не очень разумно на этапе проектирования.  На этапе наладки совместимости -- может и стоит, чего бы и не добавить новый "источник пакетов".
[22:20:57] <gds> кстати, никого не оскорбляет, что я взялся за план/проектирование этого проекта?  если чо, сообщите.
[22:24:15] bobry только рад
[22:32:39] ad1862 вышел(а) из комнаты
[22:39:36] schurshik вошёл(а) в комнату
[22:44:36] ad1862 вошёл(а) в комнату
[22:48:22] <ad1862> gds: к вопросу о сбое хоста при map\reduce, посмотри как сделано в БД riak, там нет главных, все могут делать всё, map\reduce будет работать всегда: http://habrahabr.ru/blogs/nosql/75202/
[22:49:33] <gds> ad1862: riak смотрел, в целом нравится, но нужно, чтобы все хосты, отвечающие за данный кусок данных, работали.
[22:50:11] <ad1862> чем выше приоритет записи тем больше репликаций
[22:50:28] <gds> да и вообще, я против map/reduce исключительно как основы, а как весьма хорошая абстракция поверх сообщений -- скорее нравится.  Но делать это базой -- нет.
[22:51:15] <ad1862> ну это само собой, только как алгоритм управления данными
[22:51:46] <gds> или не собственно данными, а вычислениями -- хост может быть полезен не только как хранилище, но и как цпу-мощь.
[22:53:13] <ad1862> тогда и Nested data parallelism к месту как в хаскеле
[22:55:36] <gds> смотря что имеешь ввиду под этим.  учитывай, что на сериализацию может уйти больше ресурсов, чем на одноядерную обработку.
[22:59:55] <ad1862> на программиста ложится выбор что пускать на сериализацию, что нет. Или составить таблицу доступных вычислителей системы и указать время выполнения контрольного кода, тогда по алгоритму автоматически разберется что пускать, что сразу считать
[23:24:40] ermine думает, как в камле реализуется поиск того, что появится к концу исполнения программы
[23:27:39] <ermine> о, какой интересный сегодня CWN
[23:27:59] <ermine> how to fail to install ocaml
[23:33:20] <gds> ad1862: камло убогое, оно не умеет сериализацию и выполнение камлокода в одном процессе одновременно.  Либо сериализуем, либо считаем сами.
Хотя есть и другие варианты -- на случай массивов с простыми типами (а то и bigarrays) всё весьма просто.
[23:33:36] <gds> ad1862: кстати, про work-stealing queues не чесал репку случаем?  это не ырланк, знаю.
[23:33:47] <gds> ermine: да, cwn что надо!
[23:34:37] <gds> ermine: вопрос непонятен.  Впрочем, я особо и не собирался отвлекаться в ближайший десяток минут.  У меня там -- классовая борьба!  inherit initializer inherit win!
[23:36:35] <ermine> gds: надо искать в списке, который на момент запроса еще не содержит нужного элемента
[23:38:54] <ermine> надо что ли поспать и помечтать об озарении
[23:39:22] <ermine> непонятно как это решают на цэ с такой концепцией в xsd
[23:49:27] <gds> ассемблеру не нужен xsd
[23:50:43] abiogenesis вошёл(а) в комнату
[23:56:23] ermine вышел(а) из комнаты
[23:56:43] abiogenesis вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!