пятница, 27 ноября 2009 г.

Немцы, сабмит и проклятие выбора

Задумал заказать сабмит у Руденко… А я тут намедни аккурат переписал аглицкое и испанское описания Aml Pages. То бишь аглицкое переписал сам, а испанское мне пользователь перевел. Уж не знаю, то ли так хорошо новое аглицкое, то ли действительно последние версии удались, да только после летнего провала продаж на Запад, вдруг что-то да заколыхалось.

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

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

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

И почему я не прапорщик? Чего думать? Прыгать надо! © Вот он чертов маркетинг! И тут проклятие выбора – а проектировании софта хоть известно что делать: нет ответа, отложи – чем позже, тем лучше. А здесь что делать? Вот куда теперь бедному крестьянину податься!?!

PS: может стоит заказать перевод описания где-то на стороне… Но не за 100 же американских рублев? Это ни в какие ворота: там текста всего одна страница, 2000 символов. Да и потом, упомянутого немца я знаю, именно он переводил пользовательский интерфейс – и качество более чем впечатляет. А что на стороне напереводят, еще бабка надвое сказала! Вот задачка-то блин возникла: поспешать или дни терять, зато потом, как говорится, “за час долететь”?

вторник, 17 ноября 2009 г.

Все сразу получить невозможно

AVL начал переводы97 Things Every Software Architect Should Know”. Это подборка статей об архитектуре программного обеспечения. Статьи небольшие: одна статья – один аспект, поэтому читается легко, здесь вам не академические мануалы в стиле Фаулера.

Как и обещал AVL, все сразу получить невозможно. Но… Можно даже сказать но! AVL слово держит и новые переводы выдает более чем регулярно: буквально каждые 2-3 дня появляется новый перевод, причем 2-3 дня перерыва это максимум, частенько и по одному переводу за день!

Во-первых, переводы действительно весьма качественного уровня. Что уже само по себе ценно. Во-вторых, может быть “старички” и не так уж много найдут нового в этих статьях – но все же приятнее находить на могучем и богатом. Ну, и в третьих повторение мать учения – иногда не лишним будет и перелистать эти статьи. Отрезвляет, знаете ли…

PS: давно собирался написать про инициативу AVL`а. Но как-то руки все не доходили! А тут аккурат последний перевод “Все сразу сделать невозможно” привел в чуйство от излишнего запала в разработке некоторых новых фич в Aml Pages, ибо нехер нефиг (а то чую, определенный нездоровый троллизм начал меня доводить до ползучего фичеризма).

AVL`у – виват и самое искреннее спасибо! Больше переводов – хороших и разных. В общем, рекомендую всем! Кто знаком с изложенными мыслями – получит удовольствие от перевода и возможности повспоминать боевую молодость. Кто нет – глядишь, и пригодится до того, как все описанное прочувствуете на собственной шкуре.
Полный список переводов см. здесь.

четверг, 12 ноября 2009 г.

Распространение софта студенческим телеграфом

Заходил к гости к родному дедуле: как дела, покалякать о том - о сём, да и вообще. Пока закипал коньячок чаек, меня тут же прислонили к делу - с фигов ли девелопер простаивает – приводили в чувство капризный Microsoft`овский офис.

Пока подогревался чаек, дедуля наворачивал какую-то красоту в своем любимом Excel. Я, собственно, рядом. Ну, и хочешь, не хочешь, и мой взор периодически падает на экран. И вдруг… Оп-па! Вижу до боли знакомый курсор с флагом активного языка. Присматриваюсь, и правда, курсор знакомый, и ведет себя точь в точь как и моя Aml Maple – то бишь в текстовом курсоре в любом месте показывается активный язык ввода (раскладка клавиатуры).

Спрашиваю деда: че мол за нах, че за красота?
Прослушал лекцию (дед-то у меня профессор), что это мол “оно само” и очень удобная штука, показывает мол язык ввода. Ну, думаю, приплыли – здрасти вам конкуренты. Шмыг сюда по винде, шмыг туда – упс, действительно работает моя Мапля, только версия постарее.

А я Маплю отродясь на дедовом компе не ставил. Откуда она там взялась, одному господу богу известно. Ну да у дедули за компом половина студентов перебывала. И т.к. студенты люди все больше молодые, то бишь продвинутые хакеры, то и налаживают ему ноутбук, кто во что горазд. Ну и судя по версии Мапли, по месту установки и неверным настройкам, точно студентова работа. Оптимизаторы, блин :)

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

пятница, 6 ноября 2009 г.

Умное меню

Узрел в одной софтине меню любопытнейшего, да что там любопытнейшего – это называется экстраординарного поведения. Суть в следующем:

  • наблюдаем на экране команды меню. Пока вроде все обычно, не правда ли!?!
  • Щелкаем по командам меню. Опять же, не что-то из ряда вон выходящее. Знаем, плавали!

И вдруг, вуаля! Команды меню реагирует на щелчки мыши, но меню автоматически не закрывается. См. скриншот ниже.

Умное меню: команды реагируют на щелчок, но меню НЕ закрывается автоматом!

Поясню фишку! Это меню для выбора показываемых столбцов в таблице. Стандартное виндовское меню при щелчке по команде с галочкой обычно галочку поставит или уберет, но в любом случае меню закроет автоматом. Но обратите внимание – здесь задача другая: в большинстве случаев нужно за один раз отметить ни один столбец, а несколько. В обычном случае придется открывать меню столько раз, сколько нужно столбцов. Здесь же всё иначе: команды с названиями столбцов реагируют на щелчок, но меню не закрывается! Вы можете продолжать отмечать столбцы. Ну, а изменения в свою очередь вступят в силу, когда вообще уйдем из меню.

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

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

В прошлом посте аккурат писал про отложенные фичи в Aml Pages. Дык вот одна из отложенных фич – категории, аккурат и уперлась в возможность множественного выбора. В прошлых версиях выбор как раз был одиночным, и под него было написано ух какое умное меню: все из себя owner-draw, с иконками, с цветами, шрифтами и все такое. И меню это решало свои задачи выбора на раз, пользователи были вполне довольны. Возможность же выбрать несколько элементов одновременно в проблему пользовательского интерфейса и уперлась. В бизнес-логике никаких проблем с этим нет, все продумано, все написано. Но вот UI… Весь прошлый одиночный выбор был завязан именно на меню, а меню мульти-выбора не дает. Так что оставалось перепроектировать пользовательский интерфейс, причем достаточно объемную его часть. А это задачка не простая и не быстрая – поведение-то поменяется напрочь, надо полностью переанализировать требования пользователя. На этом-то все и застряло.

А тут на тебе такое-растакое меню :) И если удастся его сделать – то не придется переписывать мерено-немеренно пользовательского интерфейса, а просто доточить уже имеющееся до ума, тем более, что этим меню пользователям как раз довольны. Тут только два варианта: или все же сделать аналог, или разочароваться в себе и запить с тоски, причем надолго.

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

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

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

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

среда, 4 ноября 2009 г.

Одна фича – один релиз!

Уф, дело к ночи – готовь калачи! Сбылась мечта девелопера – русский релиз новой версии Aml Pages упал на сайт! А то, чуялось мне всё, мерещилось, что уже попер “ползучий фичеризм”. А боюсь я его пуще огня и багов кромешных. Нет тюрьмы, хуже чем в своей голове. А П.Ф. это не проста тюрьма, это прям Алькатрасс эдакий :)

Очень давно наблюдаю один и тот же эффект. Чем больше впихивается фич в одну версию, тем тяжелее релиз. Мозги начинают разбрасываться вразнобой, и вместо того чтобы сосредоточить все силы на вылизывании кода, начинаешь кидаться из стороны в сторону. А в результате – один большой комбайн, который делает многое. И всё это “многое” одинаково херово нехорошо.

  • Фича одна и только одна: сосредотачиваемся на единственной фиче и уж делаем ее – так делаем. Пусть не всем нужна именно эта фича, но кому нужна – получают ее в доведенном до ума виде.
  • Use-case подход: сосредоточение на единственной фиче позволяет максимально использовать use-case аналитику. Больше внимания тратим не на херь техническую нюансы решения, а на use-case анализ. Продумываем и делаем до конца пусть один, но вполне четкий сценарий использования софтины. И клиент получает не набор бессвязных приблуд, а некоторый, вполне конкретный способ решения своих вполне конкретных задач (следует читать: “некоторый, вполне конкретный стимул поделиться денюжками”).
    К слову говоря, вот именно сейчас отложил пару наиклевейших идей, только потому, что никак толком не вырисовывалась ясность в вопросе: как и зачем это будет использоваться юзерами. А главное: пока мужественно забил на эти клевые придумки – а это было непросто, потому как клёвые - и в голове идеи доточились, и варианты решений появись. А рванул бы как на сто метров – точно делов бы наворотил.
  • Быстрый релиз равно быстрый feedback: при быстром релизе пользователи раньше получают финальную версию. Все просто: несомненно бету качают значительно меньше, чем финальную версию. Поток возрастет – возрастет и feedback. А все таки сотни и тысячи пользователей наверняка смогут предложить любопытных мыслей больше, чем десятки хоть и маститых бета-тестеров.
  • Быстрый релиз равно быстрый баг-фикс: фичи фичами, но от багфикса в новой версии никуда не деться. А значит, старинные пользователи получат и более быстрый баг-фикс. Чем плохо?
  • Огонь и движение: ударим новой версией по бездорожью и конкурентам. Пусть версия и не революционная, но все равно – “а шоб не дремали”. Пока новая версия “прикрывает нас огнем”, можно спокойно “окопаться” и поразмышлять над будущим движением вперед.
  • Как так? Нарушаем-с? если не отметить, то все написанное будет полуправдой (что есть “наглая ложь”). Сколько раз нарушал это правило быстрого релиза, вот ровно столько раз в жопе ней самой и сидел. Ни разочка меня расплата не миновала. Неспроста же!?!

Один релиз – один день: это еще одно сугубо эмпирическое правило. Правда, оно уже и не только, да и не столько к самой разработке как таковой относится, поэтому о нем как-нибудь отдельно.

P.S. просто не могу молчать: убить мало этот пилять Сбербанк! С кризисом они мать-иво борются! Платеж от 29 июля… Знаете когда деньги пришли? Седьмого сентября! Нормально, да!?!
Ладно, продолжаем разговор – “Адские клоуны. Часть вторая”. Платеж от 5 октября, сегодня 4-ое ноября. Как вы думаете, пришли денюжки!?! Может убрать их из способов платежей нах!?!