Home
Objective Caml
ocaml@conference.jabber.ru
Понедельник, 31 мая 2010< ^ >
ygrek установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | judge by commits, not comments | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+4
[00:11:23] abiogenesis вошёл(а) в комнату
[00:11:26] abiogenesis вышел(а) из комнаты
[00:23:53] abiogenesis вошёл(а) в комнату
[00:29:15] Typhon вошёл(а) в комнату
[00:31:10] Typhon вышел(а) из комнаты
[00:56:06] abiogenesis вышел(а) из комнаты
[01:28:06] ygrek вышел(а) из комнаты
[01:28:20] ermine вышел(а) из комнаты
[02:54:20] komar вышел(а) из комнаты
[07:35:22] komar вошёл(а) в комнату
[07:51:05] komar вышел(а) из комнаты
[08:07:18] iNode вошёл(а) в комнату
[09:48:11] Kakadu вошёл(а) в комнату
[10:01:17] ygrek вошёл(а) в комнату
[10:01:34] ygrek вышел(а) из комнаты
[10:02:19] gds' вошёл(а) в комнату
[10:34:50] ermine вошёл(а) в комнату
[10:36:34] serp256 вошёл(а) в комнату
[10:56:54] ʇsʎɯ вошёл(а) в комнату
[10:58:57] <ʇsʎɯ> ermine: я вчера колупался тут с кое-чем и обнаружил, что у OCaml нет ничего похожего на Perl DBI или Python DB-API
[10:59:04] <ʇsʎɯ> есть предложение замутить
[10:59:09] <ʇsʎɯ> начать можно с тебя
[10:59:22] <ʇsʎɯ> я склоняюсь больше к модели DB-API...
[11:00:09] <ʇsʎɯ> а я чуть попозже сделаю к SQLite3 нормальный байндинг, текущий устарел, хотя и работает, а мне как раз нужен нормальный
[11:02:01] <gds'> я уже давно (год штоле) думаю воскресить старое ocaml-dbi и допилить.
DB-API -- это куда?
[11:02:31] <gds'> мне перловый dbi нравится по своей функциональности.
[11:03:00] <ʇsʎɯ> Python DB-API 2.0
[11:03:34] <ʇsʎɯ> у питона почти то же самое, но не заворачивается через одну точку доступа, а просто все модули реализуют один API
[11:03:53] <ʇsʎɯ> проще сделать, а результат почти тот же
[11:05:30] <gds'> http://www.python.org/dev/peps/pep-0249/ -- это оно?
[11:06:55] <ʇsʎɯ> да
[11:07:08] <ʇsʎɯ> ну, с поправкой на окамло-реалии, конечно
[11:07:28] <ʇsʎɯ> там всё-таки для динамического языка API
[11:07:43] <gds'> чуть попозже почитаю, отпишу своё мнение.
[11:07:44] <ʇsʎɯ> я, кстати, придумал, чем мы займёмся на треньке ))
[11:08:03] <gds'> если придумал сам, то неинтересно -- нужно чтобы сторонний человек придумывал.
[11:13:00] <ʇsʎɯ> придумал сторонний
[11:13:30] <ʇsʎɯ> я просто взял на прицел, даже задания не читал
[11:13:44] <ʇsʎɯ> просто знаю, где они лежат, знаю, что будет фан и знаю, что ещё и с пользой
[11:16:08] f[x] вошёл(а) в комнату
[11:16:51] <gds'> а временнЫе рамки какие?  чтобы не на целый день было, думаю.
[11:16:56] <f[x]> интересно чем это текущий ocaml-sqlite3 устарел
[11:19:36] <ʇsʎɯ> хм... тут зависит от количества человек, которое всё-таки соберётся
[11:19:48] <ʇsʎɯ> в принципе... зависит от постановки задачи
[11:19:59] <ʇsʎɯ> но я ещё запасной вариант посмотрю
[11:20:22] <ʇsʎɯ> f[x]: SQLite3 API слегка обновили
[11:20:35] <ʇsʎɯ> там появились _v2 функции, которые рекомендуются теперь
[11:21:17] <f[x]> ты имеешь ввиду prepare_v2?
[11:22:14] <ʇsʎɯ> там и другие _v2 есть
[11:22:38] <f[x]> ну и какие? create_collation?
[11:22:55] <f[x]> и что, вместо того чтобы дописать эту функцию новый биндинг надо делать?
[11:23:14] <ʇsʎɯ> учитывая что там копеечный объём кода разницы особой нет
[11:23:27] <ʇsʎɯ> а так под это дело ещё и унификацию API можно провести
[11:23:39] <ʇsʎɯ> а то, что не БД, то свой API у байндингов
[11:23:41] <ʇsʎɯ> это уг
[11:24:20] <gds'> писать биндинги с нуля -- багодельня.  проще поверх слой db-api какого-нибудь навернуть.
[11:25:06] <ʇsʎɯ> да-да
[11:25:15] <ʇsʎɯ> и покрыть имеющиеся баги слоем своих
[11:26:09] <ʇsʎɯ> байндинги для SQLite3 - это не так сложно, кроме того, никто не говорит, что я не посмотрю в имеющийся код
[11:26:18] <f[x]> ну удачи
[11:26:50] <ʇsʎɯ> ну, спасибо
[11:27:23] <f[x]> забыл тэг irony
[11:28:49] <gds'> m, ты бы лучше докрутил camlidl до того уровня, чтобы автоматически генерить биндинги для sqlite3 из .idl :)
[11:29:25] iNode вышел(а) из комнаты
[11:29:37] <ʇsʎɯ> а я не знаю, что такое idl
[11:34:54] <gds'> в данном случае достаточно почитать http://caml.inria.fr/pub/old_caml_site/camlidl/htmlman/
[11:36:06] <gds'> а то руками каждый раз писать -- это запариться можно, что на практике доказывает ermine.  С другой стороны, для сложных штук всё равно надо будет писать низкоуровневый код.
[11:37:16] <ʇsʎɯ> ну я может чего-то не понимаю, но для SQLite3 сейчас банйдинги - 4 файла .ml, .mli, .c, .h
[11:37:52] <ʇsʎɯ> ладно, пока не влезу, всё-равно глупо обсуждать
[11:38:08] <ʇsʎɯ> тут возникла такая интересная задача
[11:38:46] <ʇsʎɯ> один товарищ попросил написать сервер рекордов для его ипхоне-игры
[11:40:05] <ʇsʎɯ> клиент отдаёт очки:ник:прочее, а сервер клиенту - [место:очки:ник] x 11 (+/-5) от места клиента
[11:40:47] <ʇsʎɯ> возник вопрос: в какой структуре данных это хранить, чтобы и добавлять быстро и забирать отсортированное?
[11:41:54] <ʇsʎɯ> я не придумал ничего лучше, чем своё бинари дерево
[11:42:08] <ʇsʎɯ> хотя...
[11:42:13] <ʇsʎɯ> нет, своё тоже ничего не решит
[11:42:22] <ʇsʎɯ> чтобы брать по порядку, надо обходить всё
[11:42:27] <ʇsʎɯ> т.е. я вообще ничего не придумал
[11:42:30] <ʇsʎɯ> )
[11:44:00] iNode вошёл(а) в комнату
[11:59:46] Typhon вошёл(а) в комнату
[12:00:40] <gds'> вроде fingertree такое умеет (сортированное дерево с быстрым позиционированием и быстрым влево-вправо), но сходу не могу найти пруфов.
[12:05:26] <ʇsʎɯ> о, мерси
[12:05:30] <ʇsʎɯ> я погуглю
[12:06:46] <Typhon> не так давно были ссылки на более менее кошерные объяснения fingertree
[12:07:24] <Typhon> http://comonad.com/reader/2010/finger-trees/ + оттуда ссылка
[12:09:42] <ʇsʎɯ> мерся
[12:10:02] <ʇsʎɯ> нагуглил википедию в See also увидел Monoid. Высрал кирпич
[12:10:07] <Typhon> моноид -- это просто
[12:10:31] <ʇsʎɯ> я не потому
[12:10:33] <Typhon> мат. объект, который имеет единцу и умножение со свойствами ассоциативности (поправьте, умные люди)
[12:10:42] <ʇsʎɯ> я подумал "О боже! И тут они!"
[12:11:09] <Typhon> http://fprog.ru/2009/issue1/dan-piponi-haskell-monoids-and-their-uses/  -- а вот здесь хорошо описано, принципе :)
[12:39:26] <ʇsʎɯ> насоветовали http://en.wikipedia.org/wiki/Zipper_(data_structure)
[12:39:29] <ʇsʎɯ> сижу читаю
[12:40:17] <Typhon> в ru_lambda ?
[12:42:12] <ʇsʎɯ> нет, кореш один, в jabber
[12:42:59] <Typhon> там просто тоже про структуры данных вопрос, сейчас смотрел, в комментах зиппер советовали
[12:45:04] <gds'> зиппер, может, и ок, но надо подумать, как его использовать так, чтобы и быстро найти нужный узел, и влево-вправо побегать.
[12:46:03] <ʇsʎɯ> подумаю
[12:46:14] <ʇsʎɯ> сегодня вечером будет, чем заняться как раз
[12:46:25] <ʇsʎɯ> почитаю, окультурюсь
[12:46:27] <Typhon> m, и если я правильно понял и помню, то fingertree как раз обобщение зиппера
[12:47:08] <ʇsʎɯ> ну... мне там обощение и реюзабилити не особенно важно, прога маленькая, поэтому выберу то, что будет быстрее
[12:47:28] <ʇsʎɯ> кстати, кто-нибудь может прокомментировать мой недописанный высер по стилю?
[12:47:53] <ʇsʎɯ> http://pastebin.com/NZQRZSHK
[12:49:11] <Typhon> m, btw, Lwt смотрел?
[12:49:53] <Typhon> ( http://ocsigen.org/lwt/ )
[12:52:25] <ʇsʎɯ> неа, не смотрел
[12:52:41] <ʇsʎɯ> один хрен на OpenBSD с потоками тяжело
[12:52:53] <ʇsʎɯ> да и вообще, если надо будет, я лучше процессов нарожаю
[12:53:15] <gds'> датаграмма всегда размера 80?
[12:53:19] <ʇsʎɯ> да
[12:53:28] <ʇsʎɯ> добивается паддингом
[12:53:44] <ʇsʎɯ> специально, чтобы не ставить терминаторы датаграммки и не париться
[12:54:00] <ʇsʎɯ> собственно, если она будет меньше - recvfrom отдаст сколько есть, я проверял
[12:54:14] <gds'> но при этом в буфере будет мусор.
[12:54:58] <ʇsʎɯ> и что?
[12:55:02] <ʇsʎɯ> не мусор, а 0
[12:55:08] <ʇsʎɯ> или нет, мусор
[12:55:17] <ʇsʎɯ> чёрт, надо это обыграть
[12:55:25] <ʇsʎɯ> втяну создание буфера в loop ()
[12:55:55] <ʇsʎɯ> такой вопрос ещё, если втянуть parse_data в loop () будет ли работать медленнее?
[12:56:01] <gds'> если создаёшь через String.create, будет мусор точно.
[12:56:08] <ʇsʎɯ> будет ли она "создаваться" каждый раз?
[12:56:18] <gds'> будет создаваться, конечно.  Как написал, так и работает.
[12:56:22] <ʇsʎɯ> со String.create были \0
[12:56:28] <ʇsʎɯ> по крайней мере на моей системе
[12:56:33] <gds'> это частный случай.
[12:56:35] <ʇsʎɯ> но это ж опен, они всё чистят
[12:57:09] <gds'> просто зафигачь какую-нибудь String-функцию типа fill, не помню уже, и обнуляй буфер перед recvfrom
[12:59:47] <ʇsʎɯ> ну это те же яйца, что и втянуть String.create имхо
[12:59:57] <ʇsʎɯ> хотя... аллоцироваться не будет хотя бы
[13:01:16] <ʇsʎɯ> я от option пропёрся, кстати
[13:01:20] <ʇsʎɯ> офигенно удобная штука
[13:02:43] Kakadu вышел(а) из комнаты
[13:04:15] <gds'> нет, яйца не те же.  Если делать String.make '\x00', тогда те же.
[13:04:28] <ʇsʎɯ> а, блин
[13:04:30] <ʇsʎɯ> да
[13:04:36] <ʇsʎɯ> так make же аллоцирует
[13:04:51] <ʇsʎɯ> а fill таки нет
[13:05:03] <ʇsʎɯ> мелочь, а приятно
[13:05:50] <gds'> ага, главное такими мелочами весь контест не завалить :)
[13:06:26] <ʇsʎɯ> это да
[13:06:37] <ʇsʎɯ> но тут всё-таки хочется, чтобы работало максимально быстро
[13:06:49] <ʇsʎɯ> тут вроде оправдано
[13:07:35] <Typhon> кстате, я может упустил, возвращаясь к эксепшнам, но есть ли обертка вокруг List, Array, etc. которая вместо exception'ов option'ы возвращает?
[13:08:00] <gds'> тут -- да.  А на практике эту разницу не заметишь.  Неиспользованные буфера, предполагаю, не будут даже вылезать за minor heap, поэтому всего лишь чуть чаще будет сборка мусора.  А в этой программе собирать особо нечего.
[13:09:37] <ʇsʎɯ> не, ну в общем случае, я согласен, и делал бы make
[13:09:49] <ʇsʎɯ> а тут должен быть очень быстрый цикл
[13:10:02] <ʇsʎɯ> чтобы успевать всех обслужить
[13:10:24] <ʇsʎɯ> потом проверю на скольки самитах в сек. начинает тупить, отпишусь
[13:10:44] <ʇsʎɯ> ещё какие-нибудь коментарии есть?
[13:11:06] <gds'> http://github.com/thelema/batteries-included/blob/master/src/batArray.mli -- "exceptionless"
[13:11:58] <ʇsʎɯ> кстати, там минимум 40 байт будет точно, потому что iPhone ID передаётся (он 40 байт) так что можно только вторую половину очищать ))
[13:12:43] <gds'> если там ascii, очищай только младшие 7 битов!1111
[13:13:00] <gds'> ещё комментарий -- ловишь только Failure, тогда как другие исключения тоже бывают.
[13:13:29] <ʇsʎɯ> если они будут - это баг, пусть падает с треском
[13:13:33] <ʇsʎɯ> так будет проще фиксить
[13:13:58] <Typhon> а, батарейки, значит, нормальные, давно их трогал и в структуры данных не лазил, общие темы только трогал и файловые :)
[13:16:13] <gds'> лучше одинаковым / почти одинаковым образом ловить все исключения на их выходе из программы.
[13:17:45] <gds'> ещё комментарий -- где матчишь Some _ -> .. | _ -> .. -- оно понятно, что второе только None может быть, но лучше явно прописывать (вдруг поменять что-нибудь решишь, да и очевиднее получается).
[13:19:12] <ʇsʎɯ> а вдруг там (я накосячу) случайно будет Some (a, b) ?
[13:19:33] <ʇsʎɯ> хотя... тогда как раз лучше, чтобы компилятор выругался
[13:19:54] <ʇsʎɯ> это я подправлю, да
[13:19:59] gds вышел(а) из комнаты
[13:20:19] <gds'> вот-вот, -w A (или тег warn_A) -- это правильно.
[13:20:59] <f[x]> Unix.recvfrom размер возвращает, аллоцирую +1 и пиши нолик
[13:21:08] gds' изменил(а) имя на gds
[13:22:19] <ʇsʎɯ> это надо будет разбор переделать на с :: [] на :: _
[13:22:38] <ʇsʎɯ> строка же не 0-terminated
[13:23:03] <f[x]> и вместо str можно scanf "%s@:%s@:%s@\x00"
[13:23:24] <ʇsʎɯ> хм...
[13:23:31] <ʇsʎɯ> об этом я не подумал...
[13:23:33] <ʇsʎɯ> и вправду
[13:23:53] <f[x]> регексп же будет до конца буфера добегать каждый раз, ужас-ужас
[13:24:19] <gds> ааа, оптимизаторы в конфе!1111
[13:24:55] <f[x]> и лишний список, и кэши инвалидируются, вот поэтому 100К реквестов и не выдержит
[13:25:33] <gds> а какие кеши, L1 или L2?
[13:27:36] <f[x]> а это надо пробник брать и смотреть
[13:28:18] <ʇsʎɯ> ;)
[13:34:02] <gds> кстати, господа, кто-нибудь тут вникал в monad transformers?  Можно было бы пойти к соседям в конфу, но лень.  А так, в приватном порядке помучил бы слегка.
[13:55:02] <f[x]> gds: в этой конфе попрошу не выражаться
[13:56:00] <gds> от моноида до монадного трансформера -- два шага!  А тут многие уже спалились, что знают моноиды.
[14:05:44] komar вошёл(а) в комнату
[14:42:21] <ʇsʎɯ> эх... в SML есть f o g...
[14:43:16] <olegfink> если тебе так хочется сделать o ключевым словом, можешь то же самое в лексере окамла сделать
[14:43:22] <olegfink> только потом все let o = будешь переписывать :-)
[14:44:22] <gds> 1. композиции запутывают код, 2. "%" и "$" на выбор.
[14:45:09] <ʇsʎɯ> хотя... let ($) f g = fun x -> f (g x);;
[14:45:22] <ʇsʎɯ> но... только для одного параметра
[14:45:47] <gds> http://gdsfh.dyndns.org/kamlo/InfixOperators
[14:47:31] <ʇsʎɯ> вот если бы можно было на любое кол-во параметров без %%...
[14:48:07] <ʇsʎɯ> и не так уж запутывают, в некоторых местах очень удобно
[14:48:29] <gds> без %% -- нужен противоестественный интеллект.
[14:49:54] <ʇsʎɯ> ну... примеры есть... ;)
[14:50:09] <ʇsʎɯ> и ещё немного ереси: Suppose one has two (or more) functions f: X → X, g: X → X having the same domain and codomain. Then one can form long, potentially complicated chains of these functions composed together, such asf ∘ f ∘ g ∘ f. Such long chains have the algebraic structure </wiki/Algebraic_structure> of a monoid </wiki/Monoid>, called transformation monoid </wiki/Transformation_monoid> or composition monoid </wiki/Composition_monoid>. In general, composition monoids can have remarkably complicated structure. One particular notable example is the de Rham curve </wiki/De_Rham_curve>.
[14:51:28] <Typhon> а еще есть батарейковские операторы композиции и аппликации
[14:51:34] <Typhon> http://thelema.github.com/batteries-included/hdoc/BatPervasives.html
[14:57:26] <gds> во, а я искал нормальное имя для fun x -> g (f x).  неплохо.
[15:02:14] <ʇsʎɯ> чем же -| хорошее имя?
[15:04:23] <gds> тем, что лучше других.
[15:04:54] <gds> сейчас в математике модно "f;g" использовать, но тут не можем.
[15:05:37] <ʇsʎɯ> ну кому как
[15:06:11] <ʇsʎɯ> а батарейки не такие уж большие... я почему-то думал, что это что-то вроде буста прастихоспади
[15:11:47] <ʇsʎɯ> gds: а что будешь делать, если несколько параметров? -|| и -||| ?
[15:12:36] <gds> видимо удлинять пипиську буду ( --| и |-- ), так как есть некоторые сомнения насчёт лексинга/парсинга ||-.
[15:13:09] <ʇsʎɯ> (String.concat ":") -| (Str.split (Str.regexp "[: \n]+")) например...
[15:13:14] <ʇsʎɯ> чё-то не смотрится
[15:14:09] <gds> str >> Str.split (Str.regexp ...) >> String.concat ":"  -- имхо нормально, потому что показывает, что мы берём аргумент и вон так его двигаем.
[15:14:11] <ʇsʎɯ> слушай, а нельзя ли через camlp4 замутить, что бы o был, как в SML? или . как в Haskell?
[15:14:30] <gds> "." -- нет конечно.  "o" -- можно, но как планируешь разруливать аргументы?
[15:15:41] <olegfink> gds, ну вот "как двигаем" -- это, типа, не труъ-декларативно, поэтому всякие хаскельщики и пишут так, чтобы по коду невозможно было понять, что он делает
[15:18:15] <gds> да, я как раз так и понимаю обстоятельства.
[15:20:09] <ʇsʎɯ> ну... не надо утрировать
[15:20:37] <ʇsʎɯ> это вопрос привычки, а "как двигаем" я пишу только в shell
[15:20:38] <gds> m, ты видел, как проверяют двудольность графа?
[15:20:50] <ʇsʎɯ> нет, не видел
[15:20:55] <ʇsʎɯ> а где можно посмотреть?
[15:23:11] <Typhon> не смотри
[15:23:14] <Typhon> береги нервы
[15:24:52] <f[x]> ʇsʎɯ развивает скрытые дотоле тролль-скиллы
[15:25:07] <f[x]> у участников конфы
[15:25:10] <gds> http://antilamer.livejournal.com/298055.html , но это не то.  Где-то был птсо с тыщей каментов.
[15:25:31] <Typhon> с тыщей -- у забиватора, но то последствия :)
[15:26:28] <gds> да!  Вот: http://zabivator.livejournal.com/364173.html
[15:32:03] <gds> думаю, на чём бы проверить переборную монаду.  Простое-тестовое работает, нужно что-нибудь посложнее.  Чтобы предметка была простая, а код интересный.  Лабиринт генерить и обходить переборно -- влом с точки зрения генерирования, крестики-нолики реализовывать (как в статье олега) -- влом с точки зрения реализации алгоритма.
[15:32:36] <ʇsʎɯ> Coq же ))
[15:32:55] <gds> где coq?
[15:35:56] <ʇsʎɯ> > на чём бы проверить переборную монаду
[15:37:20] <gds> мне надо её реализацию проверить.  Реализацию туда запихивать -- долго и печально.  А мне хочется в ближайший годик таки зарелизить её.
[15:37:31] <Typhon> gds: судоку всякие как?
[15:38:03] <gds> о, вариант!
[15:38:05] <Typhon> ( хотя, лично мне, например, хотелось бы посмотреть на бытовое применение )
[15:38:12] <ermine> gds: с чем-чем я парюсь?
[15:38:27] <gds> ermine: с биндингами.
[15:38:38] <ermine> gds: в каком плане?
[15:38:53] <gds> в прямом -- рисуешь их старательно, но долго.
[15:39:03] <ermine> gds: я парюсь как раз из-за того, что не подходит биндинг 1:1
[15:39:20] <ermine> никакой idl ведь не поможет, или поможет?
[15:39:33] <gds> не поможет.  Но кому-то может и помог бы.
[15:39:55] <gds> а может и помог бы тебе тоже, если бОльшую часть на нём написать, а хитрости реализовать и добавить отдельно.
[15:40:07] <ermine> gds: ты еще расскажи пчу lablgtk тоже не юзает idl
[15:40:10] <gds> Typhon: бытовое применение -- тоже для "игрушек".  Однако, если будут идеи, попробую и другое реализовать.
[15:40:44] <gds> lablgtk -- отдельная история.  Не всегда такое нужно.  Обычно проще.
[15:41:11] <ermine> gds: я вот для 1:1 биндингов применяю макросы, которые описаны в вики
[15:41:16] iNode вышел(а) из комнаты
[15:41:38] <ermine> это позаимствовано из lablgtk
[15:42:28] <ermine> надо будет перечитать свою вику и подправить в соответствии с нажитым опытом
[15:43:23] <ermine> я в реальности видела только одну либлу, построенную через idl - caml-usb
[15:43:29] <ermine> больше ниче не видела
[15:44:43] iNode вошёл(а) в комнату
[15:45:18] <ermine> генераторы биндингов - лажа
[15:45:33] f[x] видел ещё свой com компонент
[15:45:37] <f[x]> генераторы биндингов это тру
[15:45:49] <ʇsʎɯ> ermine: +1
[15:46:07] <Typhon> -1 !
[15:46:22] ʇsʎɯ на первом курсе писал байндинги на asm либу для Pascal
[15:46:26] <ʇsʎɯ> с тех пор я такой
[15:46:27] <Typhon> просто нужен клевый генератор
[15:46:44] <ermine> f[x]: ну для 1:1 и если сишние функции не модифицируют хитрым образом аргументы, то да
[15:47:19] <f[x]> и это покрывает 90% случаев, остальное надо делать на стороне камля
[15:47:38] <ermine> если сишнаяя функция типа int add(int a, int b), то можно idl, ага
[15:48:13] <ermine> f[x]: не читая документации?
[15:48:34] <ermine> а когда там int*, непонятно сходу зачем там *
[15:49:08] <f[x]> для этого в idl хинты
[15:49:35] <ermine> волшебные?
[15:52:02] <gds> есть волшебные, есть обычные.
[15:53:40] <ʇsʎɯ> "и щедро полить XML-ем..."
[15:54:06] <gds> xml не тру, s-выражения тру.
[15:57:30] <ermine> asn.1 тру
[15:57:37] <ermine> все остальное попса
[16:08:24] <ʇsʎɯ> asn.1 нитру
[16:08:32] <ʇsʎɯ> unsigned int нету
[16:09:01] <ʇsʎɯ> EBML тру
[16:18:34] serp256 вышел(а) из комнаты
[16:18:41] serp256 вошёл(а) в комнату
[16:33:20] <ermine> ʇsʎɯ: как это нет?
[16:33:38] <ermine> есть там
[16:35:14] <ermine> вот пример из лдапа:
MessageID ::= INTEGER (0 .. maxInt)
maxInt INTEGER ::= 2147483647 -- (2^^31 - 1) --
[16:38:57] <ʇsʎɯ> ermine: unsigned int
[16:39:03] <ʇsʎɯ> 0..2^32-1
[16:39:37] <ermine> и що?
[16:40:19] <ermine> это ты в терминах цэ или чего-то еще?
[16:41:34] <ermine> ʇsʎɯ: ну если тебе надо в терминах цэ, то поменяй сам чонить вон  там в определении нужную часть
[16:41:41] <ermine> шоб было 2^32
[16:41:53] Kakadu вошёл(а) в комнату
[17:02:28] iNode вышел(а) из комнаты
[17:59:48] serp256 вышел(а) из комнаты
[18:11:33] gds вышел(а) из комнаты
[18:49:29] gds вошёл(а) в комнату
[18:58:54] Kakadu вышел(а) из комнаты
[19:14:00] <ʇsʎɯ> ыыы http://gans-spb.livejournal.com/62341.html
[19:33:38] Typhon вышел(а) из комнаты
[20:20:53] ʇsʎɯ вышел(а) из комнаты
[21:16:48] Typhon вошёл(а) в комнату
[21:45:39] digital_curse вошёл(а) в комнату
[22:19:42] ygrek вошёл(а) в комнату
[23:37:50] Kakadu вошёл(а) в комнату
[23:38:55] gds вышел(а) из комнаты
[23:41:50] Kakadu вышел(а) из комнаты
[23:43:40] digital_curse вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!