Category Archives: Culture

Life Perspective

This post takes a more serious, rhetorical tone.

As someone in his 30’s, I’m going to repeat a cliché that I say a lot: time flies. It’s amazing how fast the years go by. You can choose to be a grown up and do grown up things (family, career, etc.), or you can choose to have less responsibilities (more freedom?); but time flies regardless.

One topic that has been weighing heavily on me is my time with family. The family that I’ve taken for granted. You may know what I’m talking about: parents, sibling(s) – the people that you saw all the time when you were a kid. The people that you spent all your time with doing mundane things like watching TV or eating a meal.

As a person living in a different region from my immediate childhood family, it feels really weird for me to see so little of them. The worst part is that even if I do see them, there is no real way to “make the time count”. How do you make your time count anyways? Time flies by and that day or week with them is in the distant past.

I’ve read an interesting piece, The Tail End by Tim Urban, that shares some of my sentiments. By not living near my parents or childhood friends, I’ve got very little % of the time left with them. I’ve already spent most of the time I’ll ever have with them (in the context of humans on Earth).

Urban brings up great takeaways:

1) Living in the same place as the people you love matters. I probably have 10X the time left with the people who live in my city as I do with the people who live somewhere else.

2) Priorities matter. Your remaining face time with any person depends largely on where that person falls on your list of life priorities. Make sure this list is set by you—not by unconscious inertia.

3) Quality time matters. If you’re in your last 10% of time with someone you love, keep that fact in the front of your mind when you’re with them and treat that time as what it actually is: precious.

The more I think about this topic, the more paralyzed I feel. Not in a literal sense, but more in a existential sense. How do I make the most of my time here?

To use a shoddy example: when I travel to a new place, I want to experience “all the things” and feel like I’ve done it all. Which is obviously impossible for any place that’s not super, super tiny. What I end up doing is walking around streets arbitrarily, take a bunch of bad pictures. This is a brute force / high level strategy to see a little of everything, but without any depth. I feel like I am not experiencing everything to its potential, and this feels like FOMO (fear of missing out).

I don’t have any satisfying answers to making the best use of our precious time. There is always a sense of FOMO in a world with endless choices. All I can do is prioritize between what I need to do and what I want to do. Everything else will be left behind, but that’s alright because ain’t nobody got time for that.

Anger Driven Development

As a programmer, it’s nice to imagine perfect productivity conditions: many well defined, small units of work lined up. If the work at hand is clear and you have ample time to get into a flow, you expect to finish many things. Unfortunately, real life rarely works out that way.

Instead of picturing an ideal, efficient scenario, I want to talk about a less than ideal productivity method that manages to pop up every now and then: Anger Driven Development (ADD). ADD in this context might mean different things to different people.

What ADD means to me is that I’m working on a task, get frustrated, and then refuse to be beaten. Some of my more productive times have occurred when I was so pissed at the situation that I refused to throw in the towel. I will NOT be beaten by a machine. The power of human will can be indomitable at times.

While driven to extreme frustration at what started off as an “easy task”, it becomes man versus machine. Man does not want to give up. Man refuses to give up.

Even if I was tired or had other reasons to put the work off until later, Anger Driven Development does not give me the choice to stop. Like taking a hammer to a screw and forcing it in through sheer will power and brute force, Anger Driven Development can be messy. Anger Driven Development can’t stop, won’t stop.

The most amazing part of ADD (besides the task that is now completed) is the sense of triumph at the end. While it always feels good to be productive and get things done, there are few things like the joy of victory after ADD.

Anger Driven Development would never be my modus operandi, but it inadvertently has its place in my toolbox.

Travel Overhead

Traveling to new places is fun and exciting. This year, I visited amazing parts of Europe and Hawaii. I really enjoyed Santorini and Waikiki.

One thing that seems to get overlooked in trip planning is travel overhead. On paper, if you were to go to three countries in Europe, that looks great! You’re accomplishing so much by checking out so many places. The reality is that travel can impose a heavy, relative overhead cost between destinations if not properly managed.

For example, if you have a flight at 2pm, your schedule for the day looks something like:

  • 11 am – pack and check out of the hotel
  • 12 noon – travel to the airport early enough
  • 1 pm – wait at the airport gate
  • 2 pm – board the plane
  • 2:30 pm – fly to your destination
  • 3:30 pm – arrive and possible baggage claim
  • 4:30 pm – arrive at your hotel and check in

Your 2pm flight blocked over 5 hours of prime vacation time.

When traveling, I’ve found that the daytime is the prime time to do things. Whether eating food, going shopping, or hitting the outdoors – you’ll want to do it when it’s actually open and the sun is still out. If you have a 2pm flight, chances are that you’ve used up most of your day’s prime hours, which means one less day of vacation you actually get.

Even without worrying about airport flights, staying at different hotels in the same area can really impact your trip. Coordinating your check out time (or late check out time) with travel time to the next hotel can be tricky. Not to mention finding time to grab lunch.

While those who travel much more than me have internalized all of this overhead stuff, I’m getting exposed to it and it frustrates me. Spending prime vacation time lugging bags around and waiting for a bus/plane is a huge waste and should be avoided (planned around) if possible.

Xcode Fix Code Sign error: No matching provisioning profiles found

While updating my pomodoro apple watch app, I ran into an issue building my app with the latest Xcode (v6.4). The error was:

Code Sign error: No matching provisioning profiles found: None of the valid provisioning profiles include the devices:
iPhone6
CodeSign error: code signing is required for product type ‘WatchKit App’ in SDK ‘iOS 8.4’

First, I double-checked that my device was registered by UDID in the Apple Developer portal under Devices > iPhone. My code sign error persisted, so I created a new profile under Provisioning Profiles > Development.

  • Under Provisioning Profiles > Development, click on the + sign at the top right
  • Select iOS App Development and hit continue
  • Select the App ID that corresponds to your xcode project and hit continue
  • Give the Provisioning Profile a descriptive name and hit continue
  • Download your profile. It ends in a .mobileprovision extension
  • Double-click on your .mobileprovision file
  • Let Xcode build your project again (and success!)

Debugging Xcode is scary since the error messages are not very helpful. Also, it’s easy to get confused looking in the Apple Developer Portal versus iTunes Connect.

 

Travel tip: Learn to drive manual

I recently spent time traveling in Europe.

As an American, driving an automatic car is the default since most cars are purchased automatic. Many people in the USA don’t know how to drive manual (or stick).

You will save yourself a bunch of money if you know how to drive manual and you’re renting a car in Europe. In Europe, manual cars are the norm and automatic cars are considered luxury (more expensive).

Optimizing for stable tools that don’t create perpetual work

Time is an incredibly important asset.

I come from a Ruby on Rails background. The progress of Rails updates & JS frameworks has been amazing & constant. Each new Rails patch brings with it some work to stay current. It’s not Rails’s fault since there are always new features or security issues that arise. Having a well maintained framework, such as Rails, is a huge boon for the community.

With any programmer tool, you generally want to be on the current stable release (for a variety of reasons including security & bug fixes). The issue is that upgrading to the latest stable version creates a never ending stream of (hopefully small) work.

Even if you went without a framework (Rails, Django, etc.), your server is running on a suite of tools. You’ll need to keep your OS (even LTS) and most likely nginx up to date.

Perhaps you want to outsource server maintenance, so you’re using Heroku. You’ll have to keep your configs compliant with the Heroku deployment framework & best practices.

What I’m getting at is that there are so many incredible tools available to developers today. Oftentimes, these tools are free and constantly get better & faster over time.

I’m wondering if there is, or if it would be possible to create developer tools that are optimized for API stability. No more figuring how to do things the framework-way every several months. Setup once, use forever. When you’re able to minimize the present value amount of time spent maintaining a tool, you’re freeing your future self to work on higher value tasks.

Growth vs Established Site Metric

What do websites prioritize? User sign in (mainstream) or user sign up (startups)?

Top US sites (per Alexa)

I looked at the Alexa Top US sites list and went through the top 10. These are established websites. The purpose of the site helps determine which options (Sign in & Sign up) to feature. Is it a gateway to content (Google, Yahoo)? A source of content (Wikipedia, Youtube)? A social network (Facebook, Twitter)?

The call to action of each site is interesting (and surely optimized in countless ways). Let’s look at the top 10 US sites:

  1. Google
    google
    Google only provides an option to Sign In. They’ve kept their homepage uncluttered with a clear call to action (to search).
  2. Facebook
    facebook
    Facebook wants sign ups, and they offer both Log In & a giant Sign Up form. As a social network, if you don’t log in or sign up, you can’t really do anything on Facebook. Interestingly, the Log In form has the focus so you can immediately type in your login credentials. This one goes to Sign Up, just look at that real estate.
  3. Youtube
    youtube
    Youtube has two different Sign in buttons. As Google owns Youtube, this is consistent with their assumption that you already have an account and are not new to Youtube. Also like their parent, Google, Youtube allows you to use their site right away without signing in.
  4. Amazon
    amazon
    Amazon only provides a Sign in button. As a store, you can immediately click on things to view and perhaps purchase. Amazon, like most stores, lets you add things to your cart without an account. When you want to checkout, you can sign in or create an account.
  5. Yahoo
    yahoo
    Yahoo only provides a Sign In link. Yahoo, an enduring web portal, lets you do many things on from their homepage. You do not need to be logged in to use their site (for things like news, weather, etc.).
  6. Wikipedia
    wiki
    The English Wikipedia page has a tie between “Create account” and “Log in”. Perhaps “Create account” wins since English is a left-to-right language. For our purpose, we’ll consider Wikipedia a tie for user accounts. Wikipedia is a content source and you can (and most likely) browse it without signing in.
  7. Twitter
    twitter
    Twitter is similar to Facebook. It’s a social network, but Twitter doesn’t have as strict of a login requirement as Facebook to use it. Like Facebook, Twitter’s default focus falls on the Log in form, but the Sign up form takes up more real estate. We’ll give this round to Sign up.
  8. Ebay
    ebay
    Ebay is an auction site or a shop. As such, you can browse most of the site without logging in. The header contains “Sign in or register”. Since they provide both options without giving one option a more prominent style, this is a tie.
  9. Linkedin
    linkedin
    LinkedIn is a professional social network. Along with Facebook & Twitter, it places a heavy emphasis on sign up. There is a large form and giant “Join now” button in bright yellow. LinkedIn also defaults the focus to the Sign In form. Since social networks display different content for each user, having an account is important to experience the social network as intended.
  10. Reddit
    reddit
    Reddit is an online community that tends to provide news and other user generated links. Reddit can be used without an account since you can read most of the content without logging in. Reddit provides small text links for “sign in” and “create an account”. There is a big login form nested or obscured between a search input and submit buttons.

Recent YC Startups

For the sake of picking some newer companies, I went to yclist and looked at the first five. I’m sure there are better ways to come up with new startup sites, but I wanted something reasonable and simple. For these startups, I’m going to focus on their Sign In vs Sign Up call to actions (not their business model).

  1. Abacus
    abacus
    Abacus has Login & Sign Up links in the header, but the page is clearly focused on signing up for a free 30 day trial. There’s screenshots of their product, a Watch Video link, and a Schedule a Demo link. All signs that they want you to find out more and sign up.
  2. AirHelp
    airhelp
    AirHelp has something which I haven’t seen in a long time: a choose your location screen. Selecting “US”, there’s are multiple Call to Actions for “Start your claim”, “Check if you’re eligible”, and “Don’t have a claim yet?” to entice you to start (or sign up).
  3. AirPair
    airpair
    Airpair has a header link for “Login”, but a giant input for “Enter your email to get started …”. Clearly, they want to draw your attention to enter your email and get started.
  4. Algolia
    algolia
    Algolia’s header contains a “LOGIN” and a “FREE TRIAL” link/button. The “FREE TRIAL” in the header is very prominent since it has so much contrast with the other header elements. In addition, the page is dedicated to “SIGN UP NOW”.
  5. Ambition
    ambition
    Ambition contains a “SIGN UP!” element in the header that is very prominent (high contrast and 2nd item from the left). The page itself is dedicated to “TRY IT OUT” with various ways you can sign up.

Summary

We looked at 10 big US sites and 5 startup sites. Within the top 10 US sites, there were 5 sign ins, 3 sign ups, and 2 ties. Within the arbitrarily selected startups, all 5 were sign ups. This makes sense since websites start out and assume that visitors don’t have an existing account. As sites become mainstream, they make the assumption that most people visiting already have an account. If the site doesn’t require user features (Google, Youtube, Wikipedia), you can start using the site right away. If the site practically requires user features (Facebook, Twitter, LinkedIn), they offer both Sign Up and Sign In options.

Choosing to feature Sign Up versus Sign In is interesting since it is a big step for a startup to de-prioritize new users (Sign Up). I don’t have the data, but I would be interested in when sites like Youtube, Yahoo, etc. switched from featuring “Sign up” to “Sign in”.

All of the top US sites we looked at mentioned “Sign in”. All of the startups we looked at prioritized “Sign Up”. Looking at what company’s deem important to draw your attention and place on the homepage is very revealing.

SCARF: a brain-based collaboration model

At YC’s Startup School NYC, Shana Fisher brought up an amazing resource called SCARF.

SCARF stands for Status, Certainty, Autonomy, Relatedness and Fairness.

With these five areas, stands positive (approach) and negative (avoid) modes of interacting with people. As the title says, SCARF is based on neuroscience research to correlate human interaction & collaboration with physical brain activity.

When you are being threatened with a SCARF metric, you will perform worse (due to “less oxygen and glucose available for the brain functions involved in working memory“). On the contrary, when you have an opportunity to increase a SCARF metric, you perform better since you don’t have decreased cognitive resources.

There are lots of findings and useful applications, so I encourage you to read about SCARF.

Discovering Columbus by Tatsu Nishi

Some Columbus Circle pics:

Waiting in Line

Waiting in Line

Climbing the stairs

Climbing the stairs

View towards Broadway

View towards Broadway

View of the entrance line below

View of the entrance line below

View of the entrance line below

View of the entrance line below

View of Trump Tower

View of Trump Tower

The man himself, in his living room

The man himself, in his living room

View out the living room window

View out the living room window

American wallpaper

American wallpaper

Another stair view

Another stair view

All pics taken with the old school iPhone 4.