Home
Objective Caml
ocaml@conference.jabber.ru
Пятница, 4 сентября 2009< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap
Конфигурация комнаты

GMT+4
[00:18:44] sevenov вышел(а) из комнаты
[05:55:20] john вошёл(а) в комнату
[08:46:27] john вышел(а) из комнаты
[08:47:38] john вошёл(а) в комнату
[10:09:58] Typhon вошёл(а) в комнату
[10:23:06] f[x] вошёл(а) в комнату
[10:24:45] <f[x]> gds: я enum иногда использую. вполне логичный интерфейс.
[11:30:34] Typhon вышел(а) из комнаты
[11:31:04] Typhon вошёл(а) в комнату
[11:53:16] john вышел(а) из комнаты
[12:34:38] 604 вошёл(а) в комнату
[12:36:41] <gds> ulex не предоставляет интерфейса для отслеживания номера строки, в отличие от ocamllex. в топку. буду с utf8-строками как с обычными работать. надо будет постараться не лазить внутрь строк -- только ввод-вывод-склеивание.
[12:37:53] <f[x]> [09:41:26] <ermine> i want the code generator which will generate the code using schemas
во, я тоже такое хочу, по типу sqlgg :)
[12:39:03] <f[x]> вообще посомтрев json-static - такой подход годится для многих сериализаций - у меня сейчас используются bencode и php.serialize. Интересно, получится ли общий camlp4 модуль сделать параметризованный функциями сериализации
[12:40:52] <gds> так есть же вроде -- type-conv
[12:42:35] Michael Holub вошёл(а) в комнату
[12:44:31] <604> во, зацените http://www.sqlite.org/testing.html
[12:49:20] <gds> нужно писать так, чтобы корректность была очевидна по построению кода, а не по тестам :)
[12:54:41] <604> а еще нужно писать без ошибок :)
[12:55:57] <f[x]> gds: из описания type-conv ничего не понятно -- надо будет пощупать
[12:55:59] <gds> не, ну это другое.
[12:56:08] <f[x]> а ещё не нужно оффтопить
[13:06:54] <604> никогда б не подумал, что хороший пример построение безглючного ПО является оффтопиком на канале, посвященному языку программирования
[13:07:45] <ermine> f[x]: парсить xml схемы тяжко, я скорее буду использовать похожий на схемы дескриптор
[13:09:47] <ermine> f[x]: а что у тебя с асихронным dns?
[13:23:10] <f[x]> ermine: совсем не тяжко. тяжче их интерпретировать. плюс схему можно взять relax ng -- почеловечней будет
[13:23:46] <f[x]> работает, иногда впрочем непонятные исключения кидает - надо код смотреть
[13:25:04] <f[x]> ermine: если ты начнёшь такой проект (про xml схема->код генератор) -- скажи
[13:27:14] Typhon вышел(а) из комнаты
[13:30:18] <ermine> f[x]: в документации по расширениям xmpp используются схемы, ну там несложные схемы, да, но не совсем понятно как приладить к ним камло
[13:31:16] <ermine> но надо попробовать, начать - это уже полдела как бы сделано
[13:32:23] <f[x]> ну как, по схеме генрится код который читает xml и даёт на выходе камлоструктуру или кидает исключение если xml не подходит по схеме - это если DOM
[13:32:36] <f[x]> если event'ы - то надо подумать
[13:33:32] <f[x]> вопрос в том насколько надо поддерживать всякие сложности - xsd позволяет достаточно сильные вещи описывать
[13:33:32] <ermine> f[x]: а вот еще хочется стабильный хттп-клиент
[13:33:58] <ermine> то ли опять использовать netclient, то ли родить еще одного верблюда
[13:34:02] <f[x]> а чем netclient не стабильный?
[13:34:05] Typhon вошёл(а) в комнату
[13:34:41] <ermine> был сервис rss.jabber.ru, много рссок скачивал, сдох из-за резолвера
[13:34:44] <f[x]> надо завести страничку и писать там "виши", если у кого зуд поколить начнётся - редиректить на ту страничку :)
[13:34:59] <ermine> когда нагрузка увеличилась до нескольких тысяч запросов в час
[13:35:13] <f[x]> хм, это разве нагрузка?
[13:35:48] <ermine> для резолвера который gethostbyname или каких еще функций Unix - то да
[13:35:56] <ermine> :)
[13:36:43] <f[x]> вариант 1 -- dns кэш на сервере
[13:36:57] <f[x]> вариант 2 -- dns кэш внутри сервиса
[13:37:03] <ermine> до netclient'a там использовался ocurl, залипал на ровном месте или падал в кору, впрочем я уже говорила про это
[13:37:12] <ermine> там еще не было таких тысяч в час
[13:37:39] <ermine> кэш бы сильно не помешал
[13:38:28] <ermine> поскольку rss сбоил на той же машине, где работала нода jabber.ru, а ей были пофиг сбои dns из-за своего кэша
[13:38:33] <gds> f[x]: более того, нужно не только такую страничку. вещи вида "best practices", интересные приёмы, синтаксические фокусы с переопределением инфиксных операторов, примеры кода, а из недавнего -- и myocamlbuild.ml там собрать.
[13:39:17] <ermine> gds: вики надо
[13:39:29] <f[x]> gds: russian camlunity?
[13:39:33] <ermine> я бы тоже туда чтонить нагадила
[13:40:06] <ermine> а вот у меня нету логина в lj :)
[13:40:22] <f[x]> ermine у меня тоже нету и не будет
[13:40:57] <ermine> у меня только блог на ya.ru - jabber-ru.ya.ru
[13:41:27] <f[x]> ermine: вообщем тема насчёт http+dns интересная - и вариант допилить ocurl тоже. думаю тому rss сервису не помешала бы засветка исходников, глядишь патчик нарисуется :)
[13:45:26] <gds> вики -- вариант отличный.
да, camlunity -- метко :)
жыжышный логин у меня есть, но только из-за лени. а приличным людям не советую. и жэжэкоммунити -- гораздо менее удобно (и вообще "не о том"), по сравнению с викой.
[13:45:58] <ermine> f[x]: кроме всего этого, нужен ишшо вменяемый парсер html
[13:46:00] <gds> но в коммунити важно, чтобы никто не начал форсить свою коммерцию, иначе лажа.
[13:46:05] Typhon вышел(а) из комнаты
[13:46:17] <ermine> f[x]: в камле нету вменяемых библиотек вообще
[13:47:36] <f[x]> ermine: может ты не умеешь их готовить? ;)
[13:48:03] <ermine> f[x]: форкать не умею, да
[13:49:58] <ermine> интересно, что проще - настроить cgit и поиграться с git submodules или пойти на github и поиграться там?
[13:50:07] Typhon вошёл(а) в комнату
[13:54:58] Genix вошёл(а) в комнату
[13:56:43] Genix вышел(а) из комнаты: offline
[14:15:46] Michael Holub вышел(а) из комнаты
[15:28:58] Typhon вышел(а) из комнаты
[15:30:33] Typhon вошёл(а) в комнату
[15:59:31] <gds> ну вот, плавно накрывается мохнаткой мой хостинг overbld. Буду думать, как бы обернуть это дело на пользу, может ещё с camlunity что-то выйдет, если культурно всё проверну. Идей куча.
А насчёт camlunity -- надо бы структурировать, чего именно не хватает и чем этого достичь.
[16:01:43] <ermine> тут всё просто, если кто-то будет заниматься сайтом
[16:01:54] <gds> сайтом должны заниматься посетители.
[16:02:18] <ermine> не, это они контент будут делать
[16:02:28] <ermine> а вот движки всякие, конфиги
[16:02:35] <ermine> это к ним мало относится
[16:02:52] <gds> а, ты про это. согласен.
[16:03:06] <ermine> если уж совсем идеологически, то надо ocsigen ставить :)
[16:03:27] <ermine> а не всякий похапэ
[16:04:51] <ermine> для ocsigen нужна линуксная машина, ее у меня нахаляву рядом почти нет
[16:04:56] <f[x]> во во
[16:05:03] <f[x]> у меня есть
[16:05:08] <gds> ocsigen -- это слишком идеологически.
есть ещё одна альтернатива.
[16:05:34] <ermine> ну я могу пособствовать с ocsigen, тем более он мне интересен
[16:06:44] <ermine> gds: какая?
[16:11:07] <ermine> еще была какая-то вики, которая подцеплялась к апачу, но она бледно выглядит перед ocsigen
[16:11:30] <gds> хреновая и неоконченная -- рисую нечто вроде "похапэ на функциональщине". Вещь тупая, фактически только интерфейсы и glue code к ocamlnet, базам данных, шаблонизатору.
Я люблю тупые решения, которые можно инкрементально улучшать. ocsigen мне пока не нравится. Но это сугубо личное.
Сейчас надо сваливать, хочу вопрос по железякам уточнить. Это меня и сдерживает от принятия решения.
[16:13:13] <gds> кстати, апач -- тупиковая ветвь эволюции :) если своё рисовать, то nginx+fastcgi, как минимум.
[16:13:21] <gds> ocamlnet это умеет.
[16:13:38] <ermine> gds: это с cgi?
[16:14:12] <gds> чистое cgi -- не вариант вообще.
[16:14:56] <ermine> а в ocsigen есть еще один фреймворк - ocsimore, там есть вики и форум
[16:15:35] <ermine> я смотрела последний раз год назад, тогда было убожеством, как оно сейчас - хз
[16:16:45] <f[x]> железку могу предоставить
[16:17:26] <f[x]> без рута (у меня тоже)
[16:18:05] <gds> давайте конвергируйте; приду -- почитаю :)
[16:19:21] <ermine> ну так ocsigen надо собрать со всемы полными штучками включая ocamlduce и прочими ужастиками
[16:20:15] Typhon вышел(а) из комнаты
[16:20:32] <ermine> f[x]: а либлы к камлу как ставишь без рута?
[16:21:52] Typhon вошёл(а) в комнату
[16:29:27] <f[x]> ermine: там нет камля
[16:33:42] <ermine> f[x]: а как без него тогда радовать комьюнити?
[16:36:06] sceptic вышел(а) из комнаты
[16:36:33] <f[x]> в /usr/local можно
[16:36:44] <f[x]> ну или ~/usr/local
[16:36:57] <f[x]> чем богаты тем и рады
[16:37:37] <f[x]> можно вообще на хост готовые бинарники заливать только
[16:37:41] <ermine> f[x]: а тебя за трафик гнобить не будут?
[16:38:19] sceptic вошёл(а) в комнату
[16:38:22] <f[x]> все камловоды кааак накинутся :)
[16:38:23] <ermine> f[x]: если вики - то там регалка, а это означает что почта нужна, ее у тебя небось тоже нет
[16:38:41] <f[x]> почта есть вроде
[16:39:44] <ermine> был сайт caml.ru, видимо подох
[17:02:11] <gds> насчёт caml.ru -- лучше не будем вспоминать, предполагаю :)
[17:14:59] <gds> в общем, один из вариантов обломился, а второй -- не сильно лучше, чем железку f[x]'а изнасиловать.
и хрен его знает, что делать. А раз так, то предлагаю самое тупое. Поднять какое-нибудь имеющееся вики (пхп, перл, питон -- один хрен; главное -- чтобы работало), вход по openid на случай, если там почты нет. чтобы был вменяемый формат хранения данных (в идеале -- чисто текстовые файлы с разумной разметкой). Чтобы была возможность ежедневно сливать диффы ко всему ~/ , доступному для проекта (и в редких случаях -- цельный быкап). Чтобы была возможность проверить (по хешу, например), правильно ли развернулся быкап. Вот это -- минимальная стартовая точка. Остальное -- бесовщина от глукавого. Которая, тем не менее, может инкрементально внедряться, к чему я приложу руку непосредственно.
[17:16:32] gds away, иду себе кое-что enlarge'ить.
[17:16:38] gds вышел(а) из комнаты
[17:17:48] <ermine> gds: а ты принимал участие в caml.ru?
[17:24:35] f[x] думает что сначала нужна концепция, а потом вики
[17:28:06] <ermine> f[x]: сначала нужно helloworld
[17:28:08] f[x] от камлунити ожидает возможности вместе решать какие-то траблы в либах, усовершенствовать, начианть новые. т.е. в первую очередь -- код
[17:31:55] <ermine> f[x]: это уже всё на гитхубах находится :) а комьюнити может только байки писать на сайте
[18:16:20] Typhon вышел(а) из комнаты
[18:34:44] sceptic вышел(а) из комнаты
[18:37:39] sceptic вошёл(а) в комнату
[19:20:41] <f[x]> хочу детектор не tail rec функций
[19:20:49] <f[x]> также хочу inferrer исключений
[19:21:19] sevenov вошёл(а) в комнату
[19:48:33] <ermine> @ - первая не тайль
[19:49:29] gds вошёл(а) в комнату
[19:52:04] <gds> ermine: caml.ru -- не принимал, но достаточно знаю. Мне не нравится национальная озабоченность этого человека. lj\caml_programmer, если чо.
[19:53:26] <ermine> хмм
[19:58:23] <gds> f[x]: концепция -- да. Касаемо информационного обеспечения -- вот она: "всякая фигня, структурированная и доступная для редактирования, которая может быть полезна для использующих окамл".
Касаемо кода -- ты прав, это надо. Но, вспоминая разговоры годы назад, когда я только начинал своё оверблд, нужно было две ортогональные вещи: 1. слать патчи в апстрим, 2. мейнтейнера/билдера ocaml/mingw. Вроде так говорили все? Ну вот, я как бы всё понял.
Детектор не tail rec функций -- понятие размытое, потому что признак "tail rec" относится на самом деле к вызову функции.
Насчёт исключений -- конкретнее интересно. Какая-то древняя утиль была, типа camlexc.
[20:00:06] <gds> ermine: вопросы "раSSового превосходства", политики и прочего подобного я отказываюсь по-серьёзу смешивать с наукой, хоть и прикладной, хоть и с инженерством (что у нас и происходит, фактически).
[20:01:40] ermine провертелка дырку в гитхубе и начала по одному проекту туда выставлять - github.com/ermine
[20:02:41] <gds> f[x]: насчёт работы над кодом -- это круто, я считаю. Сделать ту же вики с каталогом имеющихся репозиториев, и "малые потребности" этим обеспечим. бОльшие потребности -- гитофагам путь на github, для меркуриала есть bitbucket/freehg.org. Имхо этого достаточно для начала, если вика будет указывать на эти проекты.
[20:02:48] <ermine> gds: ну да, русские всегда лучше кодили и будут лучше кодить, чем иностранные мальчики
[20:02:57] <ermine> какие тут могут быть сомнения :)
[20:03:30] <gds> ermine: вот в частности по поводу подобных заявлений я хочу отделять мух от котлет.
[20:04:30] <ermine> gds: да ладно, это такая удобная тема для подтурнивания
[20:04:51] f[x] будет позже
[20:09:40] 604 вышел(а) из комнаты
[20:11:45] f[x] вышел(а) из комнаты
[20:13:52] <gds> а я вот уважаю меркуриал, а по поводу этого вашего гитхаба только вот такая ассоциация: http://xkcd.com/624/
[20:17:08] <ermine> gds: кста, по моей ссылке в репе xml посмотри на плугин камлобилда
[20:38:17] <gds> посмотрел по диаговнали. в целом -- чото делает вроде. И вроде прилични.
Явно "let make_deps name =" рефакторится с участием non-tail-rec "@" до избавления от копипасты.
И так и не понял смысл "Px". Наверное невнимательно читал.
[20:42:51] <ermine> а там была копипаста?
[20:43:00] ermine ошарашенно смотрит на gds
[20:43:50] ermine посмотрела в код
[20:44:04] <ermine> а, поняла, про что ты
[20:44:07] <gds> let make_deps name =
  if bytecode then
    name -.- "cma" :: (if nativecode then [name -.- "cmxa"] else [])
  else
    (if nativecode then [name -.- "cmxa"] else [])
[20:44:16] <ermine> не, я не люблю юзать @ в таких случаях
[20:44:43] <gds> копипаста лучше?
[20:45:22] <ermine> если всего два элемента в списке
[20:45:41] <gds> значит всё в пределах minor heap разрулится, и не заметишь.
[20:46:30] <gds> если уж не хочешь @, то можно
let for_bytecode = ... in
if native then (... :: for_bytecode) else for_bytecode
но это усложнение логики, как и твоё.
хотя всё это мелочи.
[20:47:25] <ermine> а это куда красивше :)
[20:47:45] <ermine> я ща залила treap, там еще ужаснее
[21:30:46] ermine закончила на сегодня заливать репы на гитхуб
[21:31:37] <sceptic> _tags можно было в .gitignore добавить
[21:32:30] <gds> вроде нельзя
[21:32:47] <sceptic> с чего бы это
[21:33:23] <gds> там -- важная инфа, касающаяся сборки проекта, наравне с исходниками, которые в ignore не добавляют.
[21:33:26] <ermine> а он нужен для сборки
[21:33:27] <sceptic> А..
[21:33:45] <sceptic> Тогда ясно. Я думал это по типу TAGS/CTAGS
[21:33:47] <ermine> ты предложи makefile в игноре засунуть :)
[21:34:10] <ermine> предупреждаю - sulci не соберется, можно и не пытаться
[21:34:19] <sceptic> makefile конечно
[21:34:24] <sceptic> use autotools :)
[21:37:09] <ermine> надо будет потом еще с пяток реп туда залить
[21:37:12] <gds> понятно, что мне нужны были autotools, когда самого по себе окамла ещё нет, но когда он есть, то слегка сомнительна ценность autotools для сколько-нибудь сложных вещей. На простых вещах -- можно на autotools написать хрень, которая будет с ocamlbuild на равных. Дальше -- сложнее.
[21:39:39] <ermine> ну всё, теперь ктонить умный прочитает мой код и засмеется
[21:39:54] <ermine> надо было запасаться валерьянкой
[21:41:46] <gds> тю. до уровня "кровавого энтерпрайза" далеко.
[21:52:40] ermine в трех чатах обсуждает репы, в одном из них предположили, что в описании gorgona присутствует ошибка - типа, должно быть libgtk2, а не lablgtk2
[21:52:52] <ermine> критика уже поступает
[21:55:00] <gds> почему должно быть libgtk2? для билда или для запуска? нехай уточняют. а то мы не потерпим!
[22:29:47] <ermine> надо теперь бы стартовать следующее туду - генератор кода
[22:29:57] <ermine> а то f[x] будет недоволен
[22:30:23] <ermine> и еще один человек в другой конфе тоже хочет
[22:36:53] <gds> по поводу xml?
[22:39:37] <gds> вот видишь, я прослушал предыдущее (хотя бы потому что там было наслоение контекстов разговора), а было бы где записать -- было бы другое дело.
[22:44:28] ygrek вошёл(а) в комнату
[22:55:16] ygrek периодически наблюдает в devel@ страждущих пытающихся собрать/запустить sulci..
[23:11:57] <sceptic> А на gargona когда можно будет посмотреть?
[23:23:51] <ygrek> gds: ага, нашёл ocamlexc
[23:24:17] <ygrek> про tail rec это было нерпоизвольное после получаса бегания по коду в поисках источника segv
[23:24:29] <gds> ygrek: если нужно парсить примитивные вещи (подвид s-выражений), то есть смысл брать menhir, или проще ocamlyacc?
[23:24:34] <ygrek> кстати странно что Stack_overflow не было, на x86_64
[23:24:59] <gds> про segv -- знакомая история. Как и про отсутствие нормальных ошибок падвендой. Валится и всё.
[23:25:06] ygrek теперь фанат стримов :)
[23:25:32] <ygrek> начинать ocamlyacc'ом всегд можно, menhir при случае drop-in
[23:25:34] <gds> не, ручная работа, лень.
[23:25:44] <gds> я про стримы
[23:26:14] aloner2k вошёл(а) в комнату
[23:26:20] <ygrek> не под виндой дело было
[23:27:04] <gds> тогда странно.
[23:41:10] <gds> а насчёт исключений -- ну почему бы их не держать локальными. в пределах модуля, например. type result 'ok 'err -- и ага.
[23:42:09] <ermine> за гаргону буду в зуб давать
[23:46:10] <ygrek> я стараюсь держать, просто нет чуства что окмпилятор меня защитит
[23:47:54] <gds> есть такие дни, когда нет уверенности, что обычный компилятор тебя защищит. где-то я это слышал :)
вот бы скрестить эту хреньку с опциональной проверкой того, что модуль: 1. не кидает исключений наружу, 2. кидает только описанные в нём исключения, 3. п.2 + pervasives, например.
[23:48:46] <ygrek> именно :)
[23:52:03] <gds> всё больше и больше задач касаются такого анализа окамловских исходников, где каждое значение/тип/модуль имеют какой-то набор флагов, распространяющихся по графу вызовов, использований. Сходу -- анализ исключений, анализ tail-rec calls, гарантия функциональной чистоты, гарантия отсутствия внешних эффектов.
Похоже на интересную мета-задачу.
[23:53:09] <gds> недавно подобное всплыло, но, как обычно, всплывает известно что -- жаба всякая.. http://antilamer.livejournal.com/290328.html -- задача №1 и опционально каменты.
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!