HE UX Rant

in #hiveengine9 months ago

steam-power-engine-train.jpg

Nothing short of Abysmal!

As grateful as I am that HiveEngine exists and the utility it adds to the Hive ecosystem, there are still a ton of things about it that annoy the hell out of me. Lately I've been using HE a lot more than usual and these issues have become more and more blatant over the course of the last few weeks. Let the rant begin!

Delegation to the void!

Today I found out that the delegation I owed to @cryptosimplify mistakenly went to @cryptosimplifiy instead. The account @cryptosimplifiy doesn't even exist and yet HE allowed me to delegate 10k LEO to a non-existent account anyway. I was going to write this post a while ago but figured I'd wait till something really pissed me off... well that was it... that was the last straw. Time for a classic rage blackout.

Unacceptable Wait Times.

UWT for short, an abbreviation that literally no one uses except me in this post to sound important and that I know what I'm talking about. We figured out in the 80's that waiting a couple seconds was already too long for the average person to wait for something. There are legit scientific marketing studies on this exact topic. Users want things to happen instantly... yet... here we are. In many ways crypto has regressed back to the very beginning of the internet, and this is one of those things.

image.png

12 seconds later...

A simple transfer from one account to another takes over ten times longer than it should on the frontend. The crazy thing is that this wait-screen didn't even used to exist back in the day. It was added on purpose to make the user wait until the transaction had fully cleared. Blows my mind, as this is such a ridiculous way of going about it. IMO the frontend should simply assume that everything worked fine and allow the user to resume going about their business. If something gets rolled back then hitting the user with errors and wait-screens makes a lot more sense.

The most egregious example of this wait-time debacle is when the user goes to cancel a limit order. Say you have 10 limit orders you need to cancel. No problem, as long as you love waiting at least 10 seconds for each and every one to fully clear for no reason. Same goes for creating the limit orders in the first place. Kinda blows my mind what crypto users are willing to put up with. Creating 10 limit orders takes 2 minutes on HE while on centralized exchanges they can be made as fast as one can type. Wen moon, ser?

The crazy thing is that there is absolutely no reason to do it this way. Well... there is a reason... and that reason is laziness I assume. The frontend is asking the backend if the transaction has cleared and waits until it has... when in my opinion it should just reach consensus with the client instantly and assume everything is all good (until it's not and you get slapped with an error/rollback).

Devs like @khaleelkazi and the LEO ecosystem understand this problem all too well (and react with "Lightning" implementations). Response times matters a lot more than one might think. Waiting is annoying as hell. Of course when you compare Hive to something 10 minute Bitcoin transactions we can see why people are willing to put up with 10 second wait times. This won't be the case when mainstream adoption hits. Slow protocols will be thoroughly ignored by the masses.


image.png

Shilling the BEE token at every fucking opportunity.

Every time you click on the "exchange" tab it shills you the "BEE" token, which is literally a token that no one wants to buy ever unless they are a HE dev and they need it for the "utility" it provides. Of course by "utility" I mean getting past a paywall that essentially gets funneled to a centralized agent running the entire protocol. Remember when Steem forked to Hive and HE wanted to doublecharge everyone more fees to list their token on Hive? Yeah, people don't forget. It's shiesty AF.

Use cookie to remember last used token.

It is downright offensive that HE frontends know for a 99% fact that the user doesn't want to buy the BEE token, but they shill it on every god damn click anyway. When someone creates a website they should be looking to show the user things they actually want to see, and this is the best example of how HE does the opposite of that by design. It's annoying as shit.

Speaking of the widget that allows you to select the token you're actually looking for that isn't BEE, it feels very counterintuitive that I can't use tab while selecting it to scroll down the list and highlight the next token. Instead hitting tab highlights the next widget, like 'candlestick', 'depth', and 'volume', which again is completely worthless on the UX side of things.

Getting airdropped tokens you don't want to see.

When I click my wallet I am bombarded by 4 pages of totally illiquid tokens worth nothing. This is made even worse by the fact that the "USD value" tab only measures the USD value of unlocked unstaked tokens... so if you pump $1000 into your favorite HE token and power it up... it get's lost in a sea of bullshit that you don't want to see because the "USD value" dropped from $1000 liquid to $0 liquid. Such a bad design choice imo. And again IIRC it was changed to be this way on purpose so that users wouldn't think the USD value was immediately tradable. Just make another tab for USD if it's so important to list liquid values (it's not).

I just noticed that there is a "hide small amounts button"... I just clicked on it and it only gets rid of one of the four pages. The bottom of the first page is 2 cents. So a 2 cent USD value doesn't qualify as "small amount"? Really? Increase it to $1 at least. Maybe even $10. Half of the literal listed values are $0 on page 2. Wut? I guess zero isn't low enough.

archer-baby-town-frolics.jpg

image.png

Charts that don't adapt well to illiquid markets

How many years has HE been operational and the charts still look like absolute shit? Seriously though. Worthless. Fix it. It can't be that hard. Remove extreme outliers from the data. If I created something like this I'd be straight up embarrassed and fix it ASAP. It's been years.

Where is the fucking richlist?

Every time I look for certain functions that I know exist I always forget where they are because they are never in the obvious intuitive place and instead exist in some random corner of the site. I always end up finding the thing I'm looking for but by the time I do I'm just annoyed as hell. Guess where the richlist link should be? On the information page next to all that other worthless info.

Why are order numbers random?

This is another thing that is super annoying from the dev side of things. If you were trying to create a liquidity bot on HE you can't even cancel your own order without knowing the order number.

image.png

Notice anything?

The protocol never tells you your own order number, so you can't even cancel your own order with a bot unless you ping the API for it, which is dumb. There is no need to create a random unique primary key for the order number when you could just make them [0,1,2,3] and combine them with the account name to generate uniqueness. At least that's what I would do... maybe there is some optimization issue that makes this less ideal, but somehow I doubt it. Especially considering that's exactly how Hive does it on the backend for things like HBD conversions.

image.png

Trade history is shit

This is a great way to show orderbook history... if you're writing a bot. As it stands now it's hardly even human-readable. If I place a market (taker) order for XYZ token it could liquidate dozens of limit maker orders... each one of those liquidations counts as a separate transaction... I can't believe I have to point out how terrible this is. Stop listing the liquidated maker orders and just show the taker market orders by default... for the love of god it's not hard.

Example:

Instead of showing a dozen buy/sell order on a single operation just show... you know... one. One maker order with the average price they paid for the entire order. Again. Not hard. I'm annoyed it even has to be said out loud.

Diesel pools are completely underutilized

AMM liquidity pools are a HUGE advantage on Hive Engine, and no one seems to use them despite very impressive liquidity depth. I get the same response as to why no one uses them over and over again:

  1. AMM requires yield allocations to the LP to incentivize users to lock up their money.
  2. The BEE fee for Diesel Pools is "too high".
I always forget about the stupid fee.

Last time I checked I think it would cost like $300 at current prices to get one of these listings... which obviously isn't a lot but apparently it's too high of a price for us plebs to pay. Spoiler alert: it shouldn't cost anything... at least not now when it has near zero adoption. Take a WEB2 lesson on that front IMO. The original listing fee should easily cover both orderbook listings and diesel pools. So obviously. Adoption is more important than adding a stupid fee to every goddamn feature.

babyrage.jpg

Conclusion

Ah well that was fun. Again I think HiveEngine is pretty great and it adds a lot to the ecosystem... for now. But honestly I can't help but think it will eventually fade into obscurity and be antiquated by some other up-and-coming protocol. Until such times it's good that we have the ability to forge these small communities in advance and see what sticks.

There are just so many little annoying UX issues with HE that downright baffle me after I use it enough times... and it's like just accepted that this is simply "the way things are". Hm. Sure. If you say so. I feel like it wouldn't be hard to fix a lot of this stuff in less than a month, but maybe it's not a priority or I'm oversimplifying the issues.

Don't mistake my tone: I'm not even mad and wrote down a lot of this criticism weeks ago and then didn't even write it until now after my delegation to the void occurred to a nonexistent user. Some things are better left unsaid. Until you say them anyway because you just can't help yourself.

Sort:  

"Time for a classic rage blackout."

I LOL'ed. Not because I'm laughing at you. I'm laughing because I share your pain. It's all too relatable.

"If something gets rolled back then hitting the user with errors and wait-screens makes a lot more sense."

Eh, by 12 secs later whatever was being transferred could have been spent a dozen times. It depends on the reason that things are taking time as to whether it's ok to just assume everything is fine and move along. I assure you that there are people that could spend a significant amount many dozens of times in 12 secs. I've seen arbitrage deals (at least claims of such deals) in which $Ms were taken in such time frames. Best to wait until the transaction clears, IMHO.

"Remember when Steem forked to Hive and HE wanted to doublecharge everyone more fees to list their token on Hive? Yeah, people don't forget."

I do remember. I remember being very grateful to YOU at that time, and for years afterwards. When someone does me right, I remember that just as much as when someone doesn't.

I either still have tokens there, or just lost them forever, that were worth $1000s. I didn't cry about it, but I was offended for the folks that had sent them my way. I never intended to extract that value in $, but I also cherished the thought and support of those that had created that value, and it is for this reason I will never, ever use HE. Unless someone sends me a bunch of Pizza, or Beer, which happens from time to time. I have a bunch of tokens like that, but I'm not ever sinking my hard earned Hive into that platform on purpose.

A dog bites me once, and I never pet it again. Last time a dog bit one of my kids, I shot it.

Anywho, you're a coder! I remember you code stuff, and here you have an opportunity to outcompete HE based on UX you could code up 'in a month'. You're the man. Man up. Cut me in for a point for inspiring you when you do, though.

Make it the way it should be, and luxuriate in the admiration of the many folks you'll have helped, and they probably will buy a little BEE from you just out of gratitude, from time to time.

Thanks!

Eh, by 12 secs later whatever was being transferred could have been spent a dozen times.

Trying to spend money you don't have is the exact case that would throw the errors and the rollbacks on the frontend. Everything would work exactly the same as it does now on the backend except the parental wait screen would be removed from the frontend. Does not matter if the frontend tells you you have a million dollars... because ya don't.

Also fixing some ux stuff in a month and building an entirely new platform from the ground up are... a bit different. But then again you know that and put it in quotes so maybe that was your point.

I shouldn't have to point out that h4x0rz are tricksy, and have before managed to interpolate themselves between senders and receivers. If you send the money, you don't have it. If they intercept it then they do have it. These things happen. Still.

I am ribbing you a bit, but only a bit, about crafting a better HE. If you made it I wouldn't be against using it. I am not a coder, but still reckon it's not an easy thing to code up. otherwise there'd be competition. Isn't there a github where you could submit code or something for HE?

Honestly, though, I just relate to your frustration that it doesn't work in a way that makes using it tolerable.

The trick to creating another system of tokens on Hive is the liquidity pool between Hive and the token. ETH accomplishes this with atomic swaps that are confirmed directly on chain. HE accomplishes this with a single permissioned entity that controls all the wrapped/unwrapped Hive (whether multisig or not).

I have an idea to solve this problem in another way but much bigger fish on Hive like the SPEAK network are working on their own solution as well that may be a lot better than my clunky version.

That is a very good take on the UI.

Makes me feel nostalgic about the Apple vs Android fight of the 2012s. Back at that time, I taught students in App programming for Android. And while the Android architecture was designed to create fluid feedback between the Application and the user, the adversary Apple just focused on UI Feeling. In case of Network lag or Application problems, they would simply roll-back/freeze and reverse after a second.

I thought Google/Android was on the better path, 4 years later I switched to Apple myself, particularly because of the much better UI FEELING while using the phone (and the metal/glass case, I hate plastic phones).

It's the same here, the devs have taken over and want to have the Application/Data Layer on pair with the UI, bbbbuuuuuuuuuut the user wants to have a swift and good UX.

I'll leave all judgement aside, it should be obvious what path I'd rather like to see taken.

Yes, this is shit with a poor interface, made by a drug addict -

What's the drug? They're not all the same :p

Thanks for highlighting issues related to Hive engine UX, you explained it very well I wish HE developers read your post and try to improve Hive engine

Until you can't help yourself out. That is right. It is sad that the transaction went through. Maybe you can create an account with the name. Maybe something.

I also got to know more about the HiveEngine(Bee token).

Yay! 🤗
Your content has been boosted with Ecency Points, by @balikis95.
Use Ecency daily to boost your growth on platform!

Support Ecency
Vote for new Proposal
Delegate HP and earn more

Yep, someone had to voice them. If no one says anything, they will focus on something else because nothing "burns" at TribalDex.

I also mentioned a couple of times they should add the option to buy with SWAP.HBD. Although the liquidity is so low for many tokens, even for SWAP.HIVE is ridiculous.

12 seconds later...

BeeSwap does this incredibly well. If you want to do a couple of swaps in a row, for example, you have no wait time between them. You have the notification for each of them letting you know where it is in the process of broadcasting to the chain, but once you hit swap you can move on to the next one. And if you are quick, you can have multiple such notifications piling up. At first, I didn't think this was possible and waited until each swap was completed. I discovered it by mistake because I was in a hurry.

Once BeeSwap will have the exchange part developed, there won't be enough reasons for me to go back to TribalDex. BeeSwap is simply better.