mnaoumov.dev
RSS FeedProgramming blog by Michael Naumov. Writing about TypeScript, PowerShell, Obsidian plugin development, and developer tooling.
Projects
obsidian-resources
Curated list of my Obsidian plugins, tools, and learning resources for plugin developers.
obsidian-dev-utils
Essential utilities for building Obsidian plugins.
obsidian-integration-testing
Run your plugin's tests inside a real, running Obsidian — desktop or Android.
obsidian-test-mocks
In-memory implementations of every class and function in obsidian.d.ts.
MathDoku Online Calculator
Online solver and calculator for MathDoku (KenKen) puzzles.
Recent Posts
Switch between three keyboard languages
An AutoHotkey v2 script that maps Left Control, Right Control, and Right Alt to instantly switch between English, Russian, and Ukrainian keyboard layouts.
Regex to find the end of file (EOF) in Visual Studio Code
The regex $(?!\n) matches the true end of file in Visual Studio Code's multiline search mode, enabling EOF-only bulk replacements.
PowerShell Predictive IntelliSense
How to accept PSReadLine Predictive IntelliSense suggestions in PowerShell 7.3 using the Right Arrow key, and why F2 switches prediction view modes.
Space Cadet Pinball Remake
Links to an improved open-source Space Cadet Pinball remake for Windows and an Android APK port with optional custom Russian sounds.
Software for perfectionists
A curated list of best-in-class tools for notes, photos, ebooks, music, and local file search chosen for their organizational depth.
Chrome search for dynamically loaded code
Enabling the Chrome DevTools setting 'Search in anonymous and content scripts' allows searching inside dynamically eval-loaded JavaScript.
How to debug Obsidian plugins
Practical guide to debugging Obsidian plugins using Chrome DevTools, eval-loaded source navigation, TypeScript compilation, and hot reload.
Total Commander - Ignore List
Total Commander's Ignore List feature lets you exclude wildcard patterns from directory synchronization and other file operations.
Perfect Notes or My Journey to Obsidian
A detailed comparison of note-taking systems over many years, explaining why Obsidian with Syncthing and a curated plugin list became the final choice.
Bulk update video files Capture Time in Adobe Lightroom Classic CC
Two methods for bulk-updating video capture time in Lightroom using ExifTool and the jb Video Metadata plugin, working around SDK limitations.