(в одно сообщение все не поместилось
)
5. Возможность создавать операции по умолчанию заблокированными - у меня, например, таких 99 процентов. То есть галочка д.б. установлена по умолчанию. По поводу усложнения диалога настроек программы (совершенно правильное опасение) - рано или поздно придется менять его структуру на более простую в использовании древовидную (как н-р в Winamp)
6. Самое сложное в реализации: синхронизация баз данных между двумя и более компьютерами, например между рабочим, домашним и палмтопом. Конечно, если при проектировании не были учтены подобные требования, сейчас реализовать синхронизацию будет сложновато.
7. Как насчет переноса на другие платформы - PocketPC, Palm, Casio и т.д. Может быть найдется народ, который готов написать интерфейс к движку разработанной тобой программы.
8. Насчет платных версий - есть мнение, что можно наделить платную версию дополнительной (и не нужной большинству) функциональностью. Типа рассчета процентов по кредитам и ссудам и т.п. То есть соотв. образом ее спозиционировать. Я думаю что потенциальные пользователи этой версии с радостью заплатят за нее те небольшие деньги, которые стоят шароварные программы в русском интернете.
9. А, чуть не забыл. Возможность указывать при добавлении или редактировании статьи расхода сумму по умолчанию. Часть сумм ежедневных расходов практически не меняется в течение длительного времени. Пример - траспорт (карточка на метро, проезд в автобусе и т.д.), часть коммунальных услуг, сотовая связь и т.д.
1. Ввод статьи расхода при создании новой операции
Dervish
27/06/2002 13:49
#
Очень интересный пример Вы привели: со строкой ввода URL в браузерах. Думаю, что, на самом деле проблем-то с вводом древовидных атрибутов две: во-первых, как Вы справедливо заметили, слишком много кликов, а во-вторых, когда ниспадающий список свёрнут, выбор статьи (стрелочками клавиатуры) возможен, но выполняется как-то "в слепую". Думаю, что если автоматически показывать ниспадающее дерево при нажатии любой клавиши (кроме TAB), плюс, дать возможность, о которой говорите Вы (побуквенного выбора), это сняло бы абсолютно все проблемы интерфейса с ниспадающими деревьями.
дерево выбора
Scratcher
05/07/2002 11:24
#
Не очень понял, что Вы имели ввиду под показом дерева при нажатии любой клавиши. Самое простое, как мне кажется, - показывать дерево когда введена хотя бы одна буква в edit-е. Ну и возможность показывать его либо клавишей стрелка вниз, либо щелчком мыши по пиктограммке со стрелкой вниз. К такому алгоритму привыкло подавляющее большинство пользователей (по крайней мере те, кто знаком с Интернет).
Dervish: Собственно, я именно это и имел ввиду.
Сложность в другом, не совсем понятно, что делать, если ниспадающий список содержит несколько колонок (пример - выбор счетов, там есть колонка для валюты и для названия счёта). Не совсем понятно, по какой колонке выполнять поиск.
выбор счетов
Scratcher
05/07/2002 13:05
#
Я думаю в данном конкретном случае логично искать по имени счета и выбирать первый, который удовлетворяет критерию. Если счета будут отсортированны по имени, выбрать соседний с другой валютой с помощью стрелок курсора не представляет труда. Другое дело, если структура счетов будет иерархической (как планируется, если я правильно помню). Тут надо подумать... Хотя там, как мне сейчас кажется, будут действовать похожие правила (т.е. счета внутри ветви отсортированы по имени и счета с одним именем и разными валютами, по идее, должны быть чайлдами одной ветви)
Dervish: Поймал себя на мысли, что практически все ниспадающие списки будут древовидными (если сделать всё то, что планируется). Единственное исключение из этого правила - списки валют. А тогда (имхо) вообще пропадает необходимость (и полезность) выбора строчки по мере набора названия в edit-e. Что делать будем?
"Горячий" поиск
Artem Fedorov
06/07/2002 13:02
#
А в чем проблема? Все равно можно искать по ВСЕМ элементам, это будет гораздо лучше, чем если бы поиска не было бы вообще.
Да! Этой функции не хвататает всех выпадающим комбо-боксам с иерархической структурой (да и линейной тоже). Так что было бы разумно ввести поддержку "горячего" поиска (поиска при наборе первых букв) в стандартные функции контрола.
Dervish: Артём! Пожелание принято, буду думать, как его реализовать.
2. Подсказка о том, что надо ввести положительную сумму операции
Dervish
27/06/2002 13:59
#
Согласен с Вами, дисэйблить кнопку Ok - плохое решение. Идея с подсветкой суммы и показом тултипа для меня нова, надо обдумать.
Положительная сумма операции
Artem Fedorov
27/06/2002 22:36
#
Можно сделать как в Outlook Express XP -- там видел, что когда пишешь в строку неправильное значение, то раздается писк и снизу появляется Baloon Help (Tooltip нового вида) снизу от поля с подписью, что значение неправильное.
Dervish: Если не ошибаюсь, в Windows`95 не было ещё Baloon Help.
Положительная сумма операции
Artem Fedorov
28/06/2002 16:48
#
Конечно не было. И в 98-ой, по-моему, тоже. Но идея -- просто класс! Красиво, удобно, ненавязчиво, доступно. В системах 9х можно использовать обыкновенные прямоугольные tooltips.
Dervish: Боюсь, что они будут слишком незаметными.
Положительная сумма операции
Artem Fedorov
28/06/2002 20:26
#
Нет, очень заметно, особенно если учесть, что будет подаваться стандартный звуковой сигнал.
Вот пример изображения:
http://artfedorov.boom.ru/cash.html, причем сделать подсказки вида baloon help можно и в win9x, если рисовать самому. Да! Естественно, что поведение у этих окошек не как у стандартных тултипов -- они не убираются автоматически, а постоянно на экране, пока пользователь не запишет сумму в нужном формате.
Dervish: В принципе, да - есть хвостик у тултипа или нет - не суть важно. Главное, что уважаемый г-н Scratcher справедливо написал, что так будет лучше, чем обычное сообщение.
Когда же тут будет автозаполнение? (было: Положительная сумма операции)
Artem Fedorov
28/06/2002 22:54
#
Действительно, удобно. Схему реализации можно посмотреть в Outlook Express XP, там похожее поведение было в диалоге редактирования аккаунта (учетной записи) при редактировании какого-то поля.
А подсказка с хвостиком намного более "юзабельная" т.к. конкретно указывает (и визуально быстрее различимо) к чему относится подсказка. Нарисовать ее на экране самому -- не проблема.
Dervish: Ну, в общем. Правда, при этом программа ещё больше вырастет.
3. Возможность менять Tab Sequence в диалогах.
Dervish
27/06/2002 14:04
#
Идея новая и совсем неплоха. Спасибо за подарок.
Хотел только спросить, а как Вам видится интерфейс изменения Tab Sequence? Первая моя мысль - где-то в настройках. Вторая мысль, что это будет немного неудобно, ведь придётся закрывать диалог ввода операции, открывать настройки. Может быть, можно предложить какой-нибудь вариант изменения Tab Sequence "на лету", не закрывая окно, при помощи мышки? Есть какие-нибудь идеи?
Идея
Денис Лебедев
02/07/2002 00:30
#
На этот счет есть предложение. Можно добавить в каждый диалог небольшую кнопочку "настройка", обыкновенный квадрат размером с кнопки закрыть, свернуть...
По ее нажатию можно выводить окошко со списком полей которые можно передвигать вверх, вниз. Также думаю не помешают чекбоксы если вдруг захочется исключить поле.
Dervish: Видимо, это лучшее решение. Спасибо!
Реализация Tab Sequence Editor
Scratcher
05/07/2002 11:16
#
Прошу прощения за столь долгую паузу перед ответом. Хочу сказать, что я только предлагаю идеи а реализовывать их или нет, конечно же дело автора этой замечательной программы.
Когда я все это задумывал, мне видилось несколько путей реализации данной идеи, точнее несколько ньюансов:
1. Каким образом вызывается диалог настойки. Здесь есть три предложения.
а) Как справедливо заметил Денис, можно оформить в виде простой кнопки где-нибудь внутри окна диалога.
б) Можно офомить в виде доп. закладки для диалога (общей для всех диалогов и располагающейся последней, н-р крайней правой. Не всегда применимо.
в) Оформить в виде доп. кнопки в области заголовка окна (рядом с кнопкой закрытия окна). Конечно же эта кнопка должна быть общей для всех диалогов, где есть контролы. Может быть Денис имел ввиду именно это.
2. Как он отображается.
а) В виде простого окна, появляющегося поверх диалога.
б) Путем открытия диалога настроек (также поверх текущего диалога) в котором выбрана соотв. закладка/ветвь. При увеличении количества настроек мне кажется более логичным оформить их в виде дерева, в соотв. с современной модой ;*).
в) Путем увеличения площади диалога, на освободившемся месте размещается список контролов.
Хинт 1: Так как сам диалог, для которого производятся настройки, будет частично виден, можно рядом с контролами (или прямо на них) рисовать маленькие цифирьки, обозначающие порядок переключения. Как в редакторе ресурсов Visual Studio.
Хинт 2: Если будет возможность отключать некоторые из контролов (мысль интересная, я не додумался ;-), то можно их не прятать, а просто делать недоступными (дизейблить). А можно и прятать.
Dervish: Вот мне тоже сразу же вспомнился Visual Studio с его цифирьками, обозначающими Tab Sequence. Правда, проблема в том, что Visual Studio предназначена даже не для пользователей, а для программистов, которые с комьютером "на ты". Сможет ли рядовой пользователь понять, что это за цифирьки выскакивают и с чем их едят?
опять я не уложился ;-)
Scratcher
05/07/2002 11:18
#
Предложения по реализации. Думаю будет удобным сделать общую реализацию этого механизма, к которой просто подключается желаемый диалог, так как любой диалог это, по существу, контейнер, содержащий контролы. А все контролы могут (и должны) иметь осмысленный идентификатор, который можно использовать в качестве названия для пунктов списка.
Dervish: Ну, может быть и так. Только, что-то мне кажется, что самый сложный диалог, это всё-таки добавления/редактирования операции. Остальные очень просты и вряд ли кому понадобится изменять TabSequence на них.
сложность
Scratcher
05/07/2002 13:40
#
Может быть реализация для общего случая несколько более сложна, чем для частного. Мне кажется, что не более чем на 10-15 процентов. Зато если появятся еще громоздкие диалоги - заново переписывать код для них не придется.
Dervish: Пока не планируется появления более громоздких диалогов. Но если делать в общем случае, то придётся таскать в exe названия всех полей ввода для всех диалогов. Это может существенно увеличить объём программы.
TS
Scratcher
05/07/2002 13:38
#
А от него это и не требуется. Неопытный, как мне видится, вообще не будет заморачиваться с последовательностью переключения фокуса ввода. А цифирьки как раз помогут тем, кто знает, зачем он это делает.
Dervish: Да, наверное. Но тогда не нужно таскать с собой названия каждого из полей ввода. Может быть, это самый лучший вариант.
цифирьки
Scratcher
05/07/2002 14:20
#
Тем более, если они будут не очень большими и неяркими, они вообще не будут бросаться в глаза.
Dervish: Цифирьки должны появляться только в каком-нить "специальном" режиме редактирования Tab Sequence. Иначе они будут путать пользователей.
4. Контрол для ввода даты
Dervish
27/06/2002 14:08
#
Абсолютно согласен! Причина, по которой я сделал именно так проста: мне надо было придумать механизм, чтоб пользователь мог ввести в ниспадающем окне и дату и время, причём, чтобы после ввода даты окошко не закрывалось. К сожалению, получилось очень неудобно.
Теперь у меня появилась идея, как можно сделать выбор даты одним кликом. Кстати, думаю, что исправлю эту неудобность достаточно скоро.
выбор даты
Scratcher
05/07/2002 11:32
#
Ну, одним получится, только если нажать кнопку мыши и не отпускать, пока не выберешь нужную дату ;-) Я когда-то тоже задумывался, как сделать ввод времени парой-тройкой щелчков. Уж очень достали эти маленькие стрелочки вверх-вниз. Меньше трех щелчков (считая первый для открытия диалога) конечно можно, но получается изврат с Drag`n`Drop :-). Вообще, по-моему, важность времени среди атрибутов операции вторична (как представитель большинства, обычно его не выставляю). Поэтому его можно выставлять отдельно, если возникнет такая необходимость.
Dervish: Ввод времени сейчас доступен только на диалоге добавления/изменения операции. Это - единственное место в программе, где может понадобиться изменять время. А посему у меня возникла мысль: разнести ввод даты и времени по разным контролам. Тогда дата вводится одним кликом на календаре, ввод времени можно сделать обычным перетаскиванием стрелок. А для закрытия ниспадающих часов поставить на всплывающее окошко маленькую кнопку "ОК".
ниспадающие часы ;-)
Scratcher
05/07/2002 12:59
#
да, именно мысль о разнесении в разные контролы даты и времени я и старался донести. Видимо, несколько завуалированно :-)
Dervish: Ну вот, консенсус и достигнут.
)
5. Возможность создавать операции по умолчанию заблокированными
Dervish
27/06/2002 14:10
#
Принято, спасибо.
6. Синхронизация
Dervish
27/06/2002 14:18
#
К сожалению, мне не приходилось работать (даже как пользователь) с синхронизацией данных между двумя компьютерами с Windows (например, desktop и notebook). Мне не знакомы механизмы такой синхронизации, увы.
Синхронизация же между desktop-ом и Windows`CE-машинками знакома и, в принципе, планируется в реализации. Но, думаю, что Вы со мной согласитесь, синхронизация с WindowsCE нужна только тогда, когда будет версия Cash для CE.
Добавлю, что я очень хочу сделать CE-версию программы (и, может быть, версию для PalmOS). См.следующий пост.
синхронизация
Scratcher
05/07/2002 11:40
#
Мне кажется тут важна не столько техническая, сколько алгоритмическая сторона дела. Я сам, увы, достаточно смутно себе представляю какие средства MS надо применять для синхронизации. Но гораздо более сложным (и интересным) считаю сам алгоритм синхронизации данных. Например в двух базах параллельно ведутся какие-либо изменения, удаления, добавления, а потом все это требуется слить воедино. Как решить, что удалять, а что оставить? Главное решить эту задачу. А уж что с чем синхронизировать - не так важно. В конце концов, можно просто синхронизироваться через файлы.
Dervish: Тогда, в самом общем случае, такая синхронизация возможна только в диалоге с пользователем. И, боюсь, что она может оказаться очень неудобной для пользователя. Самое грустное, что я не вижу, как можно сделать её проще.
синхронизация
Scratcher
05/07/2002 12:56
#
Без нее, увы, гораздо хуже. Просто эта фича программой не навязывается (я имею ввиду синхронизацию между двумя немобильными компьютерами через файлы) а те, кому она может понадобиться, оценят ее по достоинству. Тем более, что реализовать ее при уже имеющейся синхронизации с моб. устройствами должно быть относительно легко. Хотя это может быть несправедливо для , если заботы о синхронизации берет на себя спец. софт.
Dervish: Для мобильных устройств (Windows`CE) синхронизацию делает ActiveSync. На десктопе и на Windows`CE для синхронизации нужно написать две DLL-ки, которые прописываются в реестрах. И, собственно, всё. Для синхронизации двух баз на десктопах возникает желание полностью написать это "с нуля". Потому что я не знаю, существует ли пакет аналогичный ActiveSync, но для десктопов.
Active Sync
Scratcher
05/07/2002 13:45
#
Думаю, что есть. Надо будет почитать более подробно про АS - интересно, как они формализовали задачу.
Dervish: На мой взгляд, не совсем удачно они это реализовали. ActiveSync замечательно подходит для синхронизации "линейных" данных, но практически не подходит для синхронизации иерархических.
Даже если и существует пакет синхронизации для десктопов, наверняка это монстр, впрочем, как и всё, что выходит от MS.
7. Перенос на другие платформы
Dervish
27/06/2002 14:31
#
С одной стороны, я сам - обладатель Cassiopeia от Casio. С другой - как я ни стараюсь, у меня всё время возникают "пробелы" в занесении данных в Cash. Этих двух пунктов достаточно для того, чтобы желать сделать CE-версию Cash. Почему пока не делаю? Обратите внимание, на итоги опросов пользователей в голосованиях. Там есть возможность добавить отдельный пункт "CE-версия", но, почему-то пока никто его не добавил. Действительно, есть ещё очень много вещей, которые обязательно нужно сделать в Cash и в самые короткие сроки, поскольку вещи эти животрепещущие.
Кроме того, боюсь, что нельзя будет "просто перенести движок". Я уже пытался сделать первые наброски для CE, но если ориентироваться на синхронизацию через MS ActiveSync, то придётся изменить структуру базы данных Cash, увы.
мультиплатформенность
Scratcher
05/07/2002 11:46
#
Да, Майкрософт любит навязывать свои решения :-)
Может вначале можно написать какую-нибудь обертку (wrapper), которая снаружи будет представлять структуру Вашей базы в том виде, который необходим для MS Active Sync? Хотя, конечно же, это только мысль и Вам, как разработчику, должно быть виднее ;-)
Dervish: Так или иначе, версия для Windows`CE (а, может быть и для PalmOS) нужна. Я уже сам замучился вспоминать, куда же разошлись деньги. Думаю, что если б заносил расходы прямо сразу после их совершения, не пришлось бы относить расходы на статью "Неизвестность".
потери
Scratcher
05/07/2002 12:44
#
У меня тоже есть такая статья. Только называется "Неучтенные" ;-)
Dervish: Ну да, ну да. Но это ведь не нормально! Учитывать, так по полной программе, все расходы.
неучтенные
Scratcher
05/07/2002 13:42
#
абсолютно согласен. Главное, совершенно не могу вспомнить, куда делись деньги. Просто обнаруживаю разницу между суммой в программе и в кошельке :-|
Dervish: Кстати, маленький совет, может быть пригодится. Лично я учитываю только бумажные деньги, на мелочь не обращаю внимания. То есть, например, покупаю пачку сигарет за 25 рублей. Если у меня не было мелочи, я отдаю 30 рублей и заношу в программу, что на сигареты потратил 30 рябчиков. Если же, я собрал в кошельке пять рублей мелочью, то в программу заношу, что на сигареты ушло 20 рублей. Тогда мне становится очень просто сводить остатки в программе, а существенной разницы копейки не оказывают на итоги.
Вначале было непривычно, но сейчас я даже и не представляю, как по-другому делать: монетки всё время норовят куда-то завалиться в кармане или просто по полу рассыпаться.
мультиплатформенность
Miha Ulanov
08/07/2002 17:44
#
Может быть стоит открыть формат базы cdbf? Авось найдутся и программисты под другие платформы.
Dervish: Тогда придётся открыть и механизм парольной защиты. И хоть Cash не является образцом криптозащиты (такая задача и не ставилась), но всё ж, наверное не стоит публиковать, как вскрывать пароли.
Кроме того, формат будет пересматриваться и, думаю, в самое ближайшее время. Равно как и механизмы доступа к файлу. Поэтому, вряд ли это поможет.
И ещё одна мысль: удачность разработки для наладонника в первую очередь зависит не от формата базы, скорее, от тщательности проработки идеологии, качества реализации. Согласитесь, полностью совместимая с Cash но жутко неповоротливая программа вряд ли будет пользоваться популярностью.
8. О платных версиях
Dervish
27/06/2002 14:50
#
Первое, самое главное: Cash в нынешнем состоянии будет бесплатным. Я достаточно сильно признателен российской аудитории за советы, пожелания и сообщения об ошибки, чтобы оставить Cash бесплатным. Мне не очень хочется делать разделения по функциональности для платных и бесплатных версий, поскольку это сильно усложнит сопровождение.
Однако (имхо), правы те, которые говорят, что бесплатный сыр бывает только в мышеловке. Значит, надо понять как превратить Cash в коммерческий продукт.
Думаю так: выпуск платной интернациональной версии (пользователь сможет самостоятельно изменять язык программы просто исправляя файл ".lng" обычным Notepad-ом). Кроме того, люди, обладающие PocketPC, думаю, совершенно спокойно воспримут платность программы (в разумных пределах) для маленькой машинки.
Итак, мне кажется, что платными могут быть только международная версия программы и версия для Windows`CE.
9. Суммы по умолчанию
Dervish
27/06/2002 14:52
#
Новое предложение, надо будет обдумать, спасибо!
Предложение
Денис Лебедев
02/07/2002 00:39
#
Я предлагаю реализовать это так же как в 1С. Там можно скопировать операцию, при этом:
- создается новая операция
- в нее автоматически заносятся дата (и номер операции)
- значения остальных полей переносятся из копируемой операции.
Dervish: А чем Ваше предложение отличается от команды "Дублировать операцию", что есть в (контекстном) меню? Мне казалось, что это уже реализовано, разве нет?
автокомлит
Scratcher
05/07/2002 11:50
#
Вообще, было бы здорово (хотя, как программист я понимаю, что городить ради этого огород не всегда оправданно), чтобы программа запоминала вводимые по операциям суммы и в дальнейшем автоматически подставляла ту, которая вводилась наиболее часто.
Dervish: Тоже хорошая идея. Спасибо!