Windows 10 wedges itself

One or more of the recent updates for Windows 10 rendered my laptop incapable of communicating with the outside world. The Windows Firewall failed to run due to Base Filtering Engine not being able to run either. It’s the dreaded “Error 5: Access denied” error message all over again. Windows 10 also thought it was not activated, which is plain wrong. And no, I haven’t changed any hardware, save upgrading the wireless NIC in May last year. Running sfc /scannow with elevated privileges found nothing wrong. Restoring the system to the state prior to the latest updates made the network and firewall subsystems running again. All is well. What a mess.

Voyager 1 on 2027-12-26T23:59:36,9+0000

I downloaded a new version of NASA’s Eyes from The old version was unable to upgrade itself for some reason.

I ran a simulation on Voyager 1 towards the end of its life. At 2027-12-26T23:59:36,9+0000, the spacecraft changed its attitude, pointing the high gain antenna towards outer space. I checked the Wikipedia article, but found no description. Maybe the change in attitude is an artifact of NASA’s Eyes.

Does anyone know what the final act of Voyager 1 will be, save running out of electrical energy?

Office 365 and error 30125-28 (404)

The Office 365 instance installed on a student’s laptop showed signs of not being activated and in need of an update. Clicking on any of the small buttons below the ribbon made no difference. Running Office updates manually from “File → Account → Update” gave us an error message: 30125-28 (404).

Running sfc /scannow with elevated rights managed to repair enough of the corruption to allow Office 365 to continue working.

Why are modern “cloud” software so fragile? Why are Dropbox and Google Drive far superior to the equivalent of Microsoft? Why is OneDrive for Business more on the order of OneDrive from Hell?

Cisco Catalyst 9400 Series

Cisco’s Catalyst 9400 Series introduced this summer do look promising, but it’s still missing a few highlights:

  • Complete support for redundant supervisors; unavailable according to the release notes dated July 31, 2017

    The supervisor module (hardware) supports redundancy, but the software does not. The associated route processor redundancy (RPR) and stateful switchover (SSO) features are also currently not supported. Redundacy[sic] in software will be supported in a later release.

  • Multigigabit line card
  • SFP+ line card, and possibly
  • QSFP/QSFP+ line cards
  • Visio stencils for chassis, power supplies, supervisor, and line cards

The release notes and data sheets are unclear on the supervisor’s ability to perform as a mobility agent.

So far the Catalyst 4500E Series seems more developed than the new Catalyst 9400 Series.

Upgrading PHP from 7.0.22 to 7.1.9

I created a shell script which began its simple life as


# Use on first run

# Use on subsequent runs

portupgrade ${FLAGS} lang/php71 lang/php70 || exit

portupgrade ${FLAGS} textproc/php71-ctype      textproc/php70-ctype      || exit
portupgrade ${FLAGS} ftp/php71-curl            ftp/php70-curl            || exit
portupgrade ${FLAGS} textproc/php71-dom        textproc/php70-dom        || exit
portupgrade ${FLAGS} graphics/php71-gd         graphics/php70-gd         || exit
portupgrade ${FLAGS} devel/php71-gettext       devel/php70-gettext       || exit
portupgrade ${FLAGS} security/php71-hash       security/php70-hash       || exit
portupgrade ${FLAGS} converters/php71-iconv    converters/php70-iconv    || exit
portupgrade ${FLAGS} devel/php71-json          devel/php70-json          || exit
portupgrade ${FLAGS} net/php71-ldap            net/php70-ldap            || exit
portupgrade ${FLAGS} converters/php71-mbstring converters/php70-mbstring || exit
portupgrade ${FLAGS} security/php71-mcrypt     security/php70-mcrypt     || exit
portupgrade ${FLAGS} databases/php71-memcache  databases/php70-memcache  || exit
portupgrade ${FLAGS} www/php71-opcache         www/php70-opcache         || exit
portupgrade ${FLAGS} security/php71-openssl    security/php70-openssl    || exit
portupgrade ${FLAGS} databases/php71-pdo       databases/php70-pdo       || exit
portupgrade ${FLAGS} databases/php71-pdo_pgsql databases/php70-pdo_pgsql || exit
portupgrade ${FLAGS} databases/php71-pgsql     databases/php70-pgsql     || exit
portupgrade ${FLAGS} www/php71-session         www/php70-session         || exit
portupgrade ${FLAGS} textproc/php71-simplexml  textproc/php70-simplexml  || exit
portupgrade ${FLAGS} net/php71-soap            net/php70-soap            || exit
portupgrade ${FLAGS} net/php71-sockets         net/php70-sockets         || exit
portupgrade ${FLAGS} databases/php71-sqlite3   databases/php70-sqlite3   || exit
portupgrade ${FLAGS} textproc/php71-wddx       textproc/php70-wddx       || exit
portupgrade ${FLAGS} textproc/php71-xml        textproc/php70-xml        || exit
portupgrade ${FLAGS} archivers/php71-zlib      archivers/php70-zlib      || exit

portupgrade ${FLAGS} www/mod_php71 www/mod_php70 || exit

After running the script for a second time and a third time, etc, the script was successively changed to:


# Use on first run

# Use on subsequent runs

#portupgrade ${FLAGS} lang/php71 lang/php70 || exit

#portupgrade ${FLAGS} textproc/php71-ctype      textproc/php70-ctype      || exit
#portupgrade ${FLAGS} ftp/php71-curl            ftp/php70-curl            || exit
#portupgrade ${FLAGS} textproc/php71-dom        textproc/php70-dom        || exit
#portupgrade ${FLAGS} graphics/php71-gd         graphics/php70-gd         || exit
#portupgrade ${FLAGS} devel/php71-gettext       devel/php70-gettext       || exit
#portupgrade ${FLAGS} security/php71-hash       security/php70-hash       || exit
#portupgrade ${FLAGS} converters/php71-iconv    converters/php70-iconv    || exit
#portupgrade ${FLAGS} devel/php71-json          devel/php70-json          || exit
#portupgrade ${FLAGS} net/php71-ldap            net/php70-ldap            || exit
#portupgrade ${FLAGS} converters/php71-mbstring converters/php70-mbstring || exit
#portupgrade ${FLAGS} security/php71-mcrypt     security/php70-mcrypt     || exit

#portupgrade ${FLAGS} www/php71-session         www/php70-session         || exit
#portupgrade ${FLAGS} archivers/php71-zlib      archivers/php70-zlib      || exit
#portupgrade ${FLAGS} databases/php71-memcache  databases/php70-memcache  || exit

#portupgrade ${FLAGS} www/php71-opcache         www/php70-opcache         || exit
#portupgrade ${FLAGS} security/php71-openssl    security/php70-openssl    || exit
#portupgrade ${FLAGS} databases/php71-pdo       databases/php70-pdo       || exit
#portupgrade ${FLAGS} databases/php71-pdo_pgsql databases/php70-pdo_pgsql || exit
#portupgrade ${FLAGS} databases/php71-pgsql     databases/php70-pgsql     || exit
#portupgrade ${FLAGS} textproc/php71-simplexml  textproc/php70-simplexml  || exit
#portupgrade ${FLAGS} net/php71-soap            net/php70-soap            || exit
#portupgrade ${FLAGS} net/php71-sockets         net/php70-sockets         || exit
#portupgrade ${FLAGS} databases/php71-sqlite3   databases/php70-sqlite3   || exit

portupgrade ${FLAGS} textproc/php71-xml        textproc/php70-xml        || exit
portupgrade ${FLAGS} textproc/php71-wddx       textproc/php70-wddx       || exit

portupgrade ${FLAGS} www/mod_php71 www/mod_php70 || exit

Restart Apache using service apache24 restart.

In the end, PHP 7.0.22 got upgraded to PHP 7.1.9. All is well.