Fedora 30

Fedora 30 has been released a few days ago. In the long list of changes, the most interesting to me are:

I’ve already upgraded my laptop to this version and everything seems to work as expected. The upgrade from Fedora 29 to Fedora 30 is easy:

# Install all the latest updates
dnf upgrade --refresh

# Install DNF plugin for system upgrades
dnf install dnf-plugin-system-upgrade

# Download all the necessary packages for Fedora 30
dnf system-upgrade download --releasever=30

# Reboot and start the upgrade of packages
dnf system-upgrade reboot

# Cleanup after successful upgrade
dnf system-upgrade clean

If this is not your first upgrade on the machine, it might also be a good idea to cleanup some of the installed packages BEFORE the upgrade, so that the process goes faster, skipping unnecessary downloads and upgrades. Here are a few suggestions:

# List all installed RPMs by size
rpm -qa --queryformat '%{size} %{name}\n' | sort -rn | less

# List all packages from earlier Fedora releases
rpm -qa | grep -i fc28

Zabbix 4.2 is out!

Zabbix 4.2 has been released and it brings an impressive array of new features and improvements. Some of these are:

  • Built-in support of Prometheus data collection
  • Efficient high-frequency monitoring
  • Validation of collected data and error handling
  • Preprocessing data with JavaScript
  • Test preprocessing rules from UI
  • Test media type from Web UI
  • Support of TimescaleDB
  • Simplified tag management
  • More flexible auto-registration
  • Support for HTML emails
  • Animations and easy external services access on network maps
  • Extracting data from HTTP headers (like authentication tokens)
  • Non-destructive resizing and reordering of dashboard widgets
  • … and a lot more

If you were waiting for a good reason to upgrade – this is it!

Highlights from Git 2.19 and PHP syntax


GitHub blog covers the highlights from Git 2.19, which was recently released.

One particular change that I want to highlight (which GitHub skipped in their highlights, but which exists in the Git release notes for this version) is the syntax pattern update for the PHP files.

Let’s have a look at the full diff of this release.  The particular change I am referring to is in the userdiff.c file.   Git now understands final, abstract, interface, and trait keywords.

If you are not sure where and how it is used, here are a couple of useful links for you:

Now that you have it all configured, there are a couple of ways to benefit from this functionality.  First, you’ll see a more useful context comment in the diffs.  Here’s the screenshot (using an older git version still).  On the left, the diff without the PHP syntax configured, and on the right is the diff with the PHP syntax configured:

As you can see, on the left, the context shows that the change was done somewhere in the ChangeLogTrait trait.  On the right, the context is much more specific – it shows that the change was done in the public function changelog.

This makes reviewing code changes a lot easier.  But there is also one other place where this is useful – in reviewing the history of a particular function.  For example, running “git log -L :changelog:ChangelogTrait.php” will produce the git log output containing only the commits and diffs on the function changelog in the file ChangelogTrait.php.  Very handy!

MySQL 8.0 release


MySQL 8.0 has been released and it brings the following new features, enhancements, and more:

  1. SQL Window functions, Common Table Expressions, NOWAIT and SKIP LOCKED, Descending Indexes, Grouping, Regular Expressions, Character Sets, Cost Model, and Histograms.
  2. JSON Extended syntax, new functions, improved sorting, and partial updates. With JSON table functions you can use the SQL machinery for JSON data.
  3. GIS Geography support. Spatial Reference Systems (SRS), as well as SRS aware spatial datatypes,  spatial indexes,  and spatial functions.
  4. Reliability DDL statements have become atomic and crash safe, meta-data is stored in a single, transactional data dictionary. Powered by InnoDB! 
  5. Observability Significant enhancements to Performance Schema, Information Schema, Configuration Variables, and Error Logging.
  6. Manageability Remote management, Undo tablespace management, and new instant DDL.
  7. Security OpenSSL improvements, new default authentication, SQL Roles, breaking up the super privilege, password strength, and more.
  8. Performance InnoDB is significantly better at Read/Write workloads, IO bound workloads, and high contention “hot spot” workloads. Added Resource Group feature to give users an option optimize for specific workloads on specific hardware by mapping user threads to CPUs.