Wednesday, March 12, 2025

It's performance review time

`Tis the season for performance reviews. That time of year when we give, and get, evaluations of our annual performance. These annual rituals come with occasional joy and often a lot of shock.

In Radical Openness, there is a lesson on Learning from Corrective Feedback, which seems applicable to all those suffering through this season.

Criticism or feedback from another person is not truth but a belief held by the other person that may be true, partially true, or not true at all.

Ask the following twelve questions to help determine whether to accept or decline the feedback:

  1. Does the person have more experience than I do in this area? YES/NO
  2. Will accepting the feedback help maintain my relationship with the person giving me feedback? YES/NO
  3. Will accepting the advice help me maintain or improve other important relationships? YES/NO
  4. Am I discounting the feedback on purpose to displease or punish the person? YES/NO
  5. If necessary, am I capable of making the changes that are being suggested? YES/NO
  6. Will accepting the feedback help me steer clear of significant problems (for example, financial loss, employment difficulties, problems with the law)? YES/NO
  7. Was the person providing the feedback using a calm and easy manner? YES/NO
  8. Does the feedback refer to the actual situation I am in, as opposed to the past or future? YES/NO
  9. Am I in a long term caring relationship with this person? YES/NO
  10. Is the feedback I am being given something that I have heard from others before? YES/NO
  11. Am I tense or frustrated about this feedback? YES/NO
  12. Am I saying to myself, I know I am right, no matter what the other person says or how things seem? YES/NO

Total up the number of YES responses ... Then use the following key to guide [you] in deciding whether to accept or decline the feedback.

  • 11 to 12 YES responses = accept the feedback as accurate and effective, no matter what
  • 9 to 10 YES responses = accept the feedback as likely accurate and effective
  • 7 to 8 YES responses = accept the feedback as possibly accurate and effective; continue to evaluate whether it is useful or true
  • 5 to 6 YES responses = accept the feedback, but very tentatively
  • 3 to 4 YES responses = tentatively decline the feedback, but with an open mind
  • 1 to 2 YES responses = decline the feedback

Wednesday, August 10, 2022

On the Fight for Software Liberty

RMS writes in Why Open Source Misses the Point of Free Software:

Sometimes [developers of proprietary software] produce a program that is powerful and reliable, even though it does not respect the users' freedom. Free software activists and open source enthusiasts will react very differently to that.

A pure open source enthusiast, one that is not at all influenced by the ideals of free software, will say, “I am surprised you were able to make the program work so well without using [the Open Source] development model, but you did. How can I get a copy?” This attitude will reward schemes that take away our freedom, leading to its loss.

The free software activist will say, “Your program is very attractive, but I value my freedom more. So I reject your program. I will get my work done some other way, and support a project to develop a free replacement.” If we value our freedom, we can act to maintain and defend it.

The last sentence is crucial, and yet RMS fails to convey the import: "we can act", sure, but to "maintain and defend" freedom one must fight for it.

In a 2002 interview, RMS states:

[W]e need to think about right and wrong in making our decisions...

Every decision, every time, we must choose the path that defends freedom and liberty.

Proprietary software aims to maximize control. Open source software aims to maximize distribution. Neither aims to maintain liberty, because neither made their first decisions around user freedom: the right to determine their use of software, not to be dictated by the software's regime.

Every right conveys a freedom, and every right requires a responsibility. Your responsibility, to yourself, your family, and your community, is to fight for your freedom with every choice.

This is all easy to say and difficult to do, once accustomed to convenience or the illusion of control. For example, I write this now on a MacOS using Safari. Google Fiber provides my Internet. My car is computer controlled, and I have no idea how that software operates. My phone is Android, Google again. I choose these because they're functional for my needs, I choose to work within the features they offer, and I can afford them. But I am beholden to them.

In Who does that server really serve?, RMS writes:

[P]ower is something we must resist.

From awareness comes suspicion and from suspicion comes resistence.

Everyone will have their own journey along the path, but I encourage readers to start by raising their own awareness to the software around them that holds power over them. Then to begin by questioning whether that power is something you want to give away. If not, consider how you begin your own resistance and fight toward a future where all software is under your control.

Tuesday, July 14, 2020

rm != rg

I use ripgrep, rg. It's like recursive grep, only 100x better.

Today, I had this session:

$ rm pattern
rm: pattern: No such file or directory
$ rg pattern
$

See that? I meant to type "rg pattern" the first time, but typed "rm pattern". Luckily no harm was done in this case. But what if I had typed "rm tod*", wanting to search for the string "to" followed by zero or more "d"? Well, I might just blow away my todo file, since it matches the glob tod*. And then I'd be sad.

I'm not sure if the ergomomics of rg as a command name have come up before, but this scary close encounter has me thinking. Maybe I should do this sly manuever, as suggested by a colleague: alias ag=rg.

I don't know. I think I'm tempted more so to make rm with its dangerous side effects harder to invoke. Like so:

alias remove=rm
rm() {
  echo "If you want to destroy a file, use remove."
  echo "If you want to find a file, use rg."
}

What do you think?

Tuesday, October 30, 2018