[00:36:25] <valexey> ilov_boris: по описанию - штука крутая
[00:38:38] <valexey> Гм. модулисты меня забросали вариантами решения проблемы. уже второе решение подсовывают :-)
[06:18:54] <Kemet> M3WEB это злобно)
[07:23:31] <urod> чёта я ваще расклеился. не работается
[10:09:54] <egp> две менюшки сделал - уже щастье
[10:17:08] <egp> на жабоскрипте
[11:23:16] <egp> теперь реакцию на них прогать. ЕЩЁ БОЛЬШЕ ЖАБАСКРИПТА и снова на арене
[11:47:16] <valexey> Kemet: почему злобно?
[11:53:44] <Kemet> это чтож таскать их за собой чтоли
[11:55:36] <valexey> Kemet: ну, почему бы и нет? зато метаинфа получается опциональна и лежит сбоку
[11:55:54] <valexey> сразу видно сколько оверхеда оно привносит
[11:56:25] <valexey> но похоже есть и другой путь - из дебажной инфы выталкивать
[11:56:58] <valexey> еще есть загадочный пакет m3tk (посмотрел в него - ничего не понял)
[11:57:45] <valexey> а ты знаешь откуда взялись, где применяются и какой формат имеют m3web-файлы?
[12:00:41] <Kemet> оно генерится компайлером, там просто плаинтекст, формать вроде в герераторе в комментах описан, вернее там не формат - для каждого типа своя труктура есно
[12:01:42] <Kemet> M3WEB лежит в каждой директроии с объектниками
[12:01:58] <valexey> кажется нашел: http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-tools/m3browser/src/Main.m3?rev=1.4.2.1;content-type=text%2Fplain
[12:04:09] <valexey> теперь надо найти котогенератор
[12:05:39] <Kemet> m3tk не используется в компиляторе, это внешний пакет какойто для постоения аста вроде
[12:06:11] <Kemet> генератор чего?
[12:09:11] <valexey> видимо генератора кде в комментах формат описан
[12:11:28] <valexey> что то я не нахожу
[12:12:18] <Kemet> ну может WebInfo.i3
[12:12:28] <Kemet> b cvjnhtnm htfkbpfwb.
[12:12:34] <Kemet> и смотреть реализацию
[12:13:05] <Kemet> формат видимо гдето в недрах кодлогенератора искать
[12:15:25] <valexey> спасибо. там в общем то и по исходнику понятно
[12:15:56] <valexey> и это не в кодогене а во фронтенде
[12:19:57] <Kemet> в ссылку на SСHEME не выслали?
[12:22:23] <valexey> пока нет
[12:27:54] <valexey> Библиотека M3TK относится к числу инструментов, с которыми ни мне, ни, вероятно, вам в "этой жизни" встречаться еще не приходилось. Она предоставляет средства для создания языково-зависимых инструментов. Например, с ее помощью можно разработать ПО управления исходными текстами программ проекта. В центре M3TK находится концепция абстрактного синтаксического дерева.

Иначе говоря, M3TK предоставляет систему метапрограммирования для Modula-3. В библиотеке есть полный набор средств синтаксического разбора исходных текстов языка, генерации синтаксического дерева и манипуляции им. Поэтому специфические для Modula-3 пакеты можно строить быстро и с относительной простотой. На деле генератор сетевых объектов, о котором пойдет речь ниже, был построен при помощи M3TK.
[12:28:07] <valexey> http://www.nestor.minsk.by/kg/2000/12/kg01209.html
[12:51:41] <valexey> Kemet: не знаешь, что за файлы там встречаются с расширением tmpl?
[12:54:45] <Kemet> это шаблоны для билдера
[12:54:55] <Kemet> для quake
[12:56:56] <valexey> ok
[12:57:25] <Kemet> на росноывании их он кажется строит дженерики
[12:59:35] <valexey> а дженерики это разве не .ig?
[12:59:58] <valexey> ну и .mg
[13:04:52] <valexey> мне нравится содержимое m3makefile - оно читабельное и понятное
[13:50:36] <valexey> Kemet: cvs -d :pserver:anonymous@pluto.gcapltd.com:/home/gcap-public-cvs up -d .
[14:20:26] <egp>
чай это бог
и мы рабы чая
надо зарегать движение рабов чая
религиозное
[14:21:46] <egp> а если кто скажет что он не раб чая тогда ему анафема!
[14:24:35] <Kemet> valexey: ig im это готовые дженерики, а есть квэйк-скрипты для их генерации и для раскидывания по нужным папкам. это сделано чтобы при изменении дженерика ручками н править - билдер все сделает, нужно только скрипт написать раз
[14:25:47] <valexey> ужас. шаблонизатор шаблонов какой-то
[14:26:19] <Kemet> ну можешь не использовать, а ручками править )
[14:27:08] <Kemet> а что за квс
[14:30:02] <valexey> схема
[14:30:16] <valexey> поделились ссылкой
[14:30:42] <valexey> правда я там не понял откуда модуль CardRefTbl берется
[14:31:42] <Kemet> так поди скриптом и генерится )
[14:33:40] <valexey> Дык тогда это имя в скрипте должно быть упомянуто
[14:34:00] <valexey> а оно не упоминается в скриптах
[14:34:20] <valexey> только в импортах модулей и использовании
[14:37:47] <Kemet> имя генерится автоматом
[14:38:14] <Kemet> ща найдем
[14:52:04] <Kemet> я думаю его здесь нет, ведь это от стандартного дженерика в пакете Table, в самой модуле, думаю там table tmpl он и попрамил, чтобы генерить и для шемы
[14:54:56] <Kemet> вернее не table.tmpl,а m3makefile там
[14:57:30] <valexey> гмгм. Ладно, посмотрю еще
[15:03:24] <Kemet> cit_util\src\m3makefile строка 108 Table("CardRef", "Cardinal", "Refany")
[15:04:40] <Kemet> valexey: cit_util\src\m3makefile строка 108 Table("CardRef", "Cardinal", "Refany")
[15:45:30] <alexey.veselovsky> гм. какая-то калтеховская дрянь
[15:46:53] <alexey.veselovsky> Kemet: а вот нифига, нет там такого: http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/caltech-parser/cit_util/src/m3makefile?rev=1.8;content-type=text%2Fplain
[15:49:54] <Kemet> я смотрел в квс шемы
[15:56:15] <Kemet> т.е. в свы модулы этого нет
[15:56:27] <Kemet> .
[15:59:01] <Kemet> вроде svn->git Ф2 нормально работает
[16:27:59] <alexey.veselovsky> Kemet: я не понял, а там что, инстанцирование делается на этапе сборки? То есть ручками в makefile все это прописывать?
[16:31:46] <ilov_boris> "ilov_boris: по описанию - штука крутая"
[16:32:04] <ilov_boris> valexey: А у тебя качает с ftp ихнего?
[16:32:15] <alexey.veselovsky> не знаю пока
[16:32:37] <alexey.veselovsky> просто вчера у меня дома не было компьютера
[16:32:42] <ilov_boris> у меня не доступен
[16:33:01] <ilov_boris> вчера письмо пришлось писать хозяину
[16:33:20] <ilov_boris> в итоге он мне по http доступ открыл
[16:33:23] <ilov_boris> :0
[16:33:27] <ilov_boris> :)
[16:33:37] <ilov_boris> а я уж было подумал что оно мертвое
[16:33:38] <alexey.veselovsky> дык там же http есть
[16:33:45] <alexey.veselovsky> http://www.mathematik.uni-ulm.de/oberon/ftp/i386/
[16:34:01] <alexey.veselovsky> ой.  оно 0.8 уже
[16:34:05] <alexey.veselovsky> а на сайте написано что 0.5
[16:34:24] <ilov_boris> тык это после моего письма вчера сделано http ЖВ
[16:34:26] <ilov_boris> :D
[16:34:30] <alexey.veselovsky> :-)
[16:35:09] <ilov_boris> 2013/1/29 Andreas F. Borchert <andreas.borchert@uni-ulm.de>

However, I've just opened an alternative access to these
downloads per HTTP:

  http://www.mathematik.uni-ulm.de/oberon/ftp/

Regards, Andreas F. Borchert.
[16:35:20] <alexey.veselovsky> гут
[16:36:05] <ilov_boris> буду поковырять
[16:36:15] <alexey.veselovsky> угу
[16:36:19] <ilov_boris> там компайлер Oberon 1
[16:36:25] <alexey.veselovsky> этим и ценно
[16:36:25] <ilov_boris> возможно даже 07
[16:36:31] <alexey.veselovsky> 1 вроде
[16:36:44] <alexey.veselovsky> взять и кастрировать! в смысле, переписать под О7!
[16:36:50] <ilov_boris> ога
[16:37:00] <ilov_boris> скрестить с акорновским
[16:37:15] <ilov_boris> а еще там либы меня заинтересовали
[16:37:20] <ilov_boris> много наработано
[16:37:26] <alexey.veselovsky> В основном либы и заинтересовали меня :-)
[16:37:29] <ilov_boris> даже ассоциативные массивы есть
[16:37:31] <ilov_boris> :)
[16:38:33] <alexey.veselovsky> Только оно один фиг убого без дженериков :-)
[16:38:57] <ilov_boris> ну хоть база есть
[16:39:06] <ilov_boris> и даже вроде свободная
[16:39:21] <alexey.veselovsky> LGPL. то есть кошерно
[16:39:42] <alexey.veselovsky> /me пошел смотреть на пищевые добавки в Модуле-3
[16:53:27] <ilov_boris> чего то я видимо не шарю в ftp
[16:53:44] <ilov_boris> через TC получилось подключиться...
[16:53:57] <alexey.veselovsky> гг
[16:54:03] <alexey.veselovsky> но http один фиг лучше
[16:54:27] <ilov_boris> почему другие ftp прямо в браузере открываются, а этот нет?
[16:54:41] <ilov_boris> я думал что любой можно открыть
[16:55:42] <ilov_boris> да и вендовый проводник у меня все FTP открывает...
[16:55:46] <ilov_boris> кроме этого
[16:56:20] <alexey.veselovsky> хез. смотреть надо
[16:56:28] <alexey.veselovsky> отсюда у меня вообще  ftp закрыт
[16:56:32] <alexey.veselovsky> ЛЮБОЙ
[16:56:41] <ilov_boris> O_o?
[16:56:46] <ilov_boris> чего это?
[16:56:59] <alexey.veselovsky> копрооративная политика
[16:57:12] <ilov_boris> порно?
[16:57:13] <ilov_boris> :D
[16:57:15] <alexey.veselovsky> а еще у меня тут http-трафик ограничен 50 метрами в неделю
[16:57:33] <ilov_boris> жестко у вас однако
[16:57:44] <ilov_boris> у нас безлимит
[16:57:46] <alexey.veselovsky> причем через проксю!
[16:57:58] <Kemet> alexey.veselovsky: это если ты их ручками не описал
[16:58:37] <alexey.veselovsky> Kemet: я правильно понимаю, что их нельзя инстанцировать прямо в модуле который их использует?
[16:58:44] <alexey.veselovsky> (как в Аде например)
[16:58:55] <alexey.veselovsky> то есть нужно отдельный модуль лепить
[16:59:00] <alexey.veselovsky> явным образом
[16:59:25] <alexey.veselovsky> причем и интерфейс и модуль
[17:00:09] <Kemet> ну да так вроде, модуль же дженерик
[17:00:41] <alexey.veselovsky> просто в Аде можно вроде как импортировать дженерик так: import G(P);
[17:00:45] <Kemet> потому они и автоматом их генерят
[17:00:54] <alexey.veselovsky> то есть сразу с параметром.  и сразу инстанцируется
[17:01:22] <Kemet> я дженерики не юзал кромек стандартных, надо почитать
[17:02:44] <alexey.veselovsky> Точнее так - там импортируется сам дженерик, затем можно его инстанцировать по мере необходимости
[17:04:00] <alexey.veselovsky> with Ada.Text_IO;    use Ada.Text_IO;
with Accounts;       use Accounts;

package Account_No_IO is new Integer_IO(Account_No);
[17:04:11] <alexey.veselovsky> вот как-то так в Аде
[17:04:19] <alexey.veselovsky> И никаких плясок с бубном вокруг
[17:04:39] <alexey.veselovsky> /me думал что более деревянными чем в Аде дженерики не бывают, ан нет, оказываются бывает!
[17:05:26] <alexey.veselovsky> А модульные дженерики вот: http://modula3.elegosoft.com/cm3/doc/reference/complete/html/2_5_5Generics.html
[17:06:01] <alexey.veselovsky> Ну и еще вопрос, уже по cm3-компилеру: умеет ли он в одном исходнике несколько модулей собирать? То есть файл один, а модулей в нем пачка.
[17:13:09] <Kemet> это как про пачку?
[17:13:55] <alexey.veselovsky> Имеем один исходник. Some.i3 например. И в него засовываем следующие строчки:
[17:14:01] <alexey.veselovsky>    INTERFACE Integer; TYPE T = INTEGER; END Integer.
   INTERFACE IntStack = Stack(Integer) END IntStack.
   MODULE IntStack = Stack(Integer) END IntStack.
[17:14:07] <alexey.veselovsky> два интерфейса и один модуль.
[17:14:41] <alexey.veselovsky> некоторые адские компиляторы такое умеют.
[17:15:20] <Kemet> ну как ну реализация по люблму должна быть отдельным файлом
[17:16:29] <alexey.veselovsky> зачем же?
[17:16:30] <Kemet> но модуль может реализовать несколько интерфейсов, указывая их списке экспорта
[17:16:53] <alexey.veselovsky> ведь начало и конец что интерфейса, что реализации модуля синтаксически однозначно определяются
[17:17:24] <alexey.veselovsky> то есть при желании, можно в принципе все исходники закатать в один текстовый файл :-)
[17:17:29] <alexey.veselovsky> и неоднозначности не возникнет
[17:17:39] <Kemet> MODULE Test EXPORT Intf1, Intf2,  Intf3;
[17:27:47] <Kemet> alexey.veselovsky: а зачем тебе в всё в один файл пихать?
[17:30:11] <alexey.veselovsky> А какой смысл иметь 100500 файлов в каждом из которых ровно по одной строчке?
[17:36:21] <Kemet> ну их обычно не имеют, а как раз в м3мейфале указвают, ну идеология такая, модульная, но, в принципе, можно наверное продумаьб чтобы автоматом создавать
[17:37:00] <alexey.veselovsky> Просто если вижу модуль в импортах, то лезу в исходниках его искать
[17:37:18] <alexey.veselovsky> А в случае инстанцирования в m3make читатель модуля не находит
[17:37:28] <alexey.veselovsky> И случается диссонанс
[17:37:42] <Kemet> ну там есть правила именования, по которым можно понять что это дженерик
[17:39:21] <alexey.veselovsky> Гм. А по каким черточкая я мог понять, что CardRefTabl это именно что инстанцированный дженерик?
[17:40:13] <Kemet> Tbl  в конуе )
[17:40:48] <alexey.veselovsky> Дык это ж Table. Откуда я знаю, может кто-то руками такой модуль написал? Таблица который
[17:41:49] <Kemet> ну  разрабы, в м3 погруженные знают же )
[17:42:09] <alexey.veselovsky> Ну, если ты наизусть знаешь ВСЕ дженерик-модули, то да.
[17:42:14] <alexey.veselovsky> А если нет, то обломись.
[17:44:01] <Kemet> ну так
[17:44:42] <alexey.veselovsky> То есть хотя инстанцирование явное, это приводит к неявному и может запутать читателя
[17:46:12] <Kemet> что есть то есть
[17:47:13] <alexey.veselovsky> угу. хотя если все это обернуть в IDE, то жить будет вполне можно
[17:49:12] <Kemet> мы себе делали иде
[17:49:17] <Kemet> для м3
[17:49:22] <Kemet> мраак
[17:49:28] <alexey.veselovsky> почему?
[17:50:06] <Kemet> там же реализация интерфеса может быть раскидана по нескольким модулям,  а один модуль может реализовать несколько интерфесов
[17:50:38] <alexey.veselovsky> гм. не понял. разве модуль не обязан полностью реализовывать заявленный интерфейс?
[17:51:20] <Kemet> не
[17:53:14] <alexey.veselovsky> ?
[17:53:35] <Kemet> поэтому приходится длибо парсить сгенеренный объектник, либо реализовывать полный парсер, с постороением всех зависимостей
[17:53:43] <Kemet> не обязан
[17:54:02] <alexey.veselovsky> эмм.. если не обязан, то какой смысл в интерфейсах вообще?
[17:54:34] <Kemet> эээ, ну будет реализация в 3 модулях и все
[17:55:05] <Kemet> обычно конечно они соотвествуют
[17:55:48] <alexey.veselovsky> А если они вдруг в реализации своей будут перекрываться? То есть избыточно реализовывать интерфейс (две процедуры P например)?
[17:55:56] <alexey.veselovsky> Ну или наоборот - недостаточно реализуют.
[17:56:12] <alexey.veselovsky> Будет ли тут ругань (если эти модули и интерфейсы никто не использует)?
[17:56:15] <Kemet> эээ, типа и там и там?
[17:56:23] <alexey.veselovsky> угу
[17:56:28] <alexey.veselovsky> либо ни там ни там
[17:56:49] <alexey.veselovsky> То есть проверяется ли на этапе компиляции полнота покрытия заявленного интерфейса функциональностью модулей
[17:57:09] <Kemet> если нигде, то рушнется
[17:57:32] <Kemet> и там и там не получится, инстанцирование то одно будет
[17:57:46] <alexey.veselovsky> то есть меня интересует, это на этапе компиляции будет ошибка, или на этапе компоновки (как в сях)?
[17:57:50] <Kemet> там же помнишь формат METHODS P := P1
[17:58:21] <Kemet> как ты два метода сделаешь?
[17:58:41] <alexey.veselovsky> стоп. почему методы?  обычные процедуры которые экспортируются из модуля. никаких объектов тащемто
[17:59:31] <Kemet> так в модуле ,е сли его имя не совпадает и именем интерфейса ты обязан квалифицировать
[18:00:15] <alexey.veselovsky> ну да. два модуля явным образом говорят что экспортируют интерфейс I
[18:00:24] <alexey.veselovsky> у которого есть процедура P
[18:00:34] <alexey.veselovsky> и оба эту процедуру реализуют
[18:01:05] <Kemet> мне кажется это не сработатет, компилятор увидиь, что интерфейс уже реализован
[18:01:48] <alexey.veselovsky> а про IDE.. По моему, для IDE нужно использовать m3tk
[18:01:53] <alexey.veselovsky> Оно вроде как ровно для этого
[18:02:09] <Kemet> так иде на дельфи )
[18:02:29] <alexey.veselovsky> оу. ну, это тогда больно, да
[18:02:49] <Kemet> если все на м3 реализовать, то тогда думаю и проблем не шибко много будет
[18:02:58] <alexey.veselovsky> угу
[18:03:26] <alexey.veselovsky> IMHO, если реализовывать IDE для М3, то в виде http-сервера, соответственно вся гуйня в браузере
[18:03:39] <Kemet> надо проверить про интерфейсы, ща попробую, но это время займет
[18:03:43] <alexey.veselovsky> Гоняться за современными гуевыми тулкитами - довольно бессмысленно
[18:03:49] <alexey.veselovsky> ок
[18:36:11] <alexey.veselovsky> ilovb: мне начинает казаться, что бесконечные новые реализации компилятора оберона - штука довольно таки бесполезная.
[18:36:28] <alexey.veselovsky> судя по тому, что ты накопал, компиляторов достаточно :-)
[18:39:59] <alexey.veselovsky> все оберонистые компиляторы зыканчивают одинаково - компилятор как-то реализован, вокруг есть какая-то либа и возможно даже IDE, но дальше развивать смысла нет, ибо нет спроса (пофиг на деньги, оно просто никому не нужно)
[18:59:51] <Kemet> alexey.veselovsky: добрался до компилятора, проверил - не компилит, говорит множетсвенная импоементацмия
[19:04:00] <alexey.veselovsky> а если где-то не хватает?
[19:04:09] <Kemet> compile Test22.m3  - multiple implementations:Test2.P ipmplemented by: Test2.i3 Test21.m3
[19:04:11] <alexey.veselovsky> и при этом этот интерфейс никто не импортирует?
[19:04:17] <Kemet> ghb c,jhtrt heuftncz tckb yt [dfnftn
[19:04:31] <Kemet> при сборке ругается если не хватает
[19:05:01] <Kemet> если никто не использует и не импортирует то ничего не говорит
[19:05:27] <Kemet> хотяяя щас
[19:05:29] <alexey.veselovsky> ага-а! значит это таки линкер по башке бьет!
[19:10:43] <ilov_boris> valexey: Да. Обероны феноменально непопулярные
[19:11:33] <Kemet> не, молчит, если не используешь интерфейс, то молчок, если используешь не реализованный, то ругается
[19:12:10] <alexey.veselovsky> угу. ясно. не слишком хорошо, но терпимо
[19:12:46] <Kemet> ну дефективный неиспользуемый интерфейс это воббще терпимо ) ибо нафик ненуже
[19:12:47] <Kemet> н
[19:13:28] <vlad2> Люблю грозу в начале... в конце января :)
[19:13:45] <alexey.veselovsky> vlad2: у вас там уже весна чоле?
[19:13:59] <Kemet> без анализа компилятора сложно сказать кто ругается -  в винде все интегрировано
[19:14:32] <alexey.veselovsky> Kemet: а достаточно просто импортировать интерфейс, чтобы оно руганулось, или нужно еще недостающую процедуру дернуть?
[19:14:50] <vlad2> Угу. Синоптики опять это делают. +17 (При том что солнца нет - туман висит). А ночью уже обещают winter storm со снегом и со всеми делами.
[19:14:55] <Kemet> ща
[19:17:49] <alexey.veselovsky> "Sublime Text 3 должна работать на всех системах, которые уже могут запускать Sublime text 2, за исключенеим OS X 10.6. К сожалению, не возможно поддерживать 10.6 совместимость так как нет C++11 toolchain для OS X 10.6, а Sublime Text 3 очень активно использует функционалность C++11."
[19:18:13] <Kemet> при пустом импорте тоже ругается
[19:18:24] <alexey.veselovsky> гут
[19:18:43] <vlad2> Ничего себе. Оказывается на С++11 можно писать классные приложения.
[19:19:05] <alexey.veselovsky> дык. и сверху тонкий слой питона для плагинопейсателей :-)
[19:20:52] <Kemet> alexey.veselovsky: ну и по понятным причинам ругается оно уже на этапе сборки
[19:22:23] <alexey.veselovsky> vlad2: как думаешь, если делать "IDE" для того же оберона, не стоит ли всю "семантику" таковой IDE (синтаксический анализ исходника, семантический анализ и так далее) вытащить в отдельную прогу-сервис, которая просто предоставляет по TCP или HTTP протокол для доставки нужной информации по тому где какие символы, какие где типы, что как раскрашивать и так далее.
[19:23:06] <alexey.veselovsky> Это позволило бы иметь один такой сервис и без проблем его прикручивать к разным существующим IDE ( типа той же идеи), ну и для браузера сделать ajax-IDE
[19:24:52] <vlad2> Дык, какой сервис - задача тяжеловесная (за пределами hello world)
[19:25:14] <alexey.veselovsky> в смысле?
[19:25:27] <vlad2> В смысле сервак который будет такое хостать будет дорого стоить.
[19:25:30] <alexey.veselovsky> я имею ввиду что такой сервис крутится локально на машине программера
[19:25:36] <vlad2> А.
[19:25:43] <vlad2> ХЗ.
[19:25:47] <vlad2> Нафига козе баян?
[19:25:52] <vlad2> Чтоб веб?
[19:26:15] <vlad2> Вс мысле конечно можно сделать.
[19:26:21] <alexey.veselovsky> Что б для идеи не реализовывать свой велосипед на яве, а для какого-нибудь сублима на питоне
[19:26:25] <vlad2> Какая разница какой интерфейс.
[19:26:53] <alexey.veselovsky> ты видел как скажем CDT для еклипса реализован? (плагин для плюсовой IDE на базе еклипсы)?
[19:26:54] <vlad2> Типа веб сервис - самый универсальный интерфейс?
[19:27:09] <vlad2> Не, не видел.
[19:27:10] <alexey.veselovsky> Там же свой парсер и семантический анализатор на жабе!
[19:27:27] <alexey.veselovsky> Который периодически расходится во мнениях с тем компилятором который ты используешь
[19:27:39] <alexey.veselovsky> Между прочим, там даже с явой то же самое
[19:28:49] <alexey.veselovsky> vlad2: tcp - это все же не веб. с некоторой натяжкой вебом можно назвать  http. А http тут по структуре очень продходит - запрос-ответ. Ну и да, при желании можно будет браузерную версию сделать (локальную браузерную).
[19:29:31] <alexey.veselovsky> Ну и конечно http реализуется элементарно и все его умеют :-) В унутре будет json.
[19:31:11] <Kemet> alexey.veselovsky: ужасы какие
[19:31:22] <vlad2> С HTTP все не так просто.
[19:31:30] <alexey.veselovsky> чо это? почему ужасы? ;-)
[19:31:32] <vlad2> Я как раз сейчас долюаюсь с тем, что он не работает :)
[19:31:35] <ilov_boris> "sublime text 3" O_o фига я прошлепал
[19:32:01] <alexey.veselovsky> vlad2: как вы добились того, что у вас http не работает? ;-)
[19:32:13] <alexey.veselovsky> уж что-что а http работает всегда!
[19:32:31] <vlad2> Не работает с AVG, не работает с проксей и NTLM. И т.д. Это все проблемы, которых не было в случае "крассического" сишного АПИ ;)
[19:33:03] <alexey.veselovsky> а, ну, блин. понаплодили файрволов...
[19:33:11] <alexey.veselovsky> а у вас http локальный?
[19:34:04] <alexey.veselovsky> /me представил себе жосткий секс по интеграции сишного АПИ в IntelliJ Idea. С непременными падениями jvm полностью.
[19:34:15] <vlad2> Дык, файерволы то не мы плодим, а кастомеры. Причемпозиция кастомера очень простая - браузер у нас работает, значит с нашим HTTP все хорошо. Чините.
[19:35:05] <ilov_boris> "ublime Text теперь использует Python 3.3 для плагинов и запускает их вне процесса, поэтому любые плагины, запускающие native код, более не преставляют риска обрушить основной процесс Sublime Text"
[19:35:09] <vlad2> В случае AVG на конкретной машине не работает клиент-сервер на этой же машине. Во всех остальных случаях (клиент/сервер на другой машине) - работает.
[19:35:10] <ilov_boris> ну надо же :D
[19:35:16] <vlad2> Че хочешь, то и делай.
[19:35:25] <alexey.veselovsky> А порт какой?
[19:35:35] <vlad2> Логов у этого AVG нормальных нет - чего он там дрит можно тулько догадываться.
[19:36:13] <alexey.veselovsky> Ну, мы же для программеров делаем, то есть не для тупых кастомеров которые с собственным же антивирем справиться не могут :-)
[19:36:17] <vlad2> 80. Стандартный какой-то.
[19:36:24] <alexey.veselovsky> У программеров обычно еще и собственные сервера локальные крутятся
[19:36:37] <alexey.veselovsky> Поменяйте на 8080 - может поможет
[19:36:50] <alexey.veselovsky> Или там еще на какой-нибудь больше 1024
[19:37:08] <vlad2> Даже если и поможет, то что? :) IT большой конторы - это еще то болото.
[19:37:20] <Kemet> блин, только сщас узнал что thunderbird поддердиваект [mpp,icq и т.д чаты
[19:37:32] <alexey.veselovsky> Kemet: :-)
[19:37:40] <Kemet> угу
[19:37:51] <alexey.veselovsky> vlad2: Гм. А почему это не решит проблему? Поменяете порт и все.
[19:37:58] <alexey.veselovsky> В своей проге
[19:38:07] <vlad2> thunderbird жутко тормозил и стал ненужен с приходом gmail ;)
[19:38:29] <vlad2> IT кастомера так просто не поменяет (не откроет и т.д.) порт.
[19:38:56] <vlad2> (все равно спасибо за предложение - попробую поменять порт)
[19:39:03] <Kemet> ну хз, я тандербир использую, вроде не шибко проблемно, причем это на нетбуке
[19:39:30] <alexey.veselovsky> очень не факт что поможет поменять порт, но чем черт не шутит...
[19:39:33] <ilov_boris> тандербёрд ужасная тормозная хрень
[19:39:52] <alexey.veselovsky> а я локальные почтовики использую только на мобилке и планшете
[19:40:02] <Kemet> ilov_boris: чё я делаю не так, что оно у меня не тормсозит
[19:40:06] <alexey.veselovsky> на ноутах замахаешься под каждую ось настраивать
[19:40:14] <ilov_boris> хрен знает
[19:40:15] <vlad2> alexey.veselovsky: например IT не дает нам поставить тулзу для диагностики сети (снифер) на проблемной машине - потому что она требует админских прав. Т.е. даже разово запустить что-то (инсталятор) - нельзя.
[19:40:19] <alexey.veselovsky> у меня 3 ноута и суммарно 6 операционок на них :-)
[19:40:24] <ilov_boris> у меня сотни писем в день приходят
[19:40:42] <ilov_boris> т.е. очень активно юзаю его
[19:40:43] <alexey.veselovsky> vlad2: да, то известная проблемы админов толстых контор
[19:41:15] <Kemet> ну так и я юзаю
[19:42:04] <Kemet> но вообще у нас есть свой клиет
[19:42:22] <Kemet> как водится на дельфи писаный
[19:43:24] <alexey.veselovsky> вам надо тот сервис для м3 на м3 написать и тогда с ide для m3 писаной на делфях проблем не будет :-)
[19:43:42] <ilov_boris> Kemet, а ты на чем его юзаешь?
[19:44:01] <ilov_boris> есть фича одна
[19:44:06] <Kemet> ilov_boris: в каком плане
[19:44:14] <ilov_boris> операционка?
[19:44:20] <Kemet> вин7
[19:44:26] <ilov_boris> с аэро?
[19:44:28] <Kemet> опенсусе12
[19:44:35] <Kemet> да, а еро
[19:44:57] <ilov_boris> я заметил что он без аэро много быстрее пашет
[19:45:39] <Kemet> ilov_boris: у меня оно вообще на нетбуке
[19:45:57] <ilov_boris> Ну не знаю как так
[19:45:59] <alexey.veselovsky> странно что там аэро работает
[19:46:10] <Kemet> 19 ящиков, писем по 70 в среднем декнь, сортироващик почты
[19:46:13] <ilov_boris> я им пользуюсь уже года 4
[19:46:21] <ilov_boris> тормозил он всегда
[19:47:11] <Kemet> ilov_boris: ну хз, я его не выключаю и папки сжимаю, чему там тормозить
[19:47:23] <Kemet> alexey.veselovsky:
[19:47:26] <ilov_boris> ну я тоже
[19:47:31] <alexey.veselovsky> ilov_boris: а помнишь, я тебе говрил, что третий сублим готовится? ;-)
[19:47:43] <ilov_boris> ога
[19:47:47] <ilov_boris> :)
[19:49:49] <ilov_boris> вот у меня прямо сейчас тандербёрд жрет 2% проца и оперативы 65 мег
[19:50:00] <ilov_boris> хотя не трогаю его вообще
[19:50:35] <alexey.veselovsky> он РАБОТАЕТ!
[19:50:53] <ilov_boris> Тык понятно
[19:50:58] <ilov_boris> а чо он делает то?
[19:51:46] <alexey.veselovsky> РАБОТАЕТ!
[19:51:57] <alexey.veselovsky> там почту твою анализирует :-)
[19:52:06] <ilov_boris> Kemet, ты еще учти, что у меня на ноуте несколько БД обычно крутятся
[19:52:39] <ilov_boris> Т.е. проц обычно процентов на 30 загружен
[19:52:46] <ilov_boris> в рабочий день
[19:53:09] <ilov_boris> И все тормоза ощущаются в квадрате
[19:56:48] <ilov_boris> O_o у меня в ящике удаленных 5000 писем
[19:57:00] <ilov_boris> :D
[19:57:13] <alexey.veselovsky> спам?
[19:57:25] <ilov_boris> Заявки от клиентов
[19:57:27] <ilov_boris> :)
[19:57:49] <ilov_boris> Это за год примерно накопилось
[19:58:38] <ilov_boris> Мы на Redmine работаем
[19:59:07] <ilov_boris> и оно все заявки рассылает программерам
[20:00:34] <alexey.veselovsky> короче, оберону нужен killer app :-)
[20:01:38] <ilov_boris> метро интерфейс
[20:01:39] <ilov_boris> и в планшеты его
[20:01:44] <ilov_boris> :D
[20:01:57] <alexey.veselovsky> брр.
[20:02:13] <alexey.veselovsky> я не думаю что там удастся просто конкурировать с C#/C++/js
[20:02:23] <ilov_boris> Я вот объерон на планшетах совсем представить не могу
[20:02:42] <ilov_boris> да я шутю ж
[20:02:55] <ilov_boris> так я курить
[20:05:05] <alexey.veselovsky> да нет. как язык - какая разница где исполняться ?
[20:05:59] <Kemet> не, если А2 с нормальным интерфейсом, то почему бы и нет
[20:06:45] <alexey.veselovsky> zoom-интерфейс действительно может иметь смысл
[20:06:53] <Kemet> ага
[20:07:04] <alexey.veselovsky> ибо сейчас масштабирование на планшетах делается вообще элементарно пользователем
[20:07:12] <alexey.veselovsky> одно из самых естественных движений
[20:08:07] <Kemet> ну может он  чего и напилят, они ж новую ос пилят
[20:08:28] <alexey.veselovsky> да? то есть не A2, а что-то на базе?
[20:09:09] <Kemet> вроде, а логах А2 свн пробегало вроде MINOS
[20:09:34] <alexey.veselovsky> интересно
[20:10:36] <alexey.veselovsky> http://oberoncore.ru/library/kirk_test_automation_for_the_oberon_and_minos_frameworks
[20:10:39] <alexey.veselovsky> оно?
[20:11:01] <alexey.veselovsky> 4. Minos - Oberon-07

[20:19:02] <Kemet> не
[20:21:28] <Kemet> вроде нет, там активный обнерон - компилятор тот же что пишется сейчас в А2
[20:21:48] <Kemet> я по логам компилятора про минос и узнал
[20:21:53] <Kemet> типа адаптация
[20:22:02] <alexey.veselovsky> хы
[20:22:52] <Kemet> думаю просто проанализировали проблемные места А2 и начали новый проект
[20:23:02] <ilov_boris> блин саблайм третий ключ сука просит
[20:24:05] <ilov_boris> Оберон просто нужно очеловечить и он попрет
[20:24:26] <ilov_boris> В собственном соку он не выживет
[20:27:05] <alexey.veselovsky> что значит очеловечить ? за счет чего попрет?
[20:27:59] <alexey.veselovsky> переть что-либо начинает либо если это по умолчанию является языком какой-то популярной технологии (скажем ObjC вместе с iOS), либо если оно не требует переучивания со старого но при этом дает много новых фишек (С++)
[20:28:47] <alexey.veselovsky> Либо если оно узкоспециализировано, и открывает новую нишу (PHP) где рвет всех и вся.
[20:28:52] <ilov_boris> Очеловечить - значит сделать современный интерфейс
[20:28:58] <ilov_boris> со всеми плюшками
[20:29:19] <ilov_boris> сделать либы которые ожидаются по умолчанию
[20:29:28] <alexey.veselovsky> Чито на фичах языка как такового выехать не выйдет. Это как Ruby который известен стал только из за рельсовю
[20:29:35] <ilov_boris> сделать к бинды к популярным либам
[20:30:02] <alexey.veselovsky> Если Оберон будет столь же удобен и иметь столько же либ как С# он все равно не станет столь же популярным, просто потому, что нет повода туда переходить - шарп же есть!
[20:30:21] <alexey.veselovsky> равенства не достаточно, должно быть преимущество на порядок.
[20:30:34] <alexey.veselovsky> Либо ниша где реализуем это преимущество.
[20:30:37] <ilov_boris> Если бы вокруг Оберона была нормальная экосистема, то я выбрал бы его, а не шарп
[20:30:54] <alexey.veselovsky> (то есть конкретная экосистема, не только язык и либы)
[20:31:18] <alexey.veselovsky> Ну вот вокруг Модулы-3 нормальная экосистема (относительно даже сей). И-и? :-)
[20:31:29] <alexey.veselovsky> Где Си а где модула
[20:31:32] <alexey.veselovsky> ?
[20:32:10] <ilov_boris> Мне думается что на обероне получилась бы хорошая геймдев студия
[20:32:18] <ilov_boris> и оно было бы популярно
[20:32:20] <alexey.veselovsky> Кто тот пользователь, на которого будет рассчитана оберон-инфраструктура?
[20:32:45] <alexey.veselovsky> Эээ. А вот нифига не уверен. В геймдеве сборщик мусора нафиг не уперся как минимум
[20:32:50] <alexey.veselovsky> А вот шаблоны как раз нужны
[20:33:04] <alexey.veselovsky> в геймдев даже c# никак просочиться не может по нормальному
[20:33:16] <ilov_boris> потому что сложно
[20:33:24] <ilov_boris> для геймдевелоперов
[20:33:39] <ilov_boris> там нужно много проще
[20:33:42] <alexey.veselovsky> ога-ога, потому они и выбирают С++ с бустом да шаблонами? :-)
[20:33:44] <ilov_boris> и кроссплатформенно
[20:34:02] <ilov_boris> не
[20:34:02] <alexey.veselovsky> Даже под iOS игры пишутся на C++
[20:34:08] <alexey.veselovsky> не на ObjC, который проще
[20:34:08] <ilov_boris> они выбирают Lua
[20:34:11] <ilov_boris> ;)
[20:34:27] <alexey.veselovsky> lua - очень тонкая прослойка сверху. для очень ограниченного числа решений
[20:34:33] <alexey.veselovsky> примерно как в sublime'e питон
[20:34:38] <alexey.veselovsky> даже еще меньше
[20:35:22] <ilov_boris> У меня коллега вообще на js
[20:35:25] <ilov_boris> пишет
[20:35:38] <alexey.veselovsky> ты предлагаешь попробовать вытеснить Lua Обероном? В котором нет нормальных литералов, зато есть страшные типы статические? :-)
[20:35:44] <ilov_boris> ибо готовые движки
[20:36:21] <ilov_boris> valexey: Вот положа руку на сердце
[20:36:42] <alexey.veselovsky> Ну, то есть берем игру, 90 процентов кода там на С++ (статистически), еще 5 процентов на питоне, 2 процента на диалектах ECMAScript'a, и еще 3 процента допустим на Луа
[20:36:49] <alexey.veselovsky> И вот на эти 3 процента мы и притендуем?
[20:36:51] <ilov_boris> если аналог sublime написать на Обероне - это будет лучше?
[20:37:10] <alexey.veselovsky> Я почем знаю?
[20:37:19] <alexey.veselovsky> Тут зависит не от языка а от автора.
[20:37:53] <alexey.veselovsky> Думаю если бы плагины сублима писались бы на обероне, популярность сублима была бы ниже
[20:37:56] <ilov_boris> Мне вот очень кажется что - ST2-3 курил бы нервно в сторонке
[20:38:17] <alexey.veselovsky> эмм..  а за счет чего?
[20:38:31] <ilov_boris> Оно бы не падало с такой частотой
[20:38:38] <ilov_boris> это раз
[20:38:41] <alexey.veselovsky> оно бы падало еще чаще :-)
[20:38:49] <vlad2> Это точно :)
[20:38:57] <alexey.veselovsky> ибо бОльшую часть проверок Оберон если и делает, то в рантайме
[20:39:03] <vlad2> Строка длинее 1024 оказалась - и привет :)
[20:39:06] <alexey.veselovsky> + были бы утечки памяти из за сборщика мусора
[20:39:07] <ilov_boris> Я не верю, что на обероне можно так говняно написать :)
[20:39:35] <ilov_boris> "были бы утечки памяти из за сборщика мусора" - это как?
[20:39:37] <alexey.veselovsky> Я думаю что редактор аля сублим просто не было бы написан на Обероне - автор закопался бы в частнстях раньше
[20:39:48] <vlad2> Угу.
[20:39:59] <ilov_boris> Почему?
[20:40:04] <alexey.veselovsky> ilovb: ну посмотри как была у меня утечка на Go :-)
[20:40:19] <vlad2> Дальше реализации строки "любой длины" дело бы не пошло :)
[20:40:42] <ilov_boris> valexey: Ну ББ то не падает ;)
[20:40:45] <alexey.veselovsky> Потому, что там нет литералов, писать декларативно НАМНОГО сложнее. Там для один и тот же контейнер для каждого типа писать руками.
[20:41:02] <alexey.veselovsky> А ББ, как текстовый редактор, круче сублима? :-)
[20:41:04] <vlad2> В ББ есть динамические массивы. И много чего еще.
[20:41:22] <alexey.veselovsky> Ну, да. Под ББ вообще отдельный язык запилили.
[20:41:30] <ilov_boris> ББ писали книжные черви, а не профи
[20:41:32] <alexey.veselovsky> И отдельный рантайм
[20:41:50] <ilov_boris> Почему отдельный язык?
[20:41:59] <ilov_boris> Oberon-2 же
[20:42:05] <vlad2> Потому что см. сообщение о языке КП :)
[20:42:15] <vlad2> Это не о-2
[20:42:17] <ilov_boris> КП - это Oberon-2
[20:42:19] <alexey.veselovsky> угу
[20:42:25] <alexey.veselovsky> нет, это совсем не О2
[20:42:33] <ilov_boris> :D
[20:42:36] <ilov_boris> приколько
[20:42:42] <ilov_boris> Это с чего это?
[20:42:48] <vlad2> Я бы даже сказал, что о-2 вообще неинтересн, если есть КП.
[20:43:21] <ilov_boris> КП от O2 отличается только несколькими удобняшками
[20:43:29] <ilov_boris> типа спецификации интерфейса
[20:43:47] <ilov_boris> По возможностям - это один и тот же язык
[20:44:04] <alexey.veselovsky> эмм.. а что ты под возможностями подразумеваешь ?
[20:44:41] <ilov_boris> В ББ есть док отличий
[20:44:46] <ilov_boris> там все написано
[20:45:06] <alexey.veselovsky> дык возможности у КП и О2 разные, это факт. Одно наследование чего стоит
[20:45:22] <ilov_boris> Какое наследование?
[20:45:24] <alexey.veselovsky> Кстати, на этом мутация языка не закончилась - в ББ свой собственный расширенный и дополненный диалект КП
[20:45:35] <alexey.veselovsky> Не совместимый со, скажем GPCP
[20:45:43] <alexey.veselovsky> И выходящий за рамки сообщения о языке КП
[20:45:54] <alexey.veselovsky> Одни безтеговые структуры чего стоят
[20:46:26] <vlad2> alexey.veselovsky: кто-то один из нас тупит ;)
[20:46:44] <vlad2> (это я про пример на форуме)
[20:46:53] <vlad2> Или я его не так понял или ты.
[20:47:22] <ilov_boris> вот выжимка: "Подводя итог, подчеркнем, что новое определение языка содержит одно значительное добавление: более выразительное подмножество языка определения интерфейса (IDL) (NEW; EXTENSIBLE; ABSTRACT; LIMITED; EMPTY; экспорт методов только для реализации), что дает возможность указывать архитектурные свойства компонентного каркаса.
Другие пункты — это, в основном, уточнение деталей, опирающееся на десятилетний опыт использования языка. Особого внимания заслуживают новая, более общая и системати­ческая трактовка литерных цепочек, а также новая спецификация размеров элементарных типов."
[20:48:05] <ilov_boris> И где тут принципиальные отличия от O2?
[20:48:11] <vlad2> IDL? :)
[20:48:20] <vlad2> Очень даже принципиально.
[20:48:26] <ilov_boris> Чем?
[20:48:33] <vlad2> Не абы как прикрутили ООП, а с пониманием.
[20:48:47] <ilov_boris> Ну стало удобнее
[20:48:52] <ilov_boris> надежнее
[20:49:04] <ilov_boris> Но мощность языка не изменилась
[20:49:10] <ilov_boris> Это все плюшки
[20:49:13] <vlad2> Например NEW - очекнь даже полезное свойство.
[20:49:29] <ilov_boris> Без этого можно прекрасно жить
[20:49:33] <alexey.veselovsky> Ну да ну да. А С++ это тот же самый Си с не принципиальными плюшками :-)
[20:49:36] <vlad2> Если так рассуждать, то можно спуститься до жабаскрипта. Он тоже очень мощный ;)
[20:49:41] <ilov_boris> Все это добавлено для разработчиков каркаса
[20:49:42] <alexey.veselovsky> А язык то нет, не изменился совсем!
[20:50:09] <alexey.veselovsky> Эти плюшки так изменили язык, что он аж стал обратно не совместимым, сколь я помню.
[20:50:27] <vlad2> Например из-за отсутсвия такого простого NEW в С++ - приходится постоянно извращаться с макросами и мусорить в коде.
[20:50:51] <alexey.veselovsky> да ладно, в современном С++ это вроде как есть
[20:50:59] <alexey.veselovsky> vlad: я там ответил.
[20:51:00] <ilov_boris> NEW  - это просто метка
[20:51:06] <ilov_boris> причем для человека
[20:51:16] <ilov_boris> Что в ней такого принципиального?
[20:51:46] <ilov_boris> Про с++ не понял
[20:51:52] <ilov_boris> коммента не хватает?
[20:52:16] <alexey.veselovsky> ладно, народ. давайте снова за упокой что-ли: так где ниша Оберона? Какой такой киллер-апп для него (приложение не в смысле софтины, а в смысле приложения применения)
[20:52:17] <vlad2> Принципиально то, что без такой метки (просто virtual) нельзя безопасно поменять сигнатуру метода в базовом классе.
[20:52:49] <vlad2> (в случе наследования реализации, хе-хе)
[20:52:52] <ilov_boris> не понял
[20:53:13] <vlad2> class X { virtual void f(){} };
[20:53:35] <vlad2> class Y : public X { virtual void f(){do_something();} };
[20:53:54] <vlad2> Теперь меняем сигнатуру X::f:
[20:54:03] <vlad2> virtual void f(int argument){}
[20:54:10] <vlad2> Все компилится.
[20:54:15] <vlad2> Но не работает.
[20:54:21] <alexey.veselovsky> А, так этот NEW это то же что и аннотация в жабе @Override ?
[20:54:26] <vlad2> Y::f() больше не вызывается
[20:54:43] <vlad2> ХЗ че там в жабе.
[20:55:02] <ilov_boris> vlad2: В твоем примере NEW даже воткнуть некуда
[20:55:09] <vlad2> С шарпе тожде полечили, но криво (только для интерфейсов, т.е. бесполезно практически).
[20:55:11] <alexey.veselovsky> vlad2: но ты ведь знаешь как это в с++?
[20:55:14] <alexey.veselovsky> void sone_func() override;
[20:55:21] <alexey.veselovsky> с текущем с++ это так :-)
[20:55:37] <vlad2> А. Ну значит тоже полечили. Не прошло и 10 лет.
[20:55:38] <ilov_boris> Определение: "NEW показывает, что метод новый и не является переопределением"
[20:55:43] <vlad2> Только мне неактуально.
[20:55:48] <vlad2> У меня gcc4,2
[20:55:50] <alexey.veselovsky> http://ru.wikipedia.org/wiki/C%2B%2B11#.D0.AF.D0.B2.D0.BD.D0.BE.D0.B5_.D0.B7.D0.B0.D0.BC.D0.B5.D1.89.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B2.D0.B8.D1.80.D1.82.D1.83.D0.B0.D0.BB.D1.8C.D0.BD.D1. <http://ru.wikipedia.org/wiki/C%2B%2B11#.D0.AF.D0.B2.D0.BD.D0.BE.D0.B5_.D0.B7.D0.B0.D0.BC.D0.B5.D1.89.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B2.D0.B8.D1.80.D1.82.D1.83.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9_.D0.B8_.D1.84.D0.B8.D0.BD.D0.B0.D0.BB.D1.8C.D0.BD.D0.BE.D1.81.D1.82.D1.8C>8B <http://ru.wikipedia.org/wiki/C%2B%2B11#.D0.AF.D0.B2.D0.BD.D0.BE.D0.B5_.D0.B7.D0.B0.D0.BC.D0.B5.D1.89.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B2.D0.B8.D1.80.D1.82.D1.83.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9_.D0.B8_.D1.84.D0.B8.D0.BD.D0.B0.D0.BB.D1.8C.D0.BD.D0.BE.D1.81.D1.82.D1.8C>.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9_.D0.B8_.D1.84.D0.B8.D0.BD.D0.B0.D0.BB.D1.8C.D0.BD.D0.BE.D1.81.D1.82.D1.8C <http://ru.wikipedia.org/wiki/C%2B%2B11#.D0.AF.D0.B2.D0.BD.D0.BE.D0.B5_.D0.B7.D0.B0.D0.BC.D0.B5.D1.89.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B2.D0.B8.D1.80.D1.82.D1.83.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9_.D0.B8_.D1.84.D0.B8.D0.BD.D0.B0.D0.BB.D1.8C.D0.BD.D0.BE.D1.81.D1.82.D1.8C>
[20:56:32] <alexey.veselovsky> ilov_boris: дык это то же самое, только наоборот. И это круто - ибо позволяет не наступить на обратные грабли
[20:56:43] <alexey.veselovsky> Поменяли сигнатуру и стало вызываться не то что хотелось.
[20:56:50] <vlad2> Угу.
[20:56:55] <ilov_boris> А при чем тут NEW?
[20:57:41] <ilov_boris> "В переопределяемых методах указывать NEW нельзя"
[20:57:54] <vlad2> Думай :)
[20:57:54] <alexey.veselovsky> При том. Был у нас класс Y, и f в нем. Он NEW. В базовом классе никакого f нет
[20:57:57] <alexey.veselovsky> И все хорошо
[20:58:08] <alexey.veselovsky> А тут бац, поменяли базовый класс и там появился f
[20:58:16] <alexey.veselovsky> И у нас случилось не то поведение которое хотели
[20:58:27] <ilov_boris> "class X { virtual void f(){} };
[20:53:29] <vlad2> class Y : public X { virtual void f(){do_something();"
[20:58:38] <alexey.veselovsky> В случае если мы можем поставить метку NEW, то будет ошибка компиляции и это хорошо
[20:58:38] <ilov_boris> тык тут то переопределение
[20:58:47] <alexey.veselovsky> А если не можем, то будет не верное поведение, и это плохо
[20:58:57] <alexey.veselovsky> изначально переопределения НЕ БЫЛО
[20:59:50] <alexey.veselovsky> То есть автор базового класса теперь (когда есть NEW) не сможет нам подложить бомбу.
[21:00:26] <vlad2> Короче ценная доработка на основе опыта предыдущих поколений :)
[21:00:46] <alexey.veselovsky> Да, ощущается как совершенно новый язык!
[21:00:56] <alexey.veselovsky> vlad2: заценил мой мегаответ на форуме?
[21:00:56] <vlad2> А главно ничего не стоит с точки зрения сложности компилятора (ну почти).
[21:01:08] <vlad2> Нет еще.
[21:01:44] <ilov_boris> Ты где в с++ примере нужно NEW ставить?
[21:01:51] <ilov_boris> наверно туплю
[21:01:58] <ilov_boris> но никак не пойму о чем вы
[21:02:07] <alexey.veselovsky> в с++ нет аналога new походу ;-(
[21:05:06] <alexey.veselovsky> ilov_boris: смотри. по шагам проблема: вначале имеем:
[21:05:10] <alexey.veselovsky> struct A {}
[21:05:27] <alexey.veselovsky> struct B : A {void foo(){};};
[21:05:30] <alexey.veselovsky> проблемы нет
[21:05:39] <alexey.veselovsky> проходят годы
[21:06:04] <alexey.veselovsky> автор базового класа (А) который вообще не в курсе про B, берет и добавляет новую виртуальную функцию:
[21:06:13] <ilov_boris> да когда метода не было в базовом понятно
[21:06:18] <alexey.veselovsky> struct A {virtual void foo(){};};
[21:06:24] <alexey.veselovsky> и все. приплыли
[21:06:32] <ilov_boris> мне пример vlad2 непонятен
[21:06:51] <vlad2> alexey.veselovsky: ответил ;)
[21:07:09] <alexey.veselovsky> а его пример был про обратное. когда foo обязан был перегрузить базовый метод
[21:07:14] <alexey.veselovsky> а базовый метод чутка поменялся
[21:07:24] <alexey.veselovsky> и все, теперь foo ничего не перегружает
[21:09:08] <ilov_boris> И?
[21:09:42] <alexey.veselovsky> и это ошибка
[21:10:00] <alexey.veselovsky> vlad2: ответил :-)
[21:10:08] <ilov_boris> ну тык компилятор тебя и обругает без всяких NEW
[21:10:21] <alexey.veselovsky> c чего бы?
[21:10:48] <ilov_boris> тык несоответствие сигнатур
[21:11:02] <ilov_boris> у методов с одним именем
[21:11:08] <alexey.veselovsky> эмм.. ну разные сигнатуры и что? просто еще одна функция
[21:11:12] <alexey.veselovsky> в с++ :-)
[21:11:17] <ilov_boris> Аааа
[21:11:27] <ilov_boris> ну тык это в c++ :)
[21:11:53] <alexey.veselovsky> желающие могут проверить наличие этой проблемы в О2
[21:12:00] <alexey.veselovsky> благо компиляторы доступны
[21:16:08] <ilov_boris> MODULE Test3;
IMPORT  Log, Math;
TYPE
a = POINTER TO ABSTRACT RECORD END;
b = POINTER TO RECORD(a) END;

PROCEDURE (a: a) foo(x: INTEGER), NEW, ABSTRACT;

PROCEDURE (b: b) foo(x: INTEGER; y: INTEGER);
BEGIN
END foo;

BEGIN

END Test3.
[21:16:21] <ilov_boris> Ошибка: количество параметров не соответствует
[21:16:42] <alexey.veselovsky> А ты измени имя функции а не сигнатуру :-)
[21:16:51] <alexey.veselovsky> В результате рефакторинга - имя может измениться
[21:17:15] <ilov_boris> начали с сигнатуры
[21:17:20] <ilov_boris> теперь имя
[21:17:32] <alexey.veselovsky> ну, Влад писал про плюсы конкретно
[21:17:45] <ilov_boris> ну тык это проблемы плюсов
[21:17:48] <alexey.veselovsky> Сигнатура бузусловно чаще меняется в плюсах
[21:18:06] <alexey.veselovsky> Но и имя у метода базового класса во время рефакторинга часто меняется
[21:18:10] <ilov_boris> А если мы меняем имя
[21:18:26] <ilov_boris> то мы должны очень хорошо себе представлять сколько мы выпили
[21:18:27] <ilov_boris> :D
[21:18:28] <alexey.veselovsky> И у нас 100500 модулей и наследников
[21:18:43] <alexey.veselovsky> А за базовый класс отвечает один человек, а расширения лепят другие...
[21:18:50] <alexey.veselovsky> (а это классическая ситуация)
[21:19:01] <alexey.veselovsky> То без введения NEW никак не обойтись :-)
[21:19:10] <ilov_boris> Один фиг это удобняшка
[21:19:23] <alexey.veselovsky> Это жизненно необходимая удобняшка для компонентной среды
[21:19:41] <alexey.veselovsky> Лучше давайте поговорим о нише оберона. Ну там хоть мою идею поругаем что-ли...
[21:19:54] <vlad2> Имя очень часто меняется. Хотя бы  для того, чтоб сломать компиляцию ;)
[21:20:07] <ilov_boris> тем более по идее даже в этом случае должна быть ошибка
[21:20:17] <ilov_boris> если клиент скомпилирован
[21:20:20] <alexey.veselovsky> с чего бы?
[21:20:28] <alexey.veselovsky> ошибка на этапе чего?
[21:20:31] <ilov_boris> хм... мне так кажется
[21:20:33] <ilov_boris> :)
[21:20:33] <alexey.veselovsky> хочу ошибку компиляции а не рантайм
[21:20:38] <ilov_boris> щас проверю
[21:21:16] <ilov_boris> тык на этапе компиляции ты в любом случае не получишь
[21:21:23] <ilov_boris> ибо модули
[21:21:36] <alexey.veselovsky> получу. Если есть NEW
[21:21:38] <ilov_boris> мы не про с++ говорим если чо ;)
[21:21:51] <alexey.veselovsky> наследники зависят от базового модуля
[21:21:59] <ilov_boris> NEW в другом модуле
[21:22:04] <ilov_boris> в клиенте
[21:22:05] <alexey.veselovsky> и?
[21:22:13] <ilov_boris> а ты базовый класс меняешь
[21:22:20] <ilov_boris> компилятор экстрасенс?
[21:22:21] <alexey.veselovsky> они также перекомпилируются когда в другом модуле например константы меняются.
[21:22:45] <alexey.veselovsky> ну, по идее он должен версионность модулей держать
[21:22:45] <ilov_boris> каким образом?
[21:23:07] <alexey.veselovsky> fingerprint :-)
[21:23:24] <ilov_boris> ага и все твои клиенты за океаном тоже перекомпилились по команде
[21:23:25] <alexey.veselovsky> но я конечно согласен что вся эта модульность крайне не надежна (если у нас динамическая загрузка-выгрузка в ББ)
[21:23:45] <alexey.veselovsky> Короче, повторяю свой бред, просьба покритиковать (про киллер апп для оберонов, ну или хотя бы нишу):
[21:24:01] <alexey.veselovsky> У меня идея несколько другая: ориентация на программирующих прикладников (боян, да), причем в вебе. Оберон в браузере, если угодно. Современный интерфейс естественно, а не ББ или классический оберон. Построение вокруг этого сервиса для хранения, версионности документов. Ориентация на "литературное" программирование (в случае прикладников это оправдано) в составном документе.
[21:24:12] <alexey.veselovsky> + накапливающаяся база готовых компонент здесь же. То есть пакетный менеджер + гитхаб для составных докуиментов в одном флаконе.
[21:24:23] <alexey.veselovsky> Причем за счет дубовости Оберона, среду вокруг можно вырастить достаточно удобную за достаточно короткое время
[21:24:31] <alexey.veselovsky> Ориентация на спортивное программирование, на химиков/физиков/биологов
[21:24:48] <alexey.veselovsky> Генетическое программирование там, маш. обучение
[21:24:50] <ilov_boris> Т.е. облако?
[21:24:55] <ilov_boris> или на клиенте?
[21:24:57] <alexey.veselovsky> А то Марков вон, до сих пор использует Microsoft Access и VBA :-)
[21:25:04] <alexey.veselovsky> То есть сервис. В вебе.
[21:25:17] <alexey.veselovsky> Облако это или не облаго - вопрос технический и не сильно интересный
[21:25:45] <ilov_boris> Ну вроде хорошая идея
[21:25:54] <ilov_boris> только вот гуглодокс уже есть
[21:26:07] <ilov_boris> и мокрофис уже тоже
[21:26:07] <alexey.veselovsky> Только гуглодокс не позволяет там кодить и исполнять
[21:26:18] <ilov_boris> Ну есть такое например
[21:26:26] <ilov_boris> https://www.sourcelair.com/
[21:26:31] <alexey.veselovsky> И запускать на недельку-другую свою прогу крутиться на серваке (оно для биологов надо)
[21:26:37] <vlad2> /me насчитал 80 фрэймов между местом возникновения ошибки и ее обработкой. И еще раз ужаснулся при мысли о кодах возврата.
[21:27:12] <alexey.veselovsky> vlad2:  а вот были бы коды возврата, вы бы чаще рефакторили код и он бы так не разрастался!
[21:27:32] <vlad2> Ага-ага. И не релизался :)
[21:27:39] <alexey.veselovsky> ilov_boris: ну ты же понимаешь что это не то.
[21:27:41] <vlad2> Только и делали, что рефакторили бы.
[21:28:58] <alexey.veselovsky> Идея в том числе в том, что постепенно будет разрастаться репозиторий компонент. Все что накожено остается там же и доступно всем.
[21:29:57] <alexey.veselovsky> (за некоторым исключением)
[21:31:05] <alexey.veselovsky> на нулевом этапе это, в частности, позволит создать набор тестов для компилятора :-D
[21:31:14] <ilov_boris> :D
[21:31:46] <ilov_boris> Ну там тоже совместная работа
[21:31:51] <ilov_boris> через гуглодиск
[21:32:37] <ilov_boris> вроде как...
[21:32:56] <alexey.veselovsky> Но это все же не гитхаб. А тут в этом плане функциональность гитхаба. Точнее даже скорее хакеджа: http://hackage.haskell.org/packages/archive/pkg-list.html
[21:33:10] <alexey.veselovsky> с возможностью кодить прям там же.
[21:33:25] <alexey.veselovsky> и визуализировать результаты. ну, составной документ же.
[21:34:00] <ilov_boris> Ну я понял твою мысль
[21:34:16] <ilov_boris> Тем более сейчас HTML5
[21:34:33] <ilov_boris> Можно шанс ухватить
[21:34:47] <alexey.veselovsky> тем более что сейчас http://www.opennet.ru/opennews/art.shtml?num=35907
[21:34:53] <alexey.veselovsky> назревает
[21:35:38] <ilov_boris> Только я не до конца понимаю
[21:35:48] <alexey.veselovsky> (а вот для жмотов, не желающих показывать свой код, сделать платную подписку)
[21:35:54] <ilov_boris> оно на стороне сервера должно исполняться или на клиенте таки?
[21:36:09] <alexey.veselovsky> в первую очередь на клиенте - это банально быстрее
[21:36:17] <ilov_boris> JS?
[21:36:26] <alexey.veselovsky> отдельный сервис - запустить на сервере на недельку считаться
[21:36:32] <alexey.veselovsky> в первом приближении - да
[21:36:41] <alexey.veselovsky> во втором - NaCl
[21:37:30] <ilov_boris> А чем это лучше TypeScript?
[21:37:50] <alexey.veselovsky> А тем что статическая типизация и язык проще для прикладников.
[21:38:05] <ilov_boris> тык тайпскрипт тоже статическая
[21:38:15] <alexey.veselovsky> там она опциональная статическая
[21:38:35] <alexey.veselovsky> вот прикладнику делать нечего, кроме как решать какую ему сейчас выбрать типизацию
[21:38:53] <ilov_boris> А разделение сервер/клиент на уровне модулей?
[21:39:13] <ilov_boris> в 1С так сделано
[21:39:16] <alexey.veselovsky> да нет. банально - вот эту процедуру запустить на сервере. и все
[21:39:31] <ilov_boris> Это сложнее
[21:39:47] <alexey.veselovsky> почему?
[21:40:09] <ilov_boris> потому что один и тот же модуль должен уметь и там и там работать
[21:40:19] <ilov_boris> в 1С модули разные
[21:40:21] <alexey.veselovsky> сделал пробные запуски в браузере - вроде работает. ткнул что то же но на сервере давай ю
[21:40:24] <ilov_boris> возможности разные
[21:40:40] <alexey.veselovsky> тут возможности одинаковые будут. не вижу причин для разных возможностей
[21:40:44] <ilov_boris> Т.е. тот же JS но на сервере?
[21:40:53] <alexey.veselovsky> нет. скорее всего нативный бинарь.
[21:41:12] <ilov_boris> не взлетит
[21:41:19] <alexey.veselovsky> взлетит
[21:41:26] <alexey.veselovsky> но в первом приближении можно и js
[21:41:27] <ilov_boris> сервер и клиент сильно разные среды
[21:41:45] <alexey.veselovsky> не забывай что это в первую очередь алгоритмические задачи
[21:42:05] <alexey.veselovsky> то есть попробуй придумать пример где нашлось бы различие
[21:42:20] <ilov_boris> В любом случае если у тебя часть модулей на серваке а часть на клиенте
[21:42:34] <ilov_boris> придется специфицировать клиент/серверное взаимодействие
[21:42:37] <alexey.veselovsky> нет. либо все модули на серваке либо все на клиенте
[21:42:40] <alexey.veselovsky> по сути.
[21:42:53] <ilov_boris> А если модулей пара сотен?
[21:42:58] <ilov_boris> толстых
[21:43:06] <alexey.veselovsky> и?
[21:43:23] <ilov_boris> ну например есть мега либа математическая
[21:43:27] <ilov_boris> 100 мб размером
[21:43:38] <ilov_boris> она к тебе каждый раз засасываться будет?
[21:43:43] <alexey.veselovsky> ох. до 100 Мб исходников надо дожить еще :-)
[21:43:54] <ilov_boris> Ну в перспективе
[21:43:54] <alexey.veselovsky> Кроме того, все 100 Мб НИКОГДА одновременно нужны не бывают
[21:44:03] <alexey.veselovsky> Тебе будут досылаться модули по мере их надобности
[21:44:14] <ilov_boris> а смысл?
[21:44:25] <alexey.veselovsky> Динамическая загрузка, ога. Причем в прямом смысле - download динамический
[21:44:41] <ilov_boris> когда часть функционала (который не завязан на гуй) можно всегда на серваке выполнять?
[21:45:14] <alexey.veselovsky> Потому, что это будет тормозно (латентность, привет) вне зависимости от толщины канала
[21:45:22] <alexey.veselovsky> Кроме того, это уложит сервак.
[21:45:44] <ilov_boris> а если ты активног с СУБД работаеши?
[21:46:01] <ilov_boris> и гигобайты инфы шпилишь алгоритмами?
[21:46:04] <alexey.veselovsky> Ты учти, что сейчас средний комп где крутится клиент либо столь же мощный как сервак либо мощнее.
[21:46:42] <alexey.veselovsky> Ты юзкейс придумай плиз.
[21:46:43] <ilov_boris> это все фигня
[21:46:56] <ilov_boris> JS слишком тормозной
[21:47:03] <ilov_boris> чтобы серьезные вещи тянуть
[21:47:11] <alexey.veselovsky> да. раза в три тормознее оптимизированного С++ кода
[21:47:22] <alexey.veselovsky> Это безусловно ужасно :-)
[21:47:22] <ilov_boris> тонкий клиент не просто так придуман
[21:47:47] <ilov_boris> а ты хочешь толстый клиент в браузере
[21:48:29] <alexey.veselovsky> Более того, по работе я его там и имею.  И у нас там алгоритмы математические кое-какие крутятся, и десятки мегабайт данных ворочаются и при этом оно еще и отрисовывает все это дело в реалтайме.
[21:48:33] <alexey.veselovsky> И НЕ ТОРМОЗИТ!!11
[21:49:24] <alexey.veselovsky> Только вот постоянные косяки с js из за динамической типизации и общей кривости языка. Жутко хочется его выпилить нахрен.
[21:50:09] <ilov_boris> вот тонкий клиент http://demo-ma.1c.ru/corp-doc8/ru_RU/
[21:50:26] <ilov_boris> он и то еле ползает
[21:54:16] <ilov_boris> гуглодоксы - это тоже тонкий клиент
[21:54:35] <ilov_boris> думаю что тяжелые вещи он таки в облаке гоняет
[21:56:12] <alexey.veselovsky> кроме того, ты забываешь что у js есть хранилище для файлов. то есть если тебе нужно 100500 мегабайт файло, то ты его просто можешь скачать а затем локально вертеть.
[21:57:05] <alexey.veselovsky> оно еле работает скорее всего именно из за своей тонкости :-)
[21:57:16] <alexey.veselovsky> кроме того, из за попыток походить на десктоп
[21:57:32] <ilov_boris> а как иначе?
[21:57:58] <ilov_boris> если ты хочешь иде, то тебе придется походить на десктоп
[21:58:45] <alexey.veselovsky> :-)
[21:59:21] <alexey.veselovsky> посмотрел - да, эта демо тормозит именно из за тонкости
[21:59:29] <ilov_boris> мне сегодня кстати чувак показывал как он в iPAD на с++ кодит :D
[21:59:35] <alexey.veselovsky> там на каждый чих десяток запросов, каждый запрос - по 400 мс примерно
[21:59:39] <alexey.veselovsky> вот и считай
[21:59:45] <alexey.veselovsky> и каг?
[22:00:07] <ilov_boris> valexey: если функционал 1С перетащить в браузер то оно бы вообще не работало :D
[22:00:32] <ilov_boris> " и каг?" прикольно. Поржал :D
[22:00:44] <alexey.veselovsky> не факт что не работало бы если именно функционал перетащить
[22:00:49] <alexey.veselovsky> а что там было?
[22:01:08] <ilov_boris> онлайн компилер какой-то
[22:01:16] <ilov_boris> типа того, что я давал выше
[22:01:22] <alexey.veselovsky> o_O
[22:01:30] <alexey.veselovsky> то есть XCode отменили что-ли?
[22:01:37] <ilov_boris> Это чо?
[22:01:48] <alexey.veselovsky> а, он на самом  iPad программит
[22:01:51] <alexey.veselovsky> ясно
[22:01:57] <alexey.veselovsky> ну, я тоже програмлю
[22:02:10] <alexey.veselovsky> но у меня все проще: ssh на сервак и дальше обычный юниксвей
[22:02:29] <alexey.veselovsky> сегодня вот как раз так исходники схемы писанной на модуле-3 ковырял
[22:02:41] <ilov_boris> " а, он на самом  iPad программит" Да
[22:03:06] <ilov_boris> valexey: извращенец :)
[22:03:20] <ilov_boris> или у тебя клава есть для iPad
[22:03:22] <ilov_boris> ?
[22:03:30] <alexey.veselovsky> кстати, вот на iPad'е через ssh когда, как раз пригождается идеалогия тех древних юниксов - трех-двух буквенные названия всего
[22:03:41] <alexey.veselovsky> и лаконичность синтаксиса шела и сей
[22:03:49] <alexey.veselovsky> не, с экранной конечно
[22:04:12] <alexey.veselovsky> а вот синтаксис модулы уже не вставляет, если нужно что-то написать
[22:04:14] <ilov_boris> О чего тебя онлайн с++ компайлер смутил?
[22:04:49] <alexey.veselovsky> ну, просто если программить не на iPad,  а ПОД iPad, то самое вменяемое решение это XCode от Apple на маке
[22:04:58] <ilov_boris> "не, с экранной конечно" Во. А тот именно на экранной хреначил :D
[22:05:13] <ilov_boris> ааа
[22:05:14] <alexey.veselovsky> запятую видишь? я тоже с экранной
[22:05:32] <alexey.veselovsky> и сервак где форум крутится админится так же :-)
[22:06:07] <alexey.veselovsky> у меня сейчас дома ни одного компа нет - только iPad :-)
[22:06:10] <alexey.veselovsky> все компы на работе
[22:06:13] <ilov_boris> "запятую видишь?" не, заметил ;)
[22:06:23] <alexey.veselovsky> Ж-]
[22:07:15] <alexey.veselovsky> даже в WoT дома не загамаешь!
[22:07:27] <alexey.veselovsky> Приходится Маркова читать :-)
[22:07:53] <ilov_boris> iPad делает тебя лучше
[22:08:11] <alexey.veselovsky> :-)
[22:08:32] <alexey.veselovsky> в игры на нем играть не интересно. там скучные игры. аркадки какие-то.  казуалки. книжка интересней.
[22:08:43] <alexey.veselovsky> собственно я на нем книжки тоже читаю.
[22:09:31] <ilov_boris> у меня начальник купил на электронных чернилах читалку
[22:09:36] <ilov_boris> няшная штука
[22:09:50] <ilov_boris> глаза не устают
[22:09:52] <alexey.veselovsky> угу. но для тех. док подходит плохо. и для djvu
[22:10:18] <ilov_boris> djvu да, фиговато
[22:10:24] <alexey.veselovsky> ибо нужен там динамический зум. с коим у таких книжек проблемы
[22:10:26] <ilov_boris> а вот PDF отлично
[22:10:36] <alexey.veselovsky> именно у техдок
[22:10:46] <alexey.veselovsky> со схемами и прочей ересью
[22:11:05] <ilov_boris> ну читалки все же не для тех док
[22:11:28] <alexey.veselovsky> угу
[22:12:51] <ilov_boris> valexey: что лучше брать iPad или Samsung?
[22:13:09] <ilov_boris> при аналогичных характеристиках?
[22:13:14] <alexey.veselovsky> зависит от модели использования
[22:13:35] <alexey.veselovsky> если тебе хочется его таскать как флешку, если ты жить не можешь без файл-манагера, то самсунг.
[22:13:40] <ilov_boris> интернет-книжки-фильмы
[22:14:05] <alexey.veselovsky> если интернет-книжки-фильмы, и если тебя не пугает iTunes, то iPad.
[22:14:14] <ilov_boris> а что у iPad с этим проблема?
[22:14:32] <alexey.veselovsky> У iPad принципиально нет такого понятия как файловый менеджер :-)
[22:14:40] <alexey.veselovsky> У тебя там просто нет доступа к файловой системе
[22:14:45] <alexey.veselovsky> (если не сделать джейлбрейк)
[22:15:03] <alexey.veselovsky> И одно приложение не может дотянуться до содержимого песочницы другого приложения
[22:15:03] <ilov_boris> а как книжки на него залить?
[22:15:17] <alexey.veselovsky> Через iTunes или прямо через браузер
[22:15:29] <ilov_boris> Спасибо
[22:15:36] <alexey.veselovsky> Пжалста :-)
[22:15:40] <ilov_boris> Мне нужен самосунг :D
[22:16:05] <alexey.veselovsky> У самсунга, как и у других андроидопланшетов проблема - там нет софта а если и есть, то он кривой
[22:16:27] <alexey.veselovsky> То есть бОльшая часть софта там написана под смартфон (да и то криво) и поэтому на планшете смотрится просто ужасно
[22:16:31] <alexey.veselovsky> Ну и тормозит :-)
[22:16:52] <alexey.veselovsky> А как железяка, в руках, самсунг приятней - он легче йпада и не выскальзывает.
[22:16:52] <ilov_boris> про ПО мне говорили да
[22:17:12] <alexey.veselovsky> Ну и соотношение сторон у iPad'а правильней все же
[22:17:29] <ilov_boris> жаба все равно душит столько бабок за игрушку отдавать
[22:17:31] <ilov_boris> :)
[22:17:37] <alexey.veselovsky> То есть у меня тут и самсунг и ipad, вначале пользовался самсунгом, потом как-то незаметно полностью перешел на йпад
[22:18:04] <alexey.veselovsky> Хотя андроид конечно более хакер-френдли.
[22:19:20] <ilov_boris> у тебя сколько дюймов?
[22:19:31] <ilov_boris> iPad в смысле ;)
[22:19:36] <alexey.veselovsky> 10
[22:19:39] <alexey.veselovsky> iPad 2
[22:19:51] <alexey.veselovsky> гнусмас тоже 10
[22:19:57] <ilov_boris> вот мне 10 тоже нравится
[22:20:09] <ilov_boris> самый нормальный размер
[22:20:13] <alexey.veselovsky> ну, нравится нет, у меня он рабочий - я под него пишу :-)
[22:20:25] <alexey.veselovsky> для чтения он тяжеловат все же
[22:20:34] <ilov_boris> по весу?
[22:20:46] <alexey.veselovsky> угу.  впрочем, как и самсунг
[22:21:09] <alexey.veselovsky> то есть его надо обязательно куда-то упереть/положить чтобы читать
[22:21:18] <alexey.veselovsky> на весу даже на двух руках - не удобно.
[22:21:41] <ilov_boris> ну это я переживу
[22:21:43] <ilov_boris> :)
[22:23:46] <alexey.veselovsky> Страуструпа щупал книжку? Вот 10" чуть легче :-)
[22:24:34] <alexey.veselovsky> то есть оно по массе примерно как какая-нибудт 600-700 страничная книженция формата страуса
[22:24:40] <ilov_boris> "Страус трупа щупал книжку" забавная фраза :D
[22:25:14] <alexey.veselovsky> только эти планшеты держать не приятно относительно книжки - они ж не мягкие :-)
[22:25:58] <ilov_boris> Я люблю читать лежа
[22:26:10] <ilov_boris> и опирать книгу на грудь
[22:26:32] <alexey.veselovsky> ну, тогда норм наверно. (главное чтобы оно на морду лица не свалилось, а то оно жесткое!)
[22:26:59] <ilov_boris> на морду пофиг
[22:27:11] <ilov_boris> главное чтоб это чудо об морду н разбилось
[22:27:12] <ilov_boris> :D
[22:28:11] <ilov_boris> у меня диллема
[22:28:19] <alexey.veselovsky> ну, в плане ударостойкости, на счет iPad'а не знаю, он почти не падал, а вот самсунг сцуко крепкий
[22:28:19] <ilov_boris> взять ноут или планшет
[22:28:31] <alexey.veselovsky> Он с полутора метров об пол падал углом
[22:29:09] <alexey.veselovsky> То есть упал и радостно упрыгал в дальний угол под стол
[22:29:10] <ilov_boris> и не откололось ничего?
[22:29:22] <alexey.veselovsky> И нифига - маленькая царапенка на углу
[22:29:46] <ilov_boris> у меня вот эл. книжка накрылась, когда со шкафа упала на угол
[22:29:47] <alexey.veselovsky> А уж сколько его тут после роняли (правда с высоты колен или крышки стола) - не счесть
[22:29:59] <alexey.veselovsky> Дык, чернила же! Они хрупкие жуть
[22:30:06] <ilov_boris> не не
[22:30:10] <alexey.veselovsky> А тут тупейший TFT, чо ему будет?
[22:30:10] <ilov_boris> медиаридер
[22:30:13] <ilov_boris> на жк
[22:30:33] <alexey.veselovsky> Ну, в общем вот. Тот гнусмас что у меня - живучий оказался.
[22:30:58] <ilov_boris> ну у меня у книжки электроника не пострадала
[22:31:03] <ilov_boris> но корпус треснул
[22:31:06] <alexey.veselovsky> но это один из первых, в США купленный
[22:31:34] <alexey.veselovsky> то есть он без надписи SAMSUNG на морде (только на крышке). Видимо особенность мерикосского рынка
[22:31:52] <alexey.veselovsky> И всем своим видом смахивающий на iPad :-)
[22:31:58] <alexey.veselovsky> то есть еще до разбирательств
[22:32:12] <ilov_boris> :)
[23:16:56] <ilov_boris> Прикольно http://forum.oberoncore.ru/viewtopic.php?f=12&t=4226&p=77500#p77500
[23:17:20] <ilov_boris> народ поумничал, но вердикта так и не вынес
[23:17:34] <ilov_boris> С чем спорили?
[23:17:38] <ilov_boris> клоуны
[23:19:01] <alexey.veselovsky> нишмогла :-)
[23:21:14] <ilov_boris> "Чтобы можно было описать массив объектов класса с конструктором, этот класс должен иметь стандартный конструктор, т.е. конструктор, вызываемый без параметров. Например, в соответствии с определением
         table tbl[10];
будет создан массив из 10 таблиц, каждая из которых инициализируется вызовом table::table(15), поскольку вызов table::table() будет происходить с фактическим параметром 15. "
[23:21:16] <ilov_boris> http://www.cyberguru.ru/cpp/cpp-language-straustrup3-page25.html
[23:21:24] <ilov_boris> Не понял. Откуда 15?
[23:23:23] <ilov_boris> А все понял
[23:24:49] <ilov_boris> "В описании массива объектов не предусмотрено возможности указать параметры для конструктора"
[23:25:05] <ilov_boris> Тык это вообще низя оказывается
[23:25:09] <ilov_boris> O_o
[23:37:05] <alexey.veselovsky> ilov_boris: если это про плюсы, то это несколько устаревшие данные
[23:37:25] <ilov_boris> тык как тогда?
[23:37:37] <ilov_boris> помнишь я спрашивал как массив векторов сделать?
[23:37:50] <ilov_boris> если у вектора конструктор с параметром
[23:39:37] <alexey.veselovsky> http://ru.wikipedia.org/wiki/C%2B%2B11#.D0.A1.D0.BF.D0.B8.D1.81.D0.BA.D0.B8_.D0.B8.D0.BD.D0.B8.D1.86.D0.B8.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B8
[23:41:28] <ilov_boris> Не совсем то
[23:41:41] <ilov_boris> и это новые возможности
[23:41:51] <alexey.veselovsky> и это современный c++ :-)
[23:41:58] <ilov_boris> а раньше как?
[23:42:00] <alexey.veselovsky> и это совсем то.
[23:42:13] <ilov_boris> там для каждого объекта
[23:42:22] <ilov_boris> а мне нужно для всех
[23:42:36] <alexey.veselovsky> опиши что именно хочется. хочется в одну строку задать содержимое вектора?
[23:42:39] <alexey.veselovsky> литералом
[23:43:21] <ilov_boris> class Vector
{
private:
 int size;
 float *vector;
public:
 Vector(int init_size)
 {
   size = init_size;
   vector = new float[size];
 }

 ~Vector()
 {
   delete [] vector;
 }
};
[23:43:32] <ilov_boris> ну вот вектор
[23:44:08] <ilov_boris> вот хочу чтоб так Vector matrix[3](3)
[23:44:15] <ilov_boris> Ну или примерно так
[23:44:43] <ilov_boris> Ну чтоб получился массив векторов, каждый из которых длиной 3
[23:44:55] <ilov_boris> Это невозможно?
[23:45:13] <alexey.veselovsky> что мешает сделать конструктор с двумя параметрами?
[23:45:22] <alexey.veselovsky> что мешает загнать это в шаблон?
[23:45:35] <ilov_boris> не не
[23:45:51] <ilov_boris> меня интересует именно эта конструкция
[23:45:58] <ilov_boris> возможно ли так сделать или нет
[23:46:55] <ilov_boris> Ну или можно задать массив с типом Vector, а потом в цикле создать объекты?
[23:47:21] <ilov_boris> Т.е. как вообще в массиве можно объекты разместить?
[23:48:45] <alexey.veselovsky> Гм. Obj o[100500]; // массив объектов
[23:49:06] <ilov_boris> А что такое Obj?
[23:49:11] <alexey.veselovsky> Класс
[23:49:14] <alexey.veselovsky> какой-то
[23:49:19] <alexey.veselovsky> твой
[23:49:25] <alexey.veselovsky> пофиг
[23:49:30] <alexey.veselovsky> тип
[23:49:32] <ilov_boris> Ну вот с моим вектором не получается
[23:49:44] <ilov_boris> ибо у него конструктор
[23:49:52] <alexey.veselovsky> обязательный?
[23:50:00] <alexey.veselovsky> конструктора по умолчанию нема?
[23:50:23] <ilov_boris> тык размер в рантайме задается
[23:50:55] <alexey.veselovsky> дык задавай в рантайме. потом. уже когда вектор создан
[23:51:11] <alexey.veselovsky> если уж тебе хочется такого дубового ООПшного решения :-)
[23:51:34] <ilov_boris> Ну т.е. так как я хочу не получится?
[23:51:54] <alexey.veselovsky> ща эксперимент. ван сек
[23:51:57] <ilov_boris> я спрашиваю токмо в целях просвещения
[23:57:27] <alexey.veselovsky> вот прямо как ты хочешь, на древних плюсах, нет, не выйдет.
[23:57:46] <ilov_boris> понятно
[23:58:15] <ilov_boris> мне почему то казалось что оно обязательно должно работать :)
[23:58:42] <alexey.veselovsky> ну, это ж тебе не матлаб
[23:59:15] <ilov_boris> Ну в цикле тоже никак?
[23:59:21] <alexey.veselovsky> вообще начинать изучать плюсы с матриц и прочей математики довольно странное желание :-)
[23:59:40] <alexey.veselovsky> ну сделай массив указателей на объекты :-)
[23:59:42] <ilov_boris> я пока просто к синтаксису пытаюсь привыкнуть
[23:59:53] <ilov_boris> "ну сделай массив указателей на объекты" Как?