Рубрика: Софт
Немного слов об утилите Problem Steps Recorde
Давно веду общение с одним нашим японским пользователем, который весьма активно использует наши программные продукты. По сути, мы используем его в качестве бета-тестера. Т.к. я являюсь единственным сотрудником, кто отвечает за процессы тестирования в компании, то помощь в виде таких бета-тестеров никогда не бывает лишней. Японец, к слову, работает в службе технической поддержки и изучать проблемы ему не ново. Он весьма скрупулезно исследует наши программы и присылает подробные отчеты. В основном, они включают в себя проблемы юзабилити, хотя часть из них содержит и специфические ошибки, воспроизводимые только у него. В общем, я весьма доволен нашей с ним кооперацией.
На днях он прислал еще один отчет о найденной проблеме (позже выяснилось, что он не правильно растолковал функциональность, посчитав ее за ошибку). Отчет был в виде mht-файла (веб-архив), который содержал детализированный отчет с шагами воспроизведения, включая скриншоты и некоторую системную информацию. Вау! По правде говоря, такое я видел впервые. Что это такое? Это он сам все написал? Навряд ли… Начал гуглить. Нашел — называется «Problem Steps Recorder«, утилита, которая входит в состав Windows 7.
Основное назначение «Problem Steps Recorder», как следует из названия, это запись каких-либо шагов. Записанные действия сохраняются в отчет формата mht, а сам же файл автоматически добавляется в zip-архив. Т.е. для рядового пользователя достаточно просто запустить запись, пощелкать, затем нажать «Сохранить», и отправить уже сформированный архив, скажем, в службу тех.поддержки. То, что добавили в Windows 7 — это мечта любого специалиста, имеющего дела с пользователями, которые порой не могут толком объяснить, что же у них там за проблема такая. А тут взял, записал и отправил.
Найти утилиту «Problem Steps Recorder» можно в панели управления или вызвать через командную строку: psr.exe
[Chrome] Куда подевались настройки эмуляции?
Начиная с последних версий браузера Google Chrome из привычного места пропали опции настройки User-Agent’а, размером экрана и пр. Все это раньше можно было сделать через инструменты разработчика (F12 -> Settings -> Overrides). Я использую версию 32.0.1700.72 m и вот что сейчас есть в этом разделе:
Пичаль, ведь там нет ничего нам нужного! Думаете, что из Chrome удалили так нужные тестировщикам и разработчикам инструменты? Нет, оказывается, их просто вынесли в другое место (F12 -> Drawer -> вкладка Emulation):
[Chrome] Красный цвет окна браузера
Сегодня обнаружил, что после обновления Google Chrome до версии 32.0.1700.72 m, все окно браузера было в красном полупрозрачном цвете:
Проблема была явно локальной, а поиск в сети ответа не дал. Пошел в chrome://flags и начал экспериментировать в опциями.
Вторая же по счету, которая называется «Переопределение списка программного рендеринга Mac, Windows, Linux, Chrome OS, Android» и являлась причиной возникшей проблемы. По умолчанию опция выключена, а после включения и перезапуска браузера, красный цвет исчез.
Таким образом, красный цвет окна в Chrome свидетельствует о проблемах с программным рендерингом.
Cleanmymac
Вчера на рабочем ПК установил Хакинтош (OS X 10.9) в качестве виртуальной машины. В образе ОС уже были защиты несколько сторонних утилит, в том числе крякнутый CleanMyMac. Так вот, при попытке им воспользоваться появилось сообщение:
Ваша копия CleanMyMac 2 нелегальна и будет деактивирована.
Мы определили, что вы используете пиратскую копию. Пожалуйста, скачайте CleanMyMac 2 с нашего сайта и поддержите нас покупкой лицензии. В течении часа мы предлагаем вам скидку в размере 50% на CleanMyMac 2.
Во-первых, фраза «в течении» написана с ошибка, правильно в данном случае — «в течение«. 🙂 Во-вторых, я все же нажал на кнопку «Купить со скидкой 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 и настроить ее следующим образом:
[iOS] Приложения для мониторинга системы
Для того, чтобы узнать основную техническую информацию об iPhone / iPad, необязательно делать джейлбрейк, и лезть в консоль. В App Store есть достаточное количество бесплатных приложений, которые готовы раскрыть такую информацию. К примеру, DeviceStats (автор Dennis Stücken):
- Показывает уровень заряда батареи (кстати, значение расходится в меньшую сторону с тем, что показывает сама iOS)
- Размер занятого / свободного дискового пространства
- Параметры сотовой и Wi-Fi сети
- Размер памяти (еще одна странность — приложение показывает Total = 632 МБ, в то время как у моего iPad 3 размер памяти составляет 1024 МБ)
- Список текущих процессов
Скорее всего выше перечисленные проблемы связаны с тем, что приложение не поддерживает iOS 7, т.к. последняя дата релиза была декабре прошлого года.
Более интересное приложение — это System Information Lite (отличие от платной версии — показ рекламного баннера), которое находится в стадии активной разработки. По мимо всего прочего, умеет:
- Счетчики обновляются в режиме реального времени
- Отображение Boot Time и Uptime устройства
- Имеется возможность скопировать все представленную информацию (или же сразу отослать по почте)
Кстати, размер оперативной памяти, отображаемый этим приложением, равняется 987 МБ, что больше похоже на правду. А вот уровень заряда батареи также отличается в меньшую сторону.
Более навороченное приложение — Lirum Device Info Lite, представляющее, наверно, наиболее полную информацию об устройстве, которую только можно ожидать. Из особенностей:
- Показ номера модели устройства и аппаратной начинки
- Подробное описание размера дискового пространства, вплоть до указания точек монтирования
- Подробная информация об экране и графическом ядре (GPU)
- Использование процессора отображается в виде графика в реальном времени
- Использование оперативной памяти отображается в виде графика в реальном времени + здесь же показываются процессы с указанием PID и приоритета
- Подробная информация о камере устройства
- Подробная информация о сенсорах устройства (гироскоп, акселерометр, цифровой компас и т.д.)
Из особенностей платной версии выделяется возможность просматривать системные логи и активные соединения.
[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
Есть устройство уже подключено к компьютеру, то программа сразу же отобразит его экран: