Skip to main content

Immerse yourself in a simpler time online.

NeoCities is an interesting web host. They self-describe as a social network of web sites, and to me they seem like a modern take on the old web ring concept. Before there were algorithms to be manipulated by search engine optimization, members of a web ring would all drive traffic to the each other by displaying links to the other member-owned sites. In the case of NeoCities, you only have to add tags to your site to categorize it into the appropriate web ring. As sites are updated, you see them in an activity feed. This is social media perhaps I could get excited about.

Web authors on NeoCities can only host static content, vastly different to the modern Web. Static content keeps a page loading as fast as possible, immediately served as-is from its home on the hosting service, to your local network and device. This is how pages used to be in the days of GeoCities and Angelfire, and though the 90s-design is optional, there are certainly great examples of nostalia-fueling sites to be found on NeoCities. Other site administrators go for a more modern, yet simple appearance.

Dynamic content like a user commenting system can be embedded from 3rd-party services if needed. Or, keeping in line with the throwback feel of some of these web pages, perhaps a guest book or chat box, terms I'm sure you haven't heard in a while, or possibly ever. JavaScript is allowed so you can get very creative. I was surprised not to see the long-lost visitor counter aka hit counter on any NeoCities-powered sites in my travels so far.

The design is up to you, but the method of getting it to a browser is more efficient, so you're opening up the ability to reach people on lower-end devices or slow connection speeds. I like the idea of keeping pages accessible from all types of technology and all areas of the world. I can see static content being great for something like a blog or a fan site, perhaps a place to create some documentation, or a portfolio. At the time of typing, my simple sites would be good candidates.

For a free service, it's respectable that they commit to an ad-free experience. Upgrading to paid allows you to configure your own domain name, get subdomains for multiple sites, and you're supporting their mission plus you can obtain support if it's needed. But at $5 (USD) per month it still amounts to a very limited hosting plan with no FTP support, though there is a command-line file utility provided for power users. Traditional web hosts offer more flexibility, bandwidth, and storage space for less cash. GeekStorage has been my favorite for years. Once you pick a web host, you can use static site generator apps like Pelican or Hugo to generate your own static pages. But you're missing out on that inter-connected experience, the web ring.

This type of thing is right up my alley, but I'm not ready to do away with the convenience of using the awesome Grav CMS. It's important to make the distinction that Grav is not a static site generator. It does remove the need for a potentially slow database, and can be deployed with quite basic, bandwidth-saving themes like the one you're probably looking at here. My current host also costs significantly less per year, I can use multiple domain names and have fully separated sites, I can access the file system via Secure FTP, and the possibility of using dynamic pages and MySQL databases is always nice to have. But I love what NeoCities is doing, reminding us of the benefits of an old WWW, fueling nostalgia for some of us, and bringing new generations into the passion of publishing sites online and experiencing a taste of things before their time.

Pi.Hole DHCP Lease Conflict

Warning in dnsmasq core:
not giving name mediaputer.lan to the DHCP lease of 192.168.0.202 because the name exists in /etc/hosts with address 127.0.1.1

I spent some time trying to figure out why this error kept appearing in my Pi.Hole logs. Everything otherwise seemed to be working. The "mediaputer.lan" device is the Pi 400 I use to run Pi.Hole and DHCP. It has a static IP address set by my main router: 192.168.0.200. I tried editing /etc/hosts with that IP, then tried setting the same static IP address within Pi.Hole itself.

After seeking online solutions, I ran ip r | grep default.

The results showed something that perhaps a smarter individual would've already guessed:

default via 192.168.0.1 dev eth0 src 192.168.0.200 metric 202 
default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.202 metric 303

The Pi is connected over Ethernet but still has wireless radio enabled and that wireless interface will get its own IP address. While wifi could be useful if the ethernet cable one day had an issue, that seems unlikely and it's also a problem I would want to notice and fix immediately. I believe it's good security practice to disable any unused radio signals, and the less wireless interference I create in my own home, the better.

So next I edited /boot/config.txt: sudo nano /boot/config.txt

Inserted these lines after [all]:

# lines below will disable wifi and bluetooth
dtoverlay=disable-wifi
dtoverlay=disable-bt

And there we go, a reboot should be all we need! sudo shutdown -r

Well, it looks like that worked to shut down wifi as far as the Pi is concerned, but the message kept appearing in the log files of the Pi.Hole. The Pi computer itself is named mediaputer but the hostname of the Pi.Hole is pi.hole. I'm no network expert but I specialize in throwing spaghetti at the wall, so next I dove back into /etc/hosts: sudo nano /etc/hosts

The line at the top of the file is 127.0.0.1 localhost, which is accurate—but then why does the bottom line have 127.0.1.1 mapped to mediaputer, when mediaputer should be equal to localhost which is equal to 127.0.0.1? So I guess you could say I had a hunch.

Let's instead map that 127.0.1.1 to the pi.hole. Here's what the file looked like now:

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       pi.hole

Rebooted, and so far there's no more error. There's a slight chance I could've been the one to incorrectly modify the hosts file in the past since I didn't see anyone else on the Internet with this particular solution, but at least it motivated me to create my first post.