Home
Objective Caml
ocaml@conference.jabber.ru
Пятница, 16 октября 2009< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap
Конфигурация комнаты

GMT+4
[00:51:44] <gds> подумалось. сейчас оформляем камлунити как русскоязычное сообщество, постоянный контент которого является не только ссылками на окамл/библиотеки, их описания, переводы, факи, но ещё , например, такой штукой, как "софт, к которому мы имеем отношение". То есть, сама идея сообщества уже заражена (в хорошем смысле слова) людьми из сообщества.
Может пойти чуть дальше? Например, у меня сейчас есть окамловский проект (та самая разметка; скобки и все дела), проект документации которой я бы не прочь оформить в виде какой-нибудь редактируемой веб-страницы. Чтобы показать/выложить на критику с ожиданием комментариев, в том числе от некоторых людей, которые имеют идеологическое отношение к проекту, и могли бы высказать "фе" персистентно и в вики, а не в гадской жыжыцэ или, как чаще, в жаббере. Лично у меня жыжыца мало подходит -- в целом мусорная штука, гемор отслеживать каменты и редактировать пост, нет истории, а репозиторием комментаторов пользоваться не заставишь.
С другой стороны, эта штука, в общем виде, весьма личная, так как не факт, что пойдёт для пользы сообщества. (не факт, что оно принесёт пользу, и есть вероятность, что оно не будет реализовано вообще. просто проект.)
Стоит ли идти в этом направлении, или проще забить болт и самостоятельно отполировывать проект до блеска реализации?
Технически, пока вика живёт у меня, мне бы такая движуха даже нравилась -- проекты, дела, todo всякие (в том числе, те, которые можно взять в работу, когда совсем нечего делать). Да и поднять параллельно тот же мойн мне не сложно (второй раз -- не первораз), но может кому-то из сообщества будет лень.
С другой стороны, дамы и господа, думайте, как оно с идеологической стороны. В этом самый главный вопрос, и это заставило меня раскрыть тему полностью, как я её вижу.
[01:46:13] Typhon вышел(а) из комнаты
[01:49:29] sevenov вышел(а) из комнаты
[02:09:04] Mon вышел(а) из комнаты: Replaced by new connection
[02:09:08] Mon вошёл(а) в комнату
[02:21:32] Mon вышел(а) из комнаты: Replaced by new connection
[02:21:34] Mon вошёл(а) в комнату
[08:20:26] gds вышел(а) из комнаты
[08:25:55] john вошёл(а) в комнату
[08:49:04] gds вошёл(а) в комнату
[08:52:34] aloner2k вышел(а) из комнаты
[09:02:23] sevenov вошёл(а) в комнату
[09:06:52] Typhon вошёл(а) в комнату
[11:05:59] f[x] вошёл(а) в комнату
[11:21:51] <gds> f[x]: напомни, в новом revised было ли что-то насчёт отмены do { .. }, или было просто введение (e1; e2; .. eN) и begin .. end?
[11:21:57] <ermine> ктонить читал платный ocaml journal?
[11:22:25] <ermine> gds: я у тебя чота стырила streams в вики
[11:22:39] <ermine> правда не до конца перевела, слегка заломало
[11:23:13] <ermine> а так - вовсю опробовала на деле мойнмойн в емаксе
[11:23:15] <gds> ага, видел. А я revised описываю. Эти редиски не описали полиморфные варианты и объекты -- сижу, дописываю.
[11:24:16] <ermine> я ревизед точно не буду, возьми материал из туториала и мануала по camlp4, вроде больше негде, ну еще обновления на вики галлиума
[11:24:38] <gds> уже.
[11:25:06] animist вошёл(а) в комнату
[11:25:53] <ermine> вот думаю как по-русски озвучить слово lexer
[11:26:53] <gds> грамматический анализатор, гыгы
[11:27:19] <ermine> в lexer ни капельки грамматики
[11:27:37] <ermine> это следующая стадия разбора инпута
[11:28:41] <sceptic> анализатор лексем
[11:29:01] <Typhon> в драгонбук переводят "лексический анализатор", вроде
[11:30:04] <ermine> а драгонбук разве на русском есть?
[11:30:08] <sceptic> есть
[11:30:12] <sceptic> и второе издание так же
[11:30:19] <ermine> правда подобные вещи я предпочитаю на английском читать
[11:30:56] <ermine> может и там есть перевод recursive-descent, но наверное лучше поизучить википедию
[11:31:06] <sceptic> рекурсивный спуск
[11:31:28] <ermine> фи
[11:32:15] <sceptic> это аутентичный перевод как бэ
[11:33:17] <ermine> в общем, народ, подключайтесь к теме, у меня в планах открыть еще такие же полупустые страницы по emacs, lexer, grammar, toplevel (это названия страниц)
[11:34:14] animist вышел(а) из комнаты
[11:34:15] <ermine> gds: там можно делать сборники типа camlp4/streams, camlp4/lexer, camlp4/grammar?
[11:34:37] <ermine> а то неудобно по смыслу получается
[11:35:15] <f[x]> да, думаю надо группировать подстраницы
[11:35:27] <f[x]> gds: насчёт revised я не в курсе
[11:35:31] <ermine> главное - уделить в день полчаса на контент - и дело сдвигается на два метра вперед
[11:35:37] animist вошёл(а) в комнату
[11:36:40] <f[x]> насчёт camlunity как и место для личных проектов - самое то. как инкубатор (labs) для проектов и заинтересованных людей.
[11:37:44] animist вышел(а) из комнаты
[11:38:06] <ermine> f[x]: легко, если без шелла :)
[11:38:33] <ermine> в смысле - есть где разместить пока само не вырастёт
[11:38:52] <f[x]> это я gds'у отвечал
[11:38:59] <f[x]> шелл вроде не нужен
[11:39:09] <f[x]> а репы можно на сторонних хостингах держать
[11:39:54] <gds> ermine: сборники -- в смысле? Есть подстраницы, но как точно, не помню. Смотреть надо. Потом организуем.
[11:40:06] <ermine> а репы можно, вчера собрала на сервере svn, git и darcs (ну в основном чтобы тягать клиентом)
[11:40:21] <ermine> так что эти три вида репов - легко
[11:41:04] <ermine> только вот не знаю про багтрэк
[11:41:20] <ermine> он сам по себе требует много внимания для поддержки
[11:41:30] <f[x]> ну мне больше доверия сторонним хостингам в плане надёжности/доступности
[11:41:49] <f[x]> багтрэк у нас будет свой и рулёзный :)
[11:42:31] <ermine> f[x]: ну можно считать что тот сервер почти свой личный
[11:42:48] <ermine> он существует лет 5, а сейчас обновляем железо
[11:44:42] <f[x]> впрочем с dvcs с бэкапами конечно проще
[11:45:22] <ermine> не поняла
[11:45:34] <ermine> что ты имеешь в виду?
[11:47:55] animist вошёл(а) в комнату
[11:49:44] <f[x]> ну взорвут газопровод под jabber.ru - а репки с кодом все и так склонированы по всему миру
[11:50:53] <ermine> f[x]: jabber.ru хостится на яндексовых серверах, это не почти что мой личный сервер, а вообще ихние сервера
[11:51:40] <f[x]> а, я думал это одна и та же машинка
[11:52:14] <ermine> ну на моей машине - только сайты и мейллисты
[11:53:22] <gds> закончил первую версию, feel free to fix: http://gdsfh.dyndns.org/kamlo/RevisedSyntax
[11:59:22] <gds> кстати вот, потому и хочу бэкапы получать и распихивать их по доверенным серверам -- под яндексом проходит немало газопроводов.
[12:00:20] <sceptic> Это ты на манер http://caml.inria.fr/pub/docs/manual-camlp4/manual007.html сделал?
[12:00:45] <gds> это я тупо передрал оттуда и последовательно (за 7 правок что ли) перевёл и дописал.
[12:01:22] <gds> насчёт группировки по подстраницам -- есть такое: http://gdsfh.dyndns.org/kamlo/HelpOnEditing/SubPages
сам не пользовал.
[12:26:23] ermine доперевела свое до слов left recursion и закоммитила
[12:26:29] <ermine> терминология - дело бедовое
[12:27:28] <gds> у меня тоже бида-бида была.
[12:27:51] <ermine> да ладно, со временем разжуется
[12:28:04] <gds> "удобные" термины неправильны, правильные неудобны.
[12:28:19] <ermine> вот хорошо бы взять за практику подобную терминологию обрамлять ссылкой на википедию
[12:30:42] <gds> замучаемся.
[12:31:30] <ermine> да кому на Руси легко живется?
[12:32:14] <gds> мне. правда, не совсем на руси.
[12:32:26] <ermine> gds: а у тебя статья по ревизеду неплохо нацарапана
[12:33:05] <ermine> значит, переводы по идее ужаснее выглядят, чем если из головы вынимаешь :)
[12:33:29] <gds> на всякий случай повторю: эта статья -- таки перевод.
[12:33:49] <gds> дописал мало.
[12:34:22] <ermine> а где ориниал?
[12:34:40] <gds> sceptic давал ссылку выше. классика, camlp4.
[12:34:48] f[x] предпочитает английские термины (вообще лучше всего в скобках давать оригинал)
[12:35:03] <f[x]> btw, http://lists.jabber.ru/pipermail/jabber-users/2004-July/002352.html
[12:35:04] <ermine> а
[12:35:36] <ermine> ну ты откопал
[12:35:38] <gds> английские термины -- не слишком удобно, когда текст написан на разных языках.
[12:36:54] <gds> о, lj\potan detected
[12:37:06] <ermine> f[x]: и сейчас в jabber-community нет желающих страдать пейсанием движков на ocaml
[12:41:49] <gds> кстати, пока переводил про revised syntax, узнал кое-что новое для себя :)
[12:44:05] <ermine> ну я предусматривала такой элемент в этой игрушке
[12:45:11] <ermine> только вот обилие разметки в тексте мешает вникнуть в сам текст
[12:46:38] <gds> не так уж много разметки в статье Streams.
[12:47:30] <ermine> {{{abc}}}
[12:47:58] <ermine> а еще емакс сам конвертит -- в то что надо
[12:48:17] <ermine> в общем, иногда каша
[12:48:24] <Typhon> http://spbhug.folding-maps.org/wiki/Англо-русский_словарь_терминов_ФП может быть интересно для переводов.
[12:52:02] <gds> о да, интересно.
ещё интересно было бы узнать, почему они тоже мойн юзают.
[12:52:38] <ermine> круто
[13:12:31] gds вышел(а) из комнаты: Replaced by new connection
[13:12:32] gds вошёл(а) в комнату
[13:16:54] sceptic вышел(а) из комнаты
[13:19:26] sceptic вошёл(а) в комнату
[13:23:12] gds вышел(а) из комнаты: Replaced by new connection
[13:23:13] gds вошёл(а) в комнату
[14:09:29] Typhon вышел(а) из комнаты
[14:09:46] Typhon вошёл(а) в комнату
[14:36:45] Typhon вышел(а) из комнаты
[14:51:35] <gds> разобрался с правами на вику. текущая конфигурация: анонимы: читают/пишут/создают статьи, админы: читают/пишут/создают/удаляют/переименовывают/откатывают, залогинившиеся юзеры: пока что как админы, а дальше поглядим.
если что-нибудь будет работать не так, как я описал, это моя/мойнова ошибка, сообщите мне.
если нужно сделать, чтобы работало не так, как я описал, давайте обсуждать.
[14:57:16] <ermine> ты главное бэкапи наше богатство
[14:57:38] <ermine> а то набежит толпа анонимусов и поправит всё :)
[15:09:09] <gds> ревизии остаются по-любому, откат/удаления анонимусам не даны.
однако, бэкап настрою. пока не было нужды бэкапить подобные вещи, а для более простых случаев и решения более простые, поэтому толком не знаю, как сделать так, чтобы было и безопасно, и надёжно.
[15:09:56] <gds> предположим, нет проблем создать tar.bz2 с нужным содержимым.
[15:10:50] <ermine> хнык
[15:11:05] <ermine> я тут редактировала-редактировала, закоммитила, а изменений нет
[15:11:39] <ermine> gds: признавайся - ребутил мойнмойна?
[15:12:05] <gds> он запускается как цги, к нему неприменимо "ребутить".
[15:12:11] <ermine> а еще хочется пальцатый хайлатинг синтаксиса камла
[15:12:53] <gds> пальцатый может быть только с использованием camlp4.
[15:13:17] <ermine> Please use the interactive user interface to use action edit!
[15:13:25] <ermine> хнык
[15:13:31] <gds> это кто пишет?
[15:14:17] <ermine> это мессага выданная в ответ на save changes
[15:14:35] <gds> может у мойна какие-нибудь таймауты есть?
[15:15:48] <ermine> нет
[15:16:09] <ermine> наверное что-то с емаксом, точнее с доступом к js
[15:16:22] <ermine> ну наверное что-то таки передернулось
[15:16:23] <gds> не: http://moinmo.in/MoinMoinBugs/PleaseUseTheInteractiveUserInterfaceToUseActionEdit
[15:16:43] <gds> "This is not a bug. The tickets used there are made to expire after some time. "
[15:17:20] <ermine> ну спасибо
[15:17:36] ermine разочаровалась в емаксовом интерфейсе
[15:17:47] <gds> это фича всего мойна вообще-то.
[15:18:07] <gds> чел описывает, что в браузере, оставленном на ночь, такое было.
[15:18:20] <ermine> ты еще добавь мутекс, чтобы двое одновременно не могли редактировать одну статью :)
[15:18:44] <gds> мутекс не нужен, там есть: 1. предупреждения, 2. разрешалка конфликтов.
[15:19:40] <ermine> а там не написано, как восстановить незакомиченные изменения?
[15:19:57] <gds> в браузере -- кнопкой "взад".
[15:20:00] <gds> если умеет.
[15:20:37] <f[x]> пальцатый хайлатинг можно взять готовый
[15:20:50] <gds> f[x]: revised умеет? :)
[15:21:05] <f[x]> есть http://martin.jambon.free.fr/caml2html.html
[15:21:17] <ermine> gds: с back поздняк
[15:22:05] <f[x]> gds: не знаю
[15:22:06] <ermine> f[x]: nice
[15:22:34] <ermine> ну к ревизеду дописать без проблем
[15:23:03] <ermine> главное что есть парсер оригинала, который наследуется из парсера ревизеда
[15:23:32] <ermine> а на той странице, если оно для camlp4, то устарело
[15:25:50] <ermine> gds: вру, не поздняк, сработало, однако
[15:26:53] <ermine> а нет
[15:26:56] <ermine> не сработало
[15:28:00] <gds> 2 минуты назад от тебя было изменение.
[15:28:04] <ermine> чорт
[15:28:20] <gds> и вроде толковое, не по ошибке отправленное.
[15:28:32] <ermine> на самом деле сработало
[15:28:43] <ermine> но увидела, что на самом деле не везде поправила
[15:32:38] <gds> так вот, насчёт бэкапа -- какие идеи есть? цели: 1. чтобы из бэкапа восстанавливалось легко, 2. чтобы попало только к нужным людям / на нужные хосты, 3. чтобы работало в автоматическом режиме.
[15:39:02] <f[x]> уф, меня скоро забанят на мантисе наверное
[15:40:14] <f[x]> gds: публичная вики - т.е. можно просто дать read-only публичный доступ - rsync на каталог с данными
[15:40:16] <ermine> какого софта?
[15:40:27] <f[x]> ermine: сабжевого
[15:41:24] <gds> вики публичная, но аккаунты тоже хочется бэкапить.
[15:42:18] <ermine> мне б понравилось, если статью редактирет избранный круг лиц, остальные пишут в комменты под статьей
[15:42:44] <ermine> мне понравилось например на сайте javascript.ru
[15:43:55] <ermine> в комменты влазят всё, что не влазит в статью
[15:43:56] <gds> неудобно для тех, кто вне круга, а их больше. поэтому проще просто просматривать диффы.
[15:45:17] <ermine> мнээ
[15:45:22] <ermine> сам будешь смотреть :)
[15:45:26] <ermine> я уклоняюсь
[15:46:45] <gds> кроме того, вдруг все забили болт -- надо же будет поддерживать инфу в актуальном состоянии.
почему так много заброшенных библиотек для окамла -- написали, "works for me", положили куда-то, забили, а потом ygrek поднимает ocaml-mysql, ocurl и гальванизирует.
[15:49:14] <f[x]> вики сама по себе всё равно жить не будет - должно быть активное ядро людей
[15:50:13] <ermine> gds: не слышал, как банили немцев на википедии?
[15:50:19] <gds> не
[15:50:51] <ermine> они часто правили по своим понятиям
[15:51:13] <ermine> было это в прошлом году или два года назад
[15:51:30] <gds> у нас тут нет политоты, поэтому всё сводится к объективной реальности и к соответствию ей.
[15:52:48] <gds> подход "редактируют некоторые, остальные в комменты только" 1. недооценивает среднего человека из группы остальных, 2. вызывает дополнительную работу по переносу изменений, 3. упрощает забивание на изменения ("а, он там буковку поправил -- делать мне нечего, буду статью редактировать ещё").
[15:53:56] john вышел(а) из комнаты
[15:54:10] <ermine> чтобы попасть в число избранных - надо либо сделать несколько удачных комментов, либо написать статью, либо как-то еще заслужить уважение к себе
[15:54:40] <gds> да, я тоже ненавижу людей по умолчанию.
[15:58:08] <ermine> ну не согласишься же ты, чтобы какая-нить бабулька на улице подошла к тебе, сказала "ай-ай" и почистила тебе ботинки?
[15:58:48] <ermine> не, не ботинки
[15:58:55] <ermine> скажем, пятно на твоей щеке
[15:59:17] <ermine> для этого берется носовой платок, смачиваем его слюной и усиленно трём твою щеку
[15:59:37] <ermine> а вот ботинки - да, можно согласиться в принципе
[16:04:31] <gds> я представляю, как реализовать подобную штуку с комментами и разрулить права. однако предлагаю подождать первых прецедентов. что под прецедентом, допустим, будем считать наличие лажи, которую я не отловил и не нормализовал в течение суток с момента появления.
[16:06:21] <ermine> да ты сначала гденить упомяни про новый убогий сайт
[16:06:33] <ermine> а то camlunity не гуглится
[16:07:14] <gds> пока поднакидаем контента, потестим всё это добро, потом упомянём.
[16:07:21] <gds> вся прелесть вики-подобных систем в том, что любой хрен с горы, обладай он достаточными знаниями, может ими поделиться без каких-либо неудобств типа регистрации, доказательства проф.пригодности и т.д.
[16:07:54] <ermine> а журнал камла ктонить читает?
[16:08:01] <ermine> он блин платный
[16:23:32] john вошёл(а) в комнату
[16:58:50] <gds> разобрался с подстраницами. может стоит текущую Streams переименовать в camlp4/StreamParsers?
[17:02:53] animist вышел(а) из комнаты
[17:03:07] animist вошёл(а) в комнату
[17:05:26] <ermine> может
[17:05:34] <ermine> я ее щас не редактирую, так что ломай
[17:05:51] <ermine> только статью про ocsigen не ломай сейчас
[17:06:19] ermine налила себе чаю и пошла искать, откуда брала ocamlduce
[17:32:08] gds вышел(а) из комнаты
[17:49:07] animist вышел(а) из комнаты
[17:51:12] animist вошёл(а) в комнату
[18:00:44] <f[x]> http://progopedia.ru/language/ml/
[18:04:54] <ermine> явно маньяки
[18:05:24] <ermine> а вот нету камла 3.11.x
[18:06:39] <f[x]> энтузизма не хватило наверное
[18:08:23] gds вошёл(а) в комнату
[18:31:49] <ermine> >> Fatal error: cannot open pervasives.cmi
Fatal error: exception Misc.Fatal_error
[18:33:36] <ermine> кривописатели
[18:39:41] <f[x]> почему в камле нет цикла с постусловием?
[18:39:52] <f[x]> ermine: где это?
[18:42:06] <ermine> repeat .. until?
[18:42:15] <ermine> элементарно делается на camlp4
[18:42:43] <ermine> f[x]: у меня на новом серваке, судя по мейлисту это известная фича, еще не дочитала до солюшена
[18:44:40] <f[x]> ещё элементарней не делается
[18:44:51] <f[x]> :)
[18:45:57] <ermine> телом функции, которая пишется справа от правила repeat until
[18:52:57] <gds> интересно, можно ли сделать repeat..until так, чтобы 1. не дублировало код, 2. не генерировало лишних функций и их вызовов, 3. не использовало переменную (возможно булевую) с флагом, 4. не требовало try-with обёртки вокруг конструкции?
[18:54:50] <ermine> сама нашла солюшен
[18:54:55] <ermine> гавнолузеры
[18:56:15] <ermine> переменная не нужна
[18:56:33] <ermine> там же условие то, которое ты укажешь, обычное выражение
[18:57:35] <ermine> do {expr1; while expr2 do { expr1 }; } кажись так в ревизеде выглядит
[19:04:46] <gds> не катит, п.1. expr1 будет скомпилировано дважды.
[19:13:40] <ermine> let rec repeat cond e = e(); if cond then cycle cond e else "bye"
[19:14:48] <ermine> интересно, как в camlp4 реализовать goto :)
[19:16:18] <gds> не катит, ибо п.2 :)
[19:17:01] <gds> вот в том-то и дело, что goto нам не дают. интересно, может я чего-то не вижу, и repeat..until можно таки реализовать без добавочной стоимости.
[19:18:13] <ermine> gds: где там п2?
[19:18:26] <ermine> это тот же самый expr2
[19:19:52] ermine осознала свою ошибку в компиляции ocsigen и пошла ставить mehir
[19:20:45] <gds> п.2 -- в генерации функции e, которую вызывает repeat.
[19:21:21] <f[x]> gds: имхо ограничения неоправданно слишком сильные
[19:22:56] <ermine> Stream.from (fun _count -> if condition then Some e else None)
[19:23:20] <ermine> ;)
[19:28:11] sevenov вышел(а) из комнаты: Replaced by new connection
[19:28:14] sevenov вошёл(а) в комнату
[19:31:12] <gds> f[x]: получается, нужно искать максимально производительный метод под требования. Если tight loop, то можно повторить код (что не годится для громадных кусков кода, которые иногда приходится лепить). Если входы в repeat..until слишком часты, то можно использовать булевый флаг. Если входы редки, а итераций много, то можно использовать try-with, делая в нужном месте raise Exit какой-нибудь. Конечно, редко вообще эти условия нужны и редко когда их нельзя закодить вручную рекурсивной функцией, но мне хотелось знать ограничения окамла в этом вопросе.
[19:31:42] sevenov вышел(а) из комнаты: Replaced by new connection
[19:31:44] sevenov вошёл(а) в комнату
[19:34:08] <gds> то есть, я к чему. если реализовать общее синтаксическое расширение, добавляющее эту конструкцию, оно обязательно будет иметь оверхед по сравнению с while..do, и кому-то может не понравиться это.
[19:36:35] <ermine> а какой оверхед?
[19:37:05] <ermine> мне говорили, что компиляторы разворачивают цикл в ручной вызов функций
[19:40:02] <gds> если вся программа в repeat..until, количество кода увеличится в два раза. (не вся -- менее, чем в два раза). будет хуже попадание в кеш процессора. loop unrolling тоже нельзя бездумно применять. хотя бы без профайлинга.
[19:43:31] <f[x]> думается что рекурсивная функция типа let rec temp () = expr1; if expr2 then temp () in temp () будет вполне
[19:43:56] <f[x]> достаточно соптимизирована
[19:55:17] <ermine> собрался многоэтажный ocsigen
[19:57:05] <ermine> проинсталлила, ага
[20:00:01] <ermine> в вики указала все понадобившиеся либлы
[20:00:38] <ermine> ну, на сегодня можно на этом забить
[20:13:11] f[x] вышел(а) из комнаты
[21:26:27] animist вышел(а) из комнаты: Replaced by new connection
[22:32:02] ygrek вошёл(а) в комнату
[22:32:16] ygrek вышел(а) из комнаты
[22:32:52] ygrek вошёл(а) в комнату
[22:33:06] ygrek вышел(а) из комнаты
[22:33:30] ygrek вошёл(а) в комнату
[22:35:54] <gds> в мойне нашлось два вида комментариев, оба полезны. смотрите, если чо.
[22:51:43] <ygrek> ох ты ж, за один день сразу три камлевские либы c security update'ми в debian'е
[22:52:51] <gds> какие?
[22:53:36] <ygrek> camlimages (второй раз), postgresql-ocaml и mysql-ocaml
[22:54:28] <ygrek> нарелизили крэпа - пришло время фиксить %)
[22:57:48] <gds> camlimages, судя по рассылке, вообще чудо в перьях в плане безопасности.
а вот что за базы данных взялись -- интересно. что-то зомышляют?..
[23:03:31] <ygrek> квотинг зависит от connection - из-за кодировки
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!