It's a Date

Hey, I’m Jim! I’m not the regular author of this blog, nor do I know as much about movies or metrics as Nick. However, he was still kind enough to lend me this space for a minute to share one of my musings.

Tracking The Office

It always happens to me halfway through binge-watching a show. I see Rick Grimes six-gun another ~~zombie~~ walker in The Walking Dead and I think “I should have been keeping track of his kills this whole time”. Or keeping track of the rules to True American in New Girl. Etc. But by the time I think to do this it’s too late, and I don’t watch shows over again – at least not paying the same amount of attention.

But if there’s one show that’s good enough to warrant multiple rewatches, it’s The Office. I thought about what I could measure – there’s no killing (at least [1] nothing [2] confirmed [3]), and most of the silly games only last one episode. Despite how amazing The Office is, the plot itself is pretty boring. So, I decided to make an equally boring choice and keep track of which dates and days of the week episodes take place. It isn’t a zombie body count or a game to play with friends, but it’s still a) The Office, and b) data, so it’s fun (for me).

Crude Sprite Prosthesis

Motivation

So I stumbled across a YouTube video a good while ago that had me transfixed.

The idea was so simple and so amusing that I knew it'd be an excellent candidate for a quick hacking session. However, when I sat down to actually make it happen, it turned out to be deceptively tricky.

Here's what I figured out:

War. Huh. Good God. What is it Good For?


About 250 turns, apparently.

Motivation

My friend Scott and I sat down at our weekly Trivia venue about 20 minutes before showtime. "Hershel's said he's gonna be a bit late, he got held up with something." No bother. Busy job, these things happen.

We hurriedly ordered a couple beers apiece while they were still on Happy Hour and spent the next while eyeing the front window, waiting for our third finally wander in.

For my money, the hardest question of the night is always "What the hell is our team name gonna be??" We waffle for almost literally the next 20 minutes and finally settle on Snape Kills Dumbledore on Page 596 (one of our better ones, tbh). And like clockwork, in walks Hershel right as we're turning in our registration. "Hey, sorry. Got caught up in a really exciting game of War."

And I about short-circuit at the unintentional oxymoron.

Ruff Style Transfer

The last couple months have been blog-dark as I worked through the Deep Learning Specialization on Coursera. After the first couple courses of fundamentals, we brought some practitioners on site at work to give us a two-day-long bootcamp on a whole range of topics. I've since worked my way through the next couple of courses regarding project structures and computer-vision applications; I also got my computer doing all of my model-training on my GPU (which equals dramatically-faster code!).

Getting handy with Deep Learning techniques has been a goal of mine for some time now and so I'm excited to be able to start sharing some of the stuff I'm figuring out.

Overview

This is an alarmingly-reductive representation of what's happening under the hood, but if you're not familiar with Neural Networks/Deep Learning, the idea is that you feed some data in on the left, it comes out on the right with some sort of prediction. Along the way, Data Science™ happens as a result of our model iteratively figuring out the equations to affix to the black lines and blue circles. Provided that we give the program enough data and let it run for a long time, it can "learn" some really complex behavior.

An interesting application of these techniques is called Neural Style Transfer where basically, we crack open one of these structures, show it two pictures, and let it figure out how to splice the two of them together by borrowing the Content from one and Style from the other. Some of the more famous examples look like the following:

Screenshot taken from Course 4 Week 4 of the Specialization linked above

But this isn't intended to be a tutorial post (that's been expertly done here and here). Instead let's look at some of the more ridiculous applications I've stumbled into!

Looking at Lots of Letters

Of course, since I'm learning a whole lot during the day, my constructive extracurricular work has fallen to the wayside. And in turn my decompress hobbies have picked up in a big way. Since the middle of June, I've burned through:

  • Mario Rabbids for the Switch: Weird and fantastic
  • All 100-something Marvel Civil War comics and many others: Turns out comics are pretty cool. Who knew?
  • Bloodborne on the PS4: It took three, multiple-month quits before I finally got gud.
  • A good deal of skin: I've still got signs of the sunburn I got beginning of the month, lol

And last, but not least, my good friend Will recommended that I check out Daniel Kahneman's Thinking Fast and Slow. We've compared notes over the past few years on all things mental health, imposter syndrome, and Internet garbage. He was instrumental in helping me get a standup routine together that seemed to go over well-enough, and we're often thinking on the same wavelength. So when he made a book recommendation, I was certain that it would be a quality one.

Nevertheless, I didn't even make it through the introduction before I found myself itching to do some tinkering over a couple sentences that I read, lol

That's What They Said

The Office has been one of my all-time favorite shows since I caught the "Michael Scott's Dunder Mifflin Scranton Meredith Palmer Memorial Celebrity Rabies Awareness Pro-Am Fun Run Race for the Cure" episode back in 2007. It's absurdly quotable, it's lousy with memorable characters, and it's got one of the best finales I've seen of any show.

No Spoilers.

Why I Switched to Python 3

It took me almost a year and a half of tinkering around in Python to make the jump from 2 to 3. I'd initially picked up Zed Shaw's Learn Python the Hard Way, which was written in 2.7 (but has since been updated to 3). From there, I read through Wes McKinney's Python for Data Analysis (which is also enjoying similar updating). I learned 2 and so I worked in 2. Things were cool.

However, by the time I wanted to start branching out and doing some work with Anki, I had run into my first "library not supported for Python 2" issue.

So I reinstalled Python, begrudgingly started wrapping my print statements in parentheses, and started to poke around in some of the things I'd gain from making the jump.

But before I share what ultimately brought me around to becoming pro-3, there are two important things to note if you're new and considering "Which version of Python should I use?":

I've probably had a few-dozen conversations in the last year where I've said "Just trust me and download 3." And so I wanted to take a minute to highlight a few things that helped me embrace my own cut-over.

Best Picture Consolation Prizes

Last Time on Dragon Ball Z

I sat down to figure out when the announcements for this year's Academy Awards nominees were coming around. Some "basically-napkin-math" later, I'd narrowed it down to three dates:

  • Tues, Jan 23rd
  • Thurs, Jan 25th
  • Tues, Jan 30th

Poking around a bit further, I found some really weird year-over-year shifts in the dates that they'd announced in the past, as well as some uninspiring numbers regarding viewership in recent years. If the Academy's job was to get people interested in watching their show-- movie enthusiasts and casual viewers alike-- they weren't doing a great job.

A Different Kind of Oscar Prediction

I sat down the other day to start piecing together a tentative "Best of 2017" list. It's been a busy year and I didn't get around to seeing everything that I'd meant to, and it occurred to me that making such a list before seeing like a dozen good movies feels like a miss. Which isn't really a huge issue-- most of the gaps in my watchlist have only just started screening near me. Still, the question remained of "what sort of arbitrary deadline was I going to hold myself to?"

To that end, it felt like the Academy Awards were probably a good a cutoff point as any. But when are those again? I checked out their site and turns out they're on March 4th this year. Which was a lot earlier than I would have guessed. They must be getting ready to announce nominees soon.

So When?

I thought it'd be a fun, dumb little exercise in making an educated, data-driven guess. So I took to all of the various Wikipedia pages and started manually tabulating historical announcement and award show dates by year, going back to 1990.

DMV Paradox, with a Side of Hash

Not necessarily related mood music. If this sounds like your thing and you're in SE Michigan, do yourself a favor and check them out.

Anyhow, I was out doing some errand running a few months ago and happened upon a dumb application of a famous math problem you may have heard of. I've wanted to get a post about this for some time now, but as I wrote, I realized that some of the math in this unrelated problem helped inform some intuition regarding a CS fundamental I've been tinkering with a whole lot lately.

The Birthday Paradox

Perhaps you've heard of the Birthday Paradox. Essentially, it states that if 23 people are in the same room, it's more likely than not that two of them have the same birthday. Moreover, if you have 75 people in the room, you can be 99.9% certain that at least one pair of them share a birthday.

This might not be immediately intuitive (hence the "paradox" part). I think mentally, everyone would easily accept 366 people in a room as a guarantee to see at least one pair, but to unpack why you can be half-certain with dramatically fewer people, you need to consider two things: