Social Media Update

I’ve deleted my Twitter account, which had my actual name. There’s a radio show host in California that’s also named Brian Copeland that was probably very upset I got @BrianCopeland earlier than him – he had to settle for @BrianCopie.

I’ve deleted my reddit account. I was /u/jhinra for 15 years, reddit was one of the first websites I really engaged with. I paid money immediately when they started the Reddit Gold program. I participated in Reddit Secret Santa, and was proud to call myself a redditor.

Both platforms brought me immense joy. I remember live-tweeting my jury duty in New York during grad school. I remember when my Power Point slide for Alicia teaching her coding went viral and was on the home page.

But more and more, I don’t want to participate in social media platforms that don’t care what I want. I don’t want suggested posts. I want to see stuff in reverse chronological order. I don’t want to make a political statement by actively participating on a platform.

I’m told there’s a phrase for this new phase of social media, enshittification. I feel it whole-heartedly.

I’m not sure where the internet is going, but I know I’ll be here, on my own website, without ads.

Hard Seltzer Tasting

Hard seltzer is seltzer water with alcohol. It’s a malted beverage, created in a similar way to beer, so it’s not technically liquor.

And it’s huge.

This past Friday, I felt a “tasting” itch. I used to host tastings a lot. I’ve done tastings for:

  • Scotch
  • Butter
  • Gin
  • Chocolate
  • Vodka
  • Sparkling Water
  • Cheese

It’s just so much fun! I think I first learned to like scotch whiskey by trying several samples in succession. Even the butter tasting showed that there’s dimensions to butter you might not normally notice.

Early in the summer, I had held a quickie tasting between Truly and White Claw, two of the biggest hard seltzer brands in the game. But two brands isn’t quite enough, so I hit a few liquor stores and found eight.

The Brands

In alphabetical order, here are the eight candidates (Images courtesy of brands or totalwine.com).

Bravazzi Hard Italian Soda – Blood Orange
Bud Light Seltzer – Strawberry
Crook & Marker – Black Cherry
Fulton Hard Seltzer – Blood Orange
Pabst Blue Ribbon Stronger Seltzer – Lime
Smirnoff Seltzer – Blood Orange
Truly – Wild Berry
White Claw – Black Cherry

The Methodology

We had six participants (well, seven, but one couple shared and ranked together). Each participant received a white 3oz plastic cup with a letter on it (in random order, participants were not aware of what brands were involved). One at a time, each participant received a cup, tasted it, then decided where the newest drink ranked among previous drinks served.

Other caveats:

  • This was single blind, but I was aware of each flavor as they were presented and also a participant, so my rankings are potentially biased.
  • Ties weren’t allowed.
  • Participants did not need to finish each drink before the next came. As such, many participants kept at least half a cup to compare and contrast at the end.

The Results

There are a lot of ways to consolidate rankings, but here’s four, where 1 was considered the “best” and 8 was considered “worst”, so smaller scores are better:

It’s pretty clear the Bravazzi Hard Italian Soda won. It got two first picks, three second place picks, and the worst was two picks at third place. One participant mentioned that perhaps “Hard Italian Soda” is fundamentally different than a hard seltzer.

Smirnoff Seltzer scored the worst, but only because Bud Light Seltzer was saved by a single participant that loved it and ranked it first. So let’s call Bud Light Seltzer polarizing and dump on both brands.

Most interesting for me is that Truly beat out White Claw. In my previous head-to-head competition, White Claw won.

Data is available here, if you were one of the participants and curious what you personally picked.

Neighborhood Art

Like all of you, I’ve been out walking the neighborhood significantly more than ever before. I’ve previously featured street art from NYC on this blog, feeling pretty jealous of all the art everywhere in that city.

Turns out, there’s plenty of it here. Here’s some of my favorites, just to give South Minneapolis a little bit more art cred.

Side of BlackEnd Tattoo, 23rd Ave and 38th Street
28th Ave and 38th Street
Side of Hennepin Overland Railway Historical Society, 25th Ave and 38th Street
24th Ave and 39th Street
Side of Ted Cook’s 19th Hole BBQ, 29th Ave and 38th Street
Side of Vintage Music, Cedar Ave and 38th Street
Standish Cafe Mural, 24th Ave and 38th Street

The Reverse Geocache Puzzle

You’ve heard of geocaching, right? Go to a location specified by GPS coordinates and find a hidden cache?

Mikal Hart created a box with a GPS inside that only opens when the box is at a set of GPS coordinates.

…a puzzle box that won’t open until it is taken to a certain location.

Quoted from http://arduiniana.org/projects/the-reverse-geo-cache-puzzle/

It’s such a cool idea, I really want to be the kind of person that makes something like this. I especially love the end of his writeup:

This little box is a novel way of combining a GPS, a servo, a button and a display. How many more marvelous combinations lurk out there, if only someone has the imagination to put them together the right way?

Quoted from http://arduiniana.org/projects/the-reverse-geo-cache-puzzle/

Fizz Buzz Enterprise Edition

This one’s hard to explain unless you’re a programmer, so bear with me…

The first thing you learn when programming is how to print “Hello, world!”. Very shortly afterwards, they teach you to do something slightly more complicated, the “fizz buzz” problem, meant to teach children about division:

[Children] generally sit in a circle. The player designated to go first says the number “1”, and each player thenceforth counts one number in turn. However, any number divisible by three is replaced by the word fizz and any number divisible by five by the word buzz. Numbers divisible by 15 become fizz buzz. A player who hesitates or makes a mistake is eliminated from the game.

quoted from https://en.wikipedia.org/wiki/Fizz_buzz

It’s not meant to be hard, just a toy problem to program. The code you write should output something like:

1
2
fizz
4
buzz
fizz
7
...

Working in Corporate America™, you code differently. Clear, concise code doesn’t get you ahead: “scalable”, jargon-filled code does. You’re supposed to write code that can run on computers around the world and serve billions of users. If one’s code is too simple and straight forward, the bosses will think one’s work is too easy.

Enter one of my favorite coding projects: Fizz Buzz Enterprise Edition.

FizzBuzz Enterprise Edition is a no-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes.

Project description from Fizz Buzz Enterprise Edition

Normally, fizz buzz can be written in a few lines:

for number in range(1, 100):
    if number % 3 == 0 and not number % 5 == 0:
        print("fizz")
    elif not number % 3 == 0 and number % 5 == 0:
        print("buzz")
    elif number % 3 == 0 and number % 5 == 0:
        print("fizzbuzz")
    else:
        print(number)

Fizz Buzz Enterprise Edition (FBEE) spreads this same logic across dozens of files. It’s really a work of art.

Now, explaining a joke sorta kills it, but here’s a few bullet points to help you get the joke. FBEE:

  • …is configurable to print on numbers other than 3 and 5
  • …can alter what “division” means
  • …has a rigorous testing package to ensure it performs accurately
  • …features a Contributor Code of Conduct

Not being a java programmer, my eyes sorta glaze over reading it. But I really appreciate the effort put into it. It’s also an open source project, which means anyone can contribute. This leads to a ton of issues raised by the community, such as #429:

It is apparent that people are pirating FizzBuzzEnterpriseEdition at an alarming rate, which the Accounting and Finance Team says is having a dramatic effect on our bottom line.

We need to look into options to protect our investment and our IP. I suggest some kind of Enterprise license manager with a USB dongle and quarterly subscription model.

Issue #429 submitted by drelephant

There’s a special place in my heart for a joke being taken as far as possible.

Woodburn Fractals

It’s a month into 2020 and I’m still clearing out my todo list. I don’t know about you, but I have a habit of bookmarking things I love with the intent of returning to them. But those bookmarks sit dormant and start to weigh me down with regret; why aren’t I doing cool stuff like this?!?

Because it’s a new decade, it’s time for a new approach. For the next several days, I’ll be blogging a few things I’ve stumbled across that inspire me. These are things I wish I had done myself, but it’s time to admit defeat and just admire the creativity of others.

First up is this amazing project where Kevindk9 saturates particle board wood in water, then uses a microwave oven transformer to burn beautiful patterns in said wood.

If you browse Kevindk9’s profile, it looks like he does a ton of cool stuff. Browse the gallery for some amazing close-ups of his work, then browse his profile for other crazy science-art. You won’t be disappointed.

2019 Recap

So, what’d I do in 2019?

Corn Palace of South Dakota, April 2019

Travel

You’d almost guess I don’t like Minneapolis the way I traveled last year:

  • Denver, CO
  • Sunnyvale, CA ( for work) x4
  • South Dakota + Wyoming
  • Anchorage, AK
  • Las Vegas, NV
  • Vancouver, BC, Canada
The crew at Mt. Rushmore

Ten Year Anniversary

In August, Alicia and I celebrated ten years of marriage with a trip back to Las Vegas, the same city we were married in 2009.

Elevator of the Aria, August 2019

Same city, but not the same place. We were married at the Wynn, which treated us great, but we thought it was time to explore the rest of Vegas. We stayed at the Aria for a full week, long enough for us to get bored of Vegas. Well, almost – it’s pretty sweet vacationing for a week.

Alicia is awesome and I’m lucky to have her.

Job Title Change

With no effort on my part, I changed titles from “Data Scientist” to “AI Scientist”. Title inflation, yo.

…well, to be fair, I’m doing slightly more fancy stuff than before. In November, I gave a talk at Sisyphus Brewing about Natural Language Generation, part of a series of Data Science talks sponsored by Target. My coworkers have an every-other-week series of talks where we’re expected to speak about something we are interested in.

I’ve previously written about Natural Language Generation on this blog when I tried to recreate the Burger Hunter. I had been reading a lot about OpenAI‘s GPT-2, which was “so powerful, they couldn’t release it.” That certainly struck me as marketing hype, so I spent some time investigating it and created a presentation about it. No original research, but fun none-the-less.

Digitizing Slides

I FINALLY transferred slides from my parents into a digital format. It had been on my todo list for years. Feels so good to have it done. Side benefit, it is so much fun to see photos of my parents from before I was born. Although it’s been awhile since I was a beard guy, there’s definitely a resemblance.

Without permission (sorry Dad), here’s a few of my favorites:

Okay, that’s not fair. Yes, there were way more slides of my father, but I should embarrass my mother too. Here’s my favorites of her (sorry Mom):

Other Random Stuff

Livia is a chunker
Happier than over having a house alone

Here’s some other bullet points from 2019:

  • Livia is living the life having a house to herself.
  • I replaced the flushing mechanism in my toilet at home, which was running too long. Yay for plumbing!
  • I was David Bowie for Halloween.
David Fucking Bowie
Halloween 2019
  • Went thru a vegetarian phase again over the summer. I seem to do this about every four years. It’s not necessarily for moral reasons, vegetables just help me 💩better.
  • Perfectly average performance at Fantasy Football, I got 3rd in the season and 5th in the playoffs.
  • Mentored my third intern at Target over the summer, for which I’m 3 for 3 getting my intern a position at Target. My fifth year performing intern on-boarding, too!

Not a bad year, eh? Previously, I’ve said my 28th year was my favorite, but I think 34 has taken the cake.

Carl’s Water as a Service

My buddy Carl was at Tableau Conference in New Orleans in October and noticed something strange:

Oct 23, 2018, 1:56 PM: The temperature of the water at the hydration station varies widely. One had the perfect sipping temp, but I forgot which one it was

He’s an old man at heart, so apparently this is what he is concerned about in New Orleans. He continued throughout the conference:

Oct 23, 2018, 2:33 PM: Update regarding current cup of water: a bit to cold

Oct 23, 2018, 2:40 PM: Current water: too warm

Oct 23, 2018, 3:14 PM: Current water: too cold. May mix it with the too warm water

Oct 23, 2018, 3:16 PM: Failure. Additional water also too cold

Oct 23, 2018, 3:22 PM: HUGE news… Current water: Just Right !!

Oct 24, 2018, 10:42 AM: Current water temp, quite pleasant

Oct 24, 2018, 10:58 AM: current water temp: just a touch too cold

Oct 24, 2018, 11:58 AM: Current water: waaay too cold

… you get the idea (as well as how hydrated Carl stays).

Anyway, these mission critical transmissions had a few problems:

  1. It’s terribly inefficient for Carl to have to type this out every time.
  2. Text messages are a push-notification thing, instead of a passive data collection method. Ideally, I could go check on Carl’s water temperature at my convenience, instead of being notified.
  3. There’s no real-time charting to track trends in Carl’s water temperature.

So I got to work. Presenting, https://water.copeland.bz/, Carl’s Water as a Service!

It’s a python flask app with a sqlite3 database on the back end and the graph is powered by D3.js.

For Carl’s input, I wanted to to be as simple as possible. To update the world on the temperature of his water, Carl goes to a secret url and sees this page:

It’s mobile optimized, so he can bring it up on his phone, and it requires no authentication or reloading. Every time he hits a button, it’s instantly recorded and reflected on the home page.

You might notice the slider on the bottom. Carl had requested a slider (presumably to fine tune the temperature of his water), so I gave him a slider. He’s also not sure what the “Text Brian” button does, so that’s a plus.

If you’re super curious, you can see the code on my github repo, github.com/briancopelandbz/cwaas.

Cheers!

Edit 2020-10-05 : Previously, the website was http://cwaas.copeland.bz, but I’ve moved it to https://water.copeland.bz and updated the link above accordingly.