Category: Blog
-

How to Restore guarddog in Ubuntu Natty 11.04
Canonical has a very ugly habit of removing from repositories applications that you use and love, but they think these…
-

Understanding Configuration Management in Software Development
Software configuration management is an important element of software quality assurance. The following configuration items should be maintained in the…
-

Designable Components Beyond TPanel
Making a custom TPanel descendant behave well at design time is the easy case — most other base classes need…
-

Fastest XSLT Processors Benchmarked Today
My original processor benchmark post is old enough that the numbers in it no longer reflect current releases, and a…
-

Large Font & DPI Scaling in Delphi Apps
Delphi applications designed at 96 DPI look cramped, clipped, or oddly spaced on the high-DPI displays most users have today,…
-

Fastest XSLT Processors Benchmarked Today
My original processor benchmark post is old enough that the numbers in it no longer reflect current releases, and a…
-

System Font Handling in Delphi Forms
Delphi forms designed with a hardcoded font look wrong the moment they run on a machine with different DPI or…
-

How to Convert JSON to XML using XSLT 2.0
XSLT 2.0 is powerful enough to process even non-XML input. For example, I have created a transformation that converts JSON…
-

Building an XML Processing Pipeline in 2026
My original XML pipeline post is old enough that some of the tooling advice no longer matches what I’d actually…
-
Using WinAPI in Delphi Without the Mess
Raw WinAPI calls in Delphi tend to spread handle management and error checking across the whole codebase, which makes them…

