воскресенье, 21 декабря 2008 г.
Инфляция в 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,28 | 39,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 и включать:
Это происшествие заставило задуматься о создании подобного сайта для российских пользователей. Такой сайт должен быть построен на технологиях Web 2.0 и включать:
- Социальную сеть тестировщиков
- Персональный и групповой блоггинг
- Wiki
- Классический форум
четверг, 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 и выполнять это все в браузере на стороне клиента. Реализацией этой идеи теперь занимаюсь.
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.
Мои дальнейшие попытки выявить узкое место были связаны с получением 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 я отложил до лучших времен.
Странно, но почему-то хорошие идеи приходят в критических ситуациях быстрее, чем в других. Дело в том, что когда я понял, что с 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, а это не мой случай...
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, а это не мой случай...
Некоторое время я думал создавать мне персонализированный блог или анонимный. Первый вариант может способствовать повышению собственной популярности, если в нем писать умные вещи. Второй тоже может этому способствовать, но нужно в какой-то момент эффектно сказать: "Знаете вот тот парень, который писал, это я!".
Я решил сделать блог персонализированным. Теперь у меня проблема: мне нужно как-то определить какую информацию я могу разместить в блоге, а какую нет. Если учесть, что большую часть времени я провожу на работе и занимаюсь развитием нового направления бизнеса в компании, то любая информация, выложенная в блог, может стать полезной конкурентам.
Я решил сделать блог персонализированным. Теперь у меня проблема: мне нужно как-то определить какую информацию я могу разместить в блоге, а какую нет. Если учесть, что большую часть времени я провожу на работе и занимаюсь развитием нового направления бизнеса в компании, то любая информация, выложенная в блог, может стать полезной конкурентам.
Подписаться на:
Сообщения (Atom)