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

Rewritten version (free for non-commercial; small price for commercial use) GitHub – pleriche/FastMM5: FastMM is a fast replacement memory manager for Embarcadero Delphi applications that scales well across multiple threads and CPU cores, is not prone to memory fragmentation, and supports shared memory without the use of external .DLL files.

Posted by jpluimers on 2020/05/05

It has been mentioned a few times already, but for my link archive: [WayBack] GitHub – pleriche/FastMM5: FastMM is a fast replacement memory manager for Embarcadero Delphi applications that scales well across multiple threads and CPU cores, is not prone to memory fragmentation, and supports shared memory without the use of external .DLL files.

From the [WayBack] README.md:

Version 5 is a complete rewrite of FastMM. It is designed from the ground up to simultaneously keep the strengths and address the shortcomings of version 4.992:

  • Multithreaded scaling across multiple CPU cores is massively improved, without memory usage blowout. It can be configured to scale close to linearly for any number of CPU cores.
  • In the Fastcode memory manager benchmark tool FastMM 5 scores 15% higher than FastMM 4.992 on the single threaded benchmarks, and 30% higher on the multithreaded benchmarks. (I7-8700K CPU, EnableMMX and AssumeMultithreaded options enabled.)
  • It is fully configurable runtime. There is no need to change conditional defines and recompile to change options. (It is however backward compatible with many of the version 4 conditional defines.)
  • Debug mode uses the same debug support library as version 4 (FastMM_FullDebugMode.dll) by default, but custom stack trace routines are also supported. Call FastMM_EnterDebugMode to switch to debug mode (“FullDebugMode”) and call FastMM_ExitDebugMode to return to performance mode. Calls may be nested, in which case debug mode will be exited after the last FastMM_ExitDebugMode call.
  • Supports 8, 16, 32 or 64 byte alignment of all blocks. Call FastMM_EnterMinimumAddressAlignment to request a minimum block alignment, and FastMM_ExitMinimumAddressAlignment to rescind a prior request. Calls may be nested, in which case the coarsest alignment request will be in effect.
  • All event notifications (errors, memory leak messages, etc.) may be routed to the debugger (via OutputDebugString), a log file, the screen or any combination of the three. Messages are built using templates containing mail-merge tokens. Templates may be changed runtime to facilitate different layouts and/or translation into any language. Templates fully support Unicode, and the log file may be configured to be written in UTF-8 or UTF-16 format, with or without a BOM.
  • It may be configured runtime to favour speed, memory usage efficiency or a blend of the two via the FastMM_SetOptimizationStrategy call.

Read the rest of this entry »

Posted in Delphi, Development, FastMM, Software Development | 6 Comments »

Vue.js and TypeScript links

Posted by jpluimers on 2020/05/05

Since I one day need to do some Vue.js with TypeScript:

–jeroen

Posted in Development, JavaScript/ECMAScript, Scripting, Software Development, TypeScript, Vue.js | Leave a Comment »

Certified Stealing Sh*t That Works Practitioners

Posted by jpluimers on 2020/05/05

A large part of my work is not how to search blindly, but how to actually find things, assess what parts of them are useful, then use the bits that are.

A big reason for writing this blog in the first place, is find back the stuff that worked so next time the search is easier.

So, share the CSSTWP information from [WayBack] Certified Stealing Sh*t That Works Practitioners if you like:

Certified Stealing Sh*t That Works Practitioners

CSSTWPs have come to value:
Trying new things over sticking with what we know
Trusting experience over third-party certification
Learning from peers over training courses
Choosing effective practices over MethodologyBrand™ allegiance
If you agree then… Tweet #CSSTWP
What are other people saying? Tweets by csstwp
If you agree then… Tweet #CSSTWP

Via [WayBack] I’m a proud Certified Stealing Sh*t That Works Practitioner. Are you? #CSSTWP – Marjan Venema – Google+ (who is an excellent coach).

–jeroen

 

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

Interesting insights by Andreas Hausladen Twitter on the Delphi splash screen process, license file handling

Posted by jpluimers on 2020/05/05

Interesting insights from [WayBackAndreas Twitter: “I was joking about #Delphi’s splash screen to be shown later so Embt can claim that it finishes much faster now. Today my Internet was down and guess what I had to “witness”. Seattle: 22 sec splash screen time Tokyo: 2 sec splash screen time Sounds fantastic, but…… https://t.co/FGtnJQZDyc”:

  • in earlier versions part of the copy protection (WinVerifyTrust calls) were done after the splash screen was visible and now they are done before.
  • That the WinVerifyTrust call took so long was because Windows (not Delphi) wanted to check for revoked certificates in the first WinVerifyTrust call (due to the missing only-cache flag) and my router seems to not like it if the modem doesn’t have a connection/link to the provider
  • consider using FILE_FLAG_DELETE_ON_CLOSE so that if the IDE is killed during its start (debug session when you see that you forgot something and want to abort) doesn’t wait ~3 minutes or more until the lock is lifted

More relevant links based on the above:

Via [WayBack] Anyone else saw the video on this Andreas Hausladen post? – Cesar Romero – Google+ where I found this observation interesting:

My vm installs have zero net on by default, host only lan, lan only, and internet provided on demand. I’m noticing a lot of differences in the splash screens of 10.2.2.2.2, often lacking registration confirm info (making me nervous).

–jeroen

Read the rest of this entry »

Posted in Development, Software Development, The Old New Thing, Windows Development | Leave a Comment »

GitHub – ofek/hatch: A modern project, package, and virtual env manager for Python

Posted by jpluimers on 2020/05/04

Cool: [WayBack] GitHub – ofek/hatch: A modern project, package, and virtual env manager for Python

Via: [WayBack] Hatch: A modern project, package, and virtual env manager for Python – ThisIsWhyICode – Google+

–jeroen

Posted in Development, Python, Scripting, Software Development | Leave a Comment »

Black Thread Design | Convert 3D models to GLTF

Posted by jpluimers on 2020/05/04

Cool. [WayBack] Black Thread Design | Convert 3D models to GLTF:

GLTF is the up and coming superstar of 3D model formats – you can even display it on the Facebook news feed. Use this tool to convert from various formats to GLTF using the three.js exporter

All Java Script based: [WayBack] three.js / examples.

Via:

–jeroen

Read the rest of this entry »

Posted in Development, JavaScript/ECMAScript, Scripting, Software Development | Leave a Comment »

SSH through HTTPS

Posted by jpluimers on 2020/05/04

Often, hotspots only allow http/https traffic. Other traffic – like SSH – is blocked. Nowadays, fewer hotspots block that, but too many still do.

So it can be worth a while to route your SSH server through HTTPS (I don’t like Web-based SSH that much as terminal emulation in browsers isn’t that well yet, but that seems to change rapidly, more on that in the “Further reading” section below).

After some background reading at apache – Tunnel over HTTPS – Stack Overflow, here are a few links that help you do it:

Server side: DAG: Tunneling SSH over HTTP(S).

You need:

  • An internet connected Apache server (eg. with IP address 10.1.2.3)
  • A FQDN that points to this IP address (eg. ssh.yourdomain.com)
  • A virtual host configuration in Apache for this domain (eg. /etc/httpd/conf.d/ssh.yourdomain.com.conf)
  • A configuration to adapt ssh to use the HTTP tunnel

Read more at DAG: Tunneling SSH over HTTP(S) and SSH over SSL, a quick and minimal config..

Client side: Using SSH over the HTTPS port · GitHub Help.

Steps:

  1. Test of it works at all
  2. Edit your local ~/.ssh/config file to redirect SSH to HTTPS

Read more at Using SSH over the HTTPS port · GitHub Help.

Using Putty and an HTTP proxy to ssh anywhere through firewalls | Me in IT.

the Digital me: SSH Tunneling Proxy using Putty on Windows and Linux (Unblock YouTube / Orkut / Facebook).

Tunneling SSH through HTTP proxies using HTTP Connect – ArchWiki.

HTTP Tunneling – ArchWiki.

Running SSHD on port 443.

Not all proxy configurations and hotspots support this. But it might be worth a look: SSH Over Proxy.

Further reading: Web-based SSH.

SSH plugins for browsers:

Web based SSH:

–jeroen

Posted in Communications Development, Development, Encryption, HTTP, https, HTTPS/TLS security, Internet protocol suite, Power User, Security, SSH, TCP | Leave a Comment »

OpenSSH keygen guidelines

Posted by jpluimers on 2020/05/01

Verify [WayBack] OpenSSH: Key generation before generating keys.

At the time of grabbing it was this (for the mozilla tag; use another tag if you prefer):

# RSA keys are favored over ECDSA keys when backward compatibility ''is required'',
# thus, newly generated keys are always either ED25519 or RSA (NOT ECDSA or DSA).
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_mozilla_$(date +%Y-%m-%d) -C "Mozilla key for xyz"

# ED25519 keys are favored over RSA keys when backward compatibility ''is not required''.
# This is only compatible with OpenSSH 6.5+ and fixed-size (256 bytes).
$ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_mozilla_$(date +%Y-%m-%d) -C "Mozilla key for xyz"

This was not changed based on [WayBack] Key generation: pass-a and -o argument? · Issue #68 · mozilla/wikimo_content · GitHub: a discussion on the KDF rounds (-a parameter) and storage format (-o parameter).

This is slightly less strong than in [WayBack] Upgrade Your SSH Key to Ed25519 | Programming Journal, but seems to be OK when writing this in 2018.

For comparison, a similar discussion is at [WayBack] public key – How many KDF rounds for an SSH key? – Cryptography Stack Exchange.

In practice, I am not for one ssh ID per host, but I use different tags depending on where the ssh ID applies. More discussion on this is at [WayBack] privacy – Best Practice: ”separate ssh-key per host and user“ vs. ”one ssh-key for all hosts“ – Information Security Stack Exchange

Based on the above, I also learned about this password generator: [WayBack] GitHub – gdestuynder/pwgen

–jeroen

Posted in *nix, *nix-tools, Encryption, Hashing, Power User, Security, ssh/sshd | Leave a Comment »

LED bulbs in IKEA track lighting systems lie SANSA or LINA – SM2YER Goran’s Homepage

Posted by jpluimers on 2020/05/01

It is easy to replace the halogen bulbs in IKEA track lighting systems like IKEA SANSA or IKEA LINA by LED bulbs (Sansa uses 5.3mm spaced MR16 fitting compatible with both GX5.3 and GU5.3 bulbs, I think LINA uses the same): [WayBack] SM2YER Goran’s Homepage.

There are many other fittings; [WayBack] LED fitting welke moet ik kiezen? | Lampfittingen overzicht has a good list, mentioning these:

  • E14
  • E27
  • GU10
  • MR11 (which has slightly thicker pins than G4 and GU4)
  • G4 and GU4
    (with varying pin thickness)
  • G5.3, GX5.3, GU5.3
    (with varying pin thickness)
  • G6.35, GX6.535, GY6.35, GZ6.35
    (with varying pin thickness)
  • MR16
  • G9
  • GU10
  • AR111

The problem is the power supplies. They do not like the low wattage, or even burn with low wattage. Two solutions:

  • Use at least one 10W bulb, or
  • Use a 12V power supply from a laptop or other device that delivers far less power.

Fitting references:

--jeroen

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

Finding back license keys on Windows

Posted by jpluimers on 2020/05/01

Every now and then, I tend to misplace software license keys so they are only on the system I’ve installed it on.

Too bad, virus scanners (including the built in Windows one) tend to get more picky on which of the below tools get automatically deleted, so I’ve listed quite a few of them, including some posts with more links:

Note some of the PowerShell scripts fail on some of the installations I tried. Not sure why yet.

–jeroen

Posted in Power User, Windows | Leave a Comment »