Re: New utility for output monitoring: pw ("PipeWatch")

2022-05-31 Thread Kaz Kylheku
On 2022-05-29 02:50, Alfred M. Szmidt wrote:
> How is this different from the pv command that is quite standard on
> GNU/Linux systems?

It's quite different in that pv is interposed between programs,
and provides some progress indication and throughput measurement,
which are updated on the TTY as the data moves across.
Whereas pw is at the end of the pipeline as a consumer, and
actually displays the content itself (which is expected to be text),
with interactive features.

It's particularly good for drilling in on repeating patterns,
kind of like an "oscilloscope for text". (Digital) scopes capture
signal samples through some internal buffer, and sample it on the
screen, with triggers that can make periodic patterns stabilize,
and pw kind of does that sort of thing with lines of text.

A few weeks ago I posted a new 7 minute demo/tutorial to Vimeo,
which is narrated; I do various things and indicate what commands
I'm using and what is going on.

https://vimeo.com/710155314

Cheers ...



Re: New utility for output monitoring: pw ("PipeWatch")

2022-05-29 Thread Alfred M. Szmidt
How is this different from the pv command that is quite standard on
GNU/Linux systems?



New utility for output monitoring: pw ("PipeWatch")

2022-05-11 Thread Kaz Kylheku
Hi All, 

I put together a new interactive tool for monitoring program output,
particularly the output of programs which run indefinitely and continuously
produce output. 

https://www.kylheku.com/cgit/pw/about/ (you can see a couple of videos here) 

pw continuously reads its standard input and pumps it through an internal
line-oriented FIFO, which is sampled to produce display on your terminal. Some
nice features are built around that basic idea. 

pw is integrated with POSIX job control. It knows when it is in the background
process group, and in that state it keeps reading and processing without
updating the display. The upshot of this is that you can easily juggle multiple
long-running programs that produce output, if you redirect all of them to to
different backgrounded instances of pw. Any time you want to know what is going
on with any one of them, just bring it into the foreground to look at the pw
display; then Ctrl-Z it into the background and let it run again with "bg".

The whole thing is under 2000 lines of C in one source file, BSD-licensed.
Since it doesn't retain the bulk of the data passing through it, it runs in
a small amount of memory. 

Cheers ..