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,839 other subscribers

IDEIds11…IDEIds21 – RAD Studio

Posted by jpluimers on 2021/01/05

It looks like there are pages  [WayBack] IDEIds21 – RAD Studio … [WayBack] IDEIds21 – RAD Studio.

Maybe I ever find time to find out where they are referenced from and why there is no IDEIds1 page.

–jeroen

Posted in Delphi, Development, Software Development | Leave a Comment »

Releases · upx/upx · GitHub

Posted by jpluimers on 2021/01/04

I totally forgot that upx – UPX – the Ultimate Packer for eXecutables has been on GitHub for quite a while, which meant I was running a really old version 3.91.

There have been quite a few things updated and documented in [Archive.is] upx-news.txt covering these milestones:

  1. [Archive.is] milestone 1 (for version 3.92)
  2. [Archive.is] milestone 2 (for version 3.93)
  3. [Archive.is] milestone 3 (for version 3.94)

Via UPX – Wikipedia

–jeroen

Posted in Development, Power User, Software Development, Windows, Windows Development | Leave a Comment »

The logicdroid family

Posted by jpluimers on 2021/01/04

Almost complete droid family:

Source: CodeProject – Google+: The whole Droid family

A complete family would include ANDroid, NANDroid, NOTdroid, ORdroid, NORdroid, XORdroid, XNORdroid, so it’s missing the 74266.

Based on the 2011 ANDroid NANDroid NOTdroid ORdroid idea that got a picture in 2012:

–jeroen

Read the rest of this entry »

Posted in Android Devices, Fun, Power User | Leave a Comment »

Interesting pieces of RetroMacCast : RMC Episode 433: Clamshell G4 iBook – first virus and Apple ][ forever

Posted by jpluimers on 2021/01/04

From the [WayBackRetroMacCast : RMC Episode 433: Clamshell G4 iBook the most interesting pieces to me were these:

–jeroen

Posted in 6502, Apple, Apple ][, History, Power User | Leave a Comment »

Windshield frost protection and removal

Posted by jpluimers on 2021/01/01

Choices:

Or not cover but having to use an ice scraper (I prefer the ones made from Brass – Dutch/German: Messing):

[Archive.is] SILUK_ 2 X Eiskratzer Eisschaber Messingschaber Besten Preis!!! (Model 1): Amazon.de: Auto

Related:

Read the rest of this entry »

Posted in LifeHacker, Power User | Leave a Comment »

Binding #Uptimerobot monitoring to your own subdomain: embarcaderomonitoring.wiert.me

Posted by jpluimers on 2021/01/01

Below a few screenshots on how to bind your own subdomain to a set of uptimerobot monitors.

This case is about [Archive.isembarcaderomonitoring.wiert.me, which I setup because of the not so well way that Embarcadero maintained their web facing infrastructure in the past.

The steps for that are really simple, assuming you already have an uptimerobot account and some monitor set-up. If you don’t: check out the first video (thanks onewebstreet!) linked below the fold, as it is a step-by-step introduction.

Steps for your own subdomain

If you like video more than a list of steps, check out the second video (thanks Kyle!) below the fold.

  1. Ensure you have a DNS CNAME record that points your subdomain (in my case embarcaderomonitoring.wiert.me) to stats.uptimerobot.com:

    Note that [Archive.is] stats.uptimerobot.com by itself will not display any dashboard, as it requires a CNAME to be involved that is registered in the Uptime robot Custom Domain list.

  2. Login to Uptime robot, which brings you to uptimerobot.com/dashboard#mainDashboard
  3. Click on settings, which brings you to uptimerobot.com/dashboard#mySettings
  4. Observe the “Disable RSS” (or “Enable RSS” if you have not yet enabled it) and the “this link” (which in my case points to this RSS feed [WayBack])
  5. Clicking on “show them” will get you something like this:
  6. Clicking on the pencil icon then will get you where you can set the “Custom Domain”, which notes

    Custom Domain

    (make sure you create a CNAME DNS record for your domain to stats.uptimerobot.com. And, it can take up to 30 mins for the custom domain to be activated.)

  7. Wait a while and check your CNAME for a valid Uptime robot status dashboard.

–jeroen

Read the rest of this entry »

Posted in *nix, LifeHacker, Monitoring, Power User, Uptimerobot | Leave a Comment »

Emotional Intelligence: Components and Emotional Competence Frameworks (Part-2) | iammoulude

Posted by jpluimers on 2021/01/01

Not just because of the charts below: [WayBack] Emotional Intelligence: Components and Emotional Competence Frameworks (Part-2) | iammoulude.

Via:

Read the rest of this entry »

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

OutputDebugStringA limitation used to be close to 4K, but with OutputDebugStringW, what is the limitation?

Posted by jpluimers on 2020/12/31

I wonder what the limitation of OutputDebugStringW is, as OutputDebugStringA had a limit imposed by the DBWIN_BUFFER which was 4K (minus a bit overhead):

–jeroen

Posted in Development, Software Development, Windows Development | Leave a Comment »

Syncing your fork to the original repository via the browser · KirstieJane/STEMMRoleModels Wiki · GitHub

Posted by jpluimers on 2020/12/31

[WayBack] Syncing your fork to the original repository via the browser · KirstieJane/STEMMRoleModels Wiki · GitHub

TL;DR: you can do the sync from the Web UI, but it always gives you an extra merge commit.

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, GitHub, LifeHacker, Power User, Source Code Management | Leave a Comment »

It pays to closely look to your coding

Posted by jpluimers on 2020/12/31

I like questions like [WayBack] How to check if parent menu item has “checked” child item? – VCL – Delphi-PRAXiS [en]

It means that the asker is closely looking at her or his coding.

This is important, as it helps to get your programming idioms consistent.

The code started out as:

function HasCheckedSubItems(AMenuItem: TMenuItem): Boolean;
var
  i: integer;
begin
  Result := False;
  for i := 0 to AMenuItem.Count - 1 do
    if AMenuItem.Items[i].Checked then
      Exit(True);
end;

and finally ended up as:

function HasCheckedSubItems(AMenuItem: TMenuItem): Boolean;
var
  I: integer;
begin
  for I := 0 to AMenuItem.Count - 1 do
    if AMenuItem.Items[I].Checked then
      Exit(True);
  Exit(False); 
end;

Which is close to what I’d use, no matter the Delphi version:

function HasCheckedSubItems(const AMenuItem: TMenuItem): Boolean;
var
  I: integer;
begin
  for I := 0 to AMenuItem.Count - 1 do
    if AMenuItem.Items[I].Checked then
    begin
      Result := True;
      Exit;
    end;
  Result := False;
end;

My argumentation for the last form is that assignment and jumps are too conceptually different to combine in one statement.

The second form moves just one assignment, which on the current scale of nanosecond execution might not sound much, but conceptually limits the assignment to once per function call.

If you are interested in more thoughts on this topic,

  1. read How to Design Early Returns in C++ (Based on Procedural Programming) – Fluent C++
  2. watch Procedural Programming: It’s Back? It Never Went Away – Kevlin Henney [ACCU 2018] – YouTube
  3. save the slides from [WayBack

–jeroen

Posted in Delphi, Development, Software Development | Leave a Comment »