.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. […]

Fastest padLeft-function in Java

Fastest padLeft function in JavaSince Java does not have a function to pad strings on the left or right side, you either have to program such function yourself or use an existing library, such as Apache Commons. Because I recently needed a function that would pad a numeric string on the left side (= padLeft) with zeros up to a length of 8 characters, but did not want to include a whole library for such a simple task, the only option was to write a padLeft function myself.
However, when researching and implementing, I found various solution approaches and so I ended up with six different padLeft implementations. In order to find the best padLeft function for my use case, I tested all six implementations during a small performance test and found the fastest padLeft function. Before I get […]