Cleanup and new posts

This commit is contained in:
2025-02-15 13:41:02 -08:00
parent 7967a1b52a
commit ccd0d5b996
7 changed files with 89 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
--- ---
date: '2025-01-24T00:00:00-08:00' title: Five Link Friday - 001
date: 2025-01-24T00:00:00-08:00
tags: ['blog', 'links'] tags: ['blog', 'links']
title: 'Five Link Friday - 001'
--- ---
I was thinking I had come up with new thing for my blog, but of course, after a bit of searching, I learned I did not invent [Five Link Friday](https://thediligence.substack.com/p/-five-link-friday-1). Here's my first list o' links: I was thinking I had come up with new thing for my blog, but of course, after a bit of searching, I learned I did not invent [Five Link Friday](https://thediligence.substack.com/p/-five-link-friday-1). Here's my first list o' links:

View File

@@ -1,7 +1,7 @@
--- ---
date: '2025-01-31T00:00:00-08:00' title: Five Link Friday - 002
date: 2025-01-31T00:00:00-08:00
tags: ['blog', 'links'] tags: ['blog', 'links']
title: 'Five Link Friday - 002'
--- ---
## ["Hey, will you build me a website?"](https://geoffgraham.me/hey-will-you-build-me-a-website/) ## ["Hey, will you build me a website?"](https://geoffgraham.me/hey-will-you-build-me-a-website/)

View File

@@ -1,7 +1,7 @@
--- ---
date: '2025-02-07T00:00:00-08:00' title: Five Link Friday - 003
date: 2025-02-07T00:00:00-08:00
tags: ['blog', 'links'] tags: ['blog', 'links']
title: 'Five Link Friday - 003'
--- ---
## [List of really stupid Wikipedia article ideas](https://en.wikipedia.org/wiki/Wikipedia:List_of_really,_really,_really_stupid_article_ideas_that_you_really,_really,_really_should_not_create) ## [List of really stupid Wikipedia article ideas](https://en.wikipedia.org/wiki/Wikipedia:List_of_really,_really,_really_stupid_article_ideas_that_you_really,_really,_really_should_not_create)

View File

@@ -0,0 +1,26 @@
---
title: Five Link Friday - 004
date: 2025-02-14T00:00:00-08:00
tags:
- blog
- links
---
## [Lazy use of AI leads to Amazon products called "I cannot fulfill that request"](https://arstechnica.com/ai/2024/01/lazy-use-of-ai-leads-to-amazon-products-called-i-cannot-fulfill-that-request/)
Some examples of the enshittification of the web
## [Why Mental Health of Liberal Girls Sank First and Fastest](https://www.afterbabel.com/p/mental-health-liberal-girls)
An interesting sociological analysis of patterns found in data, considering picking up the books mentioned in the article.
## [Towards a quieter friendlier web](https://www.coryd.dev/posts/2024/towards-a-quieter-friendlier-web/)
A mildly poignant article sharing some excellent tips for navigating the warts of the Internet.
## [Replication Crisis](https://en.m.wikipedia.org/wiki/Replication_crisis)
A Wikipedia article about an issue in the science research industry in which the results from many different scientific studies are difficult or impossible to reproduce.
## [The World's Largest Landowners](https://www.madisontrust.com/information-center/visualizations/worlds-largest-landowners/)
An infographic sharing who owns the most land in the world

View File

@@ -1,7 +1,7 @@
--- ---
date: '2020-02-01T00:00:00-08:00' title: Hello, world! - 2020 Edition
date: 2020-02-01T00:00:00-08:00
tags: ['blog'] tags: ['blog']
title: 'Hello, world! - 2020 Edition'
--- ---
Welcome! I am iiogama and this is my slice of the internet, a digital home where I can play, explore, and express myself with almost complete control. I'll explain the "almost" part shortly, let's start with more of the myself part of "About Me". I have an academic interest in sociology, an active interest in various outdoor activities, and a growing spiritual interest in eastern philosophies, while being passionate about computing technology and audible art. My intent for this blog is to document and share what I have learned regarding these interests and passions, while also encouraging me to write more. Welcome! I am iiogama and this is my slice of the internet, a digital home where I can play, explore, and express myself with almost complete control. I'll explain the "almost" part shortly, let's start with more of the myself part of "About Me". I have an academic interest in sociology, an active interest in various outdoor activities, and a growing spiritual interest in eastern philosophies, while being passionate about computing technology and audible art. My intent for this blog is to document and share what I have learned regarding these interests and passions, while also encouraging me to write more.

View File

@@ -0,0 +1,34 @@
---
title: "Public Home Server: Introducing and Resolving Issues"
date: 2025-02-16T00:00:00-08:00
---
As I have shared before, I have recently set up a server at home to run this website and web services like [Mastodon](https://0x212.com/@iiogama), [Gitea](https://git.0x212.com/iiogama), [Owncast](https://live.0x212.com), Miniflux, Linkding, and other great stuff. I decided to use [Cloudron](https://cloudron.io) for simple server management, because I was struggling to get things up and running myself manually with package managers or compiling the software myself, or auto-magically using Docker, NixOS, etc. And I chose Cloudron over other similar services like [YunoHost](https://yunohost.org) because I have used it before, it is quite stable, and does the thing it sets out to do well. The struggle with manually taking care of hosting issues came from long hours at work getting things set up and troubleshooting, and not having the energy in the evenings or weekends to get stuff set up and troubleshoot.
## Problem
This blog post isn't a review of Cloudron though, instead I wanted to write down the solution to a weird issue I was having after I initially launched the server, which also took a somewhat embarrassing amount of time to fix. The issue was my website would not open in a web browser on my home computer after it went live, the browser would end the connection attempt with a timeout. I knew the website was up and live though, because I could open it from my phone connected to the cellular network. Tethering a laptop to my cell phone network and running `nmap 0x212.com` showed the domain name was resolving to my public IP, as well as the correct open ports for my server. Something was mis-configured on my local network.
My local network has two connected routers and three private VLANs. One of the VLANs is a DMZ between the public-facing and private-facing router, the private router drops all connection requests hitting the interface on that network. Port forwarding is enabled on the public router, so it sends all packets it receives from the internet to my Cloudron server that is also in the DMZ. The server is directly connected to the public-facing router.
## Troubleshoot
On my private local network, I could `ping` the public IP address and the private IP address of the server and all router gateways between, but I could not `ping 0x212.com`, indicating an issue with DNS. Yet, running `nslookup 0x212.com` showed correct name resolution, returning my public IP address. I am not running a private DNS server, so all DNS requests for my website were going out to a public DNS server. After checking and rechecking the router and server configurations, I started researching the issue online and learned that Network Address Translation requires loop-back to be enabled on the router for a web connection on the same IP address. But not all routers have that feature available, especially non-enterprise routers like my public facing router from AT&T (required for the fiber connection).
While I was researching the name resolution issue, a different but related issue came up. Like all good multi-taskers doing too much at one time, I was playing around with all the new toys I was installing on the server. Since I could connect to my website from the Internet, I just enabled a VPN connection with [Mullvad](https://mullvad.net) to connect to my servers web services. But while connected to the VPN, I could not SSH into the local IP address for the server. This was necessary because I was needing to transfer files from my computer to the server, and I did not want to send that transfer across the internet. The Mullvad VPN client has a local network sharing setting that allows your computer to connect to other devices on the local network, but this setting will only apply to devices on the same local network as the computer.
## Possible Solutions
So fundamentally I wanted DNS requests to resolve my website's domain to the server's private IP address for my computer on my local network. The Cloudron server has an setting that dynamically updates DNS records using the APIs for various DNS registrars, which can be configured to the public or private IP address for the server. Mine is configured for the public IP address. I started thinking of different ways to resolve my issues, such as the following:
* Disable Cloudron's dynamic DNS and pay for a public dynamic DNS service like [No-IP](https://www.noip.com). The server could be configured to accept all requests hitting the interface.
* Replace the public router with one that supports NAT loop-back, which is expensive and AT&T requires their fiber router.
* Move Cloudron from baremetal to a virtual machine in [Proxmox](https://www.proxmox.com/) or something similar, which could also run a virtual DNS server for local name resolution.
I probably should have installed Cloudron in a virtual machine and I may at some point, but that will be a later project and write-up. I do have another server running Proxmox, but I since I have one server running 24/7-ish, I was trying to reduce how often I am running other computers to reduce my ~~electric bill~~ carbon footprint. So I spent some time mulling over this silly little issue, considering how much time and money various solutions cost, and then in a moment of clarity after reading a post in a Mullvad support forum, I realized a simple, practical, and cheap solution for everything.
## Simple Solution
The Mullvad client will respect static routes configured on the machine. So running `ip route add $SECOND_VLAN via $GATEWAY via $INTERFACE` on my computer allowed me to connect to the private IP address for the server while connected to Mullvad's VPN. With the static route configured, I added `$SERVER_PRIVATE_IP 0x212.com` to `/etc/hosts` to my computer. Now the 0x212.com domain resolves to the server's private IP address for my computer, while still using public DNS servers for everything else. I felt like this was a simple solution that I should've realized sooner, but I got caught up considering more complicated, enterprise-grade solutions.
I'm probably will move Cloudron to a virtual machine and setup a private firewall and DNS server, but I don't need to at this time and can focus on other fun things like updating my website and writing blog posts.

View File

@@ -0,0 +1,21 @@
---
title: 'Re: Which HTML element are you [Quiz]?'
date: 2025-02-15T00:00:00-08:00
---
James' Coffee Blog posted [a fun quiz](https://jamesg.blog/2025/02/13/html-quiz) to help determine which HTML element somebody is based on their personality. Super scientific stuff, here are my results:
> You are the \<search\> element!
>
> You love finding things on the web and are an expert at using search engines.
>
> Your nested element is \<audio\>.
>
> You like to think in different modalities and embrace the interactivity of the web.
>
> Resources
>
> [\<search\> on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/search)
> [\<audio\> on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio)
I also noticed how James organizes the blog posts, might break all my post links and follow suit.