Home
Objective Caml
ocaml@conference.jabber.ru
Четверг, 5 мая 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:11:29] <ermine> Kakadu: молодец!
[00:12:27] <Kakadu> теперь моя вика даже иногда работает
[00:13:27] <ermine> Kakadu: будет что сдавать 10-го?
[00:15:37] <Kakadu> ну в ней сейчас уже можно что-то поредактировать
[00:15:50] <Kakadu> правда я нашел незамеченные баги
[00:17:29] <ermine> куда уж без багов
[00:18:16] ermine вышел(а) из комнаты
[00:18:21] <Kakadu> проблема в том. что их надо будет пофиксить
[00:21:39] komar вышел(а) из комнаты: Replaced by new connection
[00:21:39] komar вошёл(а) в комнату
[00:27:24] komar вышел(а) из комнаты: Replaced by new connection
[00:27:26] komar вошёл(а) в комнату
[01:54:20] Kakadu вышел(а) из комнаты
[02:27:43] ftrvxmtrx вышел(а) из комнаты
[02:27:58] ftrvxmtrx вошёл(а) в комнату
[03:42:10] Diggimortal вошёл(а) в комнату
[03:47:02] ftrvxmtrx вышел(а) из комнаты
[03:47:13] ftrvxmtrx вошёл(а) в комнату
[04:36:33] Diggimortal вышел(а) из комнаты
[06:50:22] Typhon вошёл(а) в комнату
[07:16:09] iNode вышел(а) из комнаты
[07:41:08] zert вошёл(а) в комнату
[07:59:54] gds вошёл(а) в комнату
[08:17:46] iNode вошёл(а) в комнату
[08:37:19] f[x] вышел(а) из комнаты
[08:37:36] f[x] вошёл(а) в комнату
[08:52:59] Typhon вышел(а) из комнаты
[08:55:38] Typhon вошёл(а) в комнату
[09:15:08] Typhon вышел(а) из комнаты
[10:20:16] ermine вошёл(а) в комнату
[10:28:35] ftrvxmtrx вышел(а) из комнаты
[11:08:37] Typhon вошёл(а) в комнату
[11:16:52] Kakadu вошёл(а) в комнату
[11:33:42] ftrvxmtrx вошёл(а) в комнату
[11:39:09] ftrvxmtrx вышел(а) из комнаты
[12:08:25] ftrvxmtrx вошёл(а) в комнату
[12:56:22] <Typhon> кстати, если упустили, http://www.surveymonkey.com/s/R7BB6PL <- просят анкетку заполнить, ежели окамл в продакшне используете
[12:56:44] <komar> Чо, зачем?
[12:59:05] <Typhon> """this is important for us, to attract more people towards OCaml""" от окамлпро чуваки
[13:11:56] <ftrvxmtrx> жаль, что не использую
[13:16:10] <gds> там писали "если больше одного камлоразработчика" вроде, поэтому не вписываюсь.
[13:16:30] <gds> конечно, мой кот правят иногда, но "камлоразработчиками" я их назвать не могу.
[13:20:55] ftrvxmtrx вышел(а) из комнаты
[13:21:36] ftrvxmtrx вошёл(а) в комнату
[13:46:36] <Kakadu> /status blabla
[13:46:52] <Kakadu> кто умеет статус в конфе ставить?
[14:51:06] ermine запустила свой проверенный тест на тему есть ли утечка памяти у оксигеня
[14:51:19] <ermine> а вот теперь мне нужна жертва с оксигенем на линуксе
[14:52:59] <ermine> Kakadu: ты как, готов послужить во имя хрензуской науки?
[15:25:03] Diggimortal вошёл(а) в комнату
[15:34:27] <Kakadu> ermine: я готов, когда буду дома
[15:37:51] <Kakadu> ermine: ты насчет memory leak?
[15:38:28] <ermine> Kakadu: ага
[15:39:09] <ermine> Kakadu: запускай ocsigenserver и рядом с ним ab с теми параметрами из письма и смотреть в top на оксигень
[15:39:29] <Kakadu> дома,дома
[15:39:43] <Kakadu> как чувствовал что надо было ноут на работу взять
[15:40:14] <Kakadu> кто-нибудь знает, thedeemon тусуется в джабберах?
[17:01:42] iNode вышел(а) из комнаты
[17:43:32] avysk вошёл(а) в комнату
[17:43:49] avysk вышел(а) из комнаты
[18:26:46] zbroyar вошёл(а) в комнату
[18:27:47] <zbroyar> привет
[18:29:35] zbroyar вышел(а) из комнаты
[18:32:08] zbroyar вошёл(а) в комнату
[18:33:08] <zbroyar> Привет
[18:33:34] <Typhon> привет
[18:33:42] <zbroyar> Дурацкий вопрос
[18:34:04] <zbroyar> А как люди расширяли сигнатуры до 3.12?
[18:34:28] <zbroyar> То-есть в 3.12 можна
[18:34:33] <zbroyar> module type MYHASH = sig
          include module type of Hashtbl
          val replace: ('a, 'b) t -> 'a -> 'b -> unit
        end
[18:34:54] <zbroyar> Ну і потом в struct просто написать include Hashtbl
[18:35:10] <zbroyar> А до 3.12 как подобные вещи делались?
[18:40:08] <Diggimortal> копипастой?
[18:40:45] <zbroyar> :-)
[18:40:48] <zbroyar> Ясно
[18:41:59] <gds> избегали явного выписывания сигнатур, как я понял.  Расширяли просто через include.
[18:47:54] <Typhon> я Ex<ИсходныйМодуль> struct делаю чаще
[18:48:03] <Typhon> ну то есть, отдельный модуль, отдельная сигнатура
[18:48:45] <Typhon> чужие модули расширять — рубизм, какой-то, по-моему, для библиотек типа батареек — это ок, а для своего кода — не нужно
[18:49:52] <zbroyar> Не согласен
[18:50:14] <zbroyar> Я для модулей стандартной библиотеки понаписывал себе расширений
[18:50:20] <zbroyar> и пользуюсь ими везде
[18:50:35] <zbroyar> сейчас они у меня оформлены как отдельные модули
[18:50:42] <Typhon> и скорее всего, повторяешь extlib или batteries?
[18:50:45] <Typhon> :-)
[18:50:51] <zbroyar> Вероятно
[18:51:08] <gds> это случай "для библиотек типа батареек", там это вполне приемлемо.
[18:51:26] <zbroyar> Но у меня очень небольшое подмножество того, что есть в этих либах
[18:52:24] <zbroyar> 10к фукций по паре строчек в каждой не стОят того, чтоб тягать доп. либы
[18:52:43] <Typhon> 10к == 10000 ? %)
[18:52:53] <zbroyar> десяток, пардон :-)
[18:53:24] <zbroyar> их быстрее написать, чем тянуть-компилять-ставить
[18:58:25] Kakadu вышел(а) из комнаты
[18:58:26] <Typhon> но я скорее про то, что по каждому чиху стдлибс пополнять — плохо, наверное, лучше положить list_join функцию (ящитаю)
[18:59:26] <zbroyar> не понял: что значит положить list_join функцию?
[19:00:47] <Typhon> ну, написать :-)
[19:00:53] <Typhon> положить в свой utils.ml
[19:01:12] <zbroyar> а, понял
[19:01:19] <zbroyar> Я так и сделал
[19:01:27] <gds> смотря что писать.  Если для внутреннего использования, то такой велосипед, опционально ставящийся системно, это приемлемо.  Если же что-то "на экспорт", то лучше utils.ml действительно.
[19:01:36] <zbroyar> module Common
[19:01:50] <gds> open Yo.Common
[19:09:59] ermine вышел(а) из комнаты
[19:12:09] <gds> кстати, как вариант,
module ExtList =
  module OrigList = List
  module MyList : sig
  типы
  end = struct
  код
  end
  include OrigList
  include MyList
end
module List = ExtList  (* или include List, смотря что нужно *)
и include будет, и можно будет ограничить свои функции типами.
[19:18:41] iNode вошёл(а) в комнату
[19:20:30] <zbroyar> Це ти прямо з ExtLib'а приклад взяв?
[19:20:38] <zbroyar> :-)
[19:21:23] <gds> хехе, названия ExtList -- оттуда, а принцип с двумя модулями только что придумал.
[19:23:05] <gds> мне ж тоже пока надо 3.10..3.11, вот в чём дело.  Поэтому не могу забить на них как на старьё.
[19:23:24] <zbroyar> А я тут плавно вирішив таки переїхати
[19:23:49] <zbroyar> Старий код в 3.12 збереться
[19:24:10] <zbroyar> А новий одразу писатиметься у 3.12
[19:24:25] <zbroyar> first class modules is a _huge_ argument :-)
[19:24:27] <gds> везуха, что так получается.
[19:24:41] <gds> да, модули -- сила.
[19:25:00] <zbroyar> До речі, overbld for 3.12? ;-)
[19:26:07] <Typhon> ой, а можно по-русски писать, он побольше людей из чятика охватывает, а я украинский, к сожалению не всегда понимаю :-[
[19:26:24] <gds> даааа, знаю, надо.  Но сейчас засада со временем -- ничего не успеваю.  Вон, парвел долбаю ( https://bitbucket.org/gds/parvel/overview ), плюс его использование для прикладных целей (т.е. пофиксил парвел -- пишу кодэ с его использованием -- goto 1).
[19:48:57] Kakadu вошёл(а) в комнату
[19:50:38] <zbroyar> А зачем парвел? есть-же Functory, есть ocamlnet3
[19:50:52] <zbroyar> Или им чего-то принципиального не хватает?
[19:51:59] ftrvxmtrx вышел(а) из комнаты: offline
[19:52:50] zbroyar вышел(а) из комнаты
[19:53:32] <zert> парвел єрланговее
[19:53:34] zbroyar вошёл(а) в комнату
[19:53:56] <zbroyar> чем netmulticore?
[19:55:13] <zert> чем всё
[19:55:17] <zert> даже небо, даже обама
[19:55:47] <zbroyar> Обама - сильный аргумент
[20:02:14] <gds> netmulticore -- есть, и, есть вероятность, что это будет нижним уровнем.  Functory -- это хорошо, но мне более хитрые топологии нужны, чем map-reduce-fold, да и message passing в целом нужен.  Ещё у меня внезапно получился простой интерфейс для "узлов" на других языках.
[20:03:07] <zbroyar> <size>\n<message> ? :-)
[20:03:42] <gds> интерфейс -- чуть похитрее, но принцип такой.  С возможностью подключить, допустим, json-static там, где это приемлемо.
[20:03:50] Typhon вышел(а) из комнаты
[20:03:59] Typhon вошёл(а) в комнату
[20:05:05] olegfink вошёл(а) в комнату
[20:12:41] zbroyar вышел(а) из комнаты: Replaced by new connection
[20:12:54] zbroyar вошёл(а) в комнату
[20:13:24] <zbroyar> Стек протоколов?
[20:17:00] <gds> у меня снизу -- поток байтов, так как хочу tcp/ip, может unix domain sockets.  поверх него ввожу фрейминг, так как его там нет.  а там -- передаю тупл строк "тип_значения", "версия_типа", "вид_сериализации", "сериализованное_значение".  А в "сериализованном_значении" уже собственно значение пользовательского типа.
[20:17:27] <zbroyar> Логично :-)
[20:17:46] <zbroyar> Хотя по-моему версия - избыточна
[20:18:09] <zbroyar> Если у тебя идентификатор типа - какой-нибудь числовой
[20:18:31] <zbroyar> то все-равно нужно будет хранить соответствие числа обработчику
[20:18:43] <zbroyar> и новая версия протокола просто получит новое число
[20:18:48] <zbroyar> в качестве id
[20:19:45] <gds> версия -- вот зачем: http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/2011/04/29.html#13:53:27.674073 -- для частичного апгрейда кластера.
[20:19:51] <gds> и для разных ошибок.
[20:20:20] <gds> числовой идентификатор замучаюсь поддерживать уникальным, таки будет строка.
[20:20:45] <zbroyar> dce uuid? :-)
[20:20:48] <gds> в качестве непосредственно "типа".  Заодно удобно интроспекцию проводить -- "а что это у нас тут?".
[20:21:06] <gds> FFFUUUUUUID
[20:22:43] <gds> можно было бы и версию закатать в название типа, наподобие (sprintf "%s_v%i" typename version), но потом выгрызать для определения, в чём же ошибка, как-то не хочется.
[20:28:52] ermine вошёл(а) в комнату
[20:29:09] zbroyar вышел(а) из комнаты
[20:29:57] <gds> про парвел: кстати вот, думаю для функций типа send, monitor сделать суффиксы -- "t" для "типизированных адресатов"; "p" для процессов, которые внутри процесса ОС (где точно не нужна десериализация); "i" для pid'ов (их мало осмысленных -- monitor разве что); может "u" для случаев "нетипизированных адресатов" (есть одно применение -- посылка без предварительной сверки типов, экономия раундтрипа, когда типы известны, но отсутствие гарантии успешной доставки; в противовес случаю "сначала сделать типизированного адресата", где типы проверятся).
[20:35:15] <ermine> Kakadu: ты уже дополз до дому?
[20:35:50] <Typhon> ermine: а почему ты "hope" что это не очередной линуксизм?
[20:35:53] <gds> хотя вот, вполне можно сэкономить раундтрип, если посылать как описание типа (то, что требуется для создания "типизированного адресата"), так и собственно сообщение.  Может всегда так делать, что ли...  Но вот первый вызов будет ждать ответа от удалённого узла, зато следующие можно не блокировать по поводу типизации.
[20:38:13] <ermine> Typhon: это был сарказм в отношении к Dario
[20:38:46] ermine подозрительно смотрит на свежий коммит в lwt darcs
[20:39:02] <ermine> а вот ответа в мейллисте по всем трем багам чота нет
[20:42:16] <ermine> я пока подожду подвига Kakadu
[20:43:45] <Kakadu> xnj ;lfnm nj
[20:43:47] olegfink вышел(а) из комнаты
[20:43:47] <Kakadu> что ждать то
[20:43:59] <Kakadu> в линуксе команда ab по-другому как-то работает
[20:44:07] <ermine> ну запускай три шелла
[20:44:29] <ermine> ab - утилита из апача
[20:44:47] <ermine> apache benchmark
[20:47:53] <Kakadu> socket: Too many open files (24)               что он хочет?
[20:48:08] <Kakadu> и получается надо не три шелла
[20:48:45] <Kakadu> чтобы было столько запросов сколько у тебя - 50
[20:48:52] <Kakadu> да здравствует цикл for
[20:51:22] <Typhon> ulimit поправить :-)
[20:51:34] <Typhon> 24 — это ж разве много?!!
[20:52:30] <ermine> Kakadu: а ты сколько в -c указал?
[20:52:51] <gds> у меня на системе внезапно обнаружился лимит по умолчанию порядка 1000 открытых файлов, так я был удивлён, "чо так мало?".
[20:53:28] <Kakadu> ermine: 20000
[20:53:33] <ermine> Typhon: он и есть 1k лимит, посмотри в ulimit -a
[20:54:00] <ermine> Kakadu: креза! -c 100 -n 1000000
[20:54:39] <Kakadu> $ ab -n 100 -c 20000 http://localhost:8080/asdf
ab: Cannot use concurrency level greater than total number of requests
Usage: ab [options] [http[s]://]hostname[:port]/path
................
[20:55:40] <ermine> под рутом
[20:57:06] <ermine> после запуска ab надо смотреть в top на ocsigenserver и говорить мне, какие там памяти
[20:57:10] <Typhon> буковк наоборот же
[20:57:24] <Typhon> -n — это всего, -c конкурентные, разве не?
[20:57:44] <Kakadu> ermine: да хоть под рутом, хоть без рута - одна фигня
[20:57:54] <ermine> да, 100 тредов
[20:58:00] <Typhon> Kakadu: числа поменяй местами или буковки
[20:58:04] <ermine> и многа-многа запросов
[20:58:13] <Kakadu> да я уже понял
[20:58:22] <Typhon> ermine:     у меня анлимитед %) а почему пишет "24"?
[20:58:37] <gds> да вы чего, не видите?  и опции, и числа перепутаны!  надо и опции, и числа менять!
[20:59:19] <ermine> Typhon: в ляликсе?
[21:00:05] <Kakadu> %MEM растет
[21:00:12] <ermine> gds: и не говори, сплошные админы локалхоста!
[21:00:36] <Typhon> ermine: в макаси
[21:00:50] <ermine> Kakadu: пусть дорастет хотя бы до полгига, подтвердить и можно остановить мучительный ab
[21:01:14] <ermine> Typhon: хм, интересно
[21:02:00] ermine доращивала до 1.5Пи и грустно останавливала ab
[21:02:28] <ermine> Typhon: а у тебя в макоси оксигень собран?
[21:03:22] <Typhon> ermine: не-а, макось рабочий :-)
[21:03:40] <Typhon> Kakadu дораситл, видимо, до свопа и ушёл от нас ^_^
[21:04:20] <Typhon> рабочий, в смысле — нету у меня на работе столько времени, чтобы оксиген ставить, памятую чем это в прошлый раз обернулось :D
[21:04:52] <Kakadu> Typhon: до свопа ещё 2 гига
[21:05:11] <Kakadu> до свопа не дойдет
[21:05:30] <Kakadu> оно съедает 200 метров на 100000 запросов
[21:05:39] <Kakadu> по 200 метров
[21:05:44] <Typhon> ermine: 1.5Пи — это почти пять гигов штоле?
[21:05:46] <ermine> Kakadu: а щас сколько уже занято?
[21:06:05] <Kakadu> 700
[21:06:06] <Typhon> Kakadu: по 1 метру на трэд, судя по настройкам :-)
[21:06:40] <ermine> Typhon: ужас-ужас!
[21:06:51] <Kakadu> ааааа
[21:06:57] <Kakadu> я дидосю свой компьютер))
[21:07:08] <gds> кстати, где там эрланг?  сколько там на хттп-тред идёт?
[21:07:35] <Kakadu> 512 байт вроде
[21:07:40] ermine думает - вертать camlunity обратно на nginx и ждать, пока хренцузы пофиксят или нет
[21:07:40] <Kakadu> на хабре писали
[21:08:17] <gds> 512 на хттп -- мало (там парсер какой-никакой надо, все дела), а на просто тред -- верю охотно.
[21:08:18] <ermine> а в мейллисте еще молчат
[21:08:54] <ermine> Kakadu: тастёть?
[21:09:31] <Kakadu> ermine: гб скоро
[21:10:14] <ermine> Kakadu: ну ладно, останавливай уже, спасибо, это уже точно не линюхизм и гнуизм
[21:10:48] <ermine> Kakadu: а можешь там в мейллисте добавить к моему последнему письму, что confirmed for linux?
[21:11:33] <ermine> хотя то, что они там все молчат - это хороший признак
[21:11:37] <Kakadu> нет, я хочу чтобы оно в своп ушло
[21:11:48] <Kakadu> я никогда ещё свой ноут не угонял в своп
[21:12:15] <ermine> Kakadu: ну будет OOM
[21:12:29] <ermine> и система прибьет кого-нибудь
[21:12:54] <ermine> первого, кто попросит еще немного памяти, когда она кончится
[21:13:24] <Kakadu> я не знаю что такое ООМ
[21:13:38] <Kakadu> ааа
[21:13:42] <Kakadu> out of memory
[21:14:12] <Kakadu> ermine: да ты загрузила мне полпроцессора!
[21:14:53] <Kakadu> мне просто интересно
[21:15:04] unfalse вошёл(а) в комнату
[21:15:06] <Kakadu> мне почему-то начало казаться что линукс больше тормозит чем винда
[21:15:24] <Kakadu> ещё 4 гб не исчерпал, а уже тормозит
[21:17:52] <Kakadu> а сейчас я запускаю заодно виртуалку с виндой
[21:18:05] <Kakadu> оксиген съел полтора
[21:22:52] Kakadu вышел(а) из комнаты
[21:24:17] <Typhon> гг, я ж сказал, что перед письмом в рассылку Kakadu нас покинет :)
[21:25:33] unfalse вышел(а) из комнаты: Logged out
[21:26:08] Kakadu вошёл(а) в комнату
[21:26:35] <Kakadu> Typhon: после письма
[21:26:41] <Kakadu> комп начал тупить
[21:26:55] <Kakadu> я не выдержал нажал кнопку выключить
[21:27:03] <Kakadu> а потом комп ожил
[21:27:13] <Kakadu> зря я кнопку выключения нажимал наверное
[21:31:37] <zert> у тебя линапц?
[21:31:51] <Kakadu> zert: угу
[21:32:39] <zert> у меня такая же херня бывает
[21:32:44] <zert> ты музыку слушал?
[21:32:58] <Kakadu> да
[21:33:10] <zert> snd_hda_intel?
[21:33:21] <Kakadu> да
[21:33:43] <Kakadu> музыка начала умирать последней
[21:33:45] <zert> говно какое-то непонятное
[21:33:51] <zert> да, музыка играет до последнего
[21:34:06] <Kakadu> надо мой комп переименовать в Титаник
[21:34:11] <zert> я пока даже и не понял, из-за звука это или нет
[21:34:30] <zert> ибо в логи пульсеаудио пишет всякие непотребства при такой херне
[21:34:41] <zert> но непонятно, это причина или следствие
[21:35:34] <Kakadu> ну у меня это была точно не причина
[21:35:36] <Kakadu> )
[21:35:48] <zert> да непонятно
[21:36:00] <Kakadu> у меня даже пульс демон не работает
[21:36:01] <zert> у меня часто бывает, если играть длинные сеты и перематывать
[21:54:18] ftrvxmtrx вошёл(а) в комнату
[22:08:15] ermine думает - не открыть ли бутылочку вина
[22:09:00] <ermine> чтобы выпить за здоровье французов, которым оно понадобится, чтобы зафиксить утечку
[22:14:37] <ermine> ыы, в мейллисте Джером проявился, да не по теме ишшо
[22:23:20] Typhon вышел(а) из комнаты
[23:01:44] Kakadu вышел(а) из комнаты
[23:03:49] Kakadu вошёл(а) в комнату
[23:30:02] ermine недотерпела и пересобрала оксигеня с лвтом - не, утечка продолжает утекать
[23:30:53] <ermine> как же можно в таких условиях девелопить что-либо?
[23:40:29] <gds> бага камлобилда: если в x.mllib есть строка, не являющаяся именем существующего модуля, то весь x.mllib не берётся в рассмотрение, и берутся просто зависимости x.ml/x.mli.
[23:40:43] <gds> минус полчаса времени, мило.
[23:43:20] Kakadu вышел(а) из комнаты
[23:43:47] <ermine> gds: ты наступил на мою любимую мозоль1
[23:44:11] <gds> касаемо mllib?
[23:44:26] <ermine> gds: а в мантисе угрек уже писал по этому поводу
[23:44:35] <ermine> ага
[23:44:52] <ermine> ему там чота ответили... левый такой ответ
[23:45:08] <gds> гады.
[23:45:35] <ermine> gds: это я еще в camlimages наступила, причем это был не несуществующий файл, а .mli без .ml
[23:46:19] <gds> с отдельными .mli всегда были проблемы, если чо.  .ml надо лепить сразу, и всё.  но, вообще, могло бы ругнуться.
[23:46:28] ermine типа пролила каплю слезинки на жилетку gds
[23:46:49] <gds> ага :)
[23:49:14] <gds> телепузики, спать пора!
телепузики, спать пора!
[23:50:49] gds вышел(а) из комнаты
[23:57:10] ermine допила китайского сливового вина, а привета от Димино еще нет... эх
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!