Posted by jpluimers on 2025/03/12
In the past, I mentioned that the open source SonarQube by SonarSource was on my “research list” in a few blog posts* as I am a fan of static code analysis **, and now it is time to amend them with the current state for using it in Delphi.
SonarSource products
- SonarQube Server (formerly SonarQube) is an open core product for static code analysis, with additional features offered in commercial editions.
- SonarQube Cloud (formerly SonarCloud) offers free analysis of open source projects.
- SonarQube for IDE (formerly SonarLint) is a free IDE extension for static analysis.
For more history on them, see [Wayback/Archive] About – Sonar and SonarSource | Sonar.
Delphi integration
There are two open source integrations: for ConarQube Server, and Linting, both maintained by the same company ([Wayback/Archive] IntegraDev · GitHub):
Read the rest of this entry »
Posted in Delphi, Development, Software Development, SonarQube, Static Code Analysis, Unit Testing, vscode Visual Studio Code | Leave a Comment »
Posted by jpluimers on 2025/03/04
In the past, the Google Hangouts desktop app on Windows would integrate with the system “tray” (actually the notification area) and show you missed chats and calls.
The [Wayback/Archive] Google Chat desktop app does not. It shows missed messages only as a number on the taskbar icon. Even worse: when you close the Window, the taskbar application icon does not show that number any more.
The odd thing is that the Google Duo desktop app does stay active and shows a notification popup on incoming calls. The Google Chat desktop app does not.
So I wanted to restart the Google Chat desktop app automatically when the Window was closed. But there is a catch:
Read the rest of this entry »
Posted in .NET, C#, CommandLine, Delphi, Development, PowerShell, PowerShell, Scripting, Software Development | Tagged: 37 | Leave a Comment »
Posted by jpluimers on 2025/02/25
On the reading list wondering which tool chains can deliver NtAPI based development: [Wayback/Archive] Going Native – Malicious Native Applications
Via [Wayback/Archive] Thread by @MrPc69257431 on Thread Reader App with first tweet at
https://x.com/MrPc69257431/status/1864855379651498292
Note that being able to call NtAPI from your code base does not mean NtAPI based development: Pure NtAPI means you need a linker that can target a different output. See the quote from the above article (emphasis mine):
So, to get started with an empty native executable, all we have to do is include the “phnt.h” file, and set up the NtProcessStartup function. Then it’s important to tell the linker that we want to link against ntdll, and that we’ll be making a native application by passing in the “Native” text to the Subsystem linker option
It means that for instance Delphi is kind of out of the question for this, see these links on why:
Read the rest of this entry »
Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development, Windows Development | Leave a Comment »
Posted by jpluimers on 2025/02/18
I unconsciously wanted a tool like this for a long time, and was glad I finally searched for it:
A keyboard logging and presentation utility for presentations, screencasts, and to help you become a better keyboard user.
[Wayback/Archive] Code52/carnac: A utility to give some insight into how you use your keyboard
The first time I saw something similar was in the Delphi days where it was part of a plugin for CodeRush in Delphi (think Delphi 5-6 era), the famous developer productivity tool by Mark Miller that later got rewritten for Visual Studio and became part of DevExpress.
So I searched for [Wayback/Archive] windows show keystrokes – Google Search which found [Wayback/Archive] How to show keystrokes on Windows 10 which in turn mentioned a fork of Carnac.
As it turns out Read the rest of this entry »
Posted in .NET, Delphi, Development, Hardware, Keyboards and Keyboard Shortcuts, KVM keyboard/video/mouse, Power User, Software Development, Windows, Windows Development | Leave a Comment »
Posted by jpluimers on 2025/01/09
Besides the Delphi Praxis servers (the [Wayback/Archive] German one has existed for what seems eternity, the [Wayback/Archive] English one took over the Google Plus Delphi group – see Google is sunsetting Google+ by August 2019; DelphiPraxis might start English forums and have RSS – and de-facto the dead Embarcadero forums as the old newsgroup servers went dead, and the new ones weren’t known for their high up-time [Wayback/Archive] community.embarcadero.com’s forums – General Help – Delphi-PRAXiS [en]), nowadays – with the shortened attention span of many people – Discord has a few Delphi servers as well:
They are chat based, and suffer from messages and threads disappearing, just like the Delphi newsgroups and forums suffered from, and archiving content can be difficult or impossible (not just because of the Wayback Machine being down).
Queries:
Read the rest of this entry »
Posted in Chat, Delphi, Development, Discord, SocialMedia, Software Development | Leave a Comment »
Posted by jpluimers on 2025/01/01
I wrote a two earlier blog posts around puns in programming book indices before:
- the 1992 Turbo Pascal 7.0 Language Guide having both entry in the manual about Recursion (“recursive loop, see recursive loop”) which of course is similar to “infinite loop” and entries for “infinite loop See loop, infinite” and “loop, infinite See infinite loop”.
- infinite loop in “LaTeX: A Document Preparation System” by Leslie Lamport, printed in 1994.
In the last one, I promised to list more occurrences which I now finally had time for to do.
But let me first elaborate more on the observation that modern computer books (like for instance on C# and Delphi beyond version 1) lack these kinds of index pun.
On the Delphi side, the index entry joke for recursion got removed no later than Delphi 3 (I am still looking for a Delphi 2 version of the Object Pascal Language Guide, see further below) even before the book being fully redone electronically and the index pages generation being automated in
I think I even understand why that is: the process of creating of indices. By the start of this century, more and more indices were automatically being generated and for the last 2 decades or so, all of them are. Back in the days however, indices were mostly done by hand. Nowadays, with everything automated, it is actually pretty tricky in most environments to add such an “infinite loop” index entry like in the Turbo Pascal book, as it would require two things at once:
Read the rest of this entry »
Posted in .NET, C, C#, C++, Conference Topics, Conferences, Delphi, Delphi 1, Delphi 2, Development, EKON, Event, History, LaTeX, LifeHacker, LISP, Mathematics, Pascal, Perl, PL/I (a.k.a. PL/1), Power User, science, Software Development, Turbo Pascal, Typesetting | Tagged: 1, 7 | 4 Comments »
Posted by jpluimers on 2024/12/24
Reminder to self: Delphi 11.3 (Alexandria update 3), mid-product added a compiler changing kind of deprecating using types of this form (including ones defined in the System, System.Types and other RTL/VCL units):
Overview of “deprecated” * and alternative array types
| “deprecated” |
alternative: write it all out |
TBooleanDynArray |
TArray<Boolean> |
TByteDynArray |
TArray<Byte> |
TCardinalDynArray |
TArray<Cardinal> |
TStringDynArray |
TArray<string> |
- technically not deprecated, as
deprecated is a hinting directive and despite these having existed for almost 25 years now**, hinting directives like platform, deprecated, or library cannot be used on array types:a bug has been filed for this in 2017 but still has not been addressed, see my earlier blog post Delphi Declarations and Statements: Hinting Directives.
Read the rest of this entry »
Posted in Delphi, Delphi 11.0 Alexandria (Olympus), Development, Software Development | Leave a Comment »
Posted by jpluimers on 2024/10/30
The sad thing about sunsetting useful resources is that usually a proper cleanup is not being performaned.
Take for instance QC: it died 7 years ago (Embarcadero QualityCentral is dead; man-decades of customer work down the drain) and is still mentioned in dozens of places including this prominent one: [Wayback/Archive] Finding information (IDE Tutorial) – RAD Studio.
This is just an example from a product I still love, so I know what is lost, but plenty of other companies forget they are the custodians of their own sites and leaving things rotting makes for a bad feeling of their overall behaviour.
It’s not hard to be not sloppy. Here are some 20+ more links to fix: [Wayback/Archive] “qc.embarcadero.com” site:embarcadero.com – Google Search
Note the next will be CodeCentral, which was annouced to get sunset 5 years ago:
People want to save this (see for instance [Wayback/Archive] EMBT: Code Central is going away – Tips / Blogs / Tutorials / Videos – Delphi-PRAXiS [en]), but regrettably companies aren’t going to do themselves it despite they owe it to their customers and their legacy.
--jeroen
Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | Leave a Comment »