Yes it's super slow, but many of the criticisms are missing the point. This enables browsing over SSH when you have low bandwidth. The heavy internetting is done on the remote machine (like a cloud VM for example) using blazing fast data center internet. A personal example may explain why I love this.
For several years I lived in rural Alaska where the fastest internet one could buy was $120 a month (I think) and a blazing 512 Kbps. I was a developer (working remotely) who's shop had adopted Docker, and it literally took more than 24 hours sometimes to download a docker image. By necessity I switched to having my whole development environment on a cloud VM. The Cloud VM had gigabit connection so docker downloads were blazing fast. All I needed to send across the wire was a tiny bit of text. Mosh was an absolute life saver by the way. I once flew from Anchorage to Salt Lake and had the same mosh session pick up like nothing had happened thanks to roaming abilities.
Browsing heavy (i.e. modern) websites was often very difficult too. With high latency and a lot of heavy Javascript sites requiring 10 MB or more, it was a nightmare. I occasionally went up to Eagle Alaska, where internet was even worse. The nearest cell tower was a 4 hour drive away, and the only internet was at the "library" or a crappy satellite link (that far north satellites get less useful). A tool like Browsh is a life line to people in situations like that.
In related news, when people talk about the merits of developing with just Vim vs. an IDE, I also recount the same story.
> This enables browsing over SSH when you have low bandwidth.
Their demo is down now, but I have tried it in 2018 and unfortunately it was pretty bandwidth-heavy (about 100 kB/s while displaying a static webpage): it was permanently refreshing the entire terminal contents. Maybe they have fixed it since then, or it will be better with Mosh (as they suggest on their homepage).
I think that rendering server-side and transferring text as simple text blocks and images as heavily compressed HEIF/WebP in a special graphics client (or even a standard web browser) would be better. I was using something called Ziproxy over GPRS back in 2009 -- it was compressing HTML/CSS on the fly and recompressing images to JPEG with terrible quality.
> I think that rendering server-side and transferring text as simple text blocks and images as heavily compressed HEIF/WebP in a special graphics client...
That is almost achieved when you run a real web browser inside VNC, and connect to it using a VNC client that does the appropriate compression. (Tunnelled through ssh, obviously.)
> In related news, when people talk about the merits of developing with just Vim vs. an IDE, I also recount the same story.
I've been in similar situations and while I've honestly tried to give Vim a go, there just seemed like to much setup and configuration so I went back to an IDE. In my case sshfs (https://en.wikipedia.org/wiki/SSHFS) was the lifesaver. Code locally, execute remotely. 99% of the time, I'd finish making a code change in the IDE and by the time I'd switched to the terminal on the remote server, it had already sync'ed.
> I've honestly tried to give Vim a go, there just seemed like to much setup and configuration so I went back to an IDE.
I'd like to point out something to avoid scaring away potential Vim newcomers here.
While it's true that Vim can get as complex as you want via plugins and configuration, I think that one of beauties of developing with Vim is not doing this, spending a lot of effort configuring it to behave like a complex IDE, but rather changing a bit your working paradigm to rely only on just the basics and, at most, a few tweaks on a custom .vimrc which you can quickly scp over (or wget) to the host where you are working on.
Here I will totally agree that at the beginning it may require some time to get used to it. But once you get there, the level of freedom that it gives you is totally worth it. And not only because then any shell feels like home, but also because not having all the IDE helpers available also ends up forcing you to have some additional awareness about what you are doing on the code. You need to remember what the function signatures are, where the different pieces of code are, take care of the coding style while typing, etc. And, while it's truly a much more spartan experience, at the end your efficiency stops depending on your working environment to become just a part of you.
I've been using Vim for 6ish years now and one of the biggest issues I have is all the plugins randomly breaking. Especially true for IDE like features, such as auto-indent, auto-brackets stuff etc.
Another issue I run into, also due to a overly complex config, is that my hotkeys don't work across OSes. I mostly work on a mac and use for instance crtl+shift and the arrow to move between tabs in vim. Those keys do different stuff on my linux machine and I can't use them.
This could be implemented at the site level (unfortunately with bloated frameworks, few care). One possible implementation could have the browser measure how long it takes to load assets and switch to requesting lightweight ones if loading takes too long.
Oftentimes, the real killer is not so much bandwidth but latency. If a page requires many requests to complete sequentially (ie. because one asset needs to be loaded in order to know how to request the next one), that all adds up real quick and produces a poor user experience.
'...roaming abilities': can you explain?
As a Europeon, 'roaming' is travelling to a different country and using a foreign network, but paying our home provider. Do the US states consider is Colorado different to California? I always understood 'not different', and I may have misunderstood a tech element.
Regular SSH won't work if your IP address changes since it uses TCP where sessions are tied to (IP address, port) tuples. However mosh uses UDP and its own session management scheme, so you can "roam" between IP addresses and your session will stay alive, you can continue typing and will receive screen updates as if nothing has happened.
"roaming" as a technical term just refers to any case where you move between networks and something maintains a connection. mobile phone network roaming is just one case of that, but e.g. moving to a different WLAN access point is the same. In the case of mosh, you can change your IP but it will still continue the existing session with the server (unlike SSH, which will fail the connection)
Normal SSH connections drop when you switch WiFi networks.
With mosh helps you keep your connection alive when roaming, e.g you start a connection on a cafè Wi-Fi while having breakfast, connect to your VM while tethering your phone, go home and switch to your home wifi
While I did enjoy the fun, my primary reason for moving up there was to escape the heat. I have a medical condition that flares up in the heat. There are good temperate places in the USA pacific northwest, but cost of living there was so high that there's no way I could have done it on Salt Lake City based wages. Even just the higher CoL in Alaska was pretty painful.
> - also w3m.
Hadn't seen this, will check it out :-)
> - why don't you git clone everything to your laptop when you have a chance? then keeping it up to date won't be expensive.
I definitely did, but we had a ton of services with new ones springing up all the time, so even though I would grab what I could when I could, there was still frequent needs for more. Also git wasn't the worst part, the worst part was downloading docker images (base images and prod images). Since they change regularly, sometimes daily, there was no real way around it.
> There are good temperate places in the USA pacific northwest, but cost of living there was so high that there's no way I could have done it on Salt Lake City based wages. Even just the higher CoL in Alaska was pretty painful.
have you looked into oregon outside of portland? say about 30 to 40 min out? it's not trump country, and it's still cool and not that expensive. i would say cheaper than alaska. same for seattle/WA.
also you can consider zfs or btrfs as filesystem since they can offer block level sync. not always possible, but this can change things for you big time.
Have you tried using links? Most sites are broken on links and the other classic text browsers. This renders modern Firefox (before textifying), so you don't have that problem.
For several years I lived in rural Alaska where the fastest internet one could buy was $120 a month (I think) and a blazing 512 Kbps. I was a developer (working remotely) who's shop had adopted Docker, and it literally took more than 24 hours sometimes to download a docker image. By necessity I switched to having my whole development environment on a cloud VM. The Cloud VM had gigabit connection so docker downloads were blazing fast. All I needed to send across the wire was a tiny bit of text. Mosh was an absolute life saver by the way. I once flew from Anchorage to Salt Lake and had the same mosh session pick up like nothing had happened thanks to roaming abilities.
Browsing heavy (i.e. modern) websites was often very difficult too. With high latency and a lot of heavy Javascript sites requiring 10 MB or more, it was a nightmare. I occasionally went up to Eagle Alaska, where internet was even worse. The nearest cell tower was a 4 hour drive away, and the only internet was at the "library" or a crappy satellite link (that far north satellites get less useful). A tool like Browsh is a life line to people in situations like that.
In related news, when people talk about the merits of developing with just Vim vs. an IDE, I also recount the same story.