X
Поиск Почта Календарь Деньги Мой Круг Фотки Народ Открытки
Войти

«Почему тошнит от юзабилити бесплатного ПО» 2

Ранее давал ссылки на замечательные статьи Метью Томаса о юзабилити бесплатного ПО. А теперь он возобновил ведение блога и написал новую версию этой статьи: Why Free Software has poor usability, and how to improve it. И снова автор очень точно подмечает проблемы в юзабилити и дизайне бесплатного ПО и их причины, а также, в этот раз, предлагает решения.
Перевод статьи выполнен энтузиастами на площадке для коллективных переводов translated.by.

27.10.2008


Установка Bugzilla на Денвер-3

Перед чтением заметки проверьте дату её написания — может она давно устарела, представленная информация не соответствует действительности, а вы просто теряете время.


Решил заценить систему отслеживания ошибок Bugzilla (статья википедии).
Естественно, ставил я её на имеющийся Денвер третьей версии. В процессе установки столкнулся с рядом трудностей, а по результату написал вот этот небольшой мануал.

Берем багзиллу версии 3.1.3.  Она написана на Perl, поэтому сначала на Денвер нужно установить пакет Perl (это ActiveState Perl версии 5.8.8).

Багзилла распаковываем в каталог сайта

<denwer>\home\<site>\www\

Свежеустановленный Perl не содержит кучу нужных багзилле модулей, поэтому выполняем в её каталоге в командной строке:

perl checksetup.pl --check-modules

(perl здесь и далее это <denwer>\usr\local\perl\bin\perl.exe)
и запоминаем (или записываем) отсутствующие модули из обязательных, если правильно помню, это TimeDate, PathTools, Template-Toolkit, Email-Send, Email-MIME-Modifier. Кроме них нужен DBD-mysql — я рассматриваю установку на MySQL. Bugzilla может также работать с PostgreSQL и для перла тогда нужен модуль DBD-Pg, а сам сервер для Денвера ставится отдельным пакетом (вот этим). Опциональные модули на ваше усмотрение.
Приступаем к установке. Запускаем менеджер пакетов:

<denver>\usr\local\perl\bin\ppm

идем в настройки (Ctrl+P), на вкладке «Areas» проверяем место, куда будут помещены скаченные пакеты. Если ppm запущен как я написал выше, т.е. не из каталога виртуально диска, то это должен быть <denver>/usr/local/perl/lib (колонка @INC), а не /usr/local/perl/lib.
На вкладке «Repositories» добавляем репозиторий с адресом: http://ppm.tcool.org/archives/package.xml — именно там лежат нужные нам пакеты.
После синхронизации с хранилищем нужно отыскать нужные пакеты в списке (есть фильтр), отметить их для загрузки, и загрузить. Также обновите модуль Encode — поставляемый с Perl, какой-то неполный/неработающий.

В Денвере в MySQL по умолчанию отключен механизм InnoDB — нужно его включить. Открываем файл <denwer>\usr\local\mysql5\my.cnf, строка 80 (если раньше ничего не правилось):

skip-innodb

закомментируем её:

#skip-innodb

если сервер запущен, перезагрузим его.

Вернемся в каталог багзиллы и создадим файл .htaccess такого содержания:

Options +Indexes +ExecCGI
DirectoryIndex index.cgi

т.е. разрешаем серверу выполнять скрипты из www каталога (по умолчанию запрещено) и указываем дефолтный файл.

Даем команду

perl checksetup.pl

ага, уже без параметров. Всё должно пройти гладко. В каталоге будет создан файл localconfig. Нас интересуют переменные $db_host (localhost), $db_name, $db_user, $db_pass (для PostgreSQL базы ещё и $db_driver). Остальные — не очень.

В базе данных нужно создать базу (схему) с именем из $db_name, т.е. «bugs»; создать пользоватлеля $db_user, т.е. «bugs», дать ему все возможные права на базу $db_name. Пароль этого пользователя указать в $db_pass в localconfig (как для базы, так и для пользователя можно задать другие имена и указать их в соответствующих переменных).
Для манипуляций с MySQL я использовал PhpMyAdmin.

Еще раз выполняем

perl checksetup.pl

на этот раз задаётся ряд вопросов, в частности e-mail и пароль админа (там вход по и-мейлу), их надо запомнить (или записать). Всё, установка завершена. Можно, заходить, логиниться, пользоваться.

Вот и всё. А о самой багзилле мне как-то нечего сказать. Не понравилась.


5.04.2008


WinHex Script

Неплохой в целом шестнадцатеричный редактор WinHex, начиная с версии 13.1 (а текущая — 14.7) не позволяет вводить кириллический текст, т.е. при вводе в русской раскладке получается что-то типа «-B> >A<KA;5==K9 B5:AB.» Нехитрыми вычислениями выясняется что к введённому мусору нужно добавить 176, чтобы исправить положение. Сделать это можно с помощью инструмента «Modify Data» (Ctrl+T): Add 176 dec (B0 hex), тип данных Integer 8 bit. «Ё» и «ё» — выбиваются из общего ряда — они в кодовой таблице отдельно стоят.

 

С целью автоматизировать коррекцию, а также, чтобы ознакомиться со встроенным языком сценариев WinHex, написал скрипт:

// Скрипт исправляет коряво вводимые в WinHex'е кириллические символы.
// Работает от текущей позиции курсора до первого нулевого символа.
// В свою очередь скрипт ошибочно переводит в кириллические символы
// знаки препинания и часть латинских символов.

ExitIfNoFilesOpen
{
Label ContinueHere
Read badchar 1
Move -1

IfEqual badchar 0
ExitLoop
EndIf

IfEqual badchar 0x51
Write "ё"
JumpTo ContinueHere
EndIf

IfEqual badchar 0x01
Write "Ё"
JumpTo ContinueHere
EndIf

IfGreater badchar 0x4F
Move 1
JumpTo ContinueHere
EndIf

IfGreater badchar 0x0F
Write (badchar+176)
EndIf
}[unlimited]

Release badchar

Скрипт нужно сохранить в папке программы с именем *.whs, вызывается он из «Start Center» (Enter). Скрипт работает от текущей позиции до первого встреченного нулевого символа. Что обычно и требуется. При работе скрипта теряются знаки препинания и, частично, некириллические символы в тексте. Что неприятно, но никакой возможности это обойти нет.

 

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

 

И, не смотря на все эти [вышеописанные и многие другие] косяки, это по-моему лучший Hex-редактор, в том смысле, что лучше него я ничего не видел. 


27.01.2008


Обновлён мега-калькулятор

Мега-калькулятор достиг версии 4.8. Конкретно в ней интерфейс был сделан вебдванольным: были убраны рамки у полей ввода. Чуть раньше в истории мега-калькулятора были некоторые метания с добавлением новых настроек, но они были преодолены, опций стало меньше, чем было до того. Добавлены функции перевода между системами счисления (новые dec и bin, см. справку) и форматирования результата fX():

f4(bin("&hFFA4"))=1111 1111 1010 0100
f3(bin(&o77654))=111 111 110 101 100
f2(hex(dec("1111000011001111")))=F0 CF
fmt(12345,1)=1 2 3 4 5 

fmt() — низкоуровневая :) функция, ей передаётся форматируемое выражение и число, показывающее по сколько знаков её выводить.

 

За обновлениями калькулятора можно следить оперативно: у сайта есть RSS

 

Случайно заметил, что можно считать такие выражения:

date + time + 1/24/60*10

где 1 — значит одни сутки, соответственно 1/24 — один час, 1/24/60 — одна минута. Результатом в примере будет текущее ДатаВремя + 10 секунд.

 

Разработка продолжается. Пожелания принимаются.


15.01.2008


TechNet Magazine

Наконец-то вышел январский TechNet Magazine. С опозданием недели в две. А русский MSDN Magazine стал доступен вовремя, ещё в том году.

 

К слову, в ноябрьском TechNet в статье Написание регулярных выражений  Дон Джонс (Don Jones) допускает серьёзную ошибку, называя «?» подстановочным знаком. По его терминологии, это знак повторения (то же что и {0,1}).

Прикольно, что приводимый пример действительно верен:

"Don" –match "D?n" (True) 

Но "D?n" находит только "n". Можно убедиться, проверив содержимое переменной $matches.


10.01.2008


Updates

Обновил чудо-мега-калькулятор (до версии 4.4). Теперь все кнопки и поля получают фокус по клавише Tab. Считать стало удобнее.

10.09.2007


Мифы

На днях на одном форуме развенчал миф о времени создания файлов. Повторю здесь.

Миф: «время создания файла на томе FAT содержит только чётные секунды».

В FAT для хранения дат/времён используется четырёхбайтная структура MS-DOS Date & Time. В этой структуре для хранения секунд отводится только 5 бит (возможные значения 0-31). Поэтому в ней сохраняется значение секунд делённое на два.

Но, в структуре файловой записи FAT есть дополнительное однобайтное поле (реально содержит значения 0-199), за счёт которого время создания файла хранится с точностью до сотых долей секунд. Для уточнения времени изменения файла тагого же поля не предусмотрено, так что формулировка «время модификации файла на томе FAT содержит только чётные секунды» не будет мифом.

К слову, для последнего доступа на FAT сохраняется только дата.


Сегодня продолжу развенчивать мифы.

Миф: «в Windows нельзя создать файл или папку под названием CON».

А также PRN, NUL и другие. Про прозвища — это не миф, это глупость.
Создать и удалить каталог с зарезервированным именем можно используя следующую запись:
mkdir con.\
rmdir con.\
Или используя UNC путь:
mkdir \\server\c:\prn
Для локального компьютера:
mkdir \\?\c:\nul
mkdir \\.\c:\nul
Вот, примерно, так.

20.08.2007


Мега-новость

[NhT-TeaM.RU] снова в строю! С потрясающим дизайном и эксклюзивным контентом.

20.08.2007


Книги

Вчера отхватил:

Иван Скляров «Головоломки для хакера»
в магазине «Литера».
Книга автора и ведущего рубрики «X-Puzzle» журнала «][акер» по её же материалам.

Александр Дюков «За что сражались советские люди»
в OZ.by.
Книга историка Александра Дюкова рассказывающая о геноциде, которому подверглись народы Советского Союза в годы Великой Отечественной войны. «Книга, которую должен прочитать каждый!» Рекомендую.
Кстати, указанный магазин в книги вкладывает фирменную закладку с местом для заметок. Порадовало.

Кроме того, третьего дня шёл мимо книжного, что на Толбухина 4. Думаю, а вдруг там есть «Отладка приложений для Microsoft .NET и Microsoft Windows» Джона Роббинса которую давно хочу заполучить. Зашёл. Не было. Зато была «Искусство программирования для UNIX» Эрика Реймонда. Со скидкой. Да и Джоэл Спольски о ней хорошо отозвался. Не смог пройти мимо.

18.08.2007


Что такое PowerShell

Хорошая статья на тему «что такое Windows PowerShell»:

Где подставки для стаканов?

Цитаты:

Windows PowerShell™ представляет собой новую технологию написания сценариев и работы с командами, разработанную корпорацией Майкрософт.
Поскольку обратная совместимость очень важна, то Windows PowerShell не могла бы считаться новой технологией, если бы не обладала также возможностями языка VBScript.
Если все, что нужно, это управление процессами и службами, то нет никакой необходимости изучать Windows PowerShell. Как говорится, не нужно чинить то, что работает. (У нас эта поговорка звучит так: "Люди, не вздумайте это чинить, а то оно обязательно сломается.") Преимущество среды Windows PowerShell проявляется в ситуациях, когда вы можете с ее помощью делать то, что не позволяет сделать язык VBScript.

15.08.2007


«Почему тошнит от юзабилити бесплатного ПО»

В книге Джоэла Спольски «Джоэл о программировании» упоминается статья Томаса Мэттью «Почему тошнит от юзабилити бесплатного ПО». Что в оригинале: Matthew, Thomas «Why Free Software Usability Tends to Suck». Все ссылки на эту статью ведут на указанный адрес, по которому давно ничего нет.

Как быть в таком случае? Нужно незамедлительно проследовать в ВебАрхив.

И, действительно, там есть и искомая статья, и её продолжение:

Why Free Software usability tends to suck
Why Free Software usability tends to suck even more

Статьи написаны в 2002 году (то есть пять лет назад), а как-будто вчера.


29.07.2007


Пятница, 27

Сегодня — День системного администратора.

Всех причастных — с праздником!


27.07.2007