I recently had the opportunity to work from an off-grid farm somewhere in southern Portugal.

Aeropress, if you read this I love you

Waking up and going to sleep in nature is a wonderful experience which I can even recommend to the most city rats there are. However, it has the obvious drawback that you can’t have the exact same life, and when your occupation heavily involves internet usage, you can expect some friction. And by friction, I mean stable internet connection 😮.

The owner has done its best to locate the antenna on a poll on the hill, but nature is unpredictable as it can be and there are ups and down and in the latency and bandwidth throughout the day.

Though I do fantasize on a Starlink kit, I find it hard to justify the costs.

So I thought in this post to share some tools I used to overcome these limitations:

Media downloaders Link to heading

Soundcloud-dl Link to heading

Yes, I’ll start with the “entertainment” though it might be an underestimation since I know many of us find it easier to concentrate and mitigate external disturbances by listening to music (or white noise for all you weirdos 😉).

So the first tool I propose is a simple tool to download soundcloud streams called soundcloud-dl and avoid the frequent stutter when the connection is unstable. This tool allows you to pass multiple links to tracks or sets and reliably download them for hours of listening joy.

yt-dlp Link to heading

Whether you download videos for entertainment or education, YouTube is extremely sensitive to network interference. And the advertisements in the middle get a different type of annoyance since they stop the stream download which causes further delay. The legendary yt-dlp comes to save the day. This tool also gets multiple links and also supports controlling the downloaded audio and video quality. After few tries the only syntax I’m using is to choose a smaller size:

yt-dlp -S +size 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' 'https://www.youtube.com/watch?v=1_Z5q152GSQ'

Web Link to heading

Lynx Link to heading

For anyone that isn’t familiar with Lynx it’s a CLI browser with a tiny number of dependencies. The web experience lets say it requires getting used to, and IMHO the speed gained over a modern browser is debatable. So why I’m bothering mentioning it here? Because in some cases like searching for something. It’s very convenient to browse results from the CLI since it’s fast rendering only text and the memory footprint is neglectable.

RSS Link to heading

I rediscovered RSS a while ago when I started participating more in forum discussions and found how useful it is to scour interesting posts instead of browsing each forum separately. I still didn’t find a good solution to synchronize the feeds I’m following across my phone where I’m using the awesome feeder and on my desktop I’m using the

AI Link to heading

For AI, I can either rely on the internet connection or be patient and wait for the generated text to appear using local model:

ChatGPT Link to heading

OpenAI WEB UI and API seems to handle unstable internet connection just fine, so I’m just using it normally either from the Web UI or with Continue plugin

Ollama Link to heading

I also run local LLM (though my humble laptop can barely run 7b GGUF models) with ollama and use oterm to communicate.

Bonus Link to heading

Gemini Link to heading

If you manage to hold until here, and you find you have time to spare since the internet is sloowww then you can discover with me the new web protocol with vintage scent Gemini.


Thanks for reading so far. If you like or dislike something feel free to comment and add your suggestion.