How to generate Swiss QR Code in C# and VBA

Swiss QR Code in C-Sharp and VBAToday, we are looking into the field of business computer science. Since end of April, SIX has released the specification for the new Swiss QR Code according to ISO 20022. The Swiss QR Code is an integral part of the new Swiss deposit slip, the so-called QR invoice, which shall be implemented by all companies by mid-2018 at the latest. The Swiss QR code is placed in the so-called “number part with QR code” of the QR invoice.
In the following, we will discuss how the Swiss QR code can be generated using C # or VBA. To do this, we use the free QRCoder library, which I developed almost 4 years ago and to which recently added the Swiss QR Code. One more thing before we […]

.NET Core – gdiplus.dll not found in Linux

A few days ago there was an issue raised in my QrCoder project. It was reported that the code would not run under Linux, as the following error message would occur:

Unhandled Exception: System.TypeInitializationException: The type initializer for ‘System.Drawing.KnownColors’ threw an exception.
—> System.TypeInitializationException: The type initializer for ‘System.Drawing.GDIPlus’ threw an exception.
—> System.DllNotFoundException: Unable to load DLL ‘gdiplus.dll’: The specified module could not be found.
(Exception from HRESULT: 0x8007007E)
at System.Drawing.GDIPlus.GdiplusStartup(UInt64& token, GdiplusStartupInput& input,

However the error message had its origin not in my QrCoder, but in the interplay of the .NET core framework with the GDI Plus library. The .NET Core Framework tries to access “gdiplus.dll” when accessing “System.Drawing.GDIPlus”, which is simply not available on Linux.
First solution approach
First, ensure that GDI+ is installed at all. This can be done with the following shell command:

sudo apt-get install libgdiplus

If libgdiplus is installed, however, another important step is missing …
Link libgdiplus for .NET Core
Because the […]

How to read client hostname in PHP

How to read clienthostname in PHPThe following article is about how to use PHP to read out the client hostname, which is the computer name of a visitor. If you search in the internet, you will find out soon, that the whole thing is not so trivial. Either one gets simply wrong answers or one gets solutions, not in PHP but for example implemented in VBScript or it is said that it is not possible at all. But since it works, I would like to show you how to read the computer name, now.
But before we look at the solution, let’s take a quick look at the suggested solutions on the internet and explain why they are wrong or not recommended.
How to not read the client hostname in PHP
Often suggested but definitely […]

How to download SSL/TLS certificates in C#

How to download SSL and TLS certificates in CsharpThis article is about how to download (or save) SSL/TLS certificates from any server by use of C#. Although nowadays certificates can be stored quite simply from the web browser, this is always associated with quite a few clicks. And at the latest when you want to store certificates from mail servers, etc., i.e. systems that can not be addressed directly in the web browser, a programmatic solution, as shown in this post, may be the easier way.
All in all, I would like to introduce two variants today. One variant, which works only for HTTPS connections and another variant, which works for all TCP connections (like mail servers, etc.).
Download HTTPS/SSL certificates in C#
The first addressed solution works only for HTTPS connections and is […]

Hot to show MySQL database size via SQL statement

Calculate MySQL database size via SQL statementToday, there is only a very short article with an SQL statement which allows you to display the size of a MySQL database, as well as the description of how to read out the database size via phpMyAdmin. Let’s start with the SQL statement. To display the size of a particular MySQL database in MegaByte (MB), use the following SQL command:

SELECT table_schema,
sum( data_length + index_length ) / 1024 / 1024 "Database Size in MB"
FROM information_schema.TABLES WHERE table_schema="{my_database_name}" GROUP BY table_schema

However, within the statement, before the execution, the placeholder {my_database_name} must be replaced by the name of the database whose size is to be determined. If the size of all database should be displayed on the MySQL server, the where clause can be omitted. […]