Too Many Phones

I started this year off with a Galaxy S8+ and iPhone 2G that I’d purchased late last year, and was content with my S8 as my primary device.

Since then, I’ve purchased two Pixel 2 XLs (one 64 GB, locked to Verizon, and a 128 GB Unlocked model), an iPhone 5C (new in box), an Epik One Pebble K400 (the cheapest Android Go phone on Amazon, only $40!), and most recently, a 256 GB iPhone XS in Gold, because why not.

Since my first smart phone in 2013, I’ve been fairly satisfied with Android. Initially using Samsung phones with their over-engineered TouchWiz UI, I quickly moved to the stock Android experience starting with the Nexus 5, and then later with the Nexus 6P. Once Google introduced the Pixel line though, I started to question if I still liked where Android was going. Google was essentially releasing the same Nexus devices as they always had, but with a massive price increase for seemingly no reason. I skipped the first Pixel phone, and even went back to Samsung with the S8, since it had so many more features for a similar price.

After the release of the Pixel 2, I tried my luck with stock Android again, and was… a bit dissapointed. The stock experience felt very clean and fast initially, but the Pixel 2 XL has a surprisingly large number of bugs and slowdowns for a high-end stock reference Android device. This summer, I decided on a whim to buy an iPhone 5C (which you can apparently get new on eBay for around $100), and tried it out as a secondary phone for a while. Obviously it was significantly slower than my Pixel 2, and was limited in features since it predates Touch ID and is limited to iOS 10, but it was still a great phone for the price, and I started to somewhat like iOS again.

The Epik One Pepple K400 I bought a few weeks ago though, that is an impressive little phone. If you want a reliable, fully-supported Android Oreo phone with dual-SIM, you really can’t ask for much more for $40. I bought it primarily as a low-end testing device for app development, but also a bit out of curiosity for what a cheap phone these days can do. It’s incredibly slow, and the display and camera aren’t great, but it’d honestly do just about anything most people would need for a day-to-day device.

This September though, Apple basically said “hey we released the same phone with a new CPU but it comes in gold”, so I bought one. $1150 later, and I’m an iPhone XS owner. I haven’t yet decided whether I’m switching over to iOS as my primary mobile OS, but I have to say I like what Apple’s offering these days. iOs used to be so far behind Android in power user features, but it’s really come a long way in the last few years. Since iOS 11 introduced Files and Control Center, and they finally ditched the home button and huge bezels, the iPhone X, XS, and XR are all pretty fantastic phones. Overprice, surely, but fantastic nonetheless.

So far I really like my iPhone. Face ID is still worse than Touch ID in a lot of ways, but it’s implemented well, and as much as Animoji were a silly concept, I actually quite like the Memoji, with the more personal experience they add. The new gesture navigation is fantastic, too. After using Android Pie’s gesture nav for a few months, the iPhone X’s navigation feels far more fluid and polished.

There are still a lot of small annoyances I have with iOS. I’ve noticed over the last few days that push notifications arrive significantly faster on Android than iOS for most of the apps I use, and I’d love the ability to install apps from third-parties without using my own Xcode certs that expire in only a few days, but overall the iPhone is a fairly decent phone these days.

And back again.

After a bit of time trying some other ventures, including a few things we definitely intend to get back to at some point because they’re awesome, we’re back on StructHub!

Mike and I are hard at work again building a proper company out of our crazy ideas, and it’s going fairly well this time around. I’m currently building most of our software stack on Laravel, including an instruction editor, a media file manager, and a consumer app. We’re also most likely going to use Flutter to build our iOS and Android apps when the time comes, which is looking increasingly usable lately.

We’re also planning on releasing our first beta really soon. To make that happen, the pace of development needs to increase dramatically, and since I’m the only developer right now, that means I need more time to work on it. To make that happen, I’m cutting down my time at may current day job to only two days a week. That way I can keep a bit of income to cover living expenses, while still having a good portion of a proper work week to dedicate to StructHub.

Check it out!


This blog is now yet another Bootstrap 4-based site. I can’t resist the awesomeness that is Bootstrap 4 on any of my sites lately, and while it’s aesthetically quite similar to what it was before, this site is basically just a tiny bit worse now, since it has to load much more CSS to give what is nearly the same layout and overall look that it had before. Neat.

Why would I do this?

Performance-wise, it makes nearly no difference. Only the components I’m actually using in Bootstrap are included, and the core styles gained by relying on Bootstrap mostly just ensure a better experience in browsers I don’t use as often. This also means a switch back to using Flexbox instead of Grid for the layouts, which gains a lot of backwards compatibility. The site doesn’t look as unique as it used to in it’s current form, but I could rely on the Bootstrap Grid to bring back the previous site layout without the need of CSS grid (which I’m increasingly finding to be more trouble than it’s worth in its current state).

More than anything, I made the change for consistency between my projects. Since everything I’m working on right now is built on Bootstrap 4, it’s nice to be able to use the same helper classes and variables without having to remember which project I’m on. That’s really what Bootstrap has become for me, a way to have consistent standards between projects. And it’s awesome.

New Year, New Server

TL;DR: 4x8TB WD + 2x3TB Seagate on Arch w/ btrfs RAID10 is fun.

I’m obsessive about keeping data. I pretty much never delete anything, and I’ve started archiving data from other sources that could potentially disappear in the future like websites, YouTube videos, and even old Operating System installer images. Doing something like this takes quite a bit of disk space, and my old server with only 6 terabytes of usable redundant storage was just not cutting it. I had only a few gigabytes left available on that server, plus a few terabytes of non-redundant data on my main desktop PC with nowhere better to move the files, so I decided it was finally time to rebuild.

The first step was to find the best value I could on large hard drives. As a frequent lurker on r/datahoarder, I had seen people mention that the WD easystore 8 TB drives were frequently on sale for around 50% off at Best Buy, and often had proper WD Red drives inside. I set up an IFTTT recipe to notify me when the prices changed on the Best Buy website, and got 4 drives for only $150 a piece, which is quite a savings over pretty much any other 8 TB drive on the market. Unfortunately, I wasn’t thorough on checking the model numbers on the boxes, so I ended up with the generic non-Red drives once I opened up the enclosures, but since I’m paranoid and was planning on running RAID10 with checksums anyway, I didn’t really care that much.

Weirdly though, two of the four drives wouldn’t power on with a standard SATA power connector. After a bit of research, there seemed to be two solutions for the issue, with one a bit more elegant than the other, but both a bit weird. Some people found that you could add a resistor between certain leads on the cable to trick the drive into powering on, while some others found that using a Molex to SATA power adapter seemed to fix the problem as well. A hacky combination of adapters resulting in a SATA > Molex > SATA > 4-way SATA splitter, and the drives were up and running! Now for the fun part.

My last server, Vista, ran Ubuntu 14.04 with mdadm RAID10 on 4x 3 TB HDDs. This time around, I wanted to use the best OS ever, Arch Linux, and my favorite filesystem toy, btrfs. I put in a 120 GB ADATA SSD, and in no time at all, my Arch server was up with a basic RAID10 filesystem running on my new drives. Then I started up rsync, and called it a night.

Around 6 TB of data later, the new server just needed a bit of software setup to match the old server’s feature set, and it was good to go. I swapped the IPs of the machines on my DHCP server to keep existing static entries working, and after a few days of running the old one to make sure everything was there, I took it down. Since I had a few spare SATA ports on the new server still, I moved two of the 3 TB Seagate HDDs from the old server over to the new one and added them to the btrfs volume, put another one in my desktop PC, Rin, and the fourth drive into one of the enclosures from the 8 TB drives. Finally, plenty of disk space everywhere I need it.

A look at the current filesystem status shows just how wonderfully overkill this is for a home file server:

[alan@longhorn ~]$ btrfs filesystem usage /storage -H
    Device size:                           38.01TB
    Device allocated:                      12.46TB
    Device unallocated:                    25.54TB
    Device missing:                         8.00TB
    Used:                                  12.44TB
    Free (estimated):                      12.78TB      (min: 12.78TB)
    Data ratio:                               2.00
    Metadata ratio:                           2.00
    Global reserve:                       536.87MB      (used: 0.00B)

I still need to go through a few terabytes of data on my desktop PC, and eventually organize it all and move it over to Longhorn, but the result I’ve got now is something I’m incredibly satisfied with. The new setup leaves Longhorn with 38 terabytes of hard drives, giving a usable 19 terabytes after RAID1 redunancy and the overhead of btrfs’s metadata storage.

My First iPhone

I’ve always had an interest in Apple products. Despite that, I’ve never owned an iPhone. My first Apple device was an original iPod nano, quickly followed by the iPod 5G. These were neat devices, but nothing that incredible, considering how expensive they were compared with a similarly-usable MP3 player.

Then Apple announce the iPhone.

For its time, the iPhone was incredible. It had a good portion of the functionality of a desktop PC in a device so small it fit better in your hand than most current phones. Everything on the iPhone was years ahead of competitors, from the display quality, to the touch responsiveness. Even the camera was far ahead of the rest of the market when it came out.

I was only a young teenager when the iPhone came out, and since that was before the times when 5-year-olds had smartphones, I never got one. I didn’t experience iPhone OS in person until I used an iPod touch in 2008. During all of high school, I was obsessed with modding iOS on my iPod touch, becoming the local expert on iOS jailbreaking and recovery, and general Apple device repair and maintenance. I loved how open the OS became once you had root access, and reached a point where I’d refuse to use a non-jailbroken device. I’d gotten my 2nd generation iPod touch to run fairly closely to more modern devices, with multitasking, wallpapers, and even some of the iOS 6 exclusive apps on iOS 4.

When it came time to get my first smartphone though, I ended up buying a Samsung Galaxy S4. By that point, innovation in iOS had basically disappeared. After iOS 5, there really wasn’t much draw to new iOS releases, and I particularly disliked the visual style changes of both iOS 6 and 7. I’ve not really heavily used any Apple mobile devices since then. Jailbreaking has gotten nearly impossible on modern devices, and Android gives you a ton of customization out of the box, and even the ability to switch operating systems completely. Everything I do on my phone these days is basically impossible to do on a modern iPhone.

And then I bought one.

My first iPhone, purchased in November 2017, is, in my opinion, the best iPhone out there.

iPhone 2G

The original iPhone predates Apple’s obsession with blocking any and all attempts to modify their devices, leaving it totally open to install any compatible iPhone OS version, and jailbreak and tweak to your heart’s content. Mine is running iPhone OS 3.1.3, unlocked and running a slightly tweaked Cydia setup. I’m planning on setting up my own Cydia repository with only older packages that support the OS so I can use it without causing issues, because modern jailbreak tweaks don’t exactly play well with such an old OS.

I actually really like my iPhone. The size is very different from current phones, but it feels more natural to hold than my Pixel 2 XL, and even the smaller iPhones like the SE and 5S. The extra thickness looks a bit weird in comparison, but adds a lot of grip, and the battery life is impressive for a 10-year-old phone.

I’ll probably never own a “new” iPhone, unless I get one just for testing apps I develop, since I rely on things on my Android phones that just aren’t possible on iOS without jailbreaking and a lot of extra work, but it’s fun to play around with an older device that reminds me of my early iOS days, back before there was really anything else good out there.