Синтез Речи под Линукс
На платформе Windows есть замечательная штука называемая Speech API которую я использую чтобы начитывать книжки в mp3 и потом слушать с мобильника. Здравый смысл подсказывает что под Линукс должна быть своя система для синтеза голоса, и такая система действительно есть - это festival.
Под Ubuntu festival ставится при помощи стандартной системы установки пакетов. Однако русского языка в дистрибутиве Убунты я не нашел. Однако поискав в Интернете нашел что некие ребята разработали русский голос для festival.
Скачал дебиановский пакет, убунтовый почему то не скачался. Попробовал...
Тембр голоса оказался довольно приятным, но вот интонация чтения, и фразовые ударения оказались заметно хуже чем у микрософтского движка. Кроме того, программа отказывается воспроизводить файл если в нем есть латинские буквы.
В общем до практического использования festival оказался мне не пригоден.
Попробовал установить Speech API и Говорилку (ее я использую под Windows) под Wine и... о чудо. Программа запустилась. И говорит! Сейчас поставил синтезировать очередную вещь Юрия Никитина... Пока работает без сбоев, посмотрим доделает ли до конца... Под Виндовс она что греха таить глючит, поэтому приходится файл скармливать по кусочкам, будет смешно если под Wine она окажется стабильней...
P. S. Доделал, субъективно прграмма работала подольше чем под виндой, по какой-то причине в настройках Говорилки оказалась заблокированной настройка выбора размера части поэтому книжка оказалась порезена на куски по 16 мегов, не критично, хотя обычно я выбираю побольше. Качество синтеза я на слух отличить не смог, хотя при работе на динамики Wine режет частоты очень сильно. В случае c mp3 это не критично... Еще под вайном не работает буфер обмена - думаю из-за utf8, но думаю можно покапаться в настройках.
Настройка Domain Keys для cpanel
Количество нежелательной корреспонденции - спама в сети растет год от года. Можно называть тысячи причин почему так происходит однако, как мне кажется, корни проблемы кроются, прежде всего в недостатках самого протокола SMTP не позволяющего надежно идентифицировать отправителя письма. Кто угодно может отправлять письма с любым обратным адресом, поэтому однозначно идентифицировать пользователя в сети бывает довольно трудно а порой и невозможно.
Поэтому для борьбы с нежелательной корреспонденцией постоянно создаются новые методы, хотя на сегодняшний день не один не может полностью блокировать спам.
Одним из путей решения данной проблемы является идентификация пользователя по имени домена которому принадлежит адрес электронной почты. При этом в DNS запись домена добавляется некая информация позволяющая идентифицировать почтовое сообщение. В настоящее время получили широкое распространение две технологии работающие по такому принципу Yahoo Domain Keys (DK) и Sender Policy Framework (SPF). Принцип действия DK основывается на алгоритме RSA — на сервере отсылающем почту хранится пара ключей открытый и закрытый. При этом открытый ключ публикуется в TXT DNS записи, а закрытый используется для подписывания email сообщения. При этом при приеме сообщения клиентское приложение или MTA способны проверить правильность электронной подписи и сделать вывод о подлинности отправителя.
Если вы являетесь владельцем выделенного или виртуального выделенного сервера с установленной WHM/CPanel то то для того чтобы добавить DK к вашей исходящей почте достаточно выполнить одну простую команду в консоле.
/usr/local/cpanel/bin/domain_keys_installer [username]
Где [username] - имя пользователя - владельца домена.
При этом cpanel выполнит за вас все необходимые процедуры - создаст пару RSA ключей и настроит MTA для работы с DK.
Чтобы убедиться в том что система настроена правильно можно послать самому себе тестовое сообщение. При этом в заголовках полученного письма будет добавлен примерно такой заголовок
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=yoursite.com;
h=Received:To:Subject:From:Content-Type:Content-Transfer-Encoding:Message-Id:Date; b=txGKMRa7OGMPvnwb97AR...
При этом может оказаться что при посылке сообщения через PHP заголовка в письме может не оказаться.
Дело все в том, что для корректной работы в письме оба обратных адреса должны принадлежать одному и тому же домену. Как правило это не так. PHP по умолчанию ставит обратный адрес прописанный в сисетме. Для того чтобы задать другой адрес можно воспользоваться пятым аргументом команды mail.
mail($email, $subject, $content, $headers,'-f bounce@yoursite.com');
Подписав таким образом свои сообщения можно значительно повысить шансы, что ваше письмо не попадет в спам. Однако при этом нужно быть осторожным - при неправильном использовании вы можете не только не улучшить но и ухудшить проходимость вашей почты.
Например если для отправки вы захотите использовать не свой SMTP сeрвер а SMTP своего интернет провайдера то ваши письма будут уходить не подписанными и некоторые получатели могут посчитать это попыткой их фальсификации. Этот метод также мало поможет если вы попадете в черные списки — DK в этом случае лишь дополнительно подтвердит, что вы — это вы. Поэтому при принятии решения об использовании DK нужно принимать во внимание кто будет является потенциальным получателем вашей корреспонденции.
Знак параграфа аськи код
Странная фраза находится в top10 поисковых запросов google analytics - "знак параграфа аськи код". Что за аська такая? И тут до меня дошло! ASCII код! Дык понятно теперь, вот здесь я собираю полезные HTML коды. И знак параграфа там тоже есть...
Автозаполнение в формах
При заполнении многочисленных форм на различных страничках иногда приходится по много раз вводить одни и те же значения - емайл адреса, пароли. Для облегчения заполнения форм разработчики браузеров придумали автозаполнение. Автозаполение позволяет значительно облегчить и ускорить набор часто повторяющихся значений.
Однако бывают случаи когда автозаполнение не нужно и даже вредно, например при заполнении формы с номерами кредитных карт, или же ести вы хотите сделать свою версию подсказок при наборе текста в форме - в этом случае стандартное автозаполнение должно быть отключено.
Отключить автозаполение можно добавив атрибут autocomplete="off" причем поставить его можно как к тегу FORM так и к тегу INPUT.
Все замечательно, однако атрибут autocomplete нестандартный и если вы любите создавать валидный код то такой вариант вам не подойдет.
Нельзя ли отключить автозаполнение посредством JavaScript? Замечено, что простым присваиванием значения autocomplete="off" к объекту DOM автозаполнение не убирается поэтому многие разработчики продолжают пользоваться введением атрибута в разметку — лучше поломать валидность чем секьюрность.
Однако на днях нашел элегантнейшее решение позволяющее оставить код валидным и отключить автозаполнение:
[domelement].setAttribute('autocomplete','off');
Свойства элементам DOM можно присваивать не только напрямую но и посредством метода setAttribute и это более рекомендумемый способ. Указанный метод работает в FF и IE в других пока не тестировал.