Skip to content

Category Archives: Digital

My life as applied to tinkering.

Экзотика

thoughtful emoticon

Дано:

  1. Сервер на Linux с веб-сервером и полным контролем, чего хочу то и делаю, одним концом смотрящий во внутреннюю локальную сеть, а другим — в Большой Интернет.
  2. Скрипт, который должен исполняться с рутовыми правами и триггериться по команде пользователя, то бишь меня.

Задача:

Я могу запускать скрипт просто залогинившись в консоль, непосредственно с клавиатуры сервера или по ssh. Однако, это не очень быстро, неудобно, и оверкилл. Учитывая что скрипт надо пускать примерно раз в сутки, но не по часам, а когда он действительно нужен, чтр можно определить только на глаз, такой вариант не котируется. Я хотел бы запускать его, кликая на иконку на десктопе любой из наличных машин, среди которых есть винда, десктопные линюхи, и даже старый макинтош. Общее у них у всех только то что они все подключены к локальной сети, но некоторые могут внезапно оказаться за ее пределами.

Каким бы образом сделать это так, чтобы любой рандомный болван не имел возможности ковырять мой скрипт снаружи?

XEP-0136

enthusiastic emoticon
<iq type='get' id='pref1'>
  <pref xmlns='http://www.xmpp.org/extensions/xep-0136.html#ns'/>
</iq>

Ну наконец-то, еб твою мать! Не прошло и трех лет, как они не только написали архив логов на сервере, но я даже умудрился его настроить…

Версионная файловая система

thoughtful emoticon

Я хочу файловую систему с версионированием.

Причем не абы какую, абы каких уже довольно много, но все они меня не устраивают. Они призваны удовлетворить потребности:

  1. Людей, работающих по контракту на правительство или иную организацию, требующую строжайшей отчетности — этим надо чтобы осталось все, всегда, во всех случаях, и у них денег на диски куры не клюют.
  2. Людей, которым надо не больше, чем просто сохранять предыдущие версии конфигов — это просто и само по себе не шибко актуально.
  3. Людей, которые работают с относительно небольшими объемами файлов, по которым требуются подробные исторические данные — этим файловая система нужна просто как более удобный способ работы с версионирующей системой.

Я же хочу достаточно определенную файловую систему, которая:

  1. Хранила бы не дельту текущего состояния файла относительно его изначального состояния, а скорее, наоборот — дельту предыдущего состояния файла относительно текущего. Это вообще-то не принципиально, но значительно облегчит ремонт в случае массового облома, в котором я во всяком случае хотел бы видеть последние версии файлов с которыми работал, а история их вторична.
  2. В которой все пространство, занимаемое данными о предыдущих версиях, считается свободным, и предыдущие версии постепенно издыхают по мере того, как свободное место на диске заканчивается.

Проще говоря, мне нужна файловая система с версионированием не ради самого версионирования, мне нужно версионирование как дополнительная мера удобства и вспомогательная фишка, эффекты от которой получаются не за счет дополнительного дискового пространства, а за счет неиспользуемых резервов оного.

Только вот что-то ничего похожего я не нашел…

Ведроид

enthusiastic emoticon

Guu

Так его называет Гернсбэк. Имя машины в локальной сети — Guu. Ну, кто помнит кто такая Guu? :)

В общем, аппаратная часть готова. Для тех кто тут недавно — это сервер существующей полностью отдельно от всего WiFi-сети, содержащий ровно один веб-сайт, из принципа собранный только из очень старого хлама — P200, 256 Mb SDRAM, какой-то винт и блок питания AT. Собранный в мусорном ведре.

Это ведро было единственное, на что при сборке его были потрачены деньги, все остальное просто так валялось. :)

О сходстве головы и задницы

angry emoticon

И тем и другим можно издавать звуки. Различие же головы и задницы в том, что головой можно воспринимать звуки, а задницей затруднительно. И современный компьютер более напоминает задницу чем голову. Это я к тому, что перспектива вручную расставлять фонемы в километровых монологах меня не прельщает, и чтобы избежать ее, мне требуется распознаватель (а не синтезатор) русской речи под MS SAPI 5.1.

Раньше я страдал от синтеза речи, теперь страдаю от распознавания… Многочасовое копание в сети показывает, что:

  1. Существует ровно один движок распознавания русской речи под SAPI. Его якобы сделала компания с сакраментальным названием “Сакрамент”. Якобы, потому что приобрести его штатным порядком невозможно, в их ценнике его нет, и сколько они могут содрать за него даже думать боязно.
  2. Микрософт считает что достаточно сделать английский, японский и китайский распознаватели, а дальше вы как-нибудь сами. Впрочем, подобным же свинством они отличились и когда распознавали рукописный текст, так что тут ничего нового нет.
  3. Существует некая система “Горыныч” якобы изготовленная некоей компанией “VoiceLock”. Якобы изготовленная, потому что более ранние упоминания о ней говорят, что это скорее всего хак Dragon Dictate. Сайт у компании напрочь отсутствует, хотя диски с программой продаются аж на Озоне, поэтому выяснить достоверно, порождает ли установка программы движок распознавания в списке SAPI или нет — невозможно.

При этом самых разнообразных дурносинтезаторов русской речи дохера, в том числе в исполнении вышеупомянутой “Сакрамент” только нафиг мне не сдались синтезаторы под винду.

Вопрос о том, расставляли ли все фонемы в русском дубляже Half-Life Episode 2 вручную, остается открытым. Написать им, чтоли…

update: Возможно, фокус не пройдет даже если мне удастся добыть такой распознаватель. Судя по внутренностям оригинального звука и русского дубляжа, фонемы для русского дубляжа расставляли каким-то совершенно иным софтом, который не пишет в исходный вав никаких сведений о произносимой фразе, и не делит ее на слова.

Вопрос только в том, автоматически это делалось или нет. Тупой генератор данных фонем из русской письменной фразы, подставляющий некие дефолтные значения для длительностей, которые потом надо было бы двигать ручками, написать несложно…

update 2 — update strikes back: Обнаружено достоверно что поддерживающий SAPI 5.1 распознаватель русской речи меня таки спасет. Обнаружено также что теоретически есть в природе Vocative Russian ASR Engine, но тоже только теоретически — его нельзя ни скачать ни пронаблюдать в демо-версии, и как и Сакраментовский, вероятно, он продается только телекомам за неприличные деньги. Горыныч, судя по различным интервью и прочей мути, ничего кроме SAPI 4.0 не поддерживает, что сделает его добычу бессмысленной.

Повбывав бы гадов.

Деление

thoughtful emoticon

Компьютеры размножаются делением.

  1. Купил новый основной, и их стало на один больше.
  2. Купил новый корпус под сервер, сложил сервер и старый основной в новом корпусе, и их стало на один меньше.
  3. Из остатков собрал еще один, в надежде применить его как очередной сервер для специфической надобности, и по ходу дела мне принесли еще обломков и барахла.
  4. По ходу сборки еще одного нового, уже не для себя, внезапно образовался еще один, и теперь из него и упомянутого выше сервера для специфической надобности надо собрать очередной целый комплект.
  5. …но после этого их все равно останется два, плюс горка обломков и барахла! Я уже как-то молчу про коллекцию старых кирпичей под Socket A, которых от этого станет еще больше.
  6. При этом, мне обещали где-то через месяц отдать на усыновление еще один комплект эпохи SDRAM, и тоже Socket A, но у него, похоже, потекли конденсаторы на маме, (Еще б я знал какие) отчего процессоров снова станет больше.

Сижу в облаке вытряхнутой из них пыли на горке винтиков и мечтаю о полном шкафу баллонов сжатого воздуха.

Драйвер

dejected emoticon

Купил себе Fang Gamepad. Штука вроде ничего, хотя цена на нее отнюдь не божеская, но сакральный смысл есть — у меня клавиатура эргономичная из половинок, рука большая, поэтому все те вещи которые в шутерах делают клавиатурой мне делать довольно сильно неудобно, пальцы не очень помещаются, а половинки клавиатуры не на все функции хватает. На самом деле, это не геймпад, конечно. Это USB-клавиатура.

Однако, ведет она себя довольно странно.

Сходите по вышеприведенной ссылке и посмотрите как размечены кнопки. Шесть красных клавиш честно помечены как q, w, e, a, s, d, и именно эти сканкоды и производят, однако на этом логика заканчивается.

Одиннадцать цифровых клавиш частью оказываются кнопками из номерного ряда, а частью с numpad. Кнопка номер десять — 0, а номер одиннадцать — F7. Кнопки v, b и c соответствуют тому что там написано, а вот вместо кнопки z генерится слэш. Подобные извращения продолжаются и с другими кнопками.

Вроде бы и хрен бы с ним, почти все кнопки в современном шутере распознаются безотносительно от всех этих глупостей, и их можно просто переназначить по желанию. Однако конкретно в моем случае, кнопки нумпада имеют специфическое значение, и мне бы хотелось чтобы их никто не трогал. Поэтому я попробовал поставить драйвер, в надежде что он даст мне переназначить кнопки… Мать моя женщина, совсем обурели.

Этот, с позволения сказать, “драйвер” написан на Microsoft .NET, но это само по себе не так страшно. Однако он умудряется занимать в памяти 60 (!!!!) мегабайт! При этом, он весь полон профилей, рассчитанных на несколько сотен различного рода игр. Профили активируются автоматически в зависимости от того, какая из них запущена, и что-то там переназначают, видимо, в расчете на дефолтную раскладку каждой. Профиль жестко привязан к игре, сам распознает когда игра загружена, и активируется, никого не спрашивая. А теперь самое забавное.

Редактировать профили нельзя.

Это было бы смешно, если бы не было так грустно…

P.S.: Оказалось, что профили редактировать таки можно, хотя это делается очень странным образом. Тем не менее, я все-таки его надул — инсталлятор ставит одновременно низкоуровневый драйвер, написанный более или менее честно, и систему управления оным, которая и весит эти 60 мегабайт. Прибив загрузку управляющего модуля, но оставив низкоуровневый драйвер, я обнаружил что кнопки стали давать именно те сканкоды, которые положено.

И на том спасибо.