Super User v1.2.2

Немного доработал свою крохотную утилитку Super User. Добавил родную поддержку систем на ARM64, убрал неуместное ограничение на длину команды, и добился ещё более компактного исполняемого файла, ровно 4096 байт для всех билдов su.exe. Идеально!

Правда, давно хотелось как-то решить проблему, что Windows Defender часто считает мои исполняемые файлы подозрительными из-за отсутствия цифровой подписи. Совсем недавно оформил подписку на Azure Trusted Signing и начал подписывать свои программы. Выяснилось, что цифровая подпись добавляет почти 16 килобайт данных. Это огромный удар по моему увлечению созданием минимальных исполняемых файлов! Из-за цифровой подписи, su.exe стал почти 20 килобайт. Что ж, придётся смириться, так как предупреждения Windows Defender меня самого уже давно доставали на каждой новой системе. С цифровой подписью предупреждений должно стать гораздо меньше.

Скачать: sucmd.7z (18КБ). Страница проекта →

Hosts Commander v1.6.3

  • Возвращается ненулевой код ошибки в случае ошибки выполнения команды.
  • Команда show переименована в в более понятное unhide.
  • Команда list воспринимает show как алиас.
  • Команда empty переименована в reset.
  • Опциональный аргумент shell для запуска интерактивного командного интерпретатора.
  • В аргументах с хостом игнорируется указанный по ошибке протокол http://.
  • На 64-разрядных Windows программа выполняется в 64-разрядном процессе (AMD64 и ARM64).
  • Другие косметические изменения.
  • [2024/11/12] Добавлена цифровая подпись.

Скачать: hostscmd.7z (30КБ). Страница проекта →

Sound Keeper v1.3.4 с билдом под ARM64

  • Доработан воркараунд для утечки памяти в WASAPI в эксклюзивном режиме на Windows 8-10.
  • Билд под ARM64 (со статически слинкованным рантаймом си, из-за чего больший размер файла).
  • [2024/11/12] Добавлена цифровая подпись.

Скачать: soundkeeper.7z (90КБ). Страница проекта →

Лаконичный макрос defer для C++

Ручное управление ресурсами в низкоуровневом си-подобном коде на C++ — довольно хлопотное дельце. Создание достойных RAII-врапперов для каждого используемого сишного API не всегда практично, а использование подходов с goto cleanup или множеством вложенных if (success) вредит читаемости кода.

Макрос defer, вдохновленный Go, как никогда кстати! Использовать его просто:

void* p = malloc(0x1000);
defer [&] { free(p); };

Отложенная лямбда будет выполнена при выходе из области видимости, независимо от того, будет ли выполнен return, брошено исключение (если разрешено), или даже выполнен goto наружу.

Реализация макроса лаконична и полагается на базовые возможности C++17 (Clang 5+, GCC 7+, MSVC 2017+):

#ifndef defer

template <typename T>
struct Deferrer
{
	T f;
	Deferrer(T f) : f(f) { };
	Deferrer(const Deferrer&) = delete;
	~Deferrer() { f(); }
};

#define TOKEN_CONCAT_NX(a, b) a ## b
#define TOKEN_CONCAT(a, b) TOKEN_CONCAT_NX(a, b)
#define defer Deferrer TOKEN_CONCAT(__deferred, __COUNTER__) =

#endif

Данный макрос по-настоящему zero-cost и не зависит от рантайма C или стандартной библиотеки, поэтому его можно использовать даже в разработке под ядро ОС.

Читать далее

Unchained Nostalgia v1.5

Демка на основе легендарного многоигрового картриджа 9999-in-1 для Dendy с чайками и Unchained Melody в меню.

В 2023 году я готовил юбилейное обновление Unchained Nostalgia: 10 лет демке, 30 лет первым многоигровкам с Unchained Melody и самой Dendy, а также 40 лет оригинальному Famicom. Но на что-то под конец года отвлёкся, поэтому оно так и осталось без релиза. Выпускаю сейчас задним числом в том состоянии, в котором проект был в ноябре 2023.

  • Эффект падающих звёзд на ночных слайдах. Можно загадывать желания =)
  • При включении режима автоматической демонстрации, сразу же отображается самый подходящий слайд.
  • Режим автоматической демонстрации включается автоматически после долгого простоя на подходящем слайде.
  • Более точная синхронизация автопролистывания слайдов с ударниками в мелодии (из-за ошибки, был сдвиг на 6 кадров).
  • Более отзывчивая реакция на быстрое переключение слайдов.
  • Используется стандартный вертикальный мирроринг NROM (вместо нестандартного 4-screen) для лучшей совместимости.
  • Облегчённая версия звукового движка в NSF.
  • Размер NSF-файла: 1632 байт.

Скачать: unchained_nostalgia.zip (20КБ). Страница проекта →

Обновления метеорадара 2023

  • При заходе после долгого простоя, робот сразу загружает только одну радарную карту (чтобы быстрее показать её пользователю), и потом в фоне остальные.
  • В интерфейсе заранее отображаются метки времени радарных карт, которые вот-вот будут загружены роботом. Они серые, их нельзя выбрать до того как они будут готовы.
  • Более частое автообновление во время ожидаемого появления свежей радарной карты, с округлением до 15 секунд вверх вместо 30.
  • Меньшая задержка при клике на кнопку обновления вручную.
  • На небольших экранах смартфонов теперь отображаются все 12 меток времени (из-за недочёта отображалось только 11).
  • Прямые ссылки на изображения радарных карт, которые устарели и были автоматически удалены, теперь вместо ошибки перенаправляют на соответствующую страницу радара со свежими данными.
  • Исправлен сбор статистики по использованию Internet Explorer. Из-за отсутствия поддержки Max-Age в Set-Cookie даже у IE11, число пользователей IE завышалось в разы. Так как годовая статистика испорчена из-за этой проблемы, отображается статистика за последние 28 дней.
  • На десктопе используется шрифт Tahoma вместо Arial. Он лучше подходит для отображения изменяющихся чисел из-за одинаковой ширины всех цифр.
  • Кстати, в этом году radar.veg.by исполнилось 10 лет =)

Запустить метеорадар →

phpBBex v1.9.7

phpBBexНебольшое обновление моего форка phpBB 3.0. Реализована поддержка SMTP+TLS для доставки писем. Добавлена умная автонастройка сервера и убраны утратившие смысл ручные настройки. Удалено немало устаревшего кода, дистрибутив полегчал почти на 100 килобайт! Поддерживаются PHP 5.6-8.3. Подробнее →

Sound Keeper v1.3.1

  • Исправлена ошибка, которая могла приводить к зависанию программы при добавлении и удалении аудио устройств.
  • Fluctuate воспринимает не-PCM форматы вывода (вроде Dolby Atmos) как 24-разрядные вместо 16-разрядных.
  • Параметр частоты F ограничен половиной текущей частоты дискретизации, чтобы избежать генерацию неожиданного шума.
  • Более детальные логи в отладочной версии. Отладочный вывод может быть перенаправлен в файл.

Скачать: soundkeeper.7z (23КБ). Страница проекта →

Закат эпохи Internet Explorer на основе статистики метеорадара

IE Meter

Появилась страничка, на которой можно наблюдать закат эпохи некогда легендарного Internet Explorer. Данные основаны на статистике по уникальным посетителям метеорадара за последние 365 дней. Период такой большой, чтобы избежать влияния ежегодных колебаний и сделать значение более стабильным. Чем меньше суммарная доля всех версий IE, тем больше его логотип будет в тени современных технологий. IE 11 и IE Mobile 11 вышли в далёком 2013 году, после чего их развитие было остановлено, а на замену пришёл Edge, который первые годы работал на доработанной версии движка IE (EdgeHTML 12-18), а в 2019 перешёл на Chromium. Движок IE всё ещё ограниченно поддерживается метеорадаром. На удивление достаточно много людей по сей день заходит при помощи этого устаревшего браузера, особенно со старых смартфонов на базе Windows Phone.

Закат эпохи Internet Explorer →

Помимо этого, немного обновился интерфейс метеорадара:

  • Кнопки обновления и часового пояса поменялись местами. Кнопка обновления данных переехала впервые с самого появления метеорадара в 2013 году! Самое радикальное изменение в интерфейсе за все эти годы =)
  • Дата радарной карты отображается только если радар не работает и отображаемые данные устарели. Если данные актуальны, нет смысла показывать текущую дату.

Запустить метеорадар →

phpBBex v1.9.6

phpBBexНебольшое обновление моего форка phpBB 3.0. Добавлена поддержка свежего PHP 8.2, реализована полная поддержка UTF-8 включая emoji, удалёно много устаревшего кода (дистрибутив полегчал на 350 килобайт!), стандартные правила форума значительно сокращены с сохранением сути, исправлен ряд проблем и ошибок. Подробнее →

Sound Keeper v1.3.0

  • Fluctuate делает одну флуктуацию в секунду по умолчанию. Частота может быть изменена параметром F.
  • Возможность периодичного проигрывания сигнала (параметры L и W) с опциональным фейдингом (параметр T).
  • Новые виды сигналов, генерирующих шум: White, Brown, и Pink.
  • Новая команда для остановки уже запущенной копии программы: soundkeeper kill
  • Новый режим Analog, который работает как противоположность Digital.
  • Аудио-устройства Remote Desktop игнорируются (это может быть отключено параметром Remote).
  • Новый режим OpenOnly, который просто открывает аудио-устройство, но не отправляет на него сигнал.
  • Новый режим NoSleep, который отключает код определения автоматического ухода системы в сон (Windows 7-10).
  • При отсутствии подходящих аудио-устройств, программа работает как заглушка в ожидании подходящих устройств.
  • Sound Keeper не должен предотвращать Windows 10 от автоматического перехода в сон.
  • Программа работает корректно, когда автоматический переход в сон в Windows 10 отключён.
  • Код, позволяющий системе уснуть, пришлось отключить в Windows 11 из-за особенностей этой версии ОС.

Скачать: soundkeeper.7z (23КБ). Страница проекта →

Обновления метеорадара 2022

  • Пролистывание радарных карт скроллом на компьютере. Увеличение теперь доступно с зажатым Ctrl.
  • Исправлено копирование ссылок на метки времени. Если поделиться такой ссылкой в Telegram или Twitter, в превью будет показана большая картинка с выбранной радарной картой.
  • При выборе времени пальцем, активная метка сдвигается вверх, чтобы было видно выбранное время.
  • Возможность переключения часового пояса между локальным и UTC+0.
  • Размер изображений определяется автоматически, что предотвращает искажение пропорций.
  • Экспериментальная поддержка радара Хельсинки.

Запустить метеорадар →

phpBBex v1.9.5

phpBBexНебольшое обновление моего форка phpBB 3.0. Улучшена поддержка PHP 7.0+, появилась поддержка свежего PHP 8.1. В профиле пользователя теперь можно указать Telegram. Помимо этого, исправил несколько незначительных ошибок в коде и внёс небольшие косметические изменения в стиль. Подробнее →

Поддержка радарных карт с нового сайта pogoda.by

На meteoinfo.by большое обновление. Все радарные карты обновились и переехали на новый сайт pogoda.by, из-за чего пришлось выпустить незапланированное обновление для мобильного интерфейса radar.veg.by.

  • Поддержка радарных карт с нового сайта pogoda.by.
  • Уменьшена задержка появления новых радарных карт.
  • Отображается до 12 последних радарных карт.
  • На небольших экранах уменьшается шрифт неактивных меток времени, чтобы больше помещалось.

Целиться в новые маленькие метки времени не обязательно. Достаточно коснуться полосы выбора времени в любом месте, после чего можно водить пальцем влево и вправо, чтобы наблюдать изменение обстановки в динамике.

Запустить метеорадар →

Sound Keeper v1.2.0

  • Sound Keeper более не предотвращает автоматический сон компьютера.
  • Новый тип потока Sine, который может быть полезен для аналоговых или «слишком умных» аудио выходов.
  • Когда пользователь запускает Sound Keeper, ранее запущенная копия автоматически завершается.
  • Поток Fluctuate учитывает формат семплов аудио выхода (16/24/32-bit integer, и 32-bit float).
  • Поддержка параметров командной строки. Пример: SoundKeeper64.exe sine -f 1000 -a 10.
  • Временный костыль для обхода ошибки в Windows 10, приводящей к утечке памяти в сервисе аудио при использовании эксклюзивного режима, включается только на подверженных проблеме версиях Windows (8, 8.1, и 10).

Скачать: soundkeeper.7z (17КБ). Страница проекта →

Обновления метеорадара 2021

  • Появилась поддержка новых беларусских радаров с meteoinfo.by с большими изображениями нового вида.
  • К сожалению, радар Борисполь (Киев) более недоступен на meteoinfo.by, поэтому теперь в качестве источника для Киева выступает сайт meteo.gov.ua. К сожалению, информация появляется там с задержкой 40 минут.
  • Решены проблемы, которые иногда приводили к увеличению страницы вместо увеличения картинки при зуме.
  • Таймер автообновления больше не останавливается на 00:00 после выхода из спящего режима.
  • Вернулась ограниченная поддержка старых браузеров: IE11, Firefox 28-52 и Chrome 12-49.
  • Снимки старше 24 часов не отображаются (чтобы не вводить вас в заблуждение).
  • Новая анимация вращающихся стрелок во время обновления и другие косметические изменения.

Запустить метеорадар →

phpBBex v1.9.3

phpBBexНе прошло и пяти лет, наконец добрался до своего форка phpBB 3.0 и добавил поддержку PHP 7.0+ и PHP 8.0. На новом PHP всё работает заметно быстрее и потребляет в 2 раза меньше ресурсов. Ого! Помимо этого, исправил несколько незначительных ошибок в коде и внёс небольшие косметические изменения в стиль. Подробнее →

Hosts Commander v1.6.2

  • Исправлена ошибка, которая могла приводить к зависанию при некорректном файле hosts.
  • Комманда list использует аргумент --all вместо all, и он может быть как до, так и после маски.
  • Более понятный вывод сообщений от команды add в случае повторного добавления уже существующего хоста.
  • Автоматическое снятие флага "только для чтения" с файла hosts перед изменением.
  • Новые алиасы команд: unset для rem, и erase для empty.
  • Исходный код переехал на GitHub.

Скачать: hostscmd.zip (21КБ). Страница проекта →

Sound Keeper v1.1.0

  • Поведение по умолчанию может быть изменено добавлением опций к имени исполняемого файла.
  • По умолчанию используется основной аудио выход. Добавьте All или Digital к имени исполняемого файла Sound Keeper для включения Sound Keeper на всех или только на цифровых аудио выходах.
  • По умолчанию используется неслышимый сигнал. Добавьте Zero к имени исполняемого файла чтобы использовать поток нулей в качестве сигнала (как это было в Sound Keeper v1.0).
  • Временный костыль для обхода ошибки в Windows 10, приводящей к утечке памяти в сервисе аудио при использовании эксклюзивного режима. Будет удалён позднее, когда проблема будет исправлена в самой Windows 10.
  • Исправлена ошибка, которая приводила к утечке памяти, когда другая программа выводила звук в эксклюзивном режиме.
  • Ещё более компактный размер исполняемого файла.
  • Исходный код переехал на GitHub.

Скачать: soundkeeper.7z (15КБ). Страница проекта →

Обновления метеорадара 2020

  • Используется HTTPS, если браузер поддерживает.
  • Возможность скопировать ссылку на конкретное время. Используйте контекстное меню на кнопках с метками времени.
  • Поддержка Telegram и Twitter. Если поделиться ссылкой с меткой времени, то будет показана большая картинка с обстановкой за выбранное время.
  • Увеличение картинки колесом мышки на настольных компьютерах.
  • Незначительные косметические изменения.

Запустить метеорадар →

Hosts Commander v1.6.1 — модификация hosts из командной строки

Небольшое обновление ещё одной программы из 2013. Hosts Commander был пересобран под .NET 4.0, поскольку эта версия теперь поставляется с Windows по умолчанию, и её установочный дистрибутив в разы меньше .NET 3.5 (48МБ против 232МБ).

Скачать: hostscmd.zip (21КБ). Страница проекта →

Super User CMD v1.2.1 — запуск программ с повышением привилегий через UAC из командной строки под Windows

Данная программа предназначена для запуска команд с правами администратора из командной строки Windows. В отличие от команды runas, где требуется ввод пароля, здесь просто появляется диалог UAC, что гораздо удобнее. Отличительная особенность от стандартных средств — утилита не теряет текущий каталог.

На самом деле, эта программа была написана в 2013 году и версия 1.2.0 была опубликована на моём другом сайте. Сейчас пересобрал её с поддержкой 64-разрядных систем, в связи с этим и публикую её здесь с версией 1.2.1.

Скачать: sucmd.zip (7КБ). Страница проекта →

Метеорадар обновлён 2019

Интерфейс для метеорадаров от meteoinfo.by переехал на более короткий адрес radar.veg.by. Такой адрес гораздо удобнее и быстрее набирать на смартфоне. Также в последнее время были сделаны и другие приятные изменения:

  • Справа вверху показывается текущий часовой пояс, который используется для отображения времени.
  • На компьютере картинки можно переключать стрелками влево/вправо.
  • На смартфоне картинку можно увеличивать до масштаба 2x.
  • Если страница радара на данный момент не видна на экране, автоматическое обновление откладывается.
  • Страница может работать как мобильное приложение, если её добавить на главный экран (Android).
  • Уменьшена задержка, с которой новые изображения с meteoinfo.by появляются в мобильном интерфейсе.

Запустить метеорадар →

Запуск просмотрщика картинок из Windows XP на современных Windows

Есть у меня папка со старыми картинками, которые я собирал в нулевых. Переношу с компьютера на компьютер вместе со всеми моими файлами при каждом апгрейде, изредка захожу поностальгировать. Но каждый раз меня немного смущало то, что стандартный просмотрщик Windows 7 не показывал GIF-анимацию, хотя память мне подсказывала, что во времена XP анимация показывалась без проблем. При очередном приступе ностальгии я всё же решил запустить просмотрщик из XP на Windows 7. После преодоления ряда препятствий, я теперь уверен — GIF-анимация там действительно поддерживалась! А главное — теперь я могу смотреть свою старую папку с картинками в аутентичном интерфейсе просмотрщика картинок Windows XP, что создаёт более подходящую атмосферу =)

Скачать: shimgvw_xp32.7z (включает бинарник и исходный код лаунчера, плюс shimgvw.dll из англоязычной Windows XP SP3).

Читать далее