bingrep icon indicating copy to clipboard operation
bingrep copied to clipboard

executable name sucks

Open m4b opened this issue 7 years ago • 31 comments

Current Candidate(s)

  • bingrep (no rename)
  • binocular
  • bing

bg cannot be used without path prefix because of bg for job backgrounding in bash/posix.

so we need to choose a better one. i'm thinking two letters (lets jump on the grep shortname bandwagon renaissance we're in the middle of).

Some candidates:

  1. binocular
  2. binlens
  3. ~~od (ObjDump)~~
  4. ng (biNGrep)
  5. ig (bInGrep)
  6. bd (BinDump)
  7. bing (BINGrep)
  8. bgrep

Or also any other name :P

m4b avatar Feb 26 '17 19:02 m4b

I would like to recommend 'bing' (binGrep) for no other reason than the obvious.

IWriteThings avatar Jun 05 '17 14:06 IWriteThings

This is clearly and obviously the best name currently suggested. Thank you :dancer:

m4b avatar Jun 06 '17 07:06 m4b

On the other hand, I don't want to awaken the beast of Redmond and have them lock up the bingrep repo in piles of cease and desist orders for years to come... :thinking:

m4b avatar Jun 06 '17 07:06 m4b

Not sure if it's taboo to ask this, but is there a reason that bingrep itself isn't in consideration? I know that shorter names are generally considered more valuable, but I think that a) seven letters isn't really that long, especially given tab completion b) users can always make an alias if they find they're needing to save a few keystrokes c) there's a much lower change of collision in naming (like what was run into with bg and d) users are less likely to forget what the correct command is if they don't use this very often (whereas options 1-4 are things that I'd personally never remember).

Obviously, I'm not a stakeholder in this in any way, and I'm honestly not sure how often I'd need to use this (very awesome!) tool given the type of things that I work on, but I thought it might be worth putting in my two cents since this is still an open question.

saghm avatar Jun 11 '17 01:06 saghm

"od" has been a Unix program name for literally decades : https://en.m.wikipedia.org/wiki/Od_(Unix)

ryancnelson avatar Jun 11 '17 02:06 ryancnelson

As per the Hacker News discussion (https://news.ycombinator.com/item?id=14530054), "less" seems like a better analogy than "grep" (since this utility does not search).

"binless" was suggested over there.

rjtobin avatar Jun 11 '17 04:06 rjtobin

@saghm No worries, there's no taboos here :) I think I'm actually in agreement you; also bingrep isn't like ag or rg or whatever that you use it very frequently.

@ryancnelson lol whoops; so clearly i'm great at selecting names which already exist

@rjtobin hehe I like binless too actually, and yes it's more like less I suppose. Really it's like a colorized objdump

m4b avatar Jun 11 '17 04:06 m4b

The name "bingrep" and the description ("like grep but for binaries") are a bit misleading (this tool is not like grep, in that it does not search for a pattern). The name "binless" would not be precise too, because "less" pages the output, while "bingrep" does not. May be "bincat" would be best, because it is more like "cat" for binaries.

liotev avatar Jun 11 '17 08:06 liotev

It doesn't really seem like grep to me. grep takes 2 inputs: a text and a search string. bingrep only takes one input, a binary. Without a search string it's hard to really say this is like grep. It seems similar to objdump but with somewhat differing information and with coloring. https://news.ycombinator.com/item?id=14530054

suggestion: do not name it grep

madnight avatar Jun 11 '17 08:06 madnight

I agree with that it should not be called grep if it does not work the same way. Bincat sounds good to me. 😀

Foorack avatar Jun 11 '17 10:06 Foorack

On second thoughts, the man page for 'cat' says that it 'concatenates files', besides printing them out to the standard output, while 'bingrep' works with one file only. So may be 'bincat' would not be the best name either.

liotev avatar Jun 11 '17 10:06 liotev

bindump binocular binge

madnight avatar Jun 11 '17 11:06 madnight

If you go the "binary cat" route, I suggest "bat". Then you can have a nice bat (mammal) logo, of a bat in the dark using it's sonar to highlight things in its (binary) environment. Or maybe a bat hanging upside down with special rust goggles on, with "binary cat highlighted output" seen in the reflection. 8|

peace

adarqui avatar Jun 11 '17 11:06 adarqui

binxray binparse binocular +1

Rurik avatar Jun 11 '17 11:06 Rurik

> bless > bmore > bview > bc > bsee > binlens > binl > xray > god // good octal dump > bread > b2

o0101 avatar Jun 11 '17 14:06 o0101

^^ binlens is cool.

adarqui avatar Jun 11 '17 14:06 adarqui

bincat or bcat

rafael747 avatar Jun 11 '17 14:06 rafael747

bc already an executable on unix.

@madnight @dosaygo-coder-0 Ohhh I really like binocular and also binlens!

I have a suggestion that no one will like: polykleitos

Not only is it really long and hard to type, definitely not a unix executable name, but, he was one of the preeminent athenian sculptors.

Why is this relevant you say?

Well - fun fact: did you know that it was recently discovered that the austere beauty of the sculpted marble of antiquity was actually painted; indeed, with colors a modern aesthetic might perceive as "gaudy".

So, if you're still with me, the binary is that austere marble, and the painter is this tool, wrapping it in gaudy and glorious reds and greens and blues.

Anyway; I'm putting binocular and binlens on the list, they're pretty fun. As for grep criticisms, I can always add a search string functionality/etc to retcon the hell out of this issue :D Also the coloring is just the first step, eventually I hoped to replace some of the functionality of https://github.com/m4b/rdr and put it here, making bingrep less of a misnomer.

Unfortunately I'm pretty busy so that will have to be put on the backburner, unless some enterprising soul wants to start adding some interesting search functionality (one thing very recently I wanted was a reverse of the map search in rdr, e.g., a "who calls" function that searches every binary on your system for a given symbol, and outputs every binary that calls/imports that function, and the list of libraries that export that function, and their offset)

I suppose one could add a pager functionality too, which would be fun little project; I usually do bingrep foo | less -r though.

m4b avatar Jun 11 '17 18:06 m4b

I'm a fan of both binocular and bincat

nvzqz avatar Jun 13 '17 00:06 nvzqz

what about ss, sstr, sstrings or superstrings

as in https://en.wikipedia.org/wiki/Strings_(Unix) not https://en.wikipedia.org/wiki/Superstring_theory

bgupta avatar Jun 13 '17 16:06 bgupta

I suggest binford (Binary In Nicely Formatted Object Rainbow Display), or maybe just binf.

binocular is pretty good, too.

stuartpb avatar Jun 14 '17 02:06 stuartpb

Nailed it: bingrep: Bingrep Is Not GREP

m4b avatar Jun 14 '17 02:06 m4b

What about food (Formatted Object Dump)?

stuartpb avatar Jun 14 '17 02:06 stuartpb

binlens is cool ! Finding a logo would be very easy. binocular is great too though.

eagleusb avatar Jun 19 '17 16:06 eagleusb

OP could start a survey

madnight avatar Jun 19 '17 18:06 madnight

Thanks for everyone's input :)

I'm going to keep the name as bingrep for now. I'm doing this for a number of reasons, mostly:

  1. this will just sit here unresolved unless i make a decision
  2. it will be confusing for users to build bingrep but have a different name
  3. this is one of the hardest problems in CS ;)

We can always retcon the name by adding search functionality; specifically, I usually do this with bingrep:

bingrep <some_binary> | grep "some_function_name"

I'd like to remove that grep step, and allow:

bingrep "some_function_name" <some_binary>

and this will return every matching case in every section (i.e., _DYNAMIC, symtable, string table, etc.).

Specifically, I usually have to scroll up, or page the bingrep output just because I want to see if the symbol is in the dynamic symbol table (e.g., exported), or whether it's a regular symbol, etc., so I think this functionality makes sense and aligns with this projects goals (search through binaries and make their output easily human readable).

I don't have the time right now to work on this, but I'll merge anything that accomplishes this in a reasonable manner :)

Again, thanks everyone for their input, was very fun :)

m4b avatar Jul 09 '17 20:07 m4b

"Obvious solution" to the "Bingrep is not GREP" problem: keep the name, but it's pronounced "bing-rep". ;)

hawkw avatar Jul 10 '17 11:07 hawkw

okay i think we have to accept that name ... but as general advise, never irgnore the community, this is your top 1 issue in respect to subscribers and you decided to do nothing .. fair enough, but keep in mind that doing nothing on high prio issues is one of the worst choices in many cases (not in all : )

madnight avatar Jul 10 '17 15:07 madnight

Bingrep Is Not GREP is a name change. Just awkward if you actually give it GREP-like qualities later. (Which it would be sweet if it had some of the power of YARA, like searching for hex values with wild cards e.g. "45 60 ?? AF")

syreal17 avatar Jul 15 '17 22:07 syreal17

@syreal17 I'm adding search features now. See #13

Would love your feedback over there

m4b avatar Jul 15 '17 23:07 m4b

binspec

AbeOwitz avatar Aug 24 '20 23:08 AbeOwitz