25 февраля 2010 г.

Автомобильная навигация

Так получилось, что некоторе время назад я перебрал очень много (возможно - все :) ) автомобильных навигационных программ для коммуникатора (КПК): от уже написанных до программ, находящихся в состоянии ранней разработки. Искал кое-что определённое, что сейчас не важно.
Буквально сразу в начале поиска, я перестал пытаться разбираться в программе и сразу от неё отказывался, если для её установки и запуска необходимо было долго разбираться (много читать :) ). Таким образом, начинаем формировать требования к идеальной навигационной программе:
  • Программа должна легко (прозрачно) устанавливаться и запускаться, т.е. в идеале установка должна проходить по стандартному алгориму установки программ для текущей OS.
Вторым шагом в большинстве программ была необходимость в установке карт. Вроде бы такая простая операция, как копирование, в некоторых программах превращалась в сущее мучение, особенно если карты и программа - от разных авторов.
  • Карты в программу должны устанавливаться ещё проще, чем сама программа.
Навигационная программа имеет связь с GPS. Следовательно, программа должна знать текущее местоположение пользователя. Если она знает местоположение, то она должна уметь скачать нужную карту с Internet'а и самостоятельно установить её. Пользователю можно только задавать уточняющие вопросы, но никак не заставлять его делать всю работу. Уточняющий вопрос, это например вопрос о том, скачать ли карту прямо сейчас, (с помощью доступного в текущий момент интернет-соединения) или подождать, когда пользователь подключит другой способ связи с интернетом.
Например, в одной из опробованных мной программ, небыло вообще такого понятия, (ну или почти небыло ;) ) как "скачивание и установка карт" - всё делалость автоматически. Конечно, таким образом повышаются расходы на интернет, но, согласитесь, что удобней этого ничего нет.

Из предыдущих пунктов следуют:
  • Программа и карты должны также прозрачно обновляться.
Одним из самых важных показателей качества программы является качество используемых ею карт:
  • Дорожная обстановка на картах (например, ремонт дороги или установка новых знаков) должна обновляться максимально быстро.
Сейчас это делается несколькими способами:
- только обновление карты целиком, обычно очень редко - ни о какой точности тут и говорить не приходится;
- обновление карты целиком + обновления дорожной обстановки, высылаемые пользователям отдельно довольно часто - хороший вариант;
- возможно, есть ещё способы, как в упомянутом мной ранее примере, когда пользователь работает постоянно с актуальной картой, хранящейся на сервере - идеальный вариант, но уже с некоторой избыточностью.

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

Но передача исправлений пользователям - только половина работы:. Основное - это нахождение изменений дорожной обстановки и их исправление.
Абсолютно все программы, которые я посмотрел, выполняют это только "ручками", т.е. люди каким-либо образом находят эти ошибки и вручную исправляют их на карте.
Сколько проходит времени между обнаружением и исправлением - достаточно, что бы ещё много пользователей "попали" на эту ошибку.
Я же считаю, что:
  • Программа должна уметь автоматически передавать ошибки в дорожной обстановке.
Как это можно реализовать:
- Пользователи в автоматическом режиме передают треки (маршруты), если их нет на карте или они не обладают необходимой точностью, таким образом прорисовываются новые дороги;
- Если пользователь едет по предлагаемому программой маршруту, но маршрут ведёт так, что пользователь должен нарушить ПДД, то пользователь съезжает с маршрута, а программа автоматически передаёт на сервер, что предложенный манёвр не выполним;
- Конечно, для уточнения, программа может уточнять некоторые детали у пользователя, как например, в последнем случае, действительно ли имеет место нарушение ПДД или пользователь решил ехать другим маршрутом. В любом случае, в этом процессе роль пользователя сводится к нажатию одной кнопки (причем нажать её можно после остановки транспортного средства, т.е. производить накопление данных - для безопасности) вместо того, чтобы заставлять пользователя запоминать ошибочное место и потом вводить (описывать) его где-либо ещё.
- Конечно, необходим дополнительный узел (сервер), который бы собирал эти данные и производил их обработку.

Думаю, продолжение следует ...

7 января 2010 г.

Бекап данных

Бекап данных на какое-либо хранилище в том же доме (квартире) обладает некоторыми недостатками, например, незащищённость от пожара, потопа или кражи.
Существующие онлайн-сервисы по хранению данных, при больших объёмах этих самых данных, превышают стоимость домашнего хранения.
Имеем проблему: хранить дома, но не дома. :)
Предлагается реализовать сервис, который предоставляет для двух пользователей (в идеале - хорошо знакомых друг другу, друзей, т.е. доверяющих друг друг) возможность удалённой синхронизации данных, а именно:
  • Каждый из этих пользователей покупает HDD одинакового объёма.
  • Каждый устанавливает этот HDD к себе в компьютер (в идеале - сервер, с постоянным доступом в internet).
  • Каждый пользователь самостоятельно следит за своим HDD. Т.е. в собственности каждого пользователя находится HDD, который содержит данные другого пользователя.
Про остальные детали, например, про необходимость шифрования или про пропускную способность интернет-канала, додумывайте сами. ;) Основную мысль я передал.

15 декабря 2009 г.

Шифрование. Перенос данных

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

Средства шифрования в современном своём представлении достигли того уровня, что любой пользователь может так зашифровать информацию, что злоумышленних, получивший каким-то образом доступ к зашифрованным данным, не имеет никаких шансов их расшифровать. Наличие доступа к Супер-копьютеру у злоумышленника, кстати, не на много увеличивает шансы расшифровки. :)
Т.е. при отсутствии у злоумышленника доступа к паролю, расшифровать данные - не реально.
Следовательно злоумышленник, помимо получения доступа к зашифрованным данным, может выполнить какие-либо незаконные действия с пользователем (похищение, насилие) с целью получения доступа к паролю.
В этом случае предлагается следующий ход (он может быть использован совместно с другими способами, не описанными в данном сообщении): генерировать пароль так, чтобы о нём не узнал пользователь! Например, пользователь запускает процесс шифрования данных, программа шифровки генерирует пароль, с его помощью выполняет свои функции шифрования, но вместо того, чтобы сообщить пароль пользователю, отправляет его на заданный e-mail, например, доверенного лица. При отсутсвии лица, которому можно доверить пароль, можно воспользоваться internet-сервисом отложенной отправки почты (когда письмо создаётся, сохраняется на данном сервисе, но отправляется после указанной даты). Конечно, в последнем случае, доступ к e-mail должен быть разрешён только из одного (защищенного) здания, т.е. необходимо наличие персонального почтового сервера.

18 октября 2009 г.

Снижение влияния компьютерных игр

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

Необходимо. При запуске игры спрашивать у пользователя его возраст и чем младше пользователь, тем труднее делать прохождение игры.
А для "самых маленьких" отключать возможность использования cheat-кодов (особенно "вечной жизни"), тем самым мы не будем развивать как минимум чувство вседозволенности.

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

17 сентября 2009 г.

Визуальные знаки различия воинских званий

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

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

20 июля 2009 г.

Сохранение контента в P2P-сетях (социальный способ)

Ранее я опубликовал технический способ сохранения контента в P2P-сетях (Сохранение контента в P2P-сетях). Сейчас описываю "социальный".

Рекомендуется вопользоваться опытом торрент сетей. Но с прицелом не в сторону раздачи, а на сам факт присутствия в сети.
Создаём сообщество со следующими правилами:
  • пользователь должен постоянно держать определённый контент, выдаваемый ему администрацией;
  • пользователь должен присутствовать в сети определённый период времени (период времени одинаков для каждого члена сообщества), отдавая этот контент другим участникам сообщества;
  • пользователь может неограниченно скачивать контент, находящийся у других членов сообщества.
При отсутствии держателя больше разрешенного времени, либо тот, кому этот контент нужен, либо в система автоматическом режимеформирует жалобу.
Администрация проверяет жалобу и если она (жалоба) оказывается правдой - исключает пользователя из сообщества. (Тут, конечно, можно поступать не так категорично.)
Администрация должна быть честной, если она хочет, чтобы к ним в сообщество шли новые члены.

В итоге каждому пользователю гораздо проще следить только за "своим" контентом. А все остальные пользователи гарантированно получают любой другой контент сообщества.

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

3 июля 2009 г.

Защита прав в киноиндустрии

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

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

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

P.S. Конечно, для кинопроизводителя, могут быть потери в том, что зритель, просмотрев предварительную версию, не будет приобретать полную. Но тут уже нужен более детальный анализ. :)