Requiem for a Jacket

It’s time to get rid of a jacket I’ve had for a long time.

Pouring beer in the jacket in 2009 at Indyhall.

I don’t remember exactly when I got it. Sometime between 2006 and 2009. Maybe at the Cherry Hill Mall Macy’s.

The jacket has been with me almost my entire adult life. It’s still in pretty good shape, too, but just doesn’t fit me like it used to. We’ve drifted apart but had our adventures.

Wearing it at a kid’s birthday party.

I remember wearing it in Toronto in 2009, absurdly underdressed for the cold weather, but it got me back to my hotel. Sleeping in it at the Newark airport when I missed my connection. Vegas karaoke with strangers. The confidence it brought me countless times I didn’t know where I was going.

It fit so many occasions. Going to work, bar hangs, grocery stores, PTA meetings, nature hikes. If you know me you’ve seen me wear it and if you’ve seen me wear it then you’ve seen me.

The jacket solidified my style at the time which was about 63% dressy and 37% casual. My current fashion thinking is fit rules everything. Nothing in the color, material, or pattern matters more than fit and if it fits you, it will look good. As much as I love this jacket, it doesn’t fit anymore.

Despite the dramatic title I’m not throwing it away. I’m donating it to Peak Secondhand, so if you need a new jacket maybe try it on and give it a second life.

Chili Oil Ramen

Over the last year Sasha got way into Ramen. She’s soft boiling eggs, making her own broth, growing basil, making me take her to the best Philly spots (Hiro, 11th & Chestnut), etc. but after a lot of trial and error I think we’ve settled on a god tier ramen recipe that’s easy to make. It’s vegetarian (and I think vegan if you skip the egg).

Look at this

Serves 2 people

Ingredients
2 packs of Soy Sauce instant ramen
Some mushrooms
Vegetable oil (Grapeseed or canola oil are fine)
2 eggs
Green onion (you have some growing in your kitchen right?)
Sesame seeds
2 cloves fresh garlic for mushrooms
3 cloves fresh garlic for chili oil
1 tablespoon chili powder
1 tsp red pepper flakes
Trader Joe’s umami seasoning

Mushrooms
Chop up the mushrooms and 2 cloves of garlic. Sautée them together in a pan with some oil and sprinkle some of the umami season in there. You won’t need a ton for the ramen, but save whatever you don’t need and use in tomorrow’s batch.

Soft boiled eggs
Bring some water to a boil. Make a separate ice bath with some ice cubes and water. Carefully put in the eggs and boil for 6 minutes, then move to the ice bath for 4.5 minutes. Peel the eggs and set aside until the ramen is done. Some people think its easier to peel them under cold running water, but I don’t. If at all possible, make someone else do this for you.

Chili oil
Put sesame seeds, chili powder, red pepper flakes, chopped green onion (chop with scissors), and chopped garlic in a mixing bowl. Heat a small amount of vegetable oil in a pot until it is hot, then pour into the mixing bowl. It’s magical. Stir it a little. If you want to get real fancy, add whatever else you want here, too. Ginger, basil, etc.

Hot oil being poured onto spice to make chili oil

Ramen
Make the ramen as usual, but use 3 cups of water instead of 4. Add a pinch of salt to the water. Boil the noodles for just under 3 minutes and add the seasoning packs. Split the ramen evenly into two bowls. Stir in 2-3 spoonfuls of your chili oil. Toss in some mushrooms. Cut in half your soft boiled eggs and place one in each bowl. Scissor chop more green onions on top and sprinkle more sesame seeds. Take a photo for the gram and watch the fire emoji roll in.

If it’s not salty enough, add a little soy sauce, but otherwise it should be incredible.

Thank you to everyone who helped develop this recipe, mainly Sasha, Carolyn Busa, and the InstaNoodls guy on TikTok.

Best Things This Year (2021)

I did get a haircut a few weeks later.

Well, we’re still in year 2 of this pandemic. I feel lucky my family is vaccinated, boosted and able to fend off one covid case. But it’s still sad we haven’t returned to the world we had in 2019. I’m still hopeful we can in some ways, but things will always be different. 2021 was about adapting to new constraints and that isn’t all bad.

I never feel like I did much at the end of the year, but kind of the whole point of writing these is to remind myself I did.

2021 was a year of huge life changes. I got officially divorced on Zoom after separating in 2020 and started a new company with coworkers all over the country. I reconnected with someone and have gone on so many adventures with her already.

I feel like I’ve gotten so close with Sasha and Owen living in this small apartment and it’s been interesting to meet the people they’re becoming. They’re funny, getting straight As in school, and obsessed with anime.

These recaps are letters to my future self and I’m glad I write them every year. I wish they were more personal, but they help me remember who I was and how I got here. Here was 2021:

Carolyn Suzanne Busa

Carolyn and Ben at the One Day Smarter by Emily Winter book launch party
Carolyn and Ben at the One Day Smarter by Emily Winter book launch party

Our birthdays are just three days apart and I wrote this for her on hers:
“Happy birthday to this beautiful painter, comedian, business owner, dog owner, coffee fiend, pizza rater, subway solo artist and woman from la matcha.”
It’s hard to imagine this year without her and every entry below has a piece of her in it somewhere. We get a kick out of each other.

Vaccinated
Vaccines were the hot item in 2021 and I got mine as soon as I was eligible. Everyone talked about their side effects like it was last night’s football. I got two doses of Moderna from Rowan and a Pfizer booster at Walgreens. Seems like boosters will be part of our lives for a few more years at least.

Yes I wear this shirt a lot.

I broke down a little after my first vaccine realizing it was the first step to this thing being over. Didn’t think we’d have this far to go.

Impossible Meat
The first time I tried Impossible Meat it was at Qdoba. It was one of the options for a burrito and I was into it. Since then at home I’ve made tacos, burritos, enchiladas, burgers, and of course my new specialty, korean beef. Trader Joe’s has the best price on it, just $5.99.

My car was destroyed
First accident I’ve been in where I wasn’t driving! The Honda Civic I bought from Jen Miller a while back was wrecked when someone plowed through a fence and drove into while it was parked. The damage totaled the 19 year old car and I got a newer model that was only 12 years old.

Common Paper
Holy crap I started a new company! I looooved my job at Betterment, but when Jake Stein asks you to start a new company what else are you going to say? We’re trying to create a seamless web of deserved trust between companies by standardizing and streamlining their legal documents and speed up the sales process. It’s been great so far and I love working with Jake and Lauren again, and getting to meet Garrett, Tiffany, and Stanley.

Focus Labs did a great job on our branding.

Plants
I’ve never been much of a plant person. I used to have one on my desk in a styrofoam cup in 2001, but it died. Now every window in my apartment is filled with plants collecting the light and I am on a strict watering schedule. So far only one has died, but I really enjoy the kitchen usable plants like the basil, mint, and green onion.

My plant highlight of the year is nursing Ricky the Snake Plant back to health. He’s thriving and recently had a baby!

Anime
I’ve always enjoyed the Studio Ghibli films, but Sasha and Owen have gotten me into some great anime such as Erased, Evangelion: Neon Genesis, Attack on Titan, and Death Note.

Ryuk is my favorite character from Death Note

Peak Secondhand
I’ve had a lot of jobs, but never worked retail until this year. It’s been so much fun helping Carolyn launch her store and get to work there as an intern on occasion. The pay is terrible but I’m gaining valuable experience. They did a write up about it in the Inquirer.

Carolyn’s secondhand clothing store, Peak

The business model of secondhand stores is fascinating, but it’s been even more enjoyable watching her build a brand and a following.

M1 Macbook
Believe the hype. The new MacBooks with the M1 processors are faster.

Porchfest
I played Collingswood Porchfest for the first time in years and it truly is the best day in town. I performed a bunch of newer songs that I haven’t played much.

Illinois Trip
Saw my brother’s kids for the first time in a while, the giant world of Casey, IL, and Al Bundy’s house.

Fort Mifflin
Before 2021 I never heard of Fort Mifflin and now I’ve been there twice to see Pam Selle and my new favorite DJ, Avalon Emerson.

Patco Thread
I was proud of this Patco Twitter thread twitter I wrote.

Pizza Spreadsheet
Carolyn and I visited 15 local jersey pizza places and ranked them. We still haven’t published the results but that’s coming, I promise.

Pocono Mountains
We hiked around the “trail of doom” at the top of this mountain and Owen was afraid to use a bathroom because the drop from the seat to the tank was too much for him to handle.


Collingswood Bikeshare
My mountain bike was stolen earlier this year, but I got the best bike ever from the Collingswood Bike Share. $25/year and they’ve already rebuilt major parts of it for me for nothing. (I gave an extra donation, though)

Odyssey of the Mind
My virtual Odyssey of the Mind team won the regional tournament and finished 3rd in NJ, our best finish in the 6 years i’ve been a coach.

Fear the potato army

Trash Night
Is it the east coast’s hottest new spot or is it just Thursday? Trash Night is finally over, but I even learned how to make my own Instagram filters for this.

Garvey Corp… sold
After 95 years of independence, Garvey Corporation was acquired by a public company. I spent 10 years working there (or 15 depending on how you count it) so there are a lot of feelings wrapped into it, but I think overall it’s a good thing. I’ve seen enough bottling lines to know my dad’s legacy will be the way products are buffered in transit. His innovations will become the standard.

Asbury Park
Never went to Asbury Park before, but now I’m a fan.

TV (non Anime)
Queen’s Gambit
Nathan for You
How To with John Wilson
His Dark Materials
White Lotus
The Americans
Mare of Easttown
Rewatched 5 seasons of Seinfeld with Sasha

Movies
Dune
Tenet
Midsommar
Class Action Park
Woodstock ’99
Dunkirk
The Many Saints of Newark
The Guilty
Matrix: Resurrections

Music
Spotify said my number 1 song was Cotton Candy by spill tab, who we saw perform at the Fillmore Foundry.
I also really enjoyed marinelli, Palo and Pan, Jack Stauber, Midnight Sister, Avalon Emerson and Sasha got me into Surf Curse.
Live music was (somewhat) back in 2021 and I got to see Advance Base, Florry, Palo and Pan, spill tab, JAWNY and 1910 Chainsaw Company

Previous years
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011

Impossible Korean Beef Recipe

Impossible Korean Beef with edamame
Impossible Korean beef w/ edamame

I’m still eating meat, but I’ve been experimenting with Impossible Meat and I’ve made this recipe a bunch of times now and I love it. The only tough to find ingredient is the gochujang. I got mine at HMart.
3 Tbsp gochujang
3 Tbsp soy sauce
1 tsp garlic powder
1/2 tsp red pepper flakes
1 tsp sugar
2 Tbsp water
2 Tbsp rice vinegar
3 Tbsp minced ginger
Touch of salt

Chopped green onion and sesame seeds for garnish

1/4 cup chopped white onion
12oz pack of impossible meat

Mix everything except onions and meat and garnishes in a mixing bowl

Sauté onion on medium heat til cooked down (2-4 minutes) and then add impossible meat.

Cook meat until brown.

Add gochujang and simmer on low heat for 2 minutes

Serve over rice with sesame seeds, green onion, and sri racha. I also like to serve mine with some sautéd green beans or edamame.

Best Things This Year (2020)

Anything I write about 2020 won’t convey how different it was from any year of our lives. I came into the year optimistic about the new decade, but 3 months in everything changed with the COVID-19 pandemic. My office closed and my team shifted to remote work. My kids are in remote school and everything we looked forward to in Spring and Summer were cancelled.

I’m getting a divorce and moved out of the house I’ve lived in for 10 years.

Every year I like to look back and reflect on the things I’ve done or enjoyed and despite this awful, isolating year, there were some good moments.

Traveling to Punxsutawney, PA for Groundhog Day
Sometime in January I watched Groundhog Day with the kids and Sasha pounded her fist on the table and said “let’s go” so we drove 273 miles to Punxsutawney and stood outside in the cold for 4 hours to see Phil emerge. It was the best thing I did all year.

Me and Sasha and 20,000 people watching Phil not see his shadow
We arrived at 3AM and this was as close as we could get.


Hosting Alberto Cairo for the Philadelphia Data Visualization Meetup
We invited one of my favorite authors and dataviz experts to talk about his book and he was all set to fly to Philadelphia from Miami, but COVID forced this to be a virtual event. We had a great time anyway and hope to be back with more dataviz events in 2021.

Hosted a Dataviz Meetup at Drexel
Our last in-person Philly Data Visualization event was at Drexel and we hosted some great speakers such as Ben Kates of Compass Red, Marieke Jackson of Code for Philly, and Pulitzer Prize winner Nathaniel Lash of the Philadelphia Inquirer (now NYT)

Made some charts
Didn’t break too much new ground here, but I made a treemap of my meetup’s most popular hex codes, a force directed graph, a visualization of Dungeon Adventure’s sales, and an update to my Automobile Death chart.

Automobile deaths 1899-2018. Shows a large increase and then a slow decrease from 1971 on. The chart shows the decrease is primarily due to a reduction in alcohol related deaths.

Watched an absolute ton of TV
DARK
ALLLL of Portlandia
The Boys
Lovecraft Country
What We Do in the Shadows
Halt and Catch Fire
The Mandalorian
Clone Wars
I May Destroy You
Finally finished The Leftovers
The Americans
Electric Dreams

Took a lot of selfies
You can watch my hair and beard grow as the days fly by. I think I only had one haircut in 2020.

Follow me on Instagram before I delete that, too.

Played some Dungeon World
Before quarantine we had an irregularly scheduled RPG group that became a weekly thing via Zoom. We usually play Dungeon World, a simplified D&D type game where I assume the role of Yegg the Thief, an upperclass outcast who takes what he wants and occasionally performs incredible feats of agility.


Competed in the virtual Odyssey of the Mind World Finals
Our the tournament was cancelled just days before we were supposed to compete, but my Odyssey of the Mind team participated in a virtual world finals. It was fun, but not as much as competing in person. I’ve been coaching a lot of these kids for 5 years now, including Sasha, and this was the best solution they’ve come up with so far. It’s disappointing the judges didn’t get to see the tale of con-artist Judy the Sloth Lady in person. I was so proud of them.


I was listed in Technically’s Top 100 Philadelphia Connectors in 2020
I like to refer to this at Philly Tech’s 100 Under 100 list.

Raised over $1000
At the start of the pandemic I noticed sales of Kids Dungeon Adventure going up and I felt bad about profiting from the awful situation everyone was in, so I created a coupon to allow anyone to download it for free and pledged to donate any sales to a local food bank. Many people still paid for it, as the charts below show. In 2020 we donated over $1000 to the FoodBank of South Jersey which does contactless delivery of food for families in need.

Chart showing game sales for the last 9 years. A bit spike in 2011 at launch, a small spike in 2014 at the launch of a similar product, and then a huge spike of paid and free sales in early 2020 at the start of the pandemic.
Sales of Kids Dungeon Adventure went up when I offered a free code.

Helped get rid of Donald Trump
I spent more time and donated more money than any campaign season ever. Participating in Vote Forward was a lot of fun and felt more impactful than just tweeting about it.

Went to San Diego
I almost can’t believe that I went to California in 2020 for a few days. San Diego has always been on my list of cities to visit and it was beautiful.

Had a crazy night in Queen Village
Just read this thread.

Movies
The Lure
Disaster Artist
Knives Out
Parasite
Ex Machina
Another Earth
Rise of Skywalker
Us
Portrait of a Lady on Fire
Vice
Jodorowsky’s Dune
The Lighthouse

Music
Hanna by Lomelda
Everybody Works by Jay Som
Microphones in 2020 by The Microphones
Nocturnes No 9 by Chopin
The Barrel by Aldous Harding

Hannah – Sun by Lomelda was my favorite song of 2020

Previous years
2019
2018
2017
2016
2015
2014
2013
2012
2011

5 Things You Can Do With csvkit

Recently I wrote a post about building tiny data pipelines with bash and the most common feedback was that people hadn’t heard of csvkit before. It’s fairly new to me, too, so here are some things to get you started.

CSV stands for comma separated values and it’s the most common data format for flat, structured data. This post is about a tool called csvkit that makes working with them easier.

when excel warns you that some features won't be available in your csv

for 30 straight years

photo is of Diane from Twin Peaks, staring grumpily.

csvkit isn’t just one program, its a collection of tools. I use in2csv and csvsql a lot, so I’ll talk about them first.

  1. Convert json to csv. Use in2csv somedata.json > somedata.csv and it will create a csv with a header row based on the properties in the json object. If you need to go the other way, use csvjson somedata.csv > somedata.json.
  2. Query your csv file like it’s a database. Maybe you want a local postgres instance, but I don’t. The one thing that tripped me up with this in the beginning was not knowing it used SQLite under the hood. Some of the SQL syntax is peculiar if you’re used to mysql or postgres. Doing your csv data transformations in SQL has a lot of advantages to to doing them in excel or code.
    csvsql --query "
    select message as text, created_at from messages order by created_at desc
    " messages.csv > tidy_messages.csv
    As I mentioned in my pipeline post, stick this command in a file and execute it with bash.
  3. Date operations in csvsql. Let’s say you want to calculate the number of days between two dates, such as the number of days it took to merge a pull request. You can do this.
    csvsql --query "
    select
    id,
    created_at,
    merged_at,
    julianday(merged_at) - julianday(created_at) as days_to_merge,
    strftime('%Y-%W', merged_at) as year_week
    from pull_requests
    " pull_requests.csv > tidy_pull_requests.csv


    What is this julianday function? From the docs:
    The SQLite julianday function takes a date, allows you to apply modifiers and then returns the date as a Julian Day. A Julian Day is the number of days since Nov 24, 4714 BC 12:00pm Greenwich time in the Gregorian calendar. The julianday function returns the date as a floating point number.

    strftime is how dates are transformed or truncated. In this case, ‘%Y-%W’ gives you the week number of the year.
  4. Combine a bunch of csv files together. When I wrote Haram Baby I found the data for the most popular babynames in each year, but it was spread out over 138 files, one for each year. They all used the same format and writing a script to combine them wouldn’t be too hard, but csvstack makes this easy. The command below combines 10 csvs from 2010 – 2019 into one file.

    csvstack -g yob2010.txt yob2011.txt yob2012.txt yob2013.txt yob2014.txt yob2015.txt yob2016.txt yob2017.txt yob2018.txt yob2019.txt > most_popular_baby_names.csv

    The -g modifier adds the filename to the column, so you can figure out which year it came from. This command is great if the files all use the same schema, but if they don’t there’s even a command for merging similarly constructed csv files called csvjoin. I haven’t used it yet.
  5. Quickly remove columns. The baby name data broke the lists down by gender and I wanted to remove and reorder them, so the first step was to look at the columns in my new huge dataset.

csvcut -n baby_names_1880_2018.csv
1: year
2: rank
3: name
4: gender
5: total


The command below removes the rank and gender, which we won’t need because we’ll be re-ranking them. If all you need to do is remove columns, this is easier than writing sql.

csvcut -c 1,3,5 baby_names_1880_2018.csv > tidy_names.csv

I feel like I leveled up my data skills with csvkit, or at least made my process a little more sane.

Special Agent Dale Cooper citing some of his stats in csv

Schmedium Data: Building little data pipelines with bash

Over at plotdevice.bengarvey.com I have a bunch of one-off dataviz projects, experiments, and analyses. They all run on data, but sometimes it’s not easy to get, so I end up trimming and transforming data into something I can work with. We’re not talking about big data here, more like small or medium data. Schmedium data.

Side note: Any time you think you’ve coined a term, you haven’t.

US Auto Deaths from 1899 - 2018, an example of the kinds of charts I create with this pipelining technique.
An example of the kinds of charts at plotdevice

And the data is usually in some nasty, nested json or in a different csv for each year with slight variations on the formatting or maybe it’s just large enough to be annoyingly slow in google sheets.

This is an example of what I used to do. Write a script that opens the data, parses through it, makes some changes, and prints it to a file. It seemed like this will be a powerful way to work, but it’s not! I found it limiting, hard to update, hard to debug, and brittle if the input/output formats changed.

Before I get into what I do now, let me introduce a few good tools.

csvkit – Command line tool for doing lots of stuff with csv files (uses SQLite under the hood). Inside this toolkit we have things like in2csv (converting json to csv) and csvsql (query data from a csv using SQL)

jq – Command line tool for querying json files.

singer.io – Open source tool by Stitch for retrieving data from APIs and sending them to common sources/formats.

cat – Legendary unix command for reading files and printing them to standard out.

python – Specifically python -m json.tool for prettying up minified json because we’ll sometimes need to look at these files manually.

bash – A unix command processor from 1989 that helps you run commands and in our case, help us chain together each step of the process.

| – Unix pipe operator. It takes the output of one program and sends it as an input to another.

> – Unix redirection operator. The right angle bracket takes the output of one program and writes it to a file.

What we’re going to do is create a series of tiny commands from some of the tools above and string them together using bash. For example this bash command writes json to a file

echo '[{"message":"Hello world", "created_at":'20201012 08:08:10', "some_other_stuff":1234}]" > messages.json

And this command reads the json and converts it to csv

in2csv messages.json > messages.csv

And this command will query the data from the csv, put it into the desired format, and write it to a new file called tidy_messages.csv

csvsql --query "
select message as text, created_at from messages order by created_at desc
" messages.csv > tidy_messages.csv

We can run each of these independently, but when you add new data to your pipeline you don’t want to have to remember which order to run them in or keep searching them in your bash history, so store each of them in their own files.

Save the first command in a text file called retrieve.sh, the second in a file called convert.sh and the third in a file called transform.sh and then write a fourth file called combined.sh that looks like this:

bash retrieve.sh
bash convert.sh
bash transform.sh

So now when you get new raw data, all you have to do is run bash combined.sh in your terminal and it executes these in a sequence.

Here’s what I like about this process.

  1. It’s easy to debug – Errors will flow naturally out to the command line and I can observe the state between each step because they’re just files in my directory. I don’t have to use a debugger to figure out which line of code is the issue because they’re (mostly) all one-liners anyway.
  2. It’s easy to modify – I never modify the raw data and I constantly overwrite the derived data, so any changes to the pipeline flow through without me having to worry about screwing things up.
  3. It’s fast – You’d be surprised how much data you can shove through a process like this. The command line tools are efficient.
  4. It’s the right amount of cognitive load for one-off projects – For simpler projects I’d use a spreadsheet, for larger and more important projects I’d use a database, include better error handling, etc. This process keeps me sane when I come back to it in 6 months. If I know all I have to do is run bash combined.sh, jumping back into it should be easy. There also aren’t any servers or frameworks to keep up to date.
  5. The transformation step is SQL based, not code – I promise that you will have fewer bugs this way.

Part of the reason why I wrote this was in the hopes that someone would come along and say, “Whoa I can’t believe you aren’t using X” or “Really, you should be doing all of this in Y.” If you have suggestions, let me know.

Best things this year (2019)

It’s hard to shake off failure.

I did a lot in 2019, but it doesn’t always feel that way. I felt lonely, but made 100+ new friends. I didn’t ship enough side projects, but I started a new job and hired a bunch of people. I didn’t travel that much, but I gave a talk in Asia and went to New York 60+ times.

I reflect on the year to counteract that feeling.

Me @ the IDG IT Roadmap conference in Seoul

Sasha turned 13 and people have always said, “oh just wait until she’s a teenager!” as if having an antagonistic relationship is a given for parents and teens. It’s clear to me now that this attitude lies in the insecurities of the parents, not the kids. We still get along great.

Sasha wrote a 30,000 word book, acted in multiple plays, and is crushing middle school. Owen grew his hair out, started a YouTube channel, and is crushing me in in Mario Kart. It’s fun to watch them grow independent identities.

Here’s my 2019:

I took a month off

I’ve never taken more than 2 consecutive weeks since I started working. I could have used another month, but having the luxury and privilege to take time off before starting at Betterment was great. I painted the inside of my house, had lunch at Mama’s Falafels, got coffee with everyone, finished The Wire, saw the Liberty Bell, hung out at Indyhall, and more.

Betterment

In February I joined Betterment for Advisors as a senior engineering manager and began recruiting. We added 4 engineers and a designer, and successfully rolled all the engineers from the NY team onto other projects. By the end of 2019 we’ll have 22 people working in the sparkling new Philadelphia office.

Betterment for Advisors Team
The Betterment for Advisors engineering team. Aren’t they great?

This was what I set out to do but to look back and see that it happened is a trip. I’ve learned a lot of Ruby on Rails, leveled up my SQL, and already shipped a few features.

Seoul

It’s still surreal to me that I got on a plane and flew to South Korea for 13 hours, gave a talk at a data conference, and then flew home in the same week. My first trip to Asia was successful.

Charts

I didn’t make too many new charts, but the ones I did make were fun. I gave one of my best talks this year at Data Jawn 2019 and showed some of these.

1. Network graph of HBO’s The Wire

Network graph of HBO's The Wire

2. My commute times to NY

3. Owen’s Cafeteria Expenses

Pizza

I became obsessed with making pizza. Prior to this, the only pizza I’d ever made were from Boboli crusts or on top of an English Muffin. Using Joe Beddia’s, Pizza Camp, I made 15 pizzas and I think they started getting good by around #7.

Philly Dataviz Meetup

Herb Lau and I put on 5 killer data visualization meetups with speakers from the Philadelphia Inquirer, SixtySixtyWards.com, CypherPrime, the City Controller’s Office, Vanguard, UPenn, Stitch, and more. 2020 is only going to get better.

Will Stallwood giving a talk on shaders

Harambaby

It might be the dumbest thing I’ve ever made. Enter a year and the name of your baby and it tells you how popular your baby’s name was that year, but it also makes it appear as though Harambe was slightly more popular. The project uses government data from 1880 – 2018 and I mostly used bash and csvkit to construct the dataset.

Finding a Hidden Album

Like hidden treasure chest under the floorboards, I found an early album by the Blow’s Khaela Maricich on Spotify and it made me happy.

Games

My kids are way into board games now and we played a ton of Risk Legacy, One Night Ultimate Werewolf, and Ravine, but our favorite was this beautiful game called Wingspan.

Wingspan

TV

Earlier this year I watched Russian Doll and assumed it would be my favorite but then I watched The Wire, Dark, Pen15, The Dark Crystal: Age of Resistance, Watchmen, and Fleabag.

I might have watched too much TV.

Movies

Thanks to a couple of long flights I watched a ton of films this year, but my favorites were Booksmart, Her, and The Favourite.

Music

Bands I saw live: Swearin, Mike Krol, Fuck You Tammy, and A Giant Dog. Not too many, but according to Spotify this was my favorite song of the year:

I also enjoyed Palehound, Nana Grizol, Mike Krol, Swearin, Best Friends Forever, Lomedla, Radiator Hospital, Anna McClellan, Mitski, Theo and the Get Down Stay Down, and Lizzo.

My top 2019 list according to Spotify.

I got another tattoo and sometimes wear glasses

I got a 2nd tattoo, this time at Fishtown’s True Hand Society which is in a beautiful old church. I also broke down and finally got glasses so I can read after 5PM. I’ve been pleasantly surprised at how much better my mood is since wearing them.

Previous years
2018
2017
2016
2015
2014
2013
2012
2011

Best Things This Year (2018)

What a year, huh?

I went as Axe Cop for Halloween

A favorite comic of mine talks about how we don’t live one life, but eleven and this was the last year of my 5th life. 2018 was one of my best years, but at times it was the the saddest and most difficult. So much ended and so many new things are underway.

Let’s review.

Adobe
Magento was acquired in June by Adobe for $1.68 billion. In 2013 I had 18 co-workers and now I have 18,000. Unfortunately, they decided to close the Philadelphia office. I decided not to move to Austin, so for the first time in 6 years I’ll be doing something else.

My friends over at Stitch were also acquired by Talend in November, so the RJMetrics venture feels complete.

Turned 40
I got a tattoo and learned to play the ukulele.

Glitch
Glitch feels like Codepen meets Geocities. I ported old projects there and created new ones. They even included two of my projects in their 2018 favorites list! Check out my profile.

take-a-walk.glitch.me

Observable
I caught a preview of this in 2017 when Mike Bostock demoed it at the OpenVisConf, but javascript’s answer to Jupyter Notebooks is out. I’ve used it for data journalismartsy projects, and a good way to re-use code snippets.

Data Jawn
I did less public speaking in 2018, but I gave my best talk yet at Data Jawn 2018. I used open source data tools to measure Philadelphia’s negativity relative to other American cities.

Winning the Super Bowl temporarily boosted tweet sentiment in Philadelphia

Alberto Cairo
I went to see The Functional Art author’s talk, Visual Trumpery, at Bryn Mawr college.

Eraserhood Forever
I finally went to the Eraserhood Forever event at PhilaMoca and listened to the wonderful Sherilyn Fenn talk for an hour. Afterwards, I won a Lynch trivia contest!

Billy Penn
I worked on two data journalism projects with Danya Henninger. One was a sentiment analysis around whether Philadelphias preferred Wawa or Sheetz and another was a quest to find the most ridden Indego bike in Philadelphia, which eventually got the meme treatment from friends and coworkers.

Odyssey of the Mind
Sasha’s OM team won their regional tournament this year and competed against the top NJ teams at the state finals.

Dataviz
Visualizing the changes in my top 100 movies list 2009 – 2018 slopegraph
RJMetrics: Where are they Now? Sankey diagram
NLEast 2007: Whisker sparkline and bump chart

Music
Spotify generates year-end content for everyone and it said St Vincent was my favorite artist of 2018, but Jet Ski Accidents by The Blow was my most played song.

Shows
The Blow @ Johnny Brenda’s
St Vincent @ The Queen in Wilmington, DE
Liz Phair @ Union Transfer
Sweet Spirit @ Johnny Brenda’s
Memory Keepers @ Mohawk and Barracuda in Austin
Eraserhood Forever @ PhilaMoca
Beck and Jenny Lewis @ the Festival Pier

Travel
Austin (many times)
Seattle
Las Vegas
Antioch, IL
I visited NYC more time this year than ever before
Costa Rica!

Movies / TV
Mandy
Moonlihght
Annhiliation
Blade Runner 2049
Icarus
Thor: Ragnarok
The Incredibles 2
3 Billboards Outside Ebbing, MO
Frequently Asked Questions About Time Travel
Your Name
Sharp Objects
The Good Place
Dark
The Wire (Season 3)
Barry

Books
La Belle Sauvage by Phillip Pullman
Creative Quest by Questlove
How Music Works by David Byrne
The Globlet of Fire by JK Rowling
The Giver by Lois Lowry
D3.js in Action by Elijah Meeks
Radical Candor by Kim Scott
Talk Like Ted by Carmine Gallo
Sirens of Titan by Kurt Vonnegut

Previous years
2017
2016
2015
2014
2013
2012
2011

Top 100 Movies

It was 2009 the last time I revised this list and I’ve seen many movies since then. Some were kicked off by newcomers or just didn’t feel as important in 2018. There’s a new #1 for the first time and it shouldn’t be much of a surprise if you know me. I should analyze which decades rank the best and compare the choices to my previous list, but for now, here they are.

rank title year
100 The Iron Giant 1999
99 Run Lola Run 1998
98 The Lego Movie 2014
97 Logan 2017
96 Terminator 2 1991
95 Amelie 2001
94 District 9 2009
93 Eraserhead 1977
92 Mystic River 2003
91 2001: A Space Odyssey 1968
90 Up 2009
89 Sideways 2004
88 Memento 2000
87 Howl’s Moving Castle 2004
86 Jackie Brown 1997
85 Life Is Beautiful 1997
84 The Big Sick 2017
83 The Matrix 1999
82 Monster’s Ball 2001
81 Drive 2011
80 This Is Spinal Tap 1984
79 Toy Story 3 2010
78 Interstellar 2014
77 Schindler’s List 1993
76 Young Frankenstein 1974
75 The Virgin Suicides 1999
74 Coco 2017
73 The Graduate 1967
72 The Kids are Alright 2010
71 Office Space 1999
70 Monty Python’s Life of Brian 1979
69 Kung Fu Panda 2008
68 Kung Fu Panda 2 2011
67 Raiders of the Lost Ark 1981
66 American Movie 1999
65 The Wolf of Wall Street 2013
64 Lion 2016
63 Swimming Pool 2003
62 Crouching Tiger, Hidden Dragon 2000
61 Superbad 2007
60 GoodFellas 1990
59 Beasts of the Southern Wild 2012
58 The Goonies 1985
57 Ghost World 2001
56 Birdman 2014
55 Wall-E 2008
54 The Godfather 1972
53 E.T. 1982
52 Taxi Driver 1976
51 Twin Peaks: Fire Walk With Me 1992
50 The Shawshank Redemption 1994
49 Fargo 1996
48 A Clockwork Orange 1971
47 The Social Network 2010
46 Inland Empire 2006
45 Pee-Wee’s Big Adventure 1985
44 The Fountain 2006
43 Lost in Translation 2003
42 The Silence of the Lambs 1991
41 Blue Velvet 1986
40 Django Unchained 2012
39 Inception 2010
38 The Wrestler 2008
37 Notes on a Scandal 2006
36 Blade Runner 1982
35 The Third Man 1949
34 There Will be Blood 2007
33 The Grand Budapest Hotel 2014
32 The Revenant 2015
31 Citizen Kane 1941
30 Sexy Beast 2001
29 Zodiac 2007
28 Lost Highway 1997
27 Black Swan 2010
26 Groundhog Day 1993
25 Monster 2003
24 Throne of Blood 1957
23 Kill Bill: Vol. 2 2004
22 The Piano 1993
21 Rushmore 1998
20 The Pianist 2002
19 The Aviator 2004
18 Chinatown 1974
17 Blue Valentine 2010
16 Get Out 2017
15 Caddyshack 1980
14 Eternal Sunshine of the Spotless Mind 2004
13 Rear Window 1954
12 Winter’s Bone 2010
11 Pulp Fiction 1994
10 The Last Picture Show 1971
9 Star Wars: Episode IV: The Empire Strikes Back 1980
8 No Country for Old Men 2007
7 City of God 2002
6 Primer 2004
5 Star Wars: Episode IV: A New Hope 1977
4 Dr. Strangelove 1964
3 Vertigo 1958
2 House of Sand and Fog 2003
1 Mulholland Drive 2001