💾 Archived View for kwiecien.us › gemlog › slow-internet.gmi captured on 2022-01-08 at 13:40:33. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
Authors: Ben <benk@tilde.team>
Dated: 2020-10-18
Three days ago on Thursday morning the Internet in our building went out. It actually wasn't specifically to do with our building, but rather it seemed to be a problem with the ISP, which serves the entire university. Here the weekend is on Thursday and Friday, and because of a holiday it just happened to be a three-day weekend. Of course, the university is not going to do anything because it's not a work day.
So, what did we do? Well, we were able to use the Internet on our mobile phones. I can also connect my computer to that via Wi-Fi, so it was not like I was living without Internet, but going from a wired connection to that is a bit of a downgrade. I just had to tolerate it for a few days... no big deal. I can spend more time doing offline things, and as it happens I have all those classic ROM's I can play on emulators. And then there's Terraria. Put a few good hours into that, and the timing was good because it received its final update practically the same day, and there's special Halloween-themed content because it's October I suppose.
Today the Internet was reconnected because it's not the weekend anymore and someone got around to it. However, they couldn't just fix the Internet and make it like normal again. No. We have to graduate from no Internet to VERY SLOW Internet for a while before things go back to normal, apparently. They didn't even fix it in time for our morning classes, so since the entire universty's system was not functioning, class was canceled.
At present, I'm trying to make the most of the fact that the Internet is barely working. I mentioned recently in my gemcast that I have methods for dealing with very slow or unreliable Internet. At worst I used to have a download rate of 16 Kb/s. Well right now I'm trying to sync down a YouTube video using my failproof rsync method, and it's coming in at somehwere between 1-2 Kb/s. Sometimes less.
If you didn't listen to the gemcast, what the script does is runs rsync for as many times as it takes to complete successfully. Breaks in connection will not deter it from working (eventually). So that's one thing that works.
The next thing that works is Gemini. The slowest part is connecting to download a page. I'm sure Gopher would have worked a lot better, as the TLS connection probably creates a lot of overhead. However, it's reasonable in Gemini to wait for pages to load if you plan on spending a decent amount of time reading them. Therefore, long gemlog posts are welcome.
Diohsc makes the process as painless as possible with its queue management. After reading Spacewalk's index, I don't have to go back to it again to finish my browsing session. I queue a range of links, and they wait patiently for me to get to them. If the overall browsing process takes an unusually long time, it's no effort for me because I don't have to remember where I'm at the overall session, I just have to move on to the next queue item when I'm done reading the current thing. New discoveries during reading are added to the queue in the same general process. I see the current gemlog has three new posts, so that's three links added to the beginning of the queue. Easy.
While not an offline browser, browsing with Diohsc slowly like this feels "semi-offline". I need a connection to download the next item, but otherwise it can wait for me indefinitely. I could start reading a gemlog post, get up and wander off for a couple hours, and then come back to the session without having missed anything. If the Internet disconnects completely I can just wait for it to come back before resuming. I can even close Diohsc and reopen it later and continue the session.
IRC also works, Matrix works, and XMPP too. Chat protocols seem to do fine when they are sending mainly bits of text. irssi dutifully lets me know that my lag is above seven, whatever that means. (Seven seconds?)
I'm typing this in nano over mosh, the magical UDP-based remote shell that can handle infinite lag as gracefully as such software can. mosh tries hard to minimize lag while typing, but it's not a perfect form of acceleration because the protocol can't assume too much about where the cursor is going, but it figures out fairly quickly when you are typing a line of text. With lag in general it's good to memorize all the useful editing shortcuts to speed up navigation. Also it helps to be able to touch-type.
So there you have it, even with a few kilobytes of bandwidth I'm managing a relatively rich and reliable Internet experience. Luckily TCP connections are not breaking, which would have been a whole other headache. In this case it's more a matter of speed than reliability. If the connection broke, mosh would just wait to reconnect, and I could keep reading my current item in Diohsc. irssi and XMPP would probably not take that too well, but I would hope XMPP hadn't dropped any message. Matrix seems rather tolerant of connection loss and lag in general.
If mosh didn't exist (or wasn't available) I'd probably resort to using something like autossh in combination with screen. Of course, I don't actually need to type this post on a remote shell; I could just author the file locally and upload it later, I just happen to have my process set up this way for the sake of simplicity. Typing over mosh is really alright, even with extreme lag. Also sometimes you need a remote shell for other things.
I imagine most people would just stop using the Internet if they had it this slow. I don't know what that says about me. (Am I very clever? Am I an extreme addict who was compelled to figure out how to make this work somehow?) I guess if I were much smarter I'd have a better way to work offline than cling desperately to even the slightest connection. Just about the only thing I can think of to do with a computer while it's offline is to play some single-player games. I should probably branch out and diversify.
Repies: