среда, 28 апреля 2010 г.

Карты знаний. Часть Вторая.

В продолжение предыдущего поста: Карты Знаний. Часть Первая.

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

Цели построения карт знаний могут быть разными в зависимости от ситуации. Здесь и далее основной целью будем считать определение должностных полномочий персонала компании и выявление требований к их знаниям. Имея на руках требования к знаниям, можно найти и определить потребность в знаниях, которых на деле нет, но которые нужны (“провалы в знаниях”, knowledge gaps в литературе).

Построение карты знаний состоит из 4 шагов.
Первый этап – построение организационно-штатной структуры компании. Основная задача такой модели – показать зависимости между должностями и конкретными сотрудниками. Пример модели орг-штатной структуры представлен ниже:

На втором этапе необходимо связать сотрудников с бизнес-ролями, которые они исполняют в компании. Разница между должностью и бизнес-ролью такова: должность описывает, в каком отделе человек состоит и каким инструкциям следует. А бизнес-роль показывает, что конкретно человек делает на своей должности. Так, например, два человека, занимающие одну должность, могут реально исполнять различные бизнес-роли в организации. Скажем, один человек занимается поддержкой оффициального сайта в актуальном состоянии, второй – рассылкой писем партнерам и клиентам, но при этом оба занимают должность «PR-менеджер». Формальное определение бизнес-роли может быть таким: Бизнес-роль – это специфический набор взаимосвязанных задач, выполняемых конкретным сотрудником в рамках конкретной должности. Пример модели бизнес ролей представлен на рисунке:



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



Последний шаг – определение полномочий сотрудника для исполнения той или иной бизнес-роли.


После определения требований к знаниям и полномочиям сотрудников, остается провести анализ реальной ситуации в компании. Все несоответствия с моделью и будут те самые knowledge gaps , устранение которых может оказаться большим бонусом компании.

Для хранения результатов исследования можно воспользоваться, например, таким шаблоном схемы:


Department
Subdepartment
Position
Business Role
Responsibilities
Knowledge
Person
Mid-level organizational unit







Low-level organizational unit







Position 1







Business Role 1.1
Responsibility1.1.1
Responsibility1.1.2
Knowledge categories
Person 1


Position 2







Business Role 2.1
Responsibility2.1.1 Responsibility2.1.2
Knowledge categories
Person 2



Business Role 2.2
Responsibility2.2.1
Knowledge categories
Person 2
Суммируая все вышесказанное, карта знаний показывает:
  • Информационные ресурсы и источники знаний
  • Использование этих ресурсов
  • О наличии чего, что мы не знаем, мы знаем (knowledge gap)
В дальнейшем расскажу, для чего применяются такие карты в компаниях и почему их стоит использовать.

воскресенье, 25 апреля 2010 г.

Старение и process.kill()

Стоит немного задуматься и представить себя великим программистом. У которого есть очень мощная рабочая станция и неограниченная фантазия. Вот сидит такой разработчик и тяжело, в поте лица, работает день и ночь, создавая свой продукт. Сначала он намечает себе цель – сделать нечто такое же, как он. Мы бы назвали это искусственным интеллектом или искусственным разумом – некая самообучающаяся система. Вот наш программист создает первые эскизы, испытывает первые прототипы. Он пишет юнит-тесты модуля памяти, тестирует генератор мыслей, отлаживает систему контроля эмоций. Затем все эти кусочки собираются в одно – и работа идет дальше…

Готовое ядро он облекает в форму – дает ей интерфейс взаимодействия с собой. Это может быть командный интерфейс, графический или визуально-голосовой. Потом он выделяет программе место на диске и… внимание! Запускает! Следит за загруженностью процессора и выделением памяти – они минимальны. Смотрит на производительность рабочей станции, и видит, что она не уменьшилась ни на йоту, настолько оптимально написан весь код. Повод собой гордится, однако что-то ему не нравится в его творении… В первую очередь предсказуемость. Стоило программе преодолеть первый этап обучения, как большинство ее реакций стало однотонно, все ответы - шаблонными.

Тогда он создает еще один экземпляр и запускает его. Следит за ним, наслаждается… Потом еще и еще один. Затем ему надоедает делать это вручную, и он пишет патч, позволяющей его творению самому запускать свои экземпляры. И, процесс за процессом, они начинают заполнять память компьютера, загружать  процессор. Ничтожный каждый конкретный, все вместе они забивают 30…50…70% мощностей машины, не давая нормально работать другим приложениям, тормозя их исполнение, нарушая результаты. А перезагрузить систему, допустим, нельзя! Слишком много трудов будет потеряно. Тогда программист идет на сложный, но необходимый шаг. Он пишет еще один патч, содержащий таймер. Обычный таймер, встроенный в каждый экземпляр: генератор псевдослучайных чисел настроен на диапазон от 0 до 120 по F распределению (или какому там? Чтоб вот так:  ) и как только количество тиков достигает полученной величины – все. Процесс самоубивается. Естественное желание создателя не потерять всю работу из-за любимого и интересного, но такого многочисленного и опасного для остальных, творения.

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

пятница, 23 апреля 2010 г.

Карты знаний. Часть Первая.

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

Здесь я расскажу о том, что такое карта знаний.

Преамбула


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



Амбула


Для начала стоит сделать отступление и разобраться, в чем же кардинальное отличие информации от знаний? 

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

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

Карты знаний
Сам термин Карта Знаний может показаться относительно новым изобретением человечества, однако это не так. Люди пользуются построением таких карт в своей жизни практически каждый день. Ключевым тут является то, что мы делаем это не систематически и, как правило, не документируем их. Ведь построение карты знаний (k-mapping в литературе), это ведение записей об информации и знаниях, которые нам нужны: где или у кого мы можем их взять, как и в каком виде они хранятся, под чьей ответственностью находятся и так далее. Ярким примером является то, что мы можем быстро найти что-угодно у нас дома или в офисе. Причина этого проста: у нас есть вся информация о месте и мы можем ее применять. Т.е. мы имеем знания о месте:
- где что лежит
- кто что знает
относительно нашего дома или офиса.

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

На базе всего вышесказанного можно попробовать вывести определение Карты знаний.

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

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

четверг, 22 апреля 2010 г.

Каты в блоггере

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

Вопрос: Туц?
Ответ: Тудуц!

так, чтобы ответ появлялся после нажания на вопрос.

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

Итак, для использования катов необходимо внести две правки в шаблоне блога.

Правка первая:
В стили (между тегами <b:skin>) нужно добавить следующее значение:
    div.mycut {
    /* прячет текст под катом */
        display:none
    }
    span.mycut {
    /* Внешний вид ссылки на сворачивание/разворачивание */
        cursor:pointer;
        text-decoration:underline;
        font-weight:bold;
    }


Правка вторая:
Затем внутри тега <body> нужно добавить:
<script type='text/javascript'>
    /* CUTs in Blogger © mazdaika.blogspot.com */
    function cut_prepare()
    {
    /*готовит документ к обработке катов: добавляет поле для ссылки на разворот/сворот, именует     его, вешает обработчик клика*/
        var mycuts = $("div.mycut");
        for(var i = 0; i < mycuts.length; i++)
        {

            $(mycuts[i]).attr("name", ">"+$(mycuts[i]).attr("name")).attr("name2", "\^"+$(mycuts[i]).attr("name2"));
            $(mycuts[i]).after("<span class='mycut'>"+ $(mycuts[i]).attr("name") +"</span>")

        }

     $("span.mycut").click(function() {uncut(this);})
    }
    function uncut(obj)
    {
    /*разворотка ката. Отображает тело ката, меняет имя ссылки на разворот/сворот, меняет обработчик ссылки*/
        $(obj).prev().css("display","block");
        $(obj).attr("innerHTML", $(obj).prev().attr("name2")).click(function() {cut(this);});
    }
    function cut(obj)
    {
    /*сворот ката. Прячет тело ката, меняет имя ссылки на разворот/сворот, меняет обработчик ссылки*/
        $(obj).prev().css("display","none");
        $(obj).attr("innerHTML", $(obj).prev().attr("name")).click(function() {uncut(this);});

    }
    $(document).ready(cut_prepare)
/* end CUTs in Blogger © mazdaika.blogspot.com */
</script> 


Чтобы код выше правильно работал, необходимо наличие подключенной библиотеки jQuery:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
Если она подключена в одном из виджетов, повторного подключения не требуется.

Теперь можно использовать каты. Для этого заключаем тело ката в такую оболочку:
<div class="mycut" name="Open" name2="Close"> Body </div>
где name - имя ссылки на разворот ката, name2 - имя ссылки на сворачивание ката, Body - тело ката.

Все, можно пользоваться. Количество таких катов на страницу не ограничено.
Пример1:
Hi! I'm a cut!

Пример2:
Привет, я - кат!

P.S.Зачем я это написал? Не знаю. Код примитивный, к тому же, я уверен, далеко не оптимальный. Навреное просто потому, что давно не трогал не Джаваскрипт, а тут такая возможность вспомнить молодость ((;

среда, 21 апреля 2010 г.

Мысли о рубежах

Интересная складывается картина.

Чем больше живу, тем меньше радуюсь каким-то достижениям. Начнем с раннего детства: тогда каждое новое открытие было как событие всей жизни. Оказывается, если кусать игрушки, а не просто ими играться, то гораздо веселее проходит время. Если начать есть апельсин, до того, как почистил его, то он горький. Если прыгать на кровати, то она смешно скрипит, и многое другое.. Все это было достижением, почти научным прорывом в сообществе себя, и, что самое главное, несло радость!

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

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

Сегодня сдал последний до сборов экзамен на Военной Кафедре. Все. "Военки", как я ее знал последние три года больше нет. Осталось пройти палаточный лагерь в поле, а это уже совсем не то, совсем другое. И сдал то неплохо - 7/10 - один из лучших баллов по курсу, но вот... Радости почти нет. Другой пример - олимпиада в магистратуру. Казалось бы, этап не менее важный, чем вступительные в ВУЗ, готовишься, пишешь и... Не чувствуешь тех эмоций, что привык. Нет безудержной надежды, что все хорошо или ужасной боязни, вдруг все плохо. Сплошной расчет: тут написал, там ответил, вот в этом задании не уверен. Точка. Тире. Выносите. Это ж к чему все катится? Скоро, допустим диплом защищать/получать, а я ничего эдакого и не почувствую?

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

воскресенье, 18 апреля 2010 г.

Gary Moore

Эмоции не передать! Вау-вау-вау-вау-вау!!!! А потом уиииии!!!! И еще вау-вау!!!

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

Самое главное - Гари Мур был шикарен! Так играть и упиваться музыкой может только он. Порой не покидало ощущение, что остальные музыканты на сцене вообще не нужны. Оно усиливалось в минуты, когда Гари импровизировал в гордом одиночестве, без поддержки других инструментов. Изначально не особо теплый зал, едва удостоивший выступающих хилых хлопков после первых песен, быстро раскачался, да так, что музыканты дважды возвращались на бис. Последние вещи пели все, уже вставшие со своих мест, зрители - от совсем школьников до седых стариков! Кричали вместе с Гари и улыбались и смеялись )) Невероятное ощущение радости переполнило, по моему, всех вокруг. Два часа пролетели на одном дыхании..

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


[ http://www.youtube.com/watch?v=Anm0DX-8PeA ]

суббота, 10 апреля 2010 г.

Alternating Current/Direct Current

Riot on the radio, pictures on the TV...



...Big gun kicks the hell out of you!