воскресенье, 21 декабря 2008 г.

InfraRecorder работает

Недавно попробовал InfraRecorder. Достойная замена Nero.

Инфляция в 2008 году

Я уже давно подозревал, что наше правительство лукавит, публикуя данные об инфляции в стране. Ввести народ в заблуждение просто, если подобрать методику расчета инфляции таким образом, чтобы она показывала желаемые цифры. Мою уверенность укрепили последние публикации на homepage.ru. Вообщем, я решил проверить инфляцию на собственной шкуре. Вспомнил, что сохранял бланки заказов сети ukonos.ru, которые в последствии не удалял. Сохранилась история, и я сделал расчет.

Товар 02.09.2007, руб.
20.12.2008, руб.
Инфляция с 02.09.2007 по 20.12.2008 Инфляция с 02.09.2007 по 20.12.2008, % в год
ВОДА ШИШКИН ЛЕС НЕГАЗИРОВАННАЯ ЧИСТАЯ ПИТЬЕВАЯ 5Л 29,43 39,9 36% 27%
МАКАРОНЫ МАКФА СПИРАЛИ 450Г 16,87 29,2 73% 56%
МЫЛО СЭЙФГАРД КЛАССИЧЕСКОЕ БЕЛОЕ 100Г РОССИЯ 15 22,6 51% 39%
НАПИТОК ТЕДИ МОРКОВЬ+ПЕРСИК+ЯБЛОКО 0,75Л 42,57 48,5 14% 11%
ТУАЛЕТНАЯ БУМАГА ЗЕВА ПЛЮС ЗЕЛЕНАЯ 2 СЛОЯ 4 РУЛОНА 36,2839,9 10% 8%
ФАСОЛЬ ВЕРЕС С ОВОЩАМИ 530Г 47,67 67 41%31%

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

суббота, 13 декабря 2008 г.

Удобный переводчик для коммуникатора

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

суббота, 6 декабря 2008 г.

Ubuntu установлена успешно

Эти строки я пишу из под Ubuntu. Можно считать, что установка прошла успешно, хотя apt-get upgrade еще качает обновления пакетов.

среда, 3 декабря 2008 г.

Сохранение образа диска с помощью бесплатного ПО

Перед установкой Ubuntu на свой новенький Acer Aspire я решил сохранить образы всех разделов жесткого диска на случай необходимости восстановления. Сделать мне это удалось с помошью бесплатной утилиты Clonezilla. Работает, если делать все по инструкции, а я стараясь последнее время так делать всегда (время экономит сильно). Единственная проблема, с которой я столкнулся, это подключение USB HDD Transcend StoreJet, на который я сливал образы разделов. Меня как всегда выручил Google и волшебная команда: ntfs-3g /dev/hdb /home/partimag

вторник, 2 декабря 2008 г.

Проверки на экранных формах

Публикую полный на мой взгляд список проверок на экранных формах [приоритет]:
  • [Средний] Проверка состава элементов управления (полей ввода, подписей, кнопок, ссылок и т.д.)
  • [Высокий] Проверка сохранения и передачи значений полей в системе
  • [Высокий] Проверка отображения значений полей из системы
  • [Низкий] Проверка взаимного расположения элементов управления на форме
  • [Высокий] Проверка обязательности заполнения полей
  • [Высокий] Проверка условной (взаимной) обязательности заполнения полей
  • [Средний] Проверка доступности полей для редактирования
  • [Средний] Проверка условной (взаимной) доступности полей для редактирования
  • [Средний] Проверка условного отображения полей
  • [Низкий] Проверка порядка обхода элементов управления (в т.ч. полей)
  • [Низкий] Проверка форматов значений полей
  • [Низкий] Проверка граничных значений полей
  • [Низкий] Проверка специфичных значений полей
  • [Высокий] Проверка вычисляемых значений полей
  • [Средний] Проверка состава списочных типов
  • [Высокий] Проверка функциональности кнопок и других активных элементов
  • [Средний] Проверка специальной презентационной логики пользовательского интерфейса формы

понедельник, 1 декабря 2008 г.

Частичное свершение мечты

Не успел я написать требования к нетбуку, как мне его подарили друзья. Спасибо большое! Теперь нужно проверить какие требования исполнились.




















Первоначальное требованиеAcer Aspire 150
Вес не более 1 кг[-] 1.25 кг
Размер по диагонали до 9 дюймов[+] 8.9 дюймов
Разрешение экрана не менее 1024x768[-/+] 1024x600
Операционная система Ubuntu[-/+] Windows He -> Ubuntu
Bluetooth[-] Куплю USB-адаптер
WiFi[+]
WiMAX[-] Куплю USB-адаптер в будущем
USB 2.0[+]
Аналоговый видео-выход на монитор[+]
1 Гб оперативной памяти[+]
256 Гб SSD[-] HDD 120 Гб
Цена до $500[+] 14 990 рублей
Сенсорный экран[-]
(опционально) Второй сенсорный экран вместо клавиатуры[-] Обычная ноутбучная клавиатура и тачпэд

суббота, 15 ноября 2008 г.

Мои требования к нетбуку

Мои требования к нетбуку, который я бы хотел купить:
  • Вес не более 1 кг
  • Размер по диагонали до 9 дюймов
  • Разрешение экрана не менее 1024x768
  • Операционная система Ubuntu
  • Bluetooth
  • WiFi
  • WiMAX
  • USB 2.0
  • Аналоговый видео-выход на монитор
  • 1 Гб оперативной памяти
  • 256 Гб SSD
  • Цена до $500
  • Сенсорный экран
  • (опционально) Второй сенсорный экран вместо клавиатуры

суббота, 8 ноября 2008 г.

Сайт тестировщиков и Web 2.0

Недавно на моем любимом (единственном) сайте по тестированию (www.software-testing.ru) на русском языке (для рускоязычных специалистов) произошел технический сбой и мой постинг на форме безвозвратно пропал. А ведь к нему были интересные ответы, которые я тоже потерял.

Это происшествие заставило задуматься о создании подобного сайта для российских пользователей. Такой сайт должен быть построен на технологиях Web 2.0 и включать:
  • Социальную сеть тестировщиков
  • Персональный и групповой блоггинг
  • Wiki
  • Классический форум
Теперь нужно думать над реализацией. Есть идея использовать для нее открытые сервисы Google (orkut, blogger)...

четверг, 30 октября 2008 г.

Генератор тестовых сценариев

Свершилось! Я прикрутил графический пользовательский интерфейс к генератору тестовых сценариев. Прошу наслаждаться: http://www.dmugtasimov.ru/testgenerator/testgenerator.html.

вторник, 7 октября 2008 г.

Как я Java на сайт устанавливал

Сегодня на меня снизошло озарение! Дело в том, что у меня есть сайт www.dmugtasimov.ru, на котором я разместил свою статью о тестировании сложных логических условий. Кроме статьи на сайте выложен исходный код на Java и собранный jar консольного приложения для генерации тестовых сценариев по сложным условиям в соответствии с алгоритмом изложенном в статье. Длится это уже около года. Реально генератором никто не пользуется, по крайней мере я не знаю таких. Причина видимо в том, что интерфейс приложения мягко говоря не очень удобный. Поэтому я решил прикрутить Web-интерфейс, через который можно будет генерировать тестовые сценарии, а потом их копировать в любые приложения через буфер обмена. А дальше мои приключения.

Web-хостинг, на котором живет www.dmugtasimov.ru я покупаю у компании Караван. Они предоставляют стандартный пакет средств Web-разработки CGI, php, perl, mod_perl, python, но среди них нет поддержки Java. Мой генератор написан на Java, причем сам использует генератор парсеров JavaCC, который специфичен для языка, кроме того код я писал около года назад. В общем мне нужен быстрый эффект, поэтому переписывание готового кода с Java на один из поддерживаемых провайдеров языков был для меня последним вариантом.

Наиболее простым вариантом мне показалась компиляция байт-кода Java в исполняемый код и выполнять его под CGI. Здесь стоит оговориться, что под CGI я никогда не программировал (хотя технология простая и довольно древняя), у провайдера установлен FreeBSD, с которым я никогда не работал и тем более никогда не компилировал собственные исполнимые бинарники. Пришлось учиться...

Во-первых, я установил под VMware FreeBSD 6.2, такую как у провайдера. Пытался устанавливать и обновлять приложения, но со временем обнаружил, что версия 6.2 больше не поддерживается и соответственно новые приложения установить не просто. Пришлось сначала обновить версию до 6.3. Потом я долго разбирался с менеджерами пакетов FreeBSD (точнее читал мануалы). В итоге оказалось, что с FreeBSD 6.3 поставляется gcc 3.x.x, в который не включен компилятор gcj. Последний по заявлениям разработчиков умеет компилировать исходный код и байт код Java в исполняемых код посредством gcc. Обновлять gcc под FreeBSD до 4.x.x я не решился, т.к. не понятно что из этого получится и как это сделать, т.к. для FreeBSD 6.3 версия gcc 3.x.x считается актуальной.

На соседней VMware жила Ubuntu 6.x, поэтому я решил собрать под ней исполнимый бинарник, который потом запущу под FreeBSD 6.x. Получилось, gcc и gcj оказались нужных версий, правда последний пришлось устанавливать, но это не страшно...

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

И вот в один прекрасный момент на меня снизошло озарение: нужно написать Java Applet, которой вызывать из JavaScript и выполнять это все в браузере на стороне клиента. Реализацией этой идеи теперь занимаюсь.

воскресенье, 21 сентября 2008 г.

Request Metrics тоже интересная штука. Я узнал, что существует некий стандарт Application Response Measurement (ARM) для профилирования приложений. В административной консоли можно указывать ARM-агентов. Это было бы замечательной возможностью выполнить задачу. К сожалению, в интернете я не смог найти бесплатных ARM-агентов, поэтому вариант с Request Metrics тоже пришлось временно отложить.

Мои дальнейшие попытки выявить узкое место были связаны с получением trace с Oracle, который используется WebSphere и прикручиванием JProfiler к JVM WebSphere Process Server.
Попытки профилировать WebSphere продолжаются...

Странно, но почему-то хорошие идеи приходят в критических ситуациях быстрее, чем в других. Дело в том, что когда я понял, что с HProf у меня ничего не получается, то только тогда ко мне пришла идея обратиться к своим знакомым за советом. Они все равно не помогли в полной мере, но удивительно то, что я сразу к ним не обратился. Это могло бы съэкономить уйму времени на хождение по неправильным путям.

Вот, что было дальше. У WebSphere имеются встроенные средства "профилирования", помимо HProf, который встроен в JVM. Эти средства можно найти в административной консоли в разделе Monitoring and Tuning: Performance Management Infrastracture (PMI) и Request Metrics. Первое - это какой-то кусок от продукта Tivoli, а второе тоже что-то в ту сторону.

PMI я включил на уровне ALL и как оказалось он умеет профилировать EJB методы, т.е. собирает аггрегированную статистику (среднее и общее время проведенное в методе и количество вызовов для каждого EJB). Только есть одна проблема: не понятно как расшифрововать эту статистику. Дело в том, что профилируется WebSphere Process Server, а это такая бандура: под JVM запущен WebSphere Application Server, под ним WebSphere Process Server, который уже заворачивает нашу прикладную логику в свои системные EJB. Таким образом, наших java-методов, которые мы писали своими собственными руками не видно. Кроме того, PMI не строит дерево вызовов, что еще больше усложняет задачу анализа. В лучшем случае метрики PMI сможет прочитать разработчик, который помнит взаимосвязи вызовов.

Разборки с PMI я отложил до лучших времен.

вторник, 16 сентября 2008 г.

Вчера я потратил целый день для того, чтобы выполнить профилирование WebSphere Process Server в кластерной конфигурации. Сразу скажу, что сделать это не получилось. История следующая.

WebSphere Process Server работает под IBM JVM 1.4.2 под AIX 5.3. JVM имеет встроенный профайлер HProf, который можно включить с помощью параметра -Xrunhprof. Меня интересовало время проведенное сервером в каждом методе, поэтому для профайлера были заданы следующие ключи -Xrunhprof:cpu=samples,file=/tmp/java.hprof,format=b,doe=n. "format=b" обеспечивает бинарный формат файла, что должно снизить дополнительную нагрузку на сервер, вызванную профилированием, "doe=n" обеспечивает запись в файл по мере поступления информации, а не после завершения виртуальной машины. Все эти параметры можно задать в консоли управления Deployment Manager'а.

Результат: сервер начинает стартовать, содержимое указанного файла пополняется, но в какой-то момент обновление логов прекращается и JVM будто замирает. Видимо профайлер становится слишком тяжелым для такого большого приложения как WebSphere Process Server.

Возможно спасение находится в использовании других профайлеров типа JProbe, OptimizeIt и т.д. Однако они в-первых платные, а во-вторых требуют установки на AIX. В идеальном случае хотелось бы найти такой профайлер, для установки которого достаточно прописать в classpath JVM путь к нужному jar-файлу. Вроде как JIP именно такой, однако заявляется, что для его использования нужен JVM 1.5.x, а это не мой случай...
Некоторое время я думал создавать мне персонализированный блог или анонимный. Первый вариант может способствовать повышению собственной популярности, если в нем писать умные вещи. Второй тоже может этому способствовать, но нужно в какой-то момент эффектно сказать: "Знаете вот тот парень, который писал, это я!".

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

Архив блога