Немного слов об утилите Problem Steps Recorde

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

На днях он прислал еще один отчет о найденной проблеме (позже выяснилось, что он не правильно растолковал функциональность, посчитав ее за ошибку). Отчет был в виде mht-файла (веб-архив), который содержал детализированный отчет с шагами воспроизведения, включая скриншоты и некоторую системную информацию. Вау! По правде говоря, такое я видел впервые. Что это такое? Это он сам все написал? Навряд ли… Начал гуглить. Нашел — называется «Problem Steps Recorder«, утилита, которая входит в состав Windows 7.

Основное назначение «Problem Steps Recorder», как следует из названия, это запись каких-либо шагов. Записанные действия сохраняются в отчет формата mht, а сам же файл автоматически добавляется в zip-архив. Т.е. для рядового пользователя достаточно просто запустить запись, пощелкать, затем нажать «Сохранить», и отправить уже сформированный архив, скажем, в службу тех.поддержки. То, что добавили в Windows 7 — это мечта любого специалиста, имеющего дела с пользователями, которые порой не могут толком объяснить, что же у них там за проблема такая. А тут взял, записал и отправил.

Найти утилиту «Problem Steps Recorder» можно в панели управления или вызвать через командную строку: psr.exe

Немного слов об утилите Problem Steps Recorde

[Chrome] Куда подевались настройки эмуляции?

Начиная с последних версий браузера Google Chrome из привычного места пропали опции настройки User-Agent’а, размером экрана и пр. Все это раньше можно было сделать через инструменты разработчика (F12 -> Settings -> Overrides). Я использую версию 32.0.1700.72 m и вот что сейчас есть в этом разделе:

chrome_settings

Пичаль, ведь там нет ничего нам нужного! Думаете, что из Chrome удалили так нужные тестировщикам и разработчикам инструменты? Нет, оказывается, их просто вынесли в другое место (F12 -> Drawer -> вкладка Emulation):

chrome_settings_2

 

[Chrome] Красный цвет окна браузера

Сегодня обнаружил, что после обновления Google Chrome до версии 32.0.1700.72 m, все окно браузера было в красном полупрозрачном цвете:

Красный цвет окна браузера Google Chrome

Проблема была явно локальной, а поиск в сети ответа не дал. Пошел в chrome://flags и начал экспериментировать в опциями.

Вторая же по счету, которая называется «Переопределение списка программного рендеринга Mac, Windows, Linux, Chrome OS, Android» и являлась причиной возникшей проблемы. По умолчанию опция выключена, а после включения и перезапуска браузера, красный цвет исчез.

Таким образом, красный цвет окна в Chrome свидетельствует о проблемах с программным рендерингом.

Cleanmymac

Вчера на рабочем ПК установил Хакинтош (OS X 10.9) в качестве виртуальной машины. В образе ОС уже были защиты несколько сторонних утилит, в том числе крякнутый CleanMyMac. Так вот, при попытке им воспользоваться появилось сообщение:

Ваша копия CleanMyMac 2 нелегальна и будет деактивирована.

Мы определили, что вы используете пиратскую копию. Пожалуйста, скачайте CleanMyMac 2 с нашего сайта и поддержите нас покупкой лицензии. В течении часа мы предлагаем вам скидку в размере 50% на CleanMyMac 2.

cleanmymac

Во-первых, фраза «в течении» написана с ошибка, правильно в данном случае — «в течение«. 🙂 Во-вторых, я все же нажал на кнопку «Купить со скидкой 50%» и да, мне открылась страница покупки, где значилась цена со скидной. Однако я сразу бросил взгляд на ссылку, по которой осуществляется переход на сайт:

http://macpaw.com/ru/store/cleanmymac?campaign=crk2cmm2&utm_source=cmm2_cracked
&utm_medium=app&utm_term=&utm_content=&utm_campaign=crk2cmm2_50
&clh=Mzg1MjU5fGUyMjQwZTNiOTEzNDg3NWVmYzViYTgyMzNmYTMwODE3

Как видно, ссылка содержит параметры, в которых фигурирует упоминание о том, что текущая версия является нелегальной. А если убрать подобные параметры, то такая измененная ссылка уже не даст нам возможность приобрести CleanMyMac с 50% скидкой :’-(

http://macpaw.com/ru/store/cleanmymac?campaign=utm_medium=app&utm_term=&utm_content=
&clh=Mzg1MjU5fGUyMjQwZTNiOTEzNDg3NWVmYzViYTgyMzNmYTMwODE3

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

[Windows] Как сбросить пароль от учетной записи

Чтобы сбросить пароль от учетной записи в ОС Windows 7 (к примеру, если вы забыли его), то можно воспользоваться следующим методом:

1. Создать загрузочную флешку
2. Установить на нее утилиту Offline NT Password and Registry Editor
3. Загрузить компьютер с помощью флешки и сбросить пароль

Метод полностью работоспособен и благодаря нему мне удалось решить проблему, озвученную ранее.

Загрузочную флешку я создал с помощью программы XBoot, скормив ей ISO-образ  утилиты Offline NT Password (использовал загрузчик Grub4Dos, т.к. Syslinux не взлетел). Далее, следуя подробной инструкции, сбросил пароль от учетной записи администратора.

[IPB] Про то, как обходят проверку лицензии (нуленые версии)

Решил узнать, как ломают популярный форумный движок Invision Power Board. Для этого исключительно в ознакомительных целях я загрузил последнюю релизную версию 3.4.5 (Retail, ENG) и точно такую же версию, только нуленую и русифицированную от IPBMafia.ru.

Для того, чтобы найти изменения, сделанные при нулении, необходим инструмент для сравнения изменений файлов. То, что было у меня под рукой — это Git. Первым коммитом пошел IPB 3.4.5 (Retail, ENG), вторым — IPB 3.4.5 (Nulled, RUS).

И вот какие изменения предстали:

admin\applications\core\extensions\enhancements\ipscdn.php

-		$ping	= $file->getFileContents( "http://license.invisionpower.com/?a=cdn&key=" . ipsRegistry::$settings['ipb_reg_number'] );
+		$return = NULL;

admin\applications\core\extensions\enhancements\viglink.php

-		$return = $cfm->getFileContents( "http://license.invisionpower.com/viglink/?subId=" . urlencode( $subId ) );
+		$return = NULL;

\admin\applications\core\modules_admin\tools\licensekey.php

-	{
-		/* If we don't have a key, an empty array is fine */
-		if ( !$this->settings['ipb_reg_number'] )
-		{
-			$this->cache->setCache( 'licenseData', array(), array( 'array' => 1 ) );
-			return;
-		}
-	
-		/* Query the api */
-		$classToLoad = IPSLib::loadLibrary( IPS_KERNEL_PATH . 'classFileManagement.php', 'classFileManagement' );
-		$classFileManagement = new $classToLoad();
-		$response = $classFileManagement->getFileContents( "http://license.invisionpower.com/?a=info&key={$this->settings['ipb_reg_number']}&url={$this->settings['board_url']}" );
-
-		/* Is it valid? */
-		if ( $response == 'NO_KEY' )
-		{			
-			IPSLib::updateSettings( array( 'ipb_reg_number' => '' ) );
-			$this->cache->setCache( 'licenseData', array(), array( 'array' => 1 ) );
-			return;
-		}
-					
+	{	
 		/* Save */
-		$licenseData = json_decode( $response, true );
+		$licenseData = darkLAE::getLicenseData();
 		$licenseData['_cached_date']	= time();
 		$licenseData['key']['_expires']	= $licenseData['key']['_expires'] ? $licenseData['key']['_expires'] : 9999999999;
 		$licenseData['key']['expires']	= $licenseData['key']['expires'] ? $licenseData['key']['expires'] : 9999999999;
 		$this->cache->setCache( 'licenseData', $licenseData, array( 'array' => 1 ) );
-		
-		/* Copyright Removal? */
-		if ( $licenseData['cr'] )
-		{
-			IPSLib::updateSettings( array( 'ipb_copy_number' => $licenseData['cr'], 'ips_cp_purchase' => 1 ) );
-		}
-		elseif ( $this->settings['ips_cp_purchase'] )
-		{
-			IPSLib::updateSettings( array( 'ips_cp_purchase' => 0 ) );
-		}

\admin\index.php

+require_once( IPS_ROOT_PATH . 'sources/base/darkLAE.php' );/*noLibHook*/

\admin\install\index.php

+require_once( IPS_ROOT_PATH . 'sources/base/darkLAE.php' );/*noLibHook*/

\admin\upgrade\index.php

+require_once( IPS_ROOT_PATH . 'sources/base/darkLAE.php' );/*noLibHook*/

\index.php

+require_once( IPS_ROOT_PATH . 'sources/base/darkLAE.php' );/*noLibHook*/

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

Я в свою очередь в предвкушении линейки IPB 4.x. Говорят, там шаблоны будут переписаны с учетом HTML5 🙂

[Mas OS] Pinch-to-zoom для Magic Mouse

По умолчанию в OS X ML технология Pinch-to-zoom для Magic Mouse не задействована, хотя эту функцию можно включить в настройках «Универсального доступа», однако в таком случае зуммироваться будет весь рабочий стол, что  для повседневных задач совершенно не нужно.

Чтобы заставить Pinch-to-zoom работать так, как мы привыкли, нужно скачать бесплатную утилиту Better Touch Tool и настроить ее следующим образом:

Pinch-to-zoom для Magic Mouse

[iOS] Приложения для мониторинга системы

Для того, чтобы узнать основную техническую информацию об iPhone / iPad, необязательно делать джейлбрейк, и лезть в консоль. В App Store есть достаточное количество бесплатных приложений, которые готовы раскрыть такую информацию. К примеру, DeviceStats (автор Dennis Stücken):

  • Показывает уровень заряда батареи (кстати, значение расходится в меньшую сторону с тем, что показывает сама iOS)
  • Размер занятого / свободного дискового пространства
  • Параметры сотовой и Wi-Fi сети
  • Размер памяти (еще одна странность — приложение показывает Total = 632 МБ, в то время как у моего iPad 3 размер памяти составляет 1024 МБ)
  • Список текущих процессов

Скорее всего выше перечисленные проблемы связаны с тем, что приложение не поддерживает iOS 7, т.к. последняя дата релиза была  декабре прошлого года.

DeviceStats

Более интересное приложение — это System Information Lite (отличие от платной версии — показ рекламного баннера), которое находится в стадии активной разработки. По мимо всего прочего, умеет:

  • Счетчики обновляются в режиме реального времени
  • Отображение Boot Time и Uptime устройства
  • Имеется возможность скопировать все представленную информацию (или же сразу отослать по почте)

System Information Lite

Кстати, размер оперативной памяти, отображаемый этим приложением, равняется 987 МБ, что больше похоже на правду. А вот уровень заряда батареи также отличается в меньшую сторону.

Более навороченное приложение — Lirum Device Info Lite, представляющее, наверно, наиболее полную информацию об устройстве, которую только можно ожидать. Из особенностей:

  • Показ номера модели устройства и аппаратной начинки
  • Подробное описание размера дискового пространства, вплоть до указания точек монтирования
  • Подробная информация об экране и графическом ядре (GPU)
  • Использование процессора отображается в виде графика в реальном времени
  • Использование оперативной памяти отображается в виде графика в реальном времени + здесь же показываются процессы с указанием PID и приоритета
  • Подробная информация о камере устройства
  • Подробная информация о сенсорах устройства (гироскоп, акселерометр, цифровой компас и т.д.)

Из особенностей платной версии выделяется возможность просматривать системные логи и активные соединения.

Lirum Device Info Lite

[Android] Снятие скриншотов с экрана

Для записи видео с экрана устройства, работающего под управлением ОС Android есть не так уж и много действительно нормальных средств. Часть из них — это приложения, которые нужно устанавливать непосредственно на устройство, но они в большинстве свое требуют рут-права. Также еще есть приложение «Screencast Video Recorder«, не требующее рутового девайса, но оно не поддерживает платформу Tegra, поэтому проверить работоспособность этой программы на HTC EVO 3D не представляется возможным.

Также я нашел утилиту Ashot, написанную на Java, которая будучи запущенной на компьютере, позволяет записывать скринкаст, поступающий с устройства, правда, сохраняется все это дело не в привычном видеоформате, а в виде отдельных кадровых изображений в формате PNG (позднее их можно будет смонтировать в видеоряд).

Чтобы начать работать с Ashot, нужно:

  • Скачать — http://sourceforge.net/projects/ashot/
  • Папку «AndroidScreenCapture» можно скопировать, к примеру, в директорию, где установлен AndroidSDK
  • Из папки «platform-tools» скопировать файл «adb» в папку «tools» (это трюк для Mac OS. Для Windows нужно копировать еще парочку файлов)
  • Запустить AShot-1.1.jar и указать местоположение AndroidSDK

Есть устройство уже подключено к компьютеру, то программа сразу же отобразит его экран:

ashot