Skip to content

published 2024-02-19, updated 2024-02-20

Welcome to my Happy Place!

I always work on a few texts and projects in parallel. That's inevitable because fascination, inspiration and obligations lurk everywhere. It's also practical; if I'm not in the mood for one thing, I can usually find motivation for another.

For the last few days, however, I'm a bit stuck.. not because I can't find motivation, but because I have a hard time deciding what to do first. Maybe the list of extra-professional ideas, todos and works in progress grew a bit too fast.

As I'm torn between my MS-DOS tutorial, a handful of other texts, that secret Skyland Mountain project, my Gemini capsule, my idea for an FVWM-desktop "in the cloud" and other nerdy shenanigans, I've decided to write a bit about all (or at least a few) of them and share some insights into my environments, habits and spleens.

A Laptop From 2005

So.. why on earth am I writing this on a laptop from 2005?

Because this one sparks joy!

Dell Latitude X1 from 2005

(Dell Latitude X1 from 2005, running Debian and XFCE with Chicago95)

I really like its form-factor (12.1-inch), keyboard, display, the fact that it slows me down & helps my focus. You don't just procrastinate surfing the web with a modern, graphical browser on a twenty years old Centrino with 1 GB RAM and a spinning hard disk drive. (Memo to myself: Try using a CF-card as the system disk for enhanced durability.)

On the other hand, it is, without any trouble, strong enough for what I'm using it for: Connecting to another Linux system on-line via SSH, on which I then open Emacs to actually write stuff.

By the way.. the X1 from above sure isn't something for everyday; but productively utilising computers that are maybe 10 years old, by operating them with lightweight software, is something I'm very fond of. A system with an i3/ 8 GB RAM and an SSD is just way enough for 95% of my use cases.. and that's something that eases my mind:

If that's not a win-win I don't know what is.. but I'll write a bit more about that in a seperate text..

A Castle in the Clouds

So.. why am I writing this on a remote computer?

For a whole bunch of reasons!

It's not only writing.. I'm using at least one remote Linux-system daily to do almost anything: Keeping notes, accessing my private knowledge base, writing source code, reading and writing e-mail, chatting, consuming RSS feeds, transferring files, testing external connectivity, connecting reverse SSH sessions and what not.

Doing these things on an on-line, publicly addressed system has a lot of advantages. First and foremost: I'm pretty independent of whatever system I have at hand physically.

My little castle in the clouds is reachable publicly via SSH on port 443/TCP. That means I can access this system from almost any network like libraries and hotels.. All I need is a terminal emulator which is either installed anyways (on unixoid systems) or available as portable software (e.g. PuTTY for Windows). Even where I cannot download and run portable software, I can fall-back to a "client-less" solution powered by an Apache Guacamole installation of mine (also reachable via 443/TCP), using a standard web browser. That's something that even works on limited kiosk setups.

Combined with GNU Screen (a terminal multiplexer), this allows me to have my usual working environment - my happy place - available anywhere inside one window, ready to carry on where I left off.

Screenshot of a terminal-based working environment

(The links web-browser and newsboat RSS-reader inside a GNU screen session.)

Of course, using someone elses computer(s) (be it an arbitrary client or a shared system/ infrastructure) requires to keep some precautions in mind. But no one's an isle; There are risks that are introduced from using a local machine for everything (indluding e.g. accessing your email) that are mitigated by outsourcing things to another one.. and there are risks introduced by using "cloud computers". The key is to act appropriately.

My main motivations for using a publicly reachable system for daily tasks summarised:

  1. Independence of physically accessable systems, which means..
  2. Not having to plan wether I need my gear while roaming around.
  3. 24/7/365 (theoretical) availability of my usual working environment from anywhere, easing my mind invaluably.
  4. Publicly, statically addressed, unfiltered access to the Internet via IPv4+6, introducing countless of possibilities..

By the way.. I'm currently taking this one step further by assembling a lightweight, graphical companion environment available on-line. I just don't want to do without a classical, productive 90s desktop on the go anymore!

Screenshot of an fvwm desktop

(Customising fvwm is my form of Zen gardening.)

Just a Bunch of Files

My other top-tool is my private knowledge base. I can't stress enough how much benefit I gained from working with it. Having developed the habit of consequently documenting what I'm learning and doing saves me a lot of time and frustration. Or the other way around: Invaluably supports me to reach goals in time.

I'm noticing this the most since I have kids. Over are the times when I could spend ten or fifteen hours straight with whatever I was into. I had to learn to make good use of two hours or even thirty minutes. Retracing my own thoughts/ reverse engineering my own work or even searching for information I already found days or weeks ago became a no-go. My knowledge base enables me to quickly catch up even with things I'm not doing regularly; I just don't have to google for something twice anymore.

To find a satisfying solution for this took my years to be honest.. and the result is astonishingly simple:

I've tried countless approaches. Private blogs, almost any wiki software (web-based and local), Zettelkasten, external brains.. While trying, I filled a folder containing simple text-files named after the topic I took notes on. This proved to be very useful and I'm sticking with it up today.

Screenshot of knowledge-base aritcles file listing

(Knowledge-base articles are simple markdown files.)

The only thing that approach lacked was a nice, web-based interface. That may sound contrary to the whole living-in-an-SSH-session-thing.. but it isn't. I'm using rich, graphical environments all the time - I just don't like being dependent on them. So what I was looking for was a solution that would work well in ordinary graphical-/ web- as well as minimal text-based environments.

I've settled with a GitHub-based, private repo wiki a few years ago and I'm very happy with that. It pretty much resembles the structure of my old notes directory, provides me with a nice, web-based interface and gives me the ability to have everything at hand on pure text-based systems alike. I can also easily git clone the whole thing and have it available on an USB-stick or whatever, accessing my notes off-line.

Sure this could be achived on countless other ways and especially without involving GitHub (e.g. by self-hosting Gollum), but I deliberately choose to do it like this for a bunch of reasons. The primary one is to not have to care about self-hosting a web-based application. I just really don't like these kinds of tech stacks.

Customer Premise Equipment (ToGo)

So I don't always carry my equipment with me.. But when I do, I'll bring these two routers minimum! About another spleen of mine and an overengineered solution to a problem I rarely have..

Two MikroTik routerboards

(Two small Ethernet routers running RouterOS from MikroTik.)

As I make my living as a network plumber, having an extra router at hand really saved the day (and night!) more then once. When I'm at a customer site or in datacenters, I'll even take a third one with me next to these two little fellas above. Usually it's a hEX PoE model from the same vendor (MikroTik) because it has an SFP slot. This enables me to connect it to "enterprise-grade" switches using fiber optics. I could talk for hours about how these came in handy in various situations, but let's skip this for now.

MikroTik's RouterOS (ROS) sure has its pros and cons. But there's one thing you can hardly argue about: It is unbelievable capable for its price-range. All router models from this vendor (starting at about EUR 50) come with a perpetual RouterOS license and - independently from the hardware platform - you can do almost anything with these beasts. Besides full support for RIP, OSPF, BGP, VPLS & MPLS, ROS also speaks IP over IP, GRE, PPP, PPTP, SSTP, L2TP, PPPoE, VXLAN, OVPN, IPSEC, Wireguard and includes an extremly flexible WiFi-controller solution called "CapsMan". And albeit the whole routing and VPN part can be achived using Linux or BSD on generic hardware, too, on such a "routerboard" everything is bundled under a more or less typical NOS-CLI, tailored to the hardware it gets shipped with. This saves time and hassles. The platform is popluar especially among (W)ISPs in non-western and development countries - but can be seen in more and more racks over here, too.

About the ROGUE1 from the picture above; This is my Customer Premise Equipment (CPE) to-go. As soon as it gets an uplink to the Internet, it connects to my central VPN concentrator (ROGUECAMP) and provides tunneled layer-2 access ("Ethernet over IP", a Mikrotik-proprietary protocol similar to L2TP) to that network on certain Ethernet ports. That again enables me to connect arbitrary systems without any client-side foo, serving them with public, static IPv4/IPv6 addresses from prefixes routed towards my central ROS (ROUGECAMP) - independently from the upstream network available to ROGUE1. Portable, public, static addressing. Everybody needs that!

Here's a network diagram illustrating this setup:

     JKCLOUD@VL10     Ethernet  │ROGUECAMP │
    [2001:db8:203:113::/64]     └───┬──────┘
            :                       │
            :                       │EoIP
            :                    WAN│over
            :                       │PPTP
            :                       │
            :                   ┌───┴──────┐
            :                   │ROGUE1    │
            :...................│MobileROS │
               EthernetOverIP   └───┬──────┘

(Public, static IPv4/IPv6 addresses to-go - without client-side software.)

Closing Thoughts

This is the first text on my website that kinda just goes nowhere.. and I like it. Writing in public is still new to me and it feels good that I can just let it go, apparently. There is a text from Mike Grindle - a writer I met on Mastodon - that somehow inspired me to publish this one, so i'd like to link it here: Some Thoughts in Lieu of an Abandoned Post ("a blog is not your magnum opus"). Enjoy.. and see you soon!