среда, 27 декабря 2023 г.

Философское. Про XML и боксёров

Вспоминается ВМК в далекие 2000-2001 года... В частности курс про распределенку вперемешку с этими нашими интернетами...

Как же тогда восторженно дрочили на XML! Ах, еще один markup language, ах как клёва, ах как круто. И все я никак не мог вникнуть, с чего такие оргазмы. Ну еще один, ну еще один markup language, ну и чего? Мало ли что ли их? Есть SGML, SHTML, есть в конце концов сам HTML - и все они *ML - markup language. Чего восторгаться-то!?!

Пока кое-кто из толковых разработчиков не ткнул меня носом и показал на деле, на что нужно возбуждаться. А именно на eXtensible markup language. А вовсе не на markup language.

Вот тут-то я всё и прочувствовал! А некоторые из наших преподов как-то не на то упор делали: всё markup да language, language да markup...

Вот так-то и вычисляют боксёров-теоретигоф. Гы! Фишка XML`я именно в eXtensible, причем стандартизованном.


четверг, 29 ноября 2018 г.

Open Live Writer

Open Live Writer — проверка связи! Что выйдет?

Та-а-а-а-ак, а что у нас с картинками?

twp_menu_src

А что с видео?

Не получаяццца  с ходу… Что-то перенастраивать надо.

пятница, 9 июня 2017 г.

Новый 2017-ый

Ух ты, йопта. А оказывается то уже 2017-ый год… Причем уже даже и июбрь месяц! Право, даже как-то не с руки писать регулярное "давненько я не брал в руки шашки" :)

воскресенье, 18 декабря 2016 г.

Платные апдейты или подписка!?!

Что-то я последнее время, чем больше размышляю о схеме оплаты шароварки, все больше склоняюсь к платным обновлениям, основанных на дате сборки.

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

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

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

В третьих пользователь всегда видит за что платит про обновления. Если ему ничего интересного нет, то и незачем обновляться, и незачем платить. Когда появится интересное ему обновление - милости просим.

В четвертых, более четкая обратная связь с пользователями. Кому-то что-то надо - он просит. Фича появляется в новой версии. Годидзе? Негодидзе? Дорабатывается. В какой-то момент пользователя устраивает новая фича. И он рано или поздно голосует рублем. А "рублем" это сильный довод. Сразу видно, куда развиваться софтине.

Ну и в пятых. Если регистрационные ключи "тухнут" с выходом мажорного апдейта, то получаем еще один весьма не очевидный, но зато ой какой знатный головняк.

Поясню: выпускаем мажорный апдейт, с новой мощной фичей. По уму именно в этот момент должны "протухнуть" старые ключи для новой версии. Но вот какая штука. Хорошо бы чтобы пользователи потестили новую фичу. А как? У них ключи уже протухли!?! Если оставим старые, то на кой им платить потом - все ж уже получено? И главное: новые ключи тоже нужно тестировать. Т.е. никуда не деться: ключи нужно протухать практически сразу. И что получаем? Вместо тестирования и фидбека по новой фиче, тестируем больше новые ключи. Которые никоим боком к самой софтинке дела по сути не имеют.

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

Век живи - век учись.
PS: с Маплей спасает только одно. У нее очень приличное фан-сообщество, которым весьма нравится моя софтина и им не в западло жалко оплатить мажорные обновления практически сразу. 

пятница, 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, и сделай наоборот!
Такие бро, дела.

понедельник, 15 июня 2015 г.

Aml Maple бесплатно

Завтра, во вторник, 16 июня Aml Maple будет доступна на сайте Giveawayoftheday абсолютно БЕСПЛАТНО.
Акция продлится ровно сутки, и не более. Следите за новостями.

Условия акции:
  • нет бесплатных обновлений
  • нет бесплатной технической поддержки


  • Или можно будет купить полнофункциональную версию Aml Maple со всеми вытекающими (поддержкой, бесплатными обновлениями и прочими печеньками) с 50 процентной скидкой. Используйте код купона GOTD.

    50 процентная скидка распространяется и на прочие платные продукты: Aml Pages, TwinkiePaste. Тоже со всеми плюшками: обновления, поддержка и.т.д.

    суббота, 25 апреля 2015 г.

    Костыль памяти. Раз, два, три, много

    Есть такое мифическое племя — мумбу-юмбу. Так вот у них очень интересная система счисления. Она не похожа ни на распространенную арабскую, ни на римскую, ни на не в коем разе какую-нибудь шестнадцитиричную. Она проще — и называется Раз, Два, Три, Много. Вот вам и все порядки, и арифметические операции.

    Дык вот в разработке софта владение этой замечательной системой экономит ну просто уйму усилий, времени, и денег. Просто нужно никогда не забывать про Раз, Два, Три, Много. Если есть раз, то может быть и два, а если два, то может быть и три. И уж тогда совершенно точно будет и много.

    Этот пост для меня самого. Ну случай очередной амнезии. Костыль памяти.

    пятница, 27 февраля 2015 г.

    Про автозагрузку

    Блин, есть куча софта, который мне нужен практически при каждом запуске Windows. Но далеко не сразу, не сию прям секунду через минуту после загрузки. А чуток погодя. А вариант только один: или запускать ручками, или запускать сразу и автоматически. Ясен перец, во втором случае автозапуска процессор загружен по самые небалуйся.

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

    Реализуется на раз-два-три: софтина запускается, и падает в ожидание магического евента на эти самые минуту-другую. Потом просыпается и начинает работать. Если же софтину пользователь запустил ручками раньше, чем та проснулась, то все элементарно. Вторая копия дергает этот магический эвент, и завершается. А первая, которая спала в автозагрузке, просыпается раньше. Всё! Тривально, Ватсон!

    Юра!!! Сделай пожалуйста плагин к TLB? Там писать-то? 20 строк всего? Алгоритм уже просто в голове рисуется. И сам бы сделал. Но я в твоем Plugin API ничего не понимаю...
     А какой был бы профит! И волки сыты, а овцы целы. И автозагрузка есть, и нет оверхеда при старте винды.


    пятница, 6 февраля 2015 г.

    Aml Pages на BitsDuJour

    В субботу, 7-го февраля Aml Pages будет на доступна на BitsDuJour. Давненько я там не появлялся, уж пару лет поди минуло.

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

    среда, 3 декабря 2014 г.

    На злобу дня. Крякеры

    Случилось страшное!

    Сломали Пасту… Таки та вот да. Сломали. В чистую причем. Скачал, проверил. Нормалек. Чувствует себя зареганной вполне версией, только никак не вникнет на кого зареганно. А так вполне прекрасно работает, нагскринов ни крутит, ограничений на накладывает.

    PS: Шеф, все пропало! Гипс снимают, клиент уезжает. Я убью его!  В общем, и не знаю как еще комментировать :))))))

    воскресенье, 26 октября 2014 г.

    Giveawayoftheday.com : Впечатления 2.0

    Некоторое время назад устраивал раздачи на Giveawayoftheday.com для Мапли, Aml Pages и TwinkiePaste. Впечатления обновились и не слабо. С GOTD можно получить массу приятных плюшек, главное уметь их готовить. Ну, галопом-по-епропам – поехали.


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


    Второе. Прошивка регистрации для Aml Pages везде и всюду на этот раз дала эффект. Гневных писем “не регистрируется” было на порядок меньше. Но все равно пришло их немало. В основном от западных пользователей. Читать инструкции они видимо не привыкли, в отличие от наших с какой-нибудь руборды. Эти разобрались мгновенно: вытащили регистрацию, проверили с новыми версиями, порадовались :) Не зря я о них столь высокого мнения. Жаль только толку с них мало (я не про деньги, я в курсе что вы не хотите платить – я не об оплате). А вот многим англоязычным пользователям пришлось рассылать бесплатный ключ отдельно.


    Третье. Организация информационной волны вопрос отдельный. Все как обычно: анонсы на сайте, фейсбуке, ВКонтакте, форумах, RSS-ах, новостная рассылка. Все стандартно. Но сдается мне, в последний раз основательно сработали только три вещи: анонс на сайте, анонс в новостной рассылке, анонс в RSS. Последнее отдельная песня. Моя Aml Pages умеет выкачивать RSS с сайта, парсить и показывать ее как новости в самой софтине. Похоже отсюда и результат.


    Четвертое. Организация обратного фидбека. Во первых, пришлось переделать uninstall report. Подробности тема опять же для отдельного поста, но если в 2-ух словах, то пришлось приделать детект удаления GOTD-версии и предлагать плюшки. А вот неожиданный для меня результат дал анонс в форуме. Казалось бы, там все свои и все оключеваны уже лет как сто, наверное, причем многие с пожизненными апдейтами. Спрашивается зачем анонс? А вот зачем! В день акции мое комьюнити подтянулось на GOTD и неслабо так проголосовало за софт, и откомментировалось в лучшем стиле. Отдельное всем спасибо! Ей богу, парни, искренний всем респект и уважуха. Иногда, доброе слово значит куда как больше, чем деньги-дребеденьги. Не ожидал…. Kunzite, а-у-у-у :)


    Если дайджестом, про новое и основное – то примерно так. Остальное: про регистрации, лицензионные ключи, про общение с пользователями, про форумы, анонсы, объяснения разницы лицензий и платности\бесплатности апдейтов – то нужно писать отдельно. Готов отчитаться со временем, по мере интереса “обсчества”.

    среда, 11 июня 2014 г.

    Форум?!?

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

    Оговорюсь сразу. Поддержка англоязычными загружена вполне, более чем на половину. Так что аудитория вроде как есть. Да и с форумом я экспериментировал по разному. И мгновенная регистрация, и одобрение по емейл, и активация по емейл. Без разницы. Спамерам пофиг – эти пролазят. Аудитории нет. Ссылки на форум из софтин есть. С сайта есть. Результата нет и не видно.

    Что не так? Варум? Почему?

    среда, 30 апреля 2014 г.

    Бесплатные беты

    После непродолжительной гражданской панихиды тело Паниковского бесплатное бета-версие Aml Pages было предано земле. Была у меня такая практика, делать локализованные бета-версии бесплатными. А именно французскую, немецкую, португальскую бета-версии. А потом и вовсе бесплатными не только беты, но и релизные версии сделал.

    Но как-то не пошло. Ни баг-репортов, ни волны по сети – вообще ничего. Изредка появлялись какие-то полудикие пользователи, которым подайте то, сделайте сё. Именно с нуля, и именно новую фичу, а вовсе не доделать.

    Осточертело! Ну и нафиг! Убрал халяву полностью.

    Решился таки. Перевел новейшие версии Aml Pages полностью в Unicode. Адова работа, стоит заметить. Если б начинал сейчас, я бы и вовсе в Aml Pages всё сделал бы иначе. Совсем, напрочь по другому. Движок, уровень данных, распределение функциональных обязанностей по коду – в общем почти все бы было сделано вах как по другому. И-эх, если бы молодость могла, если бы старость хотела!  Сейчас начинать с нуля мне просто больше не хочется. А с другой стороны, сколько раз убеждался, что для професссионального развития подход “переписать всё нафиг” не работает и вовсе. Только исправления! Тогда растешь над собой.

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