Блог тут я пишу

 

Поговорим сегодня о новом языковом механизме языка Go, — generics или шаблонах, если говорить в терминах C++, появившемся в языке, начиная с версии 1.18. Речь пойдет не об объяснении этого механизма своими словами, а о популярном утверждении о том, что их удобно использовать для реализации обобщенных деревьев (структура данных), не приколоченных гвоздями к какому-то конкретному типу данных.

 

Закрою для себя раз и навсегда споры о том, что быстрее — метод HasFlag у перечислимого типа помеченного атрибутом [Flags] или ручные битовые операции. Такие вопросы периодически возникают и споры могут быть жаркими.

 

Некоторая занимательная статистика по утекшим исходным кодам Яндекса

 

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

 

В разделе портфель у меня до сегодняшнего для находились недоделанные переводы документации веб сервера Apache. Так вот теперь, — их больше нет :(.

 

В приложении Hash Calculator, начиная с версии 5.2, появилась поддержка вычисления хэша blake3. Blake3 одна из самых (если не самая) быстрых общедоступных хэш функций, при этом она безопаснее того же md5 или sha1 и обеспечивает надёжность на уровне SHA-3. Теперь приложение поддерживает ровно 50 хэш функций.

 

Первая была восемь (sic!) лет назад. За это время сайт успел изрядно устареть как в плане используемых технологий, так и в плане актуальности информации. Проще говоря, — успел изрядно порасти мхом и покрыться толстым слоем пыли.

 

Сегодня исполняется 20 лет с момента первого поста на этом сайте. Целая эпоха по меркам IT, ну и наверно в современном мире, а не только в IT.

 

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

 

Исследование особенностей работы строкового метода IndexOf на разных платформах поддерживаемых .NET 5.0. Изначально я не ставил своей целью исследовать работу строковых методов в .NET. Мне просто хотелось лучше разобраться с BenchmarkDotNet. Вот об этом и пойдет речь в этом посте.

 

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

 

Полезный скрипт для поиска загрузчиков 1-го уровня Regin на вашем диске. Детали в основном посте.

 

Мой проект с открытым кодом msbuildteamcitytasks, находящийся на гитхабе, теперь имеет не только инсталлятор, но и nuget пакет.

 

Cтилевая таблица BootstrapValidator  преобразованная в LESS.

 

Релиз кандидат №5 Хэш калькулятора 3.0. Добавлена поддержка SHA3 (Keccak и FIPS 202 реализации). Поправлен баг с восстановлением односимвольной строки по её хэшу.

 

Релиз кандидат №3 Хэш калькулятора 3.0. Исправлена работа на 32 разрядных платформах, особенно на Windows XP. Обновлены также старые калькуляторы, т.к. они тоже не работали на 32 разрядных платформах (работали только на 64 разрядных). Проблема была в переходе на новую Visual Studio, в которой toolset по умолчанию не поддерживал корректно XP и другие 32 разрядные платформы.

 

Хэш калькулятор 3.0 уже близок к релизу. По сравнению с бета версией в RC2 (уже доступой для загрузки), появилось или было исправлено:

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

Ни шатко, ни валко, но тем не менее, идет разработка хэш калькулятора 3.0. Первая бета уже доступна для загрузки . Изменений в проекте достаточно много, но обо всем по порядку.

 

Тем временем, проект logviewer  продвинулся на следующий уровень. Выпустил версию 1.2, пока правда в бета стадии. Т.е. все основное было сделано, но могут быть не очень страшные баги. Нового в этой версии:

  • Теперь шаблоны парсинга журнала можно редактировать прямо из GUI (делается через настройки)
  • Настройка размера страницы (количество одновременно выводимых на экран сообщений), также может быть сделана через GUI
  • Использование регулярных выражений в фильтре теперь опционально (раньше были только регулярки), и включается/выключается кнопкой на панели
  • Теперь, между рестартами приложения, сохраняются настройки фильтрации по уровням и настройки сортировки
  • Опция открытия последнего загруженного файла при старте приложения
  • Поддержка больших лог файлов. Раньше размер файла ограничивался размером оперативной памяти, на компьютере, т.к. файл целиком затягивался в память. Теперь же все хранится в локальной базе (SQLite) и объем ОЗУ не особо критичен при обработка больших журналов
  • Теперь показывается прогресс загрузки (обработки) журнала в приложение.

Но это ещё не все! Проект стал Open Source, и находится на гитхабе . Приветствуются запросы на функционал и баг репорты.

 

Есть такой принцип, с красивым названием KISS (keep it simple stupid), что на русский можно перевести как — делай это проще, дурачок! Так вот следую ему, с главной страницы убрана крутилка (анонс), одного из последних пяти постов, который по рэндомайзеру обновлялся раз в 30 секунд. Считаю это не уместным в обычном блоге, формат подачи, более подходящий для какого-нибудь медийного сайта, или сайта крупной конторы с большим количеством новостей. Новостей тут, обычно, кот наплакал.