Prompted by a friend who finds a dialup internet connection about as appetising as being food for mosquitoes, I thought I'd share some tips for using the current internet on dialup.
It's easy to say that dialup is dead, but I've transitioned from dialup to broadband and back something like 4 times so far, and since I don't want to rule out spending time in the middle of nowhere in Costa Rica, or at McMurdo, or in an RV, or in a Bigelo orbital hotel, amoung other dream destinations, I don't let availability of bandwidth deter me.
Here's some habits you can learn to lessen the pain:
work local
This is the most important thing. ssh is great, but latency sucks. If you need to edit a file on a remote system, edit it locally, and copy it across. Since I keep most of my files in subversion, I edit it locally, commit it, and update on the remote machine. If ssh isn't appropriate, use rsync or something.
Editing files is just one example; I try to avoid doing anything on a remote machine if I can do it locally. For example, even though an irc client in screen on a remote machine is a nice setup, it's to be avoided on dialup. Another example is using offlineimap to download your mail, so you can read it locally.
Yet another example: I have all my projects scripted so I can make a complete release with just single locally ran command, that goes off and automatically triggers everything that needs to happen on the server. Same for blogging, and for making changes to my wikis.
cache everything
This is an obvious one, but worth mentioning.
The most important cache is probably actually a caching dns server. Dns lookups are an easily missed slowdown (true even for many cable/dsl connections). Other useful caches include a squid web cache, and a shared apt cache.
Also get in the habit of squirelling files away, instead of deleting them, to avoid re-downloads.
know your traffic
Look at everything that causes internet traffic, and turn off the fluff. Even the small fluff will make a difference on dialup. This includes turning off VPNs, not keeping chat programs running in the background. If you're not currently using irc, close it. Use a remote irc proxy server to cache messages while you're away, to avoid missing anything. Avoid sitting on web pages that refresh or stream content. Keep iftop running all the time, and know what all the sources of traffic on it are. You can easily waste 25% of a dialup pipe with fluff if you don't keep it under control.
downloads are batch jobs
Learn to treat downloads (and uploads) as batch jobs that go on in the background or overnight. Don't let your work be blocked waiting on a download if at all possible; don't sit staring at the screen every time a five minute download pops up; go do something else instead. When possible, try to anticipate what you'll need and download it the night before.
Set up a remote download queue, of things you want to download at some point, sorted by priority, and rsync from it as a batch job overnight or when you don't need bandwidth for anything else. If you upload a lot of stuff, set up an upload queue too.
don't try to do everything on dialup
Some things are just not appropriate for dialup. There's no point in trying to download CD images, or much music, or apt-get dist-upgrade, or watch the latest videos on YouTube, or whatever. Even things like Google Maps are just not designed for dialup; the one square you want to see is always the one that will fail to download while the other 8 squares slooowly download in parallell. And AJAX sucks. So avoid this stuff on dialup, don't frustrate yourself. Schedule pit stops where there's high bandwidth to do this kind of thing.
Find alternatives you can use while on dialup -- use old fashioned mapping services, and instead of pursuing the latest and greatest videos, download an e-book -- a whole book downloaded in just 5 minutes -- who said this dialup was slow?
I made that blog post in 2007. What do you think?
... Yeah, of course I'm back on dialup!
See also:
If you feel stuck in a rut or unable to concentrate, go spend a week or a month in a cabin with dialup and git and a haskell compiler. It's worked great for me.
I don't know about line quality. Mine seems somewhat scratchy, and I probably don't get the fastest 56k V.whatever connection that I enjoyed in dialup's heydey, but back then I was dialing up from a non-rural location. So, apples and oranges.
And then, the quality of dialup ISP's is surely much lower now too. Mine can't debug a simple routing problem that's clearly present in their internal network. I only recently learned just how much ISP's have consolidated. While my area still seems to have 2 or 3 functional ISPs, they all turn out to be Virtual ISP's that are leasing everything from the same VISP provider. So, the ISP you call to get tech support probably does not have anything to do with the actual modem and network operator.
Protocols like ssh still work just fine, and there are nice options now like mosh as well. git makes it easy to work locally. On the other hand, the web fares increasingly poorly on dialup. Pages full of dozens of web bugs and ads, web fonts that break progressive page load, massive balls of compiled javascript, etc. Best to turn off and block as much of that as you can; luckily everyone is getting increasingly fed up with that crap and perhaps it will eventually be ad blocked into oblivion?
Even then, the web is increasingly not tuned for dialup. You web browser may try to open a large number of concurrent connections when loading a page, and so swamp them all to the point nothing loads. Web servers often time out a client that is receiving data at a dialup level crawl. It may be that a remote proxy that strips the crap and avoids the timeout issue becomes increasingly necessary (much as they were, at least for a while, for mobile phone web browsing).