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

Archive for the ‘Software Development’ Category

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 »

version control – How do I do an initial push to a remote repository with Git? – Stack Overflow

Posted by jpluimers on 2020/04/30

Based on [WayBack] version control – How do I do an initial push to a remote repository with Git? – Stack Overflow, this is what I do:

On the server

mkdir my_project.git
cd my_project.git
git --bare init

On the client

mkdir my_project
cd my_project
touch .gitignore
git init
git add . git
commit -m "Initial commit"
git remote add origin youruser@yourserver.com:/path/to/my_project.git
git push --set-upstream origin master

The last one is important, especially when you have multiple remotes.

Some servers allow you to skip the server part, as they run them automatically when pushing a new repository from the client.

This can be both an advantage and a disadvantage, for instance when you have typos when adding the remote.

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management | Leave a Comment »

The Invention of C++ – Nice bit of net lore

Posted by jpluimers on 2020/04/30

This is a nice joke: [WayBackThe Invention of C++ – Nice bit of net lore.

But the actual interview linked from the article is quite nice: [WayBack: The Real Stroustrup Interview]

By the name, I found the actual (hopefully still online when this gets out of the blog post queue) version at [WayBack] Stroustrup: Interviews under [WayBackstroustrup.com/ieee_interview.pdf

–jeroen

Via: [WayBack] The invention of C++ – Thomas Mueller (dummzeuch) – Google+

Posted in C, C++, Development, History, Software Development | Leave a Comment »

Joe Groff on Twitter: “As programmers, we write parsers all the time, but handling parser errors well tends to fall by the wayside. Here’s a quick blog post with some high-level observations on how to deal with parse errors well”

Posted by jpluimers on 2020/04/30

From a while ago, but I archived and collected the links. Be sure to read the comments in the Twitter threads.

–jeroen

Read the rest of this entry »

Posted in Design Patterns, Development, Software Development | Leave a Comment »

Mono-repo or multi-repo? Why choose one, when you can have both?

Posted by jpluimers on 2020/04/29

Interesting: [WayBack] Mono-repo or multi-repo? Why choose one, when you can have both?

Uses: [WayBack] GitHub – mateodelnorte/meta: tool for turning many repos into a meta repo. why choose many repos or a monolithic repo, when you can have both with a meta repo?

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management | Leave a Comment »