воскресенье, 31 мая 2009 г.

32-ое мая…

Сегодня как-нибудь без программирования. Тут аккурат  на рутьюбе подвернулась давно потерянная ссылка:

Ролик хоть и старинный, но философские мысли навевающий. А завтра между прочим 32-ое мая, которое теперь пройдет и в еще более узкой компании. Как-то они от нас слишком быстро уходят: Григорий Горин… Александр Абдулов… Теперь вот Олег Янковский… Грустно это, господа, грустно!

суббота, 23 мая 2009 г.

Юзабилити. Сплиттеры

Сколько смотрю на разные приложения, простые ли сложные, известные всемирно ли, или из под пера “студента”, повседневные ли аль раз в сто лет юзаемые и всё не перестаю дивиться “продуманности” их юзабилити. Возьмем, скажем, перетаскиваемый сплиттер, который разделяет экран на части.

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

Вот взгляните-ка на скрин rss-вьювера Оперы с моими пометками, а разъяснения к ним ниже…

OperaSpliiter

1. Таскать горизонтальный сплиттер Оперы можно только за верхнюю тонюсенькую линию. Хрена с два в нее мышью попасть у вас получиться… Уверяю. Браво, Опера! Спасибо Норвегия!

2. При этом за нижнюю линию таскать сплиттер нельзя. Почему, [блин] скажите мне? Чем она хуже-то!?! Ну да, ну да… Визуально она немного, но отличается. Но видно это, только если приглядеться. Так почему нужно ломать глаза и вглядываться в эти различия, тем более что такие различия в поведении и вовсе не нужны? Достаточно разрешить таскать и за нижнюю линию и проблема исчезнет. Визуально объекты очень похожи, так почему они функционируют по разному?

3. И наконец, за пустое место на сплиттере перетаскивать и вовсе нельзя. Почему? Пользователь перетаскивает этот сплиттер по паре-тройке раз в минуту. Это очень частое действие, т.к. оно отвечает за компоновку рабочей области пользователя. Регулярно пользователю нужен полный обзор верхнего списка разделов, а тут вдруг ему понадобился максимально развернутый текст статьи для прочтения по-человечески.
Так почему же нельзя таскать за пустое место такой огромный, между прочим, сплиттер? Ведь перетаскиваемость – это его основная обязанность, основное назначение…

Зато можно выделить любой текст в панели сплиттера и скопировать его. ОК! Ну ладно, допустим иногда нужно и скопировать название статьи. Но еще можно скопировать и дату статьи в сплиттере. Хотя лучше бы за это место перетаскивать. Как часто бывает нужно скопировать дату, как часто это вообще может понадобиться? Тем более, что вся эта информация доступна для копирования и из других мест.

Итак, подытожим. Сплиттер предоставляет – что-ты, что-ты – малокомунахернужные дополнительные возможности по копированию. Но из-за них же из рук вон плохо выполняет свою главную и основную функцию: перетаскиваемость.
И это-то в области экрана, где хозяин должен быть пользователь? Только пользователь знает, как удобнее расположить данные в рабочей области именно здесь и сейчас. И такое дерьмо неудобство в перетаскивании, которым пользуешься по сто раз на дню!?!

Понимаю, что сплиттер на самом деле забит readonly-контролами редактирования текста, за которые фиг потаскаешь. Но даже и в этом случае очень даже можно “поймать” левый клик мышью, определить над текстом ли кликнули, и решать что делать. Над текстом – начали выделение. Пустое место – отфорвардить управление сплиттеру и начинать перетаскивание… Это ей-богу не сложно кодится!

Рискну дать несколько простых рекомендаций, но имхо они здесь и так очевидны. Если в двух словах, то примерно так:

  1. Рабочая область приложения (область данных) – это место, где должен хозяйничать пользователь.  Он, и только он, может определить как надо.
    Тезис прост: это данные. Причем его – пользователя – данные. Ему действительно виднее, что и как. Просто-напросто позвольте пользователю всё эти “что и как” выполнять. Предоставьте ему для этого средства, и чтоб средства работали, а не вызывали матные восклицания.
  2. Позвольте ему “это” делать просто. Постарайтесь соблюдать единство поведения.
    В нашем примере: раз можно таскать за верхнюю линию сплиттера, так пусть можно будет и за нижнюю.
  3. Есть основные функции элемента управления, в данном примере это перетаскиваемость сплиттера. А есть второстепенные. Главность функции определяется частотой ее применения пользователем. Пусть главные функции будут удобными, пусть будут простыми в использовании.
    А вот второстепенные пофиг или почти пофиг. Даже если они сделаны криво, даже если их вообще нет – на то они и второстепенные – о них мало кто вспомнит. Да и тем, кто вспомнит особо мешать не будет, т.к. второстепенные именно по частоте применения.
    В нашем примере: если нужно скопировать название поста, то уж как-нибудь да выкрутимся (набьем ручками, скопируем из сети, пройдя по ссылке на статью). Если кратче: этот копируемый текст вообще можно выкинуть. Пусть сплиттер будет именно сплиттером, но удобным! А вот копирование – это всё рюшечки. Можно и нужно использовать область без текста именно для перетаскивания, т.к. это функция – основная.

Как в том анекдоте про ферму: “бантиков на кормушках пока не надо, просто навоз сначала уберите” :). Попробуйте соблюдать эти простые, только основные правила. И будет вам “щастье”. Ну или уж не так сильно их нарушайте, чтоб не прям “через двойную сплошную да на глазах у гаишника”.
"Бьют, не за то что пьют, а за то что попадаются". Так не попадайтесь же, и уже одно это изменит отношение пользователя к продукту.

PS: вот вам бабушка и юрьев день freeware. А главное, такие “ляпы” в Опере практически на каждом шагу. Что ж, господа норвеги, такой подход к делу просто не может не радовать меня. Пока вы выдаете такую несусветную хирню корявость интерфейса, я без куска хлеба точно не останусь.

пятница, 22 мая 2009 г.

Это сладкое слово “халява”

Пробежался после трудового дня по Гугловскому поиску по блогам… А гугловский поиск по блогам иногда ну “стока всиго интереснава выдаёт” , что восклицание “эка!?!” сотрясает воздух само собой, рефлекторно.
Искал я там кое-что конкретное, ну да не об том речь. А за компанию проверил и любимые софтинки… И оба-на! На Aml Maple выложен кряк и кейген!

Отлично просто! Правда за исключением одного, наверное незначительного, логического “И”.
Мапля всё время своего существования, во всех реинкарнациях, дистрибутивах, во все времена и иже с ними всегда была freeware и только. И никакого даже и намека на шаровару.

Вторую часть сего удивительнейшего логического условия “и” можно описать 2-мя ссылками на virustotal.com: ссылка раз и ссылка два-с.
Ссылки ведут на отчеты более 40 антивирусов, и показывают, что оные антивирусы думают про эти якобы кейгены да кряки для абсолютно бесплатной Мапли.

А ведь всегда найдутся пользователи, которые только увидев слова “кряк”, “кейген”, “сериал” и.т.д., и скачают, и запустят да причем не глядя. И не важно, что программа вообще-то бесплатна.

М-да… Как говорится, “дураков на Руси еще лет на 100 вперед припасено”. И видимо не только на Руси…

воскресенье, 17 мая 2009 г.

Статья? Еще статья!

Пусть вместо эпиграфа будет анекдот.
Вечер. Темнеет. В каморке папы Карло полумрак. В камине догорает Буратино. В углу валяется зверски изнасилованная Мальвина.
В кресле-качалке покачивается Карабас-Барабас. И приговаривает: “Нет, ну это просто праздник какой-то, а не жизнь!” :)

А теперь можно и по делу. В предыдущем посте, писал о том, как меня приятно удивляет внимание занятых и лицензионных пользователей – человек уже получивший лицензию, и не имеющий ни малейшей материальной мотивации продолжать что-то сочинять про Aml Pages, тем не менее имеет и желание, и находит время написать что-то еще…

А  сегодня утром в почту сваливается Google Alert со ссылкой на статью Alberto Esmeraldo. Привычно кликаю по ссылке, полагая что это ссылка на статью, за которую с удовольствием отдал ему бесплатную регистрацию. В общем, кликаю скорее на автомате, чтобы просто убедиться что Google прислал верную ссылку.

Утро, конечно. Спросони всё. Но кофейку я уже навернул – а что ж вы хотели, ну какой, скажите мне, нафиг разработчик без кофейку?
И у-у-упс! Что-то не то… Рисунки какие-то другие, да и текст иной. Присматриваюсь внимательно – оба-на – да это новая статья про Aml Pages всё того же Alberto Esmeralda. И в статье на этот раз копнули поглубже, вполне детально описаны некоторые более продвинутые фичи.

Странный народ, эти буржуинцы. А ведь мог бы и не писать, а мог бы тех-поддержке мозг выесть вопросами про описанные им фичи. Ан нет! Во всем сам разобрался да еще и написал.
Не-е-е, ну это просто праздник какой-то!

Регистрация за статью или Ru vs En!?!

На днях прислали новую статью на английском языке об Aml Pages и скромненько так, всё больше с вопросительными интонациями спросили “а нельзя ли за это получить бесплатную регистрацию?”.

Дык, ёпырш – НиВапрос (©)! Причем еще с официальными спасибками и самыми искренними улыбками! Статья, кстати, ну не ахти прям что – обзор только более-менее основных возможностей органайзера Aml Pages. Ну и ладно – “а она мне нравицца“ :). Ну, некогда мне писать статьи про Aml Pages, да еще и на английском. Сказано – сделано! И бесплатный ключ в течении пары минут уносится е-почтой автору статьи Alberto Esmeralda!

Но вот какое дело… Про регистрацию Aml Pages за статью, обзор в блоге в английской части сайта вообще-то было объявлено, прямо скажем, ну совсем недавно – и нате, готов результат. И совсем другое дело наши блин соотечественники! В русской части сайта объява про халяву за статью висит уже давным-давно, ну точно не первый год! И что же вы думаете? “А ччо? А ниччо!” (©). Единственную статью на русском из наших же пользователей в свое время написал только Александр Тим! Причем написал просто так, от души, мне в подарок, отказавшись при этом от бесплатной регистрации и приобретя лицензию за свои кровные! А между прочим статья куда как профессиональнее и интереснее! И всё. С концами. Как отрезало!

Вот я никак не могу понять менталитета наших соотечественников. Есть ну очень старинные пользователи (не будем показывать пальцем), которые пользуются моей программой далеко не первый, не второй, и даже не третий год. Пользуются практически каждый день, не брезгуют заходить в форум, обсуждать, предлагать, просить фичи. Но при этом будут до окончательной усрачки морковкиного заговения продолжать пользоваться погаными кряками, которые ну просто стабильно содержат какой-либо да троянчик. Не голословно говорю –  достаточно просто дизамблернуть кряк, и убедиться в этом воочию. Более того, все эти кряки все равно в той или иной степени кривые, ломают программу по любому не до конца.

Вот мне и непонятно, не могу взять в толк, ну не лезет мне в голову ни с какой стороны: почему человек пользующийся программой не первый год, знающий ее вдоль и поперек, исписавший на форуме уже столько постов, что далеко не одну статью в блоге можно было наваять – все равно упорно будет пользоваться краденой версией? И это при том, что инфы о программе на русском как грязи просто: одних только статей в новостной рассылки больше сотни. И далеко не всё это анонсы – есть много и просто тематических статей. Уж молчу, что почти в каждом выпуске есть рубрика “вопрос-ответ”, в которой рассказывается о той или иной хитрости, нюансе использования. Уж и так намекал, и сяк, мол ну напишите почти то же самое, но своими словами (в копи-пасте просто нет смысла), повесьте хоть в ЖЖ, хоть где, я только рад буду: и вроде как не в накладе, и пользователь “оключёван”.

Не-а! Таки фиг! Почему так? Неужели так сложно написать 3-4 абзаца про до боли знакомую программу, причем в стиле сочинения “как я провел лето”? Видимо для некоторых людей все-таки сложно.

PS: меня всегда поражало, что масса более чем занятых людей, даже купив лицензию, если им нравится программа находят время что-то о ней написать, помочь с переводом пользовательского интерфейса (как к примеру, Татьяна Тымчук! Тань спасибо тебе еще раз – без тебя не знаю что б и делал. Если б не твоя помощь осенью – я б до сих в отладчике ковырялся бы:), простенький ролик снять про софтинку. А есть “пиплы” – и слова-то другого не подберешь – которые изведя туеву хучу времени, собственных нервов и сил будут стремится к перманентной халяве. Я, конечно, понимаю, что халява у нас в крови. Но поймите же вы наконец, не бывает бесплатно – бывает за чужой счет. Причем что развеселого, что в данным случае как раз за ваш счет, причем значительно более внушительный, чем стоимость лицензии или время, потраченное на пару-другую абзацев в блоге.

Доколе? Давайте что ли жить дружно!?! (©) Интересы-то, более чем пересекаются!

четверг, 14 мая 2009 г.

Людская “многозадачность” vs “многопакетность”

И эх, а весна-то похоже закончилась. И солнышко пропало, и температура к прогулкам не располагает... Уж не знаю, это природа чувствует разработку софта, или наоборот разработка природу!?! Но после выхода очередной версии, несмотря на все “да здрям один месяц – одна версия”, весь прогресс как-то застопорился. Похоже профессор Преображенский прав: “разруха не в клозетах, разруха в головах”. И вроде и требования написаны, и план есть, и даже прототипы набросаны… Ан нет! Не катит что-то, не складывается – чувствуется что сыровато решение, не хочется с ним спешить.

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

У Джоэла Сполски есть отличное рассуждение на предмет применимости многозадачности к людям. Суть его сводится к тому, что человеки – в отличие от компьютеров – медленно и довольно долго переключаются между разными задачами, потому что нужно сосредоточиться, “въехать”, “войти в зону”. Что-ж, мысль бесспорная. Действительно сложно постоянно переключаться между разными задачами. Однако это мое “туда-сюда-обратно” продемонстрировало и вполне весомые преимущества. Что же, Джоэл не прав или “найди один отличий”?

У меня – помимо Преображенского – есть еще один очень хорошо знакомый мне “прохфессор”, причем вполне действующий, а не литературный. И как любой профессор, он без конца читает лекции, принимает экзамены, и все остальное, что профессорам полагается. И, конечно же, пишет, пишет и пишет – статьи, учебники, книги и.т.д.

У него есть один любопытный прием: после написания статьи, прежде чем ее редактировать и тем более публиковать, статья отправляется “в лёжку” – то бишь лежит безо всякого внимания несколько дней. И только по прошествии этого времени, начинается редакция, уже со свежим взглядом на написанное.

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

Сдается мне, все эти же аспекты точно также распространяются и на код. Стоит отправить код “в лёжку” и вернуться к нему спустя некоторое время, как сразу замечаешь массу шероховатостей, ошибок, “ляпов” и тому подобной шелухи.

Так что же такое в разработке программного обеспечения эта самая многозадачность применительно к людям? Если мы занимаемся разными задачами в течении часа это уже многозадачность или нет? А если в течении дня? А если недели? Наверное, все зависит от того, сколько заниматься самой задачей, а сколько переключаться на задачу, “въезжать” в нее? Если “въезд” в задачу составляет, ну скажем, 15 минут – то занимаясь 2-мя задачами в течении часа, мы тратим примерно одинаковое время и на переключение, и на решение задачи. Неэффективно, ёпырш однако!

Ну, а если в течении дня? 2 раза по 15 минут на переключение = полчаса. Итого: стандартный рабочий день 8 часов минус полчаса на 2 переключения = 7 с половиной часов полезной работы. Такая ли это уж многозадачность? Не похоже ли это больше на пакетную обработку – когда продолжительное время тратиться сначала на одну задачу, а потом на другую.

Самое интересное, что по ходу этого ”многопакетного” переключения между проектами за последние 3 дня в Мапле сделано куда больше, чем за последние два месяца нытья “как не хочется делать”. И главное, ступор в первом проекте за эти дни тоже как-то рассосался. Взглянув на первый, понял,что мучился не пойми над чем. Есть понятные требования, направления развития, есть очевидные решения и есть куча всякой шелухи, которая подождет (а там глядишь и похерится, ибо выяснится что не нафиг не нужная).
Сдается мне, что просто-напросто первый проект в момент ступора был – по примеру того профессора – отправлен “в лежку”. И с разработкой софта это точно также сработало , как и в эпистолярном жанре! А так ли эти жанры должны отличаться? И первое, и второе – дело творческое... Так что, пожалуй, “многопакетность в жисть!”.

И напоследок пара ссылок по теме.
Упомянутая у Джоэла Сполски многозадачность опубликована и на русском: “Джоэл о программировании” и собственно продолжение “Джоэл: и снова о программировании”.

Хотя некоторые из этих статей есть и в онлайн-варианте в его же блоге, и в CHM-формате здесь. Но и там, и там только некоторые статьи, так что взглянуть можно, но бумажный вариант полнее – must have.

понедельник, 4 мая 2009 г.

Windows Live Writer 2009

Приятная новость.

Выпущена новая версия Windows Live Writer 2009 в чем, собственно, этот пост уже и пишется. 10 мин – полет нормальный. Среди прочих вкусностей добавлена проверка русской орфографии, Мелочь, конечно, но ой как порою нужная. Недаром, я в свое время намаялся с разработкой этой самой орфографии. Ну да это тема для отдельного поста, да и то, скорость ее публикации зависит от желания аудитории.

Юзабилити от Microsoft!?!

В MSDN Magazine пишут о юзабилити... Докатились! И такая-то тема да в microsoft`овском-то журнале… Срали, срали и упали не знаю как такое сочетание и называть-то?!? Эка кризис-то на людёв действует :)

А вот скоро выйдет знаменитая “About Face” Алана Купера (Alan Cooper), но теперь и на русском “Об интерфейсе” – вот это действительно, имхо, ожидаемое событие.
Впрочем, на русском у Купера уже выходила знаменитая “Психбольница в руках пациентов”. Тем, кто с этим концептуальным чтивом знаком – представлять не надо. Остальным, очень рекомендую взглянуть на содержание – это действительно офигенная книга, несмотря на э-э-э-э… название.
Вы только вникните в мысль об особенностях программистского мышления: обычный человек всегда и в первую очередь просчитывает наиболее вероятные ситуации, а программист – первым делом крайние случаи. Ничего такого не замечали за собой?
Сначала проверим что будет, если в графу “возраст” написать ноль, а только потом все остальные числа. (да, да! мы такие :)