You can also skip the subshell invocation of date by using %(fmt)T from bash's printf:
%(fmt)T -output the date-time string resulting from using FMT as a format string for strftime(3)
The man page provides a bit more detail:
%(datefmt)T causes printf to output the date-time string resulting from using datefmt as a format string for strftime(3). The corresponding argument is an integer
representing the number of seconds since the epoch. Two special argument values may be used: -1 represents the current time, and -2 represents the time
the shell was invoked. If no argument is specified, conversion behaves as if -1 had been given. This is an exception to the usual printf behavior.
It happens... I can think of a couple that bit me in the last 5 years or so. Some of them felt like bugs but were flagged as new features in later releases like this one from 4.4... spent way too long trying to figure out why this worked under 4.4 but not 4.3 and didn't even consider a bug, let alone a feature at the time. I was convinced it was something I did wrong :P
"a. Using ${a[@]} or ${a[*]} with an array without any assigned elements when the nounset option is enabled no longer throws an unbound variable error."
I switched from a Mac to a Thinkpad running Pop a bit over a year ago.
I miss the Mac trackpad and gestures. I miss the trackpad size and the surface itself. Wiring up libinput-gestures helps some things but you still don't get things like pinch to zoom in Chrome, for example, and the overall experience is not nearly as polished.
I miss Mac OS HiDPI support as well. Fractional scaling helps a bit, but switching from HiDPI to LoDPI and vice-versa (docking/undocking) can leave some apps scaled incorrectly, make a mess of your desktop, and I haven't been able to get a mixed configuration working where only my laptop monitor is scaled while my external display is not. I end up running this 1440p laptop screen at 1600x900 or 1920x1080 instead just to forgo the headache.
The VPN clients we use at work were much more pleasant to use on macOS. We have the option of using one of two different OpenVPN solutions as alternatives, and they're fine, but again, the polish isn't there (little things like automatically reconnecting to the VPN without my intervention would be nice).
I can't really think of anything else I'm really missing these days, though. Things I explicitly DON'T miss: Docker on Mac is a poor experience compared to natively running on Linux... Having a real Linux userspace by default is SO much more pleasant than dealing with Homebrew (which is great if you absolutely need it but I'm happier not having to deal with it at all anymore). I don't miss the Mac keyboard and touchbar. I don't miss troubleshooting things on macOS... it is incredibly opaque in comparison.
Overall, I don't think I'll be switching back any time soon, but would love to see more attention to the overall fit and finish as far as the desktop experience goes.
FWIW, the stock kernel (and HWE/HWE-edge kernels) recently picked up current ENA drivers. ixgbevf, unfortunately, doesn't look like it's been updated in-tree so it still lags behind Amazon's recommendation (currently 2.14.2, whereas Xenial's in-tree driver claims to be 2.12.1 and Trusty has 2.11.3).
It's not a high-traffic area at all (I'm at the other end of his row, and I've got a high-traffic seat w/ high walls to block visual "noise").
While I would prefer an office (solo or shared with a few), we're given enough options that in general, it's not bad at all.
We haven't done much in the way of modification of Jenkins, and the big ball of plugins and configuration (with the associated deadlocks from bad plugins and some bad core Jenkins foo) is now 25 smaller balls of plugins and configuration. We're looking at ways to manage the new pain and are considering a number of routes from writing some tooling to help manage the world, introducing a smaller CI system that handles the very basic cases with Jenkins for more complex solutions.
Our biggest problems are probably plugin creep (and the poor state of plugin maintenance in some cases), the cluttered UI with chunks of configuration hidden behind "Advanced" buttons, the inability to store job configuration with code a la Travis (which may be better with workflow), and handling routine maintenance across shards (without something in place like Operations Center), API inconsistencies (and the inability to fully manage via the API, forcing things like Groovy scripts over Jenkins remoting...).
Once we have some direction on where to go, I'm sure we'll follow up with some more blog posts and share things at our meetups.
Not that I am aware of. It's possible they contributed to some of our OSS efforts, but I don't believe anything used internally was developed in that manner.
A combination of things such as Spinnaker providing granular environmental context to an instance by way of user data (things that the ec2 metadata service doesn't readily provide to an instance without API calls), dynamic properties which can be controlled down to the instance-level (http://techblog.netflix.com/2012/06/annoucing-archaius-dynam... ), and other solutions depending on a team's needs.
The man page provides a bit more detail:
With that,
becomes