Page 1 of 3

build 2110 - mounting of network shares

Posted: Tue Mar 28, 2017 5:50 am
by mike
Hi, folks,

I've added some functionality to close another hole in NC, which often caused switching to Finder.
It's the mounting of local network shares, now they can be handled similar to FTP/SFTP connections.

This approach somewhat differs from UI scheme provided by Finder. Finder guides you through 3 (at max) different windows to mount a network share - choosing a server to connect, choosing a provided credentials and finally choosing a share to mount. What is the worst is that if you stick with the system-provided UI - there's no way to interact with it, i.e. get back the provided information to repeat it later without a user interaction.
So I deliberately chose to stick with more defined approach - there's one point to gather all needed information in advance and there's no bothering with UI later on. It's also much easier to configure when you have multiple connections to one server with different logins.

The following protocols are supported at the moment: SMB/CIFS (default), AFP, NFS.

Other differences with Finder's approach:
- NC will try to check if requested share is already mounted, and if so - it will just redirect there straightaway, without making weird remains like /Volumes/share-1, /Volumes/share-2 etc.
- It is possible to manually choose a mount path for a specific share (they would be mounted in /Volumes/.. automatically by default). Upon mounting, NC will check if this directory is empty, in this case the remote share will be mounted directly inside it, otherwise it will be mounted in a sub-directory.
(Actually, it was quite surprising to me that macOS lets you to mount something into a non-empty directory. always thought that it's a common way for UNIX systems to prohibit such actions)

After initial setup, network shares can be mounted or accessed like any other network connections: in F1/F2, by Cmd+5 and in Go->Connect To.

What is missing at the moment:
- Neighborhood browsing is missing, because I haven't figured out yet how to integrate it right way.
- Choosing a share point on a particular server is missing, since there's no public API in macOS to do it. (or at least I haven't found it)
- Automatic choosing of an appropriate protocol to communicate with a network server is missing, because... this is just silly.

Here's the build itself (an updated one):
http://magnumbytes.com/downloads/previe ... (2118).zip

Any thoughts, please?

Re: build 2110 - mounting of network shares

Posted: Tue Mar 28, 2017 6:48 am
by warpkanal
Very cool, closes a hole when being at work for me as well :)
One thing I did not fully understand (maybe because I did not use Connections up to now in NC, I have no ftp servers): the difference between Favorites handling and connection handling, I guess it's just 2 different aspects?
I see that connections are visible in Cmd+5, so even when the resp. share is not mounted yet, it will be mounted, so far so good. However I miss e.g. the possibility to rename a connection or e.g. delete one.
Actually I initially thought about adding my main network share as a favorite, but then understood that it's not necessary as the network share is then in Cmd+5 available (which is actually equally fine, doesn't need to be in the favorites list)
One smaller thing: The Go->Connect To->Network share entry is missing in the keyboard shortcuts preference section.

Re: build 2110 - mounting of network shares

Posted: Tue Mar 28, 2017 7:30 am
by mike
warpkanal wrote:
Tue Mar 28, 2017 6:48 am
One thing I did not fully understand (maybe because I did not use Connections up to now in NC, I have no ftp servers): the difference between Favorites handling and connection handling, I guess it's just 2 different aspects?
Yep, tasks are quite different there.
For example, Favorites have a stable order, while Connections are sorted by most-recently-used order.
Plus, any favorited place on a remote server implicitly refers a relating network connection.
Also, there's a whole bunch of underlying stuff related to logins-passwords management, which is relevant only to connections.
warpkanal wrote:
Tue Mar 28, 2017 6:48 am
I see that connections are visible in Cmd+5, so even when the resp. share is not mounted yet, it will be mounted, so far so good. However I miss e.g. the possibility to rename a connection or e.g. delete one.
It's obviously not the most intuitive part of NC's interface :) . There're two ways to edit an existing connection:
- go to dialog of that type and select it from the recent connections combo box (with a clock icon). Next, fields are filled with information from that connection and changes will be written back to that connection.
- press Shift/Alt modifiers while Go->Connect To menu is shown. Shift lets you to alter a specific connection, while alt deletes it.
warpkanal wrote:
Tue Mar 28, 2017 6:48 am
One smaller thing: The Go->Connect To->Network share entry is missing in the keyboard shortcuts preference section.
Oh, right, thanks! Forgot to wire this one.

Re: build 2110 - mounting of network shares

Posted: Tue Mar 28, 2017 9:32 am
by warpkanal
- go to dialog of that type and select it from the recent connections combo box (with a clock icon). Next, fields are filled with information from that connection and changes will be written back to that connection.
Ok, that's easy, I can probably remember it until I want to reconfigure :)
- press Shift/Alt modifiers while Go->Connect To menu is shown. Shift lets you to alter a specific connection, while alt deletes it.
That's crazy stuff 8-) I knew about ALT key modifying menu entries here and there in different applications, but I haven't seen the usage of CMD to alter menu entries, crazy :D

Re: build 2110 - mounting of network shares

Posted: Tue Mar 28, 2017 12:49 pm
by JayB
Great! Some info:

(1) AFP is deprecated & will (to my knowledge) be dropped when APFS rolls out (APFS only works with smb)

(2) NFS has serious, unresolved, potentially system-threatening issues on macOS like data corruption in the user's home folder; see these notes by Marcel Bresink: http://www.bresink.com/osx/143439/issues.html … (Whether this will be solved on Macs with APFS remains to be seen; some of these notes might not apply, because they are Finder issues.)

Re: build 2110 - mounting of network shares

Posted: Tue Mar 28, 2017 1:14 pm
by mike
JayB wrote:
Tue Mar 28, 2017 12:49 pm
(1) AFP is deprecated & will (to my knowledge) be dropped when APFS rolls out (APFS only works with smb)
(2) NFS has serious, unresolved, potentially system-threatening issues on macOS like data corruption in the user's home folder; (Whether this will be solved on Macs with APFS remains to be seen; some of these notes might not apply, because they are Finder issues.)
Hi JayB, thanks for notes.
I personally can't foresee such rapid deprecation of AFP, protocols may stay for a very long time, I believe that even FIDO is alive somewhere :D
Anyway, from my POV, network filing protocols and filesystems themselves are barely connected. For instance, my NAS from QNAP uses EXT4 as a main filesystem and nothing can stop it from sharing files via any of mentioned before, regardless of which filesystem I use on my Mac at the moment.
As of NFS - well, these issue aren't related to the protocol itself, but rather to a client implementation in macOS (of course the filesystem used on macOS isn't connected to them in any way).

Re: build 2110 - mounting of network shares

Posted: Tue Mar 28, 2017 10:17 pm
by don
mike wrote:
Tue Mar 28, 2017 5:50 am

I've added some functionality to close another hole in NC, which often caused switching to Finder.
It's the mounting of local network shares, now they can be handled similar to FTP/SFTP connections.
Have a few items to raise

1. This is bloody awesome - thank you.
2. Need to be able to configure keyboard shortcut - similar to FTP and SFTP. In Finder I can bring the pop up with CMD-K. With Nimble - shich is keyboard oriented - a shortcut is a must.
4. Would like to be able to configure the presentation in the list - I have given a descriptive name to the share and do not need the full path.
In the example below I would like to retain "Slim Video" component only (see how the same share is presented when mounted through finder? just video).
Pasted_Image_29_3_17__9_14_am.png
Pasted_Image_29_3_17__9_14_am.png (30.19 KiB) Viewed 40088 times
3. This is great!

Cheers.

Re: build 2110 - mounting of network shares

Posted: Wed Mar 29, 2017 7:30 am
by warpkanal
Probably not related to the new feature (don't know) but NC crashed today. See this crash report.

Re: build 2110 - mounting of network shares

Posted: Thu Mar 30, 2017 5:00 am
by mike
don wrote:
Tue Mar 28, 2017 10:17 pm
2. Need to be able to configure keyboard shortcut - similar to FTP and SFTP. In Finder I can bring the pop up with CMD-K. With Nimble - shich is keyboard oriented - a shortcut is a must.
4. Would like to be able to configure the presentation in the list - I have given a descriptive name to the share and do not need the full path.
In the example below I would like to retain "Slim Video" component only (see how the same share is presented when mounted through finder? just video).
Hotkey wiring is already done, will be in a next preview build.
Regarding connection formatting - well, it's possible to add such setting, but it will change the presentation of FTP/SFTP connections' titles as well, for sake of uniformity.
However, currently there's no requirement for titles to be unique - you can have multiple different connections titled with a single space: " ". In this case it would be impossible to distinguish between them.

Re: build 2110 - mounting of network shares

Posted: Thu Mar 30, 2017 7:25 am
by swoop
@mike This is bloody massive! Very, very neat implementation. Thank you!

One thing, though. When I created a mount for AFP and mistakenly used SMB qualifier (DISKSTATION i.s.o diskstation.local) for my Synology NAS, NC crashed horribly. I know this is an extreme corner case, but thought you want to know.