Archive for October, 2020
Posted by jpluimers on 2020/10/22
Always interesting to see what others put on their Windows development systems, for instance: [WayBack] My toolkit – Roald’s blog
Everytime I (re)install my development computer I need to think about all the tools I need and use on a regular basis. For that reason, and maybe to inspire others, here’s my list of essentia…
–jeroen
Posted in .NET, Delphi, Development, Software Development, Windows Development | Leave a Comment »
Posted by jpluimers on 2020/10/22
An old trick that I tend to forget: [WayBack] delphi – How to convert a null terminated string to string? – Stack Overflow:
You can assign a null-terminated PChar directly to a String:
function GetFileName(DiskName: TFileNameIO): string;
begin
Result := PChar(@DiskName);
end;
It can work even on string literals and constants, where you can leave out the @, like in:
var
S: string;
begin
S := PChar(FastMM4Messages.LogFileExtension;
Probably time to update the unit I mention in ISO 8601 Date, Time and DateTime in Delphi (was: Simple example to show DateTime.Now in ISO 8601 format on ideone.com | Online C# Compiler & Debugging Tool).
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2020/10/21
Cool:
The triggering in this case is the result of a main power drop and recover. The battery is unable to keep the votage at 9V level at the very moment any led is turned on, the voltage is droped down. That is what makes pin 14 to get the clock pulse so the 4017 shifts to the next led. The moment the led is off and right before the next led is turned on the main power gets recovered. When the next led is on again, the main power drops down, and so on.
Schema but less explanation on: [WayBack] LED Chaser with only 4017 – RevealNew


–jeroen
Read the rest of this entry »
Posted in Development, Electronics Development, Hardware Development | 1 Comment »
Posted by jpluimers on 2020/10/21
[WayBack] Top 45 Best Automation Testing Tools Ultimate List • Test Automation Made Easy: Tools, Tips & Training Awesomeness A few notes, partially related to Enable your device for development – UWP app developer | Microsoft Docs.
One research project I had a while ago, was to see how it was possible to use a generic testing tool like Katalon Studio (that can test many platforms), for testing Windows applications.
Katalon uses a Selenium interface that normally is used for web applications through the [WayBack] WebDriver protocol (formerly [WayBack] JsonWireProtocol) that continues to be updated: [WayBack] draft upcoming WebDriver protocol, which is more generic than just web applications:
Read the rest of this entry »
Posted in .NET, Conference Topics, Conferences, Delphi, Development, Event, Software Development, Windows Development, WinForms, WPF | Leave a Comment »
Posted by jpluimers on 2020/10/21
One of the dreaded things when logging on using RDP is that if another user is logged on, you have to first indicate you want to indeed logon (if you don’t, the RDP connection will close after some 15-30 seconds), then wait for their approval time-out before you can logon.
As of writing there is no way around this.
Some links that helped me conclude this:
–jeroen
Posted in Development, Power User, Software Development, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Development | Leave a Comment »
Posted by jpluimers on 2020/10/21
On Windows, filenames do not like some characters (including : and +), so this is a quick way to get a timestamp into ISO8601 format that is compatible with filenames.
TimeStamp := Now();
StartIso8601String := DateToISO8601(TimeStamp, False).Replace('-', '').Replace(':', '') // https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators
It Depends on the [WayBack] System.DateUtils unit which had the [WayBack] DateToISO8601 function [Archive.is] added in Delphi XE6.
A poor man’s solution (that skips timezones altogether) is this one:
FormatDateTime('yyyymmdd''T''hhnnss''.''zzz', TimeStamp); // note quoted T and ., as otherwise they will be expanded.
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2020/10/20
I think an:
- Object Pool is meant to set a maximum on the number of pooled objects because they are expensive in resource usage.
- Object Cache is meant to store objects (but not cap it) that are expensive to create, but do not per se are expensive in resource usage.
For future reading:
–jeroen
Posted in Conference Topics, Conferences, Event | Leave a Comment »
Posted by jpluimers on 2020/10/20
From [WayBack] Enable your device for development – UWP app developer | Microsoft Docs:
Run these as administrator on the command prompt to:
Enable Sideloading
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" /t REG_DWORD /f /v "AllowAllTrustedApps" /d "1"
Enable Developer Mode
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" /t REG_DWORD /f /v "AllowDevelopmentWithoutDevLicense" /d "1"
Needed for WinAppDriver to test applications from Selenium or Katalon
When you run WinAppDriver without it, you get this:
C:\Users>"C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe"
Failed to initialize: 0x80004005
SetCapabilities name parameters and values
Various searches for what to pass as parameters to SetCapabilities failed, but the list is right at the README, but without any mention SetCapabilities, so search engines miss it with for instance “SetCapabilities” “WinAppDriver” – Google Search that only returned these links:
Supported Capabilities
Below are the capabilities that can be used to create Windows Application Driver session.
| Capabilities |
Descriptions |
Example |
| app |
Application identifier or executable full path |
Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge |
| appArguments |
Application launch arguments |
https://github.com/Microsoft/WinAppDriver |
| appTopLevelWindow |
Existing application top level window to attach to |
0xB822E2 |
| appWorkingDir |
Application working directory (Classic apps only) |
C:\Temp |
| platformName |
Target platform name |
Windows |
| platformVersion |
Target platform version |
1.0 |
–jeroen
Posted in Conference Topics, Conferences, Development, Event, Katalon, Software Development, Testing | Leave a Comment »
Posted by jpluimers on 2020/10/20
A still relevant part for [WayBack] Class methods in Record vs Class in Delphi 2010+ – Stack Overflow is the distinction between class methods on both:
- on
classes they can be either regular (no extra keyword), static or virtual.
- on
records they can only be static, as there is no inheritance on records
- this also holds for any helpers that are not
class helpers (and presumably if they are ever created: interface helpers)
While class methods inside classes can be used in the same way, they can in addition have another goal: they can be virtual. Called from a class variable this can lead to different implementations depending on the current content of that variable. This is not possible for records. As a consequence class methods in records are always static.
Thanks Uwe Raabe for this insight!
One odd thing on class methods in classes, is that when they need to be static when they are the read or write backing of a class property.
When a class method is static, any calls from it to virtual (or dynamic) methods will not be handled as such: there is no class VMT for it (as because they are static, they do not have a self parameter).
–jeroen
PS: I realised later that part of the above was already in E2398 Class methods in record types must be static (Delphi) – RAD Studio
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2020/10/19
Want: [WayBack] Typografische Strafzettel – Nerdcore
Hoefler&Co verkauft Typografische Strafzettel für Schlechtsetzer und Buchstabenkombinationsnullen. Die Schriftverbrechen gliedern sich auf dem Strafzettel in Vergehen der Auswahl (wie der unironische Einsatz „amüsanter“ Schriften oder die amateurishe Anwendung von Schriftauszeichnung ), der Komposition (zuviele Schriftgrößen, schlechtes Kerning), der Zeichensetzung (Ligaturen, korrekte Anführungen) und in Schwere Ästhetikverletzungen (elektronische Schrägschrift, Verzerrung). Großartige Idee, und sie haben nichtmal ComicSans mit Namen erwähnt. Toll! (via Jason Kottke, Bild des ganzen Strafzettels unten via /u/hova414) By special issue from the 100% totally real Typographic Violations Division, the Uniform Ticket Book is standard equipment for the modern design enforcer. Lists thirty-two common design infractions, each
I wish they were available outside in Europe, as it looks like it is is USA only with large foreign shipping costs at [WayBack] The Typographic Ticket Book – Hoefler&Co:
By special issue from the 100% totally real Typographic Violations Division, the Uniform Ticket Book is standard equipment for the modern design enforcer. Lists thirty-two common design infractions, each with an appropriate penalty, with plenty of room for improvisation. Authoritatively typeset in Helvetica to provoke
Via:
Picture via [WayBack] reddit: Just got this in a swag bag : graphic_design
–jeroen
Read the rest of this entry »
Posted in Font, Fun, Geeky, Power User | Leave a Comment »