Переключатели раскладки клавиатуры: Punto Switcher и Keyboard Ninja

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


К хорошему люди быстро привыкают: я, например, уже не могу обойтись без Punto Switcher, хотя ко всякой резидентной софтине отношусь с большим подозрением! Но начнем по порядку.
Punto Switcher и Keyboard Ninja это две очень маленькие и абсолютно бесплатные программы (скачать их можно с сайтов разработчиков), предназначенные для автоматического переключения раскладки на клавиатуре. Пользователя может преспокойно набирать символы, а программа сама выберет язык, на котором производится набор. Сразу оговоримся, что это две разные программы, делающие одно и то же. Почти два сиамских близнеца, с незначительными различиями, которые мы обсудим в самом конце, когда вплотную подойдем к вопросу о выборе одной из этих программ.

Punto Switcher и Keyboard Ninja постоянно висят рядом с часами, ловят нажатия кнопок пользователя, формируют из них слова и непрерывно проверяют, являются ли набранные символы абракадаброй или осмысленным текстом. Поясним это на нескольких примерах.
На практике часто случается, что пользователь забывает переключиться, например, с английского языка на русский. В этом случае слово "привет", набранное не в той раскладке, принимает вид "ghbdtn". Но сразу после того, как вы наберете "ghb", умная софтина переключит раскладу и заменит уже набранные символы на "при". Например, вы хотите набрать английское слово "Monaco", но забыли переключить алфавит. Вы набираете "Ьщ", и программа сразу же переключает раскладку, заменяя "Ьщ" на "Mo". Вот еще несколько примеров. Вы решили напечатать слово "Windows", но раскладку оставили русской. Как только вы дойдете до второй буквы (на экране появится "Цш"), ваш резидентный страж автоматически заменит уже набранные неправильные буквы на те, которые нужны, и переключит клавиатуру в английский алфавит. А вот если набрать в неправильной раскладке слово "Россия", то получится "Hjccbz". Здесь программа переключит раскладку лишь после того, как вы нажмете клавишу "Пробел" или "Enter". Чтобы слово осталось неизменным, именно в том виде, в котором оно набрано, ему необходимо пройти финальную проверку. Именно на этом последнем этапе автоматический переключатель раскладки и отлавливает неправильно набранную "Россию". Важно заметить, что окончательная проверка производится, только если программа поймет, что вы закончили набирать слово. Как она может это выяснить?

Например, если вы нажмете "пробел" (чтобы печатать другое слово) или "Enter" (чтобы перейти на другую строчку). Если вы набираете, какую-нибудь аббревиатуру или не общепринятое сокращение, то программа, скорее всего, "зарубит" ваше новшество на финальном этапе и переведет его на другой язык (даже если и на другом языке получится абракадабра). Чтобы этого избежать, вместо клавиши "Пробел" (или "Enter") нажмите стрелочку вправо. Курсор переместится на одну позицию вправо и слово останется неизменным. Так можно "обманывать" автоматических переключателей клавиатуры.
Обратим внимание на один факт: переключатель раскладки - программа резидентная и абсолютно независимая, ей все равно печатаете ли вы текст в Word, набираете письмо в The Bat! или быстро отстукиваете слова в ICQ. Если вы забудете переключить раскладку, умная программа исправит вашу ошибку.

Интересно разобраться, как работают такие программы. Первое, что приходит на ум -проверка каждого набранного слова по словарю. Действительно, почти все слова русского языка можно собрать в словарь, а программу научить понимать не только записи в этом словаре, но и словоформы (то есть научить ее склонять, спрягать и т.д.). Но на практике такой подход не применим - поиск по словарю слишком дороге удовольствие (в компьютерном мире процессорное время и оперативная память все равно что нефть и золото :)). К тому же словарь надо постоянно поддерживать.

Более изящным решением является использовать невозможность сочетания некоторых букв в русском и английском языках. Например, в русском языке слово не может начинаться с мягкого и твердого знака. Скорее всего, разработчики Punto Switcher и Keyboard Ninja проанализировали словарь из нескольких миллионов слов и определили сочетания букв, которые никогда не встречались.

Если принять гипотезу за истину, то становится понятно, почему программа забраковала указанные выше примеры. В первом случае (слово "привет" в другой раскладке) очевидно, что в английском языке нет слов, в которых бы встречалась комбинация букв "ghb". Во втором случае не подлежит сомнению, что в русском языке нет слов, начинающихся с мягкого знака. В примере с "Windows" программа безошибочно определяет, что в русском языке нет слов, начинающихся с "Цш" (а, возможно, это сочетание символов не встречается и в середине слова).

Современному пользователю часто приходится переключать раскладку: большинство текста набирается на русском языке, а сетевые и почтовые адреса плюс огромное число названий (будь то "Windows", "Internet Explorer" или "The Bat!") состоят сплошь из символов латинского алфавита. Если вы используете Punto Switcher или Keyboard Ninja, то о переключении раскладки можно забыть вообще - программа все возьмет на себя.


На первый взгляд может показаться, что обсуждаемые две программы конкурируют друг с другом. Однако это не совсем так. Судите сами. Несколько лет назад Сергей Москалев (по образованию букинист и художник) придумал программу и алгоритмы, по которым можно было бы навсегда избавить пользователя от заботы о переключении раскладки. Как говорит сам автор: "Если собрать все чертыхания компьютерщиков, когда текст печатается не в той раскладке, то мы получим энергию, равную одной атомной бомбе, а может, и двум! :)"

Первым делом Сергей обратился к своему другу, Михаилу Морозову. Они вместе работали над текстовым редактором "Иероглиф". Михаил запрограммировал в своем редакторе предложенные Сергеем идею и алгоритм. Но на выпуск отдельной программы ему просто не хватило время. Тогда Сергей обратился к нескольким программистам, один из которых, Александр Коуров, написал программу Punto Switcher. Потом выдалось свободное время и у Михаила Морозова. Его детище зовется Keyboard Ninja.


О Punto Switcher и Keyboard Ninja рассказывает их идейный отец - Сергей Москалев.


Алексей Доля: Можете объяснить, откуда Punto Switcher и Ninja взяли свои имена?

Сергей Москалев: Punto по названию поисковой машины, а Ninja потому что невидимый помощник.


Алексей Доля: На чем они написаны?

Сергей Москалев: Punto на С++, Ninja на Delphi.


Алексей Доля: Сергей, можно утверждать, что Punto Switcher и Ninja обладают одинаковым функционалом? Или одна из этих программ лучше "накачана"?

Сергей Москалев: Можно сказать, что обе программы выполняют функции автоматического переключения клавиатуры. Вопрос накачанности зависит от предпочтений пользователей. Для программистов лучше накачан Ниндзя, для тех, кто работает с русскими текстами, лучше настроен Punto, так как от пользователей уже получено около 6000 исключений (аббревиатуры и прочее).


Алексей Доля: Вы сами, какой программой из этих двух пользуетесь?

Сергей Москалев: Я пользуюсь Punto, Миша Морозов (программист-разработчик Keyboard Ninja) естественно пользуется Ninja, поэтому программы носят в себе черты создателей и их интересов.


Алексей Доля: Я так понимаю, что действие программы построено на использовании словаря и несуществующих буквосочетаний. Именно эта информация поставляется в виде файла грамматики. Так или есть что-то еще?

Сергей Москалев: Cловарей в программах нет, есть именно компактные правила "невозможностей".


Алексей Доля: Вы готовите к выходу новую версию программы? Что ждет пользователей в ближайших версиях, над чем вы работаете?

Сергей Москалев: В ближайшее время выйдут:

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

Punto Bubbles - органайзер нового типа. Дела, которые всплывают подобно пузырьками и тем самым организуют очередность и последовательность в делах и мыслях.


Алексей Доля: Последним изменением Punto Switcher можно считать дневник. Фактически это key logger? Так? Для чего он нужен?

Сергей Москалев: Дневник нужен для сбора и сохранения того, что человек рассыпает в форумах, чатах и в результате иногда безвозвратно теряет. Преступное использование логгера легко исключить настройками или просто отключением дневника. Мы работаем для удобства пользователей. При помощи операционной системы можно и харды форматировать и вирусы рассылать :).


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

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


Алексей Доля: Каким вы видите будущее этих программ?

Сергей Москалев: Есть несколько возможных путей развития наших программ:

1. Обвешивание функциями. (Мне лично этот путь не очень нравится).
2. Накачивание программ интеллектом и чувствительностью. Извлечение неожиданных эффектов и порождение новых направлений.


Алексей Доля: Хотите сказать нашим читателям что-нибудь напоследок?

Сергей Москалев: Будьте счастливы! :)


Алексей Доля: Спасибо за интервью! Удачи!


Вот так и появились две разные программы, делающие по сути одно и то же. Punto Switcher берет свое имя от названия поисковой машины Punto, директором которой является Сергей Москалев. Keyboard Ninja же действительно имеет много общего с настоящими ниндзя: работает непритязательно, тихо, четко и незаметно для пользователя. Важно заметить, что Punto Switcher и Keyboard Ninja не являются между собой конкурентами. Разве могут соревноваться две программы, если их авторы постоянно контактируют друг с другом и объясняют, как лучше реализовать ту или иную возможность?

Рассмотрим, какую еще пользу могут принести Punto Switcher и Keyboard Ninja. Прежде всего, обе программы умеют работать с буфером обмена. Каждая из них может перевести текст, находящийся в буфере обмена в другую раскладку, транслитерацию или обратную транслитерацию. Напомним, что транслитерацией называется передача текста, написанного с помощью одного алфавита, средствами другого алфавита.






Например, слово "Привет!" в транслитерации будет выглядеть так "Privet!". Важным свойством программы является то, что результат транслитерации (или другой операции), выполненной над текстом из буфера обмена, не только отображается в отдельном окне, но еще и снова помещается в буфер обмена. После этого результат операции легко вставить в свой собственный текст или в отдельный файл.

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


Для чего этого нужно? Такая возможность очень полезна, если вы хотите собрать и обработать текст, который набирали в чатах, конференциях, форумах, ICQ и т.д. Все это попадает в дневник. Например, если при работе в текстовом редакторе у вас отключили свет (а устройства бесперебойного питания нет) и вы не успели сохранить результаты работы, не волнуйтесь - вы легко сможете извлечь весь набранный текст из дневника программы переключателя раскладки.

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

Как же выбрать, какую программу установить на своем компьютере? Дело в том, что каждая из программ больше отражает интересы именно ее создателя. Ninja Keyboard больше подойдет программистам, а Punto Switcher - пользователям, часто работающим с текстами. Отличие возникает из слов-исключений, которые пользователи прислали авторам и которые уже внесены в алгоритм программы. Например, от поклонников Punto Switcher уже получено более 6 тыс. исключений (в основном аббревиатур и сокращений). Мы же рекомендуем остановить свой выбор на Punto Switcher - это хорошо протестированная и более "опытная" программа, спроектированная с целью учитывать интересы именно пользователей ПК.