Доброго дня, Дмитрий!

> Ну, вообще-то, я говорил о ситуации, когда сервер уже запущен на уровне
> системы, может быть, на другой машине. Клиент устанавливает с ним
OK, не вопрос. Я просто привёл один из вариантов. Согласен, что это
скорее рецепт временного обхода, если сильно нужно. 

> А я думал, что без ./configure --prefix=$HOME такое сейчас сделать
> нельзя. Объяснишь, как это делается?
Во время сборки ничего сильно серьёзного не привязывается. Кладёшь себе
~/.voiceman.conf, в нём нужно обязательно переправить:
1. имя сокета, чтобы оно было скажем в ~/tmp/voiceman.socket, а не в
/var/run;
2. имя лог файла тоже куда-нибудь, где есть право на запись. Сейчас
переделал посылку лога в syslog, возможность напрямую сохранять в файл
запускается только при явном включении.
То есть в дальнейшем п. 2 не нужен;
3. запускаешь сервер с ключом -c, чтобы взять конфигурацию из
~/.voiceman.conf;
4. где-нибудь устанавливаешь переменную 
export VOICEMAN=/home/user/tmp/voiceman.socket, чтобы клиенты не лезли в
/var/run, а искали сокет в другом месте.

Таблицы символов он продолжит брать из /usr/share/voiceman, но это
совершенно нормально, т. к. там прав на запись не требуется.

> В каком смысле нужны? Нужны - значит, клиент потребовал их для работы в
> данный момент? Если клиенту для этого ещё понадобится выполнять какие-то
> скрипты с правами root и перезагружать сервер, то мы придём к тому же, с
> чего начали: для работы с сервером клиенту не достаточно возможностей
> протокола.
Да нет, тут речь шла об скриптовании изменения частей конфига с
подхваткой их сервером, при условии, что сервер работает от юзера. 
Думаю, что это в любом случае не очень изящная идея, предлагаю лучше
поглубже обсудить второй вариант, что идёт ниже. Это интереснее.

> Извини, не понял, какую проблему должно решать такое ограничение?
Это для горячей смены синтезаторов внутри одного коннекта, давай на
примере:

1. имеем два output'а, у которых имя (name=) одинаковое, допустим
eng_output;
2. но у них разные id=, например en_mbrola и en_espeak;
3. как говорилось раньше, допускается активность только одного output из
группы с одинаковыми именами;
4.клиент шлёт команду, уважаемый сервер, будь добр, вруби output, у
которого id=eng_espeak.
Сервер его находит, смотрит его name, выводит из работы output с таким
name, который использовался сейчас, и ставит на его место произношение
espeak. В текущий дизайн сервера это вписывается великолепно, и
пользовательская ценность как будто бы тоже присутствует, но напиши, что
думаешь об этом ты, пжста.

> Можно, наверное, таким способом решить проблему с выбором синтезаторов,
> но в конфигурации у Voiceman есть и другие вещи, которые имело бы смысл
> настраивать пользователю. Например, произношение символов или
> сокращений.
Ну вот на этом заходе приделываю возможность держать несколько
replacements файлов, как например replacements.all, replacements.some и
replacements.none. Переключение между ними делается наподобие того, как
такую команду шлёт emacspeak.
Это на тему смены пунктуации, а больше параметров сильно и нет. Остаются
сокеты, логгинг, стартовое приветствие, зачем их менять.

> Ну, можно записать id в поле идентификатора имени в emacspeak/servers и
> реализовать команду смены id в Emacspeak как выбор другого сервера из
> этой директории. 
Но это же будет уже другой коннект?

> Или написать для этого команду на лиспе.
Да, это больше похоже на подходящий вариант.
-- 
Michael Pozhidaev. E-mail: [email protected].
Tomsk State University. http://www.csd.tsu.ru
ALT Linux Team. http://www.altlinux.org

-- 
Blinux-rus mailing list
[email protected]
http://www.a11ywiki.org/cgi-bin/mailman/listinfo/blinux-rus

Ответить