With tennis, imperfect practice makes perfect

June 24, 2018

Tennis matches are oftentimes uncomfortable, so I decided that my practices should be too.


This new mindset has worked well for me, and I hope it brings continued success on the court.

Remember, if you want to play that perfect match, prepare with intentionally imperfect practices.

My YouTube TV experiment (updated)

November 12, 2017

Update (February 19, 2018):

Yesterday, I cancelled my cable TV service and switched to YouTube TV. To my surprise, it took less than 10 minutes on the phone with Comcast to switch to an Internet-only plan, and I wasn’t even asked why I was downgrading my plan or persuaded to reconsider my decision.

So why did I finally make the switch? Well, YouTube TV addressed many of the issues I called out in my original blog post:

Even though all of these updates were compelling enough for me to make the switch, I’d still really like to see some more of the issues I called out in my original post addressed such as improved DVR management (ex: record only new episodes and delete watched episodes), offline DVR access, reduced stream delay, and 60fps support for all channels.

One day after making the switch, I feel happy with my decision and surprisingly free.

Oh, and I’ll be saving $70/mo.

In the last year, I’ve been thinking a lot about cutting the cord, or ditching my cable TV service.

I currently have Comcast’s XFINITY TV offering, and their product is actually pretty good. I like that their X1 “entertainment operating system” DVR can record many shows at once, the X1 remote is excellent, and Comcast even has a solid app for watching TV on my phone (with offline download) called XFINITY Stream.

So why do I want to cut the cord? Because it’s my most expensive monthly bill at close to $200/mo (including Internet and HBO), and the price seems to increase randomly every few months.

Live TV streaming services

I’ve researched Sling TV and DirecTV Now in the past, but they’ve never quite checked all of the boxes. It wasn’t until YouTube TV announced apps for Xbox One and Apple TV in late October that I thought I might actually cut the cord and go with YouTube TV.

YouTube TV interests me for a few reasons:

And now that the app is available for Xbox (alongside an existing app for iOS), I decided to sign up for YouTube TV’s 7 day free trial. I even went “all in” by hiding my cable TV remote so that I could test whether it could truly replace my cable TV service.

My YouTube TV trial

After downloading the app on my Xbox, I explored the app a bit and started watching a college football game that was on TV.

YouTube TV Dashboard on Xbox One

Picture quality

Immediately, I noticed that the YouTube TV picture quality seemed different than what I was used to. I couldn’t quite explain what was different, so I quickly switched back to my cable TV to compare. Compared to cable TV, my YouTube TV stream of the football game was noticeably less smooth, as if the frame rate was reduced or something. The fast-moving players in the football game just weren’t moving smoothly across the screen, and the more I watched the more it bothered me. (My Internet connection is more than 100 Mbps down, so I don’t think the Internet connection is to blame.)

I noticed a few glitches throughout my trial where the stream would pause, but nothing was as bad as what I experienced while trying to watch the Philadelphia Eagles play on CBS. The quality was so bad that I had to stop watching the game. Here’s what I saw:

Stream delay

I like to watch sports on TV with the Twitter app open on my phone so that I can check out what other fans and journalists are saying about the game in real-time, especially when I’m watching my alma mater Penn State. While I was watching the Penn State football game during my trial, I noticed that other people were tweeting about plays that I hadn’t even seen yet, something I’d never experienced while watching with cable TV. I was even getting ESPN push notifications about plays that I hadn’t seen yet too.

I noticed that other people were tweeting about plays that I hadn’t even seen yet.

I estimated that the YouTube TV stream was about 30 seconds behind the live action, which made me feel less connected to the game. I noticed the same issue with other channels and other games, so it wasn’t isolated to one particular game.

Navigation and channel switching

I didn’t realize how often I switched between channels until my YouTube TV experiment. The YouTube TV interface doesn’t have a “last” or “previous” button either in the on screen UI or using one of the many buttons on my Xbox media remote, which means it can take quite a bit of time and effort to go back to the last thing I was watching. (This is in contrast to the Comcast X1 remote which has a “Last” button that actually brings up the last few channels I was watching.)

Channel 623 = ESPN, Channel 105 = NBC, Channel 634 = Tennis Channel, and so on. My brain has memorized all of the channel numbers I watch frequently on cable TV, so navigating to a channel is as simple as typing three numbers with my cable TV remote. Of course, it’s not ideal to have to memorize channel numbers, but after you do, switching channels is super fast.

With YouTube TV, random access channel surfing becomes a thing of the past, and I missed it a lot. Switching to a different channel was easy if the channel was directly above or below the channel in the YouTube TV guide, but was a lot more cumbersome if it wasn’t (and the channel I wanted to watch next never seemed to be a few clicks away).

With YouTube TV, random access channel surfing becomes a thing of the past, and I missed it a lot.

I found myself becoming more intentional about switching channels, rather than just casually channel surfing, because switching to another channel required a lot of button clicks and actually felt like a lot of work.

YouTube TV could help solve this problem with some (improved) artificial intelligence or machine learning in their “Top Picks for You” section on the Home page of the app, which didn’t seem to learn the channels I watched frequently.


After starting my trial, I immediately set up recordings for my favorite shows. Unlike my cable TV DVR, YouTube TV has a cloud DVR with unlimited storage. This means I didn’t need to worry about managing a priority queue or making space for new episodes.

However, there are a few things that bothered me:

  1. There’s no way to record only new episodes. After adding a TV show to the “Library” to record it, both new and repeat episodes were set up to record, which lead to a lot of noise in my recording history and list of upcoming recordings.
  2. There’s no way to “delete” episodes you’ve already watched. After watching a recorded episode, it doesn’t get removed from the Library, so my recording history was even more noisy and cluttered than I’m used to.
  3. There’s no way to download recordings to watch offline. This is a feature that I’ve been enjoying with the XFINITY Stream app for my transcontinental flights, and while it’s not a deal breaker, it definitely felt like a downgrade.

Overall, with the YouTube TV DVR, I felt less in control of what was being recorded and I spent more time figuring out what new things to watch because of all the clutter and noise.


The straw that broke the camel’s back during my trial was when I realized I couldn’t watch the Seahawks game. According to YouTube TV’s help page:

Note for football fans: FOX has not secured the rights to NFL games on its national feed, FOXNet. Users in Albuquerque, Austin, Birmingham, Cincinnati, Cleveland, Denver, Greensboro, Greenville (South Carolina), Harrisburg, Hartford, Indianapolis, Kansas City, Milwaukee, Norfolk, Portland, Raleigh, Sacramento, Salt Lake City, San Diego, Seattle, St. Louis, and West Palm Beach will not see NFL games on FOX.

For the first time during my trial, I had to switch back to my cable TV service to watch something, and that’s obviously not something I could’ve done if I had already cut the cord.

My decision

Overall, I see a lot of potential and cost savings with a live TV streaming service like YouTube TV. The price point is pretty much perfect. And while there are a few missing channels like HGTV, TruTV (for Impractical Jokers), and NFL RedZone, I’m willing to give those up.

At the end of the trial, I decided I’m not quite ready to make the switch due to the picture quality reliability, stream delay, navigation challenges, missing DVR features, and missing NFL games.

I think all of these can be fixed over time, and once they are, I’ll give it another try.

So YouTube TV, it’s not a no, it’s just a not right now.

My favorite Amazon Alexa commands (updated)

July 14, 2016

The Amazon Echo is one of my favorite pieces of tech in my apartment because it enables me to do so many things easily and hands-free. Here are a few of my favorite things to say to Alexa.

Seamlessly switch Spotify playback from a phone to Echo

“Alexa, play Spotify”

If you’re playing music from Spotify on a phone (or tablet/PC), you can seamlessly switch the music playback over to Echo’s speaker by simply saying “Alexa, play Spotify” (after setting up Spotify). Alexa will continue playing your music exactly where it left off, never skipping a beat. It will also continue to play your playlist, album, etc. after the song is over.

This is perfect for me when I’m in my apartment playing music on my phone and want to switch to a better speaker to fill my apartment with sound. It’s also perfect for when you were listening to music in the car and want to keep playing it when you walk in the door.

Turn lights on and off

“Alexa, turn off the lights”

I have two Philips Hue light strips in my apartment, one behind my desk and another behind my bed. They are perfect for mood lighting. I’ve set up some simple automation using the Philips Hue app to wake me up in the morning using the sunrise feature, and I’ve also set them up to turn on in the evening after sunset. However, when I’m ready for bed, I need to turn them off manually. Alexa makes that easy. When I’m ready for bed, I simply ask “Alexa, turn off the lights” and both light strips turn off immediately. Simple and convenient.

Show your school spirit!

“Alexa, start the We Are cheer”

Part of the magic of Alexa is all of the skills she’s learned. For fun, I taught Alexa my alma mater Penn State’s iconic “We Are Penn State” cheer. To get started, ask “Alexa, enable the ‘We Are’ cheer skill” and then say “Alexa, start the ‘We Are’ cheer.”

Here’s a video of the ‘We Are’ cheer skill in action:

Identify a song on Pandora

“Alexa, what song is this?”

When a song catches your ear while listening to a song on Pandora using Echo (after setting up Pandora), simply say “Alexa, what song is this?” and Alexa will tell you the current song. It’s a great way to know what the current song is without having to pull out your phone.

Order stuff

“Alexa, order trail mix”

My first magical moment with Alexa came when I was standing in front of my kitchen cupboard and realized I was low on trail mix. I reached in my pocket to grab my phone, but then I paused. Although I had never tried it before and wasn’t sure if it was going to work, I said “Alexa, order trail mix.” Sure enough, Alexa looked in my Amazon order history to get the exact brand of trail mix that I like, read the price, and asked if I would like to buy it. After a quick confirmation virtual high five, the order was placed and I got an email confirmation a few moments later.

If you haven’t ordered a particular product type before, Alexa will respond with something like “Amazon’s choice for [product type] is [product name]…” and you can decide whether you’d like to buy the item sight unseen.

(By the way, if you have an Amazon Echo, is there really a need for an Amazon Dash Button?)

What else?

What are your favorite Alexa commands? Let me know on Twitter.

Update (7/30/17): I updated this post to include my two new favorite things: turning lights on and off and starting the ‘We Are’ cheer!

How to make a secondary tile resizable to wide and large tile sizes

July 14, 2016

A secondary tile is a live tile that an app can pin to a user’s Start menu or Start screen that deep links into a page in an app (ex: the specific flight for your trip home). Creating a secondary tile for a Windows 10 Universal Windows Platform (UWP) C#/XAML app using adaptive tiles is pretty straightforward, but by default the tile will only be resizable to small and medium tile sizes:

Small and medium secondary tiles


To make the tile resizable to wide and large sizes, specify the Wide310x150Logo and Square310x310Logo properties, like this:

secondaryTile.VisualElements.Wide310x150Logo = new Uri("ms-appx:///Assets/WideLogo.png");
secondaryTile.VisualElements.Square310x310Logo = new Uri("ms-appx:///Assets/LargeLogo.png");

Make sure to add assets named “WideLogo.png” (310px x 150px) and “LargeLogo.png” (310px x 310px) to a folder named “Assets” in the project.

The full helper method would look something like this:

private static async Task<bool> PinSecondaryTileAsync(string id)
   // Check whether the secondary tile already exists.
   if (SecondaryTile.Exists(id))
      return false;

   // Create the secondary tile.
   var secondaryTile = new SecondaryTile(
      "Display name",
      new Uri("ms-appx:///Assets/Logo.png"),

   // Provide wide and large tile size assets.
   secondaryTile.VisualElements.Wide310x150Logo = new Uri("ms-appx:///Assets/WideLogo.png");
   secondaryTile.VisualElements.Square310x310Logo = new Uri("ms-appx:///Assets/LargeLogo.png");

   // Returns true if the secondary tile was successfully pinned.
   return await secondaryTile.RequestCreateAsync();

Now, when the secondary tile is pinned, the tile can be resized to all sizes:

Small, medium, wide, and large secondary tiles

In order for the wide and large tiles to show content (like in the screenshot above), don’t forget to send a local tile notification or a periodic tile notification with the TileWide and TileLarge properties properly set.

Welcome to my blog!

July 14, 2016

I created this blog to share thoughts that can’t be captured in 140 characters, develop my writing skills, and learn more about web design and development (after a couple year break).

This blog runs on WordPress, styled with a simple and responsive theme that I developed on my own from the ground up.

The source code for my blog and personal website is available on GitHub.

Thanks for visiting, and let me know on Twitter what you’d like me to write about.