Чтение онлайн

ЖАНРЫ

Журнал "Компьютерра" №724
Шрифт:

Поделом! Я почему.то даже не обиделся на NOD32, и когда, "переспав" трагедию, принялся за новую (пятую!) установку, не стал искать добра от добра: поставил снова его же, правда - русский. Буквально на днях пришел очередной пресс.релиз, отчет об очередном соревновании десятка антивирусов, - и вот там победил Касперский и кто.то еще один, а NOD32 и остальные его коллеги тестовый вирус пропустили. Вполне может быть. Но очень трудно расставаться с предубеждениями, а к Касперскому (не к Жене лично, а к его продукту) оно у меня, увы, сложилось давным.давно, - не потому, что он плохо ловит - он, полагаю, ловит лучше многих, - а потому, что тяжел и громоздок. Возможно, сегодня он полегчал, но потребуется еще несколько веских аргументов, чтобы мне снова захотелось это проверить.

NOD же 32 легок, изящен и красив, и все равно никогда не угадаешь, в какой именно ситуации какой именно антивирус пропустит заразу. Во всяком случае, я решил еще раз поставить на NOD32, - тем более что риск не так уж велик, когда у тебя

на пристежном винчестере лежат образы системы за последние пару недель. Просто в этот раз карты очень уж неудачно легли!

Так или иначе, все вроде бы утанцевалось, и этот "Огород" я пишу в Word 2007 из-под Висты. Единственное, что хочется добавить в конце, - это к вопросу о том, как Microsoft вольготно чувствует себя на любом компьютере: и там, куда ее зовут, и там, куда не приглашают, - в комплект к истории с виденьем отключенных дисков. Уже после установки и снятия всех резервов я, предварительно создав "Точку восстановления", решил проверить.таки пришедший по Windows Update драйвер nVidia. Он установился и, как и предполагалось, видеоподсистему притормозил.

Можно было б откатиться к прежнему драйверу, можно - деинсталлировать апдейт, но я почему-то решил (может, для проверки?) вернуться к последней "Точке восстановления". Процедура прошла вроде бы благополучно и потребовала перезагрузки. Которой не произошло: система не смогла найти загрузочный файл. Ужас! Кошмар! Это после всех вышеописанных.то мучений. Я снова лег спать, и, видать во сне, мне пришло в голову глянуть в BIOS Setup. И что же вы думаете?
– в последовательности загрузочных устройств не было ни одного винчестера! DVD-ROM’ы, флоппи.дисковод, какие.то, наконец, Generic USB-устройства… Я установил правильную загрузочную последовательность - и все прошло на ура. Уверяю вас, что перед этим инцидентом я в BIOS Setup не заходил недели две, так что кроме Висты нашкодить было попросту некому: глубочайшую вирусную проверку компьютера несколькими антивирусами я, разумеется, провел, едва загрузился после последней установки [Виста этого не делает, как бы автору ни хотелось обвинить Мелкософт еще в одном грехе. Все гораздо прозаичнее. В нечастых случаях, когда винчестер впадает в ступор (перестает отзываться на команды вследствие ошибки в драйвере, глюка контроллера или самого винчестера) и сразу после этого идет перезагрузка без выключения питания, такой фокус выполняет BIOS Setup. Его современные версии формируют список загрузки динамически, на основании списка найденных устройств. "Зависший" винчестер не отзывался на команды и, соответственно, не был обнаружен процедурой POST при перезагрузке (у SATA-дисков, как известно, нет аппаратного "ресета", кроме как по выключению питания или отключению сигнального шлейфа), поэтому он и был исключен из списка доступных для загрузки устройств. Если перезагрузка идет с выключением питания, винчестер инициализируется заново, и такого не происходит. Довольно распространенный глюк с дисками SerialATA.
– Прим. Сергея Леонова.].

P.S. И после этого случилась еще одна мини-авария: Виста, ни с того ни с сего, грузилась до середины и давала синий экран, - причем я ничего перед этим в системе не менял. То же самое происходило и в safe mode. И вот тут.то чудом выручила строчка меню, которая никогда меня, за все годы работы с Windows, выручить не умела: "Последняя удачная загрузка".

Дай ей бог здоровья! Причина, впрочем, так и осталась невыясненной.

FERRMA: Один за всех и все за одного!

Автор: Алексей Стародымов

Каждое современное мобильное устройство, будь то сотовый телефон, коммуникатор или карманный компьютер, наделено некоторым количеством "вшитого" в операционную систему софта - будильниками, адресными книгами, браузерами, клиентами электронной почты, простенькими играми и так далее и тому подобное.

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

Как ни удивительно, сегодня с этим проблем едва ли не меньше, чем в случае с аппаратами на базе открытых ОС: поддержка Java в наши дни присутствует практически в каждом телефоне ценой от ста долларов, а гибкость этой платформы позволяет создавать приложения, которые могут быть полезны обладателям телефонов совершенно разных брэндов. В этом, собственно, вся соль - приложения и игры, написанные на Java, являются кроссплатформными: один и тот же мидлет может работать, допустим, на телефоне Samsung, смартфоне Nokia и каком-нибудь наладоннике с WM внутри. Естественно, с совместимостью есть определенные проблемы - в каких-то продуктах Java-машины поновее, в каких-то - постарее, да и сами мидлеты нередко оптимизируются

разработчиками под конкретные модели телефонов. Визуально разница заключается лишь в способе реализации работы с Java-контентом: некоторые аппараты (как правило, корейского производства) позволяют загружать мидлеты только с помощью WAP-браузера - таким образом демонстрируется борьба с пиратством. В остальных случаях достаточно сбросить jar-файлы по Bluetooth или кабелю; порой достаточно этого самого jar-файла, а кое-где требуется еще и jad, хранящий информацию об инсталлируемом приложении. Некоторые современные мобильные телефоны поддерживают многозадачность: так, аппараты от Sony Ericsson позволяют одновременно запускать до десяти Java-приложений, Motorola Z6/V8/U6 - всего одно, но есть возможность его свернуть или передать по "синему зубу", а вот телефоны Nokia, Samsung и LG допускают лишь один мидлет, уже без возможности работы в фоновом режиме.

Такова теория, которая, как обычно и бывает, пытается идеализировать ту или иную технологию. С технической и исторической точек зрения все гораздо интереснее и… сложнее. Начнем с того, что набор спецификаций, предназначенных для разработки Java-приложений и их запуска на карманных электронных устройствах, получил название Java 2 Micro Edition (Java 2ME), тогда как спецификации для серверных решений называются Java 2 Enterprise Edition (Java 2EE), а для домашних компьютеров - Java 2 Standard Edition (Java 2SE).

При этом, что очень удобно, разработчикам ПО не нужно разбираться в особенностях архитектуры конкретных мобильных устройств и изучать новые малознакомые среды программирования,- SDK (Software Development Kit) для написания софта с учетом различных версий спецификаций Java весьма схожи, и ничто не мешает в кратчайшие сроки научиться писать Java 2ME-приложения, имея опыт работы, скажем, с более сложным Java 2SE. Кроме того, платформа Java 2ME бесплатна, что сыграло важную роль в популяризации технологии: если производитель устройства решает реализовать поддержку Java в своем новом портативном устройстве, то он никому ничего не должен - понятие лицензионных отчислений здесь отсутствует. Полагаю, стоит упомянуть, что огромное количество Java-приложений также распространяется на свободной основе - платить приходится в основном за игры да за что-нибудь совсем уж специфическое. В то же время базовым набором полезных мидлетов можно разжиться, не заплатив ни цента, - скажем, "комплект" для работы в Интернете, включающий Opera Mini 4, JIMM, MailMan, ClimateControl, Google Maps и Mail.Ru Agent, не будет стоить ничего: заходишь на официальный сайт разработчика, скачиваешь, устанавливаешь и пользуешься в свое удовольствие.

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

Более того, основная проблема заключается в так называемых наборах API (Appli cation Programming Interface - программный интерфейс приложения), отвечающих за доступ к каким-либо программным или аппаратным функциям устройства непосредственно из Java-приложения, исполняемого виртуальной Java-машиной. Приведем пример из жизни: есть такой мидлет - BT Info, предназначающийся для Blue-Jack’инга. На Sony Ericsson W880i он получает доступ к Bluetooth-модулю, отыскивает устройства и обменивается с ними информацией, а вот MOTOROKR Z6 при попытке запуска мидлета выводит на дисплей сообщение об отсутствии поддержки JSR-82.

Что это значит? Виртуальная Java-машина, которой оснащена Z6, не имеет доступа к Bluetooth API устройства, то есть соответствующие Java-приложения функционировать не будут. Аббревиатура JSR расшифровывается как Java Specification Request - фактически это модули/конфигурации/профили/спецификации, реализуемые на основе дополнительных библиотек (классов) и призванные улучшить функциональность платформы в целом. Одни из них являются специфическими, другие применяются почти повсеместно и уже стали ее "костяком", благо отсутствие некоторых интересных API было обнаружено производителями устройств и ОПСОСами (желающими использовать новую платформу для внедрения своих дополнительных услуг) еще в первые годы существования Java 2ME. Полный же список модулей, которые реально поддерживаются представленными на рынке аппаратами, можно отыскать на www.jcp.org/en/jsr/all.

Поделиться с друзьями: