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 the ‘C++’ Category

webcamoid/webcamoid: Webcamoid is a full featured and multiplatform webcam suite.

Posted by jpluimers on 2024/04/11

This is cool and works well (including the portable version) :[Wayback/Archive] webcamoid/webcamoid: Webcamoid is a full featured and multiplatform webcam suite.

Most code is C++ with bits using the QML language of the Qt cross platform UI library.

It reminded me of the Kylix days: the first Linux version of Delphi where the CLX GUI framework was a rework of VCL but based on Qt instead of Win32 GDI.

The downloads are at [Wayback/Archive] Webcamoid, The ultimate webcam suite! with installable and portable versions of 32-bit and 64-bit for Linux, Mac and Windows (I have tried the latter, see below why).

Read the rest of this entry »

Posted in C++, Delphi, Development, Kylix, kylix_rd, Qt, Software Development | Leave a Comment »

When Microsoft download URLs time out: check if it other IP addresses for the same host do work fine (it might be a regional Microsoft CDN issue)

Posted by jpluimers on 2024/03/28

A while back, early in the Wednesday morning after Patch Tuesday I performed regular updates of all the systems noticing some updates failed because timeouts on the Microsoft download servers.

Note I perform the manual steps on Wednesday as Patch Tuesday as it starts at 10:00 AM PST which is in the evening in Amsterdam. The automated steps are automated and kick in when Microsoft tells the Windows machines to update themselves.

See [Wayback/Archive] Security Update Guide FAQs

Microsoft schedules the release of security updates on “Patch Tuesday,” the second Tuesday of each month at 10:00 AM PST.

Depending on time zone(s) in which the organization operates, IT pros should plan their deployment schedules accordingly. Please note that there are some products that do not follow the Patch Tuesday schedule.

I posted a gist and a Tweet, but didn’t immediately thought of a good resolution so I postponed that until Thursday and found it:

Read the rest of this entry »

Posted in C, C++, Development, Power User, Software Development, Visual Studio and tools, Visual Studio C++, vscode Visual Studio Code, Windows, Windows Development | Leave a Comment »

BitSavers added some more Borland documentation in 2022 (most relevant for me: Assembler, Debugger, Profiler)

Posted by jpluimers on 2024/02/28

Below is a list of the Borland documentation that BitSavers added in 2022, ordered by relevance to me (and how I finally asked Peter Sawatzki if he still had the monochrome TDVIDEO.DLL he wrote for Turbo Debugger 3.0 for Windows):

Read the rest of this entry »

Posted in 8087, Algorithms, Assembly Language, Borland C++, C, C++, Debugging, Development, Floating point handling, Profiling, Software Development, Turbo Assembler, Turbo C, Turbo Debugger, Turbo Profiler, x86 | Leave a Comment »

Via Chris Oldwood on Twitter: the real meaning of various C++ character types wchart_t, char, tchar and varchar

Posted by jpluimers on 2024/02/21

A while ago there was this great thread of various C++ character types:

And since most above talk about character width:

–jeroen

Posted in C++, Conference Topics, Conferences, Development, Event, Fun, Software Development | Leave a Comment »

Very useful link: Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X

Posted by jpluimers on 2023/02/14

If I ever need to go deep into optimisation again, there is lots I can still learn from [Wayback/Archive] Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X

Thanks [Archive] Kris on Twitter: “@Kharkerlake @unixtippse Agner Fog ist eigentlich ein Anthropologe, aber er reversed interne Strukturen von Intel CPUs, und …, speziell 3. The microarchitecture of Intel, AMD and VIA CPUs: An optimization guide for assembly programmers and compiler makers ist die HPC Bibel.” / Twitter!

Must watch video with Agner about Warlike and Peaceful Societies below the signature.

–jeroen

Read the rest of this entry »

Posted in Assembly Language, C++, Development, Software Development, x64, x86 | Leave a Comment »

That new Carbon language, it has a net zero footprint, right?

Posted by jpluimers on 2022/08/25

No, Carbon is not the same thing as the same named MacOS Carbon API it .

Someone had to make it: [Wayback/Archive] Jeroen Wiert Pluimers on Twitter: “@d_feldman That has a net zero Carbon footprint, right? (OK, I’ll show myself out)”.

Luckily Googlers themselves are joking about it as well:

Read the rest of this entry »

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

Google MiraclePtr: a C++ smart pointer implementation

Posted by jpluimers on 2022/08/03

For my link archive:

It’s a smart pointer implementation by Google for C++, at the time of writing still experimental, but seems used in Google Chrome.

Via: [Wayback/Archive.is] Google dicht voor derde keer in maand tijd actief misbruikte lekken in Chrome – Computer – Nieuws – Tweakers

–jeroen

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

How isotopp became the online handle of Kristian Köhntopp

Posted by jpluimers on 2022/06/09

Like me, [Archive.is] Kristian Köhntopp is a nerd.

Unlike me, Kris bumped into character encoding issues for just about all his digital life. That started about the same time as mine, but again unlike me: he was way more involved in the technical aspects of it.

First a series of Tweets:

Read the rest of this entry »

Posted in ASCII, C++, Development, Encoding, EPS/PostScript, Font, ISO-8859, ISO8859, Power User, Software Development, Times New Roman | Leave a Comment »

Tesseract (software): amazing command-line OCR tool

Posted by jpluimers on 2022/05/13

A twitter post blasted me away by showing the results of Tesseract (software) – Wikipedia doing perfect OCR on an image from a twitter post:

Read the rest of this entry »

Posted in C++, Color (software development), Development, OCR, Power User, Software Development, Tesseract | Leave a Comment »

When floating point code suddenly becomes orders magnitudes slower (via C++ – Why does changing 0.1f to 0 slow down performance by 10x? – Stack Overflow)

Posted by jpluimers on 2022/01/26

When working with converging algorithms, sometimes floating code can become very slow. That is: orders of magnitude slower than you would expect.

A very interesting answer to [Wayback] c++ – Why does changing 0.1f to 0 slow down performance by 10x? – Stack Overflow.

I’ve only quoted a few bits, read the full question and answer for more background information.

Welcome to the world of denormalized floating-point! They can wreak havoc on performance!!!

Denormal (or subnormal) numbers are kind of a hack to get some extra values very close to zero out of the floating point representation. Operations on denormalized floating-point can be tens to hundreds of times slower than on normalized floating-point. This is because many processors can’t handle them directly and must trap and resolve them using microcode.

If you print out the numbers after 10,000 iterations, you will see that they have converged to different values depending on whether 0 or 0.1 is used.

Basically, the convergence uses some values closer to zero than a normal floating point representation dan store, so a trick is used called “denormal numbers or denormalized numbers (now often called subnormal numbers)” as described in Denormal number – Wikipedia:

In a normal floating-point value, there are no leading zeros in the significand; rather, leading zeros are removed by adjusting the exponent (for example, the number 0.0123 would be written as 1.23 × 10−2). Denormal numbers are numbers where this representation would result in an exponent that is below the smallest representable exponent (the exponent usually having a limited range). Such numbers are represented using leading zeros in the significand.

Since a denormal number is a boundary case, many processors do not optimise for this.

–jeroen

Posted in .NET, Algorithms, ARM, Assembly Language, C, C#, C++, Delphi, Development, Software Development, x64, x86 | Leave a Comment »