Replace str(1) with stris(1) #102

Open
trinity wants to merge 3 commits from stris into main
Owner

I voiced my design regrets regarding str(1) in #79. I've rewritten str(1) to look more like my proposed new stris(1). It doesn't flinch when presented with UTF-8, has a much more expansive manual page, and is written in Rust rather than C.

I don't expect this pull request to be decided immediately or without discourse but I do think stris(1) makes a very compelling case for its replacement of str(1).

I voiced my design regrets regarding str(1) in #79. I've rewritten str(1) to look more like my proposed new stris(1). It doesn't flinch when presented with UTF-8, has a much more expansive manual page, and is written in Rust rather than C. I don't expect this pull request to be decided immediately or without discourse but I do think stris(1) makes a very compelling case for its replacement of str(1).
trinity added the
bug
enhancement
labels 2024-05-04 03:14:01 +00:00
trinity added 2 commits 2024-05-04 03:14:01 +00:00
trinity requested review from emma 2024-05-04 03:18:07 +00:00
trinity added 1 commit 2024-05-04 03:36:28 +00:00
Owner

What about strid(1) for “string identifier”?

What about `strid(1)` for “string identifier”?
Author
Owner

I think that is less intuitive than stris(1); it identifies qualities of the string, yes, but it's easier to remember that it tells you what the string is.

I think that is less intuitive than stris(1); it identifies qualities of the string, yes, but it's easier to remember that it tells you what the string is.
Owner

Intuition is less important than memorability. Users aren’t going to be guessing stris(1) from thin air, they will learn it from another source and then memorize it. Making memorization as easy as possible is the ideal.

Intuition is less important than memorability. Users aren’t going to be guessing `stris(1)` from thin air, they will learn it from another source and then memorize it. Making memorization as easy as possible is the ideal.
Author
Owner

To me strid(1) sounds like it's identifying a string; giving it an identifier, maybe hashing it or something. stris(1) asks what the string is - it's hard to read the name and draw the conclusion that the utility is doing some sort of conversion instead of observation. id(1p) does, observationally, identify a user, which lends this use of "id" precedent, but stris(1) very subtly nods at the interface being very similar to libc's <ctypes.h> which has definitions for isupper(3p), islower(3p), etc.

To me strid(1) sounds like it's *identifying* a string; giving it an identifier, maybe hashing it or something. stris(1) asks what the string *is* - it's hard to read the name and draw the conclusion that the utility is doing some sort of conversion instead of observation. id(1p) does, observationally, identify a user, which lends this use of "id" precedent, but stris(1) very subtly nods at the interface being very similar to libc's `<ctypes.h>` which has definitions for **is**upper(3p), **is**lower(3p), etc.
Owner

I am mostly fine with it being called stris(1), but I just want to avoid having a lot of samey names. The fileis(1) utility definitely needs to be renamed anyway so unless I can think of something better for this I am cool with this name.

I am mostly fine with it being called `stris(1)`, but I just want to avoid having a lot of samey names. The `fileis(1)` utility definitely needs to be renamed anyway so unless I can think of something better for this I am cool with this name.
Author
Owner

The original UNIX had a lot of samey names; chmod, chroot, chdir, chsh all come to mind. I can remember them all off the top of my head because they're all intuitive considering their purpose.

The original UNIX had a lot of samey names; `chmod`, `chroot`, `chdir`, `chsh` all come to mind. I can remember them all off the top of my head because they're all intuitive considering their purpose.
First-time contributor

The original UNIX had a lot of samey names; chmod, chroot, chdir, chsh all come to mind. I can remember them all off the top of my head because they're all intuitive considering their purpose.

It lets the user create a very strong conceptual map in their mind of how the tools are related and what they do

> The original UNIX had a lot of samey names; `chmod`, `chroot`, `chdir`, `chsh` all come to mind. I can remember them all off the top of my head because they're all intuitive considering their purpose. It lets the user create a very strong conceptual map in their mind of how the tools are related and what they do
Owner

I think I just have a specific problem with the naming of fileis(1), but I think there’s a difference between consistency and sameyness.

I think I just have a specific problem with the naming of `fileis(1)`, but I think there’s a difference between consistency and sameyness.
emma added a new dependency 2024-06-30 04:02:28 +00:00
This pull request has changes conflicting with the target branch.
  • Makefile
  • docs/str.1
  • src/str.c

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin stris:stris
git checkout stris

Merge

Merge the changes and update on Gitea.
git checkout main
git merge --no-ff stris
git checkout main
git merge --ff-only stris
git checkout stris
git rebase main
git checkout main
git merge --no-ff stris
git checkout main
git merge --squash stris
git checkout main
git merge --ff-only stris
git checkout main
git merge stris
git push origin main
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Depends on
#96 WIP: testing
bonsai/harakit
Reference: bonsai/harakit#102
No description provided.