Coding projects (by me)

Fossil skins

My collection of Fossil skins (and ticket page) configurations.

Read More →

ZAAP

ZTreeWin Assistant Applications

Read More →

GetNewWallpapers

A small WinForms program to download wallpapers from Reddit, and preview them on all monitors.

Read More →

TownCrier

TownCrier is a Windows desktop application that lives in the system tray and displays Windows 11 toast notifications based on configurable rules.

Read More →

Mail Janitor

-line program that can sync e-mail messages, but also grou e-mail messages present on the server, and according to certain criteria, performs some actions on (some of) the messages in the group.

Read More →

Toggl Tools

One or more convenience tools around the Toggl API.

Read More →

SyncToKDrive

Tool to synchronize a folder (and all its subfolders) to kDrive. C#

Read More →

mail-to-ntfy

(No description available)

Read More →

Relay Bluesky to Ntfy

The C# source for a command-line program to monitor a Bluesky account, and relay each post to ntfy.sh, and optionally like each post.

Read More →

ZTreeWin Forum

Forum for the ZTreeWin orthodox file manager.

Read More →

Preview HTML

"Preview HTML" is a plug-in for Notepad++ which allows previewing a HTML page inside Notepad++ while editing it. (No longer maintained, source available).

Read More →

Power Info

A GUI tool displaying Windows' power info, such as battery status etc.

Read More →

HTMLTag

HTMLTag plug-in for the Notepad++ editor. (No longer maintained, source available).

Read More →

Notification sender

Small .net core console program to pick a quote, and send it out using Pushbullet.

Read More →

Fossil Rss Aggregator

(No description available)

Read More →

Slides

WinForms program to index images in one or more folders (and their subfolders) and show a shuffled slide show of them (while indexing more images).

Read More →

Tempus Fugit

Tempus Fugit is a small Windows program that shows visually how many hours you still have to work.

Read More →

Stylemys

A graphical user interface for the Fossil SCM software, like the Tortoise* programs.

Read More →

Miscellaneous Command-line Tools

This project hosts a few command-line tools I've written: FinalPathName, IsWorkstationLocked, and ConvertCharset.

Read More →

Common code files

Shared code library. Lots of drop-in modules, units, functions and procedures.

Read More →

speedtest-graph

A small program to create an SVG chart of my internet connection speed.

Read More →

Fossil SCM provider for VSCode

Fossil SCM integrated Source Control for Visual Studio Code.

Read More →

Tekening

Simple drawing software. Initially written for my 3-year-old kids.

Read More →

Folder Watcher

(No description available)

Read More →

Olam

My (many) attempts at coming up with complete, thorough and usable time-tracking software.

Read More →

RAD Studio VCS Info

A plugin for Embarcadero RAD studio to show summary information on the current project's repository state.

Read More →

IIS Log Parser

Reads one or more IIS log files, and compiles that data into an SQLite database.

Read More →

FreePascal-tools

A collection of scripts for use with `instantfpc` (FreePascal's scripting engine).

Read More →

Wallpaper Cycler

Multi-monitor wallpaper generator

Read More →

Pascal Playground

A small Windows program that uses the Delphi compiler to run a bit of Delphi code, and shows the result. Nice for playing around to see how code performs.

Read More →

Simple Date Screen Saver

A simple screen saver, showing the current date and time.

Read More →

Heks

A simple Hex viewer.

Read More →

WMS Client

Test project to explore using WMS services.

Read More →

HTML Editor

HTML Editor (using the CKEditor WYSIWYG editor).

Read More →

Line Filter

Line Filter is a plug-in for Notepad++, which allows filtering a text file according to various parameters.

Read More →
Search
About this site

This page lists a few pieces of software I've written, or am writing. Most of them were written to scratch an itch I had. I’m releasing them here as open source in the hopes of it being useful to someone.

Recent ticket activity

Re: Validate DPI behavior across monitors
Regression rollback implemented in [](a72f90c469) on branch [ticket-9580ad48-dpi-scaling](/timeline?r=ticket-9580ad48-dpi-scaling). The manual `RescaleConstantsForDpi` and explicit ToolStrip scaling hooks from the previous pass were causing extremely slow form startup and breaking restored window placement, so they have been removed. The safe static autoscale declarations remain, as do the static shortcuts/query grid row-height adjustments. `dotnet build ZAAP.net/ZPreview/ZPreview.csproj -p:EnableWindowsTargeting=true`, `dotnet build ZAAP.net/ZPreview.PreviewHandlers/ZPreview.PreviewHandlers.csproj -p:EnableWindowsTargeting=true`, `dotnet build ZAAP.net/ZPreview.SQLitePreview/ZPreview.SQLitePreview.csproj -p:EnableWindowsTargeting=true`, and `dotnet build ZAAP.net/ZPreview.Tests/ZPreview.Tests.csproj -p:EnableWindowsTargeting=true` all succeeded on Linux. Please recheck on Windows first that forms open promptly again and that the main window restores to its remembered monitor/location. Remaining DPI sizing issues are still under review and need a less invasive fix.
Re: Validate DPI behavior across monitors
It does look better in general — even though the ToolStrip text is unchanged and way too small, and several grids do not resize very well. But it takes _ages_ before the main form is shown, and also _ages_ (as in: several actual **minutes**) before the configuration form is shown. Also, the position on screen is no longer remembered; the main window now always opens on the primary monitor, which is not what I want. This is unusable, so I will reject this branch.
Re: Validate DPI behavior across monitors
Follow-up adjustments implemented in [](8d5fe96a57) on branch [ticket-9580ad48-dpi-scaling](/timeline?r=ticket-9580ad48-dpi-scaling). This scales the main and embedded toolstrips, the text preview search row, the SQLite query/search chrome and grid row metrics, the configuration shortcuts grid row heights, and re-autosizes archive and SQLite list columns after DPI changes. `dotnet build ZAAP.net/ZPreview/ZPreview.csproj -p:EnableWindowsTargeting=true`, `dotnet build ZAAP.net/ZPreview.PreviewHandlers/ZPreview.PreviewHandlers.csproj -p:EnableWindowsTargeting=true`, `dotnet build ZAAP.net/ZPreview.SQLitePreview/ZPreview.SQLitePreview.csproj -p:EnableWindowsTargeting=true`, and `dotnet build ZAAP.net/ZPreview.Tests/ZPreview.Tests.csproj -p:EnableWindowsTargeting=true` all succeeded on Linux. `dotnet test ZAAP.net/ZPreview.Tests/ZPreview.Tests.csproj -p:EnableWindowsTargeting=true` still cannot run here because `Microsoft.WindowsDesktop.App` is unavailable in this Linux environment. Please recheck on Windows: main toolstrip text, text preview search textbox/button row, configuration Shortcuts grid row height, and archive list column widths after moving between monitors.
Re: Validate DPI behavior across monitors
Implemented in [](31654fe34e) on branch [ticket-9580ad48-dpi-scaling](/timeline?r=ticket-9580ad48-dpi-scaling). ZPreview now declares explicit 96-DPI autoscaling for the code-built forms and reapplies fixed layout widths from logical pixels after DPI changes, so the main window and configuration UI should stay correctly sized after moving between monitors with different scaling. `dotnet build ZAAP.net/ZPreview/ZPreview.csproj -p:EnableWindowsTargeting=true` and `dotnet build ZAAP.net/ZPreview.Tests/ZPreview.Tests.csproj -p:EnableWindowsTargeting=true` both succeeded on Linux. `dotnet test ZAAP.net/ZPreview.Tests/ZPreview.Tests.csproj -p:EnableWindowsTargeting=true` could not run here because `Microsoft.WindowsDesktop.App` is not available on this Linux environment, so the actual monitor-switch behavior still needs Windows validation.
Re: Validate DPI behavior across monitors
Investigating the PerMonitorV2 DPI regression in ZPreview. Current focus is form autoscaling and fixed pixel dimensions that stay too small after moving to a higher-DPI monitor.