Since all three editions of [Wayback/Archive] The Cloud Resume Challenge Guidebook were on my wish list as I wanted to practice more cloud computing skills in a structured way during my reintegration after the long series of procedures that (hopefully for a long time) got rid of my metastasised rectum cancer, I was really happy to win the bundle late 2022:
Archive for the ‘Development’ Category
I won a “The Cloud Resume Challenge Guidebook” bundle: Thanks Forrest Brazeal for writing it and Lightspin for the prize (:
Posted by jpluimers on 2022/12/03
Posted in Amazon.com/.de/.fr/.uk/..., AWS Amazon Web Services, Azure Cloud, Cloud, Cloud Development, Development, GCP Google Cloud Platform, Infrastructure, Software Development | Leave a Comment »
Some experience of htmlpreview.github.io as a replacement for rawgit.com
Posted by jpluimers on 2022/12/01
With [Wayback/Archive] rawgit.com having sunset years ago, but still having a [Wayback/Archive] few links to it from my blog, it was time to take a closer look at the alternative [Wayback/Archive] htmlpreview.github.io.
First of all, htmlpreview needs more examples. I might submit a pull request for it later, as it is open source at [Archive/Archive] htmlpreview/htmlpreview.github.com: HTML Preview for GitHub Repositories.
Second, some actual example URLs, based on content I previously accessed through rawgit.com.
Posted in Development, DVCS - Distributed Version Control, git, GitHub, HTML, Power User, rawgit, Software Development, Source Code Management, Versioning, Web Development | Leave a Comment »
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:
Delphi Identifier Naming Conventions.pdf
This is the “Delphi Identifier Naming Conventions” blog post on About.com by [Wayback/Archive] Žarko Gajić.
I originally saved it from delphi.about.com/od/standards/l/bldnc.htm, and luckily it made it into the WayBack machine.
Econos - Coding Standard Document.pdf
This was the style guide at by [Wayback/Archive] Stefan Hoffmeister and too archived into the Wayback machine
JCL Delphi Language Style Guide.pdf
This is now online as part of the JCL Wiki at [Wayback/Archive] Project JEDI Delphi Language Style Guide – Project JEDI Wiki.
Object Pascal Style Guide.pdf
This one is by [Wayback/Archive] Charlie (Charles) Calvert and still online at [Wayback/Archive] Object Pascal Style Guide.
Charlie has [Wayback/Archive] his own YouTube channel as well.
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.
- [Archive] Uwe Raabe on Twitter: “New article …”
- [Wayback/Archive] Async Tasks in VCL Projects – The Art of Delphi Programming <——— this is where the code example comes from
- [Archive] Jeroen Wiert Pluimers on Twitter: “So you put the files in a digital signal processor? (which is the reason I recommend against using abbreviations when naming things in software as abbreviations are very context sensitive)… “
- [Archive] Uwe Raabe on Twitter: “Another one is
selfor Select used radiogroups or comboboxes. I prefer to prefix the usage and not the control type.… “ - [Archive] Jeroen Wiert Pluimers on Twitter: “I first saw the
TSearchFormname, and thought “Yay, finally someone else getting the very useful naming convention which puts technology at the end and goes without abbreviations”. Then camedspand other shortcuts in the mix. Bummer (;… “ - [Archive] Uwe Raabe on Twitter: “Sorry to have disappointed you.… “
- [Archive] Jeroen Wiert Pluimers on Twitter: “To problem, was just trying to figure out the why.… “
- [Archive] Uwe Raabe on Twitter: “Style Guide – never perfect, but always better than none… “
- [Archive] Jeroen Wiert Pluimers on Twitter: “Which of the style guides do you use? I know there are a few; I thought I had posted a blog articles about them, but didn’t, so need to find where I used to name them in training/session materials and try to get one up at a later stage.… “
- [Archive] Uwe Raabe on Twitter: “I try to follow the Delphi Style Guide as described in the docwiki: … I admit that there are some old habits that don’t match it exactly. Trying to get better.… “
Uwe uses this Style Guide (which regrettably does not pay tribute to the original author):
- [Wayback/Archive] Delphi’s Object Pascal Style Guide – RAD Studio
- [Wayback/Archive] Introduction – RAD Studio
- [Wayback/Archive] General Rules: Identifiers, Keywords, Indentation – RAD Studio
- [Wayback/Archive] Source Code Files, Units and Their Structure – RAD Studio
- [Wayback/Archive] White Space Usage – RAD Studio
- [Wayback/Archive] Comments – RAD Studio
- [Wayback/Archive] Statements – RAD Studio
- [Wayback/Archive] Type Declarations – RAD Studio
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 »
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:
Posted in CP850, Development, Encoding, ftfy, ISO-8859, Mojibake, Python, Scripting, Software Development, Unicode, UTF-8, UTF8 | Leave a Comment »
.NET: programmatically cutting and pasting files (as opposed to copy/pasting them)
Posted by jpluimers on 2022/11/17
Some notes for my link archive.
A long time ago, I asked [Wayback/Archive] c# – Console application using Clipboard.GetFileDropList: how to check if that came from a cut or copy operation? – Stack Overflow.
Back then, the use case had disappeared, so I didn’t follow up. But a new use case might appear soon, so here it goes:
- [Wayback/Archive] Shell Clipboard Formats – Win32 apps | Microsoft Docs: CFSTR_PREFERREDDROPEFFECT (now at [Wayback/Archive] Shell Clipboard Formats – Win32 apps | Microsoft Docs)
- [Wayback/Archive] C# Files – in clipboard How to set/read which operation is called – Cut or Copy – Stack Overflow
- [Wayback/Archive] .net – Cut files to clipboard in C# – Stack Overflow
–jeroen
Posted in .NET, C#, Development, Software Development, VB.NET | Leave a Comment »
Where can I find a comprehensive list of Delphi “compiler magic” declarations? – Stack Overflow
Posted by jpluimers on 2022/11/16
A long time ago, I posted one of the answers to [Wayback/Archive] Where can I find a comprehensive list of Delphi “compiler magic” declarations? – Stack Overflow
So for my link archive, these are the main ways of assembling an (always incomplete, as only partially documented) list:
- [Wayback/Archive] Delphi Intrinsic Routines – RAD Studio
- My [Wayback/Archive] answer quoting parts of the Delphi 2010 (but applies to any version)
System.pasfiltered on lines close to “built-in types” and “compiler magic”, containing:-
EXTERNALSYM -
OBJTYPENAME -
NODEFINE $IFDEF-
$ELSE $ENDIF$IFEND
-
- An interesting approach based on reading [Wayback/Archive] DCUINT32 output (a version is on [Wayback/Archive] github: rfrezino/DCU32INT, I wish it had full version history) for
_and@prefixes to method names in DCU files. - A reference to the now defunct pages [Wayback] docwiki.embarcadero.com/VCL/en/System and (regrettably not archived) docwiki.embarcadero.com/VCL/en/System.Constants that had a comprehensive list of identifiers in the System.pas unit.
- Via the [Wayback/Archive] answer by [Wayback/Archive] Rob Kennedy
- Some information is now spread out over the DocWiki under [Wayback/Archive] System – RAD Studio API Documentation and some moved to [Wayback/Archive] Delphi Intrinsic Routines – RAD Studio, but most of it seems gone.
- Most importantly, Rob in his answer explains why most of the routines do not have signatures in the System.pas unit. Summarised they are compiler magic methods, often overloaded, so do not have a single signature.
–jeroen
Posted in Conference Topics, Conferences, Delphi, Development, EKON, Event, Software Development, Undocumented Delphi | Leave a Comment »
WordPress.com gets it consistently wrong, Twitter has it right: posting time stamps
Posted by jpluimers on 2022/11/15
UTC and time zones are both hard, especially with respect to scheduling.
The easiest would be to schedule things and store the time zone offsets together with the timestamp, just as ISO 8601 has UTC-relative time zone designators, or alternatively store the region in addition to the timestamp (which can be more user friendly).
When a scheduling system uses local time for schedules, you can expect these will adhere to your local time when the schedule becomes in effect.
So I schedule my posts for 06:00, 12:00 and 18:00 local time during weekdays.
Look what happens:
- [Archive.is] Jeroen Wiert Pluimers on Twitter: “Pro-tip for @wordpressdotcom : fix the scheduler so when you schedule in your local time zone, there is no shift during daylight saving time changes. I schedule all my posts to appear at 06:00 12:00 and 18:00 in my local time. 1/… “
- [Archive.is] Jeroen Wiert Pluimers on Twitter: “That works fine during winter time, which is ~5 out of 12 months, for example https://t.co/banrMebk2A 2/… “
- [Archive.is] Jeroen Wiert Pluimers on Twitter: “However 7 out of 12 months, they get posted at 07:00 13:00 and 19:00 local time, for example 3/3… “
Via [Archive.is] Colin Nederkoorn on Twitter: “Pro tip: Don’t schedule recurring meetings in UTC if you live in a place with daylight savings.… “ (which I do not agree with, see my post UTC and ISO 8601, or GTFO).
–jeroen
Posted in Development, ISO 8601, Power User, Software Development, UTC, Web Development | Leave a Comment »






