It’s fairly straightforward to build your own router, and there are a number of tutorials for setting up IPv4 forwarding and NAT rules on Linux. However, IPv6 is a bit more complicated. There are many BSD and Linux based operating systems like pfSense and OpenWRT, which have web management tools to make setting up IPv6 straight forward. However, if you like to run your own custom Linux distribution on your home router and control everything from the command line, this tutorial will take you through configuring dhcpcd, dnsmasq, unbound, iptables and ip6tables for full IPv6 support on your local network.Read More
I recently picked up a Lanner FW-7541C off eBay for $88.31 (including shipping). This industrial device has a 2-core/4-thread Atom D525 processor, a 30GB SATA SSD, 4GB of DDR3 ram and six independent Intel gigabit Ethernet adapters. It’s a well built little device I bought to replace my custom Linux router. However, it has no video output ports. It took some work, but I was able to setup and install Void Linux on this device using the serial port console. This guide goes through building the installation media with the custom parameters needed for a serial console. It also goes through the post installation steps that will keep a login prompt active on the serial port after install.Read More
For the past few years, my gaming rig has been an MSI Trident-X, a prebuilt PC that uses standard ITX components. It replaced my previous gaming laptop, which I also upgraded a few years ago. The Trident-X case does fit a standard PCI-E video card, so I thought it would a good future-proof system. I’ve upgraded the storage of this unit, although not without issues. Back when the current generation of nVidia and AMD graphics cards were announced, I noticed most of them were over 2.5 to 3 slots wide, and likely wouldn’t fit in the current Trident-X enclosure. I watch way too many tech reviews, and found myself pre-ordering an SFF Time P-ATX V2 case. I had the intentions of moving the guts of my gaming PC into an enclosure that could support newer video cards, sometime in the distant future. I placed a pre-order in February, and the case shipped fairly quickly in March. However, it was held up in shipping due to the pandemic, and didn’t arrive until recently. The far future turned into this summer. I moved my gaming PC components into this very nice small form factor case, while adding a few upgrades.Read More
Fancy Docker orchestration systems, like Kubernetes or DC/OS, have networking layers that can be setup for complicated ingress and load balancer configurations. But what if you just have a single Docker daemon and multiple IPs assigned to a single server? How do you bind individual containers to specific public IP addresses? It’s fairly straight forward to bind a service running in a container to a specific IP listening address, but getting outgoing traffic to egress via a specific IP address takes additional work. If you’re attempting to use Docker with IPv6, you’re in for a world of very counterintuitive configuration. In this post, I’m going to take you through setting up Docker to work with IPv4 and IPv6, using isolated networks, so all incoming and outgoing traffic are restricted to specific IP addresses.Read More
A few months ago, I got a notice stating Google Hangouts would stop handling SMS/Voice. In 2012 I transfered my primary phone number to Google Voice before leaving the country, so I could still send texts and keep my American number. At the time, it cost $20 to transfer a number to Google Voice. Eventually Voice was deprecated and Google moved their customers’ phone numbers into Hangouts. Now they’re moving everything back to Voice apparently, in their never ending confusingly labeled and hopelessly broken suite of communication tools. Rather than wait for Google to finally put their telephony products out of their misery, I decided to port the two phone numbers I had on Google over to another service. After some experimenting and trials with various providers, I decided to go with jmp.chat which allows for both Session Initiation Protocol (SIP) for voice calls and XMPP for texts/MMS.Read More
As people have been banned from one major platform after another, one common response has been, “build your own platform”. Of course, it’s not as simple as that. Platforms need infrastructure to run on, and if every hosting provider decided to not offer someone service, corporate censorship can kill a website. Parler made the mistake of tightly coupling their website to Amazon Web Services (AWS). The weaponization of the courts essentially made their contract with AWS entirely worthless. Parler’s response makes me question a lot of their core business decisions, and their future.
People may have flocked to the new network because Parler promoted themselves as an alternative to the current social media landscape. Yet Parler has made critical mistakes with their infrastructure stack, and arbitrary decisions about what content to allow. Parler also suffers the same failure points as any centralized social media platform. To paraphrase Obi-Wan Kenobi, “This is not the free platform you are looking for”.Read More
Home storage is not very expensive today, and the magic of the cloud is more fragile than ever. We hear story after story of accounts getting locked, suspended or terminated on platforms like Google, Facebook and Twitter, often with little to no explanation. Thanks to certain legal requirements around the world, you can usually make full backups from these services. This is a quick guide on how I regularly backup my data. It’s pretty easy and everyone should have a reminder on their calendar to do this at least twice a year (or until you loose access to your calendar).Read More
A few weeks ago, my account on Hacker News, a Reddit like aggregation site for technology links, was banned. My five-year old account received zero warnings before I got a comment from a moderator. Recently, I also discovered from a friend that this website, BattlePenguin.com, has been shadow banned on Hacker News. To any user submitting one of my posts, the submission will look as if it’s successful and appear on the new page. However, if one switches to a private browser, they’ll find that the submission does not appear.
I cross promote new articles on this blog across several platforms, some that are even hostile to smaller websites. Typically, promoting on various platforms doesn’t guarantee additional clicks unless you actively participate on that social network. Hacker News was one of the few sites I enjoyed participating on. I knew it was heavily moderated, but I liked how it generally pushed articles specific to programming, hardware and technology, and avoided more controversial topics.Read More
Facebook is openly hostile to its own users. It blocks private messages with links to content Facebook does not approve of, and the types of content that are blocked or allowed, should greatly trouble people. They practically hold our data hostage, and have put considerable roadblocks in place over the past several years to make it more difficult to access information, even for developers. In 2014, they intentionally manipulated posts to make certain users more depressed in an experiment that should have made everyone reconsider their interactions with the network. On the surface, many casual users may not notice how Facebook’s hands have grown tighter around their walled garden of data, but for developers and content creators, the signs are everywhere and should trouble everyone.Read More
Living within a city, it’s often nice to be able to get out and explore local parks and recreational areas. Google Maps used to be a helpful tool for finding public parks and forests. Many wilderness areas were colored green. Even though some of them were not public parks, the color coating helped narrow down areas of interest. A recent update changed this behavior to make zoomed out views of maps rendered entirely in green, for anything that isn’t an urban area. This change isn’t reversible by an option, layer or preference, and makes Google Maps more difficult to use for one of my favorite use cases. This isn’t the first time Google has broken their online maps or introduced a terrible feature. Thankfully, there are open source solutions and alternatives.Read More