I have been using WordPress for this blog for several years and always thought my setup was reasonably secure. Turns out that there is something called the WordPress REST API which allows to get quite a lot information about the installation without any security at all. E.g. https://blog.dummzeuch.de/wp-json/wp/v2/users used to show a list of all … Continue reading How secure is your WordPress installation?
GExperts 1.3.17 experimental twm 2020-10-23 released
Guess what? The new GExperts release is here. There are lots of bug fixes and a few new features in the new version. The major new feature is the Filter Exceptions expert. Please be warned that there was a bug when developing for non-Windows targets. It might have been fixed, but I can't test it … Continue reading GExperts 1.3.17 experimental twm 2020-10-23 released
Contributing to projects on GitHub with Subversion
Edit: On 2023-01-20 GitHub announced that they will stop supporting Subversion on 2024-01-08. --- 2023-04-18 twm Many open source projects have moved from the former top dog SlashdotSourceForge to GitHub and in the process usually converted from Subversion to git. This also includes quite a few Delphi libraries like project Jedi (JCL/JVCL), SynEdit or Indy. … Continue reading Contributing to projects on GitHub with Subversion
Bug and possible fix for GExperts Filter Exceptions expert – testers needed
Mahdi Safsafi has proposed a fix for the bug in the GExperts Filter Exceptions expert, which occurs when developing for non Windows targets (first reported on Embarcadero's quality portal ). I have implemented this fix and it doesn't have any adverse effects on for Windows targets. But neither he nor I can test it for … Continue reading Bug and possible fix for GExperts Filter Exceptions expert – testers needed
Source code for Andreas Hausladen’s DfmCheck available
Andreas Hausladen - most probably know him because he wrote the very popular Delphi IDE Fixpack - has just announced (in German) that he published the source code of one of his other useful tools: DFMCheck. It's in his GitHub repository. Now I have just to figure out how to actually use it. 😉
GExperts for Delphi 10.4.1
I have received a few reports about bugs in GExperts in Delphi 10.4.1 that do not occur in Delphi 10.4. Here is a GExperts DLL that was compiled with Delphi 10.4.1. Maybe it will solve some of theses problems. Simply extract the DLL and put it into the GExperts installation directory, replacing the original one. … Continue reading GExperts for Delphi 10.4.1
Delphi’s TZipFile working on a stream
Recent versions of Delphi (for a suitable definition of "recent") come with a TZipFile class implemented in the unit System.Zip. This class has the really neat feature that it can not only read the contents of a ZIP file directly from a stream but also extract a file from that stream to a TBytes array, … Continue reading Delphi’s TZipFile working on a stream
Filtering and sorting for the GExperts PE Information Exports list
The GExperts PE Information tool just got a small improvement: The Exports list can now be sorted by clicking on the column header and filtered on the export name by simply typing text. The Escape key resets the filter. If you want to discuss this article, you can do so in the corresponding post in … Continue reading Filtering and sorting for the GExperts PE Information Exports list
External Exception $406D1388 in Delphi
Reminder to self: Exception $406D1388 is the exception used to set a name for a thread, like in: [delphi] procedure SetThreadName(const _Name: AnsiString); var ThreadNameInfo: TThreadNameInfo; begin ThreadNameInfo.FType := $1000; ThreadNameInfo.FName := PAnsiChar(_Name); ThreadNameInfo.FThreadID := $FFFFFFFF; ThreadNameInfo.FFlags := 0; try RaiseException($406D1388, 0, SizeOf(ThreadNameInfo) div SizeOf(LongWord), Pointer(@ThreadNameInfo)); except // ignore end; end; [/delphi] If you encounter … Continue reading External Exception $406D1388 in Delphi
IntToHex for UInt64 in Delphi
Just in case I ever need this again: [delphi] function IntToHex(_Value: UInt64): string; overload; var Buf: PUInt32; begin Buf := PUInt32(UInt32(@_Value) + 8); Result := IntToHex(Buf^, 8); Buf := PUInt32(@_Value); Result := Result + IntToHex(Buf^, 8); end; [/delphi] (Delphi 2007 does not have IntToHex for UInt64.) Note: This works only for 32 bit compilers. For … Continue reading IntToHex for UInt64 in Delphi