пятница, 7 октября 2016 г.

Хозяйке на заметку : многопоточность.

Пейте, курите, занимайтесь любовью… Но ни в коем случае никакой многопоточности!

Note Bene: особливо на этапе проектирования!
Ярлыки для себя на будущее: Aml Pages, асинхронный импорт рисунков веб-страниц, многопоточный причем, мудренная синхронизация… Ни-и-и-ичче просто не понадобилось.

воскресенье, 11 октября 2015 г.

Бурленье началось...

По ссылке пост на КЫВТ про особенности локализации декстопных приложений. Рекомендую-с.

От себя. Действительно почитайте. Все что там описано, я прочувствовал на собственной шкуре причем глубоко подкожными нервными центрами. И нимало новых матерных слов выдумал, пока решал проблемы. Зачем наступать на собственные грабли, если можно почитать про чужие?

Второе. Некоторые решения там спорны, но автор поста выбрал то-то или то-то решение. Ну например UTF8, мол как его рисовать в программе? От себя - решаемо. Причем легко и непринужденно. Или инициализация сразу всего языка. Опять же спорно, но решаемо с тем же результатом, но чуть иначе. Или навскидку: текст об окончании триала на не том языке. Решаемо! Легко! Но не автоматизируемо, к сожалению.

Дело тут совершенно в другом. У автора поста на КЫВТ были свои резоны выбирать то или то решение. Спорить зачем? Разные резоны, разные подходы, разные точки зрения.

От себя в том же посте написал про фокус с ценовыми группами в зависимости от языкового файла. И полностью согласен с автором. Никогда не кладите цену в языковой файл.

PS: на Alconost слишком сильно не ведитесь, робяты... Они вам про плюсы в комментах то расписали, а вот про минусы умолчали. А геморроев в их подходе хватает причем с избытком. Причем не виню я их. Их система для них, а не для нас. Соответственно и плюсы\минусы там под их аудиторию.

PPS: к слову, именно примерно похожая система локализации у меня применяется в Aml Maple и TwinkiePaste. Что характерно, число языков растет как на дрожжах не по дням, а по часам. Alconost ау-у :).
Правда, в TwinkiePaste, как в значительно более поздней разработке система куда как круче и несколько дружественнее нашему брату программеру. С поддержкой генераций полных языковых файлов, обновления старых новыми строками, с аналитикой изменений, поддержкой разных библиотек (pure C++, MFC, WTL), локализацией диалогов, меню, строк - чего угодно. Ну что ж вы хотите. Опыт то накапливается.

среда, 16 сентября 2015 г.

Юзабилити. Разделитель в меню

Сегодня про маленький авторский фокус в юзабилити. В частности в меню.

Разделители в меню архиважная вещь. Они помогают группировать команды в визуальные группы. Давно известный факт, что человеческий глаз более-менее хорошо ориентируется, когда в группе от 3-ёх до 7-ми элементов. Если больше, то визуальная навигация будет затруднена. Взгляните на старый GIMP, без разделителей в меню. Это же просто ужас.

Для такого разбиения меню на группы вполне подходят разделители. Но, я о другом. Почему разделитель должен быть просто невзрачной линией? Он может показывать и полезную сопутствующую информацию.

Меню TwinkiePaste с разделителем с надписью
Пример: меню из TwinkiePaste справа на скриншоте. Разделитель меню показывает число элементов в истории буфера обмена (там цифр больше, но это уже особенности твинкипасты, не имеющие отношения к вопросу).

По-моему неплохо получилось!?! Изначально я этот прием придумал и использовал в Aml Pages. Там команды плагинов, которые встраивались в контекстные меню, как раз отделялись разделителем с надписью "Плагины". Прижилось.

Потом это уже было применено в Aml Assist. Там и вовсе распрекрасно пошло. В меню Ассиста есть группы однотипных команд "Вроде открыть как" (не важно что именно "как", ну например только для чтения), или же "Показать так-то". Эти группы команд однотипны по своей сути. Они выполняют одно и то же действие, но над разными объектами.

Разделитель с надписью выручил на ура. Вместо того, чтобы в каждой команде меню писать "Сделать то-то [название объекта]" был прилеплен разделитель с надписью "Сделать то-то", а ниже уже команды меню с названиями объектов. Шикарно получилось. Вместо однотипных заголовков "Сделать то-то XXX" получили наглядную группу команд меню. Причем сами команды в группе содержат только названия объектов. С одной стороны: для новичков понятное действие в надписи в разделителе. С другой стороны для привычных пользователей, которые знают и пользуются этим действием, группа команд содержат только названия объектов. Позволяя им сосредоточиться, с чем именно будет выполнено привычное для них действие.

Вот такой вот фокус был придуман в последние месяцы. Причем настолько удачный, что благополучно начала растекаться по соседним проектам. Улучшения в массы!

пятница, 17 июля 2015 г.

Акция Aml Maple на Giveawayoftheday

Прошла, значит, акция на Aml Maple на Giveawayoftheday. Итого, что в профите. Подобьем бабки, как говориться, посчитаем пулю и гору.

  1. Очень много комментов было, что не может не радовать. Флуда, конечно, развелось немало, но и какие-то приятные тексты попадались. А мотивация настроением в разработке тоже кое-что значит.
  2. Немало комментов было и в английском обсуждении. Традиционно: англоязычные пользователи из ГрейтБритан и Пиндоссии ни в какую просто не могут воткнуть, как это так, и зачем вообще нужен второй язык. Некая тенденция в ограниченности наблюдается явно.
  3. Контр-довод. Есть все ж пользователь(ницы) из USA, которые были просто в восторге от софтины. Видимо, сказывается засилье испаноязычных мексиканцев :)
  4. Традиционный всплеск новых переводов пользовательского интерфейса для Мапли. Новый китайский перевод, абсолютно новый арабский, еще пяток переводов, и еще несколько были обновлены в течении пары недель. Бесплатные ключики за переводы с радостью розданы. Кстати, один из шикарнейших переводов сделала именно пользовательница из Штатов, описанная в предыдущем пункте. Интересное наблюдение: вы не поверите, но ее фамилия не МакКейн.
  5. Гивэвейцы, засранцы, забыли повесить ссылки на "купить полную версию" :((( Это полный вперед. Поэтому всплеска продаж не было в день акции. Так себе, ни шатко, ни валко. Отсюда вывод: при работе с Giveawayoftheday завсегда сначала сочиняем им пост со ссылками на покупки, а только потом даем ссылку на дистрибутив. Ибо я сначала сделал им инсталлер, они написали свой собственный пост, про ссылки забыли. Потом мы в пару недель что-то обновили, я прислал ссылки, но их забыли вставить. Извинились. Ладно, и на старуху бывает проруха. Но зарубку на память ставим.
  6. Регистрация через выбор ZIP-файла с лицензионной инфой стандартным виндовым диалогом "Открыть" - проходила на ура. Так оно пользователям понятнее. Но все равно, были письма где взять файл с лицензией. Но уже на порядки меньше таких писем. И это при том, что ZIP-файл был распихан во все места, и включен в стандартную установку.
  7. Из веселого: приходил пользователь, сказал что 500 рублёв за персональную лицензию это очень дорого, и максимум 200. "А двести рублей не могут спасти отца русской демократии??? Я думаю, торг здесь неуместен!". Гы :) Спасибо за фидбек. Горячо с ним согласился :) Хочу взять на вооружение, пригодилось бы вчера когда клубнику жене брал. Хотя такое ощущение, что я и так в тренде. Догадываюсь, что мне бы сказал на предложение скинуть цену в 60 процентов продавец клубники... Впрочем, я то же самое отвечаю, с улыбкой и пожеланиями всего наилучшего.
PS: с локализациями в очередной раз убедился, что выслушай, как рекомендует сделать Microsoft, и сделай наоборот!
Такие бро, дела.