Category: Blog
-

Estimating Software Projects Without Lying to Yourself
Abstract: Most estimation failures aren’t math problems, they’re honesty problems — we know a task is uncertain and we write…
-

Risk Management for Small Dev Teams: A Practical Framework
Abstract: Most risk management frameworks are written for organizations with a PMO, a risk officer, and quarterly steering committees. A…
-

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…

