[00:14:35] <valexey > vlad2: дык фича будет в том, что эти часы будут телефоном :-)
[00:14:43] <valexey > сейчас уже полно таких китайских дивайсов
[00:32:51] <vlad2> Гхм. Сразу споминаю Ералаш "не забудь батарейки!" ;)
[00:50:58] <vlad2> http://www.youtube.com/watch?v=jZ7RSV8XH3k
[01:12:54] <valexey > vlad2: сейчас туда влазит батарейка порядка 500 mA
[01:13:03] <valexey > хватает на 3 часа разговора вроде как
[01:13:25] <valexey > и на 250 часов ожидания
[01:31:48] <egp_> valexey : а про 200 тцп сокетов 200 - очень правдоподобная цифра для лимита ОС
[01:31:57] <egp_> хоть тут полуночников найду
[01:33:44] <egp_> спите что ли?
[01:34:22] <egp_> спят, суслики
[01:36:23] <egp_> в одиночестве и кодить-то неохота
[01:37:52] <valexey > egp_: не спим
[01:37:57] <valexey > 200 - очень не правдоподобная
[01:38:04] <egp_> почему?
[01:38:05] <valexey > все лимиты обычно степень двойки
[01:38:15] <valexey > степень десятки - это обычно лимиты выше уровнем
[01:38:19] <valexey > не системные а уровня приложения
[01:38:36] <egp_> в лине примерно стоко в ulimit и ставят
[01:38:37] <valexey > кроме того в линуксе нет понятия "лимит сокетов"
[01:38:41] <egp_> в винде 400
[01:38:44] <egp_> есть
[01:38:49] <valexey > там есть лимит файлодескрипторов
[01:39:36] <valexey > # ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

[01:39:39] <valexey > где тут сокеты?
[01:39:47] <valexey > и где тут не степень двойки?
[01:40:27] <egp_> вот это мож быть open files                      (-n) 1024
[01:41:04] <valexey > дык я и говрю - там НЕТ ограничений на сокеты
[01:41:11] <egp_> 1024
[01:41:12] <valexey > там есть только на файлодескрипторы
[01:41:21] <valexey > пофиг сокет, пайп, файл.
[01:41:29] <valexey > и да, это не 200
[01:42:00] <valexey > кроме того, у меня истощались сокеты только на соединения определенного типа :-) это явно уровень приложения
[01:45:12] <egp_> ну мы всё это тестировали стресс тестами и тестами на лимиты
[01:45:21] <egp_> у линукса лимит был очень жёсткий
[01:45:37] <egp_> начинались паники и прочее такое если его юстировать вверх
[01:46:10] <egp_> какой опцией это задавалось я позабыл, видимо ulimit -n
[01:46:12] <valexey > эмм.. файлодескрипторы легко задираются вверх
[01:46:15] <valexey > как и размер стека
[01:46:19] <valexey > про другое не поручусь
[01:46:34] <egp_> ну вот про дескрипторы сокетов ты так не гарантируй
[01:47:08] <egp_> винда вроде держала до 4000 сокетов лимит
[01:47:14] <egp_> ну, если юстировать
[01:47:21] <egp_> фря справлялась с 15000
[01:47:43] <valexey > там нет дескрипторов сокетов. там просто fd :-)
[01:47:51] <egp_> соляра просто дохла на 15000 выдавала дикие цифры в проц.usage
[01:48:03] <egp_> ну вот fd оно вероятно и есть
[01:48:51] <egp_> с нас требовали соляру, мы так и не смогли под неё 15000-сокетный мультиплексор запинать
[01:49:05] <valexey > fd это не только сокеты
[01:49:10] <egp_> угу
[01:50:32] <valexey > линукс. МИЛЛИОН одновременных tcp-соединений: http://oberspace.dyndns.org/index.php/topic,314.msg7658.html#msg7658
[01:50:47] <egp_> это мы делали для МТС мультимессенгер
[01:50:53] <valexey > что то вы не так тестировали :-)
[01:51:06] <egp_> всё мы так тестировали
[01:52:33] <valexey > значит ты что-то не договариваешь, или я это что-то не понимаю. но факт есть факт - линух миллион tcp соединений одновременно тянет.
[01:52:40] <valexey > без хаков ядра и прочего
[01:57:48] <egp_> valexey : ну это мы делали лет 10-15 назад
[01:58:15] <egp_> и трафик у нас был бешеный по ср. с этим 1М экспериментом
[02:00:33] <valexey > ну я ж говорю - ты не все сказал :-) и у вас проблема не в числе соединений была а в другом видимо
[02:00:46] <valexey > кстати, а сколько тебе лет если ты этим занимался 10-15 лет назад?
[02:01:23] <egp_> мне 38
[02:02:05] <egp_> проблема была именно в числе соед.
[02:05:35] <valexey > ну, 15 лет назад был совсем другой линукс
[02:06:49] <egp_> каноникал похоже сломал яву вчерашними абдейтами
[02:06:58] <egp_> пришлось перелезть на дебиан :)
[02:07:05] <valexey > :-)
[02:07:13] <valexey > а я давно на дебиане. и о-очень редко обновляюсь
[02:07:15] <egp_> эклипс под убунтой перестал работать - что индиго что юно
[02:10:32] <valexey > убунта нинужен
[02:10:43] <valexey > дебиан и макось - нужен
[02:10:50] <egp_> убунта - это 5% рынка десктоп ос
[02:11:34] <egp_> а прочие линухи в сумме - это доли процента
[02:11:35] <valexey > да хоть 55
[02:11:48] <valexey > какое мне дело до каких-то долей?
[02:14:56] <egp_> надоели компуктеры. чем бы заняться
[02:16:03] <valexey > бальными танцами
[02:16:34] <egp_> с возрастом ленивый стал шо капец
[02:17:05] <valexey > дык
[07:27:44] <vlad3> Продолжаю чиать Вирта: The simplest form of data structure for representing a set of items is the list.
[07:27:55] <vlad3> А почему не массив?
[07:42:45] <vlad3> Вообще от прочтения устойчивый вкус ковыряния в сишних (без плюсов) исходниках :) Интруизивные аморфные структуры, в которые понапихано все что может понадобиться, глядя на которые никогда не догадаешься "как оно работает" без большого коммента к каждому полю.
[07:44:25] <vlad3> Потому что нормальное разделение на мухи и котлеты - настолько многословно, что лучше большие комментарии.
[07:45:15] <vlad3> Чтоб не быть голословным:
[07:45:28] <vlad3> Type = POINTER TO TypDesc;
TypDesc = RECORD
form, len: INTEGER;
fields: Object;
base: Type
END
[07:45:55] <vlad3> Object = POINTER TO ObjDesc;
ObjDesc = RECORD
name: Ident;
class: INTEGER;
type: Type;
next: Object;
val: LONGINT
END
[07:46:55] <vlad3> Две структуры. Хотя по-хорошему их тут штук 7 должно быть. Минималистично да. Только нихрена не понятно без описания.
[07:51:28] <vlad3> В C даже чуть получше за счет union'ов - можно выразть факт взаимоисключительности полей.
[08:01:47] <vlad3> О, таки есть ремарка к этому безобразию:
[08:02:02] <vlad3> As far as programming methodology is concerned, it would be preferable to introduce an extended data
type for each class of objects, using a base type with the fields id, type and next only. We refrain from
doing so, not least because all such types would be declared within the same module, and because the use
of a numeric discrimation value (class) instead of individual types avoids the need for numerous,
redundant type guards and thereby increases efficiency. After all, we do not wish to promote an undue
proliferation of data types.
[08:02:46] <vlad3> "undue proliferation of data types"!
[08:03:13] <vlad3> Узнаю латентного сишника! ;)