Thursday, March 08, 2012

Против "честности" и "справедливости"

Честность. Для одного за честь - это застолье с президентом. Для другого - не солгать. Для третьего - не подумать плохого. То же и со справедливостью: для одного - это поровну, для других - мне, и лишь единицы отдадут свое.
Тогда, что такое движение, лозунги и протесты “За честные выборы”, а также “Справедливая Россия”, как имя партии-движения?
Мы уже прокололись с “прозрачными” выборами. И камеры включены, и наблюдатели на местах, и урны прозрачные - а лидирует тот же, и нет согласия в победе. Так и будет пока мы используем около-эмоциональные термины, чувство “единения” и “прекрасные порывы”.
Выборы должны проводиться с соблюдением закона. И стремиться нужно к законности, а не к справедливости. Какой бы плохой закон не принят, он должен соблюдаться до тех пор, пока не примут другой. Вот единственное правило, которому нужно следовать, которое позволит избежать субъективных оценок и эмоциональных подъемов на площади и спуски. 

К сожалению, мы далеки от такого правила, до сих пор считая, что при случае, можно поступиться законом, например, ради “справедливости”. Даже Яблочники, отстаивающие законность, вдруг заговорили о недемократичности отстранения Явлинского, обнаружив в своих коробках ксерокопии подписных листов.

Sunday, March 04, 2012

Немое Кино

Выборы Чурова. Не потому, что его выбирают. Он уже выбран. Потому, что он главнокомандующий. Хотели прозрачности, смотрите и слушайте http://webvybory2012.ru. Ах, вы заметили нарушение? Да хоть два. Вам обещали, что вы их увидите. Обещание сдержали, за очень короткий срок создали систему, точнее полу-систему. Вы можете видеть, но нет кнопки “Сообщить о нарушении”. В “помощи” написано: “у пользователей нет возможности сообщать о нарушениях ”. Цинично вышло с этими полу-технологиями, оставили наблюдателя немым.
Есть, правда, кнопка “Заметили ошибку?”. Написал в “Предложения”, что, если не успеваете обеспечить регистрацию нарушений, то обеспечьте следующие простые вещи: 1. строка на изображении с текущим временем с точностью до секунды, тогда можно сослаться на время нарушения, и можно рассчитывать, что кадр не вырежут; 2. кнопку “Кадр/Capture” для сохранения кадра в локальный файл - может стать ‘вещественным’ доказательством нарушения. Ответа нет, наверное у них и кнопки “Ответить” нет.

Friday, March 02, 2012

Магия Пикселя

Каждый программист должен посмотреть презентацию Брэта Виктора. Даже если не очень понятен язык, подождите демонстрационных слайдов. И тогда вы придете в восторг, и тогда вы скажете “Эх ты!”, и в вашей деятельности появится больше творчества и надежд. 
Хотя Брэт предрекает смерть интерактивности (поясню дальше, почему), то, что он демонстрирует, есть поистине интерактивное программирование, мгновенное отображение кода в результат, параметризация рождающейся модели и интуитивное познавание ее в ходе разработки. На рисунке - работающая транзисторная схема с диаграммами меняющихся сигналов
Чтобы лучше понять, над чем работает и какие принципы использует Б.Виктор - дизайнер и концептуалист пользовательского интерфейса iPod и MacOSX Lion, давайте  прочтем его статью "Magic Ink" и коротко обсудим понятия информационного программного обеспечения, графического интерфейса и интерактивности, которую сменят предсказатели ваших желаний.
Для начала, автор опрокидывает понятия интерактивности и "используемости" программного обеспечения (разрешите использовать короткое software) и подтрунивает над ними - 'The crudade marches on, with believers rarely questioning the sacred premise - that software must be interactive in the first place. That sofware is  meant to be “used”'. Увлеченные представлениями о "дружественном интерфейсе" многие программисты отождествляют "использование" программ с навигацией по ее глубинам, хотя возможной целью является простой пересчет градусов Фаренгейта в шкалу Цельсия.
Основные причины, почему мы обращаемся к software, такие:
  • учиться
  • создавать
  • общаться
В большинстве случаем мы сидим перед компьютером, читая, наблюдая, изучая, исследуя, приходя в результате к пониманию. Мы трансформируем наши нейроны. Для нас стало обыденностью: найти значение слова; узнать, какую страну бомбили сегодня; как приготовить паэлью; решить, какую музыку слушать, какую фотографию напечатать, что делать вечером, завтра, во вторник в 2:00; найти книгу для мамы, куртку для папы, машину для дочери; найти новую квартиру и кровать для нее, а может и партнера; спросить, как доехать до театра, где поесть перед спектаклем, где получить наличные; вычислить простую сумму и сделать финансовый прогноз, узнать остаток в банке; спросить, почему не заводится машина и как завести ее; проконсультироваться о болезни ребенка. Мы больше не сидим на завалинке и не сомневаемся насчет завтрашнего дождя. Мы спрашиваем компьютер (точнее, software).
Становится ясно, как важна визуализация данных. Хороший графический дизайнер понимает, как разместить информацию на странице так, чтобы читатель мог спросить и ответить на вопросы, сравнивать и делать выводы. Проектирование software имеет дело с разработкой объектов двух типов: картинки и элементы для нажатий, "pictures and things to push". Хотя software - нематериальный продукт, интерфейсы используют метафоры из механики: кнопки нажимаются, слайдеры скользят, окна открываются (MS с 1985 года). Но даже если ваш аватар ест бутерброд, вы можете остаться голодным. 
Важный шаг в визуализации был сделан давно. Ниже дан пример использования (одного из первых) в 1786 году графика для представления роста национального долга Англии.
С тех не прекращаются усилия улучшить представление данных (и сократить долг). Б.Виктор приводит пример повышения визуальной информативности на примере расписания поездов, обычно даваемого таблицей
Графическая версия автора дает представление о периодичности и последовательности движения
Созданный им widget "расписание" для macos выглядит так
А заказать цветы можно используя интерфейс
Назвав пикселы магическими чернилами, Б.Виктор двигает нас дальше - интерфейс и его графика должны быть контекстно-чувствительными. В моей интерпретации это означает следующее: заходишь в систему, а компьютер, зная время года, запросив сводку погоды для города и измерив температуру корпуса, спрашивает тебя: “Озяб?”.
Software способно и будет распознавать контекст вашего запроса и без дополнительных, иногда бесконечных кликов, немедленно предлагать вероятный план. Например, вы получаете сообщение с приглашением отведать пиццы. Это может стать причиной автоматического появления карты с маршрутом до ближайшей пиццерии. Система “выводит”, прогнозирует запросы на информацию исходя из следующих факторов:
  • обстановка (дата, местоположение, погода, создаваемый документ, открываемое письмо),
  • история (последняя оставленная обстановка, как самый примитивный вариант - открытый документ, расписание поезда, страница газеты),
  • взаимодействие. Интерактивность - это плохо, она означает, что предикторы не сработали, и нужно включать “навигацию”, которая часто становится причиной недовольства или расстройства пользователя в поисках цели, потому что “filling a gas tank is done to support the car, not the goal of arriving at a destination”.
Механизм предсказания может сработать не сразу, но он точно сработает, если действия регулярны.  Это очень похоже на предсказание переходов в процессоре. Например, число ошибок в предсказании маршрута на работу и домой (а значит и своевременное и правильное появление на экране расписания транспорта) снижается через пару недель
Сильна аналогия дана автором в определении значимости “Машинного обучения”, без которого невозможна самоадаптация программного обеспечения - “Сегодня, программисту нужно набрать только одно слово из четырех букв для того, чтобы включить в действие в течение десятилетий разработанную файловую систему - ‘open’. “Машинное обучение” не будет распространено до тех пор, пока оно не будет также доступно, как напечатать слово “learn”.
Software, которое становится активным на основании памяти о взаимодействии с пользователем и условиях этого взаимодействия, может [и должно] предусмотрительно предложить потенциально полезную информацию. Вот почему интерактивность, выводящая нас на навигацию, плоха. Тем более плоха, если интерфейс пользователя плох, скажем, кнопка нажимается без видимого эффекта нажатия. Еще радикальнее: “Меню, галочки, бюрократически рожденные тексты меню были изобретены 25 лет назад для мира, который больше не существует”.
Сказанное касается дизайнеров и программистов, которые не должны, как композиторы в далеком прошлом, сочинять с карандашом и бумагой. Правильно - услышать, исполнить сочинение немедленно.
“Будущее будет контекстно-чувствительным. Будущее не будет интерактивным” - заключает автор. А для этого нужно творческое взаимодействие, позволяющее “стоя на плечах гигантов, лучше видеть будущее”. 
Пока же мы топчем друг другу ноги.