?

Log in

No account? Create an account
Sprint 9 review - В Северном Ледовитом
September 12th, 2014
09:00

[Link]

Previous Entry Share Next Entry
Sprint 9 review
Отпуска подошли к концу и мы возобновили работу над нашей нотной программой. Сегодня закончился девятый спринт.

Хотя у нас в бэклоге висит целый список мелких задач, мы решили переложить их на следующий спринт, а сейчас в целях раскачки сделать что-то мотивирующее. Нам был необходим хоть маленький, но шаг вперёд. Этим шагом явилось освоение системы MIDI-ввода/вывода. Это значит, что уже скоро мы сможем вводить первые ноты.

Но по порядку. Мы соорудили ещё один диалог с настройками, на этот раз — настройками программы. (То, что мы показывали прежде, это были настройки нотации, и они относились к документу и сохранялись с каждым документом. Нынешние настройки относятся к программе и действуют во всех документах.)

Вход в настройки программы осуществляется через меню Окно > Настройки программы... (Window > Program Options...):



Само окно настроек — в перспективе многостраничное, но на данный момент состоит из одной единственной страницы, посвящённой MIDI.



Как и у всех, MIDI-устройство можно выбрать из раскрывающегося списка:



Довольно часто случается, что в списке больше устройств, чем реально могут быть задействованы. Какие-то из них фиктивные, какие-то неисправные. Здесь же, прямо в окне настроек можно протестировать выбранное устройство, нажав на кнопку Проверка (Test). Это действует для устройств вывода, т.е. для звучащих устройств. При нажатии на кнопку будет проиграна нота ля первой октавы.

Однако как протестировать устройства ввода? Для этого мы предусмотрели возможность, которой в других программах не наблюдали. У нас имеется кнопка Поиск... (Find...), которая открывает дополнительное маленькое окошечко. Слуховое:



Оно остаётся открытым до тех пор, пока на каком-либо из устройств MIDI-ввода не произойдёт действие — нажатие клавиши на клавиатуре, щипок струны на грифе, дуновение на ЭДИ и т. п. Программа слушает все устройства, и подключит то из них, которое в этот момент сработало.

Шаг сделан, следующие шаги — в следующем спринте.

Tags: , , ,

(19 comments | Leave a comment)

Comments
 
[User Picture]
From:kaganer
Date:September 12th, 2014 09:23 am (UTC)
(Link)
Первый мелкий вопрос: почему такая странная связка "Window > Program Options" ???

Лично я привык, что в п. "Window" - команды, отвечающие именно за конфигурацию _окна_ (включение/отключение всяких тулбоксов, панелей команд, линеек, режимов отображения и т.п.).

А "Program Options" обычно расположено либо в специальном п. меню "Settings", либо в меню "File" (не очень логично, на мой взгляд), либо -- как, например, в Иллюстраторе/ИнДизайне и т.п. -- в меню "Edit"

(PS: Если это временное решение "из экономии" - можно вопрос пока игнорировать ;)

Edited at 2014-09-12 09:30 am (UTC)
[User Picture]
From:ptrue
Date:September 12th, 2014 09:51 am (UTC)
(Link)
Спасибо! Это был ожидаемый вопрос, я даже хотел сразу написать об этом, но поленился.

Вот разброс местоположения подобной команды в меню разных программ:

Firefox: Tools > Options
Photoshop: Edit > Preferences
Eclipse: Window > Preferences
Windows Explorer: Tools > Folder Options
Dreamweaver: Edit > Preferences
MS Word 2003: Сервис > Параметры
Finale 2006: Options > Program Options
Finale 2014: Edit > Preferences
Capella: Extras > Options
Fontlab: Tools > Options
UltraEdit: Advanced > Configuration
MS Visual C++: Tools > Options
Finereader: Сервис > Опции
Delphi: Tools > Options
MuseScore: Edit > Preferences

Закономерность такова, что если в программе есть специальное меню для всяких спец. операций (Tools / Advanced / Service / Options), то настройки программы вызываются оттуда. В противном случае, они ютятся в каком-то другом меню, выбор которого в большой степени случаен. Чаще всего это Edit. У нас специального меню пока нет. Возможно, оно появится, и тогда вопрос отпадёт. Но до тех пор мы вынуждены ставить настройки программы куда-то ещё. Мы не стали ставить их в Edit, поскольку считаем, что в этом меню находится то, что привязано к документу. В том числе и настройки нотации. Содержимое меню File тоже привязано к документу. А вот меню Window может содержать вещи, касающиеся не столько документа, сколько окна и программы. В этом смысле единственная из перечисленных выше программ (Eclipse), на наш взгляд, разместила настройки программы наиболее удачно, поэтому мы последовали их примеру.
[User Picture]
From:kaganer
Date:September 12th, 2014 09:28 am (UTC)
(Link)
И ширина кнопок в парах Reset/Find..., Reset/test и Сброс/Проверка отчего-то разная (и, кстати, по сетке у них левая граница на разном расстоянии). Неаккуратненько. Я бы сделал везде одинаково, и заодно бы уже подумал - что будет, когда придётся делать локализацию на язык, в котором эти слова сильно длиннее. Это касается и левой колонки с именами полей настроек.
[User Picture]
From:ptrue
Date:September 12th, 2014 09:57 am (UTC)
(Link)
Ширина кнопок зависит от надписи. Блок кнопок притянут к правому краю, а внутри блока выравнивание по левому краю. Согласен, можно ширину кнопок выравнять, как это сделано в нижних кнопках всего диалога настроек. Сделаем специальный лейаут; пока его не было. Сетки там не будет, вернее, сетка внутри каждой рамки отдельная.

Что касается списка настроек в левой части (это в перспективе древовидный список), то его ширина тоже выбирается по наиболее длинной надписи. Вообще, все окна резиновые, их можно растягивать, можно передвигать границу между деревом и собственно настройками. При запуске окно приобретает наиболее приемлемую конфигурацию с точки зрения программы (т.е. чтоб всё помещалось), ну а дальше всё можно двигать.
[User Picture]
From:kaganer
Date:September 12th, 2014 11:51 am (UTC)
(Link)
Про резиновые окна - всё очень правильно, на мой взгляд. Тогда просто выровнять ширину кнопок, по максимально широкой. Похоже на то, что там (на кнопках) сейчас слева и справа от текста очень широкие поля - такие не нужны, при длинных надписях они будут съедать много места. Лучше задать минимальную ширину кнопки, а сами поля сузить, примерно до тех, которые сверху/снизу.

Про левую часть - я имел в виду колонку, где "Name:" и т.п. Если и она резиновая - всё совсем здорово.

Edited at 2014-09-12 11:51 am (UTC)
[User Picture]
From:ptrue
Date:September 12th, 2014 05:49 pm (UTC)
(Link)
А, ну эта-то колонка с названиями полей выровнена (см. большой скриншот, где окошко целиком). В случае, если переключить интерфейс на русский язык, где надписи, как правило, длиннее, эта колонка становится шире. При увеличении окна вручную ширина этой колонки, конечно, меняться не будет, так что нельзя сказать, что она стопроцентно резиновая.

Ширину кнопок уже выровняли между собой :)

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

Ещё раз спасибо за такое внимание :)
[User Picture]
From:kaganer
Date:September 12th, 2014 11:52 am (UTC)
(Link)
На окошке поиска MIDI-устройства что-то ещё отображается? Зачем там столько пустого места?
[User Picture]
From:ptrue
Date:September 12th, 2014 05:33 pm (UTC)
(Link)
Пустое окошко сделали размером 200 на 300 точек. Меньше, наверное, будет не очень заметно. Скажем, если сделать его размером с надпись, то оно окажется узким плоским, и будет выглядеть очень странно.

Вам кажется, нужно уменьшить? До каких пределов?

Наверное, как вариант, можно разместить надпись в абсолютном центре окошка, тогда оно не будет выглядеть таким пустым?
[User Picture]
From:kaganer
Date:September 12th, 2014 06:21 pm (UTC)
(Link)
Лично я бы уменьшил высоту в 1,5 раза, а надпись разместил по центру
From:ptrue
Date:September 12th, 2014 06:41 pm (UTC)
(Link)
Как-то так:

[User Picture]
From:kaganer
Date:September 13th, 2014 04:30 pm (UTC)
(Link)
Да, именно в точности так ;)
[User Picture]
From:kaganer
Date:September 12th, 2014 06:22 pm (UTC)
(Link)
И если окошко сделать модальным, не заметить его будет нельзя ;)
From:ptrue
Date:September 12th, 2014 06:43 pm (UTC)
(Link)
Окошко-то, конечно, модальное. Но ежели оно будет совсем маленьким, и где-нибудь не по центру, оно может слиться с родительским окном и вообще затеряться. Пользователь заметит, что что-то мешает, но будет долго думать, где оно. Так что, пожалуй, меньше, чем на скриншоте выше, уже не стоит делать.
[User Picture]
From:kaganer
Date:September 13th, 2014 04:31 pm (UTC)
(Link)
Разумеется. Предложенный вариант идеален ;)
[User Picture]
From:niclaus
Date:September 12th, 2014 11:56 am (UTC)
(Link)
Петя, надо очень хорошо подумать, какие настройки сохранять в файл, а какие отнести к самой программе. Например, во всеми нами любимом Finale немного раздражает, что настройки вида при открытии (страничный/ленточный, масштаб), единицы измерения, энгармонические предпочтения, различные настройки автоматизации являются атрибутами программы, а не файла.
[User Picture]
From:ptrue
Date:September 12th, 2014 05:31 pm (UTC)
(Link)
Вова, я не очень понимаю, почему тебя раздражает описанное поведение Finale. Меня оно очень даже устраивает: мне разные авторы присылают для работы свои файлы, и независимо от того, как они у себя привыкли работать, у меня всё всегда открывается в том виде, как мне нужно: в нужном масштабе, с нужными единицами измерения, в страничном или ленточном режиме. Поэтому меня абсолютно устраивает, что эти настройки не передаются с файлами.

В связи с этим, напротив, очень нелогично, что настройки горячих клавиш сохраняются в файле!

Пожалуйста, опиши ситуацию, в которой тебе удобно обратное.
[User Picture]
From:niclaus
Date:September 17th, 2014 03:06 pm (UTC)
(Link)
Понял. У нас с тобой немного разная специфика работы, мне, например, практически никогда не приходилось иметь дело с файлами, набранными другими людьми.
А мои файлы на разных стадиях работы требуют разного отображения:например, набирать нотный текст с рукописи и удобнее в ленточном режиме в масштабе, скажем 75%, писать оркестровку тоже в ленточном, но 50%, вёрстку и оптимизацию делать в страничном, что бы страница целиком помещалась в монитор, блох ловить перед печатью в страничном, но на 200-300% и т.д. С энгармонизмами почти то же: у Бени Юсупова страницы четыре туттийных восходящих пассажей с диезами при нотах, набираешь это место урывками (на работу тоже надо ходить иногда) дня два, а в перерывах делаешь какие-нибудь мексиканские песенки со вполне традиционными табличными энгармоническими предпочтениями.
Так что мне было бы удобнее открывать файл с теми же предпочтениями, с которыми его закрыл (и, желательно на той же странице).
From:ptrue
Date:September 17th, 2014 03:24 pm (UTC)
(Link)
Ага, я понял.

Твой кейс такой: имеем много проектов, каждый на своей стадии, и каждая стадия имеет свой режим работы/отображения.

Обоснованно.

Думаю, что должно быть нечто вроде shift-F5 в ворде, которое переходит к тому месту файла, на котором он был закрыт.

Кроме того, можно предусмотреть настройку, где пользователь может задать предпочтение, хочет ли он, чтоб файл сразу автоматически открывался на том месте и в том виде, где был закрыт, или чтоб открывался всегда на первой странице (но при желании можно было бы перейти в последнюю позицию через тот же shift-F5).

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

Что ты думаешь?
[User Picture]
From:niclaus
Date:September 17th, 2014 03:15 pm (UTC)
(Link)
Петя, прости за задержку с ответом, в Питере у меня нет доступа к тому ящику, на который приходят уведомления от ЖЖ, только VK и FB.
Powered by LiveJournal.com