Programming With Only Your Mind

You know what would be cool? If there was the ability to create software just with thoughts.

Imagine sitting at your desk. Looking at a monitor. Electrodes on your head. And seeing your thoughts translated into code.

Just by thinking of a piece of logic or object, it appears. Or picturing a button or form elements, and a user interface is created.

This would just be version 1.0 of Thought Programming, or course. Future versions would allow higher level thinking, much like pseudo code comments. You wouldn’t need to think up each line of code. Thinking in pseudo code would be good enough.

Future versions wouldn’t need electrodes either. And any visual interface into a computer could do, be it your monitor, mobile device, or eyeglasses. You just have to be trained in Thought Programming and have the hardware & software necessary to understand it.

There’s forever been a debate on the best programming language, or syntax, or IDE. Why not remove all of those barriers and formulate code from its most natural state, your thoughts?

The benefits to physically-impaired individuals would be huge too. Maybe the next Facebook or Twitter (or whatever will be huge in the future) will be thought up by such an individual.

Speed would be another advantage. Ever get frustrated because your hands can’t type as fast as you think? Yea, me too. It would be cool to just think of this entry and have it all transcribed.

There is already nascent technology that reads and interprets brain waves. Methinks such sci-fi imagination may not be that far off (relatively speaking). Maybe not in my lifetime, but the next?

Until then, one can only dream. And think.

How to Market on Quora

I don’t really want to write this post, because I don’t want to see this happen. But I’m kind of surprised no one’s talked about it yet.

Quora, if you aren’t familiar with it already, is a questions & answers site similar to Yahoo! Answers. Except Quora has a much more limited audience of mostly movers & shakers in the high-tech world, while Yahoo! Answers has a wide, general audience. Quora’s long-term goal is to be more general, but they happened to gain a lot of usage & buzz within the Silicon Valley world.

And speaking of buzz, Quora strikes me as a place where a tech & industry-savvy marketer could ignite (or at least fuel) the buzz for a particular startup.

There are already several questions that highlight buzz-worthy companies and people are using them to gently promote their startups. A more concerted effort could possibly work too. Journalists and bloggers (and possibly, angels & VCs) appear to be monitoring Quora to some extent too.

It wouldn’t be easy though. Quora has many quality measures, such as requiring real names and having a reputation system. If you come off too self-promotional or spammy, you can get down-voted to oblivion.

So how could you effectively market on Quora? Some suggestions:

  • Nominate several individuals to be your Quora team. They all should be good writers, very knowledgable about your field, and understand social media well. With several people answering questions, your visibility, and perhaps, credibility, increases.
  • Establish yourselves as experts in your field. Write good, meaningful answers.
  • Ask good questions. These questions should allow you to continue highlighting your expertise in some way. Or, they can be used as market research and/or to answer a genuine question you have.
  • Answer questions in tangential fields and topics as well. This broadens your reach.
  • Avoid being overly promotional, but make sure to mention your company once in a while. When you link to your company, use the full URL. When you do this, Quora turns it into a clickable link. There’s no SEO value though; the link has a nofollows attribute.
  • Select questions that have high visibility. Being one of the first answerers tends to increase your chances of up-votes, and visibility can be measured in how many followers a question has. This means there’s a bit guesswork involved in choosing the right questions, since new questions give you a chance to be first, but tend to have few followers. Occasionally, questions are featured on highly-visible blogs too.
  • Monitor Quora for industry trends and competitive intelligence. Follow industry leaders and competitors. There’s a gold mine of qualitative data here. Seek it out and use it.
  • Monitor other answerers too. They may make great hires or contacts.
  • Above all else, be a good citizen of Quora. They’ve built a great, though niche community here. If you play nice and give back generously, people will respect your answers even more.

First Day of Improv Classes

I just had my first day of improv classes. They are an attempt to push me outside my comfort zone (which they certainly are doing). They are also good for entrepreneurs.

One of the main lessons from this initial class was to be comfortable with mistakes. To celebrate them, even.

Our instructor noticed how some students were flinching when they were doing our exercises, like answering the Name Three Things game.

In this game, we all stand in a circle. The person to your left quickly asks you to name three things that… and the rest of the question is left to the asker’s imagination. Like, “name three things that are blue,” “name three things that taste sweet,” or “name three things that you can do on Fridays.”

Some students would flinch their answers. Meaning they would shrug or answer in a question. “Three things that are blue. The… sky, water, and Smurfs?”

This comes off as a lack of confidence. The instructor asked, “if Obama said, ‘I want to be the president of the United States?’ would you have any confidence in that statement?” Probably not.

So our class was deemed a No Flinching Zone.

The instructor has taught this class all around the world. In every class, she declares the same rule. Interestingly, when she held this class in Japan, the word “finch” was translated to “a facial apology.”

That’s exactly what a flinch is. A facial apology. You are apologizing for your answer as if it’s a mistake. Meanwhile, you could be absolutely correct. But you haven’t given yourself a chance to be correct. You’ve already apologized for being incorrect.

Since we are celebrating our mistakes, there should be no apologies or flinches. Especially not when you’re doing improv or talking about something subjective.

Looking Forward to Mondays

I used to tell my team, “If you go to sleep on Sunday, dreading to wake up Monday for work, something is wrong here. As your manager, it’s my job to help either discover what is wrong, or to fix it.”

Sure, everyone loves weekends and has some measure of trepidation upon returning to work. But in the dot-com world, it’s not unusually to find many people loving their jobs. I personally loved my work so much that I looked forward to Mondays, if you can believe that. I’m also a workaholic, so take that as you may.

I’ve hired many workaholics too, I think. Or, at least, people who considered working on technology as a personal interest. If they weren’t in this field, they’d probably be tinkering with this stuff in their free time.

And therein lies the kernel of my Monday statement. This is a field with many employment – or self-employment – possibilities. If you don’t like what you’re doing, you can change it. You can talk to your manager, find another job, or start your own company. Good managers realize this and, if you’re an asset to the team, they will do whatever they can to keep you engaged and looking forward to Mondays.

Biz Vision: Phone Numbers are Archaic

I’m surprised more people haven’t seen the insight in Nikhyl Singhal’s post. Back in August of 2010, he wrote the controversial post “Phone Numbers Are Dead, They Just Don’t Know It Yet” on TechCrunch. I say “controversial” because most of the commenters attacked his article. Not that TechCrunch’s comments are really that intelligent; sometimes far from it. The overwhelming criticism was still startling though.

In his article, Singhal asserts that phone numbers will go away because of these facts:

  1. No control. Anyone can dial your 10 digits, including your ex-girlfriend, a political campaign worker, or a solicitor. Unlisted numbers, Caller ID and do-not-call lists all tried to solve this problem, but these solutions still don’t prevent unwanted calls.
  2. Phone numbers are tied to a device, not to you. Everyone has multiple numbers, yet your home line is shared, leaving callers guessing the best way to reach you.
  3. User experience is very limited. The phone was designed as a utility—dial a number, have a conversation. It’s remained this way since its inception. It’s not optimized for other experiences, which is why voicemail and conference calls are tedious, and why checking flight status is worse than a root canal.

He sees them being replaced with social networks such as Facebook. “If given a choice between Ma Bell and Zuckerbell as our operator, we should choose Zuck,” he writes.

Perhaps he came across too “sensationalistic” as one commenter criticized. Though I agree with Singhal’s prediction, I would frame it differently. Here is the core reason why I believe phone numbers will lose their utility:

Phone numbers are a poor unique identifier

This seemingly random string of numbers is meant to represent you – or specifically, one of your devices, as Singhal points out. It is a holdover from the telecommunications industry and is a viable solution if you:

  1. only need to call a handful of people often
  2. those people don’t change their numbers often

The cognitive load of a handful of numbers is adequate for some people. However, many people need to be in contact with a wider number. And many change their numbers several times in their lifetime.

If you’ve ever kept a manual phonebook, you’ll know what I’m talking about. Ever try calling an old friend, only to discover their number has been disconnected? That’s what I mean.

I don’t know if Facebook is the appropriate solution, but conceptually, there is a definite need for a way to uniquely identify a person, so he/she can be contacted by friends easily. What are some other ways to uniquely identify a person?

Unique identifier alternatives

There are quite a few ways to uniquely identify a person:

  • Real name
  • Username
  • Email address
  • OpenID
  • Social security number
  • Driver’s license
  • Passport
  • License plate number
  • Fingerprints
  • DNA

Real name

A name is the simplest real-world identifier. That’s how you identify your friends & family in a crowded room. There’s more here too, which I’ll get to after I go over the others.

Username & email address

Usernames & email addresses are both are common in the Internet. They are used on social media sites, community forums, instant messengers, etc. They are not a great solution, however, because they have limited namespaces.

For instance, there can only be one person who uses the username “mikelee.” This leads to usernames like “mikelee13” and “mikelee2010.” The meaningfulness of “mikelee12345” is small. Did you mean to contact “mikelee12345” or “mikelee12346?” Same goes for email addresses too.

And, for phone numbers as well. New area codes are created all the time to address the growing population, but conceivably, we will run out of available numbers one day. That’s a huge, obvious problem, if you ask me.

Usernames & email addresses have the benefit of nearly unlimited lengths, while phone numbers are limited. That’s a slight advantage with the former two, but because it’s easier to remember shorter identifiers, namespace conflicts still exist. Long identifiers aren’t just more difficult to remember, they are more difficult to display too. Imagine trying to display “mikelee-from-newyork-now-in-sanfrancisco” on your communications device. Jeepers.


OpenID is a technical protocol that is used in user authentication. It’s more for an individual to log into a website, than for you to contact and connect with that individual. So it wouldn’t help in this context.

Social security number

This number is a little too important to be used casually. As a government-issued unique identifier, it can lead to identity fraud if used maliciously.

It’s arguably a poor unique identifier as well. I would love to see the government use a different one. But there are few viable alternatives for them. Facebook sure wouldn’t work. Maybe something biological? I don’t know. That’s a tougher problem to solve.

Driver’s license & passport

Being physical items, it would be difficult to use these in a communications context. Their numbers – which are really alphanumeric – are more portable than the physical items themselves. Being of a limited length, these numbers suffer from namespace issues as well, though the use of alphabetic characters extends them a bit.

But who’s realistically going to memorize or write down their friends’ driver’s license and/or passport numbers? They aren’t even as good as usernames and email addresses. People can select their own usernames & email addresses; driver’s license & passport numbers are issued seemingly at random.

License plate number

I included this one just to highlight its absurdity. A license plate number is a unique identifier for a vehicle, not a person. It’s about as helpful as a phone number, which is really a unique identifier for a mobile device, not a person. The only difference is portability; it’s easier to bring a mobile device with you than, well, a vehicle.

Fingerprints & DNA

There are a whole host of biometric unique identifiers, from physiological (fingerprints, DNA, retinal patterns) to behavioral (voice, gait, typing rhythm). Sure, these can uniquely identify a friend, but how would you realistically use a friend’s retinal pattern to send them a message? Keep a copy of your friend’s eyeball on your keychain? Gross.

Ideal unique identification traits

Obviously, most of the unique identifiers listed above wouldn’t work in a communication context. What would work? The perfect identifier would be:

  • Unique
  • Meaningful
  • Scalable
  • Portable

It’s got to be unique, of course.

It should also be meaningful. “mikelee12345” isn’t terribly meaningful, but it’s possible to achieve some kind of meaning in such an alphanumeric string. “mikelee-from-newyork” perhaps? Long and unwieldy, but more meaningful.

It should be scalable. Limited-length strings have a, you know, limit. The only way to scale those is to increase the limit – which has its pitfalls (the constraints of limits, I mean). Think Y2K. Someday, we’ll have a Y10K problem.

It should be portable. Some unique identifiers, like physical items and biometrics, aren’t portable. That’s why alphanumeric strings have been used in the past. It’s easy to store such an identifier in a communications device.

With these limitations, it’s easy to see why phone numbers and usernames have been in use. But is there a better way?

Contextual real-world unique identification

I briefly touched on how real names are the simplest real-world identifier. In a crowded room, you can use a person’s first name to identify him/her. For a common name like “Mike,” a last name is necessary. And for a common name like “Mike Lee,” you need to add an extra layer of context, because by themselves, real names aren’t unique enough.

What is a useful layer of context? There are several kinds. You can say, “Mike Lee from New York,” “Mike Lee, who used to work at Yahoo,” or “Mike Lee, that hairy Chinese American guy.” Current location and hometown are common contextual items. Vocation and employment is another, especially in the US. A physical or personality-based description is another.

Some social networks realize this. LinkedIn uses a real name, photo, current employment, and a self-chosen tagline. Facebook uses a real name, photo and a network. On a mobile device, both default to the simplest pair: a real name & a photo.

That, to me, is the key. A real name & a photo. The real name is a natural identifier, and the photo adds context. Together, these are unique, meaningful, scalable (a photo is rich visual representation with a nearly infinite set of pixel combinations), and portal (a photo image file is also small enough to be stored on a mobile device).

Phone numbers vs real names & photos

I consider myself a humanistic technologist. I believe that technology should be centered around the interests, needs, and behavior of human beings. Technology is a tool and shouldn’t be a hinderance, as it often is.

This is what Singhal was trying to convey. Phone numbers surface technical constraints. They are an unnatural way to reach your friends. We’ve put up with it because realistic alternatives haven’t existed. The advent of social networks and mobile devices may finally be offering a viable solution.

Within the code of a LinkedIn or Facebook account, each individual is represented by a numeric (or perhaps alphanumeric) unique identifier. And that’s okay. That’s how programming languages can most efficiently handle a unique entity. But the presentation of that information should not reflect technology’s constraints. It should reflect your actual mental mode of that individual. Such as a real name & a photo.

Product Development Speed vs Product Development Velocity

Ever hear someone say they are concerned with the speed of their product development process? Every time I do, I can’t help but cringe a little.

I’m all for Build Fast & Iterate Quickly. Any technology company not moving at lightning speed will stagnant like a still shark. By all means, go fast.

Product development speed isn’t the right trait, however. It’s product development velocity. For the average person, there is a subtle difference between the two terms. But to an engineer, it is an important difference. Here’s a quick recap of the definitions:

  • Speed is a scalar quantity. It is the rate of change of an object’s position.
  • Velocity is a vector quantity. It is the rate of change of an object’s displacement.

(Confused? That’s okay. Watch the Khan Academy’s Introduction to motion for a quick refresher of high school physics. No one will know you did and you’ll feel all the smarter for it. hehe.)

Or, to put it into plain English: velocity is speed with a direction. If you take two steps forward at 2 mph, then two steps back at 2 mph, your speed is “2 mph.” But since you haven’t changed your location, your velocity is 0 mph. If you took four steps east at the same speed, your velocity would be “2 mph east.”

This is why product development velocity is more important. Your direction matters. You should be moving forward. Or at least away from where you currently are. If you’re moving quickly, but in circles, that’s not progress. That’s a waste of time.

It’s fine to move forward, to the left, or to the right. As a business, the goal is to move somewhere new. Every time you cover new ground, you have an opportunity to learn something you didn’t know before, to capture invaluable data. You need to uncover the Fog of War of your market and understand your landscape. You can only do that by moving in some new direction.

In other words, Build Fast, Iterate Quickly, and Move Forward.

Photo by: Mauropm

Empowering the Ultra Poor with Mobile Technologies

Speaking of the ubiquity of mobile phones, want to hear a crazy fact? Mobile phones are more common than toilets in India.

Almost 45% of the population there have mobile phones, while only 31% have access to improved sanitation. This includes many of the ultra poor in India.

If you haven’t heard the term before, the ultra poor are defined as “receiving less than 80 percent of minimum caloric intake whilst spending more than 80% of income on food” by Michael Lipton (quote from Wikipedia). They are the poorest of the poor.

Funny how they have mobile phones then, huh? This is no accident. There has been a concerted effort to bring mobile technologies to the masses. The result is a dramatic shift in knowledge access. In a world where “you can tell the rich from the poor by their internet connections,” mobile technologies are becoming a great equalizer.

Building upon insights such as this, Kamael Sugrim co-founded the non-profit mPowering. She took her background in finance & marketing, Stanford MBA, experience with Salesforce (CRM) & SAP (SAP), and witty insight, and turned it upside-down, realizing she would rather follow her passions than to remain in corporate America. Thus, mPowering. As they state on their website:

We are a non-profit organization dedicated to assisting the world’s poor in their journey out of poverty. Through mobile technology and true out-of-the-box thinking, we give individuals and families the power to change their lives – forever.

Their first step has been to create mobile apps that harness the incentives of location-based gaming.

I know. Definitely out-of-the-box, huh? When I think of helping the ultra poor with mobile technologies, that’s the last thing I think of too. But it sometimes takes a radical new idea to break an established “norm” such as extreme poverty.

Here’s what Sugrim and team have done so far:

They’ve created a mobile app – Android (GOOG) at the moment – that allows children to check-in when they’re at school. Each check-in awards them some points that can be redeemed later at a food & clothing distribution center. The idea is to encourage these children to go to school, get an education, and still “earn” the basic necessities for their family. It’s a step above merely just giving the food & clothing to these families.

With the donations mPowering receives, they also give out free mobile phones to these ultra poor families, ensuring that all of them have access to this program.

Will it work? I don’t know, but this is just the start. They’ve got big plans and a motivated team. I’m sure they’ll experiment with all kinds of interesting, out-of-the-box ideas.

Intrigued? They’re taking donations right now. I’m sure they’ll be open to volunteers and fresh ideas too. Now that they’ve gotten mobile phones into the hands of their initial target group, they’ve got a platform from which to try new things.

They are initially targeting Orissa, the poorest region in India, though they plan on expanding to all countries where there is a need. Sugrim is over in Orissa this very moment, blogging, tweeting, posting, and recording videos of her travels. Follow along to see first-hand how they’re empowering the ultra poor and where they’ll go next. I’m following not just because I support their cause, but because I’m curious about which technologies they’re going to use next. Cloud computing and the ultra poor? Chatroulette for the ultra poor? Oh, the possibilities!