Know your Bro-nouns II: People, Places and Things, for Bros!

This is the second installment of bro-nouns.

Brome: a diminutive fellow who is mostly concerned with beer pong, gym sets and brotein.

Just being a bro.

Just being a bro.


Brotein: consumed by bromes and other bros. This stuff is like creatine, but with crack inside.

Broken: 1) Just broken, bro. 2) Similar to a token used in old arcade game machines, but the broken unlocks any gym in the world.

Streambroat Springs: Excellent skiing with brah-twursts and high speed skiing. Apparently, women aren’t allowed, which makes this the dumbest ski area ever.

Broyoda: A car brand invented to sound like Toyota. All of the cars come without an engine.

Bro Montana: This guy can sling footballs like no other.

Brogoda: A place to worship Bro Montana.

And now for a bonus word

Browing (actually a verb, or bro-verb):  Browing is akin to rowing, however in browing, the watercraft is pulled over a lake filled with an asinine combination of Bud Light, Coors Light, Miller Light and PBR.

11 Reasons Why Every Man Should Grow Long Hair

I had short hair my whole life… until I was 25. Then I grew it out, and over the last few years I realized there are some compelling reasons every man should grow long hair at least once.

1) You’ll Understand Women Better

Not really. But, you’ll at least understand some of the problems the majority of women have endured their entire life: 1) bad hair days where it’s really obvious, and 2) fewer solutions to solve this bad-hair-day problem. With short hair, things are easier to hide. And these days, as a guy, it’s more common to wear a hat — which is the solution to any bad hair day.

2) You Can Fetch Compliments

No guarantees here, but you’ll have an opportunity to be admired for your HAIR. The number of times you get compliments on your hair when it’s short? 0. But when it’s long? The potential is infinite!

Is that the Blue Steel?

Is that the Blue Steel?

3) The Wind and You Are in a Relationship Muy Complicado

Roll down the car windows, drop the top on the convertible, your hair is blowing in the wind and you feel 100% DOPE. You and the wind are tight homies — you go way back to kindergarten. And then, the following day, you get your hair game together cause you’re hitting the town. It’s still a little wet, and you and your buddies get in the car. Buddy in the front seat rolls the window down and the wind (read: HURRICANE) hits your hair and makes a rat nest atop your dome piece. Now you just want to put a hat on, but you’ve only got baseball hats, and you’re wearing a button down. Nope nope nope. You hate the wind now.

A beanie can be your best friend when the wind is being your worst enemy.

A beanie can be your best friend when the wind is being your worst enemy.

4) You Might be Referred to as “Miss”

Sitting down at a restaurant and the waiter can only see the back of your (referring to any man) head, and he starts: “Good evening, ladies. Drinks to start?” And then you turn at him and he looks really embarrassed… And you feel really embarrassed because you are on a date.

5) You’ll Begin to Appreciate Conditioner

When I had short hair, I used 2-in-1 Shampoo/Conditioner like Pert Plus. Then I stopped when I had enough hair to realize that Pert Plus is a big green assassin of hair.

6) You’ll Be Unique

Go to a bar and look around. Count the number of dudes with long hair. If you grow your hair out, you’ll be special. That’s good for your bar game. Of course, this totally depends on the bar you’re in, because in the case of a ski town, things change, which leads me to…

Optimum going-out hairstyle.

Optimum going-out hairstyle, by the way.

7) You’ll Fit Right In at a Ski Town

If you’ve been trying to be a ski bum your whole life but have kept putting it off, well, growing your hair out and visiting some ski towns will get you one step closer to your goal. With long hair, you can shred gnar and be super chill with the rest of the long-haired bros at [name-any-ski-town-here].

8) You’ll Know You Have Some Decent Amount of Patience

Long hair must be grown from short hair (yeah, shocking). But growing things takes time, and in this case, getting sweet long hair is going to take just a little longer than sending a text message to your boo. And you have to go through the awkward-length phase, which could also be named the hats-only-every-damn-day phase. If you can endure being the caretaker of this sad excuse for a hair-do for a few months while your teenaged hair grows into an adult, then you can give yourself a pat on the back (or the head) and recognize your ability to navigate times filled with turbulent waters.

9) You’re Trying Something New

Novelty is so sexy. AND YOU LOVE SEXY!

10) You’ll Have More Options for Great Halloween Costumes

Jaime Lannister

Jaime Lannister

11) You Get to Cut It

If you grow it out, you get to cut it off, too. And in this case, I highly recommend doing it yourself even if the last head of hair you cut belonged to that girl on the playground from the first grade. (You did it because you thought it’d be funny.) In both cases it resulted in everyone crying, but forget about that because you’ll be crying with joy!





Japan, Part I: Traipsing Through Tokyo

I’ve never let a potential trip wait so long to be blogged as I have this trip to Japan.

Relevant for that leading sentence:

I remind myself that one reason I write about my trips is so I can look back in later years and remind myself of some good times. So here goes nothing.

First off: Jared and flew from NYC-> Hong Kong -> Sapporo (New Chitose Airport). The route from NYC-> Hong Kong only took 16 hours, took 16 hours, 16 hours, 16. That’s long enough for two sleeps. I took about 1, on account of the Advil PM; I also finished a book (without pictures).

My ass went numb at one point, too.

Hey, stop thinking about my butt.

flying to japan

I’m ready! (No I’m not.)

By the time we got to New Chitose Airport (close to Sapporo), we realized we were in Japan, which meant our brains were still working! That’s when we first encountered Onigiri.

Salmon wrapped in rice, wrapped in seaweed. $1.50 Onigiri!!

Salmon wrapped in rice, wrapped in seaweed. $1.50 Onigiri!!

And also, we discovered Japanese attention to detail/organization:

At that moment, I wouldn’t have been able to tell you what time it was, even if I had a watch. We stopped at New Chitose because it is in Hokkaido, and Hokkaido was our final destination, since this was a ski trip after all. But before skiing, we had other business to take care of. Neither of us were “going to fly 32+ hours and not visit Tokyo.” So we went to bed, because the next morning, we were on our way to Tokyo.

I think we did a lot of the stuff in Tokyo that folks often do. In the interest of clarity, I’m going to break down our trip to Tokyo in categories.


We stayed in an AirBnb in Shibuya on Dogenzaka street. It was clearly an investment property — the owner never lived there and only rented it out. It was spacious.

The perfect fit.

The perfect fit.

There were sweet-ass arcades, apparently owned by SEGA?

Tekken UNLIMITED (whatever that means). I still play Paul Phoenix.

Tekken UNLIMITED (whatever that means). I still play Paul Phoenix.

We also ate at Freshness Burger.

It's so... fresh.

It’s so… fresh.

Checked out some views

Squad goals.

Squad goals.

Chilled with a doge

Hachikō the dog, frozen in time.

Hachikō the dog, frozen in time.

Yoyogi Park and Meiji Jingu Shrine

We sauntered.

I guess it's just a park. I don't know.

I guess it’s just a park. I don’t know.

And we found the bathrooms.

If the portos are unisex, then these signs must be an indication for...

If the portos are unisex, then these signs must be an indication for…

Ah, the signs were both actually just saying: "CAUTION."

Ah, the signs were both actually just indicating: “CAUTION.”

Then we discovered the entrance to the Meiji Shrine, and some decorative sake barrels.

Raise the roof.

These Sake Barrels are actually empty.

These Sake Barrels are actually empty.

And made it to the main shrine

Zen times Ten.

Zen times Ten.

Shinjuku Golden Gai

Drinking in the Golden Gai area was one of the most memorable and cool things we did in Tokyo. Quite a few of the bars won’t even allow tourists in, which is judged by one’s ability to speak Japanese. No Japanese? No entry.

The bars in the area are tiny. What you see here is pretty much what you get.

The bars in the area are tiny. What you see here is pretty much what you get.


Tsukiji Fish Market

It’s the fish market you’ve all heard of. It’s massive, and they apparently auction off massive tunas in the early morning (5 a.m. or something). We couldn’t be bothered to wake up for that. But we took photos later anyway!

Off with his head.

Off with his head.

It's a real operation.

It’s a real operation.

Served on a leaf.

Served on a leaf.

Tsukiji SUV. 217 mpg.

Tsukiji SUV. It gets 217 mpg.

Tokyo Skytree and the Hyatt Hotel (“Lost in Translation” bar)

Easy tower, EASY.

Easy tower, EASY.

Mt. Fiji in the background. Civilization in the foreground.

Mt. Fuji in the background. Civilization in the foreground.

A bad nighttime shot of the skyline from the Hyatt Hotel.

A bad nighttime shot of the skyline from the Hyatt Hotel.

Harajuku & Takeshita Street

I imagine this is something like New York City’s St. Marks street.



Onesies on SALE. Get them while they're hot, or not.

Onesies on SALE. Get them while they’re hot, or not.

A good look for a pilot.

A good look for a pilot.

Food Things

The food, the food, the food. Best Ramen I had was at this place that has 3.5 stars on Google Reviews: Samurai Noodle. Oh well. A 3.5 ramen to the Japanese is 35.5 to me.

Heads down for ramen at Samurai Noodle, JP.

Heads down for ramen at “Samurai Noodle, JP”.

Ramen meal 1 of 74.

Ramen meal 1 of 74.

Plastic food displays! Very common and tasty.

Plastic food displays! Very common and tasty.

The stove-tops for DIY Okonomiyaki, "Japanese Pancakes."

The stove-tops for DIY Okonomiyaki, “Japanese Pancakes.”

Okonomiyaki in the making.

Okonomiyaki in the making.

Okonomiyaki, preparing to be eaten.

Okonomiyaki, preparing to be eaten.

I'll have THAT (pointing) one, please.

I’ll have THAT (pointing) one, please.

Vending machines on the exterior or entrance of restaurants will take your order and make you pay on the spot.

Vending machines on the exterior or entrance of restaurants will take your order and make you pay on the spot.

Ramen meal 2 of 74.

Ramen meal 2 of 74.

Japanese version of "street meat."

Japanese version of “street meat.”

Get ready to get eaten, little fishy.

Get ready to get eaten, little fishy.

Art and Decorations






I think this was outside of a love hotel. Not sure if there is some deeper meaning here.

I think this was outside of a love hotel. Not sure if there is some deeper meaning here.

Sorry, we're open.

Sorry, we’re open.

This was written in backwards so that it could be read from a mirror opposite of it.

This was written backwards so that it could be read from a mirror opposite of it.


Random Things!

Also self-explanatory?

The karaoke bar we went to was 5+ stories; the bathrooms were also filled with puke. :(

The karaoke bar we went to was 5+ stories; the bathrooms were also filled with puke.😦

Smokers must stand in a sectioned off area.

Smokers must stand in a sectioned off area.

The decibel level for some construction is tracked.

The decibel level for some construction is tracked.

Some clubs have self-serve lockers!! Groundbreaking, folks.

Some clubs have self-serve lockers!! Groundbreaking, folks.

The public transportation manners were shocking. Look at that perfect escalator behavior.

The public transportation manners were shocking. Look at that perfect escalator behavior.

Those are the highlights. Tokyo was one of the most exciting cities I’ve been to in my life. I want to go back and stay for a few months, although I’m not sure when I’d carve the time out for that wishful endeavor. But, when we departed Tokyo, we weren’t really sad, and that’s because we were on our way back to Sapporo — our starting point for our ski exploration trip on the northern main island of Hokkaido. Read about the skiing in Japan Part II: Heaven is Actually Called Hokkaido.

Arigatou gozaimasu, Tokyo. Konnichiwa, Sapporo.



Japan, Part II: Heaven is Hokkaido

After arriving in Sapporo and collecting the rest of our squad, we picked up the rental cars and started driving to Niseko. Worth mentioning: the steering wheels were on the Right side of the cars, and we were driving on the Left side of the road. But that’s normal for plenty of folks, I’ve heard, even when they’re sober.
"I think this is the GPS."

“I think this is the GPS.”

No clue, but they were great!

No clue, but they were great! (Beef jerky substitute.)

Once we learned how to drive again, we finally arrived at our condo in Niseko. We had a healthy weather forecast.
We went out to the town to grab food around 7 p.m. and that’s when we realized that, during peak season (or Australian/Chinese holidays), you need a reservation in this town. So without a reservation, we starved… until we finally found a place that would seat us as a walk-in.
Japanese Pancakes!

Japanese Pancakes!

But, let’s talk about the skiing. From here, I’m just going to break this post down into sections for each ski area.

Niseko Annupuri

Niseko has four resorts on the one mountain, and plenty of interesting skiing. Some results from day one:


We even got to do some night skiing, which was exciting with dark-lens goggles on.

The next day, we were up skiing again (surprise surprise), and Scott discovered his Snowlipop.

I don’t really know how these things amass, but we saw them amongst the plentiful powder while we were there, and I have never seen them skiing anywhere else.

We also saw some alpenglow:
And we got above the clouds:


Once we arrived at Rusutsu, we were a bit surprised with the layout the resort. We parked at the “base,” which was home to a massive empty parking lot. We walked into a hotel, purchased our tickets, took an escalator and were walking on marble/tile floor. After walking past gift shops, we finally made it outside, where we loaded onto a gondola that took us across the highway, to another base lodge. The ski experience was starting to become familiar again once we took a high-speed quad for our first run. However, we were reminded that we were in a foreign country at the bottom of the run when we skied through a snow-covered amusement park. WTFs were whispered, spoken and even yelled.
Just tall enough to ride.

“Is that a ferris wheel?” … “Yup, that’s a ferris wheel.”

The amusement park sighting was a positive omen, indicating how the rest of our day was going to go. Because it went like this:


At lunch, we discovered one of the most efficient ramen-making machines ever:


Two thumbs up for Kiroro. I think we hit it while we were in transit, on the way do Asahidake. But, despite being on a bit of a tight timetable, we still had plenty of powder to ski, and there were great views. This was a cool resort.



Furano was kinda weird, but maybe it felt that way because we visited at the end of our trip. I always feel weird towards the end of a vacation. Here’s a photo of the trail map, because the skiing was average on that day, and that’s all I’ve got:


At 7,517 feet, Asahidake is the tallest mountain (actually a volcano) in Hokkaido, duh. At the base of the mountain is a large hotel/resort called the Asahidake Manseikaku Hotel Bear Monte (quite the mouthful). This place comes equipped with a traditional Japanese onsen, which, was an unusual and through-provoking experience. It also had bus-loads of people dropping in to visit while we were there. The dining area was kind of a trip, since it was a buffet-cafeteria, which was unexpected at such a massive “up-scale” resort tucked away in the mountains. I will say that one of the most memorable experiences of the trip was the day spent trekking in Asahidake, where you could see plumes of smoke coming up from the surface of the volcano. The weather was pretty spectacular.

“Put that cigarette out!”


Apparently volcanoes can get hot.


Traversing across the moon.

Despite our last ski day of the trip occurring in Furano, I decided to end this post with Asahidake because it was so spectacular. Nobody wants to end on average. Ski you later.

How a Copywriter Becomes a Software Engineer

When I graduated college, I had a degree in Philosophy and a desire to work as a writer — specifically as a journalist.

“So much liberal, so much arts.”

This eventually became, “so much for liberal arts!”

And for a while, writing was precisely the work that I did. I moved to NYC and started my career as a creative (copywriter and strategist) at a digital ad agency. I was given a cheap laptop and a seat without much leg room and was put right to work — thank God the work didn’t involve me moving because my legs were asleep from the lack of space (not true, unless I was in outer space, or something).

But before I started that job as a copywriter, I had this crazy tech company idea: Newspanion — “it’s like Pandora, but for news.” Back in 2010/2011, there weren’t a lot of Pandoras for news, so it was a novel idea, which is no longer the case. My business partner, Andrew, was a guy I met some many months earlier in line for a bar (apparently my early-20s self thought it was acceptable to wait in lines to access alcohol).

Together, he and I wanted to start a tech company…

and we had pretty much zero tech skills.

What does that mean? Well, we weren’t going to be technologically engineering anything, unless you count engineering e-mails to try to find a technical cofounder.

So here I was, a copywriter/strategist moonlighting as a tech entrepreneur — writing copy by day and business plans by night. Collectively, Andrew and did a lot of research, wrote a lot of business stuff, sent a lot of business e-mails, and tried our damned-est to find a technical cofounder.

But it never worked out; something always went wrong.

It was around my 5th or 6th month at the agency when I decided that I would try to build a prototype for our startup so we could pitch investors. I didn’t know where to start.

I hadn’t written any HTML since Geocities in 1997.

Hell, I didn’t even know if HTML would do it. I did some research, and everyone was always talking about this Ruby on Rails thing. That sounded like it would do the trick because it sounded fancy enough. But some people said I should learn Ruby before Rails (and I was like, “Where’s the train platform again? Is that near the jewel excavation site?”).

I took their advice and bought a book on Ruby. And the next thing I noticed was that everyone using Rails seemed to be using Macs. In fact, lots of software engineers were on Macs, and I had a rickety-ass, 7-year-old Toshiba that looked a lot like something you could use as an ad-hoc baseball plate (if you were actually caught in a base-less-baseball-game pinch). This laptop looked like a stove, or an ironing board, or a model UFO. Actually, not a model UFO, that would look cool; this thing was so uncool.

toshiba laptop

My Toshiba laptop and netbook. Remember netbooks?!

Coming to terms with these facts, I bought a 13-inch Macbook pro, which I’ve been using as a reliable (and expensive) paperweight recently. When I unpackaged that puppy though, it was like coding Christmas. Ruby was already installed! Things were going to be so great!

… And pretty much every day for a few months, I went to work, wrote some ads and copy.

Then I went home and wrote some really, really bad code.

Actually, a lot of the time I didn’t even write it, I copy-pasta’d it. Those early days were filled with plenty of soup and copy pasta. I might as well have called myself a sous-do chef!

I really had no idea what I was doing. I didn’t have a good framework for understanding the material. I found my studies in philosophy to help me during these Boeing-747-turbulent times by helping me ask good questions (I also had plenty of others… caution: article contains bad words!):

  • “What is the problem I am trying to solve here?”
  • “What is this doing? I want to understand this.”
  • “If this works and that works, what happens when I remove this? Does it still work?

Good ol’ deductive reasoning. I never thought I’d be deducing bug origins (of type software or creepy-crawly) when I was sitting reading Nichomachean Ethics, but gosh was I wrong.

I just kept plugging away, until one day,

I had a really shitty-spaghetti prototype (Bon Appetite!)

of our web application.

But hey, it worked, and now we could at least show people our idea. Long story short: we showed and showed, but just never could get the traction we were looking for, and the startup died.

Meanwhile though, back in real-life world, I was still a copywriter and strategist, writing ads that you probably didn’t even notice while surfing the interwebs. About 12 months into that job, I decided I’d try a hackathon. At the event, I luckily sat next to an engineering wizard, Toby, (basically the Harry F’ing Potter of coding), and we won. With the taste of victory so fresh, I went to another hackathon and won that one too. I will always hold that we won because of our teams; my teammates defined excellence. At these hackathons I provided product/creative contributions, in addition to writing mangled HTML/CSS/Javascript.

It was about this time that I was feeling pretty awesome about my new skillz. I mean, I could actually pay the billz now!

Fast forward a little bit to 2012. I quit my job as a copywriter and joined AppNexus, that global ad tech company you may have heard of. I started at AppNexus as a technical account manager (TAM), since there was no way I could really be hired as a software engineer (well, maybe, if I only did front-end). But still, at tech companies, there are lots of people more technical than you when you are a self-taught web developer. And so I was a TAM, TAMing away at the beat of my drum. TAMing was great because it taught me that I had enormous gaps in my computin’ knowledge. I didn’t know how to use CURL or write SQL statements when I started at AppNexus. But most important of all, I learned that I didn’t really know how to figure things out on my own yet — I mean the type of figuring out that doesn’t include Stack Overflow, but instead, includes RTFMing.

Just RTFM!!

Just RTFM!!

As a TAM, I found myself doing all sorts of repeated tasks in Excel, which I didn’t like much, so I took up scripting and Python.

I’ll tell you what, my first Python scripts were so bad

that someone probably should have written a script…

to rewrite all of mine.

Sometimes I wondered if I should have stuck to writing movie scripts.

With time, though, I got faster and better, and was on to the next challenge: Data Analysis with Python. I moved into a new role as an analyst. Being a data analyst is cool because you get to decide on which tools you want to use to conduct your analysis, and then you also get to decide how you want to display the data. I chose Python for everything I did, just to get better. And better I got. (I also would often do things the hard way just to get the most learning out of the task.)

In August of 2015 I moved into a Software Engineering role,

approximately 1540 days after my initial efforts

to learn how to build software back in May, 2011.

Granted, I took plenty of breaks in between and probably could have accelerated the process by years by going for an internship, or more school (… ew). But I didn’t go that route, because it’s about the journey, not how you get there! Wait a minute. It’s how you got there, not the journey. Uh, scrap the platitudes… Did someone say journey?

What I meant to say is: Don’t stop believing.

Flipping Coins to Decide on Surgery — My Little Torn Meniscus

The coin flipped through the air — heads meant I would go in for the surgery, tails meant I would not. The coin landed on heads.

“Damn,” I thought. Maybe, I’ll do best two out of three. I flipped it again. Heads. “Damnit.” I thought maybe I should flip it one more time, just to be sure. The quarter made that high-pitched zipping sound after it left my hand, cutting its way through the air. It hit its apex and then descended into my palm. Heads. “DAMNIT!”

I brushed my teeth, put my shorts on, and headed to the hospital. I had just flipped a coin to help me decide if I would have surgery on my meniscus. It’s hard to say if that was a good choice, since I’m still recovering, but I’ll know in a few weeks. I mean, I’m not dead, so there’s at least that.

My knees aren’t in the best shape. This is my good one:

Scar+Knee = Scarknee. A circus scarknee!

Scar+Knee = Scarknee. A circus scarknee!

And the good news about my good knee is that it belongs to my good (dominant: right) leg. The bad news about my bad knee is that it belongs to my bad left leg. Right now, this is my bad knee on my bad leg:


For comparison:

Knee model. Yeah, that's me.

Knee model. Yeah, that’s me.

Over the last 15 years, my left leg has been through some shit. It all started in 2000 when I dropped into a half-pipe and traveled up the wall for the first hit: 3-2-1 lift-off. I dropped my shoulder and head to start the rotation — the trick to be performed was a backflip-180. As I made my way around, I was expecting my skis to meet with the hard snow of the half-pipe’s wall within the second, but the sound and feeling didn’t come. What?

And finally, I crashed hard on the tails of my skis in the bottom of the pipe. The impact from the crash was so powerful that I broke my left leg’s tibia and fibula clean through.


The surgery for that was, well, gnarly. The results left me with a titanium rod extending knee-to-ankle, and three screw (two in ankle, one in knee area) implants. This is the nicest video I could find of the procedure, which still gives me the chills, even though it’s just drawings/cartoons:

And if you’re really looking for some bloody stuff, you can watch this one:

A year after that surgery, I was playing soccer for my high school team. The season had just started, and we were in our second or third game. I was blazing down the right wing with the ball and a defender came in cleats up from a frontal/side angle. He smashed right into my shin guard and missed the ball, from what I recall. But for what he missed in ball, he made up for by fracturing my shin.

One might say that that kind of damage/trauma to a leg leaves a lasting impression. Physically, I had a shin that protruded near the site of the break, and it would change colors (get black and blue-ish) when I ran around for a long time. Naturally, I kept skiing and playing soccer, because it takes more than broken legs to stop this guy!

Fast forward about 10 years to February of 2015. I skied about 15 days, and everything was just dandy for my knees — at least I thought so. Then, in March, I was playing an indoor soccer game (super important playoff game, obviously) on a hard court.

It was late in the second half and I was backpedaling to get in a good offensive position, when, all of a sudden, my left leg just kinda gave out.

It felt weak and uncontrollable, like someone kicked all the mojo out of it. There were only two minutes left in the game, so I kept playing with my newly acquired hobble-run.

We lost the game, and afterward, I remember thinking that my leg felt weird, maybe a little shocked; I was also limping around like a feeble old man. When I got home, I got a good look at my knee; it was completely swollen. “Shit,” I thought. “Did I tear something? Shit! Shit! Shit!” I started icing it, took Alleve, grabbed a shower and went to bed.

That knee on that fateful night. Curse you, I say. A pox on you!

Left knee on that fateful night of injury. Curse you, I say. A pox on you!

The next day, I tried to get out of bed and couldn’t put weight on it; I wanted to cry.

I probably did. I had been in this position twice in my life already, with the same leg — “always this goddamned left leg,” I said, likely in a more impressive combination of four-letter words. But I tried to stay hopeful. I had my brother get me a pair of crutches from Craigslist and I set up a doctor appointment.

After getting a MRI, it was clear: my meniscus was torn.

The physician recommended that I do physical therapy for 4-6 weeks before thinking about surgery, because for a meniscus, it’s usually not something that is “repaired.” More often, he told me, the torn/frayed part of the meniscus is scooped out, which is analogous to removing a hangnail that bothers you. (One little difference between a hangnail and a frayed meniscus is that fixing one requires some clippers, and fixing the other one requires anesthesia, and, uh, knives and shit.)

I stopped playing soccer for a couple months and switched to running. Eventually, the pain I felt while traveling up and down stairs subsided and I could run a few miles pain free. A couple more months and I was playing soccer again, mostly without pain. Then one day, I kicked the ball in a weird way and it hurt so much I had to stop playing. Again, I stopped soccer and turned only to running. In June, I decided to schedule my surgery for September so I could enjoy some sweat-like-you’re-gonna-water-California’s-plants summer runs and the great outdoors.

Well, as it turns out, time turns (with the hands on the clock, duh), and it was September, and my surgery was in five days. To be certain about the decision for surgery, I went out to play soccer and gave it a good romping. To my dismay, I could elicit no pain. This is when I started to freak out and think, “Maybe I don’t need the surgery? Maybe I can just keep using it like this? This is fine. I like using it like this. Nothing to see here, folks.” This couldn’t be true — where had the pain gone?

To add to my predicament, I knew I would be skiing this winter, and had no idea how my knee would react to skiing and more specifically, skiing moguls (my favorite). To guarantee that I would be skiing pain-free this season, I had to decide if I would:

  • A) use the lack of pain I felt while playing soccer as a predictor for what I would feel while skiing and not get surgery (but risk making the tear worse), OR,
  • B) just get the surgery and settle with the fact that I’d have less meniscus to help protect my knee from arthritis in the future, but probably prevent future tearing, and probably be pain-free.

By the way, these options suck.

I slept on it, and the next day (Wednesday), I played soccer again. I hammered on it with lateral movement, twists and turns, but I couldn’t get much pain out of it. And that made my decision even more difficult. I was hoping that two days of soccer would bring some real pain to it. But instead, I felt like the 14-year-old boy I once was.

Surgery was scheduled for Friday, and I had all of Thursday to decide.

I called my doctor and my old physical therapist — one said to do it, and the other said not to. Perfect.

So, I slept on it again. And when I woke up on Friday, I was really hoping to have a definitive answer, but I didn’t have one. I was standing in the kitchen when I decided I’d flip a coin. I walked into my room to grab a quarter. And then…

…The coin flipped through the air and landed on heads.

I woke up in the post-operation room and I looked down at my leg; it was all bandaged up. Time had passed, and events had occurred while my consciousness was away. Now that it had returned, I took stock of the situation and was relieved that it was over. A nurse came by and I stated: “thirsty,” for which I was awarded a small styrofoam cup of ice chips.

It was time to go home.


Some Notes

  • I don’t recommend flipping coins to determine whether you are going to do a surgery or not. You should be certain about your decision. In the end, if I really did’t want to get the surgery, I wouldn’t have shown up at the hospital. I think my brain calculated the odds and determined I was more likely to be pain-free this ski season if I went with the surgery. But, it really felt like a bet. And I hate betting.
  • A meniscectomy (the procedure) is a quick recovery compared to other things, like tearing/repairing your labrum ( If the procedure involves scooping, and not stitching, you shouldn’t need crutches, and you’ll walk out of the hospital the same day of your surgery. Your knee will be swollen though (GET SWOLL, YO).
  • Your throat can hurt post-operation. Oh, you didn’t know? That’s usually because they stick a endotracheal tube ( down that guy.

How to Retrieve and Analyze Your iOS Messages with Python, Pandas and NLTK

I’m one of those people that keeps every text message I send or receive — I never delete them. Meet a girl at a bar, text her the next day and never hear back from her? I keep that. Weird wrong-number texts? I keep those too. Ex-girlfriend texts? Definitely keepers.

I had 65,378 messages on my phone at the time of writing this post.

I’m not a digital hoarder or anything, but I primarily do this because I like the idea of being able to search through the past. But, digital hoarder or not, collecting anything takes up some sort of space, and when I found that my text messages were taking up 4GBs of space on my phone, I decided it was time to back them up. It was at that point that I realized I could also probably analyze them.

As it turns out, you can do this, and I’ll tell you how. For this project, I used Python/Pandas/NLTK for the analysis and an iPython Notebook to render the datasets. I’ve also uploaded the code to GitHub, which you can view here.

An overview of the steps to make this happen:

  1. Sync/back up your iPhone because the messages need to be stored on your computer.
  2. Load the SQLite file and retrieve all messages
    • You can follow the directions for retrieving the right file here.
  3. Analyze those mensajes (I used Pandas)!!

Let’s get into some details.

You need to sync and back up your phone’s contents to your computer. There’s a great post on how to do this here. In case you want to skip that read, you’re ultimately getting a file with the text messages in it; copying it and moving it into your working directory.

You can find the file with this bash command:

$ find / -name 3d0d7e5fb2ce288813306e4d4636395e047a3d28

Now, loading the SQLite file — you can actually see what’s in this file via the command line:

 $ sqlite3 3d0d7e5fb2ce288813306e4d4636395e047a3d28 

Then you can check out the available tables:

sqlite> .tables
_SqliteDatabaseProperties chat_message_join
attachment handle
chat message
chat_handle_join message_attachment_join

From here, the main tables I found useful were “message” and “handle.” The former contains all of your text messages, and the latter contains all of the senders/recipients. I only wrote code around the messages table, primarily because I could never figure out how to make a join between message and handle, but that was probably something trivial that I overlooked. Please tell me how you did it, if you did!

Continuing on, the message table has lots of columns in it, and I chose to select from the following:

['guid', 'service', 'text', 'date', 'date_delivered', 
'handle_id', 'type', 'is_read','is_sent', 'is_delivered',
'item_type', 'group_title']

The key field is “text,” which is where the content of the message is stored, which includes emojis! (A cool thing is that your emojis will show up if you try to plot them in something like an iPython notebook. You could run an entire analysis on emoji usage…)

My analysis, however, ultimately breaks down into two pieces:

  1. Analyzing the content of the “text” field (excluding emojis).
  2. Analyzing the messages themselves (for example, total text messages, or, what I sent vs. what I received, for instance).

For #1, I wrote code that:

  • Classifies all words and assigns a part of speech to them, then check the counts of each part of speech.
    • You should get a table looking like this.

      You should get a table looking like this.

  • Counts the number of times each word appears in the dataset, and gives an overview of the dataset:
    • total_words_filtered
  • Excludes boring words, like prepositions, and words that are < 2 characters.
  • Classifies all words as is_bad=1 or 0. I did this by using a .txt file full of bad words, found here:
  • Plots usage of bad words
    • I’d love to show you my plot, but let’s just assume I never swear…

For #2, the code allows you to:

  • Plot the number of text messages received each day (check out the spike on your birthday or during holidays). You can see my data below has a huge gap (that’s when my phone was replaced and not backed up for many months. My timestamp conversions are also apparently incorrect, but I haven’t looked into it.
    • The timestamp conversion is off, so someone can fix that... we're not in 2016, yet... Are we??

      The timestamp conversion is off, so someone can fix that… we’re not in 2016, yet…Or am I??

  • Count the number of sent versus received messages.

Anyway, I hope you can get some use out of this, and instead of blabbing on about the code here, I’ll just let you read it and use it on your own. Please check out my git repo, and please reach out to me with questions, comments, etc.