Matt Hackmann


The thoughts and goings-on of some programmer dude.

Another Letter From the Past

Not sure how I missed it last year (or two years ago, I suppose), but my annual message to myself was delivered this morning. I've been looking forward to this one particularly because I was in a sad state this time last year. And it sure does show.

Dear FutureMe,

Haven't sent one of these in a while... well, I think I have, but I'm not convinced I've just not received them. Regardless...

2016 and 2017 certainly weren't the bounce back years I was hoping they'd be after the shit-show that was Voyager. HUE was good for a while, but knowing that winning just wasn't in the cards for that team (because needing to support every team in the company is hard), I'm about to bounce back to a product team. I'm apprehensive, as I usually am, but feel that's where my strengths lie. I'm also very mildly optimistic that it'll make the path to Staff level promotion easier. Not calling a prediction either way on that, but I anticipate that LinkedIn will still very much be in the cards by the end of 2018.

Of course, the biggest thing mentioned in these letters is my love life... well, lack thereof. At this point in time, [REDACTED] is the current "offering" in a year that's seen many "offerings" with little return. I like hanging out with her, for sure, but feel like I'm failing at the "long distance" thing. To be quite honest, I'm really really skeptical that anything would work out long term. Short term? Sure, can see that happening so long as I keep up my side of the bargain. But the doubts are great and I'd honestly be surprised if she's still in the cards come this time next year. Hopefully if that doesn't pan out, somebody else will have.

Other things on my mind right now are that YouTube channel. I don't really believe in it's possibility of wild success, but hopefully will have given it legitimate effort instead of heading myself off at the invisible pass. Electronics work has been the only thing to give me any kind of thrill in quite some time and combining that with some reasonable production value editing would be worth the effort.

I guess the last major thing on my mind is how that counseling is going. To date, it's given me some things to think about, but I don't know that I've really felt any change positive or negative that's worthy of note. These things take time, for sure, so maybe there will have been movement there in the span of a year.

Also, here's a coded message: penny for your thoughts? Wonder how that's going to go...

Okay, future self. You look back on this and contemplate. In the mean time, I suppose I'll be making the journey to where you are.

Oh man. Lots to unpack here.

First up, that bit about work. Looking back, it's interesting to see that I'm still mentioning Voyager at all. When I wrote this letter, that project was over two years past and I'd been working in a post Voyager world longer than I had pre-Voyager. It's definitely a good scapegoat for things I didn't like at LinkedIn because so many things changed. But, whatever. More interesting is the note of me jumping away from infrastructure work back on a product team, Learning Enterprise specifically. That indeed did happen and it was... okay. The team that I worked with was absolutely fantastic and I hadn't had that much fun since my days on Profile. The work, however, was stressful as hell. Indeed, I was back to making websites, but the deadlines were absurd causing the final product to be something I couldn't be proud of, mostly due to feature cuts along the way to meet the deadline. Between that and a couple of long time friends making their leave, I too exited and made my way to SurveyMonkey where I'd been referred by another good friend. The difference between the two copmanies is insanely profound, with SurveyMonkey being (at least so far) much more chill be comparison. It's not perfect, but the reduced stress (and commute) is a wonderful, wonderful thing.

Now we move into the part that I was most interested to read about and... man. It delivers. 2017 was an absolute abysmal year for my dating life. For a solid eight months, I never made it to a second date with anybody. Of the nine or ten women I chatted up for dates, I ended it with one and a half (the latter was a mutual ghosting). Of the others, only a couple flat out said "no" and the remainder just ghosted me. The whole thing was emotionally draining and quite demoralizing, so I finally just quit trying at some point. Probably right around the time I checked myself into therapy. On the last evening of my Japan trip, I was in a bar in Asakusa when a message came in on OkCupid. She too was a Japanophile of some note and, under the influence of a few gin and tonics, I began drafting a response for me to review when I'd sobered up... except I accidentally sent it. That lead to a few dates with "REDACTED" and we were actually hitting it off okay... except something felt off. I couldn't put my finger on it, and you can see that manifest in my letter above, mostly in the form of me showing no confidence in myself. We kept in contact for a month or so after this letter was written, but never saw each other again. After some sussing things out with my therapist, I came to a couple of realizations:

  • I had a couple of legit hangups with her character, but because everything else seemed okay, I was denying myself that thought and internalizing the stress from it
  • I didn't actually want to be dating at the time. In that session, I was nattering on a list of excuses when my therapist interrupted with "maybe you just don't want to date right now" to which my brain stopped dead in its tracks. I'd literally never considered that before.

I mulled on that a bit and decided that my therapist was right and I ended future dates. My biggest regret (and now running joke) is that I'd left my prized purple sunglasses in "REDACTED"'s car on our last date and I was forever separated from them. There's a happy ending there, though, as one of my brother's surprised me with a new pair. Sunglasses aside, I've only very recently thrown myself back into the dating pool. I've thrown a lot of my previous mental rules away and am just trying to go with the flow. I often have to verbally remind myself not to worry about and to stop treating the whole dating process like a game, where I need to say/do the right things to get to the next level. Good relationships sure aren't built off that...

YouTube! That paragraph is mostly accurate, though I did manage to pump out one episode of Hakk's Lab that I'm pretty happy with. I've got a few projects lined up now that I should be able to shop around for views without biting off more than I can chew... probably...

Regarding the "coded message", I'm not entirely certain what this is referencing, but I have a hunch. And if it's that hunch, then things are going even more spectacularly ridiculous than I could ever have imagined. If it's not that, then I've no clue what the hell I'm talking about.

Sweet, that's gone on for a long time. I guess I'll go write myself a letter for next year. With this being the first year approaching the end of the tunnel (or exiting it, even), 2019 could be very interesting indeed.

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


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.