Home
Objective Caml
ocaml@conference.jabber.ru
Понедельник, 2 мая 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:14:43] Zbroyar вошёл(а) в комнату
[00:16:39] komar вышел(а) из комнаты: Replaced by new connection
[00:16:39] komar вошёл(а) в комнату
[00:17:31] Zbroyar вышел(а) из комнаты
[00:59:33] ftrvxmtrx вышел(а) из комнаты
[01:02:57] ftrvxmtrx вошёл(а) в комнату
[01:03:56] Kakadu вышел(а) из комнаты
[01:07:50] ermine вышел(а) из комнаты
[01:40:43] avysk вошёл(а) в комнату
[01:42:39] avysk вышел(а) из комнаты
[02:52:57] Typhon вышел(а) из комнаты
[03:04:11] zert вышел(а) из комнаты
[04:11:01] komar вышел(а) из комнаты
[05:57:53] Digimmortal вошёл(а) в комнату
[07:02:30] Digimmortal вышел(а) из комнаты
[07:15:09] Diggimortal вошёл(а) в комнату
[08:17:42] <Diggimortal> http://existentialtype.wordpress.com прикольный блог, если кто ещё не видел
[09:06:50] Diggimortal вышел(а) из комнаты
[09:12:16] Typhon вошёл(а) в комнату
[10:03:34] Diggimortal вошёл(а) в комнату
[10:47:29] <gds> блог видел как-то, но там с тех пор появились новые статьи, прикольные.
[11:01:13] Kakadu вошёл(а) в комнату
[11:11:24] <Typhon> f[x], в млдонкей реализации tigertree (merkletree, hashtree) нету ли? и tigerhash? по идее, для direct_connect оно нужно (хотя может только для хаба?), но я быстрым поиском не нашёл.
[11:58:06] ermine вошёл(а) в комнату
[12:12:23] <gds> как же мне не нравится закатывать existential types в камловские конструкции.
например, в парвеле был бы у меня тип
addrt 'o = [= `Process of process 'o | `PreMap of exists 'i . ('i -> 'o) * addrt 'o ]
был бы, если бы не одно "но".
теперь же пока извращаюсь так:
addrt 'o = 'o -> IO.m unit
, что по выразительности совсем не то, и вообще, является работой с функциями там, где нужна работа с данными.
[12:12:48] <gds> (ну, то есть, `PreMap of exists 'i . ('o -> 'i) * addrt 'i, но это мелочи)
[12:13:09] <gds> про олеговскую статью в курсе.  кстати, ща перечитаю.
[12:15:57] <Diggimortal> а парвел это что?
[12:17:32] <gds> "параллельный велосипед", https://bitbucket.org/gds/parvel
[12:18:31] <gds> в общем, message passing, пока в пределах одного процесса, но "мы работаем над этим".
[12:20:52] <Typhon> gds, http://www.blackbirdbikes.com/images/mark40a_001.jpg логотип, btw
[12:21:07] <gds> зачот :)
[12:21:47] <Typhon> http://www.blackbirdbikes.com/quadribent.htm во как, оказывается. Квадрибент
[12:24:59] <gds> почитаю на всякий случай.
а вот статья олега -- http://okmij.org/ftp/Computation/Existentials.html , если что.
[12:25:53] <gds> кстати вот, в процессе нашлось вероятно интересное: http://okmij.org/ftp/ML/typeclasses.txt + http://okmij.org/ftp/ML/#memo
[12:35:20] Typhon вышел(а) из комнаты: Replaced by new connection
[12:35:22] Typhon вошёл(а) в комнату
[13:53:31] komar вошёл(а) в комнату
[14:33:21] <Typhon> ещё мысль о блогпосте / статьи_в_вике -- "разоблачаем мифы об окамле". туда и ссылки от олега сверху можно.
[14:33:47] <gds> клёвая идея.
[14:33:48] <komar> > Миф 1: камл жив
[14:34:08] <Kakadu> миф 2: камл мертв
[14:34:21] <gds> komar: предполагается, что будет разоблачение.  давай сходу сообрази, потом отформатируем в маркдаун.
[14:34:40] <Kakadu> миф 3: камл так же быстр как си
[14:34:41] <Diggimortal> gds: из этого http://okmij.org/ftp/Computation/Existentials.html#exist-via-objects так и не уловил разницу между объектами и existential data types
[14:35:30] <gds> Diggimortal: одно через другое реализуется несложным образом, но в общем случае это разные вещи.  Как вилка и ложка.
[14:35:46] <Kakadu> знаете, я тут с вами тусуюсь, и так до конца не понял, считаете ли вы камл живым или мертвым
[14:36:28] <gds> Kakadu: смотри по делам.
[14:37:00] <gds> в худшем случае окажется, что кто-то тут некрофил, если использует мёртвый язык.
[14:38:02] <Kakadu> gds: ОК, в делах сарказм замешать гораздо сложнее)
[15:06:25] <Diggimortal> www.cse.unsw.edu.au/~chak/papers/modules-classes.pdf
[15:13:54] <Diggimortal> а кто-нибудь понимает статьи Олега про delimited continuations в OCaml?
[15:20:25] <komar> Какого Олега?
[15:20:39] <Diggimortal> Киселёва
[15:21:21] <Diggimortal> http://okmij.org/ftp/continuations/index.html
[15:27:58] <Typhon> Олег же по умолчанию один :-) ну и если ты его не понимаешь, это ок. проблемы у тебя есть, когда ты его понимаешь ^___^
[15:28:27] <Diggimortal> это да, но вдруг :)
[15:33:50] <komar> У меня с детства другой по-умолчанию Олег. Он здесь бывает изредка.
[15:34:40] <Diggimortal> может это и к лучшему, учитывая сказнное Typhon'ом
[15:48:52] <ermine> gds: как надо по-научному енкодить протоколы с int, которые имеют заданное число байтов длины?
[15:49:40] <Typhon> int32/ int64 использовать? :-)
[15:50:02] <ermine> а инт длиной один или два байта?
[15:50:11] <Typhon> https://github.com/little-arhat/cobson/blob/master/src/binary.ml
[15:50:30] <ermine> и куда енкодить, ничего нету кроме модуля Buffer, куда надо складывать только char
[15:52:06] <Typhon> тут little-endian. http://ygrek.org.ua/p/code/bencode.ml.html <- тут, емнип, big-endian. (и тут парсинг, но в млдонкей можно найти и обратно тоже).
[15:53:03] <ermine> де там крошечные инты?
[15:54:10] <Typhon> инт он 4х байтный же (если инт32). какие они могут быть крошечные? крошечный, одно байтовый "инт" -- это char.
[15:55:01] <ermine> и вообще тоска это - конвертить в char
[15:55:22] <Typhon> так а что надо то? :-)
[15:56:58] <ermine> а как делают на чистом цэ?
[15:57:11] <ermine> непорочном цэ
[15:57:50] <Kakadu> мне когда то рассказывали про стек tcp/ip в ядре линукса
[15:58:06] <Kakadu> там пишутся enum'ы
[15:58:19] <Kakadu> где указывается, что под вот это идет 1 байт
[15:58:19] <Typhon> union ы скорее
[15:58:21] <gds> Diggimortal: про delimited continuations -- примерно понятно, в общих чертах, но вообще мутноватая штука, честно говоря.  Высокоуровневая, но гемор осуществлять её работу в классических языках программирования -- сам олег сколько долбался, чтобы их на окамле завести нормально.  Но, наверное, я не понимаю чего-то серьёзного про них, что бы перекрыло их неочевидности/недостатки.
[15:58:25] <Typhon> int | char [4]
[15:58:26] <Kakadu> под вот это 2
[15:59:14] <gds> ermine: по идее, если целые числа в двоичном представлении, лучше network byte order использовать.
[15:59:43] <Diggimortal> gds: а в чём гемор? может Олег долбался потому, что дизайн языка/рантайма не предусматривает такого?
[16:00:01] <Kakadu> Typhon: там были структуры с битовыми полями:
struct s {
        int status:1;
        int ready:1;
        int type:3;
}
[16:00:58] <gds> Diggimortal: да, конечно, не предусматривает.  Но попробуй сделать такой язык, который будет иметь и delimcc, и эффективно работать на фоннеймановской архитектуре.
То есть, в теории, можно, но не представляю.  Копировать стек -- неспортивно, сразу скажу :)
[16:00:58] <Typhon> gds, смотря как протокол хочет. вот по моей ссылке, bson хочет литл ендиан. и как в коменте указано, в жейн стри коре это есть.
[16:01:46] <gds> Typhon: верю про протокол, но если ermine спрашивает именно это, значит она имеет свободу сделать так или иначе.  Либо я не догнал.
[16:06:52] <ermine> да я эстет
[16:07:45] <ermine> короче надо посмотреть в сишные коды и что-то решить
[16:07:47] <Typhon> ну можно touch stub_binary.c и вперёд, накатаешь либку для этого, может спасибо скажут :-) но вообще имеет смысл глянуть в батарейки и жейнстрит на предмет этого.
[16:08:00] <Typhon> только я не понял, чем вариант с чарами не устраивает :-)
[16:08:22] <ermine> но двигать влево-вправо и сувать в char или оттуда извлекать - как-то попсово
[16:08:51] <gds> зато это точно работает.
[16:09:41] <ermine> и не типизировано строго
[16:10:26] <ermine> надо спросить у соседей из х-ля, как они извращаются там
[16:10:29] <Typhon> как, не типизировано? int32 -> string. то, что там не окажется больше 4 байтов гарантировано "внешними инвариантами"
[16:10:43] <Typhon> а у них есть типы, Word4 , всякие, не?
[16:10:53] <Typhon> Data.Binary и прочие изыски.
[16:11:47] <ermine> ага
[16:12:27] <ermine> можно передать на сторону цэ структуру с IntByte1 n | IntByte2 n ... и нехай оно там енкодит
[16:12:40] <ermine> никаких Buffer на стороне камля
[16:14:30] <Typhon> что такое IntByte1 я не пойму? :-)
[16:14:38] <Typhon> а если я туда 666 передам, что будет?
[16:15:22] <ermine> ну sum
[16:15:43] <ermine> а можно и иначе - сгенерить код для енкодинга-декодинка по какому-нить описанию на цэ
[16:15:58] <ermine> надо чонить вкусненькое изобрести
[16:16:29] <ermine> жалко, что протокол не asn.1
[16:20:41] <gds> ermine: да нужны тебе эти asn.1!111  бери http://bitbucket.org/gds/dumbstreaming !1111
[16:21:50] <Typhon> created dumbstreaming
2 minutes ago
[16:21:55] <Typhon> спылусжару!
[16:22:51] <gds> ога!  для блага чятика!1
хотя последние изменения там от 11..12 дней.
[16:24:11] <gds> но вообще там сейчас не хватает такой фишки, как "второй уровень вложения".  Видимо, в первой строке будет что-то типа "длина \n" для одной строки, и "длина количество_кусков длина_куска1 длина_куска2 ... \n" для нескольких строк.
[16:24:29] <gds> однако сама идея не очень нравится, поэтому пока воздерживаюсь.
[16:25:35] <gds> tnetstrings можно было бы взять, да нужна была лёгкость взаимодействия с тупыми языками, где даже их реализовать непросто.
[16:25:43] <Typhon> gds, tnetstrings
[16:26:08] <Typhon> тупые языки, предполагаю, х-ль? ^_^
[16:26:22] <gds> не хочется на сишечьке и на жабоскрипте их асиливать.
ну и на х-е тоже надо, кстати.
[16:26:32] <Typhon> на жабоскрипте они есть!
[16:26:52] <gds> это хорошо, буду думать.
[16:27:07] <Typhon> насчёт си -- не знаю. по идее должно быть несложно, глянь на питоновскую реализацию -- там же императивщина простая, парсер на 20 строк, штоле.
[16:28:07] <Typhon> https://github.com/rfk/tnetstring а вот и на си, кажется.
[16:31:03] <ermine> а давайте наконец перейдем на цэ
[16:31:14] <Typhon> ermine, оно плохое
[16:31:16] <gds> всё, понял.  Да, всё просто там, сам бы реализовал на чём угодно.  Однако одно напрягает -- я ж такой извращенец, который уважает потоковую обработку, а тут тип идёт в конце сообщения.  Потоковая обработка -- например, напустить итераты на этот поток.
[16:31:21] <ermine> в камле одни костыли
[16:31:42] <gds> ermine: зато зырь, как ловко бегать на этих костылях!
[16:32:21] <ermine> gds: сначала сплюнув кровавую соплю
[16:34:17] <gds> Typhon: то есть, например, у меня протокол дебильнейший, тупее некуда (оттуда и название), но, даже модифицировав его так, как сказал (1 строка была, N строк стало), я смогу, не читая всё в память, обрабатывать с постоянной используемой памятью.  А мне это важно -- точнее говоря, если есть похожие решения, но одно позволяет потоковую обработку, а другое -- нет, то я предпочту позволяющее, если нет других факторов.  А мне, фактически, только список строк кодировать надо.
[16:35:25] <gds> хотя вот, если брать серьёзные структуры данных, в том числе вложенные/рекурсивные, tnetstrings очень хороши.
[16:35:54] <gds> а мне от них надо "общаядлина:длина1:строка1,длина2:строка2,...]" и всё.
[16:38:22] <Typhon> если точно в будущем будут только строки и не лень реализовывать на других языках, то можно, думаю, и своим протоколом. надо только оценить, что придётся переписать, если понадобятся хитрые структуры :-) то что в тип в конце тоже не нравится, потоковое и сам люблю. зато более менее стандартное и простое.
[17:13:48] Kakadu желает всем никогда не деплоить сайты на asp.net. Там всё черезжопу сделано
[17:25:31] Kakadu сейчас будет писать документацию по развертыванию, не умея развертывать
[17:41:34] Typhon вышел(а) из комнаты
[17:44:10] <gds> Kakadu: писалось сюда, оформилось там: http://gdsfh.dreamwidth.org/3935.html
[17:52:44] <Kakadu> в любом случае мне плохо
[17:54:47] <Diggimortal> gds: http://gdsfh.dreamwidth.org это вместо жыжыцы или в дополнение?
[17:55:08] <gds> Kakadu: а многие и не знают, что может быть хорошо.  Радуйся.
[17:56:29] Kakadu представил вместе gds старого и седого таурена-шамана, который сидит у костра с трубкой мира и учит молодняк жизни
[17:56:46] <gds> Diggimortal: это разного формата бложики.  Жыжыца -- серьёзная, ровная, пацанская, и я не хочу нарушать ожиданий читателей.
[17:57:41] <gds> ну про трубку и "у костра" -- метко.  Разного вида и наполнения трубки уважаю, как и костры.  Они позволяют многое утрясти в себе.
[18:03:41] <ermine> развертываем трубки?
[18:04:00] ermine сходила за ништяками в виде кока-колы и пирожных
[18:04:33] <ermine> это точно лучше чем вонючие трубки
[18:05:17] <gds> у меня пока трубка только для табака в наличии, а кодить под табаком не очень хорошо.  А надо как раз кодить.  Так что не развёртываем.
[18:05:54] <Diggimortal> gds: чем {con;fin} от with идиомы отличается? первый раз такое ({con;fin}) слышу, а нагуливается какой-то мусор.
[18:06:43] <gds> Diggimortal: да, это не гуглится, недавно асилил.  От with отличается лёгкостью комбинирования.  Сейчас процитирую.
[18:06:56] <ermine> кодить под кока-колой и прочими сладкими ништяками клево!
[18:07:14] <ermine> мозг без сладкого тупит
[18:08:08] <gds> о, наверное все заметили, как я отупел в последнее время, но ни сахара, ни лёгких углеводов не потребляю вообще.  сахарозаменитель какой-то в случае кофе, разве что.  захотел -- и всё.
[18:09:15] <ermine> шоколадку возьми
[18:12:00] <gds> Diggimortal: http://paste.in.ua/2272/ -- вот это.  Что интересно, что поверх любой монады, умеющей обработку ошибок, это можно навернуть.  Собственно, нужен был W(M).bindres и with_alt оттуда.  Оно минималистично, потому что не библиотека, а просто модуль, написанный для конкретных дел.
[18:14:30] <Diggimortal> +a это a в контравариантной позиции?
[18:14:52] <gds> в "ко".
[18:15:16] <gds> то есть, по отношению к подтипизации оно монотонно, если можно так сказать.
[18:15:59] <Diggimortal> да, не зря в шарпе In и Out юзают - легче запомнить
[18:17:07] <gds> удивительно, я бы не применял In/Out к подтипизации.
[18:17:35] <gds> а контрвариантное -- это мои "адреса" в парвеле сейчас: там функция "premap" будет, premap : ('ext -> 'int) -> addrt 'int -> addrt 'ext.  И уже собираюсь читать про "аппликативные функторы" по-серьёзному.
[18:18:13] <Diggimortal> оно про использовании типа в сигнатуре функции там - слева или справа от стрелки
[18:18:40] <Diggimortal> исходя из этого легко понять канают ли под/над типы
[18:20:54] <gds> понял.  Тут тоже несложно: подтипизация типа "увеличивается" так же, как у параметра ("+"), или обратно ("-").
[18:21:09] <Diggimortal> cons это конструктор, а fin - финализатор?
[18:21:29] <gds> да, монадные соответственно.
[18:22:12] <Diggimortal> это общепринятое соглашение?
[18:22:18] <gds> ни в коем случае.
[18:22:47] <gds> это -- мои нужды, мой код.  Мне это помогло кое-где, да и сама идея показалась неплохой, потому и опубликовал.
[18:23:11] Typhon вошёл(а) в комнату
[18:26:14] <gds> Diggimortal: то есть, имея cons+fin для данного ресурса, with-функция осилится легко.  А зачем with-функцию было разбивать на две -- как раз чтобы удобно было комбинировать их.  Был какой-то случай, когда так и не удалось.  (вроде бы, как раз, в случае with-функций для монад.  Тот же олег смог бы, но я -- нет.)
[18:41:19] ftrvxmtrx вышел(а) из комнаты
[18:44:23] ftrvxmtrx вошёл(а) в комнату
[18:45:26] Typhon вышел(а) из комнаты
[18:45:46] Typhon вошёл(а) в комнату
[18:56:51] ftrvxmtrx вышел(а) из комнаты
[18:57:39] ftrvxmtrx вошёл(а) в комнату
[19:03:53] komar вышел(а) из комнаты
[19:04:03] komar вошёл(а) в комнату
[19:15:21] ftrvxmtrx вышел(а) из комнаты
[19:16:22] ftrvxmtrx вошёл(а) в комнату
[19:26:28] <Diggimortal> преза для задротов http://adoseoflogic.blogspot.com/2011/05/slides-about-martin-lof-type-theory.html - надо полистать
[19:29:01] <Diggimortal> это https://github.com/mzp/ocaml-hoogle#readme никто не пробовал?
[19:29:50] <gds> первое -- не для задротов, судя по первым 30 слайдам.
[19:31:59] <Typhon> Diggimortal, search.ocaml.jp есть
[19:32:49] <Typhon> ну да, введение мы и сами читали и у пирса, и в вводных книжках по фп. писра бы целиком осилить, найти время и силы :-)
[19:34:09] <Diggimortal> Typhon: search.ocaml.jp - отлично, жаль, что только stdlib и extlib
[19:34:54] <Typhon> *пирса (что-то с руками, в последнее время, видимо :-) )
[19:35:44] <Typhon> Diggimortal, они как бы намекают, что "а нам больше и не надо" %)
[19:37:11] <gds> слайды прочитал, но там не очень хорошо с теоретической точки зрения.  1. вводятся множества, 2. вводится равенство.  Эти штуки ограничивают.  В категориях и морфизмах результаты были бы более общими, это интереснее.
[19:42:16] <Diggimortal> вообще да - не для задротов, вот через ТК было бы для задротов
[19:47:41] ermine уже напрочь забыла, что такое GADT и как этот фрукт юзать, блин
[19:47:49] <ermine> надо опять читать какой-то туториал!
[19:50:54] <ermine> а тут кто-нить юзает gadt так, что уже и не мыслит свою жизнь без него?
[19:51:23] <Typhon> их же ещё нету?
[19:51:57] <ermine> целиком или муляжа мало?
[19:52:06] <ermine> в 3.12 чота такое вроде есть
[19:52:14] Typhon видел мини статью рядом с примером использования first class modules, но в итоге выпилил первоклассные модули и заменил на функции обычные :-)
[19:52:14] <gds> я пробовал олеговские gadts, через значение-свидетеля, но задач под это не было особо.
[19:55:16] ermine набрала три заветных слова в гугле "ocaml gadt tutorial" и увидела то, о чем тифон говорил
[19:55:56] <ermine> у Яны статьи клепают умные, да
[19:56:39] zert вошёл(а) в комнату
[19:57:47] <Diggimortal> ermine: Яна это JSC?
[19:58:32] <ermine> ага
[19:59:32] <ermine> а вы как русифицируете слово Jane?
[20:00:34] <gds> до "уличная яна" не дохожу.
[20:05:34] <Diggimortal> http://en.wikipedia.org/wiki/Jane_%28given_name%29
[20:05:44] <Diggimortal> там варианта 4
[20:42:49] Diggimortal вышел(а) из комнаты
[20:45:57] <gds> функторы обломали меня.  http://paste.in.ua/2273/ .  вкратце -- так: был тип F : IO -> sig .. end, был Parvel.Make : F, был Parvel_IO : IO, и был Parvel_lwt.Port : F -> sig .. end.  На основании IO делаю Parvel.Make(IO), а на основании Parvel.Make делаю Parvel_lwt.Port(Parvel.Make), а Parvel_lwt.Port работает уже с lwt, а не с абстрактным IO.  И вот, типы не совпадают.
В общем, вся эта функториальная хрень меня задолбала, поэтому уберу функторы, сделаю конкретный Parvel_IO с реализацией нужных функций, и, в случае чего, будет другой Parvel_IO поверх другого "асинхронного движка" (в том числе systhreads).
Если же есть идеи, как обойтись без таких жостких мер -- сообщите.
[20:46:42] <gds> о наличии проблемы говорит в том числе то, что "вкратце" получилось совсем не кратким.
[21:19:44] <Typhon> может быть полезным: http://learnyouahaskell.com/zippers
[21:27:12] <Kakadu> komar: https://github.com/camlunity/wysiwiki/blob/master/src/miniwiki.eliom#L193
Тебя не смущает такой способ юзать post-сервис?
[21:27:22] <Kakadu> может у меня какая-то тупая ошибка....
[21:29:13] <komar> А что должно смущать?
[21:29:22] <komar> Мне просто это сложно читать, я новых функций не знаю и подсветки нету.
[21:30:16] <Kakadu> komar: не знаю. В идеале ты должен был сказать почему сервис не вызывается (почему https://github.com/camlunity/wysiwiki/blob/master/src/miniwiki.eliom#L146 не печатается)
[21:30:49] <Kakadu> http://paste.org.ru/?7x6lkh
[21:31:36] <komar> Ничего не скажу, тыкай в ермайн.
[21:32:56] <Kakadu> ermine: птык
[21:37:53] <ermine> чо?
[21:38:22] <Kakadu> ты хорошо понимаешьь как вызывать post-сервис?
[21:38:25] <ermine> а, в пастбин зырить...
[21:38:51] <ermine> а че там сложного-то
[21:39:01] <ermine> зарегать его как и get-сервис
[21:39:17] <ermine> пост-сервис надо указать в создании пост-формы
[21:39:43] <Kakadu> ну я указал в 141й строчке
[21:39:53] <Kakadu> мне интересно почему он не вызывается
[21:40:10] <Kakadu> он сразу прыгает на другую страници
[21:40:26] <ermine> а хэндлер сабмита там есть и зареган функцией register?
[21:40:28] <Kakadu> не знаю ли, случайно ли что она написана в fallbackе сервиса
[21:40:39] ermine еще не смотрела в пастбин
[21:40:51] <Kakadu> хендлер сабмита?
[21:40:55] <Kakadu> ааа
[21:41:00] <Kakadu> т.е. пост-сервис мой?
[21:41:44] <Kakadu> Eliom_output.Html5.register_post_service я вызываю
[21:41:59] <ermine> ну там три действия надо: указать пост-сервис и его типы, пост-форму, которая хочет пост-сервис и обработчик пост-сервиса, который регистрируется
[21:42:16] <ermine> можно конечно совместить первое и третье в одно
[21:42:29] <ermine> надо смотреть в пастбин?
[21:42:38] <Kakadu> а без постформы можно?
[21:43:14] <Kakadu> у меня нет постформы
[21:43:18] <ermine> можно конечно
[21:43:25] <ermine> тогда только первое и третье
[21:43:46] <Kakadu> ну тогда думаю, что надо смотреть в пастебин
[21:44:15] <ermine> а ты как его вызываешь без формы?
[21:44:25] <ermine> оно любит мультипарт енкодинг
[21:44:40] <Kakadu> я вызывю по onclickу кнопки
[21:44:48] <ermine> хотя наверное это необязательно
[21:45:24] Kakadu не знает про multipart encoding ничего
[21:46:26] <ermine> а ты приделай постформу, запусти tcpflow -i lo0 -port 80 и посмотри, как ты будешь вводить данные в форму
[21:46:36] <ermine> вот такой вот метод обучения попугайством
[21:47:09] <Kakadu> кхм, вообще то у меня изначально была пост форма, от которой я отказался
[21:47:27] <Kakadu> я переделываю пример eliom.dev/tests/miniwiki
[21:47:48] <ermine> у тебя там первое и третье в одном
[21:47:55] <Kakadu> дада
[21:49:05] <Kakadu> черт, висит сайт оксигена и одновременно оксигенового майллист архива
[21:49:20] <Kakadu> видимо французские админы накосячили
[21:50:00] <Typhon> ocsigen.org работает
[21:51:43] <Kakadu> ну тогда где-то в конце https://sympa.mancoosi.univ-paris-diderot.fr/wws/info/ocsigen я описывал проблему
[21:58:45] ermine еще не читала третью часть туториала "mix client/server and server code"
[22:04:36] komar вышел(а) из комнаты: Replaced by new connection
[22:04:36] komar вошёл(а) в комнату
[22:04:38] <ermine> кстати, два месяца назад в мейллисте я спрашивала пчу не работают ссылки и потом объясняла пчу я использую client/server для server-side code, мне объясняли, что ненада для этого юзать client/server application, но спустя два месяца спустя я обнаружила, что французы воплотили в жизнь мои "идеи", оторвав от удобной модели трансляции сессий ненужную клиентскую часть
[22:17:17] <Kakadu> оффтоп: можно ли сделать html форму полностью невидимой?
[22:20:04] <Typhon> скрыть див, в котором она живёт, но ты делаешь косытль, судя по всему :-)
[22:20:20] <Typhon> лучше рассылочку попинать с доками на тему пост_сервисов без формы
[22:20:34] <Kakadu> рассылочку оксигена я попинал
[22:23:29] <Kakadu> https://sympa.mancoosi.univ-paris-diderot.fr/wws/arc/ocsigen/2011-05/msg00000.html
[22:23:36] <Kakadu> тут я писал что я хочу
[22:35:21] <ermine> форму от елинкса не скрыть
[22:36:18] <Kakadu> потому что в елинксе нет джаваскрипта?
[22:36:46] <ermine> его туда можно вкомпилить
[22:36:55] <ermine> а я компиляю без него :)
[22:37:24] ermine тут побегала малость по квартире
[22:40:36] <ermine> ща посмотрю что там в третьем туториале особенного про посты
[22:43:49] <ermine> Kakadu: а кто у тебя в коде делает собственно POST?
[22:44:38] <Kakadu> 193я строчка
[22:44:48] <Kakadu> Eliom_client.call_service %service_save_page_post %page "asdf"
[22:46:32] <ermine> и чо, компиляция на строе 192 не спотыкается?
[22:46:37] <ermine> интересно
[22:47:36] <Kakadu> тебя смущает %service_save_page_post ?
[22:49:14] <ermine> меня смущает  let x : int =
[22:49:24] <Kakadu> ааа
[22:49:26] <Kakadu> это старое
[22:49:31] <Kakadu> я так тип проверяю
[22:49:40] <Kakadu> считай что этого нет
[22:49:58] <Kakadu> =)
[22:51:00] <ermine> а оно вообще может вернуть?
[22:51:06] <ermine> оно ж там lwt
[22:51:38] <ermine> let _ = в следующей строке не менее интересное
[22:52:04] <ermine> короче, проблема наверное в mix lwt/plain
[22:52:49] <ermine> посмотри по доке что они реально возвращают, если там Lwt.t, то не стоит делать let _ = ...
[22:53:38] ermine пока пытается хотя бы дописать задуманное начало камлевой ноды
[23:05:43] gds вышел(а) из комнаты
[23:15:14] <Typhon> при поиске "ocaml lwt" гугл предлагает заменить это на "ocamlnet"
[23:15:37] <komar> Мде.
[23:25:28] <Typhon> btw, х-ль: http://dl.dropbox.com/u/7365614/motivator7e05ea841a0f85c03ad8c4035676a294c706011e.jpg
[23:27:57] <zert> гг
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!