Статья по предмету Компьютеры, программирование

  • 221. Публикация векторных карт
    Статьи Компьютеры, программирование

    Подготовка векторных карт к виду, пригодному для их использования в геоинформационных системах (ГИС), является необходимой частью процесса создания карты. Однако в настоящее время практически все отечественные карты не могут быть загружены в ГИС без значительных доработок, а зачастую требуется их векторизация заново. Причиной являются как множественные нарушения топологии, так и проблемы денормализации пространственных и метаданных. В России повсеместно используются векторные карты в файловом формате программы MapInfo, значительно реже - в форматах Arcwork, ArcGIS и других, в то время как в мировой практике большие массивы пространственных данных сохраняют в так называемых пространственных хранилищах данных (spatial datasets), представляющих собой реляционные или объектно-реляционные базы данных (БД) с поддержкой геометрических типов данных и операций над ними. Примером таких баз данных являются PostgreSQL с модулем PostGIS и Oracle. Применение указанного подхода обеспечивает логическую целостность данных и удобство применения любых преобразований данных, как в интерактивном режиме (под управлением оператора), так и в пакетном режиме (полностью автоматически, по заданному алгоритму). Одним из таких преобразований является изменение проекции карт "на лету". Построив реляционное хранилище пространственных данных, можно получать из него разнообразные наборы карт в произвольной проекции, а также автоматически генерализованные карты или синтетические, содержащие результаты анализа хранимой географической информации (геоинформации). Статья посвящена вопросам подготовки векторных карт для построения пространственных хранилищ данных для дальнейшего их использования в ГИС.

  • 222. Публикация растровых карт
    Статьи Компьютеры, программирование

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

  • 223. Работа с библиотеками динамической компоновки (DLL)
    Статьи Компьютеры, программирование

    При статическом подключении DLL имя .lib-файла определяется среди прочих параметров редактора связей в командной строке или на вкладке "Link" диалогового окна "Project Settings" среды Developer Studio. Однако .lib-файл, используемый при неявном подключении DLL, - это не обычная статическая библиотека. Такие .lib-файлы называются библиотеками импортирования (import libraries). В них содержится не сам код библиотеки, а только ссылки на все функции, экспортируемые из файла DLL, в котором все и хранится. В результате библиотеки импортирования, как правило, имеют меньший размер, чем DLL-файлы. К способам их создания вернемся позднее. А сейчас рассмотрим другие вопросы, касающиеся неявного подключения динамических библиотек.

  • 224. Работа с бинарными данными и реестром Windows на платформе .NET
    Статьи Компьютеры, программирование

    При работе с классом AcedStreamWriter в памяти создается буфер размером 2МБ, который постепенно заполняется данными. При достижении конца буфера, вызове методов Flush() или Close() класса AcedStreamWriter содержимое буфера упаковывается методом Compress() класса AcedDeflator. Сжатые данные сохраняются в другом буфере, размер которого также составляет 2МБ. Для упакованных данных вычисляется цифровая сигнатура RipeMD-160, после чего данные шифруются методом CAST-128. Длина фрагмента данных, контрольная сумма Адлера, цифровая сигнатура RipeMD-160 и сами сжатые и зашифрованные данные записываются в выходной поток типа System.IO.Stream. После этого содержимое буфера очищается и в него можно записывать следующие данные. При вызове метода Close() класса AcedStreamWriter, если ассоциированный с ним поток поддерживает операцию Seek, поток позиционируется на начало записанных данных и в потоке сохраняется общая длина (в байтах) данных, помещенных в поток классом AcedStreamWriter. Этот размер представляется значением типа System.Int64. Если операция Seek не поддерживается потоком типа System.IO.Stream, длина остается равной значению -1, записанному в поток при его ассоциации с классом AcedStreamWriter. Метод AssignStream класса AcedStreamWriter используется, чтобы связать данный экземпляр класса с потоком System.IO.Stream. Кроме ссылки на поток в этот метод передается константа, выбирающая режим сжатия данных, а также значение типа System.Guid, которое, если оно отлично от Guid.Empty, задает ключ для шифрования данных. Таким образом, в зависимости от параметров, переданных в метод AssignStream, этапы сжатия данных, расчета цифровой сигнатуры и шифрования данных могут опускаться.

  • 225. Работа с двоичными данными (SQL Server + ASP)
    Статьи Компьютеры, программирование

    ASP-%d1%81%d0%ba%d1%80%d0%b8%d0%bf%d1%82%20img.asp%20%d0%bc%d0%be%d0%b6%d0%bd%d0%be%20%d1%83%d0%ba%d0%b0%d0%b7%d0%b0%d1%82%d1%8c%20%d0%b2%20%d0%b0%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82%d0%b5%20src%20%d1%82%d0%b5%d0%b3%d0%b0%20img:%20">%>ASP-скрипт img.asp можно указать в атрибуте src тега img:

  • 226. Работа с некоторыми Win API функциями (информация о системе)
    Статьи Компьютеры, программирование

    cout << " Total Number Of Free Bytes = " << (unsigned long)TotalNumberOfFreeBytes

  • 227. Работа с процессами в С/С++. Основные приемы
    Статьи Компьютеры, программирование

    Обратите внмание: ссылка на модуль (параметр hModule) - это первый байт ДОС-заголовка! Таким образом, мы получаем возможность работать с проекцией при некотором знании структуры PE-файлов. В частности мы можем прочиатать таблицу импорта, и, как правило, - даже переписать ее (это используется при перехвате АПИ). Параметр szExePath имеет свой "заскок" - иногда полный путь к модулю возвращается со странными вставками и, например, всесто "c:windowssystem32advapi32.dll" я иногда получаю "c:x86_proc_winsyspathadvapi32.dll". Как правило для системных задач средней сложности (перехват апи, или, наоборот, перехват стелсов) всего вышеописанного хватает. Но на этом возможности toolhelp не исчерпываются и теперь мы побегаем по потокам! Работа с потоками несколько отличается от работы с модулями - даже если мы сделаем снимок, задав идентификатор какого-либо процесса, функция Thread32Next не остановится, пока не пробежится по ВСЕМ потокам в системе. Поэтому мы должны проверять, к какому процессу принадлежит поток - благо, в структуре THREADENTRY32 есть член th32OwnerProcessID - идентификатор породившего поток процесса. Таким образом:

  • 228. Работа с регионами в Visual C++
    Статьи Компьютеры, программирование

    CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn, EqualRgn, ExtCreateRegion, FillRgn, FrameRgn, GetPolyFillMode, GetRegionData, GetRgnBox, InvertRgn, OffsetRgn, PaintRgn, PtInRegion, RectInRegion, SetPolyFillMode.

  • 229. Работа с регулярными выражениями в SQL Server
    Статьи Компьютеры, программирование

    В SQL Server 7/2000 нет встроенной поддержки работы с регулярными выражениями. Но SQL Server похволяет работать с COM-объектами. В VBScript (библиотека vbscript.dll) есть специальный объект для работы с регулярными выражениями - RegExp.

  • 230. Работа со стандартными ресурсами
    Статьи Компьютеры, программирование

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

  • 231. Развитие объектной ориентированности PHP
    Статьи Компьютеры, программирование

    Наконец, Zend Engine 2 также приносит в PHP обработку исключений. До настоящего времени печальной действительностью является то, что большинство разработчиков пишут код, не достаточно изящно обрабатывающий ошибочные ситуации. Не редко встречаются сайты, вываливающие в ваш браузер загадочные ошибки базы данных вместо показа правильно сформулированного сообщения "Произошла такая-то ошибка". В случае с PHP основная причина этого в том, что обработка ошибочных ситуаций задача, приводящая в уныние; вы, фактически, должны проверять возвращаемое значение для всех и для каждой функции. С добавлением set_error_handler() справляться с этой проблемой стало полегче, так как появилась возможность централизовать обработку ошибок, но до желаемого решения оставалось всё ещё далеко. Добавление же обработки исключений в PHP даст возможность разработчикам отлавливать ошибки более мелким неводом, и, что более важно, поспособствует элегантному восстановлению после ошибок, в каком бы месте программы они ни произошли.

  • 232. Разгон видеопамяти
    Статьи Компьютеры, программирование

    Некоторые чипы любят низкие тайминги (и снова BH-5), в то время как большинство не способно на них работать, зато хорошо масштабируются по тактовой частоте… К сожалению, энтузиастам приходится оперировать только данными, полученными эмпирическим путем (для примера приведу статью «Статистика разгона видеопамяти» на нашем сайте). Впрочем, тут же я могу сразу же внести и поправку, прилично портящую всю идею сбора подобной статистики, просто дав ссылку на собственный материал о разгоне 16 карт Radeon 9800 Pro. Дело в том, что при абсолютно идентичных микросхемах Samsung с временем доступа 2.86 нс (маркировка 2A, используемые в GF4Ti 2B это 2.94нс-чипы), минимальной частотой оказались 347(695)МГц, максимальной 405(810)МГц. Как вам такая «средняя температура по больнице»? Еще хуже вышло с показателями 2.8 нс микросхем от другого корейского производителя, Hynix. Пока что мы встречались с тремя картами на идентичных РСВ (GeForce FX 5900XT), использующими эти чипы. При штатной (по спецификациям) частоте 357(714)МГц, реальными частотами оказались… 415(830), 435(870) и 480(960)МГц, соответственно, то есть в третьем случае аж на СОРОК процентов выше нормы! Точность предсказания поведения конкретной карты по такому разбросу будет похожа на наведение ядерных ракет с точностью прицела «плюс-минус страна»… К счастью, с оперативной памятью все немного проще и зачастую разброс очень скромен, однако принципиально вопрос от этого не снимается аж никак.

  • 233. Размещение картинки в программе
    Статьи Компьютеры, программирование

    .%20%d0%9c%d0%be%d0%b6%d0%bd%d0%be%20%d1%82%d0%b0%d0%ba%d0%b6%d0%b5%20%d0%bd%d0%b0%20%d0%bf%d0%b0%d0%bd%d0%b5%d0%bb%d0%b8%20%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%be%d0%b2%20%d0%b2%d1%8b%d0%b1%d1%80%d0%b0%d1%82%d1%8c%20%d0%b2%20%d0%bc%d0%b5%d0%bd%d1%8e%20Run%20(%d0%9f%d1%83%d1%81%d0%ba)%20%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%83%20Start%20(%d0%a1%d1%82%d0%b0%d1%80%d1%82).%20%d0%95%d1%81%d0%bb%d0%b8%20%d0%bd%d0%b0%20%d0%bf%d0%b0%d0%bd%d0%b5%d0%bb%d0%b8%20%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%be%d0%b2%20%d0%bd%d0%b5%20%d0%b2%d0%b8%d0%b4%d0%bd%d1%8b%20%d0%ba%d0%bd%d0%be%d0%bf%d0%ba%d0%b8%20%d1%81%d0%be%20%d0%b7%d0%bd%d0%b0%d1%87%d0%ba%d0%b0%d0%bc%d0%b8,%20%d1%82%d0%be%20%d0%b2%20%d0%bc%d0%b5%d0%bd%d1%8e%20work%20(%d0%9f%d1%80%d0%be%d1%81%d0%bc%d0%be%d1%82%d1%80)%20%d0%b2%d1%8b%d0%b1%d0%b5%d1%80%d0%b8%d1%82%d0%b5%20%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%83%20Toolbar%20(%d0%9d%d0%b0%d0%b1%d0%be%d1%80%20%d1%81%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b2).%20%d0%9e%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5%20%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%83%20%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d1%8b,%20%d0%bd%d0%b0%d0%b6%d0%b0%d0%b2%20%d0%b2%20%d0%b7%d0%b0%d0%b3%d0%be%d0%bb%d0%be%d0%b2%d0%ba%d0%b5%20%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f%20%d0%bd%d0%b0%20%d0%ba%d0%bd%d0%be%d0%bf%d0%ba%d1%83%20%c2%ab%d0%97%d0%b0%d0%ba%d1%80%d1%8b%d1%82%d1%8c%c2%bb%20%d0%b8%d0%bb%d0%b8%20%d1%81%d0%be%d1%87%d0%b5%d1%82%d0%b0%d0%bd%d0%b8%d0%b5%20%d0%ba%d0%bb%d0%b0%d0%b2%d0%b8%d1%88%20<Alt%20+%20F4>.%20%d0%90%d0%bd%d0%b0%d0%bb%d0%be%d0%b3%d0%b8%d1%87%d0%bd%d1%8b%d0%bc%20%d0%be%d0%b1%d1%80%d0%b0%d0%b7%d0%be%d0%bc%20%d0%bd%d0%b0%20%d1%84%d0%be%d1%80%d0%bc%d1%83%20%d0%92%d0%b0%d1%88%d0%b5%d0%b3%d0%be%20%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f%20%d0%bf%d0%be%d0%bc%d0%b5%d1%81%d1%82%d0%b8%d1%82%d0%b5%20%d0%b2%d1%82%d0%be%d1%80%d0%be%d0%b9%20%d1%80%d0%b8%d1%81%d1%83%d0%bd%d0%be%d0%ba,%20%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d1%83%d1%8f%20%d1%82%d0%b5%d0%bf%d0%b5%d1%80%d1%8c%20%d1%84%d0%b0%d0%b9%d0%bb%2002.wmf.%20%d0%a0%d0%b8%d1%81%d1%83%d0%bd%d0%be%d0%ba%20%d0%b2%d0%b8%d1%88%d0%bd%d0%b8%20%d1%80%d0%b0%d1%81%d0%bf%d0%be%d0%bb%d0%be%d0%b6%d0%b8%d1%82%d0%b5%20%d0%b2%20%d0%bf%d1%80%d0%b0%d0%b2%d0%be%d0%b9%20%d0%bf%d0%be%d0%bb%d0%be%d0%b2%d0%b8%d0%bd%d0%b5%20%d1%84%d0%be%d1%80%d0%bc%d1%8b.%20%d0%9d%d0%b0%d0%b2%d0%b5%d0%b4%d0%b8%d1%82%d0%b5%20%d1%83%d0%ba%d0%b0%d0%b7%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%20%d0%bc%d1%8b%d1%88%d0%b8%20%d0%bd%d0%b0%20%d0%b8%d0%b7%d0%be%d0%b1%d1%80%d0%b0%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5%20%d1%8f%d0%b1%d0%bb%d0%be%d0%ba%d0%b0%20%d0%b8%20%d1%89%d0%b5%d0%bb%d0%ba%d0%bd%d0%b8%d1%82%d0%b5%20%d0%b4%d0%b2%d0%b0%20%d1%80%d0%b0%d0%b7%d0%b0%20%d0%bb%d0%b5%d0%b2%d0%be%d0%b9%20%d0%ba%d0%bd%d0%be%d0%bf%d0%ba%d0%be%d0%b9%20%d0%bc%d1%8b%d1%88%d0%b8%20">Запустите Вашу программу на выполнение, для чего щелкните один раз левой кнопкой мыши по значку «Запуск программы», расположенному на панели инструментов или нажмите на клавишу <F5>. Можно также на панели инструментов выбрать в меню Run (Пуск) команду Start (Старт). Если на панели инструментов не видны кнопки со значками, то в меню work (Просмотр) выберите команду Toolbar (Набор средств). Остановите работу программы, нажав в заголовке приложения на кнопку «Закрыть» или сочетание клавиш <Alt + F4>. Аналогичным образом на форму Вашего приложения поместите второй рисунок, используя теперь файл 02.wmf. Рисунок вишни расположите в правой половине формы. Наведите указатель мыши на изображение яблока и щелкните два раза левой кнопкой мыши появится окно программного кода с процедурой Picture1_Click. Имя процедуры обычно состоит из имени объекта и имени возможного для данного объекта события. Данная процедура будет вызвана во время работы программы при свершении такого события, как одиночный щелчок мыши по изображению яблока. В эту процедуру прерывания запишите две строки:

  • 234. Разработка систем управления организациями с использованием информационных технологий
    Статьи Компьютеры, программирование

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

  • 235. Разработка системной поддержки вызова программ,реализованных на языке Fortran, из среды Java
    Статьи Компьютеры, программирование

    Компилятор GNU g77, разрешает использование переменных без их явного описания. Однако, если явно не определить тип переменной в подпрограмме, которая вызывается из Java-окружения, вероятен случай, что виртуальная Java-машина получит внешний сигнал. Этот сигнал, номер которого 11, сообщает виртуальной машине о некорректном обращении к памяти за пределами ее работы. Аналогичная ситуация может возникнуть и с функциями. При описании функций стандартом предусмотрено описывать явно тип возвращаемого значения. Однако, если этого не сделать, то компилятор сам подберет соответствующий тип, исходя из типа возвращаемого выражения. Если такую функцию вызывать из программы, реализованной только на языке Fortran, то все будет работать стабильно. Но как только объектный модуль с такой функцией участвует в формировании разделяемой библиотеки и подобного рода функция вызывается подпрограммой, которая, в свою очередь, вызывается виртуальной машиной Java, выполнение основной программы прекращается по причине получения виртуальной Java-машиной сигнала номер 11.

  • 236. Разработка сложных web-проектов с использованием Microsoft Commerce Server 2000
    Статьи Компьютеры, программирование

    С помощью BizDesk, мощного DHTML-приложения, работающего в Интернет-броузере клиента, менеджеры сайта могут наполнять информацией продуктовый каталог, анализировать информацию о пользователях, выявлять тренды в активности пользователей, проводить персональные почтовые рассылки, просматривать информацию о заказах. BizDesk является довольно сложным приложением, реализованным на технологиях "толстого" клиента с использованием JavaScript и XML. Разработчики продукта Commerce Server не обошли вниманием администраторов Web-сайтов и серверов СУБД. Commerce Server имеет свой snap-in (модуль для администрирования), интегрированный с Microsoft Management Console. Управлять Интернет сайтом, на котором установлен Commerce Server, достаточно просто благодаря централизации всех интерфейсов управления в одном месте - Microsoft Management Console.

  • 237. Разреженная модель базовых блоков для оптимизации потоков команд
    Статьи Компьютеры, программирование

    В некоторых распространенных архитектурах, например Intel i860 [2], зависимости между командами могут быть ограничены по времени сверху. То есть вторая (зависящая) инструкция должна быть выполнена ровно через определенное количество тактов после первой, иначе результат выполнения первой команды будет утерян. Хотя такие виды зависимостей и описываются существующими моделями [1], [5], но эффективных алгоритмов построения расписания, создающих корректное расписание всегда, когда это возможно, для них не существует. Это объясняется тем, что такие зависимости вводятся в модель с помощью специального атрибута связей. Данное расширение модели не позволяет эффективно использовать алгоритмы оптимизации, пригодные для моделей без этого атрибута [4], [5]. Эти алгоритмы в процессе работы могут заходить в тупик, генерируя некорректное расписание.

  • 238. Разрешение имен доменов с помощью DNS
    Статьи Компьютеры, программирование

    И WINS, и DNS выполняют разрешение имен, которое представляет собой процесс преобразования компьютерного имени в адрес. WINS преобразовывает внутренние имена NetBIOS в IP-адреса, а DNS преобразует в IP-адреса Internet-имена. Если ваша сеть охватывает только вашу компанию и в ней используются только системы компании Microsoft (например, на базе NetBIOS), DNS вам абсолютно ни к чему; все, что необходимо для разрешения имен предлагает WINS. Однако, если вы подключены к Internet, вам следует подумать о том, какой тип связи имеет смысл реализовывать. Если ваши пользователи будут получать доступ к внешним серверам в Internet, необходимо предоставить им возможности, которые выходят за рамки поиска адреса в Internet. Если же, напротив, вы планируете предоставлять ресурсы, к которым будут обращаться пользователи вне вашей сети, следует в своей базе данных DNS сконфигурировать серверы (например, все машины, которые содержат ресурсы для совместного использования) как хосты.

  • 239. Расплатись по мобильному
    Статьи Компьютеры, программирование

    Достаточно вспомнить про объем рынка мобильного контента, оцениваемый аналитиками в 710 миллиардов (!) долларов. Значительная часть транзакций, связанных с приобретением рингтонов, Java-игр и тому подобных продуктов, осуществляется с помощью платежных единиц, находящихся на внутреннем счете абонента сотовой связи. Такая система имеет два существенных недостатка: чрезвычайно ограниченную сферу применения и неясность юридического статуса используемых платежных единиц. Создание системы оплаты покупок с помощью мобильного телефона является одним из приоритетных направлений развития традиционных международных платежных систем. Главной причиной такого положения вещей является желание различных финансовых организаций и банковских учреждений использовать огромный потенциал быстро растущего рынка мобильной связи. В качестве примера можно привести активное участие таких объединений, как Visa и Master Card во множестве пилотных проектов, организованных для тестирования систем мобильных расчетов.

  • 240. Распознавание речи в Office XP
    Статьи Компьютеры, программирование

    Для распознавания речи конечно же требуется подключить к компьютеру микрофон. Данный механизм подразумевает необходимость настройки на конкретного пользователя. Поэтому при первом же обращении к средствам распознавания речи вам понадобится обучить компьютер понимать ваше произношение. Для этого нужно сначала ввести некоторые сведения о себе возраст (до 12 лет или старше) и пол (рис. 4), а потом читать в течение 10 минут предлагаемый текст. С помощью выделения автоматически показываются распознанные слова, т. е. фактически выполняется проверка вашего произношения (движок настроен на североамериканское произношение). В будущем можно пройти дополнительные уровни обучения, а также сделать несколько профайлов для разных пользователей. Процесс обучения включает возможность расширения речевой базы путем ввода слова и записи его произношения.