Anger, Ours and Theirs

25 Jul
…the solution requires us to acknowledge a split in our ability to respond to justice: the more perfectly one attends to the gravity of the wrongs done, the less sensitive one becomes to the gravity of the wrongs one is poised to commit in response.
Sometimes other people help us exactly by not feeling what we feel, exactly by remaining resolutely who they are.

https://thepointmag.com/examined-life/anger-management-agnes-callard/

Peevish Nits

8 Jul

Attributing Intent to Animal Evolution

It annoys me considerably when some says something like:

And the REASON wombat poop is cube-shaped is so that they can stack it on a variety of tall, uneven surfaces, such as logs or rocks, without it rolling away.

 From a very funny Oatmeal about wombats.

Or:

flowers also emit heat to advertise themselves to insects

From an article by the Yale School of Environment

 (Quoting an article from University of Bristol which did not have this fault.)

Animals do not create traits or decide to have traits “so that they can do XXX”. Having traits allows them to do XXX better than their kin which does not have those traits and so allows them to live longer, produce more offspring, and spread those traits further.

Having the traits is mostly an accident of evolution for animals, not a self- (or species-) directed choice.

I get that it is a manner of speaking about these things more than anything, especially in non-technical writings. And I generally bite my tongue, wince, and move on. But it does bug me.

Failure to Communicate

5 Mar

I get stunned and tongue-tied when attacked after posting or saying something about preferring capitalism over other systems. All the attacks seem to not be arguments against whatever topic I mentioned, but general rants against the idea that capitalism could be the least bad option for anything.

The worst of it is that I get sucked into the same behavior as soon as those attacks start. I respond in defensive mode with nearly a identical form but form the other viewpoint. I hate that I do that.

For example. I posted an article about how a free market for vaccines could work and would have benefits over the tightly controlled process currently in use written by a widely-known, well-respected economist.

The immediate responses were along like these:

I couldn’t get past the first two lines. Disgusting article.

I don’t need to read past a premise that the FDA is responsible for 284,000 deaths because they didn’t release a vaccine.

Yawn. Could have saved a lot of reading by marking the top of this article as free market fanfiction.

Yeah, we don’t need the FDA and experts when Deus ex Market can do all the work for us.

Nothing in their comments suggesting that the article was actually read and considered. No cogent counter arguments to any of the points. No questions about any aspects of consequences of it. Just rants against free markets and capitalism.

I, of course, responded pretty much in kind. I threw my own rants back at them instead of asking the Ranters to clarify what specifically they saw as not workable and what they knew, or had read, that would provide a counter from their political viewpoint that would have been better than the existing process. Then I left the conversation. I am certain that many of them viewed that as success and vindication that they absolutely must have the better argument. I was just frustrated with myself and tired of the non-productive rant-tossing.

Jemma

23 Feb

The house is very quiet now.

There are not as many loud complaints about people on the street, birds in the trees, or the wind blowing the leaves.

There are not as many shouts about people walking around the house.

There are no complaints about it being 9:00pm and we are not in bed yet. Or complaints that we are in bed, but the TV is too loud.

There is one less tail constantly wagging.

It was for the best, but we miss her terribly.

You were a Very Good Dog, Jemma.

Well OK Then

18 Feb

This is what happens when your hosting provider goes bust without notice and you have not made a backup in over a year. I don’t post much, but have made a few in the last several weeks which have now gone into the bitbucket.  I’ll try to reconstitute some of them eventually.

Oh, well.

(ps: I was able to get access to the old server for long enough to grab a current backup. Maybe I’ll be able to use the data within to put the posts here. We’ll see.)

(pps: I grabbed the data from the old site,  manually edited the sql for the posts, and used it to restore the posts older than this one. Most are missing images which I might or might not re-edit in. How the ones that do have images do is a mystery. None of the restored posts have a Category; maybe I’ll fix that at some point. Let me know if you notice any weirdness in the older posts and maybe I’ll fix them. )

Strong Opinion on git Workflow

7 Feb

Strong Opinion

Whether working in trunk-based style or feature-branch style, the main (or trunk, also known as master) branch, along with any release branches if doing that thing, SHOULD NOT have merge-commits.

Reasons

I do not like to see merge commits in the main/trunk branch. I prefer a straight, unblemished history line.

* d589966 -(17 hours ago) (HEAD->main, origin/main,origin/HEAD)
* 5f3c420 -(17 hours ago) Merge branch ‘main’
|\
| * 4650c10 -(17 hours ago)
| * ae51497 -(17 hours ago)
| * b45fa11 -(18 hours ago)
* | d532336 -(17 hours ago)
|/
* 3d7bb50 -(18 hours ago)
* 6851949 -(18 hours ago)
* 28a191b -(19 hours ago)
* 01f6be2 -(19 hours ago)

Merge commits make reviewing the history more difficult for humans and source control tools to understand, explore, and resolve issues. Other than the visual part, they introduce complexities to reverting any issues that come up which cross the merge-commit line.

gitconfig

I have these settings in my global .gitconfig to fail any merges that are not fast-forward. This forces me to resolve those with a proper rebase before merging into main.

[merge]
    ff = only
[pull]
    ff = only

Workflow

The workflow I use to resolve such problems is:

  • Create a branch at the current state git branch wip
  • Reset the main branch upstream head either by resetting it then pulling or fetching then resetting it.
  • Change to the wip branch git checkout wip
  • Rebase wip onto main get rebase main (resolve any merge conflicts the usual way)
  • Change to the main branch git checkout main
  • Merge the wip branch into main (since it will fast forward now) git merge wip
  • Delete the wip branch git branch -d wip

scripts.sh

As with anything that I do more than a couple of times, I have automated this workflow. The scripts below are in the set that I source into my current terminal. When I git pull and it fails because it cannot fast forward (see the .gitconfig settings above), I can just repo_wip_rebase.

The script stops at the rebase step if there are merge conflicts to resolve. I use the normal git mergetool and get rebase --continue to handle those and then repo_wip_merge to finish up.

Note that when there are no merge conflicts, repo_wip_rebase does all the work.

function repo_wip_merge()
{
    git checkout main || return $?
    git merge –ff-only wip || return $?
    git branch -d wip || return $?
}

function repo_wip_rebase()
{
    git branch wip || return $?
    git reset –hard origin/main || return $?
    git checkout wip || return $?
    git rebase main || return $?
    # if there are merge conflicts, it stops here. Resolve them and then do this separately
    repo_wip_merge
}

It is possible to do this as get aliases instead so that the commands might be: git wip_rebase.

I tend not to create git aliases for two reasons. The most important is to keep custom stuff clearly custom. I do not want to get in the habit of using git xx short cuts and erode my memory of the raw git commands. Having scripts with the prefix repo_ makes it clear to my brain that this is a custom thing. The second reason is that having these in a script separate from my home folder that is under source control is easier for me to manage.

Coda

I know there are other options for both of these. This is what works for me.

I hold no strong opinions on how you should automate your work. I only hold that you should automate as much as you can in whatever way works for you.

Baking Cast Iron

7 Feb

Spent yesterday afternoon and will spend this afternoon baking most of my cast iron. I borked the square skillet last week cooking on the grill when it got too hot (>700ºF) for too long and most of the seasoning went up in smoke.

Since I was repairing that one, I decided to do them all. There was one cleaning bake (550ºF for 2 hours) for the square skillet and the tiny skillet that does not get used much.

This is the 2nd seasoning bake (350º for 1 hour) for all except the large round. That one is in great shape already and this is the first and only it will need. The others will get at least one more bake.

The giant Dutch Oven (not pictured) will wait for another day. It rarely get used and takes up most of the oven on its own (it is better suited for cooking in a fire pit).

Some Statements

14 Jan

Cheer up! Things could always be worse.

Context is everything.

Everything is much more complicated that you imagine, no matter how deep your knowledge of the topic.

Apple Pandemic

20 Dec

Back before Thanksgiving, I stumbled on a recipe for something called an Apple Pandowdy and I decided to make it for the feast (limited group, well within our bubble). It was incredibly easy to make. The hard part was finding dried apples and puff pastry.

I used to be able to find dried apples and other dehydrated fruits in bulk at most of the stores around. I finally found little containers of them at about the fifth store I checked. Same with the puff pastry. Where they used to be easy to find, I had to search them out before finding some. I am lazy, as I think I have mentioned, I am not going make puff pastry from scratch or dehydrate my apples on my own. I might do either sometime, but not for an experimental dish. It is fortunate that we live in a time and a place where most things can be bought from someone who makes them better and where most store-bought things like these are mostly good.

The picture attached shows the results. It was tasty. I’ll be making another for Christmas. The recipe is from The Takeout. I followed it as written except I substituted Maker’s Mark for the Applejack because I did not have any and forgot to go looking sooner.

We are calling it Apple Pandemic partly for the obvious reason and partly because my wife stumbled over the name once and said ‘pandemic’ instead of ‘pandowdy’. It stuck.

People are Mostly Good

19 Dec

I believe almost all people are good, caring, and generous. Of the others, most of them are indifferent or at least not motivated to do bad things. I also believe that the remaining, very small percentage, are unlikely to honor any law preventing them from doing whatever they will do.

I believe our legislative and regulatory regimes should operate with the above assumptions. Any regulation or legislation which is built on the assumptions that most people have bad intent, or are too stupid to manage their own lives, is inherently immoral and destined to cause more harm than good. Legislation and regulation should be there only to punish the use of force, in all its various forms. Courts should be there to adjudicate contractual disputes. Everything else is, at best, a waste or, more likely, harmful.