пятница, 24 октября 2008 г.

Введение в вездесущность

Вездесущность: именно такой термин описывает одно из самых популярных направлении в програмном обеспечеии на сегоднящний день: ubiquitous systems.

Wikipedia даёт нам следующее определение: модель общение человека с компьютером при котором процесс обработки информации интегрирован в многочисленные предметы окружающие нас и выходит за рамки превычного нам компьютера. Является следующим эволюционным этап развития вычислительной техники - "post-desktop" [при котором человек соответсвенно непрерывно использовал свой локальный компьютер для вычисления или общения через Интернет итд]. Самы простым примером конечно было бы описание системы - компьютер, мобильныя телефон, иные подобные (синхронизируемые) устройства ...

НО ...

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

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

PS: Наиболее частыми терминами встречающимися с вездесущностью являются Context-aware системы и RFID.

суббота, 18 октября 2008 г.

Некоторые проблемы поисковых систем

С ростом популярности Интернета, глобализацией мира и увеличением население (и как следствие рост как пользователей так и поставщиков информации через Интернет) количество информации в Интернете растёт экспоненциально. Как следствие, проблема поиска информации выполняемая поисковыми системами типа Google всё время усложняется. Очевидной проблема является постоянно увеличивающаяся нагрузка на оборудование с ростом объёма хранимой информации, а также непрерывно снижающаяся перидоичности ре-индексации ресурсов. Однако проблем увеличения объёма затрагивает не только поставщика услуги поиска информации, но отражается и на потребителях - количество ссылок на многие, даже специфические запросы столь велико, что обработать результат не представляется возможным.

Если результат выполнения поиска помещяется на 100 страницах, то он имеет столько же смысла как и 20 страничный ответ.

Поэтому одной из текущих задач поисковых систем являетя не только поиск информации, но и её визуализация и классификация.

Исследования показывают, что 81% пользователей не будут листать в поисках информации далее 3-х листов и либо откажутся от поиска либо переформулируют свой запрос.
Поскольку сегодня многие пользуются экранами с достаточно большим разрешением, то неиспользованное пространство можно было бы использовать для алгоритмов искуственного интеллекта, предлагающие там возможные варианты переформулирования запроса основываясь на
1. Фильтрации по типам найденных документов: HTML, PDF, DOC etc
2. Фильтрации на основе ключевых слов наиболее часто употребляемых вместе с терминами используемыми в текущем поиске
3. Логическое продолжение и дополнение терминов поиска основанное на логике предыдущих запросов.

Следует также упомянуть попытки визуализации выполнения запросов основанные за 3D представлении результата по
1. Темам
2. Подобию документов
3. Временные линии (наподобии организации фотографий по дате используемой во многих современных программах / когда фотографии располагаются вдоль оси времени или по оси времени показана гистограмма построенная на основе количества фото сделанных в каждый элементарный промежуток времени данной временной оси).

вторник, 14 октября 2008 г.

Само-организующиеся команды. Введение.

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

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

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

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

четверг, 9 октября 2008 г.

Программное обеспечение для автомобиля

Американская компания Ford будет включать в свои модели новую базовую опцию – система MyKey позволит родителям юных водителей самим задавать скоростные настройки автомобиля, чтобы подросток, получивший права, не мог превысить скорость.

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

Система представляет собой обыкновенный ключ зажигания со встроеным микрочипом, с помощью которого можно будет ограничивать скорость, выставлять максимально допустимую громкость магнитолы, каждую минуту будет включать звуковой сигнал, если . водитель не пристегнется и не позволить отключить системы безопасни езды (stability, traction control). Такое предупреждение есть и у других машин, не оборудованных данной системой, однако оно выключается через 5 минут, а в автомобилях с MyKey сигнал будет звучать бесконечно.
Английская версия пресс-релиза
Введние такой опции обусловлено тем, что ежегодно на дорогах в США гибнет около 5 тыс. юных водителей. Кроме того, исследователи Американского института дорожной безопасности (IIHS) установили, что молодые люди в возрасте 17–18 лет почти в 10 раз чаще попадают в аварии, нежели взрослые в возрасте от 30 до 59 лет. Кроме того, в IIHS утверждают, что гибель в авариях – одна из наиболее распространенных причин подростковой смертности.

Тенденции развития систем контроля начинающих водителей родителями набирают обороты по всему миру. Так, в марте 2008 года британская компания Green Road разработала специальное устройство размером не больше обычного ноутбука, которое устанавливается в машину и позволяет родителям следить, насколько аккуратно и безопасно ездят их дети, недавно получившие водительское удостоверение. Приспособление способно распознавать более 100 различных показателей при езде на автомобиле, таких как ускорение при обгоне, интенсивность торможения, скорость при прохождении поворотов. Кроме того, оно учитывает, сколько раз юный водитель проехал на запрещающий сигнал светофора. Все эти данные, а также и многие другие показатели публикуются в интернете на специальном сайте компании. В салон же автомобиля выведены три индикатора различного цвета. Если горит зеленая лампочка, то это значит, что водитель ездит аккуратно и правила не нарушает, желтый цвет предупреждает о том, что следует ездить аккуратнее. Ну а красный свет говорит о крайне опасной и неосторожной езде.

вторник, 7 октября 2008 г.

Методы тестирования

"Evaluating testing methods by delivered reliability" - статья которая даёт представление о некоторых методах тестирования с несколько иной точки зрения нежели широко расспростарнённая классическая методика.

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

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

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

Можно сказать, что поиск вариант "а" является активным способом поиска ошибок, а вариант "б" пассивным, ибо при оперативном тестировании просто запускаются реальные сценарии (либо автоматизированно, либо тестер следует им вручную) и мы просто ожидаем появления ошибок.

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

Сегодяшнее, широко распространённое мнение, что тестировние есть очень затратное занятие с точки зрения времени и человеческих ресурсов, продиктовано прежде всего применение исключительно варианта "а", тогда как оперативное тестирование используется лишь в очень небольшом наборе бизнес компаний.