[00:08:24] <белый шум> чутка проапгредил логово бота
http://uniobox.i2p.to/log/oberon@conference.jabber.ru
[00:08:48] <белый шум> если оно ещё кому нибудь надо
[00:11:09] <белый шум> вот
[00:32:47] <kemiisto> бб
[10:02:03] <subj_rs> у хостенга Жабы 9го апреля 2011 в период с 5:00 - 7:00 по московскому времени будут перебои со связью
[12:15:45] <белый шум> тяпница в обероноконференции.
[12:19:59] <kemiisto> тишина, покой, порядок
[12:20:24] <kemiisto> нет valexey - нет клевет =)))
[12:21:01] <белый шум> целый лозунг :)
[12:24:40] <белый шум> log
[12:24:42] <Жаба> белый шум, Logs here: http://62.109.22.137/oberon@conference.jabber.ru/
[12:39:53] <geniepro> это чоза пусто-пусто?
[12:40:27] <kemiisto> главного возмутителя спокойствия нет =)
[12:41:05] <geniepro> клевета! он не главный! )))
[12:41:23] <geniepro> самый главный -- тихий бот ))
[12:41:32] <белый шум> гг
[12:41:40] <белый шум> серый кардинал
[13:30:22] <белый шум> не, если делать боту какой-нить shell с командами, то это будет уже не тихий бот.

[13:50:06] <subj_rs> пусть он т огда общается языком жестов )
[13:50:43] <белый шум> в жабер-конфочках не видно PEP
[13:51:15] <subj_rs> ascii )
[13:51:32] <белый шум> ну он же должен быть тихий.
[13:51:41] <белый шум> это ж как брэнд :)
[13:52:13] <subj_rs> белый шум: это прикрытие отсутствия функционала )
[13:52:44] <белый шум> это клеветы :)
[13:53:05] <белый шум> version
[13:53:06] <Жаба> белый шум, you have Psi+ 0.15.3755 Beta (Mar 8 2011) on Windows 7
[13:53:10] <белый шум> version
[13:53:10] <Жаба> белый шум, you have Psi+ 0.15.3755 Beta (Mar 8 2011) on Windows 7
[13:53:29] <белый шум> я понимаю, в конфе разрабов Psi+ эта команда полезна.
[13:53:36] <белый шум> а здесь-то она зачем?
[13:53:54] <subj_rs> ккакая?
[14:01:34] <белый шум> ну, version
[14:02:36] <subj_rs> она уже есть, а зачем - дело десятое )
[14:02:48] <subj_rs> была есть и будет )
[14:03:03] <белый шум> болезненная множественность
[18:35:36] <Romiras> Привет, народ!
Не напомните ли, какой аналог в Обероне или КП для переменного количества параметров? В Делфи это Array Of Const.
[18:43:08] <Romiras> Самая главная проблема состоит в том, что прямого аналога я не вижу. Используется макрос для компилятора, не производящий проверку типов. Все параметры рассматриваются грубо как массив указателей.
[18:44:11] <valexey> Romiras: ARRAY OF AnyRec :-)
[18:44:32] <valexey> КП, да.
[18:45:41] <valexey> kemiisto: что-то у меня клеветы походу уже интегрированные в моск. в частности высказываение info21 я прочитал так: "Вирт ушел от природы вещей, а не от балды. Поэтому что ж тут удивительного.
Удивительно только то, что вообще такой проект затеяли."
[18:46:22] <valexey> подумал, неужта таки info21 в кой то веки раз что-то мудрое сказал?! перечитал, ан нет, не сказал оказывается :-)
[18:48:17] <Romiras> То есть printf на КП будет выглядеть так:
PROCEDURE [ccall] printf* (format: ARRAY OF [untagger] SHORTCHAR; params: ARRAY OF ANYREC);
?
[18:49:01] <valexey> ну, в принципе да. только пользоваться этим не удобно. зато более секурно
[18:49:04] <Romiras> должно быть [untagged]
[18:49:21] <valexey> ибо там же можно проверить в рантайме что именно там пихают.
[18:49:41] <valexey> но есть нюанс — в КП нет [untagged]
[18:50:18] <Romiras> "Там" -это где?
[18:50:37] <valexey> в КП в функции printf
[18:50:42] <valexey> в её реализации
[18:51:04] <valexey> непосредственно конструкции КП на printf сишный не отображаются
[18:51:32] <valexey> нужно лезть в SYSTEM, впрочем, стандартного система видимо тоже не достаточно.
[18:51:35] <Romiras> мне нужно составить интерфейс для С
[18:51:46] <valexey> зачем тебе в обероне printf?
[18:52:04] <valexey> я не вижу великого смысла в нем.
[18:52:36] <valexey> лучше долезть до более низкого уровня и реализовать свой printf (точнее то что нужно).
[18:53:01] <Romiras> значит, выводить строки без printf?
[18:53:31] <valexey> дык да. по крайней мере без сишного принтфа
[18:54:02] <Romiras> Или же не пользоваться переменным количеством аргументов в этой функции?
[18:54:07] <valexey> весьма советую посмотреть как сделана библиотека IO в Аде например
[18:54:38] <valexey> printf хрень высокоуровневая заточеная под ровно один язык — Си. Какой смысл её оборачивать?
[18:54:59] <valexey> Нужно оборачивать системные функции, посредством которых уже лепить нативный IO
[18:55:35] <valexey> Кстати, в модуле, что в кроносе использовалась, было сделано расширения языка для таких вот принтфов. зачем-то.
[18:56:06] <valexey> Ну, ты ж понимаешь, что сишный принтф принципиально не безопасен. то есть в рантайме может легко быть порча памяти.
[18:56:12] <Romiras> Мне удобно использовать шаблоны типа "Вася купил %d батонов хлеба", которыми потом легко оперировать для переводов на другие языки
[18:56:20] <valexey> при этом в компайл тайме это не отловить. он не типобезопасен.
[18:57:24] <valexey> по этим граблям я уже тащемто бегал.
[18:58:01] <valexey> тебе потребуется научить компилятор распознавать именно этот принтф и чтобы он проверял соответствие типов аргументов содержимому даденой строки.
[18:58:14] <Romiras> Про безопасность я понимаю. Мне не нравится WriteString("Вася купил "); WriteInt(nBatonov); WriteString(" батонов хлеба");
[18:59:13] <Romiras> Хочется работать с одной строкой, в которую подставляешь нужные параметры и они подставляются в нужном месте. Какое решение предложите?
[18:59:34] <valexey> И вот тут то помогло бы то, о чем я уже давно говорю на форуме :-)
[18:59:38] <valexey> Но всем пофиг Ж-)
[19:00:23] <Romiras> Процитируй предложение или ссылочку... пожалуйста
[19:02:03] <Romiras> В принципе, мне более нужна функция форматирования строки, нежели вывода на экран. sprintf()
[19:02:48] <valexey> "Да, это я клоню к тому, что в инструментальном наборе программиста должен быть струмент, позволяющий манипулировать AST (модифицировать, создавать его отдельные куски), чтобы вот такие вот мелкие задачки на местах можно было решать максимально безопасно. (это требуется относительно редко, но иногда этого очень нехватает)."
[19:05:49] <Romiras> Dialog.MapParamString - это частный вариант того, что мне хотелось бы для работы.
[19:06:23] <valexey> А ч то оно умеет?
[19:07:49] <Romiras> В нём используется параметр in для указания шаблона по которому брать строку из ресурсов и есть строчные параметры p0, p1, p2
[19:09:22] <valexey> смотри, если нам нужно сделать свой принтф (предположим что Си не существует в природе вообще, соответственно бинднгов тоже в природе нет и не будет), тогда будет таки так: PROCEDURE [ccall] printf* (format: ARRAY OF SHORTCHAR; params: ARRAY OF ANYREC);
[19:10:21] <valexey> также из минусов — тебе придется любой завялящий INTEGER оборачивать в рекорд
[19:10:46] <Romiras> и это ужасный способ
[19:10:47] <valexey> то есть вначале у тебя длинное и занудное перечисление и инициализация рекордов, затем засовывание их в массив, затем вызов этой функции.
[19:12:24] <Romiras> печально всё как-то...
[19:12:30] <valexey> если бы компилятор был бы модульным, к чему я собственно и призываю, было бы элементарно — написал бы свой модуль конкретно для этого случая и все.
[19:13:49] <Romiras> тогда была бы проблема несовместимости между ними или ещё какие-то нюансы
[19:14:14] <valexey> между кем и кем?
[19:14:48] <valexey> тем более что несовместимость и так имеется — gpcp в общем случае не совместим с ББ
[19:14:53] <Romiras> психо-социологические у людей по поводу несовместимости между компиляторами
[19:15:00] <valexey> вообще, покажи мне два полностью совместимых Оберон-компилятора :-)
[19:15:18] <valexey> Нет совместимых оберон-компиляторов.
[19:15:31] <valexey> Так что положение не ухудшилось бы.
[19:16:10] <Romiras> можно гадать
[19:16:58] <valexey> нельзя. текущее положение в плане совместимости хуже некуда. и вообще она никого особо не волнует.
[19:17:07] <valexey> среди оберонщиков
[19:19:00] <Romiras> Как самый безболезненный выход из положения,
PROCEDURE [ccall] printf* (str: ARRAY OF [untagger] SHORTCHAR);
то есть без указания доролнительных параметров, сойдёт?
[19:19:54] <valexey> а толку с него?
[19:20:17] <Romiras> Интересует совместимость соглашения о вызовах, то есть не будет ли проблем с выводом на экран простой строки?
[19:20:44] <Romiras> А форматирование строки реализовать тогда по-обероновски.
[19:21:18] <valexey> с простой строкой не будет проблем. не я не вижу смысла. это ничем не будет отличаться от WriteStr какого-нибудь
[19:21:30] <valexey> разве что эскейп последовательностями
[19:22:53] <Romiras> Да, тупой вывод на экран. В случае, когда используется сторонняя библиотека. Такая как glib.
[19:24:01] <Romiras> Впрочем, сам мог бы уже давно всё проверить...
[19:32:23] <valexey> когда используется глиб, то не зачем использовать printf, есть более узко специальные функции для вывода конкретно строк/символов
[19:32:40] <valexey> настоятельно рекомендую посмотреть как этот printf реализован унутре
[19:32:49] <valexey> там нет никакой магии
[19:47:40] <kemiisto> во нафлудили то =)
[19:47:41] <kemiisto> ааа
[19:47:43] <kemiisto> понятно
[19:47:50] <kemiisto> valexey вернулсо =)
[19:48:18] <valexey> да-да. бредогенератор
[19:50:35] <kemiisto> клеветогенератор =)
[19:51:24] <valexey> кстати, я не понял в каком месте ObjModula к оберону ближе :-)
[19:51:30] <valexey> Не понятно ближе чем к кому?
[19:51:38] <valexey> Чем к модуле? Дык ниверю :-)
[19:52:12] <kemiisto> valexey: я ж написал в каком =)
[19:52:32] <valexey> та ладно, у оберонов полно реализаций, одна другой кучерявей :-)
[19:52:51] <valexey> может им, в пику, изобрести Objective Oberon? :-)
[19:53:51] <kemiisto> valexey: всегда пожалуйста
[19:53:56] <kemiisto> только одно пожелание
[19:54:05] <kemiisto> идите от природы вещей!
[19:54:07] <kemiisto> =)
[19:54:12] <kemiisto> а нет, два!
[19:54:32] <kemiisto> сделайте реализацию доступной всем, а не только тем, кому надо =)))
[19:55:40] <valexey> kemiisto: кстати велика и могуча русская языка!
[19:56:12] <kemiisto> в смысле?
[19:56:12] <valexey> ибо то что вирт шел от природы вещей, как бы означает, что если он шел успешно, значит в конце концов он от природы вещей ушел таки :-)
[19:56:24] <kemiisto> :-D
[19:56:27] <kemiisto> толсто!
[19:57:02] <valexey> /me до пяти утра смотрел презентации джобса всяких новых дивайсов, много думал, анализировал
[19:57:30] <valexey> что-то сегодня на меня начальнег посмотрел, и сказал, чтобы я шел отдыхать
[19:58:16] <valexey> да-а, а если вирт не ушел от природы вещей, значит он неудачник и своих целей не достиг.
[20:01:25] <kemiisto> пойду Star Wars VI смотреть =)
[20:01:37] <kemiisto> да прибудет с вами сила!
[20:01:45] <kemiisto> :-P
[20:02:11] <valexey> а авионика звезды смерти на обероне писана?
[20:02:14] <valexey> или же таки на Аде?
[20:05:23] <geniepro> хао, бледнолицые!
[20:05:42] <geniepro> log
[20:05:43] <Жаба> geniepro, Logs here: http://62.109.22.137/oberon@conference.jabber.ru/
[20:06:30] <valexey> /me походу последний патриот
[20:06:36] <valexey> /me пользуется логами тихого бота
[20:06:43] <geniepro> ))
[20:06:56] <geniepro> тихий бот такой тормоз в плане логов
[20:07:14] <valexey> а куда торопиться? секундой больше, секундой меньше
[20:07:24] <valexey> зато теперь у него страничка много удобней жабы
[20:07:31] <valexey> наконец то дерево выпилили
[20:07:38] <geniepro> у меня минутой больше, минутой меньше ))
[20:09:05] <geniepro> у тихого бота в логе шрифт приятнее
[20:09:30] <geniepro> терпеть нинавижу шрифты с засечками
[20:09:38] <valexey> та он вообще эргономичней тащемто. но вот венда губит все, из за нее тормоза в плане связи
[20:11:29] <valexey> ну, в общем они вполне дополняют друг друга.
[20:11:51] <valexey> надо им третьего придумать :-)
[20:13:51] <geniepro> > valexey: Ну, ты ж понимаешь, что сишный принтф принципиально не безопасен. то есть в рантайме может легко быть порча памяти.

А вот в хаскелле printf не только безопасен, но ещё и во время компиляции проверки типов параметров делает
[20:14:22] <valexey> geniepro: ты не поверишь, знаю про это, и даже знаю как реализовано :-)
[20:14:46] <valexey> там это работает за счет автокарирования функций
[20:15:03] <valexey> а вот как оно работает в окамле я так и не понял, по моему, там хак на уровне компилятора
[20:15:20] <geniepro> > Мне не нравится WriteString("Вася купил "); WriteInt(nBatonov); WriteString(" батонов хлеба");

почему не сделать так: WriteString("Вася купил " + StrintToInt(nBatonov) + " батонов хлеба");

?
[20:16:11] <geniepro> > там это работает за счет автокарирования функций

там классы типов накручены, и кажись Template Haskell заюзан...
[20:16:53] <valexey> printf делается на чистом haskell98
[20:17:15] <geniepro> каким образом?
[20:17:39] <valexey> классы типов + автокаррирование :-)
[20:17:48] <valexey> ладно, я домой побег.
[20:17:52] <geniepro> компилятор долже на основе текстовой константы вывести типы следующих аргументов -- не представляю, как это сделать на хаскелл 98
[20:21:28] <subjrs> /me выпел водке и щаслифф
[20:22:48] <geniepro> \me
[20:22:53] <geniepro> /me
[20:23:27] <geniepro> /me пришёл с работы, сокрушаясь по поводу глючности софта, который ему приходится поддерживать и развивать ((
[20:23:51] <subjrs> а я седня наоборот поднял очередную софтину для тестов
[20:24:12] <geniepro> юнит-тесты? QuickCheck рулит
[20:24:30] <subjrs> не, юзверь-тесты, испытания на хомячках
[20:25:05] <subjrs> вебморду к почтовику захотелось начальству
[20:25:11] <geniepro> у нас хомячки -- кассиры в магазинах ))
[20:25:51] <subjrs> geniepro: ну а у мня почти тысяча почтовых учеток в АД )
[20:26:13] <geniepro> АД -- это что? софт, написанный на АДЕ? ))
[20:26:32] <subjrs> AD, эктив директори. там учетки хранятцо
[20:26:50] <geniepro> вендовозный ад? стоит ли? ))
[20:27:10] <subjrs> стоИт уже лет 5, еще до меня ставили )
[20:27:18] <geniepro> там кстати вроде движок базы данных самопальный мелкософтский имеется внутри
[20:27:58] <Romiras> > geniepro: почему не сделать так: WriteString("Вася купил " + StrintToInt(nBatonov) + " батонов хлеба");
Это в Обероне/КП?
[20:28:41] <geniepro> это в любом нормальном языке, де строки символов -- жители первого класса
[20:29:18] <subjrs> в АД, как мне говорили знающие люди, не база данных, а непойми что. при удалении учетки - физически она не удаляется и поэтому их нужно просто дизэйблить ибо при интенсивном добавлении/удалении адЭ в скором времени встанет колом )
[20:30:08] <subjrs> макрософаг как обычно в своем стиле, задумка отличная, реализация - "получилось как всегда"
[20:32:51] <Romiras> > geniepro: это в любом нормальном языке, де строки символов -- жители первого класса
В Обероне жителями первого класса являются массивы байтов и записи
[20:33:16] <Romiras> А строки - это чужаки
[20:33:21] <geniepro> всё так скучно, что хочется изобрести свой языг программирования и троллить оппонетнов на его тему ))
[20:34:08] <Romiras> Для строк - дополнительная бюрокаратия.
[20:34:39] <Romiras> опечатка интересная получилась. От слова "карать". :)
[20:35:08] <geniepro> не, мне больше нра термин "бюрокретин"
[20:36:03] <Romiras> Не. Кретинизм - это болезнь. Немного другое.
[20:46:28] <Romiras> Кто из присутствующих пользуется шаблонами MVC или MVP и для каких задач?
[20:47:05] <geniepro> MVC -- это же для построения гуи используется
[20:48:15] <Romiras> ну да
[20:48:56] <geniepro> некоторые любят хранить данные в полях ввода вывода на гуи-формах. бить их палкой за это надо
[20:49:03] <Romiras> Может, есть какие-то предпочтения для решения тех или иных видов задач.
[20:50:52] <Romiras> > некоторые любят хранить данные в полях ввода вывода на гуи-формах
возможно, это от незнания и от применения неверного инструмента
[21:33:51] <geniepro> >> Влад, ну я работаю больше 10 лет, знаешь...
> Извиняюсь за возможно некорректное вмешательство, но, однако, получается что ты работаешь как минимум с 14ти лет программистом и около того.

Ответа так и не воспоследовало ))
[22:25:32] <valexey> Ну я на ответ особо не надеялся.
[22:38:04] <valexey> A MVC это же банальная схема ввод->обработка->вывод это не обязательно гуй.
[22:38:50] <valexey> Удивительно как эти паттерны делают простые вещи сложными и заумными.
[22:41:13] <белый шум> valexey: замаскировался,
[22:41:18] <белый шум> ?
[22:41:50] <белый шум> а, среди толпы же ))
[22:41:51] <valexey> Почему замаскировался?
[22:42:12] <белый шум> а я по привычке в раздел "модераторы" глянул
[22:42:50] <valexey> Кстати,интересно почему меня там нет
[22:45:12] <белый шум> а это какой аккаунт?
[22:47:02] <valexey> О,блин. Точно. Настраивал клиент на входу йфоне и на автомате вбил древний аккаунт которым не пользовался несколько лет
[22:48:17] <valexey> Я и забыл что он вообще у меня есть
[22:49:26] <белый шум> а ручки то помнят :)
[22:50:16] <valexey> Ага. И ведь пароль тот всплыл из глубин подсознания
[22:50:51] <valexey> Да причем так, что я этого всего не заметил
[22:51:26] <valexey> Надо наверно больше спать
[22:53:20] <белый шум> причуды сознания и подсознания
[22:53:40] <белый шум> о, ёжик заболел кожной болезнью и полысел
http://zoopark.su/uploads/images/6/7/1/d/13/2f4b563ef3.jpg
[22:54:38] <valexey> Какое мышечное кольцо!
[22:55:40] <белый шум> о, его таки вылечили и он обратно оброс
[22:55:42] <белый шум> :)