The Linux Page

Attacks by ZmEu or w00tw00t robots

Who is ZmEu?

An image showing ZmeuThe name Zmeu (no capital E) is the name of a fantastic creature of Romania. There are so many stories that there isn't a clear understanding of what it is... but it is human like, can spit fire and wants to marry young women.

If you're wondering, it is generally a bad guy.

ZmEu Attack

Today, I noticed a lot of traffic on one of my servers. Looking into what was happening, I immediately found out that an attacker was looking for a loophole in that system. That attack was being performed from China.

I checked another server, and sure enough, that other server was ...

Freeze Pan — How do you lock a row and/or column in a long Excel/Calc spreadsheet?

A bunch of icicles with droplets at the bottom as they are slowly melting.

In an Excel Spreadsheet (Microsoft)

I have been wondering how to lock a few rows and/or columns at the top-left in Excel. I have seen that being done many times, but did not know how to do it myself...

In the Windows menu (Before Office 2007) and in the View menu (Since Office 2007) you will find an option named Freeze Panes. You have three selections:

  1. Freeze the selected top rows
  2. Freeze the selected left columns
  3. Freeze the selected top rows and left columns

If you just need one row and/or column, place your cursor in the A1 cell (the very first top-left cell).

...

Error "Couldn't load XPCOM." when trying to start SeaMonkey...

A couple of seahorses mating

Problem Loading SeaMonkey

Today, I finally upgraded to SeaMonkey 2.49.3.

It was out on Nov 4, 2017 but I did not check for it any time sooner. Bad for me as there were some bugs in 2.48 that banks and such were warning about (oh and WordPress too...)

Anyway. I downloaded the new version. Extracted the files. Updated my icon with the new path. Click on the icon to open the browser. Nothing.

So I know that it is likely that it prints out some errors when nothing happens like that, so I went to my console and tried to start seamonkey in my command line window.

Indeed, errors were ...

Find Qt version: command line, compile time, run time

Bluish smoke like design representing a modern library

Introduction

The Qt library version can be retrieved in all sorts of ways, using your command line or C++ code. There are a few I use:

Test Whether Qt is Installed

Before testing the version, you probably want to verify that Qt is installed.

qmake is pretty much always installed whenever you install Qt. The qt5-default package directly depends on qtchooser which includes qmake. Therefore, under a Linux system we can simply use the following script to determine whether Qt is installed:

if ! test -x /usr/bin/qmake
then
  # The Qt library is missing...
  echo "error: This ...

Sorting any numeric column of a QTableWidget

Various types of noodles sorted by category in a box with columns.

Introduction

A QTableWidget uses QVariant as its value type. By default, though, it expects a string (in the construtor, you do not have support for QVariant).

Note that the QVariant uses the QTableWidthItem::setData() function and it keeps the variant as such.

This is great, only sometimes (always?!) you need a formatted number and that's not likely to work as expected because a formatted number requires you to use a string, not just a number and a format (which would be a better solution, i.e. a per column format such as defined by the QString::arg() functions.)

Setup a ...

OpenSSL error: <no libname>, <no funcname>, <no reason>, [no details] in ssl_lib.c

Foggy train tracks that divides as threads in a process do.

Problem

Working on a project that creates many threads handling many messages using secure sockets for everything, I ran in an interesting error (I broke up the error on multiple lines so it's easier to read than a one liner with a scrollbar!):

# OpenSSL error
06/11/18 14:31:39:error: tcp_client_server.cpp/bio_log_errors(367):
       OpenSSL: [336236705/20|169|161]:[<no libname>]:[<no
       funcname>]:[<no reason>]:[ssl_lib.c]:[1963]:[(no details)]

# My library error
06/11/18 14:31:39:error: safe_thread.h/run(468): a standard
       exception occurred in ...

error: no matching function for call to 'find()'

Find the Frog! (Many frogs sculptures on a mini-bench in various position such as kissing, taking a bath, dancing...)

Problem

Today, I got a rather weird C++ error. That is. My code is very simply doing a search using the std::find() function as follow:

    auto it(std::find(
          headers.cbegin()
        , headers.cend()
        , column_name));

Yet, it would not compile that simple line of  code.

Clearly, I use the begin() and end() of the same vector, and I use a value which is exactly what the vector is made of (we see that in the first line of error below: the std::vector<> T parameter is a basic string, which is what column_name is.)

Looking at the error, we see that it ...

The split of the WHOIS registry

Rows and columns of boxes with a name... similar to a database of domain names.

History

At some point in 2017, the WHOIS registry was split in two.

Before that, WHOIS was all in one place (at least from what I understand) and thus a query would return all the info you could get.

Once in a while, I would receive an email from GoDaddy (which is not my favorite registrar anymore, although they still have excellent service.) That email would say "You have to update your information with ICANN."

This email has stopped for a couple of years now and that's in link with the split. You now register with your registrar and not ICANN so the updates have to be ...

Playing a video with your Jetson TX1/TX2 from the command line

I got a Jetson TX2 not too long ago and was first looking into how to play a 4K video using the full accelerated GPU to see that it would be all smooth and play with the correct colors, etc.

My first experience with SBCs was with a Raspberry Pi and that board would display really crappy videos.

The first test I tried was to go to Chrome, the browser, and then attempt to play the video from there. Unfortunately, Chrome has difficulties to find the right wayt to accelerate video decompression and thus it did everything in software. It would use a good 100% of the 6 CPUs and  the video ...

Not losing the colors with "less" when doing a grep, ls, etc.

A bunch of fruits on a table with five smoothies

Unix in Colors

Whenever I run a command without piping it through less, I generally get colors.

This is true in this century that computer started to use more and more colors in the console. It's practical for all sorts of reasons.

However, you lose those nice colors when you want to use "less" to paginate the results. There are two reasons for that:

Terminal vs. Pipe

The fact is that many tools will check their stdout and determine whether it's a terminal or not. If not, it can generally be assumed that it's a file, a pipe, a variable, etc. and therefore a ...