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 (UPIT) and a Master of Science in Engineering (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:
-
Environment variables and macros in Delphi
Environment variables are strings defined by the IDE. Each environment variable serves a specific purpose. Some of them are fixed, others are changed dynamically depending on what/how you are compiling your project. For example, they provide dynamic paths that influence where files are stored, define default locations for binaries, define how projects are built, and…
-
Breakpoints – Issues during debugging
For any debugging issue, make sure that the program is compiled under the “Debug” configuration, and that the “Debug” configuration is properly set, as explained in the “Debugger” chapter above. Don’t forget to build (instead of compile) after changing any project settings! Also, don’t put yourself in a dreadful situation by using 3rd party libraries…
-
Delphi breakpoints
Breakpoints A breakpoint tells the debugger to pause the program’s execution at the location (line of code) where the breakpoint is. We can set source breakpoints in the Code Editor before we run the program, but also while the program is already running. The places where we can place breakpoints are marked by a blue…
-
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…