Tag Archives | программирование

Generic-функции и имена классов

Столкнулся недавно на работе… Возможно это очевидная вещь, но мне показалось не очевидным. По этому оставлю это тут — на всякий случай.

Предположим у нас есть функция:

public void SomeFunction()
{
    // Нам нужно вывести имя класса-шаблона T здесь
    // Самым очевидным будет сделать
    Console.WriteLine(nameof(T));
}

И это будет не верным — в консоль будет выведено «T».

Но как же нам получить имя пришедшего класса ?

public void SomeFunction()
{
    Console.WriteLine(nameof(typeof(T)));
    // или
    Console.WriteLine(typeof(T).Name);
}

Как то так.

Распробовал git merge

Только сейчас распробовал git merge. До этого просто ветки плодил. А сейчас похоже пришло время их собирать.

Вот например, есть у нас линуксовая и виндусовая ветки программы. Делаем merge и получаем вывод:

//<<<<<<< HEAD
	printf("\n\nCreate COF files:\n\n");
	for (size_t i = 0; i >>>>>> linux_COFC

Немного шаманства с автозаменой и у нас уже вот такое счастье:

#ifdef _WINDOWS
	printf("\n\nCreate COF files:\n\n");
	for (size_t i = 0; i 
	

Мониторинг за 4 раза :-) , агенты влияния.

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

Схема хранения данных, выбор протокола, реализация агентов мониторинга.

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

Continue Reading →

Мониторинг за 4 раза :-) , введение в мониторинг.

Quis custodiet ipsos custodes?

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

Немного теории для начала

Согласно WIKI:

Мониторинг — процесс систематического или непрерывного сбора информации о параметрах сложного объекта или процесса.

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

Качество работы любой системы мониторинга определяется тремя основными показателями :

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

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

Есть еще один, неофициальный показатель — степень доверия. Это то, на сколько доверяют системе мониторинга операторы. 🙂

Continue Reading →

Powered by WordPress. Designed by WooThemes