С самого раннего своего компьютерного детства я весьма плотно и серьёзно полюбил алгоритмы. Да, собственно, чего уж — я их люблю до сих пор. Но ещё больше мне нравится когда они красивые и такие, что можно понять за одно прочтение 🙂 И сегодня как раз об одном из таких алгоритмов и пойдёт речь: удивительно простой…
-
EditorConfig. Борьба за консистентность
В вечной IT-борьбе бест практик и подходов, фреймворков и языков программирования, также неизбежно возникают и обычные вкусовые разногласия — табуляция против пробелов (конечно же табы!), в каком виде писать фигурные скобки, как именно заканчивать строку и как в целом форматировать код. Здесь сколько людей — столько и мнений. И лучшей фразой, наверное, не начнёшь сегодняшнюю…
-
Тестирование в .NET. Часть 2 — MSTest
Привет. В прошлой статье я немного рассказал о тестировании программного обеспечения в целом и вообще, сегодня мы попробуем написать несколько первых тестов при помощи фреймворка тестирования MSTest (Microsoft Test). Это простой, лёгкий и удобный вариант для быстрого тестирования личных или не очень больших проектов. Хотя, конечно, никто не запрещает покрывать все свои проекты при помощи…
-
Эмулятор шифровальной машины Enigma C# .NET
Наверное, две недели я занимался этим проектом и глядя на результирующее количество кода — трудно понять куда было потрачено столько времени и почему результат вышел настолько маленьким (относительно количества строк кода). Конечно, это были не фултайм две недели, а под настроение — когда хотелось и моглось. Тем не менее, по ощущениям прошло невероятно долгое исследование,…
-
Берлинский музей компьютерных игр Computerspielemuseum
За окном такая погода, что даже лежать трудно, не говоря уже о том, чтобы что-то полезное делать. И, наверное, единственное, что я действительно могу (кроме как играть в приставку) — это писать. Например, в этот блог или твиттер. А неиссякаемый беклог писанины, с которой я опаздываю — категорически огромен и конца и края этому не…
-
Битовые маски и флаги в .NET C#
Сегодня хочу поднять очень полезную, но не самую популярную в последнее время тему — использование поразрядных операций над двоичными числами, работа с битовыми масками и, соответственно, флагами. По сути всё вышеперечисленное — это звенья одной цепи и истории: как прятать хранить несколько значений (т.н. флагов) в одной численной переменной, а также как именно и где…
-
Передача некоторой части моих экспонатов компьютерному музею SncMuseum
Уже прошло около двух лет, как я писал о киевском музее программного обеспечения и компьютеров sncmuseum. За всё это время много воды утекло, у меня случилось\приключилось огромное количество всего, много изменений — я прогорел с очередным стартапом и перешёл в компанию на другую работу и иную позицию, уже как software engineering manager (а позже как…
-
Теория о бесконечных обезьянах
Страшно люблю разного рода абстрактные теории и мысленные эксперименты, существующие исключительно в гипотетическом поле и слабопроверяемые в реальной жизни. Одной из таких теорий является теория о бесконечных обезьянах, предполагающая ситуацию, в которой бесконечное количество обезьян с печатными машинками за бесконечное количество времени — рано или поздно могут напечатать любой заданный наперёд текст. К примеру, «Войну…
-
gRPC Часть №2 — .NET C# и Google Protobuff. Пишем свой proto-файл.
Несколько дней назад я написал вводную статью, открывающую небольшой сборник записей про связь между вселенной .NET и фреймворком Google Protobuff gRPC. Это вторая часть цикла, по сути также являющаяся вступительной. Сегодня мы научимся создавать свои собственные протофайлы (обычные текстовые файлы с расширением .proto) и изучим синтаксис proto3 (думаю, что версии ниже можно уже не рассматривать).…