Thursday, May 3, 2018

The 2017 Panic Report

Cabel Sasser (tweet):

How’d it do, then? What’s the business side of macOS productivity software like? I’m happy to say Transmit 5 sold quite well, all directly through our store. And the timing was (accidentally) totally great — just as Firewatch revenue was starting to wane as the game ran its course, Transmit 5 fully picked up the slack. It was comforting to see that people are still willing to pay real money for good Mac software. That’s why we’re here and can continue to do what we do.

One interesting note: We added a ton of new cloud services in Transmit, which is great, but it definitely adds an exponential burden to our QA process (many connection types × many functions = many many tests). Interestingly, to this day, still nothing beats the popularity of plain old SFTP, and, oh my stars, FTP.

Wade Cosgrove:

The first and most obvious change we made to Transmit was how it handled transferring large file hierarchies. In prior versions of Transmit, when you started transferring a group of files and folders, it would transfer the top-level items using individual connections to the server, but the folders and their contents would be processed serially using one connection. This worked well if you were transferring many top-level folders, as they would be transferred concurrently, but transferring a single folder would only ever use one connection. With today’s fast internet connections and multi-core devices we felt it was time to fully multi-thread every possible transfer scenario. In Transmit 5, almost all transfers will use the maximum available connections regardless of their contents. (Some cloud services restrict the amount of API calls you can make to the service over a period of time, so those services are limited to two transfer connections.) This allows multiple connections to work on the contents of a single folder, which results in much faster transfers.

[…]

In some cases we found the entire transfer could be completed in the amount of time it was taking Transmit just to compute the overall transfer size! Transmit 5 now computes the overall transfer size dynamically and asynchronously with the transfers themselves, so your transfers start immedately and you still get that sweet double progress bar.

Previously: Panic Discontinues Transmit for iOS, Transmit 5, The 2016 Panic Report.

3 Comments RSS · Twitter

@Wade "The first and most obvious change we made to Transmit … it was time to fully multi-thread every possible transfer scenario. In Transmit 5, almost all transfers will use the maximum available connections regardless of their contents. (Some cloud services restrict the amount of API calls you can make to the service over a period of time, so those services are limited to two transfer connections.) This allows multiple connections to work on the contents of a single folder, which results in much faster transfers."

The only issue is that this doesn't work correctly (with some FTP servers). So you end up having Transmit 4 being able to upload a selection of files perfectly fine and Transmit 5 being unable to upload all the files. So maybe a good idea would have been to have a compatibility option so that the previous behavior was still available and Transmit 5 would not turn to be useless.

@stephane What is the failure mode? Do some servers reject multiple connections?

Yes, some FTP servers reject multiple connections (and close all the connections once they have detected/decided that you are trying to use too many connections (according to them)). For instance, the servers from Free (it's one the top 3 ISPs in France).

Leave a Comment