[13:16:10] <alexey.veselovsky> ..
[13:51:21] <alexey.veselovsky> vlad2: про вред оптимизаций! пруф! ценное свидетельство! http://www.rsdn.ru/forum/cpp/2419260.flat#2419260
[15:29:18] <mister-kemet> а зачем ада в образовании?
[15:43:41] <alexey.veselovsky> mister-kemet: ну, кошерный язык же
[15:43:52] <alexey.veselovsky> ядро весьма аккуратно сделано
[15:44:07] <alexey.veselovsky> настолько, что мне периодически жутко хочется из оберона сделать аду :-)
[15:45:51] <alexey.veselovsky> хотя конечно c++ лучше
[15:45:56] <alexey.veselovsky> хотя я не объективен :-)
[15:51:12] <alexey.veselovsky> система типов в Аде хороша. После нее система типов в Обероне - полная фигня
[15:51:17] <alexey.veselovsky> Да и почти везде.
[16:46:19] <vlad3> Да, я ж говорил - alloca это зло ;)
[16:46:46] <vlad3> Удел микроконтрольщиков. И то, если у них стек в железке резиновый.
[16:46:57] <alexey.veselovsky> vlad2: не-ет, это оптимизация зло!
[16:47:03] <alexey.veselovsky> все из за инлайнов!
[16:47:04] <vlad3> Дело было в 2007, может уже и поправили.
[16:47:25] <alexey.veselovsky> стоп. с фига ли alloca это удел микроконтроллеров? уж там то стек совсем мелкий.
[16:47:36] <alexey.veselovsky> это на десктопе этого стека хоть жопой ешь.
[16:47:48] <vlad3> Зло. Но формально в даном случае - бага компилятора.
[16:48:10] <vlad3> Я ж говорю - и то, если стек резиновй :)
[16:48:35] <alexey.veselovsky> это на серверах и десктопах он резиновый
[16:48:56] <vlad3> Ну значит вообще зло :)
[16:49:12] <alexey.veselovsky> ибо ulimit -s unlimited никто не отменял :-)
[16:49:36] <alexey.veselovsky> и в этом плане стек от кучи вообще то ничем не отличается. что malloc что alloca имеют примерно равные шансы навернуться
[16:50:09] <alexey.veselovsky> О! Предлагаю для пущей безопасности выпилить из оберона NEW!
[16:58:23] <alexey.veselovsky> религиозные разборки: http://forum.oberoncore.ru/viewtopic.php?f=105&t=3938
[17:03:56] <vlad3> Не. malloc можно проверить (на нормальных ОС), а вот alloca - уже все.
[17:05:04] <alexey.veselovsky> какие проблемы alloca проверить?
[17:05:35] <alexey.veselovsky> по крайней мере на нормальных системах :-)
[17:05:57] <vlad3> А что, он может NULL вернуть?
[17:06:34] <vlad3> The alloca() function returns a pointer to the beginning of the allocated
      space.  If the allocation causes stack overflow, program behavior is
      undefined.
[17:06:45] <vlad3> С линуксячего мануала ;)
[17:07:33] <vlad3> The malloc() and calloc() functions return a pointer to the allocated memory
      that is suitably aligned for any kind of variable.  On error, these functions
      return NULL.
[17:07:36] <vlad3> Оттуда же
[17:07:44] <alexey.veselovsky> а поведение у malloc там defined? :-) реально, а не по докам
[17:08:05] <vlad3> Реально - недосистема, я ж упомянул ;)
[17:08:41] <alexey.veselovsky> недосистема это винда. там даже ulimit -s unlimited нет
[17:08:53] <alexey.veselovsky> и там для потока нельзя сделать стек меньше 256 Кб
[17:08:58] <alexey.veselovsky> говнецо а не система
[17:08:59] <vlad3> В винде тоже можно увеличивать размер стека.
[17:09:12] <alexey.veselovsky> бесконечно? :-) не на этапе компиляции?
[17:09:27] <alexey.veselovsky> и не имея доступа к исходникам?
[17:10:20] <alexey.veselovsky> в маздае я могу сделать fiber со стеком скажем в 512 байт?
[17:10:44] <vlad3> http://msdn.microsoft.com/en-us/library/windows/desktop/ms686774(v=vs.85).aspx
[17:11:47] <alexey.veselovsky> Reserve sizes 4k and below are rounded up to 1MB
[17:11:50] <alexey.veselovsky> замечательно
[17:15:11] <alexey.veselovsky> недосистема
[17:32:46] <mister-kemet> alexey.veselovsky: а что там с ядром и системой типов?
[17:33:25] <alexey.veselovsky> там очень няшная система типов.  в отличае от того же Оберона там можно создавать собственные не структурные типы.
[17:34:03] <alexey.veselovsky> советую зачесть соответствующие главы вот этой книжки: http://ada-ru.org/V-0.4w/index.html
[17:38:45] <mister-kemet> как многа там мелких букаф, надеюсь лишних нема )

[17:41:34] <mister-kemet> подозреваю, что такие типы можно клепать в активном обероне через рефлексию с помощью систем.нью и такой-то  матери
[17:46:52] <alexey.veselovsky> нельзя
[17:47:07] <alexey.veselovsky> это же статическая типизация.  в этом весь цимес
[17:47:15] <alexey.veselovsky> компилер стукнет по башке в случае чего
[17:49:46] <alexey.veselovsky> vlad2: кстати, в случае alloca тоже можно вырулить: The SetThreadStackGuarantee function sets the minimum size of the stack associated with the calling thread or fiber that will be available during any stack overflow exceptions.
[17:49:55] <alexey.veselovsky> так что нет принципиальных отличий от malloc
[17:55:52] <mister-kemet> вон оно что, тогда да, нужная вещь, это я про адские типы
[17:57:04] <mister-kemet> я вот хотел в активоберон строковой тип добавить, а только через правку исходников получается
[18:19:50] <egp> ыыыы собрались пейсатели аутоматоу
[18:20:03] <egp> хвалят разные аутоматные формализьмы
[18:21:07] <alexey.veselovsky> egp: это ты про кого?
[18:21:16] <egp> а по мне так шо в лоб шо полбу - всё одно аутоматный формализьм :)
[18:21:19] <egp> да про нас
[18:21:33] <alexey.veselovsky> да хоть пулеметный
[18:21:41] <alexey.veselovsky> кстати, вот полезное нашел и выложил: http://oberspace.dyndns.org/index.php/topic,350.0.html
[18:22:48] <mister-kemet> alexey.veselovsky: начал читать с самого навчалав, думаю это более правильно чем выдрать кусок и потом чесать репу с мыслями куда ж его прилепить, но слово элаборация меня уже насторожило ))
[18:22:50] <egp> ну амбалдеть. в натуре походу полезное
[18:23:36] <alexey.veselovsky> mister-kemet: ну, французы же! ;-) это, кстати, официальный Адский термин (в стандарте есть).
[18:24:09] <egp> а чё на Буране в натуре МОДУЛА летала?
[18:24:25] <alexey.veselovsky> но вообще, для вот этой вот первоначальной встряски/приведения программы к состоянию готовности к исполнению, действительно неплохо бы иметь отдельный термин
[18:24:50] <alexey.veselovsky> egp: она до сих пор на спутниках летает
[18:24:55] <egp> круто
[18:25:08] <egp> а JPL всё лысьп, лысьп
[18:25:11] <alexey.veselovsky> причем они всеми силами хотят от нее избавиться в пользу Ады :-)
[18:25:20] <alexey.veselovsky> но не могут.
[18:26:34] <egp> праклятыи паскулисты
[18:26:51] <egp> я когда в ФМШ учился, у нас в компутерном классе были две касты
[18:26:59] <egp> асмисты и паскулисты
[18:27:08] <alexey.veselovsky> а там любой другой язык особого профита не принесет. си и модула это вообще почти один и тот же язык :-)
[18:27:26] <mister-kemet> ну как я понял элаборация эта та же инициализация, только в профиль )
[18:27:37] <egp> у паскулистов были люто тормозные проги - там пришёл дядя сделать клёвый графический АПИ для паскуля для MSX
[18:27:40] <alexey.veselovsky> это чуть более широкое понятие.
[18:27:51] <egp> а ему ктото написал каку которая через биос всё делает
[18:28:29] <egp> а асмисты вместо тормознючего биоса юзали прямо хардварь, благо она на MSX известная (вариабельности как в ПЦ нету)
[18:30:50] <alexey.veselovsky> а что мешало прямо из паскаля использовать хардварез?
[18:31:02] <egp> ну никто не озаботился сделать такой апи
[18:31:34] <egp> там просто в Turbo Pascal не было встроенного асма, а был только встроенные машкод-последовательности
[18:31:41] <egp> вот, никто не озаботился сделать
[18:32:27] <alexey.veselovsky> гм. зачем API? напрямую дергать из паскаля не?
[18:32:44] <alexey.veselovsky> без асма
[18:32:54] <egp> ну напрямую - это через машкод
[18:33:07] <egp> там не дёргать
[18:33:12] <alexey.veselovsky> напрямую - это лезть по конкретным адресам
[18:33:13] <egp> там программировать регистры
[18:33:18] <alexey.veselovsky> + прописаться в вектора прерываний
[18:33:47] <egp> там токо один вектор
[18:33:54] <egp> rst #38
[18:34:07] <egp> и rst 0 - это ребут
[18:34:13] <alexey.veselovsky> ладно, нюансов паскаля тех времен и той железки я не знаю.
[18:34:47] <egp> ну короче не суть важно - просто никто не запрогал либу для прямого доступа к харду.
[18:34:52] <alexey.veselovsky> просто пока я на c++ могу сделать все что нужно на msp430. без API какого-либо (либы не использую в принципе)
[18:35:05] <alexey.veselovsky> идет вполне себе прямой доступ ко всему харду
[18:35:22] <egp> ну у вас хардварь известна. В таких условиях приятно писать
[18:35:43] <alexey.veselovsky> ну и в msx вроде была известна, не?
[18:35:49] <egp> да, и на мсх
[18:36:12] <alexey.veselovsky> да, когда пишешь под конкретную железяку получается проще и эффективней
[18:36:37] <egp> меня всё подмывает сделать какую-нить игру для писи - но останавливает многообразие граф плат
[18:36:51] <egp> всякие слои неохота юзать
[18:37:08] <alexey.veselovsky> сейчас и без слоев там слоев много :-)
[18:37:19] <alexey.veselovsky> современные графоплаты же сложные. сложнее всего msx вместе взятого
[18:44:28] <egp> эх тоска тоска ладно покину я вас
[18:44:40] <alexey.veselovsky> bye
[19:02:08] <alexey.veselovsky> на программировании:
-Михаил, согласны ли вы с тем, что нужно использовать целый тип?
-Да
-Надежда, согласны ли вы с тем, что нужно возвращать результат?
-Да
-Объявляю я вас аргументом и функцией! Можете линковаться!
[19:05:40] <mister-kemet> хехе
[19:32:46] <mister-kemet> юмористы
[19:33:19] <alexey.veselovsky> ?
[19:42:15] <egp> вот почитайте кому интересно http://retroid.ru/ - интервью с создателями игр для 8-биток
[19:43:37] <alexey.veselovsky> egp: возьми какой-нибудь микроконтроллер, прикрути к нему LCD, и напиши игру :-)
[19:44:01] <alexey.veselovsky> LCD частенько используют от мобильников всяких
[19:45:59] <egp> а в качестве микроконтроллера берут плиску =) шучу
[19:46:11] <egp> а кстате
[19:46:20] <egp> можно от старого ноута взять лцд
[19:46:23] <egp> :))))))))))))
[19:46:53] <alexey.veselovsky> с таким ЛСД будет геморрой если на твоем МК памяти мало.
[19:47:03] <egp> ок
[19:47:08] <alexey.veselovsky> брать желательно ЛСД который фреймбуфер держит у себя
[19:48:32] <alexey.veselovsky> vlad2: а что это за хрень такая в js?
[19:48:37] <alexey.veselovsky> var http = require('http'),
 sys  = require('sys'),
 fs   = require('fs'),
 io   = require('socket.io');
[19:48:52] <alexey.veselovsky> смахивает на импорт модулей с одной стороны, с другой - это ж переменные!
[19:49:22] <egp> обьекты наверное
[19:49:31] <egp> вертаются
[19:49:40] <egp> с методАми
[19:49:42] <alexey.veselovsky> да там все естьобъект. вопрос в том, что это означает :-)
[19:49:52] <alexey.veselovsky> объекты там есть, а классов нет ;-)
[19:50:10] <vlad2> Это nodejs
[19:50:28] <vlad2> Это (еще одна) система модулей
[19:50:42] <vlad2> Каждый придумывает свою.
[19:50:46] <alexey.veselovsky> ну, node.js это сишное ядро прежде всего (с парсером http от nginx'a)
[19:50:58] <alexey.veselovsky> ага. значит еще одна система модулей. ясно
[19:51:11] <alexey.veselovsky> и естественно это все в случае чего падает в рантайме, да?
[19:51:31] <vlad2> Насколдько я понимаю - это выглядит как функция, но на самом деле парсится непосредственно движком и движок подгружает что надо.
[19:51:43] <egp> флибустьеры прАстороФ ЖабасКриптА
[19:51:45] <vlad2> Конечно в рантайме.
[19:51:55] <alexey.veselovsky> дерьмо
[19:52:02] <vlad2> Кстати, у меня вчера откровение случилось...
[19:52:14] <alexey.veselovsky> ты полюбил ObjC и js? ;-)
[19:52:33] <vlad2> /me наконец понял, как выглядит каноническое ООП наследование на жабоскрипте
[19:52:45] <alexey.veselovsky> и как же?
[19:52:52] <vlad2> У...
[19:53:03] <vlad2> Причем я несколько раз пытался найти в гугле - нет.
[19:53:09] <vlad2> Точнее есть, но неправильно.
[19:53:27] <egp> class.vtable.method1()
[19:53:40] <egp> object.vtable.method1()
[19:53:42] <vlad2> В жабаскрипте есть instanceof с одной стороны
[19:53:50] <vlad2> С другой стороны там нет наследования.
[19:54:07] <alexey.veselovsky> там же вроде и классов нет тащемто
[19:54:13] <vlad2> Дык!
[19:54:15] <vlad2> Вот!
[19:54:18] <vlad2> Откровение!
[19:54:30] <vlad2> Класс - должен быть выражен как обжект.
[19:54:40] <vlad2> (И прикручен к обжекту вручную)
[19:55:17] <vlad2> Корче очень длинный пример, потом кину.
[19:55:20] <alexey.veselovsky> ну, эмм.. вот если бы ты ObjC потрудился изучить хоть немного, то откровение тебе пришло бы много раньше :-)
[19:55:22] <egp> явер бы сказал хахаха
[19:55:26] <egp> вово
[19:55:39] <alexey.veselovsky> Ибо в ObjC сласс это объект :-)
[19:55:46] <vlad2> Не-не, вы подождите примера. Там мдействительно все через задницу.
[19:55:47] <alexey.veselovsky> некого класса
[19:55:53] <alexey.veselovsky> который тоже объект
[19:55:59] <alexey.veselovsky> ок, подождем
[19:55:59] <vlad2> Метаклассы и все такое - это понятно.
[19:56:21] <alexey.veselovsky> там бесконечная рекурсия, точнее там кольцевая ссылка.
[19:56:24] <vlad2> Там чисто жабаскриптовая загвоздка - как все это заставить работать с "родным" instanceof
[19:56:32] <alexey.veselovsky> помню в один момент чуть моск не сломал этим :-)
[19:56:46] <alexey.veselovsky> гы, ладно. если пример длинный, давай на форум что-ли.
[19:57:15] <vlad2> Да, кину на форум. Чтоб не пропало. Потому что действительно сложно было найти.
[19:57:24] <vlad2> (в смысле так и не нашел в гугле)
[19:57:34] <alexey.veselovsky> /me силится найти хоть один проект на node.js который был бы не фреймворком и не hello world'ом
[19:58:05] <alexey.veselovsky> гы. заголовок: "Node.js + Chromium = node-webkit: ещё более перспективный вариант второго шага эволюции веборазработчика"
[19:58:12] <vlad2> Кстати, я собственно свой мегакомпилер на nodejs обкатываю, и про эти require буквально вчера вкурил ;)
[19:58:20] <vlad2> До э
[19:58:43] <vlad2> до этого у меня был просто один файл. Тепер компилер дорос до того, чтобы его раздраконить по файлам.
[19:58:45] <alexey.veselovsky> "node-webkit — среда для запуска приложений, основанная на Chromium и Node.js. При помощи node-webkit можно создавать традиционные графические приложения посредством HTML и JavaScript."
[19:58:54] <alexey.veselovsky> дайошь десктоп-приложения на node.js!!11
[19:59:05] <alexey.veselovsky> мне уже страшно :-)
[19:59:14] <alexey.veselovsky> может ты ему еще и гуйню на вот этом соорудишь? ;-)
[19:59:24] <alexey.veselovsky> http://habrahabr.ru/post/153095/
[19:59:32] <vlad2> nodejs - это единственное что нагуглилось в контексте "запустить жабаскрипт без браузера".
[19:59:49] <vlad2> Виндовый wscript убог до безобразия.
[20:00:01] <alexey.veselovsky> а как же движог от мозиллы?
[20:00:16] <vlad2> (стэк не показыает или еще чего-то, я пытался сначала на нем, но очень быстро понял, что надо что-то нормальое искать)
[20:00:21] <alexey.veselovsky> о, вот еще: http://habrahabr.ru/post/153013/ - гуйняяя!!!11
[20:00:34] <vlad2> Движок от мозиллы - он на работе :)
[20:00:42] <alexey.veselovsky> да, node.js это гут в том плане что я и на линухе запущу легко :-)
[20:00:47] <vlad2> Отдельно собранного и скачиваемого его нет.
[20:01:10] <alexey.veselovsky> ну, есть вроде и stand alone V8 (на котором node.js и крутится)
[20:01:43] <vlad2> Да, я такое тоже скачал сначала - оно на винде в коматозном стостоянии.
[20:01:48] <vlad2> Практически не работает.
[20:02:00] <vlad2> Пути не понимает и т.п. проблемы на ровном месте.
[20:02:12] <alexey.veselovsky> а, винда же. тогда да. node.js должен быть искаробочней для винодозников
[20:02:21] <vlad2> cygwin с собой тащит, вобщем убожество полное
[20:04:36] <vlad2> К nodejs есть претензия одна  оно какие-то симолы в аутпут вставляет, что сублиму крышк сносит и он показывает только часть аутпута.
[20:07:55] <vlad2> по поводу гуйни на жаюаскрипте - все, что с собой несет жабскрипт уже неинтересно :)
[20:08:15] <vlad2> браузер из серии "деваться некуда".
[20:14:39] <alexey.veselovsky> гы, какая прелесть:
[20:14:42] <alexey.veselovsky>    "use strict";
[20:16:50] <vlad2> Дык, я ж про нее уже писал ;)
[20:17:31] <alexey.veselovsky> да, но я впервые в коде это увидел
[20:17:36] <alexey.veselovsky> а что, добавить прагмы в язык никак было?
[20:17:42] <vlad2> Вагон кирпичей Вирту ;)
[20:18:34] <alexey.veselovsky> гм. что-то я серверный код node.js не понимаю
[20:18:41] <alexey.veselovsky>    request.setEncoding('utf8');
   request.addListener('data', function (postDataChunk) {
       postText += postDataChunk;
   });
[20:18:52] <alexey.veselovsky> какого фига вообще СЕРВЕР модифицирует пришедший ему реквест?
[20:19:24] <alexey.veselovsky> и в какой момент этот самый голимый листнер начнет дергаться?
[20:20:46] <vlad2> без комментариев
[20:21:07] <vlad2> человк, который придумал жс в качестве сервера... он того..
[20:21:43] <alexey.veselovsky> да ладно бы просто язык кривой, там и подход к построению сервера какой-то.. на изнанку вывернуто
[20:21:54] <alexey.veselovsky> то есть это кривизна не на уровне языка, а уже на уровне либы и понимания
[20:22:55] <alexey.veselovsky> смотри, вот эта функция дергается на определенный тип реквестов:
[20:23:42] <alexey.veselovsky> function addNewMessage(request, response) {
    "use strict";
    var postText;
    postText = '';
    console.log('doing add');
    request.setEncoding('utf8');
    request.addListener('data', function (postDataChunk) {
        postText += postDataChunk;
    });
    request.addListener('end', function () {
        тут многа букафф
    });
}
[20:24:00] <alexey.veselovsky> что в ней делается сам видишь - в реквест засовывается енкодинг utf8, затем туда же прописываются два листнера и все, выходим. Когда эти листнеры будут дергаться, в каком порядке - хз.
[20:40:36] <egp> вот и ГВТ весь такой
[20:40:49] <egp> от слова "когда и в каком порядке - хз"
[20:41:05] <egp> на их форуме
[20:41:11] <egp> прискакал юзырь
[20:41:26] <egp> спрашивает "че ето оно у меня не пашыт"
[20:41:48] <egp> а ему в ответ вопрос (смеяться тут) "А КАКОЙ У ВАС ЮЗ-КЕЙС???"
[20:41:59] <egp> юзер выпал в осадок и больше не появлялся.
[20:42:08] <alexey.veselovsky> :-D
[20:42:25] <alexey.veselovsky> "а мы покупаем или продаем?"
[20:45:50] <egp> ...как только я попрактиковался с ГВТ и ГАЕ и посмтрел на подобные дискуссии на форумах гугля, у меня всякое желание пропало в гугл устраиваться
[20:45:59] <egp> лучше уж в скайп или мс
[20:47:08] <alexey.veselovsky> скайп и мс это одно и то же :-)
[20:47:21] <egp> ну реальность я думаю может показать другое.
[20:47:33] <egp> это формально оно одно и то же, а на практике вряд ли.
[20:48:01] <egp> ну меня типа звали в бинг и звали в скайп...
[20:48:14] <egp> я тогда нос морщил :)
[20:48:33] <alexey.veselovsky> ну гугл он тоже большой
[20:48:49] <alexey.veselovsky> там как бэ еще и андроид есть и поиск и есть и карты
[20:49:04] <egp> да ну его. Посмотреть во что андроид превращается в последних версиях - та ну его этот бальшой гугел
[20:49:04] <alexey.veselovsky> и пишут там скажем на C++ только
[20:49:08] <alexey.veselovsky> или на питоне только
[20:49:14] <alexey.veselovsky> и так далее
[20:50:22] <egp> браузерные проги - это гомосня, заколебало
[20:50:44] <alexey.veselovsky> а что делать? это основная платформа сейчас
[20:50:46] <egp> а гугл весь почти браузерный
[20:50:51] <alexey.veselovsky> всякие x86 как платформа уже не роляет
[20:50:55] <alexey.veselovsky> э, нет
[20:51:02] <alexey.veselovsky> гугл почти весь серверный а не браузерный
[20:51:21] <egp> кстати да
[20:51:36] <alexey.veselovsky> там довольно интересная математика, и вообще задачи забавные. к браузерам это отношения имеет не больше, чем кухня к сортиру
[20:51:49] <egp> ну туда меня пока не возьмут, в серверные затишься
[20:51:51] <egp> затишья
[20:52:56] <egp> ну вот кстати ты прав - джетбрэйнс самое приятственное для меня на данном етапе
[20:53:25] <alexey.veselovsky> :-)
[20:53:40] <alexey.veselovsky> да, они рулят
[20:54:50] <egp> блин как бы уровень духа поднять. Воеска дэморализованы
[20:55:22] <egp> ладно
[20:57:14] <Зорин Сергей> alexey.veselovsky: кроме коллаборационизма, то бишь элаборации, and then и or else еще сильнее насторожили
[20:58:54] <TRUE> alexey.veselovsky: "затем туда же прописываются два листнера и все, выходим."
[20:59:27] <TRUE> насколько я понимаю, в этой ноде обработка запроса разбивается на стадии.
[20:59:27] <alexey.veselovsky> mister-kemet: ну таки да, там есть отдельно ленивые логические вычисления (как в сях всяких) так и энергичные
[21:00:30] <TRUE> как и в каком порядке эти стадии идут - нужно смотреть в исходниках, но я посмотрел недавно на js, и мне лень ковыряться с нодой что-то.
[21:01:10] <alexey.veselovsky> TRUE: ну да, тут просто из исходника явно последовательность не задана. в том то и проблема.
[21:01:15] <TRUE> но предполагаю, что сначала выполняется обработка данных пришедших в пост-запросе (вероятно, запись в БД), а потом уже запускается end
[21:01:59] <alexey.veselovsky> неясно следующее - вот дернули нас за эту функцию-обработчик реквеста - вопрос, не потеряем ли мы первый кусок данных? ведь листнер то мы втыкаем только тогда когда к нам УЖЕ ЧТО-ТО ПРИЛЕТЕЛО
[21:02:11] <TRUE> в смысле "явно"? Они же специально сделаны асинхронными, чтобы можно было каждый лиснер в отдельном потоке, если что...
[21:02:21] <alexey.veselovsky> и он явно будет вызываться уже для всех данных что прилетят после
[21:03:44] <TRUE> alexey.veselovsky: "ведь листнер то мы втыкаем только тогда когда к нам УЖЕ ЧТО-ТО ПРИЛЕТЕЛО"
[21:04:01] <TRUE> думаю, что лиснер вызывается только после того, как все данные пришли.
[21:04:06] <TRUE> и назначается тоже.
[21:04:25] <TRUE> то есть, в ту функцию мы заходим тогда, когда все данные уже на сервере.
[21:04:40] <TRUE> мне так кажется
[21:05:52] <alexey.veselovsky> если бы он вызывался только тогда когда все данные пришли, не пришлось бы писать такое:
[21:05:59] <alexey.veselovsky> postText += postDataChunk;
[21:06:13] <alexey.veselovsky> можно было бы написать postText = postDataChunk; и не мучаться
[21:07:31] <TRUE> а пост-запрос какой формат имеет? По-моему этот chunk в спецификации http прописан и имеет однозначный формат.
[21:08:06] <alexey.veselovsky> нет. через POST тебе могут закинуть данных МНОГО
[21:11:08] <alexey.veselovsky> то есть не известной длины
[21:11:14] <alexey.veselovsky> chunked передача
[21:13:47] <TRUE> ну да, так и написано. Я сейчас посмотрел. Но размер каждого куска известен, и это является одним и тем же запросом.
[21:14:29] <alexey.veselovsky> а толку нам с того, что размер каждого куска известен?
[21:14:54] <alexey.veselovsky> меня волнует вопрос, не пропустим ли мы первый кусок, ибо листнер мы явно втыкаем ПОСЛЕ того как он принят
[21:15:03] <alexey.veselovsky> по коду - не ясно что происходит
[21:18:22] <TRUE> если автор писал по спецификации, то в конечном итоге будет работать так: http://tools.ietf.org/html/rfc2616#section-19.4.6
[21:20:17] <alexey.veselovsky> ну, это не вопрос уровня протокола, это вопрос к node.js - первый кусок может быть просто выброшен, то есть он дошел до сервера (node.js) но поскольку листнера не было, его пустили в утиль
[21:26:44] <TRUE> просто такое дело: чтобы начать обрабатывать тело запроса, нужно знать в каком виде оно пришло. Для этого нужно заголовки почитать. Это делается в другом лиснере. Тот лиснер может почитать заголовки и подобавлять лиснеров в соответствии с содержимым заголовков. Или вызвать их.
[21:28:54] <TRUE> но как я понимаю, лиснеры добавляются в массив, значит, чтобы потом вызвать нужный, всё равно нужно указывать имя. По дате или энду ничего не находится?
[21:29:22] <alexey.veselovsky> end - это похоже когда дочитали до конца.
[21:29:32] <alexey.veselovsky> то есть приехал последний чанк и мы его уже обработали
[21:30:04] <alexey.veselovsky> смотри, если node.js если нет листнера на data по приходу чанка просто выбрасывает этот чанк - это не хорошо
[21:30:50] <alexey.veselovsky> если же node.js у себя где-то в загашнике складирует все чанки до тех пор пока не воткнут листнер, то это тоже не здорово - может его никогда не воткнут, и что, она так и будет хратить весь тот гигабайт мусора что юзер ей закачал?
[21:31:11] <TRUE> это понятно, просто в месте, где его вызывают могут встретиться имена и порядок вызова каких-нибудь ещё лиснеров. Зная этот порядок, будет как-то спокойнее читать код.
[21:31:40] <alexey.veselovsky> значит тут третье - нода видимо хранит все что ей пришло до тех пор пока не отработает обработчик этого реквеста, после чего она дергает все листнеры если они есть, а если нет, то не дергает и удаляет все что приехало
[21:31:59] <alexey.veselovsky> (то есть удаляет в любом случае - были листнеры или нет)
[21:33:16] <TRUE> эта нода устанавливается в систему? просто js-файл скачать нельзя?
[21:33:42] <alexey.veselovsky> устанавливается. она же на сях написана (ядро) :-) + интерпретатор самого жабаскрипта
[21:33:54] <alexey.veselovsky> вон, vlad2 знает
[21:34:14] <alexey.veselovsky> ну, то есть она никуда в реестры не прописыается скорее всего.
[21:49:17] <alexey.veselovsky> жесть: http://www.opennet.ru/opennews/art.shtml?num=35050