"Calculation of CPU Utilization" or "What Can be Simpler"?

A few days ago our testing team asked me how they could collect CPU utilization of our apps and then build cool plots based on that information. My answer was simple "Give me 15 minutes and I'll send you back a simple instruction or snippet". After 3 days of thinking and experiments I understood that I knew absolutely nothing about CPU Time utilization, how to calculate it and what it means. Anyway, I have received quite interesting results and ready to share them.

[Читать далее (примерно 14 мин.)]

Data are Everywhere: Where are My Routes, Dude?

Data. Data are everywhere. Data were before us. Data will be after us. This story started in one of many usual boring evenings on a usual boring business trip but it unexpectedly transformed into a short but quite exciting research and absolutely not short but interesting walk called Brussels Comic Route. After the story had happened it was almost forgotten but all of a sudden I recalled it as Google violated GDPR and I could not keep it to myself anymore.

[Читать далее (примерно 18 мин.)]

WinDbg for .NET developers: "2. The Hunt for Loot"

Ideal crash dump analysis should be quite straightforward: we open WinDBG, load crashdump, load sos, enter !PrintException and obtain all information which we need. And from this prospective we can even use something easier like Visual Studio. Unfortunately, in real and cruel world this scenario can be complicated with a bunch of legacy code which was written ages ago by developers who thought about things such as quick sell of their product and did not think about anybody who would maintain it in the future. Second part "2. The Hunt for Loot" is dedicated to revealing some of techniques which can be used against the commonly made mistakes in exception handling, how they can complicate your life and how you can overcome them.

[Читать далее (примерно 10 мин.)]

WinDbg для .NET разработчика: "1. Начало"

WinDbg -- это, бесспорно, мощнейший отладчик под Windows. Он широко известен среди низкоуровневых системных разработчиков, но несправедливо пренебрегается, и, более того, не используется более высокоуровневыми прикладными разработчиками. Несмотря на то, что более известный отладчик, встроенный в Visual Studio Debugger, предоставляет простой и наглядный способ отладки приложений в ходе разработки, WinDbg имеет намного более мощные инструменты для отладки приложений в пользовательском окружении, когда единственное что у вас есть это дамп памяти уже умершей программы... или даже тогда, когда странные вещи творятся внутри вашей тестовой лаборатории или, еще того хуже, внутри вашего компьютера. В интернете можно найти огромное количество отличных книг и блог-постов, содержащих исчерпывающую информацию по использованию WinDbg. К несчастью, большинство из них имеет очень крутую кривую обучения (как у vi) и поскольку я так и не смог найти информацию в виде, позволяющем быстро начать использовать WinDbg, я решил собрать свой полученный опыт в виде коротких и практических историй. Первая часть "1. Начало" посвящена некоторым крайне простым вещам, которые Вам действительно необходимо сделать, и раскрывает наиболее частый сценарий применения WinDbg, а именно пост-мортем отладку.

[Читать далее (примерно 12 мин.)]

Hello, world!

This post can also be named "Why am I so crazy to start my own blog in 2018?". There are a lot of awesome articles and videos which describe almost everything. And no doubts, there are a lot of cool platforms such as Habr, Medium, CodeProject and other ones with a big community where chances that an article posted there would be read are much higher comparing with having a small blog like this one. A short answer would be "because I want and because I can!". If you want a longer, more descriptive and boring answer you can find it under the teaser. But you should realize that it is something like my own manifesto, so if you do not have a lot of time, have real life or at least your own hobby and do not think about creating your own blog you could skip it without any doubts.

[Читать далее (примерно 9 мин.)]