понедельник, 7 апреля 2008 г.

Форма с произвольным вводом

Цель: ускорить/упростить ввод данных в формы. Область применения: там, где один человек вводит много данных в однотипные формы. Средства: добавляем "ума" обработчику формы - он должен понимать менее формальные данные. Пардон за тавтологию.

Допустим, в форме есть такие поля: URL, ФИО, телефон, возраст. Случай тривиальный: данные различаются кардинально, URL с возрастом никак не спутаешь, равно как и с телефоном. Добавляем к форме дополнительное поле textarea, и когда человек в это поле что-то вводит, разбираем введенное по образцам, распихивая результаты в основные поля.

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

Еще одна занятная возможность (допустим, уже реализовано обратное преобразование - из основных полей текст собирается в эту дополнительную textarea): можно быстро скопировать всю форму и послать другому оператору, или сохранить в текстовик, или еще куда-нибудь.

Лично я самым большим преимуществом (ускорением) считаю тот факт, что не нужно перемещаться между полями - вводи данные в порядке поступления, а уж они сами попадут в нужные места. Обычную форму легко заполнять подряд, а вот вразброс - довольно неудобно.

А еще можно вспомнить, как кассирши в супермаркетах и пиццериях не глядя выстрачивают коды товаров/ингредиентов. По-моему, одно другому не мешает, т.е. форма может принимать как название, так и код. Хотя опять же - нужно еще подумать.

Конечно, для более сложных форм логика уже не такая тривиальная. Но все решаемо, ИМХО. Где-то у меня был рабочий прототип, нужно будет выложить и запостить ссылку.

воскресенье, 6 апреля 2008 г.

Кеширование картинок, упомянутых в CSS-коде

Никогда не видел, чтобы кто-то такое делал. Хотя идея лежит на поверхности: обойти все теги link и style, из них "выкорчевать" все url(...), затем полученные URL'и подгрузить любым доступным способом. "Отзывчивость" разного рода скриптов, манипулирующих классами, должна значительно возрасти, стать более гладкой. Код может быть оформлен совершенно независимо от другого контента на странице, отдельным скриптом. Ну, разве что страница генерирует CSS на лету, в процессе исполнения, уже после onload. Но во всех остальных случаях должна получиться польза.

суббота, 5 апреля 2008 г.

Измеритель удачливости

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

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

пятница, 4 апреля 2008 г.

Онлайновое игровое пространство

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

четверг, 3 апреля 2008 г.

Самообучающиеся психологические тесты

Проводим тестирование (например, тест Люшера - есть список цветов, человек сортирует их в порядке "в начале те, что нравятся). Подсчитываем результаты. Выдвигаем предположения ("вы беспокойный...", "вы безответственный...", "вы мужчина...") с помощью экспертной системы, или может нейронной сети. На каждое предположение спрашиваем у пользователя оценку точности результата. По этой оценке корректируем какие-нибудь коэффициенты, которые регулируют выдвижение предположений. Следующий тестируемый уже должен быть более точно оценен и получит более точные предположения. Где-то так.

среда, 2 апреля 2008 г.

"Живая" иллюстрация JPEG-качества на JavaScript

Допустим, есть некоторый сайт, который позволяет загрузить картинку, что-то с нею сделать, затем скачать результат в виде JPEG-файла. Например, просто пережимает картинку с меньшим качеством или конвертирует PNG/GIF/BMP/TIFF в JPEG выбранного качества.

В диалоге экспорта/сохранения можно было бы вживую проиллюстрировать изменение результата в зависимости от выбранного уровня качества. Для этого нужно на сервере сгенерировать две картинки - очень плохого и очень хорошего качества, а затем одну подложить под другую, сделав верхнюю полупрозрачной. Степень прозрачночти верхней картинки примерно соответствует качеству результата. Если привязать это дело к типичному движку-выбиралке (slider), то тогда и получится живая иллюстрация степени компрессии.

Можно показывать не всю картинку, а небольшой участок в увеличенном виде. Это уменьшит нагрузку на сервер, а также даст возможность поподробнее рассмотреть результат.

Микространички в гриде (еще одна социальная сеть)

Точнее, не сеть, а принцип. Такие вот свойства:

  • каждый участник имеет свою "микространицу" - небольшой участок с произвольным контентом;
  • контент микространицы - фото, картинка, текст, какие-нибудь значения (день рождения, количество дней в браке, иконка разбитого сердца на каждый неудавшийся роман, последняя запись с twitter.com, статус вроде асечного, и т.д.), или скорее комбинация всего этого; все управляется чем-то вроде билдера;
  • некоторые части контента могут обновляться самостоятельно - важный для человека фид, таймер, еще что-нибудь;
  • у каждого участника есть страница, на которой расположены микространицы всех его друзей (или сеткой, или произвольно - это уж кто как хочет);
  • когда участник заходит на свою страницу друзей, все недавно изменившиеся микространицы подсвечиваются; должна быть возможность быстро посмотреть, что изменилось на каждой отдельной странице (пара кнопок "вперед/назад на шаг").

Такой вот "пульт управления". Было бы интересно на флеше сделать прототип - анимировать, скажем, несколько воображаемых минут деятельности такого пульта.

вторник, 1 апреля 2008 г.

Пляшущие человечки

  1. Берем фотографию человека в полный рост:
    • пользователь загружает файл...
    • ...или делает вебкамерой несколько "снимков".
  2. На фотографии выделяем голову, туловище, плечи, предплечья, кисти, бедра, голени, ступни:
    • автоматически (образ ведь довольно несложен, на контрастном фото проблем возникнуть не должно)...
    • ...или просим обвести части тела мышью.
  3. Вырезаем выделенные области и создаем спрайты.
  4. Накладываем на спрайты заранее записанный танец - вроде motion capture, только проще.
  5. Добавляем музыку, фон, дискотечную анимацию или что-то в этом роде.
  6. Экспортируем как Flash-ролик.

Человечков может быть много - даешь пирамидальные танцы имени Бритни Спирс. Вместо одной фотографии можно загрузить несколько: с разные выражения, левый-правый профиль, фас и т.д. Должно получиться симпатично. И, что самое приятное, все реализуемо в рамках Flash (из него даже вебкамера вроде бы доступна).