"Retrofitting performance into existing applications is very difficult technically, and almost impossible to prioritize organizationally."
While this may not be the only explanation for why this trend continues, I think it's *spot on* to explain why this continues in commercially-funded software.
Yeah, Vundle's (presumably temporary) removal caught me off guard today on a fresh install. This, in turn, has caused me to take a hard look at the Vim plugins I was using. Turns out I only needed one...which I wrote. So I'm now just storing that one in the horrible "vanilla" Vim plugin scheme and putting that in my dotfile management.
Just a good reminder that dependencies will always let you down. It's just a matter of time. Oh, and never turn your back on a big company.
I visited the article only to make sure it mentioned the novel "The Universal Baseball Association, Inc., J. Henry Waugh, Prop." by Robert Coover.
I was thinking about that book just yesterday. I find something about the way it goes "all in" on a tabletop gaming system deeply appealing. Probably for the same reasons I find pencil and paper RPGs and programming computers appealing.
The system in UBAInc is pretty well fleshed out in the book and at one time in the rings-era WWW there were people creating their own versions of the game -- some very good.
I'm a huge fan of running web servers in the house - but they don't have to be connected to the Internet to be useful and fun! An Apache instance on my always-on box in the basement [0] serves an incredible number of uses and can be connected to from any computer-like thing on my home network. Old-school CGI scripts can be written almost as quickly as terminal scripts and HTML forms make super quick interfaces. A home web server is probably STILL the easiest way to get files to heterogeneous computers and phones and tablets and...
Our (decades old) house web server has a home page with useful links, and in particular to a simple wiki on the same box. Without any pushing (that never works) the rest of the house has slowly learnt to use it, so the calendar, the wish lists, the pet histories, holiday ideas, all sorts of stuff are on it. The server also hosts simple apps like JS clocks, calculators and of course the [0] pewpew attack map (maybe a little less funny these days, but hey).
Edit: ref CGI, there's a few apps on there that do that as well (e.g. fish tank temperature monitor). Nice thing about a small private network is being able to do CGI scripts in bash/whatever without having to worry too much).
You probably already have this. Nearly every ISP has been delivering home gateways with DHCP and DNS built in, and DHCP-registration into the local DNS cache. So <your-computer>.lan or <your-computer>.home are likely candidates. Check your settings to find out.
Besides DNS-based naming there is Multicast DNS (Bonjour/Avahi/ZeroConf) and NetBIOS naming (which still exist and works on most operating systems that have Samba or something similar).
In any case, you don't need a remote service like Cloud9 or Tailscale to any of this. Normal networking has done this for decades.
The next step beyond this is running a more capable DNS system in your home network. Generally this takes the shape of a DNS forwarder service running on a router or server. It could be as simple as a PiHole or OpnSense firewall, or however complicated you might want to make it.
You can use mDNS [0] to publish an internal domain to others on the same LAN. Alternatively, you can use something like a Pi-Hole [1] to be the DNS server for your LAN. Pi-Hole gives you GUI way to point any domain to any IP [2].
Not the OP, but for a small local network it is easy enough to sneakernet hosts files around. (On a USB drive if not a properly classic floppy.)
Also, somepcname.local mDNS works on most operating systems today (once you grant firewall permissions to it; for instance, on Windows setting your home network as a "Private" network for instance when it asks Public or Private).
We have a lot of computers, so DNS is easier than hosts files (also easier for dynamic updates,e.g. random Pi's given a hostname will update DNS via DHCP so no need to find the IP address and update other hosts).
It runs DNS and DHCP as well (so we have a domain that's the same as the house name); the DNS is primarily caching so for most sites it's just stock internet (except a bit faster due to the caching). It's also authoritative for a small number of domains that serves ads/do tracking (it's amazing how much better that makes the internet, even the kids comment on how fast it is compared to their friends - and we're out in the sticks on a relatively slow connection).
This might be an overkill, but you can host internal domain using public DNS.
I've got a domain, and I've added multiple A records pointing to IPs of servers in my 192.168.X.Y NAT. This has a downside thought, that with short enough TTL, you may not be able to access your server during intermittent connectivity problems.
I'm using letsencrypt through traefik for the certs.
I personally use avahi (mDNS) as many other replies have suggested.
I use NixOS, so it was easy to make a function to abstract over the config. In each computer's config, all I do is specify a hostname. This function does the work (or really, some nixpkgs committer did):
- desired hostname and search domain(can be bogus though not recommended)
- DHCP server parameters with the router's IP as primary DNS
- DHCP static assignment for (each of)server(s)
- DNS static assignment such as "yourserver.bogusdomain.tld 192.168.10.10"
- (optionally) domain names, ddclient, certbot
"Proper" classical router/firewall OSs like Cisco IOS, Juniper JunOS, VyOS, RouterOS, OpenWrt, all easily do it like they do a cigarette, but good gamer routers and some NASs also can do it okay in many cases.
you'd have to edit the hosts file on every single device you want to access that domain. personally, i wouldn't even know how to do that on any of my mobile devices.
Network router with DNS resolver, internal domain, all DHCP clients get registered with a name as a subdomain. mycomputer.networkname.lan - I use pfsense, but lots of others support this.
See https://pibox.io/ + https://kubesail.com/ for a low-energy, small, Raspberry Pi-driven, quiet option. I have been running one of them running in our basement for about a month. KubeSail, the startup that sells them, offer DNS and backup services, but the box has been designed to run also in the case the company eventually disappears.
Thank you for the shoutout. We’re working our butts off to make home hosting fun. I hope we don’t disappear - but we want to sell real tech and real skills. No black boxes, no moats, no lock-in. Investors hate it! :P
> A home web server is probably STILL the easiest way to get files to heterogeneous computers and phones and tablets and...
Similarly for printing, I would love a local web app that I could submit PDFs to and get a printer to print the pages. I could imagine scanning working in reverse. I tried googling a bit but alas it seems no one has done it.
Some higher-end printers have HTTPS or LPD (or even FTP) printing built into them. As far as using a web app to queue to a printer that's working on a local Linux machine or so, the webapp could be as simple as just a file upload form and app backed by incron with the right command assigned to the event I think.
For dumb printers we use CUPS, even cheap printers (Oki B412dn here) just plug into the network and are found by most things (even Windows these days).
I also use CUPS on a Pi to put a dumb printer on the network, but I still routinely have issues with my devices not finding the printer or not scaling the page properly.
This is why I was thinking that a plain web app with a known good driver could solve these problems.
The problem with this is that we really can't trust the home network any more. You need to make sure that any services you run on it are zero-trust - i.e., they don't just assume that anyone inside the domestic firewall is a friend.
Because inside the firewall are a bunch of phones and laptops and things that are accessing random webpages and running random apps; and (depending on your level of home network paranoia) maybe a bunch of internet-of-things things, or networked speakers, or televisions, etc., etc.
So even your basement server for home-only use really needs a cert, and client auth, and obviously needs to stay patched... lest it become a monster inside the firewall itself.