Category Archives: Uncategorized

vim syntax highlighting for cfengine3

Major part of my work these days is connected with cfengine3 and writing promises. I’m kind of a vim-guy, so clearly I’m using it when writing cfengine promises and when you write a lot of code, you’d definitely want to make your development environment comfy and snug. Part of being comfy and sung in my understanding is syntax highlighting, which tremendously simplifies reading code and makes you spot typos and other sorts of mistakes right away.

There’s an initial version of syntax highlighting for cfeninge, written by Neil Watson available on github. However, I wanted more sophisticated highlighting functionality, so I took Neil’s work and spent couple of weekends extending it. Here are some screenshots with results of that extension (click to see them full-size):


At the moment, the module highlights correctly cfengine-stdlib.cf and all cf files in examples/ directory of cfengine with exception of knowledge-related promises. There’s still a lot of work to do – a bit of refactoring and then, perhaps, a rudimental syntax checker – but it seems to me already usable, so I decided to release it’s “first” version.

The syntax highlighting module is available at https://github.com/ivanpesin/vim_cf3/tree/master/syntax. To activate it, you’ll need to save cf3.vim in ~/.vim/ directory and add following lines to your ~/.vimrc:

 

Эффективное разрешение проблем

 

Заметки с тренинга Саши Орлова и Славы Панкратова.
Для заинтересовавшихся: http://www.stratoplan.ru/free/tools/

Содержание:

Будьте конструктивны

 

Признаки конструктива:

  • Своевременность
  • Обсуждается с тем, с кем можно решить
  • Приводятся данные и факты
  • Цель: решить проблему, а не человека
Четыре причины, почему люди чего-то не делают:

  • Нечёткая цель — что требуется-то?
  • Не умеют — надо ли научить?
  • Не могут — позволяют ли время/условия?
  • Не хотят — почему могут не хотеть?

4 фазы решения конфликта/проблемы

1. Подготовка

  • Определите проблему
  • Поставьте цель
  • Запланируйте подход
  • Решите, когда обсудить проблему
Подробнее
  • Определите проблему
    • Каковы мои причины чтобы ее решить?
    • Мое видение проблемы?
  • Поставьте цель
    • Чего я хочу достичь в результате конфронтации?
  • Решите, стоит ли связываться
    • Если не решать, то что будет не так?
    • Это важно для моей работы?
  • Определите время и место. Слушать невозможно, когда:
    • Вы находитесь в состоянии стресса / Под давлением времени
    • На вас «напали»
    • В плохом физическом состоянии
    • Вы привыкли сразу говорить
    • Вы не уважаете собеседника
  • Определите подход
    • Говорите от первого лица
    • Заранее продумайте фразы. Порепетируйте.
    • Будьте объективны. Факты и данные.

План подготовки

  1. В чем проблема?
    • Как я это вижу:
    • Как остальные могут это видеть:
  2. Моя цель? Чего я хочу достичь в результате конфронтации?
  3. Стоит ли связываться?
  4. Где и когда обсудить проблему?
  5. Как я опишу проблему (словами «о себе»)?
  6. Данные и факты?

2. Проблема

  • Озвучьте проблему
  • Послушайте точку зрения другой стороны
  • Согласие по проблеме
Подробнее
  • Идите по плану
    • Встретьтесь с человеком (приватно)
    • Помните, что решаете проблему, а не человека
    • Используйте данные и факты
  • Опишите проблему
    • Словами от первого лица
    • Не повышайте голос
    • Подчеркивайте важность. Не шутите.
    • Говорите о настоящем и будущем
    • Ваша задача: решить проблему, и чтобы решение работало в обе стороны
  • Слушайте (открытые вопросы)
  • Подведите итог – придите к согласию по тому, что проблема существует

Ключевые практики при обсуждении:

  1. Говорить от себя и в позитивном ключе
  2. Описывать проблему с точки зрения, как она влияет на работу.
  3. Подчеркивать, что заинтересованы в обоюдовыгодном решении.
  4. Спросить точку зрения другой стороны на проблему.
  5. Слушать эффективно (задавать открытые вопросы, уточнять, повторять своими словами, записывать)
  6. Подвести итог по проблеме

3. Решение

  • Попросите предложить решения
  • Рассмотрите варианты решения; выберите одно
  • Зафиксируйте договоренность
Подробнее
  • Перед переговорами: убедитесь, что есть общее понимание проблемы
  • Попросите предложить решения
  • Слушайте
  • Объясните свое решение
  • Рассмотрите другие варианты
    • Выпишите причины каждой стороны
    • Отметьте пункты согласия и несогласия – это будет чеклист для других вариантов
    • Спросите: «Как вы думаете, мы рассмотрели все варианты»?
  • Выберите решение и задокументируйте его:
    • Что будет сделано, индикаторы, список действий, ресурсы

Ключевые практики при выработке решения:

  1. Просить предложить возможные решения.
  2. Слушать и пытаться понять
  3. Предлагать свои решения
  4. Рассматривать другие варианты
  5. Выбрать решение, которое устраивает обе стороны
  6. Проверить его на реализуемость
  7. Написать письменный план (что будет сделано, индикаторы, список действий, ресурсы)

4. Контроль

  • Установите дату, чтобы обсудить прогресс
  • Проверьте, достигнута ли цель
  • Проверьте, что процесс работает для обеих сторон
Подробнее

  • Установите систему обратной связи. Например:
    • Проверять список действий «сделано-не сделано» в конце каждого четного дня
    • Посылайте «спасибо», когда виден положительный сдвиг в решении проблемы
  • Напишите «риск план»
    • Нагенерите список того, что может помешать реализовать ваше решение
    • Напишите план, как вы будете с этим бороться

 

 

Если решение не работает, то возвращаемся к фазе 3