Live data from Hacker News

Rsync, GUIs, power, control, design, and decisions

bits.ashleyblewer.com

31–40 of 138 posts

Re: Rsync, GUIs, power, control, design, and decisions

#31

> Successful UNIX tools (or any tools, for the most part) are the ones with a simple concept manifested very thoroughly, and rsync is certainly that. [...] There are over 100 flags in rsync that you can select to do different things. So, this is what I mean by doing something simple, and doing it very well and very thoroughly. Rsync is certainly not simple. It certainly doesn't do one thing. It's "extraordinarily ver…

I believe rsync can do two of your doesn't do list:

> And then it doesn't give you a good progress bar

    rsync --progress
> let you resume interrupted operations

    rsync --partial
...or enable both at the same time with rsync -P

(These features only available on samba.org's original rsync, and not OpenBSD openrsync[1], but I don't think openrsync has seen a widespread use yet, as it's still pretty new)

[1]: https://www.openrsync.org

Re: Rsync, GUIs, power, control, design, and decisions

#33

> Successful UNIX tools (or any tools, for the most part) are the ones with a simple concept manifested very thoroughly, and rsync is certainly that. [...] There are over 100 flags in rsync that you can select to do different things. So, this is what I mean by doing something simple, and doing it very well and very thoroughly. Rsync is certainly not simple. It certainly doesn't do one thing. It's "extraordinarily ver…

What is simple in rsync is the idea of synchronising stuff from A to B. That is all it does in all the cases you mentioned.

It is hard to emulate what rsync does with archive mode enabled, which speeds up transfers, so tar isn't exactly a replacement for rsync.

There are better ways to show progress, for example using the flag `--info=progress2`. It doesn't behave well in automated scripts though

Re: Rsync, GUIs, power, control, design, and decisions

#34
Very interested in this GUI for rsync that you wrote (for obvious reasons) ... one thing that jumps out at me right away is that none of your examples show a remote in the form of user@host:path ... I also did a text search of your page for "ssh" and it is not mentioned ...

Does your GUI have the ability to specify a remote in the form of user@host:path ?

This gets a bit complicated - not only do you need to allow password interaction with ssh but further, upon initial connection, you'll be presented with a host key dialog and need to confirm the key fingerprint, etc.

Re: Rsync, GUIs, power, control, design, and decisions

#35
electron gui for rsync when all one needs to do is read a very good man page for rsync. Sigh.

Yes, yes, it's not "intuitive". But maybe, just maybe, learning and/or teaching is just as important, and remembering "rsync -avuz [from] [to]" is really not that hard.

Re: Rsync, GUIs, power, control, design, and decisions

#36
post #8

I really wish there were more GUI wrappers that literally wrote the CLI commands out on screen as the GUI was modified, to help with bridging the GUI/CLI gap for people. Also, I miss arRsync.

A good example of a GUI that prepares commands is pgadmin3. Many of it's dialogs accumulate pending changes into a viewable and editable SQL buffer:

https://imgur.com/oagJTVA

You don't have to use that feature; the "SQL" tab can be ignored, but it's almost available as the last tab of any dialog..

Re: Rsync, GUIs, power, control, design, and decisions

#37
If anybody is interested, I have written a simple python wrapper for rsync called sysrsync that abstracts the idiosyncrasies of using trailing slash.

It executes or compiles the rsync command if you want to proof it before executing

You can install it with

  pip install sysrsync
https://pypi.org/project/sysrsync/

Re: Rsync, GUIs, power, control, design, and decisions

#38

If anybody is interested, I have written a simple python wrapper for rsync called sysrsync that abstracts the idiosyncrasies of using trailing slash. It executes or compiles the rsync command if you want to proof it before executing You can install it with pip install sysrsync https://pypi.org/project/sysrsync/

Yes, the trailing slash is key

Re: Rsync, GUIs, power, control, design, and decisions

#39
post #17

Earlier quoted context omitted.

I always end up having to google how to do stuff with CLI tools but GUIs let you discover how to do things intuitively. Tried using man pages but they're always slower to find stuff in and a stackoverflow answer is more likely to target the use case I'm going for.

> Tried using man pages but they're always slower to find stuff in Man pages are presented through less, so you can begin a (regex) search with / and hit n to go to the next result or N to go back. If you knew this, I am actually very surprised you don't find information near-instantly.

> so you can begin a (regex) search with / and hit n to go to the next result or N to go back.

His point of that being slower still stands. I also find that just googling generally what I want can more quickly lead me to a stack overflow post with exactly what is needed, while MAN pages can be rather cryptic at times without reading the whole thing.

Re: Rsync, GUIs, power, control, design, and decisions

#40
It seems like to write a tool that's genuinely helpful for non-experts, you need to become something of an expert in how people use the tool: what are they usually trying to accomplish? What are common mistakes?

It's similar knowledge to what you would need to write a book about rsync.

And the way to do that is with lots of experiments and user testing. A good start would be to find one person who really wants this and make sure it works for them. Designing things by yourself, even with lots of sympathy for the user, doesn't seem like enough?

Post reply on HN