The Wiert Corner – irregular stream of stuff

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

  • My badges

  • Twitter Updates

  • Pages

  • All categories

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

    Join 1,854 other subscribers

Archive for the ‘Power User’ 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 »

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 »

Thread by @LetheForgot to @SwiftOnSecurity on Thread Reader App – Windows boot recovery

Posted by jpluimers on 2024/09/23

[Wayback/Archive] Thread by @LetheForgot on Thread Reader App:

What we did was use the advanced restart options to launch the command prompt, skip the bitlocker key ask which then brought us to drive X and ran “bcdedit /set {default} safeboot minimal“which let us boot into safemode and delete the sys file causing the bsod.

Not scalable at all but let us get vital systems running while we try to solve the bootloop en masse

Don’t forget to renable normal booting afterwards by doing the same but running “bcdedit /deletevalue {default} safeboot

Just in case another event like the 2024 Crowdstrike debacle happens.

--jeroen

Posted in Encryption, Power User, Security, Windows | Leave a Comment »

Fixing the date/time of a ST-977 or ST-977T weather station

Posted by jpluimers on 2024/09/23

A long time ago I asked about the manual for a Daryis ST-977 weather station, but got no response from the manufacturer or anyone else.

So about 9 months later the topic came back up and I did get some responses, most suggesting to use the SET button which I already tried earlier.

I retried and found out the button was both bouncing and needed to be held for a really long time (15+ seconds!) to even switch to “edit” mode.

With 4 AA batteries in the base it at least should survive a power outage and hopefully by now we have switched away from using daylight saving time in Europe so no time changes are needed in the future.

Later I found out the FCC was on the external sensor and could find back a manual of a similar model:

Read the rest of this entry »

Posted in Hardware, LifeHacker, Power User | Leave a Comment »

For my link archive: Power (and Energy) | Die wunderbare Welt von Isotopp

Posted by jpluimers on 2024/09/20

Since the prices of solar panels have fallen considerably and the prices of batteries are expected to fall as well:

making the  conclusions of [Wayback/Archive] Power (and Energy) | Die wunderbare Welt von Isotopp the most important bit of his article:

Read the rest of this entry »

Posted in LifeHacker, Power User, Solar Power | Leave a Comment »

Nederland: Overzicht schoolvakanties 2024-2025 | Schoolvakanties | Rijksoverheid.nl

Posted by jpluimers on 2024/09/20

[Wayback/Archive] Overzicht schoolvakanties 2024-2025 | Schoolvakanties | Rijksoverheid.nl

Voor Nederland zelf:

Vakanties schooljaar 2024-2025
Regio Noord Regio Midden Regio Zuid
Herfstvakantie 26 oktober t/m 3 november 2024 26 oktober t/m 3 november 2024 19 oktober t/m 27 oktober 2024
Kerstvakantie 21 december 2024 t/m 5 januari 2025 21 december 2024 t/m 5 januari 2025 21 december 2024 t/m 5 januari 2025
Voorjaarsvakantie 15 februari t/m 23 februari 2025 22 februari t/m 2 maart 2025 22 februari t/m 2 maart 2025
Meivakantie 26 april t/m 4 mei 2025 26 april t/m 4 mei 2025 26 april t/m 4 mei 2025
Zomervakantie 12 juli t/m 24 augustus 2025 19 juli t/m 31 augustus 2025 5 juli t/m 17 augustus 2025

--jeroen

Posted in LifeHacker, Power User | Leave a Comment »

Linear Algebra | Mathematics | MIT OpenCourseWare

Posted by jpluimers on 2024/09/20

In case I ever need to refresh my linear algebra knowledge, this series of videos is where to start: [Wayback/Archive] Linear Algebra | Mathematics | MIT OpenCourseWare

The videos: [Wayback/Archive] Video Lectures | Linear Algebra | Mathematics | MIT OpenCourseWare

Via: [Wayback/Archive] Santiago on Twitter: “The best linear algebra course out there. PERIOD. For Free! MIT’s Professor Gilbert Strang. Go through these videos, and you’ll never ever have a problem with linear algebra again!”

–jeroen

Posted in LifeHacker, Mathematics, Power User, science | 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 »

scaling != high availability (you more often need the latter than the former); microservices != modularisation (you hardly need the former; you *need* the latter)

Posted by jpluimers on 2024/09/18

Important posts:

Read the rest of this entry »

Posted in Containers, Docker, Kubernetes (k8n), Power User | 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 »