Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.
-
@masonwheeler AFAIK tdwtf has no emoji containing to the word "nothing" in their name, aliases, or keywords. When you search for something non-existent, you may get unexpected results.
I can tell you why it is matching "umbrella", etc. It's because those emoji are tagged with the "clothing" keyword (which just so happens to be close to "nothing").
Anyways, I can make it so the threshold for an acceptable match is more restrictive, but it's rather difficult to find a threshold that works for everyone. I'd much rather have some queries with weird results than no results for close queries.
So you can check my logic
(async function () { const table = await $.getJSON('/plugins/nodebb-plugin-emoji/emoji/table.json'); let count = 0; for (const [key, val] of Object.entries(table)) { if ( key.includes('nothing') || String(val.aliases).includes('nothing') || String(val.keywords).includes('nothing') ) { count += 1; } } console.log(count) })()
I suppose another thing I could do is display the matches in the result list, but I can't think of any friendly way to do that.
-
@pitaj said in Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.:
When you search for something non-existent, you may get unexpected results.
Yes, that's exactly my point. Any result other than an empty set is unexpected, and unwanted. "Fuzzy matching" is not a positive feature; it's a bug and a mess.
-
@masonwheeler I like fuzzy matching, because usually I can't remember exactly the name of the emoji I want. So being able to type a few letters and get suggestions is a major plus for me.
-
@benjamin-hall Even when you can't remember the exact name, you can usually remember part of it, right? Correct filtering will still work for this case, while not cluttering your results up with bad matches.
-
@masonwheeler not necessarily in the right order, or I remember it wrong (but close). Suggestions that are close are more important than ones that are exact, to me at least. Maybe if the match distance is too big, add a "no good matches found" entry to the top of the picker?
-
@benjamin-hall said in Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.:
@masonwheeler not necessarily in the right order, or I remember it wrong (but close). Suggestions that are close are more important than ones that are exact, to me at least. Maybe if the match distance is too big, add a "no good matches found" entry to the top of the picker?
Let's say you want to find but can't remember the word "poo". So you type
:excrement
and it suggests because there are a lot of the same letters in those words. Is that helpful?I can't think of a single case where you'd want to find results that are missing letters in your search term.
-
@ben_lubar said in Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.:
I can't think of a single case where you'd want to find results that are missing letters in your search term.
How about typos and misspellings?
-
@zecc in an emoji search, where searches are commonly one or two words long? You're better off guessing the correct spelling, even if it takes a few tries, than making the worst case performance happen frequently and also give unhelpful results.
-
@zecc Then you show zero results, which informs them that what they have typed matches no emojis, rather than a nice long list of completely incorrect results which inform nobody of anything.
-
Hey, I was just playing the devil's avocado. This worked without fuzzy searching for years and it worked better than currently.
Heck, no autocompletion at all would work better than currently.
But I wouldn't be opposed to seemingly unrelated results as long as: a) typing isn't blocked (this is the single most aggravating problem IMO); b) the actual relevant results are on top; c) it won't change what I've typed just because it thinks it knows better.
-
@pitaj said in Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.:
@zecc percent is a unit-less ratio multiplier, like radians and degrees. So if you say "thing X is 1000% of thing Y" then it implies that thing X and thing Y have equal units.
You could say "I have 100% more apples than you have oranges" which just means I have twice the number of apples as you have oranges. Colloquially, it's almost never used this way.And this is why basis points were invented.
-
@zecc said in Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.:
But I wouldn't be opposed to seemingly unrelated results as long as
: a) typing isn't blocked (this is the single most aggravating problem IMO); b) the actual relevant results are on top; c) it won't change what I've typed just because it thinks it knows better.the fucking popup menu actually SHOWS ON THE SCREEN instead of being cut off.That single bug makes the emoji picker +infinite percent times more useless than all other issues.
-
@remi amen. That's seriously annoying. I've never had it freeze on me in real use, but that gets me every time.
-
@masonwheeler said in Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.:
@pitaj said in Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.:
When you search for something non-existent, you may get unexpected results.
Yes, that's exactly my point. Any result other than an empty set is unexpected, and unwanted. "Fuzzy matching" is not a positive feature; it's a bug and a mess.
Strongly disagree.
I like that I can find stuff without remembering the emoji name correctly, or sometimes not at all, because it matches "tags" or whatever. "Dog" finds "poodle" and "manshrug" finds "man_shrugging" (note the missing underscore). The feature is useful in theory, the problem is all the things that don't work.
For example, if I type :doing_it_wrong it should put at the top of the list instead of not displaying it at all (seems fixed now). That's matching completely gone wrong.
-
@pitaj said in Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.:
I can tell you why it is matching "umbrella", etc. It's because those emoji are tagged with the "clothing" keyword (which just so happens to be close to "nothing").
That makes sense but I think it's also why most people are getting confused by search results. It didn't do that before; I think it should either be configurable behavior or the keyword that's matching should be visible somewhere (teensy-weensy text somewhere? A drop-down menu can't take up a lot of screen real estate, at least vertically, without limiting the number of viable options, so I'm not sure what this would look like).
Edit: Also, an umbrella is not clothing, but that's very much beside the point.
-
@topspin Sure, having tags can be useful, especially since they went and changed the official names of a bunch of them out from under us and half the stuff isn't called what it used to be called, but it still matches the old names because of tags. I'm fine with that.
But when it doesn't match anything at all, it should not match anything at all. Trying to turn "nothing" into "clothing," as in the example above, is simply wrong, and it's stupid. It should be recognized as a bug, and fixed by removing the "fuzzy matching" garbage.
-
Things could be worse...
Edit: I've also spoken to @pitaj -- he's going to remove the fuzzy matching.
-
@masonwheeler said in Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.:
they went and changed the official names of a bunch of them out from under us
I don't know who "they" are, but I'm still made at them for that. DON'T FUCKING BREAK THE INTERFACE!
-
@lorne-kates It's not broken, as the old names still work because of tags/aliases/whatever.
-
Alright turns out Fuse (the fuzzy finder library I was using) is a bloated, slow shitpile
I replaced with a fairly simple iterative search and it was 10x faster normally, and 100x faster for the really slow stuff. Also, it's 18kb smaller.
From my limited testing it results in more relevant results with slightly better sorting.
@ben_lubar you can
npm i nodebb-plugin-emoji@2.1.1
or wait for it to show up in ACP (if it ever does).
-
:doin
:h
:hun
:eight (Looking for since that comes first alphabetically)
-
@tsaukpaetra Thanks! v2.1.3 should address your concerns. It sorts "prefix matches" to the top of the results. I used your examples to test it, appears to work as you want.
@ben_lubar
npm i nodebb-plugin-emoji@2.1.3
- Sorts prefix matches to the top of the results
- Matching is case insensitive and ignores
-
,_
Oh btw, you'll probably want https://github.com/NodeBB/NodeBB/commit/eddd1697e4f1ab9659c6f635996d264e4c05ecc1 to upgrade the composer to the version containing my dropdown fix.
-
Let's see how this thing performs.
Holy fucking shit, it works. I just works. I don't have to wait 20052984 seconds per keystrokes anymore.
(Like it used to be).
Here's hoping it doesn't re-break again.
-
-
@lorne-kates said in Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.:
Speaking of breaking again, is this correct?
https://i.imgur.com/fjjDJij.png
I can hardly tell the difference....
-
@pitaj said in Useless piece of shit emoji picker deadlocks browser for 15 seconds per keystroke.:
@tsaukpaetra Thanks! v2.1.3 should address your concerns. It sorts "prefix matches" to the top of the results. I used your examples to test it, appears to work as you want.
@ben_lubar
npm i nodebb-plugin-emoji@2.1.3
- Sorts prefix matches to the top of the results
- Matching is case insensitive and ignores
-
,_
Oh btw, you'll probably want https://github.com/NodeBB/NodeBB/commit/eddd1697e4f1ab9659c6f635996d264e4c05ecc1 to upgrade the composer to the version containing my dropdown fix.
Thanks! It's working great now.