Matt Hackmann

MattHackmann

The thoughts and goings-on of some programmer dude.

A Nostalgic Critique

The landscape of internet videos ten years ago was very different. YouTube was naught but three years old, and most of the content I consumed from it was in the form of sketch comedy skits (possibly due to the 1GB/11 minute limits of the day). Long form content just wasn't a thing, it was almost the stream of consciousness of the fledgling internet. So, when I stumbled across this thing called the "Nostalgia Critic", a series that review movies of the 70s, 80s, and 90s, I was intrigued. And then hooked.

I can't remember what my first Nostalgia Critic episode was, nor how I'd even heard about it, but I was on board pretty early in their run, some time in 2008. This was during the last several months of college for me, and was my first foray into "critical analysis" as an entertainment medium. Critique was always the part of school I dreaded, as I had (and still have) a difficult time formulating my opinions as a coherent stream of words. To see this person throw up videos upwards of twenty minutes and methodically walk through movies and critique them - all while actually being entertaining - was something I latched onto. At the time, I doubt I recognized that particular aspect, but in retrospect, the effect is publically noticeable. The amount of movie, anime, and even music I've reviewed since is kind of staggering. Hell, I even made that awful top five anime video. Now, I'm not going to pretend any of these are good or worthy of time, but there's clearly a trend that can be traced back to Nostalgia Critic.

Getting back to that part about YouTube and its dearth of long form content, the creator of Nostalgia Critic filled that gap as well in the form of That Guy With the Glasses (TGWTG). This was the website upon which Nostalgia Critic could be found, but also was the home to other content creators in similar vein. Lindsey Ellis, under the name of the Nostalgia Chick, was intended to be the female counterpart to the Critic; Todd in the Shadows discussed and analyzed popular music; the Cinema Snob was an overly sarcastic dude who reviewed obscure movies and, at one point, also did food reviews (another thing I tried to rip off in awful video form). TGWTG was a daily stop for me as I watched these creators do their thing but also bleed into each others worlds in the form of crossover videos. It got to the point that there was almost a familial feel to it, a party of friends that one almost felt a part of by simply watching.

To that point, TGWTG themselves began putting out a yearly anniversary video in which all these various characters would come together in one spot and make a movie. A really bad, poorly written, poorly executed movie. This is the point where I began losing interest. The first two movies I enjoyed; seeing everybody seemingly having a fun time pulling this together and also my own naivete made me forgive or completely overlook the sad quality of the actual content. By the time the third one rolled out, however, I wasn't nearly as forgiving. At this point in my own life, I'm employed, living on my own, and almost completely changed from the person who began watching the site as a college student. To see that this movie was still a bunch of people running around in a forest, wearing embarassingly poor costumes, delivering lines and jokes on par with my own Episode VII treatment... it was a glass shattering moment. Either I'd changed so much that I finally saw TGWTG for what it had actually been all this time, or they'd simply failed to improve in all the ways you'd expect a highly popular group to do over the course of a few years. Honestly, it's probably a little bit of column A and column B; I'd grown up and TGWTG had not.

Days became months. Months became years. And some things... were forgotten.

I don't recall how I found out about it, but a couple months back wind of troubled waters at TGWTG (now titled "Channel Awesome") caught my attention. I hadn't given that site a single thought for well over six or seven years, having moved on to much better produced content in the intervening years. A document came forward from the people I'd used to watch on TGWTG, discussing how awful it was work with the media aggregator. Everything from gross mismanagement, to poor conditions on the sets of those awful "movies", to embezzling Kickstarter funds, to allegations of one producer engaging in sexual creepiness (for this one, all names remained anonymous). It was kind of a confirmation of the feelings I'd had years ago when I'd dropped the site entirely.

And that was only the beginning of the roller coaster ride.

I became addicted to the situation as it was unfolding on the Channel Awesome subreddit. I could literally sit on the page, refresh, and something new would happen!. First was the non-apology stating that the owners of the site were "sorry [the producers] felt that way", which of course became a fire storm (and a meme). Following this, people who still contributed to the site started leaving in droves, which was exciting to watch. Every day it was "X, Y, and Z have left the site!", and it wasn't small fry contributors, either. Some of their largest producers were bailing ship and adding their own stories to an already length document of allegations. Then, one night as I was on my couch refreshing the page again, the Tsar Bomba of all posts from TGWTG dropped.

"Our Response" (I realized as I pasted that link that it's not even SSL... these fucks really have learned nothing...)

The above article, penned by some higher echelon douche at TGWTG, cherry picked a few of the complaints laid out in the Google doc and tried to refute them, using comical, middle school tactics.

ACCUSATION: Blog poster Matt Hackmann stated that TGWTG displayed that they never "grew up" or improved and that our rebuttal tactics are middle school level.

FACT: None of the owners of Channel Awesome even attended middle school, so we're clearly doing good!

Beyond the fact that this style of rebuttal proved that somebody with a hot head and no business or PR skills was the voice piece of the company, there was something far more damning in this article. Not only was it completely tone deaf to rising storm of anger and disappointment, but it actually reaffirmed many of the allegations put forth in the Google document. In an attempt to clear their names of negligence when it came to the above noted producer who was being all sexually creepy, they accidentally outed the name of the producer that was engaging in such conduct. Even worse, the allegation they were responding to wasn't the same allegation the were providing evidence for. Turns out the guy was a full on rapist and they knew!

Gross incompetence like this doesn't just grow on trees, ladies and gentlemen. This is something you're genetically born with and is encouraged through a poor social environment.

The few days that followed this bombshell was nothing short of pandemonium. All but two producers abandoned the site entirely (one of which is just hanging around for kicks and giggles) and the subreddit exploded in a series of memes and posts of people who'd genuinely had their feelings hurt. They looked up to the Nostalgia Critic, as I once had, but they'd not yet gotten to the point where they realized he was a hack fraud.

This is a sentiment I completely understand. I remember telling people back in "the day" that I couldn't ever see myself not watching the Nostalgia Critic, because the content was entertaining and I figured if they stayed the course, it'd continue to be entertaining. But, as this lengthy article has made abundantly clear, that wasn't the case. I changed, as people do, and they didn't. Well, they did, but they their course change really only drove home how much of a lack of skill was at play. So bad was it, that after the Nostalgia Critic was officially retired, they had to resurrect it because the new stuff was just that awful.

In the end, I don't really know what the point of writing this is, but the whole debacle lately has enraptured me so much that I wanted to get it all down in writing for posterity. I'm sure that the people I consider to be super awesome now will not continue to be, only joining me and enriching my life for part of the ride before I or they take a different exit. Because, that's how things go. People change and the things they associate with change as well. The things they love change.

Time marches forward.

And then we die.

How I Saved Hundreds of Dollars by Writing Unit Tests

There's so much clickbait hyperbole in that title, it makes me sick. A more accurate title would be "how I saved hundreds of dollars by actually planning my crappy code... and then verifying it through tests". The world doesn't need another article about "test driven development", but I'm writing one that touches on those points anyways.

To quickly catch folks up, I run an image hosting/reverse image search site on the side. As it's gained traction and grown, things like server disk space and bandwidth caps have become very real issues. I get quite a bit of bandwidth per month from my webhost for the price I pay, but not enough disk space to hold all hosted images. On the flip side, AWS provides lots of cheap storage space, but gets super expensive at the amount of data I push over the pipes every month. If the AWS price calculators are to be believed, it'd be on the order of $1500/mo, which is about ten times more than I'm paying currently and would not be sustainable, even with Patreon supplementing the funds. By bringing in an additional server, load balancer, and doing some work to keep fresh content on the app servers and only make requests to AWS on an as-neeeded basis, I managed to have most of the best of both worlds. Everything was great and all was right with the world.

Until it wasn't.

Continue Reading

Setbacks

The last few days have been kinda "meh" on various fronts. Just when I think I'm making or about to make progress on something, WHAM! Something's in my way ruining those plans.

Hakk's Lab Episode 1

The first episode of Hakk's Lab is supposed to be a rebuild of the power/video board on my Famicom (partially because I destroyed the original one). Those screenshots I've been posting of PCBs was supposed to be for that, the idea being I was going to mill the board on my PCB because it seemed the easiest. To that end, I began getting the CNC machine set back up... and then my garage computer died. Replaced the garage computer, updated my CNC to the latest firmware and... it suddenly doesn't know how to move anymore. Do a bunch of googling, fix the issues with the motor direction and things are looking good... except now my Z axis is unable to move more than an inch down. I don't even know where to go next without taking the whole machine apart... well, fuck.

Hakk's Lab Episode 1 - Alternate idea

Itching to just get something out, I dipped into a different episode idea: modding a Super Game Boy to fix the clock speed problem... and that went really well! All the filming got done, the mod itself was pretty much there... and then it didn't work. Okay, cool. Just fix it up and leave that part out of editing. Oh... I just broke one of the pins off of this surface mount chip and now the whole cartridge is basically ruined... well, fuck.

React RFC

This one didn't have any real surprise behind it, but the RFC for React I created the other day was indeed rejected. Not for any fault of mine beyond the idea goes in a difrection that React doesn't want to. A fair point, but now I've got no clean way forward for bringing back the RSS feeds... well, fuck.

Arguably, these are very comfy problems to have, but it's getting annoying having stuff constantly derailing me as I've finally mustered up some resolve to do them. To the Hakk's Lab thing, I decided to go with my initial idea but just etch the PCB in the old-fashioned way with caustic chemicals. Hopefully that goes a bit better.

Writing Down the Mental Paper Trail

As has become typical in my annual performance review, I got dinged for not better documenting my architecture plans for various work things. I can certainly argue that the expectation wasn't necessarily set well or that the work didn't necessarily require the time and effort to write hollow words simply for the sake of a paper trail, but that's not why we're here. The sentiment is certainly not wrong. I have a tendency to refine an idea in my head and then immediately jump into code, either implementing exactly as I figured it'd go, or pivot as needed. As a friend observed, "i think hakk just does shit and sees what sticks and iterates".

I'll admit, there's a time and a place for both mentalities. When working on something large, it's probably better to actually document at a high level the whole notion. We in the industry call this an "RFC", or "request for comments". The idear being that others look at this document and then are able to begin a discussion on potential issues and, in the end, suss out all the pain points before actually speanding time spinning wheels on implementation. It's also a good indicator of the amount of effort a feature will require, a good thing when trying to decide what and what not to work on. This paragraph full of business buzz words basically describes the position I'm finding myself in on my new team. I hate it because I have no confidence in my ability to actually document such things in actual words, but it must be done.

All of that to get to the actual point of this post: trying to bring back the RSS feed. I was happily chuffing along and ran into a major wall: React really does not like doing things that are HTML-like but not actually HTML. That is to say, HTML has a tag called link and it cannot have any children, similar to more frequently used tags like img and input. These are known as empty elements. Now, RSS also specs out a link tag, and it's used for linking to the blog it represents and each individual post item. Unlike its HTML counterpart, the RSS link tag wants... will a link as its child content. And, with React in its current state, this is simply impossible. It's enforcing very strictly the rules of HTML, as well it should.

Now, despite being owned and mostly developed by Facebook, React is an open source project. This means that all the source code is freely available and anybody is allowed to contribute back to it. I pulled down a copy of the code and began setting about figuring out how to allow me to have my cake as well as consume it. As I started zeroing in on the solution and creating that mental plan, I decided to check out the contributing guidelines for React before submitting my pull request. Per that doc, they recommend opening an issue for new features to begin a discussion about what's to be implemented: an RFC.

....sigh. Fiiiiiiine.

Some time was spent ensuring that I adhered to the format they'd laid out, and ensuring that the issue was well described, my reasons for wanting to change made clear and validated with an example, and a thorough explanation left of how I planned on implementing my idea. About thirty minutes later, I had a lovely little proposal written and hit submit... and then I immediately wrote all the damn code (including unit tests) just to see it work.

Overall, I'm pretty pleased with the RFC that I drafted and it felt good being able to articulate what it was I wanted to do and why. I honestly have little faith that I'll get the blessing from the Facebook gods to add this, but if I do, I get my name attached to one of the most used and well liked JavaScript projects ever created (I'd say only jQuery beats React at this).

After that, I guess I can just retire.

March Madness

I missed a few days, sue me.

The reason for that, actually, is because I was up in the mountains of Tahoe on a trip bonding with my new team. This was a great success as I got to meet many people and, more importantly, connect with them. Alcohol does that so, so very well. This trip ticks off yet another thing that has been planned for this month.

Next weekend, I go to Tahoe again, but this time with old friends. One of those is one of the usual ski crew, who is also bringing his kid this time. Joining us is one who's done fewer things since having a kid of his own, so it'll be nice to hang out with him outside the confines of work. Another is visiting in from Las Vegas and will be experiencing true snow for potentially the first time in his life. He's from Hawaii and then lived in Arizona, so the opportunities to experience the wonders of semi-frozen water have been few for him. These are some of the chillest people on the planet and I think a good time shall be had by all.

The week after that, I'm once again spending part of a weekend outside my home base of San Mateo. I'll be joining aforementioned ski fellow on his dream trip to golf at Pebble Beach down in Monterey. Over the last few months, I've come to enjoy golf as both a great opportunity to down some beers and drive buzzed, but also escape the nonsense that is my overactive brain. The sport itself is fine, but I enjoy the things around it vastly more. I'll be spending enough time down there to also do some sight seeing and probably visit the aquarium, which is a thing I've been wanting to do for nigh five years now.

Jumping back to this weekend, it'll be a bit more chill. I'm planning on getting the CNC machine back up and running and (with a bit of luck), getting that first episode of Hakk's Lab in the can. Even if I just get the CNC machine back into a usable state, I'll be happy.

So, yeah... March is shaping up to be kind of busy. I think I'll probably be a bit more chill come April.