The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,862 other subscribers

Archive for the ‘Software Development’ Category

NTFS Sparse Files For Programmers

Posted by jpluimers on 2024/09/25

Need to check this out some day: cs.exe compiled from [Wayback] sparse.zip which you can download fromΒ [Wayback/Archive] NTFS Sparse Files For Programmers

Read the rest of this entry »

Posted in C, C++, Development, NTFS, Power User, RoboCopy, Software Development, Visual Studio C++, Windows, Windows 10, Windows 11 | Leave a Comment »

Ringzer0: “Support your local OSS Devs ” – Infosec Exchange

Posted by jpluimers on 2024/09/24

Important, as it is the only way to keep your development stack functioning well: [Wayback/Archive] Ringzer0: “Support your local OSS Devs ” – Infosec Exchange

Read the rest of this entry »

Posted in Awareness, Conference Topics, Conferences, Development, Event, Open Source, Software Development | Leave a Comment »

string – Check if MyString[1] is an alphabetical character? – Stack Overflow (and how Embarcadero broke one of the product version neutral redirects)

Posted by jpluimers on 2024/09/24

Quite a while ago [Wayback/Archive] string – Check if MyString[1] is an alphabetical character? – Stack Overflow asked by [Wayback/Archive] User Jeff was answered by [Wayback/Archive] Andreas Rejbrand:

The simplest approach is

function GetAlphaSubstr(const Str: string): string;
const
  ALPHA_CHARS = ['a'..'z', 'A'..'Z'];
var
  ActualLength: integer;
  i: Integer;
begin
  SetLength(result, length(Str));
  ActualLength := 0;
  for i := 1 to length(Str) do
    if Str[i] in ALPHA_CHARS then
    begin
      inc(ActualLength);
      result[ActualLength] := Str[i];
    end;
  SetLength(Result, ActualLength);
end;

but this will only consider English letters as “alphabetical characters”. It will not even consider the extremely important Swedish letters Γ…, Γ„, and Γ– as “alphabetical characters”!

Slightly more sophisticated is

function GetAlphaSubstr2(const Str: string): string;
var
  ActualLength: integer;
  i: Integer;
begin
  SetLength(result, length(Str));
  ActualLength := 0;
  for i := 1 to length(Str) do
    if Character.IsLetter(Str[i]) then
    begin
      inc(ActualLength);
      result[ActualLength] := Str[i];
    end;
  SetLength(Result, ActualLength);
end;

Back in 2011 I added a comment that for more than a decade would redirect to the most current documentation on the IsLetter method:

+1 for usingΒ IsLetter which checks the Unicode definition for being a letter or not [Wayback] docwiki.embarcadero.com/VCL/en/Character.TCharacter.IsLetter

Back then, Delphi X2 was current, so it would redirect

  1. from [Wayback] http://docwiki.embarcadero.com/VCL/en/Character.TCharacter.IsLetter
  2. to [Wayback] http://docwiki.embarcadero.com/VCL/XE2/en/Character.TCharacter.IsLetter
  3. then to [Wayback] http://docwiki.embarcadero.com/VCL/XE2/en/Character.TCharacter.IsLetter
  4. ending at [Wayback] http://docwiki.embarcadero.com/Libraries/XE2/en/System.Character.TCharacter.IsLetter

After a long outage in 2022 (seeΒ The Delphi documentation site docwiki.embarcadero.com has been down/up oscillating for 4 days is now down for almost a day.) only the Alexandria help was restored.

This killed the above redirect.

Luckily [Wayback/Archive] George BirbilisΒ noticed that and commented this:

@JeroenWiertPluimers the correct link now is:Β docwiki.embarcadero.com/Libraries/Alexandria/en/…

In order to refer to the most recent Delphi version, now you have to use [Wayback] http://docwiki.embarcadero.com/Libraries/en/System.Character.TCharacter.IsLetter.

This redirects:

  1. via [Wayback] http://docwiki.embarcadero.com/Libraries/Alexandria/en/System.Character.TCharacter.IsLetter to
  2. to [Wayback] https://docwiki.embarcadero.com/Libraries/Alexandria/en/System.Character.TCharacter.IsLetter

The above breaks the help integration from older Delphi products which is bad. It is also bad because it makes it harder to port legacy Delphi code to more modern Delphi versions.

Hopefully the above gives you a bit insight how the docwiki help system was designed and what is left of that design.

–jeroen

Posted in Communications Development, Conference Topics, Conferences, Delphi, Development, Encryption, Event, HTML, HTTP, https, HTTPS/TLS security, Internet protocol suite, Power User, Security, Software Development, TCP, TLS, Web Development | Leave a Comment »

GitHub Profile Roast πŸ”₯πŸ”₯πŸ”₯

Posted by jpluimers on 2024/09/19

Who needs AI (:

[Wayback/Archive] GitHub Profile Roast πŸ”₯πŸ”₯πŸ”₯

Sourcecode at [Wayback/Archive] GitHub – codenoid/github-roast: Spicy GitHub Roast πŸ”₯

Via [Wayback/Archive] Dennis Schubert: “okay, I finally found a good u…” – Mastodon

okay, I finally found a good use for an LLM. no, really.
github-roast.pages.dev
this thing is brutal

In addition, I learned about [Wayback/Archive] lokal.so Β· GitHub: Supercharged HTTP/TCP/UDP Tunneling Software

Read the rest of this entry »

Posted in AI and ML; Artificial Intelligence & Machine Learning, C#, C++, Development, JavaScript/ECMAScript, LLM, PHP, Python, Ruby, Rust, Scripting, Software Development | Leave a Comment »

Hopefully by now the choco client will be more resilient and informative about Chocolatey maintenance windows (and maybe even about any disruptions mentioned at status.chocolatey.org)

Posted by jpluimers on 2024/09/19

Reminder to check-out of the 2015 issue mentioned in the tweets below has been had any progress.

At the time of tweeting, choco has no notion of [Wayback/Archive] status.chocolatey.org which would be very helpful to point to in case of errors on time-outs on chocolatey server calls especially if it could interrogate and inform of maintenance windows and outages when things fail on the client side.

Read the rest of this entry »

Posted in .NET, Chocolatey, CommandLine, Development, PowerShell, PowerShell, Scripting, Software Development, Windows | Leave a Comment »

GitHub – chip-red-pill/MicrocodeDecryptor

Posted by jpluimers on 2024/09/18

A few years back the way Intel Microcode updates were distributed deciphered so it became possible to extract and research the microcode of some processor models.

Repository:Β [Wayback/Archive] chip-red-pill/MicrocodeDecryptor

Read the rest of this entry »

Posted in Assembly Language, Development, Software Development, x64, x86 | Leave a Comment »

The codewali on Twitter: “How API works?”

Posted by jpluimers on 2024/09/17

[Wayback/Archive] Wayback (Video further below)

[Wayback/Archive] K9pQFPQr3KM4HSYj.jpg (720Γ—966)

Videos:

Read the rest of this entry »

Posted in Conference Topics, Conferences, Development, Event, Software Development | Leave a Comment »

Wow: inside DOS Doom version 2, you can run another Doom (even arbitrary other code)

Posted by jpluimers on 2024/09/17

Repository:

A Video that way better explains how the hacks work to make this happen is atΒ [Wayback] You can run Doom inside (DOS) Doom, for real. – YouTube

I have found a code execution exploit in the original DOS Doom 2 and ported a Chocolate Doom to it. And then Chocolate Heretic.

Attention: This does only work on the original DOS Doom2 version, no GZDoom or other source ports. This is a good thing as you don’t want code execution exploit on modern systems. People would abuse it to spread malicious code.

DOS version is available on Steam and you can use DosBox emulator to run it.

Copy kgdid.wad to the directory where you have doom2.exe and then in DosBox start it with command “doom2 -file kgdid.wad“.

(Copy other files too if you want to try them. Game injection has to be renamed to doomsav4.dsg)

Related:

–jeroen

Posted in Assembly Language, Development, DOOM, Games, MS-DOS, Power User, Software Development, x86 | Leave a Comment »

View DOM Source bookmarklet

Posted by jpluimers on 2024/09/12

This is cool as it shows the page source not as it was first loaded, but from how it is currently rendered which includes all post-load modifications by any scripts: [Wayback/Archive] View DOM Source bookmarklet.

ViaΒ [Wayback/Archive] Martin Splitt on Twitter: “I made a bookmarklet to view the rendered source (aka the DOM) of a page. πŸ‘€ πŸš€ Works with Chrome, Firefox, Safari and possibly others, too. 🌈 Beautifies the code 🎨 Includes syntax highlighting πŸ’» Get the bookmarklet at πŸ‘‰ experiments.geekonaut.de/view-dom-source πŸ‘ˆ”

Read the rest of this entry »

Posted in Bookmarklet, CSS, Development, HTML, HTML5, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers, Web Development | Leave a Comment »

GitHub – AnswerDotAI/fasthtml: The fastest way to create an HTML app

Posted by jpluimers on 2024/09/11

The HTMX based [Wayback/Archive] GitHub – AnswerDotAI/fasthtml: The fastest way to create an HTML app

FastHTML is a new next-generation web framework for fast, scalable web applications with minimal, compact code. It’s designed to be:
  • Powerful and expressive enough to build the most advanced, interactive web apps you can imagine.
  • Fast and lightweight, so you can write less code and get more done.
  • Easy to learn and use, with a simple, intuitive syntax that makes it easy to build complex apps quickly.
FastHTML apps are just Python code, so you can use FastHTML with the full power of the Python language and ecosystem.
Could this be something for me?

Via [Wayback/Archive] Erik Meijer on X: “Reverse selling in full action.”

Read the rest of this entry »

Posted in Deployment, Development, HTML, htmx, Python, Scripting, Software Development, Web Development | Leave a Comment »