A little post about how I’ve used IPv6 and a dual-stack VPS to address common networking issues when hosting services at home.
Many of the non-critical services I run–messaging, RSS, home automation–run on an Intel NUC I’ve hidden away at home. This has advantages over a VPS in that if I need additional resources, I can just add some memory or storage rather than having to move to a new service tier and paying that much more every month. Plus, given how much I’m working and using these services at home, having them hosted locally means higher perceived performance due to lower latency.
Unfortunately, connectivity for services hosted on a residential broadband connection is always a pain in the butt. While over the years my residential broadband connection has been incredibly stable, I still face the challenge of changing IP addresses. And yes, I can set up dynamic DNS, but I’ve always found it relatively fragile (not to mention an enormous hack). Additionally, you have to contend with ISPs potentially blocking ports and so forth. And finally there’s all the issues with NAT, reverse port mappings, internal and external DNS record management, and on and on. Basically it’s painful and brittle.
On what might seem like an unrelated note, IPv6 is still gradually getting deployed. Certainly mobile networks use v6 extensively, but outside that space adoption is still pretty nascent. As a result, it’s always been a bit questionable if deploying v6 at home is worth the trouble (minus the novelty and bragging rights).
But it turns out that, with a VPS and an IPv6 tunnel, you can dramatically simplify the process of hosting services on a residential broadband connection. As a result, this has proven to be the “killer app” that has driven me to truly adopt v6 at home.Continue reading...
Documenting my absurd journey to bridging an IRC client to a bunch of messaging services. Totally nuts and totally worth it.
IRC, or Internet Relay Chat, is unquestionably the progenitor of modern online chat systems. IRC preceded instant messaging platforms like ICQ or AOL Instant Messenger, and in doing so connected people in real-time in a way that would lay the groundwork, not for just those instant messaging platforms that would follow, but for modern social media platforms as we know them today. And today, while certainly diminished, IRC still plays an important role in connected communities of people, particularly in the IT space.
But IRC isn’t without its flaws, and those flaws created openings for many competitors:
- Chatting is ephemeral. If you’re not connected there’s no way to receive messages that were sent while you were away.
- Text-based. No images or giphy animations here, and file sharing is direct, client-to-client only.
- The mobile story in general, and notifications in particular, are weak.
Now, the IRC community has worked hard to address the first problem with bouncers and changes to the IRC protocol (I’ll dig into this later).
Issue two… well, bluntly, I actually view that as a benefit rather than a drawback, but obviously that’s a matter of personal taste.
As for issue three, it’s still true that the mobile story isn’t great, though there is slow steady progress (Android now boasts a few pretty decent mobile IRC clients).
But IRC also has some enormous benefits:
- It’s open and federated. Running a server yourself is trivial.
- Clients are heavily customizable for power users.
- It’s fast and lightweight.
And these various other products (like Slack, Signal, etc) have some mirror image drawbacks:
- Closed walled gardens.
- Zero ability to customize.
- Heavy, memory- and CPU-intensive clients.
And then there is the fragmentation. My god the fragmentation. Every app is its own beast, with its own UX quirks, performance issues, bugs, and so on. Even the way they issue notifications varies from product to product. And some (I’m looking at you, Whatsapp) don’t offer a desktop client product at all.
I spend every day working with these messaging products, and I wanted to find out: Is there some way I could use an IRC client of my choice to interact with these various walled gardens (recognizing that, yes, that would come with some loss of functionality)?
Well, with a lot of hacking and elbow grease, I can definitely say the answer is yes! Though… this is, as is the case with many of my projects these days, probably not for the faint of heart…Continue reading...
Did you know Calibre can turn an RSS feed into an eBook? I didnt! It turns out Calibre, tt-rss, and Wallabag make it possible to roll your own news that you can read right on your eReader!
I’ve mentioned this before, but I’ll mention it again: I’m a big fan of RSS. For the uninitiated, RSS is a way to subscribe to a feed of content from a website and consume it in a reader or other tool of your choice. And despite claims that it’s dying out, I still manage to have more content in my feed reader than I possibly have time to consume.
For a long time I used Feedly as my RSS reader of choice. But back in October I decided to switch to tt-rss, a self-hosted RSS feed reading service that works on both browsers and through a mobile app. Then, in a fit of boredom, I used some self-hosted home automation tools to incorporate email newsletters into my feed. Meanwhile, I also decided to stand up an instance of Wallabag, a self-hosted website bookmarking service.
But I ran across a problem: with all this content at my fingertips, I started to fall behind, particularly on all those long-form articles and newsletters I want to read.
And then I discovered Calibre’s news scraping features and a solution presented itself!Continue reading...
I’ll be the first to admit that I’m a frequent user of tools like Google Keep, Google Docs, etc. But I’ve never been terribly comfortable with my dependency on those services. Yeah, obviously there’s the privacy concerns, but more fundamentally, I just want control over my data! It’s a heck of a lot harder to run “grep” over a set of notes in Google Keep…
Thematically, if you’ve been paying attention to this blog, you’ll notice this is part of a theme. Ultimately, I’m doing what I can to make sure I can manage and control my own information outside the walls of the common internet monopolies.
Now, quite a while ago I adopted vimwiki as my note taking method of choice. Before you get scared off, Vim is just a tool to enable a more fundamental idea: that personal information management should be built on the simplest possible tools and file formats, with the data under my own control.
In my case, I chose to focus on taking notes using plain text files, with a basic markup language that would allow me to write richer text and link those notes together.
When I first started doing this a few years ago I chose to stick with Vimwiki’s native markup, as it supported a few things out-of-the-box that Markdown, at the time, didn’t neatly support without using poorly supported extensions (I’m looking at you, checkboxes!) However, right around that same time, Github released a spec for their extensions to Markdown that plugged a lot of the holes that had concerned me, and since then support for these extensions has expanded considerably.
This caused me to revisit the issue and I concluded that a migration to Markdown made a lot of sense.Continue reading...
1 of 3