Hi there.
I’m Gabriel, a seasoned software engineer based in EU with over two decades of hands-on experience in both software and hardware. I have a bachelor degree in applied electronics and a Master of Science in Engineering at the University of Liverpool.
I’ve embarked on a fascinating journey through the ever-evolving programming landscape. My programming odyssey began in 1992 when I put my hands on a Z80 computer. Since then, I’ve traversed multiple programming languages, but Delphi has always been my cherished “home.” Pascal followed in 1995 and I kept using Delphi until today (Delphi 11). I try to stay on top of the language.
I am interested in all the nitty-gritty aspects of low-level coding, binary files, speed optimizations, memory management, etc.
I am adept of clean, secure and modular code, with zero global variables, zero compiler hints/warnings, zero memory leaks. I develop my own software products under the CI/CD philosophy.
And I am a FreeAndNil-er 🙂
I wrote over 100 visual components (VCL) and quite a bunch of libraries. One of them, the general-purpose Light Saber library, consists of about 300 files and it is distributed with Delphi (via GetIt). The latest addition is an image recognition library, the only one of this kind for Delphi.
Also, in the last years I released three Delphi books, but I won’t stop to three.
In the free time I build electronic projects with my son, read science fiction, science news and listen to my music.
Recent blogs:
-
Too many programmers don’t understand exceptions. Do you?
I am still amazed to see how many (even seasoned) Delphi programmer don’t understand exceptions. This is a reply to the Silver Coder’s video. He states that exceptions are not the best idea and the reason mentioned in the (way too) short video is that try/except makes the code slow and difficult to read. I…
-
How to correctly set the compiler options
Note: This article is tightly connected to the “Never create a new Delphi project” article. These are my settings for each new project I start and the explanation why they are set like this. Also, I will try to convince you to use Assertions. They are a gemstone ignored by (way too) many programmers. Overflow…
-
Never create a new Delphi project
Note: This article is tightly connected to the “How to correctly set the compiler options” article. Somebody asked how to set the default project options for a new Delphi project. I stopped years ago wasting time with this. Instead I have a folder where I store a “template” project. You can find this Delphi template…
-
PDF libraries for Delphi – Roundup
I needed to open PDF files in Delphi. There seems to be a lot of libraries out there, but when my restrictions (read PDF, native Delphi code, cross-platform, acceptable price) started to kick in I realized that there are not so many options. I created therefore this Delphi PDF library comparison table to help me…
-
$(Auto) – One package to rule them all
This is an excerpt from my “Delphi in all its glory – Libraries” $(Auto) is a new environment variable, introduced in Delphi 10.4. Embarcadero didn’t make a big show around it so it went unnoticed by most programmers. But don’t ignore it! It is extremely useful for packages, where it can be used as an…
-
“Cheap companies making cheap mainboards” or “Why I hate laptops”
I have encountered quite a few computers where you could hear the CPU/GPU “accelerating” in the sound card. I never owned such a cheap board. Lucky me. Mainboard for enthusiasts are much better than those in the laptops and “large-scale” PC sales.The round up (https://www.techspot.com/review/2907-amd-x870-motherboards/) shows impressive values for all modern enthusiast mother boards.Again, today…