Live data from Hacker News

Hacking the planet with Notcurses: a guide to TUIs (2020) [pdf]

nick-black.com

11–20 of 33 posts

Re: Hacking the planet with Notcurses: a guide to TUIs (2020) [pdf]

#12
post #7

Ok, if you're looking into notcurses, you may want to watch this: https://www.youtube.com/watch?v=dcjkezf1ARY (~ 6') the WTF effect that video had on me lasted quite a while. I still can't describe it.

Nice! This really makes me want to play with notcurses. :) BTW, did you notice the image of a coronavirus in there?

Re: Hacking the planet with Notcurses: a guide to TUIs (2020) [pdf]

#13

Curses and notcurses have their place but I still miss the simplicity of borland's conio.h implementation. Also remember that visual basic was initially written for DOS. Having a open source multiplatform text mode visual basic would be interesting.

AFAIK vbdos came after the Windows version. It was fun to play with but a little slow.

Re: Hacking the planet with Notcurses: a guide to TUIs (2020) [pdf]

#14
From page 8:

"We don’t switch from blue to some other specified color, because we don’t know the background color of the terminal. Some people, possibly aliens, don’t favor a dark terminal background. If the terminal background were white, and we had just used e.g. ncdirect_fg(n, 0xffffff), text following “house” would be invisible.

"One might observe that a user with a blue background will have invisible “house” text. This is a real issue, one lacking a perfect solution. It is not generally possible to discover the RGB values of the default colors. I suppose all one can do is rest easy, serene in the belief that white backgrounds are one thing, but people with chromatic backgrounds deserve whatever happens to them."

That's a lot of cognitive dissonance in a work about UI design. Let's try to do better in making TUIs mainstream. That requires encouraging people to use the few features terminals _do_ provide. Like chromatic backgrounds.

I've been doing a fair amount of ncurses hacking recently[1], and I prefer to always explicitly specify colors. People won't get their preferred colors by default, but they'll always get a legible configuration by default.

[1] https://github.com/akkartik/teliva

Re: Hacking the planet with Notcurses: a guide to TUIs (2020) [pdf]

#15

From page 8: "We don’t switch from blue to some other specified color, because we don’t know the background color of the terminal. Some people, possibly aliens, don’t favor a dark terminal background. If the terminal background were white, and we had just used e.g. ncdirect_fg(n, 0xffffff), text following “house” would be invisible. "One might observe that a user with a blue background will have invisible “house” tex…

This same problem has plagued the web for decades. I used to change default colors to ease my eyes, and whenever foreground CSS lacked a background color it often became impossible to read. Accessibility modes came soon after but were too binary for me.

These days we have dark modes and more elaborate extensions. Still sometimes things don't align.

So thanks for at least specifying both.

Re: Hacking the planet with Notcurses: a guide to TUIs (2020) [pdf]

#16

From page 8: "We don’t switch from blue to some other specified color, because we don’t know the background color of the terminal. Some people, possibly aliens, don’t favor a dark terminal background. If the terminal background were white, and we had just used e.g. ncdirect_fg(n, 0xffffff), text following “house” would be invisible. "One might observe that a user with a blue background will have invisible “house” tex…

This same problem has plagued the web for decades. I used to change default colors to ease my eyes, and whenever foreground CSS lacked a background color it often became impossible to read. Accessibility modes came soon after but were too binary for me. These days we have dark modes and more elaborate extensions. Still sometimes things don't align. So thanks for at least specifying both.

Yeah, it's a hard problem, and I liked that OP acknowledged that. But I liked less how it made a virtue of the bad situation. There's really no way to rest easy or be serene here.

Re: Hacking the planet with Notcurses: a guide to TUIs (2020) [pdf]

#17

Happy was the day I gave up on curses and just started splatting crap at the terminal with my own control codes. For too long did I think that curses was the one and only way to do anything with a terminal.

Yes, it's unquestionably always good to know how things work.

Re: Hacking the planet with Notcurses: a guide to TUIs (2020) [pdf]

#18
Somewhat related ...

Is there a proper name for a "top-like interface" ?

I think that "TUI" refers very broadly to any terminal user interface and both 'vim' and 'alpine' and 'top' would fall under this broad category.

But is there a specific name for a refresh-every-second, full page status output - like 'top' ?

Is there a standard library for creating such an interface, or do people always use curses ? Presumably curses did not exist in the early 80s when 'top' was first written ...

Re: Hacking the planet with Notcurses: a guide to TUIs (2020) [pdf]

#19
post #18

Somewhat related ... Is there a proper name for a "top-like interface" ? I think that "TUI" refers very broadly to any terminal user interface and both 'vim' and 'alpine' and 'top' would fall under this broad category. But is there a specific name for a refresh-every-second, full page status output - like 'top' ? Is there a standard library for creating such an interface, or do people always use curses ? Presumably c…

TUI generally refers to a program that’s “full screen” with respect to the terminal it’s running in.

Programs that don’t drive the whole terminal screen, instead generating output that may be mixed with other output in the same terminal, are often referred to as CLIs.

curses dates back to around 1980: https://en.wikipedia.org/wiki/Ncurses#History

Re: Hacking the planet with Notcurses: a guide to TUIs (2020) [pdf]

#20
post #18

Somewhat related ... Is there a proper name for a "top-like interface" ? I think that "TUI" refers very broadly to any terminal user interface and both 'vim' and 'alpine' and 'top' would fall under this broad category. But is there a specific name for a refresh-every-second, full page status output - like 'top' ? Is there a standard library for creating such an interface, or do people always use curses ? Presumably c…

Very crudely, on linux you can do that with almost any CLI progam and the "watch" utility.
Post reply on HN