Ten Years of Change

In 2004 I had reached a modicum of success in my first career. I was a general manager for GNC, ran a top 200 store, had great staff and bosses, and still had enough energy to pursue hobbies outside of work. My daughter had been born the year before, and was turning into an adorable toddler.

I have also been a life long gamer. I started playing Nintendo games like Mario Brothers and Double Dragon with my parents as a young child. As I grew up I diversified my gaming. I ended up growing into a PC gamer with simulation, real time strategy, role playing, and online games being some of favorites.

I had been watching (this was back when I still watched game announcements closely) the upcoming World of Warcraft. I was a huge Star Wars Galaxies (pre NGE is still my favorite MMO...) player, and had enjoyed playing Warcraft and Warcraft II a lot (I wasn't as big on III as I didn't really enjoy the hero mechanic). So I was excited to get into WoW's beta and subsequently pre-ordered.

What I could never have expected is the lasting impact WoW would have on my life.

Addons and WowAce

I've always enjoyed programming. I taught myself QBasic before I was ten and when I was 15 I asked for Visual Basic 5 for my birthday. I even went to college for computer science, but dropped out as the real world and responsibilities settled in. So when I started using WoW addons (Cosmos and then an early addon pack) I was soon drawn to tinkering with them.

One thing went to another and I started doing a simple, and currently abandoned, AutoRepair addon and went from there to working on Ace with Turan. In 2005 we started WowAce.com and that just led to a series of things I could never have imagined.

By 2006 I had moved on to working for U-Haul, and WowAce had gotten bigger than I'd ever imagined. We were hosting hundreds of addons (all built on top of Ace), and there were more than a million users downloading them. Even looking back on it I'm floored by this.

Curse

Late in 2006 I had an opportunity I can only describe as a dream. I had spent the majority of my life breaking and learning about computers, building campy websites on the side, and dreaming of doing more.

Curse itself started off as one of the first repositories of WoW Addons. In a very real way Curse wouldn't be here today if WoW hadn't given us all this opportunity. I had been mirroring my work on Curse for a long time and through that I knew Hubert, Curse's CEO.

Through this connection I learned that Curse was going to go for it. Offices in the US, professional development team, and all the rest that entails. Along with this I was given the opportunity to join as one of the early development team.

At this point Curse wasn't the name it is today. It was a few guys in a flat in Germany. Quitting my stable job and abandoning my first career to go be a novice programmer for a no name internet company was, honestly, one of the scariest things I could do being a single father with a small child. After much deliberation I decided to take the plunge. It was an opportunity that if I didn't at least attempt I would always regret.

Since taking that plunge I've seen Curse go through some tough times and have been fortunate enough to fill a variety of roles. Python web development, Objective-C desktop development, I ran the PHP team, and helped oversee several other projects. Eventually I carved out a still growing role in IT and infrastructure.

Today

Now, over eight years later, I'm the IT Director for Curse. I fight the good fight against DDoSes, ensure our uptime (we hit 99.9969% in 2014), and help support new endeavors like CurseVoice.

It's been a crazy ride, and yesterday the fine people at Blizzard sent me a little statue.

It brought to mind, yet again, the thoughts that I owe so much to this little game. I know I'm not unique in this regards, but I wanted to write this to say thank you back.

Thank you Blizzard, thank you for making something cool, this little game, a game that has changed every facet of my life.

Re: Apple has lost the functional high ground

Macro Arment articulated something in his latest blog post that many Mac power users have felt for a while now.

His premise is (overly?) simplified down to:

  • They're doing too much
  • Have too few resources behind their efforts
  • And have (in Marco's mind) the wrong priorities

I agree with at least the first two points, but I'm not convinced that overall software quality has been profoundly slipping. Human memory is a fickle thing. When we're working with issues on new versions of software it's completely possible we're being overly generous in our recollections of past versions. Ultimately nostalgia is one hell of a drug.

He went on to make some comments about Apple being a marketing driven company. Again, I'm sure he's at least partially correct, but ultimately I think the demands of the users are more to blame.As consumers we've come to expect, in my opinion, an unreasonable amount of advancement in each iteration.

So often I've heard that the teams inside Apple are much smaller than we'd expect. I also work in a (much smaller) company with small teams. There's never enough time in the day to move projects forward as fast as we want to. Inevitably things take longer or need a second pass.

Growing these teams is not as simple as it sounds (even with $100b in the bank). It's incredibly hard to grow staff and maintain quality or actually gain ground at all. There's a very significant up front cost to new staff. Even if Apple started years ago to staff up (which I hope they did) we may still be waiting a while to see any significant fruits of that labor.

Ultimately I may be fortunate and have better luck than most, but my environment is still incredibly stable and robust. Things do 'just work'; at least as much as they ever did.

All things considered I believe Apple honestly does an incredible job keeping everything moving forward. I just hope they get their ducks in a row before any potential quality problems catches up with them.

An Amazing Step Backwards

After my last blog post @MichaBailey had a question for me. The answer is going to take more than 140 characters to articulate.

I identify myself as a Mac user first and more specifically as a Mac Gamer. However, not too long ago I live tweeted a new computer build. This build has nothing to do with Apple or Mac, it's 100% Windows gaming.

His essential question: What the hell am I doing, being a Mac user, building a high end Windows gaming rig?

Let's start with the status quo...

My Setup

I've spent years buying pieces and setting up what I think is an amazing arrangement as a Mac user. Here's the component list:

I love this setup, it was a bucket list config when I finally got all the pieces in place. Everyday I still get a thrill when I see it. I've used this basic setup for all my needs for the several years. It's served well whether I'm gaming or developing. However, in recent times I've run into the following frustrations:

  • To stream I have to disconnect a display to keep the frame rates stable.
  • To boot into Windows I have to disconnect the ThunderBay 4.
  • I'm stuck on spinning disk when I boot into Windows (IT'S SO SLOW!!!).
  • I can't run new games on high settings anymore (#firstworldproblems).

I've known for a while that it's nearing upgrade time. I normally keep machines for 2-3 years and then either resell them to recoup some of the investment (I sold my last iMac for more than $1k) or pass them down to family members. I was gearing up to do the same again when Apple through a kink into my plan: the 5k iMac.

The 5K iMac

When you think about what a 5K display is, it's pretty crazy. The native resolution is 5,120px by 2,880px totaling some 14,745,600 pixels. Pixel density comes in at an impressive 218 PPI compared to 109 PPI on my current displays. I've looked at the 5K display in person; I can definitely tell the difference.

There's some technical magic in this display. At 60hz it requires somewhere around 26 Gbit/s of connectivity. You can't get enough bandwidth on current cables and ports. HDMI 1.x caps out at 8.16 Gbit/s and the new 2.0 spec caps at 14.4 Gbit/s. DisplayPort 1.2 caps at 17.2 Gbit/s and the brand new 1.3 spec is significantly ahead at 32.4 Gbit/s. DP 1.3 will be able to power a 5k display at 60hz, but it's not available on Macs yet, and I don't expect it until fall 2015 at the earliest.

All of this to say it's one of the best displays you can get right now, and when price-compared to the Dell UltraSharp 5K it comes with a free computer.

The Problem

I've been lusting after desktop Retina for years now, but it is a step back in some ways.

Specifically graphics performance overall is worse. It's not so much a failing of the machine, it's just pushing too many pixels.

Maxed out a new 5K iMac would have a Radeon R9 M295X 4GB. This is not a bad card. It is better than the GeForce GTX 680MX 2GB I currently have, but not by much. The 5K display is equivalent to four of my existing displays, and if I wanted to use my two Cinema Displays it'd be the equivalent of running six displays.

I just don't think the R9 would be up to gaming and not run into performance problems, nor would this upgrade fix any of the other issues I listed above. If I was willing to spend $3.8k on it I could fix the Boot camp SSD issue, but I'd still find myself unplugging arrays or monitors to get things done.

The Conclusion

A dedicated Windows gaming PC fixes three of my problems. I can completely eliminate the dual boot on the Mac eliminating two issues, and by having dedicated hardware I can get back to playing at high graphics settings. This also paves the road for me to get a 5K iMac later down the road as graphics won't be as important without gaming.

I'm hoping that one day the performance catches back up where I can go back to having one machine, but for now two machines is the better option.

Backing Up My Computer: A Strategy

I've lost data.

I think most of us have lost data at some point and I want to help people avoid it going forward. So to start off there's a few things to note about data backups.

You should have multiple backups. Backups can be out of date, corrupt, or otherwise unusable. It's also possible backups can be lost at the same time as the source data.

This is also why 'raid is not backup' is a popular phrase in some circles. Raids can seem like a backup but it's possible (even likely!) that you'll lose multiple disks in the array in quick succession. Without multiple backups there is a good chance you'll lose everything anyway.

You should have local and remote backups. If all your backups are local you're still vulnerable to data loss in the event of disasters like theft or fire. If all your backups are remote there are slowdowns when both backing up data and restoring it.

Slow data restores are annoying, but manageable.

However, when backing up data there is an unrecoverable window before data is backed up. The longer this window of time the more data can be lost when your primary storage goes down. Local backups allow this window to be minimized.

Backups are not backups unless they're restorable. The first time I backed up a machine I was 12 years old. This may sound like some great statement of accomplishment, but it's not.

While exploring the capabilities of the system I deleted everything on the hard drive (I was only 12 after all). Backup in hand I felt confident, but unfortunately I had no idea how to restore it or even what application I used to create it.

This is just one way backups may be useless. Backups can be corrupted or messed up in countless ways. It's important to use methodologies that are tried and true. Some common backup utilities have horrific reliability records.

You should also test backups periodically. You should, but realistically I don't expect people to actually do this. The likelihood of people testing is why I rate having multiple backups and the methodology choice as more important decisions.

My Data

I use a Mac as my primary machine. The rest of this post is going to somewhat reflect this. Some of the advice I give will apply if you have Windows, some wont. Regardless the spirit of what I do is the important part.

My data is divided into two major parts. First I have a primary drive which houses the Operating System and the majority of my applications and games. For me this is a 1TB Fusion Drive.

Secondly I have a media drive which houses iTunes library and other similar massive data sets. This is housed in an external Thunderbolt 2 enclosure on a set of four 4TB drives in a Raid 10 array. This gives me roughly 8TB usable.

My Backup Strategy

I actually have two separate strategies.

The Boot Drive

This is my critical data: documents, applications, configurations, my work, my life. I keep three different backups of this data.

First I have a 3TB external drive that I use as a target for Time Machine. This is the native OS X backup solution. It is powerful, reliable, multi-purpose, and revisioned. It keeps old versions of files around for years if space is available. This tier handles several problems stated above. It's local, has a known format, is easy to recover from, and keeps the unrecoverable failure window to (roughly) an hour or less.

Second I have a 1TB external drive that I use for Super Duper. It's a funny name, but it does something pretty incredible. It creates a bootable clone of primary drive. I can, and have, boot into the clone and copy it back to the main drive. This serves most of the same problems as the Time Machine backup, but the failure window is a day or so. Losing a day of work could be devastating, and way more expensive than an extra external drive.

Third I have Backblaze. This piece I use for both drives, and I'll mention it more below.

The Media Drive

This data I frankly consider less critical. I can restore just about everything on here without any backups given enough time, but it's a major hassle to get it all back and straight again. Consequently I have less protection on this data.

As mentioned this data is stored on a Raid 10 array. The raid is my First tier of backups for this drive. I know that 'raid is not a backup', but when used correctly it actually can be a good first step.

I could write a whole post about Raid setups and how to use them effectively. The short story is that Raid 0 is horrific for data reliability, Raid 5 and 1 have rebuild issues if the disk is bigger than about a Terabyte, and Raid 6 and 10 are pretty good. Raid 6 has less waste, but only past 4 disks. This is why I used Raid 10, although honestly Raid 6 may have been better from a fault tolerance standpoint.

As mentioned earlier I use Backblaze for this drive as my Second tier backup.

My Recommendations for You

My setup is probably too complex for most users. Especially those who may not be the most tech savvy. So here's a few basic recommendations for you to take away from this ramble.

First sign up and use a cloud based backup. I've used several, and obviously I recommend Backblaze.

  • It's affordable at $5 a month per computer. There's no per gigabyte storage costs.
  • It's native on multiple platforms; heavy cross platform apps bother me.
  • Uploads are not throttled on Backblaze's end.
  • Restores are straight forward downloads.
  • If you need 'fast' recovery of a ton of data they can ship you a drive (for the cost of the drive).

Full disclosure the links I've been putting here in Backblaze are referral links. You use them, I get a free month. You don't have to, but it'd be appreciated.

Second use a local backup too. On a Mac Time Machine and Super Duper are both great options. On Windows there's a built in option, but discussions with many people tell me it has questionable reliability. There's a lot of other off the shelf options, but I'm not sure which to recommend. Having one at all is more important than having the best. Don't less analysis paralysis stop you.

I hope this post helps at least one person avoid losing data whether it's your saved games, hours of development, or your kid's birthday photos.