Feature Archive

My Computing Hardware

Kev Quirk and ldstephens recently wrote about their collection of Apple devices and I, coincidentally, had already drafted a quick idea in Ulysses to document and share a list of my current computing devices. If only so I can better wrap my head around what hardware I’m using and what I use each device for.

iPhone 13 Pro: My true, primary, general purpose computing device. There’s very little that I can’t do from my iPhone, but it’s often more comfortable to perform the more intensive tasks from devices with larger screens. But it’s always with me, so it’s my main camera and gets used more often than any other device I own.

iPad Pro, 11-inch (3rd generation): Like my iPhone, but with a larger display. And that’s generally how I use it — for the majority of my computing tasks, but a little less mobile. It’s also my go-to device when I want to watch media outside of the living room — at the kitchen table during lunch or to have in the background at my desk during the work day, for example.

MacBook Pro (13-inch, 2020, Four thunderbolt 3 ports): My work laptop. It’s used for a lot of writing, email, Slack, RSS reading, and app testing. I also have another user account on the machine if I need to do any personal tasks and don’t have another device handy. This is mostly with the intention of leaving my iPad at home when I travel for team/division meetups.

Mac Mini (2018): My main home server. It houses our Plex library, stores local copies of our photo library, runs Channels DVR, is used as a backup server for all of the non-iOS devices in our home, rips CDs, DVDs, Blu-ray Discs, archives a few YouTube channels for my son, and acts as a general purpose file server.

Mac Mini (Late 2014): The latest addition to my computing setup. I got it fairly cheap from OWC and it runs Steam on Windows for streaming games to our Apple TVs and Retroid Pocket 2+ using Steam Link. It’s not particularly powerful, so it won’t run the latest games at high settings, but it’ll run run plenty of indie games like Untitled Goose Game, Celeste, and older titles like Half-Life 2.

Mac Mini (Mid 2011): This machine serves a very specific and singular purpose — it runs TunesKit M4V Converter (still available under a different name) to remove DRM from iTunes purchased content. This software only works on older versions of macOS with an outdated version of iTunes. Since I still purchase content from iTunes, but prefer to watch through Plex, this bridges the gap.

Retroid Pocket 2+: Mostly used as a gaming device using Launchbox, RetroArch, Steam Link, and various emulators, but is also occasionally used for media playback — Pocket Casts, Plex, and Channels.

Google Pixel 3: This is a test device for work, which is used for trying out new builds and attempting to recreate user-reported bugs in our Android apps.

It would be great if I could simplify the home server setup a bit. I made an attempt at this with virtual machines, but gaming just wasn’t stable enough — I ran into a few games that simply wouldn’t run — and TunesKit M4V Converter requires that the system be able to playback the video it removes DRM from. Since there’s no way to use HDCP within a virtual machine, I was only able to remove DRM from standard definition iTunes content — running it natively is the only option for high definition content.

There will be some changes to my hardware soon, though. I’m expecting to receive a Retroid Pocket 3 soon to replace the RP2+ — I got my shipment notification yesterday. And I’ll likely be ordering an M2 MacBook Air in the next few months to replace my current MacBook Pro.


Josh Swimming in his Life Jacket

We had a construction-themed party in our backyard, gathering many of our friends and family to celebrate Josh’s birthday. The kids played with squirt guns, sidewalk chalk, and bubbles, while the rest of us competed in a few rounds of Mölkky. There was pizza, cake, and presents.

Over the past year, Josh has learned the alphabet, how to spell his name, built the confidence to swim on his own in his life jacket, and more. We can’t wait to see what the next twelve months brings.

OpenCore Legacy Patcher

MacBook Air (11-inch, Mid 2011) running macOS Big Sur

I recently saw Brad Taunt mention that he was installing Monterey on an unsupported Mac using OpenCore Legacy Patcher. This piqued my interest. My mid-2011 11-inch MacBook Air has been floating around my office unused for a while and I thought it was a good opportunity to give it a try.

I was aware of similar patchers in the past, but never bothered to use them. Instead, I was happy enough to install whatever Linux distribution caught my eye when I wanted to tinker. But in reality, I never really used them beyond the first week or two after setting up the system.

The problem is that I’m too invested in the Apple ecosystem. Despite my best efforts — moving to Fastmail for contacts syncing and using almost entirely third-party apps on iOS and the Mac — there’s still some system-level integrations that I rely on. The most prominent being iCloud Drive and Messages.

If I could install a more recent version of macOS on my trusty 11-inch MacBook Air, I could have access to those system-level features, I’d be able to work with software I’m a bit more familiar with, and get some more use out of hardware that’s over a decade old.

The OpenCore Legacy Patcher makes the process pretty straightforward. You use the app to download the upgrade, create a bootable installer, and then install OpenCore. You can then boot from the installer disk and install macOS as you would normally.

After installation, you’ll have to run the patcher app again to get the system to a state where it runs seamlessly — without displaying a boot picker, for example. But from that point forward it mostly runs without intervention. I haven’t had to touch the patcher app since I first installed it and I’ve been running it on my MacBook Air for a week or two.

The experience running Big Sur on such an old machine is a lot better than you might expect. It’s not perfect, of course, only having access to 4GB of memory is the biggest bottleneck, but I don’t have much trouble running a handful of apps at a time as long as I’m not pushing things too hard.

The system does run a bit warm and the battery life isn’t great — only about three hours or so when I’m using it as I normally would. But that was the case even when the laptop was brand new. This machine was from an era just before Apple made some pretty significant strides in battery life and even with a relatively new battery with just a few dozen cycles on it, it’s no where near the all day battery life that Apple offers on MacBooks of today.

For those that want a basis for comparison from a performance standpoint, I ran Geekbench 5 and received the following scores:

Single-Core Score: 476
Multi-Core Score: 969

Those aren’t particularly impressive, but are plenty for web browsing, email, listening to podcasts, and some occasional text editing and other productivity tasks.

But I wasn’t excited about installing Big Sur on this machine because of the performance. I was excited because of the form factor.

Apple just doesn’t make laptops like this anymore. It weighs just 2.38 pounds — about a third of a pound lighter than the M2 MacBook Air, which is the lightest laptop in Apple’s current lineup. Carrying around the 11-inch MacBook Air feels like nothing when compared to my 13-inch MacBook Pro.

The depth of the machine is also something I really miss. I know that everyone seems to like taller displays lately — Apple’s laptops are 16:10 and I remember seeing a lot of people raving about the Framework laptop’s 3:2 display. But I kind of miss a 16:9 display. It just allows for a much more compact footprint and I don’t really feel like I need more vertical screen real estate.

It is incredible that this little MacBook Air has some life remaining, though. Even after eleven years I can still get use out of it. I’ve replaced the battery and the trackpad, but everything has held up incredibly well. The hinge isn’t as tight as it used to be, but it’s still a lot better than most Windows laptops I come across.

If you have an old MacBook laying around and are looking for a good weekend project, I’d suggest giving OpenCore Legacy Patcher a try. At the very least, it’ll be a fun nostalgia kick, but you also might find that you can repurpose an old machine and get some more years of use out of it.

We Hold These Truths to Be Self-Evident

From the Declaration of Independence:

We, therefore, the Representatives of the united States of America, in General Congress, Assembled, appealing to the Supreme Judge of the world for the rectitude of our intentions, do, in the Name, and by Authority of the good People of these Colonies, solemnly publish and declare, That these United Colonies are, and of Right ought to be Free and Independent States; that they are Absolved from all Allegiance to the British Crown, and that all political connection between them and the State of Great Britain, is and ought to be totally dissolved; and that as Free and Independent States, they have full Power to levy War, conclude Peace, contract Alliances, establish Commerce, and to do all other Acts and Things which Independent States may of right do. And for the support of this Declaration, with a firm reliance on the protection of divine Providence, we mutually pledge to each other our Lives, our Fortunes and our sacred Honor.

While we’re grilling, watching fireworks, and taking part in other Fourth of July festivities, I hope we can all appreciate the incredible expansion of liberty that we’ve accomplished as a nation over the past two hundred forty six years. And hopefully there are many more years of expansion of individual liberties in the future.

On a related note, the Declaration of Independence always reminds me of the Disney short Ben and Me. It’s a great little fictional story about Benjamin Franklin and a church mouse named Amos who we discover was the actual inventor of bifocals, inspired the Franklin stove, and wrote the opening of the Declaration of Independence.

It was released on VHS and DVD, but it’s difficult to find these days. Luckily, a kind individual has uploaded it to YouTube if you wanted to watch it.

Federalism and the Constitution

The tenth amendment of the United States Constitution:

The powers not delegated to the United States by the Constitution, nor prohibited by it to the states, are reserved to the states respectively, or to the people.

This restricts the powers of the federal government to only what is specifically afforded to them in the Constitution. Everything else is given to the states or to the people.

Like it or not, that is the law.

If you believe we should expand the powers of the federal government to additional issues, you must amend the Constitution. That is a high bar, of course. But it should be. Our natural rights shouldn’t be so easily altered by the whims of a simple majority in the legislature. It should require far more broad support across the population of an overwhelming majority of states.

Anything that is unable to obtain such broad support should be handled more locally. And that’s a good thing. This will limit the number of people that are living under laws that are incompatible with their lives and allow for a competition-of-sorts among the states to find the best balance.

Each state can take a different approach to the same issue and we can all learn from it, adapt, and slowly improve over time. In some cases we may find that we all eventually reach a similar conclusion. And at that point, this broad support may mean that a constitutional amendment is possible.

But on other issues, we may always have wildly different opinions about what is best. And in those instances, the states should continue to handle such matters.

This is federalism and it is foundational to our republic.

I’ve quoted text from the Constitution a time or two because I don’t think enough people have actually read it and very few understand it. But it’s an incredible document and, despite its age, is a fairly easy read — it wasn’t written for the time, it was written to stand the test of time.

If you’ve never read the United States Constitution, I would encourage you to do so. Especially if you’re a citizen of this country. I have a few copies from the Cato Institute that include the Declaration of Independence and the Constitution in a single, pocket-sized book. I keep one in my desk drawer and find myself getting it out every month or two to reference the exact text of amendments.

I am, by no means, an expert on the subject. But I’m doing my best to learn what I can to better understand how my government functions. And that all starts with our foundational document. I think we as citizens would have more respect for one another and could shrink the divide in this nation if we took a little time to study it once in a while.


Home Dashboard

I’ve always had a fascination with self-hosting. The idea of fully owning and controlling the web services I relied on was incredibly appealing. I’ve been running my own media server at home for years — first using iTunes and then moving to Plex — but last year I purchased a Linode, installed Cloudron and started leaning into it even more heavily.

I setup a Homer dashboard to keep everything organized and give me a single place to go when I want to access or manage any of my self-hosted software and services.

I thought I’d go over everything listed in my Homer dashboard and explain a bit about how each item is used. Not everything listed is something I’m self-hosting, but it’s all self-hosting-related.

Homer Dashboard

Plex — Our Plex library contains terabytes of ripped DVDs, Blu-rays, and iTunes purchased content that I’ve removed the DRM from. It’s our most used self-hosted service by far. But it’s not just TV shows and movies, I also use Plex to store my music library and children’s videos that I periodically archive using MediaHuman YouTube Downloader.

Channels DVR — A recent addition to my self-hosting setup. I use it with our over-the-air antenna and a number of M3U IPTV playlists.

Seed Box — This is the web interface for Transmission on my older Mac Mini. That machine runs a VPN so I can privately download all of my perfectly legal Linux ISOs.

Transmission — This is the web interface for Transmission on my main Mac Mini server, which I don’t typically run a VPN on (it makes Plex inaccessible outside the network). This is for the times when I want to download perfectly legal Linux ISOs without the privacy.

AllTube — This web app lets me easily download YouTube and other web videos. When I’m on a Mac I usually use a browser extension or the aforementioned MediaHuman YouTube Downloader. This is more for downloading from my iPhone and iPad.

App Manager — This is my Cloudron instance, which manages most of the self-hosted services I run on Linode.

Mastodon — My primary social network built on ActivityPub. Rather than join a public instance, I decided to run my own. If you have an account, you can follow me, Initial Charge, and/or #OpenWeb. And if you don’t have an account, you can find an instance to join on instances.social.

Pixelfed — Much like Mastodon, Pixelfed is a photo-focused ActivityPub service. If you have an account, you can follow me, and if not you can find an instance to join on Fediverse.party.

SearX — A meta search engine that I have configured to primarily pull results from DuckDuckGo and Brave Search. There are occasions where I need to search with Google, but SearX handles the overwhelming majority of my needs.

FreshRSS — An excellent backend to my feed reading system. I sync this with NetNewsWire and Unread on my iPhone, iPad, and Mac. The web interface isn’t great, though. Cloudron recently added Miniflux to its app store, so I might toy around with that in the future.

Wallabag — My read later service of choice. I’m not too fond of the iOS app, so I simply use that for its share extension and then have the website saved to my Home Screen as a progressive web app for reading articles.

RSS Bridge — A nifty service that generates RSS feeds for dozens of websites and services that don’t offer them.

Initial Charge — The site you’re reading this from — where I publish thoughts about Apple products, software, the web, and other geek-related topics.

\#OpenWeb — My recently relaunched directory of independent web publishers. Mostly focusing on technology and Apple-related weblogs.

Initial Charge Shop — This is a super secret project that I’ve been toying around with recently. Built on WordPress and WooCommerce. Hopefully I’ll have more to share soon.

Mike Rockwell — My LinkTree-style homepage built on LittleLink.

The Wishlist — A private site among myself and a small number of family members where we can keep an ongoing wishlist for birthdays and Christmas.

Don Rockwell — A family WordPress site to showcase photographs of and by my father.

Rebecca & Michael — An archive of my wife and my wedding website. Serving as a digital photo album.

Linode — Where most of my web services and websites are hosted. I use a Shared CPU Plan with 4GB of RAM, which handles everything I’ve thrown at it with a little bit of headroom.

SiteGround — Fantastic WordPress hosting. I’m currently using their GrowBig service. I might end up moving my WordPress sites to Linode to simplify things a bit, but I haven’t fully explored that option yet.

NameCheap — My domain registrar. It’s not clear to me if there’s really any benefit to using one registrar over another unless you’re utilizing their other services. So it comes down to price, mostly. And NameCheap seems pretty competitive on that front.

Fastmail — The best email hosting service. I’ve considered truly self-hosting email, but that seems like a task fraught with annoyances.

WordPress.com — Some of my WordPress sites are hosted here. It’s an excellent service, but for full disclosure, I do work at Automattic.

Cloudron — A shortcut to the subscription management site for Cloudron. The software is free to use for up to three apps, but requires a monthly or yearly fee if you want to install and run more than that.

Listenbox — A nifty service that lets you subscribe to YouTube channels as podcasts. This is primarily how I interact with YouTube now.

Social Crossposter — A service for cross-posting between Mastodon and Twitter. This is something that can be self-hosted, but I haven’t explored that option yet.

Search Console — This can probably just be removed from my dashboard. I don’t actively use it for anything at all. I could probably get some more traffic to Initial Charge if I did, but there’s almost nothing about search engine optimization that appeals to me.

IFTTT — Web automation at its best. I used to use it for a lot more than I do now — the original iteration of \#OpenWeb was built on it. But now I just use it to automatically save Initial Charge entries and Mastodon posts to Day One.

Jetpack — A link to Jetpack Cloud where I can manage subscriptions, backups, view my sites’ Activity Log and more.

VaultPress — Although new sites get backups directly through the Jetpack plugin, I still have some WordPress sites that are using VaultPress for their backups.

Bridgy — A bridge service that will let you save replies, favorites, and retweets/boosts to your site as webmentions.

Motorola Surfboard — A link to the web dashboard of my cable modem.

Geek Tees — My retired weblog, which linked to geeky t-shirts and other apparel. It may, at some point, resurface in one form or another.

CyberSurge — The first weblog I ever published with my own domain name. From 2006 until 2009, this was my home on the web.

Nu HTML Validator — W3C’s HTML Validator. When I make updates to any of my sites, I always try to run it through this to make sure all my code is valid.

CSS Validation — W3C’s CSS validator. Used in similar instances as the HTML validator.

Feed Validator — Another W3C validator, this one for RSS feeds.

Security Headers — A service for checking the security-related headers on your site. I’m happy to say that Initial Charge uses five out of the six that this checks for.

Structured Data — A Google developer tool that checks and validates the markup for structured data in your web pages.

PageSpeed Insights — A service for checking the speed of your web pages. It’s not my favorite, but it sure seems like everyone uses it.

Pingdom Tools — Another webpage speed tester. I prefer this one to PageSpeed Insights, but it doesn’t offer quite as detailed recommendations. I usually just use it for quick speed tests.

Just a quick note on hardware, for the folks that are interested in that sort of thing. I already referenced my web hosting — Linode, SiteGround, and WordPress.com — for the services I host locally I have a couple of Mac Minis.

The primary home server is a 2018 Mac Mini with a 3.6GHz quad-core Core i3 processor and 32GB of RAM. For storage, it has a ThunderBay 6 enclosure connected over ThunderBolt that houses two 8TB drives for media storage, two 14TB drives for backups, and a 1TB NVMe SSD that serves as the boot drive.

The other machine is a 2011 Mac Mini with a 2.3GHz Intel Core i5. 16GB of memory, and a 1TB SSD. This computer has more specialty usage — it primarily runs NordVPN, Transmission, and TunesKit M4V Converter to remove DRM from iTunes purchased content. Its running macOS El Capitan, which has the latest version of iTunes that the DRM removal tool works with.

Relaunching #OpenWeb

When I first launched #OpenWeb a few years ago, it was a bit of an experiment. The idea was to aggregate headlines from independent publishers within the Apple enthusiast community. The method I used for publishing the headlines was pretty fragile, though, and eventually it just became too difficult to maintain.

It’s been in the back of my mind to refactor the project into something that was easier to manage and might be a bit more useful to, not just the Apple enthusiast community, but the open web in general. A couple of weeks ago, I started laying the groundwork and today I’m ready to share it.

Rather than aggregating headlines, #OpenWeb will simply showcase independent publishers within the more general tech and web enthusiast space. It’ll probably have still have a bend toward publishers that write about Apple products, but that will likely change as time goes on.

With the shift to being more of a showcase for writers, syndication might be a bit more useful, too. Instead of the RSS feed including headlines from all of the sites, it will only be updated when sites are added. My plan is to add one new source each weekday, but I imagine the pace will slow as I run out of the backlog of sites to add.

If you’d like to follow along with the newly added sites, you can do so with the its RSS feed, on Mastodon, or on Twitter. I might add an email newsletter option at some point, but there aren’t any immediate plans to. That’s not a method that I tend to use on other sites, so it’s not something I’m super motivated to add. However, if that’s something you’d like to see, please let me know and, depending on interest, it might get a higher priority.

Also, if you publish a weblog or know of one that you’d like to recommend, you can suggest a site to be included.

Internet Protocol Television

iPlayTV Channels Tab

Ever since I went all-in on Plex in 2016, I’ve been slowly but surely moving away from bigger streaming services and toward more self-hosted and distributed, open alternatives. Up until a few weeks ago, I was primarily using Plex, Pocket Casts, and YouTube for everything I watched. The latter of which I’ve been trying to cut back on by replacing it with more podcasts, Odysee, and other alternative platforms.

I would occasionally dabble with Pluto, Plex’s Live TV feature, and even Channels paired with an HDHomeRun for over-the-air television. But none of it ever stuck for me. Pluto’s Apple TV app has always been dreadful to use. Plex’s Live TV feature didn’t have many good stations and randomly lost Buzzr — one of the few I actually enjoyed. And there was a restructuring of over-the-air stations in my area a couple years ago, which made it nearly impossible for us to consistently get more than a channel or two.

I’ve found something better, though. Something distributed and something that feels like the heyday of over-the-air television or C-band satellite for the internet age. Internet protocol television or IPTV.

Now, that’s often used as an umbrella term to refer to any and all video streaming on the web. In this case, though, I’m referring specifically to .m3u and .m3u8 playlists. There are for-pay providers that sell access to these, but those all seem to be of questionable legality and not the kind of sites I would want to enter my credit card information into.

There are, however, legal and freely available streams on the web. There’s probably a bunch of resources for finding them, but I came across a GitHub repository that looks to be regularly updated and has a wide variety of streams available. They’re categorized by region, language, genre, and more.

So how does it actually work? Well, it works a lot like podcast apps did back before they all included integrated indexes. You copy a link to the playlist file you want to use and paste it into your IPTV app of choice. The app will parse the playlist file and give you a list of channels to watch.

In my case, I copied the link for the United States playlist and pasted it into iPlayTV on my Apple TV using the excellent keyboard/remote control feature on my iPhone. You can give the playlist any name you like within the app, I simply went with “Internet Protocol Television”. You can also, optionally, enter a link to an electronic program guide (EPG) file, which the app can use to indicate what’s playing on a given station. I used the United States one from the sister repository.

I have access to about 1900 stations with this setup. To be fair, the overwhelming majority of those I will never actually watch. But I went through and saved all of the most interesting streams as favorites, which gives me about 35 channels to choose from

iPlayTV Sidebar Guide

In frequent rotation is Laff, MeTV, the aforementioned Buzzr, and Rewind TV. It’s a lot of old sitcoms and game shows, but that’s kind of my jam anyway. There are plenty of other channels, of course, from a wide variety of genres — you’ll likely find something you enjoy regardless of the type of content you tend to watch.

I’ve never been too much of a fan of linear television programming. With ads and a limited number of channels, you’re kind of stuck watching what’s available and often times have to sit through a bunch of ads to do it.

Those problems still exist, but there is something nice about having a smaller number of options to choose from. And within those options, not having to decide what episode to watch. With the size of my Plex library, analysis paralysis is a common occurrence. With this IPTV setup, it’s nice to just glance through the channel list and only have to decide whether you want to watch Dick Van Dyke or Match Game.

Aside from the existence of ads, there are other downsides. One of the most notable is that the guide feature within iPlayTV, appears to display every single channel it has guide data for, regardless of whether you have access to that channel or not. So I just stick to the Channels tab and, while playing a channel, use the swipe gestures to view program guide data, which will only show you information for your current category — favorites, in my case.

There is a bit of work to get it set up. As I mentioned, I went through and favorited all the channels I might want to watch — that takes a bit of time. Some of the channels are non-English, some streams just isn’t working, or the content it’s playing doesn’t match what the playlist thinks it is. That can be tedious to wade through. Luckily, the app supports syncing over iCloud, though, so I don’t have to add the playlist and favorite channels on each of my three Apple TVs individually.

There’s also the occasional issue of channels being removed or added to the playlist — as channels get taken down or are no longer accessible. The day after I got it all setup a few of the channels I favorited just disappeared on me. One of them eventually returned and luckily iPlayTV still had it saved in my favorites section. The app also does a great job of highlighting newly added channels — giving them a red border in the channel list and their own dedicated section in the sidebar.

None of this is a deal breaker for me, though. Once it’s all configured, there’s very little effort to keep it up and running. Sometimes a channel I watch will disappear, but I haven’t had this happen with anything I watch regularly. It’s always been one of the oddball channels that I have favorited because I might watch it.

There’s still a lot to explore for me in the world of IPTV — I’ve only set it up on the Apple TV so far. Unfortunately, iPlayTV is Apple TV-only. I’ll have to do some digging to see if there are good options on iPad and iPhone. I have Awesome IPTV on my list of resources to dig through, which includes options for apps, providers, and more. It’s been a pretty fun and entertaining experience so far and I’m looking forward to spending more time on this little project going forward.