What does HackerNews think of watchdog?

Python library and shell utilities to monitor filesystem events.

Language: Python

Also not to be confused with watchdog and it's command watchmedo, which is what I thought this was when I first read the headline. I don't know what the differences are, but I use watchdog to restart my local celery workers when I make changes. It's scripted out so I don't ever use the command directly.

https://pypi.org/project/watchdog/

https://github.com/gorakhargosh/watchdog

EDIT: Now I'm wondering how often I miss out on something because I confuse it for something I already use. Maybe there is room for a "things I use" or "things I know about" browser plugin.

A well-written Python app using the respective platform's native events through say, watchdog[1] performs perfectly fine for huge numbers of files[t]. The language used isn't at all the problem with Dropbox's performance which has been a problem for as long as they've had a desktop app.

If there's one specific bottleneck (ex: hashing files) then that's a prime candidate for Cython[2] or the plain CPython C-API.

Even when you have dropbox restricted to a small folder with _no IO events at all_ it's still constantly working, which is the real problem and entirely an optimization/design problem.

[1]: https://github.com/gorakhargosh/watchdog

[2]: https://cython.org/

[3]: https://docs.python.org/3/c-api/index.html

[t]: ... except when forced to use kqueue or polling

Though it looks like unmaintained, I use watchdog[1] for automatically running build and test commands on file change.

[1] https://github.com/gorakhargosh/watchdog

entr is is what I eventually settled on after years of searching the perfect utility to build/run tests after file changes. After using gulp, grunt, watching_testrunner (which I eventually inherited maintainership of), watchman, watchdog (https://github.com/gorakhargosh/watchdog), sniffer (https://github.com/jeffh/sniffer)

entr is cross-platform on OS X, linux and BSD.

watching_testrunner has no BSD support

watchman is way too big and not domain specific enough to my needs

sniffer worked quite well but it required having a scent.py file everywhere

entr keeps it all in a neat, unix like package you can pipe files to.

I keep some example usage in my book, The Tao of tmux at https://leanpub.com/the-tao-of-tmux/read#leanpub-auto-file-w.... In this section I demonstrate my workflow with entr(1) in a Makefile. The code I use in the example should work across OS X / BSD / Linux (note the utilities like find(1) may behave a bit differently across unix-like systems).

I use the Makefile w/ entr(1) in development on my projects like tmuxp at https://github.com/tony/tmuxp/blob/master/Makefile. tmuxp is BSD-licensed so you're free to work off that if you'd like to try it on your own project.

Pretty neat! As a suggestion, I would replace also the delimiters "()\{\}[]" with the corresponding left/right versions [1] so LaTeX adjusts automatically the size in the output and I don't have to deal with less readable code missing \left or \right errors.

As another tip to make LaTeX typesetting easier, I'd recommend using a custom keyboard distribution to input symbols easily, (e.g., alt + d for δ instead of \delta). In TeX.sx Jon Wickerson published [2] a layout for the british keyboard and the corresponding package to make LaTeX understand the unicode symbols. If you happen to have a spanish keyboard, I made an adaptation of that code [3].

And another thing: if you plan on using pretex a lot, it may be useful to parse the file on save (maybe before compilation). inotify-tools [4] or watchdog (OS X) [5] can help you, it's easy to create a script that will execute pretex whenever your LaTeX file changes.

Great work!

1: http://tex.stackexchange.com/questions/77589/what-do-the-pie... 2: http://tex.stackexchange.com/questions/110042/entering-unico... 3: https://github.com/gjulianm/MathUnicode 4: https://github.com/rvoicilas/inotify-tools/wiki 5: https://github.com/gorakhargosh/watchdog