Anecdotally we have observed that during
GitHub outages,
Git over SSH operations may have a better chance of succeeding than Git over HTTPS operations.
This includes cloning repositories.
Rather than reconfiguring .gitconfig to use SSH, simply clone using the SSH URL instead of the HTTPS URL.
Laptops with the Snapdragon X Elite CPU widely emerged in 2024.
Certain benchmarks show performance comparable with the Apple M3 CPU.
The Snapdragon X2 Elite CPU is available in laptops emerging in 2026, and surpasses the Apple M5 in some benchmarks.
Windows 11
24H2 added Prism
x86-64 emulation like
Rosetta on macOS
but tuned for Snapdragon X CPUs, offering significant performance improvements for x86-64 applications on ARM-based laptops.
The 6 GHz Wi-Fi band is widely available in new hardware (routers and clients).
However, for economic reasons, many devices still omit the 6 GHz Wi-Fi band.
6 GHz Wi-Fi helps provide more data bandwidth on less congested RF spectrum, which is important for latency-sensitive applications like gaming and video conferencing.
While the ultimate connection quality can be achieved by wired Ethernet, practical considerations often lead to Wi-Fi being used even within the same room as the network router.
At least Wi-Fi 7 (802.11be) hardware (router and laptops, etc.) should be considered as Wi-Fi 7
MLO (Multi-Link Operation)
avoids connection hiccups when switching between Wi-Fi bands because all the available bands are used simultaneously.
Typical contemporary mobile phones already have Wi-Fi 7 support.
Laptop support can be checked from the manufacturer.
CMake build directories might contain 100s of megabytes of files for large projects.
Over time, a developer computer might contain forgotten build directories that waste disk space.
With Python, a
script
using
send2trash
allows safe removal of CMake build directories by first moving them to the OS trash/recycle bin.
In distinction from
shutil.rmtree,
this send2trash approach allows recovery of files if the deletion was accidental.
The heuristic used to detect a CMake build directory was inspired by
ctest_empty_binary_directory.
use mpi_f08 is recommended for
Fortran
across computing platforms, including Windows.
For native x86 (Intel / AMD CPU) binaries, currently only free
Intel oneAPI has mpi_f08 for Fortran.
As time progresses and ARM64 CPUs are increasingly widespread, including for Windows PCs, and the complexity / disk space requirements of setting up Visual Studio for Intel oneAPI on Windows, it may be better (easier, faster, performance) to use WSL for Windows MPI.
WSL
can use OpenMPI or MPICH to access mpi_f08.
For Windows ARM CPU users, WSL is the only straightforward option for mpi_f08 in Fortran.
Git projects using
submodules
can be set to default shallow Git clone submodules to save space and time.
Edit the “.gitmodules” file to have the “shallow = true” option for each Git submodule.
This is particularly useful when the top-level project uses third party libraries or libraries with a large Git revision history.
Example .gitmodules file with shallow Git submodules:
USB-C dock display adapters (HDMI, DisplayPort) are generally seen as a preferable replacement for proprietary docking ports on old bulky laptops.
A symptom is USB-C adapter works on one laptop, but not on another almost identical laptop model.
For Apple hardware, USB-C docks might only work with DisplayPort connection, not HDMI.
This may be because some USB-C docks use “DisplayPort Alternate Mode”, which macOS seems not to recognize with an HDMI connection even on the same monitor that works with a DisplayPort cable connection.
General symptoms across hardware and operating systems include the dock display not being detected by the operating system, to showing a black screen, or very low resolution.
The solution seems to be to stick with expensive OEM display adapters, or at least long established brands.
The temptation of a cheap adapter can quickly turn to frustration or botched presentations.
Another thing to watch for is cheap adapters may fail intermittently when using more than one high bandwidth feature.
For example, using Gigabit Ethernet and HDMI on the cheap USB-C adapter simultaneously may fail intermittently during a conference call or teaching a class, which can be frustrating.
Some adapters that charge the laptop with a USB-C input for power may experience improper operations if the display adapter is plugged into the laptop while the USB-C power input is powered.
This problem may persist upon re-plugging the adapter to laptop and/or power cycling the monitor and laptop.
A workaround we’ve found is to unplug USB-C power input to the adapter, plug into the laptop with all the desired accessories, then finally plug USB-C power input into the adapter.
That is unexpected, but has worked for us sometimes.
The COMMENT field of CMake’s
add_custom_target()
is intended to print messages during the build.
However, this field is a no-op when using
CMake Generators
like Ninja and GNU Make.
To reliably print messages during the build regardless of the Generator used,
create a custom echo command using CMake’s built-in cmake -E echo functionality.
Major projects with CPU arch-specific code may distribute binaries for multiple CPU architectures for operating systems.
Apple Silicon or Microsoft Prism are key examples of emulated binaries.
Programs, especially computational programs like Anaconda Python should have the native matching CPU arch software installed.
Example code to programatically
check
if a C++, GNU Octave, Matlab, or Python executable on:
GoogleTest internally set
CMake compiler flags
are too aggressive for end users, and can cause build errors.
We experienced this with Intel oneAPI, and created a workaround for the GoogleTest-consuming CMake project to override the offending flags.
This technique is useful in general with third-party CMake projects, including those obtained by FetchContent.
For GoogleTest, we determined that Intel oneAPI was experiencing nuisance internal errors:
Windows “-WX” flag
Linux “-Werror” flag
We overrode those flags with this CMake script:
FetchContent_MakeAvailable(googletest)if(CMAKE_CXX_COMPILER_IDSTREQUAL"IntelLLVM")foreach(tINITEMSgtestgtest_maingmockgmock_main)if(WIN32)# necessary since GoogleTest injects /WX blindly and that fails builds with modern IntelLLVM.
# https://learn.microsoft.com/en-us/cpp/build/reference/compiler-option-warning-level
target_compile_options(${t} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/WX->)else()# necessary to avoid
# error: unknown warning option '-Wno-implicit-float-size-conversion' [-Werror,-Wunknown-warning-option]
target_compile_options(${t} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wno-error=unknown-warning-option>)endif()endforeach()endif()
The override “/WX-” nullifies the
/WX flag
that errors for nuisance warnings internal to GoogleTest.
The “-Wno-” flag is the same as the underlying GCC compiler on Linux.