💾 Archived View for thrig.me › blog › 2022 › 11 › 05 › pop-ups-are-terrible.gmi captured on 2024-05-12 at 15:40:25. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-11-14)

-=-=-=-=-=-=-

Pop Ups are Terrible

I refer to those user interface elements that schlong up the screen in a manner most unwelcome. Even vi has them

"There's a nasty problem with long path names. Tags files can result in long paths and vi will request a continuation key from the user. Unfortunately, the user has typed ahead, and chaos will result. If we assume that the characters in the filenames only take a single screen column each, we can trim the filename." -- /usr/src/usr.bin/vi/common/exf.c on OpenBSD

though more commonly they are encountered in bad operating systems such as Windows and of course the modern web, likewise bad, one reason being the excessive pop ups.

So what's so terrible about pop-ups?

The gist is contained in the code comment above: surprise! there's a continuation key (argh) or something about some new feature (don't care) or would you like to know that the wifi went away? (not really) or how about you subscribe to our newsletter (die, web, die) and what you wanted to do is no longer possible, or at the very least you risk distraction, like being bothered by an annoying fly whilst trying to craft a fine hammer.

It's like some mischievous prankster god will--randomly!--move things around on you. And people--often deliberately!--put this crap into their user interfaces.

Ugh.

If Not Pop Ups What Then?

Decent software, if it has pop ups, will have some means to disable or configure automatic behavior. Some lines from my .muttrc:

    set pgp_sign_as = ...
    set crypt_confirmhook=no
    set confirmappend=no
    set autoedit=yes
    set move=no
    set delete=yes

The particulars here are not important; the fact that prompts have been eliminated and the usage streamlined is. And these settings have been stable for decades now. (Outlook? Unrecognizable in a fraction of that time.) Maybe this is a cultural thing, where in some cultures after 20 years of marriage one spouse is expected to ask "do you want coffee this morning?" as if nothing had been learned from the prior 7,000+ mornings.

Not all software is amenable to such changes. The message system in vi is pretty tricky to not make it prompt, and would need significant work to never prompt while ensuring that multiple messages can be reviewed, somehow. My fork of ex-vi simply drops multiple messages in some cases, because pop ups, bad.

My definition is a fairly loose--much like spam, I know it when I see it--basically anything that throws up an interruption "you must press enter" or "are you sure?" or "have you checked out this new redis thing?!" that renders the interface unusable until you stop to get rid of the annoyance.

Or to quit the browser and wonder why you were so foolish as to start such bad software in the first place.

The modern web... yeah, not sure what to do about it. Pop ups everywhere, like a field rife with foot-seeking cowpies. Maybe there needs to be a cultural change? Mostly I don't use the modern web because the very last thing I want to see when trying to obtain the Intel software developer manuals is some pop up--animated, no less!--rife with irrelevancies. In my defense I did try to download those documents with w3m first.

Takeaways:

Tools vs. Applications

A somewhat related point is between tools and applications. These terms are not very good. Here, a tool is something that might have something of a learning curve, but once mastered is memorized and used efficiently for a lifetime. mutt. A tool could also be a process, like how to make good bread. An application is something you are not expected to memorized, or one that cannot be memorized, if the vendor must forever fiddle with it, and you have to hunt and peck around regardless. Microsoft Outlook. A not-tool, but that's not a good term, either. Often there is a contrast between tool and not-tool like "the terminal UI was replaced with a slow GUI that takes much longer and is harder to use".

And probably pegs two CPU cores and takes untold gigs of memory.

There are uses for not-tools, like when I was on linux I might fire up virt-manager for some virt-y thing because hunting and pecking through the UI was probably more efficient than scrolling through and missing the relevant whatever in the CLI documentation. But if it is something that is used a lot, it probably should be a tool, should not change, should be something you can master. And it probably should never have pop ups.

Productive Test

The hypothesis that pop ups are terrible can be put to test with a program that helpfully interrupts your shell pipelines with prompts.

    #!/usr/bin/env perl
    #
    # pipespam - randomly interrupts a shell pipeline with prompts, much
    # like those pop ups on the modern web or other operating systems of
    # dubious merit
    #
    #   yes | pipespam
    
    use 5.26.0;
    use warnings;
    use experimental 'signatures';
    use IO::Termios 0.09;
    
    my $odds = -1;
    my $term;
    
    if ( $term = IO::Termios->open('/dev/tty') ) {
        $odds = 0.01;    # testing may show that 1% is way too high
        $term->autoflush(1);
        $term->setflags( '-echo', '-icanon' );
    }
    
    while (readline) {
        prompt($term) if $odds > rand();
        print;
    }
    
    sub prompt ($io) {
        $io->print('Are you sure? [Y/n] ');
        while (1) {
            my $ch = $io->getc;
            if ( $ch =~ m/^[YyJj\r\n]/ ) {
                last;
            } elsif ( $ch =~ m/^[Nn]/ ) {
                $io->print("\n");
                exit 1;
            }
        }
    }

Another way is to not use systems infested with pop ups; there may be herd immunity in folks who have never known a pop up free experience--a dairy farmer may not notice the cowpies, unlike one foreign to the modern web.

"Hi! It looks like you are trying to CNC mill a metal bar! Would you like

tags #vi #perl #legacyweb #mutt