CakePHP 3.6.0 release

My all time favorite PHP framework – CakePHP has recently announced the availability of the long awaited version 3.6.0.  What’s so special about this particular version? – those of you not very familiar with CakePHP might ask.  And I’ll tell you.

CakePHP is a well established framework, with long history – going strong for 13 years now (initial release was in April of 2005).  In web development, 13 years is a very long time.  Old tools fade away. New versions of the language and popular libraries come into play.  And it’s the job of the framework to change and adjust smoothly, providing the developer with the best and greatest, without breaking applications.  That’s not an easy task – ask anybody who had to maintain any codebase for longer than a couple of years.

I started using CakePHP back in 2007-2008 or so.  It was version 1.x and it was great.  At the time.  Then, a few years later, version 2.x was released, and as a major releases often do, it broke backward compatibility.  The most painful change at the time was still easy to fix – it was the change in the naming convention for folders, files, and classes.  CakePHP 2.x switched from their own naming convention to the PSR-2 Coding Style.

About 4 years ago, CakePHP 3.x was released, and this time it was the major of the major releases.  CakePHP framework got a lot better (and I do mean A LOT), but the price was an impossible migration.  One of the big changes in that version was the complete rewrite of the model layer and the ORM, which meant moving the CakePHP application from version 2.x to 3.x meant an almost complete rewrite (as most applications have most of the code in the model layer anyway).

That was a huge pain and community reacted.  Everybody wanted to use the cool new features of CakePHP 3, but nobody could afford to rewrite almost all of the application for this version of the framework.  (By the way, this situation is not unique to CakePHP – pretty much all other frameworks, both in PHP and other languages, either faced it or will face it in the future – that’s just how things are done).

When the CakePHP 4 roadmap was announced, one of the first things that CakePHP core developers team addressed was the upgrade path.  From the start they said that there must be a better way to handle major upgrades of the framework, and that they will find it.  And they did!

This time around, there was some ground work laid out.  Instead of just dropping another major release into developers’ laps and all the upgrade pain that comes with it, CakePHP developers absorbed a lot of it on their end, and softened the transition.  How did they do it?

Well, that’s where we get to the exciting CakePHP 3.6.0 release!  You see, the plan was do provide the gradual transition and give developers warnings and time to adjust their applications.  From the early stages of the CakePHP 3.x, a lot of functionality was commented as deprecated.  Any developer building with CakePHP framework could easily find what’s gonna go in the next major release.  But developers are always busy and never have the time for looking up things.  So what CakePHP 3.6.0 does is quite elegant.  It introduces deprecated warnings for all the functionality that will be removed in CakePHP 4.  This means that once you upgrade to CakePHP 3.6.0 your logs will get a lot noisier, telling you exactly what needs fixing.  If you don’t have the time right now, or want to ignore these warnings for now, you can simply disable them by adjusting the error reporting configuration, and all works as before.  But if you want to get ready for the next major version of CakePHP, then you have precise information of what needs to be fixed in your application.  Fixing one issue at a time, when you have the time, is great!

In fact, at work, we loved this approach so much that we started using it for our own projects as well.  Switching between different projects across several developers, and working on some old projects, etc., makes things difficult to remember.  With deprecated warnings, things are a lot simpler.

So, ladies and gentlemen, if you were looking for a framework to try, give CakePHP 3.6.0 a go.  You’ll easily upgrade to CakePHP 4 when it becomes available.  And if you were already using CakePHP 3, upgrade to CakePHP 3.6.0 and check your logs for deprecated warnings.

And, of course, stay tuned for CakePHP 4!

Fedora 27

Fedora 27Fedora 27, the latest and greatest version, has been released.  As always, a lot of work went into putting it all together.  But for personally, the new releases has stopped being exciting a long time ago.  My desktop needs have been satisfied for years.  All I need is MATE Desktop Environment (with i3 window manager), a browser, terminal emulator and Vim.  That’s pretty much it.  And it has been there forever.

So, is there anything interesting in this new version at all? Release Notes are rather thin, but let’s have a look.

  • New and improved Gnome 3.26.  I know a lot of people who use Gnome, so that’s probably exciting.
  • New LibreOffice 5.4.  Personally, I don’t know anyone who is using LibreOffice.  Google Docs is doing a pretty good job these days.
  • Security section looks like the largest area of changes.
  • Web Development section mentions Node.js 8.

If you want even more details on what has been done, why and how, have a look at the Fedora 27 changes page.

To me it looks like there is some internal restructuring and reorganization going on, with release process changes (no more Alpha releases), a lot of effort on modularity, and so on.

Hopefully, the next one will be a bit more exciting.

WordPress 4.9 Field Guide

WordPress 4.9 is just around the corner (scheduled for release tomorrow, November 14th).  This version brings an impressive number of new features and improvements.  The stats so far are:

Roughly 400 bugs, 181 enhancements, 7 feature requests, and 42 blessed tasks have been marked as closed in WordPress 4.9.

Figuring out all these changes and how they affect you is an effort in itself.  But don’t you worry!  Here’s the WordPress 4.9 Field Guide, which showcases all the main changes and provides plenty of additional resources to follow up.

Wow!  WordPress 4.9 packs quit a punch!

CentOS 7.3 released

CentOS 7.3 was released rather quietly a couple of days ago.  Or maybe it wasn’t quietly, but I still somehow missed it.  Here is a list of major changes:

  • Since release 1503 (abrt>= 2.1.11-19.el7.centos.0.1) CentOS-7 can report bugs directly to bugs.centos.org.
  • Various new packages include among others: python-gssapi, python-netifaces, mod_auth_openidc, pidgin and Qt5.
  • Support for the 7th-generation Core i3, i5, and i7 Intel processors and I2C on 6th-generation Core Processors has been added.
  • Various packages have been rebased. Some of those are samba, squid, systemd, krb5, gcc-libraries, binutils, gfs-utils, libreoffice, GIMP,SELinux, firewalld, libreswan, tomcat and open-vm-tools.
  • SHA2 is now supported by OpenLDAP.
  • ECC-support has been added to OPenJDK-8, PerlNet:SSLeay and PerlIO::Socket::SSL.
  • Bluetooth LE is now supported.
  • virt-p2v is now fully supported. virt-v2v and virt-p2v add support for the latest windows releases.
  • Lots of updated storage, network and graphics drivers.
  • Technology Preview: Among others support of Btrfs, OverlayFS, CephFS, DNSSEC, kpatch, the Cisco VIC and usNIC kernel driver, nested virtualization with KVM and multi-threaded xz compression with rpm-builds.

More information is here.

Also, make sure you read the Known Issues section, as it might surprise you:

  • SElinux received major changes in this release, which might break certain functionality on your system. You might want to take a look at this bugzilla entry for further information.
  • The initramfs files are now significantly bigger than in CentOS-7 (1503). You may want to consider lowering installonly_limit in /etc/yum.conf to reduce the number of installed kernels if your /boot partition is smaller than 400MB. New installations should consider using 1GB as the size of the /boot partition.
  • The newer version of openssh in this release does not exit on the first match in the .ssh/config file as the older version did. This means if you have multiple host sections that match in your config for a given host, ALL will be applied. As an example, if you have a “host1.example.com” entry and a “*.example.com” entry, it will apply BOTH sets of instructions to “host1.example.com” but only the “*.example.com” section for “host2.example.com”.
  • Many people have complained that Ethernet interfaces are not started with the new default NetworkManager tool/have to be explicitly enabled during installation. See CentOS-7 FAQ#2.
  • At least 1024 MB RAM is required to install and use CentOS-7 (1611). When using the Live ISOs for install, 1024 MB RAM produces very slow results and even some install failures. At least 1344 MB RAM is recommend for LiveGNOME or LiveKDE installs.
  • If your screen resolution is 800×600 or lower, parts of the images shown at the bottom during install are clipped.
  • VMware Workstation/VMware ESXi allow to install two different virtual SCSI adapters: BusLogic and LsiLogic. However the default kernel from CentOS-7 does not include the corresponding driver for any of them thus resulting in an unbootable system if you install on a SCSI disk using the defaults for CentOS Linux. If you select ‘Red Hat Enterprise Linux’ as OS, the paravirtualized SCSI adapter is used, which works.
  • Commonly used utilities such as ifconfig/netstat have been marked as deprecated for some considerable time and the ‘net-tools’ package is no longer part of the @core group so will not be installed by default. Use nmcli c up ifname <interfacename> to get your network up and running and use yum to install the package if you really need it. Kickstart users can pull in the net-tools package as part of the install.
  • The AlpsPS/2 ‘ALPS DualPoint TouchPad’ edge scrolling does not work by default on CentOS-7. See bug 7403 for the command to make this feature work.
    After the update, some NICs may change their name from something like enoxxxxxxxx to something like ensxxx. This is due to the updated systemd package.
  • The 4 STIG Security Profiles in the anaconda installer produce a broken sshd_config that must be edited before sshd will start (BZ 1401069)

WordPress 4.7 Field Guide

WordPress 4.7 is just around the corner (this month).  Here is a field guide, detailing what are the changes (and there are plenty!) and what to pay attention to during and after upgrade of your site, as well as what plugin and theme developers should check for the maximum compatibility with the upcoming release.

WordPress 4.7 Field Guide

Holly Molly, that’s a lot of changes!

Over 447 bugs, 165 enhancements, 8 feature requests, and 15 blessed tasks have been marked as fixed in WordPress 4.7.