Git better with fzf and Fish

Git better with fzf and Fish:

You’ve probably heard me mention fzf before. It’s an amazing command line tool created by Junegunn Choi. It takes a list of data and turns it into a command line menu with fuzzy searching, multi-select, and can even preview each item in whatever way is appropriate. I’ve been using it in all kinds of scripts — where I used to have rudimentary numbered menus, I now have much friendlier and more flexible terminal navigation.

fzf is available via Homebrew, just run brew install fzf. See man fzf for very good documentation.

Does Kenny G Make Good Music?

Does Kenny G Make Good Music? | The New Yorker:

Perhaps his most outspoken critic is the jazz guitarist Pat Metheny, who once referred to Gorelick’s work as “lame-ass, jive, pseudo bluesy, out-of-tune, noodling, wimped out, fucked up playing,” and described Gorelick’s version of Louis Armstrong’s “What a Wonderful World” as “a new low point in modern culture—something that we all should be totally embarrassed about—and afraid of.”

Regardless of what you think of Kenny G or Pat Metheny, I greatly appreciate an honest opinion. So much of the interactions I witness have pulled punches and unsaid truths because it won’t do to upset the apple cart. You don’t have to be mean or rude. But once you’ve lost the impact and core what you mean to say, you might as well say nothing…because that’s the end result. All your words wind up being meaningless. The above is not new, it happened years ago. But it was refreshing to run across it in what I thought was going to be a half a puff piece promoting the new film. Nice!

I haven’t taken the time to write lately…

New responsibilities, caring for various family members, working hard at various bits of life.

This is just to say I’m still here, still concerned about music, programming, people, life.

I have more concern about the effects about putting my opinions in public than in the past. I’m sure that’s part of it as well.

Anyway, cheers from deep inside the #covid-19 mess.

FBI repeatedly overstated encryption threat figures to Congress, public

FBI repeatedly overstated encryption threat figures to Congress, public:

Officials now admit none of those statements are true.

[Sigh. They still don’t know the actual number, and are conducting an audit. Further: “Since then, Wray has repeated the claim about 7,800 locked phones, including in a March speech. Those remarks were echoed earlier this month by Attorney General Jeff Sessions.

“Last year, the FBI was unable to access investigation-related content on more than 7,700 devices — even though they had the legal authority to do so. Each of those devices was tied to a threat to the American people,” Sessions said.”]

The Woman Who Gave the Macintosh a Smile | The New Yorker

The Woman Who Gave the Macintosh a Smile | The New Yorker:

The command icon, still right there to the left of your space bar, was based on a Swedish campground sign meaning “interesting feature,” pulled from a book of historical symbols. Kare looked to cross-stitch, to mosaics, to hobo signs for inspiration when she got stuck. “Some icons, like the piece of paper, are no problem; but others defy the visual, like ‘Undo.’ ”

[It doesn’t get any better than the original work done for the Mac. This stuff is so good that despite people not having used a computer before, a GUI, etc. so many people recognized what they should do with it. Astonishing work.]

Source: Daring Fireball

Adding the Kubernetes dashboard to Docker for Mac

A simple way to add the Kubernetes dashboard, which can be helpful to folks new to Kubernetes. Docker for Mac (edge) doesn’t ship with it in place. In your terminal type the following. I am assuming you have Kubernetes running and kubectl installed and on your path.

kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl get pods --namespace=kube-system

At this point you should see a line with a name that starts with “kubernetes-dashboard-” and some identifier. Modify the line below to match:

kubectl port-forward kubernetes-dashboard-7798c48646-wkgk4 8443:8443 -- namespace=kube-system &

Then your browser should load the dashboard on the port you specified (it will yell at you about the untrusted cert).

Just for clarity, the kubernetes-dashboard.yaml looks like the below as I write this, copied from the link above.

# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Configuration to deploy release version of the Dashboard UI compatible with
# Kubernetes 1.8.
#
# Example usage: kubectl create -f 

# ------------------- Dashboard Secret ------------------- #

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-certs
  namespace: kube-system
type: Opaque

---
# ------------------- Dashboard Service Account ------------------- #

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system

---
# ------------------- Dashboard Role & Role Binding ------------------- #

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kubernetes-dashboard-minimal
  namespace: kube-system
rules:
  # Allow Dashboard to create 'kubernetes-dashboard-key-holder' secret.
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["create"]
  # Allow Dashboard to create 'kubernetes-dashboard-settings' config map.
- apiGroups: [""]
  resources: ["configmaps"]
  verbs: ["create"]
  # Allow Dashboard to get, update and delete Dashboard exclusive secrets.
- apiGroups: [""]
  resources: ["secrets"]
  resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"]
  verbs: ["get", "update", "delete"]
  # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
- apiGroups: [""]
  resources: ["configmaps"]
  resourceNames: ["kubernetes-dashboard-settings"]
  verbs: ["get", "update"]
  # Allow Dashboard to get metrics from heapster.
- apiGroups: [""]
  resources: ["services"]
  resourceNames: ["heapster"]
  verbs: ["proxy"]
- apiGroups: [""]
  resources: ["services/proxy"]
  resourceNames: ["heapster", "http:heapster:", "https:heapster:"]
  verbs: ["get"]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: kubernetes-dashboard-minimal
  namespace: kube-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: kubernetes-dashboard-minimal
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard
  namespace: kube-system

---
# ------------------- Dashboard Deployment ------------------- #

kind: Deployment
apiVersion: apps/v1beta2
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: kubernetes-dashboard
  template:
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
    spec:
      containers:
      - name: kubernetes-dashboard
        image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.1
        ports:
        - containerPort: 8443
          protocol: TCP
        args:
          - --auto-generate-certificates
          # Uncomment the following line to manually specify Kubernetes API server Host
          # If not specified, Dashboard will attempt to auto discover the API server and connect
          # to it. Uncomment only if the default does not work.
          # - --apiserver-host=http://my-address:port
        volumeMounts:
        - name: kubernetes-dashboard-certs
          mountPath: /certs
          # Create on-disk volume to store exec logs
        - mountPath: /tmp
          name: tmp-volume
        livenessProbe:
          httpGet:
            scheme: HTTPS
            path: /
            port: 8443
          initialDelaySeconds: 30
          timeoutSeconds: 30
      volumes:
      - name: kubernetes-dashboard-certs
        secret:
          secretName: kubernetes-dashboard-certs
      - name: tmp-volume
        emptyDir: {}
      serviceAccountName: kubernetes-dashboard
      # Comment the following tolerations if Dashboard must not be deployed on master
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule

---
# ------------------- Dashboard Service ------------------- #

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard

How we should be…

I came across this article because, in the Internet sense of knowing someone, I know the author. I can assure you that neither of us would know the other if we sat across a table from each other, but I purchase books and tools from her husband’s companies and then the Internet takes over.

So autism. It’s not easy on the parents, it’s not easy on the child, and without kindness from others it’s a total mess. There. I’ve wrapped a heart wrenching and complicated topic in a few short sentences. Time for you to read: Cutting with kindness.

That’s a beautiful story. But let’s extract the autism for a moment. When I was growing up one of the things I was taught was “patience”. Now patience, like all things, has a balance to it. There’s the “it’s not all about you” patience. And then there’s the “put up with other’s crap” patience.

I know I’m far less patient (both kinds) with my family than with not family or strangers. I expect more from the people closest to me, and so I have less patience with their needs. And, of course, I feel safer expressing myself in glorious detail, dissecting exactly how their actions affect me with possible means for rectification. Feels kinda backwards to me right now after reading that story. As I’ve said before, living an examined life is a PITA.

The lesson here however is not in being more patient, kinder, and understanding to children with autism. Although everyone should be more understanding of the families it’s not my point. Also, there will always some people whose problems are too deep—who will take whatever you offer no matter how much. Let’s avoid discussing that problem…it’s one side of the bell curve. So, the point is… it can only improve my life to continue to be ever more aware of people’s needs and respond kindly, thoughtfully, with ever greater awareness.

FCC ignored your net neutrality comment, unless you made a ‘serious’ legal argument – The Verge

FCC ignored your net neutrality comment, unless you made a ‘serious’ legal argument – The Verge:

But even ignoring the potential spam, the commission said it didn’t really care about the public’s opinion on net neutrality unless it was phrased in unique legal terms. The vast majority of the 22 million comments were form letters, the official said, and unless those letters introduced new facts into the record or made serious legal arguments, they didn’t have much bearing on the decision. The commission didn’t care about comments that were only stating opinion.

…this isn’t an open vote. It’s a deliberative process that weighs a lot of different factors to create policy that balances the interests of many stakeholders. But it still feels brazen hearing the commission staff repeatedly discount Americans’ preference for consumer protections, simply because they aren’t phrased in legal terms.

[So in order to make my point I needed to hire a lawyer to make the argument “This sucks for everyone but the giant ISPs” and write it in legalese? And also, the argument that this is a return to how it was in the past is wrong on two counts. One, they were regulated, and I think fairly strongly in the Clinton era, but further—times have changed.

The “internet” is a much as service as other utilities. In fact more so. You can choose to generate your own power in a number of ways. And you can choose to buy a property with a well, or other water sources and not be connected to the utilities. You can tank in ng or propane. But you can’t enjoy the Internet as we know it today without everyone playing fairly. And the ex-Verizon lawyer who is the current Chair of the FCC can’t possibly fail to see that the companies that offer this utility need to be treated like utilities, if not the mother of all utilities. And the “nyah. nyah. we can’t hear you unless you write in legalize” stuff is just galling.]