

I’ve only had to go through a captive portal once with it but MAC cloning was sufficient
I’m beautiful and tough like a diamond…or beef jerky in a ball gown.
– Titus Andromedon


I’ve only had to go through a captive portal once with it but MAC cloning was sufficient


Photovoltaic / Solar power installation.
“Solar system” just sounds weird when I say it.


I finally pulled the trigger and bought/installed the PV system I’ve been wanting for 10+ years.
It was a good chunk of upfront money for something I feared would end up being a midlife crisis purchase*. I only have it partially installed (all DIY as time allows) but we’ve been running the whole house from it several days a week and have already seen significant savings on the electric bill (especially since the first week I had it hooked in was a heat wave).
*It’s not not a midlife crisis purchase, lol, but it’s also more useful than a sports car.


Sadly (and similarly anecdotally) yes.
Toggling airplane mode basically “turns off and on again” your phone’s network interfaces, resets the routing table, and, I think, flushes the DNS caches. I don’t have the problem so much with wi-fi unless I roam between my main and guest networks which use different DNS records for some of my self-hosted apps. (e.g. the “internal” DNS record gets resolved on main wifi, gets cached, and then is inaccessible on guest wifi until the cached record expires).
Mainly, I just toggle the cellular data since my primary issue is that sometimes calls/texts stop working without notice.
I try for at least 2 hours a day, excluding sleeping.
Usually that’s in the form of puttering around outside doing yardwork, working on whatever my summer/winter project is, and/or taking the dogs for a walk. It’s difficult in the winter but the other 3 seasons are pretty easy to keep the habit alive
However you choose to spend that offline time, I highly recommend a daily dose of it. Been doing that for a few years now, and my mental health has improved dramatically. The world isn’t nearly as horrible as social media makes it out to be.


Security is pretty minimal, not gonna lie.
There’s a 50 GB LUKS partition that stays locked unless I’m actively using it. It’s got backup copies of my important/critical documents and password manager exports but the rest of it is just media and doesn’t really merit encryption.
All applications have local accounts but I’m not using LDAP or any kind of SSO like I am with my main stack.
At home, I keep the firewall disabled on the interface configured as “WAN” so I can access its services directly via their hostname (I point its wildcard DNS record to its local “WAN” IP) but do enable firewall when I’m using it on an untrusted network. Granted, I have to manually remember to do that, so that’s kind of a security risk if I forget. Generally, though, when I’m using it remotely, it’s using my secondary phone as a USB-tethered uplink so even if I leave its internal services exposed to WAN, the NAT from the phone blocks that. One of my goals, eventually, is to automate some of the firewall rules depending on where I’m using it.


Either the 3rd one or the least important one. Whichever causes me the most inconvenience.


Bonus “Mildly infuriating”:
Ask 4 bullet-point questions in an email, they only answer one of them and ignore the rest.


Definitely does, and it’s a beautiful city, but I never want to drive in it ever again lol.
Had to travel there 3 times for work. The first time I rented a car and immediately regretted it. The second and third times I demanded that management reimburse me for taxis instead of the car rental or I wouldn’t go lol.


In case anyone still doubted that birds are modern day dinosaurs.


I hand wash them all with soap and water, but they all seem to lose their ability to shed off what I cook in them.
You need to oil them after washing them (wipe them down with a thin layer of vegetable oil or shortening).
Also, it may be time to reseason them if everything sticks even if you’re pre-heating it before adding the food. See: https://www.foodandwine.com/how-to-reseason-cast-iron-8600860


I let it be, even if the person is still alive. Anyone can “allege” anything against anyone. Plus, if the friend is a devout follower of someone genuinely controversial, then there’s already a good chance I’m not that close to them and would be cutting them out of my life anyway.


Yep. My house is block and brick and just soaks up heat all day and very slowly releases it at night. Unless there’s a 20-30 degree (F) difference, it just doesn’t cool down at all. It’s even worse when the night time temps don’t drop significantly until just an hour or two before dawn when it starts heating back up again.
That’s great in the winter since a sunny day can “store” heat for the night, but it’s miserable in the summer and you basically just have to pump it out with A/C.


This week was nice but we had one last week and one’s forecast for this coming week, though I don’t think it’s going to be as bad as the one we got first week of July.
Glad I got my PV system installed before the first one hit. A/C just feels cooler when it’s free 😎
Heatwaves notwithstanding, still prefer summer. I hate shoveling snow, I hate being cold, I hate that people deal with slick roads every year but still can’t learn to drive (or NOT drive) on them, etc. My only complaints about summer are the humidity and mosquitos.


Ah, yeah, you can have most devices with lithium batteries in your checked baggage, but they have to be off and packed so they’re protected from damage. It’s preferred for those to be carry-on items but isn’t required.
Power banks, vapes, spare batteries, etc are specifically prohibited in checked baggage and must be in your carry-on or on your person.


I think it’s the other way around, at least in the US. The last time I flew, anything with a lithium battery had to be either on your person or in your carry-on and couldn’t exceed a certain amperage/watt-hour rating. I remember having to check specifically on that since I wasn’t sure if I could bring my vape.
But mostly, a bare PCB with two 18650’s visible isn’t something I want to have to explain to airport security lol. They may let it pass, but it’s definitely going to be a hassle. Easiest to just use an approved power bank or just power it from my phone’s USB port. The UPS was mostly so I could make it mobile and use solar chargers with it.


It’s kind of a mix of things duct-taped together, but here’s the gist of what controls what. If you want to see any specific configs, let me know.
Network Manager controls the “static” interfaces. I’ve got some udev rules for my known hardware (USB wifi/ethernet adapters) so that they get friendly names as opposed to ugly “predictable” names.
The interfaces managed by NetworkManager are:
Connecting a USB-tethered smartphone is pretty plug and play. It automatically gets picked up as a USB ethernet interface, receives its IP address from DHCP, and gets set as the default gateway. So there’s nothing that needs to be configured when using that as the internet uplink other than making sure there’s no other active gateway that might interfere.
The LAN segment is a generic Linux bridge called br-lan (I’m borrowing OpenWRT’s naming convention). In normal operation, it has wlan1 and usb0 as members (AP and USB ethernet gadget, respectively). If I need a wired ethernet port on the LAN side, I just plug a USB ethernet adapter in and add it with brctl addif br-lan eth{XXX}
The usb0 ethernet gadget interface is brought up using a script that runs at boot via systemd to configure a libcomposite ethernet gadget before the network target. This ensures it’s available when the network comes up so it can be successfully added to the LAN bridge.
When changing out of the default configuration, I just go into network manager to enable/disable the correct interfaces. e.g. If I want to use wired ethernet for uplink and internal wifi for client AP, I enable the wired ethernet and disable the internal wifi’s connection to the router. Then I swap hostapd conf files to use the one configured for the internal wifi instead of the USB one and update the members in the LAN bridge accordingly. e.g. brctl delif br-lan wlan1 ; brctl addif br-lan wlan0
To add a LAN-side wired ethernet, I just make sure it’s not already configured for “WAN” in NetworkManager and add it to the LAN bridge. That, or setup a VLAN interface and use a single USB ethernet adapter for both (haven’t done that on this device but I know it works from having done that in the past).
Thankfully, PiHole exposes the DHCP controls for its underlying dnsmasq and since I’m already running PiHole for ad blocking and DNS, it was natural to also use it for DHCP. It’s configured to advertise addresses to the br-lan interface only.
Routing/NAT is all done directly with iptables. The VPNs dynamically update it as they connect/disconnect using their up and down hook scripts, and for the NAT used for client connections, it’s basically just iptables -t nat -A POSTROUTING -s $SOURCE_CIDR -o $OUT_INTERFACE -j MASQUERADE where SOURCE_CIDR=192.168.5.0/24 is the LAN segment address range and OUT_INTERFACE=wlan0 is the uplink interface (in the default configuration).
I’ve got some ugly scripts to adjust the NAT rules depending on which interface is currently acting as the “WAN” interface.


I addressed that in a few ways:
Basically, I tried my best to configure the SD card so that in day to day use it’s WORM (write once, read many) without actually going so far as mounting it read only. The data that gets synced daily from my main servers is incremental and usually has few changes.
I’ve had PIs running for years without issue with the SD card mounted read only and retired them from service before the SD cards ever started showing issues. My Meshtastic EAS Alerter project is using one of those Pi Zero W2’s I retired from an older project and its 6 year old SD card.
This is actually the second iteration. Originally I attached a 1 TB SSD via a USB->NVMe enclosure. That worked, but also made the unit sprawl which was something I wanted to trim down in the final version. It worked but had random glitches and instability that I initially chalked up to the board and/or Armbian. I didn’t realize it was EMI from the Wi-Fi coming in through the USB cable until after I switched to the 1 TB SD card. That’s why I added some ghetto shielding to the power cable for lack of having ferrite beads on hand lol.
Should the SD card prove problematic over time, I can always go back to the USB->NVMe solution and lose its “keychain” form factor.
/_\ _ _ _ __ | |__(_)__ _ _ _
/ _ \| '_| ' \| '_ \ / _` | ' \
/_/ \_\_| |_|_|_|_.__/_\__,_|_||_|
v25.11.2 for BananaPi BPI-M4-Zero running Armbian Linux 6.12.58-current-sunxi64
Packages: Ubuntu stable (noble)
Updates: Kernel upgrade enabled and 52 packages available for upgrade
WiFi AP: SSID: (BananaAP), channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz
IPv4: (LAN) 192.168.5.1, 10.10.10.15 (WAN) 192.168.1.12
Containers: postgres_postgres_1
Performance:
Load: 4% Uptime: 18 weeks, 22 hours, 49 minutes Local users: 2
Memory usage: 45% of 3.83G Zram usage: 74% of 1.91G
CPU temp: 63°C Usage of /: 35% of 29G
RX today: 6 GiB
Oh, yeah. SSH from laptop or Termux on my phone.
Not sure if there’s a CLI way to deal with captive portals or not. Maybe a text-based browser like Lynx/Links2 if the portal isn’t super fancy, but I’ve used the MAC cloning method for ages and it’s just my “go to” for dealing with that. Honestly, I don’t deal with them very often since I just use a hotspot much of the time with it.