Thursday, August 17, 2017

The Three Mobile Notification Tiers

Mobile device notifications have probably become the primary UI I use to engage with my mobile device. I'm constantly amazed at how poorly mobile app developers implement them. Here's an awesome post by Stan Otrovskiy (iOS engineer at AMEX) that gets into how to do the right thing when a user actually selects a notification; great read.

I wanted to get some high-level thoughts down on paper around the three notification constructs nearly all mobile OSes support. Use them wisely.


SMS (aka "text") notifications are presented by the OS and are generally end-user configurable. These reach the device whether or not data is enabled or disabled, and by definition involve server and mobile-device communication. In a connected-device world, SMS notifications are often considered the most reliable form of notifying the user of something because they run on a different carrier protocol and aren't as subject to the general horrors of "data connection" unavailability. Be careful though, if your users are going to use your application while on a commercial airplane flying at 30k'+, SMS doesn't work. In general though, SMS finds a way to get through when data/IP based messages simply can't. The downside to SMS is that it's archaic and poor in terms of features and functionality. On iOS (I don't recall about Android), these notifications do NOT require the end user to initially grant permission for use.


The various mobile platforms (e.g. iOS, Android) provide OS-level notification frameworks. These frameworks allow an application to present OS notifications. The quickest way to understand these as an end-user is to go into iOS Settings->Notifications, where you can see the various types of ways to notify/alert the user to something. If your mobile app has a backend component that wants to engage with the user with a notification (e.g. "Your Uber is arriving."), the user's mobile service needs to a) support data and b) have data enabled on their device. In this case, as should be obvious, the user CANNOT be in airplane mode, otherwise there's no way for corresponding IP packets to get to the OS. These notifications generally require user permission on a per-app basis.


These are notifications that live purely within your application. If your app is a game, perhaps you throw dialogs that say things like "you just won 100 coins" or whatnot. In-App notifications don't abide by any OS-configured rules such as "don't display on lock screen" because they live entirely within the application itself, and are only relevant/visible when the user has the application in the foreground. Of course, you can reflect some, or mirror all, in-app notifications to their OS-level notification counterparts.


At the root of all notifications is gaining the user's trust to send them along in the first place. Regardless of their OS-level notification settings (whether they're liberal and permit all notifications to be as loud and visible as they want to be at all hours, or whether they're conservative and disable all notifications all the time), you have to be wary of being too pushy with your notifications. Over-notifying, or notifying the user of something they don't care about, violates trust. While you may want to engage the user for one reason or another, considering when to do so is important. Users disengage from noisy apps. As time permits, give your users lots of control over the types of notifications they receive. Default settings win, but power-users will eventually want to control all the nooks and crannies of their interaction with your app.

When you're considering conveying a piece of information to a user, it's important to understand the matrix of various notification settings and operating environments your users are likely going to be in. For example, if your application is for rock-concert or major sports event attendees, they don't have data connections available due to cell tower network saturation, nor are they likely to hear or feel notifications/vibrations of any type. Thus, perhaps your only notifications will be In-App when you're guaranteed to have the user's attention.

The best notification/engagement schemes are quickly foiled by a user who has turned on Airplane Mode to save battery life. Make sure you're providing value to the user in all notification settings scenarios, or ensure you know your user-base's settings support what you want to do with notifications.

Tuesday, August 15, 2017

That Was So Stressful!

I just successfully used . I got it on the second try. Here's my text.

I would love to see the world's editor windows support this feature by default. I wonder what everything would look and feel like if we all wrote this way. Same goes for writing code :). that would be powerful.

I'm definitely stressing as I can see the bar across the top creeping along and it seems I'm only one-fifth of the way through this exercise.

So much gets lost when we edit over and over again and stall our thought process to perfect verbiage and such. Consciousness seems to get lost in it all. Our true selves become masked.

Interesting, I find myself typing garbage and deleting it to buy myself small bits of time when my mind goes blank.

Almost halfway there! This will be fascinating if I can get to the end. Can you feel my stress ticking up :).

So much of the world is concerned with consuming content instead of creating it. I wish we could/would all spend more time creating. That said, creating doesn't necessarily mean creating and editing over and over and over again. This is why I emphasize my photography work as "in-camera." It ensures that I don't spend a bunch of hours in front of a computer editing my photographs. It forces me to compose shots just "so" and ensures I get the settings right up-front, instead of tweaking and editing later.

I think the world would be a better place if, in general, we didn't edit everything. Of course, I'm a huge fan of the 24-hr rule which says we must wait 24 hrs or "sleep on it" before sending/saying something that could be done in the heat of the moment. That always has served me, and others well, but I wonder how you weave that into a tool/feature like this.

I'm almost done. I'm near the end. Please don't brain glitch and miss this. I twould suck to get this far and lose it all. But this has been a fun adventure. I hope others will try it. my palms are literally sweating as I type this.

I need to calm down as I can see the stress ki

Monday, June 5, 2017


I can finally talk about this product and company!

CARMERA is building a marketplace for real-time, in-depth (3D), street-level environment information. Autonomous vehicles and smart city efforts have insatiable appetites for this kind of data, and collecting it is expensive and hard. CARMERA brings it to market in a scalable, affordable, manner, so industry can focus on solutions that leverage the data, instead of the collection/creation of it. If this sounds a bit analogous to my previous effort in the social data space, Gnip, Inc., it should.

Much of the inspiration for this idea came from Ro's (co-founder/CEO) experience in the public social data industry while working at Disqus. Disqus and Gnip (my previous firm) worked together to build a marketplace for vast amounts of discussion data, by pairing the supply and demand sides of the ecosystem. Delivering real-time, high-throughput, reliable, full-fidelity, was our collective mantra, and CARMERA's doing this with street-data.

In order for new industries to flourish, they need to be able to focus on their specific value-adds, instead of putting time, energy, and money into acquiring the underlying data they need to fuel their efforts. CARMERA does for real-time, street vision data, what Gnip did/does for real-time, public social data.

One of the cool things about their approach is that they leverage existing commercial vehicle fleets to do the "crawling" of the the road networks, instead of owning and paying for a massive fleet of vehicles themselves (they do have some vehicles). They partner with fleets, slap their homegrown sensor packs on the vehicles, and collect/analyze the data. They then turn around a provide that data, and associated intelligence, to the market.

The CARMERA team is what makes this possible of course. Ro Gupta (previous Disqus fame) and Justin Day (previous CTO of MakerBot) co-founded the effort. Ethan Sorrelgreen (previously Amazon Maps + Apple Maps Eng Lead) drives Product. Engineering is comprised of former MakerBot, Google, Inrix, Microsoft/Bing Maps, and MetaVR crew.

Below is some cool eye-candy around what the platform can do.

I'm an investor/advisor.

3D Point Map of the West Village on Manhattan.
Feature detection.

Fleet Partner Vehicle with sensor packs on roof. 

One of CARMERA's cars.

Wednesday, March 15, 2017

Women, Confidence & Trying to Father A Daughter

carrying on with the vulnerability theme, I'm going to talk about some of the challenges that I perceive to exist around being a woman, and get into some of my parenting inadequacies. I am not a woman, and I am no doubt coloring outside my lines here, but, I wanted to convey an observation, and vulnerability around being a father to a daughter. I do not purport to truly understand any challenges that women face.

whenever I travel to non-"Westernized" cultures I see beauty in women to a degree that sadly often feels foreign at home in the U.S. (and Europe). when I pause and wonder why that is, I'm reminded of just how powerful media can be. sure it can contort our political views and understanding of information, but it can quite literally transform a gender's understanding of itself. it can literally change what a gender believes is valuable and what is desirable in relationships and society.

this has hit me the hardest on two particular trips. one was to India around a decade ago, and the other is on this trip to Mexico I'm currently on. after several days of being away from Western advertising and media, the brainwash starts to rinse off a bit, and you "see" beauty and sexiness in women that goes against everything we, in the Western world, have been taught to be beautiful and sexy.

as an example, you see "normal," and "plus," sized women behave with an underlying confidence in social settings that you just don't see in the West. and you see men throw themselves at them accordingly. the measures of physical attractiveness are simply different. as an observer, it's neutralizing and refreshing.

while I selfishly enjoy the shift in understanding and perception, an expansion of understanding of what constitutes beautiful, it reminds me of just how particularly brutal it must be to be a woman in the West. of course there are cultures that treat women in downright inhumane and torturous ways; I'm certainly not trying to draw a comparison to those horrible dynamics. however in the West, it seems, from the moment a woman is born, they are held to impossible physical standards (standards that I undoubtedly perpetuate, despite my best efforts to be more enlightened than that). all of this resonates with me on a new level now that I have a daughter though. I catch glimpses here and there of the absolute bullshit she sometimes consumes on YouTube or Instagram. tweens doing makeup tutorials... beauty product evaluations at age ten... Musicly music videos of young girls mimic'ing hardcore sexual acts portrayed by adult models in the actual music videos. it's just so un-fucking-real when you immerse yourself in a non-Western culture for awhile and see how much of the rest of the world works.

as a father I struggle like mad with how to parent my daughter. she is physically beautiful to me, just as my son is handsome. her value in life is independent of her physique, and I tell her that (and get the commensurate eye-roll in response, and then an "I knooooow Daaaaad."). she has an enlightened mother who is unbelievably confident and strong in her Self, and she parents from that position of maternal strength every waking moment (thankfully). I don't make comments about women's looks when I'm around her. I emphasize her mind, her creativity, and her studiousness when I talk to her. yet, I just don't feel like I'm doing enough as a father. I want to "fix this." I'm frankly scared to say "you're beautiful just the way you are" even though I think it, because I fear she will lock onto something in her world that she thinks caused me to say that (say... a new haircut or something), and if that thing becomes un-true (a change in said haircut), she may subconsciously start thinking that she's suddenly not beautiful. and on and on.

doing what I can here, and grateful she has the mother she has to help guide her, and me, through this mess. having a daughter continues to be one of life's greatest joys for me; it is also the scariest thing I've ever had to try to get my head and heart around.