Show HN: Counters – GUI for those who don't do GUI
github.com
github.com
# create the "counters"
touch {01..16}
# use multitail to show all counters in a grid, 4 columns
multitail -s 4 *
Now you can write to any of these files echo hello > 01
echo world > 16
The result looks like this: https://i.imgur.com/yVWWMfr.pngYou can also tell multitail to automatically rescan the directory and display new files
# check current directory for new files once/sec. match any file
multitail -s 4 -q 1 "*" mkfifo progress
cat progress | zenity --progress --text='progress' --percentage=0 &
echo 10 > progress
sleep 10
echo '# Done!' > progress
echo 100 > progress
https://help.gnome.org/users/zenity/3.32/progress.html.enI'm having a bit of trouble understanding this, since I can't see how this works. How does [C], which "copies a C-style SendMessage template to the clipboard", have anything to do with exposing the window handler?
See the examples on the page.
Isn't it annoying to have to change out window handles manually all the time? Or did that just become muscle memory after using the concept for that long?
But every once in a while I spawn them all across the code to hunt some bug, and then I think I got it, and I do the victorious "Aha!" and close the window. And, of course, it's not it and then yes it gets annoying to update the handlers.
$ eval $(start_counters); # start process, print 'COUNTERS_ID=...'
$ ./myapp
i.e. "stealing the way ssh-agent works for fun and profit"I'm suspecting you already thought of this sort of trick and rejected it as not worth the extra complication for the rare annoyance, but since it didn't pop into my head until hours after originally reading this comment I figure it was worth noting just in case.
ETW would also work in those rare situations where SendMessage() doesn't, such as from a device driver, and can more easily be logged.
In assembly language and targeting windows as well. Novelty++.
But I tried that at the very beginning and it was rather inconvenient since I had to drag defines to every place I want to send a message from. "WM_USER + 'R'" might have worked but it's worse than "WM_USER, 'R'" aesthetically. And there is an extra parameter anyway.
PostMessage is also better for writing things to the counters since it's asynchronous. But it doesn't work for reading. It's just more convenient to have one function do both but of course you can post messages too.
It's a silly tool anyway. Basically made of compromises.
For interactive stuff, you can create a HTTP server and send requests to it from a web UI. For example, using this: https://github.com/yhirose/cpp-httplib
Is it not possible to just use redis or some windows equivalent for this kind of requirement?
To be fair, your software probably was not intended to be used by anyone else and publishing it to Github is just for sharing the underlying idea.
I still miss MFC/windows programming a lot, I think in many ways it's quite efficient.
But for job seeking it's not a good idea, opening for windows gui is quite rare.
Maybe I should setup a web(!!) For lonely job seeker on windows programming / and Delphi/lisp/scheme / all other good oldies forgotten by rest of the world.