bmoyles's comments

bmoyles | 7 months ago | on: Debugging Bash Like a Sire (2023)

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.
With that,

    timestamp=$(date +'%y.%m.%d %H:%M:%S')
becomes

    printf -v timestamp '%(%y.%m.%d %H:%M:%S)T' -1

bmoyles | 4 years ago | on: I interviewed Brian J. Fox, the creator of Bash

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."

bmoyles | 6 years ago | on: Pop_OS 19.10

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.

bmoyles | 8 years ago | on: Kubernetes at GitHub

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).

bmoyles | 8 years ago | on: Working at Netflix 2017

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.

bmoyles | 10 years ago | on: How We Build Code at Netflix

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.

bmoyles | 10 years ago | on: How We Build Code at Netflix

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.

bmoyles | 10 years ago | on: Spinnaker: Global Continuous Delivery by Netflix

JobDSL came from an engineer who collaborated with some others at a conference. It's not anything we own or drive the development of. It's used in some places internally but is not pervasive. The Spinnaker guys were not responsible for JobDSL, totally unrelated.

bmoyles | 11 years ago | on: Working at Netflix

We've been talking about the same thing in engtools over the last few weeks... we should set up a meeting :)
page 1