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

Archive for November, 2022

Reminder to self: write a more extensive blog post on Delphi style guides and code style in general

Posted by jpluimers on 2022/11/30

A while ago, Uwe Raabe reminded me about the Delphi Style Guide which is on-line at the Embarcadero document wiki:

He reminded me to write a bit more about Delphi Style Guides, as there are a few and I used them on past conference sessions.

I thought either the blog post or the conference sessions were already online.

Nope, no 2010 conference sessions at [Wayback/Archive] jpluimers/Conferences: Materials for the conferences that Jeroen Wiert Pluimers spoke on., and no blog post yet.

Hopefully over time I will update that repository, but for now: here is a summary of Delphi Style Guides and a short hint on why to get naming conventions right.

I might extend both in a later blog post, health and time permitting.

Delphi Style Guides

Style guides I found in the past as files named in those session materials:

The above also made me find this interesting post: [Wayback/Archive] Delphi-PRAXiS – Einzelnen Beitrag anzeigen – Delphi Einrücken ::: ::: Wie rückt ihr ein? which mentions these style guides (I modified all links to point to the most recent WayBack machine version that is complete)):

  • Borland empfiehlt folgende Formatierungsregeln:
    http://community.borland.com/article/0,1410,10280,00.html
    Der Punkt 3 “naming conventions” schweigt sich aber über Deine Frage aus 
  • Deutsche Übersetzung der Borland Style Guides
    http://www.dsdt.info/grundlagen/styleguide/
    Unsere Freunde von dsdt.info haben sich die Mühe gemacht und dem Text ins deutsche Übersetzt.
    Damit gibt es nun keine Ausreden mehr sich nicht an die Richtlinien zu halten 
  • Delphi 4 Developer’s Guide Coding Standards Document
    von Econos – Stefan Hoffmeister (1998)
    basiert auf dem Coding standard von Xavier Pacheco and Steve Teixeira
    http://www.econos.de/delphi/cs.html
    Hier gibt es auch eine Liste mit Präfixen zu den einzelnen Komponenten
  • Delphi Object Pascal Coding and Project Organization Standard
    von Michael P. Hollis and Mark S. Lauter
    http://onelauter.com/codestandards/
    Hier wird zwar auch nicht auf die Präfixe eingegangen, aber es wird unter anderem auch eine Verzeichnisstruktur vorgeschlagen.
    Solch ein Dokument mit den einzuhaltenden Regeln sollte in jedem Projekt / Team existieren.
  • Delphi coding Standards
    Maintained by Mustafa GÖKMEN
    http://gokmen.selcuk.edu.tr/document…/delphi/cs.php
    Hier ist auch eine Liste mit Präfixen enthalten
  • Delphi Identifier Naming Conventions
    von Zarko Gajic
    it made it into the WayBack machine
    Dieser Artikel befasst sich nur mit der Benamung von Variablen

The dstgroup version is based on WayBack: onelauter.com/codestandards/CodeStandards.doc.

Mixed emotions conventions

Anyway, this is the piece of code by Uwe Raabe that made me frown as it mixes two Delphi styles at once and uses improper meanings in names:

procedure TSearchForm.StartSearch;
begin
  StatusBar.SimpleText := '';
  dspFiles.Clear;
  Files.Clear;
  BeginSearch;
  SearchFolder(edtRootFolder.Text, edtSearchPattern.Text);
  EndSearch;
end;
 
procedure TSearchForm.SearchFolder(const APath, ASearchPattern: string);
var
  arr: TArray;
  dir: string;
begin
  arr := TDirectory.GetFiles(APath, ASearchPattern);
  AddFiles(arr);
  { release memory as early as possible }
  arr := nil;
  for dir in TDirectory.GetDirectories(APath) do begin
    if not TDirectory.Exists(dir) then Continue;
    SearchFolder(dir, ASearchPattern);
  end;
end;
 
procedure TSearchForm.AddFiles(const AFiles: TArray);
begin
  Files.AddStrings(AFiles);
  dspFiles.Items.Count := Files.Count;
  StatusBar.SimpleText := Format('%d files found', [Files.Count]);
end;

This is the start of technical debt, and resulted in the below cool Twitter thread.

Note that I intentionally used “Digital Signal Processor” as dsp abbreviations are very context sensitive, causing truckloads of problems especially when switching between functionality at front and technical stuff at front in naming conventions.

Functionally, it could have made very much sense to add files into a list to be passed onto a Digital Signal Processor for pre- or post-processing of signals.

Uwe uses this Style Guide (which regrettably does not pay tribute to the original author):

So yes, Uwe posted a cool example on how to apply technology properly, and I retweeted it as this: [Archive] Jeroen Wiert Pluimers on Twitter: “Async Tasks in VCL Projects. Cool example on how to properly to Async in VCL. Important thought: please do not mix naming conventions like Uwe does, as it is substantially adds to your technical debt.… “

It is also a reminder for me to phrase this into the positive form: stick to one naming convention as it makes less technical debt creep in. Like Uwe, I learn new things every day and be reminded it is hart to not follow old habbits.

–jeroen

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

google chrome devtools – Use JavaScript to set value of textbox when .value and events don’t seem to work – Stack Overflow

Posted by jpluimers on 2022/11/29

For my link archive: [Wayback/Archive] google chrome devtools – Use JavaScript to set value of textbox when .value and events don’t seem to work – Stack Overflow

TL;DR

Sometimes fields are blocked from pasting values.

Normally a trick like this works in the chrome development panel console:

document.getElementById('nonPasteElementID').value = 'myValueFromTheClipboard'

With some web development environments this does not work.

For react, after finding the react render name for the input (in the case of the answer, it was “reactNameForInputElement“) this is a solution:

To make it work you will need this:

const input = document.getElementById('nonPasteElementID');
const event = new Event('reactNameForInputElement', { bubbles: true });
input.value = '1';
input.dispatchEvent(event);

–jeroen

Posted in Chrome, Chrome, Development, Google, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers, Web Development | Leave a Comment »

Kamer van Koophandel: de Non-Mailing-Indicator

Posted by jpluimers on 2022/11/28

I wish they had mailed me about this: [Wayback/Archive] De Non-Mailing-Indicator

Als je na je inschrijving in het Handelsregister niet benaderd wilt worden met fysieke post of huis-aan-huis bezoek op je ingeschreven adres, dan kun je de NMI activeren. Hiermee geef je aan dat je geen ongevraagde reclame per post of verkoop aan je deur wilt.

Na het activeren van de NMI staat dit zowel op het uittreksel als in de gratis toegankelijke informatie op de website.

De bescherming die de NMI biedt, is beperkt tot fysieke post en huis-aan-huis bezoek. De NMI beschermt niet tegen reclame en aanbiedingen via e-mail, telefoon, sms of WhatsApp. Je moet er rekening mee houden dat je ondanks de activering snel na je inschrijving benaderd gaat worden met allerlei aanbiedingen. Bedrijven en organisaties maken daarvoor gebruik van de openbare gegevens van het Handelsregister.

Het aanzetten van de NMI betekent dat je minder goed gevonden wordt. Zo heeft Google als beleid dat ze bedrijven met een NMI niet opneemt in Google Maps.

Je kunt eenvoudig via een formulier de [Wayback/Archive] Non-Mailing-Indicator activeren of deactiveren.

Met dit formulier kun je de non-mailing-indicator (NMI) activeren of deactiveren. Kies je voor ‘activeren’ dan mogen jouw gegevens uit het Handelsregister niet worden gebruikt voor postreclame of verkoop aan de deur. Je kunt zelf checken of je de NMI wel of niet hebt geactiveerd. Doe hiervoor de volgende stappen:

  • Ga naar [Wayback/Archive] de bedrijvenzoeker en vul je bedrijfsnaam of KVK-nummer in.
  • Klik op jouw bedrijfsnaam. Je gaat nu naar een pagina waar alle gegevens van jouw bedrijf staan.
  • Zie jij de zin “De onderneming/organisatie wil niet dat haar adresgegevens worden gebruikt voor ongevraagde postreclame en verkoop aan de deur” staan? Dan heb jij je NMI geactiveerd. Zie je deze zin niet, dan heb jij de NMI niet geactiveerd.

Als je je inschrijft in het Handelsregister kun je direct de NMI activeren. Als je de NMI op een later tijdstip activeert, bijvoorbeeld enkele maanden na je inschrijving, dan zijn je gegevens al bij veel bedrijven en organisaties bekend en opgenomen in hun databestanden. Dit wordt niet automatisch aangepast tenzij deze bedrijven regelmatig via KVK een update aanvragen. Omdat het achteraf activeren van de NMI in de praktijk weinig effect blijkt te hebben, kun je er het beste voor kiezen om dat meteen bij de inschrijving te doen.

jeroen

Posted in About, LifeHacker, Personal, Power User, Security | Leave a Comment »

Isotopp’s home sensor network

Posted by jpluimers on 2022/11/25

For my link archive an interesting blog post by isotopp (Kristian Köhntopp)

[Wayback] My home sensor network

I have been asked to document my home sensor network. Being married to a person with a background in web security sets boundary conditions:

  1. No cloud. We are running all services locally.
  2. No control, only metrics.

I am collecting data from a number of plugs with power meters over Wifi, using the MQTT protocol. I am also collecting data from a number of temperature sensors over Zigbee, and convert to MQTT. The MQTT data is ingested into Influx, and then read and plotted in Grafana. All of this is dockered and runs locally on an Ubuntu server.

Via [Archive] Kristian Köhntopp on Twitter: “For @sluongng …”

–jeroen

Posted in Hardware, IoT Internet of Things, Power User | Leave a Comment »

Great tags: #BugMagnet #IAmATester

Posted by jpluimers on 2022/11/24

I should use the great tags #BugMagnet #IAmATester more often.

Via: [Archive.is] Stephan Kämper on Twitter: “Moin @VIVANI_official, wenn man vom Twitter-Profil auf den Link zur Webseite klick, dann landet man auf einer Login-Seite von @WordPress, nicht beim Impressum, wie es der Link-Text vermuten lässt. #BugMagnet #IchBinEinTester”

–jeroen

Posted in Development, SocialMedia, Software Development, Testing | Leave a Comment »

Hugo, a static website engine written in Go: I might eventually switch WordPress to it

Posted by jpluimers on 2022/11/23

A long time ago, when just recovering from my december 2019 rectum cancer radiation treatments, I asked what Hugo was, to which tiara fan Jenn happily replied “[Archive] Jenn on Twitter: “It is a static website engine written in Go, … ““.

Like me, writing down or trying stuff is her way to remember things: [Archive] Jenn on Twitter: “For some reason, handwriting terminal commands helps to cement them in my head.… “

In 2021, Isotopp moved over to Hugo and I kindly asked if in the future he would help me out if I wanted to move from WordPress to Hugo.

The thread:

I will need to find a way to schedule posts though.

Note I archived Isotopp’s full thread at [Wayback/Archive] Thread by @isotopp on Thread Reader App – Thread Reader App.

–jeroen


https://twitter.com/geekgalgroks/status/1213574787785744384

It is a static website engine written in Go, https://t.co/msgP26rYRM

Related tweets in August 2020:

https://twitter.com/isotopp/status/1299319847617286146

Wo ich arbeite scheint alles auf ein Markdown im Git und eine Variante von Hugo, Jekyll oder ähnlich zu konvergieren.

https://twitter.com/mausdompteur/status/1299320903524851713

Gitlab Pages für Gitlab Häuser, die nicht schon Jira haben. Mit Web IDE ist das online und Inline zu bedienen.

Posted in Blogging, Development, Go (golang), SocialMedia, Software Development, Web Development | Leave a Comment »

Migration from Twitter to Mastodon | ads’ corner

Posted by jpluimers on 2022/11/22

Yet another interesting post (I think it is via [Wayback/Archive] isotopp, but I cannot find the original message any more): [Wayback/Archive] Migration from Twitter to Mastodon | ads’ corner.

jeroen

Posted in Mastodon, SocialMedia, Twitter, Uncategorized | Leave a Comment »

A while ago I bumped into some GPI Mojibake examples, but soon found out I should use the ftfy test cases

Posted by jpluimers on 2022/11/22

I have been into more and more Mojibake example pages like [Wayback] Mojibake: Question Marks, Strange Characters and Other Issues | GPI

Have you ever found strange characters like these ���  when viewing content in applications or websites in other languages?

They made me realise that all these (including the Mojibake examples on my blog) are just artifacts, but the real list of examples is the set of ftfy test cases at [Wayback/Archive.is] python-ftfy/test_cases.json at master · LuminosoInsight/python-ftfy

I got reminded when Waternet moved from paper mail using “Pyreneeën” to email using “Pyreneeën“. Not as bad as Waterschap AGV did earlier: they took it one level further and made “Pyreneeën” out of it, see Last year, a classic Mojibake was introduced when Waterschap Amstel, Gooi en Vecht redesigned their IT systems.

This seems like a trend where newer systems perform worse than older systems. I wonder why that is.

BTW: the trick on the [Wayback/Archive] Python.org shell to run ftfy (which is not installed by default) is first dropping to the shell (see my post How do I drop a bash shell from within Python? – Stack Overflow), then starting python again:

Read the rest of this entry »

Posted in CP850, Development, Encoding, ftfy, ISO-8859, Mojibake, Python, Scripting, Software Development, Unicode, UTF-8, UTF8 | Leave a Comment »

Polderman: “Alsjeblieft: mijn magische sinterklaasgedichtengenerator!… “

Posted by jpluimers on 2022/11/21

Voor een jaar waarin corona voorbij is en we toch een Sinterklaasgedicht nodig hebben:

[Archive] Polderman, beslisbomenmaker des vaderlands 🌳 on Twitter: “Alsjeblieft: mijn magische sinterklaasgedichtengenerator!… “

Er is ook een [Wayback/Archive] groot plaatje door [Archive] Bart van der Linden on Twitter: “.@Poldermanie zat te denken, waarom zou ik Nederland niet een magische sinterklaasgedichtengenerator schenken…… “.

Via [Archive] Ionica Smeets on Twitter: “Echt jammer dat ik niet het lootje van Gert-Jan heb.… “.

–jeroen

Posted in LifeHacker, Power User | Leave a Comment »

Kris helped me motivate to enter the Fediverse, so here I am: @wiert@mastodon.social

Posted by jpluimers on 2022/11/18

Given Elon Musk taking over Twitter, I decided to create an account in the federated social network Mastodon part of the Fediverse realm. In my case it is [Wayback/Archive] Jeroen Wiert Pluimers (@wiert@mastodon.social) – Mastodon (which you can visit at mastodon.social/@wiert).

Right now the account is rudimentary. More meta-data and media will be added later.

Mastodon is open source at [Wayback/Archive] mastodon/mastodon: Your self-hosted, globally interconnected microblogging community and you can join via [Wayback/Archive] Mastodon – Decentralized social media (joinmastodon.org) after choosing a Mastodon server/website. I have chosen [Wayback/Archive] Home – Mastodon (mastodon.social).

Given a Mastodon has a trunk, messages on Mastodon are called “Toots”.

For now some of the Tweets and links that Kris ([Wayback/Archive] Kris (@isotopp@chaos.social) – chaos.social) posted helping me to start on Mastodon.

Read the rest of this entry »

Posted in Mastodon, SocialMedia, Twitter | Leave a Comment »